From 34a61847bfbdd3490d10c329c85ae9d198a0a1db Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Mon, 18 May 2020 18:33:21 -0400 Subject: [PATCH] Started upgrading potree, adding 3D camera poses --- app/static/app/js/ModelView.jsx | 88 +- app/static/app/js/css/ModelView.scss | 9 +- app/static/app/js/vendor/ColladaLoader.js | 3948 ++ app/static/app/js/vendor/MTLLoader.js | 649 +- app/static/app/js/vendor/OBJLoader.js | 1019 +- .../app/js/vendor/potree/build/potree.css | 771 - .../app/js/vendor/potree/build/profile.html | 95 - .../js/vendor/potree/build/resources/LICENSE | 15 - .../potree/build/resources/icons/angle.png | Bin 602 -> 0 bytes .../build/resources/icons/annotation.svg | 157 - .../potree/build/resources/icons/area.svg | 99 - .../build/resources/icons/area_backup.svg | 119 - .../potree/build/resources/icons/back.svg | 103 - .../potree/build/resources/icons/bottom.svg | 121 - .../build/resources/icons/clip-plane-x.svg | 62 - .../build/resources/icons/clip-plane-y.svg | 61 - .../build/resources/icons/clip-plane-z.svg | 62 - .../build/resources/icons/clip-polygon.svg | 99 - .../build/resources/icons/clip-screen.svg | 93 - .../build/resources/icons/clip_volume.svg | 130 - .../potree/build/resources/icons/close.svg | 70 - .../potree/build/resources/icons/cloud.svg | 66 - .../potree/build/resources/icons/copy.svg | 106 - .../potree/build/resources/icons/distance.svg | 85 - .../build/resources/icons/earth_controls.png | Bin 1465 -> 0 bytes .../build/resources/icons/earth_controls.svg | 174 - .../resources/icons/earth_controls_1.png | Bin 1928 -> 0 bytes .../potree/build/resources/icons/eye.svg | 77 - .../potree/build/resources/icons/eye_2.png | Bin 2998 -> 0 bytes .../potree/build/resources/icons/eye_2.svg | 72 - .../build/resources/icons/eye_crossed.svg | 93 - .../build/resources/icons/file_csv_2d.svg | 113 - .../potree/build/resources/icons/file_dxf.svg | 161 - .../build/resources/icons/file_geojson.svg | 170 - .../build/resources/icons/file_las_3d.svg | 105 - .../potree/build/resources/icons/flip_y_z.png | Bin 1026 -> 0 bytes .../potree/build/resources/icons/flip_y_z.svg | 101 - .../potree/build/resources/icons/focus.svg | 173 - .../build/resources/icons/fps_controls.png | Bin 859 -> 0 bytes .../build/resources/icons/fps_controls.svg | 117 - .../potree/build/resources/icons/front.svg | 103 - .../potree/build/resources/icons/goto.svg | 143 - .../resources/icons/gradients_grayscale.png | Bin 9240 -> 0 bytes .../resources/icons/gradients_plasma.png | Bin 14737 -> 0 bytes .../resources/icons/gradients_rainbow.png | Bin 14977 -> 0 bytes .../resources/icons/gradients_spectral.png | Bin 15594 -> 0 bytes .../icons/gradients_yellow_green.png | Bin 14040 -> 0 bytes .../potree/build/resources/icons/height.svg | 110 - .../resources/icons/helicopter_controls.svg | 267 - .../build/resources/icons/image_preview.php | 24 - .../potree/build/resources/icons/index.html | 501 - .../potree/build/resources/icons/left.svg | 108 - .../potree/build/resources/icons/map_icon.png | Bin 7937 -> 0 bytes .../build/resources/icons/menu_button.svg | 95 - .../build/resources/icons/menu_icon.svg | 83 - .../build/resources/icons/navigation_cube.svg | 62 - .../build/resources/icons/orbit_controls.svg | 108 - .../resources/icons/orthographic-camera.svg | 62 - .../resources/icons/perspective-camera.svg | 62 - .../potree/build/resources/icons/point.svg | 73 - .../potree/build/resources/icons/profile.png | Bin 975 -> 0 bytes .../potree/build/resources/icons/profile.svg | 145 - .../potree/build/resources/icons/remove.svg | 185 - .../build/resources/icons/reset_tools.svg | 185 - .../build/resources/icons/return_number.svg | 80 - .../potree/build/resources/icons/rgb.png | Bin 2307 -> 0 bytes .../potree/build/resources/icons/rgb.svg | 140 - .../build/resources/icons/rgb_elevation.png | Bin 2467 -> 0 bytes .../potree/build/resources/icons/right.svg | 108 - .../potree/build/resources/icons/rotate.svg | 136 - .../potree/build/resources/icons/scale.svg | 144 - .../potree/build/resources/icons/sphere.png | Bin 939 -> 0 bytes .../potree/build/resources/icons/sphere.svg | 123 - .../resources/icons/sphere_distances.svg | 154 - .../potree/build/resources/icons/target.svg | 156 - .../potree/build/resources/icons/top.svg | 108 - .../build/resources/icons/translate.svg | 148 - .../potree/build/resources/icons/triangle.svg | 111 - .../potree/build/resources/icons/volume.svg | 150 - .../build/resources/images/child_indices.svg | 325 - .../build/resources/lang/dev/ns.common.json | 7 - .../build/resources/lang/dev/ns.special.json | 6 - .../build/resources/lang/dev/translation.json | 6 - .../build/resources/lang/en/ns.common.json | 7 - .../build/resources/lang/en/ns.special.json | 6 - .../build/resources/lang/en/translation.json | 98 - .../js/vendor/potree/build/resources/logo.png | Bin 28793 -> 0 bytes .../js/vendor/potree/build/resources/logo.svg | 91 - .../potree/build/resources/logo_small.png | Bin 6718 -> 0 bytes .../potree/build/resources/textures/LICENSE | 23 - .../resources/textures/brick_pavement.jpg | Bin 97095 -> 0 bytes .../build/resources/textures/navigation/B.png | Bin 1223 -> 0 bytes .../build/resources/textures/navigation/D.png | Bin 1068 -> 0 bytes .../build/resources/textures/navigation/F.png | Bin 510 -> 0 bytes .../build/resources/textures/navigation/L.png | Bin 421 -> 0 bytes .../build/resources/textures/navigation/R.png | Bin 1206 -> 0 bytes .../build/resources/textures/navigation/U.png | Bin 840 -> 0 bytes .../build/resources/textures/skybox/nx.jpg | Bin 37734 -> 0 bytes .../build/resources/textures/skybox/ny.jpg | Bin 6431 -> 0 bytes .../build/resources/textures/skybox/nz.jpg | Bin 41673 -> 0 bytes .../build/resources/textures/skybox/px.jpg | Bin 40406 -> 0 bytes .../build/resources/textures/skybox/py.jpg | Bin 77251 -> 0 bytes .../build/resources/textures/skybox/pz.jpg | Bin 48380 -> 0 bytes .../textures/skybox/skyboxsun25degtest.txt | 1 - .../resources/textures/skybox2/README.TXT | 15 - .../build/resources/textures/skybox2/nx.jpg | Bin 339776 -> 0 bytes .../build/resources/textures/skybox2/ny.jpg | Bin 6432 -> 0 bytes .../build/resources/textures/skybox2/nz.jpg | Bin 276831 -> 0 bytes .../build/resources/textures/skybox2/px.jpg | Bin 313642 -> 0 bytes .../build/resources/textures/skybox2/py.jpg | Bin 146821 -> 0 bytes .../build/resources/textures/skybox2/pz.jpg | Bin 302881 -> 0 bytes .../resources/textures/skyboxsun25degtest.txt | 1 - .../js/vendor/potree/build/shaders/shaders.js | 1176 +- .../app/js/vendor/potree/build/sidebar.html | 222 - .../build/workers/BinaryDecoderWorker.js | 497 - .../build/workers/EptBinaryDecoderWorker.js | 5 - .../build/workers/EptLaszipDecoderWorker.js | 176 - .../workers/EptZstandardDecoderWorker.js | 16 - .../workers/GreyhoundBinaryDecoderWorker.js | 50080 ---------------- .../potree/build/workers/LASDecoderWorker.js | 368 - .../potree/build/workers/LASLAZWorker.js | 49756 --------------- .../app/js/vendor/potree/libs/BinaryHeap.js | 126 - .../app/js/vendor/potree/libs/i18next.js | 5 - .../libs/images/ui-icons_444444_256x240.png | Bin 6992 -> 0 bytes .../libs/images/ui-icons_555555_256x240.png | Bin 6988 -> 0 bytes .../libs/images/ui-icons_777620_256x240.png | Bin 4549 -> 0 bytes .../libs/images/ui-icons_777777_256x240.png | Bin 6999 -> 0 bytes .../libs/images/ui-icons_cc0000_256x240.png | Bin 4549 -> 0 bytes .../libs/images/ui-icons_ffffff_256x240.png | Bin 6299 -> 0 bytes .../js/vendor/potree/libs/jquery-i18next.js | 117 - .../app/js/vendor/potree/libs/jquery-ui.css | 1312 - .../app/js/vendor/potree/libs/jquery-ui.js | 13 - .../app/js/vendor/potree/libs/jstree.js | 8439 --- .../app/js/vendor/potree/libs/laslaz.js | 398 - .../app/js/vendor/potree/libs/spectrum.css | 507 - .../app/js/vendor/potree/libs/spectrum.js | 2341 - .../vendor/potree/libs/themes/mixed/32px.png | Bin 1562 -> 0 bytes .../vendor/potree/libs/themes/mixed/40px.png | Bin 5717 -> 0 bytes .../vendor/potree/libs/themes/mixed/style.css | 1104 - .../app/js/vendor/potree/src/Actions.js | 83 - .../app/js/vendor/potree/src/AnimationPath.js | 168 - .../app/js/vendor/potree/src/Annotation.js | 594 - .../app/js/vendor/potree/src/BitReader.js | 50 - app/static/app/js/vendor/potree/src/Enum.js | 44 - .../js/vendor/potree/src/EventDispatcher.js | 99 - .../app/js/vendor/potree/src/Features.js | 75 - .../js/vendor/potree/src/InterleavedBuffer.js | 40 - .../app/js/vendor/potree/src/KeyCodes.js | 20 - app/static/app/js/vendor/potree/src/LRU.js | 174 - .../potree/src/PointCloudEptGeometry.js | 313 - .../potree/src/PointCloudGreyhoundGeometry.js | 315 - .../js/vendor/potree/src/PointCloudOctree.js | 1020 - .../potree/src/PointCloudOctreeGeometry.js | 256 - .../js/vendor/potree/src/PointCloudTree.js | 48 - app/static/app/js/vendor/potree/src/Points.js | 47 - app/static/app/js/vendor/potree/src/Potree.js | 241 - .../js/vendor/potree/src/PotreeRenderer.js | 1320 - .../potree/src/Potree_update_visibility.js | 418 - .../js/vendor/potree/src/ProfileRequest.js | 390 - .../app/js/vendor/potree/src/TextSprite.js | 122 - .../app/js/vendor/potree/src/Version.js | 44 - .../app/js/vendor/potree/src/WorkerPool.js | 27 - .../app/js/vendor/potree/src/XHRFactory.js | 32 - .../potree/src/arena4d/PointCloudArena4D.js | 587 - .../src/arena4d/PointCloudArena4DGeometry.js | 399 - .../app/js/vendor/potree/src/defines.js | 64 - .../vendor/potree/src/exporter/CSVExporter.js | 49 - .../vendor/potree/src/exporter/DXFExporter.js | 182 - .../potree/src/exporter/GeoJSONExporter.js | 113 - .../vendor/potree/src/exporter/LASExporter.js | 146 - .../src/extensions/OrthographicCamera.js | 17 - .../src/extensions/PerspectiveCamera.js | 36 - .../js/vendor/potree/src/extensions/Ray.js | 15 - .../vendor/potree/src/loader/BinaryLoader.js | 149 - .../js/vendor/potree/src/loader/EptLoader.js | 21 - .../src/loader/GreyhoundBinaryLoader.js | 133 - .../potree/src/loader/GreyhoundLoader.js | 367 - .../vendor/potree/src/loader/LasLazLoader.js | 237 - .../js/vendor/potree/src/loader/POCLoader.js | 164 - .../potree/src/loader/PointAttributes.js | 181 - .../potree/src/loader/ept/BinaryLoader.js | 113 - .../potree/src/loader/ept/LaszipLoader.js | 170 - .../potree/src/loader/ept/ZstandardLoader.js | 12 - .../potree/src/materials/BlurMaterial.js | 23 - .../src/materials/ClassificationScheme.js | 55 - .../src/materials/EyeDomeLightingMaterial.js | 87 - .../vendor/potree/src/materials/Gradients.js | 120 - .../src/materials/NormalizationEDLMaterial.js | 70 - .../src/materials/NormalizationMaterial.js | 40 - .../src/materials/PointCloudMaterial.js | 1022 - .../potree/src/materials/shaders/blur.fs | 32 - .../potree/src/materials/shaders/blur.vs | 8 - .../potree/src/materials/shaders/edl.fs | 72 - .../potree/src/materials/shaders/edl.vs | 11 - .../potree/src/materials/shaders/normalize.fs | 29 - .../potree/src/materials/shaders/normalize.vs | 16 - .../materials/shaders/normalize_and_edl.fs | 59 - .../src/materials/shaders/pointcloud.fs | 98 - .../src/materials/shaders/pointcloud.gl2.fs | 101 - .../src/materials/shaders/pointcloud.gl2.vs | 836 - .../src/materials/shaders/pointcloud.vs | 837 - .../src/materials/shaders/pointcloud_sm.fs | 17 - .../src/materials/shaders/pointcloud_sm.vs | 142 - .../navigation/DeviceOrientationControls.js | 79 - .../potree/src/navigation/EarthControls.js | 287 - .../src/navigation/FirstPersonControls.js | 284 - .../potree/src/navigation/GeoControls.js | 488 - .../potree/src/navigation/InputHandler.js | 718 - .../potree/src/navigation/OrbitControls.js | 292 - app/static/app/js/vendor/potree/src/utils.js | 820 - .../js/vendor/potree/src/utils/Box3Helper.js | 35 - .../js/vendor/potree/src/utils/ClipVolume.js | 288 - .../vendor/potree/src/utils/ClippingTool.js | 170 - .../app/js/vendor/potree/src/utils/GeoTIFF.js | 366 - .../app/js/vendor/potree/src/utils/Measure.js | 522 - .../vendor/potree/src/utils/MeasuringTool.js | 237 - .../app/js/vendor/potree/src/utils/Message.js | 36 - .../vendor/potree/src/utils/PointCloudSM.js | 64 - .../potree/src/utils/PolygonClipVolume.js | 62 - .../app/js/vendor/potree/src/utils/Profile.js | 321 - .../js/vendor/potree/src/utils/ProfileTool.js | 130 - .../potree/src/utils/ScreenBoxSelectTool.js | 184 - .../potree/src/utils/SpotLightHelper.js | 99 - .../potree/src/utils/TransformationTool.js | 888 - .../app/js/vendor/potree/src/utils/Volume.js | 331 - .../js/vendor/potree/src/utils/VolumeTool.js | 156 - .../src/utils/toInterleavedBufferAttribute.js | 31 - .../vendor/potree/src/viewer/EDLRenderer.js | 298 - .../potree/src/viewer/HQSplatRenderer.js | 299 - .../potree/src/viewer/NavigationCube.js | 111 - .../potree/src/viewer/PotreeRenderer.js | 74 - .../src/viewer/PropertyPanels/AnglePanel.js | 67 - .../src/viewer/PropertyPanels/AreaPanel.js | 46 - .../src/viewer/PropertyPanels/CameraPanel.js | 86 - .../viewer/PropertyPanels/DistancePanel.js | 70 - .../src/viewer/PropertyPanels/HeightPanel.js | 57 - .../src/viewer/PropertyPanels/MeasurePanel.js | 98 - .../src/viewer/PropertyPanels/PointPanel.js | 46 - .../src/viewer/PropertyPanels/ProfilePanel.js | 293 - .../viewer/PropertyPanels/PropertiesPanel.js | 648 - .../src/viewer/PropertyPanels/VolumePanel.js | 387 - .../vendor/potree/src/viewer/RepRenderer.js | 334 - .../app/js/vendor/potree/src/viewer/Scene.js | 322 - .../app/js/vendor/potree/src/viewer/View.js | 128 - .../potree/src/viewer/ZoomableSlider.js | 227 - .../app/js/vendor/potree/src/viewer/map.js | 722 - .../js/vendor/potree/src/viewer/potree.css | 771 - .../js/vendor/potree/src/viewer/profile.html | 95 - .../js/vendor/potree/src/viewer/profile.js | 941 - .../js/vendor/potree/src/viewer/sidebar.html | 215 - .../js/vendor/potree/src/viewer/sidebar.js | 1120 - .../app/js/vendor/potree/src/viewer/viewer.js | 1858 - .../potree/src/workers/BinaryDecoderWorker.js | 477 - .../js/vendor/potree/src/workers/DEMWorker.js | 42 - .../src/workers/EptBinaryDecoderWorker.js | 5 - .../src/workers/EptLaszipDecoderWorker.js | 176 - .../src/workers/EptZstandardDecoderWorker.js | 16 - .../workers/GreyhoundBinaryDecoderWorker.js | 190 - .../potree/src/workers/LASDecoderWorker.js | 368 - .../vendor/potree/src/workers/LASLAZWorker.js | 4 - .../potree/src/workers/LazLoaderWorker.js | 128 - app/static/app/js/vendor/potree/three.js | 949 - app/static/app/models/camera.blend | Bin 623004 -> 623004 bytes app/static/app/models/camera.blend1 | Bin 623004 -> 0 bytes app/static/app/models/camera.dae | 18 +- app/templates/app/3d_model_display.html | 23 +- webpack.config.js | 3 - 267 files changed, 5070 insertions(+), 156801 deletions(-) create mode 100644 app/static/app/js/vendor/ColladaLoader.js delete mode 100644 app/static/app/js/vendor/potree/build/potree.css delete mode 100644 app/static/app/js/vendor/potree/build/profile.html delete mode 100644 app/static/app/js/vendor/potree/build/resources/LICENSE delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/angle.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/annotation.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/area.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/area_backup.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/back.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/bottom.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip-plane-x.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip-plane-y.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip-plane-z.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip-polygon.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip-screen.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/clip_volume.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/close.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/cloud.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/copy.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/distance.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/earth_controls.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/earth_controls.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/earth_controls_1.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/eye.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/eye_2.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/eye_2.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/eye_crossed.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/file_csv_2d.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/file_dxf.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/file_geojson.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/file_las_3d.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/focus.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/fps_controls.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/fps_controls.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/front.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/goto.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/gradients_grayscale.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/gradients_plasma.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/gradients_rainbow.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/gradients_spectral.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/gradients_yellow_green.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/height.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/helicopter_controls.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/image_preview.php delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/index.html delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/left.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/map_icon.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/menu_button.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/menu_icon.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/navigation_cube.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/orbit_controls.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/orthographic-camera.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/perspective-camera.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/point.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/profile.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/profile.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/remove.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/reset_tools.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/return_number.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/rgb.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/rgb.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/rgb_elevation.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/right.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/rotate.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/scale.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/sphere.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/sphere.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/sphere_distances.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/target.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/top.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/translate.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/triangle.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/icons/volume.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/images/child_indices.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/dev/ns.common.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/dev/ns.special.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/dev/translation.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/en/ns.common.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/en/ns.special.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/lang/en/translation.json delete mode 100644 app/static/app/js/vendor/potree/build/resources/logo.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/logo.svg delete mode 100644 app/static/app/js/vendor/potree/build/resources/logo_small.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/LICENSE delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/brick_pavement.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/B.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/D.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/F.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/L.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/R.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/navigation/U.png delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/nx.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/ny.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/nz.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/px.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/py.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/pz.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox/skyboxsun25degtest.txt delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/README.TXT delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/nx.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/ny.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/nz.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/px.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/py.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skybox2/pz.jpg delete mode 100644 app/static/app/js/vendor/potree/build/resources/textures/skyboxsun25degtest.txt delete mode 100644 app/static/app/js/vendor/potree/build/sidebar.html delete mode 100644 app/static/app/js/vendor/potree/build/workers/BinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/EptBinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/EptLaszipDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/EptZstandardDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/GreyhoundBinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/LASDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/build/workers/LASLAZWorker.js delete mode 100644 app/static/app/js/vendor/potree/libs/BinaryHeap.js delete mode 100644 app/static/app/js/vendor/potree/libs/i18next.js delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_444444_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_555555_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_777620_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_777777_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_cc0000_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/images/ui-icons_ffffff_256x240.png delete mode 100644 app/static/app/js/vendor/potree/libs/jquery-i18next.js delete mode 100644 app/static/app/js/vendor/potree/libs/jquery-ui.css delete mode 100644 app/static/app/js/vendor/potree/libs/jquery-ui.js delete mode 100644 app/static/app/js/vendor/potree/libs/jstree.js delete mode 100644 app/static/app/js/vendor/potree/libs/laslaz.js delete mode 100644 app/static/app/js/vendor/potree/libs/spectrum.css delete mode 100644 app/static/app/js/vendor/potree/libs/spectrum.js delete mode 100644 app/static/app/js/vendor/potree/libs/themes/mixed/32px.png delete mode 100644 app/static/app/js/vendor/potree/libs/themes/mixed/40px.png delete mode 100644 app/static/app/js/vendor/potree/libs/themes/mixed/style.css delete mode 100644 app/static/app/js/vendor/potree/src/Actions.js delete mode 100644 app/static/app/js/vendor/potree/src/AnimationPath.js delete mode 100644 app/static/app/js/vendor/potree/src/Annotation.js delete mode 100644 app/static/app/js/vendor/potree/src/BitReader.js delete mode 100644 app/static/app/js/vendor/potree/src/Enum.js delete mode 100644 app/static/app/js/vendor/potree/src/EventDispatcher.js delete mode 100644 app/static/app/js/vendor/potree/src/Features.js delete mode 100644 app/static/app/js/vendor/potree/src/InterleavedBuffer.js delete mode 100644 app/static/app/js/vendor/potree/src/KeyCodes.js delete mode 100644 app/static/app/js/vendor/potree/src/LRU.js delete mode 100644 app/static/app/js/vendor/potree/src/PointCloudEptGeometry.js delete mode 100644 app/static/app/js/vendor/potree/src/PointCloudGreyhoundGeometry.js delete mode 100644 app/static/app/js/vendor/potree/src/PointCloudOctree.js delete mode 100644 app/static/app/js/vendor/potree/src/PointCloudOctreeGeometry.js delete mode 100644 app/static/app/js/vendor/potree/src/PointCloudTree.js delete mode 100644 app/static/app/js/vendor/potree/src/Points.js delete mode 100644 app/static/app/js/vendor/potree/src/Potree.js delete mode 100644 app/static/app/js/vendor/potree/src/PotreeRenderer.js delete mode 100644 app/static/app/js/vendor/potree/src/Potree_update_visibility.js delete mode 100644 app/static/app/js/vendor/potree/src/ProfileRequest.js delete mode 100644 app/static/app/js/vendor/potree/src/TextSprite.js delete mode 100644 app/static/app/js/vendor/potree/src/Version.js delete mode 100644 app/static/app/js/vendor/potree/src/WorkerPool.js delete mode 100644 app/static/app/js/vendor/potree/src/XHRFactory.js delete mode 100644 app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4D.js delete mode 100644 app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4DGeometry.js delete mode 100644 app/static/app/js/vendor/potree/src/defines.js delete mode 100644 app/static/app/js/vendor/potree/src/exporter/CSVExporter.js delete mode 100644 app/static/app/js/vendor/potree/src/exporter/DXFExporter.js delete mode 100644 app/static/app/js/vendor/potree/src/exporter/GeoJSONExporter.js delete mode 100644 app/static/app/js/vendor/potree/src/exporter/LASExporter.js delete mode 100644 app/static/app/js/vendor/potree/src/extensions/OrthographicCamera.js delete mode 100644 app/static/app/js/vendor/potree/src/extensions/PerspectiveCamera.js delete mode 100644 app/static/app/js/vendor/potree/src/extensions/Ray.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/BinaryLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/EptLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/GreyhoundBinaryLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/GreyhoundLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/LasLazLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/POCLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/PointAttributes.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/ept/BinaryLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/ept/LaszipLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/loader/ept/ZstandardLoader.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/BlurMaterial.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/ClassificationScheme.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/EyeDomeLightingMaterial.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/Gradients.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/NormalizationEDLMaterial.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/NormalizationMaterial.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/PointCloudMaterial.js delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/blur.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/blur.vs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/edl.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/edl.vs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/normalize.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/normalize.vs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/normalize_and_edl.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.vs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.vs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.fs delete mode 100644 app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.vs delete mode 100644 app/static/app/js/vendor/potree/src/navigation/DeviceOrientationControls.js delete mode 100644 app/static/app/js/vendor/potree/src/navigation/EarthControls.js delete mode 100644 app/static/app/js/vendor/potree/src/navigation/FirstPersonControls.js delete mode 100644 app/static/app/js/vendor/potree/src/navigation/GeoControls.js delete mode 100644 app/static/app/js/vendor/potree/src/navigation/InputHandler.js delete mode 100644 app/static/app/js/vendor/potree/src/navigation/OrbitControls.js delete mode 100644 app/static/app/js/vendor/potree/src/utils.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/Box3Helper.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/ClipVolume.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/ClippingTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/GeoTIFF.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/Measure.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/MeasuringTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/Message.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/PointCloudSM.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/PolygonClipVolume.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/Profile.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/ProfileTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/ScreenBoxSelectTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/SpotLightHelper.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/TransformationTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/Volume.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/VolumeTool.js delete mode 100644 app/static/app/js/vendor/potree/src/utils/toInterleavedBufferAttribute.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/EDLRenderer.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/HQSplatRenderer.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/NavigationCube.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PotreeRenderer.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AnglePanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AreaPanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/CameraPanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/DistancePanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/HeightPanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/MeasurePanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PointPanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/ProfilePanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PropertiesPanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/PropertyPanels/VolumePanel.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/RepRenderer.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/Scene.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/View.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/ZoomableSlider.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/map.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/potree.css delete mode 100644 app/static/app/js/vendor/potree/src/viewer/profile.html delete mode 100644 app/static/app/js/vendor/potree/src/viewer/profile.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/sidebar.html delete mode 100644 app/static/app/js/vendor/potree/src/viewer/sidebar.js delete mode 100644 app/static/app/js/vendor/potree/src/viewer/viewer.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/BinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/DEMWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/EptBinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/EptLaszipDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/EptZstandardDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/GreyhoundBinaryDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/LASDecoderWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/LASLAZWorker.js delete mode 100644 app/static/app/js/vendor/potree/src/workers/LazLoaderWorker.js delete mode 100644 app/static/app/js/vendor/potree/three.js delete mode 100644 app/static/app/models/camera.blend1 diff --git a/app/static/app/js/ModelView.jsx b/app/static/app/js/ModelView.jsx index b40bcdb1..753003c5 100644 --- a/app/static/app/js/ModelView.jsx +++ b/app/static/app/js/ModelView.jsx @@ -6,13 +6,20 @@ import AssetDownloadButtons from './components/AssetDownloadButtons'; import Standby from './components/Standby'; import ShareButton from './components/ShareButton'; import PropTypes from 'prop-types'; -import proj4 from 'proj4'; import epsg from 'epsg'; import $ from 'jquery'; -window.Potree = require('./vendor/potree'); +// Add more proj definitions +const defs = []; +for (let k in epsg){ + if (epsg[k]){ + defs.push([k, epsg[k]]); + } +} +window.proj4.defs(defs); + require('./vendor/OBJLoader'); -THREE.MTLLoader = require('./vendor/MTLLoader'); +require('./vendor/MTLLoader'); require('./vendor/ColladaLoader'); class TexturedModelMenu extends React.Component{ @@ -151,6 +158,8 @@ class ModelView extends React.Component { } }); + viewer.scene.scene.add( new THREE.AmbientLight( 0xcccccc, 1.0 ) ); + this.pointCloudFilePath(pointCloudPath => { Potree.loadPointCloud(pointCloudPath, "Point Cloud", e => { if (e.type == "loading_failed"){ @@ -164,10 +173,10 @@ class ModelView extends React.Component { let material = e.pointcloud.material; material.size = 1; - material.pointSizeType = Potree.PointSizeType.ADAPTIVE; - material.pointColorType = Potree.PointColorType.RGB; this.loadCameras(); + + window.scene = viewer.scene.scene; viewer.fitToScreen(); }); @@ -177,6 +186,18 @@ class ModelView extends React.Component { loadCameras(){ const { task } = this.props; + function rotate(vector, angleaxis) { + var v = new THREE.Vector3(vector[0], vector[1], vector[2]); + var axis = new THREE.Vector3(angleaxis[0], + angleaxis[1], + angleaxis[2]); + var angle = axis.length(); + axis.normalize(); + var matrix = new THREE.Matrix4().makeRotationAxis(axis, angle); + v.applyMatrix4(matrix); + return v; + } + if (task.available_assets.indexOf('shots.geojson') !== -1){ const colladaLoader = new THREE.ColladaLoader(); const fileloader = new THREE.FileLoader(); @@ -190,46 +211,48 @@ class ModelView extends React.Component { let pcproj = this.pointCloud.projection; - if (pcproj){ - if (pcproj.toLowerCase().startsWith("epsg")){ - pcproj = epsg[pcproj]; - } - }else{ + if (!pcproj){ console.log("NO PROJ!!!"); // TODO ? } const toScene = proj4(gjproj, pcproj); const cameraObj = dae.children[0]; + console.log(cameraObj); - // const cameraMesh = new THREE.InstancedMesh( cameraObj.geometry, cameraObj.material, geojson.features.length ); + // TODO: instancing doesn't seem to work :/ + // const cameraMeshes = new THREE.InstancedMesh( cameraObj.geometry, cameraObj.material, geojson.features.length ); // const dummy = new THREE.Object3D(); - - // let i = 0; - // geojson.features.forEach(feat => { - // const coords = feat.geometry.coordinates; - // const utm = toScene.forward([coords[0], coords[1]]); - // utm.push(coords[2]); // z in meters doesn't change + let i = 0; + geojson.features.forEach(feat => { + const coords = feat.geometry.coordinates; - // dummy.position.set(utm[0], utm[1], utm[2]); - // // TODO: rotation + const utm = toScene.forward([coords[0], coords[1]]); + utm.push(coords[2]); // z in meters doesn't change - // dummy.updateMatrix(); + const rotation = rotate([0, 0, 1], feat.properties.rotation); + + // dummy.rotation.set( + // Math.random() * Math.PI, + // Math.random() * Math.PI, + // Math.random() * Math.PI + // ); + + // dummy.position.set(utm[0], utm[1], utm[2]); + // dummy.rotation.set(...) + // dummy.updateMatrix(); + // cameraMeshes.setMatrixAt(i, dummy.matrix); - // cameraMesh.setMatrixAt(i, dummy.matrix); + const cameraMesh = new THREE.Mesh(cameraObj.geometry, cameraObj.material); + cameraMesh.position.set(utm[0], utm[1], utm[2]); + cameraMesh.rotation.set(rotation.x, rotation.y, rotation.z); + viewer.scene.scene.add(cameraMesh); - // console.log(i); + i++; + }); - // i++; - // }); - - // dae.position.set(utm[0], utm[1], utm[2]); - // dae.scale.x = 1; - // dae.scale.y = 1; - // dae.scale.z = 1; - - // viewer.scene.scene.add(cameraMesh); + // viewer.scene.scene.add(cameraMeshes); }, undefined, console.error); }); } @@ -251,7 +274,6 @@ class ModelView extends React.Component { this.setState({initializingModel: true}); const mtlLoader = new THREE.MTLLoader(); - mtlLoader.setTexturePath(this.texturedModelDirectoryPath()); mtlLoader.setPath(this.texturedModelDirectoryPath()); mtlLoader.load(this.mtlFilename(), (materials) => { @@ -264,7 +286,6 @@ class ModelView extends React.Component { const bboxWorld = this.pointCloud.getBoundingBoxWorld(); const pcCenter = new THREE.Vector3(); bboxWorld.getCenter(pcCenter); - object.position.set(pcCenter.x, pcCenter.y, pcCenter.z); // Bring the model close to center @@ -283,6 +304,7 @@ class ModelView extends React.Component { } viewer.scene.scene.add(object); + window.object = object; // TODO REMOVE this.modelReference = object; this.setPointCloudsVisible(false); diff --git a/app/static/app/js/css/ModelView.scss b/app/static/app/js/css/ModelView.scss index 15f1c163..5f9387e6 100644 --- a/app/static/app/js/css/ModelView.scss +++ b/app/static/app/js/css/ModelView.scss @@ -1,7 +1,3 @@ -@import '../vendor/potree/build/potree.css'; -@import '../vendor/potree/libs/jquery-ui.css'; -@import '../vendor/potree/libs/themes/mixed/style.css'; - .model-view{ position: relative; height: 100%; @@ -180,7 +176,12 @@ } } + #potree_download_profile_ortho_link, #potree_download_profile_link{ color: black; } } + +#profile_window{ + z-index: 999999999999 !important; +} \ No newline at end of file diff --git a/app/static/app/js/vendor/ColladaLoader.js b/app/static/app/js/vendor/ColladaLoader.js new file mode 100644 index 00000000..d7b5cce3 --- /dev/null +++ b/app/static/app/js/vendor/ColladaLoader.js @@ -0,0 +1,3948 @@ +/** + * @author mrdoob / http://mrdoob.com/ + * @author Mugen87 / https://github.com/Mugen87 + */ + +THREE.ColladaLoader = function ( manager ) { + + THREE.Loader.call( this, manager ); + +}; + +THREE.ColladaLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), { + + constructor: THREE.ColladaLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var path = ( scope.path === '' ) ? THREE.LoaderUtils.extractUrlBase( url ) : scope.path; + + var loader = new THREE.FileLoader( scope.manager ); + loader.setPath( scope.path ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( text, path ) ); + + }, onProgress, onError ); + + }, + + options: { + + set convertUpAxis( value ) { + + console.warn( 'THREE.ColladaLoader: options.convertUpAxis() has been removed. Up axis is converted automatically.' ); + + } + + }, + + parse: function ( text, path ) { + + function getElementsByTagName( xml, name ) { + + // Non recursive xml.getElementsByTagName() ... + + var array = []; + var childNodes = xml.childNodes; + + for ( var i = 0, l = childNodes.length; i < l; i ++ ) { + + var child = childNodes[ i ]; + + if ( child.nodeName === name ) { + + array.push( child ); + + } + + } + + return array; + + } + + function parseStrings( text ) { + + if ( text.length === 0 ) return []; + + var parts = text.trim().split( /\s+/ ); + var array = new Array( parts.length ); + + for ( var i = 0, l = parts.length; i < l; i ++ ) { + + array[ i ] = parts[ i ]; + + } + + return array; + + } + + function parseFloats( text ) { + + if ( text.length === 0 ) return []; + + var parts = text.trim().split( /\s+/ ); + var array = new Array( parts.length ); + + for ( var i = 0, l = parts.length; i < l; i ++ ) { + + array[ i ] = parseFloat( parts[ i ] ); + + } + + return array; + + } + + function parseInts( text ) { + + if ( text.length === 0 ) return []; + + var parts = text.trim().split( /\s+/ ); + var array = new Array( parts.length ); + + for ( var i = 0, l = parts.length; i < l; i ++ ) { + + array[ i ] = parseInt( parts[ i ] ); + + } + + return array; + + } + + function parseId( text ) { + + return text.substring( 1 ); + + } + + function generateId() { + + return 'three_default_' + ( count ++ ); + + } + + function isEmpty( object ) { + + return Object.keys( object ).length === 0; + + } + + // asset + + function parseAsset( xml ) { + + return { + unit: parseAssetUnit( getElementsByTagName( xml, 'unit' )[ 0 ] ), + upAxis: parseAssetUpAxis( getElementsByTagName( xml, 'up_axis' )[ 0 ] ) + }; + + } + + function parseAssetUnit( xml ) { + + if ( ( xml !== undefined ) && ( xml.hasAttribute( 'meter' ) === true ) ) { + + return parseFloat( xml.getAttribute( 'meter' ) ); + + } else { + + return 1; // default 1 meter + + } + + } + + function parseAssetUpAxis( xml ) { + + return xml !== undefined ? xml.textContent : 'Y_UP'; + + } + + // library + + function parseLibrary( xml, libraryName, nodeName, parser ) { + + var library = getElementsByTagName( xml, libraryName )[ 0 ]; + + if ( library !== undefined ) { + + var elements = getElementsByTagName( library, nodeName ); + + for ( var i = 0; i < elements.length; i ++ ) { + + parser( elements[ i ] ); + + } + + } + + } + + function buildLibrary( data, builder ) { + + for ( var name in data ) { + + var object = data[ name ]; + object.build = builder( data[ name ] ); + + } + + } + + // get + + function getBuild( data, builder ) { + + if ( data.build !== undefined ) return data.build; + + data.build = builder( data ); + + return data.build; + + } + + // animation + + function parseAnimation( xml ) { + + var data = { + sources: {}, + samplers: {}, + channels: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + var id; + + switch ( child.nodeName ) { + + case 'source': + id = child.getAttribute( 'id' ); + data.sources[ id ] = parseSource( child ); + break; + + case 'sampler': + id = child.getAttribute( 'id' ); + data.samplers[ id ] = parseAnimationSampler( child ); + break; + + case 'channel': + id = child.getAttribute( 'target' ); + data.channels[ id ] = parseAnimationChannel( child ); + break; + + default: + console.log( child ); + + } + + } + + library.animations[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseAnimationSampler( xml ) { + + var data = { + inputs: {}, + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'input': + var id = parseId( child.getAttribute( 'source' ) ); + var semantic = child.getAttribute( 'semantic' ); + data.inputs[ semantic ] = id; + break; + + } + + } + + return data; + + } + + function parseAnimationChannel( xml ) { + + var data = {}; + + var target = xml.getAttribute( 'target' ); + + // parsing SID Addressing Syntax + + var parts = target.split( '/' ); + + var id = parts.shift(); + var sid = parts.shift(); + + // check selection syntax + + var arraySyntax = ( sid.indexOf( '(' ) !== - 1 ); + var memberSyntax = ( sid.indexOf( '.' ) !== - 1 ); + + if ( memberSyntax ) { + + // member selection access + + parts = sid.split( '.' ); + sid = parts.shift(); + data.member = parts.shift(); + + } else if ( arraySyntax ) { + + // array-access syntax. can be used to express fields in one-dimensional vectors or two-dimensional matrices. + + var indices = sid.split( '(' ); + sid = indices.shift(); + + for ( var i = 0; i < indices.length; i ++ ) { + + indices[ i ] = parseInt( indices[ i ].replace( /\)/, '' ) ); + + } + + data.indices = indices; + + } + + data.id = id; + data.sid = sid; + + data.arraySyntax = arraySyntax; + data.memberSyntax = memberSyntax; + + data.sampler = parseId( xml.getAttribute( 'source' ) ); + + return data; + + } + + function buildAnimation( data ) { + + var tracks = []; + + var channels = data.channels; + var samplers = data.samplers; + var sources = data.sources; + + for ( var target in channels ) { + + if ( channels.hasOwnProperty( target ) ) { + + var channel = channels[ target ]; + var sampler = samplers[ channel.sampler ]; + + var inputId = sampler.inputs.INPUT; + var outputId = sampler.inputs.OUTPUT; + + var inputSource = sources[ inputId ]; + var outputSource = sources[ outputId ]; + + var animation = buildAnimationChannel( channel, inputSource, outputSource ); + + createKeyframeTracks( animation, tracks ); + + } + + } + + return tracks; + + } + + function getAnimation( id ) { + + return getBuild( library.animations[ id ], buildAnimation ); + + } + + function buildAnimationChannel( channel, inputSource, outputSource ) { + + var node = library.nodes[ channel.id ]; + var object3D = getNode( node.id ); + + var transform = node.transforms[ channel.sid ]; + var defaultMatrix = node.matrix.clone().transpose(); + + var time, stride; + var i, il, j, jl; + + var data = {}; + + // the collada spec allows the animation of data in various ways. + // depending on the transform type (matrix, translate, rotate, scale), we execute different logic + + switch ( transform ) { + + case 'matrix': + + for ( i = 0, il = inputSource.array.length; i < il; i ++ ) { + + time = inputSource.array[ i ]; + stride = i * outputSource.stride; + + if ( data[ time ] === undefined ) data[ time ] = {}; + + if ( channel.arraySyntax === true ) { + + var value = outputSource.array[ stride ]; + var index = channel.indices[ 0 ] + 4 * channel.indices[ 1 ]; + + data[ time ][ index ] = value; + + } else { + + for ( j = 0, jl = outputSource.stride; j < jl; j ++ ) { + + data[ time ][ j ] = outputSource.array[ stride + j ]; + + } + + } + + } + + break; + + case 'translate': + console.warn( 'THREE.ColladaLoader: Animation transform type "%s" not yet implemented.', transform ); + break; + + case 'rotate': + console.warn( 'THREE.ColladaLoader: Animation transform type "%s" not yet implemented.', transform ); + break; + + case 'scale': + console.warn( 'THREE.ColladaLoader: Animation transform type "%s" not yet implemented.', transform ); + break; + + } + + var keyframes = prepareAnimationData( data, defaultMatrix ); + + var animation = { + name: object3D.uuid, + keyframes: keyframes + }; + + return animation; + + } + + function prepareAnimationData( data, defaultMatrix ) { + + var keyframes = []; + + // transfer data into a sortable array + + for ( var time in data ) { + + keyframes.push( { time: parseFloat( time ), value: data[ time ] } ); + + } + + // ensure keyframes are sorted by time + + keyframes.sort( ascending ); + + // now we clean up all animation data, so we can use them for keyframe tracks + + for ( var i = 0; i < 16; i ++ ) { + + transformAnimationData( keyframes, i, defaultMatrix.elements[ i ] ); + + } + + return keyframes; + + // array sort function + + function ascending( a, b ) { + + return a.time - b.time; + + } + + } + + var position = new THREE.Vector3(); + var scale = new THREE.Vector3(); + var quaternion = new THREE.Quaternion(); + + function createKeyframeTracks( animation, tracks ) { + + var keyframes = animation.keyframes; + var name = animation.name; + + var times = []; + var positionData = []; + var quaternionData = []; + var scaleData = []; + + for ( var i = 0, l = keyframes.length; i < l; i ++ ) { + + var keyframe = keyframes[ i ]; + + var time = keyframe.time; + var value = keyframe.value; + + matrix.fromArray( value ).transpose(); + matrix.decompose( position, quaternion, scale ); + + times.push( time ); + positionData.push( position.x, position.y, position.z ); + quaternionData.push( quaternion.x, quaternion.y, quaternion.z, quaternion.w ); + scaleData.push( scale.x, scale.y, scale.z ); + + } + + if ( positionData.length > 0 ) tracks.push( new THREE.VectorKeyframeTrack( name + '.position', times, positionData ) ); + if ( quaternionData.length > 0 ) tracks.push( new THREE.QuaternionKeyframeTrack( name + '.quaternion', times, quaternionData ) ); + if ( scaleData.length > 0 ) tracks.push( new THREE.VectorKeyframeTrack( name + '.scale', times, scaleData ) ); + + return tracks; + + } + + function transformAnimationData( keyframes, property, defaultValue ) { + + var keyframe; + + var empty = true; + var i, l; + + // check, if values of a property are missing in our keyframes + + for ( i = 0, l = keyframes.length; i < l; i ++ ) { + + keyframe = keyframes[ i ]; + + if ( keyframe.value[ property ] === undefined ) { + + keyframe.value[ property ] = null; // mark as missing + + } else { + + empty = false; + + } + + } + + if ( empty === true ) { + + // no values at all, so we set a default value + + for ( i = 0, l = keyframes.length; i < l; i ++ ) { + + keyframe = keyframes[ i ]; + + keyframe.value[ property ] = defaultValue; + + } + + } else { + + // filling gaps + + createMissingKeyframes( keyframes, property ); + + } + + } + + function createMissingKeyframes( keyframes, property ) { + + var prev, next; + + for ( var i = 0, l = keyframes.length; i < l; i ++ ) { + + var keyframe = keyframes[ i ]; + + if ( keyframe.value[ property ] === null ) { + + prev = getPrev( keyframes, i, property ); + next = getNext( keyframes, i, property ); + + if ( prev === null ) { + + keyframe.value[ property ] = next.value[ property ]; + continue; + + } + + if ( next === null ) { + + keyframe.value[ property ] = prev.value[ property ]; + continue; + + } + + interpolate( keyframe, prev, next, property ); + + } + + } + + } + + function getPrev( keyframes, i, property ) { + + while ( i >= 0 ) { + + var keyframe = keyframes[ i ]; + + if ( keyframe.value[ property ] !== null ) return keyframe; + + i --; + + } + + return null; + + } + + function getNext( keyframes, i, property ) { + + while ( i < keyframes.length ) { + + var keyframe = keyframes[ i ]; + + if ( keyframe.value[ property ] !== null ) return keyframe; + + i ++; + + } + + return null; + + } + + function interpolate( key, prev, next, property ) { + + if ( ( next.time - prev.time ) === 0 ) { + + key.value[ property ] = prev.value[ property ]; + return; + + } + + key.value[ property ] = ( ( key.time - prev.time ) * ( next.value[ property ] - prev.value[ property ] ) / ( next.time - prev.time ) ) + prev.value[ property ]; + + } + + // animation clips + + function parseAnimationClip( xml ) { + + var data = { + name: xml.getAttribute( 'id' ) || 'default', + start: parseFloat( xml.getAttribute( 'start' ) || 0 ), + end: parseFloat( xml.getAttribute( 'end' ) || 0 ), + animations: [] + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'instance_animation': + data.animations.push( parseId( child.getAttribute( 'url' ) ) ); + break; + + } + + } + + library.clips[ xml.getAttribute( 'id' ) ] = data; + + } + + function buildAnimationClip( data ) { + + var tracks = []; + + var name = data.name; + var duration = ( data.end - data.start ) || - 1; + var animations = data.animations; + + for ( var i = 0, il = animations.length; i < il; i ++ ) { + + var animationTracks = getAnimation( animations[ i ] ); + + for ( var j = 0, jl = animationTracks.length; j < jl; j ++ ) { + + tracks.push( animationTracks[ j ] ); + + } + + } + + return new THREE.AnimationClip( name, duration, tracks ); + + } + + function getAnimationClip( id ) { + + return getBuild( library.clips[ id ], buildAnimationClip ); + + } + + // controller + + function parseController( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'skin': + // there is exactly one skin per controller + data.id = parseId( child.getAttribute( 'source' ) ); + data.skin = parseSkin( child ); + break; + + case 'morph': + data.id = parseId( child.getAttribute( 'source' ) ); + console.warn( 'THREE.ColladaLoader: Morph target animation not supported yet.' ); + break; + + } + + } + + library.controllers[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseSkin( xml ) { + + var data = { + sources: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'bind_shape_matrix': + data.bindShapeMatrix = parseFloats( child.textContent ); + break; + + case 'source': + var id = child.getAttribute( 'id' ); + data.sources[ id ] = parseSource( child ); + break; + + case 'joints': + data.joints = parseJoints( child ); + break; + + case 'vertex_weights': + data.vertexWeights = parseVertexWeights( child ); + break; + + } + + } + + return data; + + } + + function parseJoints( xml ) { + + var data = { + inputs: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'input': + var semantic = child.getAttribute( 'semantic' ); + var id = parseId( child.getAttribute( 'source' ) ); + data.inputs[ semantic ] = id; + break; + + } + + } + + return data; + + } + + function parseVertexWeights( xml ) { + + var data = { + inputs: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'input': + var semantic = child.getAttribute( 'semantic' ); + var id = parseId( child.getAttribute( 'source' ) ); + var offset = parseInt( child.getAttribute( 'offset' ) ); + data.inputs[ semantic ] = { id: id, offset: offset }; + break; + + case 'vcount': + data.vcount = parseInts( child.textContent ); + break; + + case 'v': + data.v = parseInts( child.textContent ); + break; + + } + + } + + return data; + + } + + function buildController( data ) { + + var build = { + id: data.id + }; + + var geometry = library.geometries[ build.id ]; + + if ( data.skin !== undefined ) { + + build.skin = buildSkin( data.skin ); + + // we enhance the 'sources' property of the corresponding geometry with our skin data + + geometry.sources.skinIndices = build.skin.indices; + geometry.sources.skinWeights = build.skin.weights; + + } + + return build; + + } + + function buildSkin( data ) { + + var BONE_LIMIT = 4; + + var build = { + joints: [], // this must be an array to preserve the joint order + indices: { + array: [], + stride: BONE_LIMIT + }, + weights: { + array: [], + stride: BONE_LIMIT + } + }; + + var sources = data.sources; + var vertexWeights = data.vertexWeights; + + var vcount = vertexWeights.vcount; + var v = vertexWeights.v; + var jointOffset = vertexWeights.inputs.JOINT.offset; + var weightOffset = vertexWeights.inputs.WEIGHT.offset; + + var jointSource = data.sources[ data.joints.inputs.JOINT ]; + var inverseSource = data.sources[ data.joints.inputs.INV_BIND_MATRIX ]; + + var weights = sources[ vertexWeights.inputs.WEIGHT.id ].array; + var stride = 0; + + var i, j, l; + + // procces skin data for each vertex + + for ( i = 0, l = vcount.length; i < l; i ++ ) { + + var jointCount = vcount[ i ]; // this is the amount of joints that affect a single vertex + var vertexSkinData = []; + + for ( j = 0; j < jointCount; j ++ ) { + + var skinIndex = v[ stride + jointOffset ]; + var weightId = v[ stride + weightOffset ]; + var skinWeight = weights[ weightId ]; + + vertexSkinData.push( { index: skinIndex, weight: skinWeight } ); + + stride += 2; + + } + + // we sort the joints in descending order based on the weights. + // this ensures, we only procced the most important joints of the vertex + + vertexSkinData.sort( descending ); + + // now we provide for each vertex a set of four index and weight values. + // the order of the skin data matches the order of vertices + + for ( j = 0; j < BONE_LIMIT; j ++ ) { + + var d = vertexSkinData[ j ]; + + if ( d !== undefined ) { + + build.indices.array.push( d.index ); + build.weights.array.push( d.weight ); + + } else { + + build.indices.array.push( 0 ); + build.weights.array.push( 0 ); + + } + + } + + } + + // setup bind matrix + + if ( data.bindShapeMatrix ) { + + build.bindMatrix = new THREE.Matrix4().fromArray( data.bindShapeMatrix ).transpose(); + + } else { + + build.bindMatrix = new THREE.Matrix4().identity(); + + } + + // process bones and inverse bind matrix data + + for ( i = 0, l = jointSource.array.length; i < l; i ++ ) { + + var name = jointSource.array[ i ]; + var boneInverse = new THREE.Matrix4().fromArray( inverseSource.array, i * inverseSource.stride ).transpose(); + + build.joints.push( { name: name, boneInverse: boneInverse } ); + + } + + return build; + + // array sort function + + function descending( a, b ) { + + return b.weight - a.weight; + + } + + } + + function getController( id ) { + + return getBuild( library.controllers[ id ], buildController ); + + } + + // image + + function parseImage( xml ) { + + var data = { + init_from: getElementsByTagName( xml, 'init_from' )[ 0 ].textContent + }; + + library.images[ xml.getAttribute( 'id' ) ] = data; + + } + + function buildImage( data ) { + + if ( data.build !== undefined ) return data.build; + + return data.init_from; + + } + + function getImage( id ) { + + var data = library.images[ id ]; + + if ( data !== undefined ) { + + return getBuild( data, buildImage ); + + } + + console.warn( 'THREE.ColladaLoader: Couldn\'t find image with ID:', id ); + + return null; + + } + + // effect + + function parseEffect( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'profile_COMMON': + data.profile = parseEffectProfileCOMMON( child ); + break; + + } + + } + + library.effects[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseEffectProfileCOMMON( xml ) { + + var data = { + surfaces: {}, + samplers: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'newparam': + parseEffectNewparam( child, data ); + break; + + case 'technique': + data.technique = parseEffectTechnique( child ); + break; + + case 'extra': + data.extra = parseEffectExtra( child ); + break; + + } + + } + + return data; + + } + + function parseEffectNewparam( xml, data ) { + + var sid = xml.getAttribute( 'sid' ); + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'surface': + data.surfaces[ sid ] = parseEffectSurface( child ); + break; + + case 'sampler2D': + data.samplers[ sid ] = parseEffectSampler( child ); + break; + + } + + } + + } + + function parseEffectSurface( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'init_from': + data.init_from = child.textContent; + break; + + } + + } + + return data; + + } + + function parseEffectSampler( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'source': + data.source = child.textContent; + break; + + } + + } + + return data; + + } + + function parseEffectTechnique( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'constant': + case 'lambert': + case 'blinn': + case 'phong': + data.type = child.nodeName; + data.parameters = parseEffectParameters( child ); + break; + + } + + } + + return data; + + } + + function parseEffectParameters( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'emission': + case 'diffuse': + case 'specular': + case 'bump': + case 'ambient': + case 'shininess': + case 'transparency': + data[ child.nodeName ] = parseEffectParameter( child ); + break; + case 'transparent': + data[ child.nodeName ] = { + opaque: child.getAttribute( 'opaque' ), + data: parseEffectParameter( child ) + }; + break; + + } + + } + + return data; + + } + + function parseEffectParameter( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'color': + data[ child.nodeName ] = parseFloats( child.textContent ); + break; + + case 'float': + data[ child.nodeName ] = parseFloat( child.textContent ); + break; + + case 'texture': + data[ child.nodeName ] = { id: child.getAttribute( 'texture' ), extra: parseEffectParameterTexture( child ) }; + break; + + } + + } + + return data; + + } + + function parseEffectParameterTexture( xml ) { + + var data = { + technique: {} + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'extra': + parseEffectParameterTextureExtra( child, data ); + break; + + } + + } + + return data; + + } + + function parseEffectParameterTextureExtra( xml, data ) { + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'technique': + parseEffectParameterTextureExtraTechnique( child, data ); + break; + + } + + } + + } + + function parseEffectParameterTextureExtraTechnique( xml, data ) { + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'repeatU': + case 'repeatV': + case 'offsetU': + case 'offsetV': + data.technique[ child.nodeName ] = parseFloat( child.textContent ); + break; + + case 'wrapU': + case 'wrapV': + + // some files have values for wrapU/wrapV which become NaN via parseInt + + if ( child.textContent.toUpperCase() === 'TRUE' ) { + + data.technique[ child.nodeName ] = 1; + + } else if ( child.textContent.toUpperCase() === 'FALSE' ) { + + data.technique[ child.nodeName ] = 0; + + } else { + + data.technique[ child.nodeName ] = parseInt( child.textContent ); + + } + + break; + + } + + } + + } + + function parseEffectExtra( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'technique': + data.technique = parseEffectExtraTechnique( child ); + break; + + } + + } + + return data; + + } + + function parseEffectExtraTechnique( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'double_sided': + data[ child.nodeName ] = parseInt( child.textContent ); + break; + + } + + } + + return data; + + } + + function buildEffect( data ) { + + return data; + + } + + function getEffect( id ) { + + return getBuild( library.effects[ id ], buildEffect ); + + } + + // material + + function parseMaterial( xml ) { + + var data = { + name: xml.getAttribute( 'name' ) + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'instance_effect': + data.url = parseId( child.getAttribute( 'url' ) ); + break; + + } + + } + + library.materials[ xml.getAttribute( 'id' ) ] = data; + + } + + function getTextureLoader( image ) { + + var loader; + + var extension = image.slice( ( image.lastIndexOf( '.' ) - 1 >>> 0 ) + 2 ); // http://www.jstips.co/en/javascript/get-file-extension/ + extension = extension.toLowerCase(); + + switch ( extension ) { + + case 'tga': + loader = tgaLoader; + break; + + default: + loader = textureLoader; + + } + + return loader; + + } + + function buildMaterial( data ) { + + var effect = getEffect( data.url ); + var technique = effect.profile.technique; + var extra = effect.profile.extra; + + var material; + + switch ( technique.type ) { + + case 'phong': + case 'blinn': + material = new THREE.MeshPhongMaterial(); + break; + + case 'lambert': + material = new THREE.MeshLambertMaterial(); + break; + + default: + material = new THREE.MeshBasicMaterial(); + break; + + } + + material.name = data.name || ''; + + function getTexture( textureObject ) { + + var sampler = effect.profile.samplers[ textureObject.id ]; + var image = null; + + // get image + + if ( sampler !== undefined ) { + + var surface = effect.profile.surfaces[ sampler.source ]; + image = getImage( surface.init_from ); + + } else { + + console.warn( 'THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530).' ); + image = getImage( textureObject.id ); + + } + + // create texture if image is avaiable + + if ( image !== null ) { + + var loader = getTextureLoader( image ); + + if ( loader !== undefined ) { + + var texture = loader.load( image ); + + var extra = textureObject.extra; + + if ( extra !== undefined && extra.technique !== undefined && isEmpty( extra.technique ) === false ) { + + var technique = extra.technique; + + texture.wrapS = technique.wrapU ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping; + texture.wrapT = technique.wrapV ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping; + + texture.offset.set( technique.offsetU || 0, technique.offsetV || 0 ); + texture.repeat.set( technique.repeatU || 1, technique.repeatV || 1 ); + + } else { + + texture.wrapS = THREE.RepeatWrapping; + texture.wrapT = THREE.RepeatWrapping; + + } + + return texture; + + } else { + + console.warn( 'THREE.ColladaLoader: Loader for texture %s not found.', image ); + + return null; + + } + + } else { + + console.warn( 'THREE.ColladaLoader: Couldn\'t create texture with ID:', textureObject.id ); + + return null; + + } + + } + + var parameters = technique.parameters; + + for ( var key in parameters ) { + + var parameter = parameters[ key ]; + + switch ( key ) { + + case 'diffuse': + if ( parameter.color ) material.color.fromArray( parameter.color ); + if ( parameter.texture ) material.map = getTexture( parameter.texture ); + break; + case 'specular': + if ( parameter.color && material.specular ) material.specular.fromArray( parameter.color ); + if ( parameter.texture ) material.specularMap = getTexture( parameter.texture ); + break; + case 'bump': + if ( parameter.texture ) material.normalMap = getTexture( parameter.texture ); + break; + case 'ambient': + if ( parameter.texture ) material.lightMap = getTexture( parameter.texture ); + break; + case 'shininess': + if ( parameter.float && material.shininess ) material.shininess = parameter.float; + break; + case 'emission': + if ( parameter.color && material.emissive ) material.emissive.fromArray( parameter.color ); + if ( parameter.texture ) material.emissiveMap = getTexture( parameter.texture ); + break; + + } + + } + + // + + var transparent = parameters[ 'transparent' ]; + var transparency = parameters[ 'transparency' ]; + + // does not exist but + + if ( transparency === undefined && transparent ) { + + transparency = { + float: 1 + }; + + } + + // does not exist but + + if ( transparent === undefined && transparency ) { + + transparent = { + opaque: 'A_ONE', + data: { + color: [ 1, 1, 1, 1 ] + } }; + + } + + if ( transparent && transparency ) { + + // handle case if a texture exists but no color + + if ( transparent.data.texture ) { + + // we do not set an alpha map (see #13792) + + material.transparent = true; + + } else { + + var color = transparent.data.color; + + switch ( transparent.opaque ) { + + case 'A_ONE': + material.opacity = color[ 3 ] * transparency.float; + break; + case 'RGB_ZERO': + material.opacity = 1 - ( color[ 0 ] * transparency.float ); + break; + case 'A_ZERO': + material.opacity = 1 - ( color[ 3 ] * transparency.float ); + break; + case 'RGB_ONE': + material.opacity = color[ 0 ] * transparency.float; + break; + default: + console.warn( 'THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.', transparent.opaque ); + + } + + if ( material.opacity < 1 ) material.transparent = true; + + } + + } + + // + + if ( extra !== undefined && extra.technique !== undefined && extra.technique.double_sided === 1 ) { + + material.side = THREE.DoubleSide; + + } + + return material; + + } + + function getMaterial( id ) { + + return getBuild( library.materials[ id ], buildMaterial ); + + } + + // camera + + function parseCamera( xml ) { + + var data = { + name: xml.getAttribute( 'name' ) + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'optics': + data.optics = parseCameraOptics( child ); + break; + + } + + } + + library.cameras[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseCameraOptics( xml ) { + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + switch ( child.nodeName ) { + + case 'technique_common': + return parseCameraTechnique( child ); + + } + + } + + return {}; + + } + + function parseCameraTechnique( xml ) { + + var data = {}; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + switch ( child.nodeName ) { + + case 'perspective': + case 'orthographic': + + data.technique = child.nodeName; + data.parameters = parseCameraParameters( child ); + + break; + + } + + } + + return data; + + } + + function parseCameraParameters( xml ) { + + var data = {}; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + switch ( child.nodeName ) { + + case 'xfov': + case 'yfov': + case 'xmag': + case 'ymag': + case 'znear': + case 'zfar': + case 'aspect_ratio': + data[ child.nodeName ] = parseFloat( child.textContent ); + break; + + } + + } + + return data; + + } + + function buildCamera( data ) { + + var camera; + + switch ( data.optics.technique ) { + + case 'perspective': + camera = new THREE.PerspectiveCamera( + data.optics.parameters.yfov, + data.optics.parameters.aspect_ratio, + data.optics.parameters.znear, + data.optics.parameters.zfar + ); + break; + + case 'orthographic': + var ymag = data.optics.parameters.ymag; + var xmag = data.optics.parameters.xmag; + var aspectRatio = data.optics.parameters.aspect_ratio; + + xmag = ( xmag === undefined ) ? ( ymag * aspectRatio ) : xmag; + ymag = ( ymag === undefined ) ? ( xmag / aspectRatio ) : ymag; + + xmag *= 0.5; + ymag *= 0.5; + + camera = new THREE.OrthographicCamera( + - xmag, xmag, ymag, - ymag, // left, right, top, bottom + data.optics.parameters.znear, + data.optics.parameters.zfar + ); + break; + + default: + camera = new THREE.PerspectiveCamera(); + break; + + } + + camera.name = data.name || ''; + + return camera; + + } + + function getCamera( id ) { + + var data = library.cameras[ id ]; + + if ( data !== undefined ) { + + return getBuild( data, buildCamera ); + + } + + console.warn( 'THREE.ColladaLoader: Couldn\'t find camera with ID:', id ); + + return null; + + } + + // light + + function parseLight( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'technique_common': + data = parseLightTechnique( child ); + break; + + } + + } + + library.lights[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseLightTechnique( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'directional': + case 'point': + case 'spot': + case 'ambient': + + data.technique = child.nodeName; + data.parameters = parseLightParameters( child ); + + } + + } + + return data; + + } + + function parseLightParameters( xml ) { + + var data = {}; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'color': + var array = parseFloats( child.textContent ); + data.color = new THREE.Color().fromArray( array ); + break; + + case 'falloff_angle': + data.falloffAngle = parseFloat( child.textContent ); + break; + + case 'quadratic_attenuation': + var f = parseFloat( child.textContent ); + data.distance = f ? Math.sqrt( 1 / f ) : 0; + break; + + } + + } + + return data; + + } + + function buildLight( data ) { + + var light; + + switch ( data.technique ) { + + case 'directional': + light = new THREE.DirectionalLight(); + break; + + case 'point': + light = new THREE.PointLight(); + break; + + case 'spot': + light = new THREE.SpotLight(); + break; + + case 'ambient': + light = new THREE.AmbientLight(); + break; + + } + + if ( data.parameters.color ) light.color.copy( data.parameters.color ); + if ( data.parameters.distance ) light.distance = data.parameters.distance; + + return light; + + } + + function getLight( id ) { + + var data = library.lights[ id ]; + + if ( data !== undefined ) { + + return getBuild( data, buildLight ); + + } + + console.warn( 'THREE.ColladaLoader: Couldn\'t find light with ID:', id ); + + return null; + + } + + // geometry + + function parseGeometry( xml ) { + + var data = { + name: xml.getAttribute( 'name' ), + sources: {}, + vertices: {}, + primitives: [] + }; + + var mesh = getElementsByTagName( xml, 'mesh' )[ 0 ]; + + // the following tags inside geometry are not supported yet (see https://github.com/mrdoob/three.js/pull/12606): convex_mesh, spline, brep + if ( mesh === undefined ) return; + + for ( var i = 0; i < mesh.childNodes.length; i ++ ) { + + var child = mesh.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + var id = child.getAttribute( 'id' ); + + switch ( child.nodeName ) { + + case 'source': + data.sources[ id ] = parseSource( child ); + break; + + case 'vertices': + // data.sources[ id ] = data.sources[ parseId( getElementsByTagName( child, 'input' )[ 0 ].getAttribute( 'source' ) ) ]; + data.vertices = parseGeometryVertices( child ); + break; + + case 'polygons': + console.warn( 'THREE.ColladaLoader: Unsupported primitive type: ', child.nodeName ); + break; + + case 'lines': + case 'linestrips': + case 'polylist': + case 'triangles': + data.primitives.push( parseGeometryPrimitive( child ) ); + break; + + default: + console.log( child ); + + } + + } + + library.geometries[ xml.getAttribute( 'id' ) ] = data; + + } + + function parseSource( xml ) { + + var data = { + array: [], + stride: 3 + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'float_array': + data.array = parseFloats( child.textContent ); + break; + + case 'Name_array': + data.array = parseStrings( child.textContent ); + break; + + case 'technique_common': + var accessor = getElementsByTagName( child, 'accessor' )[ 0 ]; + + if ( accessor !== undefined ) { + + data.stride = parseInt( accessor.getAttribute( 'stride' ) ); + + } + break; + + } + + } + + return data; + + } + + function parseGeometryVertices( xml ) { + + var data = {}; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + data[ child.getAttribute( 'semantic' ) ] = parseId( child.getAttribute( 'source' ) ); + + } + + return data; + + } + + function parseGeometryPrimitive( xml ) { + + var primitive = { + type: xml.nodeName, + material: xml.getAttribute( 'material' ), + count: parseInt( xml.getAttribute( 'count' ) ), + inputs: {}, + stride: 0, + hasUV: false + }; + + for ( var i = 0, l = xml.childNodes.length; i < l; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'input': + var id = parseId( child.getAttribute( 'source' ) ); + var semantic = child.getAttribute( 'semantic' ); + var offset = parseInt( child.getAttribute( 'offset' ) ); + var set = parseInt( child.getAttribute( 'set' ) ); + var inputname = ( set > 0 ? semantic + set : semantic ); + primitive.inputs[ inputname ] = { id: id, offset: offset }; + primitive.stride = Math.max( primitive.stride, offset + 1 ); + if ( semantic === 'TEXCOORD' ) primitive.hasUV = true; + break; + + case 'vcount': + primitive.vcount = parseInts( child.textContent ); + break; + + case 'p': + primitive.p = parseInts( child.textContent ); + break; + + } + + } + + return primitive; + + } + + function groupPrimitives( primitives ) { + + var build = {}; + + for ( var i = 0; i < primitives.length; i ++ ) { + + var primitive = primitives[ i ]; + + if ( build[ primitive.type ] === undefined ) build[ primitive.type ] = []; + + build[ primitive.type ].push( primitive ); + + } + + return build; + + } + + function checkUVCoordinates( primitives ) { + + var count = 0; + + for ( var i = 0, l = primitives.length; i < l; i ++ ) { + + var primitive = primitives[ i ]; + + if ( primitive.hasUV === true ) { + + count ++; + + } + + } + + if ( count > 0 && count < primitives.length ) { + + primitives.uvsNeedsFix = true; + + } + + } + + function buildGeometry( data ) { + + var build = {}; + + var sources = data.sources; + var vertices = data.vertices; + var primitives = data.primitives; + + if ( primitives.length === 0 ) return {}; + + // our goal is to create one buffer geometry for a single type of primitives + // first, we group all primitives by their type + + var groupedPrimitives = groupPrimitives( primitives ); + + for ( var type in groupedPrimitives ) { + + var primitiveType = groupedPrimitives[ type ]; + + // second, ensure consistent uv coordinates for each type of primitives (polylist,triangles or lines) + + checkUVCoordinates( primitiveType ); + + // third, create a buffer geometry for each type of primitives + + build[ type ] = buildGeometryType( primitiveType, sources, vertices ); + + } + + return build; + + } + + function buildGeometryType( primitives, sources, vertices ) { + + var build = {}; + + var position = { array: [], stride: 0 }; + var normal = { array: [], stride: 0 }; + var uv = { array: [], stride: 0 }; + var uv2 = { array: [], stride: 0 }; + var color = { array: [], stride: 0 }; + + var skinIndex = { array: [], stride: 4 }; + var skinWeight = { array: [], stride: 4 }; + + var geometry = new THREE.BufferGeometry(); + + var materialKeys = []; + + var start = 0; + + for ( var p = 0; p < primitives.length; p ++ ) { + + var primitive = primitives[ p ]; + var inputs = primitive.inputs; + + // groups + + var count = 0; + + switch ( primitive.type ) { + + case 'lines': + case 'linestrips': + count = primitive.count * 2; + break; + + case 'triangles': + count = primitive.count * 3; + break; + + case 'polylist': + + for ( var g = 0; g < primitive.count; g ++ ) { + + var vc = primitive.vcount[ g ]; + + switch ( vc ) { + + case 3: + count += 3; // single triangle + break; + + case 4: + count += 6; // quad, subdivided into two triangles + break; + + default: + count += ( vc - 2 ) * 3; // polylist with more than four vertices + break; + + } + + } + + break; + + default: + console.warn( 'THREE.ColladaLoader: Unknow primitive type:', primitive.type ); + + } + + geometry.addGroup( start, count, p ); + start += count; + + // material + + if ( primitive.material ) { + + materialKeys.push( primitive.material ); + + } + + // geometry data + + for ( var name in inputs ) { + + var input = inputs[ name ]; + + switch ( name ) { + + case 'VERTEX': + for ( var key in vertices ) { + + var id = vertices[ key ]; + + switch ( key ) { + + case 'POSITION': + var prevLength = position.array.length; + buildGeometryData( primitive, sources[ id ], input.offset, position.array ); + position.stride = sources[ id ].stride; + + if ( sources.skinWeights && sources.skinIndices ) { + + buildGeometryData( primitive, sources.skinIndices, input.offset, skinIndex.array ); + buildGeometryData( primitive, sources.skinWeights, input.offset, skinWeight.array ); + + } + + // see #3803 + + if ( primitive.hasUV === false && primitives.uvsNeedsFix === true ) { + + var count = ( position.array.length - prevLength ) / position.stride; + + for ( var i = 0; i < count; i ++ ) { + + // fill missing uv coordinates + + uv.array.push( 0, 0 ); + + } + + } + break; + + case 'NORMAL': + buildGeometryData( primitive, sources[ id ], input.offset, normal.array ); + normal.stride = sources[ id ].stride; + break; + + case 'COLOR': + buildGeometryData( primitive, sources[ id ], input.offset, color.array ); + color.stride = sources[ id ].stride; + break; + + case 'TEXCOORD': + buildGeometryData( primitive, sources[ id ], input.offset, uv.array ); + uv.stride = sources[ id ].stride; + break; + + case 'TEXCOORD1': + buildGeometryData( primitive, sources[ id ], input.offset, uv2.array ); + uv.stride = sources[ id ].stride; + break; + + default: + console.warn( 'THREE.ColladaLoader: Semantic "%s" not handled in geometry build process.', key ); + + } + + } + break; + + case 'NORMAL': + buildGeometryData( primitive, sources[ input.id ], input.offset, normal.array ); + normal.stride = sources[ input.id ].stride; + break; + + case 'COLOR': + buildGeometryData( primitive, sources[ input.id ], input.offset, color.array ); + color.stride = sources[ input.id ].stride; + break; + + case 'TEXCOORD': + buildGeometryData( primitive, sources[ input.id ], input.offset, uv.array ); + uv.stride = sources[ input.id ].stride; + break; + + case 'TEXCOORD1': + buildGeometryData( primitive, sources[ input.id ], input.offset, uv2.array ); + uv2.stride = sources[ input.id ].stride; + break; + + } + + } + + } + + // build geometry + + if ( position.array.length > 0 ) geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( position.array, position.stride ) ); + if ( normal.array.length > 0 ) geometry.addAttribute( 'normal', new THREE.Float32BufferAttribute( normal.array, normal.stride ) ); + if ( color.array.length > 0 ) geometry.addAttribute( 'color', new THREE.Float32BufferAttribute( color.array, color.stride ) ); + if ( uv.array.length > 0 ) geometry.addAttribute( 'uv', new THREE.Float32BufferAttribute( uv.array, uv.stride ) ); + if ( uv2.array.length > 0 ) geometry.addAttribute( 'uv2', new THREE.Float32BufferAttribute( uv2.array, uv2.stride ) ); + + if ( skinIndex.array.length > 0 ) geometry.addAttribute( 'skinIndex', new THREE.Float32BufferAttribute( skinIndex.array, skinIndex.stride ) ); + if ( skinWeight.array.length > 0 ) geometry.addAttribute( 'skinWeight', new THREE.Float32BufferAttribute( skinWeight.array, skinWeight.stride ) ); + + build.data = geometry; + build.type = primitives[ 0 ].type; + build.materialKeys = materialKeys; + + return build; + + } + + function buildGeometryData( primitive, source, offset, array ) { + + var indices = primitive.p; + var stride = primitive.stride; + var vcount = primitive.vcount; + + function pushVector( i ) { + + var index = indices[ i + offset ] * sourceStride; + var length = index + sourceStride; + + for ( ; index < length; index ++ ) { + + array.push( sourceArray[ index ] ); + + } + + } + + var sourceArray = source.array; + var sourceStride = source.stride; + + if ( primitive.vcount !== undefined ) { + + var index = 0; + + for ( var i = 0, l = vcount.length; i < l; i ++ ) { + + var count = vcount[ i ]; + + if ( count === 4 ) { + + var a = index + stride * 0; + var b = index + stride * 1; + var c = index + stride * 2; + var d = index + stride * 3; + + pushVector( a ); pushVector( b ); pushVector( d ); + pushVector( b ); pushVector( c ); pushVector( d ); + + } else if ( count === 3 ) { + + var a = index + stride * 0; + var b = index + stride * 1; + var c = index + stride * 2; + + pushVector( a ); pushVector( b ); pushVector( c ); + + } else if ( count > 4 ) { + + for ( var k = 1, kl = ( count - 2 ); k <= kl; k ++ ) { + + var a = index + stride * 0; + var b = index + stride * k; + var c = index + stride * ( k + 1 ); + + pushVector( a ); pushVector( b ); pushVector( c ); + + } + + } + + index += stride * count; + + } + + } else { + + for ( var i = 0, l = indices.length; i < l; i += stride ) { + + pushVector( i ); + + } + + } + + } + + function getGeometry( id ) { + + return getBuild( library.geometries[ id ], buildGeometry ); + + } + + // kinematics + + function parseKinematicsModel( xml ) { + + var data = { + name: xml.getAttribute( 'name' ) || '', + joints: {}, + links: [] + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'technique_common': + parseKinematicsTechniqueCommon( child, data ); + break; + + } + + } + + library.kinematicsModels[ xml.getAttribute( 'id' ) ] = data; + + } + + function buildKinematicsModel( data ) { + + if ( data.build !== undefined ) return data.build; + + return data; + + } + + function getKinematicsModel( id ) { + + return getBuild( library.kinematicsModels[ id ], buildKinematicsModel ); + + } + + function parseKinematicsTechniqueCommon( xml, data ) { + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'joint': + data.joints[ child.getAttribute( 'sid' ) ] = parseKinematicsJoint( child ); + break; + + case 'link': + data.links.push( parseKinematicsLink( child ) ); + break; + + } + + } + + } + + function parseKinematicsJoint( xml ) { + + var data; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'prismatic': + case 'revolute': + data = parseKinematicsJointParameter( child ); + break; + + } + + } + + return data; + + } + + function parseKinematicsJointParameter( xml, data ) { + + var data = { + sid: xml.getAttribute( 'sid' ), + name: xml.getAttribute( 'name' ) || '', + axis: new THREE.Vector3(), + limits: { + min: 0, + max: 0 + }, + type: xml.nodeName, + static: false, + zeroPosition: 0, + middlePosition: 0 + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'axis': + var array = parseFloats( child.textContent ); + data.axis.fromArray( array ); + break; + case 'limits': + var max = child.getElementsByTagName( 'max' )[ 0 ]; + var min = child.getElementsByTagName( 'min' )[ 0 ]; + + data.limits.max = parseFloat( max.textContent ); + data.limits.min = parseFloat( min.textContent ); + break; + + } + + } + + // if min is equal to or greater than max, consider the joint static + + if ( data.limits.min >= data.limits.max ) { + + data.static = true; + + } + + // calculate middle position + + data.middlePosition = ( data.limits.min + data.limits.max ) / 2.0; + + return data; + + } + + function parseKinematicsLink( xml ) { + + var data = { + sid: xml.getAttribute( 'sid' ), + name: xml.getAttribute( 'name' ) || '', + attachments: [], + transforms: [] + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'attachment_full': + data.attachments.push( parseKinematicsAttachment( child ) ); + break; + + case 'matrix': + case 'translate': + case 'rotate': + data.transforms.push( parseKinematicsTransform( child ) ); + break; + + } + + } + + return data; + + } + + function parseKinematicsAttachment( xml ) { + + var data = { + joint: xml.getAttribute( 'joint' ).split( '/' ).pop(), + transforms: [], + links: [] + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'link': + data.links.push( parseKinematicsLink( child ) ); + break; + + case 'matrix': + case 'translate': + case 'rotate': + data.transforms.push( parseKinematicsTransform( child ) ); + break; + + } + + } + + return data; + + } + + function parseKinematicsTransform( xml ) { + + var data = { + type: xml.nodeName + }; + + var array = parseFloats( xml.textContent ); + + switch ( data.type ) { + + case 'matrix': + data.obj = new THREE.Matrix4(); + data.obj.fromArray( array ).transpose(); + break; + + case 'translate': + data.obj = new THREE.Vector3(); + data.obj.fromArray( array ); + break; + + case 'rotate': + data.obj = new THREE.Vector3(); + data.obj.fromArray( array ); + data.angle = THREE.Math.degToRad( array[ 3 ] ); + break; + + } + + return data; + + } + + // physics + + function parsePhysicsModel( xml ) { + + var data = { + name: xml.getAttribute( 'name' ) || '', + rigidBodies: {} + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'rigid_body': + data.rigidBodies[ child.getAttribute( 'name' ) ] = {}; + parsePhysicsRigidBody( child, data.rigidBodies[ child.getAttribute( 'name' ) ] ); + break; + + } + + } + + library.physicsModels[ xml.getAttribute( 'id' ) ] = data; + + } + + function parsePhysicsRigidBody( xml, data ) { + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'technique_common': + parsePhysicsTechniqueCommon( child, data ); + break; + + } + + } + + } + + function parsePhysicsTechniqueCommon( xml, data ) { + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'inertia': + data.inertia = parseFloats( child.textContent ); + break; + + case 'mass': + data.mass = parseFloats( child.textContent )[ 0 ]; + break; + + } + + } + + } + + // scene + + function parseKinematicsScene( xml ) { + + var data = { + bindJointAxis: [] + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'bind_joint_axis': + data.bindJointAxis.push( parseKinematicsBindJointAxis( child ) ); + break; + + } + + } + + library.kinematicsScenes[ parseId( xml.getAttribute( 'url' ) ) ] = data; + + } + + function parseKinematicsBindJointAxis( xml ) { + + var data = { + target: xml.getAttribute( 'target' ).split( '/' ).pop() + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'axis': + var param = child.getElementsByTagName( 'param' )[ 0 ]; + data.axis = param.textContent; + var tmpJointIndex = data.axis.split( 'inst_' ).pop().split( 'axis' )[ 0 ]; + data.jointIndex = tmpJointIndex.substr( 0, tmpJointIndex.length - 1 ); + break; + + } + + } + + return data; + + } + + function buildKinematicsScene( data ) { + + if ( data.build !== undefined ) return data.build; + + return data; + + } + + function getKinematicsScene( id ) { + + return getBuild( library.kinematicsScenes[ id ], buildKinematicsScene ); + + } + + function setupKinematics() { + + var kinematicsModelId = Object.keys( library.kinematicsModels )[ 0 ]; + var kinematicsSceneId = Object.keys( library.kinematicsScenes )[ 0 ]; + var visualSceneId = Object.keys( library.visualScenes )[ 0 ]; + + if ( kinematicsModelId === undefined || kinematicsSceneId === undefined ) return; + + var kinematicsModel = getKinematicsModel( kinematicsModelId ); + var kinematicsScene = getKinematicsScene( kinematicsSceneId ); + var visualScene = getVisualScene( visualSceneId ); + + var bindJointAxis = kinematicsScene.bindJointAxis; + var jointMap = {}; + + for ( var i = 0, l = bindJointAxis.length; i < l; i ++ ) { + + var axis = bindJointAxis[ i ]; + + // the result of the following query is an element of type 'translate', 'rotate','scale' or 'matrix' + + var targetElement = collada.querySelector( '[sid="' + axis.target + '"]' ); + + if ( targetElement ) { + + // get the parent of the transfrom element + + var parentVisualElement = targetElement.parentElement; + + // connect the joint of the kinematics model with the element in the visual scene + + connect( axis.jointIndex, parentVisualElement ); + + } + + } + + function connect( jointIndex, visualElement ) { + + var visualElementName = visualElement.getAttribute( 'name' ); + var joint = kinematicsModel.joints[ jointIndex ]; + + visualScene.traverse( function ( object ) { + + if ( object.name === visualElementName ) { + + jointMap[ jointIndex ] = { + object: object, + transforms: buildTransformList( visualElement ), + joint: joint, + position: joint.zeroPosition + }; + + } + + } ); + + } + + var m0 = new THREE.Matrix4(); + + kinematics = { + + joints: kinematicsModel && kinematicsModel.joints, + + getJointValue: function ( jointIndex ) { + + var jointData = jointMap[ jointIndex ]; + + if ( jointData ) { + + return jointData.position; + + } else { + + console.warn( 'THREE.ColladaLoader: Joint ' + jointIndex + ' doesn\'t exist.' ); + + } + + }, + + setJointValue: function ( jointIndex, value ) { + + var jointData = jointMap[ jointIndex ]; + + if ( jointData ) { + + var joint = jointData.joint; + + if ( value > joint.limits.max || value < joint.limits.min ) { + + console.warn( 'THREE.ColladaLoader: Joint ' + jointIndex + ' value ' + value + ' outside of limits (min: ' + joint.limits.min + ', max: ' + joint.limits.max + ').' ); + + } else if ( joint.static ) { + + console.warn( 'THREE.ColladaLoader: Joint ' + jointIndex + ' is static.' ); + + } else { + + var object = jointData.object; + var axis = joint.axis; + var transforms = jointData.transforms; + + matrix.identity(); + + // each update, we have to apply all transforms in the correct order + + for ( var i = 0; i < transforms.length; i ++ ) { + + var transform = transforms[ i ]; + + // if there is a connection of the transform node with a joint, apply the joint value + + if ( transform.sid && transform.sid.indexOf( jointIndex ) !== - 1 ) { + + switch ( joint.type ) { + + case 'revolute': + matrix.multiply( m0.makeRotationAxis( axis, THREE.Math.degToRad( value ) ) ); + break; + + case 'prismatic': + matrix.multiply( m0.makeTranslation( axis.x * value, axis.y * value, axis.z * value ) ); + break; + + default: + console.warn( 'THREE.ColladaLoader: Unknown joint type: ' + joint.type ); + break; + + } + + } else { + + switch ( transform.type ) { + + case 'matrix': + matrix.multiply( transform.obj ); + break; + + case 'translate': + matrix.multiply( m0.makeTranslation( transform.obj.x, transform.obj.y, transform.obj.z ) ); + break; + + case 'scale': + matrix.scale( transform.obj ); + break; + + case 'rotate': + matrix.multiply( m0.makeRotationAxis( transform.obj, transform.angle ) ); + break; + + } + + } + + } + + object.matrix.copy( matrix ); + object.matrix.decompose( object.position, object.quaternion, object.scale ); + + jointMap[ jointIndex ].position = value; + + } + + } else { + + console.log( 'THREE.ColladaLoader: ' + jointIndex + ' does not exist.' ); + + } + + } + + }; + + } + + function buildTransformList( node ) { + + var transforms = []; + + var xml = collada.querySelector( '[id="' + node.id + '"]' ); + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'matrix': + var array = parseFloats( child.textContent ); + var matrix = new THREE.Matrix4().fromArray( array ).transpose(); + transforms.push( { + sid: child.getAttribute( 'sid' ), + type: child.nodeName, + obj: matrix + } ); + break; + + case 'translate': + case 'scale': + var array = parseFloats( child.textContent ); + var vector = new THREE.Vector3().fromArray( array ); + transforms.push( { + sid: child.getAttribute( 'sid' ), + type: child.nodeName, + obj: vector + } ); + break; + + case 'rotate': + var array = parseFloats( child.textContent ); + var vector = new THREE.Vector3().fromArray( array ); + var angle = THREE.Math.degToRad( array[ 3 ] ); + transforms.push( { + sid: child.getAttribute( 'sid' ), + type: child.nodeName, + obj: vector, + angle: angle + } ); + break; + + } + + } + + return transforms; + + } + + // nodes + + function prepareNodes( xml ) { + + var elements = xml.getElementsByTagName( 'node' ); + + // ensure all node elements have id attributes + + for ( var i = 0; i < elements.length; i ++ ) { + + var element = elements[ i ]; + + if ( element.hasAttribute( 'id' ) === false ) { + + element.setAttribute( 'id', generateId() ); + + } + + } + + } + + var matrix = new THREE.Matrix4(); + var vector = new THREE.Vector3(); + + function parseNode( xml ) { + + var data = { + name: xml.getAttribute( 'name' ) || '', + type: xml.getAttribute( 'type' ), + id: xml.getAttribute( 'id' ), + sid: xml.getAttribute( 'sid' ), + matrix: new THREE.Matrix4(), + nodes: [], + instanceCameras: [], + instanceControllers: [], + instanceLights: [], + instanceGeometries: [], + instanceNodes: [], + transforms: {} + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + if ( child.nodeType !== 1 ) continue; + + switch ( child.nodeName ) { + + case 'node': + data.nodes.push( child.getAttribute( 'id' ) ); + parseNode( child ); + break; + + case 'instance_camera': + data.instanceCameras.push( parseId( child.getAttribute( 'url' ) ) ); + break; + + case 'instance_controller': + data.instanceControllers.push( parseNodeInstance( child ) ); + break; + + case 'instance_light': + data.instanceLights.push( parseId( child.getAttribute( 'url' ) ) ); + break; + + case 'instance_geometry': + data.instanceGeometries.push( parseNodeInstance( child ) ); + break; + + case 'instance_node': + data.instanceNodes.push( parseId( child.getAttribute( 'url' ) ) ); + break; + + case 'matrix': + var array = parseFloats( child.textContent ); + data.matrix.multiply( matrix.fromArray( array ).transpose() ); + data.transforms[ child.getAttribute( 'sid' ) ] = child.nodeName; + break; + + case 'translate': + var array = parseFloats( child.textContent ); + vector.fromArray( array ); + data.matrix.multiply( matrix.makeTranslation( vector.x, vector.y, vector.z ) ); + data.transforms[ child.getAttribute( 'sid' ) ] = child.nodeName; + break; + + case 'rotate': + var array = parseFloats( child.textContent ); + var angle = THREE.Math.degToRad( array[ 3 ] ); + data.matrix.multiply( matrix.makeRotationAxis( vector.fromArray( array ), angle ) ); + data.transforms[ child.getAttribute( 'sid' ) ] = child.nodeName; + break; + + case 'scale': + var array = parseFloats( child.textContent ); + data.matrix.scale( vector.fromArray( array ) ); + data.transforms[ child.getAttribute( 'sid' ) ] = child.nodeName; + break; + + case 'extra': + break; + + default: + console.log( child ); + + } + + } + + if ( hasNode( data.id ) ) { + + console.warn( 'THREE.ColladaLoader: There is already a node with ID %s. Exclude current node from further processing.', data.id ); + + } else { + + library.nodes[ data.id ] = data; + + } + + return data; + + } + + function parseNodeInstance( xml ) { + + var data = { + id: parseId( xml.getAttribute( 'url' ) ), + materials: {}, + skeletons: [] + }; + + for ( var i = 0; i < xml.childNodes.length; i ++ ) { + + var child = xml.childNodes[ i ]; + + switch ( child.nodeName ) { + + case 'bind_material': + var instances = child.getElementsByTagName( 'instance_material' ); + + for ( var j = 0; j < instances.length; j ++ ) { + + var instance = instances[ j ]; + var symbol = instance.getAttribute( 'symbol' ); + var target = instance.getAttribute( 'target' ); + + data.materials[ symbol ] = parseId( target ); + + } + + break; + + case 'skeleton': + data.skeletons.push( parseId( child.textContent ) ); + break; + + default: + break; + + } + + } + + return data; + + } + + function buildSkeleton( skeletons, joints ) { + + var boneData = []; + var sortedBoneData = []; + + var i, j, data; + + // a skeleton can have multiple root bones. collada expresses this + // situtation with multiple "skeleton" tags per controller instance + + for ( i = 0; i < skeletons.length; i ++ ) { + + var skeleton = skeletons[ i ]; + + var root; + + if ( hasNode( skeleton ) ) { + + root = getNode( skeleton ); + buildBoneHierarchy( root, joints, boneData ); + + } else if ( hasVisualScene( skeleton ) ) { + + // handle case where the skeleton refers to the visual scene (#13335) + + var visualScene = library.visualScenes[ skeleton ]; + var children = visualScene.children; + + for ( var j = 0; j < children.length; j ++ ) { + + var child = children[ j ]; + + if ( child.type === 'JOINT' ) { + + var root = getNode( child.id ); + buildBoneHierarchy( root, joints, boneData ); + + } + + } + + } else { + + console.error( 'THREE.ColladaLoader: Unable to find root bone of skeleton with ID:', skeleton ); + + } + + } + + // sort bone data (the order is defined in the corresponding controller) + + for ( i = 0; i < joints.length; i ++ ) { + + for ( j = 0; j < boneData.length; j ++ ) { + + data = boneData[ j ]; + + if ( data.bone.name === joints[ i ].name ) { + + sortedBoneData[ i ] = data; + data.processed = true; + break; + + } + + } + + } + + // add unprocessed bone data at the end of the list + + for ( i = 0; i < boneData.length; i ++ ) { + + data = boneData[ i ]; + + if ( data.processed === false ) { + + sortedBoneData.push( data ); + data.processed = true; + + } + + } + + // setup arrays for skeleton creation + + var bones = []; + var boneInverses = []; + + for ( i = 0; i < sortedBoneData.length; i ++ ) { + + data = sortedBoneData[ i ]; + + bones.push( data.bone ); + boneInverses.push( data.boneInverse ); + + } + + return new THREE.Skeleton( bones, boneInverses ); + + } + + function buildBoneHierarchy( root, joints, boneData ) { + + // setup bone data from visual scene + + root.traverse( function ( object ) { + + if ( object.isBone === true ) { + + var boneInverse; + + // retrieve the boneInverse from the controller data + + for ( var i = 0; i < joints.length; i ++ ) { + + var joint = joints[ i ]; + + if ( joint.name === object.name ) { + + boneInverse = joint.boneInverse; + break; + + } + + } + + if ( boneInverse === undefined ) { + + // Unfortunately, there can be joints in the visual scene that are not part of the + // corresponding controller. In this case, we have to create a dummy boneInverse matrix + // for the respective bone. This bone won't affect any vertices, because there are no skin indices + // and weights defined for it. But we still have to add the bone to the sorted bone list in order to + // ensure a correct animation of the model. + + boneInverse = new THREE.Matrix4(); + + } + + boneData.push( { bone: object, boneInverse: boneInverse, processed: false } ); + + } + + } ); + + } + + function buildNode( data ) { + + var objects = []; + + var matrix = data.matrix; + var nodes = data.nodes; + var type = data.type; + var instanceCameras = data.instanceCameras; + var instanceControllers = data.instanceControllers; + var instanceLights = data.instanceLights; + var instanceGeometries = data.instanceGeometries; + var instanceNodes = data.instanceNodes; + + // nodes + + for ( var i = 0, l = nodes.length; i < l; i ++ ) { + + objects.push( getNode( nodes[ i ] ) ); + + } + + // instance cameras + + for ( var i = 0, l = instanceCameras.length; i < l; i ++ ) { + + var instanceCamera = getCamera( instanceCameras[ i ] ); + + if ( instanceCamera !== null ) { + + objects.push( instanceCamera.clone() ); + + } + + } + + // instance controllers + + for ( var i = 0, l = instanceControllers.length; i < l; i ++ ) { + + var instance = instanceControllers[ i ]; + var controller = getController( instance.id ); + var geometries = getGeometry( controller.id ); + var newObjects = buildObjects( geometries, instance.materials ); + + var skeletons = instance.skeletons; + var joints = controller.skin.joints; + + var skeleton = buildSkeleton( skeletons, joints ); + + for ( var j = 0, jl = newObjects.length; j < jl; j ++ ) { + + var object = newObjects[ j ]; + + if ( object.isSkinnedMesh ) { + + object.bind( skeleton, controller.skin.bindMatrix ); + object.normalizeSkinWeights(); + + } + + objects.push( object ); + + } + + } + + // instance lights + + for ( var i = 0, l = instanceLights.length; i < l; i ++ ) { + + var instanceLight = getLight( instanceLights[ i ] ); + + if ( instanceLight !== null ) { + + objects.push( instanceLight.clone() ); + + } + + } + + // instance geometries + + for ( var i = 0, l = instanceGeometries.length; i < l; i ++ ) { + + var instance = instanceGeometries[ i ]; + + // a single geometry instance in collada can lead to multiple object3Ds. + // this is the case when primitives are combined like triangles and lines + + var geometries = getGeometry( instance.id ); + var newObjects = buildObjects( geometries, instance.materials ); + + for ( var j = 0, jl = newObjects.length; j < jl; j ++ ) { + + objects.push( newObjects[ j ] ); + + } + + } + + // instance nodes + + for ( var i = 0, l = instanceNodes.length; i < l; i ++ ) { + + objects.push( getNode( instanceNodes[ i ] ).clone() ); + + } + + var object; + + if ( nodes.length === 0 && objects.length === 1 ) { + + object = objects[ 0 ]; + + } else { + + object = ( type === 'JOINT' ) ? new THREE.Bone() : new THREE.Group(); + + for ( var i = 0; i < objects.length; i ++ ) { + + object.add( objects[ i ] ); + + } + + } + + if ( object.name === '' ) { + + object.name = ( type === 'JOINT' ) ? data.sid : data.name; + + } + + object.matrix.copy( matrix ); + object.matrix.decompose( object.position, object.quaternion, object.scale ); + + return object; + + } + + var fallbackMaterial = new THREE.MeshBasicMaterial( { color: 0xff00ff } ); + + function resolveMaterialBinding( keys, instanceMaterials ) { + + var materials = []; + + for ( var i = 0, l = keys.length; i < l; i ++ ) { + + var id = instanceMaterials[ keys[ i ] ]; + + if ( id === undefined ) { + + console.warn( 'THREE.ColladaLoader: Material with key %s not found. Apply fallback material.', keys[ i ] ); + materials.push( fallbackMaterial ); + + } else { + + materials.push( getMaterial( id ) ); + + } + + } + + return materials; + + } + + function buildObjects( geometries, instanceMaterials ) { + + var objects = []; + + for ( var type in geometries ) { + + var geometry = geometries[ type ]; + + var materials = resolveMaterialBinding( geometry.materialKeys, instanceMaterials ); + + // handle case if no materials are defined + + if ( materials.length === 0 ) { + + if ( type === 'lines' || type === 'linestrips' ) { + + materials.push( new THREE.LineBasicMaterial() ); + + } else { + + materials.push( new THREE.MeshPhongMaterial() ); + + } + + } + + // regard skinning + + var skinning = ( geometry.data.attributes.skinIndex !== undefined ); + + if ( skinning ) { + + for ( var i = 0, l = materials.length; i < l; i ++ ) { + + materials[ i ].skinning = true; + + } + + } + + // choose between a single or multi materials (material array) + + var material = ( materials.length === 1 ) ? materials[ 0 ] : materials; + + // now create a specific 3D object + + var object; + + switch ( type ) { + + case 'lines': + object = new THREE.LineSegments( geometry.data, material ); + break; + + case 'linestrips': + object = new THREE.Line( geometry.data, material ); + break; + + case 'triangles': + case 'polylist': + if ( skinning ) { + + object = new THREE.SkinnedMesh( geometry.data, material ); + + } else { + + object = new THREE.Mesh( geometry.data, material ); + + } + break; + + } + + objects.push( object ); + + } + + return objects; + + } + + function hasNode( id ) { + + return library.nodes[ id ] !== undefined; + + } + + function getNode( id ) { + + return getBuild( library.nodes[ id ], buildNode ); + + } + + // visual scenes + + function parseVisualScene( xml ) { + + var data = { + name: xml.getAttribute( 'name' ), + children: [] + }; + + prepareNodes( xml ); + + var elements = getElementsByTagName( xml, 'node' ); + + for ( var i = 0; i < elements.length; i ++ ) { + + data.children.push( parseNode( elements[ i ] ) ); + + } + + library.visualScenes[ xml.getAttribute( 'id' ) ] = data; + + } + + function buildVisualScene( data ) { + + var group = new THREE.Group(); + group.name = data.name; + + var children = data.children; + + for ( var i = 0; i < children.length; i ++ ) { + + var child = children[ i ]; + + group.add( getNode( child.id ) ); + + } + + return group; + + } + + function hasVisualScene( id ) { + + return library.visualScenes[ id ] !== undefined; + + } + + function getVisualScene( id ) { + + return getBuild( library.visualScenes[ id ], buildVisualScene ); + + } + + // scenes + + function parseScene( xml ) { + + var instance = getElementsByTagName( xml, 'instance_visual_scene' )[ 0 ]; + return getVisualScene( parseId( instance.getAttribute( 'url' ) ) ); + + } + + function setupAnimations() { + + var clips = library.clips; + + if ( isEmpty( clips ) === true ) { + + if ( isEmpty( library.animations ) === false ) { + + // if there are animations but no clips, we create a default clip for playback + + var tracks = []; + + for ( var id in library.animations ) { + + var animationTracks = getAnimation( id ); + + for ( var i = 0, l = animationTracks.length; i < l; i ++ ) { + + tracks.push( animationTracks[ i ] ); + + } + + } + + animations.push( new THREE.AnimationClip( 'default', - 1, tracks ) ); + + } + + } else { + + for ( var id in clips ) { + + animations.push( getAnimationClip( id ) ); + + } + + } + + } + + // convert the parser error element into text with each child elements text + // separated by new lines. + + function parserErrorToText( parserError ) { + + var result = ''; + var stack = [ parserError ]; + + while ( stack.length ) { + + var node = stack.shift(); + + if ( node.nodeType === Node.TEXT_NODE ) { + + result += node.textContent; + + } else { + + result += '\n'; + stack.push.apply( stack, node.childNodes ); + + } + + } + + return result.trim(); + + } + + if ( text.length === 0 ) { + + return { scene: new THREE.Scene() }; + + } + + var xml = new DOMParser().parseFromString( text, 'application/xml' ); + + var collada = getElementsByTagName( xml, 'COLLADA' )[ 0 ]; + + var parserError = xml.getElementsByTagName( 'parsererror' )[ 0 ]; + if ( parserError !== undefined ) { + + // Chrome will return parser error with a div in it + + var errorElement = getElementsByTagName( parserError, 'div' )[ 0 ]; + var errorText; + + if ( errorElement ) { + + errorText = errorElement.textContent; + + } else { + + errorText = parserErrorToText( parserError ); + + } + + console.error( 'THREE.ColladaLoader: Failed to parse collada file.\n', errorText ); + + return null; + + } + + // metadata + + var version = collada.getAttribute( 'version' ); + console.log( 'THREE.ColladaLoader: File version', version ); + + var asset = parseAsset( getElementsByTagName( collada, 'asset' )[ 0 ] ); + var textureLoader = new THREE.TextureLoader( this.manager ); + textureLoader.setPath( this.resourcePath || path ).setCrossOrigin( this.crossOrigin ); + + var tgaLoader; + + if ( THREE.TGALoader ) { + + tgaLoader = new THREE.TGALoader( this.manager ); + tgaLoader.setPath( this.resourcePath || path ); + + } + + // + + var animations = []; + var kinematics = {}; + var count = 0; + + // + + var library = { + animations: {}, + clips: {}, + controllers: {}, + images: {}, + effects: {}, + materials: {}, + cameras: {}, + lights: {}, + geometries: {}, + nodes: {}, + visualScenes: {}, + kinematicsModels: {}, + physicsModels: {}, + kinematicsScenes: {} + }; + + parseLibrary( collada, 'library_animations', 'animation', parseAnimation ); + parseLibrary( collada, 'library_animation_clips', 'animation_clip', parseAnimationClip ); + parseLibrary( collada, 'library_controllers', 'controller', parseController ); + parseLibrary( collada, 'library_images', 'image', parseImage ); + parseLibrary( collada, 'library_effects', 'effect', parseEffect ); + parseLibrary( collada, 'library_materials', 'material', parseMaterial ); + parseLibrary( collada, 'library_cameras', 'camera', parseCamera ); + parseLibrary( collada, 'library_lights', 'light', parseLight ); + parseLibrary( collada, 'library_geometries', 'geometry', parseGeometry ); + parseLibrary( collada, 'library_nodes', 'node', parseNode ); + parseLibrary( collada, 'library_visual_scenes', 'visual_scene', parseVisualScene ); + parseLibrary( collada, 'library_kinematics_models', 'kinematics_model', parseKinematicsModel ); + parseLibrary( collada, 'library_physics_models', 'physics_model', parsePhysicsModel ); + parseLibrary( collada, 'scene', 'instance_kinematics_scene', parseKinematicsScene ); + + buildLibrary( library.animations, buildAnimation ); + buildLibrary( library.clips, buildAnimationClip ); + buildLibrary( library.controllers, buildController ); + buildLibrary( library.images, buildImage ); + buildLibrary( library.effects, buildEffect ); + buildLibrary( library.materials, buildMaterial ); + buildLibrary( library.cameras, buildCamera ); + buildLibrary( library.lights, buildLight ); + buildLibrary( library.geometries, buildGeometry ); + buildLibrary( library.visualScenes, buildVisualScene ); + + setupAnimations(); + setupKinematics(); + + var scene = parseScene( getElementsByTagName( collada, 'scene' )[ 0 ] ); + + if ( asset.upAxis === 'Z_UP' ) { + + scene.quaternion.setFromEuler( new THREE.Euler( - Math.PI / 2, 0, 0 ) ); + + } + + scene.scale.multiplyScalar( asset.unit ); + + return { + animations: animations, + kinematics: kinematics, + library: library, + scene: scene + }; + + } + +} ); \ No newline at end of file diff --git a/app/static/app/js/vendor/MTLLoader.js b/app/static/app/js/vendor/MTLLoader.js index 41e4a43d..f5de8335 100644 --- a/app/static/app/js/vendor/MTLLoader.js +++ b/app/static/app/js/vendor/MTLLoader.js @@ -3,166 +3,122 @@ * * @author angelxuanchang */ -function MTLLoader( manager ) { - this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; +THREE.MTLLoader = function ( manager ) { + + THREE.Loader.call( this, manager ); }; -Object.assign(MTLLoader.prototype, THREE.EventDispatcher.prototype, { +THREE.MTLLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), { - /** - * Loads and parses a MTL asset from a URL. - * - * @param {String} url - URL to the MTL file. - * @param {Function} [onLoad] - Callback invoked with the loaded object. - * @param {Function} [onProgress] - Callback for download progress. - * @param {Function} [onError] - Callback for download errors. - * - * @see setPath setTexturePath - * - * @note In order for relative texture references to resolve correctly - * you must call setPath and/or setTexturePath explicitly prior to load. - */ - load: function ( url, onLoad, onProgress, onError ) { + constructor: THREE.MTLLoader, - var scope = this; + /** + * Loads and parses a MTL asset from a URL. + * + * @param {String} url - URL to the MTL file. + * @param {Function} [onLoad] - Callback invoked with the loaded object. + * @param {Function} [onProgress] - Callback for download progress. + * @param {Function} [onError] - Callback for download errors. + * + * @see setPath setResourcePath + * + * @note In order for relative texture references to resolve correctly + * you must call setResourcePath() explicitly prior to load. + */ + load: function ( url, onLoad, onProgress, onError ) { - var loader = new THREE.FileLoader( this.manager ); - loader.setPath( this.path ); - loader.load( url, function ( text ) { + var scope = this; - onLoad( scope.parse( text ) ); + var path = ( this.path === '' ) ? THREE.LoaderUtils.extractUrlBase( url ) : this.path; - }, onProgress, onError ); + var loader = new THREE.FileLoader( this.manager ); + loader.setPath( this.path ); + loader.load( url, function ( text ) { - }, + onLoad( scope.parse( text, path ) ); - /** - * Set base path for resolving references. - * If set this path will be prepended to each loaded and found reference. - * - * @see setTexturePath - * @param {String} path - * - * @example - * mtlLoader.setPath( 'assets/obj/' ); - * mtlLoader.load( 'my.mtl', ... ); - */ - setPath: function ( path ) { + }, onProgress, onError ); - this.path = path; + }, - }, + setMaterialOptions: function ( value ) { - /** - * Set base path for resolving texture references. - * If set this path will be prepended found texture reference. - * If not set and setPath is, it will be used as texture base path. - * - * @see setPath - * @param {String} path - * - * @example - * mtlLoader.setPath( 'assets/obj/' ); - * mtlLoader.setTexturePath( 'assets/textures/' ); - * mtlLoader.load( 'my.mtl', ... ); - */ - setTexturePath: function( path ) { + this.materialOptions = value; + return this; - this.texturePath = path; + }, - }, + /** + * Parses a MTL file. + * + * @param {String} text - Content of MTL file + * @return {THREE.MTLLoader.MaterialCreator} + * + * @see setPath setResourcePath + * + * @note In order for relative texture references to resolve correctly + * you must call setResourcePath() explicitly prior to parse. + */ + parse: function ( text, path ) { - setBaseUrl: function( path ) { + var lines = text.split( '\n' ); + var info = {}; + var delimiter_pattern = /\s+/; + var materialsInfo = {}; - console.warn( 'MTLLoader: .setBaseUrl() is deprecated. Use .setTexturePath( path ) for texture path or .setPath( path ) for general base path instead.' ); + for ( var i = 0; i < lines.length; i ++ ) { - this.setTexturePath( path ); + var line = lines[ i ]; + line = line.trim(); - }, + if ( line.length === 0 || line.charAt( 0 ) === '#' ) { - setCrossOrigin: function ( value ) { + // Blank line or comment ignore + continue; - this.crossOrigin = value; + } - }, + var pos = line.indexOf( ' ' ); - setMaterialOptions: function ( value ) { + var key = ( pos >= 0 ) ? line.substring( 0, pos ) : line; + key = key.toLowerCase(); - this.materialOptions = value; + var value = ( pos >= 0 ) ? line.substring( pos + 1 ) : ''; + value = value.trim(); - }, + if ( key === 'newmtl' ) { - /** - * Parses a MTL file. - * - * @param {String} text - Content of MTL file - * @return {MTLLoader.MaterialCreator} - * - * @see setPath setTexturePath - * - * @note In order for relative texture references to resolve correctly - * you must call setPath and/or setTexturePath explicitly prior to parse. - */ - parse: function ( text ) { + // New material - var lines = text.split( '\n' ); - var info = {}; - var delimiter_pattern = /\s+/; - var materialsInfo = {}; + info = { name: value }; + materialsInfo[ value ] = info; - for ( var i = 0; i < lines.length; i ++ ) { + } else { - var line = lines[ i ]; - line = line.trim(); + if ( key === 'ka' || key === 'kd' || key === 'ks' || key === 'ke' ) { - if ( line.length === 0 || line.charAt( 0 ) === '#' ) { + var ss = value.split( delimiter_pattern, 3 ); + info[ key ] = [ parseFloat( ss[ 0 ] ), parseFloat( ss[ 1 ] ), parseFloat( ss[ 2 ] ) ]; - // Blank line or comment ignore - continue; + } else { - } + info[ key ] = value; - var pos = line.indexOf( ' ' ); + } - var key = ( pos >= 0 ) ? line.substring( 0, pos ) : line; - key = key.toLowerCase(); + } - var value = ( pos >= 0 ) ? line.substring( pos + 1 ) : ''; - value = value.trim(); + } - if ( key === 'newmtl' ) { + var materialCreator = new THREE.MTLLoader.MaterialCreator( this.resourcePath || path, this.materialOptions ); + materialCreator.setCrossOrigin( this.crossOrigin ); + materialCreator.setManager( this.manager ); + materialCreator.setMaterials( materialsInfo ); + return materialCreator; - // New material - - info = { name: value }; - materialsInfo[ value ] = info; - - } else if ( info ) { - - if ( key === 'ka' || key === 'kd' || key === 'ks' ) { - - var ss = value.split( delimiter_pattern, 3 ); - info[ key ] = [ parseFloat( ss[ 0 ] ), parseFloat( ss[ 1 ] ), parseFloat( ss[ 2 ] ) ]; - - } else { - - info[ key ] = value; - - } - - } - - } - - var materialCreator = new MTLLoader.MaterialCreator( this.texturePath || this.path, this.materialOptions ); - materialCreator.setCrossOrigin( this.crossOrigin ); - materialCreator.setManager( this.manager ); - materialCreator.setMaterials( materialsInfo ); - return materialCreator; - - } + } } ); @@ -181,354 +137,395 @@ Object.assign(MTLLoader.prototype, THREE.EventDispatcher.prototype, { * @constructor */ -MTLLoader.MaterialCreator = function( baseUrl, options ) { +THREE.MTLLoader.MaterialCreator = function ( baseUrl, options ) { - this.baseUrl = baseUrl || ''; - this.options = options; - this.materialsInfo = {}; - this.materials = {}; - this.materialsArray = []; - this.nameLookup = {}; + this.baseUrl = baseUrl || ''; + this.options = options; + this.materialsInfo = {}; + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; - this.side = ( this.options && this.options.side ) ? this.options.side : THREE.FrontSide; - this.wrap = ( this.options && this.options.wrap ) ? this.options.wrap : THREE.RepeatWrapping; + this.side = ( this.options && this.options.side ) ? this.options.side : THREE.FrontSide; + this.wrap = ( this.options && this.options.wrap ) ? this.options.wrap : THREE.RepeatWrapping; }; -MTLLoader.MaterialCreator.prototype = { +THREE.MTLLoader.MaterialCreator.prototype = { - constructor: MTLLoader.MaterialCreator, + constructor: THREE.MTLLoader.MaterialCreator, - setCrossOrigin: function ( value ) { + crossOrigin: 'anonymous', - this.crossOrigin = value; + setCrossOrigin: function ( value ) { - }, + this.crossOrigin = value; + return this; - setManager: function ( value ) { + }, - this.manager = value; + setManager: function ( value ) { - }, + this.manager = value; - setMaterials: function( materialsInfo ) { + }, - this.materialsInfo = this.convert( materialsInfo ); - this.materials = {}; - this.materialsArray = []; - this.nameLookup = {}; + setMaterials: function ( materialsInfo ) { - }, + this.materialsInfo = this.convert( materialsInfo ); + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; - convert: function( materialsInfo ) { + }, - if ( ! this.options ) return materialsInfo; + convert: function ( materialsInfo ) { - var converted = {}; + if ( ! this.options ) return materialsInfo; - for ( var mn in materialsInfo ) { + var converted = {}; - // Convert materials info into normalized form based on options + for ( var mn in materialsInfo ) { - var mat = materialsInfo[ mn ]; + // Convert materials info into normalized form based on options - var covmat = {}; + var mat = materialsInfo[ mn ]; - converted[ mn ] = covmat; + var covmat = {}; - for ( var prop in mat ) { + converted[ mn ] = covmat; - var save = true; - var value = mat[ prop ]; - var lprop = prop.toLowerCase(); + for ( var prop in mat ) { - switch ( lprop ) { + var save = true; + var value = mat[ prop ]; + var lprop = prop.toLowerCase(); - case 'kd': - case 'ka': - case 'ks': + switch ( lprop ) { - // Diffuse color (color under white light) using RGB values + case 'kd': + case 'ka': + case 'ks': - if ( this.options && this.options.normalizeRGB ) { + // Diffuse color (color under white light) using RGB values - value = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ]; + if ( this.options && this.options.normalizeRGB ) { - } + value = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ]; - if ( this.options && this.options.ignoreZeroRGBs ) { + } - if ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) { + if ( this.options && this.options.ignoreZeroRGBs ) { - // ignore + if ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 2 ] === 0 ) { - save = false; + // ignore - } + save = false; - } + } - break; + } - default: + break; - break; - } + default: - if ( save ) { + break; - covmat[ lprop ] = value; + } - } + if ( save ) { - } + covmat[ lprop ] = value; - } + } - return converted; + } - }, + } - preload: function () { + return converted; - for ( var mn in this.materialsInfo ) { + }, - this.create( mn ); + preload: function () { - } + for ( var mn in this.materialsInfo ) { - }, + this.create( mn ); - getIndex: function( materialName ) { + } - return this.nameLookup[ materialName ]; + }, - }, + getIndex: function ( materialName ) { - getAsArray: function() { + return this.nameLookup[ materialName ]; - var index = 0; + }, - for ( var mn in this.materialsInfo ) { + getAsArray: function () { - this.materialsArray[ index ] = this.create( mn ); - this.nameLookup[ mn ] = index; - index ++; + var index = 0; - } + for ( var mn in this.materialsInfo ) { - return this.materialsArray; + this.materialsArray[ index ] = this.create( mn ); + this.nameLookup[ mn ] = index; + index ++; - }, + } - create: function ( materialName ) { + return this.materialsArray; - if ( this.materials[ materialName ] === undefined ) { + }, - this.createMaterial_( materialName ); + create: function ( materialName ) { - } + if ( this.materials[ materialName ] === undefined ) { - return this.materials[ materialName ]; + this.createMaterial_( materialName ); - }, + } - createMaterial_: function ( materialName ) { + return this.materials[ materialName ]; - // Create material + }, - var scope = this; - var mat = this.materialsInfo[ materialName ]; - var params = { + createMaterial_: function ( materialName ) { - name: materialName, - side: this.side + // Create material - }; + var scope = this; + var mat = this.materialsInfo[ materialName ]; + var params = { - var resolveURL = function ( baseUrl, url ) { + name: materialName, + side: this.side - if ( typeof url !== 'string' || url === '' ) - return ''; + }; - // Absolute URL - if ( /^https?:\/\//i.test( url ) ) { - return url; - } + function resolveURL( baseUrl, url ) { - return baseUrl + url; - }; - - function setMapForType ( mapType, value ) { + if ( typeof url !== 'string' || url === '' ) + return ''; - if ( params[ mapType ] ) return; // Keep the first encountered texture + // Absolute URL + if ( /^https?:\/\//i.test( url ) ) return url; - var texParams = scope.getTextureParams( value, params ); - var map = scope.loadTexture( resolveURL( scope.baseUrl, texParams.url ) ); - - map.repeat.copy( texParams.scale ); - map.offset.copy( texParams.offset ); + return baseUrl + url; - map.wrapS = scope.wrap; - map.wrapT = scope.wrap; - - params[ mapType ] = map; - } + } - for ( var prop in mat ) { + function setMapForType( mapType, value ) { - var value = mat[ prop ]; + if ( params[ mapType ] ) return; // Keep the first encountered texture - if ( value === '' ) continue; + var texParams = scope.getTextureParams( value, params ); + var map = scope.loadTexture( resolveURL( scope.baseUrl, texParams.url ) ); - switch ( prop.toLowerCase() ) { + map.repeat.copy( texParams.scale ); + map.offset.copy( texParams.offset ); - // Ns is material specular exponent + map.wrapS = scope.wrap; + map.wrapT = scope.wrap; - case 'kd': + params[ mapType ] = map; - // Diffuse color (color under white light) using RGB values + } - params.color = new THREE.Color().fromArray( value ); + for ( var prop in mat ) { - break; + var value = mat[ prop ]; + var n; - case 'ks': + if ( value === '' ) continue; - // Specular color (color when light is reflected from shiny surface) using RGB values - // params.specular = new THREE.Color().fromArray( value ); + switch ( prop.toLowerCase() ) { - break; + // Ns is material specular exponent - case 'map_kd': + case 'kd': - // Diffuse texture map + // Diffuse color (color under white light) using RGB values - setMapForType( "map", value ); + params.color = new THREE.Color().fromArray( value ); - break; + break; - case 'map_ks': + case 'ks': - // Specular map - - setMapForType( "specularMap", value ); + // Specular color (color when light is reflected from shiny surface) using RGB values + params.specular = new THREE.Color().fromArray( value ); - break; + break; - case 'map_bump': - case 'bump': + case 'ke': - // Bump texture map - - setMapForType( "bumpMap", value ); + // Emissive using RGB values + params.emissive = new THREE.Color().fromArray( value ); - break; + break; - case 'ns': + case 'map_kd': - // The specular exponent (defines the focus of the specular highlight) - // A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000. + // Diffuse texture map - // params.shininess = parseFloat( value ); + setMapForType( "map", value ); - break; + break; - case 'd': + case 'map_ks': - if ( value < 1 ) { + // Specular map - params.opacity = value; - params.transparent = true; + setMapForType( "specularMap", value ); - } + break; - break; + case 'map_ke': - case 'Tr': + // Emissive map - if ( value > 0 ) { + setMapForType( "emissiveMap", value ); - params.opacity = 1 - value; - params.transparent = true; + break; - } + case 'norm': - break; + setMapForType( "normalMap", value ); - default: - break; + break; - } + case 'map_bump': + case 'bump': - } + // Bump texture map - this.materials[ materialName ] = new THREE.MeshBasicMaterial( params ); - return this.materials[ materialName ]; - }, + setMapForType( "bumpMap", value ); - getTextureParams: function( value, matParams ) { + break; - var texParams = { + case 'map_d': - scale: new THREE.Vector2( 1, 1 ), - offset: new THREE.Vector2( 0, 0 ), + // Alpha map - }; + setMapForType( "alphaMap", value ); + params.transparent = true; - var items = value.split(/\s+/); - var pos; + break; - pos = items.indexOf('-bm'); - if (pos >= 0) { + case 'ns': - matParams.bumpScale = parseFloat( items[pos+1] ); - items.splice( pos, 2 ); + // The specular exponent (defines the focus of the specular highlight) + // A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000. - } + params.shininess = parseFloat( value ); - pos = items.indexOf('-s'); - if (pos >= 0) { + break; - texParams.scale.set( parseFloat( items[pos+1] ), parseFloat( items[pos+2] ) ); - items.splice( pos, 4 ); // we expect 3 parameters here! + case 'd': + n = parseFloat( value ); - } + if ( n < 1 ) { - pos = items.indexOf('-o'); - if (pos >= 0) { + params.opacity = n; + params.transparent = true; - texParams.offset.set( parseFloat( items[pos+1] ), parseFloat( items[pos+2] ) ); - items.splice( pos, 4 ); // we expect 3 parameters here! + } - } + break; - texParams.url = items.join(' ').trim(); - return texParams; + case 'tr': + n = parseFloat( value ); - }, + if ( this.options && this.options.invertTrProperty ) n = 1 - n; - loadTexture: function ( url, mapping, onLoad, onProgress, onError ) { + if ( n > 0 ) { - var texture; - var loader = THREE.Loader.Handlers.get( url ); - var manager = ( this.manager !== undefined ) ? this.manager : THREE.DefaultLoadingManager; + params.opacity = 1 - n; + params.transparent = true; - if ( loader === null ) { + } - loader = new THREE.TextureLoader( manager ); + break; - } + default: + break; - if ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin ); - texture = loader.load( url, onLoad, onProgress, onError ); + } - if ( mapping !== undefined ) texture.mapping = mapping; + } - return texture; + this.materials[ materialName ] = new THREE.MeshPhongMaterial( params ); + return this.materials[ materialName ]; - } + }, -}; + getTextureParams: function ( value, matParams ) { -module.exports = MTLLoader; + var texParams = { + + scale: new THREE.Vector2( 1, 1 ), + offset: new THREE.Vector2( 0, 0 ) + + }; + + var items = value.split( /\s+/ ); + var pos; + + pos = items.indexOf( '-bm' ); + + if ( pos >= 0 ) { + + matParams.bumpScale = parseFloat( items[ pos + 1 ] ); + items.splice( pos, 2 ); + + } + + pos = items.indexOf( '-s' ); + + if ( pos >= 0 ) { + + texParams.scale.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) ); + items.splice( pos, 4 ); // we expect 3 parameters here! + + } + + pos = items.indexOf( '-o' ); + + if ( pos >= 0 ) { + + texParams.offset.set( parseFloat( items[ pos + 1 ] ), parseFloat( items[ pos + 2 ] ) ); + items.splice( pos, 4 ); // we expect 3 parameters here! + + } + + texParams.url = items.join( ' ' ).trim(); + return texParams; + + }, + + loadTexture: function ( url, mapping, onLoad, onProgress, onError ) { + + var texture; + var manager = ( this.manager !== undefined ) ? this.manager : THREE.DefaultLoadingManager; + var loader = manager.getHandler( url ); + + if ( loader === null ) { + + loader = new THREE.TextureLoader( manager ); + + } + + if ( loader.setCrossOrigin ) loader.setCrossOrigin( this.crossOrigin ); + texture = loader.load( url, onLoad, onProgress, onError ); + + if ( mapping !== undefined ) texture.mapping = mapping; + + return texture; + + } + +}; \ No newline at end of file diff --git a/app/static/app/js/vendor/OBJLoader.js b/app/static/app/js/vendor/OBJLoader.js index 38ccd928..4561e149 100644 --- a/app/static/app/js/vendor/OBJLoader.js +++ b/app/static/app/js/vendor/OBJLoader.js @@ -1,80 +1,28 @@ /** * @author mrdoob / http://mrdoob.com/ */ -THREE.OBJLoader = function ( manager ) { - this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; +THREE.OBJLoader = ( function () { - this.materials = null; + // o object_name | g group_name + var object_pattern = /^[og]\s*(.+)?/; + // mtllib file_reference + var material_library_pattern = /^mtllib /; + // usemtl material_name + var material_use_pattern = /^usemtl /; - this.regexp = { - // v float float float - vertex_pattern : /^v\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/, - // vn float float float - normal_pattern : /^vn\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/, - // vt float float - uv_pattern : /^vt\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/, - // f vertex vertex vertex - face_vertex : /^f\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)(?:\s+(-?\d+))?/, - // f vertex/uv vertex/uv vertex/uv - face_vertex_uv : /^f\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+))?/, - // f vertex/uv/normal vertex/uv/normal vertex/uv/normal - face_vertex_uv_normal : /^f\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+)\/(-?\d+))?/, - // f vertex//normal vertex//normal vertex//normal - face_vertex_normal : /^f\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)(?:\s+(-?\d+)\/\/(-?\d+))?/, - // o object_name | g group_name - object_pattern : /^[og]\s*(.+)?/, - // s boolean - smoothing_pattern : /^s\s+(\d+|on|off)/, - // mtllib file_reference - material_library_pattern : /^mtllib /, - // usemtl material_name - material_use_pattern : /^usemtl / - }; - -}; - -THREE.OBJLoader.prototype = { - - constructor: THREE.OBJLoader, - - load: function ( url, onLoad, onProgress, onError ) { - - var scope = this; - - var loader = new THREE.FileLoader( scope.manager ); - loader.setPath( this.path ); - loader.load( url, function ( text ) { - - onLoad( scope.parse( text ) ); - - }, onProgress, onError ); - - }, - - setPath: function ( value ) { - - this.path = value; - - }, - - setMaterials: function ( materials ) { - - this.materials = materials; - - }, - - _createParserState : function () { + function ParserState() { var state = { - objects : [], - object : {}, + objects: [], + object: {}, - vertices : [], - normals : [], - uvs : [], + vertices: [], + normals: [], + colors: [], + uvs: [], - materialLibraries : [], + materialLibraries: [], startObject: function ( name, fromDeclaration ) { @@ -97,18 +45,19 @@ THREE.OBJLoader.prototype = { } this.object = { - name : name || '', - fromDeclaration : ( fromDeclaration !== false ), + name: name || '', + fromDeclaration: ( fromDeclaration !== false ), - geometry : { - vertices : [], - normals : [], - uvs : [] + geometry: { + vertices: [], + normals: [], + colors: [], + uvs: [] }, - materials : [], - smooth : true, + materials: [], + smooth: true, - startMaterial : function( name, libraries ) { + startMaterial: function ( name, libraries ) { var previous = this._finalize( false ); @@ -121,51 +70,55 @@ THREE.OBJLoader.prototype = { } var material = { - index : this.materials.length, - name : name || '', - mtllib : ( Array.isArray( libraries ) && libraries.length > 0 ? libraries[ libraries.length - 1 ] : '' ), - smooth : ( previous !== undefined ? previous.smooth : this.smooth ), - groupStart : ( previous !== undefined ? previous.groupEnd : 0 ), - groupEnd : -1, - groupCount : -1, - inherited : false, - map: THREE.Texture, + index: this.materials.length, + name: name || '', + mtllib: ( Array.isArray( libraries ) && libraries.length > 0 ? libraries[ libraries.length - 1 ] : '' ), + smooth: ( previous !== undefined ? previous.smooth : this.smooth ), + groupStart: ( previous !== undefined ? previous.groupEnd : 0 ), + groupEnd: - 1, + groupCount: - 1, + inherited: false, + + clone: function ( index ) { - clone : function( index ) { var cloned = { - index : ( typeof index === 'number' ? index : this.index ), - name : this.name, - mtllib : this.mtllib, - smooth : this.smooth, - groupStart : 0, - groupEnd : -1, - groupCount : -1, - inherited : false + index: ( typeof index === 'number' ? index : this.index ), + name: this.name, + mtllib: this.mtllib, + smooth: this.smooth, + groupStart: 0, + groupEnd: - 1, + groupCount: - 1, + inherited: false }; - cloned.clone = this.clone.bind(cloned); + cloned.clone = this.clone.bind( cloned ); return cloned; + } }; + this.materials.push( material ); return material; }, - currentMaterial : function() { + currentMaterial: function () { if ( this.materials.length > 0 ) { + return this.materials[ this.materials.length - 1 ]; + } return undefined; }, - _finalize : function( end ) { + _finalize: function ( end ) { var lastMultiMaterial = this.currentMaterial(); - if ( lastMultiMaterial && lastMultiMaterial.groupEnd === -1 ) { + if ( lastMultiMaterial && lastMultiMaterial.groupEnd === - 1 ) { lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3; lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart; @@ -176,10 +129,14 @@ THREE.OBJLoader.prototype = { // Ignore objects tail materials if no face declarations followed them before a new o/g started. if ( end && this.materials.length > 1 ) { - for ( var mi = this.materials.length - 1; mi >= 0; mi-- ) { - if ( this.materials[mi].groupCount <= 0 ) { + for ( var mi = this.materials.length - 1; mi >= 0; mi -- ) { + + if ( this.materials[ mi ].groupCount <= 0 ) { + this.materials.splice( mi, 1 ); + } + } } @@ -187,10 +144,10 @@ THREE.OBJLoader.prototype = { // Guarantee at least one empty material, this makes the creation later more straight forward. if ( end && this.materials.length === 0 ) { - this.materials.push({ - name : '', - smooth : this.smooth - }); + this.materials.push( { + name: '', + smooth: this.smooth + } ); } @@ -205,7 +162,7 @@ THREE.OBJLoader.prototype = { // overwrite the inherited material. Exception being that there was already face declarations // to the inherited material, then it will be preserved for proper MultiMaterial continuation. - if ( previousMaterial && previousMaterial.name && typeof previousMaterial.clone === "function" ) { + if ( previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function' ) { var declared = previousMaterial.clone( 0 ); declared.inherited = true; @@ -217,7 +174,7 @@ THREE.OBJLoader.prototype = { }, - finalize : function() { + finalize: function () { if ( this.object && typeof this.object._finalize === 'function' ) { @@ -253,15 +210,18 @@ THREE.OBJLoader.prototype = { var src = this.vertices; var dst = this.object.geometry.vertices; - dst.push( src[ a + 0 ] ); - dst.push( src[ a + 1 ] ); - dst.push( src[ a + 2 ] ); - dst.push( src[ b + 0 ] ); - dst.push( src[ b + 1 ] ); - dst.push( src[ b + 2 ] ); - dst.push( src[ c + 0 ] ); - dst.push( src[ c + 1 ] ); - dst.push( src[ c + 2 ] ); + dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] ); + dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] ); + dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] ); + + }, + + addVertexPoint: function ( a ) { + + var src = this.vertices; + var dst = this.object.geometry.vertices; + + dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] ); }, @@ -270,26 +230,29 @@ THREE.OBJLoader.prototype = { var src = this.vertices; var dst = this.object.geometry.vertices; - dst.push( src[ a + 0 ] ); - dst.push( src[ a + 1 ] ); - dst.push( src[ a + 2 ] ); + dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] ); }, - addNormal : function ( a, b, c ) { + addNormal: function ( a, b, c ) { var src = this.normals; var dst = this.object.geometry.normals; - dst.push( src[ a + 0 ] ); - dst.push( src[ a + 1 ] ); - dst.push( src[ a + 2 ] ); - dst.push( src[ b + 0 ] ); - dst.push( src[ b + 1 ] ); - dst.push( src[ b + 2 ] ); - dst.push( src[ c + 0 ] ); - dst.push( src[ c + 1 ] ); - dst.push( src[ c + 2 ] ); + dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] ); + dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] ); + dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] ); + + }, + + addColor: function ( a, b, c ) { + + var src = this.colors; + var dst = this.object.geometry.colors; + + dst.push( src[ a + 0 ], src[ a + 1 ], src[ a + 2 ] ); + dst.push( src[ b + 0 ], src[ b + 1 ], src[ b + 2 ] ); + dst.push( src[ c + 0 ], src[ c + 1 ], src[ c + 2 ] ); }, @@ -298,12 +261,9 @@ THREE.OBJLoader.prototype = { var src = this.uvs; var dst = this.object.geometry.uvs; - dst.push( src[ a + 0 ] ); - dst.push( src[ a + 1 ] ); - dst.push( src[ b + 0 ] ); - dst.push( src[ b + 1 ] ); - dst.push( src[ c + 0 ] ); - dst.push( src[ c + 1 ] ); + dst.push( src[ a + 0 ], src[ a + 1 ] ); + dst.push( src[ b + 0 ], src[ b + 1 ] ); + dst.push( src[ c + 0 ], src[ c + 1 ] ); }, @@ -312,57 +272,37 @@ THREE.OBJLoader.prototype = { var src = this.uvs; var dst = this.object.geometry.uvs; - dst.push( src[ a + 0 ] ); - dst.push( src[ a + 1 ] ); + dst.push( src[ a + 0 ], src[ a + 1 ] ); }, - addFace: function ( a, b, c, d, ua, ub, uc, ud, na, nb, nc, nd ) { + addFace: function ( a, b, c, ua, ub, uc, na, nb, nc ) { var vLen = this.vertices.length; var ia = this.parseVertexIndex( a, vLen ); var ib = this.parseVertexIndex( b, vLen ); var ic = this.parseVertexIndex( c, vLen ); - var id; - if ( d === undefined ) { + this.addVertex( ia, ib, ic ); - this.addVertex( ia, ib, ic ); + if ( this.colors.length > 0 ) { - } else { - - id = this.parseVertexIndex( d, vLen ); - - this.addVertex( ia, ib, id ); - this.addVertex( ib, ic, id ); + this.addColor( ia, ib, ic ); } - if ( ua !== undefined ) { + if ( ua !== undefined && ua !== '' ) { var uvLen = this.uvs.length; - ia = this.parseUVIndex( ua, uvLen ); ib = this.parseUVIndex( ub, uvLen ); ic = this.parseUVIndex( uc, uvLen ); - - if ( d === undefined ) { - - this.addUV( ia, ib, ic ); - - } else { - - id = this.parseUVIndex( ud, uvLen ); - - this.addUV( ia, ib, id ); - this.addUV( ib, ic, id ); - - } + this.addUV( ia, ib, ic ); } - if ( na !== undefined ) { + if ( na !== undefined && na !== '' ) { // Normals are many times the same. If so, skip function call and parseInt. var nLen = this.normals.length; @@ -371,18 +311,21 @@ THREE.OBJLoader.prototype = { ib = na === nb ? ia : this.parseNormalIndex( nb, nLen ); ic = na === nc ? ia : this.parseNormalIndex( nc, nLen ); - if ( d === undefined ) { + this.addNormal( ia, ib, ic ); - this.addNormal( ia, ib, ic ); + } - } else { + }, - id = this.parseNormalIndex( nd, nLen ); + addPointGeometry: function ( vertices ) { - this.addNormal( ia, ib, id ); - this.addNormal( ib, ic, id ); + this.object.geometry.type = 'Points'; - } + var vLen = this.vertices.length; + + for ( var vi = 0, l = vertices.length; vi < l; vi ++ ) { + + this.addVertexPoint( this.parseVertexIndex( vertices[ vi ], vLen ) ); } @@ -415,328 +358,430 @@ THREE.OBJLoader.prototype = { return state; - }, + } - parse: function ( text ) { + // - console.time( 'OBJLoader' ); + function OBJLoader( manager ) { - var state = this._createParserState(); + THREE.Loader.call( this, manager ); - if ( text.indexOf( '\r\n' ) !== - 1 ) { - - // This is faster than String.split with regex that splits on both - text = text.replace( /\r\n/g, '\n' ); - - } - - if ( text.indexOf( '\\\n' ) !== - 1) { - - // join lines separated by a line continuation character (\) - text = text.replace( /\\\n/g, '' ); - - } - - var lines = text.split( '\n' ); - var line = '', lineFirstChar = '', lineSecondChar = ''; - var lineLength = 0; - var result = []; - - // Faster to just trim left side of the line. Use if available. - var trimLeft = ( typeof ''.trimLeft === 'function' ); - - for ( var i = 0, l = lines.length; i < l; i ++ ) { - - line = lines[ i ]; - - line = trimLeft ? line.trimLeft() : line.trim(); - - lineLength = line.length; - - if ( lineLength === 0 ) continue; - - lineFirstChar = line.charAt( 0 ); - - // @todo invoke passed in handler if any - if ( lineFirstChar === '#' ) continue; - - if ( lineFirstChar === 'v' ) { - - lineSecondChar = line.charAt( 1 ); - - if ( lineSecondChar === ' ' && ( result = this.regexp.vertex_pattern.exec( line ) ) !== null ) { - - // 0 1 2 3 - // ["v 1.0 2.0 3.0", "1.0", "2.0", "3.0"] - - state.vertices.push( - parseFloat( result[ 1 ] ), - parseFloat( result[ 2 ] ), - parseFloat( result[ 3 ] ) - ); - - } else if ( lineSecondChar === 'n' && ( result = this.regexp.normal_pattern.exec( line ) ) !== null ) { - - // 0 1 2 3 - // ["vn 1.0 2.0 3.0", "1.0", "2.0", "3.0"] - - state.normals.push( - parseFloat( result[ 1 ] ), - parseFloat( result[ 2 ] ), - parseFloat( result[ 3 ] ) - ); - - } else if ( lineSecondChar === 't' && ( result = this.regexp.uv_pattern.exec( line ) ) !== null ) { - - // 0 1 2 - // ["vt 0.1 0.2", "0.1", "0.2"] - - state.uvs.push( - parseFloat( result[ 1 ] ), - parseFloat( result[ 2 ] ) - ); - - } else { - - throw new Error( "Unexpected vertex/normal/uv line: '" + line + "'" ); - - } - - } else if ( lineFirstChar === "f" ) { - - if ( ( result = this.regexp.face_vertex_uv_normal.exec( line ) ) !== null ) { - - // f vertex/uv/normal vertex/uv/normal vertex/uv/normal - // 0 1 2 3 4 5 6 7 8 9 10 11 12 - // ["f 1/1/1 2/2/2 3/3/3", "1", "1", "1", "2", "2", "2", "3", "3", "3", undefined, undefined, undefined] - - state.addFace( - result[ 1 ], result[ 4 ], result[ 7 ], result[ 10 ], - result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ], - result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] - ); - - } else if ( ( result = this.regexp.face_vertex_uv.exec( line ) ) !== null ) { - - // f vertex/uv vertex/uv vertex/uv - // 0 1 2 3 4 5 6 7 8 - // ["f 1/1 2/2 3/3", "1", "1", "2", "2", "3", "3", undefined, undefined] - - state.addFace( - result[ 1 ], result[ 3 ], result[ 5 ], result[ 7 ], - result[ 2 ], result[ 4 ], result[ 6 ], result[ 8 ] - ); - - } else if ( ( result = this.regexp.face_vertex_normal.exec( line ) ) !== null ) { - - // f vertex//normal vertex//normal vertex//normal - // 0 1 2 3 4 5 6 7 8 - // ["f 1//1 2//2 3//3", "1", "1", "2", "2", "3", "3", undefined, undefined] - - state.addFace( - result[ 1 ], result[ 3 ], result[ 5 ], result[ 7 ], - undefined, undefined, undefined, undefined, - result[ 2 ], result[ 4 ], result[ 6 ], result[ 8 ] - ); - - } else if ( ( result = this.regexp.face_vertex.exec( line ) ) !== null ) { - - // f vertex vertex vertex - // 0 1 2 3 4 - // ["f 1 2 3", "1", "2", "3", undefined] - - state.addFace( - result[ 1 ], result[ 2 ], result[ 3 ], result[ 4 ] - ); - - } else { - - throw new Error( "Unexpected face line: '" + line + "'" ); - - } - - } else if ( lineFirstChar === "l" ) { - - var lineParts = line.substring( 1 ).trim().split( " " ); - var lineVertices = [], lineUVs = []; - - if ( line.indexOf( "/" ) === - 1 ) { - - lineVertices = lineParts; - - } else { - - for ( var li = 0, llen = lineParts.length; li < llen; li ++ ) { - - var parts = lineParts[ li ].split( "/" ); - - if ( parts[ 0 ] !== "" ) lineVertices.push( parts[ 0 ] ); - if ( parts[ 1 ] !== "" ) lineUVs.push( parts[ 1 ] ); - - } - - } - state.addLineGeometry( lineVertices, lineUVs ); - - } else if ( ( result = this.regexp.object_pattern.exec( line ) ) !== null ) { - - // o object_name - // or - // g group_name - - // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869 - // var name = result[ 0 ].substr( 1 ).trim(); - var name = ( " " + result[ 0 ].substr( 1 ).trim() ).substr( 1 ); - - state.startObject( name ); - - } else if ( this.regexp.material_use_pattern.test( line ) ) { - - // material - - state.object.startMaterial( line.substring( 7 ).trim(), state.materialLibraries ); - - } else if ( this.regexp.material_library_pattern.test( line ) ) { - - // mtl file - - state.materialLibraries.push( line.substring( 7 ).trim() ); - - } else if ( ( result = this.regexp.smoothing_pattern.exec( line ) ) !== null ) { - - // smooth shading - - // @todo Handle files that have varying smooth values for a set of faces inside one geometry, - // but does not define a usemtl for each face set. - // This should be detected and a dummy material created (later MultiMaterial and geometry groups). - // This requires some care to not create extra material on each smooth value for "normal" obj files. - // where explicit usemtl defines geometry groups. - // Example asset: examples/models/obj/cerberus/Cerberus.obj - - var value = result[ 1 ].trim().toLowerCase(); - state.object.smooth = ( value === '1' || value === 'on' ); - - var material = state.object.currentMaterial(); - if ( material ) { - - material.smooth = state.object.smooth; - - } - - } else { - - // Handle null terminated files without exception - if ( line === '\0' ) continue; - - throw new Error( "Unexpected line: '" + line + "'" ); - - } - - } - - state.finalize(); - - var container = new THREE.Group(); - container.materialLibraries = [].concat( state.materialLibraries ); - - for ( var i = 0, l = state.objects.length; i < l; i ++ ) { - - var object = state.objects[ i ]; - var geometry = object.geometry; - var materials = object.materials; - var isLine = ( geometry.type === 'Line' ); - - // Skip o/g line declarations that did not follow with any faces - if ( geometry.vertices.length === 0 ) continue; - - var buffergeometry = new THREE.BufferGeometry(); - - buffergeometry.addAttribute( 'position', new THREE.BufferAttribute( new Float32Array( geometry.vertices ), 3 ) ); - - if ( geometry.normals.length > 0 ) { - - buffergeometry.addAttribute( 'normal', new THREE.BufferAttribute( new Float32Array( geometry.normals ), 3 ) ); - - } else { - - buffergeometry.computeVertexNormals(); - - } - - if ( geometry.uvs.length > 0 ) { - - buffergeometry.addAttribute( 'uv', new THREE.BufferAttribute( new Float32Array( geometry.uvs ), 2 ) ); - - } - - // Create materials - - var createdMaterials = []; - - for ( var mi = 0, miLen = materials.length; mi < miLen ; mi++ ) { - - var sourceMaterial = materials[mi]; - var material = undefined; - - if ( this.materials !== null ) { - - material = this.materials.create( sourceMaterial.name ); - - // mtl etc. loaders probably can't create line materials correctly, copy properties to a line material. - if ( isLine && material && ! ( material instanceof THREE.LineBasicMaterial ) ) { - - var materialLine = new THREE.LineBasicMaterial(); - materialLine.copy( material ); - material = materialLine; - - } - - } - - if ( ! material ) { - - material = ( ! isLine ? new THREE.MeshPhongMaterial() : new THREE.LineBasicMaterial() ); - material.name = sourceMaterial.name; - - } - - material.shading = sourceMaterial.smooth ? THREE.SmoothShading : THREE.FlatShading; - - createdMaterials.push(material); - - } - - // Create mesh - - var mesh; - - if ( createdMaterials.length > 1 ) { - - for ( var mi = 0, miLen = materials.length; mi < miLen ; mi++ ) { - - var sourceMaterial = materials[mi]; - buffergeometry.addGroup( sourceMaterial.groupStart, sourceMaterial.groupCount, mi ); - - } - - var multiMaterial = new THREE.MultiMaterial( createdMaterials ); - mesh = ( ! isLine ? new THREE.Mesh( buffergeometry, multiMaterial ) : new THREE.LineSegments( buffergeometry, multiMaterial ) ); - - } else { - - mesh = ( ! isLine ? new THREE.Mesh( buffergeometry, createdMaterials[ 0 ] ) : new THREE.LineSegments( buffergeometry, createdMaterials[ 0 ] ) ); - } - - mesh.name = object.name; - - container.add( mesh ); - - } - - console.timeEnd( 'OBJLoader' ); - - return container; + this.materials = null; } -}; + OBJLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), { + + constructor: OBJLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.FileLoader( scope.manager ); + loader.setPath( this.path ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( text ) ); + + }, onProgress, onError ); + + }, + + setMaterials: function ( materials ) { + + this.materials = materials; + + return this; + + }, + + parse: function ( text ) { + + console.time( 'OBJLoader' ); + + var state = new ParserState(); + + if ( text.indexOf( '\r\n' ) !== - 1 ) { + + // This is faster than String.split with regex that splits on both + text = text.replace( /\r\n/g, '\n' ); + + } + + if ( text.indexOf( '\\\n' ) !== - 1 ) { + + // join lines separated by a line continuation character (\) + text = text.replace( /\\\n/g, '' ); + + } + + var lines = text.split( '\n' ); + var line = '', lineFirstChar = ''; + var lineLength = 0; + var result = []; + + // Faster to just trim left side of the line. Use if available. + var trimLeft = ( typeof ''.trimLeft === 'function' ); + + for ( var i = 0, l = lines.length; i < l; i ++ ) { + + line = lines[ i ]; + + line = trimLeft ? line.trimLeft() : line.trim(); + + lineLength = line.length; + + if ( lineLength === 0 ) continue; + + lineFirstChar = line.charAt( 0 ); + + // @todo invoke passed in handler if any + if ( lineFirstChar === '#' ) continue; + + if ( lineFirstChar === 'v' ) { + + var data = line.split( /\s+/ ); + + switch ( data[ 0 ] ) { + + case 'v': + state.vertices.push( + parseFloat( data[ 1 ] ), + parseFloat( data[ 2 ] ), + parseFloat( data[ 3 ] ) + ); + if ( data.length >= 7 ) { + + state.colors.push( + parseFloat( data[ 4 ] ), + parseFloat( data[ 5 ] ), + parseFloat( data[ 6 ] ) + + ); + + } + break; + case 'vn': + state.normals.push( + parseFloat( data[ 1 ] ), + parseFloat( data[ 2 ] ), + parseFloat( data[ 3 ] ) + ); + break; + case 'vt': + state.uvs.push( + parseFloat( data[ 1 ] ), + parseFloat( data[ 2 ] ) + ); + break; + + } + + } else if ( lineFirstChar === 'f' ) { + + var lineData = line.substr( 1 ).trim(); + var vertexData = lineData.split( /\s+/ ); + var faceVertices = []; + + // Parse the face vertex data into an easy to work with format + + for ( var j = 0, jl = vertexData.length; j < jl; j ++ ) { + + var vertex = vertexData[ j ]; + + if ( vertex.length > 0 ) { + + var vertexParts = vertex.split( '/' ); + faceVertices.push( vertexParts ); + + } + + } + + // Draw an edge between the first vertex and all subsequent vertices to form an n-gon + + var v1 = faceVertices[ 0 ]; + + for ( var j = 1, jl = faceVertices.length - 1; j < jl; j ++ ) { + + var v2 = faceVertices[ j ]; + var v3 = faceVertices[ j + 1 ]; + + state.addFace( + v1[ 0 ], v2[ 0 ], v3[ 0 ], + v1[ 1 ], v2[ 1 ], v3[ 1 ], + v1[ 2 ], v2[ 2 ], v3[ 2 ] + ); + + } + + } else if ( lineFirstChar === 'l' ) { + + var lineParts = line.substring( 1 ).trim().split( " " ); + var lineVertices = [], lineUVs = []; + + if ( line.indexOf( "/" ) === - 1 ) { + + lineVertices = lineParts; + + } else { + + for ( var li = 0, llen = lineParts.length; li < llen; li ++ ) { + + var parts = lineParts[ li ].split( "/" ); + + if ( parts[ 0 ] !== "" ) lineVertices.push( parts[ 0 ] ); + if ( parts[ 1 ] !== "" ) lineUVs.push( parts[ 1 ] ); + + } + + } + state.addLineGeometry( lineVertices, lineUVs ); + + } else if ( lineFirstChar === 'p' ) { + + var lineData = line.substr( 1 ).trim(); + var pointData = lineData.split( " " ); + + state.addPointGeometry( pointData ); + + } else if ( ( result = object_pattern.exec( line ) ) !== null ) { + + // o object_name + // or + // g group_name + + // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869 + // var name = result[ 0 ].substr( 1 ).trim(); + var name = ( " " + result[ 0 ].substr( 1 ).trim() ).substr( 1 ); + + state.startObject( name ); + + } else if ( material_use_pattern.test( line ) ) { + + // material + + state.object.startMaterial( line.substring( 7 ).trim(), state.materialLibraries ); + + } else if ( material_library_pattern.test( line ) ) { + + // mtl file + + state.materialLibraries.push( line.substring( 7 ).trim() ); + + } else if ( lineFirstChar === 's' ) { + + result = line.split( ' ' ); + + // smooth shading + + // @todo Handle files that have varying smooth values for a set of faces inside one geometry, + // but does not define a usemtl for each face set. + // This should be detected and a dummy material created (later MultiMaterial and geometry groups). + // This requires some care to not create extra material on each smooth value for "normal" obj files. + // where explicit usemtl defines geometry groups. + // Example asset: examples/models/obj/cerberus/Cerberus.obj + + /* + * http://paulbourke.net/dataformats/obj/ + * or + * http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf + * + * From chapter "Grouping" Syntax explanation "s group_number": + * "group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off. + * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form + * surfaces, smoothing groups are either turned on or off; there is no difference between values greater + * than 0." + */ + if ( result.length > 1 ) { + + var value = result[ 1 ].trim().toLowerCase(); + state.object.smooth = ( value !== '0' && value !== 'off' ); + + } else { + + // ZBrush can produce "s" lines #11707 + state.object.smooth = true; + + } + var material = state.object.currentMaterial(); + if ( material ) material.smooth = state.object.smooth; + + } else { + + // Handle null terminated files without exception + if ( line === '\0' ) continue; + + throw new Error( 'THREE.OBJLoader: Unexpected line: "' + line + '"' ); + + } + + } + + state.finalize(); + + var container = new THREE.Group(); + container.materialLibraries = [].concat( state.materialLibraries ); + + for ( var i = 0, l = state.objects.length; i < l; i ++ ) { + + var object = state.objects[ i ]; + var geometry = object.geometry; + var materials = object.materials; + var isLine = ( geometry.type === 'Line' ); + var isPoints = ( geometry.type === 'Points' ); + var hasVertexColors = false; + + // Skip o/g line declarations that did not follow with any faces + if ( geometry.vertices.length === 0 ) continue; + + var buffergeometry = new THREE.BufferGeometry(); + + buffergeometry.addAttribute( 'position', new THREE.Float32BufferAttribute( geometry.vertices, 3 ) ); + + if ( geometry.normals.length > 0 ) { + + buffergeometry.addAttribute( 'normal', new THREE.Float32BufferAttribute( geometry.normals, 3 ) ); + + } else { + + buffergeometry.computeVertexNormals(); + + } + + if ( geometry.colors.length > 0 ) { + + hasVertexColors = true; + buffergeometry.addAttribute( 'color', new THREE.Float32BufferAttribute( geometry.colors, 3 ) ); + + } + + if ( geometry.uvs.length > 0 ) { + + buffergeometry.addAttribute( 'uv', new THREE.Float32BufferAttribute( geometry.uvs, 2 ) ); + + } + + // Create materials + + var createdMaterials = []; + + for ( var mi = 0, miLen = materials.length; mi < miLen; mi ++ ) { + + var sourceMaterial = materials[ mi ]; + var material = undefined; + + if ( this.materials !== null ) { + + material = this.materials.create( sourceMaterial.name ); + + // mtl etc. loaders probably can't create line materials correctly, copy properties to a line material. + if ( isLine && material && ! ( material instanceof THREE.LineBasicMaterial ) ) { + + var materialLine = new THREE.LineBasicMaterial(); + THREE.Material.prototype.copy.call( materialLine, material ); + materialLine.color.copy( material.color ); + material = materialLine; + + } else if ( isPoints && material && ! ( material instanceof THREE.PointsMaterial ) ) { + + var materialPoints = new THREE.PointsMaterial( { size: 10, sizeAttenuation: false } ); + THREE.Material.prototype.copy.call( materialPoints, material ); + materialPoints.color.copy( material.color ); + materialPoints.map = material.map; + material = materialPoints; + + } + + } + + if ( ! material ) { + + if ( isLine ) { + + material = new THREE.LineBasicMaterial(); + + } else if ( isPoints ) { + + material = new THREE.PointsMaterial( { size: 1, sizeAttenuation: false } ); + + } else { + + material = new THREE.MeshPhongMaterial(); + + } + + material.name = sourceMaterial.name; + + } + + material.flatShading = sourceMaterial.smooth ? false : true; + material.vertexColors = hasVertexColors ? THREE.VertexColors : THREE.NoColors; + + createdMaterials.push( material ); + + } + + // Create mesh + + var mesh; + + if ( createdMaterials.length > 1 ) { + + for ( var mi = 0, miLen = materials.length; mi < miLen; mi ++ ) { + + var sourceMaterial = materials[ mi ]; + buffergeometry.addGroup( sourceMaterial.groupStart, sourceMaterial.groupCount, mi ); + + } + + if ( isLine ) { + + mesh = new THREE.LineSegments( buffergeometry, createdMaterials ); + + } else if ( isPoints ) { + + mesh = new THREE.Points( buffergeometry, createdMaterials ); + + } else { + + mesh = new THREE.Mesh( buffergeometry, createdMaterials ); + + } + + } else { + + if ( isLine ) { + + mesh = new THREE.LineSegments( buffergeometry, createdMaterials[ 0 ] ); + + } else if ( isPoints ) { + + mesh = new THREE.Points( buffergeometry, createdMaterials[ 0 ] ); + + } else { + + mesh = new THREE.Mesh( buffergeometry, createdMaterials[ 0 ] ); + + } + + } + + mesh.name = object.name; + + container.add( mesh ); + + } + + console.timeEnd( 'OBJLoader' ); + + return container; + + } + + } ); + + return OBJLoader; + +} )(); \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/potree.css b/app/static/app/js/vendor/potree/build/potree.css deleted file mode 100644 index 038d164d..00000000 --- a/app/static/app/js/vendor/potree/build/potree.css +++ /dev/null @@ -1,771 +0,0 @@ - -/* CSS - Cascading Style Sheet */ -/* Palette color codes */ -/* Palette URL: http://paletton.com/#uid=13p0u0kex8W2uqu8af7lEqaulDE */ - -/* Feel free to copy&paste color codes to your application */ - -/* As hex codes */ -.color-primary-0 { color: #19282C } /* Main Primary color */ -.color-primary-1 { color: #7A8184 } -.color-primary-2 { color: #39474B } -.color-primary-3 { color: #2D6D82 } -.color-primary-4 { color: #108FB9 } - -/* As RGBa codes */ -.rgba-primary-0 { color: rgba( 25, 40, 44,1) } /* Main Primary color */ -.rgba-primary-1 { color: rgba(122,129,132,1) } -.rgba-primary-2 { color: rgba( 57, 71, 75,1) } -.rgba-primary-3 { color: rgba( 45,109,130,1) } -.rgba-primary-4 { color: rgba( 16,143,185,1) } - -/* Generated by Paletton.com © 2002-2014 */ -/* http://paletton.com */ - - - - -:root{ - - --color-0: rgba( 25, 40, 44, 1); - --color-1: rgba(122,129,132, 1); - --color-2: rgba( 57, 71, 75, 1); - --color-3: rgba( 45,109,130, 1); - --color-4: rgba( 16,143,185, 1); - - --bg-color: var(--color-0); - --bg-color-2: rgb(60, 80, 85); - --bg-light-color: rgba( 48, 61, 65, 1); - --bg-dark-color: rgba( 24, 31, 33, 1); - --bg-hover-color: var(--color-2); - - --font-color: #9AA1A4; - --font-color-2: #ddd; - --font-color: #cccccc; - --border-color: black; - - --measurement-detail-node-bg-light: var(--color-1); - --measurement-detail-node-bg-dark: var(--color-2); - --measurement-detail-area-bg-color: #eee; - - -} - - -#sidebar_root{ - color: var(--font-color); - background-color: var(--bg-color); - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; -} - -.potree_failpage{ - width: 100%; - height: 100%; - background-color: white; - position: absolute; - margin: 15px; -} - -.potree_failpage a{ - color: initial !important; - text-decoration: underline !important; -} - -.potree_info_text{ - color: white; - font-weight: bold; - text-shadow: 1px 1px 1px black, - 1px -1px 1px black, - -1px 1px 1px black, - -1px -1px 1px black; -} - -.potree_message{ - width: 500px; - background-color: var(--bg-color); - padding: 5px; - margin: 5px; - border-radius: 4px; - color: var(--font-color); - font-family: Arial; - opacity: 0.8; - border: 1px solid black; - display: flex; - overflow: auto; -} - -.potree_message_error{ - background-color: red; -} - -#potree_description{ - position: absolute; - top: 10px; - left: 50%; - transform: translateX(-50%); - text-align: center; - z-index: 1000; -} - -#potree_sidebar_container{ - position: absolute; - z-index: 0; - width: 350px; - height: 100%; - overflow-y: auto; - font-size: 85%; - overflow: hidden; - border-right: 1px solid black; -} - -.potree_sidebar_brand{ - margin: 1px 20px; - line-height: 2em; - font-size: 100%; - font-weight: bold; - position: relative; -} - -#potree_sidebar_container a{ - color: #8Aa1c4; -} - -.potree_menu_toggle{ - position: absolute; - float: left; - margin: 8px 8px; - background: none; - width: 2.5em; - height: 2.5em; - z-index: 100; - cursor: pointer; -} - -#potree_map_toggle{ - position: absolute; - float: left; - margin: 8px 8px; - background: none; - width: 2.5em; - height: 2.5em; - z-index: 100; - top: calc(2.5em + 8px); - cursor: pointer; -} - -#potree_render_area{ - position: absolute; - /*background: linear-gradient(-90deg, red, yellow);*/ - top: 0px; - bottom: 0px; - left: 0px; - right: 0px; - overflow: hidden; - z-index: 1; - -webkit-transition: left .35s; - transition: left .35s; -} - -.potree-panel { - border: 1px solid black; - border-radius: 0.4em; - padding: 0px; - background-color: var(--bg-light-color); -} - -.potree-panel-heading{ - background-color: var(--bg-dark-color); -} - -a:hover, a:visited, a:link, a:active{ - color: #ccccff; - text-decoration: none; -} - -.annotation{ - position: absolute; - padding: 10px; - opacity: 0.5; - transform: translate(-50%, -30px); - will-change: left, top; -} - -.annotation-titlebar{ - color: white; - background-color: black; - border-radius: 1.5em; - border: 1px solid rgba(255, 255, 255, 0.7); - font-size: 1em; - opacity: 1; - margin: auto; - display: table; - padding: 1px 8px; - cursor: pointer; -} - -.annotation-expand{ - color: white; - font-size: 0.6em; - opacity: 1; -} - -.annotation-action-icon{ - width: 20px; - height: 20px; - display: inline-block; - vertical-align: middle; - line-height: 1.5em; - text-align: center; - font-family: Arial; - font-weight: bold; - cursor: pointer; -} - -.annotation-action-icon:hover{ - filter: drop-shadow(0px 0px 1px white); - width: 24px; - height: 24px; - cursor: pointer; - -} - -.annotation-item { - color: white; - background-color: black; - opacity: 0.5; - border-radius: 1.5em; - font-size: 1em; - line-height: 1.5em; - padding: 1px 8px 0px 8px; - font-weight: bold; - display: flex; - cursor: default; -} - -.annotation-item:hover { - opacity: 1.0; - box-shadow: 0 0 5px #ffffff; -} - -.annotation-main{ - display: flex; - flex-grow: 1; -} - -.annotation-label{ - display: inline-block; - height: 100%; - flex-grow: 1; - user-select: none; - -moz-user-select: none; - z-index: 100; - vertical-align: middle; - line-height: 1.5em; - font-family: Arial; - font-weight: bold; - cursor: pointer; - white-space: nowrap; -} - -.annotation-description{ - position: relative; - color: white; - background-color: black; - padding: 10px; - margin: 5px 0px 0px 0px; - border-radius: 4px; - display: none; - max-width: 500px; - width: 500px; -} - -.annotation-description-close{ - filter: invert(100%); - float: right; - opacity: 0.5; - margin: 0px 0px 8px 8px; -} - - -.annotation-description-content{ - color: white; -} - -.annotation-icon{ - width: 20px; - height: 20px; - filter: invert(100%); - margin: 2px 2px; - opacity: 0.5; -} - - -canvas { - width: 100%; - height: 100% -} - -body{ - margin: 0; - padding: 0; - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; -} - -.axis { - font: 10px sans-serif; - color: var(--font-color); -} - -.axis path{ - fill: rgba(255, 255, 255, 0.5); - stroke: var(--font-color); - shape-rendering: crispEdges; - opacity: 0.7; -} - -.axis line { - fill: rgba(255, 255, 255, 0.5); - stroke: var(--font-color); - shape-rendering: crispEdges; - opacity: 0.1; -} - -.tick text{ - font-size: 12px; -} - -.scene_header{ - display:flex; - cursor: pointer; - padding: 2px; -} - -.scene_content{ - padding: 5px 0px 5px 0px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.measurement_content{ - padding: 5px 15px 5px 10px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.propertypanel_content{ - padding: 5px 15px 5px 10px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.measurement_value_table{ - width: 100%; -} - -.coordinates_table_container table td { - width: 33%; - text-align: center; -} - -#scene_object_properties{ - margin: 0px; -} - - - - -.pv-panel-heading{ - padding: 4px !important; - display: flex; - flex-direction: row -} - -.pv-menu-list{ - list-style-type: none; - padding: 0; - margin: 15px 0px; - overflow: hidden; -} - -.pv-menu-list > *{ - margin: 4px 20px; -} - -.ui-slider { - margin-top: 5px; - margin-bottom: 10px; - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.ui-selectmenu-button.ui-button{ - width: 100% !important; -} - -.pv-menu-list > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.pv-menu-list .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black !important; -} - -.ui-slider-handle{ - border: 1px solid black !important; -} - -.ui-widget{ - box-sizing:border-box -} - -.panel-body > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.panel-body > div > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.pv-select-label{ - margin: 1px; - font-size: 90%; - font-weight: 100; -} - -.button-icon:hover{ - /*background-color: #09181C;*/ - filter: drop-shadow(0px 0px 4px white); -} - -.ui-widget-content{ - /*color: var(--font-color) !important;*/ -} - -.accordion > h3{ - background-color: var(--bg-color-2) !important; - background: #f6f6f6 50% 50% repeat-x; - border: 1px solid black; - color: var(--font-color-2); - cursor: pointer; - margin: 2px 0 0 0; - padding: 4px 10px 4px 30px; - box-shadow: 0px 3px 3px #111; - text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; - font-size: 1em; -} - -.accordion > h3:hover{ - filter: brightness(125%); -} - -.accordion-content{ - padding: 0px 0px !important; - border: none !important; -} - -.icon-bar{ - height: 4px !important; - border: 1px solid black; - background-color: white; - border-radius: 2px; -} - -.canvas{ - -webkit-transition: top .35s, left .35s, bottom .35s, right .35s, width .35s; - transition: top .35s, left .35s, bottom .35s, right .35s, width .35s; -} - -#profile_window{ - background-color: var(--bg-color); -} - -#profile_titlebar{ - background-color: var(--bg-color-2); - color: var(--font-color-2); - text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; - font-size: 1em; - font-weight: bold; -} - -#profile_window_title{ - position: absolute; - margin: 5px; -} - -.profile-container-button{ - cursor: pointer; -} - -.profile-button:hover{ - background-color: #0000CC; -} - -.unselectable{ - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.selectable{ - -webkit-touch-callout: text; - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - - - -.divider { - display: block; - text-align: center; - overflow: hidden; - white-space: nowrap; - font-weight: bold; - font-size: 90%; - letter-spacing: 1px; - margin-left: 0px; - margin-right: 0px; - margin-top: 1px; - margin-bottom: 1px; - padding: 1px !important; -} - -.divider > span { - position: relative; - display: inline-block; -} - -.divider > span:before, -.divider > span:after { - content: ""; - position: absolute; - top: 50%; - width: 9999px; - height: 1px; - background: #b2b2b2; -} - -.divider > span:before { - right: 100%; - margin-right: 5px; -} - -.divider > span:after { - left: 100%; - margin-left: 5px; -} - - - - - - - - - - - -.ol-dragbox { - background-color: rgba(255,255,255,0.4); - border-color: rgba(100,150,0,1); - border: 1px solid red; -} - -.text-icon{ - opacity: 0.5; - height: 24px; -} - -.text-icon:hover{ - opacity: 1.0; -} - -.input-grid-cell{ - flex-grow: 1; margin: 0px 3px 0px 3px; -} - -.input-grid-label{ - flex-grow: 1; - margin: 0px 3px 0px 3px; - text-align:center; - font-weight: bold; -} - -.input-grid-cell > input{ - width: 100% -} - -.invalid_value{ - color: #e05e5e; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/** - * OVERRIDES - */ - - -.ui-spinner-input{ - color: black; -} - -.jstree-themeicon-custom{ - background-size: 16px !important; -} - -.jstree-default .jstree-clicked{ - /*background-color: #ffffff !important;*/ - background-color: #34494f !important; -} - -.jstree-default .jstree-hovered{ - background-color: #34494f !important; -} - -.jstree-anchor{ - width: 100% !important; -} - -.ui-state-default{ - background: #a6a9aa !important; - border: 1px solid black; - color: black; -} - -.ui-state-active{ - background: #c6c9ca !important; - color: black !important; -} - -.cesium-viewer .cesium-viewer-cesiumWidgetContainer{ - position: absolute; - height: 100%; - width: 100%; -} - - - - -.zs_widget{ - padding: 2px; - height: 4em; - user-select: none; -} -.zs_core{ - overflow: hidden; - position: relative; - height: 100%; -} -.zs_handle{ - position: absolute; - top: 0px; - bottom: 0px; - border: 1px solid black; - border-radius: 3px; - background-color: rgb(166, 169, 170); - width: 8px; - user-select: none; - width: 1.2em; - height: 1.2em; - top: calc(50% - 0.6em); -} -.zs_stretch{ - position: absolute; - top: 0px; - bottom: 0px; - border: 1px solid black; - border-radius: 3px; - background-color: rgb(166, 169, 170); - width: 8px; - user-select: none; - width: 1.2em; - height: 1.2em; - top: calc(50% - 0.6em); - color: black; - font-weight: bold; - font-size: 1.2em; - font-family: arial; -} -.zs_handle:hover{ - background-color: lightgreen; -} -.zs_inside{ - position: absolute !important; - width: 100%; - border: 1px solid black; - background-color: white; - top: calc(50% - 0.326em); - height: 0.652em; - cursor: zoom-in; -} -.zs_outside{ - position: absolute !important; - width: 100%; - background-color: var(--color-1) !important; - top: calc(50% - 0.326em); - height: 0.652em; - cursor: zoom-in; -} -.zs_visible_range_label{ - position: absolute; - bottom: 0px; - pointer-events:none; -} -.zs_visible_range_label_left{ - left: 0px; -} -.zs_visible_range_label_right{ - right: 0px; -} -.zs_chosen_range_label{ - position: absolute; - pointer-events:none; -} - diff --git a/app/static/app/js/vendor/potree/build/profile.html b/app/static/app/js/vendor/potree/build/profile.html deleted file mode 100644 index 855216fc..00000000 --- a/app/static/app/js/vendor/potree/build/profile.html +++ /dev/null @@ -1,95 +0,0 @@ -
- -
- - - - - - - -
- -
- - -
- : - - - - - - - - - - - - - - - - - -
- -
-
- -
- -
- position: asdsadf asdf
- rgb: 123 423 123 -
- -
-
-
- -
\ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/LICENSE b/app/static/app/js/vendor/potree/build/resources/LICENSE deleted file mode 100644 index 8dc6ae0d..00000000 --- a/app/static/app/js/vendor/potree/build/resources/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ - - - -icons/map_icon.png -from sitn PotreeViewer -http://ne.ch/sitn -https://github.com/PotreeViewer/PotreeViewer - -icons/navigation_cube.svg -icons/orthographic_camera.svg -icons/perspective_camera.svg -free for commerical use without attribution -http://www.freepik.com/free-icon/package-cube-box-for-delivery_720159.htm - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/angle.png b/app/static/app/js/vendor/potree/build/resources/icons/angle.png deleted file mode 100644 index ee21dd6a3d3a1546f5a3fbc42996e53a69342f54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;TPx#1ZP1_K>z@;j|==^1poj532;bRa{vGh)&Kwv)&Y=jd7JSF~(mA)$9OY7{d~3k}~l+ zGhcT)w7+cI3u9smQxDb4Z8N(KmZ;~D4L(CYFP#-uS6%xi3 zGsaId5-g$is4ofO$@+SS8t&jEv*MD|=Nk9Qg|j1d%{UL|dK3lNSVCo&KNIjmON4cB z#KlzVvcC9YS6F()UA2){pT9DGOKQ=$Ao1DVVGZ3X+GZb{e#PEU@9(DGx zNnO?th2nNWd2}{`R#Gs@XRbD6u+-ql7OU0Jo9?kC(o>N!g^Dz%lg_s o2=cO1l{}p@~ diff --git a/app/static/app/js/vendor/potree/build/resources/icons/annotation.svg b/app/static/app/js/vendor/potree/build/resources/icons/annotation.svg deleted file mode 100644 index c5a52811..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/annotation.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/area.svg b/app/static/app/js/vendor/potree/build/resources/icons/area.svg deleted file mode 100644 index 98c31cff..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/area.svg +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/area_backup.svg b/app/static/app/js/vendor/potree/build/resources/icons/area_backup.svg deleted file mode 100644 index 7fb9b22b..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/area_backup.svg +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/back.svg b/app/static/app/js/vendor/potree/build/resources/icons/back.svg deleted file mode 100644 index 7a762274..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/back.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/bottom.svg b/app/static/app/js/vendor/potree/build/resources/icons/bottom.svg deleted file mode 100644 index a96abc05..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/bottom.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-x.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-x.svg deleted file mode 100644 index a5c6f0f2..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-x.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-y.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-y.svg deleted file mode 100644 index e5d23aed..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-y.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-z.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-z.svg deleted file mode 100644 index a16d380a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip-plane-z.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip-polygon.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip-polygon.svg deleted file mode 100644 index 774fa71b..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip-polygon.svg +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip-screen.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip-screen.svg deleted file mode 100644 index e542deff..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip-screen.svg +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/clip_volume.svg b/app/static/app/js/vendor/potree/build/resources/icons/clip_volume.svg deleted file mode 100644 index 4a68b54b..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/clip_volume.svg +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/close.svg b/app/static/app/js/vendor/potree/build/resources/icons/close.svg deleted file mode 100644 index b39908be..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/close.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/cloud.svg b/app/static/app/js/vendor/potree/build/resources/icons/cloud.svg deleted file mode 100644 index 804466ce..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/cloud.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/copy.svg b/app/static/app/js/vendor/potree/build/resources/icons/copy.svg deleted file mode 100644 index 11cde80f..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/copy.svg +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/distance.svg b/app/static/app/js/vendor/potree/build/resources/icons/distance.svg deleted file mode 100644 index fc03804a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/distance.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/earth_controls.png b/app/static/app/js/vendor/potree/build/resources/icons/earth_controls.png deleted file mode 100644 index f09345cb09341f0eab601e07ec1610fb7f1b2c86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1465 zcmV;q1xEUbP)QF4rb%oPle;DNeD~iQ zEpxM-kU1vFI~FyS$}{3TPTXIClZNdI-M@vL8-7Ti%d*R*nK|V4Ox~sP1A%>C^U8D z%9WE=s}(6#ucQdzI1Yw}hAKu!M@LVbIPnI{vJEJTnoK4WPEnM?aa<^oNC=W7{d)#X zCKITyuSe_Z>M#t$08P_~VHi0{k~UjfT2AY_F3rx)e);g>!+ViPrF-?5mD2$)#m2rCJ3Q{AP8107V{pD zXLWgbxnQ%|aEHUuNRp&EolfT$7Z+2hR7y>yQt%%Quq+E0hCzmghH9&-s@U%C?(X5? z;c*C|arf@sFAxMl6h+Y(hA~qVW#M^#13?hXFbuu5we_gYX0s3kVY1up_Vee@e~h9i z{^-%8uf1NcdvkL$y|J;u`+PouFIfgW!VNC$7zxzj~Irb za2ywh5E>|oVzMmrZnyh})9IX66h-at?|*${WaJ}?qACFZ0K+icVzJbsD2mIn%qfae z$mjEG3kwUkr>CdCzkdCC$dD5?TN2oVGU znx;t{$7M5_3~v|)R8>{Qahx%m&FoIym{nC3%x1H7=PJiA4Dadbd0UdCLNpr9Jb3Vc z+Y%T(?|V&|IPXN`P-VNsk*M~vMfst4Gpg~ zHa2zx06;t*|231zBs5La0RYfqv9KK-9gg1K-uD$n;d!3laJgLHy4~(yyk2i491a&^ zv6#Lm0{MI%&dtr`{C+>@cDvV{PUp{EU0od)E?oE&LI_Jp}-OW5VMZ?CPrz5R4Dne;lH&aXTkk0%%mCd1*dAP54? z<#NwzU{4Wp90xd#Gq$$2#6TdhHak1}o5$l>QWQm>oSfXkaU4JhK}}5!Wipw}1VJz; zisCd)TSZY+mzI`ff*?RR98L&=@HxXUL@*f4tgWr7qA0@s=EJ^is3;0l6a{b`r?0H6 zBme+_AP7)aR)!1?4pyqFs+&wEVkd>DVHk!i%lf%<=Z=KKVLlp-YIpA3$?T{7R}MT0 zDT)FkBO|u)@$nByl2q(=d!Nl_JBgyGNfgDjBuSC8XV1QC7)COkPUp6_xA*P)LsMQ} zj$FKWu|6CQ|CGz+BBCg6!yPnD6Z83eWOH+KetdkqwYs|czGXmB{=fzR03a5N$sUi#lgs7S004VFQYaKs zE|+U27K@3cXqIFko6W*NAdr0g`0-6ymbu;gJ6rNSzu&*MzP_%PqFFK|NrH)qiMDJu zyS!Tixm<4b+O=z4G)x?u)4as6$k`=R8_U0>$)6|$LFKbXbM7D@`0pe z0{{T<UPLOD(pOei;)z6JktE4- zpU)SH$K!{}{hFs^q-C;(x^-2|VZL T<_z>Q00000NkvXXu0mjf4JELN diff --git a/app/static/app/js/vendor/potree/build/resources/icons/earth_controls.svg b/app/static/app/js/vendor/potree/build/resources/icons/earth_controls.svg deleted file mode 100644 index f5458f01..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/earth_controls.svg +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/earth_controls_1.png b/app/static/app/js/vendor/potree/build/resources/icons/earth_controls_1.png deleted file mode 100644 index b10c9358d430b8572c46a81a4707982a9bfc1f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1928 zcmV;32Y2|1P)-e$9vxo&-*^_j|cGAb;YoIrU9ekSlLuEvQk)$ z^gSYgAcio3aY?bwrQAXuzt;OLe4^jP#a{SZ1&gY!0KR_mtYTUYd5)afbWFi@@`zHF zisWN*%;E*f*Fu*)eimHv_(QOj&&~t>5IIuvI3`&3I4xKyTLxJtM-9EEbnYWw5>hM6 zIrg#ku#rUyNkkx{h7IU&5NEG2v!8v5wl9M!JqrIOwqVgwLYdwe)f#tI*){4aKb{5DS?RDG!W=YvdAL4fPyPGVjvKNgrtIjKwO0CN zjbR)C#<3A`0r5Zv5Xbk{fJNZNVF;NINg^Bg82AkM6vzY408s`~2O^>zA{?iH5}=$2 z#KpxWDvBajR#sLuO-sW)JFw06-lOmck)VY>1U?5oNlHpObM@*~XH`{|ZFqRtvA(|U z!2J-g!6dc-^=*mJ!WJMENCuLC)4)d*j*}-(W?#8-#dh)HMOjo-B<*&)d2nzrDi8>0 zOoT!cYk-C4RU;*0B)} zqNAft!C)}t_xnQ_3dAX~sMy=vBX5YcwKYNiK_VLOq(a1IcuG>J@Jcge@&Cp`oFnEokX?XsH()=%QDRg^z?<0DKL60}Lb1>kfxQh08+^ z9z4(*8X7{-fC_H}2?)>LrAwEz>FH^0etw>wYY=q^&nWgmT&u{WP)A3HR$5vbf_PPE ziR#O5Ks!(e6!Y5qSrcaTGYiOvU3)e+H`7N)N1e5`wHEx>;8K`uEqko%b_jZ z8`veeWD7&RapQ(^^X5%6t|@CaxgkCUegsB2r30__8n2;YJ?8>OnRE&%NOi=@^&}bL zvtwdO1V}INUYLZyGl}qR;ra!_x5;JR&z*UiJu<_jy#Lhn!UblPjpI0*TwGTQQBTrp zYHBR~{r$Q(hy)=qF;Qe?Wl3a+(%IQ*g^<@lhIT#&%rlV%p8K_9!kfBp*vQKvSTLM9 zJczSWR#qnK>gptA5s8w<*|TQ_rTgsctm)yyhg5-gn8Xh}hxgx(2B!aLiuB?i94?w@ z2k{QIwzlftAR^%bA?qo6>((s|+M*5|1Xdy;5eX3^p>-kz(FVrG#zJWOx+aVRRaXoQ z3{ZjFV*8~?PiqGuvKDSs*l`fqpe-#e?Hg=tY>4*ucB&b>?1?ER6VXZSphQT(GuW{o zVx=0gZ!kGIDem37r=eN~*zTDzJ>M0Pa7N8=`pu((sdw(&5iei96i9E;)zw8_+2wFh z51Bpei9V7+t)Ld@pma=6Pv3p?=#hqIrlCvkG1+f{uYmX8@VW8M4$ofR?JyNO=)v0C z+v|vrkC$_Eb3WG4uYB-XJ%~pR`Z*CU@w5R8Drgk4N8+ryg?>Zg{0aDuiL69=a6aq@ zR`@hu$Vlh=q=_;1$g`vVt_f$*bG}~W79ieG!jJvi*Y-+lII>JRmhmS8lByZ<#qg;B O0000 - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/eye_2.png b/app/static/app/js/vendor/potree/build/resources/icons/eye_2.png deleted file mode 100644 index c23e800da23cfe9958540b1807bd82b99cd77299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2998 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 sI`D70?jen*2YR3fdY}h-;QtZ+2i{d - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/eye_crossed.svg b/app/static/app/js/vendor/potree/build/resources/icons/eye_crossed.svg deleted file mode 100644 index bc0b8f2e..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/eye_crossed.svg +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/file_csv_2d.svg b/app/static/app/js/vendor/potree/build/resources/icons/file_csv_2d.svg deleted file mode 100644 index f1a293f2..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/file_csv_2d.svg +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/file_dxf.svg b/app/static/app/js/vendor/potree/build/resources/icons/file_dxf.svg deleted file mode 100644 index dedb04b3..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/file_dxf.svg +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - DXF - JSON - - - - - JSON - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/file_geojson.svg b/app/static/app/js/vendor/potree/build/resources/icons/file_geojson.svg deleted file mode 100644 index 4fa326cf..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/file_geojson.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - DXF - JSON - - - - - - - - - - - - - - - DXF - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/file_las_3d.svg b/app/static/app/js/vendor/potree/build/resources/icons/file_las_3d.svg deleted file mode 100644 index a6bf2288..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/file_las_3d.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.png b/app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.png deleted file mode 100644 index b57262a9900594b2f52bbba46cddd008e8e7ec43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmV+d1pWJoP)9f3w?3F=-(F2{U0P^MYjk6BVnJU`j>0 zO$({uNeV84Lg=}d6?)j?9(wRn*hBHqi(Z7H*dmGu!d|QxY-;oKELA z%gf7!LZJY++x?7)ZeQ2qvX7%w?%$eH2~E>}*xTE~>FFsnO*_1rS5@`TY&MIvwY8!w z%a6*yy+rhkh`z2%fQSYsCnq@oghC;H*|2wPZ0rR91cSjBM0BSVoH3@audhQ@RS?nr zngsw5V=Q`hc7~Oem7=03vyvozySlnsOr=tAyWM}3gC89oA(P3#@An%-bhj>nmX?;U z=H}+IrfGsP_Lrh4$GKb%v$L~?-ERM~5Eze}4=BCMG6Qx&VQ)F?QB>+b?0BD>w5URqjG1_lO*b57xKIL$f#o`~#>vB#U6n=Yr* zNuf|EyS=?VD$DXDW9++9{S3q4ob!*Wx(fhMb93`OP1Bw*#*P?cKQ}cseNpbo8Dqa0 zhJjMi(b4g=?w7EdGjD5ad)(dKt^0gF-RJY^UayzW%*+%3V0U-7s3^*Q-2%0qxz%d@ zd~k4(pP!%O@bD0-svZ-OT<=#<6I>KUe^*x*&tx))$Kz;kZ`X;)Tk}^?51feZcsw3m z*L9qnoS>(tCn1XB2W1)M;EJNu0+$p;IX*ZzfMFO21OnVeqvya(X4LXE@Wa2$_}j2NYAB9X|uu~_V50KdMrwvs?K wAqc`PBGRfT)dA!hF7PIC<3A>E1#Vp6B_%^yKyU7T82|tP07*qoM6N<$g3LJAYXATM diff --git a/app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.svg b/app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.svg deleted file mode 100644 index c28f2d08..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/flip_y_z.svg +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - y - z - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/focus.svg b/app/static/app/js/vendor/potree/build/resources/icons/focus.svg deleted file mode 100644 index db9b6d27..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/focus.svg +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/fps_controls.png b/app/static/app/js/vendor/potree/build/resources/icons/fps_controls.png deleted file mode 100644 index 3617358ccc4c1de8a195098aad821ab2a5594e56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmV-h1El-&Dh&@0E5BUV zRU(nl=;)}rySr6iUoXqDJ^^=ulfN?lrGLMGGr&_o&CSi4pPyHuT3cIFG#XVf7~BNz z1IPCb$b(!0-jtPhJHD-|znj_znb+L->Fjzz3htr*Jr|+1c5GkVqsV z;HpQ?QQ#Kv5O@sS14{l1$O|xlE5KxRb+y*l*F6ErWKxD;P31v~>T0lo}Pfrt#M#*F{&jIh#bgwIr zzZD}RBc7{}N~P4>+pCF*2~AB+sk5_Fb#-+D`hl{2Z9yL5U3+`GC!kRE_4O$b2rL8V z4gzo|7!2-ea59-xLqmg1)0Aad0MSWf;b3etw2e0JOHYvbnj* z - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/front.svg b/app/static/app/js/vendor/potree/build/resources/icons/front.svg deleted file mode 100644 index f3d8d4fb..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/front.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/goto.svg b/app/static/app/js/vendor/potree/build/resources/icons/goto.svg deleted file mode 100644 index 37677910..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/goto.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/gradients_grayscale.png b/app/static/app/js/vendor/potree/build/resources/icons/gradients_grayscale.png deleted file mode 100644 index 942721888fa52c31f05543c8f9abcf84cbe83d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9240 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

^6xNSWZXSwn#ARflM#QK>&*l(0@OU%|PwXs|^zP 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 diff --git a/app/static/app/js/vendor/potree/build/resources/icons/gradients_rainbow.png b/app/static/app/js/vendor/potree/build/resources/icons/gradients_rainbow.png deleted file mode 100644 index c3f9172f916754a45d10816dbae8a1c572d89028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14977 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 LNkvXXu0mjfkfo`| diff --git a/app/static/app/js/vendor/potree/build/resources/icons/gradients_spectral.png b/app/static/app/js/vendor/potree/build/resources/icons/gradients_spectral.png deleted file mode 100644 index ae4886b353dc35f3b1655ee3bb6f7afe6f3b0c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15594 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 Ef-Np_5dZ)H diff --git a/app/static/app/js/vendor/potree/build/resources/icons/gradients_yellow_green.png b/app/static/app/js/vendor/potree/build/resources/icons/gradients_yellow_green.png deleted file mode 100644 index 9e907061d092438d9cf0ab29b5ef2fd09df3d5df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14040 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 KMNUMnLSTZ{Ax>)m diff --git a/app/static/app/js/vendor/potree/build/resources/icons/height.svg b/app/static/app/js/vendor/potree/build/resources/icons/height.svg deleted file mode 100644 index 7b3fb343..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/height.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/helicopter_controls.svg b/app/static/app/js/vendor/potree/build/resources/icons/helicopter_controls.svg deleted file mode 100644 index 84ab2eb3..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/helicopter_controls.svg +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/image_preview.php b/app/static/app/js/vendor/potree/build/resources/icons/image_preview.php deleted file mode 100644 index 7288b6a4..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/image_preview.php +++ /dev/null @@ -1,24 +0,0 @@ - $value){ - - if($value === "." || $value === ".." || $value === "image_preview.php"){ - continue; - } - - ?> -

-
- -
- \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/icons/index.html b/app/static/app/js/vendor/potree/build/resources/icons/index.html deleted file mode 100644 index e41d15e8..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/index.html +++ /dev/null @@ -1,501 +0,0 @@ - - - - - - -
- - -
- -
annotation.svg
-
-
- - -
- -
area.svg
-
-
- - -
- -
area_backup.svg
-
-
- - -
- -
back.svg
-
-
- - -
- -
bottom.svg
-
-
- - -
- -
clip-plane-x.svg
-
-
- - -
- -
clip-plane-y.svg
-
-
- - -
- -
clip-plane-z.svg
-
-
- - -
- -
clip-polygon.svg
-
-
- - -
- -
clip-screen.svg
-
-
- - -
- -
clip_volume.svg
-
-
- - -
- -
close.svg
-
-
- - -
- -
cloud.svg
-
-
- - -
- -
copy.svg
-
-
- - -
- -
distance.svg
-
-
- - -
- -
earth_controls.svg
-
-
- - -
- -
eye.svg
-
-
- - -
- -
eye_2.svg
-
-
- - -
- -
eye_crossed.svg
-
-
- - -
- -
file_csv_2d.svg
-
-
- - -
- -
file_dxf.svg
-
-
- - -
- -
file_geojson.svg
-
-
- - -
- -
file_las_3d.svg
-
-
- - -
- -
flip_y_z.svg
-
-
- - -
- -
focus.svg
-
-
- - -
- -
fps_controls.svg
-
-
- - -
- -
front.svg
-
-
- - -
- -
goto.svg
-
-
- - -
- -
height.svg
-
-
- - -
- -
helicopter_controls.svg
-
-
- - -
- -
left.svg
-
-
- - -
- -
menu_button.svg
-
-
- - -
- -
menu_icon.svg
-
-
- - -
- -
navigation_cube.svg
-
-
- - -
- -
orbit_controls.svg
-
-
- - -
- -
orthographic-camera.svg
-
-
- - -
- -
perspective-camera.svg
-
-
- - -
- -
point.svg
-
-
- - -
- -
profile.svg
-
-
- - -
- -
remove.svg
-
-
- - -
- -
reset_tools.svg
-
-
- - -
- -
return_number.svg
-
-
- - -
- -
rgb.svg
-
-
- - -
- -
right.svg
-
-
- - -
- -
rotate.svg
-
-
- - -
- -
scale.svg
-
-
- - -
- -
sphere.svg
-
-
- - -
- -
sphere_distances.svg
-
-
- - -
- -
target.svg
-
-
- - -
- -
top.svg
-
-
- - -
- -
translate.svg
-
-
- - -
- -
triangle.svg
-
-
- - -
- -
volume.svg
-
-
- - -
- -
angle.png
-
-
- - -
- -
earth_controls.png
-
-
- - -
- -
earth_controls_1.png
-
-
- - -
- -
eye_2.png
-
-
- - -
- -
flip_y_z.png
-
-
- - -
- -
fps_controls.png
-
-
- - -
- -
gradients_grayscale.png
-
-
- - -
- -
gradients_plasma.png
-
-
- - -
- -
gradients_rainbow.png
-
-
- - -
- -
gradients_spectral.png
-
-
- - -
- -
gradients_yellow_green.png
-
-
- - -
- -
map_icon.png
-
-
- - -
- -
profile.png
-
-
- - -
- -
rgb.png
-
-
- - -
- -
rgb_elevation.png
-
-
- - -
- -
sphere.png
-
-
- -
- - - \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/icons/left.svg b/app/static/app/js/vendor/potree/build/resources/icons/left.svg deleted file mode 100644 index 1c4c1cdb..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/left.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/map_icon.png b/app/static/app/js/vendor/potree/build/resources/icons/map_icon.png deleted file mode 100644 index c790e7f8c07977aaf4b6935d3608b16e34ec04c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7937 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 - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/menu_icon.svg b/app/static/app/js/vendor/potree/build/resources/icons/menu_icon.svg deleted file mode 100644 index be38b1d2..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/menu_icon.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/navigation_cube.svg b/app/static/app/js/vendor/potree/build/resources/icons/navigation_cube.svg deleted file mode 100644 index d46db83f..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/navigation_cube.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/orbit_controls.svg b/app/static/app/js/vendor/potree/build/resources/icons/orbit_controls.svg deleted file mode 100644 index 5a46cd21..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/orbit_controls.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/orthographic-camera.svg b/app/static/app/js/vendor/potree/build/resources/icons/orthographic-camera.svg deleted file mode 100644 index 7089ff4a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/orthographic-camera.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/perspective-camera.svg b/app/static/app/js/vendor/potree/build/resources/icons/perspective-camera.svg deleted file mode 100644 index 6491bca8..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/perspective-camera.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/point.svg b/app/static/app/js/vendor/potree/build/resources/icons/point.svg deleted file mode 100644 index af01d619..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/point.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/profile.png b/app/static/app/js/vendor/potree/build/resources/icons/profile.png deleted file mode 100644 index 1f42ba16de068a97c7fc806ce30c5084a00dc658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 975 zcmV;=12FuFP)$Mtu?cP?7|V@CA$_MA79)CC%(bBgC-KQuAe~IYs9=S0A1o zjvU8oYfg&(@aN&aum5vjf1c~Q?uY*64$A1~4Qy`mnc@X_T+4lA?7 za5^z$u#-TlKsLMEos{R_- zKO`ft3d8?Gdo4~b7%O6Sku8n=FT?HGaI#HiL{>_T2S zO<-yF8B5C>im@@L#qfn9m9-HgdP{yQ!tTltRpC@sDA$GR?)c+4tSKGlWQv?sRv6XV zZe26N=8EK;0)MIu&FSNKq>wOEVqmh772JGpvihQfbGx?SM0b28+O5yeC0|kU?k35E zKpWO->S{K>p854urfI+xyQ=9}gC=Y&{Q_$}d0U8i3Fl1+$-linNaJOkcVl%}F)e)Z zXh?eCb3OFm5S;PB+z`tX-hD%0Tt5vI@Q|cWLsfa;kc%%fFco3{mJoZxu^l0uKB(tW z?JH`r4mlUpzZ8p&ZVX2v;j&eMWdo4BfHF)h-Mp{~r?}-|zUp4B+5l??&_GTPO;<25 z8V$0O*w($XwJnGB18AT}6bwuTdn@?kJZBGaboW-tY!3=PlZ;15T@^BS1r`og@|2|V xQNr - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/remove.svg b/app/static/app/js/vendor/potree/build/resources/icons/remove.svg deleted file mode 100644 index 326f5d3a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/remove.svg +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/reset_tools.svg b/app/static/app/js/vendor/potree/build/resources/icons/reset_tools.svg deleted file mode 100644 index fe0846ae..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/reset_tools.svg +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/return_number.svg b/app/static/app/js/vendor/potree/build/resources/icons/return_number.svg deleted file mode 100644 index f8089d28..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/return_number.svg +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/rgb.png b/app/static/app/js/vendor/potree/build/resources/icons/rgb.png deleted file mode 100644 index a62faf5237ed0429604813fe729a946c7928c65a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2307 zcmV+e3HHS1mC2M^_sl4@(Fr>pL{=iYm6E%13A29V~Vha9uG=<&1ofBkSj>&7K4 zIy-S&anJlKer@=#IlXIsj~K5%45L1jJ9oaCsP4JK7s@L*^g+xsV{r`mXF2;*k)Ogb zw^r-dU8i!p)aI+()Sr*k^MCG=I&3&5lc4)3i5yj@Bkq*%io2Xs$laIwxjtRn*YAo) zpg#%7CjvM%eXKg6^gd+fu{=}X@^x>fYW^cVv{1r_C}RzRwndXM*g-QBoHy`6&ADJ) z@1zuk7cNEXZ_WM)gO3C8u>k&BduGyy`wgAxr=av+W3*eu3XQJ96Cuj^CHSHRuQGs` zCJi$JW{hTL2xgiI;)>Kr_l?{s{M5>SqSz7@A!zQe=V|r?9lIkY zx1sO}ARX0{Fd0Onj^MzJ=-gh%#VH>xN1&f1$io(<%o0eIuuwG4=}Ej0 z9maEmBUtw;WPopO=7e2KdOpvy`>~%@e0gjEI9+xs%fj5-W59=`b|?ix&c5rxKitIl z15G9tlPb-im0}`t+La)T$~Xx|#aN4qIMLpRQ-fQP`!)~g`Q>~-#W<#}@5SWUwE+4~ zHg~}ly8R=*`w864q88l8lq3T~+FvmvfvGHed z@wmMEp6NStBZZ}YU_)RT;F^!K6g`D#IN-q{qCtQ(j`%&qaQ!0U&I*#ShlJ0qaTE91 zib5u)L0i$X1z-uc#%)Cqjx6ojk0-xtVX>?)42HA(K^w>JKXH&N}Y_Oe}jcz#taQygU z{^gkyZ#s@Jalwe3PeCUJE&zqA`+Rt`zJjAx`ngJfH3v?i>tvf@1-R)lsA$d0ybC~W_W*j zh?%s9PN#=%muo-(^t?~QajcMJITEEu#;r8F+_!sv4L9vzI4u1n*HS8&S4N2rvUkpH z>cCbA)~fPCRLkFsjXWsny5>DcGeaUaqSMO>l5`DGxQ34Pei$L7;V4yzGd(h%()-+S zAJ^^87)K6Xz|^cQQ5v?4rqm89qbNAPb9V)wVoHBTlbF=sCtIcqpC(?~_)tiKJlY!z~S4Ju$IP>OBLt?|ruL`rRA zM&q6b`}q1|3(i=Eu9B#*s(d=Z%LLoB^MTCW-?8?#0MO6NH;uhmUsfz_&Y?-j*>HHrfoEH0#dR zo?va1e$Jk7QV1&7)ePA0A5N(5LRfrWx%xor$-8tpgXhMOMeZdFS)Jv!V;b^~9+QJ- zs5Yv_05?o&+|S;XZpl zbzeNx=yJogXVQ9)v=c+&{Kipq+Ff1Vc&Udan>iX5+Nqf7^O zRe_t!LKlR4-Vvo=Nag;d+6e#n=yg2bgz~WfMlYN^nZ;SGlipt7IoBQoI d+rK`4 - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/rgb_elevation.png b/app/static/app/js/vendor/potree/build/resources/icons/rgb_elevation.png deleted file mode 100644 index d43659fe5a2262969f186dfa5b3375a3f4febbeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2467 zcmV;U30(GxP)VOWw;u62clnz(Hi!stlTit%D4x z!3xu=bfLu=>I`iyGt@@xA04$golbFV$2!vrb;8mzE~M5J#8JmY2oy-z62XLoY%h85 zrN0)$-+J-fjU7d^Ybj&1ta zQL=SvQLU9=hO4aj15Y4vwn&r~m$B^NN+|0RFDdyjZ4F*@-sbJX-5n|IS!|XHr)b)~ zuUh{r0USh)9tgyOy5^h7g;rEY7j{jKXYs+(c4M^6mv|n&wS!m6Pzu;La}x z@dXAp=GXdRVC5eZ`?u{8=cjaYFQVK-uUxdbElx;k}?lesQ@gxqk6+#u{^Qw~V$p@61OS2e=~jW9KQGh?jBrP6YlCG|1qMH4DkXBM$# zEirMjnE=gfz}BBXiercCz)TY`QfS)wJFI_Pq5Q`g-DV%~n}22Q`CY*BRlvVbQI=3` zWNuL`rCEh}*Q(@*3r=}8pUX7M6-%?r;xxuq0Y|P6QOfnL{{-gm8o&#iet|KQ7lFCF z&_o;7y_nIpO65lic5T9%%m< zsJxfl;Dl57XTQ5Gue0shLr}vcS6A=mciopiS1QhW%_bORVI#e_dLRc{VHwWsxu(aS2X>Z9EZ(fp)dwecm(9atk2^=XfH7Sq z%nqbQ4>~K|WEDXtidln!Ip1G|MJp;%dSD**Zg?3TuMGhu*9Ay~sI7A#w_*XzL<~G< zB8+3laq=UIyn9HGDmEx4dRi4`Y&O`oxo4+s`rZs8eB>Ng>{|uk+P67B>@o-WWAjV_DQk&u}R2J4dTV;E<*fu5cusP0zuoo z6^75t8ix|<@F*9YH9s7PrkgcXP#z5z02=?<3mL4&srEF|MlX^>y%>nZX!9h7Xyc?| zZ!U&6H!KCIBm`Z@jZLBau1VGhOM zbwyBh|0UdccOMMm^4VOV0W_|lSy|-IDc~i+dO1m!S&C0pM5S`jJlzJ6AnQ`(F=B-pK}D}A8IYvj zV2DhP6D}W#VhTxmP6@4r3+MLYI6vSDVfX;LkpcU#9y9V%MTy!bN~eRUT&H%-CKt@0hMCk!=!Zc96QZCjB1WXfjI`7nO=vqhB>C z>iCM?jM@*aox{10?rQzP=!r+^kHVL2Zoj+P|AH$fl12^vF_}C$TNC1T$@MC;=#BfV z;74WPsgQ)}Af_qGxe?S^|HFCO*@fBKA=7l!yEV~_tY~D-4L-jS$Swbvj8d+x)uS$``AZZ#+KO%1bm h)d2g+cI7v3{15E962tdu&qe?M002ovPDHLkV1g~+rBVO@ diff --git a/app/static/app/js/vendor/potree/build/resources/icons/right.svg b/app/static/app/js/vendor/potree/build/resources/icons/right.svg deleted file mode 100644 index 5449b634..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/right.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/rotate.svg b/app/static/app/js/vendor/potree/build/resources/icons/rotate.svg deleted file mode 100644 index 56384888..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/rotate.svg +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/scale.svg b/app/static/app/js/vendor/potree/build/resources/icons/scale.svg deleted file mode 100644 index 226c124d..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/scale.svg +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/sphere.png b/app/static/app/js/vendor/potree/build/resources/icons/sphere.png deleted file mode 100644 index 7e1285435b69d650a2093359b9507525c830c705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 939 zcmV;c162HpP)TKgsG=OR_CXcESlLr)yt;j9{+7+yOS+ zfFdAd_6`s_-GDm`Cf(u$BxJVSQtRIaAT7*bV?4V>LRY;isU*GMr(eHUudTYS`N(B| zsQM?sCjj8Q=jDTg1IPFM!+yU%4a0EK>-8qxZWqt<=2FVJ5aQwqrbPw`{ou{mSyel@1IC1 zZW zk|bnVhB1bsD9H1C0{rz}fN5ElFU0aZC(mvW(?&iPoAl zO)fC3Og zw9_vL0zA)a3-UF0j4`P(=C}ELzIHOcIgTyMIsq=4d)u~K@djYs_T+i~``z8$w~hI? z0I+~#;Jk67aYHH9+TZDPo&%&+RsC^)fB$FwmOx$CTLmx%z614-A%v)vQnl~pKLI`g{sH$Y@6FMIPSXGY N002ovPDHLkV1guauz3Ig diff --git a/app/static/app/js/vendor/potree/build/resources/icons/sphere.svg b/app/static/app/js/vendor/potree/build/resources/icons/sphere.svg deleted file mode 100644 index cddd6c06..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/sphere.svg +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/sphere_distances.svg b/app/static/app/js/vendor/potree/build/resources/icons/sphere_distances.svg deleted file mode 100644 index f74d500a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/sphere_distances.svg +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/target.svg b/app/static/app/js/vendor/potree/build/resources/icons/target.svg deleted file mode 100644 index 6a29f1de..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/target.svg +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/top.svg b/app/static/app/js/vendor/potree/build/resources/icons/top.svg deleted file mode 100644 index da882257..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/top.svg +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/translate.svg b/app/static/app/js/vendor/potree/build/resources/icons/translate.svg deleted file mode 100644 index 823e6f8c..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/translate.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/triangle.svg b/app/static/app/js/vendor/potree/build/resources/icons/triangle.svg deleted file mode 100644 index 02ac589c..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/triangle.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/icons/volume.svg b/app/static/app/js/vendor/potree/build/resources/icons/volume.svg deleted file mode 100644 index 628fe721..00000000 --- a/app/static/app/js/vendor/potree/build/resources/icons/volume.svg +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/images/child_indices.svg b/app/static/app/js/vendor/potree/build/resources/images/child_indices.svg deleted file mode 100644 index fb703d27..00000000 --- a/app/static/app/js/vendor/potree/build/resources/images/child_indices.svg +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - 0 - - 4 - - 1 - - 5 - - 2 - - 6 - - 3 - - 7 - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.common.json b/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.common.json deleted file mode 100644 index a54818fc..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.common.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "simple_dev": "ok_from_common_dev", - "test": { - "simple_dev": "ok_from_common_dev", - "fallback_dev": "ok_from_common_dev-fallback" - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.special.json b/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.special.json deleted file mode 100644 index d3c94c83..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/dev/ns.special.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "simple_dev": "ok_from_special_dev", - "test": { - "simple_dev": "ok_from_special_dev" - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/lang/dev/translation.json b/app/static/app/js/vendor/potree/build/resources/lang/dev/translation.json deleted file mode 100644 index 55e7448e..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/dev/translation.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "simple_dev": "ok_from_dev", - "test": { - "simple_dev": "ok_from_dev" - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/lang/en/ns.common.json b/app/static/app/js/vendor/potree/build/resources/lang/en/ns.common.json deleted file mode 100644 index 60120932..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/en/ns.common.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "simple_en": "ok_from_common_en", - "test": { - "simple_en": "ok_from_common_en", - "fallback_en": "ok_from_common_en-fallback" - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/lang/en/ns.special.json b/app/static/app/js/vendor/potree/build/resources/lang/en/ns.special.json deleted file mode 100644 index c30b59c5..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/en/ns.special.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "simple_en": "ok_from_special_en", - "test": { - "simple_en": "ok_from_special_en" - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/resources/lang/en/translation.json b/app/static/app/js/vendor/potree/build/resources/lang/en/translation.json deleted file mode 100644 index da0f207f..00000000 --- a/app/static/app/js/vendor/potree/build/resources/lang/en/translation.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "tb": { - "navigation_opt": "Navigation", - "rendering_opt": "Appearance", - "tools_opt": "Tools", - "measurments_opt": "Measurements", - "clipping_opt": "Clipping", - "annotations_opt": "Annotations", - "materials_opt": "Materials", - "scene_opt": "Scene", - "classification_filter_opt": "Classification filter", - "filters_opt": "Filters", - "parameters_opt": "Other settings", - "about_opt": "About" - }, - "tt": { - "angle_measurement": "Angle measurement", - "point_measurement": "Point measurement", - "distance_measurement": "Distance measurement", - "height_measurement": "Height measurement", - "area_measurement": "Area measurement", - "volume_measurement": "Volume measurement", - "height_profile": "Height profile", - "clip_volume": "Volume clip", - "clip_polygon": "Polygon clip", - "screen_clip_box": "Draw a selection box. Requires you to be in orthographic camera mode!", - "clip_plane_x": "Clip plane on x axis", - "clip_plane_y": "Clip plane on y axis", - "clip_plane_z": "Clip plane on z axis", - "remove_all_measurement": "Remove all measurements", - "left_view_control": "Left view", - "right_view_control": "Righ view", - "front_view_control": "Front view", - "back_view_control": "Back view", - "top_view_control": "Top view", - "bottom_view_control": "Bottom view", - "focus_control": "Full extent", - "orbit_control": "Orbit control", - "flight_control": "Fly control", - "heli_control": "Helicopter control", - "earth_control": "Earth control", - "perspective_camera_control": "Perspective camera", - "orthographic_camera_control": "Orthographic camera", - "navigation_cube_control": "Navigation cube", - "remove_all_clipping_volumes": "Remove all clipping volumes" - }, - "appearance": { - "nb_max_pts": "Point budget", - "point_size": "Point size", - "point_opacity": "Opacity", - "field_view": "Field of view", - "point_size_type": "Point sizing", - "point_material": "Materials", - "elevation_range": "Elevation range", - "point_quality": "Quality", - "point_shape": "Shape", - "edl_radius": "Radius", - "edl_strength": "Strength", - "edl_enable": "Enable", - "min_node_size": "Min node size", - "clip_mode": "Clip mode", - "move_speed": "Speed", - "skybox": "Sky", - "bottom_lock": "Keep above ground", - "box": "Box", - "length_unit": "Length unit", - "freeze": "Lock view", - "language": "Language" - }, - "measurements": { - "clip": "clip", - "show": "show volume" - }, - "annotations": { - "show3D": "show in 3D", - "showMap": "show on map" - }, - "profile": { - "nb_points": "Number of Points", - "title": "Height profile", - "save_las": "Save LAS(3D)", - "save_ortho": "Save CSV(2D)" - }, - "scene": { - "camera_position": "Camera Position", - "camera_target": "Camera Target" - }, - "filters": { - "return_number": "Return Number", - "number_of_returns": "Number of Returns", - "gps_min": "min", - "gps_max": "max", - "gps_time": "GPS Time" - }, - "settings": { - "language": "Language" - } -} diff --git a/app/static/app/js/vendor/potree/build/resources/logo.png b/app/static/app/js/vendor/potree/build/resources/logo.png deleted file mode 100644 index 236deb57e70157c3ee8caaf5074c63eb9b3a575d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28793 zcmZ6y2Ut^0^9LFd0i_xhkd6UFq>1z{5+nfu>Afflh7JK~Qlc*qL|Q%WBf4A&qbsi8%2!w=dn+NACP6joISkxY^tuRA$PABK2 zu{=4!LAM5eBtmxzcH@dO0Xv*?)^Uayf9HlSy>8kY`&S~OJl9^~=#l#UEPl?1M+|ZhOU$>Z?CIwKE3MZUcNm4-NHkUE)rr{5DpIJ%V1TvV! zINe}M8W-7ZtxJKS1dxKT^0QT9M{Tlla&pz2>m7^a@{-$1pWZ1M`LG ze@8FzUW3?o!8sC{{pbCsc&ffCoiYPg|Gz`~V6U#!qfSVf`uIgZwFZm#0dqmd)BFGJ zxJ;gl*jKH*s)m#^5W7>LN3zFFX=e=|+%|oj_(wdWpU`U)Hy6N8mvjF~;6(C5sGxm_ z0mt7_mze;RhxJ6fY*kP3M&Qy@1FraTuD<%8%oI}MsdHKJHBlK>@Otequ_`;7$e+3P zX7zTVt2G#djsJJwdm|TUx&H|7mTvUn-xi)}jlte+T^RQN&kwQN$gK8&GygKgwV-6+ zj(Hee(8i7r^&-ciOZUXgQI5)TM*SXI+gaB6+dQ!=%FQBjn$rN}!w_Mw3jHGnxoQ*h zl3>k?unL)TyhwBk(=Q9mCPoTlh=_h*wiF%j_O}u2hX2R|xVivzSg%u1m=Y;`$Ig_v zQAap+Ev?V@x`%;n(f^I&zDPVZ4&GS+^}7T2WG_3#XRcawDpW&#fv@jDjVjLF657*I_^ zY-lI`4RBBV$@W{YXmy_ z*G{6oRWvidehYB;+*6-_Us3e8R}T`09nn9ma%O^g72f+xD6=7Wxvw%RlH=)d%cHk_ z|8{#LF`g;_?{pz((wkY=I(z<)v|K>|SZWJRULahjzawKMKjO=G{O;B5|OytFQAPN|~vDnc}r$;u^B2p*H7|YnpPDoz931EdS~i1#AW(aP;wh{1zklPHte047Dc2_Z%n7c}wAbHfs*P5J|isvG!B$lPN(i_&4`m0rKsk>hxBRi7Y=84&ub_kblrx!h`0#IE6-A)}`Ke$ffbi}WC>O8|H#jkq||EN*AT6FT- zW$7bxek!~ZqVVxbX*9kN5zn#A=6UUTL5zq4BnOhi#wP#`8p!(@Ws$&;om{st&SD)O zP+c)I5d^ZLi=^v6(VvL5n^&$E#SMu#H1}Z=qTEu4R(}l_;3|YQ%JOuZBDk9T2KGcz z3V9D1Mw4r%dOs+{1m7an5~9_2`TSFOA7|;1p5XVFz42j2N&?RVRA^KCjN~AwUu2&+ zTN>UirLEeDp(SkqF}eQc9#RRyMJEQ<)9V~mz-Q)0Ng&D@Rm#sphusow)R6f?o0`-I zesJ~nYZI7a+iFFKBb%qr<#cqmVN+Z#8z0?4tylR63(VWF=f|FmWDW?z?W!PblVNM2 z0;^mzor=h!Ybl6%_{Q>umhA#qspyuM~A&!j4} z{wPVVB#7f<`Xf0%U5GCc+pgulo@*_&H7<)>06B?j@D6_a#8|Ai6@(945jSitLfCQ# zGp{l*I0-s}`B?eRL#?*Lt|HYy#Cf&SVvS`=BRftJHu(bGd;w;8>2$p%ZjPZ&=21Q4L^t=dHhaJ_Y3YNvxL~xJ9%b)YT zwG3{9ERLuBxHo9|u##cwru!|A4`Y1w;8<{b9QMrgZutdTG~Q#IVV+-VptKt!7v%)e zyV02&z5bRVrADYqj<&w%PfA|6*qFS*ay1}2z~Y5t&V_*r=-RkZMAhYA+w@bPoL4lC zF9fz7;!m-T;N~tIvb7`(bl6)x)-D1oGwis+bG|JgMRHj@E$l4MhOwBg@nt4)z#i2J z5-9Xj%^+{_!?FE`)9EKPb+YO$DTfQQ4NSr8S0ZWKK3Urj3K?3g8WVfmLy4T9(pI{g z8e*vTB4m6RHQ6L@tyVW*Syds~FOl-gixUly?3U=~N8vssI#2z1DT(m#*Qx>x5#Tb@ zy~E!o2kT82S0SX9UQ&LKQIcE~Ki#v4WA`S8g}b5Cj)S)~Wkdosf400HPPx(6cPW6? z733q@*CBJbE1=d-SGT;jnUiy&ebn&&H=k;?Vq2lB*_GFN+mN;nBs#pnq>Py>!o1QF z5^>UAjE1&Yz}u9Icp)$64EOMb`jL<6tPE@~x;Z1`5qn_T1xjSFKVAB3+f@0*WhSIg zrR}0#I=)Zj5VPUjevkI>wX95)7;WtEIti^Wb~gk$W=}%mZ&YoYes4OJ>8Z~{*<(lg zJd^jK{Sy<7SHjKZRHmtHFcFUM9$A6>mywl>(!x?vE&lx@-$y{oNK$3VrXx>x7g`Xe zfKIaxc1!M1_7Fo^AQ^EH$n6*Rc8Rx}!04 z427V~yQlCL>*IGV$VCJToPP!P*OR#PlmKO49+YgRVx~5aZA39X-vaI6g+-3lxc}T0 zMzKX?Yb2Sk+6&VR3sX_eCB8?Z_taij#NUkP(+^F@yI`i1Rb#T;gUJ3!l_5OsNj&xF zS%%i&lZA_@3&{QCCv)}5L2vW5?N0Bg(|&kRNuRBok)g7vHe;HJXnQ{tPGZ6(mQtiL zh37!!C;233&PanaBiFBKEsr-^kLF3c8z^ZKU%P>5Ye~RWOD&{?f$9_atFOEg)W6#Z z>=feVM9b||GZk?)%)Uaq)SZ4BnNM3}32BQjm11p+2k#rGmf7aNfZCe;qhKEwpXuUP z(1sYxmCrvCmiM7cR4qTjCrS%OmZlqh9MdC>;Rh?TuRQc6E3Nt|tt>I}OH@xHbVn8p z#I9b#r9+HFS>-&(5tw302%k6&>z)nwP(jLxE*bLVX)Ll%WP_*%dx?0}dJ>O2t`5xh z@?m%XW4uKJ;|&sc5b-kq*2)8q#ukPhgW7O=Kk2-Et2@|xF57XbHUHqJ>Ds~RQn|)A z#_701PCg6NA;AbH@-BHRAyB`r7e>-3N92C0_mtuNOXvR)#Y`i{d`9N38;oVh3r3EF zu6!JSX8uo0LjY{3xrA%Wp3Iyk*q7QfL5PHK>5o+fTs5@v>JB)M;{S(~7>C_w2>k8d z(_MZ481b?egBJC&QiXC6!{5v`H&Gj5C_C~BK?3j^K0U%;FlRI$7tA!&$063svaa5_ z?cCaLku=NwbJV!`)D&yZ*g%(2lPFCC-}uUgD^=pI3ON87mS)u1Bt{d)4~7nl=Nep) zfVd&|ZqeXbC1Xs#PiB3)&-%D^+Z*nV2>tQm&fTq>7ePrQwO~u~ zSIjkN-!o3}3DL%J`s}nCHiT^zPkIykl4Dv8+d60(7f=(#kok4{b9+J8-Q^PzTG+Ez z@yU5$mT~hmZo&nequFITF5;p1=9Q6*+v9`kPdcJ1$;9u$MBzT-{kjZw z+ZHd07B_+!{;V$wWAJ@Q`yo0ciQ|NoFOT9Ge~-l`Saft5xi)a7&v(g1oh^y^$MVgS zuE&URm4v2YFr#I{si7;tj?dBW=oNaW6yg>p!e^dva#}pMo6mjv$E*1o6}IzRw8wH$ zj}3Y;TYWF|1|h!1g;U2imzK|#yu4OqT0!?xYL1>Qb)z2;fy=}AnpP7t^%HzH)KjHh zg+^e`;`J7(x|6=I@LXv|cU5t&$pXI~NaPwkZb_+e(5EeVdh#KOj7DxXoMKB|zX{wH zkLM625kZk`lIE(<{VEvy%hvxHyc2TF*y}_M;q~+;!E!x*vdmK&gDPLzm-f#_Q^3Y$ zrypLfiukN}b_vwX8~*P>|1gk|N{(q~EV zfm6TNn7#V;3-|Y9rOr%UPpIzCJ``X+ZoiQKswC1{9&pC8R}Pb(ZgdA+%gS5o?Wp%X z$KqzT>nT#ihXg(&tEKl2zo&)*!jPc`G?5z)3f;T#1C8(H^q7LN7VPaLOS(1_)wojw ziVh`N?&wRX+D(%Ud(wVpVMXBDM7GAI=EblSN@Lb~;K^0enYGx?B++L)%RcuGl~&70 z$lf2`QfW&Ny0*nD<^L((;Q?po4VoklumqI;GwjPfI^f78NwKdWD1acTe`cv?gwTYe=xt*&5x5KMp$ zHi@O13^qSFkAg}rOp*vIr7>8Oubp8&xvl*&beg8aySCCj*UO~yns05E@!cHtvXZ_G zH7E7s!%^jt%%E<4p1~gqLwvOpgi^-&Jt#7OEN$)l%t zA`4T`YrE-oZYtz1oW&PkOHUD;P!pk{7n}}D;IU<}ek`w4vTltb$O?<%)%w;+~Jkt*9#s!xJw&^u*sdAAX zcSdKrwB^sqoPNN(Dnr&JN05>;q7n4R`uJT9!_8C3B6z1D5O5GKTH$TLAHU+B2Ke4i zAHfT?3jED3qLC_(yU*pUN6K3ieds`1fl-#hZzHeo#(Zl=NYos2DvQGe=6?zzL!q>> z)|i3wrXS|v@ zSB1$YH=w`028TU-mBj4Ni| zWldGn^Q_wX3qBv%m^!RoU1$IWqgX3lI7p9d3LU$H&=K`kl_AX^hLy0)HR#8N z#n#_TRM`;e6Y=V6H2q=zapKxMz1EezUxnp2A zysL;h`TP2Y;u3We>UX~#iBOG_pDn_VW43R=9W-dh$u$>?u}76nM2E-S1Pvm(F8E^OLE!wM`4IEe~%l zJ6Riye%EG4vse0gnYx(L zhR@@}y20F)KHtOg1YuqYTbiVkkE1`%N;|L3@3lgd&oy{utxq!dI(6*VT}5r^eBPcr z=bT9wsX2F10joI_Mf|YiqWJXw+D&&_m?ElwJP1*qT`2R(yxUE#U8^wGg#jfnvwpQ@ zs5T1CyBd0I{VVA9N^j-&F0@F#-p<$;IQRH-DB5ikbDR)85;~bmm%vLMCW)WI|(d>Io z3CeLL5pRSeRc;$_SNfU7Q`Hd6jndy{7c%3`&2kX#mvYuy+RJF+`<6epsi5Bv=9Umg z4Bv_qA8-)|83P?j9V;IQckm&irF6WYaZn}Wl#YAr4jXXX;AptGq4*$F9r3)qGrX;` z@;<@i=<=1IkHhMZYwqdLh7afMD?=tcrq$Lx0@lJ>I=iJ;o>@E7cU#c~lZsTU+ymr=9>ONZaD1*L5dfmg3 zWheZ{@S#wZ>FeR~PRef3z}EtOTjU;>dM!30gq50W5storImtZ1 z`Ssv`;_L!rHb=D9V>fahRc>lK*Pm(68T6QbEH79;u+YwwA+hc;^>?J3Yt>C!5PX+z z;>At)_TXu~EV1l;jmD_n==Fx-{q?7n>sd{ehbJnjBjDl6PeH0E#JzsTiu&~6+>Qsy zF&$G@WVGso2~bPbSC9Pcn&s=o!vX}EtF1$?If%7Mt0I9va}903R;{pIFqQEv-lm?u zs+HfrHl`#tc(PDStlB`z^h!0+MZmUB%v#VDGTqB@lT?Ry+Bze^@F4Livt_S1j7>xe zw{`#JIZNS9meKorqE&7K4JSFT!R?Y^Eu!<0;fQQ`UAF3$ zy6+9Q&y$^smHWuEVnTAKh;ckQ{s*g^RkLHt?-bCwgLv6sITS(|XAD6);pXWHr7;?Wt#PDj77N$xeNTcU~ZvWPT`@K^5M78-v5| zBF&cc8%~Y9`nlbgf!&c`UAq2*O22jaT=PG|!gp4*8L(J`J&jm=R}{ZHqR7t0?EL(Q zXrYXS&SH`Q^#`SK^hk%tG&>qk1>4O&QHo{Pg%^AI8MC|eR{IJNR zu#`?>beTK(d3U#n;J0Gyw@CrnXQnI^(%G8FQABLY5`vYtFRY4I$zso>m zwmMt{w%l_baJ;zLBAo}SoO~u>lt|<_d)h7c6H(9BY9qp;tLNBP2o9QV=mtg{6P0Oo{K&U@ZUtvO$87YTRntP(u-+uo= z>2w|*3TkZCC&B0`wh`NA-ocLDB2p(?5im6Gd@zuZ1eKSG!@HKs^p z&KSCRhCSB~`+TyWt2`RNiJ@|x42Q#i^4O4`VH>zc60Uy#G-WH~YBUV$8XBR!Pp7}L zJo(R$G4vDcH12_@IB;H+n*_J0pnI1vZmx-^ifijnb?jX<-#mzXaqU;g+K1Z(lp?5K z5HO1>`jFVChmtO3Mziy+6S}68+teK9=t;!bLX9kp;!dt%c?ln5oNTJM!(?om&IwGv z#VQM4l2!EyM@n#EvwPYUq$mo$xIBou8hRuf^#%;p+Iy=~j$ zvC~}G@n=|NuyXCSU)s`qcl%b)OZ^J0_$k>Y@Nyz84yoJ8jsM{LH61)uzHk?p&fsW0 zysPT#``N;#D0xBKcj2aA%#A_ojXm(o?L_REf}W;L8`8nVgrkFyD_aoGhd*95?N{KD zcCE9k8NUvXW!|5Z$L@9b!38&hy9xG;#7=newO+?(pEhR&nlv{0%jR6_wEHQ$#!x@w zkHM45nr1oA2ZAfSJ~iico#J*0EJzskHunTeW~UO!^Y56=RRKL7BwotB zCMHsTeX8rVQUCc;yT%ydW2*$}*z1pILpRRdb_q4p%`0;w)nVeuQdg|p%{rOW>*I!b zii(&OhzeIq^pDAirB9?&0jQ0bPoezVL{8dVa7mkKQJ+#5ZkRKCK29j#p9 z!rHhmT;Xj2MOdlEv6bhmOgYJQFWji$2w7Nc?F~7U226$A#|2B?%IQm=4*7mxVjYpG z;~gA3FB%GoT~hh!{pDuY0`RBUI2+Ia}1xEq0jH ztKDTCCV<8FFR9-CoHd)1-dp>)W&IwVbU$CE%V5cP{k@a5CHTTU4WxpUTLRB-nz>7* z!)(hRq{u;u)u(Xyxnl~qIcwpnyE`?EuB$`cvyd*IvCj9xIS0Gl)nrsp@7WFXg7 zT(IpAoH-X{dd`<}c{M#KxRVN&Wxss7+6TJEMK0;R9a|pk{k@gzH~VOwVe?dhoIhg# zkU^}+Sef%iJU68kJ6=HKj1|1*egos^#q>|c7Z>9 zL#I*I=wr(cb^`+cMOwHzt}n%%m*W+K%NsCO1!n2}=YP*VeH$9+^;$WQrM_R|XB%yJ z<;L%au|!ZzNYaGrYy{gb8s7VbuiB{S99BiLm6!zKdS>*>pm96sNN+AU9LV*24l-r{ zxaZ5g>IC)krNJ*ZhKcrHR)Dv%4Q{DK_VCr!9XgiF3gCA;?7DwCzQGsUnI}B=sQ5Xr zkR!ak*{p_csW4|9YSeU5p=Q;a*0!UU!|dZI)kbc~p+q!KIyG6scEtCc{amn>Yob+b znM!kTKNU)jjN*cKMi-`XyY=<1WwkuRy|D9NFWlt zRhDk;#%*YFk%BInF8io zkorlbugmE_EI|07qcp9eSGM`t!f3Y!@q5o?6nn=y9}fMKtk3PjN*XLY`%8N{kGgQR zyR<_K&46B0w~l0NI}J6Q>})fj9{}7N4IFB_Oe)vFQ6_~SSh`|*r@aPqtVhsDz9mFx<(=%{T-|EU(Z!XK`@5GcgnHKc=`@c^mNU# z=lY%7GZWfJU8OH=rf)7ec-VSP6B3`heb`6OHtxXIy{km~swphEwvQvg2}gy~eZucdW~|fxPn! zklxr33YsCQXU+`1vW>rFr(Rj7G3H-+esbuC(Am$Es>5GojMXTBsHzr04nBR3Of5Oe<+NxtBqF!iHmRP`xi-DGE-~*k?(8P45lv*z4lPK z*#{;u`=J(Co*o2^2P?apI6 zg+6CJzSr`--oX`Kb^@z=9VMTAK<*-n5%)kCV>-UMz6H4WZ z{ey4gYUdaPph-AR?MK!Ls|al+kye!@pl% zyXT|^U?GlsX6pd;@*Nx6oBYU_c>8LQ;PKFK#eWkQ|90~07ByKhLU77dXzn-toh=EE z{v%UCuX?w{`ny2Fp%*2-7xrSQt2T3Hlw7mKkhdT9A+IEVzoyb5q;ZAAD|KJ42{6Ww zar=Q298l3v?S+B57!MeQ?l)1vNf_OtTJ}tC=8Nc-38$UM%l3qd6l_=5$$B?tx0>G_awJt^!WMI}2bJ3lmS?S8@MC?7<3u zYI88dNCV)NdgZCTh<9riLbteqWcqR>VgM`eL_pO2ko?@Q;|iNL(U%U{mFvxt9Ib8Yz}yOY*}4P%fwvE^=mnQbhcZHzqY$+0VC?<32^X z!o5jpOklsD!dx}+9TwxTOc@;}Hd(xa9wz`wZAgmwIsMw*`bK;0yWomEy5n?}#REc* zT=!yEw!sNtu*s2vU);=`6R)#AfJxz#zuR!%`DvfPWv^bp#*l|zcvC2q<;`+3-S z<)&PBb$UEj0x`b!vj%NYbiM^}@%e}sRBG0y)LwTg1P5U<_)|BoJI9}S>!8j{K+)f6 z15()$&pz#ru*mvP-vWplFY^YCb8VoWVjEZ+uDT$c)E2sEnKOOtEegQ2%)26%DZ3HB zowBu2GjA$o-8iw03HXb~9lOEB1nE3hauRUxg3%i3DO+%o0YbulE&vi@+3-+Z=jqyw z)?n`$R`u_mUkv#Z@YLyIOuk`(Sph!%#Ml0umw;y3UwxKtzfJ`A+)WJ8 z^1VKn@pxb;Y$f9ik%orspTnv>GX}{>W?nn%<865(Zb+9-%l&s%v3vB=3dhNC;Z^F* zw-f80xjW&2$7Nska}#}V91>NF=;&@k>>?e+X8o4qBP7KB;9xZ z_h=f*Hzy5$FL>|zGXpvq$QF1@SmEl#1=>Yq5duh72kDPllU{|$2_QuQ_{)hl6Cv;J z5^--qsndHS*x;&b_Sx2P6mDlbWP)`Og2YKUPV4Vrf2%lmlWa-qfE#&0oC zTS}eY?#_(y)Hxa&$;_Ow(MS|qQp@vL>E0AsItSHrd!kfWvKnp}tEDMZWfb^yy9(cf zY#o|O@_^m>nqaL5$`|x~y0(=b;Q4XoEv+TJUyUWbII(DvUXpe(FJeg=KyA7AqSN@b zGZ|;7wNq zkLbu^c-@D~=>Y}!v!dY!q;XNN0g_kplPB1oPt}OIoD&D{UdCrE>t!xY_s3&z+uRGw z;Iq86{E%?Uf-XB3&w(+c9Shh4U{1xUq|fbH(;4~5G5oE?qLdoZ)sE{wBB9WryHB43 zClQUN_w%XEAiHdavMn19r+j{A>@EV`FoocWL(BUrRG}T{V3d`glkb?Er(;-xrk=^S zMBGYeth*rfYr~9`mVL&qhvl(pYc4ZgH^R2=)M`jBdFSXHzak1{H19O@Sfq9_tqSCugJ)&#ihP7OM6y?k#&9uK`OIZB*1x)^XRI4oENT&4L<#`noEcna}?FC(c#> z$1N9yO3``GGZU;YW=)ymK?nq0>v3Y>a#NG$y%* zdsWQ2kZ(;D@IvM`av#0rVlcwh1QwqVX?-MLkH%aV=i`7jhQ$Jlh9AH@Al6s>vrh4e zqSku-Fk*GsU3bh^M%~T=g?x16?-jYWW<0xVqRNy2{^f5K4e-HbbnnYsQnzX&-=E84 z%#lVtGd+daV_97?UBiS6!?w5o30&@uo{^!?xqx#1&Li3?xr+21_#gCsC)4Cj7aGGGF+J^P7iYSu0VFucAD)TQ7UTQd*_^ z|3LkOQF(#h(`g%DCbUbzZ{UwtO)`t7Sh9V$~P-WV*0?fL;*!$G> zG{MRkqal3~7^kT{=6!d(i8x(o7bU~-#NkfFXwtq70ztCHP1(C$A9`l`UCmLS$F!01 z0)iZSB7gkuAIy>(FVrnrfP~IwRF>~P?G1z~g)z@rREJI&B>`cw8|>M~^Z?ep!=4a} zi5G3H%hGa^K=vTV*p-=sjV7rpq|b(~=kLcT7Grm`$T`=43`6=;Yrek# zBgXOu_HsRp7uNa{u-e;;k*)-4elH7&X(Cpi=aaf3k{R3%d2qgSSM5qwOp?hNX#K5- za}ybZNLCcpV5}gKCX5?O-_RiE<3AK^tPYG``&@gfjM-uZeKsF+6kl`WlM3MwSMfX` z53i-KYC%%LRfu?f4rN6Je9gX3Zka1S*#LeM*b>TUS!VgPnjtknXf>S_(tBIc7Y3l- z?~=cijO3dS+O{yDBvQOewcJ>giQWfvBkoPZvX=(0j7;d%cdP5$M$L2KW3kzYgiwPN z+aLMHV>A99B*jxR8Z5ojEBlrjCui-o_u7SD{bK421mJ4-VtkUedC4<__ET*Z(Zj=- z?UdytQBOfA#L3Wtgd(^;PLzwbL)fYDn+^v#ZDt;D-*SIj)P4h=o|jq@q(L=0mHz}= z>Gm`h9}*QWUOh)JU#34w+K}{jhfklYRMmPX*-SDTz-Zq|5#{A z%`B^t;i zE$BXQ9mm5c>F(ltrt3$lZ$ZUDSGO%i0!Ir1e%Lpr*L=8-np`eFlzdT18QuGRiu5Kb zglX;yfLW|6!p9>!%8emMoX{ZSt)vohAsPBQ(9|_|PYIMFD&ig|)GraQ6E#eIq7tWo z41+})lfL0ol-)p9##>jkD!5h(38nXM5PN+5IrsR8yOJRZWNxjg72Iy3(_c9RDiCAW0`_b*cOFL!T%KPvbcV{$mm>>^>35`3isJ zEjd1ZgZDrdpqE7xF4?999Htl96vP2HwpH(Ulxb+&Q0?;DHAQ-l>ZZ6b!?(PfzI+1g zW^S-x)dkeAl))Ke`GwmH`p(THZiF{2f#&AgfU5JMjz&(&`6g6D}(lo-f_34;JQS3=RN$7 zfTZXBg|prabqQECeX&33oT2LZj}Gqp1$EQ+A9eGi)-VatDke2|O98kZLtIq(M z7&*+O@CPDVM+CN2kXe9bps_i-{g&RFr;Msvm7DHVkV0xk!U@0_ylC)?z8o}zH(o$p z2ONH&MSfnmem_$SoG+aVuf21ah!6QOl-Z3@f_JhOp5>O!hp#5*H!3twh_b(sNY~gV7nWgf&juO;dR-;Br6w@)pXN!@w)Agv5P@URXXqq zOVyM$809|M444xpA2PbFUWa%09pm5eqS@R2yzXq4ly*L1aGqudIu_6E0fk?MMclgF z5bw5tRDiGd5ef>?sD|TYZ)*UkhKF>gT1tAR?uyplR+vpOVWpcAxc}j3)=-`~SQl<@ zu9^bWgeZM#+0pOeqid<2r>ngVqnMDk)TgC#4VZK2Jq4ik0MPO`7F!BbpV%2tuY&R` z+>`IvtJ@J_6d`9jf=<-MEo0{ya9I5okUXSgyPT`XKCwS>Wza3cg|rf-LDP1Aj=jI} zbql*Aw7N?Qk^kz4k51>29f%mv?VN$G(UHurI;F<(vwNCNPJ8_W@0=xAvRLVCxd~G| zqS3* zV&PfZ4fp}JM)$`XuBXS$Eut`2K)Eh*0@-L8k#c9P`DGzP*4;Ecq&572apc^NACcS05Zn-9%}VYTOWqdo+2!mHv$qTvehqdJ;$f6wK;ip! ze+!dC2rK&3)NhA`ZcHDH@)5va%ULjAuVBuxReg?9M~v;>o?(c{115b4qrAuNoT$3! zYfXE|u&C}_fDLxzjYS#19&6ud1r}X$JT?7Ij8r>l2Sv00)1U*pGhek~eWSAjx^}_Y zgLEnT_U4r;r7CT>y^S*0f(cMv0dv&NQY6JpO7Hn8SGmFuDvLNr0$`Lc*b$~+VH6_Z zdk(0K1L{<1Iq1W~K3?}e4hw|z0txX*=KHK&I(KIunEEx|HmG|!Zwp^!Z;6{r67pS} zfC0rP@I~aFylQV+N%$&%-tq{+qrIUk!=lIsqp&y& zlWPg|(cg>53kgHewK0aRewz;6&i90Qf*$7L;_)GuGZj11X6sv13>+CAb3uWUn?!;w zfruJ@7_Z{M{t#p>3)_mvzI2RJghkMM>d3WOivgQ$bjeDz7eYhF4Y1?J)d-34igVCu zfi2xo*d0swLw;-S9oSO7)1DQ17Wx)g*(R#orB(`Q`>R;%Bzb=do}{u#vv;;~&UH`A zurY>F+ORtptC*_Pc6l=%4K!|%u)#<;U#?1o3^1r&z=%WF9+(2vE-wsqDAM#>Aj^2{ z%8gD)^!n$EFe9-(!F|p?`&CpOe%C~e07Eqeo^ zUaC@>veO)F5^1mC$rz&7)Ek>}KP`OY@j%bPDdz<2h%9VuAnGVNN+L?(Dx)KSVIcB- z=RuHO6Fj1<=z6$}+>DMd_KB(j-hi!Y=EdY129(0G5_tXG%~>cpm^4+|tqUg>aEnM? zn^)lapZ7?> zC_7KrY>i332@eSC$O64#aQggjd3M|bkA~!$BZ42`*!6`(wPJd-<4Tz$X#zj>(%vWzTYdFo4`Ap=vgDauB}lJ|8v7Xf#U`n23F+Q`!>5o2 zDM7bMkA*2EPuF5h2MMh_t2a#{v=P}MsNYJ%Oepz_b|h7Q@9J*eOoY@h!w?+Dc~L{s z$C{rPWH7`xM`!9WVuOFRxLD^So@zJv>#b~+9E$f9mx*yfw+kT<-{|0G-Yx3gd)@(n zduuvn)5(ZR+1A1~mEO^#5|2lMI=Bhbd)$-GLMU!h?fBD;@HVEZ5zzHMSi&2%*p1c* zSGasgAA`r6l3}j{^ruk5BZb(;RCCEBjo5>GX|JO*2enB`QAzihwjBV^ga@drD`#oo zp}h>D&0C+z5X?B$Yj?OKNotF&{&={;i_|zh3>t3OeiMP?6wz=lV<`KQ%KnMjviqiK zL06eyWIuQrwsgEtoNuUjX?M>0v3aWx@nU$t=#SM9%KR%Eh5)R@w){M1ZGRbf~Os$bweSh;u8<{ftw+Pc# zk7OLBAs0Q~Q|gudr$jc>hF1zFJG3O7_qSfMEFmvbc8LG~y=8d2^Yd=ScFzB*OBqr( z=tz`+;RLk`!Ock_kxA`5aH!&y$hh!;{}Di|C2t7{%7{!}zl^V(Esov{#7`P5_hjBR z8Z=UG49%;I!;bz(KFe$F#IYga>fjnB?kEM{9Q-b$Exm|qxSkz0dUNQ@`2~Ft7x8a# zXP=@^(y{lq`QZ2PNO2lnp6x9sweI6~00X=tyY<2=Q#Sp-0$9%T0~2%fQ3|Cluq1s| zRhXm3i=D%f3od06bS-0be2zsXouG*0u~5<I99?A8BrT4B5}dZzMZOZ{CiE*)e9C`tqq{&3z$mqI{W3Jb6{n%cu2^|e@sD+o!;>P z%1lDir%1?c9xJ271=YLoLEnmS^&=vOL?O@D2kscYJTyDuP8k%0T-h@^5{QppyqFZ!Q zO@jJzR{_P#nnzkp$|pW4(#HR)EhyLko-;*bH?Rc(ne1_egsfqBClr0u%}uz9mq!0v z)GOChRQlr!bS(-`glGxe(q!NQ>ltluIePu2QKk{WU~j4#cVR0oD!4Q!c*>g2+F3~a-|=OR-t`8~ z6oI)nNhHEILQG&T`s5^Ciz>`$VN1{*cbNab^>|OD546Rg8Lh`dq#Z|X1I}^SZufs0 z8}k%zh=D{|7*I(dCAyU)tnj`{oE_{h*JEzNb550=YT<2o>#JHg0eMJoT|NDQ8}J7H zR$&i_^f9(Dk1$)8`>Lu;&@D1Q)PgM+FW~ngS5UkVs!Q=`PdFF!@SSmz49L?gm04U@k`}(prOh{H!eeW zeK10g@BcpycU5Fv`QMCz zum26o^?QbiDxC)xavj2qn-iPh64?G*n=X8fFpfOiAhzC(ZFp6hs&9~@IGNW!ElgRI zCbqJyei4uO`4&6Uo{eV1;T&N02Sa z|4&oj9S>*p?5+2<(R(Zjq9%G5R!E2vR&TMo6{2@G5mqNeFCo!ZTfMU(L9|T>R`0!A zy}o|;-uHd)U(fT*bIyFuoX=;@oHH}uIW`M;3v3J2fJ4XEGFm5-ZF2XZ2dVf~-px3a z*yD?BIpESk_Jwh1(M4{cC@>^Rj5F}__hy(v@p;lV_tLrf#R`uT_X45*bzeTz z?Bj*}`;m~#0m$<8-}A-Mr|)G1{S27R_Dtl-A=XMo2Lr0zhl7f^om>`fPy!pl#&^4@ zx2QAjr5Z(#W+r2YXik4m5Zk})iwd@vQg{P8M-z8&cxh#zfQBidu{dy8AZOs~YpjB= z8A$NUy##M0OgCWn6BQ1}C>kl=SBoG%@1s+y@d25C7U0~@{qBatnYE-o9tZE#Iox-% zJ_7E2h8wr$UBCGB{SmAlxKu|KdP`?L@bWgm2c$Lj)Mnh#6W2i-E5>@_K35@o-5kf` z-Kvi9y2$>!dO?v`m-<}^hZk3FWIpKpQP>$CqvkyrQ^kA5ah&KgL&`DzNJzMdU{1ol zsTAQEN<4nP@E>Q)MY_au-e1_u&$79!LiZq1_j&C>0?U!jW`R+9bg{30M^e!WIqK7Q zt|{-#=gudc$|DGgyy^1yJiAopxIvl6H}@(uF8jHG>-F#Hv^uw{jHKxGS`AMl-dY^w zJH~Z$YUA>ly!p0K&XhV)r`uiI51Xv`<-mJr_Q6&=^Ul)yGQ7~wE0)r%uRdGyY(f`| zv=rH92M5dl@>D#z*K*p7%ZzC#&k#Mp7iV-xbJu>ur&zV2*K2gTnM z#%FO6ceaBqEv_`Y_|mnZbV|aPni`kp@*Ags7EO6`$8iwh-#I(VSn^2 z16rh#L3}fOU2a18a~S?+!9-}bIxGujY1nMZaqdk&4`tfXnyUVqCxLgrki0VEJg3X` zu$3&V&TnzR+0R^Bmwl332J}l7_DoOv2k~?!R+5{&c4S27T;Lo;P=%fvF3^k|(A(eH^YAy;|~vKz)fa*6fvVG@>Rl4htBXb1IheGhO(i}a=(y6@zDJxf0oaN z1RXO!5)?^-C^1sNy*#W4H!zH~Z28!^1YHcH_Ho}szr1wyreb{#ILsW8NuP9&f!~DP zyjp*|3i|1yxh@(Fv_S|h4Vto zRrBAz>vmpU4_RuRxF7F04`p?3|17Ep@cy01eI9WcN|F6~W4Jwg{y*#X&RwJL+WRc+ zRs1{4TG0q*BHE`t7&5UZuj6WLHB87R?Tko2y~2696OR z?xyQUpHv7-Ab2OkijiBd74BSj8EDWUU6hHrzV^2kv*tlk6nzN>q{llgSK(E@8B2>E zw;}?Vuwwui94x;jnIEnnLlb@zUQ@;Q-`GZ65#tFXa6JOOsfSAI(=jQc(+nMV`Mrb# zWooi3Ky-{5tR-Vwn^=%QQM#*}Jfd4Fa|B{^`p-mR_1Rl?YjLC?Qu=^FlBgK}46^@I z34Ag{<{C##v>J4siI`*KlVfAb!X84wIq2S}fmJ@eYbEqZ-(aExd3Rp-NABMcEgi7qGW3~XUmKN z_>831nI%DCKgoFbZwRI-2p5~&$A^NJ?-$!;$MGVlS3(gZX^|gR&7p(HDWg|5xx(k@!;bUB)aJ-H{Q zsI4}+Q0gu^4h!_fBPd7bEAW0yd7uR}0rxhb;Z4lR4j9~CsMgMjpE_LXkc+TnAMG@> zowSj}lkB;aCo`iZI@rrRpmV1@pa$m{=2z7B=_tvVfH~i_bSgDi?&6fk?n*^iAAT&d z_B^IXTxv`zJ_^7=ypl|-h$ofspP&$|r>_v!S{M+JqnBe74{+0|H$JB%C>+7^mBLYnd0Rnjw?4tW*7Z zNhGXLv*AMP>)y-zzzM!x-n$lGb|^k8HirXOk@N4_1etuX;lwX?mcSUCNE_BD;7uS2 zhBgt;_0w9j)1xb;2hz-;bIxsR_7H!s-;%t9TOs+@7NhvyvnB;@a@MR}>Fc5}=)2!N z&o|~e$K>};y{B3WY}-3Mwr0!JGVu}{u}d8JQ;^}klK zs@w=*s^Y@3Uda>xGVh8fVi5i__g*{4MP~JmkuNY*I|KdYI;7g@pE({hn$THjw1;ki z#QN)K&n$iCK)cL|B`Y7+=eNwl&7_}Sq4M3@TU@u^R48^wd6rjvh8Kl9>6x%OVMmu} zHZoRQx%T|o&_#7G0TE^s=HY91Hbc|2zNS3;v6}9szg=F`ZI`=fL;9Bto_lzZ$Z;5V zxPvvL78Cze9u{sMjvV!*$3YUM1CD7NZPecwL%58$;8x9e9NLFPj{ndpCP-^2JpFBQ(HHOs9VB^YM z%i5&QdRjr-ucwZonz$@(VgLg(FaEU7H7s|;Alhb~Lk>_R2q0vdDKNKNWX6z=Zh-yM z=;So!s!_gsdR=0FIHl_&*1w`cVF{py>Gg02DAhIOwd*W-IkRI~FF88>%U>yepTw!4 zq3#sxPbpL&5_EdRMc$)JaoTgQ$!1B5Szn3u$L&#~T%()1NTf^Ft?RE|H6D?~G2yq~tK#J}Jf%CW31aXt+;H>m!2Y$Xkag6o;x?s?^P1`t-`pr0zN3g0G=u?@b+)Rux7ITG1gqs&D+VGkZ|rxNP#u#l-}ON4z$`%rr{FEdI2o>`mECt-aXliAywjdn8}^QXT|;_LM#?PWP&A~63<+O21M z>vmVr;y%_ljG_dCbd1XawZk4tlqEyY0~q5_Qt zlV=M9caMuJ*a0%|E#itHLCu-D!m2}yYgDBgbCgNs>604o^?UaTraRsnX?niIYcqvFU9X4tyBaM!XYP!{#nCrtOYpigfzhnhY>Twjcz< zFGNmQYVcE%r*uyomw+2-k7?;ddTiYO4Y}{&SVu|zo7L{nQ6MJuCJWUo*_t(e*dgE3 z!{KPlQk%GTBN;~#Z;+T=-7JwHj9rdG-52Q!kXxIhx8d3m?KDaxM9UVv9!o%P>EHmL z;W?&_joN20G)ldv+9jQ7kajm=2uG5&;&>a|SE#l}_C!gJww26%yr5gDj(`i!E$wq9 z?`BEFh-YLR%+WOY1`W@vc4581!J_-B0FwvOV!9mAYB@GBeRI6?he!eYah9bClklaM zCc<;FA|Vs`ZFHmPoo>Q1KJ7Be5qF=@p)!=0)^$~Kffpr-aoSEenB_->$9Dtw;~}_pQ<-G1*&B*~J#Go~9}+1PT7h>P4jU zhgLn5TZx_oDaEoM#de$XDN+SdVrTc>$?sxwlTLPCU|h@CP1osv&nJXAVU6C5{Y6|l zfoDy?je29=$c+}Ip73q?amJ(*mu>eznec<#MVTE7b4s}s_79|VdA~jYKjo?_333d4 zP$|zc&81&E`<*~R)xaoElZ7UN>|Y}=iz8Oql8gl>mN#m17Flgtgkl+?3V}cP^~nH} z1bVW@vb0zs2*HY9oSvOReRK^>UtXFc~y+WYUEm>e0j^3Bq4bu*nLJrED2=MxF%|OQx zhJ)4YBmCO;TVsc^2a4;>bpqDL%ij1hNwd{)AT64r!t9QqN&dSpRB^Sg+#LgM*dF54 z2fHteuQOn$n#2^{;@wYS)*ffdrEyCrQb1)AMy4+tLS*a z!5v5h=|JS~ACeab`4Ui=(VgS?JVcT`CWz}=`%N$U!$k(_)p%4K8@r5dV?O5yeleeHxlryEGU|WkP?qND!wJZP@qP=Vg5Ab@_52lZh(;S zS$j6|&UeIFA*SN4-r`cvI8PUrafX2dO<++T{P+3pW>Z*q=w@bh%XQd3zFmkkJx*qp?OqZr}n z3s-O6=A_$jVRH+Op%^!*i0mAnt{ z&Wi&{WGx~@;m@7t)7|Z4Z8P;VulX7++Rxh&$?qQ_y{&`L24n0`x0BvI2RqpOy~Y}I zoO_i}0ZdqHfA%k5m*=!F1J0q3Z`*L~GZmQSm|Ey-FDE%;cAtU3)KyczsYD54OhaW( zE$TM0s^AmS;`ndbXfqQrAA!j$EF7VTKqQoH(IPItBNPh}clu-e2w5;VPk)T@X&koD zc<+Qp2gl55yKO!Oa`@ynw(z^lni*otgzL8NqOGy1az{g2c|m@m4AG)KcU6T*gB-oA zv~%vE2JzTVKIpDS1VHB^otwWV_-t($TMvUM#WhD!5#c)Ow^LqsXLx5FpqOO4E?!u# zAa%xS02$p`2W7jLNBU9gmf6LtUe+Ae|_%RafWKe?|5%$0GkS?2& zJ2x5`D@bOwRL1(4)Ucy`?IKdUc{D5uFds@vwxa3wWO_Gq zo#BMySCCj|gj0%{=>UBYqx|-dc$ZxATkRX9A7#GclOph~GAtksWqwA56Q97Yj+x4u zh^)=2QBcEPixhMI@cR7PyJAzGmau_5=!4dBzMYnpgGl?dw9ScuJddDIe5RT&clC&P&Q^!5F9L5!`Zle z&=Sr?UP+67yD@=Dx57F`k!BL7BMR?U^2rg}=ql8A0L!NY#Y%)KZ zD~hj-C9A53%!?4{9)s`p^ea{!js6O#P)Yi0DE5K~OPbPQNe|SDtd- z2=*K3@deJt2ZWfKh?i^$WbS4&68w9kJ6DeA)Ejeiimx{(S4nkk58gj?2`WQM!9+@& zwStHia;iPQA#w{4kw0UeBmN zw7CkN-(IK`apsn4!~Z;25onA1)5H*p{lM~k|LMBPpY%$ERPX&jeXV7hvBruqn910* z^=b0G(V2wibMiNQWTA2y2G-qE{qmJb4aJTKT({g9MLNAPaS44AJQe(o+`hk{5kmh2KoA|N;Kxv zy4s2gV6sZ8sJV<5z$^&Ng7^If9*M6hWvjcTL(G6cCDcr)3Lnz0@p^>C<$MxwW4HZM$#`BfQi+PQZVLQ>?ac)eJ z&27xW`hCpD7sZ!5D%v~!t8fBtBtaH=3C z0i-ZvQ7{-vvQE$T`#Li@QEAA02^b)?>`K%&v$R{FvEqk*@@-fnd$%j*!)&~`qW9v3 z|4l6@rx7x)Pre#-3ji?dD!Yt3sbpCp&pJtjAOT*9d zyCMzHyY5CjM_Xy6st*?sjWdD6h&$0^ntmc#qjC4GI(V^ZhvoJ4%%p$>7Fa|4p5+g> zL49gVld6|NvMq@;I4?&9;R^g*_L3mhvk_@O)1tOv0QW=~_n?&4)R%in}mNz107|%mS_2VpcP4*(A z;S_?^(!)hj~N^Rb5a)Z#_I zWS;0-`FvAC2+nx~Tu64!l=Z|OoUE%N`6VM)tsxP@dIvjz=j7YMGLp4B#JUiRlr0CpvEKOGzwj#c$aTEsVCt!FY1_%(bn)|SoLEL!s zWq4Ue3$kLtHGdJVXHUCI8acFv_?UgA`FbN`(xvaXzV*5+TF_o$%&U<^2wzy@Px9*@ zDiBXgn6kr=ALQ#GW>5?t-5t1pbU?tqfA+3uS_4W>0#)l1Z21tz04jHj#Z56aRc6Ck)25`{(%C$+)r!tgLY3Z5qgpvo2gd=g_3hd=HR0YaB_8{v`7xtlkp{fJID?odr|?R6i0xfGj$AG)IabXI^d+Jz3d>v{DsKW;y6<%$nCi2q=cN2D+c z(UD8I(x+ML;aDOcf)sUAy#S_WRSEZJz7UQPnGt`MXW~Q4wP-@>wsBf$9+nI8HzoAL z9x%Yxo-SM*rbrka^^awam*BM9h#7L{I$_@!SFY#w#e_?J8?gS7AH77HZr8Jh14!!A z*aM3P&rN|1{7%PXwcm54E(upDP1`(1vxVw zcppE)^fa+rKXaWF@i@~+y-x#Zfg)}T(tP?{9c9Jf~K z76rgRHRyTpcer5IYPisc#w3zLyA1&^;NAyc8^uh#9{@F5dh42GBBbzbj2*ZS!WI(N zcJ>gc`G5*^YPyzb5b-H$RNUaV+0;&?d2;M$r_S1u^_|Wl_00w+L`J?DqYY@a`@l-`#wpNw5KH;%lQ2NOSJBfPGKrMLH-5Yul0A zrFxiQ9M-3h|7Oeq*86Ilm5gXyqdakTkbUwcQk_q2KooHJ=7ZMmOpms9 zT>VV@Oz}>n{r;-AxBb|E2rPqOZ?yo;W}sm}(tdPbDzL`mH7uUx@Xh`g<}}OUVOG36 ze`Z=6h?5_&Iak~KXyAS(|MIsfVU?n3&fx;41j?CFy<}HvaPSN8{fR>X>`gB?gc(My z{=8SDacoP^5=sA+X8>754*2AZ>xT^OoNDAt1yetUB-JSL>-s!|;cw%m`a?pnf(Vba zLttZKmi8F_U+r>-T})XlFSPV zmqa~*7H9FUbxD22SHwwbmZc3*LI~DSyIX=+uBxmguRl`~C~m2n>Cf zOl$jFu0&RJdIgkp@nd&u#>X2P+|J~-JV6=?aZ|ijfweRY-m-@~h5L3FY*|J*g(V2h zw2IC>-;M{qF&Jg>kUE+=)*@0!?iWUopz~3tI97d2lufq#b!WLg6yV^*gWHEZZ1Y)a zs69U5hz{sQR9_MBh!Vj3#kUHf4IU#m@MeXUn=cx0K6|uF3VB+m9$*M=-zR>&5;@oq z2+ef>Op>0P{H%y9b=KNK(BwPZlpuQevf2j8=W0)>f(q7hqW$JQ$pI$y);YwodA(1r zACP`kxHlfvGLTx0aJwKV>mNFa$&tyuT^QpS z70@Xc^irBwj-;6W|4S*GrX;Wy0HeU@|cmj_>9}%(aVs0z=CdcrzrO zfL53Q%^IM+?m;_VNJvp9&$Am{`*z=0Pcw~au)m=F4#3|^K*dn68qlZuj`tNmM$ zZSX?Ec~O6F>DGJtX%^*k(eITGyBEI$w@s$0KZ3oVy_NbFf^w>kyaCoIFg#Uid^tFA z9}z5K@AA~s-zhjl6TXXYJF5!E?+(g#e-$fC_3nJ%E-dcpZjam3#k+&P+m-hPaDvwY zYPJg3pU$CGT;O&BTBw2~0SA3jw+-+^OrN^iiWfBb5G^g^LTss?+yCQ*YaE0df{5%ov5Yw_@g9m+x(AZ1t~wK6F2XDqW=>rI%=fX3SY3Qc+&&aoxEZuwhhk+edu=z$YgA*i6=8n3bQiso4W0s~Q zL%i42q4|;gkZ19TPJnO(D?VeihNvF`z7x%B#S#ceKoE&&34A52)baC{98+qs zzG-AEzbn=bu7!QX`F+3K>xT#h%^F z|J1L#j?=c1jM?c`Lm^(&(KG|pzlSQDBoo_oT28W_(bLYMDk|W z@Dle66J*o=z3t3d_siA~5h}jE!?W8*XC!bWY@C^4OfMLBtS_~rccpIs{M*B72lf(m zEI(ZM3|F*TmoEdiSL4MF?d?WZ$jPnz^LG83+n5s~$Z#l6N8TXEVO&yrO_uI4AfS}S z;Hj){;UMQ-u4}E>GE(ZIF)1Tqk<)GyvO^9evYt306MB3Emy9OaP!cgdOYFPkwb4^n z`b20u1<0al_i&Kj?IlB7OeCW=)BoJ^YAMI^`-c2jui>zNX87IB+tSUNpIs&RIDEaO z3hNyDBbpQ)2f0tT;Ti0=@v&`w&3)hz88 z`2_P8=;(`<)s4Y^m^A03Ske<#RkbgA`(*0STU(LriGDYJ(%ZeM#y^i#k!P}}lM&(T zOp9k)3&E6j482s7kom~s?0Mv97q*hH*M4%lsK}@NW2%2T`M?`WyNI`YLDgij#MurK zJPjPs(66YJ?3P#LXp@T^a`^$NYKe^}(LX^~j z&*Iv(i#?DZDgD+*Z|Wi|EblPCf7#bDZ$yc?;gp zLIru<(=P{YxxPbOU%m48Nzkoyd{-2|DpctG6l@0R>v^)tDIE259xck0Ee}d6-o=oz zSxOvp{YTRM=$CSDe(pCzw@NV{uSk`k;C7~SpT8bdZZ?lS)q)#YE^tE-3<-^4v*57- zN?A@s0Q+NQCH-pZ>cQ^E_b$V&Ldd3oR#(p(dX9zmkc;M$EplT-)*Tq?*@1wmg6s7| zq7?8XLYE5wVd{0IBKJj*-+p+LlU;@o3f|mSadoI>U7bjzNqcKQSj`q2xBg@%%ITZt zH-rxUm99ejU>qune%p~awh9Mbe($`k_-bSr(nLwgCleC^*Z;goBU)mIVlBx6?R z_8QBMa?_T4-p03|B2>_-ocW2y6FJ&?AMc=#i|v_HZ(_!LIKo5cpd!?AOA(5&3z4)auleZ7 z^!d?4iLr@kcsx-~wL2_K^^@+{bl6E$!tmCi`qBqm@CzaI+S>W^&S-ZwWDe2MpN5Uz zlXPY;6ONvORzt;~x??fOg&<4o7Wv0-RTg#-!A|&Tc%wOi_K>NG_-_cb_5K^aBRA$@ z)KdA+wJA(J9B>3hewHg6uT4ts5I!YOgQ2nNp*)0PMqbi8zaTx4+`hS)Rl z2@>3}jpSs-PoNVF;6T1--X;d;M6AZ%yPR3Sbwc*LAJK1Z>|T>9$$E&nPC{`?w%Sp$ z2AZ9RWDF9aZr~Fj(L@AdSa0kj5*7l(v%=X%C>}2j7aylcAO zG?ez;m8ePO>W5)r?8t|}E4$+LC>%rpF+<57Z@5k_y_vG&H$$BhS&=K94t*9n8r(!`)%Fkd2)mPSjD#NPrWf>WcLZ=V7+P5cx9bh z$|Tc*jZf?aNV0NnbS?og_mSTqzPp@Fb+D`FClmN4z`h-S(V;ya9_x8|V6lVhskMFs z%`^Vlo==AeC`MGq>?Ui&p`OC2mhY{sDZxUB@2_}Ffx)vYR-lNtEKT%bXLb`R#t$o; zj2~u)rv2RmZ;U>{yxiv#toS!z><*tsKBV<_ihx|!@T?`&8II?1O-j&ACw4|VfjGMH z6dpZq#sx5|ozqYf*tC<&1QET_X?Ku*kHSL z1>gO$UEs`+&@YIC_aRVBf;Fcj7&jzI1II9mDsYc*Z~VcbMs`EmPeFj;&mKr9R8Wyn z%V4b3yJ4c>Mhz)$x^3N2*^S(nr;q7;?&HvpJwKl_#al0=AH|2Xd&N*EcyEH5Dmakz>F>)x9HW0D;y1;jI{nI+A zASVToOB)3OCTZ|IhytOx$Dwln{rcY&Ma>8Q>o+jTU8BqMf7<@ngX*Q9_J2D553TFo zr2W5-dzv)QqRjtdM;gf^&-?#d0~Zs+*Z*(V|8QXYe31QL - - - - - - - - - image/svg+xml - - - - - - - WebGL point cloud visualization - Potree.org - - - diff --git a/app/static/app/js/vendor/potree/build/resources/logo_small.png b/app/static/app/js/vendor/potree/build/resources/logo_small.png deleted file mode 100644 index 6d1868b27c9117aa081e1719be6b05e6c7141457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6718 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
  • ^ctX!LKnUV24=_m9G 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 diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox/py.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox/py.jpg deleted file mode 100644 index 6cf7e02f7eb54adab30e2b51ccfaece6d859d08a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77251 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

    E& zQARX6F4}i3aQ^<_KTUd2*~BY=zBVxqaV`r21~#?+IDHWyZuI`VD%sRF{zTWR%N7j` zW8-emP%Kun)~fvRg{~&5qa)w)?a$;0=l)$u8Fvipl`*mw%V-Bv#`5NJ@IQJ^-oJ-> zw1_4lBH=;Ixuvgf@|3`iMUf$>Yk6t|cou`gv|ah8sGPvwa&9k$l%PllD8;7SV>E@S#+M)C*v*h0+2kZ#tEMVJ*GInkrystIKFnL}grJg*?C$F{pZ5<1+jf{mfQ@@-iDHY?ECI7`(XYUNa{cv#Qm3s{eWLN+IrLKfc5Rp@fp8BI;}w=!0S5U zd1(FJnerpD;M)SWiSc(MoE=-B8Clg}pN)n|R?}099_dlm0-seOGBP6VDa^t~@Gq%l z;)^;Doz!sbcyCoNyQENOl2UIUcPrbO7YDPp3uIM(TKnB$Zi{+*QGEpVOKPN11>WC5 z5_a@S!UhMNl5!~h@#%Bufwpe0H(>TcuCI>(MVv;U_8uBl=f8A?z+t9C8yC+cIFD~j z2tB1CrHsV!lf<}WbHS}P-g9k3a%STa7mUNg`%w|r2DNKiQP@*{ zZV$@=O&?bm6~;evzjQM9 z)VIiRlW7uV#GO+0@&8avGstVMi~F58Ahwv6TaOh-o;`Ph_$>vXxLB$&m0ADw+PIo| zA0H648Q+67lVO39+lruDj@)k60HoY3GZb4MLh>DHdDkNw>8Z2aoM)^)i#|~@{!7aH zePJm>NpKcs7Rhb$)W|lK-K`k>B)QVv@(c{NXmnr%`O(b<<*}N9&$^IP0&<~2SA7^S z`(mPxE+OcO+2}wCGS( z?uGD~4Y3TT!Gc!P5~fVbpiT7mR1eeZx68`#o5Ch+wiEA1FJ;>D_DyPvmK$xWaWmGu zni(Rvm>)3j>Ffc)#tf@C19^yc)w+|W(qO(HL7`tCm zpSFSPyYO5toTNz@qx5F~ur5u_r%_zJ6@)g^&lZ6J1_&0}d-j69LkITrs_?I}^_&#N z;m-1z)}gJkfn0Z{2rmw;N6wA6o^*4f>tgn3#AK(B5a<3-N@YM@aIUYf__AlnUi{+( zEVwuD-PYFLKYc~pc!8jcyFn!oCH=|CyWSJOq>zzsC5!$h-I=^Vhp=w*_uaf(!gte6 zh>|iSU8zB*T9w16_6M|bu(vE^}z*(BwfiSVsvOZ9mIJGdFfr_p7&WB%> zPljLjSiu^Grs#~Eh_&h1Gzk%Q_Z5#7IJ8WJ%}%oh0svoT6|MI@tFe(1Iu6JAV&M?G z8Y&b8$ znl)0wI}U=CI2(Muw#VBW=|(1+lCA2ZIa?O>(XM8-s2xy~eo`W8R>!WHHnXJo)~+gI zujL#gGs_jQ7?|QX`K6os%1vzg@5aSLzS3 zXeO6?( zt3>2?v+GR4y?NMJr8Wz2+@4C{=re+41vGM-Xa>~Cyh?I5k3B=!T)kHegVPnnzofP- z%9jM+CYKkPjIemm>Z*N5~b*I96aDO%rqy4tK3&D+c#tZxxS?8d0CCaV3; zEG<#>*B+U3V1fDTNI&NBn-sGe`<%DhkR~cA!gA_;lfDiUXAZJ*kiNap>_h)usX?gGxlZL!So zk))#W!gxU<+tT51K%}MdhiaFOPA4rVa+YJzQQhjgDW(3xST{3ECJ3XR%Cod5qz^mX zVOC^Yz@WFT|A9Rq6M1WF(;_jGd-q02=vnm>?PJvuMlbFUDJP1`d@^4-m+J*4n4aYx z7V4b~O?u1boxxN3(6Zi_1OJf=0shr!2QefD`e>u#PSqy-`%hJeB!;KObi+P~__P0# z5V67~D0Zy-3h)aosFg|8#Xs3O?FyvTo^Z9>LA?8g!gGO%dC)euSNny{!ZGD zwh%yv^Qx#`UK7@AAwZWswz0JrW5kFYFk0Zqglik;v|q57W5AqLVmLof!(`{L>{6*{ zNGS0mF|1SV~PVTsfztE%w{?>%zcuv z=Q5Mgx}Nrt^|n+4rH2w0F(X#_V^>W2zaonl!;B9D-4Jjuqb4K2#0nHPu^Jggi=g`9G%MP4hFWN24 zM}J8jwP`7HHY_3gi0|7e3oD`RUAur-RXK{aJ0ch35N>ePN6*B(maM9 z@1}{Ac|=b`MFD>FtMw_JQm1=BL?+Q^;H!dB*Utja4}cAhG^}&)FlydUx$S~s z&NdGyds{ZPNE-qU@)5e6z8n%~2bA9icr_H z{2J#1YH~(zXofB5#M3)65>KbcjLZvUy>-=qT)biB>88nRz6qrrIgb%pYa08RCU%_p z5|y;ZSsCzLen`T1gZRVeC1HUG!T1C+8=}^T>DsJNdh6|xk}GnP?OjEYV|%5aUHXK& z8A*^H6o=1`&%U^1UkVR>OyGkA5ereuyqW?0NHPpEIzAKdm5p_(N~E32PU3VenB46b zrQ8-artYMxDRt<+tZxO8B)CgZz&R@)wSFNExUebAz|&&IESGg!CwG&sh=8HKpVc=& zr55}xBu!u|t2#mi*vt0?aZe8=82i|CPc4sVJMqWK~QImaP- z-mP}A`H-CDr3HqTCax=Xl$l!TxlRGdA8PcN*QYkIV8LYdmVgeIEd#WJ(xTjaX1%>$ zdVkTknn%i#@G#aFyNBbh%023m3e0|R_j9Ek64e$)a%+vne6^_E{P`%)?U&T{zU>4& zPty!d`#ld|2Jfn=ws~Ur#@Q0GxMlO>ct0KoCwVK{BZCoE|om&vM3MRl)?A z=g$iFBB79!a3H-tzn@*?arkJQv`*DkNC5WC!x&Xy6{i_`1)-JKX)HkQQ>DhDMYa%{I@N|&qV{T%;Z8bgGb=akQKbzOZ zeT{a@UtFm?@^Dy$(Og}qb*&t1lflI~aOWO+TH+DA4+vOLSlrAHm6(?uBuqv#Pp#PY ztR4#=Sn)HJzhe=wWP~D_{gOI_WPUykY%jIhw)DA~Qp>e3W`E-dyBV*Eze4fmZb`r*d9_5k&5u*oubcl>Y5F@7p**QE%UE?Nzi2Pur7cX8?b2nJJ|zg)OEnWXo!4=cMq8&5L`HUR{eLm(BWrx5vFa+xl;49p1ujdp$XMJ z8LiO}|FV?iHo*CSW!%yF4DCU#YziNG_D`dBx>p7xvk}s<`~cpiWzx6o^Bxir*y-LM zX;FrNPOvsyKx~Z+9R$feRwb#1t^@vFQi-5%@*lW?pfq&UGpZEiao`&+K0v=eSLoLawOSfy!T(0{VWgiGu1?~ z4XfLG$H#d7N>9rRR7oWiSTV0bb9AI^>im-0%g-3N1~^G=^_T}hA}MQ)Kk9Yw6gN5l zJ11BQ;<~goTlSnu4zx}SeL}(r`W*VCi9SeOf`JZKi1W?&Q9kAD{XU6Q;2R#WB~6mU zYKe6;8mXTlWbsjxjqVGebXzPWlxaG9;YF3|H~w^W4NH1EA`l*T+Vj~WTaFv}OKNJ| zQM)4VE}W@A=TPm@CkH{9xtd2BOZJ!7M|jAvT5U@jxRj<3ni1@s^pf0;)veHL;`?QEn%$;q)fI6yPY-HMGi-PIK z^U0ADeRFucsA$0Ab!Fu6g-wpY7{R>Y&hxoI`obC%qLaHz*8+Aer;S!#hTu4^Z`c{) zQ7%DKuEJB=3OY>wG7Psm#Vd8VP|JN6ARU{&hz%aC?d$pK+(T`JETzI~|HUj@G z+&t6{^s4B*5cF)RuxS3Dip(KgCCd*)x(>NVKJ<5xIN>PWpZe41R!FjdFx_*(M}~F(d*DCEZ(kCTUvU2G zoPmnev->{bocP({V|Dx( z;4&imCR&%0_?P2Je_M-@?KoIZfT+i~>>6TYIa*S?tvj087@NWN!a8Hk`2at8&fhu7 zN#KV1`NAH`tWTpQfL1nrF0keO*Yh}Jf~F=wwQi!+ZISZRUQ7H_qR2BU`J8D41~Iyc zFYeZD6Jwy3na)1l6yDh8B*vk*pBo3XNsf5f+X1#cCN{WCWx6eCrp4BrP2A0*X~#)V z3Ca<@y$+&>DjU$ z*pmv)jmv2l^8acp>Y)$bPh*OLw-6+HY(u4Ho~5X^Oy@AL<(Jg1;_OJqz0o)3Sc^8J z91mIUCKan^4WJ!i4+1`|M-lMhJ00-qu`S#nw7xO>_S?z4_dIV$-$X4e-!%f6jVwvD z42yuQHTvb1kf;zS|CbbQEqG7HQFDK982aKf+^@PvIC%{kk%wK4v8&G(^!tJimpC}s{(tK%zQ&CYbQbN$;^nhG$vXOmbM zAQW?^Cd^T){r z$uFsg852cTrF|HWeSFU-#^z>`5ZM`t#ZH;dQH(rOL5ihd# ztq~?O{jgB?zJ0FY>7jX6<{!+Ih(uH-IOS|9ejN<&6eqMyLQ~ zc&9r4w%MIJkTz5S!IkGNNP~Q;5Au&Zzmqd|toqVx1<1_QVL1nbnd%#FwUu&{YgcWP zUxCn^Us4;WP?ycBMn*W70zpUycP{HRNr+?4qd?#N%Je>j6 z(Y&r<^h*i`-57Ib`-Xx+Y&*YE?#R`rdITT0z(LAty#t}=_M*WrDY%&UV3|>v%ACHx z+}LPjIVNikfm4e2#G7VkWrknY=OB|rG-B(vA+wyB>t_)$(ix|J&I0&7J+IM)kNfwN z=-*6?aZi8I+4>@v#*dHyek8kWbO!e~^p&>%&-x z&rczNKM)(C{&Id~Z{x;sanIgK^HNbXm@umn`i1bO=CQyz7hvO+2I{R~Fc6HxkP`F~ zchcWjNVgLx+6Rz$}f5<0RtX;yI84=K0% zQ&wupybI-C*5>bj;Pl<#q&#|``>y!Gq$BzP+i!qq?ZRJFPKv}m=my3YWK|%M(b1ID zzN=|j8U}BAgi9My+BrJI5r(3WQ%)4N4qIr+X{9fI*aJkyzlgY&f=aEU2AZ7B62tyk zvQf%O3_$1Eofq^iHz}Gm`ckw7;Lh^~3P45i>T>Fbw(~(1Gv~;%5wIn`VuDkSLbViH zHbi}&g?p$Nf|5%A71Fg ze$Twrcv^jMs6WMgkVo#%4ro*=#jPzg45(^D$cXw?PU_xuCa!j-zQ7)MQ4>K8H0MVR zebm0I$LkNzz2jA!^L-fXJaXKAd&UQ{X(NthU5yLx5HxBQaK zWC%T~c%AWcK1bhjeMu=UF6)J4qXU(I-i>#JJvGs$GcYYH7YvT~w>2~1*U-4--s(xB zRwzxKroaOXefBe6ON&H3v)41x%}FUhi}Ne8PW(Q%685-wx;i=3!}F$ESw@B=6^{Y_BYXD#7^b-+W1vC&2e_ww4&5Qo6B%;!Smm1(YAk=(lsGf~?MGLsDZ3Fw zaAj($NA#uo;BZs**~l`ZyQs9UMuzNrhvmIKqm2@W%TQPPKPQ3G?f$4YN$t4rA>EM< zJbU}rliO;y%5OQR7oq?7`A}mP$y49cKXI8)hPD6qm3H0>*e9$ZMB&c6J_Rl{LQ~z& z-_;0kS@IVX_>!q`M|;wWf;d#Dm+|uM;k7E@SQ+5*3C*heVu4G_$4?K6J&Y{4iId17 zRp|&HQN=xK0P|`dPX>ED8}m;`?5$N_IK5Ebc}6NN0$@o zhqEy{X0KF)DZCbjY79iLVjskr9Gat&dDN#K&UmnB`1ht5S;Q&5%up% z?ETa}-D@wwBir@fiak!}yRG+(L~U0y?a}FA91hSYCqC>t+Y|0C6XdiPVJ4)@AlsS3TN9C zsN-|wL4EV7;)%>GS4@c9>W2no`Kw=2*@XT$P+gPCOrdIHas9Q$B>M4D|B7ZP6R&Ef zAmsm?tFs7LVa2%NiP~DGxp>#Wo`yC>zJp4(eITO%=v+D|p!;#smlyCLmol=799py- zmf!uRi(TewKbIUL2`fOBCs3A>0din0WJ%jK2XU@{RHn6$e-r_q2Szd3y7w2sgM zZ4P|R^+ORLMoDP+`olRMqho2NfG_{uD9zRbUk3wMe9Qj0bWgkc&FnX|67vA-m$_`1 zCM{8k;YgdPME-RxHrz4*#YAbZN2E$>!+Pf;ArszBQLFRXkNZ$@M*wy=9^9=yDBJM% z)xoR($vOM{%<*>FLtgv4xYWM)|LRQo{qlq8KhF9>Zly{8!=VfXRaPH|A0-1q`7Q^K zV>0>|TK_H@Hhp!5l5$V0&8!Zw?F)IXKpqpX{8@MD0oID>`OXQ;30Nk8T$+n!)r>2C zNo`u^9V*31h#c2QUqfo*^XLsyaZQloSL?vj6||dhm)StBQBu=@t2sz}WmV9Z_Ga-O zm9N>S_|J$o%F1Eu!s)lTrOz%K|7Hi4?`Q?6L2A7fmU&S&M;$tW9b|9lrwmSG%~0Ce z6ib=NK-!P;-It$tVm|Y?&rXMuSB@<_Es@pN+QeF1_0u&1yaJCCNelyvhngSAN!~+LET&9;+jbl86@Q z47B(Gn6e+BkC=h_3W|P7={grZkKH!ZIWO=y`6td&NyHN>O zY-*Ca+#|hK*rXO%Vpn+9pX?C&`MI)vn7^7i&8hsx_l4p<3$o+AxZa{KoMdi5jaK#I z4OGJ&_J;=L5|?g6{@?z`u*WYCf2dA(uDZW^gV@CgGj_E)Ky-+eLjbyloHMzA<9GIV z^=f+NAJvT-uWx6q-nbKaspH29O4evmlEsvpyrGZVJ65tIA<5F)6ze$LQP!|+k{H#+ z)rx5IAGkf~touV*SPnrW#&VQE)mVozX7h7a$Hy_4{^(gHR-j7LfdnQ~@4b)RHb(Vq zvUU!(PTPWzIl)ZCfedJt_-pDbzAyP@33zF&}lue_M0=kQvnbu$EJpcG{&`p}`>-_&HC(r)-g)1$=E zoUbWXHP*g)28L)IlLRL$%$l31^CGTc-HVnU)~9^)EbPB7v^h6bk>{CbmVq(XZw-6r zWOLbyJ%JqB=a1`j?b;vJCaN&x$>`MiJHCy!hLxMcJw38yzY9s<9vyYwCny4x?3j$N zIy8}h?U)avVpI3dATuMt%{dxKn|IGBnkmtl~5FD>u1>xm2t!|i(OD<62eq+foXG$xo>ygL$X9tq$qXDML zvdFvzotw?G#;ff3C$0?EO|qs=(VdUJb zMc{e8b@ufA^fj)h;?`z=kL<4J{cpL3IoY>E(R~8)=RB*9pNs=p?v^}(PK zSKuT|H+xt?65cQ?j}V`IZ3R^lCZePI@>bp_S4}A9>~q0C`kyTfbR%W#rGIu4t4kJ( z2fLw!FGefjCS?ernT5Wm->0vsnx#zS-O2N?yq~4}0YuVR%|2jtHP0{YU3#8&Izw-Y zv11jmp#F(|@ukV5nk#O={)}+cRqOOClMZ;3;r;|QIVz@xG}6p4ptu4)@J*)!+n*QR zJ(Uy#p+qKNlbnhq*K_)P{tuI z=zpb-!vQ)6qyhis{NJH{Ut9f9d4MBq(XNs1efcvvJNCE}#FXH%eca{mTaZjJeGC(v zZYmA%va4|2AEf@65d28u?|7unaWx!4rS7&c#%3Vx6>Fh)PJ5Z#!e*wjK0+_VR@St9 z+3bBfe;M6p>;q>R->AFMKnL zYO2nMeIwMbhxOS@9;+j`_|S3VsvrpRbYsutDs$M)PCR!d2WN$OWr@z>Z4|S+$ZGA!lM} zQ>%|$R99sQQTpCL9AVEaX(KsjWUhs!x|*D+OFfkR}a^9Bxte>ZvL;wAI#dwCIHT&o?FS*rR%iLrMR% z{pj|ta>~%9458A;`j20)y4}(7s?pFiwS5Y8VuNrD`?uSXzFQy#-@cT0GI#oAG_IJC zj$NllRvlt^oi6=CH{@5By&cQYoiWrJe|^RDPIZLgyXtiL>U1+M_3w92oVwHimltm- zm$+>k-KmnlHZ`Sl1UI;9=xw`tDbl(QqSvmYRyUazP1@} zub~nE;1Ex__UC@kGe$e*4f|-yuwDz(Ja=wEOH3d-MS>y?jyCtrGbhF8g{=66_pgIM zCTCw1-!HK3am&%K1K`V7A^7pk+H6}JWZ=8DEV=`$s!6+KX8}@3!CsFPO^cAcn%I20 zosxma9aY5%!G;StisG-4H!$4J?EjR*`F;_MwpVJe-LGFPYWaC;Xy*N!|9hN;=&^cK z)mz5U8AoJb(_l@`8xXz?U7KD?$F)2BoQZg`-F|Ih;$oKjyPZZ0{6aM=-_)afX<^>3 z9)iES+ z50g<5j_T~65LCa!i>7(5Ai^)e%};xiWjhxcK)WRgm(3D3COsmgmdW-Hrd}zTZY5TD zLZxG3DvXlhL3MKkcQ>kK90<;k2gWXYTOT4)V}+6NvSZtel1&lX@Wg!Rc*kB0k)x3C zXo@P@oX(go^)!xtV-m)L>oBTTk>;}=dQLT9X>;&Vp zSp;-NRMmBb`sRzEpk(ILrUX(P*@8W-U3sJsR7_LWHpS|NZBtd0j|*@BoxqXd{G$q! zazKlba~Tr=KWw|>X-8!@#DmXXy>kvNw7m+%ZavxIhx9w+|Txo~zeFck0R?rr?@ zL4;pQ#pEd&iga+vt4RK)^*dctqch*b=*Pw?M=q0(U)919d#1~Rq zZEeCWK$)}lv!Qi^meH-J9ThgfdMiQeF`72w+@+-?YGD#2yC+MMOBDnsI#TGrr0~lT z1H>))O3kOEuDLOSyHMB}^1c4G*s3&gHqg{pw9wEs@6x#Zk0{7_qN=|y8Kt1R6B+y8 zq$y}Q^u^m_$K9(@QXusVx&Q2256WK$KT1(9{_#JE|HX0l1KI#lU5#f(@m*O8AM*Op zi$nC_BDAp+W?Aj{b-L*f)!I_05Dq(N!`CpxPl!$qx$B$7-Zm6#q*PoEI+C5+!t!ZvT&W^~Wdm5Y8$pIW^VRBQX|E z|I)iAzF`)kxE2OAE#_P`hBM-E7LYx%dVlj8Jt2~?64=QuVIVH5<2=N@4&Z+i&W53L z#^X&3mA4P3h2^K#aFjd6SyCVi;imQhw&*$7c#x{2!mjT^sGczSUOg~0*VQ=3$_jqhXs~ngE zQZUpzrjC2{;*UpH7**%)dwSLT4MdMHg5kI8{&QPv2J-j0J7mFq$o)e0Hdh-IdBgBz zrh&qrFN^QXS4U{f;cqbmAt&1jg%!@@yte!}d@)#2s~>cy{08@KM~ zI>c;l;fAlz^i}xv_bUHCM7?)h6WbFuZogtDbVTtAp$DXd4mJoRA;Bbs5}MLGgkI&^ z4FnKKC?SB90HI3npwcc~dIzO<1Sv}K{uaN#_kI6iIlJea-F)_$XXebAnazz3*JJ!f z^bVyD;)t=R5vXy%6>P?4tgi6QR2ljx)^KN0-+w`|Ai-6zR)<}t%K3Z<-@rDAiOSLp z>X!YsVm~KHi`poEIKjvc)7&xcd0j>~&Abk5+FHuqV9)}Oob}i|mjxNlwDGSw2rAt8 ztf-%E%F>GcgY^9wmxX8pq_9-1tKIhWf|P`@L~k}=||T16`*U|;zPLrVu+dUZ9H z`<%PE4wIGgdb9m%zA0($)Z_YIHtxE&wj?}4tYRu<^?SbBS!S~?hokHGuaQU0 zmr2Bs0LFOV%YhV8G*nCzSvoQ#Veur67P~kqsrpUa+TWECzCk8rM~2$3c?MpIDpP)& zjou7U@w6RSlKVajb1+v9FiMj6PBz_ao6a2p!KAc^&k%COT2*3V=L7C2_s^k)LAbwxuhHaIwD$_ z*HN_oyI1eGngzb1=dQt885NENc>N4o@Vd{J)F_v9h{)OpdYfN=ux`bXJ7s!beh)U9 zbb}W&iVH<%E6?H1^+tu5a&$0oi9DLEIs4Kc5Is@Gx2|0F;_4M||7+i5$Xv+M0s6SI zeAEkSYIV}YSq_dLN`9tJmZEWnZ^U}5q(7(k$5Qs`QC}Ywh$?k+j0p7S!DI@GoOkLi zeeLG3@YZeFQiwYL+wTsQ2zKk=$!o6Js=jX8z1d%XQ04~L_wFM5-4+qSkg;`3-G5qW z%ObgX18KSL{j!Snw`WvA%0Z?E$}ZACX8!nW%14JUCZikzJn*2)$=RFXH_j`FmCP7` zooJOmioSl)70C>iHa6Uz>6E>Kd*kzwcv-#9h5Z9MJ$ZHIkk0>ovRLnX0R|?O+V1%@ zIrB(Cq(98axvon~n6n2%wx+>T4%wD`JQH$rn4VS9oBKrHnJh5_D>+9ZXY^|}G zBF+55jlQT0*AiYt)8*ZD9sN`dGMW0Q7B82H?);e&aWO2#eiWi=MU7SuMkXa)o`l@h z3Y4Lh$%JpnXC!%A3-+12M`ymOQu(PSYL-f|l`!8O^LU<%tz}H5j0%m9oFalXdjA%W zCfzzA)M0UkFq;*H`sYe|R~Q3>INjiZ7v4{Dp1pc)f9A#$Yq5K?a`$Txt2Tax-W(vkt==Ge_zRRQ~cDN zM-Xvj(Dhy z@%@YzuPswk_7s5fG3&qnn2Sz-_(qp=(r~Oce7HB!yBwojvMs>5fl5ER`8w$imGYQc z%je!&@tRki%Z{mMq&}pktgMMrF_JeEcQge;^d}Q9ikGbWEr`Zyzb0mikEq4hh(HHu z529mTlCHdhYX(TmWW73jvrG#3y}S=hT5>#gD! zKbefOmKXhf+TTqk=kv|W-_T9BaviT13mB$pH_zEOj!GAv{l@02(IwXW0S1fQc06C+ zpUawi@7)Q5t;q*-GQ;G&@%?UD9a5Dn?#ey$zatag;Z8fXVx>E%x37?2Yq#8XKkapU zGqRh93wsE9{R@KYKZp5jhfA_-{Kq2xzkTlWe z_LNtql9*QU5+4=BJk~{`AECN)(F?_c?<>ns1;XjcUm5i6*=bGmCmcJNc*n6XPp?Cp)rkAu*Ti=2gpRgCjDS4gL&fm8Y zFH|0C+Re=4?)0{6T3RnSH@)xVAWO+?a;!k7H0$+aBmO&~lEhb!YGc?7icvbgn6k@TPq16*(LMj^xi=b+i;rff$6k>;vjW=9bZ zP4_)$qmL+zZ#PXUE}PxJDeJ9Hz4RHoG_&8NgIolnYwKtTS&GeEPu-i+har_{>Cj^J z3##bS3l3~=O44(?_6a-KR4NM)Zs4&R&OGt=w09k zjfHcFEshu1->-H;sp%9)*Bb=fa7njDdeXMT#Y$$sj$5qF37BEJvvQZ=BZ3K&N2H&m z9^+hUnE^B=BK~~!g1EOZGL?z&>*9L;qcXq$6>lC`boKDYzTY4n_uOo~iw8$uX~tH) zG}rKPfReDk{Bv>K*Uw5o%?K3eV)J&Z50cQ~I2XKN;uJE`6|XOY4e{NVzSEEF ziH?~n({xy|&Bz$9vvql+&{XL&H3DDmp8<0pP7XHPn`vE^;TTc?pdH#ku3c>_b=Zq~R}02xq8^Yupe z?Zw0}9tGfm_3q@PdJNn{_(nl_+GPXw9BgkIMsepC5c`-j)ZZ_XY0cwRuHn-XPG1oB zatwY1%cu3eOqej!ZJo(OO>b8Hcf!Vf*|^)!>WJgzIKJv;+~?aWN@yHJ9G~FhEbQ`j zKA^TUGZBfv){U{dtS(&=p|&=D5DC4lNosm_YDj|m532=pGh(kTh02R?<{fwIrhcf6!7=7)K~ zOeAa4&h*x5R25e`;JJ}dp}E>9V1G3RH?r7#`}(AVi)<9VN}Nqim8uh69OOR!V`+%K z0)tN{hi7JHB+DnD6u=XEiXAxOL|-PJue=De8=&lL@mU&(7@6o6*O?OzF_$XwSrXCn z;=Itl>ekxJf1lAm(60%*R-#(m%h0rbn#mcG@JcAwY;D!E0o(UkMt5YU{pZS+f3e+r zBKuIxD@baWKP!DA)}xFavZF$0R1jVc^p%bb@P^gLkMM=a$4p4N@)r8I7Lpup0DHFY zywG<2(ZG7rVvllQ*ePzZj&NSLNeEfQ4_c*s$yhg5*;B&nkh)XZ0rxlHJ?Hg_wM=E5 za=-jHTPmyQ`Rkg7?T>n;i^d0n&!;QMXI_kt^tYR273Ch`BAx3Q9%QM9J%W9a6)?>4 zhK2(XGa}Vo*urz0j+HJBTFMF5(>2dZj00k2aL5$N_Xb;Kma<@sjE8zdyR$nFkM)yy zjl-8^zVPmQjvW%7DvZTpE!ybq;kQS|R zFzfz~uo(eOK{A_Ux~5~m%V<#^7keI|lb>Y3XF4U4@1<4n{Yde$&?zSCMj(%$S_zhcEovyOvIo<2^BK=m;S2(tE(}q3`Wx7XI7jF~0 z6m`?gJ^U{>jRb>}S*~JV$xR`zwAKIOe&Nzw_gHNm#Xv%_=3q3X>IVC= zfDuY1FvCSF0efK=@jKV@GF!X&Q=XNrzA2F4FGu%PTvy^np+c=2c3FM)Ey8o2YKUx{ zOHZNp(i8E?gS?(BN@knhx4W!Z_b_Jbj_N)QG3w(`vQ_U{m23?Wv}+rxTD4iq4$FvE zZV}+EyZF{ETX}JYyQ0DiQq%V>_Y^ZRA~AvzWPX;)(g#=IIZ*Nq6Oqq5>u4ly){=n3G1K5}*J{fQ)6)Mt zQDJkpqppmQKKdwY`s;ruE-m%;ClZ)l-f#2*%@XkDc&tozqFmLdn_Ura^%zo2=$J>i zAr2#dfG}*6$H!pI5gU6KYO)p19}b#-{q@#ic{!8g;{7Qfk3~6F`V&e_dzB(uxk_Wq zt|_aWqk4JhF;#zXN_<5iMbAN0Flra8T&=|eo9qyWpsqJLTkSf{r)FNv_MslA&+n8< zdl0>=ro5jZO}?qxOXhc1LAkWIJ$VUje!AsGhPi()B-WEMd3Z=59ccKc&Wm`J}tko z(5}iivaY>_bu!oV0MrYpFR?wlKW61i2!~$bNY73{8;q#OLi-1%*+*aEgW+B-lduYBMIhW$C>_eEXywHrfGWmZ`f zEsTxfN$%*!=v(*I;Dxtfg2M@Hq_gnG1jB@roPu=thij>*XNvFci<(e!wOK8lp-Sjf zdsC@Pof?BwE##8(U5&^c6G=ArHaJYYxnpSn|8m(Pnld&i+}$(X#d1H8>HM@@J?+`z zldRBw4>oH4c;s{!6j()W&nS$tH7Gh2bTCT~4EIfMzEC7c>j!x&g0bvEbX%G!>%>D- zY#xUdwaiT`S}A^gh2!c2UVmjnhG4>yRr^v=BJ#dqwUE2m#otb2RmNJMN-t~BO;mQb z-Qqm`>#qvsiN$V3FZ(Myt10%GN-h3a#C9bqnW0=fAEmwS@;RV`dvB7(vsSATU>?*d z{Opf8K7yNhj3*{*j-4T;CHgw0bWYS|wdVR~QK-k+EfsScQ#>V5R&0$NWqLX{_Tg*% zYI#8X4~AqI52M^Or@SW);kw=-pyVk$4*^%%x1m*lR3a4j_WEIxmuQ^@X%Xu^9DVW1 zs6KL}h9jKdobHKp{q)LH$oZ^?m|NZIQbyG3lZ+2xVU~+sYA6e!P9LwPDNWNbl^QDg z&M7%s16bfF$BUsgZd^#!OkIDR7%EzHg(??nyE->N{Kojp4U_h5;kZ~_1by{k_5mmL zu#~rTuh7e2qFW^{S|XbI%!+dCz)qo_Uc zb{z|NNh2MKaSD2N_DQ@Lph|%Ia5q~QY3OHb%v!ta)xL6ww-(?F6$QO+v!>)ePB((5 zUU}P5erEx&=F!@>mpvTymk)>Vl$&Q25&G-QTg_0K<5WOzz6y&*osk} z!uvXs=}m-{_M|(+Gs>MDc*WjMhdngxI_l_g`S;&J$px@d0?f+3kJJ7}4;k!fePoZc;)~;=?w?Zosr!iJlEVfNbU$gNKXQ9rfj_4}OrRN2I zHv{?k*ai#DS!WV`Of?xobb`U;f~Kh72)&=qR8i|pQ<*5W5D%Ex5r<0FB3uTi+9Wc1 zr+(hfQO+05h!0` znOqk-#ZA?7D*Mc8ot^RmMuK0&E3ha8b-PHT+2muXnl(iS@fFbi((0FGi_TOhxJ~r7 z#2GM=^cdJ%jT93cz7TBzKUER!$k`}(2JB80ye7fYm~iXZ)ghSm?4)>1k-m=F-rrj|vcerLc^Y+m9C?^Q-B*&LxhuPH zb;}@X&r;t27Uz=iynam;a*oD3aDG(!+4h}pyk6&b9S0&}6E*e%q$@GYU}NjzrDA2J zc3rfhM8^Jjo++PP$u9HyPeq14D5@48ycRmXfKliDzUw)!`;8v!hp1&Yb_&U{k{h`T9iz8!kl%yY5WXzF~TlmfQ8<9es*bMOGMpk-5@R5O|PFS}dc7hc4?j z8+xUfv#~yBouBqsNQlR8Lo#-f?wHl$;~V=k3+^mo08|rYTybWIOBpEpi96?gjV42C z#r(6HvYNzy*_uE-Qwsu$TM$>oHnxDx0yOJU&W4}`@pY=%0PlEzt`8<4N$s+Rej7r( zX9$Vm-g8~=!d*5Vz^f(Tm>#dml-$E@`FXHoaU#_9zODX_%PrB)vvdQE55@EhE4O7HS;zH>2mb+L9S zKlAsA5n<<0CQN;#ZF$P-LGmo+Zj6+xBC!u9~{7)@ohnmz~FJytrhu z$G(u;nS2ga<=ExYj@~h*4plY@>bh8zWfLvzjea3Re&m8>o>eB3%`_|n>#D7BC%kN8{ zu7dWhJ6_gb{4pcpT^sfdyJABIa>02+^E1BWuliAzjrNu8yVP}bfER<$_xxP6<@b(h z>F*URB*Y7({l-Gc5$aU@uJRLukr0Q8$jEdX_XpWf^1t~EnPr1Jz;D>-rznKaQM|{y z*tC1l^Y?+k(Jyb#m*_A&H3;9&N(`Z28T$+mjO>Xkt~xaP1SyF6AtZV<+t+W8-=I}u z{++|rM%$|C{0g0Y`g9?C)7AQr2mg7D;oitl9j)WLdnwOfnrxC9zB?nL0vWRLqb6Y; zx?P48SS0NfM1iUxyaTU#?FEMd;`G|+t7Qh2CH8v2YIgGIFp)>!b6LHxC}`b4SBnRw z)C#VR(+l+R%_q5*jkAo8czlo>0b}i!Fr&9UcgCZc_I}gfR)Ls-doS#iGv7(Jm zynbWENdXH^*H`Y`%s+Sa1@2ct^}+gs!S>f^)yfI5OQuUkF1tzE^;SPsu~LRuyW&W> zRoIN5AAEJ&iw{xi&%X>kv)h@h)&ynq%wrL~``cG-*!~-@uH0;1??Pk_LyW!uYwFki z^gZP#7*VOH0$}<2;{}b_3a=ji?z`iK5^WLbt}0ttyi&`7%4$-o>vRf?SnlG-_hn)+ zp?(TmJBtAoMK#qmBbr*aO~?eSOM217ns_{_jfxu6UH31w?+as}&yx(5T>P34CQ^}W z+MUMcDp%xRRYZ>VA=kviTdP~kbdikTr$Sv?O%uL{qz}3GJhv~GOeB>J7OFgP@~Q7X z3wdk=-h;FU1QtB~Mv|j;fQ^E_;@;PtO@OkGZT_PA?A3sb}J*K@_LoHhx9Z^;ZfL)zdKfjO)Vq z{veKcIWJ{DQBgTsz{L13?q#d=iK^ZE4)ck<@c6|7%-(1aI_a`Vr{_^GBx}agj&W9Q zcHgz|JJJX{R(&AOyN1~MRV#b9VBI=DXIo9EC=vfd4+vN)mCet{PvjmE_g)S><6FZN z$%eNC9VY1RoLTS+Enam`Zi$aci{i&g3b$uZBE{?R$>7u(nMBRHiS=Fes3GiXDj^&o! z(sys%PLwx1>}x()-H)$|!iHopTp{$y<@ ze|V$H%p`Hml00)+qt?NzpeL~;W2SEGm+CS$q%?AbC5>FR8m8ZAi3b-pW(#O{G?rfZ zx4%9hW?nW58pwq!*SDd5NuO=c(R6VSd|-V0hO5OJ$NZ|>`FXz=gk^q*ijhEX2nklq zv5}5!KW~j}rswHj?i?Jy9b;V^RR23cf|mxQJ_Y9=@Mk3{1=gmFXV)ue2-l7AUBy4G zMYiBw^4K!(IITMGnK%3mm(2RiOBq~M&NddZ)z7P;4z=50Weke-Z5;Fi?tWD=_o=ii z>pJp=@Ko^qDk-yqWdxYJI~Z3%YhuET)o8ZK%K5iB*7s~YcdOOj;&($mu8JBI0U-fJ z{Yp*=hjBf5NhJQw`WV_ln>KlwyCgW zoVI@Drwc%mDXd&NM}ONA;|C?jMt5Wy)gAn_)o`eezd;od@c_t#oAtJt@9#3vX3+T zd>h7YM6W!kqeDCo-3`!qxX8d5qy4i_KwO-$zjTg=gID~=Y=TfE^C`I#>Wbzt%5}Ku zDL!UtI8;dkIwW?ohjZh1oq5Y;0D=cXTAAZjiLDQvdaZ2k z_IQ;Fm%F`lB@DDoPdut1OWWhh;hO7)L(4vo`|>!%aBc^(Era;}9yHD|XRTT-$R+{D=!3#|rjr&D z@eW>c(TNf+<)-N2LMf?4#V#4D5*lK*eZal)L>J@pLtK2lT=^R_Jly@!{uFY}vTJDh zw@^CKB@wndUJ!9`^DU`d$&c`xRu{2-$6vP5s>3H!P5MPpt z`iBhHro*+*10G<)5ce|{Hj*gl9qVxi5cOj=2~2@wPF2Kc7Xhc6h!TLMoqnG?+JXqa zeWmscvl*!%bSSXw$=l}fJhZxePj&_yY*`H_+<{kxLjn}Ho)qWv;MO)!s8M~>C@l@I zl9Zl>4a+%uqR0_CwP@G*iZp^2qnL4!1fPy|{<3HnH}N{=EwC zl+RJ{x>|mZ7+*aF^4MbkQg2a^xprC^`L0*5RzzCvnkV(3E;9|0>D|qVL4V&)!NbHE zohkTEy54B%hNUljH-HaZ?m)+uyD#VM(-FjofHy|FvWSg^5hD(-F~u~%-|Mmm=3K$K zOQc7(WjhZxX2-CXt&)$1lN?sVHF2$8D%&HVm-YaDd@B)u4z~erP=j6 zkHjx5*4SQ?57G6|k(a^gSINB`r;bF5NlMOtsb2i=#5upIN^8ggtLZhLW%~dlZl&h- zphnZ`cmqTNFu!8mo?<@@!W(x)LTrQv;f8A*7^(jUro#I zw!l^^F^k%Kl-O6zpy!nbk5+YzP0_yn&O6Z7bWP7@cwQ%Hqkr}lQr2!re;08>G$VK5 zU(X?Hi+9;&Th6?ZK|N=(iKh5g&&?4oEZl6lsqf|BN8&)AO`m-=cmKB!2{rmsJu5JW z3!Nr!IB=d(Tz7D7zmr8W`Sb#d^huwuPvm#C6mW4L1<O4@t2b`{Z>Tf1>W99ZHl5|07 z9H_$y&elZfE(^oBr$%{4N?8oi!9>MYFP~N4(L7|AT#DAYWV4nf`hELE&P=6D=ibFY zg&RO_&`s8SUNjJ@02+>pRD6fOeSCPv39R)gp+@fvKv;=X#JxWUBaI7Lu`gPR zg54q=PhK8}RB<*^YEH70j*p=k*i?P@ZLHjQ*iy6JXiL4NOuu@>o5eXyvzVmVgl>9| z+rj4%KnAOh^OHJ6*D!OvAqef2^zkZ41Q(J3 z@-rRZ5p@_ZYi@71eIpX*L-N;~bIAtc>+!hO26V}gN4Mm=C2Xa&Z1P>J`G50Y z0mVye>228$6IUt9lo4x%+4)yUT27I;UB{q8kdA$hkFsdawgzvL5tnf!d(;Fa#}sVU zk@L$E1hLf7ZaixEvAQZPIkQNUCwJ;*x}AUrxNhj(iKp_+;v z4d)69X-lk1?Ly2I>y89`_V%b4ws4wx`tr%*0GYRvbJt}lCqPtWxF3}oOI$b7w|9A4 z%*nl)t@F6J+fPh;IMb)*i*D_xO+n&>gJppLAOeIag)6|S+(LtVxE;}PXW)E z=g2~P=t{cn=C-F-YkOYpjs8+1ZTMHV*IKU@O3lI88dz7%c$23z(N(qaIav|s!mEx5 z2Z?vtLJYi>bom;L)wDaO3ci-4uLZa+{t#g5R|SAd*QIPmg+hyaUm54PdJtTWOylSB zY|u*?;cr*)RYrcYif!X+=exSPEs=F)fW1xMF=;9`kb;#^fvl(~hq4XwXu!u_=<4qT zK5T!h-)(5oM42sS@lbO=6^|F_p10aX(O{e7wD842M;k|U-7fN%>K#vk7gT7`8QL5qwoR@J0LAj>=sz3GWwLB1B;Mj+9Wvk&SFnyQi z9KD((XZ@)M+bc#wgEQF4Fy(OfZ8N-Ekgiw;gJ~q5s4LO7R1 z7f_i9lOx&?&+%7)P+-B$z80h=8fu?0xm3OC*yME;^%pwr5z1-kcV;8;w=7H6XErb4 zzicM*BbW_MvT8|AKiuC$V8Rvqu_xWiF54x8%0WU99)Gv zo6Sk0378y}Goj$c1X(9$=rOUp)s)s4;VcrGe9m-?COOIwPgR88-hD9nJO@}tTM$ph z0lvpV`R)70$7IxW(ilW-w_K!ai@((_6HGs2L`GU5-g0PDLbIYDi$pph!Ha)rjI%tI zXvNW(05DMPH3N{7G01uG*cLMe>1m5aD#kWa{>dgO#xzo|0j-!q#bW~vpv91EjcFr| z8qu=d@e56IyUN=obXtJ8j};7YaXzGK(f+cAaZT#R5`EqVcm=Ss&2r5d%R)!Du&Iti zfrXol$qBCUs)33eA-{!?2?6CG$PJzJy{P9Z+xs2f*s86-Ac!8FI;MtFxJC?1~jr9Aw@Ylxo2-9OkU()G5a#rD-4Xl-3Q4rGcm&P;~jj zk8fD*jY@yYhu3Bf{J!GR1aaC;4D^r9#J8?}*<5lMPe1;E$_>Kvdi-j~w>#Bpih56D z%RKw2YmUR4`lU)%v$SpJE212wTTd^cLDgz)?nSEvLPd+?RIe(_rcRkFf2;Yjs1#Mk zbI$uswSj@}PT{AlAu)$_{evWHG*}d}zzv@L0i`2ib++u5-mrHRD>ZCMV7Ox&EuQ9W z>NzwT*2aC{nU`7PD|6#m9mNgY}N9tKSdmu0R zi*$peZDKSmFbNT<($L0Ge@@xPP+kjZk&YKS45}-t@DFJLwipxN*>UST`zR^aPf1F>DiVDAZ3ffRBAD z8mtiP-`ws}(x*bcu7@K=n-eD@-!@o}CQV2Rv#(AZrTMPxl>ilvBANL{lTuspBaG?x z>*&;j;Yv5}A|*BTM2Fddvf^DGhfL?ygW+Ezo4im3GA($Ii_!Q#ue$yBkVi6tFv*WY zmx=v)dgZM{v{~TzuQpXUxE3iqyY@Oi^tlU4Hr&L0iAQZw6YAbY9n$LtC9^h-sYrHi z1GFw*<{Z?8d)W~1u&ys6TA6x1W@+sk8@h;AO`B?vVJb*5=6=auL#D~F^bzZ2bE8|Da#0Z2?(d{q3`_>gWE-r6y9SKU1+|Jo>O3i$2< zLR7RlVCNTH5mQ>5P0dqv87kUlD%{QA=$Urc>M8CV=nvKz z=v{w;+X0FQ@|AzLREHpnn_bVB4i4FBH;DYW)b;2G6p<^q{KY%gL@(D5U$3`$`G%2Z zeQe%AQghWSUdr4nO>vhxN0VRb0t~wGNcur})Nfs%n~HOzW`XmT4U0>^i!vdq)&`gt zj$WLO8Aryj=kETb`YTelyXxo4k}sBX@n0E}WuN1)7K)tO`4Fp~|L8~sxj*_kKR1m~ z^xX8uXl1GS0117kPmfGZ+N&Qv%<IiN`jjm9J1vX#3G7a zd*;w+m$j*NR4rRXS|4|_^rJc1r+TFa7iE5uQMW6|$Z2T}c7WT8g!%950hZge^!a=N zcC&vi7sZ%tjxmk&dl`ZwoQ?FLYxvtl2ubmo4!krpYhM^778gwlV0$ci05-2#}<9OQIg6VwJS6#hRfX?$A`DH79oLF9Pl zs`$(Vj*(1Tq=Li%YtkA-yxm(775jV{*cdv#5UCi62R<#=2BzH0#V56(c=KqdwrrbQ*xb+a_S|1?16k)ct>{g+RyVcjw(}2WmqbNt#Q@aL2yvC9(I4b)_?3Gk;iy{G_2VM@!fY7Un>>}V z?TY&X>`q^M4A{n8RaCW$MF5sAM0Bl!t}pAEj?HMHky{U-sFC1 z)58gixjp$$h5+bizngq0Ze0Nssgs92f1REuK*_|vF z04-%=A+7;;&)yi5qt34HN0J741hVMawZy^mM+f|ej!gIMG#I?-l0SRo7x5Qn+k?s8hb#JikVq4YKZ3HyhVt_phc>7CL!rGB=lh5u zz!seYbSf+9QpWk&(4bYQTZ)7ggGGHQu>=}f6^4#T3rM~$)qkZHEDD3<=g;q(K{hX= zz0?hNRev-rB-F= zSW2+OwQg1&GEv{6g7Uj~9HA`bq4qwLEj=sSB@1W+q;nMRES^}S0i0plq4_pwxx#y$=O&YIDJ-H=-)bZ5+HrY5?XX2?~mp3&fr?4 z7fA13z5r+$TzD&$1Q<6|ehv0xUO>D(K4e9up4EeER{;X63DUcm6-_$!VzmJ?5pqbP zT!4&(`eCNLB7|SDiJ2ly?GO?PD80x@FP_zhG@X(%G>N73e6TYc<4mn@ZTDFmzQIK2jw zEiO{cJNCwpDP68DE(JhD%NL&MSCPOE2JEC)wSXCPDh{}czGVx%*p?o}XNi%b|M#T& zbEXwLiXA4%-gvA9Ze<8&9rtC>_fo4`zleEP9V+dTZK!nd7Lx~-Z0r33{4?0#H7;uOMg5(7vf9>u6O17HXMT}|H$bi%|))MA0ofZejDsbN}QfB3G` zO7Nig&(0;i>Xh$5rkr_Hw@5x&EN&-MYJW#`gj}M(B%ox^;J0;hXx?jUZ-8vF>^*dP zpXC=$iM7EuPheKWdV*rVonxX#7~W>-2QPcokpDKZl9us3y-_u$$!RhE2K;tQJdNoy zcjg-3@WXl;78S#NmkI^gOtgt2-KY3aM1gBEjc?eTv|GM#SCIeLv~YaJ9m;d8LLA>V z9^=&h7#9+@5dc()0<4x2kNzkUye)~FcI-juYyosfMdVwaV+q(7;J;`47SK2r=kz}u z|MmWZ($tZObJ5nD+jjsJl5#8v>i={DOaeQB14+v@($!AJ0MDd$>Hi&*1lV-cE(HNt zXVZZNrKbn{2DWhF|rt7dJ730|FNDYZr?xd9>n&RCo4K4 z^(XlO^O#2fCg6m{?Q=iV{9ms>0BfXcW`_u{0jILw;Xp*mRJ0&FMwm?#V2Am7& z)S#o-0cI3o3y~s;Uc&&B7J@Ylvo#p*e;@`xO771*F&N2IfZ`rO06Nr;!Db5r%R2x< zVv+LJz*BH$16Tv-a3353AW!l=;+X_SqX0`?-up;%A>Oh4%J^Eq<)goO zC?#tu)Bl~gXgRcCw=DcSA#}ULR-f*T`mJGom!(;~CjLQ_iS7dzN^-A9eZKs*QL zu>jU^7Wa=Ez??u&z+(Dy>YQN;sZ4;sg6FaHwqwM&#W}<1{|jeEEl}0A(b7W)CUL=X zQ6%=*gayp0V;>uU%1bO3G5584G6bh3Y*Nueacm@rQ5N~KwD8q?wj?njz^LU&Ix}te z9s!`2jg)aF>(!rbQK?9PUOv_dP9p(p8E{*s0_s%=P_5U1QRjf;SzD4do8~DuFd1Mp zxkr#^z_c-sBvXw~$YLPJG_?(wzk0~&)KNdSBeruV3)j1Yv`Y14Z}f2IWH7CvRz`Jjp7V)x$Yo?)j375H8SDB!5zdIY`~1EdfDeZd+bb8om!=ZA7kMpa!{2neZ>ukvHxA66UhK)*EOa-x?6 zn(YwnbFj#vrHpdoRD-%vlOIr4nJ{tbcbz)JzjuGtbIX8CjfZ10Cf0U|w(YP|ZO;VQ zw%5R|JtlZfR*fYB)bHN7A8?pE7nTOev#0xqcuMxY#BKkZqR$&QiqG8_FRdK7c`aMz zhs%Kx-wJ#KGC6tERvZ;fli#yUDvNqCx#9X(q4^6mt53$lH-=?*zuU+saa`VpWru286@eI_7IG-ZzcIc&bd`ow=HUNU9p8e2=`NO64{z{PI{W}L9MdUv9bJ0k zX3H%fetPmFm_d7YlCRQS&!xu^rPh-__*sdTKyII!!`i= ze;NrzjdYZo@Tp6BF6eU=mrm+@5I$|f((pwzMlg#v>(Z${2^I|Wk?>WG!l-A8ykF6R zrBN7wn z0He?dVSyH@dM0+JlmPN9Hq%l7~Tg8+*!juVg<1W5u1 zath7jd;})10upv6D{6rD%=)wrU@HP5$k_@OWTas=5_~tZalh~ax6D_j4uWX)GLd9o) zf&coDllKj}7v&a&1*(y@{_wqY$y0g<;$=HFL8-7X=wj4p(y31}yreGUnzp-y<6k#E zc2QgzlTFDKH-F`Lpt@jS@ud$MkDdQ0f9q#g&J9PBoB*~R14(mAH+&(=H}r6y3>SF}V2a)HpN~T)|KSF9 z27uN@?rGS$pE3X@8@_xTJ9THPV>Pr(2w-P>c~ijX(JepmhW(`S63G0OtCUj{!&@Q|&SMjqb(Zj!_SYNlZyM@Q)tQ zhtdt84wwft5Cv$AV@crwIy(TiOW~h805X*O9jwuFujp-2QhxO|@D;fUk&*q#Z_EFk zfDL6NWR$IW2YCKGVyRD1Jc{qrCH3Ui5&9y=e^qS#*!<$o1#n~mleIvnn-SJPF%qb(r&9D#Kcfi23*Pkr9Hvz|^uszL(`9BaiYrD*Lz+G`cL z1366d#-}A*A}`i}!BaYw*Y)cA&UN7PF!d76J4<=4W6dAwS09wc$T*&Voa|HR>o)2v zwUg#^$mNT&p3jPYlh)7t0Tqyxcu!VT)b>F97@FKpdqvk_FNpm803BMc= zSKGW*?E89KgZHlTd)sz2GgOY?v$K2=H2S8_frD&BL>jYUd*JV_0W7fN_PTs& zQP;PhTrcr0vysk@CC1LlX7G8-t@#T5p0~WI6Np%Q`ODH^drhC3?XoZYrP<_4mAwkw zPpwvAIY@jY-*op^xys-Bp_*93ANJINjy{Q>9VGSV@Y3q`(Nd$TC?r}ua+MFB+$?KIg5GkcKO$^>6M3_1p`4LmAllH zCEKD*{^^CptW0=$d(73gk+i-yv-2~mighr5-VfeXo~G?Z-R+C;v}U=I0HHYp_c1_NP#6hYu~C|{4AZvH+~ zjOZm>B^Pb9-VAd~c1@=8Xyp-Jga(c*7Hl&<|i415qxA6*hvK?bc{wA*!fPbt$v+>b z*zZ6X|6hCG8P(MCJ?g!7LA(|a1mUL$NEf7qdav|AKnO@DN^gRMCJ5wW0jUuZh}1~$ zAOS=~K|n$mA@pJ>0YViqv_RsU_`h$x|61?M`}Wp)@8-+NIWuSG%-*xh?Adz{k?@?_KvI zlvo7JU=vL^eApY29hL12+VlB)KB)@`x``B4mA_k?8(BgMJO{kM6Z8XK$xu7jb?-5d zCMV}(MI(<)vx7Y8r7ZT`CbfsJ@a#XAyx^R_k6r>?P64neqhno1N}LEUr=x#;o=_Ch@y9Nysqc^aF`k z2BI<1UZ)?3q`*>AfvjcmfZ^2Z=OZcr59o4zEc9pppKp%TIs=st$ij0(OZtDY6w7WF zCt)dPutEwjYH(*|W{9RpM4h(itlrrD)fi2fj8-Riyj7{6B3mGD(ELBB;v6`6Q0{?`Ge*zG zC=awRKX#LcHD$N265Aj*xCOJD0|l{UpG~`@j9qpPd=zHs;sLMjvt^gcOR`C{==Zv* zmPF^~zdzFEngh^Fq+TYQ)ba8l6bE@S(>A;!H8faBCSs+MG(IL?B8li0RsXG`aKu=H zI9DD;D#W$pqPa6kGw;$+=BJ{A+g`qd1;BXYWPVePxxss( zT|ny|mHb;&&MKT87-e{8s0oPdD#Hgr{lEYBJe>>9rvpTt$ZsqOYxJDdKqZf^_lHUd zdDJY7U@Khw3UVYVvsR`U3zPf7>coU6kshzAuuHwPhpX0g$C3s1ZZ_CSb25z;*Bk@D z5s5#1;wXLlLI<)C@9j4Hy-VZZAR}nH=Oej5Qe{t}$Ga2r3u%VNl%5c9n4e>$$i(y% zk5JGtT>9B=Pr!We_lrvZY7aRdW9P#kb%ZvqJdnKbO={|_??LPj_CC&sxSqQ=)Rw~W zahWp~-XnHU_1~^dEnq{dD{an{`ENdadDT}p-{zTF0n-K+tgBi>iuF8Rmz(E$ekPiD zuRG?{v4c8BZps0eHGp00nKH>6#$pz=nFp3$HH#lJ)GnXR74?rrIoZsVNYjzblU1e* zxB05`mzK4KmpY~D+{9#)$79_?csZrQEk9D{<%cYhdGE?2+iuJ!6_=(X$5aa>a^gg9 z>Ay+em_oyKKh@CfYe?Z{6=-R!@%8x>8JxR+T%o`jKR7+@rqPXTx4M!3`Qce)S=mw> zw^*Ra>A1P}NcAhOssv|+Wfj8P%Y3h2CA?WQym0a(`S%Aj1#1>7D+=Kb0XR)DIyNf% zK)4Msj`?(C=RC%_K3XNlPJmi&-p$UB>EfKfMKm6nhDDw_`Woo>ssw8ir(u>A zAwujWplB%Iu^A_Uo_?M8uF;V(_msnjoq^OJEf70W#4F}h;?U(7BLW^J8>UOje0p;X z=*qB^mta8!lyLS{K;34ilNGv=0e=snuT(4Fv;^S(j#8t?-DYVi|HJ$UXbnEhEou;+n51*X` zo;{6y#q-_ixJi|{_9vfhPnFuV>5dC*&?ercBm5s>!LI8h=^$Ox0wwSSjYzs2V%ZqL z%qacpUI}dzp_}yD4e5tOZ%Lalsv0(R)jd7032p`pe#+z%5dL{cx0hDVJbu7qLR_xg zRc|~OW{can&ofarcYvOlN4tM%otxE|5u@#xPCXP><+b>$pwOk^=DOdLiR&8E$)}K0 zMOFL3eVA-?Vds*Er<=8GhFw!bV9157fV@VJv*9GQVz(l*pk%q0Fa36$3Gm(o`%J-; zXdfZ-veh9je0gutyMe%Dd7(A_JhzsteL=&eHlOR24OO3m)ip!j4yRA;3?CH2GQ%b-3=xvwufbL|dw)&9ZL6nk#*R0^?p5qt* z(T_#C1{@Z4HZiUVx-0>-vt+tgU%&IIz(x}$R9^RkUS;Qi#?3_hNb_DbL(zT>Nokx% zER`E65)Rb*`WI@Z77~J&{rxjDat3Gt=w8Zh`^xOWUU=pZ*~1j&@G0|v*(c6lTS~=dSe}$jumd!BWa1vPai#$Q<59lD}sJQ6^tm)e4P7vXm_9~o&PaI z53hf9gQ2~kpHYZQ3RBkQm(p&&A}(T7X17hKFPZkk-sdr^i@yAVq0e1W6&?*vAH0hn z00u2PBc0l|jwVAWOi?VloIbjgO?Q#Oc;_+4{N)iPcR@-*Cajp5mo5LUdOtPG=uR%* zak?YSG!53--Oyd!r_rCLuV0fnz8UhzT!_1Wnl!`JfHT-UE`0S964@S|JaY0OoN?Z1 zNSTBVpu!n~&hh3vl`6RtxJ#tc@%I9yFZhsG7YRWKWi`X^ERhY)0*+TMcf6c@7w299|5h=udt$Rxg9!&=BC2#i5hI5=`#y(?O zO8z{wt{!9Sr+Wb`L@hR4cA4oe`Tjoq-j*Af_NVVpY2=A$hTA$XFXrY?zsTLXz4vZv zTiKPK_B6=e(1Tg})W_4yiZb8brNiww({CIFk1yAesmnEQ#ULaE`4?j?ww%BA`ZGBo z%)(;R;dJ5mNp-Q*#g<_F9r1O)A%@zi2IXRDj-Cx?dSq@>4=WL}Fa5K}fMNn)R(@)R z{R%@UKMm@AX059H%z!e;Z5fBztn?#hw>y!0(hz<_U%tQX@_+;`6XCsQDbHKN6mZma zfd)$Znqx{Gb)7$DaLs4UYscM_)3Px1y=5b$@Zsnj-((^0z8leZO1oB-J)#9HRkSfb*51R*NN>=;W% zfu*pyEK9R|pfHaCnx$g|uX}<3FAQ=#koA_PP;O!v|!IJ_oHZyTY*VzA_ZIori;Fc{7b&^1Mvr= z4Mn;Ag1s8aisP4aAFFlG3pQ`b1~ykVk7&|p^B-Wig0REI5PuT{=2A(+Bc;(#OdY=i z&-^&mMY?yKVzR4)U^C61+$*Y|K13Q$Z+w_hO&WO;R2r~al?7iEv_#WuQ_{7einsOm z+@>pyGA3FyTJ+Keo%c%+pBK(Ojvbp^i<&@op<*QEGQTSP^~JNik=S3VR4P)%VH(cS zV8F@#U_U9>(Tx0RXH@}MS%D1{1T_~t1dCuGtYe&VfS?pS=LMew234Ccb-5qv;i@`9 zYg8*XQQ+)5&|wACmxoo+1%hX*48PN~D@RFZqXR`VUl8O!#TgLbDpy&X9iZV~+Y~x& zH^J6B*xtWEvx~VE6@a4D*y+`}>z|F9CgzEZF9^HXUCo{{wlU>0^7_i>aGTMwQKD0_ zoSG#sM2KZ_gn_d_8%Rqt?c;V9(=|;dUPFD!{-r2SG3p3&IJ&SI=yFebu-2y08>BCbtMD3pFvp*|Y_Nn_R>pt* zwj;>=Pezj;3bXLT=?70mg77BYyd6kPKdHBaP4#%`-f+vsCW%Zw*!-43e3$qNs?(V` z&iJ;cZagcH)L(Ic$z>bFjkKd-{+I(0FZTV&n%8RR(}2@lyD6@$qT!}NbHM?hRY#4% z0F_R1|K>N-18hq6L`7QyJG@vrrxXqGSd}=Nk^_I=*njb#&Wv`hiuMb zQ1#eQ9n@r>bQ+`p1Ya1Cn7Q&(=w-h?#Bjbxbx{N!uEVn9}sm0+g6O1 zXB4>d-I=FqM(gh=MxArF@#}qhhb)@&7*#`jTQRUz>}wzt%qt~&QgQ(0*JkEK*Tz|U zRBpdqYFXbF{Iv8}V>-^(JMIy`s(*lhU2OU3wMWe3#ym#(YWlvrwNB;RkY(Rg11H}K ze*C)2i!Uu|aNMLW{|)17*~{~$!^Z2J(DE(!u-+j#khdvfSdiN`Zvm6F22R3+G_Amg}_7-vS)Z z3k<(OCv*k4HE*FhCp4|})skFa)KvC%6B865eV6yWZ$1xGz{j+(mFm%oeAiS>;U!6S zW8bSl0&pjV$;w(rMw7ircbLb<{e;)Fd{^2)WozCc~@fbuyF$fpq5&QwJTtFZQvP3Qa zUbmmYxutw0t>%1fMdIdUSG>59_t)OyjpeP&8}|d21tVpCBo3v1KcnMMHN#ewpJ>~& zm^2%C%ps)$5Ehz#{k~Rd!7Acz2R$a-n-CfMQevw(5PIm zFs^4JBDJ_l?|0ot*|tRv59PNk^$M@pZ1|kIbXmNHvaC@>44xYa(woKmT+K?$*L7>I z&QTSFi(8*$8e6Lx=<5reXpp{68C=PrOetd!7`z1}s~<+&Kzj)sEk7D8@1u=lvk?)- zk9IDLLlyim2;@yLfqxznuGB#GI)3*^J3(rq$8IJB8TFO-4#YKavh z=FOd->3L-&qFKoQnSvabS}Fyy0Qd?RR2i~t+*f^F0!6iX*#0~j| z(y+1UKA!EWgxf2T)x4o~;Zh!3q$HG_JLB`2$DYd>7L;LSF@xn|-aUv>LKR`Cvc%HZ27Dj6`(E_qDQi50k~Dv<8Do>(oISb%0Bx(HdSU0OI~$acHLN-+iH0m<_b#M_LU#6budzIa=c7vV4U3~Om=$Ck5d z;w15`jo1dPaki&pWV9UgcrRGSo?|1J+`D_M?P|-Xh^i79?wmhI2ML0l(=Y7e%`#6I zml=MIj9p=4jJ=imd5B~oO`FpAc?f-w$dEQhflMe8D~E&W9*bxWQu{VaC?)3coq65O z_)Y?Emj@+O#gKeZgvFg8b#L3O26^d+BzgQ0X?E+JQWU64He$QbXjQkX_89X7r(;RM zSUlZTSxLs#I*LA^HjmZrs4bZm3wbe#@^a@&w?Iz(xfHlXl%%}eo0Zi*Y=hu9{-n>2 z?XwoUp>4a>-Yv(aQleRzv2^{~&qI25=sypAM4zhu3T-VtM)=Mt-WWMZL#8zfOmEM% z-o@#4PsPt@9(78xkJ}2r^gdJLWTE_zLaqj2ZT~BmF`y=2hlKAi*#n%0W{0Ou3>XR% z+kQU}X;+S17@4I1XVQ>4KEC zH$m4!oO5rP+6ea;UtN)s&nal&+O-bn7^N<&C)R5mwfT97*g1$UEilp>Fu7yL<`5_) zP!uLg=zivLiGFUM5a3Jq-`t(~bQff-(;q~6Fbz<8mEN&?A~phr#?okw-yW-wPgZ1o zM|8TjEHs5)oT6R!3a>O^mBgrIJ=2lws#Tg8J7b`aI(V+2{5De}BPMfyv`$Q8(qB?e z09rJh6^~e{5=l|7<@5XA+P%@w*T7$+Vo}^ZE(yx|l{v7OZU zdyl~thxIhz*TV%OCnkqjjzH(U6z$ARCWkXaYVh3(F{2s!5Unz;)*Mx1(g~jG5)N_vcpM5pG5$5|-bHS9zBDaMt;W++piJI9F2GZ?G$b9lH0G>mbFn zP=Fq^U(H3K>*%WK-FZ~-<;Pm6+Hvb7n}M4l%YUFY(ZYG9lGWsO*X!LocbEp;?E_!? zwnBVu;4uh?q`3!nW~e8vn8!w2LL$^I(3Y17bwlBN% zGz3NnY?QWQE?CerE%sA8yTf^uYRB6~1fF#l(&G^lsN1ECp2g;8$HdRgHxUP!3%YG) zsQT0rpJuW2jka4m2)u>_pCMh z$~wZ54)!1~O?hHKNfqVCHKO0moYk#H`3j0!zW;g7W`d+@WoA98BC_{y9BepB%~omo2pe`c38nsg7qm{6p4br`>wnofXdOG zvGTSTOyvu5rAzJz^_Q1$ybP6%pBKlO_UAVkeg=d}M~w)*tX9sK6i5$C#cqWt-FKDl zh+7D~<<4+T91(mI8?8)nWLJ8@TPJ z>36f64P%z-lCt)Q)4ucsm;vIrgQJddVA%&O?p($@S^kQ=6!N;Xpsn>LV&_u3VH!Pw zZ(%1{yX$mC+Yd*vjP@}uxR1<2M%<(l5MD(|66?bY>o znZ`Lm3sHm7mnt_^qkG<@y}MH6JHdHRZ0$pGLMTzkqQPw_DR~psNiu$ZZ&Cs z@q0v%!Rw|Mi|H7+xFc6%$7dOnb@F8G2zo>O1g#Fc@7I^$Q3563Y;xrBl{8%c`Y1%D z;=T0ro1j&1S)!^YCw4y=f8N?SH1(l*snZ5Vjg78VY}wG>YUNvQuD2Bz+y30lZd?&# zx?JgZ(llJ^1I7)nZK&-2{Zdk0@8D9t$xskR7k|oIVJ}ENuHci1pA2bp}&&vwL66U$!} zyOfx%Pwd~+EB>%LGKJw*@^>S^>xSwTtZ%_TU?#s_SfKYxcg8+VqpxjW>AxQat5&Gu z7;X8ZI@uiMVEwY$=4I3IQv-X6d2;=BR#{|=hM>~epa!QL4C_Yhtkpq_j+ z6P0?Q4a&!(Y?o9y3(^?{vHEg5x^;1qw4D0_C;F@{3VtlPU+>aTaZlIOF5F%Xu+Kob zEszj3i;$kWJn_>~Sz?p5dpa@kz`Dq%@i=2^?5H`|l)dS<<#9<;jhCFv267>Ls0H6< zvTyp7I2EJDL7b>9!|rYt-dHjpCckuIsfJP1zTWRdTD8-D=$39wy5kA^OB|W)Q+2L? zDQi8$VtRZj&}mB6M+0_`NVE2&;WiAF!bA~42bUj~t|lsM#|MZk3GL0wBaT!Tmi0_oE_NNVhsZTs?rF#aH67|kWt z=-WG2Z}z*&NokOjR1NWU%>jM?YGvTOqta~+Nl7!PfB40-RN-SrIAwH58y2LEHKj%a z|GDr^&k{IIR`8h7k=2@vNUgg>i9peZpQkF^Y5~e@5!3BlGES@I^<88w%@X_?;t8K+ zThc49e6mlKO>Mm)A|iIff=Ydz)-4yk~u2S?9ZH$7ssVH+J~QyhAVNOCu| zC5SWbIcYptiw)Q|^%kzjB}V!+`J-q~l5^R?O?gqNXM5EXk9gK=(lyu#ad^FIbtiJ* zP5h3`q+71^no|*!te*hK&{H{NSanXhI5hgL~!A7TP)b{H@#1-WESVrZZ6!!kRYrT?! z(hih5{;`FV)h5?_njQjiqWPxcR_dI3O8GnDfi-WkqP%zXh-k6b9bVSmzW#LpfsnAG`hIp^ucDmST#ixdLnumi{{9k-M-`51E8InNd5 zb+Z6}EBJ`=kVp|hW9hrH#>q1;8+gl-0{MJTCW};eU>Pyv8*?lzkjn#S3^MAv z7nU?@x`rfkdQZIE9GwS7@@^~d5uuffPdIMRvxznlrGN8Ovu(v1i+>q&uOo&`;^S!d zy7;oIU`+XkY*y4(EJV{GQ-J&Z(Q=yK<_8Wq?}epZvgTYE-{c!siGdY0)B#fOm28*- zFPt5D94`3~66}>_!v!w|cXx{UN-!cR5{1TX(nk)Ukk@=w&dQC#>c>B|H}`fsZH`G4 zLI>NnMP{%1-6fvss4X;B;|LAS*p-Rp!jfl3A~sf<$>3w0mDKq{HFBGQQ1vn>U!xcm2N1bLbJWP+$V7aTsTJ(j*G;8>^uz|NRC+Me0$2ze3;c zy^XJEO%^?!>jGZp9O`^Dh>Fk z7vZeh7b$R>O4|e7c)@#ieY8SlmNt*K#)>Y4Uf(qfL2*R2X0s}Z%%BZszU=z5n)({m z8lom0CBOkX3FrN?>o`C;6U7DZ-SyD~wO&Ae?+R{WSLdef9eyEEm|*XjYBtgfD*!ozSR}{o<)nadKM7@ zC;>_e`Cq_bMu8RqXaG7u^Y70@u^EQo`CmL3?W! zPH-J^wLKjWTAu+6OKki;0I#n3od8X&cSm;vLu^^Yv-}Z$8MCpN%PNR={Je|OoMG^z zMZN$mtA2|TI76ict4E1^sagbFK{vOb1%zAenXFGh>;7uk;=kYU2er}#INtN)el>tr zVNF8jKNUe)_CFmx110UP|Fkx=7^+11pIxs1`QQGs#`mi~dH9krQpL!LC6mrCb}1|A&tJ?ocrfCGdi@aDfk1K}{g+_1rODa-k^SsCy~f>p);8@DWH@Hjo$ zk9S!?KmUyO|MV*U510;1sGW}j@vm2S?oq+Ms3C|3ipq}4wbi*|HAB4zVxXVvgt9Qf z3aS2uFi_R%pFjU`{e?Ff?g%^!ZE_&1=6~Vi&8-gh`tZnO;3^0{5?sXp>%#sTc&QM$ zw0Nd($Pu`-wf;VF=-=PJ5cn4Y|3ctj2>c6ye y_XhgJhk-c6t09vSH+i#cgmDSU%v|(N;kA687X8}mH6)l9N%_zJyTJH4_CEk{fX-0> diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox/skyboxsun25degtest.txt b/app/static/app/js/vendor/potree/build/resources/textures/skybox/skyboxsun25degtest.txt deleted file mode 100644 index 9e47547a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/textures/skybox/skyboxsun25degtest.txt +++ /dev/null @@ -1 +0,0 @@ -http://reije081.home.xs4all.nl/skyboxes/ diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox2/README.TXT b/app/static/app/js/vendor/potree/build/resources/textures/skybox2/README.TXT deleted file mode 100644 index 680005ea..00000000 --- a/app/static/app/js/vendor/potree/build/resources/textures/skybox2/README.TXT +++ /dev/null @@ -1,15 +0,0 @@ -THIS SKY WAS UPDATED AT THE 27TH -THE ORIG HAD SOME ERRORS - -MIRAMAR -high res 1024^2 environment map -ships as TGA. - - -By Jockum Skoglund aka hipshot -hipshot@zfight.com -www.zfight.com -Stockholm, 2005 08 25 - - -Modify however you like, just cred me for my work, maybe link to my page. diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox2/nx.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox2/nx.jpg deleted file mode 100644 index 8b4c1e422a3ab48c47f6f2d79b1bfe259ab3d298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339776 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

    $Eu>9G(yBtCf>!nx0~c>* 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�LJlD;n{I4j@m4D^WHQy z85Xy@RspB5ZZ;Dn3_C|HnRZsOAi&Z&5pr*RA~nJEP-p{T3@a(6H;Juepcc@oQX zY^`v#g$)T}s-T0U*hF0Oxr2O8QdmlbybZUWKcA)XXX!b1sTC9uP}!MTS5Uc$Ul0Rt z^NxG3C#E&q8&_Wr%SKT;Ji_zZeRS8oh3VNYlafkwktBdwfdQn!gK4obbLl4<4Q&39 ze17dnw&Vlmc{@nC9r2W8`i(q_E|R3elkXY;h%9eCsBaRs)33W1>L$oa1HS2yhurpr%LIa`wk8E*g^0C^{i zTL3eiYNcW>QST&AawOsACz8XDKfgM$dIJ)t%9sQ*R}R zIz$3NF=(F;bKY@XuheSPVk)y#3&Bk*8=C{a>)RKeq3m{go2yV-wRFmY;2lM~wW2Qo z590z)u^n=&5Jfdc8k*2;+{;CbY&ONMyMz%J3aX2i*4EjY=D`tyTrWTrj zRJd6H5U2AJ0KDu8j`#u8x`l6eKwu2PTQ%n4P3$Hu`t74t_6Mp{rBT|oI&kn631U_+ zCr~1LM0pW>Q*$26XPYq6jA>JlUceFvHr$dx?S~gwa70JKX-FVohDS|)LCrjr)pV#E zK%YM6iRT3AQEeosS+Q7gaAekx&k z087V2VGg@!b~RwDT!tdDsaJ!kWN+9W+dv{cF&)v@TN;DiK`Y}{k!cY+hkdbF&h;u8 zbpf+PG2yxAcANaR@;DKh>#Qk+1l3XqV4#L!92wjT&7fiJ;oNZ#ye^m?+EQJ_AH=iR zkR)fXeQY&rx4e341QEaHS&20S1cB+MiRYI0xMeKPKw0gvPU^QHtQJ`w(5uA_}s?%@FylMjR8=FTST2Ecd zRjypq04*}aF(I{pcY_x_hcS%*05X*rveV4_ntFfy;*kZI$*~jV07Pw$`z|B~Qp(S? z$nohOZT1UEK?96=O-Sw{bDF(s)ak`PaZp?pu3l-8B1CB>M!@Qe?Y!_a0o8>yN|7?6 z`hfNQPTTrT%}@E-)pN-P0{eSb$H75*v#fo%xpen8n0^ zz0cjBg1O6j0JfY*PPp~Wc~dh?(j!e(I)F5fgh??XNK1foX z&8^25F&v$-!#K<+R}}%d{{XQH-ggrq{0W>r?p;bl+y4Mk2HmF7KVJA~+IsjQcb^9| zjGZ0>5OjkicLy0Fy%b%lfEk4#4z0g6r{N}UE&9k)S{eu{fPf%)fa3he$9V6FS$Zr+ zq_UXQt|Sx40FAu%{W0k^sTNYI$ih4-z8E9KBuFIf1adub=?rO3Ed$K|07DT_sp}~0 zX(?6w!Jx8_K|KEejB@nKoj|A$;tB<$aXq)coW|Dmohi9z1YX6aZgwMR_3yooJFA$Y z^roFM%q&=GfgQ*;w)^eOMh}9qfY}{z4hGZLeYCC_>If@Q6kozj6X|2N_ab(kh8h8? zHMAC!X##fhzt77IoYr0fxdNfE5Lis@s0iE8_QL|XHCaifkYp6kynrq?zAMzrsSN0}LWz}9 z?7*1Z*h%E}v|z4Yrj(kB2AOXbmDCQ$!ptCUNs9@Ag}4ELyuAm^pF%0DIzL|nz9Ali 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 ZX0NU06S3sqm;Hat$^UIgO8)-0{{lx32Ydhk diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox2/ny.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox2/ny.jpg deleted file mode 100644 index 1a73dd066081dc383bf9be26d6ed439775a55ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6432 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 }wK2-I7b&7x0nPk@10_4-pwI#gTBJnJ6 zmf%d`p*TBdq|w6&HtiTBq69$?Q$4aP=~=v07@RRelp8OBA+!~) z+ciG1h@QEKnzA1&hCN)654(+{GlckpSIa}J5(ZYLfCnyJo}t~l#MN<}G|vfGaL-zr zQX|@AC6DZ1XpmYrHU0S_r(KO;EnP9yOl63&r zt!)1Qc*#u1$x%rQOA@L9aoekYFa!voYl?ZAh~h@uGZVWk(@>)DhkZ25YOCGrmy{| zV-i6x;TO@yZhU|ZTRCkk1SZhI<cSeR4-fP{B5fK?z+uPNDw*Z91YuYS0j3=Gj01R+}V<%d6S=l&BI^;GHVNLi@9CVq-Up zo|G*`{3MzH6GtMnR z5`oj#?5YR}p^OvQ1Lk26NR`pqxU{6WxUs#j&dhCU4P7$vWRO$hZ$}Qn_1jx(NTd_O zmEva54IYnMnm+XB5|C^VpxeHn@84_oiYDt)7LZm*B&Uhk5vj}4pa&=*0S`d{`ZAg7 zMi!$9InCcFa>9Uy0iWvijh_v~BxQ4U>v2HVf9kQ%FjE;sIBm|BZ_c*bH25jNH;KTu zo4tRHDQdIK01+sagu~9>xv2nv@*~25eTaIOit0FASph9tf!J<2IX3=wTq_=Bkg)V2 z$>pU!&%AQZABq5g?g(z;{JRVJM$-v6goOebS~%!MDrJoUj%nUOn*bp@?Jt|94z}_yfxT(lTiFuN&r8O=EUZb_H`r0s9 z07wc9KWTH)r)_!EdFv!jX%3{#J`&@S(}+ZjQBgr;f^>THXTHSuj+uNA2DD6^f=*MM zc#rK2Z2CQ0`i{Eu)rXZVVgZ(<5Jqb!D5!2$9*|suAZ!VJN4A@->J7dS5Njv;%0BX4 zQDUYcC1oQuNa)n^4NaNis}YA%&=dnWa{ghT)wgJW5r~x|5V=KRKoZ5=^J|@pZ5|9l zR=N1nd5{|@_{xYNR(y^@n9yPhCRTBnimOf;M1Vzsaj83Ys12(^ z*M?)!^r2wk>7!GqjWnz@smacg0Tt^|4cxQ2_1U50q#{xma6)L!sO8bgy&?YK<|q*W zVQu%^eX36km|a}zMh|WAAfC?)Tq2+u`5F6e)mZ<*@a(QwO@9O^!!}pth&^| z9{Pd(HN;oX;!6RFfDL!+Zmxg3STG_W9X5`|vH7fxfRV2*6zm69CWL^8S>Xy2Qg!V|>bGIP3Y`it9tJp?s75|ukC=~2wqhq>~0cx~d^;JI(QgVP82Lv^XH@$w5lZQSll~cVKIj<+!lUTAd(y*XMD{Z3yZQ0<5g0k5vz>CuPQC#Mb=8@84xJe|n`u#6)W2lQ4V6B9W^w%*X&lR5{Lso(jD_;6mh96dCqj-HB~Ez_(2JM2_n1y03CE;6J+rEj}1BKDi1AVO(OsR04B81kx)Gy`BCi? zk$_T8Z>uwJ z_-+&($^mV~Ead%vh`GSvb0s4!g-bU#x3-N0tSS&iiC|k@AI-G;#DX4Mc#tqZy{EA* z-VicDZGo6?%jzdJM=OPdhswu7&h5U{9Pbm8gGgoqlt0LAnfb-?aOn&iPTHNX?X-s1 zB%rym&{*qZz1jS!36ju#a5usHv5=~*;R10v4HM=_`}En>957=*>eySW+Woo2S;<7P z;!6|B^_%U^Ciqv zQJvhiY3{o_YYk&C>j@>iPF(jDZRw`{BRe*9=_+8N7>)P!ZgHd9W=rkm=$6FAE>40p zBg$o*{{T)#$&o5qSTt$?#Ou@V+9Hfq7!m@vCap#uahgvQSwKNk+WKurwMM;pMmW_a zMbzwQ0dO9>`|^U+$RqO+ZTER_lk-9 zSQV7!Zx<$|HPZBbHoa8tDdH}nN|FtQX-%Pl;4`H-{^*Y8uw2?NWjlEC^8v{kIz zv37FxAh06U8`>FB0Fo${9(8?BD5X~u%}mZ}FMr@^TEh$CPCsy9SXQmmsG)JvDTFe7 zGb&1tA=3Z@h>>l_BeZtT(iok!t0~|L)VVCpa4C3;^GktR7O+IKtP-Y?y4t;8Q5l1lyXP{nj2dJx*q?cx<`u%-kHY7M>a2OkF>tWcF z1exe53N_^P=~nWutRi&4bu}My>;czS7L4DBPNfhu*Ekd9BsyZkB&NW^l`syVd&6~1 zw3l&oovVLs_lISbB!Wh58L9p2ZqO8kE{b3dlzVBf-lh_^t2m+7t~t4Y!6FRFNVg+B zJ<6&aJ6CzYCRWBW2wG?<>8_yqZDQJNX#W71fI_n{6uGCLuA_IXI%gcL_1c8B&ea^n zJt3s8I<9KfVasYYy?I2j8uUkBr?kC|J8T@KqiO-8xZEy|r6nXLx(k={4YusxXv+YS zNOQBdY8K@2V3d-UxocA0U9Dzvc|wj2%Yayi@3H&d7dKG=88Eb;B=m}_csAx4)Df!P z`hkk7mn}*qsj%g$df%5y=o5xT4XSQ zkoH;#?+41M47LtH0Cca^`>Vr=W&kFl=7Fof+9%AAD@O#q1^o|kr#r$EBvSWg)xAAG zh&inqkalP|+`j$u68`{aP&}9#di&`~LPZYjT#-(X^o1!16-ypY`}?#?M4%|dP-}bj zge?kgTJzi4Z%75k3pyN`{{U%O!64-f?Y5s$?@@As9kQK$)2t;RW@B5mnBM;YXncaq zQgw67-moHF98~B*BP((*)+7ZI z8N+M{I=$MEOHN@>*;?amc|+-xl3y=+?Yu`l!9~#!Nr>1jDu)aOlYqTHzQ1uL!`b1) z2Ukz)?+9R;0^n=w9)d-pK`hg8*>mPDT6gVO-;Pp`iZj0dV|il`ZQlKy#sL>0H#DeKDqR&78Q@6W;FTVN|Ggw z0cWtc)6TG!rK-bb8`rctnTZMJY~*yUUr21_FHrSoRgau8b)c)HnCjTu9Y5N!!(dL2 z4{pBozmvrX4OKS1d5(Rl4NS*5cBu|(!^z*>BRe8~T2z`nJ>OwlS)xSAsZbAn0D2yu zhY{h6ov4$|h8s9v8;-T@TWzEy$<(l4x7>YdME)f;FO-pRKqi`N@2o*QLUM>vR=bnk z!)(kwVm$PyjKYmaJk9qW>|!U%Qx6Gpe24S>YXQFKP+_z--arEws<(gvW)=olZL#o) zmx{&AC?_!>irxDkX8SZ}C(SD=cV{5$-`P5C7eNI@mJ1CT{J^fz((sHAhVMoNg?s5v zaS~b z6G&ig53$Jg{vrk3mooBLBN{-SuR^tlrM5AWPi(*~ZJKu>Qm=FA@5ojiM5K~ZphLY# z4Q>7Pk0m}}qp5a1{Mg=V{r;NiR@-urbT81NI{2xNvX28Q2S zZtt;)BKRqSQ!a6jFJ83Gq@sK{o{MFDhts_&^(qYUSzntX|>qi2!(L;@iHw z>K-Ib_A$ryNGWqYMwsdK z>rSJH6e%Gt3aA*DqmIL^ImMcBYG9`#m3=@o{>)b=4I#p)0A^tC-`RM2eB?_=V8c^d znzP!M`@$C8%2`Gg+lXBTpOK}2YygXi5XP7ok9eINRmL9~nNCRNAMb5B&~p)chr|Vh zvnUefjd}(Q^!G^T=*LM)#%YW>Fd9%-lMZ#Mi@ZMQ5mw1tTuPv-lma9 z#5njMp$n;fY7f(035s#V1i_h0B^NE#?Hj+rkWb?k&Fsir8JzKwU+YF9{pc2uO~ z0os(*8r`&tFV>vFDLd-r?p(c3;fzX3<}3nBgQ&Am+>Tt{mxXb#s38v!v>;3deY73f zsT?yB2s540IoI%_1xb{JDUBYkPTE_``iW{$mIh*SvHt*IdtTkPhGmjTp`!dO+7SwI84;fKUyj5A_5!V`{_oHM zNay@=a!k2^02BeM(6*+7depHtjfOE)CX~N>p0z$)qnvy}i3kg$DTt{VZ*BeW8k>pP zgk?aDjtAGhAro+d{Px#UmwM&ATN1CBK{}~`+qiOVrEeHcBa19SR#3&oH3ysR&s}2o zj^lz9wJAWx z2OvkOagOY93`?y;HelwQs^*T}3-Z=8%9;r-pu)lR7u1hUV!su|Gbu_6^C8RDj`jXt zARKaXf=DIZDR!=amcNlLYe3)wb`FdYhDuZAEa_R@VZX$rGMGhjk3PFro92YINGx5R z*77|2R?mz;NeW4JEGtld71Q{PpXPhU-hNFvfj z_Yz@p=>UQuS;>`qxG}z8W|XnKq7>w0{dEy*P-jy z9k(%Myvz^@+%()mF)OQ}+jCaUrsRY{0KE~D);6tR;xicdg-I{1`v6#tO?EI2B(efh zqjC=K+fd^{a?wJWsV0VnK(*M=n|q`@ncplZBsnD3nzg%Iv4(EAAR6Xij0`-8%|)RY zxZDWAEaV+_Gcqx)SRNrdRN(KGwKsOT8q&RC<>S{dW;Ux*kFTcN>;zCvnK4TSjnJNK zM)bTXc#wn?F(fDLd!4^mh?KP=Vq?~qvLae_c&SW?HBt3$+cyDGxE zJ5=mD{{T@}h{i5zN{WjDTCPv-u`FBic}9O3iveYcV9k115nBL#+AB^yZB-U#t@fq) z>1##WL9*LHM)JWivkiZ%r7lttA@dEw7=%je(mb?i#iT1KE_T~(dvmqKSmE(0U~6^( z>>so1Pguhv5~DLXHlP;WwDa7wT;b=t7bFXpV^@9aVEYZ6!?N+q%&sIDz|{m%=8=*$ z!>JY!OSS+b!=?)_Vm8tMt-Op@TPP3O0Dt}^%WTbRZM0~x_>902U`N)iR$~5Man9vp zJU}q1sV8yPt*(A6i#($N<~YNh|@DBz^XZ>)bnvmO^tiTvSvL zDBA$hv%+FdAf+KjpfeVI8?F5}jv%(i+GNV%<>l_+B~#QrgrGHlf-g`|cS zW*`ddLS2{ExtEipfW$GMaPd*dd0BxRp{SnEsmx%%h?W-)V=>J=fXT+y4= z#`He6lcvNU}a-Swe>T=9T%yLZ?V_oR4Y3Wq49Pt-%h zi8T!~)|C?M4UUGTx@)eRMA>t5G1P;nm($Slio}BC1{rThB-i@5q)L)NDM?PWA^!k9 zH`1Hw&4qQ)pcKmkv2b(rtc8F%CMBXY84q5g4=%0cq!0ss>h~m2>PTym=d9@xh)`ih zpaP8IyE{Dy)*6wQC?@XIwT1oAzk5j|C=TVt_bdsmYQvl>ZVh0WOrs#Y{{Tl0YE7TW z2M^W|)&>dO)6!%ts2ZAsTW_@oZ8=uw4~8z4Q)60l8*&!tVR#u~VJ-_66>T;eavZMI zjU2opKuI79YQsxbjvckHc+gxz472tFvW2u%jvd7XB@j8oyCMT9thw?r>V1 zWpd9=iwlolKnH?MmSaYH5XGslTJNM+IcxyE^!fQza&vN`oA+rB65aH zw)*d-{_%DCM5!nlKma*9@_pjF4>uuV3vM*s?{R3c{X+s=hZGcW)a|@Q_XBhUOszDJ zV!kvj03$tBG{#8+Ss|{~YHIpa`T0-7Co+PTvzXPK0NeJV?O3Tq)hTLIJDQdaU>H7( z8rS3^-dh}s{{Udr6ni(AH})90Z75Gk8*S&U0?^oq#y)ndxkv>xIt@qRx(?8Zs0s{I zdO0?&-Glnw;do+xS#%czYcVWn^*VRy5+$SNr~(ZfwuY?S+g^G^^Bf|9BSE)j&N~k) zw}t`Op(9bg(m)%{N0o+j_(QQ2xSEQzyAvRzn|!QUO~qAOoP* z;o9Z)q-Q2eA!LGHtal^Z9@LJliQ&T$Ehx%Bd(y(gb}vFYS}~k&hm0UdLP&Q?m^BaA zVf5S=xG)CivdJA>RsPu`Fi015#xwBN9~Q6)1*kki=eQk%o7OTI)AJTsfwikv^y^BO zc+&AXYDjQgt7^5bFLU3Pxg1V#r^;@`=+tu66lT7SXZ7`iF_? zJ1owfDg@*dDX#sP0Nz`9^@%lPy9O^(ECPF3t?lnrgsmW&maT(Z&$Dxe6N3v_6swX> z+~3^{7ZM3JqSvDUpRT_2j}H<_V{|;6clI@&RKh$}6sf3dU#}~hLu;O(mjvqdr(Z)) zSkPj)f6D|gwJB|>vx=JwMt>0`r!ZqeM&iAzPH=OX$4$RJ=kSLNv$SCdiHAM?;leo6 zDMfC?v(%A8S`MDRUjG2@l*Jjy2KA@cY6?YOF)RsYYo1iwa{mC-XXZ|46)kaAZC;z~ zZwTB^ma-)bFHYp+MQxcO%$F0>>!x%HwG+62QiqAb=0h6l`qcd*ImPCG5ZHYSJ>PnF zjKZ-bwMnaLDdaxz`e!JINTK(?n^u;G&%O!6B4Zn2$Gt(YBElqy3N$^p#Q9aR#3(2+ zEmsw_0RX!=`kk5sh*2aYyAi41UX~W~Xn>24=xVJ}txe0Y3c{80R3-UDi27+TdLow4m zp;dY@3Jfd*RJihSPj3^^JP^ua7}f8tuc5S7E?R-H0osDw(XF#>9xY`hAOb^e?ENhT zx7u|?b=y9N>}VE=&c%T^okIN7$+J)ky)qf z%hUPycm>Gz2x*U~`2pv8_LAP#7aEGC=E}O(PV-B-A@AW`Eb8-#;MH=s*>}Y7czka*|X__M?x$ z{%r{etwRQ_r~{F|(iiRk@=6GeBor{d)tTTCBn)laB3IW+tD3-?G1Jlg=^o3L?4k>4 zQD&z4#N#L_*cbP;S`n8cQiEgnxUcaCI0TJME$~;KHq9%zKg8MwgzSHgm>K9dG?0)s z9I8*3cIOC(@JC7qVu`F+8`X9*6u(;kQOm`FK5O$d6H(j6k678=o*!qY7*NftbbaiFJ^ z1)h)I@C*5%g!}8H9{T%chYocJE%t#cO+4x{pEH}aL;8VV=XmkUvk(TSUY`3yiUmc$ zA?aVK+7^^oa`fpF%0Un_5+;!0+zM=Ybk`@+mVl-O!B=X#+4*vbDJ;O6JCm)sej&MN zsLf0LFRV%ufezlLzQ0(oi!3q{+d;2yJ+W3S-1&cWl_|D8>*UbNrs=);1HbU!NO;S* zV?sL$U8%cAhEhuc2=g4D`iX{wB{?LO2@kdQV64u0r# z>Xq=7g*XHqc@fB;ymhQT3@JH61CY$Yoc?vzg|7*n!DfP2^5}LNZ_jfcK(!D_K+0&! zkMq+N?cHUhjz9nN!KJg)^dQ3U$a`Sj%$7->qF3P>D@ z<=w4Ey`y!C_DPr`qKD_?`ouY>l>xV1G*g%YWXU)^N2(+OvJEbQY zGc5yJPAI7=!-5bSD~1}KOH)wWZ($fIst&RN0WQzU&Yy2u#>)>fT--U8FdGo+4c*V> z?Wv|`h{{Zq%n2YQ1E&1J`nx%Jn~lq+24fCb!GLzmCdHBnfd&MRO` zSH$27awny0_K5`l01>InXmstTwH&sO6d*r}Ctpv0I_Q|*Ifu&WSQ%|7dXJ$uDM z{x6V|l{kRlF$GmTuWh`EH;x0velilu(ut(FAds$1_kC-vL}L~4JC!fymvUGronJ@j z9=it=yR8U|u8=J@jmsGlPM8lQ5UNG~E0`kDk7!-+PpGe_r~FeamrU%$y#lw>m5cYj zui?HW3Mpxh;5(LL)U8M3oP5EA_?dGSL0LIX$*1D4-)P$4IO+_rN}0fSHsyQh&*cCH z(I5a!GnbGV&_>wvR^CAo8>0pwJs*@seGw;(6@laOBF9Qrm$2Tqi3-P=hxa=TK&Lmc zG}OP+IIbU$qas;sRjac%p4|TNAs-Y>3d)iQN%0)So3&2PL+|Jp64Pl72efS|zcuD! zub$Rfo3hs8Bg$lTuGNFer3VCps*_f`(f*ON!pWAYdUHC4+n1-(K7N()dXR*&(i9kn zP-5HGqLj5<*IiEt_}XH~O4JB&?0o7CtjyYXYy>jVH%t^4NrTcftgi%JX$68LliSZ8 zQ?+%KNXk@Dpf$NQ)sHM5S0JtY`Twj;A5%Vv` zUmDEE&zb`K1d#cOEPDA0KPZ3)isA@e!eBpF-wLw2@Bs!;fumppq((EXTyf8e6N;HI zCSd@*U7LGY(1FNpeqY4+vU3)gSd&txdcCS#{RLU$H;dxRQ77gaxfb4oLQaoYCbx|4 zFC0p;sJqlQo!*txXLA|>VgNWrupT_7bLQ)to0{8+aPb*Qrl1Wn^b@C<#EQ~Yn=2dK z_h%HPcC}3-%i=1`Mvk1PF)ZJn{Vf@9)u@67U;rYN4@$jg?)DvN9w!n@5T+^Bj?70t z=+YIy1jhekjN*G4*Xarh0 zh>N;m$k+jccCat5AY#Y?ozN1)t#SCGQsery0 z?rEMF1&c#m!9wbOOI2iX1uSxcz#4NVoksVxGdmY3Axa^R#euG#R=ihDoKk;v3Q2c+ z>IRKXEFzl~JxU=VeiHeQK1_Q4S}U6CO`s#F9K-{NyL9#I(wB(Z0A~1Bg4tjK$N^yI zJE&eRf6h?KoT(s!-8a2{<9fg?HL{=CLhVwJ&QAVy4GtiNVnI`|t(~vA(v`>?k+0m)vp%L3q#TuHxr3E>q*Q-0p2@2oUkV(kZ!UQ=x+Zs@u0#2Gn@A zmdwn+3by1>wJ&-RY6dYHT(XjA<9o3!Ph{q~grd7A;l>-%e&T*jZyT zNeA~hJ-|(=xAht+1O{O2Xh5Y~PrVM&C!X(lVS|ALxgeb+8j)${1n2?^3jm&1oxQfL z4i#xZb_`1bbk)aa*8Z1LaVabTwTW%pN>;27QyJ8)DVCB=QW)1ml!98$Y4&K5B5G)m zXiZ-H`JPq!#;^}nC4_Ob42=0uhdsB}BSt%^;>IdbR8sR%Pxwj}iXzjubmnj|jc$#$Vz%u3Dz!p!~kjq67*5uKD2DYyHjeGZ&6sI#)8BXv%ZbB1!>iuEhQ)=Axah%9qX-YU04l8BAE#NZd3G97$p0cYW!91)nFbP9PJDtCwS*$|YN>`92hG(ykb4s*TOeB+) zwjedgZd&y6i#$xF%rtNbA==wD0}5a55Y8P*ATw#Xa8Hoc%uu+CLki*OU}jW=V0~(C z7TcgC;K~9YUuOEMgaCU7JgZi(tV))ERYPEMmS714yLG=v45biB1QhkuJvp}`J448p zpvJ+O$f?|ee?K_TUP?qph9(SeKWw1q_U(pODTfS`ZUzkZoV8YXcNswaq<~+TENQhb zTWc5CSz$#Y>|FJ``DwIgr4`wUYgD~?yBgZ$Rx~&uw@D_Nihx{z_N_mjM>WTmCK>Dm zzPs;@>VIzDQe-{E5_wuuL_XT-TD%m3!9W31Z8QY-e(YVMeB)u+ zD3(;jP|=>we}hk3v|h+cl8_t|Mr}DBbsu=9lQ}t(qRa~r134|G(RC(j2p}~@+&k&g z<9#-Yw%{^JC+X_XNa?L-$dM9tmL(Ln^%yYfdKth_xX|)@m-HPPCd$I9XkZHypkP_; zyR=pytg#d<#^%S7tGoJBU55!$K2k!5h=y|3ryw*hv^EI^N(9Lg!19k{B91_xFNmqx z5C@rZ*J`UcbxLHZ0muvha@B49JJuEYag?|^REs;`e?iE`mUbIB&Y|ENQGf?qvAOGg zVxNf2l`2YtSubK6_c7JosprZSp_W;YJMF9@L(V|bkJ_}9Ka@a#5_?v~#Y66{ z9@GF<#+yW&fIUGO!YQDn{83fNLO>Y^NINq6b}Fh2rpo$XP5oO>q)>6L8k|&xfEhq$ z1&3B3J($w+0G^OnGG1hE0WW9m>3Gj#co7oUmQ}%T3s8sV)YYg%M{b@{ zuoB70zz{>9zTV7JO~Xo4umCZw0I(lk+~Td`kU>y#35=}$ppMk8unhs22_ptKfUD<> zP7-b&VG2saD7S@!SahhTc#64-NeZw_8UwDbTs6NHj?Kh)M47>4q!lx4L1IHVyPp8F zKuo_nv~x}=!zM^tlmns9gaSxv+!IPu=^9(b06x0mF&Gi|#=?JS5P3mDI++*>H2I9Y z>|&NmR;LahptvA554NWp{rjVD>fBq)1$qDr$v6azP`lT+!OSX(oL_hm)kmn=h(&c#z z9X4>5^SoeIM9WZ^Qo-K$9eRzqZ4V*R7?uL3!q@tJ;?`yrDI~Bg)rE&HeFo6^x&t!&v9nX^IwQjtqAd%k)u6X|%wX+Gl%JWD26AmtN*nYwtM`pp z4UiC=!46uUrS`d}(V~Y7DFNbo19<#Sj z@6wJ#66Sh6w_R0EM71_$q27QR5wSZ|_tqq?R(VWNQqDy?k+6F~Cl@T1P)i$%6-BJ0!;gYj=GR+fCQMwMln5O5UxAEfoF95jUxAtZp5*19(T0MkQbiDBfB>IZhan_OG+dBmHTANsYY zZpjU0Nv%I?xmjLQx;jp=nzH>cLIo&Vf~S^+_tm$BBMq5|2cRB&`n94eIHak7B+w0A z$1YX&VtlN0tfUes2uSQ0xIe{Wd7+mDk%J0-I=ywOw!mbC+oFLQ5HtN!=1LNf>MY}0 z)wJd-YuHu^Gt%x(zyd{uEw}LP6}YTt%`8+vdICq$`9Acv(N{SDIuyhPVfJok($NIo z;I3>83s?+J=*Ql)HW@_%;cmYk-A!rLjF5seC<8%FIXhduA(i7Lsj{ewa<6?mMk;nL zW0xwSU@g5{`RLCLqZczr2XIRbp58^?A3Oka8Ng~@fX0!Cb3_6s=rJ1ke|W90>XIp# zZUcvQ<~`p?hc_6E5~EHSM1;D*0H1*lW}g-J9(W%bA*n`f6w{Vx~eAq2dfnYhS0A zNVmhuNoRMU<)!XDD#jhRGC&}#p36f14UGqe*ySO4;eGt|b>g!mlA6Ah`;Ku9Q(eb4 zA*=!3_N^k$Y_gDPLu!pQ?fgY*kV!Nl&VYSc{bAd9E#z!)k}Tps!KD7t#!jpjiqYfe zQ1qoGi`P-^n?$6kAc~4?+Yu2_DMLaUg4Tx>EkfY7;m6>`a}YsrHD&3CALyv$(GMuX zTVaZr6bq411?%+f-jU*!Ktm8|U&KdFVQOw{OA|xacJqh8D*evavja*o4eg-)&-*qY z9E>3yJ1};@qT3WDGwsv*)b2zZk95=PuiiXb2DUErpxV}WbtnLj39njns5{mlN&^s8 z(Zw~k(PI8!O}QFn>D`Z_d7|zK0gIqCgy{8sWYv3Y!+Jxhk_imYFMz6cVQi6QXThYFeK2)-hDW%?`jn}7F zg3Gzs83ld!8%(N@4bb3wd{y+mC*|Pgq)P+8)9Sqw5|*Dq!m(F@iplwR2wZ06c#|0XmO>XSnR%lq;@0*AxJAs!^{-{{YV8ClM)0AgDQ}kLGr#A$Wy8e55FXwAi(EeRa2Z z`PhG#FexMn;(?ebUd;6NL3fClkMf=hW@Rf70BRh;oP$lf@-ANL_&y$BBQP-GMAce3 zumN48vq#u{E4X9vm}{v>H`>2p_Bx9U<|~Wg^-Y`E9d~9YPnJ*N;R0ONOhQReNwG2TZB;NjAp&U=G7ZYnYAs@vD3E|I@ zJL-Oz$9zkM!^$f&(xP6D9Q|p_(XW$F$4HqpAfeM>TH5JtEIM93Ql0)lTBeju#HmS5 zDzmP^-;uwaVbuQskT6n+KQIO@`?*=kd+V;8^cQh05($BVyXek!{F==1cxaMFnU#z` znZaVdti*gsiK%&HgQ76^%Ym~ zR~wNfD^jKaT%X>|b-Qb`i{3tb_=nSySXP*vA(rB^M)+A6KOyheOOxQn0n4?Zkv&~0civQj0RiF z^8*#H$MLy}Qu3^*){b4;oL3o`6vawOB;~EH&fLbA7U!5(6CkU`@2D(G)V+1n ztVa2!YV!rr?NWJ{=G|Xbc(5!SsB;+Rx=t2ek59aeuDauEwOT=Gl5X9x+et*1T`L2| zW+y56i93gGb~`;ZYR0b%@g_hJwFYWABh8xqblUu37?h!%L=?4N=UP##5>dodNDd27 z5Kp&o)n+db!F9kJiAn|mfYTbrnWbqr9}q=zAjy>2z-MEvcSQV9q!6UcbOC2=bf`a< zyh|S!%0hD$3W~Cvp3V0kXyBtCIIt>H17J?NnwO)TwkD97yh379#$g~>II-4^^*d_} zi*Dk8ZY5x6U;@%+3-+l8EF@vz=oZ=O(!1aP09d6#AT6AYNT*}d-6GaU$4SEk<(W_m zu{`QXItp5`^I+n05X7vK)ETG+{Ptm|Ms8;sDH)Y9jf<0e4M%bHF$a`ff?HuV7>#qO z6HPA>x+4-aIMZW0uAfD5Kk}5>GL(sGB}y4{X0c}7zQaHxk8zKUxP~@j)~rH`OSlUm zs%T67db3A5$8oii*`J&AuYG$vi)HZ~T|lilhy~R_)`h&=OB=;qZI+@FOp&0CP!I%0 zHB}tI*ahmg68k<>;@Bval*AItxjCfF*~!lvv)eY zW-(kvYD;HRou2;tT<;VUF=|q(O0MT$Gj86Ic3KUjfCwRx&_nCwBhrFE<$fcf+5w2l znVz+wo5ak;F?^xey-Dm&j}eY3b8`Ty14^@Z*SWlBzG|%OShJJ6 z7QNk~kQRezw2cM`#vw7QKT4knWLiPOAP`^@CQr;(f?g_xDI}W_W^QADW|1W;TejiA zA6jqcVQ8e3uo6qTZQ7&B^>1$s@k0}H&M?1`dMmr%MuWG>Z zi-p9QIygy#AOnvzlND~2s8>{wPK-75rKw1?!>kjO0$=^L6*V;5qq)*3<%J&-Plz-B z0Mym#>RIo|*5X1+S&c}j7jpi3)00*r;dn%uFPVZ;M-T@`JvFUuv|Gy0hT&?R1_6+# zFRFN}SqjWZH2_fRDN;c`uc2ta!njI74}TDIT@-w(<|uICk_kv8vPo}VV?fuuUCJd1 zPEtsqRch=3+pjuaGP>o&8Sr^?z6Q;Dym*(q(APwZtyUCMC9BEVkFO#|M-qAlbt$pVE;Xl{CGevzL{ z^(QM3K_Z9nC_xQ)ohEar7h*KzA4;=*=+PjPE^&ZK5P~xDXSQj8TTNo^x_@z$0|vc zQ9=OzCuoH^%{Y*ACZM?{>_ZVx=lY4#fy_Wt3RRy@R}M9M#4v%FD3DEAp1=)x*K2e! zVIdhEstb)?yHt&Kg8Rd?c&!Ab2oSU05y|wRTgnNv5pBe?l2Yu!)^iml2~(t016Z z*aB@sFH`SU!eYs1e8*R%y^6gXtodqUZs2J9a@5eCZM;I0hf}$#bQ`;horv?&@p~r@ z$w_LPXc)5|rTm<7hE0O&Y_*ec0Tq&`v=6c_khGp~E^^TdVgX3`d66uYG?D=f%qggP z-%q?x9wIKr&C{NZd(syt3*vH`f(w90qqB;dZC&EdRtv>czFQU*xTW85zgC1fO9R5Z zBpG-nOY%7>;|kCnpo1iZ5B|N3vY~s^5~XHjkm1dA1EX^3R*CX(sZxM8u?%@IdVu|! zCrZKo(f}sq`T9`Sr0Hm}Mj4Z4Ct*zklV|khc%}pobGcw$Bq!W3+poyA?vj-(3f%C>T_>Iwu|m~Wtdeu4|{$0-kT zHNqPQ=t^6L!Z{BpS8CZUA1G&~Sjt-=P8<}GVYP=X_w|Ylauj9&EJmGwmLLNDPohk- zm4JF!3+Q@#5guj~tzb7Qi<+KJeY_UjODF@a&6Nzie|Z`N1^j-M~c9xg20js#BC#AmsAvIy z4=TR5T5>XKP)E*cBTxAYaivkhGzTNQjpr;PTo!IZr-+RTz6fdi`^fh2W zv;P2eh={|4%L*j8yHwWIZA%S3BHsoQkU^`O8w!@A>i{;8d7(g%a);T%$YV7>whXa4 zg(W`Q1LV5cNF^ioikGYM)%Df>#x;B`UoZd#K~Am-p<_zko5pP+3QfQ*PJd=^N6?wwukf~vHb3?7!w%NKky?U+}A1xAPq%pN# z&ISAVQaC;Xh!6zASiXhYqPwxuFHap(5|oL#K}aEsJ)9GIH8$ESn$;C=|@(R*v3dO16(095)d{z$qbC6d-t5e|@9ng?vRc zt14z3z=9Z;Vdu}MSl94xizlR|3YblUIkS=X=JmB20JQT?L{2|~^=GnGKqeSczGe4V z7_XqF_F-rw zJgGTCnIMOA&y^{!Et$j+LwNuk>4okF(VDO_U-3p1>;cgAnfJ2dIMm6^0e1}UFUqy0 zeOfYO9H3OK-G!f#e#2N#5yj@4`-w=P4hEI=ucd1h#YSR)Nu>#Wh;|-T>AV(_Ey&!0 zvm1QZYJ7(P#zQlp^V4|lYSCDQDI|&-opiScF3G5HW#Da)&0Q0B!ajXK+Pgwnyp`pk9eJ0=xY@ z{`GC+lvoSB1f|X8`f8pJtu;7U-nuab8 zzPz`qj{BLyW-Td~kxtC*L%Du-h|A%VBqXmWa4XdBen!8Tqi|^g0z?dce7?1n$X)<= zWg!b8Aaq+#dd3_IR8o+aCal`F{o=nB!O-dfEJK#4u?^L^Xg7_TWt1p|piog)t@Yot z(cTH<=80UU!DiRny9q_Q(m4cgrC>s1LEK11}?xk_$7C&An-*o3$ZQ=8zbvhp*HR zWVY{Oyb3N{ZB{M(KAJR8V=-x#6hecGF=lFep*~Ps#JUun^yPn@yxXbdkQCYm5qLUe zAHKC^H;M@!09~$00@~5Zr}LnQ=;KOS{{Zaf^l<$v(0T!EbnHo(sueRcxi05^eEkd} zNm>-Zm;Ki-YIUbiIHg7^c{E3{aBGSj~EUftPB0m zcf3eJK?H&hT9Wi0N0edHh?oE+MCjM@+MZg&!-y;fD{Zbz0cx7IzI4?da6%(ZMv2H! z_N%tW2QVNI2?%8k6UxMU*GQ9#mXrong;?9Th}e!Il!tJ{F>))l{KJEU9Bu(`sXfVJFD~a`()v!J59t zaTFH;RW-X)ql2!Oq(DN#{7O+E=v|-cFHTgXQcj+anCHYn-NjC)UR=4fDLBxSmLj`u zIi2;V(g{Ue(nA|(@xN9pPuoO*2*MHc`c|h7YCJF^z(4@A3e~o~zWT-% zPZ0v8O{)!$UXA&zS*MDl!pA`5kj1wy_N9ilhx>sL%ns6n-5({^owl~@fv5?X7#Tgh zs`g=8ltU2Q^wPd<<)kvHij*9Z?DaQlUrx;N1sK$=l$E*nYoEJ4VGEt}6+=b2=NY5`KrBx!9`AnrcbSHe^}lOsJ2m#MkqS(= zViY3HyLLo$gwoYYc8K1eAuvsF1NO>$NdxYzYJD-(}vcaQryV52IMvJGGhm zdNfT(3Q9qA7tuFw3rzJ zUrjOGqop)T06!t3%3inzb*c#%A)2Dp)|T3ynpj1$Fp`o106RO7I=MTI;l-&EhGN0P zD%2;RpKh@naTx*gshD===TE0dpWHbCU>VRM^WYY(KlT8*SY;vEdQiCmK!U(;$Ztlq zK9LmRlJ3BuNq*~KaLU<5~_85e7v5Xub$)0 zV6aGSKp}NG>8Pe{2%(>#(+6z*YTk6|Nl^)@de`$y_ud%!^2&iFn_Kd2s{MJ!c^Je@ zDl3=+xvw+Jzg?rr_=$O3EjzG3O8RM0s1U8M3of|RKET-3As*lcT9r<=vpR8De6 z&dluA^tVT~*iF}9lPJa`ru|Tptic{0R}r?WwBUEHysj^XP`DSarTGnY^N7mF%UE!r z-D}$9KCTDjlb$d@Vxk7_9Cfd4>uq8Ad~7HE-M20EYI4&^(B5r>s`m0EEj_C4Qd83?g(*{1qG;Ku=f7sXIz<*g6kJf=x|F@Dqk2fA}2`XkJ zp8A@9RlF{HA>uTR7CpM^)mIYh?nlB*bb^nw`qxOrd`~?}C+Cn&&Tr?RsMew<{{T@< zTC$1iBvhQl^bX;h>ixN)#+5&ar9RF6|_ULOn}-3$U&tEapzsJHb9+$^;7 z0)w9OffIwH(ziJ7IH|<^$*v3DrNf)OKD@We%*Kg|TP?%yRy*r%UP7jpW+iHt>NO&} zjXt&IT2`^qGbtTkk*k~8iRbFkU|dHQ~v3X!DjcQi3*x!j-&L?euzoohim9CKy_at7hXn>~J< zgLmE3l77Hx^4-q&b5IQnTGCN|lHk++L77-*LF_?3f za|)TAHDm%@5YB4E`LNd7_Gso|(W`fE*lr4qzcpnTER75T zAQK`=22eQ5Ye6IpYV_wubA78;=SDF(1P}o(N`qB^7q21f+LUOWl|ThDnvc%3*{P_g ziD{nX09j$w9>7pkl0|fA%JFr`j|c=wOkf!;YLI$GNU&O+vuXii;o+ONBSLl4O3_Q4 z0m?ygSP@^^Do(X7KKjLkyh=bUMq~ zusr#>*j6wg^I9?vvWg-GlL&R~QZ5IS0&cWiji45aGEZBcy#;IKW1WLI3|w=kU$b&( zvz3d?%v_U{wvIQcUA&@CN6Sgn2!5D-W$ls?ti)3-{EV!=3~r6gv` zm$QoQ#rj4*P9%)UyHpFC>@ChL1)7Krw<6E>%IZ|^F{{XmCdv4~wZ4+gvfC_D6^?z(b#T>b* z2P-~eYI%>o_r0~2Cz2MFk}{}=kyd7n)l z0!Jt}3r(TTqr}2o)6)uKaB4Y-n@G4|z&zM4-TjiQsY)fC$U4@<*!F8b;q-V-2kx!v zH01q@u(pw2nSi?%r~5=$Xg}G zi(>KD!?q1|{>fwi-qViT8 z6s1gBr0Jo0Y3JtRGrZw8F?Z1&XRC?_F)K~b1PJwwju5JGg94;hjbL?Q*U%W6i~@-S z3IRafdy9H$MzNQNbtI8T)}S%_iUZeC7x-KvNl9S zS6D@&*+?ItZFG|Q2HAWp>;qNB zp4^X=OqGQ~SSpGo+>5!_l_PsW4&VaazY#_D^p)CzJRyk%Gp*2Zq!MDN5yRA!q!D4T zuxr}yzi|zWCRO-@u?MEd%Er1@@v~kV!UYXKa2Ds?zq+&)Vc4s}2-tzAr#5b;v{sv( zkY)b>?doI!8KiBrBzt&H7zZA6(DkTzd?HJ*H5&?A#+<=6JxpBTa460R8gg;HPM~ex z3_P0_u<~lZ){nlCI!a1rhH?oSQteHPo_n-WOzKRZFg|Sbq--mg;E;SQWDOi^rdMjL z#_*JtvJwC!60M!V@2KP*jCmu0tz{_6T~5pkZ+7SSF}=fKCC?$!9*p;?Yj@Vspu_O_ zC{h+u95V)}&~|RVQDWP?BwRdEzc0j(l}WdnMlqlSlG`#Ea=XHOe;dG;g-{AX0Hki` zN73v#h^jaxJyByv0f`i)Ihgtfig0;Y*+OrHB?)T^sBgKirv-rWWbP0M~GRq1Zz*`tRe#ND^nyOpY^ER>eYYDA#xxad@Bt+?x5@S zs5U^g6?Q=y6kkui@mb)YQlyeL)At6eIQM91&-pn(HF2%M4oK`y)Na>`;B!-*W!L~n zBFfiC2ES6#lg6aVn~~V1!<_>yUkGK2QmX5sjCxo;T2JxNP}L zV=+ktGm0_S@XvGI?tk{<2&I6qlmN~MdvYePWcw*o~B#YZ5nEwE(4=NMRgiSHS z7)_Q5-2jOl{I#m7UocH2L07XInpbyX{VsLXaKgE3ma;((?P>#GH?No*iQ$T#kWfZt z3jj$Xu6n!syp(X9WP+DUlFY=o6*V8--q6L;lps%BE&AijQAZ$F_qyR_p8%v!H zbZ#BR6)gw~AOh9tm$-ettr{6zSQM!);b1W|v$bE-R}s!-;b*2;X@@ZZfmbk2hj!Rj z;o{x?N)Qz>)WF|s@~N|$KCt<&JkZkDA&$~K>q|gHp~-Q`{z@c`$&HGgYiI&-N=mac z4%^nX=Hia_hg1d~loTtkAkWIR`fMXPfW`xqDPSNF?sWuIG1sn@ynDqs#DpYE&-=VI z*0;X2X5|t=9wT%Q`i!Hq$a(dO1+V}IEu@A%eZ%Zq4vB#o#5+LZyVUP^C4|$r{t02PkU>QWBe|E%X)Htl;0) z(Q)$5Qnvh_<;m8-^4cA@+jXEDZg}Rw0s=l`-2;PEEd-mC5)dN-J$vliu5-k&X~3aH zU^yGPH(>W7-8|zzB6ydXObDp}ha*b!YTNnRd_;jY1hrCFif%h!UBzxAm+>4@aBftv zIU98ER`s+2gPP6^U zuoG(xF>++Ey8V2mRC1yb9wjO2HQap4tp^gt%}8XMy*8(EYfiD2#Z8$tKnELxOY9om zE3{2G-_$WQB(MzPy(^}pc89(~6;d-2&RExKY0A8!hDaC)2r?tH&bo}qsXQ`aoCPg{ zMD5;wh)}jhNj%PAUX>ia<;4t1mz033f^W8jePT@PBFe!^NCMjrrS|jIBd$`VkOPfK z1)hVDFTS?v3|vtNfOI%}i8%iNTBIzw5J({mu8Ge~RK%qOQGpjfUfpZFLYkbUv2Yw- zgG>GcZ?swAq$O!}mcI8k{#~rm2OaWo&H;Oa+j35tT=j|OgVRTtA6Q?S(AqBLK*xos z6P6EX!iK7_6=on4XC6*^)SX|shXlo>YU54qR)6nM@JgL1f=d8xZcVS9pJ*pcLkfVB zIs@;Q(^h|ax_nx-wgF&cLEKE2Cz zJ$S_hcuk2fYCUzXo^Yh`1rm{%iqHb@$hW?+oimB3RbH)19qLVb#EB{d1!wUFI+i0w z+kUMM)pNAD)fB?&{MVGwZ7_n^k_*OJ1AoL;=L3xi{mP-EJM4LMY8SL#%EU=3Nh;>l z+yXh?Il5=90n(z?cGrE|u8cN^)5KPTRo11ieL+9f;edH_lsqR$%ye(2K%<5)@i5R} z?noLxQ<>0LT#<;DK=F!L=s~a*sXE1`7ZoTivnAYIfm>>QFQdmBmBy9@7F=^<)%?!x z5<4pa|t z8`+~fKFtzmaYQ8`f-K|`1-U-I$fR*;e-JGQqUsz~R}9vB{{S%`{{VkFYO<~_l^=_fLy$+QXYUAheB&iAkWES49y*XI#8Hu>n8HztMsVb=+e68ua77|Y>41|yy zJxG4EjDg`Yo)}nhK7MMpYT^Y&%GBi8k_WDx-mxBLH97=;DeDjLbUN zj#M6Y+AR^qrKVX6nP4hhIXX9HVf2nrc*E#b zQ&`v$ZK$S0g@wL#>(@%mU&4M6IgXf679e{VI63Kaejz|nN@g6oc(&z1U1`#>0)NB- zZj>y(z92|F8(&?cm8%@38cfaNcXzYWpI8--Ad>EHan-C1{{X07AdmfWS4Ff>uS!;u zSmt0%!)a_FeKf^&30!S&`;DF4yNgh^{{Y-Lt~#JdDm4@WgmZEE{yB`EBBk7rYV~8t zi+&krwA^;YZ;Z3APWT9JW^q9<_?GWVw~(oJ zx7wx|7__L-RMx+PN9aUg{{UAouH=Ky@*kFziPEtPAOJ{yoh~%(O2*`yKt+&bL;|4n zpOIPJVFm|$Y3Dlqt6r=~X3RdPvw_d)$`dYOQK_XYO|{h8C<>QK)QZ)BZl7qKAj}DK zVD#U1Eu;5t(N?Q~C3YY^BWLLJ6`A1NS!tKob@r=Ml-i&EM6(Sq(9#<#nVH&}4H$Ia zpGaXRH3Qa+`kGX8iwr&-EHa9zhb>=M&1e~(BGR%)E)+Zj70!pgH2e+O6qVUqOZsd`pF|O2N zrNej+s7T980;0VbobM;q_XI)854_-fN@P-0*a0At)|H7@He zw3&HiksJL#+0q782MY;=0S`A10g{4)zfZ*I< z5MUf1iq~Zzz1iOkK zrCXkb*`kOxl2IZ8A&n#fDfxG(Hk(Pk_(nWLk%Tk(^pQGYLQ|BHYYYBsXD!{HJW9eq zbg=9>YfgpwZ4h&Za-vE908+=&!rbW%97!aCMo?LgI*y~*5hIn|&wv8MJLhBe+*7i^ zUHn9d>Si&A-=V8TPL#GONOo=9>F(VjgFO<98l770u&<{$sW_6A6obeOy$csR^V&Q? z`HQOQ)RXnCdfwF##etF!E3`(q1du)Y9Q2@Vn?=9@at_@}-3a{l7Qe4_l%@LzZlbsA z${^03l>kAgE>a$+ayxr4?5SxAH3c*!*gM>we!fur$ud*`NDrtCI}=XAuNiR7pj<6C z5=_B*WOvU|6?YaA=h6+c*mQ1j+Nu<#sD-61O6=O-t!~X05=^3va~BWTmj3E39;`}~ z!@@y(b!MlP#?c*1N>!L9n*z*xww4$AodJ9^XeE@11!ed2Bzo3Y8(0>J0zgrXU;3V| zyvUMNU5Gr(3k|uw{GpkmT3CbP53NqNHS*t_c|R182Z#qBv=*};r)ot^+)TQYFi|gE z>)HL<4+|EsZWf>uZA#p34w)_0kUTO%v<=n~GuI}ZnKTtKdK#8)R%iYT#ASpUzOG+) z8`EKJH;8M*g#xFbBBGAXZT$=BK@2Y+ED8`q0MsUz^8R6hLADwR0pW2vGux)r8?FFa z$pkT@#NnCG_fuvi1QiwrueoC1pYF{|UQxxk7kn)L_!J)HT0H#9C-APbGda3yU20NJWm z+zjc|nIoe!uTxj(#JZAGQkuO39ZOZ;pIXGZYbqr~o7eH#sx3-y6mlk{kid#|CsSu0 z=@tl@MF@8P0AOrOm%Vv&yiL!P3rQX!%n3#$Er*|-Naaz?O9X&PpAJIC>I>*<;S&-T z+2{k76g1OKFM1kpZHJveprQa#00LcunzwfPQZq8wm@y`X=8nhu^Q9uzMBjF0bN{fURSV+zjfW#NA1X@^|NVW?gsD%jNY-Y7sS(PU#@dt8Qj;_q! zevxe~f)aEFq*kwTdHZFlpr8DEAcrb)~+o;IoX?-#EXVX z1uYAKsW`(})~Ks(uv&kB9K^2?Ap}5PS0; z+T8{7sh{99Y~1U}`f248WG#Y8E*vw}-|zwJt)h8BPU9KSobB2U`QE5sb=Q%TZM??_ zPnPbs7+Hx;a|clrH#cKj(Ek7iEdE>>o^~f_&f)O{kY6os`#b%wqqQQ{II;jrNg#$N>$N>y z;0ER{xB^KCsfCc|+2zs7$RM1lbAbS{(@zO~u4RIppwR2BPhIV6mx<_@0L+r+kE0q} zuzezp7?P%AWm8K&uJxy!PnNm@;Oa(}a5~xHt9kAXfB`(A1qNOTjcBj{`2Z^fww|9+ zy3VzBg%Om7Et!~(&(wqU(kIGw_^js7seSvmKF>`hU?Q&JSFI@h-rs1r!UZcUmL;6* z?e2~=jdr%N>h0jTG_BBd%(Qpj?17O`qtyqfx$o=`55 z?cJkxF^OZob3iW3WCMf<@P-x>$KG>Y7lvYz^3G>bVom5@)rH8vSli*TA2L`3I04CE zE2miGyf$K)1cJbX-H2jEwWhR=k;7*sgrulZgAg=tevn;hwE_tm0|0r(rza0uEx05~ zxS2CDJw5u?vkxGWl@Q>YyAA418r7}*^q6cg2}+)(gl;s}@3^&2(Vvkpkd%NNP!#*o zjX$W;;Z>Ge5=%Lu>r<_m(lcA(qPi#2w74*s+%b|?9R2kh8Pd=SfE5W03s~vs{o(J^ z6%?(U3Y)oVm*>6Tydp_RBwQ$ttmkoC_U{(5)RfA~no-FwZ(jYwMuOrjH8pK|2!3J;iCRgkjkj+h z(2Ga1WRgR>a|V@fLH$540EP#O2{6c5Jv8;u(0ZB3~J6_khiGm63{XLwGaRXk9zg%pfv-WK3-rh z3e%OT#Nv0`I#MJ8No>Oa?QF)6Cw*$pQcR+mf?xoehZP51oO<$&9u{VGr9nW3>J0{! zy>F|>AID;GSe#gwD-g7!H~}dpl^;;TzH!#LJ{eN*GP4(6M7xuk)p|SC&d;=1y5iVC zp^}7KH63c>=YW(6$>H zjOTnXLaI(7@btfw@{;Tb6srPjrNt;CJ1c}_nc_%fzwV~w7cbAsH&~7!w6emIqzWh& z6w>DI{{VQ-aSUX+@>TM435PIbf(axR($%=uA>6=2m_pNRkbMpwl&;8Rg=_!}!$+v; zJu3yqv1r1XvJsRxGyq+TxfJ`c7I@~^%o)Th=NAr3?sTQv{)L&NreeMy;#kb{6)8Xv z?nPNbo63LU4f`v1X<-={~^@hAwf`Az^ZUCu%r&Fb7hBEuk)!$*y?G`e=9ZbZOB?U}b*~n+s_oLjNao8{)4rP~-X~}T=UW1n?e+j{* zVJEF6Kk=-R{{Xt=?Din?^n~g zQbFZYdWIG+wY$Yu6ALn2?1wQW!{{kW^`j5wKAPg38dfe)mZnN_vw$`inlDQ>G zxNyYOGiV+^dg`AMj@n*audspovxm8^2(ZAtu{Bv5Q*V$uLnmViE4@8?+=n6yZ2#e+IY zp}PQTKaHY;9mZv+_e=?D8iye7SLOGQJ}bsb!Lo{-DFuekAJY8TTJiJW#Qy*nB2UaF zVGQ6_zZ7 zp7-W!6?l(}(7B+hXjWoC8HF`>cVSwN?H?ua4~>V zt4h>K1cuR^kaqL7jT@{k49dt*12`qyHS70|FM;^BT!kYm6r8G|c59C}J@$^3f%vlt zHb|JIr78%qEl`*4z&^FE(807B0KxlqNbB{cIgRQ$cX^3JXiL$G=vZ{QmQ_G>?$!L* zi|-ezoh>rzusk|77&W<`{OL|LivIv0;BaUPnK2+$Eto#;<*Ls7sds8VBmPj~;{`Ho ztU^Iz016kYGkM>XP1gt*c{3?4nVq-ZttkrtT(kg>Kybgqfq@0jrELBt<5+11YD~n1 z0N@fHuFfr6ZsD}A0r;bgDso8_9ws49;i%`iYV@HI&-nMpGkAtFa??DNl67G3rm~JJ7i@;1CSsq?CSv?@L}lrMtJm5!=7KyFZAoV&*!?tvp1Q zLZB#Ko7`z* zL2X_4HGcuaydfb6FaX)Q*T0(`pIyVaX<+CCohw(ik5>^U&TSImXhQt)3B~NqZxanMwfD9Q0H3#QY-m_As z6!=Slqd2t>R@eKC-xX6SNpeBe-S_KT_1+ue{B0ODGE@{2O^pSuR@ZlKbdGt%z9$nD zRu)4ONBTK_!>yvFp9nVG2H?R3?9tsbsh|XTM3Ekd&XP25HKZ8y$(R#TXyM2V4f|~U z&XT9&Whzl>_-e()#-OR|xgw_D;&5QHI>9Y4y4<+cnFw*#_K@7bbh5n?sp55J#nR1!X8&ScAPgzK5NuBwKgKB$Z^z3KOx>(}%0Fv6W zt;`Q!ygqo8wFe3u!-we94{x+`pZ%iAWh-{q)DS67w1GTIVQ`hW3|;Bw=K9xbQVX4h z;9a2xF}Ghw6@SDQ=geD;MD+XXT|@r>WI=5GEp34m+iE*C)m(Z{lfRKQqS&H4gdITicIE&Xbk48)UgPMoW@q7reXm?-ah zbYgznR`HkwV1hSO)gXTzDUvO?K+rgXR&ra^ko`?{S)UPjRLU)|K6~G&IySLOGmU3a z@v|2p%ds1Z)E#XFB>f+}!CJW-?=iR94PNf3~_?kTFKyR9O#GFX@dB zeJGnq7>I-kLm|(2B$VrZc)Jox#c#`6vs%8qq72S9a~~05LDR8+WX34t%8OO&LhV;) zHYFh;xnHsnx53@q1TmkjJ%o0_OSk+N9=n=oTm&!m#`iB^^3OGTwgX`q!IH`$=;gj z{YCtYLQs(E56JegZkOiOi8tK@0Wj8~DIgrC`gt+WfI)WPr2Vs<<4U_mQA16y_N-5o zwB-QTqgmMduTAsg5u5@IFIofG+tA;$vhe^BRsz1eu=?ASP!~zKD|Hwo$K0Q>bgbqe zf-w8!Px+wQwNhoI7Ys@K=rrfID6^EJnj|rxJgv&Dyk@ZYr(iYI5C)D7_0}(NWUPQH z4w{Fp-K$!~-*Fa!ZLNWnlX~mx=Ib(Uw2>fbs1v7Ohf3p|PmQP&$_(ed>>Y;wR*XLo z;(sugB<=}6*KT?f3*tDGDN0sjN7b4A`(Psz#5jbMD5NQfeziSFYTh|5zSOO?bqToX zlk8__=y6jP*ew{{tYhdqV^?wboX!$l*Hb`F{{U)wMl%;VS=0!6(&Xv%KYK*^xWKST zQD--;I@{H%Vuu+$Ayp>2lJ9FZ8@}|cK{pZsxB^FV;t4qDVzCCx4~&V2g!%{bwN_## zED~q|rE5m|eK*>Z7^1MIHDcxWdj1Da)3JD&BE;%1LqhKL7v_10q{L#7QlNqgh}OsG zPuqPV-NOhGYG@3}0B1S(9<`XWn(k(9v=Bi#P;ruW9WzxElt3WVwcBd)KWe+gR8CTz zDhX#|+4%==Q5dUDTn7sbBitKw&F{Gx@5gQ@w$aL%c@CsqcuA0 z8O{8nA{0SW9cTr0qYb%>LgtkvWg#`(+v&>h)1Q)3lCz$U+T5Ggl-}p-8nQrk+TaF> zP>y4I($;xMw$LB|4w3%=TuPh|H&a1YRFZO?OR?;FclC#If|9W@*o$1=`q%J7YJ)E- zTmZlV1CqjptGjc)(Ar2UEI_N}1RlT5K7tM=1;>>H4WJ2;8haS)qr6&exR5poDU1-n zF`@MerpuaFK;(_+A5eGPR1vPx?8RgW0Eai$w{fw#qer-TS=0?%P}J7-ui)=#Yr-W; z1=v!RsB2%iWA%yW76W%F@nbs;7fF*?T5h`DQU+pRTN8v#cdDT=)vAt+?Do@@=*xv)ZrwBB+wcM4AQY`WM3#5qD)2oh(nTvb}+tw%5b0!y7(*q%*uv^geFL#UT8%w($;Z?1>@AhfaGI^*wB1+Ih(!fR8J{kRSrPd1cePhAy}f zWro{J<^}=W1Ofq+RamBCLluCKFIsE#@;bCdor#y20J^@FuWc#bodpgvh>2x_s?Pci z2>$6n@t?%;iuhIucYl7o`7~i|w^?|)ZZ|mCp*cj)kxL;*g3D0^yRtGT0EI6eZnhI~ zlEEOU!K<2Dw9%dVbc$?87D_xj)U`GWf18 zr&4p&k{>W)UvXa|G~t|VSaNa+x8Kwob(FTU#s@&vA6?ME45o`xiKHM=}$6saV(=AxHi$L=b6 z#6|He$ps{~rQOSmyB&H)EqLW-p$$-6+w;3r8f#eaV`f`3Wdec2>rwUIwyBEZb6<6$ z+kmtQWWk57PqYF}Ro1g-Bvj7bg;>6y>$+M;i@k-?Uswo=Qal zd(bs7ywzl6IKXR@)DWBPk>h`_w7{e z7>^JD(M+mY{VQ8Fd&W{k_5zLJ4ZG8rtXj#NVpx*IcehH9sL~{+E+C7f5palFhlACO zqGF^%xUjVzPb*1~XRT@_tSASl6lZJxDb|r^E^cJ74YT#sy@uU3c+Jb6l`{|x+3H!g z+irTBSxdwupaur66ffP2v)l-qZdQ?h{g0Ki5HpGBvZ{&(<^KR{azibHh*^!pL}Im= zX@CO61p!mkZ+nex&7yi|DU;#_BDWM)#oup2HjL&TV+U#wA9DNLeYMgoFZMqm%*ZUhl5Xg=X=dpcH;Xtns9p`c(A3CKB?mXTNTCV~JpZ}!l$7uuw@ z*XtG%CgxLyAu9c?sCN|xt!qCjMKrZ#3Fcc%YI$y1x<#a=%MX+_nL^K~J#J4&h*%;< zmm;HaIcsRDw2pa;Kmce_10!4z36E!KE_0|W_L4_%_NPw$V%HBitxTX!VMDV&FKk(Z z#R?RsNhPyfYy-IFC=c0;T;W!bpa3)nyPI|#?W{7#G~*qLz)|Ie)-(q0Zg2D%YYbZy~#H7y_9PUXzAycDv?0*Tr3BhnSn8E4x@37rB#%rD7bf1n-*b8 zeRi~4Vbrz^;gl#zU>w$)&_yhymrTG5mLA1xuQS#(7;{EoNoRZL-n~C88+i<$8fgg7 zEj5^mM6OZ^9Iy!mlhq@WhxMyz0Om?m^)CHQ1-Vm}jcq0hTaXq%X)J3&xvwkq)WuE_ z0ZKt20>Q&KO7yT-ExhYa;{1$h=V9SLgs#ab;ki>?3wWQf%)qvwexm@L>$#oj?G zQH?k6j>4|+Qql!OB(+#QTkXHAMutSJ#gYpVcB2>QIa7G4kby@(>;nrI{6F;?{uzTa zLO?7Mz-r+8_pFcs7BUV)(8hM@-PWA1K{9nZ7&sZ)S5`g4;l!|#LyCP}yg@ zrKtp^PNK{z`e~q`Jv^dncw*Hoq=3{k8v=Fa)DXNk4#deSnUsK&;U`hIf6WX?y3{}H zT-|JvVIY2oy+{J$f!mrVPY4)-mq@C7T&2iKB_)*f1dhOUsnySDqn2{aBA^vJawA== zewv8g;zXsPrUqLIHsDl)zn-@SGt=-%B+Ns**b1<4cmAVZVn7!gpD+yofl0*m&s@{D zm-j6hfS?zSi)ni^p!Wxf1!+hicz~mgPS>N>I)?+o3BXKRiAqRo)Stb%M<~PLF$tWR zi9)iAcuO;#_VYSz9navrIK`tP&`1dclVYc&)qM}FOJtXY19Ng$Ndax@11 zm1{)VQsk^8AONOojm`A4QQe{vyO;SaX_+VIl}Vc)S8#Bm8OD6E-aZ`*3IL0SenPA{ z)67Ng7D{G2KfM}l1+a2o?aLm?g9$$97j8Yd6EzA<& zTl_)Bej`+u@(jl;hdi_I>+IUFXw0BNWcL;%`!8|IJWP<62>`Pl9klOr)3jJBa8OxG z5=B5gM%?ep@mGt*3_P-+IhaW+V&FI|%m({4-}r}d9}!@1cuA|oO-d%E1c2>DWYJm;Fet$Bo6Am@zGo zfItDL)L=s$hWGM{t`Co$ElZH4WOJiiF0hWJM>ODcKzsdZ8%Vt)kbax@^v!(%jN`aWDga!> zXH$lIJ)Muf(TU=J9`LLJ!e&oG04`2oKqP~v&OtwbBjf)7jQ;@3vyq6KGF;*kr74+A znmrO9Mrt3#eEr9N$+)f{wH0EP08uO!T5xMZ6vbwVZ%D?B^fhu zM&os|QW^zo(K0~KS<=5t=l=kbIAr7`%EZbnl1nUX9?o?Zr`rw2{{YC6B*>XL6A>_i z3k3qf?r&!AYg_Yw8~#ni$w$hOiC7>pB4H+#H5948HWaK^EBvLzM2xD$6{SG9Qpvcj zcNeboJELhJ@|=*lfd?QJwCmO>^ICX(;j|U47akV!{zAqkYL+Kudj8|tt5yQs z+BDn?{IQMUuk$Ar2XN{x$`8zJ)U7BqKytY#L5Xk}fKNbNMwOkMONr$mA|*-9ur&`Q z6{l16=f|HDj1C(RsnbErEQFV<>hAQg-aa$_M}zTi z`8yTI0_7DDl>=oKZEL68maQX;VtA2M$(d9Nfi7N^E?T=&O4p@w+iI2J1c-->okvr; z&0iCi(j=8=Krao%Y60uwb0ZG67@jXMEhp7WMxUEA9b)4L@fzgJK>3amQsXfpk1M{fyHGPko>O&#Kml^j z!#&9zzLe}2A^b-!#^)HzK*zOxZ-)4or6FrkN`G_glVRD*)|G~F{{ZB{ftIj|#FSSk zQK({0yu;DGBY@2K)<@|=0?1ZS3Cs%;HM0k^X=}$c;-3=CnKEfi)8ZzMZL4e6!R*l> z0zuG~Fh(<+8DnnMWB>s-K_QUi4Q>6s*KXrqCZ7|sgf^gt>-w67;M(_>_x#uAe*bqUN(JJ~jPsAC@NtyeYl1)3g)M)g5;@v!T zNho3zNE(7Vih)tionz;WHylzZsfQ`m>CLM56?^Gh-(kKZ33pq7GY7v)?94R#vti}7 z(uugY(S!>4^fZpa0|acgkA0&R^sf%%$O2#OcjO#XPUeRD+B+}9oI?waLK8%(gN0G= z&5q}@voZLq0r4sd&`O9Ig&vK+^5Bi#qpa{RjxhK}A2cP3O$epjzdtUfkPt+Sh(Zno ziI|dOT0nw9Ai{bE6AM!xlV4+CP7YZqITGQCEPO5;)|F#ltz$`rI5jas<&Y}FAz}8v z($_y7|BBeQo^s%&VWTv4gUZz;(u1Df_X{_WlK`%9-xZTw^)Kp zA!19(3r@52-nMoh2+m?iB|(_&x03qn;@&@n;W#y{sU<-wAua>l1N9X18hppaem<3r zo~cS!L;^$Rpr98eg+`Cletq$$`70O2Gd3f@6JV!$J+{!%t~zl{PsC+qN;6oJP1x&O z(eGa*b$WSKZ5PqSB0uh_$lq#4JDdy3fSic0x-2T-Pc9{^tZSs2{`D zq3ImLcN_;XE6sMTSl>>pdPXaW@#&LP%9=3I66)2qM#2*t13w>?2 zmltWY0#WA9SkMp|8TOivdqD|vLMZEKaC(=T-_PSps0%GtZ8l)iw=PuH#vPNy0Xee}L2~At*`B||R}SH8V2SYGanC|Q z8BjFGO6MliZK(K#w=~)W(q4zIB~6zTkm3a)uOV z0Ap{CwkzUHXs2;kEx6EV(AnZ3l)8Y{;kk;D{a;AKOyU8FLDtW4(v45O;uOv+l(|xa z(Samab_dXMwVaSmp(JItn$vbt16)%I(ah8X%yL?81mJzEp&lj>Tq*9r9_;U01Ab91 zR}=~t9WxN-+a8YfH8IPR#DQ2zQkYZ{UEP}2et(#=m&8(>l`aij(C=PeM&Qzcf45<} z+lo7~;z&D%{nlT&0XH$rbR(XzuTGwI(Z5-lMb6Y=Kx{qK)+DD8!JLMpolEH8`RaWz zvbc~eLY~*D4SGA8Uw(05jwA>n_12^C{=aJ%^V$HokO+2`#sk_kT4%0%-b1Mv)igUI7wP;)I52jSKD4>u-)&9M{{i3rCk3y;x1zmw2S88Zq zM=@Z$RI-pj1h928IeOI7zOcs+iNv&z3Abk;!a8~t>r#1RmO{t`ZKGO7fu8j0YpzPivx zmOdS-(r#I_q~j0U3*Mh8&6f=rD6BB`8QW0K1^yQcJ0qzJB=W1$moYeDRFD)p({#9i6rep{)0_HZ=@j3K}%MEk3K~E=px2+q)ka$878KouJ_vX z+B36?<*b4TyO%XK<~kAhjTe9a0Fn9g(#4ho1e2IKkRIc{b?t2;YC&M+8wd8z zQ__KVNiKbMqf=V%q-R9(lJ%wQ=GS=jSiIvcSm{w}zc;NZ70QNE0Ig0p3wJqv=;cB@ zCV8G@&q(t1ts*g?Bry$Bx%bmc0%7@hkg^CQoyjNA{{VF586?dmKmy_F<^KRJZ|W|v zY6>7ZFIN^C+MO7;sfoJtX$6uFhqy~oD_=^R$+F?fM5vC5b<1lrHMGD@%%JK$#>Zi; zZ|Y-Zfm%`!pg<&nv+njW&+x9Ah71EYn`qbajV>N+#tf@5`hI-}Sl0W3w*YiRj6#jO zo`KYhUDlF_c*$@J7)MC_pOg5%6Hv{RmaeQTy?ZoZu~_3ZM3TYm{dsb`b9aaMzY|E# zl$uwkZ+}?DV)%kkl^o1VijX^w*5w>LJ5LhcVPOh()7X7H>!XtEUC5KZu(cZi%rjS0 z_>M&71h{I0+4Vn8)QUV`5muz0Wk$uCl;_lW#%gC6Qr19FAQ9rA{9JbJXc)|PU^6YA zrH-$!zrm|47hD2dr+Coj53V1fZG!8OAd|R7LWuRvS>m{#hycO+^J}$vmO9q4OE-xU zSdvIIZ8;rv?qZ&PB&AuLl<87lk9zj6a}bq_bvO=p+`q4@`VPpp+hh?ffw0{r8$Ojh zVZ`77h+Cja?mm!9?^_8tpO^rtvu$VE=cjmia`T<+!_R8#&NH|yM8zrC0@r6Rx8#ld zuTwE-s*8iEt83IY;@?bevfIVCTXqyNnA7q3so~yugdQ(2v|F2er_4R$dX+9%rf>Dq z?bz+k=UPL`LM8@L=EP~fzug|O1maQ>PH;JcTa#<*c|?B99M39yN~7HZxmP+ z;iUT*6U^&XP$akY0xN<|sGcV*)nXE+q(Kl{gbKIO!FjwR9%t zZA^#|Fg|s!XDcW&(p<9!tGf{7iXP?~k%pR7>jYGn^#DOUQ zXUj{tA5Pl&Lu>k3q^!}+3m&D}( za7YB2&~(sj#^%%!j+u{8B_U22mwE%YTUm`cR<>q1-74eb>n!{*tmdW>0SDvx2oy8IrnI*}48UXrP`)}t>KZ_~KiijjzpLQaoYpofh zH#Zot#YzF}0Ul4MJM_Fm#N$8}0D>I3s2hv=-R{vhe-UX`qbAb?Lnai?9+(x8yNPjn zje-P3tY{^<3l%dN#Z<7gl~voG;)37FiZx=CYNe?(BBxKIZ~aAXCl-=ULVA;9U1;t0 z8bxI6Ngz}xzMes^Uqjj^+pkuONGNI`G{DY4_m@nPLb==m?p}KJ*QHwGF{D#5%2+<9 zlegb%#Z>GaJG=Sl!XTi9=Eg{QcaUJw%+@LyE9>`}zGEA*Ww%DvOF67O!J%LyCPwNae|4YDAITGSiO13bV`2YXLGDwX9?FQidRA za(p@g%u&s{?FvNqSSqooXJA3q_x^MZ3>4HBXQ8f#R@8o8<=aY>6hI>=@9CkXbrt05 z`>g<*JT|0lEs%jF1?s0vQ|27D5N$S&ArM3u<$6!P$<^X#1rbm!`-$gmA8%bEY?-V= zPn*?==cn>?jQR_Zpa^mWf1adRba@V4&ad>Ab~;z2;0o#txd@D zx8lXqxR3}7ri}Czsh2c>0!wbEYHiV(^}Ji*aU~>&cey@{G~4;4W6_9VnCQm#Vs|w4 zeYA@i7{uJFjr*Ke-(4w4Ijs$ct*RT;^-flFDy7;(?SiP-^A%?0M^PqeNlH2vHfYLQ7J<-na9F z0Px&Q5`t(DptfY~|02rqrgIbn6vxcYsInl1?6* zL6S5ZMI1m4fD4NtXGPLc2z5sl+%Wj*VVz>^?&Z5(v^zb;?y#8T5?H$>n^Uuo@9i8< z0mVrmDP-m?Q_r2Wvvk{agvTHy3UrgJS5|)^rpKE|ve6{~djp}J{YE_@!?2EF7$Arp zp}1oj*IC0VT+omRB#LeiUiFKKa!E)?BF@F0>@|AUF#IbVkjl*N!I`@Bwv~Iv(+i81 zw#pLeO-Fccv7?)7N;mOqhb>d6AHh3<2c6m~l2W0VlavvcnKyT~pop6)aPZUuqB{WQ#Bwdm zn?zhnv}tLQjN`aD(*;wu+laKaXt;tA$Uxk2KE|!HuuVlx!KrIj;r&`HWld88mLWo% zh#f91Sfoe%x`A3fUr>2=rJ}}Kf)hdub8e;RYhS>Jkb#I^xh2eQV{#(5w%d!ikS!LV zNYo@lerzex)y$Qj2vy2}1Q(^7`lWP@1{!NBT>v`nL9bUGyIwMqX9Jeam^t13_YB)b z_6}eRNmG!Ob*{(G-D1y$T2;*$@_l-1kw7+;Gt9wAX^_Nq8BNyb2BeIoi8np;r#(w( z-1XQg$VyUL>>900f=`y+BNKw23PBYr{i45H`qy2fMT49cq=P`459{A3tB5v;BFfZ+cCJyOuwfib)`d%!a)+hr zOKL}5uHrhj0$5a}5=H>ueVX#vqL=l7STpx`5 z6FbE+RHA7@kkxL2wCK-J@m<5d3&cza`I5=;7jSIl$fE;)t4GpvQ7h%-64Ibs_XOzH z*mV3pM~ZQ-AHpS0ULjJYDG51FU>QIi2BeKT=@bw@$}@0hT#bEv#wputxUe~bcBn>5 zoKCq~*B1DrhvE1J4bRI$lqd@YJ2?z%y<+qHRm7y@S2Qh2LS?C#>ia(@wVmVVfASy4 zbNIIyn<*1P!^%+zNG_5AcexcF=po;PelbT2T2_hW3jlaYxfG}duWgTLy9J{G{{Z6D zAR8IhCVGs;w_jZT=+M8_6Ov3o`r{YZ91YyGL$R~pmAv0^61b-p;k;1Hl_F{aR4d{R#MZ=V zL3+S$w1i@39v#^y{0AAO$#8=(u7HNXL}?)!;6E1enUm+vT&1fb6kQ~cketM5Sg@^) zorNOmG;%H_m7@&98PSRvt@+< z3W#H~o}9Oh1-9~oV>q<}&|u7I*iUN6*is;(x}6i&ee0>=vJ?r3m@3WzVhdY(Zf-`B0>(z&3qv zS7yC+=Lnm*xlO?#E5b|&oTLit2+?Jt+@=WC1`s+Pn{T~+!|9rK3pnTh!*%AlHj#T2+wF4x-px(4{y{D1KrnYd&SLUA&(l#-?{n%`wq%c48uVCqvbou2F1;DfAx?| zfHd{mw0u{LCP-w=b`+^#&+nTOG>%E}U&M-&hnS%7Z%#J>E0^q`G+Srh5wzW6_@Vu{=cn=LBY` zeKnz|Yt^AMxXD6-LYx;DvkDU4{N6At;@OT=5(5*8iHo03ggoQJcp zE$0f(A2i+JjF58}9mM(Ti1FMIcF2$x3{I?Oa!$3bR}`AHECn({5Jg>sj;Byu^N7O~ zqDd-pOP4Lw-uC2c6tbo%Sw?RFV8(@mHF;95^&1$Mlx5AMvy0HapIh_RHdd>F*4sjq zMWh0TgulzC6}NI1a`84c3@mAgSj|}{8WP~BwOG_uu4(q80}LE-QKEsp38fjCwkPNW zR8N@B#IXm=dWO?h(ks<8C5S3DE;I+7Zh6=^Xv@R=d|a$Z8nC>EbjWof-Eg@fH!_Nl zLCV&3A6;TNg4hQDIOyZcVM=nN#L>ilT61P%Z{nj7$i2>%XEB64Kp^FJxixhctBV#K zxzku+aTP6{M1oCSm_3Nsd%OChVdqkUS2B_ZB1%|2siH?yY9|tfpp10SUoG6;HI58>{YGgHurgZxK|*fJto)-N?UfPL1C$`l1P93$ZWDV_wy`F(E2iva|S`R%R?; zvpr&m3^2&J^4tL!B&2q?ueBDt5WJrf(a1K!$YMI{S|m<-1_dm|-TN@ompj~1)nil! zR}LvtX6hq2CoL)hwQ>k70T+8dokS*N>4vUcSeF35F{tUKVGBsK*$l`hnm3(vY3qoj zZUlj8M4nTWQV2AgN6REe%MFYZKXX$4Et;msR~PKYEQTd1O&6HG6l%w9e&cRj=3XLd zRB|ZMoweWW^r7t+GVzKsz)=~4E1s6$Qb2Bv3gLMDwh}W!Z(E4+Qb;tK2(u4t$832QHl-_Xlierj+fZ!An+<+S}-=~qTfj5si zQ?2TAS(=SQLG;s{G&uLlB!!V(4%W7o(!Wl1Hyol5iMpCNeQoXZhzsH;D#l{sg+P|s zz@uva0K`!oUSjM6LXkGwR;3aV(CfIWyNSv`;y_lAtsnIuEK7qrS3|}8QmK|&ikXWl z-*R_8Z5hl*A5_wzn1Ba}1C)_V3)t?(uNd{>=1i&x4OKk{Zgtwc%tD(nL=}~Xs4ZP@ zdvz{7BTH?xA_+XuJd*^dD-SvDtiJ269I^q_5DbY9JC9zsxUM*&vI3Mrpd^yoT%GqC zZ&;3=Cbguz#&&AC4)talZXPm*VNooXCs!iAcW3e~xpH3YOSN`1*p1hCASht zHrZ&%m?{uN0Df9dg8g=>hZ!}= z3oWA?y@hmlVmV$tRwPWyP0oi?<@M)XtHXfmR>XZs{57Tp?q4+w)Oq3&ck;xI0XPX;KkPDSKyHvO!Q&q|$<#Y6-7@F7Ju+5~`_<8)6Qu zbPrPy5h8WLAc_IXojm(Q=~A;XSs;o(YW63wq+?~^HhIH@-k#cT(B_rEk}TysqVPdL z1BOA8A7px(oH1)k0Z)A#K9|4q3r;e58PZE?3D%V%#dmmZGLln3?a9R`_t&{?cJRw! zEDJtXA*SZyskd_W9?xr*?X{=dZWi#Q78D%sD};-%ra|>l6;wf&gzB<&3?E z(pOrO#J19fs_hsl#1g(7inmndERqQWubUcEVm$PRB~1YM$?E?AlHS>>(O;Y)B}G60 z2)91fcfUAkIJA`zU52!;I%)4{u4}nP*IIy-jmsU%_#{RC>AKrV`*Ghfq+v$^$H7Nm3h@%N=zx3VRZU+t(2Tn(f|}=p{}0m7Wiy(gA#SGF}B2we({Nu zj0UPFsWj4#{;w0$jR~e<%Two1=CG|kE3CLN{{T{UL3hU4>eSk1+vQx3F3nDUYpr}+ z#PJ|4Os5KZ16p+FzMhz_C-Y_{kfzjVTbmHg%aDh0JVk4D5(y7t&3{q+YZdFn{M0p6 zq2Ap)Kd}#nF16YTQZQM^PN;ef>$cmujn=Xvd!QRy&%b)Fks(NPFw_xtE;YYh>k;vb z%vmRHhn~IZv&5wXFy+ic)wI3#&dOtjN6U@dQb zA{HSCD-3OZ+xFD?ZG86fAO|Sa4c78pWY%Eos<)Bz7tO}4h0Q%XHx@H?kk*7x)e9*n9s0gF3o z2KDoeg}0$?#1IJeff=2v7D(hgwg`|}Q2}c8!-Xt~OAzJBXTGM@lKUQAt)&Ztb1Sh8duh;ZXuk4?oBrGH|#gi#boS4gO+Tf*Z1G- zB89e+ExO`Gq#jk1;pwIs9kr|hw#%-%>%nlPG&CBrH1o|^&Bh%`4&|Qv?)^NuRZqsH zM0lzluX_e!-(RFcnK?^xR0TD=*PlV&;KUM=qjxUklKi!$Iuoe7oVb@?ZxfruEg*9t z{6Hanj@gRLTx1JRJ)6S0m-WpWY zg%r7^fp(~-qkCVhL7gz5P&?ed{`tR0inE9>N1H+XqEKb}b@UZHOO4=L!eZdL?j?bO zW4_NOb*Cm`6i^+<{=Qz!oxzDsoS;`nt06t>NBBG+WFdU_jLU#C53CR-#m_-W?NqUzbtk z5kXLQ4o!s^0rYBW<=PiH3<=M3M72YMuhUH*Sc;;c#V7Wfjzo3#BYQ~YwG0AK1cHEs zmWWP-)dOb^@Bsv(NVvQr(p}HfPiVD}TpHBqHy5a*Tkz7TrDCB&Iw39ziyQ6;tK*s;DF{QTazKk0&`8}s*Uuf^e*J`dbBo_UbH3tqWW0s ze3}$Z07(o>dwn;jo5IrI5ReH6t*&*yr8b9X7QSFW3Jmi|UfRi>4K5X>5=*k;#j)|m zjXLyA%5ta@3o)w?w;`nsc1fIbB`GAeYfY(oR@(YFQlm;InR4EPy+t9AnS(Mx4jIm- zppWlrQYiSDOj=16V^O*ccBkSuasVv`=_LjZfR7j2Ohrx;l)?GY$Q8dnoit{Ij9QZ6 zFGmef06$)iJ5nOLvs67BFDvPO@8%vo2=J8<#JM8P)61kmzsGf=*AuA?L?}_L`xjYl z!sBQ>wwb$3+CT;+ZK~RrGIZ4_kfOwZ!|W>U_^##@M`LoF#8i7qL%pPPr!kF0XUVpIra z04Zv6J#A5YS9=*)#iS)!hzWB=7w!$Z2*{g&ANJ-YTmJx3glo-g#jz7u+Ap&EuCxh3 zJ9$Ph3)dxjS9amNW`qS7a99^TZ`2>dzQ2d@nTafw_*4Kdqu!cw=VzpFei_6RR+W`H z6adRWLs8$IYpz)`<3Vm zjjAqC9&kn{r$=3-JanW4XK<&n)K$kvAoUwOIF36pYD$trfynCYdAHsN`Y5fyYv3}$1>r3R3Iim7Qy&N&6_P3ucRD#mkG*!qiThYBn{&9ri_`@|oB+(RH?IG+@sH5rr=q^J@QQcIV1P#b%!J@D=;6*CnqO_;I+I4%YD zpueT53EE36_^u=&4H1L9&-F|)Bxr326Nv=(uc&xb;~ zQW8M`WmD0-!+rV30r+qQnIw_}hdKjI`t&EfcYXx4kb#+t01m9h+p8b!G(QTwh%wNa z4mEOhKD6!B7CCl@`RV6fvxCnP%1Tv4ki+ghIg9n`cs?Y4LMqMx3`318r8E^kNa1`w zc|b^ZQDr?Z>B;YI=Wm4Kg&`=RW_PF?x8G~@n{E?fFo7jZFLE)Rqh5e7HnAxSg~g2N zGmU0ux&Bou~V^l|Ppb=LJkszF<+#?&Q~ft$nWI9FaK~WubEtx+#e?*Xd1n z0y}5K-v?pvQ)S``0ziEB@hfJfPr6?R#kdxE25hNiAkZ+d8nbiLO|2DZ21UZsBpZbI zQUNiH?~2Or7bM%O*deJT&M}WVijF#oQo%~d1T$u!YE_By=HbgZE8eL%+v|tESiL+(Qc1dP^TDQ>t2#EgxGsJR(N6T^ieeXyB=9Yz|0lu4=CvQ@9tAMls zZDjJ3+8QW^q{#EGx{rybpeAC;BEwd3$cDAFE)C-I0r3JSq?Dda2%&KN?;Mu{H|9zC zQwVopOLZ*wt+gED#|ty`vl2pxKs5lq_T|bbTma=jnHW+*o-a^_GUUrymjWLY>l!6q45Fa4-LuP9Q9cMiZ7V%0R= z{njqY+0r-;@f|`l4C#@M&3p)ZGnw=lW zxDoa5_~-n~{{XL$nR8T}!5%8Jkw@-9?ORqp8NhJ)iUDAhp(4WU_BNoSG;26)`IuFs zDvsA+9m(_Gq$|%L2Eq&gE*K!>XGOknY4G_#B2hfXPKsXt06YEh#ec|(_<~uPDt=c4 zWX!}|19qVV_tG$!{B+s!nM=$|nv+w$qWu7_KvBPK%079)aok23S-xt3U~-aJfl}Q| z3ccfN!+s(-zxeYLOVx=tsXJBvk)76(MeOpOv@wu7%k|p9w2NSyjmSMDOP%+vBF~;T2pRuegZ&ZE?-l`opoeBOz{pJ{@*B8peTLW@OxL4F;PGECrD`+PNnk$IMD5ADGH6 z8#cW50j;}O8uC6X#Li^}Oa;Lg`qB66w)!86__7cekxofABBWlm`#$l)@%&t_dgdua z0N{skT9y{j+gQ+EO9Arg2P<%9U_@g+b)Ci9EJit?p1Pc!u>w2H;*&{I*+qyP*_xs6 zZdZ&a5?Yjx3j9d{%Z*Oj+v&}p$MJ`&v16faS?#X;jAU^fO*2SASs<%+uJ`sx5bfa` ztv4?frb&~hW+SW~&o#_#Ce$oQIJpgWBeQhU)~xE5NA5iyfY(a)ZqVH6Nix)xEQ6F~ z0Mdt@%R(m*N>m=q2B!5iIvq~W37II&%CwR)ftsb2Pg7?b>$a9y44aQNh?8USK2wJy zb+(l!ncN8Q0TzNenKq1WH1x$+s1z+L3M7KW7B?epP2IJNSrbyAnoyE5idU(xn^Ye3 z^N_U6Af&UCn7bFybKG_9Hd$l>9*0Zl{{VmD@wo!yHnMF`o2X1Z{_eE4%Lx7`cvB)a zC(*B0nz~H;Bm$BdjX*jUsiwLM#DR$k02N-~>sKeM`gN@W=P0s?B!Nn~VaQn9sJlaR zrc5aVb|RdK1DIo4HTgziAkH&5BTl32yViWRl57ONU_n_21M>G3Z8H=U87#!stw-JV zyM~AXVKWpoCF!^qyL9ChXqvGxIh99d=FD~ewWL{zVMQwka9Y*Ym#5ok2o{S@K`P+? z0E-})0OA*vQ(VK88?EI2R-jM@&~c&HToqBLEecL%VjU%%YfD#Ct^Hxjm{OvUOF3$} z0jt*SptiATh{BbinN&A(sT#N0g*AAqOr;`WLfkBeNi+ljqYAaFeO= zLm4dvsKACg6T80D=^o6*f}*)(f(Pw;i)wTqc&fwYn36~?UrM|7rmWFDSb1whyDSP+ z*0l@{w5Mo;$~d{WyFwQNjwR)&FC8d$U1@`GF@OlbU<6F}=r{NES&L{>LJezirmaXm zY}BP$s0q8BMuxgn)x4rG!YE|`hXuplgm0}af2>S1K4iR#OO&-h0@visJ-k zYe6==8-SR`>+LaZmfLlp5?Uyo)`nThsOp$PGLT3n{SUEyxx@+hf`Fu{DauJ@3Kk)S z?0>G7rcw$rl{2O4b+eLhTZn}}>= zs!Ch-xDTTWk>v|QlP%h!r>B|o-{}Q22n3SqwQkh6zbKTHsX!6|1(<75UB@rXRreuj zwm}eDOpSpA4OqulQc1M)07pH>*z5pqMs@8ur~Y%O7AH-E8gqxl<{$zH0tzi^Hwa`D zRXz}6L9{o zTfW98$>I3|Unr{r!umS~YE<$!iP9w{Kstyf))lE2an#kj7q`n~RSzeas%n2|;_H)31Pmmpo;sR@;b8IzWT3tFRh+t)_c za?r>muB}j58(eq$^^H$8#U5KmB3RV!#&P)+F5&SQUiZc;W~=qyeZW80!n|V=iN)q%kzyZTQ>s5^%-l5x^HdzHnA3gb;Ohj2$6Cm!I=}~M=`tyU;#5W zorqrl05g3lXE4fMqKEK#eK|#<6rq(w0BBC8-Gll@c{7*-4^|s)OCMOBCVR1RLk6w8 z{{Ud?0kk_nxx$h?%Krc#TAO&b5^a*u+Yt+GF$vb5T+pT<`x@<6^ln1PV!%#N$^Z^k z^81QLL-k_f_AChPNR*6G003MOXAijD_4>xdn{5T!P6$EiGCRLfTB`!K=_6Ix$sS%} zwDR$dOwKlcH~a6rIB|{xJBqvM(do|LoYE%+DwHo%xN&FN!h`7Y#Lo-YQs(sK{Inno zVAu67ErGR)!=7JUp`pY=Ua&;*_Ebohzr1YI*)#MlESHU`J3(eVa(6 zOvN@}O+!=y&7mQ=Y0@4_)TU!zZKpkl+8>E{ZMA{`kP7K27>M6fQZ2XyZMcwGXzUQ4 z?_YY*Cmf|GDviZ2L;cx{{hmf31_dria9yb3jll<>SfWZv%3PZ2Z?j+R%XpnF3aNWN zZ?^vc)CTLhg|`F>$&DP#pHDhmPYC2dTxNQgl>^{vu9J&cBBh7&?|-}c#Pnlwfl-^8 zFMX){-=(5~AwjDA#kZ)_Z45jRrpy%D>8Ee0>l8@gqJq$wC%#!rLOtro3&0KF;l5|r zA_4&^GJN$|d~qomi5IOMoIC2*{KVhY6#!DA!pzM2^!9a(nkNXUMC+!{HL>mO{0iz zEPoLgF*$#i<}L7xOvfuEk@(d4JM-^0W+qxZDCbk78teCp1Wx&E#M5gUUcC8zW6z$s zq?-!X$LayD=Y0ehfI+kbNlk39{%fsa$^i%nEZmd9%a^aP-gNw0!D=zti8ryXn)Vfl z-#95msb2P|>hW7Tc`T8Xky1&~scKQ$8%)x&#DW9ZYwuW_Z5G-=D(D&jm;gYX^9o(VtgQVwN4sus4r@_`PqpTAZx$oqUWq7B-J1SO|_+*)6?q_B~4H+LVukrf5mr& zs&f(ky3^@PYYOxx(Kg_gGQMY0V-!0|`BAJ0Ex@l}WkDhVQv zNi4zbztN&J{Af>w??GRvp!!nrLy5$#B!>)kuRR!7o`ZOsIHboAfA{eygAVEE3_H1mf;)|8OBh6}pf{(D6an`1)X;35wrtfL#PtG|>K*jH{;8QXB_y*23kC!Y4KMxc5LCJnNdlw;-k^6L%uwQ8$}Se7 zQv`s4TEW55eJeh3Xcm6Z7J)Y)d9fqT9-h?kSz1|-+1=`Yidmt7HFC~Udun=r3`XF* zMg2mhs*Y0bf4*mP^@f)}IT&7R(5D6!kXciLh+M}44blJqTs{jN< zCPr4yP|Z0yX(dV}i&&eHtvR!s_K1sGid{y`!i{=pK96=V+|}k#YS=!!+`BXd1!N>T zQb!@qqwUD^5E};+0n7!VOn^j45XM{o02QQ<3I(Ha<}!RTzy*8bG{nYPvzxFK6dDl` zN_-@w1e%(^JC7)_`6OmL3zF~L^ZXjp7*<-_Gky=7cZJG;As#{xHPLZOQP6#~#W0Q5 zb6d+G@`lbfB$?hfE-IF2FM8@-*_-+A41&Q$NoTf>CUYEXu zyj9FjbunTbwRG5f@1$%l2E)o-){P7TQOHnq$@HogNg~1t9uxlnP!P!^=Q{M(no)6; zG$)(Atk>;GZ{_~rt(bSa`{}$oyrDrNmhu%nX-c=+5VE33Nq&A{T=M>7E@Ey33rMtt zQ^I8X&zQtjmVtO^5-`HVN0&|NGLe;%6yTD14V>1trM9#-v?%IpK-3S+Hp0AwJ^)Dx zQ4ez0B=xC#RuM5uIa$&LH|tP(Grq7~d66Y@l1-yqqdlV#G^^#X+kMaoA|*4*%1ru2 zN61;MK_H&5=Rn=MMClU3Qp5w9tN}Fc)w#Pwbu5%+%i^JP`L?zf(8P%$VBjNbKY!Gl!LKRCJ$a8<|p@}A2fRd6DkQmmZ%a^yNR~}PnCzj55FdG5s z?K%c=NUK*e5)nj_W9O3ssLY~P3K%fk-o&1Ps?dc>S-r)@faukKTScnmq>+$nN{KZu z_P03kQrRE?Yk$b6E1pnY%gxLIv5K;@fL+TTcoxl1Gx7#3q%+WLJS z(L(iMv0ch#xFDhoemm8WIc>T~ysL0m@$csU05uFOq=3#ooW1tt=qh`fxioP>MtzMu zfQOeX3*6UZ?v);Q5YqMqsPER|$5(n*@g)mMa6nd!f&fM4K4|i|k$Yj<22QYNqy6>mcng$j2Kkx9X{21t#RN+LnyDtF+_fppjkS7c zxyp-)EQ_uKQhI{{rhg9$M=i$DawI!*%AL1f7T}F?2?tu!PUC3+Bq)Tlq$Ih1W8a)i zz;WX#nPtP$;qLYA+&jlK{Yr||No=HmgkEP{uDqUTmpa`T7Y@)6W*{N5@wg;o8w~Ddfu8-Zc(YhajCNm zu&ISYl?3uMe=}snaE{N>z~sIj(bVz>lbHBf0PiDMXYl{{VOZIjCyt zdFXfEFydRu7LN(Ngn3AdUop|?FRgFEx$=@w1qgEhi69XxT@Gtxj4YX~7Lc_l9F*3q zcKrQ4mw`qSZ_E;c77kEAp$^=EuDc6bCgA0Rk#wN$Ys;a&(R_r;nw1HGB|?b@k?l&~ z&sfdd9ubhlvO+Sq^VQaz;@iL@m|bl*&quRFxzaEaCOGysS%B zJMRO%67$CO!W$!5C*1P@>7A63snj{OGYy2K=DHlT? zWy=dxzyN;>kmQPW>e_1@mkq@ihf)%ymQ_J}k64|H5=Kla#v*J8=2qcV3=Af!d zUCM_5~37Ts%U9%3#UV?qR;jcON8%> z01!pwfQHEtAri!HG}f{=4;sS|jO(YV`&O@yVv#c#XGjc{9}o=BMm|70-T8>ARw*d~ zT%3_`!uk(0p}b-h@eXv7RP~~s#_dhsu^jRIz=ELG2REL&TU}Y9+%L%-fLsqT#j-!N z@j&qlhMc6^Ffg_u4&LUv9KImQa7X~%=;xU~(?g?)lm7tg4K*aQ){gE5zGR9=I7b*@ z#L~g+YG@t3hOmdn5>8Mv)RJmly4Cd!rzW6c-fKCH&cIm#G8n>>5_Z@oWE<_}(>bkM?;$L1<!9XX&Agr0ylTVhav>eZJ8hSl|Iu zu_C*UzTTum;gX0v*BfTiwSr*|pY0&-BXBwdJhtguoGu{)A=|>#^I_|+tZA^5(z%j~ zh)GEfTH@U)F5Nd2M*o$l|C0Cz*Ckk=`PEa#5j#Ohyw&oj`jtWu~Q;{wlvp2Bs&z1T9 z6OYMMw8_qv3I#;A+LCE{^wQCNhvHauOh{bRkQnI3low}V)}ka`Xb1?9ErMt9>GZ3M zu0Q}5RDf1Ih!P%aq)5p$B|%w&fYWscjqBC2o-udr&}y9SH4<7x2+3fO8x!D37< z)b9k_W|t5yzR+ZKf1mD0I?ivi}9sOQc#rRK>~)t zwfCcG66VR9h*DHgLJ|lpKWzgVa;-Oe-Wu>~mpLx%T-dwT@1PB%3SQBu1Xx5d{6bH; zSd;xr#^L+C5D?}Ue;_mk7w>~Q_0-{~B~p=?5C|1EChe_swZ^eC^%CXeNe`LF{{SBK z=W13n>7Jy^DFu>|>&R_K-(eA^Pg$u^Py&VOSR1jpc4N12D=s`sNH$&oB`_J~VS*b9 zFsiPwi$$ysLCh~8JBtK^uT5me4QZxMl2p{A0yol^+g-@6weyw|lP+3Is)1Ahb1zK* zG;7(ODrL@^wI?y7f;Fa>>JQ>4E^-ipwX%!2xH~sn?EQobl-fK+j}(9e1e}36^V+G4 z10(^dF_IYrGW(;ZlQ7cOip*g{n#Wter8f-h@$A*+Vc}t_UW`Z@(AUuH(N&4!As_&t z98`HfvMBWtP_8JXxa#d5Z(q-7m-^I8ZG{L0>M6)Eqj%OaD&kqs?rKo%0lhhn=X;-jSQY~< zwx@G;zLvNqD1<-*TS*y!9@*0!DaD}YAoFCA3UTG9QJq?NixmK?{@lgIt?5_Nr%3Tw zq|8Vu0H`<><@_7$G!c0Fc0J5@ih#?o)Fjt>nv^wfw?aDk19NSTO`x>DsRGau$$~m83FA zX0bnO3iTvLVH{K?Dgc1WVYN4IZPE3JlQ_9b$t2||B(ZQQrp4P%wtyvgBf`K6Nj?&G zEDVU&p<8zlUM{&^Xd_w4GpN=kF|OQ?@0ETh3Y#p>VE^nk|Aq6Tl)qxLcJq0XF zH`X#J<801Hgn&Ui=~w=P&_l;>sSy$T+^;~HKan&^iX>Z-*B-GhCr{L%xBmX$bI4jn)c&9CxHBdagtvm(8%Tt4{TRY zUl5kET3`)lBY#WvchRAR;*g@*foixe#Jvdbep*;^#c{UrEfA^blc zN*DW!lVefLG3m80MvAiAu0AGz?O-;sfv83o#w$^HHvmajNnwSd1O*Cxg0e;r4Z2Lzz9Cbm+P-mb9pxc)^Hk_I#$m4my3z+4u^#r|N znW)fjxylWo3+y7(1Qf_2>oe-{r7L)rrVzT+95RT+qBI!oTF=vjuSF$6#ji`3{%ktQ z3(7(Z0)K6uocHM&d3;?;$^^hjCET&4^}e+FQXKtxQ3YzLG&-?+Zuiu%i?lR(feG@W zUNAH{`#Gx|U){Lat^Qzw#1NKoI!1a{r{W zavm;V2PoL!n2bekCE`$!EtuE?N^h_g(Aen{<#9wIg33-)si+>8EbFXWh%h1 zc5*!Zdp3_Jh>_xa#*7~Qdui+(qUKAq4pTX3XX%L0R13IwTnvk$fv6-FVG-VbmDh0G zMoi4BAM0?>M{#4`pmWg0l+G@M%Q--HAf)}B!1uIrEH4(Cl{@7mQOzp!D?7!e>qmr_afSp0Am$YNR;_r?)eu~UHq7LG ztZ4#gWGoe84O@^et9Grq#SE-cWu*AKz3^~Q#vw&)uNCyaGGE;c7Vtm~n{ASF zBqM?I1}g2c1;PomJ+L5&j^k|2X}|VTDNlV z%nefR1xAm_`fF;(p+zjFI}xuvxo^Bgl%e4T%kR&nUa#7QC(A<0f>NSE6mjX)_49bf z^~AfFMb_ougd`rJYp!Cj7Yhj%f&mDEEg-Ta6T0=;sKd6DT<3lyh4BL zb*K2E9v~J0cuPCvH<*CM)W+V=X0J$4#w7{~Cn)~_tpjy$ey=p41tiR1!tb-`P3dNM z&tn2mwHE*f%1tQ2yI+(SE+zbtY272H2#LVl#xs1JLhe?8#NBEm9ZBD>rC%m;Q~^rJ zdeiSh{adclW{(m<1RDmiuU~xxVWr~NC^1lKkix^YD%CFHv1^6m($vW-E(-u?TVe|W zAL~sa+ixw`TKT}#$iVdb`_*1i9E3Pvgf2@M&e1blJTet}lje4BdWfpNsbEw)UJ9)h(s@wR4GiZUnOi$nguTW{sJc6W$8An&Huh!J- z7IHAe&=5^%*Zl8mpE~1>mnAG#ng?g8=3mvT41e$CNFh#;9NFI0rF^+W5N;?ELxOyd zw0rqBhboFG6l0Q_y%tB22E0^@HXXk4{P zG4{r@Ql@bwVdp8;nFE_{?rm0W`@?Jai2#;ZOK9TamVQ)d=h(hBW~jMmt2x%Urj4n; zGGc~*5z0#_RN3eUT77S`4HV%?%PBqFEW_YwR#rv1FtxGQ#~pLt9l3fiVAHTS#^T^ zN``TXfLCYbrF1*W@PTPT!B_>YH}mgPP@+>%9)bE@w$t5{F@rv+vAltWQ0*+F6^D z+83Pzh6SeRVBunDyB}%e|2AdYiis+%^Bb0#m3QY9ETp-Xhzdf&%*@UZ#OXk06CLc+b}gf6;7Fp z{{UrGRc0Ktdk&PX;<0#zDMXV>mp9jXR+|y61Ti>DAi}>C8o8p6-*mW;9_#=j@S4 zjuocjS1tUf%R~L00L@L}?otRh9FA*<8e|CCdgi50npIS<%hso>m*v@$Gyo2ANn%{= zE2TP(qP*fVoS`fqQ@)ISZO!4SlU+dOp)~`jI&;5g(lz1;2RH3%BS!ELCj_CGtoVE% z5W4R*aVW%2gQR_|CSpRa<){a`THjbr5&$b-jLkI0&2mSFc$E}aK)B# zoO6?s(Lyu7VN-qVD+ncWl0hc{rw_1NQ<53HKoU(_pmP3Pk64nFpO`ZwvZ&{v52cOk zXV}Cfl@*M%4mw;5c@tNxS)dZms%uZZ&q|k})-sE4vyi@I+wkMQI(g=^o0XQ@MfUQ$ zi~wQIsgA#PCkbgJ1qY~lU8p~|v{PaTNGza9CbliL{=%Su;w-Tv#G>vKt5uk9w>YVs zl0%I@pU=8OH*qcJHu9GTnK0Ib$tr%8)5Eut(r!K^K{m;hV5xD^p($pep8DO#PMVIe z+0p2CBTF+}+xRqxa-5;wLCV_%9N^`8awmZhQ+L6xOWguyrA4Jw=P2gg`k~sH4|HK_+;F`x0*nA2!Q_p z%>APjc$}rnRNa_<4Rjw?(=BULr8T%Z564!lJ`$3bN}P-9)~&nmW~54!EEKp5ssd}R zPfxEf!X5XE4>1;&poUl?K=#Bi%B6T5LvXj44jQ`dQmrKN{{SPnl7iDNqAp1ZasetL zn*c!9=--HOGLBawi3|rV$sYWvXfWiFuJ$dn((hW*kl~cPiUBEN8ie-WoFmJ4H=c4# zpg>s6-~*$e@d&olcmR>fX-t3!Gj@)1nvaG~Vl6@GUR^w%Ek8{s0fw>y~mTCDJr%kzq<~Jl)}h%2I}91}@BPzL({Dp883+V80kk>Po6vnX5|r zMP%dvrb`l&U|0>dyIS$~o0Tur>Ta}r=gfItm{f$tTb#i*f93%yNh7*KRI@{032F>**}cDGL2T9EcK zX(WcXU?}@sgTD2OS(9>~+`xhe^&+&c&k=DJfCwNPSWJqLiVe$+>NozaTi=<-C!KK4s+$UD}FeT zQ1GVred|p<>1b5!T1>VzAOh|$x0`B1JsQ|~c;l3pX4Jjf{dU{6CCbI;%5#>nbI|)F z^kEDZExY#3wwsNlgFK-@0K(lrTCQtB7ZGWK4Y*8(-h_1NS5t8$1gY=UC7H!XFR0`r z+&(C%kw9IDH*S3mVycYVZYL%l#ZRjF$j4|TZdvuqXARV z{p}ok2uLYf99hA$Ic+Mz&HSTrfu6Z(mY|{mP$#7cG00obu}#92PQO5?PW~#0M^3_8<{<^>}!3f~Cs=P83)dql$y<7mNV6mW9EEJwW&~DP4WS z+hhPkJr8_N*y~*@ihN!AXUi}pU}#vEy{g>C-3)ThA@K~%W+G~g;z2BYP79LP*Hh1= zV|ce4n~9s@Q7+-%$?I_a#8G~rr2N9C@o!t5S(^1ayFq35X|Ya8Fi~slqNH9qMWmk& zPKAI<$RTc2cYDS0EWt! zOgWyFvR@G*UR2%5DhFzv8(aQjqIVWlwIC*7HK=;ICF#-VV<|g{C?tU}umptW(CGTT zzO;C!RyhJ@a7&k?pL-4Va~j!Y*MA~^Z(Zog zqP1mG%|qN!^BR4k!e13uV#^9hu{S)&rMbCt9GG!12v8&qYIG-BKJ625++55g1yHzW zsn)h?0_}QG!NmPIAm3?1+d&q%1=^pJKx|GiAN`QeHz8mHCK4h?t#%wg6AB=L0)S0T z3-T4zUG*Je_;HfCX_i(%VMk{srI`A1>l|K36b=`ifVj-n6v$x|(4i#S%Ls87%V(j)%>?S^s+iS{QabS3E9HkKmpwCx~GHa>I;(-S+TZ$SQwv5{L zurX||FbGP4J|<@^>$uz2(Z}WSQ~{98H4e{2kOd8OeSGzc8C+*DLS6ELKyhF?{{Ste z3B2s}3Z52EDIz(0eV*K#*X~cR&PhU@+|a$i)6Kcj!vPiJ5J(Cp;>+D4?-ivJy|*AOVi1x>1xUtXGc85x5AHXqvsevYkq77a(2Ue7 zWwx#^Xg9u<=M7Jug_HntxnicHy+@~NL^Ul2X(%pE`mn7np&ok1mIshYuq1Y1-8yeW5GG>2X%wPG=|QXRbbsb5 z*F8x}l%?8$2O+urC~EH!5jjSiJGP7g@`P7yp?Mmt#z(M5eQmvbaNGn zC60AzIPo+s0Qhd#nL`03GAir!Eplmb*QdIQL&(J0)Ws#kfv}fc1#V#*p432?ad4b1m4@yeqEo>}?7M8M|UIn@nDYDu_}7N7dr%2zKig3dIAw9Q@qsbmu2-Rf#|W^#1Cf<66tY}wTA z#UM}(5Aq$&DHMvDDghv-_AVHZ)u^Yk3_?~S`B$yC-j^d!ZwEQL)|i9{NEA|)aPp`( z^IdI<>$rN|9ug2B5u*qmajNZ*YH@n?=_iVd2DyGoevBjMEnKo?Cf~fwjb_Vlo2R z?^-#S=3o>;Nnovgxg(a5SvL`tlqPso3q3qQ`U3W;+A5|`c1cmp1sTScwXV+0cZL-` zzz4|a@1+kdD}CcaZc5-BJGTK4NN{)AW)ZQ&w&ma;1A%tRE)HZf*k%ZvtYXP7w_r#j zp~bmt?(mVs6cL%~^*Y_De?P#AS+hzGQd}q+r@L!UKjt~aW$^3G-HWjtxscR{XuO_b z;~+o*T8hTUf5lL+0tf(!1W1B{CvLkCjcTRwI+szcfhS78sBuDCqgb0Sh=51@j^d1V z(DLNw!$`&a^o1oL=5{vU@BD37(>SCIsvx~-)0qu^e2rflt>M^+=DOlZLScpu$omPS z_PI|G-EV|lXoI8>9zCYFvbdl_jKGy$%{jT#>lQLNxd0WYW(I-o-kmn1o%zyn0kaZG zvS?bYY6tgiz}B(P(Tq?uxN40@UVV3@ zOGY_FgPpg`rwz{5uHrJf<8{u`P`i}c$dGaf8IqcPWvc+T!Oe4j#E^jKd6J4LAbilb{`6`ma85 zn3piCD>z6j??$6)&E%4v`$!DeCmWNVL*GTB$+Dat5c|lA9%7jtr?bfvh-cf70 zCT?sDLFh?_2TIXOP*TGN1UWjN&nLHdwUodVlhVSzo&3(RRfP#>Hx@e+xYPnY)-19T z0<$p;?W0%H?fphZ+iq+mPH~|fJiel|x0jW2i;c+;Q6!Py17dMCK2peP3NyIS6SYmX z?H4$8DvNFEe!4%i6asQ&B`Q$`I_g^bGkKHFCZmhtlP@SxOOZ#QezhL$81XGY5lC>2$ zB}Luob!Z>@g6cy?AYV^L1Rqcb_!HO*h?6U)Q7F>8Tw z1-vbNwT@q|$-PsNA&e(v=YJ{{T_VK?np^ z#s2^_*m_3awQZgtK`{WQAYgdhf*I+i4bymM{$BBw}a!spAj;sWcn)@+X9)S2-)M@g zQVX#RSk#KJww%q{=J8R9o&ln~ta;t3U3PlJ06CSWHM&kz0#~Ve^`h&%Ac9T@iEbo; z?sd_JR!hXFe%gnr6&+aXUE&(?1QI~FF2wV#e1@NDIoP>^lF8RlHn`~iZBY^b09`SN zRX6LYH5Go15yiY)b++>J0%qXB$c~I1qu!9>o52TR;sNB3gHI-E+HNHwBxY&`4@>_5 ze(M$g0H`Fep{RWtw&%?M01;g`5ENXfx3BSQ4z`9&)F3``YjBT6%muJ<2k>6}e+fo2z_Yg=~e zC}cQpxfU(3YMqTM=pG%Mxo&cnYLZ%v91ZuT zouS!pjWhdjZQPOo6Qa+qv|nh8feHx;oineJABy?mN$>|QT)A>KI~Fz@Fo<*15Rj0d zPx}*Z=evt<5|ua=sV_r9b@TH6=@s~sm1K(82k!?Lg1|%7Yl?kGEf)`7#$aSt{FCgaJJAKlKMhYakBTQ^A-qFi6v&josYUZ@`kf3 z{i+Mz=8e4vXlY?ZWlB;10P)j(J?RS0N{feUJM4Q=u5Q$5qj0niTUEdY<&Z!cFEQy_ zaP9rhVZ%JDo0{%dq@s7m?sg@_r9dQt%xhY)r9gJJ-nEMvC4-8R0N6g7dHrGpkmL*I zCieTEPv*@iVgOL^Bt?N4s=}lO$vrh%ayrUr#27q-H@=I|FMt7VAoSjiLc= z!)X`XNH^eST6O|wp0CQD?>D{+yiK&w@C@Co+^(CwQi|x`hONK3rNa7Yl$mPHq z=W?p}c5|*na0b>`GXaA#HA$T`s=4{442HC$YE5lWTfaD=Qe8#K1zq`vFf|Mt5^ukilwsi9iU<^#V$Dot^>>wvtI8 zK>z`h*n6*7bCQ{9EaaB0gE*kqzLA~cD+)=>NES$?oQ__7OEHZGDZ&Z=0H~>QO>9L5 ztr;#MI3%$y?!w%IQ`GX>vMw`r%fbUmCVKSqtuuAk-mN465r&3g3{PjhXR$L*WeQQi z4?+mkjlI?0o^;I10mysq*Xj1#l-xqk%r8sQwk{vd&tcXo=FABNZC37ibR4_DE&)DQ za6pj*1s(Nx3Dl^{JivpK3Pw}vU_3=JFl8#K2?O^y3{9vt>RWq7La_!~kNXl!8`ERc zYU#8)jKvivC{Ro7TVA$e_djT=NegmsQs(`ydOs~K5IH%?C@xYtQ1M1fLN@4yF>UPH zX-E)sKA6CyE#`OLSs4VBOb{N+ zS<|gd7={LoYF6*w)N2!He+xVbjz|QP`-lTd-OGD&@j*8kEh+HUwiZ2Da<%-TEUZp- zJFBbiXe-QY=JnR_7ywEj5(M&$GtjBmXuElj?b{;W8z~e?0EFicJ!`FCmXegHDI{eN zP#(T_wZ4(3!s4==svsZ=j%9!%wRi0tpM=g@<{%ZRGSbgdGZOU8vx@c5#>4*rXNO4$ zma=-C1QQM%2bkWtmUEZ`m>Wf<;P_;XbDcG=&%!vu zhbQwM!n34W1ph{^h)vn}7}6q^1xbT`DXF%kQ%5fws$mVAPwQtJ4oWt?C7*v$!1(IBbVYnc1d!hX8ucUJiv0Jp(+QE%t)vgS<8M0 zA$HopBHs>404Y0;qP7^0A(#;EHwt4@VrgpgV_hPKemDY7a0Z}~?W>p6H656Sdqq*3 zI$}qPrORIA3iais;=d4ypv(lF3B3>AhJm>kizk#07zo^LH(Uqt5aUtYjiQULvGW1p zK$#gNEM`hC(9Ky)$L4Yt3Uoamqu7t&JXg%(L{nE`&F@h5ch>I|>zt&Fq}bRU4F+r1 zT6KskoMoKE_(gZCfy=Gy^*?u>+pcB|paHtn04PY_q!D$((tKIJL=P>{ao1o|tJQHg zQ9{WBFbO&pSCdrptV@%QQdGc~A>U3_tvxzCWM)rtk`+smMZUEJH*YB^#xVpb=v_gG z0<`7*w(wcRv|4$IWDZsg;70jNv>jxB^_z{vo?s9oNcuS#g0`*Pjv}n8bu$3L=;5E8 zUs}6FrST%UUCZ}%u3-frw3~5lxl`wJ?PM|Y3f!ofn63!_~PEethDFC^tZI1r{ zhI%{-&>;fJJrW^;zy?%lr8{rs7jqy5#2GmV?-Gu&x?@JXYUl|juIA(dd2}xQZ4uXw zTcu$@AQBC0b{Bir{F$C8CSw(l5U&xSB+!Rq`sy?zv51PqH;GCoC?%6neyl?i&C7^v zn{VP08wiP(A!0{v!MYDG65Fo?+)pl`5o!e^lvmv-+TpRl0OYAoYj&|4{dA=sC(FgC zEh^2GDgOXscXk23)FekeMm?6Fmb!RDC|t334o#>!H6q00)(8bNH01`QMXDq#7C=t*m@fsi@N;IaxKAHka z7Ply6TtP$xsacp+$kdyPa;s==V=FHnW+5P{hz#duzV{EaolGeckQSmAPG{6z?MCxG z+R&{$GI)TG+dMhPF}MXJh;YBEIj!d++sJ^yxEn!3omz7(9SMD}CQWdnOOj|gXhk3E zUnqvDl_9|?0gZ1|+{ZYkaoc86wgRhSeq{vPk~`*JTJ+hYd6(^Ae&-Vr~akcK)jo@iW!) z0;n_q9;2I`_WD#x;sCu;9M-mBO&oRK&LpaOSCoKMTlX*^tDP>!p2RDO<{JxR1xI#|F#iDTLz714Zg2gT zyhaNN%oL!&I8BeApGSv&XUk%e7(Kc4ZF}qtSBk<#yw?CO43zLeDE|O+Di)UV+saV5 zlE+qA8AveYz*PFyR02q1?9BdTztFks9;Hc01h!#HT%8AIt!~;yZ2VXXe9Wf=4cKq# zN^KA(<4N$js}KuMk&rDlBCx%U5VyS-A2~d(8hn|PPADlO#6`u!9W;Nn?+mVb zR63gNJiZ6(7%Gq2JBH zEdT;8NCcht^zx5q%g73uosMQ|Ti5vNt+v~MxDOK+l4mRaqDehxsH6&lPg_$dKm-DC zFoe0gm^nhY;x&*OB#yDt97R}s?+^h@s=1*%Yp+jB2-8+*Q&U=#mhM|%eztvK zw1qZzBQV%F``Fr=X?2->O&y-kdS9uuNF2)JabSVUna~N4;WH1?lz;*x01{&=NdEw{ z3-3|XN|MEpT$ge{tJr>N${;9|m1ZGTxFOnr*UpFO6XweS1l^v(tVX@=*SuD-%*FMq zFb|;`{bKlb!A*h~AxjcejSp~ED!K0;w`dlTl4qLRLCFZB1WSqu4qW(JgdMkSi#f0Y zkjmDSyC3zfFR3=YJpAEgfRmWGaK`S$2BWn;y7_bXK?q})ONKPP(v$9RLM<99QlJraZR~KV*7>(PC$lw5GGSqM({XB>uwF( z&1rx@NT|UI5LF#&2vALHVk^?mU$tT6&LM(|nu3mcl5{q%y2MkMD&&T68QHa~*O+dV zg{9cNixH_E&0xEjkZrW43IM@&f-p>-OnTKD`MHqr+(p2V;c&q$7%T%i1a+_r8_z>4?01Q1m;gv2+JW~R`_rcJt=A4f z1O~{#2?9*|kSQxoz?d9{(Pl%?vSb-Y?~7S01e663ZY~EQr=#lPB@E3_3c(c{5n;^s zJ(xveCe$f_AZThUN?YheO-%OyH;C$a@)o~4KzMfBVYo;n5#ko2Ku6;Spjmy^G5`bq zv;0XLf7@@0+Yd1Q)Pe_Jr%H8;d^(94Nd$jq({DJT!jM5&Qb7Ws>Kjh`-Nadm$xc!z zLDJfeTH24c@sZ*Z2(rpiU^B`>0EL6}V^|YfnG+O%mrx>?IzHNqiuG$omk%~y z%S6Y0NPFpD%NkrqJ(WF5O;j?1;1f{Ze%;yP(pEgAB`Gc$h3GByfE4Ig?e_OR z^^6F{la-E9W_$Ddo3lBst#Ejhon3(-lWYCDyTN_j*K?`mAvPz|Xxg;4(0NUeZ3vQt z1&*gJzPUBBn>8y)OW#NGZFy<7kx7k0WSsfWI*LBb-TbQ%m5f`uRKyKb3-WJ$;+<<`7k5t}VUOPZ{u z!k)sqe}1t`jN(OWDN(p29SwDNuD0h<75I!+T)+YiK@EDb)br`1Rx`NVWWokUByJd* z-TwfQ-W}XBZ9J@UkO}S_{{U0;tgScP>>xWzLs1?^ed_jXc96>8C9s3bC^# zg$E_93zq5B-Hr62jOfM90*a_0F}+B8>B^ki7Q9$eNBy-I2hII@MDRF-*>^LzS#klH z+3n@`tWOH?FFZSipayL?<%bU-{v%uIc;J^St!yg5+_2_!i4w8MTAeDp(!!+H_ophx zVB!+VFO=MZAL!+;v_6@k12Sq_!_|my<{({X664`m5F{8PM^8CZrgjh{5*W}!2x>58 zuRK*&nmKs zJ2Q^nytUpAV|C`iYP4Gy9a7gg*AP+7YjD2s2{!?1AOn=TVmd*sFyaR_CK|Qhv+uVq zQ1RjmKnF1D4LjbRag6;$!c+oL+^|9Azi*6Q>?zn-W8N@6? z>4BP8T#dH!k}e>e0t7}pp--FHOUBHY%6G3vBcqCIShtZl%?@rDg5LMrc*4uXlvY`A zM&gF8y|4Vm)&q$xD$C&{?@H}sdUpo9^m70Wz@Qg|VDUacxvo{a57e7q~VU>Ju9n+#0lNX06=pRCL(&H_KMnmtf?a^lyqV5kQ8HM zczRwSDYH2?cRzhTwyk3+BNBuW<9gH+KstB3>&h+U<0TV9k-HjlpsvT5vD-c=;R67I zFfMulgmS#`Qc4)KId;2*t&Z=eyFO~U@2CR&`Fqv(Xs(@zB#?h=GttPdob>dH+1S=Y z0tx0TZgnpFo0L}^W%HhZeH@$nG0DN=hHSdSyG7u6`<}gG<6*e-T5h=@b}*LRq59RD z@hQzkmJSGZ=qOF8Q=~$lh)T->O$(Q$H16KK;fzODzp z{dI_ViH;f1ZP@$zXksEtz$GP^9eHiruF;{q5cvU0KzlEyh8IbEFn?@-EeA-IrrFYB zIuSiskoir)U}|r^yY_3tQ*jIfcNPuXQ)|@Lu?aI+l_{LQgx~qUBMmKOO4qG{`dn#W ztS$}W@?(^u^e!X4edc|hg6kQ;(i0h3li&^Z17)t!iYZg@s!C z`D@#(PaqbHtpJ;VZINsY$?fM^7H$I4Y#F%P8<7v{H3(G4UQoq|VScBhxYh)c2yo`7 zrz$^V%Xm@}QUX;{Mc&QGbR3@1GEAVS${daQR>R#jgn76?3v$KR0e}e*ee~Gj)4h^P zBNo~&Bci!?p5uCq5t!y@NH4yJXQk+C-Xtbqpv!FqUs{XS_jZNkPY(_W5xRM~SB8M34T zLFP}saUN{kt02%9Iv-kJ_=TkkR#$YT-N0w4v1xH5cx~G><08`f0f}#%|_ zA&1LRXCz&j!(Yz*Yota9XCcT8dN|w8yF$3!EafSH=lNZP^;_$`J6*2Jd^WI6&QTx$ ziI_N8jHL2FE6R|>A0&p;olSd1z8**glmUBIl_Of7{Nl3=l&wi8F|Y2c8-gqE(l6v; z)j~~N5COCM=HlWYi>~5W?hINkFi$B6Deb;g2TtNIf{b#bgblJ;^iBI!go!FxA)3_D zg{$@=91@JRC=?PN=70~sD?X7s4hm36ZwhL3C8*oBy&GurBBmrC_9nETyLSQq0I^+c zCgM*Jp=n~_l3_}WYIEdki^6Y18wG%vM*!~#F%l`X#L(TCMM#pVMHF&PZ%w(1xT6zBxiIc>hi6mUO1R&0YrSh33yU{CYi(&0C5a++ z?VXKuSRKR*h~yqSP0TWo3S(Wvnrjjk4qx@DCYEAbbE8?W6tff^wp9t&Z#cS}nMf^A zU(gQSPTp}>GEidodQzg4Cz#XufD#G3lKdv%TTuPC%o<>4RI&^Lq8Vh*p0!VlQi@47 zV$>%w72Ml>;}yh6%vNp-j*j-{eZ#j+rZ|KOR)o^P2dyj*AZxv&2gC}Bi8e2LjT-vj zR<_W&h1|y6AXYh&T}k;hG5~XIl5zovSw4Fb_s>sWWvNOeP>p*30AE_gE-6$|e+{VY zThQ&O1Y1~_jh+*mF|ADvTEdN`0oaQO&towmNC`u`m`aiy*oUnRU+t}7`4W_(Ljdkg_Z88ao>X`|K&yxH0hA%52j&clq0ey#OQzsU zLrzo>ICC9pY^lOf06D9YKo9`{{S^)nu?MD z4p=*o<@Gfmn4cj8B!T<2CgHVuyBe_GD)5KK4p4Ws-umBLdWg|UAd0h)&t`g1a}8~} z!zY^8X&l#bm7-uG40Ycrg6lzOAQ?K5s7U?CL4#IUNvlF~q|qRFst&JPxjj3ui_9KG z%ykmv8oi0B8ujfIQV_(YBBJL_OKfgA(l5Av8e--pN(U%&hViX(z zq0Fb6S3vNhP$$@tD;`@jTC60-ORF$IBQH8VwY%R}c)yX1Ku%}S6p;6*r32~rjJaBp zP>h#k(9!=*B7kEBDF-s~0pAAxJQ9#7%Y3MBP%%ow~qTyK> z0v*GRFMUDQFED>G3rb02K;g$wU#L67H-Y~E*Ubjtu1#DKQIJNjJ7%B&>_plwVHGzK zZ~p+rENhP4K^#mkB*Arl;BK0IzP;LE$0}r`lBXcu^r#fBkLYS65iV#-0*a`RQ+kul zv=#msLZ)#9r396i0)T5)BgoSHq1%0=04jxVER$yETDPb6V)>aoL16+9F(|Nu191b}X05dNxP%Z87Y7302t3CFqF~Fdo)%~! z1#}6aTh+HG@6(h?#!Qr{WQE*T&Mw3qoU=a78F^U1nMPZRfW`fL(cFGvQ*mf1DGNFV z8h_c(Iv+T@`9-&JWRS-xBqo#dFcHXT)m}#^SVdYS4RW>&a_bRQxS7o{Xi3ZosW;U@ zt7r2TirJH&!J9LZL3S7DY0}*1#*H4Bn!}hI0Y=ktD9Ie4S`RSHqZtDZqzRNE-*UvWJJ!SR*gzISStR9A zV8FF6$T6wZUqWIcCK93)G8b!5_F>!ecim+nC^l6bP`j6VhSztsST0fvR@@jeSA+n_ z4G$E+-NjhDn%-i`7_`N~AcsOr$qS-#B}`G6K_sD=DUQL1E$hEnoF=a*R(hzEkjM6t z105?~^k;}N780T;Nq6eTfrk2*(d!6Q@RG_b3Zgj#Zc0wq`ht! zbf?kcNyG$800Eg|rRoct8#`2eAh=$5mf8vAHkWdc0T72!&$m};U;Sj=a4O~;m?RJV zx;%xETDeof4pcw|ox>V68=l;Q7;%*!GZ`U{{XO%{{VSSYxAd9&!TlxB3;uOqjP-Q5RPGpyEe#ySZ z7Y_97xSmsBBH?o|MnEv$q{#KMA1kzyKZ*crY?ShX^$M?XSl1xfk=%Op??PD8v-Q&k zWUPgM@_Opm<@DaMS2Gk{oT!A>x(y!3`O+(nEkvo#T(6b20>ZBRp7(pcireks-OOz^ zk#J!R7=lXtf~kSxyn;an=o4BOfhcOHmi~*D~wDXvyf(wvC`uFAh>g?`%HPx%_ z_j^BGVkuffAu0isJV)kbBGONa;UmI<9ukuyVeT`iVM{0=5t^=VZLB%> zh%?Al5D2YB96sEqK5s3fqrCi?b^GFpgpKnu3)=A)-Be4w`LiRN&KnE)=YFHB@pvzMCSrp(r1>k?BmWn!9LXs>f#B9e=ZdQ!f%~H;HW3Bz!tAC_OOyWZl=SQcb+xfh0YP#iU7TQK_ zwP=VqU>p!2)SwaNhXfFLtt3L|PMaRJrjv^wG?bPXH*Ygu{!d7SD%DI0dmG+rnL*wY^VD?F?RD5P(3qAPuC?gdGvyI@VkZt+m`hxLjBW z5;T?dIEvWe{AI}$0DumK&3V3u?Ms;sfC^VbaK@a+pVqHf!OP+*Dj8K{qxicL)_PL< zX`{koK5kV4XddKl-8n_@xlN#4LC8YaF{Ban#)7MZ#=32~*(BNzNcCGFs`yS=TL&Xc zGk+G>lbbPfVOB!N>+hUcl~T*G2)+@~u7Y)|$bh^yWz@k*PNl?s*=e|M`F=LOdB zEGz& z?$!Ksy=g~Q+-xGtczoQ%k<_5cJCMdbt3GacCzjwRD&Po%pKmrMoiiMO?A@Q3FQc*a zhtr741Cq=wN7~)=)*!A_$}A+B_HXLE!M!0PF$G46vu(`l=f6mNJB7CuXyzmxVg_{c z9^{&!B@03&1Q=*ei&d0YLskpK=S!q90)ti^EIqZ|gNimKh|;6i@-GlnvRtIN(Y2@M z8B&yL9+$0qj@r`oinw!^0NB`^boULA{E)N6Y=I$cyJ@eyRkXZQ0^}(3*pDz@OWx3= z;vFOexa{@k=6#5#luMIWW;J@7zcHtHmW5>m7AA}ijazHl(IbX0znFr#TLA{fLem>( zdd}prQceIg+%4i9tK`hSH=FbykO(>b1sDQ?x>!(szIjQE(2=XZy5jFnHOL!_|NlaolqE zM~z1i+s$p3kW?%&0$05LF5B+9&@LA8>c?V7pJ6f5uhlg{oxv9mS8Cm<`H0KMVr8fl ztbjHoyXkin>-2;#6p5rM$TV?Aw>uxjE@7n!Yjz>`_uiCq8Ch-IPYv$UfhTwNpG@mm zTrOl;Xdn;(8UT*?1K4(~0n}z*bwy;{PaBZ zi0YgjM{`mv8)JX9`iSCSQvh9@0>pJ5UVPyb6keVY*7O(UTEZ4tZN~5}Hd+RuxWG@S z6BX1gR~yWr)I!i5@b?0rQqh&o*nzEmu(-E4VNL-c{^sf&9o#!G+mtf7sSE%#+O7*! zdUCIt(V2Cq8yf6KU3o_K-EiUaj|e3zf_T6ZN2VP`jPVWRFmY&U!~=m01~v3adkc+C zK7ziD1F0amt#%Z)wti3oNj7dr-`Tmxip;X=pcVrDU*9d_EVjTokA~yxDl#nsAa|nc ztt5Cwt1ePQRQ1vZ6?!Nv0l6Xm{{WA>q$%hDCZ|F7^^ZW$l?k78zwNAGFKbDE9T0kG`r5@DxQ?xfJDMDJL+nsi| zN>l;n@EMc=11r_}KQ{BPq-1aB&oc0#9wQKN@i^|CGB}qD2?FA$1oPdFV69I@`ovGESL9(DQuxha)t*=_0BDWJo1h8{^QkNC8 zbgWpapq$q?8n@ePRv^qsQnQyV!o1qx*KSQ2oA`1S$Cv;Ml)&aH1mpXlS#^a1O`_lY zlt3^UfR=pSMoJuIxD4XN*GO)9K`BT%XgLl*j@9)$N>b#agykjnsSo(kyv#ye$w^X* zlnRKpt!96tSkjOKb+(&rAY+>8=F?DRNRGW)42!K8AV3B3=vmjYnoPnGM5vI}JGQs_ zx#gw^FBGE^>4cYK+gh381okJ7$i6~lYmWA~XQMabfcQC-dz%9PkZc}LH zAi^4Dp0nuf1Q0E^lt4EZ%rFR?b?P%Tmr*Q3n!Ek~0EX)9{;4HSmtX*WEB$?0qrw~# zl1=jyPTekBYv?1#AkkE065OjD@%v%o36AG%u%?RD8V2} z2W$W##RVh)E?s~e_2emC1Xp54T*T1VTQY`mf(OOclFwW6@VBeNs*%@VM`j0!mDx9&?T&fv398-X|KI* zV+F-l;N|9e-JeF%_32Z0j>dvZ3KL$J-^)kd(U!%nQ%Tm1$We>mP0o$VGYgbkXjc%+ z4&oYu5y{akDwB1@Xiy+>gBTBFPo^bSKNzy5D6Y4l)`yc-?`n#epqi>FIZZ2}(e1eA zG_|8+h{7ZH9cUlEfy1!3dr(oFC@NcrbubUv`%#B0QKK>)sNHZUbCMC9AVKN$s5aa` zY>r`bNiaY~To%4wc&dCXrOa6HmQge!t-FV3rnl0euH|9SSCJr+z)%7QE@j(C@`+en zGEjeQXwRV!QKMXTqs5$w2}<1{1OEVKwO);_FIz+&XyzpbNk&rd5kKv9aP07lhKvz{ zSzAEQsnRNfeg#QF!m4yH+NFn(JeWla@Jb3Mq!VB)Ip_xWXy}tLf@o1tb_aKf-i6-p52p*3g@Go3Y&(mw zzVzk`h>;@$Ibq`ymWKOKS+rnzV@7rvEo`@__zX0~tc3@t8ui-aefvhc4~1G(odEza zZN`+hCS%p2y9^U4Jk4o(X-`8I67fb^CG?^H0IjW~4?1fa*hrFq`WThIs}qM=T_7SH zHdkcXEohNTYPp^z;pGLWB#@HSu8ajcbtW^2#T6CR$Z{!H(S;2*)3}Cl{7PiRfb(h9LDSi;4n5c&@vDB8kb!|(vc7I&98hVPr5B~t->@WBAXw+fmJhI`4 z0)g#f_PYvEtF&o$ZiKK*G(#pMl?h~Rtx3AzcwkAm4r|CxJ4u~f4AromDq36+te`Ur zY{cvMpw=CgiSZ_2Bg6^HC~c)_dg^tGv=Ce$2qL4KkOiq{KS+45DvnSHNwYDfPc8nX zqDZ%tgbl5ef(S$%23hI3mzZQ)lNWNLMBND6wvfLyXuMkLjLdFo)U}!-Sw52tstrAf?DoIl~vsTsXro(GSo&qhrlm*g!Y@(l*^Amn?KJ9<_b?)dZZSCcyUCQK;Una^b}=D+^$+3u;eYw6Ai}M5(q|EFboR zK&RVHIUaC){NyBzsio-D1@!9w0LXw?K)8X-4Z!6INE37szR#s1Ma1x~02@FfLWl$- zfd}cWXr*IPpqWc9!iKtfIo17R!!ZjgpeYANaKsbPbM%TND5MpD%xJ~vO`L8Wx|6I) zmxwORJXIu%ZWx_Toh!P({=D~cm(6jtn{GOY#0@o$@o?s}TY3Om*mKI7kNawT^qYms z3Qx=ndU!yk3sheA>UR+X=B)})1myscaO^4tHXG{-6OFhAt)_=dLs{7*0at3#-rzstwP>4B zi(6_?7XUz5cpi^Bt6AY2dAvmsZBjxY0WZvq&IMT-E@)|{ zoz+=s{{ZU*JBNbc^Lq|NXxxx@H8E3w1thQm!)|%7I`;ZUT+#>+O4OQITz5XiLR`W_ zl5AWXyI+xaH?ipv6r~mlQAjLHxN4t5FMhBEd9mDV2GE7U5I{dxNz|aTR)3Eme9!^M zDBA5&OdhjVClHhWDvB0uxvdzW6hcF?U5R}vKyVY&O#pbQS#r#BwFm@V zhTm&I3Wti?e+9H_=r`6Gw2LwY!82{iq8tpo^pr5)4#Q$3S_mXE9oG|RwC@f(3X(cj&CgQv#0|AKx%4@3+%3IxA`PTk2IH$a0q<5*F)m3jki9k{+>cRn2somw zpcY_i`U_f=-0Qt!sZ-raNN`JlEH`_;ohiI2OKQ6sP;1_f`j_jpQRTYgIc&GV;jn@M z5Lm$xqF&~cCx~u0a@rt*=fh~_9d#$}>cLaomv9tEr6?NP`w01^`QC!W?Lmq;xOhjHZ`yr2Scdqy>f1pY|W z4-f!&ZM1@bcQ6c++V3Js6HXNsQNhc9Z|FJGZvxen2Ppv14yOMA!*zrcKr;BXtpav& zO1GzI_rz2ZknM8+0DDk2@WZmpZT>(9kUWmrJ$jfm9N+s#iZ01w)|RYl`fE!oasr)= z$mBKtqEZ=2Aq4nqZ?@czoIxm1DNz*60=r$e5o;+mLnI^`X64ShIK6qmyf&MO1P9B^ zKafHB?)vnp01`_L0Va7+CzTxSjOge9kiZaK!E4h`x8kuXUPnoP5C9Ub!}GPM{{VP+ z%V2?0ZLn}DQ=xw2)sL36s-pM)2K>h^(nZ(s?7ZCq?orCYxfQNa0YGikxQn5qZz<(P zWa1XO>jQ;=>da;S7 zR7P?gn46j&P51P)Gc*ui0f_Mc zNOD<&f!X!Fc?h&fQc#mdzVsIrd-k@jVGdhPLAK$X$`C<1^mWb+#x5YjB;*0gkb>nv z$Ga0Hf!S7Gl(XfR3PjAxe;t zng${0YUQi1E1J{Ii>+(1PO{(+^-iBM+~q51Y8ILK`qXoil&gFDn%5k zjfR!KyG4OQW*~|XIua;q$7Zi+WfF)6jaMY~>Gd9lvn3>xLMSw`>C0#h{KVP^Ex-Uf zg(GpM>a6n;4fhUWO2#^b5ypI~0(U}klFChJX_OKM`spMgUC_5Sx$&WvJ z)*{hupP)2 z34moeR0TXwUYBnup-y3HxPP~y_R%&($%qyKja*g6o7RV3@WK|{87gf6S{cAV>^lA{ z6CC#2VY*D~Xe&ezg7K%GiwT`dVnd`+m^g0Rbrg*z7Zoy5OSakyR1tdaOZ96;E?zM~ zPLzgbHP?~c8@Z(gs~0jcMM(s?G-o#>ooYI7O`(CwaX_HrTxc`(>k}@}tsKLVCD8R_ zsQXsc7}fy01v4@9)DB--K|2+hET(c8TU#5G)IRT6&ZibrE}#|;7}PgUuht>2h$!4R z3_+`c^>N$C`Nj9$b;uGe!Ym81-5f#gDFGk2Z@SybU@{&uA|XT0)onRwVrgeBy>z%E z)`P8b)P^Kjf?J>4L+zrvZau=XohzwsRRyc2#v^{EOGqY!h5%|GPI{{U!0Qc75d7uCnyeGPVr1NOy z;Sg4-9D6#j4bIhdrqHdpTqg!b{@T@4$pWfLrkV|Xd2Gg}?0mH(4PDFk)A-gegp{!j zceS3BAb`hX=gvIbF#rp_Ua#0zoof(olo__;(TVS-nslXaf%vW@LGDP%`1Y!lB}pW= z?k7t>CmU+e=t-iQq&EACbEj`un2AXQ6W`nYKZtweR-PbjajoA_KK6V z@y_cEv#4jFZmjRFmY}Rw$YRT8V(q^}x3-HUCdJ0I^S{<3_XW3HL=sZdOoK1zsU39E0 zcuqwN?aq}njen80>x_^Kw4~O3BvyPotp?j}vOxY%BrdX0!dr>1P??HR1P23h{rhYq z(y&cP+sgFQ@1!!8mVh%0P&TjiVQ3hxwII;+J5)COwP?s+e-7XZpQGQ&Tn11l2vKgy-8}CERRuZ+5 zP#c(_8aDPD{o=wrKux0SNsC4XGotyh8{9u`(m0nkj3Pu0r#p=|uL=+d+zR?XXT1kE zyeTPBCCF_(wcGoE2dEFsR^0hKDK5o`3?D}=_V-sXuj1Qx5ZDKX&?JutfdFKjhZu8F zZx-u~qRR!gtdHd*T|4F|`9%&zUciUxMyo#hLXheTDs3s<^Z*Oja}PVFrl8UP0H^i) z0)((3HVp25zWQw$-DSZ$ygC2_4rKMpC)%{Ths-=+ooxc-As5{J>%__-$PKaSOHf+c zdc>4UWP-2WY$(n?^m~Tc=?)=i03>KCdTY(k){x?qNN`754t*c5Jz%o$6uX28Fj|q@ z>sSx~MU(=z(+s9}DEwkjnPpDm&s~N4hpSUt=^|cKq-IqEk}3V^y{!x;XsUA_eeY-f zEejx#O>9Uv_x(b-pDH8fGO4SOkR;ds6PtS5^sK<+U1%hN0ZP#3AjBqV@|IX)3J+EDr&`?+J&vF)wFFQopThbk}3~Y z8|&#%b%$-1qkn`l1G~g~hEN-K?_C@#PbmcWfOis6S1o6HdS)$ZT9map{{T@!%>Mv= zOTMs5n7N)M5Zh`^g?o$rq9#(dB_V}(Ji1@5(K3<%I=Evy zOa@GUnTv-dz#_=zH^1T|O$n8gqNJf=n>JP*iP#7Jp=rc`)~2M=t|-<7?-i?@O2I4= zl6HEBB>Dr(b6A6j#)K(@0Cm(eYu1|@-qDrBjvzq-NB|a^oudYH&{fz-x0}Q#mg02~ zxpm#0-dn8%%z9Cn6%ELJ3%FqQHQ%Ps$8kb78h+f zJZJGZvcTx%X#B6!>AX=8K_H7rU>(RL7?&NFYJB$G7xLFq*&D{)CB)AImuY-jp#FbJE7Gw?@~O-kU^OvvQ7Y zO{h(7Yt}1q3o2$UL72X;-hlrAQ5^R3f{_6d2CNv4h{kl`#Nm+FQ^d;-+Xl+xsLibz~hJK_Ot4UU3$tBLWpy%k~)!Rw< zbr}iB31eeQxi@m=$3i^fZ{k~d<^#QOS_sxn;L1bg49wxF>$ju5VG=lUli|u-nou<;K9?!esgBov7A-0k-`Js=Dq2&1{FeR=_{d0E~)P6VU^QtK6Cps>-4jTx8| z8hJPce$s~khwR*qLxX)AXqa$eB!Z9_Yf`FfPwlQCAIK6!$Qp)*Fj!E3HMc4N<)@+3 zr%d3Xio>c&O$Y$$7!P;VqPBVYWLBZhqTr9dm#1xJI!Q=VP?B2QwI=@nXBCXDDpRQG zVofSM&sP3OyJZXpN#0RKbQ6QuQJv)kHp`zelIfJrBChYHY2Eb&_2~;Zf^(8BRMheh zW-U`==TQuRmk&*WH!nilux%U6xh*9Cr9fK0LF!zF4`B5Va%&nONP=y`5V7@^=Up9O z_f8sp2ftljYuCNId6scey)jiz#b!c!P zft1|cx%=r#>l=e4^WF*jl7#&Wo?C+?l4@*XPEF;5L7CM49>utHTNS8g!l5_>htDAy;o_vtHF0@)z zz$S`1z&ecf?MDn)Z3Bn_nMrarLuo z+txG5ngdh}+SUB%<6d>FSj(Ojl{6cj_UWw|xx+uo!D=>?!+?`vNFxkSlp$#4y4!hJ z9O^QyEsPZLF}`HZavqsWmvKV-R+crb+2J2KNuVTw(YJAW>@?ltWS^9o^Orfw{TEdU(hkb`W} zQ#=wJkOhl|F8hyG^o1u9qEteGAc0!-t8)ItS5D0+07X(N+O>)A*Gd?UiKLU3l%X~! z?#Gad2F_GK3g*a$R9Xg|@^MvlqV8fBFDSed{H+4vF`G-6iSJiQ#Ffkdk(4n4pq=f{ zaaQdT1kh$Xm1a#VX1M3q=+vx~l*}n4mq-*WDlRQ+iW|8)M8tTOl(P}8oAP^y?XZV& z4j8Z=Q(;pUN;&3Qh%RaswwtbCo0%9~z8D+1`$4M-bD1F^lI7G*SPs0y4H=##OIRl` zV){R$8l3|(+r46mN`MNjL8S+G1^HT{770y3EqiJYX6iXZw$ONXaLuHfjCg?}EhDUp zlFaKZS3o(*V&0)RI;3c4!O%0!B8#U>#cIJ_l%7cpK19vq#GoQ=~QWnMXsU(I3Gt#Ca$CpFxL=WOZ9K?TNf4Mkm`i}^yf&;bS)Hz+)#SJ&7Y@l(7? zMTkqMH9@No!QWxgqs;0IkXb}Ha##^t&=0+LhScRsR#F%c=BJQz-+Dp{TQalI0LHZ3 z3$d>^@{71T!310_BF8>A%YqRZ^dHAk3vTdo+({3dzySheZ_HC}G>UOcEJc&P%s>If1(Hh-JvY_`DuqNaAUldyjnW8JHty$15B+{ zh6bFj0UdSo@gjf<-n;5xd^@?3yZD(5$w5349XrR0);WWG)~0P@)dv7;)6SnN%Okff;v zk{F6g=U%E#*Ooz=xx$l7R%5EkvX>Y0t@+cesbk5|UCgg-~eJxI3`X zou8d|&QJ*?u?ic}Pp{#u!W~Tam;;gzE|hUfmOSbVU4h%;y5VRb@-b|Hz_AU^dg7S2 z!)OBHt{@gw&v-gSA2#dUN$@GgPzeq{+3X$c-1LYD1O^FnR(%{6tt!`g-L{Jf=@Sw{ zb2EZ=4Pe`zN1>}kY^X>o1QSIRn}bGgq5fh8)?95eMWvA2AcNr~w%9mmmsd8MOJ>r9 z+acSM17HD`*&9`Q#$u$4xOc7TLfpExMqa7J4*IV4|@ z=l#RE0w(Kiw5D|k2m=CRPSZ$TZIVsE{{Yp%mHnA0tnFupl9x-da5i`5^)Fqiv|I^U zrC5ggFwh=k)9YxsX$e+U0z!xsvs4Q+?Rs2BhFU<9XboFpNx8iMrlIRsq)nW{+eBUa zhFI(wI%7_ipBC#u7XvYaD>DmJ1nJtVB%lRWfP=l<4d{NX(JIa+i3A~7jus?F&I8tdB8#nR9R0~5A@RF*1sytNWs($?F+NtQ<-WY3Slls~%Lopg zQ%82Vq4qBU=LX|*2bwNOm<{d<40*W~e4vhdK^GLpnlZRyKEks`NeFhY`tN$XeOl29 zZWyTM1e_Z@=k`i)|#E?IBqZbDgOYg zXyg&o&nM1{c$S;(v2;S8{(G#70boI~&o72A+1;(W@FWcmm`(LkN^oeRRso>08__w}>qO z5`nhm1fh$!CjtH{8IlyrNby*MO~=z(zdasK7dSKpwS9StSGV&q7;us^C7!N5Ui1Jy z%+VrTgHiz%eW)+i+cnvkz%K{}UP3GaF&Z~JD(5^)hZf*aw3HU?M=RM+(=}E4aGE&Z z-M^CpWdwyVbJX^|zL9tOaHWH1VNh6&i`R1f1JFar!!p|_DJ7T>UgW>#3&nMQMBNHg8|(Pqt8nsFlqjG9V(jc}uQsK1c$iWV{-g~E1&6V4)z-!? zQG`c^fhDR1srEj^NjN!cV9rYeU7D?>Pcma09rloLUoFN6Fn}P$?~~EiJWG!-w;<_* z034p0cGk1%MAd|;6BM3KYkPyKYFNZ&B5rRItEW2H>0XvLjSTDx(zKKU5uqD66`&Nj z*1aHC4+=}vl3mT;pF8OqaKixc4ZPNBZju2Icfwnzny_rUh86xR2svZ_0OCO(3djRE zsU=zvK&?FP+UevWa-^shXGm&#xqE4Cb);w&g{T=@Kwn;b{{SWuFse+}DbO(j=Co=( z#_?QEExfAJX}JaMj{gAGaVGviEwqGgl9(ibN?6$K=QY19q@;l08qtQ|TDZ2cWrUZQ z)PCl_e|nCrB2mHsM}&g)OH#%CYfn95Osp{k5RgFSUZA}jm)-z>`qjo`49f_DKewLc z++W+gT0ppeD|txi3QO*@0aR(YB9aIcIt@4b5G`Bj41SeK4wBoAdl#toFBe}fVWS;^ zy?++k6lIn^5ts&X*VX?3n?&&}zUyrhb*n)zv#jaTtB5V}aShB|kZ6b+XZqeMqE;DM zUn825eeOp?%CP6i3l$b|VL)B=tK5GvZzL8_G!=ih-;_y{hDdU13mVzI^X_8!cG+dK zk|5kMjds}>-*tixmm*2l18n4IYc?=4*oG`l#8CeLRjdaBpc-2c!M*d=-&oNv3*vB) z6GGtX^>?dj`7rP4<)8)*{ToX&eWFhYT0yvTOdO3OHTDBItG9=3+)IfL&?6#GZTyLX zb{U`1sVr2Q+yi>Efc(3{RfkC+6fp;HF}BWhjbTCv2_n3Jp*xOL>)H~o9*{!F8Cv?) z`@Lgt+Xm7><-!YO!S(OySlw;b-Z_P&0|Z1wkOxvQPg={T4xn2r3wctzH+Y_mI{*|x z7a@<+m)5+Z+w?mDQsLZoeYp|#gb4}?E}AubcISu0ocoqywO%5kpR*zfltrAkczxio0{`yK?TSAFm`Hb&|0t+%tfG;wuC76kF8*&E?xj48#Ogo26ae+W!C=!$xA3NHz=(oas-v{DewN zIW7g=-qv>%wMpp3dyNG#7A-j(4XC9H(qU-M$ zi%C|W;@}NZtsees69_~BDG%+VN0BT><3laCVB0+4f z;06tQd*%+>M^_XuLfc44VLrZ5*0tgr?zYjx@gX-bA`ZnYcJ`Eor3iHr_cbK8gmmRt zVrDtdh1t*d&sL#`QzsCT16G=b=w7?ry?2NUT7e!b=}U_H=^V=2M=jjIoFGO3ola!0 z%`QfL)yVpP~ zPp^1-T=J2wqiO@$x_Q<%;RR^44>nma%<1Rem4J08c^%dlu`KCU({VEum>G-{wz`I| zne((lRN!48l1*QmSCd~#_jrz};DSe;^|2uRKQO>nVo3l1+=o5+S=rtsgJt&HJjZMS z-`}UD7g>3=T0+xDhzM^w=69*$VvbNAj1Nwr{e2T&rwzk zMyG36U6@CqB}BP&o>jfvKF5&WBbf7^OGzgrtjCmXT7k*K7v4uUEwDVqm$qT~NT+5j ztsy98a7h986WF$x;Sf)=1Wbom-zy{aPTZU;)@0kT1)AgKIz; zwA;$H<^Ej7f;H|)*PyKLy&Es(WTAAz2;oP-bQB>a(v|~4*Ejoh*@RC@Krg7M>fW!; zogt(kg%g&P0mVg}jeGTn!W2{qZ~+6TH@>FU+5m0<5N;O$Mb{_|Kw5|q_!Wi3k#M+0 z*AguT696*|JiT%XsR>y+vr^{7H{@^W4oUz6se6-O;2(U@nQTQF#ZIkGf%LQ4;&LUV z3Nw-iQMtV<{lUcHM+}mJX-Od4&;T;^5uvKLhy)-FtQh4J%81j?QQjrtLy({`#OO^%iLj4a;rTd0zbRhcHme*6G{bCA~UC!(n zu&vxsQm1O~SOSQ0%tO?j#Wgjk`yC=fzR_vEEpW0}B1GIAl7~$rc+;*1%ww2bNA==b)`82$3#CnQ3ICqz4Qt%r>nb zSEj z+k0DGU9fGpDr)x)u;>h6xPtPiUuUyxRBC{QBx6qy&j~?}*Yo=|q!PbJDea zZ1x)7hRBwMiZiubihwTKnr-xpgv&z$QVmOT(|A&3faC|b*Jt0QTcCD{43dF7(*h7% zcJ1jBIancy!4QgU7F&M1)k~-X;k5%-4mREG-qAMvre48bp~GbtE=Y;i}*Y64Vy6*0AhC=0x)id?XBdYrkVn+8GcSw&J`}0vk@ddI4>P zm*5XVpykbPYJvFIO53JTS_`wJP}S_zw)~izv{J~-lAO*38Gye=*tJ8|=@zorS9i9o z_8WA1@@IHt18@b)xJEJ5OvxC-DwWpVb)>Hey3hj!0Byb zacHSbl_VebCpK8*>%GI3L0sKia7$gOxM(@?BBuhY2wSJ&Ex76#TO_XKMIg-JY#)F;u zhO4pFs}LuE0ze|hfZ6psnmB!4^oFI*T#yp%nmsvEx?i+rnoJ&RWR}24GR#N2sJt)w zGYyc1r5;eRw`CP-v=CIl5(ri3Y<)n5Es8)CCawq+rsAJ{=@l!+kZVU~t-#jwa4Klz z(c#q2@f8JTEaBLs4?RCFD$vN{-Dfxg!)hd#FayYpoNG~Fyj^wNww`2A1OQ@RN8icS z%(NgNl4_+kl+du|H0cekX-OgM8lVnBtlKlYMS5{cDqtMl-T6`Vuk#UBxut4F>`IH4 z)ZE+YPC^c12xXFrw>-m?F!caqsniP2Z@jju>*T`a-U=W1$qV@<=tN{AtpC_{&(xv}MH(?@h}9LCgL%uI$> zG|UFv#%Tv=aL|+7oGO^Pq1cynvDTu8u|M0p#0TbQ2?ZgkvC^PW6Qy)^ zEKDV9SBQ_=E4%d4mhIXQnWTcumm1#SKR()d7id-iZQR6M2?zqo9wj<;FUqM{Ijy$P z2?X0|86*H?1*@HXYuTUjO9?d;a04?``_i?Di4Ed%00aO@AnM=DJeh=rC76e8Uyy5$ zQ|S>^ooorCmv13QrQ9*)8r-hoogLh#ECw0e6b(l`g4P4Smdk(af))nE$|Wf;6yuXu zG~3++(?^k3x$(7jsc^EbXST7J+rQ zTOeJ^8MMkplAM6^w3@ILyrcr}4Vec)C=OC)TJ1~D6cmPfhIe|s_33|7{v_ofJ25ma zHF7n2GwrM;$*4&hii=gb-rjGdB#^~QB!cbQkEfTL!E&@(ZH`hitbhU_JhSnm;ul#Q z_FMx2AP71g9%H5=N^+=`QOySBEIZcxqEE{?5)wf0f*eo{hu3;?in&T6Wk4WWhq2l8 zeaSi)nlUN;q&8C3U{0Q2%iJ+(7T!YUHiia(K`h2&0}y7NmvRMiI7kvO3nx=6WC18t zv;_bOXCSbp&sLzbi@l;W#Q<4MNz@7o*|}aD{YhK5?hXMUvAyf3)|{d_TGR&8A#pR|T4lK1&>8)^fj%Tnn@DUTmdezlrd)|!H#2KwRnc48BRcq0hdnU zXAsEcHd=15fURJJE`P{nZuxXzGy72BdfXN;Z z-U!xtxv{T4)zTPRf|jDhf%|ne)~~1=)Yp?jT9l_hxScfx^zwUGq)@idnMDFZ zQb>KJ>*-ouXynY{7F2{`i9o>5olp78m>p$8rGcradh+@M4@=Bcl^TkJVA=}n$`OZ= zm^;2u237_1psCdPzR@vA$}$Icsob>z8)-_`9oEDrb>-+o7LZ;*0~%z#pxg=Z1ppLV zWFsO3>aitK04i8bKozMb*ZVbhwPME&hEP^@0H-F7Ndro4dh}>!MjYm-E=W7w-mXA) zwx3JcGL(>!djrkS+i~d-3A*9KAI9rd#JNO1TqywpeK0dTsm;J)m#%hs?9D%h!-sN6 zeFl$V%u>71+2Zn8DL_j&KU>^?MX1pVT%#-^qJrFu?fhN#i&+xVWrA3>KrG_ctLaXS z5BBf0v5QzvZd|ZGzNyrUf9=W)pw1FtjOdtsdiVt@3lP?;wJY1L>!dbi47orQtLpvq z(&8-yq^T?#jPyU#_AMTaKIuDDTv3HI`{}Z_&`CH_KtY9&Zu_x-Cbi`wlJlEE1PA~e zgP$^Ws!5W{lCD9B4N`8;tv5P0@m9P!1cs<3wPw^mnXGEphsp~BYJ*Y_CTI87wBu(*zOBi5fh(O=&$qfHO2B4(TL{lKlL>&!)PmGD3VJ z{97z?A?LkZb<{#J8P3-5oRV;#$J0 zTve*v^*6rmVpa?wf`=fx?Biz~tq}PNF>tSsmwmL)-2`7C?pi-N`PZSvz-Xu&k?Z% zcuk6FW(2am!6?NJCD>I~t;&C?(SNChqs8 zHK%s$V3#0F0VGQE7Kv-kl!YfyMZX>1+@msoaxH^t ze9XiLxYZ8$tFwkK2I2|023Co9lF`phR7tpXOQ3evq}`3TX16-DLpVlRSY-tYrM0fs z@6$sXl*rDX6;({dgN+*Z`d74Bm}I3y1HH=%+fi;$($A^kgJ9)F2t|g&?HXx=y<>IG z@BXq~sN5xJ$d~g<&m#<0z@@7}bEy~REau{oV4M}1lE7SDyxyL~IHVbC%m}?khj!`A zy>2TLFw0Wb5K`I#EY!Q}%Y9lHw4PK!g>W#i`s+F$q8EPU?(2E3J`w>LKnt8_6Rvtd zRuqEENTCcvQvJriTE~Jx3u2N3P`31=YX1PwEh6x)oT^};F2Fc@Z*MxoM+>tP-|qha zNJhdrfCHHrIU*n!INTqlY01mP00IaDm|R4N#u+K=-c3@WBo-ion=3=tYi`HN9hFI; zM>SsJjP5z<^co1BBowITLy^m?ma*y{(77^DNp!o}OwH6cp4zj*vfFJuq#?@4TA+z? z3q#_l;tMS>JV=C3V}ay$ovKucQs=TsATc-U+{b%gqsqYqcv1#aV6E$}*Zk=ca9CBO zUc>?pwWWI1v>Vbi60m8QmQV>Ip!=~8{Jd4R*hSYXNZEaH8I5KhR||$XmN9U&gCK@Z z9FCfhI_9yX09@t-hj88Z7xHg+EHt{e<63`H)clE5ioC;JtX(hn` z5advREv-fG&akn=%1eZ>8j((ea_n{Mq;0?TLWP-BqitQAdI}4*OgNk|MHMf?2oBfX z&Br%tmfAEnjwn{#1=grZh9JQClQp01+kM=?F<>4mM1vEgeKr`ZKj_qw0ZCK2<|u7{ zd+6!Hq=Eu!Z0+=os&EpPqEa&NsPfbD(d6zHr1*dY9di3~_VSFy;DRr>v;rH#M?FTL zXT;(2kK<@2IgA)n*05&*maNsV)Sh3T#7YtdK|t&SfX4m2-qC$C4pKZIU^8!;kv1Ao-8325MpoE)>R; z6&-Z zKnM;*7Xz&J!b*j`PxC}s}ir;&uT$Js zu<^r@m@^!-ruL}vf=+pA0YZVPrN9-hUpSr};sOK|jxw`^bbngf;4QY|NB|H5C#R;% z-+!AHLPG!vZHBHdO79WWLSH?|U`2)6jn=U0rX(bv2-V52E7y_lK@g@)N~rE{)K-J5 z&_^w|5Um4TlM=Mc#(K>Mp4~tWMYf^YoxR0+W+ZvAy=`4heY3(UXdjTgGnkSdj8Boc z`&t$A2tENWCNlWHaov0~Ke!9boP$PRa+mrr1A}&=byZh@7g_Ga`*fY0oR^&INS3R~_ zZM^>goi}SzdQ{qNLfe71(vSx-JkZ$rYe-s3svBNit?l8Ggq1p;mI97z_AlBj5P$*9 zS=x;I`#OEvT(p}7KI~{c^^D1|vKtn+d&x~>%TB8W{GJ@f223eFV}0rwDGDh9g!(q$ zQQjI-GaELb64X4aua_vZM3I%sYpdJVzP*GpsbDM?6`%uAQ?}#M)iHc7CCif3QUIK2 zG$*Eg>M!G4$T(=*b;b~pfjtN0B~V0?$|lv`pJQG2ddIR+oRGu^C79cvZ=tT%WF@MQ z0kE+;7v*i~&7;X_PIq7fm*~_3@7q|Lxy{!C9m$)4?1F$o4`na|rxtRKa#As;L)G_Q z^uUnJrfowx1b6N#3`#_WshCoX0IMC^qTa+hp_qh#Lv8pi>T5`mCo{FOuCS&J;t|p=d2$wIiA&V=djRIpLnigeV#l7Sl%FiMKu){TZ{F{6Vp9>w{rZ+YgsS*L81HgJ&!B2xs$$OC76e2 zVBF90)nO4-T(YlSm;m(+OFu(ccVBS=z0ahe=N zvIQ@Cb*nkw^Fa&;Db|eO==S^QKNoA3m69oD3_qv6x<5F}!vwi10*uYGySw-MydxGH zgqv1%)6C;vE#NyHhywxT009q8gIk!^z0;MNt*{06{NDXyvT7KTniJDnHjP2`8^yZP z8^V?Vh9g!i@80hbh8|?qvQkuf20B)rO-^qS$T>yM<9TGW100|Q1FpVQ8;zhFS>++& z$9UP*8q&t(m$Pc+jjyA3ZJm{cnK-gi;EL!ed+L7I-t+$eSj3W&^l-(6yv-{|YBgf_ zhj67V4*_C94lL(DO&ks1QUp&ZwDU-j19)ZQO+7@`oFGfMzYs(cz#(DCV{I`|I9~+- z1(X6ocV{Hl+`5|bEZa;j1cphVZ}k)$fUkN}c(lRc5g`B&1F&KPb*=BE_0}yuPzWU< znzYxj93 zX`M;*6=atT6aW$EdUQP>NAOrs7LtJAP=Q+P4Jk^RQrC@Kw?YPB&7cALmZf`r1Xf^W zvYZZtigN+WoAf)yz36MaO}xOteoTpJPpocW0aQ$jP&g#|2}ytlzm-(t%CfA|k5fzO zqgK`&%yV8eQ<+56io4bJr=I@+ewB|gXbf%@Gsd<%Dg3Vr3E<;g{)^?;?OUM%0T#W$IwC*YG;u>U@qmpmQjr{KJUhi0+ zCQ~s{aX@WN_jb@9r6WOMC^rBSAn0dV)9qP;PbY;FlbLx(eTS*2b>geZ$L52>@F4rQB}!`^AV;P&pkfdUO2hU4?)_EIp5)K42p* zN2|4fK?9kP7(jxG*rBhG>t3k=48R7k*p@wXrR}AlOs^0pTAS6rw0bq#;w8)qCZdOO z{`vwd${KQ-04QF@_BTDdMWf|}lHbqKQEjAUHG){UOw;L0LmoQM)mzr2(dZzc^_^fPyM0Hrj*Lh2A{OToAy4alerIeV_}( z?I4jiWh|lDEzzvmkO&r%`sW8eXE?%UON5b`MaeFg-h$mbgRLRuBq<;zOyC_(o78iy zuV|{9G`lz_RxDqc9lg9eCVo(oNa;)IUHY+ddO$gWV4nzvGYC$;eW}~cXg6~gffAth zArCr>K1#yL4#ZZDz&*x}U90D-Vp^66C4knKaQd*T?aD3;!8V`+O52e(=HdFoKPf5% zfZDO6u{GYFeeVO9fzE*>tq=*ldtvoLghipO5}8LBF+DURV^u1`yuimZ0>5|JQuVHv8*chjK=+113KXE^ zl6BkIayPtbgoKo^3{4K;jqL0iwJ*w%S&G5sakWX`$QQM3V#ip_@}4D@5bbBgKah}_ z5<@0WtWvi1Z-mPPJuu#Sf!WjvbW?|W3!Bow{hNBkgN7j@VYT{wwPvLZC`l;Fpa3<^ zTDKwGSP!H;ROw1od@sFgVfAk@Xhzd?6+aa5N$&2D0y@ihgJKO3bK^APdnFI+qXDo zY7|m3n*RW?aZy~asHIvouw7xY>yWsUcQGakwBuWJlhsgdBJT)1yht}RmN`HY->026 z17=G(02kB%T$-^PP%~NsEGZe%YMSNePLveu38(-Ec4Z$|BD4ezxx&&3>0?`pQ`IXA##{DAX;lk=@OHgXosNR6w z5u=!eiI9{!M~IS3fJ+Cv>+Yh(3r`c5m@;$9U`Q;CHe`M%S6^r_FTeRAiSV|Q0!Z>F z6<$0k1;L{+A6CD84>)llhlp7J008T*yF{eON|Fg;D_vikHr)#vUOZH=6bb`}b_COU z^&)}&VGC?G64^1aK>#oT*DUM>77Kv20d|BC202j>TV8(j$IGBlEl^86wx_PukAKvn z{PneZ({auv1eXrue&U0;*PC@^X>!O*^Ja1R-hlRo3MR%Ql@c=4##h(QsayynCn3ND zhrWAb5j3eN3IHd}3Tkdxdf%)ea*~owNoRgujm%t!6%h22q!8)5falepKwIe&)R|!g zMLr-L(f+#)?Y70F*>%>*ZzK{#5=5mWdSTNy+zp_MNCeseBp^sgj;9!7(z04y9EE>FQfZbcQ-tQLc~Hm5Q`o;_)yt9&z6U z{KY452$&{GkTk*kFSTiwtfsWBH5%8w_32n^<&om$(%yx)?bg)GBvCynOY$FBWTz{F zI}vKQ>1uL@1>A%Z)-8H584Ev#l_zl^T-CE_4q4O={`CbYRTL|(y4~qbdT9>iDq_y` z1DL7v=~jtILPAZoJvDQ$)}7(mXh~`@8gu${JAEgWl1-z-1iUo1fr2A?p>gGsK;{o2 zuA98{ed;RZgeBY+P;;)sYIFO;l90*=u{u{+l({6O^bBiuyNdMR%uxwQByKgSKI^R@ zw8`piFhQY_EiBizuYqe|zAFJ*8g>{DOL1ah-l;I?sX-p|~7V?bS=eRMQOnU88 z@W^lpXMSy<`}AfzzK%q&5|uEhqjs-q)0v7)E>}uTY#9AdQfMz1@)SZy6l<_=dUL-x zT)rzspk_fc2#hg5e=3`NJ`&b#2`G6*$H`Q+Bq<;Q#2xhH8_oXh56bX>6dgjhHg^x^ z)vE!@Bb9;K{I_^=N~MP+_=wcrg!k=MZD|@^%xttNw35b520E|Gsj|}TEtxFBhB2T^ zZi7qAI>ERO3)b3O?*4U&#ZsvCv86Wp{!ci|rxKu|9a5m~x**8|ErS z!~_8Fl|S}ie=qWB@|PnkHCxf&U11=AYgTq{y{TWMFp0sP{+2t3v+wwa5}>MsQ={#- z@lROJ?rTW5`6UVzdd3X;#X%0>ZL$iCYu?s282%sUVHT!@^^+tnkLX>MFU!}yA#fXae94PT)-zK z+@yfv^-k1%E9qERx0G7$O`UZH*~~~9LakBcw3m2d;2t0mw1Mt4#Z)FqGZm-=P_v4f zj=(p!n<`n#cS$Va`7zU$#+IW2Au22?Mea7fr(Rk`jF~7PGlwi~UEgp`dD;$DYqatZ zEnx!M^6$Lm&@H~kxP{zg5<+;it-wYm6+%fUBmq^2X1nXl&<$=P4A8Q*0u3$5ort&; z_2(ArNS38209Y5;gUaHxHrGlDY16z)BpjxcHZ^|5?bO~V9zZSygQGT(V1^HpqRW44 zhAt#sb}!|?0e)G74ODRUG z-Tj%;=O&H?bT=CYspY#~H0L&vd9{Lt!xJ8a{c$l-!y^76&4l3K91m|!>D0fOojF%h z;3VoTUY|`xVc8PYlBMxs%MymOvO4EAOmTT`1B`HD5C=CPsH`HmR9)d3L3o_Q7Qs9e!AA1{7_v zeK|XQs}ONqCQ`g|h^<%_=hM%fpu35BCem#-koAZ!=)qu(6?9v5rrSssp#*}-1Pq8I zVrG5n%)ILg04kxiZ8~qU&_smbjM0^VdxoLwditHrAsA`W76Xz7^)>5H)N20d3-3bfK<6URWjtosZyDZdZRHo-Y`)=XC5FLZK@sg)fx?!B9JVCst-bjN zCLC4^5X3Q1YHHmD{Pq=%lBA@vsatF7&%V7OnX+w>#cQtq^|U@M{Px&L<+>Wd5Ls9$ zvyBW=1dwgwS}(MJ8?9i8nDc8IYO9{k;j0TI(Z!9<;hDYp*3H7PC{W6DAva;EYiYg3 zBc;s3g^*O1Bc;9lIo7Wk!vfA^pt%%pyLxZX7}JMvCe!>$Otud%xf{QwXJNbpZKmtR z+Tj++#=e~mbM;||%OOB8b|3)6A6SSInt}mq8Xo55@3!KUjb1ATxoJ=dGz`WwYr{@r4b_*PwGyxvG8Fj3n?k9_yVJs~nykd_5v`|i)9 zcIB)pW)%vuLF&}>`tDjI%at@ta2c#aw^Dc0Z6A9i6@oJ+zQu#w*z<@6>rQ#CXF>-- z@H*Iz9n*70MZf|w8;;w3suD109wHdkm^YwpI&_Z}AcX-&-tXr0r7wL9T?t8BFm7A5 z_8b2I5b|(>if16(mnZg4k!0EcDTG)Pl-^ia-FjqApz@1tWh;UY0znC^hgB%UEp;F} zQ)12e4{<=k9y~op=q_HOwdCHFwL`RBCO~Y!2iWp!b8Vi~XrCdA1te%I+M^~dGV=#!VcDwui)!9*hDe}G zkT#>-J-hO!D6l|G#N`A#7x#0cx1fcLG7^%bm!Fl+pgx7qoL>)!ts>Ai7J$jaIqFB^ zr15V&Qbm>@{fa{pyWk9Ts%BPV^cx??-kwy4k_ckNxUhGxEp~@XOkPlysSascbo)NH zqro9AHodg_2$BE*rEw_BA)8_GoBP)M^@mgt z8k!0ufgK06G##HjO(U?pUnJJSW5?tE8Nexj<33 zbLUJZS(uYTkyaHJx22i)(mfb9@fw<5wPzJQ8(wi>iDf`JU^XEy+uenPNK##jLP)XK zM%}HiGE6%FYSI7~IY~p#XW`Zb*4<#b-{xnSqIA$RyVj{cN~whZ0I|`97+li&3+VjI zlCWwA#LdhS{o8JrzV_MD5^RzMNHsO9n~&k4jP=|e)ZK~pO?eldBfjfcv_BHbfB+L6 z{?(n34ob&rfsFnhp00612^sDag+AMc)t|r#70K}clljV$>qji@XPc+&b4N3`=44uzbl}pSO zLXZI)Ic@Z)HyrBm9cW2VV&R8>BTBjN4gAw`IypLXrMp9Fn#8H>OPkO}g?UH$}<}8A<5fE0swEF&92x1MU5B)Z^f*2MQeJfJc=q+yIA}Vqp zGKz`J8nm}h#k|{@h`9g&9*%Aso72oZQGCM-mMz)?IVH&~)8(|<80EMSZ2~|^94$2V z4xd_u2>$?Asry~wwarKjRO6FZ*Yb5bL=!lu-_eCD`Mfl>-n`xa02J-)7Nl*L0Aw@Y z2koSq0Jz!-L^pBhQX93jIo;S9)L?Ap?@bG9%I(e?6H-Hy;tcO$tJ0&R^DzKV8C+D> z{d}9h;t}%-okg2KE`4gi!noXFfitY)H0eKF&mLfPel6n)50 zTj366B!-C?GjzYO}p-*~`L& zyurY7GO;4Qo11Ct78ragmV~Kp0k)oc(i3UP01QNXbzOF(E#(N02*C;-PK4>{wI>aQ z6Bn3)TV30m25$VfjfMvZl%?{30H>|ayPvqEQsHHx7a$ANR-eZ<)N;9*jYOF_Qp_w~ zugZ*1Tbj{~NniFoy+PUNoM*77Y%WL#B$ebaKHikMp(SKBL;GQ;UY%yh1!ykCne%Nx zS<4S>(V9jzIj>Sn>cRE<{RsjrVDY+;ZEy_#D)XTgBo}G3fak#lm;~b0k9g1_vqcB z+(P9_LzOXa6P}uR+wl~0INYR4%oY+zcYU6Y{(X&XdA}d{tc853GYK}oI|{Y>JH=!8 zgjUFuMyLAUQ9}SC%j<&r<0EiQXg(+766E2g1WW*sMJRftUd%7MYaACJiB##TQ{21M zp0%S|jMWis#CWXSSQ*q*Ih|`(s26QJ#(C7WFb)Z+uXZ~%I(j=SEC!o+K3?9wqbr@w z?%ZpW(R4FO5{k$!Zv7qaU<-QNoUw)>s6jj2>9s1yYV(PBX#jYQX{av!{{Wu4nZjF= z;=Jkf8gs7E&@BlwnbYJ(-grm?$OZ=42tbJ4$6)H48JMb=14`I z+1dXefymAm%;RJ4-@Pd%Xc7rI&hmcjze+`sY0B5EW$N_v5d+zX zN|*vp=aUnm-%E~h8B)k31Jn5I!>EUpw+shg$MXn)G6E9ZZ!C&j009uPTFKD< zDTK*TR%dbxfB~-c)A+Yc)>yg~-4pak`AWF*=th1DxlatGo6w8y3 zWt#M<2COP7Ll!;tsU-gZLJZ}lCV(HK`sn)(qVBm2GWba^a9N3PM$9!mY|W}zQdCF` z81sH#dg~9CMg_!@2{4-KS3}p%n;zJ*mQ zim`+i`wjMtr}Sgx<{$zR2-5z7y~w4R!G#1XHA5xn*Ki0H-L-l!g@8h=NE+KtbYguh zVq~NhC}yAx19jAnP6p@5)z+Jq1-L_S1~cd0pb`g+i)|M>dXhpCXGC(5(ZTn_EDH zh{mPu*JnpD=5A2ZG(aEycECMy%&-#YT}#pLONL-5<(p_~e6YEc1cH_{v)zX-_PK>E z44|Ow4LVli>!U=JvXULMXw^FFwawUX2r?PC3vSAUH5pQSPBm`wUp1yKOn>9bdj4KE zs;QEQO9ZGh8VWtP@^hw;i6XQG+Mw!hsQcBatXq_32U~(0TXfd?LJXvaEYu@cxV!%V zH-Xwg2!=ok2mb)FAmwScl>Y#61EU~x0u)aB4@!cmN+ccc%Jda)MjAt6LwJa0F2hmV zN4x1uTEK+3t8BuCwW#vt10?uOMc#sxJ^8+xHK+gx=mZrYZyV!k6~x&uQJ@&f+I_sL z36!O%78bu=c5^|?v57fGQV0&s$n~+0dRm}qO}+24LfMjBRFUb@+Ku6V+^`ECL8OM~ z(2q)%dC4dTIXVn5QuCUGP~dwFhex z_w?;)f>;M*(L8EH^Tw))5*rt5s4$PNi|#2&0)!U~!%72BC_<$qy)UH&&f`khbGyf( zVT1HPpX2y&sfc4nt8?_FK9BISeY)JJfwNJ*^Mi07aZrxIcPTo;+l@6zRJ+)9!h} zBmh(h0~&PS<5d=$f@&o0S`qWCXiEi8r5?aP(j=mU0ZTcnJF$CzT?8=;Ovkt)n^4z! z{{T0NVGu+B3IkBFmGfF;T5UIDl!Cv%Uw(?tLCQf7nw9EDK2K&HgkDOX5{4u?wH;WK zubrNem_)z;YlGS0Eauc@dui*Mv_1(t#I(Ic`t zSES`rsFohIZ*_!;gs8Uk8}uKFn2j=jg^6>aZ$kcKK>`*XBpTnJy`wvc=0b8X3Tr;Q zX(Y{2w6Y173j<_;?10CWPfW!h2`#fyyH)(H$|XshQlRJ7_N!`rv{sens4jZHo%e?m zGRhztdj^%a)+*3}I)H&Bph7zi=WPy^D&Ps`Qnv|>H2Qniid4j`hhW;46zQQO%*3NF zF-fre7OPlQtLqe!CKtb{xUHCtUtY#9u<8>SYNlg%HEp{cZt)`4StYW;4%2{B{<~{i zSS=%!fJ$WRjYE_6l@z~{NEsNrvtMv4M;8vlBukV^S*k2chveMsKZtn=Qb@}5KSN%l zquM3pE(lFa6MO32JJ>@dj$1=QE-BkB2|a=&YQ}0=V#bjHgMd_d=rquB@_P(};ROuj4 z52&Xm9(&Y8o+(F|a)rt@*=J(j-Gygmy!P`OK)V5SMh1Md)rD7>dB|V;H3I{1cGt?I zmEzt;E^L%DR0nAEN*EQa~dJ1bD1BdZM%$DgPZ$>7gpFb_>3y0&jSDLBx6#-)mFCvZ#IL-2pAbCYmcIe+sNW5SY;3ywHqFOt#^s$YBFX?bLKt! zdKl*EoJus9`w9kVe#iENL7Wp0b#!{sf2ho+yMlkrlX)6cYUDNR^CawhAky) zs)+?b`0HFJ0$hit-%59KH99nTGH>nw0FT1garixfXrMen(g-4g#gBXXX=aBJj#R_| zRb2_O>B{ZQ4ni@oU1@?~khKK#oUd`cF>$n7u7eFLg3;kIzh2WO;So4y06C-e>20mO zUMVN=pj@zUTsWlwYSG<`H92i{D-e)CDrczJSl?iKcZu?X7fKg*2fm*CqfQ;yT1ZKW zK2NwE)|ICaj#0?KKgt1EmACsf&!*reOU;!h%Y7Kty*{wQWK2i}K(MKCr%JHo^sIDQ z_!_zZVoQR}TeG$N;u7!%%0Ol!m$xr2rnLecoI!Q`w*a@1ve&Yj10sKs!en~ z`cvplIYQzacz1-&yEy8#$m%}o;4h1$WEbr7JtB0fWXN0Q4r)9$Yd@>=J8Kgq$Xfy) zyK=QJO?LB%lH_Dq3LqVc4O2>v-1Qq9c^EQ4P#}w+OI*K~Yr^ILGi$W?hNeKl^wYgZ z?Y>@CKwreN5@T{Pq}S&vrRSxXJp}`9YrHfNQf@w`_MzqcMBfra0NayV?)HX49YirN z%Tvw6`D<8?5xbO=VI{#cw_)49PAj7OEMcBe{{W8V{%}6COoS4w!@kyNbLGthRP!Jg zXSHlOUYD#-!^>bvNNe^F)Pw8gM;3)BxJhRWG^>|#!_Q~ZHR21oEH~O20^3YRFg_)k zyZjt8c(<4ZZMLW~Hj5JSf)WCS)R<~i-CW28-af$NKyuMT>1-F zQ|+mFASk;#A7}YL%xA&_oST8PBmg-j4E_HA2D$mIxZBTTxTR=1_+Wu6-a5s2l$0)k z!pxXm=BE&8+l8uKjgxk-MJTh29`w1b|w3cFIv`OB00*yyYspHbkfxV5t_at7-%=`w>KV2G0u1^4CrZI>wwMu& zOe_ue>(ZRg%!Yl=`o5IYdO}vVB9sEWhu*KGFu9`S&>9B&eP5X63>kozcVggk(Srx~ zXs66i4c*EBNG}je&s_IPm8Y81Xpl%d05Pt1#`P(45~?_BX?g)#ZpIFf#ezbMC9O<5;K~R+xiVgmEW8rXDCAHIVU=L!txHL(0Tb#Ls^lS zJx03J8IzPxg<9O`9@`#TL`k@YEkZ`8Uiatr)-I0>LpdudHgH1*>>O4i%;7;w2Bo{d zx>}oq7iqOf1cWdd#H{zvPM2{dM1Ry40*!ujs&(QVia8qnUbm;c8#4-l0s1z&Zr#X@ z6s``66$%5shfjKrPZG`-4=iO$2b0rN=k7PFq>^*n~+<6qJ%&3I-i$2AXRW_?Z&OaFMW~Jxlcuw#`^X z5L|47gA*HiGd(8IKw9+Av-Qf@)gYNlyN7MRh+1Zv1|IwW091u53arB`v(vk?@?sla z&kxDK%u=02hRo#tJl(xy+;#FjUq8u<-tw?4Fl1ictew8r7(B>|8fuddDSed`pFM@;<1R^md|JvH|gm6wE;kN{3%8OgD4FE6zr$*hEw zvk`5tplW+|c#}6Yw1Y~&FRy!QBR|A3MF~DFYf>+*`5M=uF9R%~B?!sKO;?=)BSee* zm;yGW;xS2*GZh9EA;m~>uU^{`6u6Ew31F%Z{!|>^mFLoxjQ;=;;w998bz;PtF%8c3 z^^Ez%sY(IO4NKR{W23-q1qSZ*2#LnMa5JHyAh`W{GoDktxnlLG-T$^RK*n%Npn(N-uDmEwuV%-C|&k@erhAcB}VnFSnthaC@7-^!qt95PP$L-DS-#VBT5gJHQE^7>!2N|7YK$Ckf}KAmAwrR`6*S7J>X zC!ql&pVRZ!C|U+Tzn!+Kx5P^jglVAu!2APFO93n!MhBns?vVUPk4YxxEOQA5zvTCE z=RzFNQbRdPJ(27w;;_w1ZLJ2+-0$n*P~Y$Ud%dBU9iNzJVToEj;fWo3LZ{)lz2j$$ zV8nHjFsbaqpc?2+y#2nLz?D9PeIb~9FcdBaf22?(oP;I@eP_S+>GFax%5++M>t4Yg z0tj&)!vH};A3xmF1AM_f(A&4yLrsyHK(S#;ji1x6@gArFRupcHYkzhSxFF>Sjs3P= z27}6-G*d#NbO-5wec=%5n6tPW^E|t02~t@hyPCaz-G4Cz5Y~VLIr8`-ifo`L65aaH zb+mge1;Dr^*!|tFLDm3BcGNd$dDlkM5+B4|5aSEw3+QkPNOlp4_5B6+p(p zzMQ&N7>AQ#M)uKHT7xKb4pEPrhuSW=%E5>3#=cw6SCmFpa`!YL`u69bYC@%zHddjr zb6VR?Tpn9IG)uRsB$7_L`)E*G02{xt8JkX5DL|3woerZ1Jt)y?OoWK+ow+ z$6DR=sr>5_kBH#t<~x`UV@Sm&3ACfklt?%P7{ObQtuj$S8uvD(-R|c`-(ULQ(m4?Hww+?s<;n;Ik+Tuor{)_VXC#4C{q3&Wd2Z~umQ2EHvP5mKLz$rDT)}cd zQR$bc&aqJfLO}4FkaQ<)I{snw45wfSH*$Io+V?hxTojkmjecIb5!a#$oG=Zc=GJ?A z?*I%vPC5g(Ua{I~lzB;z8A4JWdiz5lQ-Whz-$$|ax0SbtK4aRUnDy76z2Y;50jl@i z{)79aU?(epTw0ZPZ7b3k19H*w76WkisD_H{m!lKq_+sy@GNru%EK9S{o}9e7ZiTX7BaHNMjE}Y`7`D^^7`Xb5 zp8I#Hg<-Q3P%Bf(_dmn6Au5^_l1bfx*JiM*X?}4G5o1~wt&jIZ`GhGD?+RFzFhpcVzZ=y&T~tndY->fK@{VC6(w+AyvCnDaS1ZBOp; zT(Vw3?sWE-R+lI^M4w_o(KYm`nSyCj02cPvZ#eL*GY342-=9xrA%&9cd3*eiIQKHQ zfk7%V_rRraW$uvM0J!{psr>D$R5f-Q_Pw;^AS=ur!+Cvu`b2O*1Q748)GZ!BGddZK zHFV90dF7|jZRhugf`KeO`@cx@IAVOOQ+w>~4L_|T!a%>h{GyN}C4eUEX#=zO>_Kp3 zAhtq6LQ%(ATW;u?xbpS$_VC~@P=APu6bWEoUplvKzXlWwI0o$gzsv^K1{o?65s25f z;*1v}CL6}MpR}TB@~ornyn0t)P3->wbANoHhb-C{9m~-9G4i|wAjB{jCUPg~>w!ZY z+|#j+gC*(EJo(8BATfTdE3ww#XNcJBa~ zY{zg0`}^~WMB%Ms4!wJfW(F!}lmbVE1%tM}^ZBb1u;X51Mx{qcS`_LvX1kmB_GzJr zGUgIPA2DmQXnjwVJ{6Q24gK=v6UrDPGRYtV=$GGWlWMp`>PKjTCE^uJGeTU{GmlpH zNc7G$V&JhYxYFD8xfX~9Xj5DbZ|kA1-R%xbm;f(a8Prw7Y|}S+jRyV69A%380&J| zKKB)c^V{dhpoBpUT-XwfW^~Kf&aG285SCyak2-#JXrCh%Q*>-=#4~~%npT$QUA5K}iKzr7Km%}T-|0$| zPLYmII+=6bnzVjnYO{5|v!vq`Zb1Tp+P+`OqYYtP8U%9)d0>JO2c{0)MLW2X7`h-3 z7*N4l%N2QvOu2@jJze$ZZH~vBQetJ0f)JqEzednG9LLe3S;Qrr+%xKHw`c7Y_>4@o zk^-9Hv^A;puTdG^Z7R?%K_EnFkdJLY5^f$N4TRX7<@%@75lpQ zz!)<#R1wJ8{m|(a6LJ)mBVWmC({Hx*t1d&Z2F*s$??U!*3|hcS;S5~U3tw-|W`)39 z2__x8ATUZenAJQ~U>QY-Ct?`x7_)u8&k2f23aAa@3fpi7hr++^{`K z)IT!&!^j^fC28>j#f4b6^J?{q;*%|u?i4Kg{&{KUVfi!iD1}uw0mVmpP;=9h#9=?4(6!;!EZ%~&t6GFm9rmEwiq&rs+W^}sa@+zL z{{X7hF#)WS&Mn-o`$>>MFipWM=yyZ|71A)=Q8=&yhE>o|ii6XAXw{2f5>w$VtATdd zx0%$`u#Rzrnq_4mn}QSx^1t4#8bQRB^3s(Opg>{^v(O(<^e56fIqbIPBbb0mzY$+x_q{p$-aMHzDqRHhJ&V%KsAr7u#SjY@ z8dSgY^wHt@7`3awO}7Bt*Oh7CNYBS*;Hx<$qzt!*Fs{7MD+$Bcx!EWG57R~DR_*8Qsw1IaF!2H+^*f>z>u;^fLA_`_Rx-dM~HIl zXl_Ft{n94LluZF*`qNY9LpSvq@h!M`f$-=IjUazo!W91iYyoL^b9T=|@2g4`QsOWP zTFyl=A@m#j^R|phT>L7ECRGB1f4{LBHDOns%^VJ#>)M(_OTq;{a0#xL<~P^*5f>h7 zKqx?*?bT_bqS4C89Hhxa>bq~Her=g$L5N}H%kyg6yRvYgW-P+B-i+>lgA)QvI32li z<}MhPLTJ(^AYM!a_%dp4|1n^AZu1B$8|Q{)M&DD)n&x0PHW9_{K0S$K#wW@lvUy+AIzX2m*$Zo)UW_V6|zENiP%d~i@nmYpR{O#;k zF|-xTOx>iMdG!eCwMPsPIgZW@$OsdVJ9%_q=1V!Q+K#@=d-FMZ{{Rrm<|L}FYIiod zFW0AdZA)r_L80#FmGr!6b-IhWLkP(_U~c~a!9YC0vI|W4Z}l|v$*B$ieaWZU&n~`j zRe4y#N=hF{uK@n13izO3N|jqg!o!&YQ*X;z(~dF@gfuCnKuT zfG#&$zmDWdNtGBaMEe!0cpemnC$FP7Kdg8XxvI*PsHl#0?WK90_lG6nimnTtK+{&~ zvFOx`+%^>{NFY>(dOtG!^OUQS zzD~=)q*SMsZK=1?{!SwJVcy}so^M`v+8z=zfKTV3&|8%vO0;-HoE=UH&!UOIsGEq>PSkm=oARF^LdAd+s&~3MB*Q@IBVkLkWQ2KqL3P=jG(vMny zZyBOV3Uy|+95NIDR=Gkau09H`SAys3_~imnl4=8AXXHN}Vacg_HsQ$L-1);GkO5UJ z+uG;dAe&E6qu!AiBo3WF8XroSM6i=c^S>tFeiIy?684wJ?QC z3%l3sE9um3@N*NM>#xs~OO#x2%U?zC)d513qEs9{#`kVVQrpv#ju=cf=o`v_dR_L5 z)L{XxTDc^jqv(A;u`w6`7_(F{txwhW=hhBWoXSzRyPUBOj!-lo3(m7yfq*3b&X46? z`3BfAkAFijDe{mydhPc5#_mP{D5Q|?)OrtkbM%!vhae@=kWQh6PrW^M4S<#j$Oc$& zv`OH@nstPihapVgV0EP|b-$Hj?+=3cz)+U!rG<9iuX|K*@DGU~HNo@zTB0maiBgk5 z0Ud*G!1WaJg3xqYPNPq*phrzgsh5LR9$-+jIc*#5dNVuoi*lqcSPLvb0rmB(Tc3A` z6Y=s=tfH!Y1-!qz7=b$(nD|^@T3helE0hP!P9IZ^#`^2zX!-N!_Zx|<1e}(wMu1mQ zUAad$;@G3&NL!t1DbsW18on)xD3+>+YCqFXhP;|NemZjI%vQA}{jle+Y6wEoboXAm z(mq4K&z)+o5K5F;Mcwu8b!KDI8j~#Ex*JjZk3FfhN=&5_Z7N?+JO2PNB@%#YYi%6v zbtl`#*4wZQ2{0g3Ty2TO#OpH?*ZQQ(O#_Pot&KJ}_R%_83s%p|`Q>E|9=_!0$${p$||4M{w-eSOjvl;}J3{vqTb z5*oUWLw;x5Lrq2&o8z)OUzP+9L!qFC^i2s}KijR1iTL)1n9B{p$u`O91}Q zzK427NB;oiVILq;+Il})L@+_uV81(5kZN?J)|4;l*SL>e*zz6u#B9vYS?Tnl?0R#B zg^)6ib=LLuKH3B(2Jx|K;H04gFn0nwd$DaA-io2Jk2+ieOHIaimyzU>n~ z{j3hG9R0wpDdZ#1m=fmt3b_^Q>))$3>X6u`1WtE2{Ln0xOEID8g2%7krkUA+1I~}9 zUVl!We82@yi<^7za>tN}MMCd=xxU_1fXwDet-XEi+9D6Pv2;zQ0|!NnYu9R;7k3`? z53i#EtHQGeb4Y-hwJ!AyTJ*0XPbhRupasdPYj^q&b!#gEXUJ(%Z6ui6Pzm3rPH;4* z)U81^^lh8npOQ%?<>9}XrCUo;@9I5Ibd{584_|#64%0rqOXk%1Omf6z!IcF`^a_-+ zLpQ&Fh;7Tgk1lW$P0PXwVBn1z`TD>m_Be&Vw0YA2_(Oon?h9VOdK6q2aatF-xII1I z8_Yl{y>9w!IY3lY+`aqn2-Ue?-(8>pah`v#WBq9nc2d1V7-+87(%Z)TW=|Mz4KjsHCt*zVLSC>e_7zDgvR2w>I*Ig-9F6q%miBfpx%iz&n0*_02kTI0UPi=soETg%EjG zp6%K^B#;3#7Jve6))6fLFuLv2{iDm^$MsI7S%i8>7o;*65b(7S<514ly}kZvK!7x0 z4?;uqeP>N7d2LBU+~?=@OK?j9^mz5isJt=(E-h^Mu-9fJ%%g zz@26~j={I#otfRn>&m7jZfF>f-~3n^Y0Cn7bG}; ze)iG=ZO{hL*$s9ttug^5mk7=h9X+=bQhss$)N(@}WcBp^q4{%7$z~mUo>$$Xwe;@L zXDKY^z3cD!f)s+c1ds^>eQ~dijdBVhp%hx1B2xrUdOO*mxW7xt)iP!9E z(oF9cJsr0m$2|;A&RiSPtZ#eyxS@(5y6r~7e)#1lkfnh7ejuynP00%{Zc)J3n6b5AU?8ShC>f zW@Z-cLw2^@sT2lfFHTJ4d%s9Zrzs#5l5Qx@JlXwT+QJu<6peh-iS&K5Qg1e%Q;0GL zuWp_6t&%aNNdPPpK-{c)`xSU@VxKuAZYuA3KQ5H@jI69mkg!~{00l3r2G^@m%vqxr zg@z|7v%Mc$8x8sx%vw#?5O8zp6P)(b6IvUB5QyC@DKhjOb$F?hCzK>Rv$AeW(vC}Q z=W4}d+(LxHD-*itc}9b4VNBbKqDgo;9#9%q^e;iuH;g*qiFR!%?Q#EiMeJ1Qq~6bXsNaGONBj2=| zzB59o2yM0A$4Ar+I>JCvBBJ^O=X!Saiuq?bqN_p!QiR&I(dc4&RG`_8QV0R4N!LqO z{-Tf$TX}2}uFqXa?oh(R6=R*RJ{K34U#4j9I4uwNvoZo zr`KE0lC>~UXDkSDy}kbcR0vp8kp3f1MD^+-WSQn#nANs$-&YMv(fWwaLtvC(h6oWN z5L*N7R897PEx0R7Bet6jwykWXD9Z&Ui;6#<-FJy%T7weB#d@>pdpn&qds5)>iOR*8 zv%ZF)GwR-&MdYdS)F_}u!@uNi4LS6U>=xZ+*9%Cw{{SE|kq@>4*RZW@@mg=S5<)h? zW+V+pXC_xv30X)rsc_%kwxACaWl4IH3u$hn-!ZzB;hYgrk{XRm>Op>V=3_}Dx&Su< zkA8dW&s_v#pz4DCwylRRf(IZ=C~p1IRqwxwqg0caZ|a$v^&x}UbY4Two#H{W;u zi63at;ftKkA|6AJ1a4 zmjN#OyKFzG2ys^&x9j{v3!2R4=74LpeeTqwMrxcf1Fc<~&aA?n+AiAKoE1+6)jbkj^nFJgt;wv?$rjn~-k{UEiar#&$w;R;)DUIci^~kinkh z{Ybu^*l7_IvezWsYv1t=g(%QDeXsc*`NI9M$#bV@DoW|@>N!f~U;vmOJsI@UM9IXE z139zo`!%nt+7uF{2QI^xpHBP2$WV|R*btUK->--M8+33>Ihe`hcQ2i=fTho{I7RbXh0@T=7 zeKhhhAsBq6z!lNIzsvTC0TBjeBN!o_XYAE#EFomDCQya9nO?O9Min}NnCN_lm#kSL zN>VBT$}uNNU}N#=6=R3FeLlnEsGlv* z?c~hEzdo_*k+}M|%V_X2#MhY8$RcoL_2VJ)N z)mW6Z8YO|&;Bu$B7$#xLK`bm>{l|09sEgq#62qu-tvxh1+kSCdikb*gK>oDlep~Dz zqj6|Xk4*`|TP?jp^jhcJ=Ur<(G&+a@_9lRR%YZc25Qzq6l-pn6?e!5n%Lc7lH!kJh zc$*?v${0J+-HE23O&}JqT*wea0iKxeP;Dei(s9Z)j4i!&s@ZrYpY^dkseVKAUeBin z&PV};g}n9V&e}!vsX%}OR)PBN*V~jjtS|styXbY^?^fC`lmh!f$IZI?Nlr2N_g<3b zspMfnx?PQpJiA*@ywitvqXGS%RMw5wCL&s8im~hb)bbiflP0AghqcJJx4+y)edvx- z@=Qj{U-8d+a!5iF#g5vZo=$7DDrCf_rH8#wr?V8(c#NrE>=N7D@9cdm6xhBrin6H3 zQF@0Xp0)21En4<^d-uTJX(gYZAAfqh#A4;7sX?jlavxV}^V2Ph<5^0=OEG)vT}^vy zt)iC|#$PZ7z>D@2H0Rc~Xv|`<%9x{2$Gv=?sQ%${hlu|G7vFyPNd7*0d*-w=c$f~i zB$K}T^y|*HhDR7mQcKqN^4NOo85PZ1?n`X`{oUauN@gUs-uKoi2_hp;K^XR_X|gjN zzVBL}#CU?S1%ah#-gU2$0yFAJQkkB-^=BuO_KAf#i1OT?%}sad3KDf~b*HD*@1TkU zPJ?r|eG8=6VeGM#LC@SaQ56v~*w`LGM1e1BQp4TNzVRqZrHwYDTHfuXI+Sj}ZT)$} zOFPJoG;TF=`a`MDkR4tU1V6E6RYpXjY#V+2>_0k0l*<5XzoxIQ@bXbg00HOh!>N`X zuhzr2=U8crLj!#t6lzh=y)kc0A~(}V41=B3GL$ueuD(=_bDhRP?0WUp$Y0(4`=t&@vq%v{? zdkH^6yy_VwECOFqA2$z1>&RA9OF64ngP(eRA4Me^pD)Zg6UuIzqY>!+KwUnx0_tXb z-_P=pl(lYj3x0g(M2Se1)l!^N_O{H2*?QyQYd}aAtKTNxyVpg+wlb?3aF?%Z`b(Wm0mna0J)_( z>mI0r0dV6^zt{6;@kA0Dz%)*#>-*2^gNhIj^Xz~alau~hiLW)Q6Yc=w0d&!5i$DzRueLMBu9VrKq9$s5=`of{2SUZGA&xd*!QF6uUfgka^jl8lCldG5ZY+smAk}X z=>+KZAdde4PvN0SQ;M_u(?}2T0Jo8{CtrF1D$p9q$3i{grwN2#N7a~pz4e6&?veo+ ztNd+E9CnB#mZ5H19w! z=dO=-@({5ws8Wr0XY#NS5h@DgW70s?z4}`4f)EF{&p#-|NVE{nK|&tiA$gj8OKoeX zFUKeoh*AK3P3!BS*6j?!OO`3nu^aiepTU4&f#C-$?XRY39~3k{@;Lyf&;yUXS)&qE z7?EvAs6MY(7ac@<^PIih06@P|)xR%V#bcC^U4>uDfKmDOcv2?ToV|~@wt|tJ;UEiT z%H0RuV8tP51kY$d^&o56cHVhdR-;Njt)uVty`c`(p$AcZ`|GciM9y8sH23U7>0gA4 zi*!8syivB|w2AYOKzqX*sx7z+yg?XIpb%OPG5M)7R8p+RGb=$>)Hgw04I<4mM8*IY zO^q#~yN_IBj_ zsT&S^K+)t8ucB$=*;51nErPJ~>__+I6Uvp9L<)|e-%gB2q!Q=<0NB`C+YXIdJT>}> zYN4TR&ZEk__8`PrlO0SCmo58tF&5i!4$>T)!4O*LwlB(#9meZX3FZMtHz_ZAy_Gx` z>;V*z~Fv@&R?19$QG%9c5)NUng5^CMgU&R@~Y2 zZl8Uk)J#Id0tEojX}uqQeWRNUX_i8gpm!d2`vI+@>kY;VfC?ZG*FK=Tklt6>vEo~K zxr^b34&i!t^bA#!c!Z*Dydn$C2tHjmt(s-9a9^mX+-t2s)$O{Ga$UJ@{{V=qk;Ema zQDNHDI-Z{F!jST@DPlnkZBb79y(_MwG`7o)uHp=)`()^!dYi5>;Q*8oDaZ^;iNJ44 z(Mgy>MY+`L(ygOb(DIaBB!Jpfoehc7qw^V=TtKFeLD% z=0Yftt_3U&{W|*s&`&8u@81nHbl=@+aM+Zjhj$-Zw*JdTf=(;LLt0hCYeu*}e{+GA zj1CxrO}l+7QF2(tq^x+%5=&|r{vW4GG)>khxbsAdijavTPn%YT!)`=G=V{A5Yhs*X zE()7X$8vt!a*EmbvQ$!kcJD%KrskFBs5PtoR>v^Ws6pRR*`A@xEe^#;W=cx!3E>qO}z>5=E=a z(@1|Jc7A02VFUNj0dZ}<{@M#c7ZPxCv$msZtM3-2ZZW3c=DDv7wJozLfYRsRo5O09 z2IpS4q3aTBxYdJsAIvUXub8GTZPTk;tN#FWGQ&evKY=*gy&=T9?3wAbd!Jn5qb6Bc zU>JQ3Hu~Bp;qYuhVoQf_=Es=T?9pK(3Xs60x0QD3Yx0Z97-Wz24)3=;+d%sH(H%$; z+{cP;hTi=ck=$BSR+yGSGFWy?J- zT1v{4v8m8`{woV+qtn0lT~=_!^AQ8fO~!nWomC7HfueQVytiY|@g58?1=YLT+a6-( zFBG868S7o2^T@*}lvJPvM)bYy(k58}a}xUi2TrjY`P>etd~N;ux`c@i4KK>wY~6K< zCl0_cB9-^1)uqnOWSK}vx4z#<6_5&mbZ6gxW+WpFNivT@fj>8KK*5k0`-8WCzLit* zOWUO@=cQlmczFm3t+{Q^wuhELCc&5uH22yd&YV(`9;Z#ZKcM~$P!Jec=x`Z%dPidN z7tN|ZE_)J@(_gNJ=kHjlQ7a^92y*%wu=ZkUmbt2}2VblGFLTNitU6GaxfiFpQgeY!+%)uke&P-~?_4=ZWeps6MO&c8hR>sJ%8f?8BbsP+5PO?Rk_ z_A`rQN{B8?yO!tg>|(DSk18iAeuU5+r~xBd??}wzF$+;3sGdijyW8!wK2n~O_VVr6 z&`Um^-a@5fxQgbj^A_3snX26G-QuEtESfp`9{N*F_tF}evS{`Cd3yGSNCYv1CJ zrA?`7SH8Vlq%@@FYTMcSM2vvxXSdY!gCH7t``5|=wj2~5n>b5>-`?W9Ql0xBEU``Yz$tzM4a!15@SwMF7HaoCoAYXJ_7E15i3CL_n4%CI?BV;RWhx z%KrdO;lPk=k>nxZfD8E#cjXFZqckE@Bx?}NENC?{b1Im&6I=56YFYYc)uf|)ZLhyr zZ~!d}2`07>;7AtpH-X)9K@HBLK5TcOT7eoB9b;VS)3r1bO^5OC&K(J6Zv5ze@TeiB zB(<&p`L6iIFaW@>0ARvBf&dmDYG zs3PE8?dNK@(j?qiVFT;mrquap_oc70FZm zAcBe@f(R(2sO76Zp6SXEqH5us2IR-vj$$2xB!XP7hj1fwL2;+lY4a51VnRR|+t*#GFh`^@W2AWxp56V82bp3^!jC_mR6zs~a|HB{ zeLS_Gu!WH!sWQ4(Or;)BB=zE)@FC6z$Vb3g#ryIclYeWfB|9e*pFe05+@+( zkEJ>wf(W`Of(Rg@h#-OrD1rzeqKF`Z3M;}KF@Pisdo>U19>D?|3M(Sf|-W@0K`e15SyA6$`mw&E)?8kHk1hH!jf~>Ik9jeqF2Q3M-&$9d`1s zzOalE1cV3B{Y4{b6U?sExIU2@Z|4u8cNzlS5BE=4^-E&T2B5#D#v+2n&2IeOJU`bc zppzgW2R#w*y6&_yZ~%f!B`^oBzv-z;R&Jhs-VzH`LmBdhHZ%pyePf)Ze9kD?lM)~6*-*KzIr?$GqL5Uca9rk`I}t@*$) za66x4yf~TZHO@K~w`+byVgV$kh|Q>bA3f@BPnbUrjcu7ed%nV~ika1Joaz0-g3S~Q zbTsnQWA=z&I4A}riyb?je)`FjxoRyzOBz<6)H|*qB*9ZLfB@L(j>OYEs9mW#l>`j> z`+3x%HAbvM0cySK1vy*k0i3j#xoe*;?bq!NOG;G1{pmray}UYPJL|1)(yl!G;#s!a zRO3B-+3A>dHp@2Je2&XZYwO+AQ;Iu~U$ggmc?RtdBNnkjSkZ`nl%eJ}@{d19oyZN= zoxO@YEMbUYM*wK{?Y^S$uDAfb?dhC?Zur zPyz%I3=oRcm_YF4yJOrv?mc_ozvtXD_MdmG@%(wmSmjxBtvTnjX8i7d8&zM(&$5YY z6bF>)s36ha?V9vvIxkG6ktrXRC|MB_rhJq(3kY_Ws4+esYULIuyrAkUqh`Alm^CG8 z+iv-x-%YB*SE8b^hZ~k(Q{oMvv5s^lOQ28KBwBsG`Sq^W2=Ubl)pS3-_G}1+Y-oC2 z6H!{WpreRG#K4!IyzC0p;oB?G*T|4XyDaa!rSCN4BfwR4m2W$jZu|U21ij>GKbrAN zeF|?q26~)CLmq{?KL7Ef`B|ldpQ5ak1Tf{R*vgYcJM29jY9)iheZ%M8iZ5}6?RX0d zqABquk$|YA_mi5QAfT-ad>Q_vEm40A1jx(&^1zBGp+E4N8{?qSy~;1s^Imk%t&3Qx zStC(U8O-jq8PqaZ>PaxXCUV3!6-PAHi+1UX-jwFDIz%;v4UFH(Ng303sTX)nQEx00 z*?#Muv5&wj2>-#3&h-+(4V3t_myc#92T7s2Gmsj*Vc+ngjhvjme}_JAq4o)dM={gz zhk9d(;xnslPa>Csg`%4+Em!NZ7QKz)hN6Ko78EkA?W`wH2-*t4u`MFwu5De^M~%B7 zCs{t0q<2S1d7(`PZ@!njbikcQbRbaj1;hy>_0Ch0LTk~et8o~7N{uMI5}=4&b66sa zPKH*iDxS_7EqP?aK+K<<-0O~aH6Oqtf3~c^Bs~luZtsdI2*gV4o@<{)lNUvZh>4TK zlszOLKr0@~)#R)ex=w6G91$cgh}5#T^`sJ&9q`%SLor%-7}9c4Q!iBAJNGRQO_h%Z zxR8;8A#Nl+w`*0jqbqZs7<0GoYcK!Ro$4n0tNVBVu4V13nMYw=5=`@TO%9gx;$!b5 zS|YD;Cy8+gTP*iJ!ntJlzI9PNSB!=&Cce(!p3xL~zRObmjP=d{W@*&KXf8*+a93kJ zz%ptOB;!hX%>(HB9 z60Q904GH9Q_z1{mf{9b^cQqE{(vw+7h zB6s;|(hZ7v4XBZh$Nq)9> zOg5=9us(|kQ1y4?+6T)s4_G2Yf6nT9ddzKSxWd(YBLrx-2k<>@Cm3_OhkILGkCflA z%R2vMG+V5%(8n5b@g;PdrRk{yB4VQTZI-ZSJig3{gMUggQK4>6HQ2>wNqcoYNMfCOz@X1wq%(ez%lQOvZ7-d|r;GNH1w$8MQ}Y=gAB-^rlrFE{gT538Tp^&4yC) zqJ{uOSh>hB3t|8Yi>Y6_IqJ=q0AOR@NjQ1d^1XH8lpah3K%uneQy>uf4XX;7h$=HM zeagQ^U;m89{t;9 z*Jnp93_A5H*!9gW8Rh5w4(53UBV&PH` z9CAWRBo)u6rIxj&w#Wn_g3ElwJXKwr;dJlDe<$-exgMX-OJIiZCwE+KL-frhahiad zcdQg5o2S$K>y)}Yh>WUB%dxigPR@!cXtcEkAf+p`MYW^+*GEt$?|ojU;|F52nYI&) zbm;Z670{siy_lHmkm@;or+)45;W{?A%k-^i3nxy`hWLsu7f;c`fTIksi-RV4p8M4YbA@xz;6QQ|Y!qBTM?=8uLC`c^6y?Iu2uvlo3Uz5n`WqRV1hzb9)8 zr*l=^f%(gW8%*^NK<9woBcN13q2bA`U*l&iHC+MGX&Z8izNX*A<-)YAz zfkFwB0Zpu41MBk3We9U-Ni?UEUfp$;tAY^87^nOE6=q&QvR0!n5Q#nCS=o`Bsb?Y9 zu)O|(OZ!TfE4Ju;gERa`=UovYEm=v8h5Or15l6Jm@d*tV>WnT37lIK))FnyXU7?tG z*9A5*@jyV?WzVy(-?FgNG)KJhDco39y*|z$`-U;cmU=#F(xyU+7SY9P>c-v|$IhF+ zqE+$0@y<6`V5Yk2P~$Fyie5#%;O(&jNGKg97`+G-^AN6$RkTL!Yg;d^pkArIysQ`A zeEL~%XwNBj-yY4QZ3mDDYt* zy1$cDwt<;BOw+1O^5I*U0M+Y#y`dhQ9iyBN#4Td+lKEx=X$(AS95vsV(1k$hqb;r< z*SDZ|^)l3g19pv7mrHa4riJ4XJ?ee|qQ9m=3SoH6E}GfTv0R^91!j>(6Q;vD25;Upp z^Pz^IgkTQcm6@rHOgj0CV-B}u#XTNm1eE*bY|&&_KCxuig?Xo%D|o3?{nW=dQ98k%0Qpu?}D2pdcUS46{oEW4jNq7I@&k zJjCl@fd5pbRL(z7bcqQT**)!(w;;aJ;$q=g6dQImvJpd4k6M<$ zpY|SmTTwB?z_)@%*Vi5&yj3Uf)m zV8qQSJUKkZ_h@8f8Ad{jnx+>oG(o6g?x{A`Xf%qk${qpJPYCGMoIP z4!65P&$sF4lAVP3%jdnO1Gvk&Gl?h)!CG3cK??ZdQ@&3;RUc6oU(uaZq_@b^HMn*H zR?oS)`ZK|bBt^Ri-zU6DGxrZ2zVeQXf?<$M(__b~((B+GmXFD!_C0QptL{F159WVg z+*%vO=qEhg*i)2pRs$1-kYvr5mV>Iaf$tN4RwPODWx^6AUDe(&Y+3RTi;C^IW<`sHPmYE;U5kG>ipT@j|P#4_jZS@Q6s_aE%rkzeOK<63V& zab9iYaf43Z+~L;z^?RCWLlC}R_a|RZRGipI8hf{J(4oRI@jgf(U*0EoK~*o$bp?bmHZao}s33J+rZ4*)F+SaCnL^M&W&6(!dq6_*4?Ufp5u>t zHc5Qgm${9=C(3A@5h(=20*FrSx?>@QP@x^^ioU<}t4b-U36T@{xoF6#-6B&nUh*O4 zOs!qcEaJ%gr6pplCBKvu zqK|r>nDTjmvfp*6lqDTpyftiC{$W7^60R+(e58zzZjFK@D@Smk+!4QfB7N+>G6nn| z>eC7TmN($kikhD3Pth2d5tNsumj&beKg|r8z1P=Xg11CRC=X$ov>`^gl=UGgv-P;= zI(JL#iv!$LG0mdJKgD|CZyh&Co*gnw59!dtAc?0xyPlQmu2mTLFS;mY-2FAJsJe>n z{%ldSdcBEvHaiHcQ93Pkps$;qoS1%ntVzog-!SedOVB{*m*JlKSx&9HS26@Z=NV6* z7xT0pbR7Uk2sQhn6xC-TP>H-DNX4b7ozcT`f?t9grUui$Jv1-Fz zyHLl_wts&Lk}-LS&xFzRIL{Ei2!{g>Dd z7eg}@DSH@J7sv~cx5&FSE%B4WFETHo62=A)y)J&ZU|XGCD_hmN&@(V9Z9F+%(3Ut-l_gU7d6s`?h_b(aM5QoTMZSM|mm~U>f-cAiD+Z(;bygff(qPN3O7t0(bs# z9QyyZQFn4v<)j^_5Y^xh(u*T`LK#c>BjQQ1!%N5>-_>qdIl7d^2pR!^klS&!Wn`bMa2{kzrood%}OMg9bdje6W9yKtr{J0_{aCpv> z)3M7AHS_SNH_vM4+BgPChAJt>bX}9SqNhE z#qVpKg!`9~x;ykA%ENXd1mtwxW)`1?6EC&Vuc;?F0SOO=++H}^Mr*T3zS9n2$D&OW z6gWnnQivFL%U`>W)o@VDMx0-}x{`eqNb^+*Yu2v-ew<14yp2+j<d+mqhC>>*2`z7Wp+k)6g8%= zZ}5u!;}Kr_L84!mlz9}y!kA1)foI26YD50w=y%N_89QeN|LL-hCGkg>kr&(8WU*4Y z6OtxNKbfl2l+{n`yrj`ubC;MJOTaV#K)$rr`sr6A32MF9^)xee)&3cpK5m>~f+#G- zOrV(tIg{m(ce|b0m%xW3=J8b+Ng`E}q3(mLvCB=EEfI+HsQrpW9_wW7?g$NA=gqH@ zi%vXpjyz&{Wlk>*UIvF;KQFWsX_UmPgrVmp@`)btnjbnp+AYi3!W`Xb}Lnl{{*=L4U(52$269FPAo z5jWrSGy*&N_$FV}7dfj(MBlJjYO&Sv>)J+VxbDe1Go|w0n$ey6x}3Mv@Mm#as1N!| zM{IupqK$y10-o!+O)GtpwN^%p>H-u!8BD_D*g|WVb4)cnVSUkRtW{>&6JsiBQ@pv| z=}suHZ_fs^ru$O=7XOgiU}Xw?zWceV@3R!;&fES-(Z=^~TSM4C0Ef;5R=IsBgGA3d zo5gziYM(WpP-SCY=`8kO*$H7%KS`cq3tGLHzn73Q(WM3-?;kJ9o%#c)2*M2l&QxbH z@)n=obwyUp_K#362A{+Y6Dx^))VRKy{##1-KOp`6i@bb~5BNcqU_OIo)Aa{pI-fJ~ ziyQ9KA5iPIe#W(lTS)5uh#EPV7gy2@2_UdSpY_SQFuxNwqJetx;n(fkwF=F#uT@V| zlFYbvCz>O6(RAC=L@)C(__0l*-h{=3h6Y?9##>3ds!-`e{~thZ(y+{^~eUmVa?#kA0u zx1BSn>ixXgudA$3-o9(JG0FxeZEr7Br7*ByNNpkDUhnK^uCf+1Ef5H9y1!mBI$;J- zm{h-Iuf0kG@?}Csj!7BQBZ0Lxk`Z!Kcw6;vb#?q8hf5rdzx-tYs=VwoJMj zCWeCZv#PKO>^9iIcpMIYmU>Hx`Q3s+vHkDF>j%cg=`@z`&sWv=-jlJe{9Iuele=e> zB-X{@ZThkP({>UA4i_LXF~+ss!bG#fn^!$3>cAV04Nhi4fz}YaD1-|?r$;nzD1#5; zh`B4KQ!Y|1PuPy@QSfj@Sr6e;cE^W#gf+ zhmKaOKrk&pmgRr$;-mcA{P}+p{QtZ_TPevmZ)7T<;qc%kR#N69@?fNMg+d*r!0{F& zE|(a0;|Pl^WfA`l!|~2yjm8@#_3XxLL4lmt5j}T}1jzeMeRVg-fFYA!I6_|a(41>g z>>6^dx&C})V@1XQq-{}PvDK-{>3o&N<7wf0NEFf|eVqWj2_SkQ#?z=#(|)l@6hre@ zcb72c|SED!wx7@YJAbGUl(Bmm$e=DByea z>% zQ;Cx$KaAoIiu}xZt|M<=i%t0pVJfvrOztws$gPYIs+7=wws>PvLv`FY+t(!XQ)F*G>lT_;MsxwXHuZff0B9s7hJadxBNn5)IS14SVlE9vR=@6!b!wj zTTIE9r6qkC(=1FW!K7p&sP}p^_96Ih3VKJ}Vz4L^TMTH1Fa{4=%uSOMfw6DDi(Id(* z-R1HZ_h)q{&5w8>`ow&xT2z5`>6qP@e?5(+%R#Zb)5M`)sa1vX=xfp>c)9&D%v*Qe zjdIvD7+zPVJP$zE_a^V2MQYoCNg0C|{%^;?f6F-kcl`80@If>&QXPdD0&31NIUZfq zP#aotfFZ;bvi!ao?L0w$OOXcrDMWcISmZmSr<;Y+m#?F4CT2XMn1<#=9{eZ2!pK!f=O9g2p?v1 zQXp98->5+i41rOKJ%!m-C_e_i)HCRN*c$0S7f*a1IdFF6!=qQL-LXq%ywuK)J6FDU zm2w6oBK2Rh9V#TY3i9v7oW+e!NONV)Am*tvsl-vl{C=&*sdW&6Us~_^&eu6b1q(4X zY%lXS+`{qcVzPN4i34gFb(_vGcTM;ofKN6|>Fi1qB7hr9`jto;Kqd{&G+%%d_|?LF zF7B3fRo}PW@wtq?c=xH=(!jdTsIU`QrXq0?NGfIpiaT#5a-+i3h-t{0(K*lNxk@?~ z4`?N+?`bjOharaKJbYB?B~a}AZHcHzOuSHl=9;TGt*LT)2Bq0!|IMn`zk;()7k>I0 z0u7xroW*kpqyG0c@ozQs|1{g7%sPWugB?yUL6FpjVqK7dIqeK@y2!bEcd+!oNf*_KJ z5+y`={htrd$LGtt&zF6!b)CKTIeVSG*1GSt?>^pr1t<|Za2)^y0szqc1>CIxn)i4A z|Jwfs`TsY<{nK~702LuFfD7P&xB)N~2!{%EHwdub&l4BtUJU%-hJ%ZT4+0Yq5)t3a zVUz#}jEjpyfP)Ld1%to<1qe(9;BblKQmdQb+56(ta7Sm991%42(Mrs19uv~>Xhfx!RMML>8jRipwyIAA<59uD69cf$h! zf_pt&fH=;*8hhVpT<&`%O?`8CG!mP~8c2Lv9tS^3G#w;{xBqSxAjJXQzYz`SPlcdmJqf|AdQKlLd-CQ#iSPM!JYn_c{1! zz^!c;RdU>L9*-b39R7kW79s2P<@pxB%u+84`NKX*5SngHAS1i;2lljBooBYK3nnbh z6MpMW>H?;H@~3j-4iHNc`q>LjHdkGfXd=^0|L-?D3u-XEDAC%% zvR#_|*}*rJqiDta>wQ{QM#|odAeOe_yUYAIu``Q8pU6#odF zZ!CQ+O&_Gtb{av&47G~#^}Jr&MGY`9fB9EaZxC6vG+Nr)bQ^d%O$?zH_H7OPb_WFa za;d+%UGGcKr+<-^sa&~|aJ_uQ>~>t1h5BXcD!Y7r^Ph!mO#Ti(G}b#m&2{;`M$|6( z7x`gxbK}mooCz%aT~6fsqnXTzXI)+-lz}frM;6k1`mFI)>;qqSo^H0a;?2WCPvVwQ z>I&&aZdRIN0nI)h_l~{V?<_Sl|srocrjr+kydwO5}s{5OK&u6HP*BqN8rpEaQq~G&w2TmtwX) z_Muvu9W&TD=S^gdlP0xH+;UXOqy0Yz%>yrA1y*!Na%2@7yYLuQZl}3Zj#Ncj+o|Kd z+NS*Bq5k&jS7gsfnFHhdIkk3zQ1e8!7>bXFB*TQb;t9qey*prwx4XXi#lJYtsQ8i? z;{OcX8Q3FdWXSb8_sUA2K8zQD)waO$Ct@-EA!nly6>@5N~CA+*RMaBOl|N7f=npFdT zuR4We@(5^qaUHQFc*|cQ^{AX`s{47I{bFA(=Te_1G3pKw**Kb(p5Enf1n*TQ*{wn;(WWXb3vI(M}mJvk*>wp@{5@Xaxbx05L9){fG{2Rq8fxizDLO z-7p}`rf8dbbzqu>Ry`&QEXwNqho$v6Mb`d)3 z;}!l6k2s#Lu*u~&RAqi)5wm6O4eyDI7ouHNRKDu>caHL_z$Pfec3eX*u{J&NacJ!h zH}C4oI)xkYvDcb{?-!dIx$l74eb(BCA_lvf7PGG{AMH(T)cDg#OZMYLJ)Xu{d1Cv0 zcCp?aB0P$lqAaZ%r0~AUad=Ds*x|OPci}qY$5t&fO~a^{X`q65oG!A66nP?#kNM62 zPU^KsU#GWy>mfZ;i|LDNoK@-zJaboE40?{GEAJq!`>)k=R~G}1PeEeDz+l>1kby7) zy_uk5p0H3cnO%4+OE^B@s9V(#b^d26pd|qAln5EbI z9P1~iytd|A%Rq4lB%8I0q_w=1iAn!ZFcf3%sND-3?6bh(d>-YjAj_R3W zIqprK;ELd|ZCjYXMmGCRqT@+9hNkqDgA_blr1N>L%u1thR9whI*&c70K$?W9oyV=X z?QE4q*x<+?0i2}u?UW;wtqv078p#^8==Tu0YH;88FYCOF&kUnR`FB4L8fT%^XBooR z_EtQeriz4VfZ#-gxcUF3w4YRPANKv#&#i8|t}!RlYlPui?2LJbZ%M}4WlFd>SI>Wg z*mR07m>B9P6yfygAyF;7P$FV@s4}5&2l+O(-0*41lHYDP&YCx(Q4&RPOv~aXh)f^rde`njy^`Q2rHWR!;tT&9rNEW=qr(34z5VyX zaKi_!O85a??Bf2$Nq)wt7fUmTW^U%J+!GBmX4(Ql6SydupO2EPQcBJ8+rvX^MtPq@qjmJmyq#m zU$J9WxdaPy#b3R?t1svqW;Yv8=ERs%)UvZsKY%DAmp9R4L34@e=HU`sSTB|&YGVx1 zeqL^hiM+;l^lAOnbi-muQ8S|%7(A*2Pn01yV3e;#4ji(-`n5vxT2SjZcUx%B zMj{qXY${(CU_4T1&$D`w)*}ik&T|wN~4kRqhR25qC;rxU`VUr$e6xd zzYGK0vY9);sJ*{Eh`kRssMB-b*OyX#2nmwn~f$?v+-FY+k-9;ocs_~C7 z3giyRus&?_lNg0ot4`bDg->tCkJ-h{GOk$Z-PNCMTM-e0z9X`0Xb>B7U+;i3vNK{M z_wFp8ZU&wflFhJ3iH12TTb4FTmx-@siOUTh`jn3%X*H5Fu=-FqD3L2VXsxGy;vmPl z5gW3@=?Gbetd+H$AeXIf)Lh9ENj2Td<%4`q%AR`T`*WSpTIm*r(skY^>E73$`%^sjb*~!>**n*rQu0aP|g{E#Fmv?HD>` z`<81now<<+aF}5Z!qoT&xTVa~^pKb{$X*M)H(+Al^SbN0)Ra!pnsf+XlD>Ge#|`hx z)ZtD4M>_)=jQR=Npir^b=vs;+v`sVg*qz$92g0f@Zudh^QmS&9e_!)JkMR55Wb z|t<)sM74`v15M0E`1oSirrT~e%fvs_xvQYcUb}j;|K{f>KjQ_?c{*J z;+bV*bzEH(U^D!HxfXf{)aW(iyC!wXWrN>TgutNe^zY!sd|691pLuXMd58pwNb9s+ ztP3u)ECZrRaZnE$7&sW1+~g7_;!&w$04d6*`x_djgk}B|>>_5LOeZYV;fb*1>!_H8 zjvO$fpIR%Xlm6cGsSeX+Esu-A=u6TA#?0a(*3oH$QoiKmVxRZ1t+?Z=9}ptHSih8P zTyH%|3QUV+-25BCFi>d7Xhif{ijF|T4?PId@z9E#ICiFZi4il8j$ps}hL!Ux@CA_ib&DiCns4cg9iLkWZb5 z*vIrLB^Pg^5kxkdh_=3N z{x!^OQ|?15!^4ug*`=7cT~3b@JBi`twMULh68{^5@b%6hsh83+i`F9#Deugp*96;cjt# z%mX4p9acTF4&+=m5|HetkeE6`ly!(0jVeVLs|3*ffS;!G;b@jIM z63*_LX1iRgT)dip>KJ%nVz4tNUF~0H)pluZA@h6af!7m{d0JvejlnKE^K}nh6PB2- z9JUH=1KKjyIN8$Y>mRl?V&AMN4q*6Aia~7+QyVlXa8T*vKRA{3v}xwg&SSaXUvNwc z<30<8vL>&sM~XRFY;0e?ERIRm{XY^Wy0-RPdpFL~jM4fJgRWfbFYW-!I!Y6`lVW=0 z7WuCqx?ldjw2MhL>SVbC()0f5ylCop^))7WfjeZ_uhP5g87{2_BN;)tb5x@nXG}6@ z452_N;eF>Ss{Fg|)Gd>ij@IOQjhW%M9%3Sf-y#qA= zth`q65tN4u`fQ#7D`P`>x8Yo+XhAaTk-ZOFIu3$gTStE$*IvYDQfgaz95krzLdUo* zKOOw|^2GW%n>fVgVT5();SQM#@AZBs8_Nd7h4;s_^mX`V!63b&GST&=HgN2WL-BLw zN%;4l(k#+KUsxG#RgUHzSmoZ_&us5s5^tphY{dw32MCjna-!TE`kGThj94CN{#~tt z?MMiFf1io)P>KB-EOu`$T4t*Ps002l8-#{SOE#j7`v3f;mU1q~llKOT)~ zijftB)qKhIe2>g4aIzkARD_f}6X^5%V8K{I30e>fPJ@QL{e+NK*# zeVkad{|ngOo_`S3Dtmc;YcIhnzRW5*_-iGyU=z$7PkisDtZ9r%R|Hkbe<>Ha1*pkV zCP(>6E%+`RsQ%Rhd`B zA2VJ&UBA5fiDxc_^lSBIW?_$KMUnLU-6ym7O8NMH4RX%#_|ej|pI!Sy7WSq?HR06( zXwlkdC;4Xyo;Tf*3YyN@WIbnp=7l2f1J=?P_>l$1kGHmUyT2|7czJ~mR2N6*%7*?a zS=g(S{z;GC(G5JOBQ~w9qx4ddY1v>ggb|39lR#mG0{>OYE&700_LFZ^atj7X2Xjhf4|`tyLl%}R)0K)i8Ei407g-z2 zK~=cDGm7;OS9jQ(H_ZAx*7@m*zob$v>I2xGyZ-HO1x*6(uc%@Q0gL_Z9K_@~H#EhRo_FHYGu{G2+d^M|UBtt}P( zdnHfjL0aheDK3=k4q(dREZ@~YzLBpHc%-SrK?)UjMyQR$d1hNRS8{r};Q(*EiLrq2 z#LmY{4Sy#zlA4;_`2k9Gq)lMYIyIYPW&O(RCG1Pk21&<9t!U%FsNCq4JHQy{wBqn& zjzHO+3l3WU@KR0cR<(>?{(Fd^2|3Nb-f9szE`i8_>1a+OQ3;n;2`(>`SR~B6-3~hW zZ$xm>WnLxF8|7&hyU25v%2r#|q{FYXK@IkX&sy z`1q(P`i!gF{C;y?f^t^5G1AN&9O+2cAo(5(f8I4*K3jbQ;kH7%K!s?*6-~2COB0w) zh~eWPI~+-ZM%qY)!vFf&E`R@P`8BXvA-{OYytyFlZ$V3L7Nsp!Re1)JBmiteKg>{7 zfLN|Ct}m*urFNhIYtpzsxXms=alyXJaJ;ZOS-%6hB*j{VK%o)YrHp)O9z#)lrD<~% z(Y*!w`x4{Hid$eCF$fA;{KN56kH&4LPuBTJ^R;fPmADcED6!v{=&!{gRcf{imkS(j z&BiH!*L*v_5?67%iWqajjS?x9!U@^eqafUN;3rZ&El)7Rjd>)I*1z+H^I>+my|1J* zl*S}4Am><^cbT15RNJfMI>@;5AN*J{l1|%@YNx>uIgdJfZ0}wJC9%@ zk%ckbK_ehiY!YWCNzRbiDXaSF!`v9_vcWU%RQ#5=X$}_yI^5Q?1--a`6Ak)Q{{gpq ztDIs{aN_K^Z!};Sgu&QA1APVv>?jQ|w)%8)$RkKJ)&=CHgrw_r-aD*sSL_-Wm&sVLq7|=qgF8+P8th3AHA!T=TzSdC%!s=b=l;jGjJC?^6lm*hT85A?ob2fCgsW$b0T+!YidbwbpH`!Uvwm^6yuvbxvrhruOk5A$v{!Zb9}=(*Pz#9a-I8_RZpM%-w; z9!xm%HS@c4s^~aFd@YQ#r8TO&+*J@Jf~ru6gA12ERQ_5^oqioxp(&u3S@<~jC%p4NY#->%1y zf(gaG#SEoOdImK(g+p0I)6erg5b2vHEnWW#>lUb4PxI!E%$T` z?Go_|vGdj>+eYe;k+UTP+m08(Lr6ziFy_l{M%t0c5RS8sda&Mi>`2hRjfyhQa1!Xb z1NgY$;}{l6@Z_Th2anmFcqnc#^2K!cRZb2W4(JJz7byMG+Q<58Onrvp%EV_(1{W$h zm`nVyMq8h9MRm8%?*I71k~+g@g}_(K_1h^nFR zcvu_`q=yrN)m$65yH-ZG9Oxt`#Fn3OTy>mNsg}G>%oW#&ugwj`m%68ZrUS{JmeDly5&Dq%faRnU~m=BD2_8wv)G8aw!nxQLH&bG|(~ytPSuox_EkPqP24Z_}Cc zK~Gv)gd5X0xo72cw+dB!mQOTs9B=5!(m(#KBxYGn4XLU|;7FuUqwuQ#xp8<~ zqG@3`T`KD~Pg*_bC3eL?jt46dOCbZ%P(c6Qs@~MqR(1Y+T({_!w@F9?UgERRmjG#) zp=>>kp%CD=0n1oxn)`s_t)x5z3eVnz;ytDl{3hAd?l)u1tPmsa|5v|`4;Mn3qP3J& zkpd>k41ew|EN(pBO9@BITyF>;J}R!zq6Pqbh)PNPYop!H%7wQ>$K;Y}NFO467j|QQ ziMU3LKB4I(|Lqbjxo*J=hlk+JFZ!K)a_P*6zSo}YxYgQLZ-NlUAPMKV3SI%+|5BRx zT7!=g>=i?X{;8(?K1vdx*)4rK)^TkL0JyXCMlVyU9!*{i(4FZK49NwN3Jkex^n9%69UT@=3O*=!WY3j(T?tX>)QCXq_t1_zqzBtTJ2K zD-}9j8ikL5#@lm;mDcsB(srKH_!&D~phJ-0a>yI=P(*)cIxkb0hUj?}6Yn(?<~Ih)Kl2>n zKWZJdzzZJZ4!iWs%5}pM&(lgYKn)TDNi_;p`~%l+m~WU55}uZyr%?4<H*%P{Kv0^^+RiyyF{(7!-6(p=mf)sl-I(;xF-hltmV!|_s3 zL;!0=A=A`EF6x;!eFp>Gzm{;w9bgl=-`pIj*U1xikiKwBB1_(7#56FmMeT#m$r@Ka z-HD20%5Y5#cadrFEAXbEg{c?C=2>nl1g}ZJ7f`|@ZX zmX)zoaB^Aai49k#+kbV@*h1BP*+RN2(mw!duKZk)LL@8Sc|mu zcr@8BDDq^XTsRP~w&c>{6@wbkdK)^ti1bm%eTv>LH_@V0r_-iX$E7vFrBwfab;1pi zcxrSM9$}Ym9xd^KCmvzfgQfE%b7@7%pVKyu=G>WJpYHixc9rKMY8OEn?f=|EcUX^} zt6I4=p&pmHa6#P2v*JC~UG4ya8CWJ#;5qyDbr=~LtePQSTIBcV;>cEW1{o{vEFPV9 z3h&okxeU0^sl-|mI9L8%TH4DzqR|lzv|o6$dg3|zt&n1&4WSZtc~ONag9-^i_Zvp; z5fmb+XZhaS7V{7@4A@`N@5_@{=e6+Yi6}!;SX9wVx)# zBDU&NlH)~Z&$0KQ4AOd8WsXN2YV7apSSN+F&cPR8?f>FV^I`$_JIt6=lgPWBZ9k^L zW!*n+jJu8H*}}iG1XJFGPX{;G!QOOc{FAC#a$jCq&mF?1j)9TLq4W4bDot{W>{igZ zs&I=8B!Azi;A<^0Zn&I6&lI-x7!WpLBqrBRyx8Aiib-p2GEGiCoY>nHBce~$aT^F~ zFe<_d&TBf$EToTIoi;HgJdwF{)1uDQyk-P(4|(RZTx8feN`h z9uU?wl`a2cQ&~BQ(<4~>7RG_ji~(CWMX5La<-{9!f_9Fa+)7zkcuGOjvut=u_Ti zK=FqRipM$Co)@F40cfgY(4-G2h>meYN<5^_lXM~G)kt*fqz&~;C z1~R=(j6|`S10HL4fZ2v4v42Hak5Z|ELly}Gert7`VhD}3R@NeGRC3i?SwOq+@uZfK zb-w|=o!+00A0*+YX-e9%dTlbN`%};2@y^=ZE<+dftg{)H?tq{SyTDNG32@{#2wO}b z>ZfzH6yNP2h$Mck$B7~)V$N%(5N)ip^hx0*{q@7kiR8(nKjA#6DtZ5o#k0%4k4pk_ z8|o?FZ$H-zM&(B1vc8vjvD9_3`#k<{$By7*b(>~`wy#{ z_V$-)3Of9WCHebLu_RGyp&z3s7d(cwtv}r0+{A!3i+xKSO~#ET_#551p2EzG8QGYb21v4(!CC; z&~vB&)ctz1rR)Y>#W1?rY&j^-oa?cJiy%`o}jG74x+2nF0X*pMRJC27}cF ztqtBVQ~7!n76mss@^WiTmM3uUzA9;cc9Gc8?*7ij)zXR5tT293;Z`a&i&XM+%2Tfh z>$6fq9z%IMWdrf4Y&(Qz77Alhk2JcRKNgP7s;IY8mmdZ4Lms`BS1wgRDvpgp<^AjA zgjkjJenD-we)gB+O=W|b2p zN~}Q8DR%T7V5pqzC#b*5H3j=<=G{;*3~ZL2ic%N2jCVnr2*mhD%V}HCgt+nTT=7K( zq#P6&X}?MVN@8j-{0`_EL88^kDJ{&(QOlswwETWKYl#UBYFiHk*t(@A@qN@OZTvmi zmF2igDn>w#siw|idWZfACk;dP+L0+~zjZ7>Dv-+6(E3)T3vjW>|m~MCeN5hOgG&ECX7MDHiOF4 znDVIW(c#OA^No(W0X)(R8qrI{<&! zAvh#Ql0vT3ju4xaB!sLdba7ydrn}}E^le{{q#W^8G8=LbH%$cjTj=o**}`Sk=E`Q| zjM54mGFH&K2QH(`gy`LMdRh7K(2KCacpe?aL%n(py~RkannLEkddZ-8`-hhhmQV=^~g zaf1!C$s9UX)8>y2=ac3ux8F=EX@_6X4AbFAQaeRaae253z_Oy2nF*?+azxxMeBOPF zwvJ1nz~5;R}>TF7^@eB3Fla$F-S~@LMX9+|c<$okO_x zd)yAjac^u|s_5kJ=`>1&W~Le*oOd&zWcBGRF}h$d9+;2yMDlVb@m)nk(oP5fQm&4W zzV0>IjaqCuw}x>AmySn4y~r2>IV3}IUp{wzD|)7wsXqOeumX3%a)7~u!DC?#2nCf6;Ac*R`a6q&=}S|<(?!6lE;Q(E1% ztu*lH;ha%N#7s_ptA6OMEZa(AolgIlDG`cQJi}xCea6Wf<*|%$Br|~m&Im)bUg)d* z^%KY7$b{Y+j~M69s+4$6c54>JJdfGMV(tIr{%+g>i5g~^J)lF5cAI1vq>!ju6H%`6J`14?Zp8VjXKdMzq%IsQ#$ zS(cV1(pEL*t4VauJx;4<(<(uh$cz1b{bj6-SAdY=Ds28gs(1@qujvD~#APD~(NIsG z=FE0{iN}}o+Ewb3OPG6S8_=yV|uwDlG)8-oPZv( zjnd$?go{|}kiQGqtl1)vM=x5(OFczv8V66@Ek~%+b+Q8FG&fRq2T-N_C}k^O^TI4; zS#id7#`W0UZY(|Bl%V9DFl)p&7joelRMWE^>kv9i*9;f>^&Y2XT?@9&m?0W}zqwSq z(~y4plbOLKAi!x>)tOO&CET)kkWlR`PjPK8sU#z44genRh6UBjoos_m*Az_r9q1pp zwDpF#<D#^v~VRSu#*xj|luKmZAF9E0^GVCqa*EMzD;cM-Hjl~;@ z{y;~vXFUXQG%2lLho6CgeH+QIBMjFAVRS%md3Oy2;J_$+q@ibr zjs!P&h)cLQrj#OS1mOrZ1T`&OP#S_NCE^dPN->_L&#gb`uCeax<**^r>qr}7eEOd>lsG6#az2HI4&Gn-yl4;D|Loxbk;S1$0< z#oQdpX#N`eYfB7~+yox;$^P&%5mzdo{!HjWhq^$YoSRRpRq;BwI3U5XBe6lLvavwN zi(5zXW`?oLtQg!x;|ldaju9jK;lJn2>NSXVmr@GSW*m55@_HaXaRGd`W;OEG6BwF$ z)}Bi1-oOxhxW;@bix{bzjO)tSgvaa!M?Y0mR!1^4n^6EmNqxV5rIy6D-A1T?qUN(S3wiNPqh7nwWp00!8^(({0}y-yM(&M&+?P znLZmLR8SmFL4U)|hJj)i+bklUuU^6R)$%GJ5WeD0ar+Wxd1;&mEqclrjg;*6+0*Ws z9S&=>QkQI-_1}be=KaYRBX%Lu4ASxjW1MNR#iwyeyhTQsgawPJ2V2Hoj}~^%gh>~X z+ITjXD*w;~Doyj~$1t0QG>L4yk}UU5sZ269u8pm zf1m)N0x^VK_aUa}=+^%#A_5*ROUI#LoF7KU|6Bw+OW5j#dQp6Az4+H|o^}=a*oZ7S zkzee)PIve5AN5`zhi|&%d?Ur#`!=UT0eB-hYZ2*Pl1M!?$h%18n6DJmnax=gIdC}u zO&o_2E5ytETsoU;eZ@&FOTN6V{`+uWpZ<0?S7fX3#mRYmEnO=`&+*X)oBqPgG1(ge z2OPv*?V+`$wlEY^=ApM|_BS8gb|Jb#6R`xtzP?7i-Y&iXQvf{G8Jj>=E7fn;|HJkPc{(0k-y8;u zo?V{R;tJqm71+PNG3~N*`edp}L@@;Ie6V>@{9p$tz zUaDL9E@kzXJiAgr^vRQM)MqsTN;T!6d3Ir0PW+|r@Sb<`0tEOFz3w7{DIcyR9Ha9* zeK;4{Hs9nM#jsV22t4?+H(sjUw@*z7 zAOHR2hf3&KY0Kok0;LMo$!S~}MBJ@Uh-g(LqsbHXMZq*A$>M(it33N@!f| zkGT5NFdYBG&~$W_7^h|9v;7^g5s$JRF)DI%73ZwVi0r-%+g!bO`?O~BQSz^e@IeZjm-R5?0eFFec8p?d5@kT?tq){FB>gfeJlgKkn-1>>zd!y?WlDMy2Dx&?%fopoJ5dokLzXVGhC+`=V zM?+SrgXP4?w^KbuUp6F>B{u{i*F~*QQ9G5*Ub2<`QToNDOlrU?^;7vr8(efy|7>k) z%-odbEk{vd22@^;v-B%Ikeu26?B#pXD-AeEG((Enq)(~gxFtrh<}1HPM&9Wr4Y3d9 zon2$CK&Ebj)Rk;-5u%SFx`Nmy++SainP5na=A8iXtv;ZEhwmd;YTluqX3(6AW zW9FFWGBEtDtMvV+TCE^q5%~BRo&7_eT;SO^F49j~yxmANK<_6=;^JZS*=#BhNCw9qg6G7o}6AQ32M^OQzH#&q6@Dj zdizM93vRPhE%4Z0YYt0^0@2b+DRdQYNuTh*OlrY%;}1Bj?P zIs<%+#4U&HzX`nEbr`m5LZpAz^a&k|;6^kdsi4HhNaref1Apen%lAds3k74@Kk=Gr z+l4KBU2aQ4s5Mf`%bk&7_&Za2pHkW$H-1_Iy-syw45%V@if!v)|1Y_Avt8*E!svwq z)2K73IwGK!1Sz^suGNT)E5`s?2`nZv7C%TBBhz|c!Uw8~Ib&$w#m#c^Vsf=S5C$+R z@xCL81v!WbQ!5xm&=2^WLHGeEpSJaW^+uE(I3h5o& zK6xi$DrBFGwlK#;g`y>;ak8s|&vO=>47b9J;x}!n|A?4Xn#L6i+X*9t8i=*wKs+(O z@6O{9pBXT>~;Uucm&c-&WJ)`)np`{4X z?hRZip6&+GZgoAuPb1>f_}k5&Bv8%h?t!I$KWUP;2`}|57CAmv{K>HtA-S5i7;ehg zFOGhpxmxFR%ao4osIlOPu|Jl?$Dv5jd74N-CQ6QB#^6>(<=h`ah`a~pSV`i;<@;|) zzDn@RO4d+NeiGtmDM^q5pn91Cj z+|Z6E+Hn||^c}s#8 zqj15_mjkpDgwAxt*+R=lF}7W0A>WzYGKGYq?#+!D-`_8s{f&@+yDHnJrMv&%2HcUO zYwrFSaY>)Oj@NQ81@H_eGC0MHt*pks0qzX^pjX?BzeGuU$1Eh-Qsl)>AQ^=YA5j2r z3-1^$Yi(u>E2YkFmgV>3_VQ+=03qiTmXdVe*p!z`Pz% z$$h+>S-=eO(vFZa_+Md9**nWRp~4lP^z*~ziYFC^e2@+VCP%72t4v(OCJvMJXl7182-x8lKJ#Ykbu`KP9f$W&mgtm_}#p^gfrJ6tOcWJWpidovM8%2-j3Y0!Q zsg|cs)&EviSFQ1!CP9NzqMXY)zafynnM3m*e6W3(BFRVSX*FAMrU0ktE#1+AWRHH6 zphthD0&cGv?^t$eFQn{(BIhQ3(3g}Cax7%`glbDJX?{=S=@Fewz?iupw!De6+Ac1& z43!=p&Ng&xxD?nBD@q$@U+(A|?6hT(PT>#rM`H5uauA3b_~%$D|KI|gm+>qN3}f*_ zA=A!Ij#yxN=-X70$HCEKsNCP7YZbzq$)^K^_Ta3Smk67|C{8s$HGI$V@TYfxRu@a` zIhpd?EA8ZA!)+z`rshVPW&y{eF)j~uyxFHr`tsZ)Nxpi0U;gm`3?}mEK-E=_f#d7nPhAp^ zADne@&?X`Jrma)w1d)uBTH|PqlWG-ilz(&5jS2?9lPZwgh(ZD<-L$@YSMb&bsus@`+u|bpg!{HTvhw$*8|q%We>%Krvpz~LDu(z0 z1*}P#O^hK}bgLe*^?iN}=_pTf(`wnlGZh5>WOZO8xWxUUi3asdEJXBwjmkMtV@QW; z%=Tg6G{DdCl>bwzA_4epgbD; z-EpsHMfEg&sJ&=;{UO7zhx?7|I4z9osoT`JSrflq5H}ieUE+uxL^g`_eQ9>7M3TFY zV{Ly#DXk$xl9L0MAV1Z0jRR+V%nUb?{Yvb}ZEAVk_Fvt>e(TxH7@K;gx8>DZ3UE7} z%toBvk6!F9#&LQuVIk5od5-hu3_t0!q;(1k{hU0MIg?bqhixV((OjTQTXxBh*qX#!gAw_8e^H$^KlIAghr51pUd3Cc##9 zCp*VI*9L9I_#sJ1Ds3^iK*JZXpU1&b&#-<s#7T$72Tda7&MEhAIy*Q1b zGOHm`2MFttPaEI@{ci%0d!*L*$AG5k<+22_kKC%Fhka=-A;w>vKsRt}s`I;te{&d{ zw#4ofF8t(iN9{HW#FSYze!t$(+dphjDH|uHAkkqVCZ0!?qIt_XsO&Yf z9=a?Yx?wi|LYtlRX`E@R1)ww_kzZJ*ZrnR^7Q)*XHTkXDiKlwj7C+D2!JkNb!-|IQ0mzqE9 zS?arC{Jpl;0I+JgFRqt-!}z$zg%Hc)AUNun$q3ljl=P$`h}?D8sZx?z+*e+q6Hx1n`;>cE0`Z#nyTp)Qq})bRP9^CB*SQ~PW-YP-IlkC+G?m*WPY_ zq!hVviQN8)2fVaqA3L$!!5FB`6=08A1P^+fsJT$2NFXL`0s(# z7LdGz39p7~)aD(Bu1QT6NP&N=ux44iTP?(`x!rpUq(=&yRio^d#4BjJJx!=|yY&4c z8A+Y>pg`Ok^dpCz{bNMFZIQMd zI~r>w-BeKXvR9?)jQ*z7Tm#uG2G-RBL*!sZ+S$uiod!W~p&esR3a>DH(vih^-L-1b zx0^vqqUh~(6h$aHL7CV4F^z~r(%Bb45}$!>XD)J7@z+>c=S-NHWJ-Yrc$p{R;~}Ucv$Tx(85mPp09(i z9)IR@CSF_D7;g%h;=KF$N3h~Z%5R@`_c^o?sOhtDq~sw`ut4byVc$Og+JO z@Dx>0YZ{tAD2)pttOf)a6y+~mB}=!BD$JDc-Km*e?-%c0&8Hct)V^|S;z%t`ipm(N zQG}^e>p&LOH^6zJFFc197IHlR)4p&=B zKRt%|#5m4<_>Bh&32eDPE|G?$t!$_%atIv{ZR}h6aYo$`K?pZRun8k2!(sXIHp zl`G`AvJc`u>zWAAu(z%lTuzd-l%Fru($n@_N{CA?h)(u@rTkf?cR@zR06k0o_{HVa z+3xS&Kz&n)r+-^VqWA2shFw=nHBvX6c_F`X*U)LDl_6#Zxi!#z-qk~sExJs_k-u7R zBd-Oi3KjS4v8NvRok_05@G<3K)5KV{n1dDTr?*!pG3`)4rm5AD{3ivoGWnksQ!QLo zl(lPUp-q#?ZwI?0e?7k6*e)wAJixnmtG7N2*B)Bf`eMSS4}FRdv3_#O^jSsbQY%E5 zb{27WH9z@#5-L-&hI>|vW;!UZX*ae)Xhv2KT>baX@9##=N(Jtp zJJ45hiMK-HH6ctGl!Cwa@anY~G=oukg#@q4SfoB!uxm z-06eo*uTl;THul7>Kz;_Ws*Yh^3CL{J*d$8s(RsfZj@OpNMW+d@wBs8LJzhF>7Mq} zcqGBCM6F93`SS>Ij|ZB5XFK)yd0ADWoF%6_6NjXN@_aKp+srwn!SADp@%pO_s&O(Xcl5W%>Q~5#Sy&GBhh=bR0MqxtNJhf^jd@7yx|-tX(4A*mB>?;i<1K_KHB4Y{IH5nK$pZtb#4MN zW&0?#QpNHgAjh#O^V@3q-7a;O<;p6})h=aanmX47UO0Q)qqcYMx7(PG6AUEOLuyNBRu3OM zLw1J=|1GIb7y%z*A%@%cDKYX11aN9c%ecmKxE30_OUTxt0M=x@e z;En)2U)I|yJ=(lAOlA)Y6CdC2OMlJ%)GkO`*#n~Xm4i3s&oJop-QFIxvOsT8b3_y{W7$udi;Gpg zTw)DZyV4Ry{Uh1QLtC+oQejycImN(80I84ed;j;Laqsx3B))tFj$`e9uVeN$72@1+ zA@S)3^t2f)x37(mX}1P8oK`CLg`(5~kIKP>_oJPEaunbO@1n+Pr116M|E_2EOxyzA zwv~an<%!sr@d=n}-)wGAoz>sT1~cOp0(b2{HA&7N#IMW0c6HIsjZBv|p8BCbxIQBW z>DSBRhp8E7qOigiQsh2sSsLZr&RlGur#k*pT6S)Y65675FWM2aZk)N-E<=?^qc1!4 z+3}LhVbf)K(ast&9Y7>d&C3EHm#R8YP8VSAc`PNF>4|2qd}^Vo%DiXYy8AuHEMP4l zM?T=!hx9mde}(3-|0?!U$h)2gs9``o5kjQVT>@$ zX~z%xP}V?84ri2y3OoF;`yS5t4}iIqpg(_*a->2Kw(hoOb0`B|b2=vbJ)Fd9JpLz8 zU^`c!!-4^cWN0R&Tj$AB!LdZ>FH?4xhg3sHoJuM3yOyTJAQ7UZ9RBD!M=bKDGeIH>}c<6!+>B-ULW=^%Uc-huD2=2fb3*S`-dDa-m;ZW~S5IEzovcp9MHePKj=4FW z1?$#qIDL;UdCt45Xu_z{0xbf{TEq*p*IyXVt@Y` z3Lg%K=ZnKDU9X+ax>|y0T9j!bDygxMjq0p;pA2c+C+py*+GqJP{8-)gS$ED5)wtsv zGV*6}@Y`W=+)~3gM#Zd2U2b*ZsEFolm7xW6`NXaYOqnU>1OrqWl=ysiCfufJlfBwL zaB-1OwSDKaRMg{jPM5mB!%!IYWNX;Cc|E`@@6s(di_K0jk31_((2QKOf1OT*w9^|d zVAr78Sr8@B$q$E90MazHXt>YWbQ<4u0IZRI z<|>bB;WbfW223r)VjKsw*{;83R3|&zgKLX>-{CFos@|n0{`8i-g{<#D z`W^Iz1k(kW;7(sH`*|I=M&X9ydNoy|#x3~IDuO)7jiRJ7GZ=oB)46eP5kWQLgz=ha zE%Drl$~qt3XRn)dz6o%ow4pAhkB^M#{5IZ ztZ#3rK)j^=t@~(2gw%myn}UoxNkg5CPb3`BJ&NQC-0nXvlIwQhqGnDv14Yv;K@8y2 zX&=a_(G!{KJ)ZORHC*>ow{m--Q%N*4`!1^}Cj)w7% zsKI0X^OYR&o^rlAn3&VNFKk;nmhWWaznCC)fvgoMBJ|w?GQr*%aXAJh==djXByf)M z>|lxY0)Y=fuO64IZ+oli^zG#OUfO(gsAxb=UmtGOM(1FuBg#MxcZ?-&TvDy(GW}A1kxjp3 zy?8Mbzu}c3WmK^yd9tl9?djb}Zz>5PFI4n1h^i{_cT;zlbUh!M8eiQwwiJIxwyrB& z$g4NY?}oRH)sKbO8T;UG77Obnw|RsAMk{<^jRq0>a~o%r))&|Kix1g(#aV_&7IZ52 zNr{ZVvSBi{*Lcg1`7~srNbA{)4^IP-+4gWhl;m2K?OF3`)Ry}rLg#KVQiXkz2|@0J zS(6|d?!4AmQkZ)$UEUN~F8e+5U93JPP~eje_qKw*A@6ucw>=6pjxNyWg`*lDeuV!_ z(=}rsN@JAz{rdf_JN=N+;untosLoq1!Vi>Dr2;@qJQVB;LOMnK7Jlv_8Zh`EJU3ng zGi(7um#PV7>KW=Hp+bzc|5>LsFlLi+$BR4E|9sJ+$`DrLZLq}+F8l{LriLg1Ul@gC zhkSijC~e$6jNFiBP@2wtnb~gk53q;?3ND`9U~7-2;#-q3rC$Es%=5%yB-8W4T&NX2J? z@o!U%qw%35ws@Z(91N{PxEEVyAIiJ=J2U>eB&-pk3Ljk`{R`Zl7|%R!-DP%@DtJK_ z*7HoHP=+e%?Wr@Z$(As8o}>bbI${=W^5xT={6=uaMkh^6n{1gs_5L4x-}dh$_>Q|7 z{CdZ<%0{GzKrLkYO{TU?sGdCUr2td6Ff998)Svjt9M&!@k8)FH))@>iMs7uB(S7f* z8fXaOi?nxsitDOWo}GZVeB|ilois7~$V&bi;HJ)S=KYGwOa3CBO!8NCI?VN5+AM=d z(JcKj+#Sv3!blr~pV}Ymq|Wv@DOw#{2v>RPgaw1T9JQnPfub1Ca2 zEHzbm5bmmNUNiC8rU+Nw+U@{9E{fQUYh*^8!IOchP9tKcQteb!1H(~N%i&zW%Z6Ms z(P%NKw_5pBy7oH@L=J! zHU(Dt`_rML9P>RxustM~yDD58hU#-sN^{sg`_=^3g*#%We!zegg3d4?EgppCIdc^g zPqGQ=v?=X@HT$}hG*}3lmZUt&Hfj6`jAw-7`}D0Mben^Y zdyiRJuG(HcqWyar6-La4yLC`8$AZIUeL_g`*hCl|=i%czGDqNv(_#d%go0o^{M>JVNpjB0 zR!==%Flr;J1k>D-R=OUtZ>SbAde~Lq9Wrs$-qyZtkST4vs0(9?M-DTKK?S6E)Mz)^ z!b{zm&I`VLvuk*q|8rTLCEkcRF{@nJWxR7j3Lxzxi?7Qhrk~2;1_jWAmIjByr~MGc zWHBw#!T^ZB9FX8!esZ4GUYb|UlNx94aa?uIPz9IA&?&y}e&DJV=E*zM&G-Y>mm!MJ zoP#EKGD{=w@!yxe@Y?NyXT9~7PgG$FU3U{$&5$<3a85DoqnMo zrX?@U5&a|3EP!S2$2ZL0tl_o6e`!XQz$%W*#+b28aRVY@JU%I&U;6-WQht;;d$T{~ zGq$zw3Rdf;xzZV8!hM;<+D-siIAJ!n>NjyGOSMr{Wrtr^{i}h%FC0Q-@LA2AEPxs> zODd+`N+iZ>l%M)Zyu2~Gyd8!QM1G^(tzw&$nJZkEi}ND#qJ-qf`$Do9(xT;cvjDUQ z7008Ot*_dgX~+ej7UVktQSB~+X?e71MC?tnuA);?J?R5VI#Fwvv&scRc??d1X{6lk z3VCa4*@4pv#GHmX5!tbzcWSf0{sAoZ@22&iWb?#BXvZH%Y5q8?tLJCZU2ZnoGL(?4GBUsE?0?y9CWGPex!W0Cz|1($FPm z%Ftp34Gh)EjEtSRnFIoV`A#2?L%pY`9_PrM@AAP8AP`7H6LGtX>cTprvOhp4Sr-+) z4oV~P$Is+L{95OxCM=gufQWX}y)#BC|9YvsQMtZV63eWZ2$-vvVH`DXCSjnaHpQ>B zRxePwIVfW$u>Xkiyd)fMni7J`=Vh;cfZ5VO!`%|qKmaiG{ll4ViBqkkwXqFle@DMW763%qe&y*^RRHEvF zsov?U&Q`j1%^W%?N%Seng6X{qyVmLD3Aa#{4{OAwt-&(ex)x3TZ$Wmr+>)RO)CdFR z8QLCVqwUm|p%XXI+xO!SrR^6KxtD!5pr5N4n2@=igBj1kFf#jt%Mbnm&bB#uCB3}J zV-MDadL6U%fM%L^kq0(;p?j1;jF$!Mw3#6n z#T@9Q372`E@>Vl(GE)+$xV?9yaTbd}wS1a&|Mt)pfR8$35eL#=hCXIg$X63DvE-L8s2&V_qkZBsC4z18yMb zlQgS`AxR2BbZr1UwF4t^LS{fA``L}QF}_yyo4@npkL_Gcn}RkCGquA1yqUgf0cl3a zC3_3xUVSTdbehMBl$xF3vjq35vGu|l-mj`cuc69SVj+NA~rT=6XzM?GlED<=e^ z;RPiT98Z3oF`S2>qBgvAFRpMOG%12ESmIdo%QpK-&m@l>NOXo#Jl{#UTfUa--Ijd<*0#RpY%YAcnLU&8ZY7W#|;2pe>H(ap^ zxVeM}_?{Y*PvS=dedMr4Ns@IF>QzuKG#lIEUeYRggr>7w2Qa+~ei@8in9Hpeg|7sM z%&M-W&FK%+5A#=k^)wd?&cEEV>anAf0m7d}#o+X%f^yT!+%Nyza|1B1x5K~1cE-lG zs+v?_+ziQ#4CaQqSLfDPzh(&+KmIGXxsW`Y?Nhb<5Af(>hbqf$7Kenr5@n})@-gMH z?5{cFFbL80%>fHs+jbWueDmf)V()?A7PSQ0i5^~NBn8H1YTPND2HvQZ=;C4i%Zdr% z_+(gqihHMO$yzq3V+fKTE+=>OOIkK}ki63Qo_dVdtuxn+D)=UVkZPzKv$(e_+st|> z_J?Ni%e4jYxilmU@MUr)(2>+(ZtbvZh>`IT9PqtyzDvCCkj^OG!sE67+^1XDqI|KZ zE^Ng;oJC#_WT+8v=%)T>u?yuS3*C;-YlDR?D_BB&%Zr@@&U!;(-5Ax^hIBrdu%|uV zeLI2^b2 zM!t!wh}r_vY-spOdW7_xdr)PK2O1u+u-v20{b@ZT^! zPdu&B)#*wj3-^OT+t-L5t@mnXTZX^SmtKj8N)9tIgqt78=m+P7-n7 z8nfh!IvQI&m{`iSehBCI+O^ypMQb*gC@KWIb?x{E&^d}6?5r9bGC8Ls)^mRmE19(THZn05^!jua=bI2UkI$&5Z~Y5rPs(v zA^@q4|6Q-hu+@Y;2+%5M!D0ojC{jc7-StqU;KR^ks?VjqtHb{!{&LZnK z_4}+o{to%{nZJX&OC{7`&JB@BkBc-?Ga>$?DV8{3Q`0WPHTtePUgV(hAmo$FUR@)B zGXZ=~;8ecX>kq-$Ze`SLXshnl4 z|Cr$l$P%>Wj{6ghVkZa!f^K&Xe;R+j>AYGsBdd$X7#V(iU1q#c@*>IL-Z&@%lDpnlH+?LOEs;EKC3%H>1y@9h-ml{(S*7*Xl?hSw;*ObOuk#Yjm& z_)jvveB|NIZ(gA9EJn0j5ZMo4@xfJ#=gKn?NZnUl0`(YIitvevlOhqI0a^;g*Z`q1 zGL>7b4{V4h68Qo_DHEBeINU&Cu&V?K|6IH{=(iH(Ag`4l_1R z+b0_)!mR?T9)Wl1au`Lpvs#>9P@=%d@$E2EwX(AxWwv7@;ugk~)0rf`Q&2F^H-=K9 zBDFzm(*tEr`+!I86bp(4v`>!v!a1N1@@28N(IJIGx>51*-e%74r^oRE-RLgsq*RF; zV|y#5=XLd7q>1;>D%5uMD;GI|-Hsg%pxnQJK=1ITG=evAdYn}9%X(K$IJdDbErox$ zEvDL+QpEo4W5Kj;VxN%YdtY4f1nEmX=6%sMU&~G;AKw;+-I_%)j%v~@H^Bwxyn{Zb z!Y-)2F%!Md4Ddj#&v{N6DU-;4a3e=0TvAASfR68_)!^Bg+`?r^NQBTrY0B|pZhYTp zub^(Vapop*q(s+clGMI-PjoX^hLtsgbkX#|$FSd_|K;5%-J?3x7rzWgUqmL1P4o+h z&_wk99Gxm)?G`vELop$zC$m62&kcT*?cIOc^b+TbzjjI7UtmgCid-}KBC#Y+bDirh zJ*V1{9XVKScx-o)A;!w!^a-^oT7`G|cX#O3T;K6`QQt+^yc*%Oc2Z$DoGF@wUV{Pu zhY%}Nl+1R*=54Utz6r_R7mDWZUzYTSbo(48UF_v!xM<(iaXQl05OZ1xuzuKFOV5^` z5oC=TQ3ojSZFwEV#vbzx)II^@#c>P&lm`z_wWX*#yfF291SJ(14bRUG|PR zFY_iBedFG`eN^oen%kyl0Z0SdV0|jeKtf=Z@itIyE?ZZkfujZ4xwb2H1Mrh+N&>Z&^QVsl+A1K zHsV=$lM`Xs?-Ez!8zaYNJ`6FEMFwrGDhXgYIecs{YZ3E&2D0MoYYkNgE6Gks1JH_YikL);^Ox5$>3n>|LO4Q0SF>u^87 znE{+x&<+D`rL8Yu@aE@I*Vs9&dEO37>*A<6Qf?p%l`!W%U+2a<#UvFrd$`i>jF}*K zktdqMG`ODe&x7t>=S{eGL>a!CsC!9B!Gt;srJ4?YpU$S{Ydg+6m%gjWcz#{Hs#iUi zXQ|X{A3T3&ijhJfo7lq1_Sq^K*d+(0O17D`ecY5 z3l>lwsL{Qv2;|8CgYjeSEu6OVWZ1A!YM`L8W()vu7&wHzkH0WY_6m9=!QAcjtIwgq zRqy_3?+s_W|MIO(HZYdiD&dp6R7*}(7 z#hz+={%2+O*yet8Z91Sig|pK#NgDKXkWH7b+ZbT(C={Wzj7w<>l@LY<`Mgt4K6uz3 z(CLVUV|2-K1t`fY_@QRL3Km8R4wI67GFFi8)dBwZGkPWeDt(fXLl_WHqGcFctF zvIV-%JHY@Qk@txM{KRB4?Y5{nB{FK`q|G?fKhbzuIg=@8F_~jI0RX^?iolQcdw$Z1 zioZ3q321RV+A?m4FsP*5kPhdW)urOKTm!!+cT5@{g-YDGw;`JHr}M0(&B!0ch4s{2 z2Yny#Na}8j7*}8;ey4RmSl)Ke*R*PY`MMV55;44PDXDkZ(TM=+MT4Oxj61>8EY6|tSc)k^%aXvTY+>fFl>+_D&7D$2+VjCi^Q)} zlOG#Iu&>(#r@g*u|RyDpSaz$emws|g3O~Y*& zV(x~Y8)(-g7L~5Zzb4ONekkrmMi|lEuobMS{6?H>$duPSGnP*(J5z=o80H)^|U?LNC6jK^_{>=Yc$=prBOURAXAk9Ns(tbc-=%0kKU#eqV=aMf| z87!n&{@eiXuJi^zbn46 zXwG??qcGzrSnZmlH-6#tq+uTbVe$>*s5u_Gajc%U>ysTkc%>p&e)E(2QTXD8-Gh}I zi&t{@zj6cGGq&wBe-I%VrR{TMnwu4PCjRgyk)~vSPkmol?bay~?zvcCZ_PL@t;_1< zR)9nkIgR913wyGH8d5oq#ix@rIvUVXSVSIbo7>p{fJ}$8064c64}o{d*X@JvXr!H$ zB49}Dnun9#hi+LzA=WxP+Y)yz?Y*PL$)I?6juUy*5A<@w>?`p5e2T$J8d}BqD6UO( z(y%MHQ~*gx$)1hQJDKzM58?;c<#kxrd>kbRxb+9d;f#V{{TL1M6W&sfU0BV}AJ?m- z2SYB6mQq1(^jl>X8Vj<7jAFtX>`_q>WhLowxbRl_<`;qAt#0o$2VA`L^k&x@*{#eg zHd*P#A!I^x9vDdg@QhlEuhY-yBm9OSz6UliG3d1{fRGfSM}LJ?a{j)+)05b-802bu9N^_xT0^cM z&(Ff>ciA-OHXjNMiRATM>B*DOBL$hdmIGid1*cMLS)kTz8cU}{+=e%fMMs2*WEWXQ zGXx1Sex^7RpW3J!$E7{{l}saxBkyc}9g)!WGxfmK^WuFf=@ni^Nn1J*@z?y9a;K;- zlH&P?s$UXjAwc;OHD*4_fOX9k9m5lTst(O57*i|jw^qoEh!O-Tssjpo5}+;UCEX{n zb^8)@@d-G77X~5V`w%wF;9{>C{4}TtH!qP{G#m&)UeJ835;0yGy=bKo^TtFNqmS{6 zSb6x9XfwT_r&&-4zM-LjmT|kL!>pd>GQEIzKTp zN`qVL&*;plF!mpLH~L5h=MNlaA_rSZ-9F7G-*xuqQ7F0R>Oa6*t(tkxhbYtWO)m@qz0K&n(%1^(t8jetKfn;rz- z3s0ke4xJDZ?27wE zVa5Ed9HasY1OCbqR`pW8D$*BRE`L7KV3$4wf3fA@Ant9dW^N=*^u4{swfDmHhdOT7 zMqBn~GJ7ej+->Ut?+=_}nh!=}>M7yBlYdB@lWX22E4=8(ws*Bc4>u+@Il|oA!1`0Y zOBgEL&48O(wI5FTAHwMjjEQZQjWysCCVs?ob*(iokqdm`a*4kbPy8^3Jw#7j(-dMA zU+AahYGfGPAaJ_neh4aBkfD}UP1s&-G>r;xzD1Pdmjvl1Jgbrr&`&Vl)A?SFHM!gh zbG4G-0b#C~!a~hiwb(XguKxk7*V%=2(>C&PLK%cxl@!)df!ZQz>53Y4NiG5hK=2co z=eigw(Y6HYa68|U`|bBi=aYCReeAI z1%%Kir*?0JH(QzyYQ^Em2Qt^8A!Qup)YS#u=?H0?SI<<(7ymd5=PHj0%9hV$oV%L$ zc~~s>2Zds|RLEU()quSpg9%>UnJ|#bZh3^%?oq@eJVgn0`aAG4XSYPdg>QaR7meOyYg)da~qakcg;41S)@yh-_3d2#Q|QA=0_B&B9a>%kR8 zx2}?n@e%lmOs88eb8FF~i-)g1z6&0xdR?H&d3d}_qzkEA3QgeB^^MXMc$8{)bsm!T z^HUDMzm|HncwN>)O|&=CqVe=3Swia(Po4YeO_D}9_ou~Kb=%Oad%SS&{ zf>si)*A#6{YE2Z`u9o`d)_J`XkvhU}8^5P!N=YdQjcP=CoYjVom##kwBuFDz6>@3$ z2LQd3X%66fzqfZ$r$ck=3|`@dE~_v2XIFiTNc|f5^gKqqKl+7csekEo)()`3yzbMZ ze*jsM6&C$0bt4jgZiL9*aUy9mwmkorN}%qpF*`B%`hxSmdCq&8{gd0o?Q83LvM5P= zVXMEt?xRZ$m?G9&FpsgPu)!Z&RvKMJ_Qj9w<3)cG;ahq&TehA941W96jS@Ef!hC>l44*xyHlGQ#jz6>i*Y}LNW&+)~&4~_R-Tc?)SgD7m8T>+a~cibOnVp1x4oaW_#Ia%x>Ei3Bye^wzdGDWh=sH^3Kxp z!C+x-C*`X{MEYJy9CUF@aC;1uT~RRDua?gwMHk- zYu|->Pi%TDtqff?pqmGrK}g6ekI+%=amu&Ae}Kmuj^8juwJqpPwJGj@n1h6Cm#@vbjVlsIhWUrYZVjIGw8AAi zlvY&!AcTQ%(yFSzr?D_~+-4dI3s(2aVCt$T6@$Au&fapHw^YX2zr|c>EsbY6JXCyk z(ZUU*7Jv6n=Ns}#NDNPR%!DGTC#^158!zV1B&pS=`%Iz==M3M|*_<3z8Gu{rTPGaY zu!@O4T6Y_9dl7QGmHrobvC+W~*Lk`@Tb%%zEK~`h1QQvD+Q`-7e(3SwRCP5@HZ*u` zI(xOkkZhdhUe`Hv+EP-6tbR&^aj@5@>xsplm7FdeV_nLxZl|ZPUWQgfEvlcaCyhX? zv~LzKYX->(47V*P`{2vTLssR_g%a5!#P&`%dZ71p*VE4Esdf$BhxUSRZfNhcu5}`i)y(*_m znTQgWJe9kLSC=sf{3VUALS94s$^iCMAwlRz7M72NjF>%&pY2U`^guP;`kXOt7!~?W zyEkl1qOZr=-%iuTp6*zLITjM2N&Qnz^E?6%@7<{?@N2CK@E5LjcBq{()kLc!p~BbJ z6I4I3px*FAs%uV{j>nHc#KF26?%=OYMhjQb&aw7ca-OQmd$oam_Ga|Wk0>cd{@a<* zG*&b73aup0A0>HY=T$Nrn%E07H05a)Y|?D6tN|hHr`aKX;oYf`Zh2{C*(AEEGsowP z;INI*Ox($gxZKQ~*7CezR*o)ZtTf!Y?ZZQ{_etJzwd&8t*~;9`?7K<6Pp#dev&1XA<~|ttgWqF7j~m&= z#Fnlb^HhLwv5+VCYg_%5K^4@GC*c|cYv^8flMdAq8Xd{zX(J=kR&mp2o$(yYWZ$hT z=1NF^esPNbMj)C(E(D4ft9Ekz7tOyVB#s!&Z@dpmE|ZLu_AvOS8$&q1I#l_i|65tb zLB$tGoYJ%3J(@J9r6x=RC_NYV{B{K1t zz{lSzOCT4NFvTEk3WKiurPCOk7%^in|BxY;P#4T8&#~XB$bQNti9d8E}ZM zy!FdZsh>Hn-t|2n{<;P+?(CLi|F|_%oUIt&01o3=w!EI7YPeiYaF5PRyENG9;nDi~ zOXpd3q7AiBzL3$gXjjKZe=#*;R7>>$E_fy;L{Hel_;j?tx`aOpA2GWc&}e6%VI+z| zZ+UAH?s*R+!h3e73CaAXZwFw@k+q+@hMVnRddD~sM<-NqL0eMNVO#(Daj;e*iWEW33<6!Zu^kZ&IRg5O`3~`MU+- z!TP=NmEu5`{tABx1b&N9N6nTRp|Zb|=Xv|MzUr&k907?6C?U};ET7+$R*Ia&wX)oL zZv&fk$qn@FwSX5SCJbi}`d7)<60NyE7?(sxDNvG|)USRnpg*egUSG9qFO&%UAdMzb z$gwobr!Ki@$*V8S@2z$Q36A*^h7}?xkW|Spu=7gwgsA2U%ia%LLNH?slnY}2nGIyi zlAe%W+5-4vxwDxt0%L|a=b7kybI%r?>qtwV$xZkfZ`t@eollqG2t$N*Us3Nr!0O+w zSP1@Wf!!s!x|YRpkP`!_AQwU^9`r;?%oe(As>!)_EpZ<6+KHdctQ})jtoCHzpBf5L z*5$Q1Ym(8miE;DIczstuoLW>M0c?jMDc-jm0EoRaiLA(|O02Ecg>Fu+`fo5Vr{v|;g|va9sHkLJQpO6^csQ!_`49KeayQX^q9_*HDg2sZV_cTQ1xGMZ z5G-zfJ$$F$-_|^8@AX8^D;yQYBS^wyZ@PjjGe*ay@_Xrd&=c_R0i%Uqjvsq(H3%DT zVug8LmZ~v6<$|<%ae`AfF8lQhFhbsrXge*K6Gn)-C+^s|5DL!CQ%Gg&*?6wt>*BhVfGvmC2NV(wtznpbrINuh5`Q3ZBtY~`wrL9$V_^bP+Rnl5By z2XL~r!|BDO)pJZ}okcHa*#+CU0qh~`JFthAp5GUu6+<15WH@2-7-u0e?qWIv z149FQ(rSoQPePiyLaX!i*d=Gn?&X^_HL}KbDX||DOvD`pE%7N)wLH2)P*|phu^N9= z767@_3d!m|dYd@-K-dgI`W0aK!UuayOO)6Au5tf@gqm_$TcE#YP3VmwPxSX&yPdgr z@&#-Hb&lOpSnj`25JP+UWSa4kjh|F+6N*-hV>I|5fW~?dD1*wB3<+r%_4q-hR{0@d zaov9B=|dDbZUWX4FRGcwV9`vJ`-|88!)1zUw^x{F3SWG$9(>vhxG5r7gnAA)xxzlA zL=C&&gryXRXY@6CZ+|1_1D2FAqW;>Mlie*fG!ZeEcRu>b4sK;_zN=p z=OJ;bns7I*#OHc)Tf+9cCF2s4Eb?J>)_hrug3m!Uh%_g(h_>9B=Y~$;ibA}ET+CUQ z35``eglGIZ_;<@d04TEeGD30&{IgL8q-Xj&^^S?Q(xOnE)!+|%*k7gFkb`IQs#TUQ zTmx+azyp3o8}ha9qy9AM5)_J#sC6I;6;aAPLaEowvQ5cS=k0Wg0 zcq)9o6H4B@wl#c6&2LZcOqNJ&b3krl1I)_y)SOold!PK2Ts{f5fU733#J5F(pRI^| z7UHh`VIBv__TK(9)O77k>?lF!N(fAkF-|)Mp>rDWM*%Xjr^R&v=yG}r5;8~HOm@SV zkCZSNycvBUgNgRl2M++zn`TCm(3~gZIM9@!qBoQ%cjq4kl=~e>Cv7EwzgK zo~a&aAT15)FNXQj^Y`ZSP%LgIs&v6|4et*TIB!f=DECcHiQTc#QJFc`ybev!_6S3z zDrLWRs)y0l8=%ET_b|H4J!?#wXIELBLqto*8lKLd&$s#Zh@0m=)`mMl;nn?Fw%IhM z?S%X5g6z+d#!dKulGTpDQb|$F*G=NA$u#X`>b4X<+9FoTuP<2L#-z0LAf7DDa~Gen z?Bk}iD6cZd#b}|t(9Poj?Go30viW)EI1Tnprtj~3Lk=aVQ+tZUxA#gbL$ z#u?^#hvAL0RxpXC8UNhktr2D2a8R_SV@1m7<)qzp!!+lLt)7_Q$PR*G>-f(6IL-p*tb1r&x?zNS zxibMs0Bz1w{rdbY7D3-U1^y5uD*GT-Nm$lIolGnzbzN=KAnx)49u{Bn@2J+BP}*flHDQKmEl+KZZN?eN?AE?b>%yKbDjUEM(m*X*fHg zM?{!kRQP2-87yxP1_xpUGvx$NC9Xpce3wJ%au@GuaFFeK1g=wBk|71m07Idg*d}>y z!givIfRBC?kryw*{NBZRs<04_^WXqeVP_$r%;=CqHXk!+J@X-cODzZj{OU)oRo*+$ z2WyPYx_wPeziXY%S$6RJgIuSjd zFN0PqlwmG6u{7&Q$@kXuB&tm5amKlcC}gfHG9J0bIQBKFK(uG2Chgg-PfM}+C5e3p zM<4hoYNY?zwD0G(CvK-yT#f-#ZM@hNrZFQSJ)MXwEj)?C`bB;W)lw-xBJ@<53vE6= zTL)&^OS0qw8-oYIYTM@Y;4u_a7zQNdSSuuKpB?b$PL7MKyZ$eIOpEP0I|h*bKZ?%7 zpUU_DR@c>c~c+VJ4>(e{P8M*a}x9=akXmGOFcc${W|l39&Ns!Jb2 z92;nW7@BnTe?9{da$Qdddsq5hcZ&9QcsI%zQY8)@$<~B>Ue4+Q8F-S>R9XjQ;V?NVlto8{fLHP_U9nlB-cM z2Ggv;qy0ZXxyfB#3a3hu%d9Ut=rBsl0Ml7Obzzj)<4Yg&-xIn=TA~ajFCxI>xvcG# z4~U+1AL!Vx`FNq|F~hM%=j+o&d;(SxvO-XzFil92;OE+s_niV z|384_A{j@>-NLqxRJ;?7Q2Nf|gvj_GAOKbXfzlZc($m+G+5&yp-#frBV<@}2|IA3aM8mcaw|28 zm|?D(nnXRHQzl^i4xLUc6MZTgeQ*SL@r=0@jH_n0_FK#t`xcvZ@RKT`2$r(3jTmmq z^zd`9vp7ibnJVnDqehO&%A)ov9qK1uyy)Mx%ecH=l(zrMyWaD3nr&Sd@nHNyhE3`9 zPi~l=}@~fc$wf}0}z9bitl$zjsI><*K=?MG9q};762+mvw(Y1 zE%sl4OYjirpQjPAZ91cN5R(*Sz&h%tw)Dt9^~rOS!y9Sqm~*s_24xYZqjToxRKx0; zO1g5XQ2=#^+aSR94Rp@&?xO9|o~Yujz>it$HG%wT`HCK@Go7xEOqRty+SrU8+}?9X zQ^yK977j%p+3mP-X~v%SOzwLTyf68aM@Od%#J#Vau-FrJ?*q9JEo-id`6@>71Xn? zDFqZSW}?G(9KQRPb^U@R(=&ADkf|U=+LsG>J|f`3#B&0Ht=~)9tCf?9 z;Vf{}Y&$#_{Y2v|bEsEJG3L$3P{>iMCn~E?b+R~#@LRk|ZG@Fv2#5m?+-V;@?A{d! z9Dvt3>%cxF^Si7Oj`sB}9pDbMSSi-X>)ec_WAUlXPej0bO_{k|E##|6YLTKdcr9Pu z7hdL*-SLPXNr{r7Xp%Jk;|vEQ)`1Ly!A-nkJ2%a+wM>Zko)p08#-|eIWD}{4y!xF*N&{ zfUyX(t}=_Zi$EtE-~j6+QtY51p$cE^HPlz*ysadG1XS%DGA6skuZu&J&Z*ki&MT3B zSe>7VJ?Ni(b#{GK%uY)bmKhPwpp+WXj_x_yTnF<^Sj!R$!&B%?5|b?jk}LLsACyLG z#l)g^W@3pqaKncIF>W2gMt57Nv{5o%I)uM>W}6$J($0K+)yCp<(vI5bI_kESRSF<< z=#Wv=olgP|0&QnfdjmbUFXbjLZyqN!an)^!fJhdj#&|Qq3AAAtUF~~jdSShR&o31IzEHtV zO$1So)S7L4sxe^SgK3;!^xkLVDF9l;bi#`vOh`KHLn3X-`^+8uQP zdx*rU54C7P#Rm&1)Q>NrPh%)Do$fZ}Q2RfC=!a@}Q<3xl8utKYMFj{V|2jBIN?-)X zhdW<%1{bLGi9AvFbV~gfO;Iskyl~tNTflA6-2b+J`Aw23;BB2E>gSE!!>&&tyNn`j zIyt1wRii|y#r)^93|&o^IF$LezjJB!!(CA!L#phne(jP?ww`Zr4IEY7d{-S#Ub=Zt zec{k>x>*%hGGF!M@a5*gp+CCAOv<%?8gZ1hX*s*-`#bVA8^@hr<}b>jDJ3cW^>g3F z{?5D_vH(Vc325Ag)sW-ky zb3_GJuW85K(u)~$YsKGQNXSnY#26q0dyf{+USUnA*O<-i04Af(&c|#yx+3Ri*1ZNTcD=Tpe!Bk_ezEbCvxI40 zNqPn{2h&{)T-`kw@$71eU;0eJS7TfsKDvI*7$#C#`_5eR4`0HDoqowP$<-mKg^*5c z$<3v-9va-v`0G@x1Ru-gXzk8FG>ds#Hy@{h&X^~p1_KXS9$eVLimWaUWw74`^k9OWJm_a0;m+5rB z*IQAqb>K$1Qrz`V-Ijx^v2BtslV)F5^}m|V;gL4`Eqak1xomxGXYb1ZZQ+=fo#AtY zw)95@w-5XZt|a*v`2P4Eh&E?um@bEOl4f&V9$x%-d5|aWwsA8-H1|WWFrUP?hrCDE zGNOlHnTm7tcUv8=KDbjD;j|zKcv(N#>rW z@7u?T)W5c-*XqrU>*BA*{&b~;pl!^gR=S=qqAUQSudXQX2QK{Gda~Q<47Yvh z&G1*#rjJdiwg6;~?^q1g?&n{B)bbSJ6#Ic|&Dpc7nC+TO%o8aSK8Ereo|K+&ulzRNr#ZycK%h@hW}OJzG06Hc^6I?{QJ*w(9i0M zChBwXqQhbUL`Cm2&D@LKuQvk2!qpw))crzCAVH5ip{?n%hDMEOUgaAzE(|nYZ~o8@ z8yS+|7TpoxugTe^MvDZHYxv8%j8kNJCIB?wiGEy{o{lrB6QRtP9Qk;D&w#cRkp_TNO_~B>|FJLM z)+L6&o`~FDec2ZM-r(Q+X!@r)7Uuc?1K4wYiK7mpbt(dPhw0Upgl>Iki0B?o*m=Cy$%tepZ4CI+taFdmcy z76r0|r)X8kV)K&=*8-463j{XPl;)w5kC=|bcIDz2#hO5Qst=Q*_G!)6!Ru|zr~z^p z(Zqm_{vOfl-y_ZIBEAn;-@QFUCuQbQo1t#!JpYC2lVLAjOd>u&__orec;2K4Sl{R> zuDfvz(Nfa%Md2`=IHreMR)TTv?_BSC<_&FDS%D!A25osJi_c%xYO3BH^O`wef_aN` zh8I8-|0!eXSCl7n;w3!9G#IScQ4LkGGU|i;jY6^CTYxUx}mHGF3)8tkS3GH zaMw=c8ZGn9s%_eY7GoAs2jYc^OyW3>Vm@;~sn#nnMzC+;;_h_%eN{y9<^@hP<}iPn zP(qdLn?*zfnqA*4<+^;l5X|X*L3J$CKUJtGiq2Ofi>hHaZLS6b;k3u@H%;a(XU7o^ zjyt0K`kk%dX$0GPsdN}M>&PT~6?Rfx+sG6t{3B=q<$04uU&R2|1ti1)_3z!ZFSWb1 z^eIa_t5j1=uf+L3q`|W*_|CIe>JfQqh(S*{0EkU+#5l51!p2iiYu0XEH|2ubG9z%P zbj7`2Hg@CdD>A%_4o+}!OSANd1~>?4*y_%9GT+5M?{)CaNP45qph|*rdt(bU@C&;; zn0(KXlMy-DJ1|en)^gS5h!<96>RQ;0xPkGKYd(0IO(* zHZ|qpE?t`r+@rU{)tNrZRHWgOSHC-uyZUfmzE8{2kv+z27-Fn~khdBc z5t-`B=x4;lA}vWt-4j4cjRV}1aa&G=J9(8~-JM<{4h~@LpX+*job-|lKy~=%^La+I zGMqMb|6cF+h42yQ$NIzbUAb^{dmXq5MT%9jaK7%xvg+$xH=Qq!oiv29ZrQi8KSKS7 z^I7^S^yL#ePoBWUetV>#{QK711+tm@;MxbMS&AbZNeO97iGOIm|NU?{qkW6;tC#QG z?T2dxJEz1{>OBj`Hy_$s9xA|YWfWHI8@^=%h*5##8@iug7x;F;_h3&u7jRe&W%pNW z?0jw|*cp{D3WAdwJ%J)eco-T$zWC+meh40JE};v z=Kn*M5tj2~>-iP_B+SjWYW=GMOM4J6G3Dvvv;TE%3+s$o?=5f0O2|3aiB}x=Zj)&(n+Zfw zIn;D!>pBGayDn?~*>^2U32R$?**<+N6j1ltCKVD`sTkAt1!4J0wy6MfGk5Sp;psic zZ?7wX1z82@X1B4{|^{yBEMwR*?gaPULwu;2r&P6^dnm`ed52Gs5}?tz-p z?jCSgVc?cy0GkNnS^}{Hc=kg-)lB+Bmfi8%cw{kvLsS+9;K6>Yu0Jj3 zgJ5CjoNsl~s2LcLtH6#O|D(Y8TFLiA@8R{R=4AHEa2{S5)LU){i-&Yz4650yL*}x5 zmbgbi8!{6^3W%TE6Bb}Zd5JRu#>>f(ToG@zeYmSAGC0jMj3|F5rEN&r6{xRZD&sge z+1Hn~(<9nEhMsDn5(A(6-sHKq0JIX3^_^Q9JJ#ia!%NxUy_*NM(FIaB!fDp%2BT+Q z82(NFIqO9Tc}g`B)j7f|m3pw}tBsmrqL`6$dkC0Zi!F;@p;Rv}7nyj^*6x`e$Ao4G z7RzJ_oM7VjU8LY?+zjLx0=6xRl8T4hFqX%M+OUIgpUTCMqbJo99-OC)ct`%!sOIZ4LrU|H01=Jc-GP|rsP%K>Jr9~qV4Qxn7j7H|E{ zuE~)${O(duMy<@+xcIk4UvXC1?=<%qx*0cgkw3-5$Qr^fAizS78_9@Ag#*HJ<>!~a z_UjyOkh1K>cvC_SS>mcN*mWPYJTJfEz%v644{P*GDvN3)Low)vW~LI;TWV&pfLoyR>prU3< zPVK*qRktBffm?>opNgNkk!2EK?}%&g4CWX8G=|(e(*F>TpYK zVJ`PvsP(5$FSAyq$)r+2crC=3naY9K?2PAQjx7NA{USaCDp_JkBXxq6$_yS722bl z2f^2pm|Z2qu(V6*zF&?~LCF@c4vkqI0pm7rC%ZPH+YBU^;(Isj) zC<^gZv!e<)x1A%NHBorWV7SPqCEy$`(etL5<~=LpfW%T&%Ml2|n+$Own*ODF+sb3h zfK$;PzN$QVkr8qns>qe(CNRWg7wWjRw&XwT;ZvM|GB9UG?>>hZOUSv`kXUYY>(OwN z>a7Z7sL~x2jX$K0!V$j3-N^5Vp*bu?0I8ZqLRvHEXl3aV=!WA=idU9C?VA(a@z@4m z8i*$qtNcArku1G}FFJI8ZstT#Qkea|QFqA^P zNEqHYy}Q&As`bw?00~R zmVlU4u=b>G^zCo4L8lBpkNt+D9*`}w^kC`0K2vSEA}Bg3mzXitS_MoZF!P8z`toOv z&Gr9*A7AUb@qDBIrWUCu#=uj#L)lKpP0=NJH6#Y%UkNpJvFyn&(v~GzVEa$El!j`; z@zm9^y=i6lKbxg$bvsedqRdf93>8w6krUvjJTpf_L-kbbZ<}sdNa&QruxU(>eVPF( zAiOsKlGDDB8(ne0E+h5~HL+{?55*+Bx(8?QXd}K+OwCw5O-H;Ri+sHaQ zff?Kt;rM=Q&dJTT7fHm8<18at(BlGnT!VzkVe+H`EZctlmZD>+w#kgS^IO|k#u=|4 zZfC)(`f$CJgX|9xHd)sDhUFv>C5LZ`BPIm%`MXU0baIf4O>qWA`ban>%vWP!X6$Ej zOM+$Lofkr3(uh3ecSUOCN}LSGx}JPZt(=y7zA1y_55t4gwEqE?#W7{_iveJ5b0%>d zhDq9jyWUlugEy}8R2Mlpdf99r*SA{0N-ULStCUNl)Ph66d7pbIKtE@RD)C58@R-JmjEG8ENQ>}yp9B1i|O%NOJEvR@|P z#c&V7DY^&gV>LgMW9p*OsL^cb$y0 zWPsLuk1a8_Tv!!%Q7<%JX;qjcNbZ$SpRs88Cl&K3vEq(hdG;Za#Q!c^2i0CK&datkIz zpDVZhUGL4M;(pn`cCC80^=?*Q5f*EhsB)%*7+X4~MjEt^rPL15S~6P*e$1pcKxRK* z{0UpkiUh2$G^{tQM{%c&k0V@w^FdVgO2H_XXy}D zMrxM?r>++;k{sz&ICD%Oir}7r_n-(4ak*XE@F!{fDlYY@C->t|_&YDVHe%$MQb%ky zmMz3I49gW!TdN1%>8A-`xDlbj;?_eI#;GEtW!rj$A8zXN#{U4Hik7aplZHbqnV_Xv zrOAbz>!JBPh7xwY%Y&e0%F#U~@FuZa@FSOUo>PYNJmHSR1eJ6FyUm+CmZUY7a&@?r z7WvL_mw(>O`B+;qh`L9jm{M%Q3D7_7GmZaS@^7Q;y6q-&?E1=a6k}nQ$1yZ+_Yxb#gtCmsdS=%r8oa|5;%>q0SMhEe*-dWx*gai+aMS)T%Ny zY0knw=|)*zFffp;h6PRUlD%ln^A%{RiH**=!|Iqg`yj1{r<%;`!uQkb6As8~1M81S7xaGmph8t0{j9 zl$yO$JQ8{}5FwR*lG#uw9d z`p-xwv1uX841PM)p|YhJxMEaWj9Yq{Zd?r`rrC1&I&(1~7rTRm(>Cfpf&ud~D#3Q# zIz1#s#5PYWj!StHctk1NtyO1p(Nh?oaA=KyEJGJ%I%Q@jIU=|De4gq=L6v}|s1pb!Z2mFHDjAzg7- zj_ak~{)%4|KfOqfmi@-*SOC?qM{C+!5JkX)qI~6fp1;2%o($MU6;~)9T7dP;Y(p5M zCI!=|Wl0OvQ%6jm+h3ep6VFx$2PsfVB0?y@ve?W;6OVfuAxdrJzIgr=_$N zyB6ijfTV3%bLVzqIAeIA;6e zaA~Ut1(E?aKN$}?9YZg?+Fxgxa&(kGA9*_xk;s;03S$G&awQdM>o>lWm%83N#9Kmi zKoJATvI`aOA}W(kKBhKCvJYAdJPK6J*cnGr-vVP0h#}Zk>{l*qgB(O$`^YE*;ec(x zLyokW#5qxhe%}m13*Ey4a&%E?0?AYo@;rDVh977CdeC1!>L`-o?D688$&d$9DG`rT z4wk}0XkKHAWs7e3qr!M(X)OS<+jqy=1NF(!HwBtAkt6K)yR1+#_LFvQ|J#6=v215X zGos8Q*l!^m+Ib2bq_PS;yLIzOs#Z86759Let*j3~xZ%IDXHJa*X4Uc8o$(oE_SdIN z$>H?ksZn5?mc)hW(SvTsocQ#FGMv{0g1f+4u@HbyDa8EwH#F+b6~7Tf(b(R(Wbp$> zJwoiH!RF|HQBI9{70wRSBq-Cl)@^-b(cRB ztGgq6^u6bDHad(sFgefVcTZg_{g*9$Z0(n4#q{s{|EA!nLK5`yH2pP;-?IpWqYy}B zBMKH4_?w@Be0I}wT#pm@?#IEa(PzB6vOJ2(4UI>Cjuh~k&UN5;3Ha{Q`@P+M{#Hjj z_fwjAMN%y?Evz?wE;O&l++x37cXf;AJZ&7axGmWnt?}Qh+oX8hTB^_e50-B&5~~3>%%6`4acn>1%FmPCUhmw@<4wb z1!-;$1s=M#g5|YmFaNWrf5Z-fL?u_dCqv}@?{z%W{aQk5*Gh+Y3Rj+Utg5p=bMsG= zm8x9%c>3&S_HA_tQvfrN=G)*%OihFyV49^g7~xmw4k zpip;qlkHXXjLJ=fSof7Uh$Zg`D_H~dzrPm|i%qgCAyLaeUB1}H-Ch>`xUl*DCSR6m zCQ^KE{OI3dHFcdj!}jM9s<-ENdVb6hPiRl>H=!Dt-Y z<#ffRhh+53@WxYds<*=LR~b~CZd0#+dRa;Nv#9K(m*jUl&ECyAlm=9r{mZ^Jby?;P zw$wqoEPk#PCmzzp1u`i5PZFc2@m=&!Ql{pOm5W`b0;=%aKissc@)%%_omzjtet?gz zokV{KluQg9wuem1)K3?snz$!0wp5ZeocK3?P4w%bvL?(!<<%+qKcSO`DORp11$~=W zJSCabF{zG5s>JF6HHgyN!n%_u4_k8Mog3lX{&L|T_gNvwxW_>&7xPv4g!xZLA1W}o zLd6q>qqUQyvgl8|D2yRL0n$>o_8;aCf6$$?m@7&TIw@jhR`azkKDDzgO2}qs5f$iZ zJ@({DWFM^9&O-Y>>`LMTV5PDT)XLPw_?YW;YGHb52I_vwcR+S>^BUyg|8c zEfxQre-#?o%D#Q=nW2iXSfVeddE_?;n9xXp9GpFq7;KP=G6|Rv#S3ZlE7AK2T8&ek z=RAErpI`~f8()Z5(0BYf?q0I@>*C_dqiox&_tt#j!YPM&bj{Gz@zxHjOwgUzLM!Ec z>*(EY@=?9t_I}R-;2{#{u#1o1oHe4~hCUzAa5ruKQ~QvML)*B>o+{d*!tJ_o^8o@8 z7ZGN~&~U++fnwevm{u=>3TyB5XuiOPtwRQNalSIZfuUl4!Xn(4&7nE9KI>fp_4kQM6$EM?}MgmcQtp)wi_>?x*P8=_vU5!H zPxjidgHK({i=Y1Ra4UFQFe1q>SVXMkZjN{EvVTZ)cC7Pi&vp+mb=R#Z5`CE5O1WoS zs20Ig;k48f09dQ%Uf^6X=E($R#1LZ`rtXlW&KMCcn6#bW^oqtxEf#NIKzk7tdh!Z! zFU8P+j2gNAKfq6`$S<$bz1My5yb4TjtIPqnU?4eYx;j8)THgLjX_(7lOIBWZwpP8g>D0o;vmx2)>g^)MHx7!KpbeVnS9 zrHQG@?L!JFO3f7hQ)tb1} z60Gex1r{KRbdar`W?uQtj=!5JXS-s)AGc+AwF6l3RUPUsPH!~`x63_F7?_Ko(1~zg zzYbTP=_s6AxDc!lvGjwS!HvRr~8)vw7mtGcxF z$5Bxe9~C@|8t!BVmZ9*Spkdt%Z*^umGv82q_ZWzG^U7}}v_Q!}O=oX-K1)Kt8hRm2 ztS`>+g;iD2pGX;0%`PE6Lq-!YVw%<58k0rIaz}aKnQ4ZoZIwvHC*zf;gs-g@z6!0o zc*}D7l9A*Gmelh+(vfkz(#}{WR^S7=VYxf|&9_5-pm>Ti6w6lH{wUZHS3W_61rcvi ztxRsoZ=VzGC^}*E556+}ivWaGeAwrN&t35yW~%*p`^UVW5kD3IhScv#$=2~b^2rvT;dN@7S z=rHgOzT2=uoSf<5^EzZO7+h0hXn*r1)+; z>>~O!41W3IiFC$wIqS^Q3t(Jf*vMpt>1h;`;X8(VHy^KT4;S&1AOTG5fW+#QP&QA! z8*q=1dOrL*e_0&bQ0*b~U-{R{h^VgdAqWtI-~Qz*ORLU+aF`PfmeiyHhxw#xCvwoW zYqbd#^%n>!mB}!6)j7}R6##e=$a`d}2z7R|ZMw$o)!RGH%DD$4lMm^IzAT;3=CERR zv0WC2%#@?MC*3=>a1pB>u6k}wG^`^GZb2Mqv` z-(B26MS+apgyp#OeC_ge3z!uQ+5q;TTv=K22ysGcGbEt>Ks5@xtSC*HYky2F(t<-U zL{bBU*$GZ1VL(8DXi(-+y&lSr^7_nWJ#mQz#=shUwV^m(vI`y|h??RRwy;Yis`Onw zJ-bCrDge;z7Ec?P-FNg-cOpV4Oa5CY= z5xTXY4SW|{a0=cD1DHpE%p%W-f9!Vsg0J$uw5IPJc3V$*J{C(Y9_fAvLKLT!OFR7x z!2nce-yFO(a@Wlfe$3Op+`%ksN8-~$P0rq!FY${$<+0F(66$eD7f&x46gt_=6 zD$bmjs=$Am)zfQ@XfcGM7y7+k9A_?Gr%M@}hUv_A_jjzRw0=m<&a(GhOJ3EXHg~UT z!+DE$TjZ5uL|=D5ZF{1>QKp}=_E;yaG;4#-|I!s~2Vfxq!3yHV9Wh`Fs1=u?JByk3 z-v0pXrh36(m`W6~OatgVYYGM=zbi~`PHwJOCA4@TFqG$wp{vj{J8YRe`PF)-+srTO z!G)NJb4cSlQ{~V^+yoIbC+&6-_MXbff#)s8NxVtBFCwS@b??5lyl1uyZ~g2IQi8QXv##SqV1$M7AYl`JYn zSBOCwd5Bkw3xcf|K-_*Wnswzk(pH6eruX{(3G6w@f!>JwadxB{kEffuqwAm(sOoh$ zLw?bTsSTWj@}XrY7CU8h(4H~Gt`IcQ73JDMhoF-9mM401k74$%44)0_@LK5UlGcL_ zkk!aKbAG-6KIyN&Dh8ju3uStGfc=3@`|~%T7m~FvO_RE=6|Cn?sIzQO|Lp(+HI14Z zF~hAWJPnY)vu=#HH_}v!b>|-hJPczxi+=l}=3udwONyJ3*W28iPSqlAzd>1v_LE%i z+l}t0VsTo{G5-Xd0?Zz(dXEqo4G`g$P^dV)0f^cV)EdorH0FQx@<2~&IBH%$#l0oF+?J zOQm`Yg=!I+`hFJng!vF9nA~&GtvR0zZ&OQ6zpkPbr>cI`;a=*~^f)&eR*69wZ5}l1 zUa|MoM7X2Ak!YJ(Ach{^J|s(=MU)|Ec;LXq@4DH~1QG-~0bna03|n;-rmvev`d63H%kI?Uk~rOTGGKMOn4!wYBXh@~Tic(aIG-(?s` zhl$A*>97K6WKluv=|qvNJdM$|gF6##o5fL1^}$!3s2E8+r5(gLfk`=6usN@aqovJF zY(qEl>X!&)ghX@FfBL=B$Z|P$}%PE|D&Rjkj7KfY1Idw$7bwv zaEg=tX&*8!jl_AvTU%g%Xm-Ws-0CTOowy6zv|;xNhc`c+k?k*uKLD9r}XRIn_?xD4RmU3zy&no6MI2pqS9F*;R^I*ZBu z!&;0P7kVyF*2flwCA30sV`?1BtvgwzJ|1*S7&PEHSr|HD`Ir5aw~Iar%To;%?;w`K z_}p~@)xOHTJovg2S`1rAbJe)pY#}H&@v^Xlwg4|9OW`iloD_XkFCRTDvk^QaTT9r@ zVv{D(bG|6R#1?o-`?E?AM)AjZ9sjal=pYxU4UGdor>5~?5EPL=T zT>v|+I+v(Q5cE;quJ(Ac>cmWI2{*9%7`ecI)f7r;Ar3TL)z#_1>6(hOMku8wgEnBS zlep&BGXSzb_^pu`xspbPS8EcE`&pwaF(^nRJi@4*JW>p**ypA$j_on#1n$)whYgp7 zR?@{e5WEGk7Q{(i>ks^FUC}rH=<{)AsiYZk0+>A9KlpJ_5;`uu&aclY(~wzB`rJ@0 z_G|H`GBgl|?h%NU>Qf01_`?K36l4I8qf`y-srrpxhm{_m?|9 zHAT0DMFoVpH2%6Ldn;>n)U!s)K!AzvKYF$sfxk#P9;EHYyJd=!cZ(-Y;kfZYhmhn1 zW-zvhHsM~7mKUe4esah^e>B-L*|YwgbG;IGnsY%KdP}xRwMe-@KP|8L_lG#nBNiF< zWF`V#LO2gM%48N%-U!*TDtHuLXpW^&C>lV|({ypX_UTIZSW!-C=1eO7qy#bG^z@lV01eIO1gP@o)f|&|4xxTTzjk>PX z<*~>}s4zE|yt_dmvC*+AtyqgMg0`SE|oS%ctxI=miL;W*< z2nPDm6%Jvjmwt)f zY~oGNhnw-MdJ@)h%~D)NZ4attEvO2T%LlWcFI`yv!?mRwOezCm06aCEcK*BjNO^-{ z=c7mToVSH1>@YP#a9Th)_1)=6nCro))^}5nA~tP+0f_SX$R$AT!eon5(x`rXjC#sH ztfM5wFw`Aj3VjNJAhzH#{~2X6<=0`0nCa4J>G(LBA2f5&l%#6~|3r8b;E1}issd=X zVml~8s` zWrA*>54JF@R?!mpNX+Kl6Nc0wa&Fib+&x#G_GWA3O4WOz9kKoPqcUX#wjB;d*1*FW zWNCb6#wdvgvFl0i&Z*Uy$0}N-N*ITw4 zkYI7fB&AyWSWd8T8yZ0$-7Xi>)xLVEhY1P(5&^s=G_u|gA34{q@MCeFFZMv#A__UT z^uP+L=omN~h~8FQgu)j*q+uCZ;~he?3(9ZJ3y3*<6U*4V^c#}9HsD1Y7pgp=0vt*7 zXaF+J4aiF&PXA_NlJI!RViS`<=h05K$3HqvJZ6gR7z+~^#dFC7p(mfPbL&P@?;{-a2q1Dw zZ~j(y&tlxl$Av*4`X=?kAU<^N>+`7l4L6>zUFiAIu3ea~Y6VL=Sxcz4r+@Tm0932G z8{+U1m;w3gB?Z(4%uak-6w}VnGr<_Fh(5QIcc?- zAjeo(Mhs)Dm)V^TAXp(w<1Y%w}v+wmw%@76@M@0Y}A+P^CP`6*05JYKs

    =%CfA& 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®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

    PA$1rcJV^9RWB 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

    koj0)c=k{3s}e)AirMz3 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 X81X|I^ctHUjY`ti@zFX4|K9`vWo;|| diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skyboxsun25degtest.txt b/app/static/app/js/vendor/potree/build/resources/textures/skyboxsun25degtest.txt deleted file mode 100644 index 9e47547a..00000000 --- a/app/static/app/js/vendor/potree/build/resources/textures/skyboxsun25degtest.txt +++ /dev/null @@ -1 +0,0 @@ -http://reije081.home.xs4all.nl/skyboxes/ diff --git a/app/static/app/js/vendor/potree/build/shaders/shaders.js b/app/static/app/js/vendor/potree/build/shaders/shaders.js index 23e585ce..2360da9e 100644 --- a/app/static/app/js/vendor/potree/build/shaders/shaders.js +++ b/app/static/app/js/vendor/potree/build/shaders/shaders.js @@ -17,6 +17,8 @@ attribute float pointSourceID; attribute vec4 indices; attribute float spacing; attribute float gpsTime; +attribute vec3 normal; +attribute float aExtra; uniform mat4 modelMatrix; uniform mat4 modelViewMatrix; @@ -36,7 +38,6 @@ uniform bool uUseOrthographicCamera; uniform float uOrthoWidth; uniform float uOrthoHeight; - #define CLIPTASK_NONE 0 #define CLIPTASK_HIGHLIGHT 1 #define CLIPTASK_SHOW_INSIDE 2 @@ -83,16 +84,17 @@ uniform vec2 intensityRange; uniform vec2 uFilterReturnNumberRange; uniform vec2 uFilterNumberOfReturnsRange; +uniform vec2 uFilterPointSourceIDClipRange; uniform vec2 uFilterGPSTimeClipRange; +uniform float uGpsScale; +uniform float uGpsOffset; + +uniform vec2 uNormalizedGpsBufferRange; + +uniform vec3 uIntensity_gbc; +uniform vec3 uRGB_gbc; +uniform vec3 uExtra_gbc; -uniform float uGPSOffset; -uniform float uGPSRange; -uniform float intensityGamma; -uniform float intensityContrast; -uniform float intensityBrightness; -uniform float rgbGamma; -uniform float rgbContrast; -uniform float rgbBrightness; uniform float uTransition; uniform float wRGB; uniform float wIntensity; @@ -101,12 +103,22 @@ uniform float wClassification; uniform float wReturnNumber; uniform float wSourceID; +uniform vec2 uExtraNormalizedRange; +uniform vec2 uExtraRange; +uniform float uExtraScale; +uniform float uExtraOffset; + uniform vec3 uShadowColor; uniform sampler2D visibleNodes; uniform sampler2D gradient; uniform sampler2D classificationLUT; +#if defined(color_type_matcap) +uniform sampler2D matcapTextureUniform; +#endif +uniform bool backfaceCulling; + #if defined(num_shadowmaps) && num_shadowmaps > 0 uniform sampler2D uShadowMap[num_shadowmaps]; uniform mat4 uShadowWorldView[num_shadowmaps]; @@ -139,7 +151,7 @@ float round(float number){ // OCTREE // --------------------- -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_octree) +#if (defined(adaptive_point_size) || defined(color_type_level_of_detail)) && defined(tree_type_octree) /** * number of 1-bits up to inclusive index position * number is treated as if it were an integer in the range 0-255 @@ -209,7 +221,7 @@ float getLOD(){ int iOffset = int(uVNStart); float depth = uLevel; for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); + float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); vec3 index3d = (position-offset) / nodeSizeAtLevel; index3d = floor(index3d + 0.5); @@ -246,7 +258,7 @@ float getSpacing(){ float depth = uLevel; float spacing = uNodeSpacing; for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); + float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); vec3 index3d = (position-offset) / nodeSizeAtLevel; index3d = floor(index3d + 0.5); @@ -297,7 +309,7 @@ float getPointSizeAttenuation(){ // KD-TREE // --------------------- -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_kdtree) +#if (defined(adaptive_point_size) || defined(color_type_level_of_detail)) && defined(tree_type_kdtree) float getLOD(){ vec3 offset = vec3(0.0, 0.0, 0.0); @@ -384,33 +396,38 @@ float getContrastFactor(float contrast){ vec3 getRGB(){ vec3 rgb = color; - rgb = pow(rgb, vec3(rgbGamma)); - rgb = rgb + rgbBrightness; - //rgb = (rgb - 0.5) * getContrastFactor(rgbContrast) + 0.5; + rgb = pow(rgb, vec3(uRGB_gbc.x)); + rgb = rgb + uRGB_gbc.y; + rgb = (rgb - 0.5) * getContrastFactor(uRGB_gbc.z) + 0.5; rgb = clamp(rgb, 0.0, 1.0); - //rgb = indices.rgb; - //rgb.b = pcIndex / 255.0; - - return rgb; } float getIntensity(){ float w = (intensity - intensityRange.x) / (intensityRange.y - intensityRange.x); - w = pow(w, intensityGamma); - w = w + intensityBrightness; - w = (w - 0.5) * getContrastFactor(intensityContrast) + 0.5; + w = pow(w, uIntensity_gbc.x); + w = w + uIntensity_gbc.y; + w = (w - 0.5) * getContrastFactor(uIntensity_gbc.z) + 0.5; w = clamp(w, 0.0, 1.0); return w; } -float getGpsTime(){ - float w = (gpsTime + uGPSOffset) / uGPSRange; - w = clamp(w, 0.0, 1.0); +vec3 getGpsTime(){ - return w; + float w = (gpsTime + uGpsOffset) * uGpsScale; + + + vec3 c = texture2D(gradient, vec2(w, 1.0 - w)).rgb; + + + // vec2 r = uNormalizedGpsBufferRange; + // float w = gpsTime * (r.y - r.x) + r.x; + // w = clamp(w, 0.0, 1.0); + // vec3 c = texture2D(gradient, vec2(w,1.0-w)).rgb; + + return c; } vec3 getElevation(){ @@ -442,6 +459,16 @@ vec3 getReturnNumber(){ } } +vec3 getNumberOfReturns(){ + float value = numberOfReturns; + + float w = value / 6.0; + + vec3 color = texture2D(gradient, vec2(w, 1.0 - w)).rgb; + + return color; +} + vec3 getSourceID(){ float w = mod(pointSourceID, 10.0) / 10.0; return texture2D(gradient, vec2(w,1.0 - w)).rgb; @@ -467,7 +494,7 @@ vec3 getCompositeColor(){ w += wSourceID; vec4 cl = wClassification * getClassification(); - c += cl.a * cl.rgb; + c += cl.a * cl.rgb; w += wClassification * cl.a; c = c / w; @@ -481,24 +508,63 @@ vec3 getCompositeColor(){ } -// -// ###### ## #### ######## ######## #### ## ## ###### -// ## ## ## ## ## ## ## ## ## ### ## ## ## -// ## ## ## ## ## ## ## ## #### ## ## -// ## ## ## ######## ######## ## ## ## ## ## #### -// ## ## ## ## ## ## ## #### ## ## -// ## ## ## ## ## ## ## ## ### ## ## -// ###### ######## #### ## ## #### ## ## ###### -// +vec3 getNormal(){ + //vec3 n_hsv = vec3( modelMatrix * vec4( normal, 0.0 )) * 0.5 + 0.5; // (n_world.xyz + vec3(1.,1.,1.)) / 2.; + vec3 n_view = normalize( vec3(modelViewMatrix * vec4( normal, 0.0 )) ); + return n_view; +} +bool applyBackfaceCulling() { + // Black not facing vertices / Backface culling + vec3 e = normalize(vec3(modelViewMatrix * vec4( position, 1. ))); + vec3 n = getNormal(); // normalize( vec3(modelViewMatrix * vec4( normal, 0.0 )) ); + if((uUseOrthographicCamera && n.z <= 0.) || (!uUseOrthographicCamera && dot( n, e ) >= 0.)) { + return true; + } else { + return false; + } +} +#if defined(color_type_matcap) +// Matcap Material +vec3 getMatcap(){ + vec3 eye = normalize( vec3( modelViewMatrix * vec4( position, 1. ) ) ); + if(uUseOrthographicCamera) { + eye = vec3(0., 0., -1.); + } + vec3 r_en = reflect( eye, getNormal() ); // or r_en = e - 2. * dot( n, e ) * n; + float m = 2. * sqrt(pow( r_en.x, 2. ) + pow( r_en.y, 2. ) + pow( r_en.z + 1., 2. )); + vec2 vN = r_en.xy / m + .5; + return texture2D(matcapTextureUniform, vN).rgb; +} +#endif + +vec3 getExtra(){ + + float w = (aExtra + uExtraOffset) * uExtraScale; + w = clamp(w, 0.0, 1.0); + + vec3 color = texture2D(gradient, vec2(w,1.0-w)).rgb; + + // vec2 r = uExtraNormalizedRange; + + // float w = aExtra * (r.y - r.x) + r.x; + + // w = (w - uExtraRange.x) / (uExtraRange.y - uExtraRange.x); + + // w = clamp(w, 0.0, 1.0); + + // vec3 color = texture2D(gradient, vec2(w,1.0-w)).rgb; + + return color; +} vec3 getColor(){ vec3 color; - #ifdef color_type_rgb + #ifdef color_type_rgba color = getRGB(); - #elif defined color_type_height + #elif defined color_type_height || defined color_type_elevation color = getElevation(); #elif defined color_type_rgb_height vec3 cHeight = getElevation(); @@ -507,29 +573,31 @@ vec3 getColor(){ float linearDepth = gl_Position.w; float expDepth = (gl_Position.z / gl_Position.w) * 0.5 + 0.5; color = vec3(linearDepth, expDepth, 0.0); + //color = vec3(1.0, 0.5, 0.3); #elif defined color_type_intensity float w = getIntensity(); color = vec3(w, w, w); - #elif defined color_type_gpstime - float w = getGpsTime(); - color = vec3(w, w, w); + #elif defined color_type_gps_time + color = getGpsTime(); #elif defined color_type_intensity_gradient float w = getIntensity(); color = texture2D(gradient, vec2(w,1.0-w)).rgb; #elif defined color_type_color color = uColor; - #elif defined color_type_lod + #elif defined color_type_level_of_detail float depth = getLOD(); float w = depth / 10.0; color = texture2D(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_point_index + #elif defined color_type_indices color = indices.rgb; #elif defined color_type_classification vec4 cl = getClassification(); color = cl.rgb; #elif defined color_type_return_number color = getReturnNumber(); - #elif defined color_type_source + #elif defined color_type_number_of_returns + color = getNumberOfReturns(); + #elif defined color_type_source_id color = getSourceID(); #elif defined color_type_normal color = (modelMatrix * vec4(normal, 0.0)).xyz; @@ -537,8 +605,16 @@ vec3 getColor(){ color = color; #elif defined color_type_composite color = getCompositeColor(); + #elif defined color_type_matcap + color = getMatcap(); + #else + color = getExtra(); #endif + if (backfaceCulling && applyBackfaceCulling()) { + color = vec3(0.); + } + return color; } @@ -624,14 +700,14 @@ bool pointInClipPolygon(vec3 point, int polyIdx) { void doClipping(){ - #if !defined color_type_composite + { vec4 cl = getClassification(); if(cl.a == 0.0){ gl_Position = vec4(100.0, 100.0, 100.0, 0.0); return; } - #endif + } #if defined(clip_return_number_enabled) { // return number filter @@ -657,7 +733,7 @@ void doClipping(){ #if defined(clip_gps_enabled) { // GPS time filter - float time = gpsTime + uGPSOffset; + float time = (gpsTime + uGpsOffset) * uGpsScale; vec2 range = uFilterGPSTimeClipRange; if(time < range.x || time > range.y){ @@ -668,6 +744,17 @@ void doClipping(){ } #endif + #if defined(clip_point_source_id_enabled) + { // point source id filter + vec2 range = uFilterPointSourceIDClipRange; + if(pointSourceID < range.x || pointSourceID > range.y){ + gl_Position = vec4(100.0, 100.0, 100.0, 0.0); + + return; + } + } + #endif + int clipVolumesCount = 0; int insideCount = 0; @@ -727,7 +814,7 @@ void doClipping(){ // void main() { - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); + vec4 mvPosition = modelViewMatrix * vec4(position, 1.0 ); vViewPosition = mvPosition.xyz; gl_Position = projectionMatrix * mvPosition; vLogDepth = log2(-mvPosition.z); @@ -740,6 +827,12 @@ void main() { // COLOR vColor = getColor(); + //gl_Position = vec4(0.0, 0.0, 0.0, 1.0); + //gl_Position = vec4(position.xzy / 1000.0, 1.0 ); + + //gl_PointSize = 5.0; + //vColor = vec3(1.0, 1.0, 1.0); + #if defined hq_depth_pass float originalDepth = gl_Position.w; @@ -824,20 +917,14 @@ void main() { //vColor = vec3(1.0, 1.0, 1.0) * visibility + vec3(1.0, 1.0, 1.0) * vec3(0.5, 0.0, 0.0) * (1.0 - visibility); vColor = vColor * visibility + vColor * uShadowColor * (1.0 - visibility); } + + } #endif - - //vColor = vec3(1.0, 0.0, 0.0); - - //if(uDebug){ - // vColor.b = (vColor.r + vColor.g + vColor.b) / 3.0; - // vColor.r = 1.0; - // vColor.g = 1.0; - //} - } ` + Shaders["pointcloud.fs"] = ` #if defined paraboloid_point_shape #extension GL_EXT_frag_depth : enable @@ -892,7 +979,7 @@ void main() { } #endif - #if defined color_type_point_index + #if defined color_type_indices gl_FragColor = vec4(color, uPCIndex / 255.0); #else gl_FragColor = vec4(color, uOpacity); @@ -932,11 +1019,14 @@ void main() { gl_FragColor.a = weight; gl_FragColor.xyz = gl_FragColor.xyz * weight; #endif + + //gl_FragColor = vec4(0.0, 0.7, 0.0, 1.0); } ` + Shaders["pointcloud_sm.vs"] = ` precision mediump float; precision mediump int; @@ -1080,6 +1170,7 @@ void main() { } ` + Shaders["pointcloud_sm.fs"] = ` precision mediump float; precision mediump int; @@ -1098,6 +1189,7 @@ void main() { ` + Shaders["normalize.vs"] = ` precision mediump float; precision mediump int; @@ -1114,6 +1206,7 @@ void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); }` + Shaders["normalize.fs"] = ` #extension GL_EXT_frag_depth : enable @@ -1143,9 +1236,15 @@ void main() { }` + Shaders["normalize_and_edl.fs"] = ` #extension GL_EXT_frag_depth : enable +// +// adapted from the EDL shader code from Christian Boucheny in cloud compare: +// https://github.com/cloudcompare/trunk/tree/master/plugins/qEDL/shaders/EDL +// + precision mediump float; precision mediump int; @@ -1202,7 +1301,16 @@ void main() { gl_FragDepthEXT = depth; }` + Shaders["edl.vs"] = ` +precision mediump float; +precision mediump int; + +attribute vec3 position; +attribute vec2 uv; + +uniform mat4 projectionMatrix; +uniform mat4 modelViewMatrix; varying vec2 vUv; @@ -1213,12 +1321,17 @@ void main() { gl_Position = projectionMatrix * mvPosition; }` -Shaders["edl.fs"] = `// + +Shaders["edl.fs"] = ` +#extension GL_EXT_frag_depth : enable + +// // adapted from the EDL shader code from Christian Boucheny in cloud compare: // https://github.com/cloudcompare/trunk/tree/master/plugins/qEDL/shaders/EDL // -#extension GL_EXT_frag_depth : enable +precision mediump float; +precision mediump int; uniform float screenWidth; uniform float screenHeight; @@ -1286,6 +1399,7 @@ void main(){ } ` + Shaders["blur.vs"] = ` varying vec2 vUv; @@ -1294,6 +1408,7 @@ void main() { gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); }` + Shaders["blur.fs"] = ` uniform mat4 projectionMatrix; @@ -1326,944 +1441,5 @@ void main() { gl_FragColor = vec4(color, 1.0); }` -Shaders["pointcloud.gl2.vs"] = `#version 300 es - -precision highp float; -precision highp int; - -#define max_clip_polygons 8 -#define PI 3.141592653589793 - -in vec3 position; -in vec3 color; -in float intensity; -in float classification; -in float returnNumber; -in float numberOfReturns; -in float pointSourceID; -in vec4 indices; -in float spacing; -in float gpsTime; - -uniform mat4 modelMatrix; -uniform mat4 modelViewMatrix; -uniform mat4 projectionMatrix; -uniform mat4 viewMatrix; -uniform mat4 uViewInv; - -uniform float uScreenWidth; -uniform float uScreenHeight; -uniform float fov; -uniform float near; -uniform float far; - -uniform bool uDebug; - -uniform bool uUseOrthographicCamera; -uniform float uOrthoWidth; -uniform float uOrthoHeight; - - -#define CLIPTASK_NONE 0 -#define CLIPTASK_HIGHLIGHT 1 -#define CLIPTASK_SHOW_INSIDE 2 -#define CLIPTASK_SHOW_OUTSIDE 3 - -#define CLIPMETHOD_INSIDE_ANY 0 -#define CLIPMETHOD_INSIDE_ALL 1 - -uniform int clipTask; -uniform int clipMethod; -#if defined(num_clipboxes) && num_clipboxes > 0 - uniform mat4 clipBoxes[num_clipboxes]; -#endif - -#if defined(num_clipspheres) && num_clipspheres > 0 - uniform mat4 uClipSpheres[num_clipspheres]; -#endif - -#if defined(num_clippolygons) && num_clippolygons > 0 - uniform int uClipPolygonVCount[num_clippolygons]; - uniform vec3 uClipPolygonVertices[num_clippolygons * 8]; - uniform mat4 uClipPolygonWVP[num_clippolygons]; -#endif - -layout(std140) uniform ubo_point{ - float size; - float minSize; - float maxSize; -} pointData; - -struct Node{ - float level; - float vnStart; -}; - -uniform float uPCIndex; -uniform float uOctreeSpacing; -uniform float uNodeSpacing; -uniform float uOctreeSize; -uniform vec3 uBBSize; -uniform float uLevel; -uniform float uVNStart; -uniform bool uIsLeafNode; - -uniform vec3 uColor; -uniform float uOpacity; - -uniform vec2 elevationRange; -uniform vec2 intensityRange; - -uniform vec2 uFilterReturnNumberRange; -uniform vec2 uFilterNumberOfReturnsRange; -uniform vec2 uFilterGPSTimeClipRange; - -uniform float uGPSOffset; -uniform float uGPSRange; -uniform float intensityGamma; -uniform float intensityContrast; -uniform float intensityBrightness; -uniform float rgbGamma; -uniform float rgbContrast; -uniform float rgbBrightness; -uniform float uTransition; -uniform float wRGB; -uniform float wIntensity; -uniform float wElevation; -uniform float wClassification; -uniform float wReturnNumber; -uniform float wSourceID; - -uniform vec3 uShadowColor; - -uniform sampler2D visibleNodes; -uniform sampler2D gradient; -uniform sampler2D classificationLUT; - -#if defined(num_shadowmaps) && num_shadowmaps > 0 -uniform sampler2D uShadowMap[num_shadowmaps]; -uniform mat4 uShadowWorldView[num_shadowmaps]; -uniform mat4 uShadowProj[num_shadowmaps]; -#endif - -out vec3 vColor; -out float vLogDepth; -out vec3 vViewPosition; -out float vRadius; -out float vPointSize; - - -//float round(float number){ -// return floor(number + 0.5); -//} - -// -// ### ######## ### ######## ######## #### ## ## ######## ###### #### ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ######## ## ## ## ## ###### ###### ## ## ###### ###### -// ######### ## ## ######### ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ######## ## ## ## ## #### ### ######## ###### #### ######## ######## ###### -// - - -// --------------------- -// OCTREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_octree) -/** - * number of 1-bits up to inclusive index position - * number is treated as if it were an integer in the range 0-255 - * - */ -int numberOfOnes(int number, int index){ - int numOnes = 0; - int tmp = 128; - for(int i = 7; i >= 0; i--){ - - if(number >= tmp){ - number = number - tmp; - - if(i <= index){ - numOnes++; - } - } - - tmp = tmp / 2; - } - - return numOnes; -} - - -/** - * checks whether the bit at index is 1 - * number is treated as if it were an integer in the range 0-255 - * - */ -bool isBitSet(int number, int index){ - - // weird multi else if due to lack of proper array, int and bitwise support in WebGL 1.0 - int powi = 1; - if(index == 0){ - powi = 1; - }else if(index == 1){ - powi = 2; - }else if(index == 2){ - powi = 4; - }else if(index == 3){ - powi = 8; - }else if(index == 4){ - powi = 16; - }else if(index == 5){ - powi = 32; - }else if(index == 6){ - powi = 64; - }else if(index == 7){ - powi = 128; - }else{ - return false; - } - - int ndp = number / powi; - - return mod(float(ndp), 2.0) != 0.0; -} - - -/** - * find the LOD at the point position - */ -float getLOD(){ - - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - depth++; - }else{ - // no more visible child nodes at this position - return value.a * 255.0; - //return depth; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return depth; -} - -float getSpacing(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - float spacing = uNodeSpacing; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - float spacingFactor = value.a; - - if(i > 0.0){ - spacing = spacing / (255.0 * spacingFactor); - } - - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - //spacing = spacing / (255.0 * spacingFactor); - //spacing = spacing / 3.0; - - depth++; - }else{ - // no more visible child nodes at this position - return spacing; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return spacing; -} - -float getPointSizeAttenuation(){ - return pow(2.0, getLOD()); -} - - -#endif - - -// --------------------- -// KD-TREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_kdtree) - -float getLOD(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - float iOffset = 0.0; - float depth = 0.0; - - - vec3 size = uBBSize; - vec3 pos = position; - - for(float i = 0.0; i <= 1000.0; i++){ - - vec4 value = texture(visibleNodes, vec2(iOffset / 2048.0, 0.0)); - - int children = int(value.r * 255.0); - float next = value.g * 255.0; - int split = int(value.b * 255.0); - - if(next == 0.0){ - return depth; - } - - vec3 splitv = vec3(0.0, 0.0, 0.0); - if(split == 1){ - splitv.x = 1.0; - }else if(split == 2){ - splitv.y = 1.0; - }else if(split == 4){ - splitv.z = 1.0; - } - - iOffset = iOffset + next; - - float factor = length(pos * splitv / size); - if(factor < 0.5){ - // left - if(children == 0 || children == 2){ - return depth; - } - }else{ - // right - pos = pos - size * splitv * 0.5; - if(children == 0 || children == 1){ - return depth; - } - if(children == 3){ - iOffset = iOffset + 1.0; - } - } - size = size * ((1.0 - (splitv + 1.0) / 2.0) + 0.5); - - depth++; - } - - - return depth; -} - -float getPointSizeAttenuation(){ - return 0.5 * pow(1.3, getLOD()); -} - -#endif - - - -// -// ### ######## ######## ######## #### ######## ## ## ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ######## ## ######## ## ## ## ###### ###### -// ######### ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## #### ######## ####### ## ######## ###### -// - - - -// formula adapted from: http://www.dfstudios.co.uk/articles/programming/image-programming-algorithms/image-processing-algorithms-part-5-contrast-adjustment/ -float getContrastFactor(float contrast){ - return (1.0158730158730156 * (contrast + 1.0)) / (1.0158730158730156 - contrast); -} - -vec3 getRGB(){ - vec3 rgb = color; - - rgb = pow(rgb, vec3(rgbGamma)); - rgb = rgb + rgbBrightness; - //rgb = (rgb - 0.5) * getContrastFactor(rgbContrast) + 0.5; - rgb = clamp(rgb, 0.0, 1.0); - - //rgb = indices.rgb; - //rgb.b = pcIndex / 255.0; - - - return rgb; -} - -float getIntensity(){ - float w = (intensity - intensityRange.x) / (intensityRange.y - intensityRange.x); - w = pow(w, intensityGamma); - w = w + intensityBrightness; - w = (w - 0.5) * getContrastFactor(intensityContrast) + 0.5; - w = clamp(w, 0.0, 1.0); - - return w; -} - -float getGpsTime(){ - float w = (gpsTime + uGPSOffset) / uGPSRange; - w = clamp(w, 0.0, 1.0); - - return w; -} - -vec3 getElevation(){ - vec4 world = modelMatrix * vec4( position, 1.0 ); - float w = (world.z - elevationRange.x) / (elevationRange.y - elevationRange.x); - vec3 cElevation = texture(gradient, vec2(w,1.0-w)).rgb; - - return cElevation; -} - -vec4 getClassification(){ - vec2 uv = vec2(classification / 255.0, 0.5); - vec4 classColor = texture(classificationLUT, uv); - - return classColor; -} - -vec3 getReturnNumber(){ - if(numberOfReturns == 1.0){ - return vec3(1.0, 1.0, 0.0); - }else{ - if(returnNumber == 1.0){ - return vec3(1.0, 0.0, 0.0); - }else if(returnNumber == numberOfReturns){ - return vec3(0.0, 0.0, 1.0); - }else{ - return vec3(0.0, 1.0, 0.0); - } - } -} - -vec3 getSourceID(){ - float w = mod(pointSourceID, 10.0) / 10.0; - return texture(gradient, vec2(w,1.0 - w)).rgb; -} - -vec3 getCompositeColor(){ - vec3 c; - float w; - - c += wRGB * getRGB(); - w += wRGB; - - c += wIntensity * getIntensity() * vec3(1.0, 1.0, 1.0); - w += wIntensity; - - c += wElevation * getElevation(); - w += wElevation; - - c += wReturnNumber * getReturnNumber(); - w += wReturnNumber; - - c += wSourceID * getSourceID(); - w += wSourceID; - - vec4 cl = wClassification * getClassification(); - c += cl.a * cl.rgb; - w += wClassification * cl.a; - - c = c / w; - - if(w == 0.0){ - //c = color; - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - } - - return c; -} - - -// -// ###### ## #### ######## ######## #### ## ## ###### -// ## ## ## ## ## ## ## ## ## ### ## ## ## -// ## ## ## ## ## ## ## ## #### ## ## -// ## ## ## ######## ######## ## ## ## ## ## #### -// ## ## ## ## ## ## ## #### ## ## -// ## ## ## ## ## ## ## ## ### ## ## -// ###### ######## #### ## ## #### ## ## ###### -// - - - -vec3 getColor(){ - vec3 color; - - #ifdef color_type_rgb - color = getRGB(); - #elif defined color_type_height - color = getElevation(); - #elif defined color_type_rgb_height - vec3 cHeight = getElevation(); - color = (1.0 - uTransition) * getRGB() + uTransition * cHeight; - #elif defined color_type_depth - float linearDepth = gl_Position.w; - float expDepth = (gl_Position.z / gl_Position.w) * 0.5 + 0.5; - color = vec3(linearDepth, expDepth, 0.0); - #elif defined color_type_intensity - float w = getIntensity(); - color = vec3(w, w, w); - #elif defined color_type_gpstime - float w = getGpsTime(); - color = vec3(w, w, w); - #elif defined color_type_intensity_gradient - float w = getIntensity(); - color = texture(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_color - color = uColor; - #elif defined color_type_lod - float depth = getLOD(); - float w = depth / 10.0; - color = texture(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_point_index - color = indices.rgb; - #elif defined color_type_classification - vec4 cl = getClassification(); - color = cl.rgb; - #elif defined color_type_return_number - color = getReturnNumber(); - #elif defined color_type_source - color = getSourceID(); - #elif defined color_type_normal - color = (modelMatrix * vec4(normal, 0.0)).xyz; - #elif defined color_type_phong - color = color; - #elif defined color_type_composite - color = getCompositeColor(); - #endif - - return color; -} - -float getPointSize(){ - float pointSize = 1.0; - - float slope = tan(fov / 2.0); - float projFactor = -0.5 * uScreenHeight / (slope * vViewPosition.z); - - float r = uOctreeSpacing * 1.7; - vRadius = r; - #if defined fixed_point_size - pointSize = pointData.size; - #elif defined attenuated_point_size - if(uUseOrthographicCamera){ - pointSize = pointData.size; - }else{ - pointSize = pointData.size * spacing * projFactor; - //pointSize = pointSize * projFactor; - } - #elif defined adaptive_point_size - if(uUseOrthographicCamera) { - float worldSpaceSize = 1.0 * pointData.size * r / getPointSizeAttenuation(); - pointSize = (worldSpaceSize / uOrthoWidth) * uScreenWidth; - } else { - - if(uIsLeafNode && false){ - pointSize = pointData.size * spacing * projFactor; - }else{ - float worldSpaceSize = 1.0 * pointData.size * r / getPointSizeAttenuation(); - pointSize = worldSpaceSize * projFactor; - } - } - #endif - - pointSize = max(pointData.minSize, pointSize); - pointSize = min(pointData.maxSize, pointSize); - - vRadius = pointSize / projFactor; - - return pointSize; -} - -#if defined(num_clippolygons) && num_clippolygons > 0 -bool pointInClipPolygon(vec3 point, int polyIdx) { - - mat4 wvp = uClipPolygonWVP[polyIdx]; - //vec4 screenClipPos = uClipPolygonVP[polyIdx] * modelMatrix * vec4(point, 1.0); - //screenClipPos.xy = screenClipPos.xy / screenClipPos.w * 0.5 + 0.5; - - vec4 pointNDC = wvp * vec4(point, 1.0); - pointNDC.xy = pointNDC.xy / pointNDC.w; - - int j = uClipPolygonVCount[polyIdx] - 1; - bool c = false; - for(int i = 0; i < 8; i++) { - if(i == uClipPolygonVCount[polyIdx]) { - break; - } - - //vec4 verti = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + i], 1); - //vec4 vertj = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + j], 1); - - //verti.xy = verti.xy / verti.w; - //vertj.xy = vertj.xy / vertj.w; - - //verti.xy = verti.xy / verti.w * 0.5 + 0.5; - //vertj.xy = vertj.xy / vertj.w * 0.5 + 0.5; - - vec3 verti = uClipPolygonVertices[polyIdx * 8 + i]; - vec3 vertj = uClipPolygonVertices[polyIdx * 8 + j]; - - if( ((verti.y > pointNDC.y) != (vertj.y > pointNDC.y)) && - (pointNDC.x < (vertj.x-verti.x) * (pointNDC.y-verti.y) / (vertj.y-verti.y) + verti.x) ) { - c = !c; - } - j = i; - } - - return c; -} -#endif - -void doClipping(){ - - #if !defined color_type_composite - vec4 cl = getClassification(); - if(cl.a == 0.0){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - #endif - - #if defined(clip_return_number_enabled) - { // return number filter - vec2 range = uFilterReturnNumberRange; - if(returnNumber < range.x || returnNumber > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_number_of_returns_enabled) - { // number of return filter - vec2 range = uFilterNumberOfReturnsRange; - if(numberOfReturns < range.x || numberOfReturns > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_gps_enabled) - { // GPS time filter - float time = gpsTime + uGPSOffset; - vec2 range = uFilterGPSTimeClipRange; - - if(time < range.x || time > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - int clipVolumesCount = 0; - int insideCount = 0; - - #if defined(num_clipboxes) && num_clipboxes > 0 - for(int i = 0; i < num_clipboxes; i++){ - vec4 clipPosition = clipBoxes[i] * modelMatrix * vec4( position, 1.0 ); - bool inside = -0.5 <= clipPosition.x && clipPosition.x <= 0.5; - inside = inside && -0.5 <= clipPosition.y && clipPosition.y <= 0.5; - inside = inside && -0.5 <= clipPosition.z && clipPosition.z <= 0.5; - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - #if defined(num_clippolygons) && num_clippolygons > 0 - for(int i = 0; i < num_clippolygons; i++) { - bool inside = pointInClipPolygon(position, i); - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - bool insideAny = insideCount > 0; - bool insideAll = (clipVolumesCount > 0) && (clipVolumesCount == insideCount); - - if(clipMethod == CLIPMETHOD_INSIDE_ANY){ - if(insideAny && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAny && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAny && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - }else if(clipMethod == CLIPMETHOD_INSIDE_ALL){ - if(insideAll && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAll && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAll && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - } -} - - - -// -// ## ## ### #### ## ## -// ### ### ## ## ## ### ## -// #### #### ## ## ## #### ## -// ## ### ## ## ## ## ## ## ## -// ## ## ######### ## ## #### -// ## ## ## ## ## ## ### -// ## ## ## ## #### ## ## -// - -void main() { - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); - vViewPosition = mvPosition.xyz; - gl_Position = projectionMatrix * mvPosition; - vLogDepth = log2(-mvPosition.z); - - // POINT SIZE - float pointSize = getPointSize(); - gl_PointSize = pointSize; - vPointSize = pointSize; - - // COLOR - vColor = getColor(); - - - #if defined hq_depth_pass - float originalDepth = gl_Position.w; - float adjustedDepth = originalDepth + 2.0 * vRadius; - float adjust = adjustedDepth / originalDepth; - - mvPosition.xyz = mvPosition.xyz * adjust; - gl_Position = projectionMatrix * mvPosition; - #endif - - - // CLIPPING - doClipping(); - - #if defined(num_clipspheres) && num_clipspheres > 0 - for(int i = 0; i < num_clipspheres; i++){ - vec4 sphereLocal = uClipSpheres[i] * mvPosition; - - float distance = length(sphereLocal.xyz); - - if(distance < 1.0){ - float w = distance; - vec3 cGradient = texture(gradient, vec2(w, 1.0 - w)).rgb; - - vColor = cGradient; - //vColor = cGradient * 0.7 + vColor * 0.3; - } - } - #endif - - #if defined(num_shadowmaps) && num_shadowmaps > 0 - - const float sm_near = 0.1; - const float sm_far = 10000.0; - - for(int i = 0; i < num_shadowmaps; i++){ - vec3 viewPos = (uShadowWorldView[i] * vec4(position, 1.0)).xyz; - float distanceToLight = abs(viewPos.z); - - vec4 projPos = uShadowProj[i] * uShadowWorldView[i] * vec4(position, 1); - vec3 nc = projPos.xyz / projPos.w; - - float u = nc.x * 0.5 + 0.5; - float v = nc.y * 0.5 + 0.5; - - vec2 sampleStep = vec2(1.0 / (2.0*1024.0), 1.0 / (2.0*1024.0)) * 1.5; - vec2 sampleLocations[9]; - sampleLocations[0] = vec2(0.0, 0.0); - sampleLocations[1] = sampleStep; - sampleLocations[2] = -sampleStep; - sampleLocations[3] = vec2(sampleStep.x, -sampleStep.y); - sampleLocations[4] = vec2(-sampleStep.x, sampleStep.y); - - sampleLocations[5] = vec2(0.0, sampleStep.y); - sampleLocations[6] = vec2(0.0, -sampleStep.y); - sampleLocations[7] = vec2(sampleStep.x, 0.0); - sampleLocations[8] = vec2(-sampleStep.x, 0.0); - - float visibleSamples = 0.0; - float numSamples = 0.0; - - float bias = vRadius * 2.0; - - for(int j = 0; j < 9; j++){ - vec4 depthMapValue = texture(uShadowMap[i], vec2(u, v) + sampleLocations[j]); - - float linearDepthFromSM = depthMapValue.x + bias; - float linearDepthFromViewer = distanceToLight; - - if(linearDepthFromSM > linearDepthFromViewer){ - visibleSamples += 1.0; - } - - numSamples += 1.0; - } - - float visibility = visibleSamples / numSamples; - - if(u < 0.0 || u > 1.0 || v < 0.0 || v > 1.0 || nc.x < -1.0 || nc.x > 1.0 || nc.y < -1.0 || nc.y > 1.0 || nc.z < -1.0 || nc.z > 1.0){ - //vColor = vec3(0.0, 0.0, 0.2); - }else{ - //vColor = vec3(1.0, 1.0, 1.0) * visibility + vec3(1.0, 1.0, 1.0) * vec3(0.5, 0.0, 0.0) * (1.0 - visibility); - vColor = vColor * visibility + vColor * uShadowColor * (1.0 - visibility); - } - } - - #endif - -} -` -Shaders["pointcloud.gl2.fs"] = `#version 300 es - -#if defined paraboloid_point_shape - #extension GL_EXT_frag_depth : enable -#endif - -precision highp float; -precision highp int; - -uniform mat4 viewMatrix; -uniform mat4 uViewInv; -uniform mat4 uProjInv; -uniform vec3 cameraPosition; - - -uniform mat4 projectionMatrix; -uniform float uOpacity; - -uniform float blendHardness; -uniform float blendDepthSupplement; -uniform float fov; -uniform float uSpacing; -uniform float near; -uniform float far; -uniform float uPCIndex; -uniform float uScreenWidth; -uniform float uScreenHeight; - -in vec3 vColor; -in float vLogDepth; -in vec3 vViewPosition; -in float vRadius; -in float vPointSize; -in vec3 vPosition; - -out vec4 out_color; - - -float specularStrength = 1.0; - -void main() { - - vec3 color = vColor; - float depth = gl_FragCoord.z; - - #if defined(circle_point_shape) || defined(paraboloid_point_shape) - float u = 2.0 * gl_PointCoord.x - 1.0; - float v = 2.0 * gl_PointCoord.y - 1.0; - #endif - - #if defined(circle_point_shape) - float cc = u*u + v*v; - if(cc > 1.0){ - discard; - } - #endif - - #if defined color_type_point_index - out_color = vec4(color, uPCIndex / 255.0); - #else - out_color = vec4(color, uOpacity); - #endif - - #if defined paraboloid_point_shape - float wi = 0.0 - ( u*u + v*v); - vec4 pos = vec4(vViewPosition, 1.0); - pos.z += wi * vRadius; - float linearDepth = -pos.z; - pos = projectionMatrix * pos; - pos = pos / pos.w; - float expDepth = pos.z; - depth = (pos.z + 1.0) / 2.0; - gl_FragDepthEXT = depth; - - #if defined(color_type_depth) - color.r = linearDepth; - color.g = expDepth; - #endif - - #if defined(use_edl) - out_color.a = log2(linearDepth); - #endif - - #else - #if defined(use_edl) - out_color.a = vLogDepth; - #endif - #endif - - #if defined(weighted_splats) - float distance = 2.0 * length(gl_PointCoord.xy - 0.5); - float weight = max(0.0, 1.0 - distance); - weight = pow(weight, 1.5); - - out_color.a = weight; - out_color.xyz = out_color.xyz * weight; - #endif - -} - - -` export {Shaders}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/build/sidebar.html b/app/static/app/js/vendor/potree/build/sidebar.html deleted file mode 100644 index 4c2c9e19..00000000 --- a/app/static/app/js/vendor/potree/build/sidebar.html +++ /dev/null @@ -1,222 +0,0 @@ - -

    - - diff --git a/app/static/app/js/vendor/potree/build/workers/BinaryDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/BinaryDecoderWorker.js deleted file mode 100644 index 562bbf55..00000000 --- a/app/static/app/js/vendor/potree/build/workers/BinaryDecoderWorker.js +++ /dev/null @@ -1,497 +0,0 @@ -class Version{ - - constructor(version){ - this.version = version; - let vmLength = (version.indexOf('.') === -1) ? version.length : version.indexOf('.'); - this.versionMajor = parseInt(version.substr(0, vmLength)); - this.versionMinor = parseInt(version.substr(vmLength + 1)); - if (this.versionMinor.length === 0) { - this.versionMinor = 0; - } - } - - newerThan(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor > v.versionMinor) { - return true; - } else { - return false; - } - } - - equalOrHigher(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor >= v.versionMinor) { - return true; - } else { - return false; - } - } - - upTo(version){ - return !this.newerThan(version); - } - -} - -const PointAttributeNames = { - POSITION_CARTESIAN: 0, // float x, y, z; - COLOR_PACKED: 1, // byte r, g, b, a; I: [0,1] - COLOR_FLOATS_1: 2, // float r, g, b; I: [0,1] - COLOR_FLOATS_255: 3, // float r, g, b; I: [0,255] - NORMAL_FLOATS: 4, // float x, y, z; - FILLER: 5, - INTENSITY: 6, - CLASSIFICATION: 7, - NORMAL_SPHEREMAPPED: 8, - NORMAL_OCT16: 9, - NORMAL: 10, - RETURN_NUMBER: 11, - NUMBER_OF_RETURNS: 12, - SOURCE_ID: 13, - INDICES: 14, - SPACING: 15, - GPS_TIME: 16, -}; - - -/** - * Some types of possible point attribute data formats - * - * @class - */ -const PointAttributeTypes = { - DATA_TYPE_DOUBLE: {ordinal: 0, size: 8}, - DATA_TYPE_FLOAT: {ordinal: 1, size: 4}, - DATA_TYPE_INT8: {ordinal: 2, size: 1}, - DATA_TYPE_UINT8: {ordinal: 3, size: 1}, - DATA_TYPE_INT16: {ordinal: 4, size: 2}, - DATA_TYPE_UINT16: {ordinal: 5, size: 2}, - DATA_TYPE_INT32: {ordinal: 6, size: 4}, - DATA_TYPE_UINT32: {ordinal: 7, size: 4}, - DATA_TYPE_INT64: {ordinal: 8, size: 8}, - DATA_TYPE_UINT64: {ordinal: 9, size: 8} -}; - -let i = 0; -for (let obj in PointAttributeTypes) { - PointAttributeTypes[i] = PointAttributeTypes[obj]; - i++; -} - - -class PointAttribute{ - - constructor(name, type, numElements){ - this.name = name; - this.type = type; - this.numElements = numElements; - this.byteSize = this.numElements * this.type.size; - } - -} -PointAttribute.POSITION_CARTESIAN = new PointAttribute( - PointAttributeNames.POSITION_CARTESIAN, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RGBA_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 4); - -PointAttribute.COLOR_PACKED = PointAttribute.RGBA_PACKED; - -PointAttribute.RGB_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 3); - -PointAttribute.NORMAL_FLOATS = new PointAttribute( - PointAttributeNames.NORMAL_FLOATS, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.FILLER_1B = new PointAttribute( - PointAttributeNames.FILLER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.INTENSITY = new PointAttribute( - PointAttributeNames.INTENSITY, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.CLASSIFICATION = new PointAttribute( - PointAttributeNames.CLASSIFICATION, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NORMAL_SPHEREMAPPED = new PointAttribute( - PointAttributeNames.NORMAL_SPHEREMAPPED, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL_OCT16 = new PointAttribute( - PointAttributeNames.NORMAL_OCT16, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL = new PointAttribute( - PointAttributeNames.NORMAL, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RETURN_NUMBER = new PointAttribute( - PointAttributeNames.RETURN_NUMBER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NUMBER_OF_RETURNS = new PointAttribute( - PointAttributeNames.NUMBER_OF_RETURNS, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.SOURCE_ID = new PointAttribute( - PointAttributeNames.SOURCE_ID, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.INDICES = new PointAttribute( - PointAttributeNames.INDICES, - PointAttributeTypes.DATA_TYPE_UINT32, 1); - -PointAttribute.SPACING = new PointAttribute( - PointAttributeNames.SPACING, - PointAttributeTypes.DATA_TYPE_FLOAT, 1); - -PointAttribute.GPS_TIME = new PointAttribute( - PointAttributeNames.GPS_TIME, - PointAttributeTypes.DATA_TYPE_DOUBLE, 1); - -/* global onmessage:true postMessage:false */ -/* exported onmessage */ -// http://jsperf.com/uint8array-vs-dataview3/3 -function CustomView (buffer) { - this.buffer = buffer; - this.u8 = new Uint8Array(buffer); - - let tmp = new ArrayBuffer(8); - let tmpf = new Float32Array(tmp); - let tmpd = new Float64Array(tmp); - let tmpu8 = new Uint8Array(tmp); - - this.getUint32 = function (i) { - return (this.u8[i + 3] << 24) | (this.u8[i + 2] << 16) | (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getUint16 = function (i) { - return (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getFloat32 = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - - return tmpf[0]; - }; - - this.getFloat64 = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - tmpu8[4] = this.u8[i + 4]; - tmpu8[5] = this.u8[i + 5]; - tmpu8[6] = this.u8[i + 6]; - tmpu8[7] = this.u8[i + 7]; - - return tmpd[0]; - }; - - this.getUint8 = function (i) { - return this.u8[i]; - }; -} - -Potree = {}; - -onmessage = function (event) { - - performance.mark("binary-decoder-start"); - - let buffer = event.data.buffer; - let pointAttributes = event.data.pointAttributes; - let numPoints = buffer.byteLength / pointAttributes.byteSize; - let cv = new CustomView(buffer); - let version = new Version(event.data.version); - let nodeOffset = event.data.offset; - let scale = event.data.scale; - let spacing = event.data.spacing; - let hasChildren = event.data.hasChildren; - let name = event.data.name; - - let tightBoxMin = [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ]; - let tightBoxMax = [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ]; - let mean = [0, 0, 0]; - - - let attributeBuffers = {}; - let inOffset = 0; - for (let pointAttribute of pointAttributes.attributes) { - - if (pointAttribute.name === PointAttribute.POSITION_CARTESIAN.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let positions = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let x, y, z; - - if (version.newerThan('1.3')) { - x = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 0, true) * scale); - y = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 4, true) * scale); - z = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 8, true) * scale); - } else { - x = cv.getFloat32(j * pointAttributes.byteSize + 0, true) + nodeOffset[0]; - y = cv.getFloat32(j * pointAttributes.byteSize + 4, true) + nodeOffset[1]; - z = cv.getFloat32(j * pointAttributes.byteSize + 8, true) + nodeOffset[2]; - } - - positions[3 * j + 0] = x; - positions[3 * j + 1] = y; - positions[3 * j + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoxMin[0] = Math.min(tightBoxMin[0], x); - tightBoxMin[1] = Math.min(tightBoxMin[1], y); - tightBoxMin[2] = Math.min(tightBoxMin[2], z); - - tightBoxMax[0] = Math.max(tightBoxMax[0], x); - tightBoxMax[1] = Math.max(tightBoxMax[1], y); - tightBoxMax[2] = Math.max(tightBoxMax[2], z); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.COLOR_PACKED.name) { - let buff = new ArrayBuffer(numPoints * 4); - let colors = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - colors[4 * j + 0] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - colors[4 * j + 1] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - colors[4 * j + 2] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 2); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.INTENSITY.name) { - let buff = new ArrayBuffer(numPoints * 4); - let intensities = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let intensity = cv.getUint16(inOffset + j * pointAttributes.byteSize, true); - intensities[j] = intensity; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.CLASSIFICATION.name) { - let buff = new ArrayBuffer(numPoints); - let classifications = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let classification = cv.getUint8(inOffset + j * pointAttributes.byteSize); - classifications[j] = classification; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.RETURN_NUMBER.name) { - let buff = new ArrayBuffer(numPoints); - let returnNumbers = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let returnNumber = cv.getUint8(inOffset + j * pointAttributes.byteSize); - returnNumbers[j] = returnNumber; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NUMBER_OF_RETURNS.name) { - let buff = new ArrayBuffer(numPoints); - let numberOfReturns = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let numberOfReturn = cv.getUint8(inOffset + j * pointAttributes.byteSize); - numberOfReturns[j] = numberOfReturn; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.SOURCE_ID.name) { - let buff = new ArrayBuffer(numPoints * 2); - let sourceIDs = new Uint16Array(buff); - - for (let j = 0; j < numPoints; j++) { - let sourceID = cv.getUint16(inOffset + j * pointAttributes.byteSize); - sourceIDs[j] = sourceID; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL_SPHEREMAPPED.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let bx = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - let by = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - - let ex = bx / 255; - let ey = by / 255; - - let nx = ex * 2 - 1; - let ny = ey * 2 - 1; - let nz = 1; - let nw = -1; - - let l = (nx * (-nx)) + (ny * (-ny)) + (nz * (-nw)); - nz = l; - nx = nx * Math.sqrt(l); - ny = ny * Math.sqrt(l); - - nx = nx * 2; - ny = ny * 2; - nz = nz * 2 - 1; - - normals[3 * j + 0] = nx; - normals[3 * j + 1] = ny; - normals[3 * j + 2] = nz; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL_OCT16.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let bx = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - let by = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - - let u = (bx / 255) * 2 - 1; - let v = (by / 255) * 2 - 1; - - let z = 1 - Math.abs(u) - Math.abs(v); - - let x = 0; - let y = 0; - if (z >= 0) { - x = u; - y = v; - } else { - x = -(v / Math.sign(v) - 1) / Math.sign(u); - y = -(u / Math.sign(u) - 1) / Math.sign(v); - } - - let length = Math.sqrt(x * x + y * y + z * z); - x = x / length; - y = y / length; - z = z / length; - - normals[3 * j + 0] = x; - normals[3 * j + 1] = y; - normals[3 * j + 2] = z; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let x = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 0, true); - let y = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 4, true); - let z = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 8, true); - - normals[3 * j + 0] = x; - normals[3 * j + 1] = y; - normals[3 * j + 2] = z; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.GPS_TIME.name) { - let buff = new ArrayBuffer(numPoints * 8); - let gpstimes = new Float64Array(buff); - - for(let j = 0; j < numPoints; j++){ - let gpstime = cv.getFloat64(inOffset + j * pointAttributes.byteSize, true); - gpstimes[j] = gpstime; - } - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } - - inOffset += pointAttribute.byteSize; - } - - // Convert GPS time from double (unsupported by WebGL) to origin-aligned floats - if(attributeBuffers[PointAttribute.GPS_TIME.name]){ - let attribute = attributeBuffers[PointAttribute.GPS_TIME.name]; - let sourceF64 = new Float64Array(attribute.buffer); - let target = new ArrayBuffer(numPoints * 4); - let targetF32 = new Float32Array(target); - - let min = Infinity; - let max = -Infinity; - for(let i = 0; i < numPoints; i++){ - let gpstime = sourceF64[i]; - - min = Math.min(min, gpstime); - max = Math.max(max, gpstime); - } - - for(let i = 0; i < numPoints; i++){ - let gpstime = sourceF64[i]; - targetF32[i] = gpstime - min; - } - - attributeBuffers[PointAttribute.GPS_TIME.name] = { - buffer: target, - attribute: PointAttribute.GPS_TIME, - offset: min, - range: max - min}; - } - - - { // add indices - let buff = new ArrayBuffer(numPoints * 4); - let indices = new Uint32Array(buff); - - for (let i = 0; i < numPoints; i++) { - indices[i] = i; - } - - attributeBuffers[PointAttribute.INDICES.name] = { buffer: buff, attribute: PointAttribute.INDICES }; - } - - performance.mark("binary-decoder-end"); - - //{ // print timings - // //performance.measure("spacing", "spacing-start", "spacing-end"); - // performance.measure("binary-decoder", "binary-decoder-start", "binary-decoder-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - buffer: buffer, - mean: mean, - attributeBuffers: attributeBuffers, - tightBoundingBox: { min: tightBoxMin, max: tightBoxMax }, - //estimatedSpacing: estimatedSpacing, - }; - - let transferables = []; - for (let property in message.attributeBuffers) { - transferables.push(message.attributeBuffers[property].buffer); - } - transferables.push(buffer); - - postMessage(message, transferables); -}; diff --git a/app/static/app/js/vendor/potree/build/workers/EptBinaryDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/EptBinaryDecoderWorker.js deleted file mode 100644 index 1b79af17..00000000 --- a/app/static/app/js/vendor/potree/build/workers/EptBinaryDecoderWorker.js +++ /dev/null @@ -1,5 +0,0 @@ -importScripts('/libs/ept/ParseBuffer.js'); -onmessage = function(event) { - parseEpt(event); -} - diff --git a/app/static/app/js/vendor/potree/build/workers/EptLaszipDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/EptLaszipDecoderWorker.js deleted file mode 100644 index 47c2ac68..00000000 --- a/app/static/app/js/vendor/potree/build/workers/EptLaszipDecoderWorker.js +++ /dev/null @@ -1,176 +0,0 @@ -function readUsingDataView(event) { - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let pointSize = event.data.pointSize; - let pointFormat = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let tightBoundingBox = { - min: [ - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY - ], - max: [ - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY - ] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - // Point format 3 contains an 8-byte GpsTime before RGB values, so make - // sure we have the correct color offset. - let hasColor = pointFormat == 2 || pointFormat == 3; - let co = pointFormat == 2 ? 20 : 28; - - // TODO This should be cached per-resource since this is an expensive check. - let twoByteColor = false; - if (hasColor) { - let r, g, b, pos; - for (let i = 0; i < numPoints && !twoByteColor; ++i) { - pos = i * pointSize; - r = sourceView.getUint16(pos + co, true) - g = sourceView.getUint16(pos + co + 2, true) - b = sourceView.getUint16(pos + co + 4, true) - if (r > 255 || g > 255 || b > 255) twoByteColor = true; - } - } - - for (let i = 0; i < numPoints; i++) { - // POSITION - let ux = sourceView.getInt32(i * pointSize + 0, true); - let uy = sourceView.getInt32(i * pointSize + 4, true); - let uz = sourceView.getInt32(i * pointSize + 8, true); - - x = ux * scale[0] + offset[0] - event.data.mins[0]; - y = uy * scale[1] + offset[1] - event.data.mins[1]; - z = uz * scale[2] + offset[2] - event.data.mins[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - let intensity = sourceView.getUint16(i * pointSize + 12, true); - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - // number of returns stored in next 3 bits - 00111000 - let returnNumberAndNumberOfReturns = sourceView.getUint8(i * pointSize + 14, true); - let returnNumber = returnNumberAndNumberOfReturns & 0b0111; - let numberOfReturn = (returnNumberAndNumberOfReturns & 0b00111000) >> 3; - returnNumbers[i] = returnNumber; - numberOfReturns[i] = numberOfReturn; - - // CLASSIFICATION - let classification = sourceView.getUint8(i * pointSize + 15, true); - classifications[i] = classification; - - // POINT SOURCE ID - let pointSourceID = sourceView.getUint16(i * pointSize + 18, true); - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (hasColor) { - let r = sourceView.getUint16(i * pointSize + co, true) - let g = sourceView.getUint16(i * pointSize + co + 2, true) - let b = sourceView.getUint16(i * pointSize + co + 4, true) - - if (twoByteColor) { - r /= 256; - g /= 256; - b /= 256; - } - - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - colors[4 * i + 3] = 255; - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - - //{ // print timings - // performance.measure("laslaz", "laslaz-start", "laslaz-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices - ]; - - postMessage(message, transferables); -}; - - - -onmessage = readUsingDataView; - diff --git a/app/static/app/js/vendor/potree/build/workers/EptZstandardDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/EptZstandardDecoderWorker.js deleted file mode 100644 index 911ccab8..00000000 --- a/app/static/app/js/vendor/potree/build/workers/EptZstandardDecoderWorker.js +++ /dev/null @@ -1,16 +0,0 @@ -window = { }; -document = { }; -importScripts('/libs/zstd-codec/bundle.js', '/libs/ept/ParseBuffer.js'); - -onmessage = function(event) { - new Promise(resolve => window.ZstdCodec.run(resolve)) - .then(zstd => { - let streaming = new zstd.Streaming(); - let arr = new Uint8Array(event.data.buffer); - const decompressed = streaming.decompress(arr); - - event.data.buffer = decompressed.buffer - parseEpt(event); - }) -} - diff --git a/app/static/app/js/vendor/potree/build/workers/GreyhoundBinaryDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/GreyhoundBinaryDecoderWorker.js deleted file mode 100644 index 6bbd8c02..00000000 --- a/app/static/app/js/vendor/potree/build/workers/GreyhoundBinaryDecoderWorker.js +++ /dev/null @@ -1,50080 +0,0 @@ -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof Module !== 'undefined' ? Module : {}; - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) -// {{PRE_JSES}} - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -var key; -for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -Module['arguments'] = []; -Module['thisProgram'] = './this.program'; -Module['quit'] = function(status, toThrow) { - throw toThrow; -}; -Module['preRun'] = []; -Module['postRun'] = []; - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('Module[\'ENVIRONMENT\'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - var ret; - ret = tryParseAsDataURI(filename); - if (!ret) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - ret = nodeFS['readFileSync'](filename); - } - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - // Currently node will swallow unhandled rejections, but this behavior is - // deprecated, and in the future it will exit with error status. - process['on']('unhandledRejection', function(reason, p) { - Module['printErr']('node.js exiting due to unhandled promise rejection'); - process['exit'](1); - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} else -if (ENVIRONMENT_IS_SHELL) { - if (typeof read != 'undefined') { - Module['read'] = function shell_read(f) { - var data = tryParseAsDataURI(f); - if (data) { - return intArrayToString(data); - } - return read(f); - }; - } - - Module['readBinary'] = function readBinary(f) { - var data; - data = tryParseAsDataURI(f); - if (data) { - return data; - } - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } -} else -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - try { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - } catch (err) { - var data = tryParseAsDataURI(url); - if (data) { - return intArrayToString(data); - } - throw err; - } - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - try { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - } catch (err) { - var data = tryParseAsDataURI(url); - if (data) { - return data; - } - throw err; - } - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - return; - } - var data = tryParseAsDataURI(url); - if (data) { - onload(data.buffer); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - Module['setWindowTitle'] = function(title) { document.title = title }; -} else -{ - throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); -} - -// console.log is checked first, as 'print' on the web will open a print dialogue -// printErr is preferable to console.warn (works better in shells) -// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior. -Module['print'] = typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null); -Module['printErr'] = typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || Module['print']); - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Merge back in the overrides -for (key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -var STACK_ALIGN = 16; - -// stack management, and other functionality that is provided by the compiled code, -// should not be used before it is ready -stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() { - abort('cannot use the stack before compiled code is ready to run, and has provided stack access'); -}; - -function staticAlloc(size) { - assert(!staticSealed); - var ret = STATICTOP; - STATICTOP = (STATICTOP + size + 15) & -16; - return ret; -} - -function dynamicAlloc(size) { - assert(DYNAMICTOP_PTR); - var ret = HEAP32[DYNAMICTOP_PTR>>2]; - var end = (ret + size + 15) & -16; - HEAP32[DYNAMICTOP_PTR>>2] = end; - if (end >= TOTAL_MEMORY) { - var success = enlargeMemory(); - if (!success) { - HEAP32[DYNAMICTOP_PTR>>2] = ret; - return 0; - } - } - return ret; -} - -function alignMemory(size, factor) { - if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default - var ret = size = Math.ceil(size / factor) * factor; - return ret; -} - -function getNativeTypeSize(type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return 4; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits / 8; - } else { - return 0; - } - } - } -} - -function warnOnce(text) { - if (!warnOnce.shown) warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - Module.printErr(text); - } -} - - - -var jsCallStartIndex = 1; -var functionPointers = new Array(0); - -// 'sig' parameter is only used on LLVM wasm backend -function addFunction(func, sig) { - if (typeof sig === 'undefined') { - Module.printErr('warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.'); - } - var base = 0; - for (var i = base; i < base + 0; i++) { - if (!functionPointers[i]) { - functionPointers[i] = func; - return jsCallStartIndex + i; - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; -} - -function removeFunction(index) { - functionPointers[index-jsCallStartIndex] = null; -} - -var funcWrappers = {}; - -function getFuncWrapper(func, sig) { - if (!func) return; // on null pointer, return undefined - assert(sig); - if (!funcWrappers[sig]) { - funcWrappers[sig] = {}; - } - var sigCache = funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; -} - - -function makeBigInt(low, high, unsigned) { - return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0)); -} - -function dynCall(sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } -} - - -function getCompilerSetting(name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work'; -} - -var Runtime = { - // FIXME backwards compatibility layer for ports. Support some Runtime.* - // for now, fix it there, then remove it from here. That way we - // can minimize any period of breakage. - dynCall: dynCall, // for SDL2 port - // helpful errors - getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, - staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, - stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, -}; - -// The address globals begin at. Very low in memory, for code size and optimization opportunities. -// Above 0 is static memory, starting with globals. -// Then the stack. -// Then 'dynamic' memory for sbrk. -var GLOBAL_BASE = 8; - - - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); - return func; -} - -var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - stackSave() - }, - 'stackRestore': function() { - stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } -}; - -// For fast lookup of conversion functions -var toC = { - 'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC'] -}; - -// C calling interface. -function ccall (ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if (returnType === 'string') ret = Pointer_stringify(ret); - else if (returnType === 'boolean') ret = Boolean(ret); - if (stack !== 0) { - stackRestore(stack); - } - return ret; -} - -function cwrap (ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = returnType !== 'string'; - if (numericRet && numericArgs) { - return cfunc; - } - return function() { - return ccall(ident, returnType, argTypes, arguments); - } -} - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for getValue: ' + type); - } - return null; -} - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var stop; - ptr = ret; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return staticAlloc(size); - if (!runtimeInitialized) return dynamicAlloc(size); - return _malloc(size); -} - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return UTF8ToString(ptr); -} - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - -// Allocate heap space for a JS string, and write it there. -// It is the responsibility of the caller to free() that memory. -function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; -} - -// Allocate stack space for a JS string, and write it there. -function allocateUTF8OnStack(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8Array(str, HEAP8, ret, size); - return ret; -} - -function demangle(func) { - warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 167772160; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); - Module['buffer'] = buffer; -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT'); - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_max = Math.max; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - -var /* show errors on likely calls to FS when it was not included */ FS = { - error: function() { - abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); - }, - init: function() { FS.error() }, - createDataFile: function() { FS.error() }, - createPreloadedFile: function() { FS.error() }, - createLazyFile: function() { FS.error() }, - open: function() { FS.error() }, - mkdev: function() { FS.error() }, - registerDevice: function() { FS.error() }, - analyzePath: function() { FS.error() }, - loadFilesFromDB: function() { FS.error() }, - - ErrnoError: function ErrnoError() { FS.error() }, -}; -Module['FS_createDataFile'] = FS.createDataFile; -Module['FS_createPreloadedFile'] = FS.createPreloadedFile; - - - -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -// Indicates whether filename is a base64 data URI. -function isDataURI(filename) { - return String.prototype.startsWith ? - filename.startsWith(dataURIPrefix) : - filename.indexOf(dataURIPrefix) === 0; -} - - - - - -// === Body === - -var ASM_CONSTS = []; - - - - - -STATIC_BASE = GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 22928; -/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_laz_perf_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } }); - - -memoryInitializer = "data:application/octet-stream;base64,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2wAAAAAAAABIBQAA3AAAAN0AAADeAAAAAAAAAFgFAADfAAAA4AAAAA0AAAAAAAAAaAUAANwAAADhAAAA3gAAAAAAAACYBQAAzQAAAOIAAADPAAAA0AAAAOMAAAAAAAAAiAUAAM0AAADkAAAAzwAAANAAAADlAAAAAAAAABgGAADNAAAA5gAAAM8AAADQAAAA0QAAAOcAAADoAAAA6QAAAExBU1ppcABvcGVuAGdldFBvaW50AGdldENvdW50AER5bmFtaWNMQVNaaXAAYWRkRmllbGRGbG9hdGluZwBhZGRGaWVsZFNpZ25lZABhZGRGaWVsZFVuc2lnbmVkAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVOU185YWxsb2NhdG9ySVMzX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzdfRUVOU185YWxsb2NhdG9ySVM3X0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFAExBU0YATjZsYXN6aXAxM2ludmFsaWRfbWFnaWNFAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUARmlsZSBtYWdpYyBpcyBub3QgdmFsaWQATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk42bGFzemlwMmlvNnJlYWRlcjEwYmFzaWNfZmlsZUlOUzJfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRTExX3ZhbGlkYXRvcnNFdkVVbFJOUzNfNmhlYWRlckVFX05TXzlhbGxvY2F0b3JJU0JfRUVGdlNBX0VFRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlJONmxhc3ppcDJpbzZoZWFkZXJFRUVFAE42bGFzemlwMjFvbGRfc3R5bGVfY29tcHJlc3Npb25FAE42bGFzemlwMTRub3RfY29tcHJlc3NlZEUAVGhlIGZpbGUgc2VlbXMgdG8gaGF2ZSBvbGQgc3R5bGUgY29tcHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZABUaGUgZmlsZSBkb2Vzbid0IHNlZW0gdG8gYmUgY29tcHJlc3NlZABaTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUUxMV92YWxpZGF0b3JzRXZFVWxSTlMwXzZoZWFkZXJFRV8AbGFzemlwIGVuY29kZWQATjZsYXN6aXAxM25vX2xhc3ppcF92bHJFAE42bGFzemlwMjVsYXN6aXBfZm9ybWF0X3Vuc3VwcG9ydGVkRQBPbmx5IExBU3ppcCBQT0lOVFdJU0UgQ0hVTktFRCBkZWNvbXByZXNzb3IgaXMgc3VwcG9ydGVkAE5vIExBU3ppcCBWTFIgd2FzIGZvdW5kIGluIHRoZSBWTFJzIHNlY3Rpb24ATjZsYXN6aXAyMmNodW5rX3RhYmxlX3JlYWRfZXJyb3JFAENodW5rIHRhYmxlIG9mZnNldCA9PSAtMSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZQBONmxhc3ppcDEzbm90X3N1cHBvcnRlZEUATjZsYXN6aXAyNnVua25vd25fY2h1bmtfdGFibGVfZm9ybWF0RQBjaHVua19zaXplID09IHVpbnQubWF4IGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLCBjYWxsIDEtODAwLURBRlVRIGZvciBzdXBwb3J0LgBUaGVyZSB3YXMgYSBwcm9ibGVtIHJlYWRpbmcgdGhlIGNodW5rIHRhYmxlAFRoZSBjaHVuayB0YWJsZSB2ZXJzaW9uIG51bWJlciBpcyB1bmtub3duAE42bGFzemlwMTFlbmRfb2ZfZmlsZUUAUmVhY2hlZCBFbmQgb2YgZmlsZQBJbnZhbGlkIG51bWJlciBvZiBzeW1ib2xzAGJpdHMgJiYgKGJpdHMgPD0gMzIpAC9Vc2Vycy9jb25ub3IvY29kZS9sYXotcGVyZi1hYmVsbC9lbXNjcmlwdGVuLy4uL2xhei1wZXJmL2RlY29kZXIuaHBwAHJlYWRCaXRzAHN5bSA8ICgxPDwxNikAcmVhZFNob3J0AE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM5X0VFTlNfOWFsbG9jYXRvcklTOV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwMTl1bmtub3duX3NjaGVtYV90eXBlRQBUaGUgTEFaIHNjaGVtYSBpcyBub3QgcmVjb2duaXplZABONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2ZpZWxkX2RlY29tcHJlc3NvcklOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMGR5bmFtaWNfZGVjb21wcmVzc29yRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0NfRUVOU185YWxsb2NhdG9ySVNDX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBONmxhc3ppcDdmb3JtYXRzMTBiYXNlX2ZpZWxkRQAPDg0MCwoJCA4AAQMGCgoJDQECBAcLCwoMAwQFCAwMCwsGBwgJDQ0MCgoLDA0ODg0JCgsMDQ4PDggJCgsMDQ4PAAECAwQFBgcBAAECAwQFBgIBAAECAwQFAwIBAAECAwQEAwIBAAECAwUEAwIBAAECBgUEAwIBAAEHBgUEAwIBAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFTlNfOWFsbG9jYXRvcklTSV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczdncHN0aW1lRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzN2dwc3RpbWVFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTSV9FRU5TXzlhbGxvY2F0b3JJU0lfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXM3Z3BzdGltZUVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF81ZmllbGRJTlMwXzNsYXMzcmdiRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzM3JnYkVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFTlNfOWFsbG9jYXRvcklTSV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczNyZ2JFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfNWZpZWxkSU5TMF8zbGFzMTBleHRyYWJ5dGVzRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzMTBleHRyYWJ5dGVzRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0lfRUVOU185YWxsb2NhdG9ySVNJX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzMTBleHRyYWJ5dGVzRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMF81ZmllbGRJTlMwXzNsYXM3cG9pbnQxMEVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRF9FRUVFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNLX0VFTlNfOWFsbG9jYXRvcklTS19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzBfNWZpZWxkSU5TMF8zbGFzN3BvaW50MTBFTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0RfRUVFRU5TQl9JTlNDXzdncHN0aW1lRU5TRV9JU0hfRUVFRUVFRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTTl9FRU5TXzlhbGxvY2F0b3JJU05fRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNEX0VFRUVOU0JfSU5TQ18zcmdiRU5TRV9JU0hfRUVFRUVFRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzNyZ2JFTlNHX0lTSl9FRUVFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNOX0VFTlNfOWFsbG9jYXRvcklTTl9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFTlNEX0lOU0VfM3JnYkVOU0dfSVNKX0VFRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMF81ZmllbGRJTlMwXzNsYXM3cG9pbnQxMEVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRF9FRUVFTlNCX0lOU0NfN2dwc3RpbWVFTlNFX0lTSF9FRUVFTlNCX0lOU0NfM3JnYkVOU0VfSVNLX0VFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV83Z3BzdGltZUVOU0dfSVNKX0VFRUVOU0RfSU5TRV8zcmdiRU5TR19JU01fRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTUV9FRU5TXzlhbGxvY2F0b3JJU1FfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRU5TRF9JTlNFXzNyZ2JFTlNHX0lTTV9FRUVFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQMTBidWZfc3RyZWFtTlNfMTRkZWZhdWx0X2RlbGV0ZUlTMV9FRU5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUkxMGJ1Zl9zdHJlYW1FRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA4ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM1X0VFTlNfOWFsbG9jYXRvcklTNV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZmllbGRfZGVjb21wcmVzc29ySU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzhfRUVOU185YWxsb2NhdG9ySVM4X0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElpTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJaU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWlFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWlOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElpRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElqTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJakVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJak5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWpFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWpOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElqRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElhTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJYUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJYU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWFFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWFOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElhRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElzTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJc0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJc05TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXNFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXNOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElzRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZEloTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaEVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJaE5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWhFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWhOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEloRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZEl0TlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJdEVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJdE5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXRFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXROUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEl0RUVFRUVFRUUANkxBU1ppcABQNkxBU1ppcABQSzZMQVNaaXAAaWkAdgB2aQB2aWlpaQB2aWlpAGlpaQAxM0R5bmFtaWNMQVNaaXAAUDEzRHluYW1pY0xBU1ppcABQSzEzRHluYW1pY0xBU1ppcAB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE4xMGVtc2NyaXB0ZW4zdmFsRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQBOU3QzX18yMjFfX2Jhc2ljX3N0cmluZ19jb21tb25JTGIxRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOADAxMjM0NTY3ODlBQkNERUYuAFQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAc3RkOjpiYWRfZnVuY3Rpb25fY2FsbABOU3QzX18yMTdiYWRfZnVuY3Rpb25fY2FsbEUATlN0M19fMjE0X19zaGFyZWRfY291bnRFAE5TdDNfXzIxOV9fc2hhcmVkX3dlYWtfY291bnRFAG11dGV4IGxvY2sgZmFpbGVkAHRlcm1pbmF0aW5nIHdpdGggJXMgZXhjZXB0aW9uIG9mIHR5cGUgJXM6ICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZXhjZXB0aW9uIG9mIHR5cGUgJXMAdGVybWluYXRpbmcgd2l0aCAlcyBmb3JlaWduIGV4Y2VwdGlvbgB0ZXJtaW5hdGluZwB1bmNhdWdodABTdDlleGNlcHRpb24ATjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAU3Q5dHlwZV9pbmZvAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAcHRocmVhZF9vbmNlIGZhaWx1cmUgaW4gX19jeGFfZ2V0X2dsb2JhbHNfZmFzdCgpAGNhbm5vdCBjcmVhdGUgcHRocmVhZCBrZXkgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAY2Fubm90IHplcm8gb3V0IHRocmVhZCB2YWx1ZSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQB0ZXJtaW5hdGVfaGFuZGxlciB1bmV4cGVjdGVkbHkgcmV0dXJuZWQAc3RkOjpleGNlcHRpb24AU3QxMWxvZ2ljX2Vycm9yAFN0MTNydW50aW1lX2Vycm9yAFN0MTJsZW5ndGhfZXJyb3IATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRQB2AERuAGIAYwBoAGEAcwB0AGkAagBsAG0AZgBkAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0U="; - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - function ___assert_fail(condition, filename, line, func) { - abort('Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function']); - } - - function ___cxa_allocate_exception(size) { - return _malloc(size); - } - - - function __ZSt18uncaught_exceptionv() { // std::uncaught_exception() - return !!__ZSt18uncaught_exceptionv.uncaught_exception; - } - - var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) { - if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; - for (var key in EXCEPTIONS.infos) { - var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for - var info = EXCEPTIONS.infos[ptr]; - if (info.adjusted === adjusted) { - return ptr; - } - } - return adjusted; - },addRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount++; - },decRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - assert(info.refcount > 0); - info.refcount--; - // A rethrown exception can reach refcount 0; it must not be discarded - // Its next handler will clear the rethrown flag and addRef it, prior to - // final decRef and destruction here - if (info.refcount === 0 && !info.rethrown) { - if (info.destructor) { - Module['dynCall_vi'](info.destructor, ptr); - } - delete EXCEPTIONS.infos[ptr]; - ___cxa_free_exception(ptr); - } - },clearRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount = 0; - }};function ___cxa_begin_catch(ptr) { - var info = EXCEPTIONS.infos[ptr]; - if (info && !info.caught) { - info.caught = true; - __ZSt18uncaught_exceptionv.uncaught_exception--; - } - if (info) info.rethrown = false; - EXCEPTIONS.caught.push(ptr); - EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); - return ptr; - } - - function ___cxa_pure_virtual() { - ABORT = true; - throw 'Pure virtual function called!'; - } - - - - function ___resumeException(ptr) { - if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } - throw ptr; - }function ___cxa_find_matching_catch() { - var thrown = EXCEPTIONS.last; - if (!thrown) { - // just pass through the null ptr - return ((setTempRet0(0),0)|0); - } - var info = EXCEPTIONS.infos[thrown]; - var throwntype = info.type; - if (!throwntype) { - // just pass through the thrown ptr - return ((setTempRet0(0),thrown)|0); - } - var typeArray = Array.prototype.slice.call(arguments); - - var pointer = Module['___cxa_is_pointer_type'](throwntype); - // can_catch receives a **, add indirection - if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); - HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown; - thrown = ___cxa_find_matching_catch.buffer; - // The different catch blocks are denoted by different types. - // Due to inheritance, those types may not precisely match the - // type of the thrown object. Find one which matches, and - // return the type of the catch block which should be called. - for (var i = 0; i < typeArray.length; i++) { - if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) { - thrown = HEAP32[((thrown)>>2)]; // undo indirection - info.adjusted = thrown; - return ((setTempRet0(typeArray[i]),thrown)|0); - } - } - // Shouldn't happen unless we have bogus data in typeArray - // or encounter a type for which emscripten doesn't have suitable - // typeinfo defined. Best-efforts match just in case. - thrown = HEAP32[((thrown)>>2)]; // undo indirection - return ((setTempRet0(throwntype),thrown)|0); - }function ___cxa_throw(ptr, type, destructor) { - EXCEPTIONS.infos[ptr] = { - ptr: ptr, - adjusted: ptr, - type: type, - destructor: destructor, - refcount: 0, - caught: false, - rethrown: false - }; - EXCEPTIONS.last = ptr; - if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { - __ZSt18uncaught_exceptionv.uncaught_exception = 1; - } else { - __ZSt18uncaught_exceptionv.uncaught_exception++; - } - throw ptr; - } - - function ___gxx_personality_v0() { - } - - function ___lock() {} - - - - - - var SYSCALLS={varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - - function flush_NO_FILESYSTEM() { - // flush anything remaining in the buffers during shutdown - var fflush = Module["_fflush"]; - if (fflush) fflush(0); - var printChar = ___syscall146.printChar; - if (!printChar) return; - var buffers = ___syscall146.buffers; - if (buffers[1].length) printChar(1, 10); - if (buffers[2].length) printChar(2, 10); - }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - // hack to support printf in NO_FILESYSTEM - var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - var ret = 0; - if (!___syscall146.buffers) { - ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr - ___syscall146.printChar = function(stream, curr) { - var buffer = ___syscall146.buffers[stream]; - assert(buffer); - if (curr === 0 || curr === 10) { - (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); - buffer.length = 0; - } else { - buffer.push(curr); - } - }; - } - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - for (var j = 0; j < len; j++) { - ___syscall146.printChar(stream, HEAPU8[ptr+j]); - } - ret += len; - } - return ret; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - - - - - - - - - function ___unlock() {} - - - function getShiftFromSize(size) { - switch (size) { - case 1: return 0; - case 2: return 1; - case 4: return 2; - case 8: return 3; - default: - throw new TypeError('Unknown type size: ' + size); - } - } - - - - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - }var embind_charCodes=undefined;function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (HEAPU8[c]) { - ret += embind_charCodes[HEAPU8[c++]]; - } - return ret; - } - - - var awaitingDependencies={}; - - var registeredTypes={}; - - var typeDependencies={}; - - - - - - - var char_0=48; - - var char_9=57;function makeLegalFunctionName(name) { - if (undefined === name) { - return '_unknown'; - } - name = name.replace(/[^a-zA-Z0-9_]/g, '$'); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return '_' + name; - } else { - return name; - } - }function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - /*jshint evil:true*/ - return new Function( - "body", - "return function " + name + "() {\n" + - " \"use strict\";" + - " return body.apply(this, arguments);\n" + - "};\n" - )(body); - }function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - - var stack = (new Error(message)).stack; - if (stack !== undefined) { - this.stack = this.toString() + '\n' + - stack.replace(/^Error(:[^\n]*)?\n/, ''); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === undefined) { - return this.name; - } else { - return this.name + ': ' + this.message; - } - }; - - return errorClass; - }var BindingError=undefined;function throwBindingError(message) { - throw new BindingError(message); - } - - - - var InternalError=undefined;function throwInternalError(message) { - throw new InternalError(message); - }function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - - function onComplete(typeConverters) { - var myTypeConverters = getTypeConverters(typeConverters); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError('Mismatched type converter count'); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach(function(dt, i) { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(function() { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (0 === unregisteredTypes.length) { - onComplete(typeConverters); - } - }function registerType(rawType, registeredInstance, options) { - options = options || {}; - - if (!('argPackAdvance' in registeredInstance)) { - throw new TypeError('registerType registeredInstance requires argPackAdvance'); - } - - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach(function(cb) { - cb(); - }); - } - }function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(wt) { - // ambiguous emscripten ABI: sometimes return values are - // true or false, and sometimes integers (0 or 1) - return !!wt; - }, - 'toWireType': function(destructors, o) { - return o ? trueValue : falseValue; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': function(pointer) { - // TODO: if heap is fixed (like in asm.js) this could be executed outside - var heap; - if (size === 1) { - heap = HEAP8; - } else if (size === 2) { - heap = HEAP16; - } else if (size === 4) { - heap = HEAP32; - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this['fromWireType'](heap[pointer >> shift]); - }, - destructorFunction: null, // This type does not need a destructor - }); - } - - - - - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - - return leftClass === rightClass && left === right; - } - - - function shallowCopyInternalPointer(o) { - return { - count: o.count, - deleteScheduled: o.deleteScheduled, - preservePointerOnDelete: o.preservePointerOnDelete, - ptr: o.ptr, - ptrType: o.ptrType, - smartPtr: o.smartPtr, - smartPtrType: o.smartPtrType, - }; - } - - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + ' instance already deleted'); - }function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = Object.create(Object.getPrototypeOf(this), { - $$: { - value: shallowCopyInternalPointer(this.$$), - } - }); - - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - - - function runDestructor(handle) { - var $$ = handle.$$; - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - }function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError('Object already scheduled for deletion'); - } - - this.$$.count.value -= 1; - var toDelete = 0 === this.$$.count.value; - if (toDelete) { - runDestructor(this); - } - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = undefined; - this.$$.ptr = undefined; - } - } - - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - - - var delayFunction=undefined; - - var deletionQueue=[]; - - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj['delete'](); - } - }function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError('Object already scheduled for deletion'); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - }function init_ClassHandle() { - ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf; - ClassHandle.prototype['clone'] = ClassHandle_clone; - ClassHandle.prototype['delete'] = ClassHandle_delete; - ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted; - ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater; - }function ClassHandle() { - } - - var registeredPointers={}; - - - function ensureOverloadTable(proto, methodName, humanName) { - if (undefined === proto[methodName].overloadTable) { - var prevFunc = proto[methodName]; - // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. - proto[methodName] = function() { - // TODO This check can be removed in -O3 level "unsafe" optimizations. - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - // Move the previous function into the overload table. - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - }function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - - // We are exposing a function with the same name as an existing function. Create an overload table and a function selector - // that routes between the two. - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - // Add the new function into the overload table. - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - if (undefined !== numArguments) { - Module[name].numArguments = numArguments; - } - } - } - - function RegisteredClass( - name, - constructor, - instancePrototype, - rawDestructor, - baseClass, - getActualType, - upcast, - downcast - ) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - - - - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - }function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - return 0; - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - - if (this.isSmartPointer) { - // TODO: this is not strictly true - // We could support BY_EMVAL conversions from raw pointers to smart pointers - // because the smart pointer can hold a reference to the handle - if (undefined === handle.$$.smartPtr) { - throwBindingError('Passing raw pointer to smart pointer is illegal'); - } - - switch (this.sharingPolicy) { - case 0: // NONE - // no upcasting - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name); - } - break; - - case 1: // INTRUSIVE - ptr = handle.$$.smartPtr; - break; - - case 2: // BY_EMVAL - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle['clone'](); - ptr = this.rawShare( - ptr, - __emval_register(function() { - clonedHandle['delete'](); - }) - ); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - - default: - throwBindingError('Unsupporting sharing policy'); - } - } - return ptr; - } - - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - return 0; - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError('Cannot convert argument of type ' + handle.$$.ptrType.name + ' to parameter type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - - - function simpleReadValueFromPointer(pointer) { - return this['fromWireType'](HEAPU32[pointer >> 2]); - } - - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle['delete'](); - } - } - - - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (undefined === desiredClass.baseClass) { - return null; // no conversion - } - - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - - - - - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - }function init_embind() { - Module['getInheritedInstanceCount'] = getInheritedInstanceCount; - Module['getLiveInheritedInstances'] = getLiveInheritedInstances; - Module['flushPendingDeletes'] = flushPendingDeletes; - Module['setDelayFunction'] = setDelayFunction; - }var registeredInstances={}; - - function getBasestPointer(class_, ptr) { - if (ptr === undefined) { - throwBindingError('ptr should not be undefined'); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - }function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError('makeClassHandle requires ptr and ptrType'); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError('Both smartPtrType and smartPtr must be specified'); - } - record.count = { value: 1 }; - return Object.create(prototype, { - $$: { - value: record, - }, - }); - }function RegisteredPointer_fromWireType(ptr) { - // ptr is a raw pointer (or a raw smartpointer) - - // rawPointer is a maybe-null raw pointer - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (undefined !== registeredInstance) { - // JS object has been neutered, time to repopulate it - if (0 === registeredInstance.$$.count.value) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance['clone'](); - } else { - // else, just increment reference count on existing object - // it already has a reference to the smart pointer - var rv = registeredInstance['clone'](); - this.destructor(ptr); - return rv; - } - } - - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { - ptrType: this.pointeeType, - ptr: rawPointer, - smartPtrType: this, - smartPtr: ptr, - }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { - ptrType: this, - ptr: ptr, - }); - } - } - - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer( - rawPointer, - this.registeredClass, - toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { - ptrType: toType, - ptr: dp, - smartPtrType: this, - smartPtr: ptr, - }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { - ptrType: toType, - ptr: dp, - }); - } - }function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype['argPackAdvance'] = 8; - RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer; - RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType; - }function RegisteredPointer( - name, - registeredClass, - isReference, - isConst, - - // smart pointer properties - isSmartPointer, - pointeeType, - sharingPolicy, - rawGetPointee, - rawConstructor, - rawShare, - rawDestructor - ) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - - // smart pointer properties - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - - if (!isSmartPointer && registeredClass.baseClass === undefined) { - if (isConst) { - this['toWireType'] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this['toWireType'] = genericPointerToWireType; - // Here we must leave this.destructorFunction undefined, since whether genericPointerToWireType returns - // a pointer that needs to be freed up is runtime-dependent, and cannot be evaluated at registration time. - // TODO: Create an alternative mechanism that allows removing the use of var destructors = []; array in - // craftInvokerFunction altogether. - } - } - - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError('Replacing nonexistant public symbol'); - } - // If there's an overload table for this symbol, replace the symbol in the overload table instead. - if (undefined !== Module[name].overloadTable && undefined !== numArguments) { - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - - function makeDynCaller(dynCall) { - var args = []; - for (var i = 1; i < signature.length; ++i) { - args.push('a' + i); - } - - var name = 'dynCall_' + signature + '_' + rawFunction; - var body = 'return function ' + name + '(' + args.join(', ') + ') {\n'; - body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n'; - body += '};\n'; - - return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction); - } - - var fp; - if (Module['FUNCTION_TABLE_' + signature] !== undefined) { - fp = Module['FUNCTION_TABLE_' + signature][rawFunction]; - } else if (typeof FUNCTION_TABLE !== "undefined") { - fp = FUNCTION_TABLE[rawFunction]; - } else { - // asm.js does not give direct access to the function tables, - // and thus we must go through the dynCall interface which allows - // calling into a signature's function table by pointer value. - // - // https://github.com/dherman/asm.js/issues/83 - // - // This has three main penalties: - // - dynCall is another function call in the path from JavaScript to C++. - // - JITs may not predict through the function table indirection at runtime. - var dc = Module["asm"]['dynCall_' + signature]; - if (dc === undefined) { - // We will always enter this branch if the signature - // contains 'f' and PRECISE_F32 is not enabled. - // - // Try again, replacing 'f' with 'd'. - dc = Module["asm"]['dynCall_' + signature.replace(/f/g, 'd')]; - if (dc === undefined) { - throwBindingError("No dynCall invoker for signature: " + signature); - } - } - fp = makeDynCaller(dc); - } - - if (typeof fp !== "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - - - var UnboundTypeError=undefined; - - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - }function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - - throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', '])); - }function __embind_register_class( - rawType, - rawPointerType, - rawConstPointerType, - baseClassRawType, - getActualTypeSignature, - getActualType, - upcastSignature, - upcast, - downcastSignature, - downcast, - name, - destructorSignature, - rawDestructor - ) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - - exposePublicSymbol(legalFunctionName, function() { - // this code cannot run if baseClassRawType is zero - throwUnboundTypeError('Cannot construct ' + name + ' due to unbound types', [baseClassRawType]); - }); - - whenDependentTypesAreResolved( - [rawType, rawPointerType, rawConstPointerType], - baseClassRawType ? [baseClassRawType] : [], - function(base) { - base = base[0]; - - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (undefined === registeredClass.constructor_body) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (undefined === body) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - - var instancePrototype = Object.create(basePrototype, { - constructor: { value: constructor }, - }); - - constructor.prototype = instancePrototype; - - var registeredClass = new RegisteredClass( - name, - constructor, - instancePrototype, - rawDestructor, - baseClass, - getActualType, - upcast, - downcast); - - var referenceConverter = new RegisteredPointer( - name, - registeredClass, - true, - false, - false); - - var pointerConverter = new RegisteredPointer( - name + '*', - registeredClass, - false, - false, - false); - - var constPointerConverter = new RegisteredPointer( - name + ' const*', - registeredClass, - false, - true, - false); - - registeredPointers[rawType] = { - pointerType: pointerConverter, - constPointerType: constPointerConverter - }; - - replacePublicSymbol(legalFunctionName, constructor); - - return [referenceConverter, pointerConverter, constPointerConverter]; - } - ); - } - - - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(HEAP32[(firstElement >> 2) + i]); - } - return array; - } - - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - }function __embind_register_class_constructor( - rawClassType, - argCount, - rawArgTypesAddr, - invokerSignature, - invoker, - rawConstructor - ) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = 'constructor ' + classType.name; - - if (undefined === classType.registeredClass.constructor_body) { - classType.registeredClass.constructor_body = []; - } - if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount-1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() { - throwUnboundTypeError('Cannot construct ' + classType.name + ' due to unbound types', rawArgTypes); - }; - - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() { - if (arguments.length !== argCount - 1) { - throwBindingError(humanName + ' called with ' + arguments.length + ' arguments, expected ' + (argCount-1)); - } - var destructors = []; - var args = new Array(argCount); - args[0] = rawConstructor; - for (var i = 1; i < argCount; ++i) { - args[i] = argTypes[i]['toWireType'](destructors, arguments[i - 1]); - } - - var ptr = invoker.apply(null, args); - runDestructors(destructors); - - return argTypes[0]['fromWireType'](ptr); - }; - return []; - }); - return []; - }); - } - - - - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function"); - } - - /* - * Previously, the following line was just: - - function dummy() {}; - - * Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the - * correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which - * isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way - * to write a test for this behavior. -NRD 2013.02.22 - */ - var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){}); - dummy.prototype = constructor.prototype; - var obj = new dummy; - - var r = constructor.apply(obj, argumentList); - return (r instanceof Object) ? r : obj; - }function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - // humanName: a human-readable string name for the function to be generated. - // argTypes: An array that contains the embind type objects for all types in the function signature. - // argTypes[0] is the type object for the function return value. - // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. - // argTypes[2...] are the actual function parameters. - // classType: The embind type object for the class to be bound, or null if this is not a method of a class. - // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. - // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. - var argCount = argTypes.length; - - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - - var isClassMethodFunc = (argTypes[1] !== null && classType !== null); - - // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. - // TODO: This omits argument count check - enable only at -O3 or similar. - // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { - // return FUNCTION_TABLE[fn]; - // } - - - // Determine if we need to use a dynamic stack to store the destructors for the function parameters. - // TODO: Remove this completely once all function invokers are being dynamically generated. - var needsDestructorStack = false; - - for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. - if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack - needsDestructorStack = true; - break; - } - } - - var returns = (argTypes[0].name !== "void"); - - var argsList = ""; - var argsListWired = ""; - for(var i = 0; i < argCount - 2; ++i) { - argsList += (i!==0?", ":"")+"arg"+i; - argsListWired += (i!==0?", ":"")+"arg"+i+"Wired"; - } - - var invokerFnBody = - "return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" + - "if (arguments.length !== "+(argCount - 2)+") {\n" + - "throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" + - "}\n"; - - - if (needsDestructorStack) { - invokerFnBody += - "var destructors = [];\n"; - } - - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - - - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n"; - } - - for(var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n"; - args1.push("argType"+i); - args2.push(argTypes[i+2]); - } - - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - - invokerFnBody += - (returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n"; - - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method. - var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired")); - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n"; - args1.push(paramName+"_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\n" + - "return ret;\n"; - } else { - } - invokerFnBody += "}\n"; - - args1.push(invokerFnBody); - - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - }function __embind_register_class_function( - rawClassType, - methodName, - argCount, - rawArgTypesAddr, // [ReturnType, ThisType, Args...] - invokerSignature, - rawInvoker, - context, - isPureVirtual - ) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + '.' + methodName; - - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - - function unboundTypesHandler() { - throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes); - } - - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) { - // This is the first overload to be registered, OR we are replacing a function in the base class with a function in the derived class. - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - // There was an existing function with the same name registered. Set up a function overload routing table. - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - - // Replace the initial unbound-handler-stub function with the appropriate member function, now that all types - // are resolved. If multiple overloads are registered for this function, the function goes into an overload table. - if (undefined === proto[methodName].overloadTable) { - // Set argCount in case an overload is registered later - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - - return []; - }); - return []; - }); - } - - - - var emval_free_list=[]; - - var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) { - if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { - emval_handle_array[handle] = undefined; - emval_free_list.push(handle); - } - } - - - - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - ++count; - } - } - return count; - } - - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - return emval_handle_array[i]; - } - } - return null; - }function init_emval() { - Module['count_emval_handles'] = count_emval_handles; - Module['get_first_emval'] = get_first_emval; - }function __emval_register(value) { - - switch(value){ - case undefined :{ return 1; } - case null :{ return 2; } - case true :{ return 3; } - case false :{ return 4; } - default:{ - var handle = emval_free_list.length ? - emval_free_list.pop() : - emval_handle_array.length; - - emval_handle_array[handle] = {refcount: 1, value: value}; - return handle; - } - } - }function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(handle) { - var rv = emval_handle_array[handle].value; - __emval_decref(handle); - return rv; - }, - 'toWireType': function(destructors, value) { - return __emval_register(value); - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: null, // This type does not need a destructor - - // TODO: do we need a deleteObject here? write a test where - // emval is passed into JS via an interface - }); - } - - - function _embind_repr(v) { - if (v === null) { - return 'null'; - } - var t = typeof v; - if (t === 'object' || t === 'array' || t === 'function') { - return v.toString(); - } else { - return '' + v; - } - } - - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: return function(pointer) { - return this['fromWireType'](HEAPF32[pointer >> 2]); - }; - case 3: return function(pointer) { - return this['fromWireType'](HEAPF64[pointer >> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - }function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - return value; - }, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following if() and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - return value; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': floatReadValueFromPointer(name, shift), - destructorFunction: null, // This type does not need a destructor - }); - } - - - function integerReadValueFromPointer(name, shift, signed) { - // integers are quite common, so generate very specialized functions - switch (shift) { - case 0: return signed ? - function readS8FromPointer(pointer) { return HEAP8[pointer]; } : - function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; - case 1: return signed ? - function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : - function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; - case 2: return signed ? - function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : - function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; - default: - throw new TypeError("Unknown integer type: " + name); - } - }function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32. - maxRange = 4294967295; - } - - var shift = getShiftFromSize(size); - - var fromWireType = function(value) { - return value; - }; - - if (minRange === 0) { - var bitshift = 32 - 8*size; - fromWireType = function(value) { - return (value << bitshift) >>> bitshift; - }; - } - - var isUnsignedType = (name.indexOf('unsigned') != -1); - - registerType(primitiveType, { - name: name, - 'fromWireType': fromWireType, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following two if()s and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - if (value < minRange || value > maxRange) { - throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!'); - } - return isUnsignedType ? (value >>> 0) : (value | 0); - }, - 'argPackAdvance': 8, - 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), - destructorFunction: null, // This type does not need a destructor - }); - } - - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [ - Int8Array, - Uint8Array, - Int16Array, - Uint16Array, - Int32Array, - Uint32Array, - Float32Array, - Float64Array, - ]; - - var TA = typeMapping[dataTypeIndex]; - - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = HEAPU32; - var size = heap[handle]; // in elements - var data = heap[handle + 1]; // byte offset into emscripten heap - return new TA(heap['buffer'], data, size); - } - - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': decodeMemoryView, - 'argPackAdvance': 8, - 'readValueFromPointer': decodeMemoryView, - }, { - ignoreDuplicateRegistrations: true, - }); - } - - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - var length = HEAPU32[value >> 2]; - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAPU8[value + 4 + i]); - } - _free(value); - return a.join(''); - }, - 'toWireType': function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - - function getTAElement(ta, index) { - return ta[index]; - } - function getStringElement(string, index) { - return string.charCodeAt(index); - } - var getElement; - if (value instanceof Uint8Array) { - getElement = getTAElement; - } else if (value instanceof Uint8ClampedArray) { - getElement = getTAElement; - } else if (value instanceof Int8Array) { - getElement = getTAElement; - } else if (typeof value === 'string') { - getElement = getStringElement; - } else { - throwBindingError('Cannot pass non-string to std::string'); - } - - // assumes 4-byte alignment - var length = value.length; - var ptr = _malloc(4 + length); - HEAPU32[ptr >> 2] = length; - for (var i = 0; i < length; ++i) { - var charCode = getElement(value, i); - if (charCode > 255) { - _free(ptr); - throwBindingError('String has UTF-16 code units that do not fit in 8 bits'); - } - HEAPU8[ptr + 4 + i] = charCode; - } - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: function(ptr) { _free(ptr); }, - }); - } - - function __embind_register_std_wstring(rawType, charSize, name) { - // nb. do not cache HEAPU16 and HEAPU32, they may be destroyed by enlargeMemory(). - name = readLatin1String(name); - var getHeap, shift; - if (charSize === 2) { - getHeap = function() { return HEAPU16; }; - shift = 1; - } else if (charSize === 4) { - getHeap = function() { return HEAPU32; }; - shift = 2; - } - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - var HEAP = getHeap(); - var length = HEAPU32[value >> 2]; - var a = new Array(length); - var start = (value + 4) >> shift; - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAP[start + i]); - } - _free(value); - return a.join(''); - }, - 'toWireType': function(destructors, value) { - // assumes 4-byte alignment - var HEAP = getHeap(); - var length = value.length; - var ptr = _malloc(4 + length * charSize); - HEAPU32[ptr >> 2] = length; - var start = (ptr + 4) >> shift; - for (var i = 0; i < length; ++i) { - HEAP[start + i] = value.charCodeAt(i); - } - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: function(ptr) { _free(ptr); }, - }); - } - - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - isVoid: true, // void return values can be optimized out sometimes - name: name, - 'argPackAdvance': 0, - 'fromWireType': function() { - return undefined; - }, - 'toWireType': function(destructors, o) { - // TODO: assert if anything else is given? - return undefined; - }, - }); - } - - function _abort() { - Module['abort'](); - } - - - - - - - - - - - - function _llvm_trap() { - abort('trap!'); - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - - - - - - var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) { - return PTHREAD_SPECIFIC[key] || 0; - } - - - var PTHREAD_SPECIFIC_NEXT_KEY=1; - - var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key, destructor) { - if (key == 0) { - return ERRNO_CODES.EINVAL; - } - HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY; - // values start at 0 - PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; - PTHREAD_SPECIFIC_NEXT_KEY++; - return 0; - } - - - - - - function _pthread_once(ptr, func) { - if (!_pthread_once.seen) _pthread_once.seen = {}; - if (ptr in _pthread_once.seen) return; - Module['dynCall_v'](func); - _pthread_once.seen[ptr] = 1; - } - - function _pthread_setspecific(key, value) { - if (!(key in PTHREAD_SPECIFIC)) { - return ERRNO_CODES.EINVAL; - } - PTHREAD_SPECIFIC[key] = value; - return 0; - } - - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } -embind_init_charCodes(); -BindingError = Module['BindingError'] = extendError(Error, 'BindingError');; -InternalError = Module['InternalError'] = extendError(Error, 'InternalError');; -init_ClassHandle(); -init_RegisteredPointer(); -init_embind();; -UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');; -init_emval();; -DYNAMICTOP_PTR = staticAlloc(4); - -STACK_BASE = STACKTOP = alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - -var ASSERTIONS = true; - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - if (ASSERTIONS) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - } - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} - - -// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 - -// This code was written by Tyler Akins and has been placed in the -// public domain. It would be nice if you left this header intact. -// Base64 code from Tyler Akins -- http://rumkin.com - -/** - * Decodes a base64 string. - * @param {String} input The string to decode. - */ -var decodeBase64 = typeof atob === 'function' ? atob : function (input) { - var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - var output = ''; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - // remove all characters that are not A-Z, a-z, 0-9, +, /, or = - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); - do { - enc1 = keyStr.indexOf(input.charAt(i++)); - enc2 = keyStr.indexOf(input.charAt(i++)); - enc3 = keyStr.indexOf(input.charAt(i++)); - enc4 = keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output = output + String.fromCharCode(chr1); - - if (enc3 !== 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 !== 64) { - output = output + String.fromCharCode(chr3); - } - } while (i < input.length); - return output; -}; - -// Converts a string of base64 into a byte array. -// Throws error on invalid input. -function intArrayFromBase64(s) { - if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) { - var buf; - try { - buf = Buffer.from(s, 'base64'); - } catch (_) { - buf = new Buffer(s, 'base64'); - } - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); - } - - try { - var decoded = decodeBase64(s); - var bytes = new Uint8Array(decoded.length); - for (var i = 0 ; i < decoded.length ; ++i) { - bytes[i] = decoded.charCodeAt(i); - } - return bytes; - } catch (_) { - throw new Error('Converting base64 string to bytes failed.'); - } -} - -// If filename is a base64 data URI, parses and returns data (Buffer on node, -// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. -function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); -} - - - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_i": nullFunc_i, "nullFunc_ii": nullFunc_ii, "nullFunc_iii": nullFunc_iii, "nullFunc_iiii": nullFunc_iiii, "nullFunc_v": nullFunc_v, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_viii": nullFunc_viii, "nullFunc_viiii": nullFunc_viiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "invoke_i": invoke_i, "invoke_ii": invoke_ii, "invoke_iii": invoke_iii, "invoke_iiii": invoke_iiii, "invoke_v": invoke_v, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_viii": invoke_viii, "invoke_viiii": invoke_viiii, "invoke_viiiii": invoke_viiiii, "invoke_viiiiii": invoke_viiiiii, "ClassHandle": ClassHandle, "ClassHandle_clone": ClassHandle_clone, "ClassHandle_delete": ClassHandle_delete, "ClassHandle_deleteLater": ClassHandle_deleteLater, "ClassHandle_isAliasOf": ClassHandle_isAliasOf, "ClassHandle_isDeleted": ClassHandle_isDeleted, "RegisteredClass": RegisteredClass, "RegisteredPointer": RegisteredPointer, "RegisteredPointer_deleteObject": RegisteredPointer_deleteObject, "RegisteredPointer_destructor": RegisteredPointer_destructor, "RegisteredPointer_fromWireType": RegisteredPointer_fromWireType, "RegisteredPointer_getPointee": RegisteredPointer_getPointee, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "___assert_fail": ___assert_fail, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_begin_catch": ___cxa_begin_catch, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "___cxa_pure_virtual": ___cxa_pure_virtual, "___cxa_throw": ___cxa_throw, "___gxx_personality_v0": ___gxx_personality_v0, "___lock": ___lock, "___resumeException": ___resumeException, "___setErrNo": ___setErrNo, "___syscall140": ___syscall140, "___syscall146": ___syscall146, "___syscall54": ___syscall54, "___syscall6": ___syscall6, "___unlock": ___unlock, "__embind_register_bool": __embind_register_bool, "__embind_register_class": __embind_register_class, "__embind_register_class_constructor": __embind_register_class_constructor, "__embind_register_class_function": __embind_register_class_function, "__embind_register_emval": __embind_register_emval, "__embind_register_float": __embind_register_float, "__embind_register_integer": __embind_register_integer, "__embind_register_memory_view": __embind_register_memory_view, "__embind_register_std_string": __embind_register_std_string, "__embind_register_std_wstring": __embind_register_std_wstring, "__embind_register_void": __embind_register_void, "__emval_decref": __emval_decref, "__emval_register": __emval_register, "_abort": _abort, "_embind_repr": _embind_repr, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_llvm_trap": _llvm_trap, "_pthread_getspecific": _pthread_getspecific, "_pthread_key_create": _pthread_key_create, "_pthread_once": _pthread_once, "_pthread_setspecific": _pthread_setspecific, "constNoSmartPtrRawPointerToWireType": constNoSmartPtrRawPointerToWireType, "count_emval_handles": count_emval_handles, "craftInvokerFunction": craftInvokerFunction, "createNamedFunction": createNamedFunction, "downcastPointer": downcastPointer, "embind__requireFunction": embind__requireFunction, "embind_init_charCodes": embind_init_charCodes, "ensureOverloadTable": ensureOverloadTable, "exposePublicSymbol": exposePublicSymbol, "extendError": extendError, "floatReadValueFromPointer": floatReadValueFromPointer, "flushPendingDeletes": flushPendingDeletes, "flush_NO_FILESYSTEM": flush_NO_FILESYSTEM, "genericPointerToWireType": genericPointerToWireType, "getBasestPointer": getBasestPointer, "getInheritedInstance": getInheritedInstance, "getInheritedInstanceCount": getInheritedInstanceCount, "getLiveInheritedInstances": getLiveInheritedInstances, "getShiftFromSize": getShiftFromSize, "getTypeName": getTypeName, "get_first_emval": get_first_emval, "heap32VectorToArray": heap32VectorToArray, "init_ClassHandle": init_ClassHandle, "init_RegisteredPointer": init_RegisteredPointer, "init_embind": init_embind, "init_emval": init_emval, "integerReadValueFromPointer": integerReadValueFromPointer, "makeClassHandle": makeClassHandle, "makeLegalFunctionName": makeLegalFunctionName, "new_": new_, "nonConstNoSmartPtrRawPointerToWireType": nonConstNoSmartPtrRawPointerToWireType, "readLatin1String": readLatin1String, "registerType": registerType, "replacePublicSymbol": replacePublicSymbol, "runDestructor": runDestructor, "runDestructors": runDestructors, "setDelayFunction": setDelayFunction, "shallowCopyInternalPointer": shallowCopyInternalPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "throwBindingError": throwBindingError, "throwInstanceAlreadyDeleted": throwInstanceAlreadyDeleted, "throwInternalError": throwInternalError, "throwUnboundTypeError": throwUnboundTypeError, "upcastPointer": upcastPointer, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX }; -// EMSCRIPTEN_START_ASM -var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) { -'almost asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_i=env.nullFunc_i; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_v=env.nullFunc_v; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_viiii=env.nullFunc_viiii; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var invoke_i=env.invoke_i; - var invoke_ii=env.invoke_ii; - var invoke_iii=env.invoke_iii; - var invoke_iiii=env.invoke_iiii; - var invoke_v=env.invoke_v; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_viii=env.invoke_viii; - var invoke_viiii=env.invoke_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var ClassHandle=env.ClassHandle; - var ClassHandle_clone=env.ClassHandle_clone; - var ClassHandle_delete=env.ClassHandle_delete; - var ClassHandle_deleteLater=env.ClassHandle_deleteLater; - var ClassHandle_isAliasOf=env.ClassHandle_isAliasOf; - var ClassHandle_isDeleted=env.ClassHandle_isDeleted; - var RegisteredClass=env.RegisteredClass; - var RegisteredPointer=env.RegisteredPointer; - var RegisteredPointer_deleteObject=env.RegisteredPointer_deleteObject; - var RegisteredPointer_destructor=env.RegisteredPointer_destructor; - var RegisteredPointer_fromWireType=env.RegisteredPointer_fromWireType; - var RegisteredPointer_getPointee=env.RegisteredPointer_getPointee; - var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv; - var ___assert_fail=env.___assert_fail; - var ___cxa_allocate_exception=env.___cxa_allocate_exception; - var ___cxa_begin_catch=env.___cxa_begin_catch; - var ___cxa_find_matching_catch=env.___cxa_find_matching_catch; - var ___cxa_pure_virtual=env.___cxa_pure_virtual; - var ___cxa_throw=env.___cxa_throw; - var ___gxx_personality_v0=env.___gxx_personality_v0; - var ___lock=env.___lock; - var ___resumeException=env.___resumeException; - var ___setErrNo=env.___setErrNo; - var ___syscall140=env.___syscall140; - var ___syscall146=env.___syscall146; - var ___syscall54=env.___syscall54; - var ___syscall6=env.___syscall6; - var ___unlock=env.___unlock; - var __embind_register_bool=env.__embind_register_bool; - var __embind_register_class=env.__embind_register_class; - var __embind_register_class_constructor=env.__embind_register_class_constructor; - var __embind_register_class_function=env.__embind_register_class_function; - var __embind_register_emval=env.__embind_register_emval; - var __embind_register_float=env.__embind_register_float; - var __embind_register_integer=env.__embind_register_integer; - var __embind_register_memory_view=env.__embind_register_memory_view; - var __embind_register_std_string=env.__embind_register_std_string; - var __embind_register_std_wstring=env.__embind_register_std_wstring; - var __embind_register_void=env.__embind_register_void; - var __emval_decref=env.__emval_decref; - var __emval_register=env.__emval_register; - var _abort=env._abort; - var _embind_repr=env._embind_repr; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _llvm_trap=env._llvm_trap; - var _pthread_getspecific=env._pthread_getspecific; - var _pthread_key_create=env._pthread_key_create; - var _pthread_once=env._pthread_once; - var _pthread_setspecific=env._pthread_setspecific; - var constNoSmartPtrRawPointerToWireType=env.constNoSmartPtrRawPointerToWireType; - var count_emval_handles=env.count_emval_handles; - var craftInvokerFunction=env.craftInvokerFunction; - var createNamedFunction=env.createNamedFunction; - var downcastPointer=env.downcastPointer; - var embind__requireFunction=env.embind__requireFunction; - var embind_init_charCodes=env.embind_init_charCodes; - var ensureOverloadTable=env.ensureOverloadTable; - var exposePublicSymbol=env.exposePublicSymbol; - var extendError=env.extendError; - var floatReadValueFromPointer=env.floatReadValueFromPointer; - var flushPendingDeletes=env.flushPendingDeletes; - var flush_NO_FILESYSTEM=env.flush_NO_FILESYSTEM; - var genericPointerToWireType=env.genericPointerToWireType; - var getBasestPointer=env.getBasestPointer; - var getInheritedInstance=env.getInheritedInstance; - var getInheritedInstanceCount=env.getInheritedInstanceCount; - var getLiveInheritedInstances=env.getLiveInheritedInstances; - var getShiftFromSize=env.getShiftFromSize; - var getTypeName=env.getTypeName; - var get_first_emval=env.get_first_emval; - var heap32VectorToArray=env.heap32VectorToArray; - var init_ClassHandle=env.init_ClassHandle; - var init_RegisteredPointer=env.init_RegisteredPointer; - var init_embind=env.init_embind; - var init_emval=env.init_emval; - var integerReadValueFromPointer=env.integerReadValueFromPointer; - var makeClassHandle=env.makeClassHandle; - var makeLegalFunctionName=env.makeLegalFunctionName; - var new_=env.new_; - var nonConstNoSmartPtrRawPointerToWireType=env.nonConstNoSmartPtrRawPointerToWireType; - var readLatin1String=env.readLatin1String; - var registerType=env.registerType; - var replacePublicSymbol=env.replacePublicSymbol; - var runDestructor=env.runDestructor; - var runDestructors=env.runDestructors; - var setDelayFunction=env.setDelayFunction; - var shallowCopyInternalPointer=env.shallowCopyInternalPointer; - var simpleReadValueFromPointer=env.simpleReadValueFromPointer; - var throwBindingError=env.throwBindingError; - var throwInstanceAlreadyDeleted=env.throwInstanceAlreadyDeleted; - var throwInternalError=env.throwInternalError; - var throwUnboundTypeError=env.throwUnboundTypeError; - var upcastPointer=env.upcastPointer; - var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function ___cxx_global_var_init() { - var label = 0, sp = 0; - sp = STACKTOP; - __ZN38EmscriptenBindingInitializer_my_moduleC2Ev(21880); - return; -} -function __ZN38EmscriptenBindingInitializer_my_moduleC2Ev($0) { - $0 = $0|0; - var $$field = 0, $$field11 = 0, $$field14 = 0, $$field21 = 0, $$field24 = 0, $$field31 = 0, $$field34 = 0, $$field4 = 0, $$field41 = 0, $$field44 = 0, $$field51 = 0, $$field54 = 0, $$field61 = 0, $$field64 = 0, $$field71 = 0, $$field74 = 0, $$index1 = 0, $$index13 = 0, $$index17 = 0, $$index19 = 0; - var $$index23 = 0, $$index27 = 0, $$index29 = 0, $$index3 = 0, $$index33 = 0, $$index37 = 0, $$index39 = 0, $$index43 = 0, $$index47 = 0, $$index49 = 0, $$index53 = 0, $$index57 = 0, $$index59 = 0, $$index63 = 0, $$index67 = 0, $$index69 = 0, $$index7 = 0, $$index73 = 0, $$index77 = 0, $$index9 = 0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(496|0); - $4 = sp + 448|0; - $6 = sp + 481|0; - $7 = sp + 72|0; - $11 = sp + 424|0; - $13 = sp + 480|0; - $14 = sp + 64|0; - $18 = sp + 400|0; - $20 = sp + 479|0; - $21 = sp + 56|0; - $25 = sp + 376|0; - $27 = sp + 478|0; - $28 = sp + 48|0; - $32 = sp + 352|0; - $34 = sp + 477|0; - $35 = sp + 40|0; - $36 = sp + 32|0; - $40 = sp + 476|0; - $56 = sp + 264|0; - $58 = sp + 475|0; - $59 = sp + 24|0; - $63 = sp + 240|0; - $65 = sp + 474|0; - $66 = sp + 16|0; - $70 = sp + 216|0; - $72 = sp + 473|0; - $73 = sp + 8|0; - $74 = sp; - $78 = sp + 472|0; - $92 = sp + 471|0; - $93 = sp + 470|0; - $94 = sp + 136|0; - $95 = sp + 128|0; - $96 = sp + 120|0; - $97 = sp + 469|0; - $98 = sp + 468|0; - $99 = sp + 112|0; - $100 = sp + 104|0; - $101 = sp + 96|0; - $102 = sp + 88|0; - $103 = sp + 80|0; - $91 = $0; - $85 = $92; - $86 = 3768; - __ZN10emscripten8internal11NoBaseClass6verifyI6LASZipEEvv(); - $87 = 234; - $104 = (__ZN10emscripten8internal11NoBaseClass11getUpcasterI6LASZipEEPFvvEv()|0); - $88 = $104; - $105 = (__ZN10emscripten8internal11NoBaseClass13getDowncasterI6LASZipEEPFvvEv()|0); - $89 = $105; - $90 = 235; - $106 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $107 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI6LASZipEEE3getEv()|0); - $108 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK6LASZipEEE3getEv()|0); - $109 = (__ZN10emscripten8internal11NoBaseClass3getEv()|0); - $110 = $87; - $84 = $110; - $111 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $112 = $87; - $113 = $88; - $83 = $113; - $114 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $115 = $88; - $116 = $89; - $82 = $116; - $117 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $118 = $89; - $119 = $86; - $120 = $90; - $81 = $120; - $121 = (__ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv()|0); - $122 = $90; - __embind_register_class(($106|0),($107|0),($108|0),($109|0),($111|0),($112|0),($114|0),($115|0),($117|0),($118|0),($119|0),($121|0),($122|0)); - $80 = $92; - $123 = $80; - $76 = $123; - $77 = 236; - $124 = $76; - $79 = 237; - $125 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $126 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getCountEv($78)|0); - $127 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getTypesEv($78)|0); - $128 = $79; - $75 = $128; - $129 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $130 = $79; - $131 = $77; - __embind_register_class_constructor(($125|0),($126|0),($127|0),($129|0),($130|0),($131|0)); - HEAP32[$94>>2] = (238); - $$index1 = ((($94)) + 4|0); - HEAP32[$$index1>>2] = 0; - ;HEAP8[$73>>0]=HEAP8[$93>>0]|0; - ;HEAP8[$74>>0]=HEAP8[$94>>0]|0;HEAP8[$74+1>>0]=HEAP8[$94+1>>0]|0;HEAP8[$74+2>>0]=HEAP8[$94+2>>0]|0;HEAP8[$74+3>>0]=HEAP8[$94+3>>0]|0;HEAP8[$74+4>>0]=HEAP8[$94+4>>0]|0;HEAP8[$74+5>>0]=HEAP8[$94+5>>0]|0;HEAP8[$74+6>>0]=HEAP8[$94+6>>0]|0;HEAP8[$74+7>>0]=HEAP8[$94+7>>0]|0; - $$field = HEAP32[$74>>2]|0; - $$index3 = ((($74)) + 4|0); - $$field4 = HEAP32[$$index3>>2]|0; - $68 = $124; - $69 = 3775; - HEAP32[$70>>2] = $$field; - $$index7 = ((($70)) + 4|0); - HEAP32[$$index7>>2] = $$field4; - $132 = $68; - $71 = 239; - $133 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $134 = $69; - $135 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getCountEv($72)|0); - $136 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getTypesEv($72)|0); - $137 = $71; - $67 = $137; - $138 = (__ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv()|0); - $139 = $71; - $140 = (__ZN10emscripten8internal10getContextIM6LASZipFvjjEEEPT_RKS5_($70)|0); - __embind_register_class_function(($133|0),($134|0),($135|0),($136|0),($138|0),($139|0),($140|0),0); - HEAP32[$95>>2] = (240); - $$index9 = ((($95)) + 4|0); - HEAP32[$$index9>>2] = 0; - ;HEAP8[$66>>0]=HEAP8[$95>>0]|0;HEAP8[$66+1>>0]=HEAP8[$95+1>>0]|0;HEAP8[$66+2>>0]=HEAP8[$95+2>>0]|0;HEAP8[$66+3>>0]=HEAP8[$95+3>>0]|0;HEAP8[$66+4>>0]=HEAP8[$95+4>>0]|0;HEAP8[$66+5>>0]=HEAP8[$95+5>>0]|0;HEAP8[$66+6>>0]=HEAP8[$95+6>>0]|0;HEAP8[$66+7>>0]=HEAP8[$95+7>>0]|0; - $$field11 = HEAP32[$66>>2]|0; - $$index13 = ((($66)) + 4|0); - $$field14 = HEAP32[$$index13>>2]|0; - $61 = $132; - $62 = 3780; - HEAP32[$63>>2] = $$field11; - $$index17 = ((($63)) + 4|0); - HEAP32[$$index17>>2] = $$field14; - $141 = $61; - $64 = 241; - $142 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $143 = $62; - $144 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getCountEv($65)|0); - $145 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getTypesEv($65)|0); - $146 = $64; - $60 = $146; - $147 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $148 = $64; - $149 = (__ZN10emscripten8internal10getContextIM6LASZipFviEEEPT_RKS5_($63)|0); - __embind_register_class_function(($142|0),($143|0),($144|0),($145|0),($147|0),($148|0),($149|0),0); - HEAP32[$96>>2] = (242); - $$index19 = ((($96)) + 4|0); - HEAP32[$$index19>>2] = 0; - ;HEAP8[$59>>0]=HEAP8[$96>>0]|0;HEAP8[$59+1>>0]=HEAP8[$96+1>>0]|0;HEAP8[$59+2>>0]=HEAP8[$96+2>>0]|0;HEAP8[$59+3>>0]=HEAP8[$96+3>>0]|0;HEAP8[$59+4>>0]=HEAP8[$96+4>>0]|0;HEAP8[$59+5>>0]=HEAP8[$96+5>>0]|0;HEAP8[$59+6>>0]=HEAP8[$96+6>>0]|0;HEAP8[$59+7>>0]=HEAP8[$96+7>>0]|0; - $$field21 = HEAP32[$59>>2]|0; - $$index23 = ((($59)) + 4|0); - $$field24 = HEAP32[$$index23>>2]|0; - $54 = $141; - $55 = 3789; - HEAP32[$56>>2] = $$field21; - $$index27 = ((($56)) + 4|0); - HEAP32[$$index27>>2] = $$field24; - $57 = 243; - $150 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $151 = $55; - $152 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getCountEv($58)|0); - $153 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getTypesEv($58)|0); - $154 = $57; - $53 = $154; - $155 = (__ZN10emscripten8internal19getGenericSignatureIJiiiEEEPKcv()|0); - $156 = $57; - $157 = (__ZN10emscripten8internal10getContextIM6LASZipFjvEEEPT_RKS5_($56)|0); - __embind_register_class_function(($150|0),($151|0),($152|0),($153|0),($155|0),($156|0),($157|0),0); - $47 = $97; - $48 = 3798; - __ZN10emscripten8internal11NoBaseClass6verifyI13DynamicLASZipEEvv(); - $49 = 244; - $158 = (__ZN10emscripten8internal11NoBaseClass11getUpcasterI13DynamicLASZipEEPFvvEv()|0); - $50 = $158; - $159 = (__ZN10emscripten8internal11NoBaseClass13getDowncasterI13DynamicLASZipEEPFvvEv()|0); - $51 = $159; - $52 = 245; - $160 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $161 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI13DynamicLASZipEEE3getEv()|0); - $162 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK13DynamicLASZipEEE3getEv()|0); - $163 = (__ZN10emscripten8internal11NoBaseClass3getEv()|0); - $164 = $49; - $46 = $164; - $165 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $166 = $49; - $167 = $50; - $45 = $167; - $168 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $169 = $50; - $170 = $51; - $44 = $170; - $171 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $172 = $51; - $173 = $48; - $174 = $52; - $43 = $174; - $175 = (__ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv()|0); - $176 = $52; - __embind_register_class(($160|0),($161|0),($162|0),($163|0),($165|0),($166|0),($168|0),($169|0),($171|0),($172|0),($173|0),($175|0),($176|0)); - $42 = $97; - $177 = $42; - $38 = $177; - $39 = 246; - $178 = $38; - $41 = 247; - $179 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $180 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getCountEv($40)|0); - $181 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getTypesEv($40)|0); - $182 = $41; - $37 = $182; - $183 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $184 = $41; - $185 = $39; - __embind_register_class_constructor(($179|0),($180|0),($181|0),($183|0),($184|0),($185|0)); - HEAP32[$99>>2] = (248); - $$index29 = ((($99)) + 4|0); - HEAP32[$$index29>>2] = 0; - ;HEAP8[$35>>0]=HEAP8[$98>>0]|0; - ;HEAP8[$36>>0]=HEAP8[$99>>0]|0;HEAP8[$36+1>>0]=HEAP8[$99+1>>0]|0;HEAP8[$36+2>>0]=HEAP8[$99+2>>0]|0;HEAP8[$36+3>>0]=HEAP8[$99+3>>0]|0;HEAP8[$36+4>>0]=HEAP8[$99+4>>0]|0;HEAP8[$36+5>>0]=HEAP8[$99+5>>0]|0;HEAP8[$36+6>>0]=HEAP8[$99+6>>0]|0;HEAP8[$36+7>>0]=HEAP8[$99+7>>0]|0; - $$field31 = HEAP32[$36>>2]|0; - $$index33 = ((($36)) + 4|0); - $$field34 = HEAP32[$$index33>>2]|0; - $30 = $178; - $31 = 3775; - HEAP32[$32>>2] = $$field31; - $$index37 = ((($32)) + 4|0); - HEAP32[$$index37>>2] = $$field34; - $186 = $30; - $33 = 249; - $187 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $188 = $31; - $189 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getCountEv($34)|0); - $190 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getTypesEv($34)|0); - $191 = $33; - $29 = $191; - $192 = (__ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv()|0); - $193 = $33; - $194 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjjEEEPT_RKS5_($32)|0); - __embind_register_class_function(($187|0),($188|0),($189|0),($190|0),($192|0),($193|0),($194|0),0); - HEAP32[$100>>2] = (250); - $$index39 = ((($100)) + 4|0); - HEAP32[$$index39>>2] = 0; - ;HEAP8[$28>>0]=HEAP8[$100>>0]|0;HEAP8[$28+1>>0]=HEAP8[$100+1>>0]|0;HEAP8[$28+2>>0]=HEAP8[$100+2>>0]|0;HEAP8[$28+3>>0]=HEAP8[$100+3>>0]|0;HEAP8[$28+4>>0]=HEAP8[$100+4>>0]|0;HEAP8[$28+5>>0]=HEAP8[$100+5>>0]|0;HEAP8[$28+6>>0]=HEAP8[$100+6>>0]|0;HEAP8[$28+7>>0]=HEAP8[$100+7>>0]|0; - $$field41 = HEAP32[$28>>2]|0; - $$index43 = ((($28)) + 4|0); - $$field44 = HEAP32[$$index43>>2]|0; - $23 = $186; - $24 = 3812; - HEAP32[$25>>2] = $$field41; - $$index47 = ((($25)) + 4|0); - HEAP32[$$index47>>2] = $$field44; - $195 = $23; - $26 = 251; - $196 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $197 = $24; - $198 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($27)|0); - $199 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($27)|0); - $200 = $26; - $22 = $200; - $201 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $202 = $26; - $203 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($25)|0); - __embind_register_class_function(($196|0),($197|0),($198|0),($199|0),($201|0),($202|0),($203|0),0); - HEAP32[$101>>2] = (252); - $$index49 = ((($101)) + 4|0); - HEAP32[$$index49>>2] = 0; - ;HEAP8[$21>>0]=HEAP8[$101>>0]|0;HEAP8[$21+1>>0]=HEAP8[$101+1>>0]|0;HEAP8[$21+2>>0]=HEAP8[$101+2>>0]|0;HEAP8[$21+3>>0]=HEAP8[$101+3>>0]|0;HEAP8[$21+4>>0]=HEAP8[$101+4>>0]|0;HEAP8[$21+5>>0]=HEAP8[$101+5>>0]|0;HEAP8[$21+6>>0]=HEAP8[$101+6>>0]|0;HEAP8[$21+7>>0]=HEAP8[$101+7>>0]|0; - $$field51 = HEAP32[$21>>2]|0; - $$index53 = ((($21)) + 4|0); - $$field54 = HEAP32[$$index53>>2]|0; - $16 = $195; - $17 = 3829; - HEAP32[$18>>2] = $$field51; - $$index57 = ((($18)) + 4|0); - HEAP32[$$index57>>2] = $$field54; - $204 = $16; - $19 = 251; - $205 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $206 = $17; - $207 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($20)|0); - $208 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($20)|0); - $209 = $19; - $15 = $209; - $210 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $211 = $19; - $212 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($18)|0); - __embind_register_class_function(($205|0),($206|0),($207|0),($208|0),($210|0),($211|0),($212|0),0); - HEAP32[$102>>2] = (253); - $$index59 = ((($102)) + 4|0); - HEAP32[$$index59>>2] = 0; - ;HEAP8[$14>>0]=HEAP8[$102>>0]|0;HEAP8[$14+1>>0]=HEAP8[$102+1>>0]|0;HEAP8[$14+2>>0]=HEAP8[$102+2>>0]|0;HEAP8[$14+3>>0]=HEAP8[$102+3>>0]|0;HEAP8[$14+4>>0]=HEAP8[$102+4>>0]|0;HEAP8[$14+5>>0]=HEAP8[$102+5>>0]|0;HEAP8[$14+6>>0]=HEAP8[$102+6>>0]|0;HEAP8[$14+7>>0]=HEAP8[$102+7>>0]|0; - $$field61 = HEAP32[$14>>2]|0; - $$index63 = ((($14)) + 4|0); - $$field64 = HEAP32[$$index63>>2]|0; - $9 = $204; - $10 = 3844; - HEAP32[$11>>2] = $$field61; - $$index67 = ((($11)) + 4|0); - HEAP32[$$index67>>2] = $$field64; - $213 = $9; - $12 = 251; - $214 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $215 = $10; - $216 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($13)|0); - $217 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($13)|0); - $218 = $12; - $8 = $218; - $219 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $220 = $12; - $221 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($11)|0); - __embind_register_class_function(($214|0),($215|0),($216|0),($217|0),($219|0),($220|0),($221|0),0); - HEAP32[$103>>2] = (254); - $$index69 = ((($103)) + 4|0); - HEAP32[$$index69>>2] = 0; - ;HEAP8[$7>>0]=HEAP8[$103>>0]|0;HEAP8[$7+1>>0]=HEAP8[$103+1>>0]|0;HEAP8[$7+2>>0]=HEAP8[$103+2>>0]|0;HEAP8[$7+3>>0]=HEAP8[$103+3>>0]|0;HEAP8[$7+4>>0]=HEAP8[$103+4>>0]|0;HEAP8[$7+5>>0]=HEAP8[$103+5>>0]|0;HEAP8[$7+6>>0]=HEAP8[$103+6>>0]|0;HEAP8[$7+7>>0]=HEAP8[$103+7>>0]|0; - $$field71 = HEAP32[$7>>2]|0; - $$index73 = ((($7)) + 4|0); - $$field74 = HEAP32[$$index73>>2]|0; - $2 = $213; - $3 = 3780; - HEAP32[$4>>2] = $$field71; - $$index77 = ((($4)) + 4|0); - HEAP32[$$index77>>2] = $$field74; - $5 = 255; - $222 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $223 = $3; - $224 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getCountEv($6)|0); - $225 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getTypesEv($6)|0); - $226 = $5; - $1 = $226; - $227 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $228 = $5; - $229 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFviEEEPT_RKS5_($4)|0); - __embind_register_class_function(($222|0),($223|0),($224|0),($225|0),($227|0),($228|0),($229|0),0); - STACKTOP = sp;return; -} -function __ZN6LASZip4openEjj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $$byval_copy1 = sp + 180|0; - $$byval_copy = sp + 176|0; - $8 = sp + 152|0; - $14 = sp + 128|0; - $19 = sp + 104|0; - $20 = sp + 100|0; - $27 = sp + 72|0; - $33 = sp + 48|0; - $38 = sp + 24|0; - $39 = sp + 16|0; - $40 = $0; - $41 = $1; - $42 = $2; - $44 = $40; - $45 = $41; - $46 = $45; - $43 = $46; - $47 = (__Znwj(20)|0); - $48 = $43; - $49 = $42; - __ZN6laszip7streams13memory_streamC2EPKci($47,$48,$49); - $36 = $44; - $37 = $47; - $50 = $36; - $51 = $37; - ;HEAP32[$39>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$39>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($38,$51,$$byval_copy); - $34 = $38; - $35 = $50; - $52 = $34; - $53 = $35; - $31 = $52; - $32 = $53; - $54 = $31; - $30 = $54; - $55 = $30; - $56 = HEAP32[$55>>2]|0; - HEAP32[$33>>2] = $56; - $57 = $32; - $28 = $57; - $58 = $28; - $59 = HEAP32[$58>>2]|0; - $60 = $31; - HEAP32[$60>>2] = $59; - $29 = $33; - $61 = $29; - $62 = HEAP32[$61>>2]|0; - $63 = $32; - HEAP32[$63>>2] = $62; - $64 = ((($52)) + 4|0); - $65 = $35; - $66 = ((($65)) + 4|0); - $25 = $64; - $26 = $66; - $67 = $25; - $24 = $67; - $68 = $24; - $69 = HEAP32[$68>>2]|0; - HEAP32[$27>>2] = $69; - $70 = $26; - $22 = $70; - $71 = $22; - $72 = HEAP32[$71>>2]|0; - $73 = $25; - HEAP32[$73>>2] = $72; - $23 = $27; - $74 = $23; - $75 = HEAP32[$74>>2]|0; - $76 = $26; - HEAP32[$76>>2] = $75; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($38); - $77 = ((($44)) + 8|0); - $78 = (__Znwj(352)|0); - $21 = $44; - $79 = $21; - $80 = HEAP32[$79>>2]|0; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEEC2ERS4_($78,$80); - $17 = $77; - $18 = $78; - $81 = $17; - $82 = $18; - ;HEAP32[$20>>2]=0|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$20>>2]|0; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEEC2IS7_EEPT_NS_9enable_ifIXsr14is_convertibleISB_PS7_EE5valueENS8_5__natEE4typeE($19,$82,$$byval_copy1); - $15 = $19; - $16 = $81; - $83 = $15; - $84 = $16; - $12 = $83; - $13 = $84; - $85 = $12; - $11 = $85; - $86 = $11; - $87 = HEAP32[$86>>2]|0; - HEAP32[$14>>2] = $87; - $88 = $13; - $9 = $88; - $89 = $9; - $90 = HEAP32[$89>>2]|0; - $91 = $12; - HEAP32[$91>>2] = $90; - $10 = $14; - $92 = $10; - $93 = HEAP32[$92>>2]|0; - $94 = $13; - HEAP32[$94>>2] = $93; - $95 = ((($83)) + 4|0); - $96 = $16; - $97 = ((($96)) + 4|0); - $6 = $95; - $7 = $97; - $98 = $6; - $5 = $98; - $99 = $5; - $100 = HEAP32[$99>>2]|0; - HEAP32[$8>>2] = $100; - $101 = $7; - $3 = $101; - $102 = $3; - $103 = HEAP32[$102>>2]|0; - $104 = $6; - HEAP32[$104>>2] = $103; - $4 = $8; - $105 = $4; - $106 = HEAP32[$105>>2]|0; - $107 = $7; - HEAP32[$107>>2] = $106; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($19); - STACKTOP = sp;return; -} -function __ZN6LASZip8getPointEi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $6 = $3; - $7 = $4; - $8 = $7; - $5 = $8; - $9 = ((($6)) + 8|0); - $2 = $9; - $10 = $2; - $11 = HEAP32[$10>>2]|0; - $12 = $5; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE9readPointEPc($11,$12); - STACKTOP = sp;return; -} -function __ZN6LASZip8getCountEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $4 = ((($3)) + 8|0); - $1 = $4; - $5 = $1; - $6 = HEAP32[$5>>2]|0; - $7 = (__ZNK6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10get_headerEv($6)|0); - $8 = ((($7)) + 107|0); - $9 = HEAPU8[$8>>0]|(HEAPU8[$8+1>>0]<<8)|(HEAPU8[$8+2>>0]<<16)|(HEAPU8[$8+3>>0]<<24); - STACKTOP = sp;return ($9|0); -} -function __ZN13DynamicLASZip4openEjj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $$byval_copy1 = sp + 280|0; - $$byval_copy = sp + 276|0; - $8 = sp + 252|0; - $14 = sp + 228|0; - $22 = sp + 192|0; - $29 = sp + 160|0; - $35 = sp + 136|0; - $40 = sp + 112|0; - $41 = sp + 108|0; - $48 = sp + 80|0; - $54 = sp + 56|0; - $59 = sp + 32|0; - $60 = sp + 24|0; - $65 = sp; - $61 = $0; - $62 = $1; - $63 = $2; - $66 = $61; - $67 = $62; - $68 = $67; - $64 = $68; - $69 = (__Znwj(12)|0); - $70 = $64; - $71 = $63; - __ZN10buf_streamC2EPhj($69,$70,$71); - $57 = $66; - $58 = $69; - $72 = $57; - $73 = $58; - ;HEAP32[$60>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$60>>2]|0; - __ZNSt3__210shared_ptrI10buf_streamEC2IS1_EEPT_NS_9enable_ifIXsr14is_convertibleIS5_PS1_EE5valueENS2_5__natEE4typeE($59,$73,$$byval_copy); - $55 = $59; - $56 = $72; - $74 = $55; - $75 = $56; - $52 = $74; - $53 = $75; - $76 = $52; - $51 = $76; - $77 = $51; - $78 = HEAP32[$77>>2]|0; - HEAP32[$54>>2] = $78; - $79 = $53; - $49 = $79; - $80 = $49; - $81 = HEAP32[$80>>2]|0; - $82 = $52; - HEAP32[$82>>2] = $81; - $50 = $54; - $83 = $50; - $84 = HEAP32[$83>>2]|0; - $85 = $53; - HEAP32[$85>>2] = $84; - $86 = ((($74)) + 4|0); - $87 = $56; - $88 = ((($87)) + 4|0); - $46 = $86; - $47 = $88; - $89 = $46; - $45 = $89; - $90 = $45; - $91 = HEAP32[$90>>2]|0; - HEAP32[$48>>2] = $91; - $92 = $47; - $43 = $92; - $93 = $43; - $94 = HEAP32[$93>>2]|0; - $95 = $46; - HEAP32[$95>>2] = $94; - $44 = $48; - $96 = $44; - $97 = HEAP32[$96>>2]|0; - $98 = $47; - HEAP32[$98>>2] = $97; - __ZNSt3__210shared_ptrI10buf_streamED2Ev($59); - $99 = ((($66)) + 8|0); - $100 = (__Znwj(12)|0); - $42 = $66; - $101 = $42; - $102 = HEAP32[$101>>2]|0; - __ZN6laszip8decoders10arithmeticI10buf_streamEC2ERS2_($100,$102); - $38 = $99; - $39 = $100; - $103 = $38; - $104 = $39; - ;HEAP32[$41>>2]=0|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$41>>2]|0; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEEC2IS5_EEPT_NS_9enable_ifIXsr14is_convertibleIS9_PS5_EE5valueENS6_5__natEE4typeE($40,$104,$$byval_copy1); - $36 = $40; - $37 = $103; - $105 = $36; - $106 = $37; - $33 = $105; - $34 = $106; - $107 = $33; - $32 = $107; - $108 = $32; - $109 = HEAP32[$108>>2]|0; - HEAP32[$35>>2] = $109; - $110 = $34; - $30 = $110; - $111 = $30; - $112 = HEAP32[$111>>2]|0; - $113 = $33; - HEAP32[$113>>2] = $112; - $31 = $35; - $114 = $31; - $115 = HEAP32[$114>>2]|0; - $116 = $34; - HEAP32[$116>>2] = $115; - $117 = ((($105)) + 4|0); - $118 = $37; - $119 = ((($118)) + 4|0); - $27 = $117; - $28 = $119; - $120 = $27; - $26 = $120; - $121 = $26; - $122 = HEAP32[$121>>2]|0; - HEAP32[$29>>2] = $122; - $123 = $28; - $24 = $123; - $124 = $24; - $125 = HEAP32[$124>>2]|0; - $126 = $27; - HEAP32[$126>>2] = $125; - $25 = $29; - $127 = $25; - $128 = HEAP32[$127>>2]|0; - $129 = $28; - HEAP32[$129>>2] = $128; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($40); - $130 = ((($66)) + 8|0); - $23 = $130; - $131 = $23; - $132 = HEAP32[$131>>2]|0; - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticI10buf_streamEEEENS0_26dynamic_field_decompressorIT_E3ptrERS7_($65,$132); - $133 = ((($66)) + 16|0); - $20 = $133; - $21 = $65; - $134 = $20; - $135 = $21; - $19 = $135; - $136 = $19; - $17 = $22; - $18 = $136; - $137 = $17; - $138 = $18; - $139 = HEAP32[$138>>2]|0; - HEAP32[$137>>2] = $139; - $140 = ((($137)) + 4|0); - $141 = $18; - $142 = ((($141)) + 4|0); - $143 = HEAP32[$142>>2]|0; - HEAP32[$140>>2] = $143; - $144 = $18; - HEAP32[$144>>2] = 0; - $145 = $18; - $146 = ((($145)) + 4|0); - HEAP32[$146>>2] = 0; - $15 = $22; - $16 = $134; - $147 = $15; - $148 = $16; - $12 = $147; - $13 = $148; - $149 = $12; - $11 = $149; - $150 = $11; - $151 = HEAP32[$150>>2]|0; - HEAP32[$14>>2] = $151; - $152 = $13; - $9 = $152; - $153 = $9; - $154 = HEAP32[$153>>2]|0; - $155 = $12; - HEAP32[$155>>2] = $154; - $10 = $14; - $156 = $10; - $157 = HEAP32[$156>>2]|0; - $158 = $13; - HEAP32[$158>>2] = $157; - $159 = ((($147)) + 4|0); - $160 = $16; - $161 = ((($160)) + 4|0); - $6 = $159; - $7 = $161; - $162 = $6; - $5 = $162; - $163 = $5; - $164 = HEAP32[$163>>2]|0; - HEAP32[$8>>2] = $164; - $165 = $7; - $3 = $165; - $166 = $3; - $167 = HEAP32[$166>>2]|0; - $168 = $6; - HEAP32[$168>>2] = $167; - $4 = $8; - $169 = $4; - $170 = HEAP32[$169>>2]|0; - $171 = $7; - HEAP32[$171>>2] = $170; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($22); - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($65); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip16addFieldFloatingEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $0; - $8 = $1; - $9 = $7; - $10 = ((($9)) + 16|0); - $6 = $10; - $11 = $6; - $5 = $11; - $12 = $5; - $13 = HEAP32[$12>>2]|0; - $14 = ($13|0)!=(0|0); - if (!($14)) { - STACKTOP = sp;return; - } - $15 = $8; - switch ($15|0) { - case 4: { - $16 = ((($9)) + 16|0); - $4 = $16; - $17 = $4; - $18 = HEAP32[$17>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($18); - STACKTOP = sp;return; - break; - } - case 8: { - $19 = ((($9)) + 16|0); - $2 = $19; - $20 = $2; - $21 = HEAP32[$20>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($21); - $22 = ((($9)) + 16|0); - $3 = $22; - $23 = $3; - $24 = HEAP32[$23>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($24); - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function __ZN13DynamicLASZip14addFieldSignedEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $11 = ((($10)) + 16|0); - $7 = $11; - $12 = $7; - $6 = $12; - $13 = $6; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = $9; - switch ($16|0) { - case 1: { - $17 = ((($10)) + 16|0); - $5 = $17; - $18 = $5; - $19 = HEAP32[$18>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIaEEvv($19); - STACKTOP = sp;return; - break; - } - case 2: { - $20 = ((($10)) + 16|0); - $3 = $20; - $21 = $3; - $22 = HEAP32[$21>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIsEEvv($22); - STACKTOP = sp;return; - break; - } - case 8: { - $23 = ((($10)) + 16|0); - $2 = $23; - $24 = $2; - $25 = HEAP32[$24>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($25); - break; - } - case 4: { - break; - } - default: { - STACKTOP = sp;return; - } - } - $26 = ((($10)) + 16|0); - $4 = $26; - $27 = $4; - $28 = HEAP32[$27>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($28); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip16addFieldUnsignedEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $11 = ((($10)) + 16|0); - $7 = $11; - $12 = $7; - $6 = $12; - $13 = $6; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = $9; - switch ($16|0) { - case 1: { - $17 = ((($10)) + 16|0); - $5 = $17; - $18 = $5; - $19 = HEAP32[$18>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIhEEvv($19); - STACKTOP = sp;return; - break; - } - case 2: { - $20 = ((($10)) + 16|0); - $3 = $20; - $21 = $3; - $22 = HEAP32[$21>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldItEEvv($22); - STACKTOP = sp;return; - break; - } - case 8: { - $23 = ((($10)) + 16|0); - $2 = $23; - $24 = $2; - $25 = HEAP32[$24>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($25); - break; - } - case 4: { - break; - } - default: { - STACKTOP = sp;return; - } - } - $26 = ((($10)) + 16|0); - $4 = $26; - $27 = $4; - $28 = HEAP32[$27>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($28); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip8getPointEi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $8 = $5; - $9 = $6; - $10 = $9; - $7 = $10; - $11 = ((($8)) + 16|0); - $4 = $11; - $12 = $4; - $3 = $12; - $13 = $3; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = ((($8)) + 16|0); - $2 = $16; - $17 = $2; - $18 = HEAP32[$17>>2]|0; - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = $7; - (FUNCTION_TABLE_iii[$20 & 255]($18,$21)|0); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_streamC2EPKci($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - HEAP32[$6>>2] = $7; - $8 = ((($6)) + 4|0); - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($6)) + 8|0); - HEAP32[$10>>2] = 0; - $11 = ((($6)) + 12|0); - HEAP8[$11>>0] = 0; - $12 = ((($6)) + 13|0); - HEAP8[$12>>0] = 0; - $13 = ((($6)) + 16|0); - HEAP32[$13>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEEC2ERS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 12|0; - $16 = $0; - $17 = $1; - $18 = $16; - $19 = $17; - HEAP32[$18>>2] = $19; - $20 = ((($18)) + 4|0); - $21 = HEAP32[$18>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($20,$21); - $22 = ((($18)) + 247|0); - __ZN6laszip2io7laz_vlrC2Ev($22); - $23 = ((($18)) + 288|0); - $15 = $23; - $24 = $15; - $13 = $24; - $25 = $13; - $12 = $25; - HEAP32[$25>>2] = 0; - $26 = ((($25)) + 4|0); - HEAP32[$26>>2] = 0; - $27 = ((($25)) + 8|0); - HEAP32[$14>>2] = 0; - $10 = $27; - $11 = $14; - $28 = $10; - $29 = $11; - $9 = $29; - $30 = $9; - $5 = $28; - $6 = $30; - $31 = $5; - $32 = $6; - $4 = $32; - HEAP32[$31>>2] = 0; - $8 = $28; - $33 = $8; - $7 = $33; - $34 = ((($18)) + 300|0); - __ZN6laszip7factory13record_schemaC2Ev($34); - $35 = ((($18)) + 312|0); - $3 = $35; - $36 = $3; - HEAP32[$36>>2] = 0; - $37 = ((($36)) + 4|0); - HEAP32[$37>>2] = 0; - $38 = ((($18)) + 320|0); - $2 = $38; - $39 = $2; - HEAP32[$39>>2] = 0; - $40 = ((($39)) + 4|0); - HEAP32[$40>>2] = 0; - $41 = ((($18)) + 328|0); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE13__chunk_stateC2Ev($41); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE5_openEv($18); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1584); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function ___clang_call_terminate($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___cxa_begin_catch(($0|0))|0); - __ZSt9terminatev(); - // unreachable; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 24; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEEC2IS7_EEPT_NS_9enable_ifIXsr14is_convertibleISB_PS7_EE5valueENS8_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1612); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 48; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($3); - $4 = ((($2)) + 312|0); - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($4); - $5 = ((($2)) + 300|0); - __ZN6laszip7factory13record_schemaD2Ev($5); - $6 = ((($2)) + 288|0); - __ZNSt3__26vectorIyNS_9allocatorIyEEED2Ev($6); - $7 = ((($2)) + 247|0); - __ZN6laszip2io7laz_vlrD2Ev($7); - $8 = ((($2)) + 4|0); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($8); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIyNS_9allocatorIyEEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlrD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 34|0); - $4 = HEAPU8[$3>>0]|(HEAPU8[$3+1>>0]<<8)|(HEAPU8[$3+2>>0]<<16)|(HEAPU8[$3+3>>0]<<24); - $5 = ($4|0)==(0|0); - if ($5) { - STACKTOP = sp;return; - } - __ZdaPv($4); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - $4 = HEAP32[$3>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($4); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -12|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $71 = (($70|0) / 12)&-1; - $12 = $59; - $13 = $60; - $14 = $71; - $72 = $12; - $73 = $13; - $74 = $14; - $9 = $72; - $10 = $73; - $11 = $74; - $75 = $10; - $8 = $75; - $76 = $8; - __ZdlPv($76); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIyNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -8|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $71 = (($70|0) / 8)&-1; - $12 = $59; - $13 = $60; - $14 = $71; - $72 = $12; - $73 = $13; - $74 = $14; - $9 = $72; - $10 = $73; - $11 = $74; - $75 = $10; - $8 = $75; - $76 = $8; - __ZdlPv($76); - STACKTOP = sp;return; -} -function __ZN6laszip5utilsL12aligned_freeEPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + -4|0); - $4 = HEAP32[$3>>2]|0; - _free($4); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = 0; - $8 = ((($4)) + 12|0); - $9 = (__ZN6laszip5utilsL14aligned_mallocEi(1048576)|0); - HEAP32[$8>>2] = $9; - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlrC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=0>>8; - $4 = ((($2)) + 34|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=(0>>8)&255;HEAP8[$4+2>>0]=(0>>16)&255;HEAP8[$4+3>>0]=0>>24; - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $11 = sp + 8|0; - $13 = $0; - $14 = $13; - $12 = $14; - $15 = $12; - $10 = $15; - $16 = $10; - $9 = $16; - HEAP32[$16>>2] = 0; - $17 = ((($16)) + 4|0); - HEAP32[$17>>2] = 0; - $18 = ((($16)) + 8|0); - HEAP32[$11>>2] = 0; - $7 = $18; - $8 = $11; - $19 = $7; - $20 = $8; - $6 = $20; - $21 = $6; - $2 = $19; - $3 = $21; - $22 = $2; - $23 = $3; - $1 = $23; - HEAP32[$22>>2] = 0; - $5 = $19; - $24 = $5; - $4 = $24; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE13__chunk_stateC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2; - $4 = $3; - HEAP32[$4>>2] = 0; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 0; - $7 = ((($2)) + 8|0); - $8 = $7; - $9 = $8; - HEAP32[$9>>2] = 0; - $10 = (($8) + 4)|0; - $11 = $10; - HEAP32[$11>>2] = 0; - $12 = ((($2)) + 16|0); - $13 = $12; - $14 = $13; - HEAP32[$14>>2] = -1; - $15 = (($13) + 4)|0; - $16 = $15; - HEAP32[$16>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE5_openEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$expand_i1_val = 0, $$expand_i1_val3 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; - var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; - var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $$byval_copy1 = sp + 88|0; - $$byval_copy = sp + 72|0; - $3 = sp + 64|0; - $13 = sp + 268|0; - $16 = sp + 256|0; - $20 = sp + 240|0; - $23 = sp + 228|0; - $26 = sp + 56|0; - $37 = sp + 320|0; - $51 = sp + 316|0; - $52 = sp + 116|0; - $53 = sp + 40|0; - $55 = sp + 108|0; - $56 = sp + 104|0; - $57 = sp + 16|0; - $58 = sp; - $50 = $0; - $59 = $50; - $60 = HEAP32[$59>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($60,$51,4); - $61 = ((($51)) + 4|0); - $47 = $52; - $48 = $51; - $49 = $61; - $62 = $47; - $46 = $62; - $63 = $46; - $45 = $63; - $64 = $45; - ;HEAP32[$64>>2]=0|0;HEAP32[$64+4>>2]=0|0;HEAP32[$64+8>>2]=0|0; - $44 = $63; - $65 = $44; - $43 = $65; - $66 = $48; - $67 = $49; - __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES9_S9_($62,$66,$67); - $41 = $52; - $42 = 4257; - $68 = $41; - $69 = $42; - $38 = $68; - $39 = $69; - $70 = $39; - $71 = (__ZNSt3__211char_traitsIcE6lengthEPKc($70)|0); - $40 = $71; - $72 = $40; - $73 = $38; - $36 = $73; - $74 = $36; - $35 = $74; - $75 = $35; - $34 = $75; - $76 = $34; - $33 = $76; - $77 = $33; - $78 = ((($77)) + 11|0); - $79 = HEAP8[$78>>0]|0; - $80 = $79&255; - $81 = $80 & 128; - $82 = ($81|0)!=(0); - if ($82) { - $29 = $74; - $83 = $29; - $28 = $83; - $84 = $28; - $27 = $84; - $85 = $27; - $86 = ((($85)) + 4|0); - $87 = HEAP32[$86>>2]|0; - $95 = $87; - } else { - $32 = $74; - $88 = $32; - $31 = $88; - $89 = $31; - $30 = $89; - $90 = $30; - $91 = ((($90)) + 11|0); - $92 = HEAP8[$91>>0]|0; - $93 = $92&255; - $95 = $93; - } - $94 = ($72|0)!=($95|0); - if ($94) { - $$expand_i1_val = 0; - HEAP8[$37>>0] = $$expand_i1_val; - } else { - $96 = $38; - $97 = $39; - $98 = $40; - $99 = (__ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7compareEjjPKcj($96,0,-1,$97,$98)|0); - $100 = ($99|0)==(0); - $$expand_i1_val3 = $100&1; - HEAP8[$37>>0] = $$expand_i1_val3; - } - $$pre_trunc = HEAP8[$37>>0]|0; - $101 = $$pre_trunc&1; - $102 = $101 ^ 1; - __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($52); - if ($102) { - $103 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13invalid_magicC2Ev($103); - ___cxa_throw(($103|0),(56|0),(11|0)); - // unreachable; - } - $104 = HEAP32[$59>>2]|0; - $25 = $53; - $105 = $26; - $106 = $105; - HEAP32[$106>>2] = 0; - $107 = (($105) + 4)|0; - $108 = $107; - HEAP32[$108>>2] = 0; - $109 = $25; - ;HEAP32[$109>>2]=0|0;HEAP32[$109+4>>2]=0|0; - $110 = ((($109)) + 8|0); - $111 = $26; - $112 = $111; - $113 = HEAP32[$112>>2]|0; - $114 = (($111) + 4)|0; - $115 = $114; - $116 = HEAP32[$115>>2]|0; - $117 = $110; - $118 = $117; - HEAP32[$118>>2] = $113; - $119 = (($117) + 4)|0; - $120 = $119; - HEAP32[$120>>2] = $116; - ;HEAP32[$$byval_copy>>2]=HEAP32[$53>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$53+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$53+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$53+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($104,$$byval_copy); - $121 = HEAP32[$59>>2]|0; - $122 = ((($59)) + 20|0); - __ZN6laszip7streams13memory_stream4readEPci($121,$122,227); - $123 = ((($59)) + 20|0); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10_fixMinMaxERNS0_6headerE($59,$123); - $124 = (__ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEv()|0); - $54 = $124; - $125 = $54; - $24 = $125; - $126 = $24; - $127 = HEAP32[$126>>2]|0; - $21 = $126; - $22 = $127; - $128 = $22; - $18 = $20; - $19 = $128; - $129 = $18; - $130 = $19; - HEAP32[$129>>2] = $130; - $131 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $131; - $132 = HEAP32[$23>>2]|0; - HEAP32[$55>>2] = $132; - $133 = $54; - $17 = $133; - $134 = $17; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $14 = $134; - $15 = $136; - $137 = $15; - $11 = $13; - $12 = $137; - $138 = $11; - $139 = $12; - HEAP32[$138>>2] = $139; - $140 = HEAP32[$13>>2]|0; - HEAP32[$16>>2] = $140; - $141 = HEAP32[$16>>2]|0; - HEAP32[$56>>2] = $141; - while(1) { - $9 = $55; - $10 = $56; - $142 = $9; - $143 = $10; - $7 = $142; - $8 = $143; - $144 = $7; - $6 = $144; - $145 = $6; - $146 = HEAP32[$145>>2]|0; - $147 = $8; - $5 = $147; - $148 = $5; - $149 = HEAP32[$148>>2]|0; - $150 = ($146|0)==($149|0); - $151 = $150 ^ 1; - if (!($151)) { - break; - } - $4 = $55; - $152 = $4; - $153 = HEAP32[$152>>2]|0; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2ERKS6_($57,$153); - $154 = ((($59)) + 20|0); - __ZNKSt3__28functionIFvRN6laszip2io6headerEEEclES4_($57,$154); - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($57); - $1 = $55; - $155 = $1; - $156 = HEAP32[$155>>2]|0; - $157 = ((($156)) + 24|0); - HEAP32[$155>>2] = $157; - } - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE12_parseLASZIPEv($59); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE16_parseChunkTableEv($59); - $158 = HEAP32[$59>>2]|0; - __ZN6laszip7streams13memory_stream5clearEv($158); - $159 = HEAP32[$59>>2]|0; - $160 = ((($59)) + 20|0); - $161 = ((($160)) + 96|0); - $162 = HEAP32[$161>>2]|0; - $163 = (($162) + 8)|0; - $2 = $58; - $164 = $3; - $165 = $164; - HEAP32[$165>>2] = $163; - $166 = (($164) + 4)|0; - $167 = $166; - HEAP32[$167>>2] = 0; - $168 = $2; - ;HEAP32[$168>>2]=0|0;HEAP32[$168+4>>2]=0|0; - $169 = ((($168)) + 8|0); - $170 = $3; - $171 = $170; - $172 = HEAP32[$171>>2]|0; - $173 = (($170) + 4)|0; - $174 = $173; - $175 = HEAP32[$174>>2]|0; - $176 = $169; - $177 = $176; - HEAP32[$177>>2] = $172; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $175; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$58>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$58+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$58+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$58+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($159,$$byval_copy1); - $180 = ((($59)) + 4|0); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE5resetEv($180); - STACKTOP = sp;return; -} -function __ZN6laszip5utilsL14aligned_mallocEi($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = (($4) + 64)|0; - $6 = (($5) + 4)|0; - $7 = (_malloc($6)|0); - $2 = $7; - $8 = $2; - $9 = $8; - $10 = (($9) + 64)|0; - $11 = (($10) + 4)|0; - $12 = $11 & -64; - $13 = $12; - $3 = $13; - $14 = $2; - $15 = $3; - $16 = ((($15)) + -4|0); - HEAP32[$16>>2] = $14; - $17 = $3; - STACKTOP = sp;return ($17|0); -} -function __ZN6laszip7streams13memory_stream4readEPci($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $18 = sp; - $21 = sp + 92|0; - $24 = sp + 12|0; - $26 = sp + 4|0; - $22 = $0; - $23 = $1; - HEAP32[$24>>2] = $2; - $27 = $22; - $28 = ((($27)) + 13|0); - $29 = HEAP8[$28>>0]|0; - $30 = $29&1; - if ($30) { - $31 = ((($27)) + 12|0); - HEAP8[$31>>0] = 1; - STACKTOP = sp;return; - } - $32 = ((($27)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ((($27)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = (($33) - ($35))|0; - HEAP32[$26>>2] = $36; - $19 = $24; - $20 = $26; - $37 = $19; - $38 = $20; - ;HEAP8[$18>>0]=HEAP8[$21>>0]|0; - $16 = $37; - $17 = $38; - $39 = $17; - $40 = $16; - $13 = $18; - $14 = $39; - $15 = $40; - $41 = $14; - $42 = HEAP32[$41>>2]|0; - $43 = $15; - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)<($44|0); - $46 = $17; - $47 = $16; - $48 = $45 ? $46 : $47; - $49 = HEAP32[$48>>2]|0; - $25 = $49; - $50 = HEAP32[$27>>2]|0; - $51 = ((($27)) + 8|0); - $52 = HEAP32[$51>>2]|0; - $53 = (($50) + ($52)|0); - $54 = HEAP32[$27>>2]|0; - $55 = ((($27)) + 8|0); - $56 = HEAP32[$55>>2]|0; - $57 = (($54) + ($56)|0); - $58 = $25; - $59 = (($57) + ($58)|0); - $60 = $23; - $10 = $53; - $11 = $59; - $12 = $60; - $61 = $10; - $9 = $61; - $62 = $9; - $63 = $11; - $3 = $63; - $64 = $3; - $65 = $12; - $4 = $65; - $66 = $4; - $5 = $62; - $6 = $64; - $7 = $66; - $67 = $6; - $68 = $5; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $8 = $71; - $72 = $8; - $73 = ($72>>>0)>(0); - if ($73) { - $74 = $7; - $75 = $5; - $76 = $8; - _memmove(($74|0),($75|0),($76|0))|0; - } - $77 = $25; - $78 = ((($27)) + 8|0); - $79 = HEAP32[$78>>2]|0; - $80 = (($79) + ($77))|0; - HEAP32[$78>>2] = $80; - $81 = $25; - $82 = ((($27)) + 16|0); - HEAP32[$82>>2] = $81; - $83 = ((($27)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = ((($27)) + 4|0); - $86 = HEAP32[$85>>2]|0; - $87 = ($84|0)>=($86|0); - if (!($87)) { - STACKTOP = sp;return; - } - $88 = ((($27)) + 13|0); - HEAP8[$88>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4355); - HEAP32[$2>>2] = (1640); - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $4; - $3 = $1; - $6 = $3; - $7 = ((($6)) + 8|0); - $8 = $7; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $11 = (($8) + 4)|0; - $12 = $11; - $13 = HEAP32[$12>>2]|0; - $14 = ((($5)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)<(0); - $17 = $16 << 31 >> 31; - $18 = ($13|0)>($17|0); - $19 = ($10>>>0)>=($15>>>0); - $20 = ($13|0)==($17|0); - $21 = $20 & $19; - $22 = $18 | $21; - if ($22) { - $23 = ((($5)) + 12|0); - HEAP8[$23>>0] = 1; - STACKTOP = sp;return; - } else { - $2 = $1; - $24 = $2; - $25 = ((($24)) + 8|0); - $26 = $25; - $27 = $26; - $28 = HEAP32[$27>>2]|0; - $29 = (($26) + 4)|0; - $30 = $29; - $31 = HEAP32[$30>>2]|0; - $32 = ((($5)) + 8|0); - HEAP32[$32>>2] = $28; - STACKTOP = sp;return; - } -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10_fixMinMaxERNS0_6headerE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $2 = $0; - $3 = $1; - $10 = $3; - $11 = ((($10)) + 179|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$11>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$11+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$11+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$11+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$11+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$11+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$11+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$11+7>>0];$12 = +HEAPF64[tempDoublePtr>>3]; - $4 = $12; - $13 = $3; - $14 = ((($13)) + 179|0); - $15 = ((($14)) + 8|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$15>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$15+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$15+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$15+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$15+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$15+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$15+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$15+7>>0];$16 = +HEAPF64[tempDoublePtr>>3]; - $7 = $16; - $17 = $3; - $18 = ((($17)) + 179|0); - $19 = ((($18)) + 16|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$19>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$19+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$19+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$19+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$19+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$19+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$19+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$19+7>>0];$20 = +HEAPF64[tempDoublePtr>>3]; - $5 = $20; - $21 = $3; - $22 = ((($21)) + 203|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$22>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$22+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$22+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$22+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$22+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$22+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$22+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$22+7>>0];$23 = +HEAPF64[tempDoublePtr>>3]; - $8 = $23; - $24 = $3; - $25 = ((($24)) + 203|0); - $26 = ((($25)) + 8|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$26>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$26+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$26+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$26+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$26+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$26+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$26+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$26+7>>0];$27 = +HEAPF64[tempDoublePtr>>3]; - $6 = $27; - $28 = $3; - $29 = ((($28)) + 203|0); - $30 = ((($29)) + 16|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$30>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$30+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$30+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$30+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$30+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$30+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$30+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$30+7>>0];$31 = +HEAPF64[tempDoublePtr>>3]; - $9 = $31; - $32 = $7; - $33 = $3; - $34 = ((($33)) + 179|0); - HEAPF64[tempDoublePtr>>3]=$32;HEAP8[$34>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$34+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$34+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$34+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$34+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$34+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$34+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$34+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $35 = $4; - $36 = $3; - $37 = ((($36)) + 203|0); - HEAPF64[tempDoublePtr>>3]=$35;HEAP8[$37>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$37+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$37+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$37+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$37+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$37+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$37+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$37+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $38 = $8; - $39 = $3; - $40 = ((($39)) + 179|0); - $41 = ((($40)) + 8|0); - HEAPF64[tempDoublePtr>>3]=$38;HEAP8[$41>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$41+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$41+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$41+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$41+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$41+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$41+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$41+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $42 = $5; - $43 = $3; - $44 = ((($43)) + 203|0); - $45 = ((($44)) + 8|0); - HEAPF64[tempDoublePtr>>3]=$42;HEAP8[$45>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$45+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$45+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$45+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$45+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$45+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$45+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$45+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $46 = $9; - $47 = $3; - $48 = ((($47)) + 179|0); - $49 = ((($48)) + 16|0); - HEAPF64[tempDoublePtr>>3]=$46;HEAP8[$49>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$49+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$49+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$49+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$49+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$49+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$49+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$49+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $50 = $6; - $51 = $3; - $52 = ((($51)) + 203|0); - $53 = ((($52)) + 16|0); - HEAPF64[tempDoublePtr>>3]=$50;HEAP8[$53>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$53+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$53+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$53+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$53+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$53+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$53+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$53+7>>0]=HEAP8[tempDoublePtr+7>>0]; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEv() { - var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $$byval_copy = sp + 195|0; - $13 = sp + 24|0; - $18 = sp + 194|0; - $29 = sp + 193|0; - $42 = sp + 32|0; - $44 = sp; - $45 = sp + 192|0; - $46 = HEAP8[21176]|0; - $47 = ($46<<24>>24)==(0); - if ($47) { - $48 = (___cxa_guard_acquire(21176)|0); - $49 = ($48|0)!=(0); - if ($49) { - $43 = 21216; - $50 = $43; - $41 = $50; - $51 = $41; - $40 = $51; - HEAP32[$51>>2] = 0; - $52 = ((($51)) + 4|0); - HEAP32[$52>>2] = 0; - $53 = ((($51)) + 8|0); - HEAP32[$42>>2] = 0; - $38 = $53; - $39 = $42; - $54 = $38; - $55 = $39; - $37 = $55; - $56 = $37; - $33 = $54; - $34 = $56; - $57 = $33; - $58 = $34; - $32 = $58; - HEAP32[$57>>2] = 0; - $36 = $54; - $59 = $36; - $35 = $59; - } - } - $60 = HEAP8[21184]|0; - $61 = ($60<<24>>24)==(0); - if ($61) { - $62 = (___cxa_guard_acquire(21184)|0); - $63 = ($62|0)!=(0); - if ($63) { - } - } - $31 = 21216; - $64 = $31; - $65 = HEAP32[$64>>2]|0; - $66 = ((($64)) + 4|0); - $67 = HEAP32[$66>>2]|0; - $68 = ($65|0)==($67|0); - if (!($68)) { - STACKTOP = sp;return (21216|0); - } - __ZNSt3__25mutex4lockEv(21228); - $30 = 21216; - $69 = $30; - $70 = HEAP32[$69>>2]|0; - $71 = ((($69)) + 4|0); - $72 = HEAP32[$71>>2]|0; - $73 = ($70|0)==($72|0); - if ($73) { - ;HEAP8[$$byval_copy>>0]=HEAP8[$45>>0]|0; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2IZNS2_6reader10basic_fileINS1_7streams13memory_streamEE11_validatorsEvEUlS4_E_vEET_($44,$$byval_copy); - $27 = 21216; - $28 = $44; - $74 = $27; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - $26 = $74; - $77 = $26; - $78 = ((($77)) + 8|0); - $25 = $78; - $79 = $25; - $24 = $79; - $80 = $24; - $81 = HEAP32[$80>>2]|0; - $82 = ($76>>>0)<($81>>>0); - if ($82) { - $21 = $29; - $22 = $74; - $23 = 1; - $4 = $74; - $83 = $4; - $84 = ((($83)) + 8|0); - $3 = $84; - $85 = $3; - $2 = $85; - $86 = $2; - $87 = ((($74)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $0 = $88; - $89 = $0; - $90 = $28; - $1 = $90; - $91 = $1; - $15 = $86; - $16 = $89; - $17 = $91; - $92 = $15; - $93 = $16; - $94 = $17; - $14 = $94; - $95 = $14; - ;HEAP8[$13>>0]=HEAP8[$18>>0]|0; - $10 = $92; - $11 = $93; - $12 = $95; - $96 = $10; - $97 = $11; - $98 = $12; - $9 = $98; - $99 = $9; - $6 = $96; - $7 = $97; - $8 = $99; - $100 = $7; - $101 = $8; - $5 = $101; - $102 = $5; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($100,$102); - $19 = $29; - $103 = ((($74)) + 4|0); - $104 = HEAP32[$103>>2]|0; - $105 = ((($104)) + 24|0); - HEAP32[$103>>2] = $105; - } else { - $106 = $28; - $20 = $106; - $107 = $20; - __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE21__push_back_slow_pathIS7_EEvOT_($74,$107); - } - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($44); - } - __ZNSt3__25mutex6unlockEv(21228); - STACKTOP = sp;return (21216|0); -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = ((($4)) + 16|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; - } - $10 = $3; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = $3; - $14 = ($12|0)==($13|0); - if ($14) { - $15 = (__ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($4)|0); - $16 = ((($4)) + 16|0); - HEAP32[$16>>2] = $15; - $17 = $3; - $18 = ((($17)) + 16|0); - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = ((($20)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = ((($4)) + 16|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_vii[$22 & 255]($19,$24); - STACKTOP = sp;return; - } else { - $25 = $3; - $26 = ((($25)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = HEAP32[$27>>2]|0; - $29 = ((($28)) + 8|0); - $30 = HEAP32[$29>>2]|0; - $31 = (FUNCTION_TABLE_ii[$30 & 255]($27)|0); - $32 = ((($4)) + 16|0); - HEAP32[$32>>2] = $31; - STACKTOP = sp;return; - } -} -function __ZNKSt3__28functionIFvRN6laszip2io6headerEEEclES4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = (___cxa_allocate_exception(4)|0); - ;HEAP32[$9>>2]=0|0; - __ZNSt3__217bad_function_callC2Ev($9); - ___cxa_throw(($9|0),(1240|0),(197|0)); - // unreachable; - } else { - $10 = ((($5)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = HEAP32[$11>>2]|0; - $13 = ((($12)) + 24|0); - $14 = HEAP32[$13>>2]|0; - $15 = $4; - $2 = $15; - $16 = $2; - FUNCTION_TABLE_vii[$14 & 255]($11,$16); - STACKTOP = sp;return; - } -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==($2|0); - $6 = ((($2)) + 16|0); - $7 = HEAP32[$6>>2]|0; - if ($5) { - $8 = HEAP32[$7>>2]|0; - $9 = ((($8)) + 16|0); - $10 = HEAP32[$9>>2]|0; - FUNCTION_TABLE_vi[$10 & 511]($7); - STACKTOP = sp;return; - } - $11 = ($7|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($2)) + 16|0); - $13 = HEAP32[$12>>2]|0; - $14 = HEAP32[$13>>2]|0; - $15 = ((($14)) + 20|0); - $16 = HEAP32[$15>>2]|0; - FUNCTION_TABLE_vi[$16 & 511]($13); - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE12_parseLASZIPEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$expand_i1_val = 0, $$expand_i1_val3 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; - var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; - var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; - var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $$byval_copy = sp + 32|0; - $26 = sp + 116|0; - $30 = sp + 277|0; - $34 = sp + 24|0; - $38 = sp + 276|0; - $40 = sp + 16|0; - $42 = sp; - $43 = sp + 222|0; - $47 = sp + 60|0; - $48 = sp + 48|0; - $41 = $0; - $49 = $41; - $50 = HEAP32[$49>>2]|0; - $51 = ((($49)) + 20|0); - $52 = ((($51)) + 94|0); - $53 = HEAP16[$52>>1]|0; - $54 = $53&65535; - $39 = $42; - $55 = $40; - $56 = $55; - HEAP32[$56>>2] = $54; - $57 = (($55) + 4)|0; - $58 = $57; - HEAP32[$58>>2] = 0; - $59 = $39; - ;HEAP32[$59>>2]=0|0;HEAP32[$59+4>>2]=0|0; - $60 = ((($59)) + 8|0); - $61 = $40; - $62 = $61; - $63 = HEAP32[$62>>2]|0; - $64 = (($61) + 4)|0; - $65 = $64; - $66 = HEAP32[$65>>2]|0; - $67 = $60; - $68 = $67; - HEAP32[$68>>2] = $63; - $69 = (($67) + 4)|0; - $70 = $69; - HEAP32[$70>>2] = $66; - ;HEAP32[$$byval_copy>>2]=HEAP32[$42>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$42+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$42+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$42+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($50,$$byval_copy); - $44 = 0; - $45 = 0; - while(1) { - $71 = $44; - $72 = ((($49)) + 20|0); - $73 = ((($72)) + 100|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71>>>0)<($74>>>0); - if (!($75)) { - break; - } - $76 = HEAP32[$49>>2]|0; - $77 = (__ZN6laszip7streams13memory_stream4goodEv($76)|0); - if (!($77)) { - break; - } - $78 = HEAP32[$49>>2]|0; - $79 = (__ZN6laszip7streams13memory_stream3eofEv($78)|0); - $80 = $79 ^ 1; - if (!($80)) { - break; - } - $81 = HEAP32[$49>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($81,$43,54); - $46 = 4841; - $82 = ((($43)) + 2|0); - $83 = ((($43)) + 2|0); - $84 = ((($83)) + 14|0); - $85 = $46; - $35 = $82; - $36 = $84; - $37 = $85; - $86 = $35; - $87 = $36; - $88 = $37; - ;HEAP8[$34>>0]=HEAP8[$38>>0]|0; - $31 = $86; - $32 = $87; - $33 = $88; - while(1) { - $89 = $31; - $90 = $32; - $91 = ($89|0)!=($90|0); - if (!($91)) { - label = 10; - break; - } - $92 = $31; - $93 = $33; - $27 = $34; - $28 = $92; - $29 = $93; - $94 = $28; - $95 = HEAP8[$94>>0]|0; - $96 = $95 << 24 >> 24; - $97 = $29; - $98 = HEAP8[$97>>0]|0; - $99 = $98 << 24 >> 24; - $100 = ($96|0)==($99|0); - if (!($100)) { - label = 8; - break; - } - $101 = $31; - $102 = ((($101)) + 1|0); - $31 = $102; - $103 = $33; - $104 = ((($103)) + 1|0); - $33 = $104; - } - if ((label|0) == 8) { - label = 0; - $$expand_i1_val = 0; - HEAP8[$30>>0] = $$expand_i1_val; - } - else if ((label|0) == 10) { - label = 0; - $$expand_i1_val3 = 1; - HEAP8[$30>>0] = $$expand_i1_val3; - } - $$pre_trunc = HEAP8[$30>>0]|0; - $105 = $$pre_trunc&1; - if ($105) { - $106 = ((($43)) + 18|0); - $107 = HEAPU8[$106>>0]|(HEAPU8[$106+1>>0]<<8); - $108 = $107&65535; - $109 = ($108|0)==(22204); - if ($109) { - label = 13; - break; - } - } - $149 = HEAP32[$49>>2]|0; - $150 = ((($43)) + 20|0); - $151 = HEAPU8[$150>>0]|(HEAPU8[$150+1>>0]<<8); - $152 = $151&65535; - __ZN6laszip7streams13memory_stream5seekgExNSt3__28ios_base7seekdirE($149,$152,0,1); - $153 = $44; - $154 = (($153) + 1)|0; - $44 = $154; - } - if ((label|0) == 13) { - $45 = 1; - $110 = ((($43)) + 20|0); - $111 = HEAPU8[$110>>0]|(HEAPU8[$110+1>>0]<<8); - $112 = $111&65535; - $113 = (__Znaj($112)|0); - $25 = $47; - HEAP32[$26>>2] = $113; - $114 = $25; - $23 = $114; - $24 = $26; - $115 = $23; - $116 = $24; - $22 = $116; - $117 = $22; - $20 = $115; - $21 = $117; - $118 = $20; - $119 = $21; - $19 = $119; - $120 = $19; - $121 = HEAP32[$120>>2]|0; - HEAP32[$118>>2] = $121; - $122 = HEAP32[$49>>2]|0; - $18 = $47; - $123 = $18; - $17 = $123; - $124 = $17; - $16 = $124; - $125 = $16; - $126 = HEAP32[$125>>2]|0; - $127 = ((($43)) + 20|0); - $128 = HEAPU8[$127>>0]|(HEAPU8[$127+1>>0]<<8); - $129 = $128&65535; - __ZN6laszip7streams13memory_stream4readEPci($122,$126,$129); - $15 = $47; - $130 = $15; - $14 = $130; - $131 = $14; - $13 = $131; - $132 = $13; - $133 = HEAP32[$132>>2]|0; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE15_parseLASZIPVLREPKc($49,$133); - $12 = $47; - $134 = $12; - $9 = $134; - $10 = 0; - $135 = $9; - $8 = $135; - $136 = $8; - $7 = $136; - $137 = $7; - $138 = HEAP32[$137>>2]|0; - $11 = $138; - $139 = $10; - $4 = $135; - $140 = $4; - $3 = $140; - $141 = $3; - HEAP32[$141>>2] = $139; - $142 = $11; - $143 = ($142|0)!=(0|0); - if ($143) { - $2 = $135; - $144 = $2; - $1 = $144; - $145 = $1; - $146 = $11; - $5 = $145; - $6 = $146; - $147 = $6; - $148 = ($147|0)==(0|0); - if (!($148)) { - __ZdlPv($147); - } - } - } - $155 = $45; - $156 = $155&1; - if ($156) { - $158 = ((($49)) + 247|0); - $159 = ((($49)) + 20|0); - $160 = ((($159)) + 105|0); - $161 = HEAPU8[$160>>0]|(HEAPU8[$160+1>>0]<<8); - $162 = $161&65535; - __ZN6laszip2io7laz_vlr9to_schemaERKS1_i($48,$158,$162); - $163 = ((($49)) + 300|0); - (__ZN6laszip7factory13record_schemaaSEOS1_($163,$48)|0); - __ZN6laszip7factory13record_schemaD2Ev($48); - STACKTOP = sp;return; - } else { - $157 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13no_laszip_vlrC2Ev($157); - ___cxa_throw(($157|0),(136|0),(32|0)); - // unreachable; - } -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE16_parseChunkTableEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; - var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; - var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; - var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; - var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0; - var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; - var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0; - var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0; - var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0; - var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; - var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0; - var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0; - var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; - var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; - var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 448|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(448|0); - $$byval_copy1 = sp + 80|0; - $$byval_copy = sp + 64|0; - $38 = sp + 56|0; - $41 = sp + 436|0; - $54 = sp + 48|0; - $56 = sp + 40|0; - $58 = sp + 24|0; - $59 = sp + 16|0; - $60 = sp; - $61 = sp + 216|0; - $62 = sp + 200|0; - $63 = sp + 184|0; - $64 = sp + 104|0; - $57 = $0; - $67 = $57; - $68 = HEAP32[$67>>2]|0; - $69 = ((($67)) + 20|0); - $70 = ((($69)) + 96|0); - $71 = HEAP32[$70>>2]|0; - $55 = $58; - $72 = $56; - $73 = $72; - HEAP32[$73>>2] = $71; - $74 = (($72) + 4)|0; - $75 = $74; - HEAP32[$75>>2] = 0; - $76 = $55; - ;HEAP32[$76>>2]=0|0;HEAP32[$76+4>>2]=0|0; - $77 = ((($76)) + 8|0); - $78 = $56; - $79 = $78; - $80 = HEAP32[$79>>2]|0; - $81 = (($78) + 4)|0; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $84 = $77; - $85 = $84; - HEAP32[$85>>2] = $80; - $86 = (($84) + 4)|0; - $87 = $86; - HEAP32[$87>>2] = $83; - ;HEAP32[$$byval_copy>>2]=HEAP32[$58>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$58+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$58+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$58+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($68,$$byval_copy); - $88 = $59; - $89 = $88; - HEAP32[$89>>2] = 0; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = 0; - $92 = HEAP32[$67>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($92,$59,8); - $93 = HEAP32[$67>>2]|0; - $94 = (__ZN6laszip7streams13memory_stream4goodEv($93)|0); - if (!($94)) { - $95 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($95); - ___cxa_throw(($95|0),(168|0),(34|0)); - // unreachable; - } - $96 = $59; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $99 = (($96) + 4)|0; - $100 = $99; - $101 = HEAP32[$100>>2]|0; - $102 = ($98|0)==(-1); - $103 = ($101|0)==(-1); - $104 = $102 & $103; - if ($104) { - $105 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13not_supportedC2EPKc($105,5052); - ___cxa_throw(($105|0),(184|0),(36|0)); - // unreachable; - } - $106 = HEAP32[$67>>2]|0; - $107 = $59; - $108 = $107; - $109 = HEAP32[$108>>2]|0; - $110 = (($107) + 4)|0; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $53 = $60; - $113 = $54; - $114 = $113; - HEAP32[$114>>2] = $109; - $115 = (($113) + 4)|0; - $116 = $115; - HEAP32[$116>>2] = $112; - $117 = $53; - ;HEAP32[$117>>2]=0|0;HEAP32[$117+4>>2]=0|0; - $118 = ((($117)) + 8|0); - $119 = $54; - $120 = $119; - $121 = HEAP32[$120>>2]|0; - $122 = (($119) + 4)|0; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $125 = $118; - $126 = $125; - HEAP32[$126>>2] = $121; - $127 = (($125) + 4)|0; - $128 = $127; - HEAP32[$128>>2] = $124; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$60>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$60+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$60+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$60+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($106,$$byval_copy1); - $129 = HEAP32[$67>>2]|0; - $130 = (__ZN6laszip7streams13memory_stream4goodEv($129)|0); - if (!($130)) { - $131 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($131); - ___cxa_throw(($131|0),(168|0),(34|0)); - // unreachable; - } - $132 = HEAP32[$67>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($132,$61,8); - $133 = HEAP32[$67>>2]|0; - $134 = (__ZN6laszip7streams13memory_stream4goodEv($133)|0); - if (!($134)) { - $135 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($135); - ___cxa_throw(($135|0),(168|0),(34|0)); - // unreachable; - } - $136 = HEAP32[$61>>2]|0; - $137 = ($136|0)!=(0); - if ($137) { - $138 = (___cxa_allocate_exception(8)|0); - __ZN6laszip26unknown_chunk_table_formatC2Ev($138); - ___cxa_throw(($138|0),(200|0),(38|0)); - // unreachable; - } - $139 = ((($67)) + 288|0); - $51 = $139; - $140 = $51; - $50 = $140; - $141 = $50; - $142 = ((($141)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = HEAP32[$141>>2]|0; - $145 = $143; - $146 = $144; - $147 = (($145) - ($146))|0; - $148 = (($147|0) / 8)&-1; - $52 = $148; - $49 = $140; - $149 = $49; - $150 = HEAP32[$149>>2]|0; - $46 = $149; - $47 = $150; - $151 = $46; - $152 = ((($151)) + 4|0); - $153 = HEAP32[$152>>2]|0; - $48 = $153; - while(1) { - $154 = $47; - $155 = $48; - $156 = ($154|0)!=($155|0); - if (!($156)) { - break; - } - $45 = $151; - $157 = $45; - $158 = ((($157)) + 8|0); - $44 = $158; - $159 = $44; - $43 = $159; - $160 = $43; - $161 = $48; - $162 = ((($161)) + -8|0); - $48 = $162; - $42 = $162; - $163 = $42; - $39 = $160; - $40 = $163; - $164 = $39; - $165 = $40; - ;HEAP8[$38>>0]=HEAP8[$41>>0]|0; - $36 = $164; - $37 = $165; - $166 = $36; - $167 = $37; - $34 = $166; - $35 = $167; - } - $168 = $47; - $169 = ((($151)) + 4|0); - HEAP32[$169>>2] = $168; - $170 = $52; - $31 = $140; - $32 = $170; - $171 = $31; - $30 = $171; - $172 = $30; - $173 = HEAP32[$172>>2]|0; - $29 = $173; - $174 = $29; - $13 = $171; - $175 = $13; - $176 = HEAP32[$175>>2]|0; - $12 = $176; - $177 = $12; - $18 = $171; - $178 = $18; - $17 = $178; - $179 = $17; - $16 = $179; - $180 = $16; - $181 = ((($180)) + 8|0); - $15 = $181; - $182 = $15; - $14 = $182; - $183 = $14; - $184 = HEAP32[$183>>2]|0; - $185 = HEAP32[$179>>2]|0; - $186 = $184; - $187 = $185; - $188 = (($186) - ($187))|0; - $189 = (($188|0) / 8)&-1; - $190 = (($177) + ($189<<3)|0); - $20 = $171; - $191 = $20; - $192 = HEAP32[$191>>2]|0; - $19 = $192; - $193 = $19; - $194 = $32; - $195 = (($193) + ($194<<3)|0); - $22 = $171; - $196 = $22; - $197 = HEAP32[$196>>2]|0; - $21 = $197; - $198 = $21; - $23 = $171; - $199 = $23; - $200 = ((($199)) + 4|0); - $201 = HEAP32[$200>>2]|0; - $202 = HEAP32[$199>>2]|0; - $203 = $201; - $204 = $202; - $205 = (($203) - ($204))|0; - $206 = (($205|0) / 8)&-1; - $207 = (($198) + ($206<<3)|0); - $24 = $171; - $25 = $174; - $26 = $190; - $27 = $195; - $28 = $207; - $33 = $140; - $208 = ((($67)) + 247|0); - $209 = ((($208)) + 12|0); - $210 = HEAPU8[$209>>0]|(HEAPU8[$209+1>>0]<<8)|(HEAPU8[$209+2>>0]<<16)|(HEAPU8[$209+3>>0]<<24); - $211 = ($210|0)==(-1); - if ($211) { - $212 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13not_supportedC2EPKc($212,5170); - ___cxa_throw(($212|0),(184|0),(36|0)); - // unreachable; - } - $213 = ((($67)) + 288|0); - $214 = ((($61)) + 4|0); - $215 = HEAP32[$214>>2]|0; - $216 = (($215) + 1)|0; - __ZNSt3__26vectorIyNS_9allocatorIyEEE6resizeEj($213,$216); - $217 = ((($67)) + 20|0); - $218 = ((($217)) + 96|0); - $219 = HEAP32[$218>>2]|0; - $220 = (($219) + 8)|0; - $221 = ((($67)) + 288|0); - $10 = $221; - $11 = 0; - $222 = $10; - $223 = HEAP32[$222>>2]|0; - $224 = $11; - $225 = (($223) + ($224<<3)|0); - $226 = $225; - $227 = $226; - HEAP32[$227>>2] = $220; - $228 = (($226) + 4)|0; - $229 = $228; - HEAP32[$229>>2] = 0; - $230 = ((($61)) + 4|0); - $231 = HEAP32[$230>>2]|0; - $232 = ($231>>>0)>(1); - if (!($232)) { - STACKTOP = sp;return; - } - $233 = HEAP32[$67>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($62,$233); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($63,$62); - __ZN6laszip13decompressors7integerC2Ejjjj($64,32,2,8,0); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($63); - __ZN6laszip13decompressors7integer4initEv($64); - $65 = 1; - while(1) { - $234 = $65; - $235 = ((($61)) + 4|0); - $236 = HEAP32[$235>>2]|0; - $237 = ($234>>>0)<=($236>>>0); - if (!($237)) { - break; - } - $238 = $65; - $239 = ($238>>>0)>(1); - if ($239) { - $240 = ((($67)) + 288|0); - $241 = $65; - $242 = (($241) - 1)|0; - $8 = $240; - $9 = $242; - $243 = $8; - $244 = HEAP32[$243>>2]|0; - $245 = $9; - $246 = (($244) + ($245<<3)|0); - $247 = $246; - $248 = $247; - $249 = HEAP32[$248>>2]|0; - $250 = (($247) + 4)|0; - $251 = $250; - $252 = HEAP32[$251>>2]|0; - $253 = $249; - } else { - $253 = 0; - } - $254 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($64,$63,$253,1)|0); - $255 = ($254|0)<(0); - $256 = $255 << 31 >> 31; - $257 = ((($67)) + 288|0); - $258 = $65; - $1 = $257; - $2 = $258; - $259 = $1; - $260 = HEAP32[$259>>2]|0; - $261 = $2; - $262 = (($260) + ($261<<3)|0); - $263 = $262; - $264 = $263; - HEAP32[$264>>2] = $254; - $265 = (($263) + 4)|0; - $266 = $265; - HEAP32[$266>>2] = $256; - $267 = $65; - $268 = (($267) + 1)|0; - $65 = $268; - } - $66 = 1; - while(1) { - $269 = $66; - $270 = ((($67)) + 288|0); - $3 = $270; - $271 = $3; - $272 = ((($271)) + 4|0); - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$271>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 8)&-1; - $279 = ($269>>>0)<($278>>>0); - if (!($279)) { - break; - } - $280 = ((($67)) + 288|0); - $281 = $66; - $282 = (($281) - 1)|0; - $4 = $280; - $5 = $282; - $283 = $4; - $284 = HEAP32[$283>>2]|0; - $285 = $5; - $286 = (($284) + ($285<<3)|0); - $287 = $286; - $288 = $287; - $289 = HEAP32[$288>>2]|0; - $290 = (($287) + 4)|0; - $291 = $290; - $292 = HEAP32[$291>>2]|0; - $293 = ((($67)) + 288|0); - $294 = $66; - $6 = $293; - $7 = $294; - $295 = $6; - $296 = HEAP32[$295>>2]|0; - $297 = $7; - $298 = (($296) + ($297<<3)|0); - $299 = $298; - $300 = $299; - $301 = HEAP32[$300>>2]|0; - $302 = (($299) + 4)|0; - $303 = $302; - $304 = HEAP32[$303>>2]|0; - $305 = (_i64Add(($301|0),($304|0),($289|0),($292|0))|0); - $306 = tempRet0; - $307 = $298; - $308 = $307; - HEAP32[$308>>2] = $305; - $309 = (($307) + 4)|0; - $310 = $309; - HEAP32[$310>>2] = $306; - $311 = $66; - $312 = (($311) + 1)|0; - $66 = $312; - } - __ZN6laszip13decompressors7integerD2Ev($64); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($63); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($62); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream5clearEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - HEAP8[$3>>0] = 0; - $4 = ((($2)) + 13|0); - HEAP8[$4>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE5resetEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 8|0); - HEAP32[$3>>2] = 0; - $4 = ((($2)) + 4|0); - HEAP32[$4>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__211char_traitsIcE6lengthEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (_strlen($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES9_S9_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $38 = sp + 8|0; - $40 = sp + 218|0; - $48 = sp; - $51 = sp + 217|0; - $58 = sp + 216|0; - $52 = $0; - $53 = $1; - $54 = $2; - $59 = $52; - $60 = $53; - $61 = $54; - $49 = $60; - $50 = $61; - $62 = $49; - $63 = $50; - ;HEAP8[$48>>0]=HEAP8[$51>>0]|0; - $46 = $62; - $47 = $63; - $64 = $47; - $65 = $46; - $66 = $64; - $67 = $65; - $68 = (($66) - ($67))|0; - $55 = $68; - $69 = $55; - $44 = $59; - $70 = $44; - $43 = $70; - $71 = $43; - $42 = $71; - $72 = $42; - $41 = $72; - $73 = $41; - $39 = $73; - $74 = $39; - ;HEAP8[$38>>0]=HEAP8[$40>>0]|0; - $37 = $74; - $75 = $37; - $36 = $75; - $45 = -1; - $76 = $45; - $77 = (($76) - 16)|0; - $78 = ($69>>>0)>($77>>>0); - if ($78) { - __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv($59); - // unreachable; - } - $79 = $55; - $80 = ($79>>>0)<(11); - $81 = $55; - if ($80) { - $34 = $59; - $35 = $81; - $82 = $34; - $83 = $35; - $84 = $83&255; - $33 = $82; - $85 = $33; - $32 = $85; - $86 = $32; - $87 = ((($86)) + 11|0); - HEAP8[$87>>0] = $84; - $12 = $59; - $88 = $12; - $11 = $88; - $89 = $11; - $10 = $89; - $90 = $10; - $9 = $90; - $91 = $9; - $8 = $91; - $92 = $8; - $56 = $92; - } else { - $4 = $81; - $93 = $4; - $94 = ($93>>>0)<(11); - if ($94) { - $101 = 11; - } else { - $95 = $4; - $96 = (($95) + 1)|0; - $3 = $96; - $97 = $3; - $98 = (($97) + 15)|0; - $99 = $98 & -16; - $101 = $99; - } - $100 = (($101) - 1)|0; - $57 = $100; - $7 = $59; - $102 = $7; - $6 = $102; - $103 = $6; - $5 = $103; - $104 = $5; - $105 = $57; - $106 = (($105) + 1)|0; - $18 = $104; - $19 = $106; - $107 = $18; - $108 = $19; - $15 = $107; - $16 = $108; - $17 = 0; - $109 = $15; - $14 = $109; - $110 = $16; - $13 = $110; - $111 = $13; - $112 = (__Znwj($111)|0); - $56 = $112; - $113 = $56; - $22 = $59; - $23 = $113; - $114 = $22; - $115 = $23; - $21 = $114; - $116 = $21; - $20 = $116; - $117 = $20; - HEAP32[$117>>2] = $115; - $118 = $57; - $119 = (($118) + 1)|0; - $26 = $59; - $27 = $119; - $120 = $26; - $121 = $27; - $122 = -2147483648 | $121; - $25 = $120; - $123 = $25; - $24 = $123; - $124 = $24; - $125 = ((($124)) + 8|0); - HEAP32[$125>>2] = $122; - $126 = $55; - $30 = $59; - $31 = $126; - $127 = $30; - $128 = $31; - $29 = $127; - $129 = $29; - $28 = $129; - $130 = $28; - $131 = ((($130)) + 4|0); - HEAP32[$131>>2] = $128; - } - while(1) { - $132 = $53; - $133 = $54; - $134 = ($132|0)!=($133|0); - $135 = $56; - if (!($134)) { - break; - } - $136 = $53; - __ZNSt3__211char_traitsIcE6assignERcRKc($135,$136); - $137 = $53; - $138 = ((($137)) + 1|0); - $53 = $138; - $139 = $56; - $140 = ((($139)) + 1|0); - $56 = $140; - } - HEAP8[$58>>0] = 0; - __ZNSt3__211char_traitsIcE6assignERcRKc($135,$58); - STACKTOP = sp;return; -} -function __ZNSt3__211char_traitsIcE6assignERcRKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - $5 = HEAP8[$4>>0]|0; - $6 = $2; - HEAP8[$6>>0] = $5; - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13invalid_magicD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2IZNS2_6reader10basic_fileINS1_7streams13memory_streamEE11_validatorsEvEUlS4_E_vEET_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(240|0); - $10 = sp + 96|0; - $11 = sp + 88|0; - $12 = sp + 80|0; - $13 = sp + 72|0; - $17 = sp + 235|0; - $18 = sp + 234|0; - $19 = sp + 233|0; - $20 = sp + 232|0; - $22 = sp + 172|0; - $25 = sp + 231|0; - $30 = sp + 64|0; - $31 = sp + 56|0; - $32 = sp + 48|0; - $36 = sp + 40|0; - $37 = sp + 32|0; - $38 = sp + 24|0; - $41 = sp + 230|0; - $42 = sp + 124|0; - $43 = sp + 229|0; - $44 = sp + 228|0; - $45 = sp + 227|0; - $46 = sp + 226|0; - $47 = sp + 16|0; - $48 = sp + 8|0; - $49 = sp; - $53 = sp + 225|0; - $54 = sp + 108|0; - $55 = sp + 224|0; - $57 = $0; - $58 = $57; - $59 = ((($58)) + 16|0); - HEAP32[$59>>2] = 0; - $56 = $1; - $2 = $1; - $60 = $2; - $51 = $58; - $52 = $60; - $61 = $51; - $50 = $61; - $62 = $50; - HEAP32[$62>>2] = (1704); - HEAP32[$61>>2] = (1660); - $63 = ((($61)) + 4|0); - $64 = $52; - $3 = $64; - $65 = $3; - $23 = $65; - $66 = $23; - $21 = $66; - $67 = $21; - $15 = $22; - $16 = $67; - $68 = $15; - $69 = $16; - $14 = $69; - $70 = $14; - ;HEAP8[$10>>0]=HEAP8[$20>>0]|0; - ;HEAP8[$11>>0]=HEAP8[$19>>0]|0; - ;HEAP8[$12>>0]=HEAP8[$18>>0]|0; - ;HEAP8[$13>>0]=HEAP8[$17>>0]|0; - $8 = $68; - $9 = $70; - $71 = $8; - $72 = $9; - $7 = $72; - $73 = $7; - $5 = $71; - $6 = $73; - $74 = $5; - $75 = $6; - $4 = $75; - $76 = $4; - HEAP32[$74>>2] = $76; - $77 = HEAP32[$22>>2]|0; - HEAP32[$54>>2] = $77; - $24 = $25; - ;HEAP8[$47>>0]=HEAP8[$55>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$54>>0]|0;HEAP8[$48+1>>0]=HEAP8[$54+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$54+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$54+3>>0]|0; - ;HEAP8[$49>>0]=HEAP8[$53>>0]|0; - $40 = $63; - $78 = $40; - $39 = $48; - $79 = $39; - ;HEAP32[$42>>2]=HEAP32[$79>>2]|0; - ;HEAP8[$30>>0]=HEAP8[$43>>0]|0; - ;HEAP8[$31>>0]=HEAP8[$42>>0]|0;HEAP8[$31+1>>0]=HEAP8[$42+1>>0]|0;HEAP8[$31+2>>0]=HEAP8[$42+2>>0]|0;HEAP8[$31+3>>0]=HEAP8[$42+3>>0]|0; - ;HEAP8[$32>>0]=HEAP8[$41>>0]|0; - $29 = $78; - $28 = $31; - $80 = $28; - $27 = $80; - $81 = $27; - $82 = HEAP32[$81>>2]|0; - $26 = $82; - $33 = $47; - ;HEAP8[$36>>0]=HEAP8[$46>>0]|0; - ;HEAP8[$37>>0]=HEAP8[$45>>0]|0; - ;HEAP8[$38>>0]=HEAP8[$44>>0]|0; - $35 = $78; - $83 = $35; - $34 = $83; - $84 = ((($58)) + 16|0); - HEAP32[$84>>2] = $58; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE21__push_back_slow_pathIS7_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 24)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 24)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 24)&-1; - $107 = $45; - __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEEC2EjjSA_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($122,$124); - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 24|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS9_EE($47,$46); - __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = ((($4)) + 16|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; - } - $10 = $3; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = $3; - $14 = ($12|0)==($13|0); - if ($14) { - $15 = (__ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($4)|0); - $16 = ((($4)) + 16|0); - HEAP32[$16>>2] = $15; - $17 = $3; - $18 = ((($17)) + 16|0); - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = ((($20)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = ((($4)) + 16|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_vii[$22 & 255]($19,$24); - STACKTOP = sp;return; - } else { - $25 = $3; - $26 = ((($25)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($4)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = $3; - $30 = ((($29)) + 16|0); - HEAP32[$30>>2] = 0; - STACKTOP = sp;return; - } -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEEC2EjjSA_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(178956970); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*24)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*24)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*24)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS9_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $15 = sp; - $20 = sp + 404|0; - $31 = sp + 292|0; - $37 = sp + 268|0; - $49 = sp + 220|0; - $102 = $0; - $103 = $1; - $104 = $102; - $101 = $104; - $105 = $101; - $100 = $105; - $106 = $100; - $107 = HEAP32[$106>>2]|0; - $99 = $107; - $108 = $99; - $78 = $105; - $109 = $78; - $110 = HEAP32[$109>>2]|0; - $77 = $110; - $111 = $77; - $83 = $105; - $112 = $83; - $82 = $112; - $113 = $82; - $81 = $113; - $114 = $81; - $115 = ((($114)) + 8|0); - $80 = $115; - $116 = $80; - $79 = $116; - $117 = $79; - $118 = HEAP32[$117>>2]|0; - $119 = HEAP32[$113>>2]|0; - $120 = $118; - $121 = $119; - $122 = (($120) - ($121))|0; - $123 = (($122|0) / 24)&-1; - $124 = (($111) + (($123*24)|0)|0); - $85 = $105; - $125 = $85; - $126 = HEAP32[$125>>2]|0; - $84 = $126; - $127 = $84; - $86 = $105; - $128 = $86; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 24)&-1; - $136 = (($127) + (($135*24)|0)|0); - $88 = $105; - $137 = $88; - $138 = HEAP32[$137>>2]|0; - $87 = $138; - $139 = $87; - $93 = $105; - $140 = $93; - $92 = $140; - $141 = $92; - $91 = $141; - $142 = $91; - $143 = ((($142)) + 8|0); - $90 = $143; - $144 = $90; - $89 = $144; - $145 = $89; - $146 = HEAP32[$145>>2]|0; - $147 = HEAP32[$141>>2]|0; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 24)&-1; - $152 = (($139) + (($151*24)|0)|0); - $94 = $105; - $95 = $108; - $96 = $124; - $97 = $136; - $98 = $152; - $4 = $104; - $153 = $4; - $154 = ((($153)) + 8|0); - $3 = $154; - $155 = $3; - $2 = $155; - $156 = $2; - $157 = HEAP32[$104>>2]|0; - $158 = ((($104)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = $103; - $161 = ((($160)) + 4|0); - $22 = $156; - $23 = $157; - $24 = $159; - $25 = $161; - while(1) { - $162 = $24; - $163 = $23; - $164 = ($162|0)!=($163|0); - if (!($164)) { - break; - } - $165 = $22; - $166 = $25; - $167 = HEAP32[$166>>2]|0; - $168 = ((($167)) + -24|0); - $21 = $168; - $169 = $21; - $170 = $24; - $171 = ((($170)) + -24|0); - $24 = $171; - $6 = $171; - $172 = $6; - $5 = $172; - $173 = $5; - $17 = $165; - $18 = $169; - $19 = $173; - $174 = $17; - $175 = $18; - $176 = $19; - $16 = $176; - $177 = $16; - ;HEAP8[$15>>0]=HEAP8[$20>>0]|0; - $12 = $174; - $13 = $175; - $14 = $177; - $178 = $12; - $179 = $13; - $180 = $14; - $11 = $180; - $181 = $11; - $8 = $178; - $9 = $179; - $10 = $181; - $182 = $9; - $183 = $10; - $7 = $183; - $184 = $7; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($182,$184); - $185 = $25; - $186 = HEAP32[$185>>2]|0; - $187 = ((($186)) + -24|0); - HEAP32[$185>>2] = $187; - } - $188 = $103; - $189 = ((($188)) + 4|0); - $29 = $104; - $30 = $189; - $190 = $29; - $28 = $190; - $191 = $28; - $192 = HEAP32[$191>>2]|0; - HEAP32[$31>>2] = $192; - $193 = $30; - $26 = $193; - $194 = $26; - $195 = HEAP32[$194>>2]|0; - $196 = $29; - HEAP32[$196>>2] = $195; - $27 = $31; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = $30; - HEAP32[$199>>2] = $198; - $200 = ((($104)) + 4|0); - $201 = $103; - $202 = ((($201)) + 8|0); - $35 = $200; - $36 = $202; - $203 = $35; - $34 = $203; - $204 = $34; - $205 = HEAP32[$204>>2]|0; - HEAP32[$37>>2] = $205; - $206 = $36; - $32 = $206; - $207 = $32; - $208 = HEAP32[$207>>2]|0; - $209 = $35; - HEAP32[$209>>2] = $208; - $33 = $37; - $210 = $33; - $211 = HEAP32[$210>>2]|0; - $212 = $36; - HEAP32[$212>>2] = $211; - $40 = $104; - $213 = $40; - $214 = ((($213)) + 8|0); - $39 = $214; - $215 = $39; - $38 = $215; - $216 = $38; - $217 = $103; - $43 = $217; - $218 = $43; - $219 = ((($218)) + 12|0); - $42 = $219; - $220 = $42; - $41 = $220; - $221 = $41; - $47 = $216; - $48 = $221; - $222 = $47; - $46 = $222; - $223 = $46; - $224 = HEAP32[$223>>2]|0; - HEAP32[$49>>2] = $224; - $225 = $48; - $44 = $225; - $226 = $44; - $227 = HEAP32[$226>>2]|0; - $228 = $47; - HEAP32[$228>>2] = $227; - $45 = $49; - $229 = $45; - $230 = HEAP32[$229>>2]|0; - $231 = $48; - HEAP32[$231>>2] = $230; - $232 = $103; - $233 = ((($232)) + 4|0); - $234 = HEAP32[$233>>2]|0; - $235 = $103; - HEAP32[$235>>2] = $234; - $50 = $104; - $236 = $50; - $237 = ((($236)) + 4|0); - $238 = HEAP32[$237>>2]|0; - $239 = HEAP32[$236>>2]|0; - $240 = $238; - $241 = $239; - $242 = (($240) - ($241))|0; - $243 = (($242|0) / 24)&-1; - $74 = $104; - $75 = $243; - $244 = $74; - $73 = $244; - $245 = $73; - $246 = HEAP32[$245>>2]|0; - $72 = $246; - $247 = $72; - $52 = $244; - $248 = $52; - $249 = HEAP32[$248>>2]|0; - $51 = $249; - $250 = $51; - $57 = $244; - $251 = $57; - $56 = $251; - $252 = $56; - $55 = $252; - $253 = $55; - $254 = ((($253)) + 8|0); - $54 = $254; - $255 = $54; - $53 = $255; - $256 = $53; - $257 = HEAP32[$256>>2]|0; - $258 = HEAP32[$252>>2]|0; - $259 = $257; - $260 = $258; - $261 = (($259) - ($260))|0; - $262 = (($261|0) / 24)&-1; - $263 = (($250) + (($262*24)|0)|0); - $59 = $244; - $264 = $59; - $265 = HEAP32[$264>>2]|0; - $58 = $265; - $266 = $58; - $64 = $244; - $267 = $64; - $63 = $267; - $268 = $63; - $62 = $268; - $269 = $62; - $270 = ((($269)) + 8|0); - $61 = $270; - $271 = $61; - $60 = $271; - $272 = $60; - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$268>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 24)&-1; - $279 = (($266) + (($278*24)|0)|0); - $66 = $244; - $280 = $66; - $281 = HEAP32[$280>>2]|0; - $65 = $281; - $282 = $65; - $283 = $75; - $284 = (($282) + (($283*24)|0)|0); - $67 = $244; - $68 = $247; - $69 = $263; - $70 = $279; - $71 = $284; - $76 = $104; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -24|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 24)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 178956970; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 608|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(608|0); - $7 = sp + 128|0; - $8 = sp + 120|0; - $9 = sp + 112|0; - $10 = sp + 104|0; - $13 = sp + 594|0; - $14 = sp + 593|0; - $15 = sp + 592|0; - $16 = sp + 591|0; - $18 = sp + 540|0; - $27 = sp + 96|0; - $28 = sp + 88|0; - $29 = sp + 80|0; - $30 = sp + 72|0; - $34 = sp + 590|0; - $35 = sp + 589|0; - $36 = sp + 588|0; - $37 = sp + 587|0; - $39 = sp + 488|0; - $45 = sp + 64|0; - $46 = sp + 56|0; - $47 = sp + 48|0; - $53 = sp + 40|0; - $54 = sp + 32|0; - $55 = sp + 24|0; - $58 = sp + 586|0; - $59 = sp + 436|0; - $60 = sp + 585|0; - $61 = sp + 584|0; - $62 = sp + 432|0; - $63 = sp + 583|0; - $64 = sp + 16|0; - $65 = sp + 8|0; - $66 = sp; - $71 = sp + 582|0; - $72 = sp + 412|0; - $73 = sp + 408|0; - $100 = sp + 300|0; - $137 = sp + 581|0; - $138 = sp + 144|0; - $139 = sp + 136|0; - $140 = sp + 580|0; - $136 = $0; - $141 = $136; - $142 = ((($141)) + 4|0); - $135 = $142; - $143 = $135; - $134 = $143; - $144 = $134; - $132 = $137; - $133 = $144; - $110 = $137; - $111 = 1; - $112 = 0; - $145 = $110; - $146 = $111; - $109 = $145; - $147 = ($146>>>0)>(536870911); - if ($147) { - $107 = 4287; - $148 = (___cxa_allocate_exception(8)|0); - $149 = $107; - $105 = $148; - $106 = $149; - $150 = $105; - $151 = $106; - __ZNSt11logic_errorC2EPKc($150,$151); - HEAP32[$150>>2] = (3660); - ___cxa_throw(($148|0),(1384|0),(220|0)); - // unreachable; - } - $152 = $111; - $153 = $152<<3; - $108 = $153; - $154 = $108; - $155 = (__Znwj($154)|0); - $102 = $139; - $103 = $137; - $104 = 1; - $156 = $102; - $157 = $103; - HEAP32[$156>>2] = $157; - $158 = ((($156)) + 4|0); - $159 = $104; - HEAP32[$158>>2] = $159; - $99 = $138; - HEAP32[$100>>2] = $155; - $101 = $139; - $160 = $99; - $161 = $101; - $98 = $161; - $162 = $98; - $95 = $160; - $96 = $100; - $97 = $162; - $163 = $95; - $164 = $96; - $94 = $164; - $165 = $94; - $88 = $163; - $89 = $165; - $166 = $88; - $167 = $89; - $87 = $167; - $168 = $87; - $169 = HEAP32[$168>>2]|0; - HEAP32[$166>>2] = $169; - $170 = ((($163)) + 4|0); - $171 = $97; - $90 = $171; - $172 = $90; - $92 = $170; - $93 = $172; - $173 = $92; - $174 = $93; - $91 = $174; - $175 = $91; - ;HEAP32[$173>>2]=HEAP32[$175>>2]|0;HEAP32[$173+4>>2]=HEAP32[$175+4>>2]|0; - $86 = $138; - $176 = $86; - $85 = $176; - $177 = $85; - $84 = $177; - $178 = $84; - $179 = HEAP32[$178>>2]|0; - $180 = ((($141)) + 4|0); - $83 = $180; - $181 = $83; - $82 = $181; - $182 = $82; - $80 = $140; - $81 = $137; - $68 = $179; - $69 = $182; - $70 = $140; - $183 = $68; - $67 = $183; - $184 = $67; - HEAP32[$184>>2] = (1704); - HEAP32[$183>>2] = (1660); - $185 = ((($183)) + 4|0); - $186 = $69; - $19 = $186; - $187 = $19; - $17 = $187; - $188 = $17; - $11 = $18; - $12 = $188; - $189 = $11; - $190 = $12; - ;HEAP8[$7>>0]=HEAP8[$16>>0]|0; - ;HEAP8[$8>>0]=HEAP8[$15>>0]|0; - ;HEAP8[$9>>0]=HEAP8[$14>>0]|0; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $5 = $189; - $6 = $190; - $191 = $5; - $192 = $6; - $4 = $192; - $193 = $4; - $2 = $191; - $3 = $193; - $194 = $2; - $195 = $3; - $1 = $195; - $196 = $1; - HEAP32[$194>>2] = $196; - $197 = HEAP32[$18>>2]|0; - HEAP32[$72>>2] = $197; - $198 = $70; - $20 = $198; - $199 = $20; - $40 = $199; - $200 = $40; - $38 = $200; - $201 = $38; - $32 = $39; - $33 = $201; - $202 = $32; - $203 = $33; - $31 = $203; - $204 = $31; - ;HEAP8[$27>>0]=HEAP8[$37>>0]|0; - ;HEAP8[$28>>0]=HEAP8[$36>>0]|0; - ;HEAP8[$29>>0]=HEAP8[$35>>0]|0; - ;HEAP8[$30>>0]=HEAP8[$34>>0]|0; - $25 = $202; - $26 = $204; - $205 = $25; - $206 = $26; - $24 = $206; - $207 = $24; - $22 = $205; - $23 = $207; - $208 = $22; - $209 = $23; - $21 = $209; - $210 = $21; - HEAP32[$208>>2] = $210; - $211 = HEAP32[$39>>2]|0; - HEAP32[$73>>2] = $211; - ;HEAP8[$64>>0]=HEAP8[$73>>0]|0;HEAP8[$64+1>>0]=HEAP8[$73+1>>0]|0;HEAP8[$64+2>>0]=HEAP8[$73+2>>0]|0;HEAP8[$64+3>>0]=HEAP8[$73+3>>0]|0; - ;HEAP8[$65>>0]=HEAP8[$72>>0]|0;HEAP8[$65+1>>0]=HEAP8[$72+1>>0]|0;HEAP8[$65+2>>0]=HEAP8[$72+2>>0]|0;HEAP8[$65+3>>0]=HEAP8[$72+3>>0]|0; - ;HEAP8[$66>>0]=HEAP8[$71>>0]|0; - $57 = $185; - $212 = $57; - $56 = $65; - $213 = $56; - ;HEAP32[$59>>2]=HEAP32[$213>>2]|0; - ;HEAP8[$45>>0]=HEAP8[$60>>0]|0; - ;HEAP8[$46>>0]=HEAP8[$59>>0]|0;HEAP8[$46+1>>0]=HEAP8[$59+1>>0]|0;HEAP8[$46+2>>0]=HEAP8[$59+2>>0]|0;HEAP8[$46+3>>0]=HEAP8[$59+3>>0]|0; - ;HEAP8[$47>>0]=HEAP8[$58>>0]|0; - $44 = $212; - $43 = $46; - $214 = $43; - $42 = $214; - $215 = $42; - $216 = HEAP32[$215>>2]|0; - $41 = $216; - $48 = $64; - $217 = $48; - ;HEAP32[$62>>2]=HEAP32[$217>>2]|0; - ;HEAP8[$53>>0]=HEAP8[$63>>0]|0; - ;HEAP8[$54>>0]=HEAP8[$62>>0]|0;HEAP8[$54+1>>0]=HEAP8[$62+1>>0]|0;HEAP8[$54+2>>0]=HEAP8[$62+2>>0]|0;HEAP8[$54+3>>0]=HEAP8[$62+3>>0]|0; - ;HEAP8[$55>>0]=HEAP8[$61>>0]|0; - $52 = $212; - $51 = $54; - $218 = $51; - $50 = $218; - $219 = $50; - $220 = HEAP32[$219>>2]|0; - $49 = $220; - $78 = $138; - $221 = $78; - $77 = $221; - $222 = $77; - $76 = $222; - $223 = $76; - $224 = HEAP32[$223>>2]|0; - $79 = $224; - $75 = $221; - $225 = $75; - $74 = $225; - $226 = $74; - HEAP32[$226>>2] = 0; - $227 = $79; - $131 = $138; - $228 = $131; - $128 = $228; - $129 = 0; - $229 = $128; - $127 = $229; - $230 = $127; - $126 = $230; - $231 = $126; - $232 = HEAP32[$231>>2]|0; - $130 = $232; - $233 = $129; - $116 = $229; - $234 = $116; - $115 = $234; - $235 = $115; - HEAP32[$235>>2] = $233; - $236 = $130; - $237 = ($236|0)!=(0|0); - if (!($237)) { - STACKTOP = sp;return ($227|0); - } - $114 = $229; - $238 = $114; - $239 = ((($238)) + 4|0); - $113 = $239; - $240 = $113; - $241 = $130; - $124 = $240; - $125 = $241; - $242 = $124; - $243 = HEAP32[$242>>2]|0; - $244 = $125; - $245 = ((($242)) + 4|0); - $246 = HEAP32[$245>>2]|0; - $121 = $243; - $122 = $244; - $123 = $246; - $247 = $121; - $248 = $122; - $249 = $123; - $118 = $247; - $119 = $248; - $120 = $249; - $250 = $119; - $117 = $250; - $251 = $117; - __ZdlPv($251); - STACKTOP = sp;return ($227|0); -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEPNS0_6__baseISE_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $10 = sp + 128|0; - $11 = sp + 120|0; - $12 = sp + 112|0; - $13 = sp + 104|0; - $16 = sp + 332|0; - $17 = sp + 331|0; - $18 = sp + 330|0; - $19 = sp + 329|0; - $21 = sp + 272|0; - $29 = sp + 96|0; - $30 = sp + 88|0; - $31 = sp + 80|0; - $32 = sp + 72|0; - $35 = sp + 328|0; - $36 = sp + 327|0; - $37 = sp + 326|0; - $38 = sp + 325|0; - $40 = sp + 228|0; - $46 = sp + 64|0; - $47 = sp + 56|0; - $48 = sp + 48|0; - $54 = sp + 40|0; - $55 = sp + 32|0; - $56 = sp + 24|0; - $59 = sp + 324|0; - $60 = sp + 176|0; - $61 = sp + 323|0; - $62 = sp + 322|0; - $63 = sp + 172|0; - $64 = sp + 321|0; - $65 = sp + 16|0; - $66 = sp + 8|0; - $67 = sp; - $72 = sp + 320|0; - $73 = sp + 152|0; - $74 = sp + 148|0; - $77 = $0; - $78 = $1; - $79 = $77; - $80 = $78; - $81 = ((($79)) + 4|0); - $76 = $81; - $82 = $76; - $75 = $82; - $83 = $75; - $84 = ((($79)) + 4|0); - $3 = $84; - $85 = $3; - $2 = $85; - $86 = $2; - $69 = $80; - $70 = $83; - $71 = $86; - $87 = $69; - $68 = $87; - $88 = $68; - HEAP32[$88>>2] = (1704); - HEAP32[$87>>2] = (1660); - $89 = ((($87)) + 4|0); - $90 = $70; - $22 = $90; - $91 = $22; - $20 = $91; - $92 = $20; - $14 = $21; - $15 = $92; - $93 = $14; - $94 = $15; - ;HEAP8[$10>>0]=HEAP8[$19>>0]|0; - ;HEAP8[$11>>0]=HEAP8[$18>>0]|0; - ;HEAP8[$12>>0]=HEAP8[$17>>0]|0; - ;HEAP8[$13>>0]=HEAP8[$16>>0]|0; - $8 = $93; - $9 = $94; - $95 = $8; - $96 = $9; - $7 = $96; - $97 = $7; - $5 = $95; - $6 = $97; - $98 = $5; - $99 = $6; - $4 = $99; - $100 = $4; - HEAP32[$98>>2] = $100; - $101 = HEAP32[$21>>2]|0; - HEAP32[$73>>2] = $101; - $102 = $71; - $41 = $102; - $103 = $41; - $39 = $103; - $104 = $39; - $33 = $40; - $34 = $104; - $105 = $33; - $106 = $34; - ;HEAP8[$29>>0]=HEAP8[$38>>0]|0; - ;HEAP8[$30>>0]=HEAP8[$37>>0]|0; - ;HEAP8[$31>>0]=HEAP8[$36>>0]|0; - ;HEAP8[$32>>0]=HEAP8[$35>>0]|0; - $27 = $105; - $28 = $106; - $107 = $27; - $108 = $28; - $26 = $108; - $109 = $26; - $24 = $107; - $25 = $109; - $110 = $24; - $111 = $25; - $23 = $111; - $112 = $23; - HEAP32[$110>>2] = $112; - $113 = HEAP32[$40>>2]|0; - HEAP32[$74>>2] = $113; - ;HEAP8[$65>>0]=HEAP8[$74>>0]|0;HEAP8[$65+1>>0]=HEAP8[$74+1>>0]|0;HEAP8[$65+2>>0]=HEAP8[$74+2>>0]|0;HEAP8[$65+3>>0]=HEAP8[$74+3>>0]|0; - ;HEAP8[$66>>0]=HEAP8[$73>>0]|0;HEAP8[$66+1>>0]=HEAP8[$73+1>>0]|0;HEAP8[$66+2>>0]=HEAP8[$73+2>>0]|0;HEAP8[$66+3>>0]=HEAP8[$73+3>>0]|0; - ;HEAP8[$67>>0]=HEAP8[$72>>0]|0; - $58 = $89; - $114 = $58; - $57 = $66; - $115 = $57; - ;HEAP32[$60>>2]=HEAP32[$115>>2]|0; - ;HEAP8[$46>>0]=HEAP8[$61>>0]|0; - ;HEAP8[$47>>0]=HEAP8[$60>>0]|0;HEAP8[$47+1>>0]=HEAP8[$60+1>>0]|0;HEAP8[$47+2>>0]=HEAP8[$60+2>>0]|0;HEAP8[$47+3>>0]=HEAP8[$60+3>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$59>>0]|0; - $45 = $114; - $44 = $47; - $116 = $44; - $43 = $116; - $117 = $43; - $118 = HEAP32[$117>>2]|0; - $42 = $118; - $49 = $65; - $119 = $49; - ;HEAP32[$63>>2]=HEAP32[$119>>2]|0; - ;HEAP8[$54>>0]=HEAP8[$64>>0]|0; - ;HEAP8[$55>>0]=HEAP8[$63>>0]|0;HEAP8[$55+1>>0]=HEAP8[$63+1>>0]|0;HEAP8[$55+2>>0]=HEAP8[$63+2>>0]|0;HEAP8[$55+3>>0]=HEAP8[$63+3>>0]|0; - ;HEAP8[$56>>0]=HEAP8[$62>>0]|0; - $53 = $114; - $52 = $55; - $120 = $52; - $51 = $120; - $121 = $51; - $122 = HEAP32[$121>>2]|0; - $50 = $122; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7destroyEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE18destroy_deallocateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 36|0; - $9 = $0; - $11 = $9; - $12 = ((($11)) + 4|0); - $8 = $12; - $13 = $8; - $7 = $13; - $14 = $7; - $1 = $10; - $2 = $14; - $4 = $10; - $5 = $11; - $6 = 1; - $15 = $5; - $3 = $15; - $16 = $3; - __ZdlPv($16); - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EEclESA_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 4|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $11 = $6; - $2 = $11; - $12 = $2; - __ZNSt3__228__invoke_void_return_wrapperIvE6__callIJRZN6laszip2io6reader10basic_fileINS3_7streams13memory_streamEE11_validatorsEvEUlRNS4_6headerEE_SB_EEEvDpOT_($10,$12); - STACKTOP = sp;return; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE6targetERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $0; - $8 = $1; - $9 = $7; - $10 = $8; - $4 = $10; - $5 = 128; - $11 = $4; - $12 = ((($11)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $14 = $5; - $15 = ((($14)) + 4|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($13|0)==($16|0); - if ($17) { - $18 = ((($9)) + 4|0); - $3 = $18; - $19 = $3; - $2 = $19; - $20 = $2; - $6 = $20; - $21 = $6; - STACKTOP = sp;return ($21|0); - } else { - $6 = 0; - $21 = $6; - STACKTOP = sp;return ($21|0); - } - return (0)|0; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE11target_typeEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (128|0); -} -function __ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__228__invoke_void_return_wrapperIvE6__callIJRZN6laszip2io6reader10basic_fileINS3_7streams13memory_streamEE11_validatorsEvEUlRNS4_6headerEE_SB_EEEvDpOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $7 = $10; - $11 = $7; - $12 = $9; - $2 = $12; - $13 = $2; - $5 = $11; - $6 = $13; - $14 = $5; - $4 = $14; - $15 = $4; - $16 = $6; - $3 = $16; - $17 = $3; - __ZZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEvENKUlRNS0_6headerEE_clES7_($15,$17); - STACKTOP = sp;return; -} -function __ZZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEvENKUlRNS0_6headerEE_clES7_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $3; - $7 = ((($6)) + 104|0); - $8 = HEAP8[$7>>0]|0; - $9 = $8&255; - $10 = $9 >> 7; - $11 = $10 & 1; - $4 = $11; - $12 = $3; - $13 = ((($12)) + 104|0); - $14 = HEAP8[$13>>0]|0; - $15 = $14&255; - $16 = $15 >> 6; - $17 = $16 & 1; - $5 = $17; - $18 = $4; - $19 = ($18|0)==(1); - $20 = $5; - $21 = ($20|0)==(1); - $or$cond = $19 & $21; - if ($or$cond) { - $22 = (___cxa_allocate_exception(8)|0); - __ZN6laszip21old_style_compressionC2Ev($22); - ___cxa_throw(($22|0),(96|0),(26|0)); - // unreachable; - } - $23 = $4; - $24 = $5; - $25 = $23 ^ $24; - $26 = ($25|0)==(0); - if ($26) { - $27 = (___cxa_allocate_exception(8)|0); - __ZN6laszip14not_compressedC2Ev($27); - ___cxa_throw(($27|0),(112|0),(28|0)); - // unreachable; - } else { - $28 = $3; - $29 = ((($28)) + 104|0); - $30 = HEAP8[$29>>0]|0; - $31 = $30&255; - $32 = $31 & 63; - $33 = $32&255; - HEAP8[$29>>0] = $33; - STACKTOP = sp;return; - } -} -function __ZN6laszip21old_style_compressionC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4640); - HEAP32[$2>>2] = (1748); - STACKTOP = sp;return; -} -function __ZN6laszip21old_style_compressionD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4708); - HEAP32[$2>>2] = (1768); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip21old_style_compressionD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip21old_style_compressionD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip14not_compressedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__217bad_function_callC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - $4 = $1; - HEAP32[$4>>2] = (3600); - HEAP32[$3>>2] = (3448); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream4goodEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 12|0); - $5 = HEAP8[$4>>0]|0; - $6 = $5&1; - $7 = $6&1; - $2 = $7; - $8 = ((($3)) + 12|0); - HEAP8[$8>>0] = 0; - $9 = $2; - $10 = $9&1; - $11 = $10 ^ 1; - STACKTOP = sp;return ($11|0); -} -function __ZN6laszip7streams13memory_stream3eofEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 13|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE15_parseLASZIPVLREPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 247|0); - $6 = $3; - __ZN6laszip2io7laz_vlr4fillEPKc($5,$6); - $7 = ((($4)) + 247|0); - $8 = HEAPU8[$7>>0]|(HEAPU8[$7+1>>0]<<8); - $9 = $8&65535; - $10 = ($9|0)!=(2); - if ($10) { - $11 = (___cxa_allocate_exception(8)|0); - __ZN6laszip25laszip_format_unsupportedC2Ev($11); - ___cxa_throw(($11|0),(152|0),(30|0)); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function __ZN6laszip7streams13memory_stream5seekgExNSt3__28ios_base7seekdirE($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = sp + 8|0; - $7 = sp; - $4 = $0; - $8 = $5; - $9 = $8; - HEAP32[$9>>2] = $1; - $10 = (($8) + 4)|0; - $11 = $10; - HEAP32[$11>>2] = $2; - $6 = $3; - $12 = $4; - $13 = $7; - $14 = $13; - HEAP32[$14>>2] = 0; - $15 = (($13) + 4)|0; - $16 = $15; - HEAP32[$16>>2] = 0; - $17 = $6; - switch ($17|0) { - case 0: { - $18 = $5; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + 4)|0; - $22 = $21; - $23 = HEAP32[$22>>2]|0; - $24 = $7; - $25 = $24; - HEAP32[$25>>2] = $20; - $26 = (($24) + 4)|0; - $27 = $26; - HEAP32[$27>>2] = $23; - break; - } - case 2: { - $28 = ((($12)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $30 = ($29|0)<(0); - $31 = $30 << 31 >> 31; - $32 = $5; - $33 = $32; - $34 = HEAP32[$33>>2]|0; - $35 = (($32) + 4)|0; - $36 = $35; - $37 = HEAP32[$36>>2]|0; - $38 = (_i64Add(($29|0),($31|0),($34|0),($37|0))|0); - $39 = tempRet0; - $40 = (_i64Subtract(($38|0),($39|0),1,0)|0); - $41 = tempRet0; - $42 = $7; - $43 = $42; - HEAP32[$43>>2] = $40; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - break; - } - case 1: { - $46 = ((($12)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47|0)<(0); - $49 = $48 << 31 >> 31; - $50 = $5; - $51 = $50; - $52 = HEAP32[$51>>2]|0; - $53 = (($50) + 4)|0; - $54 = $53; - $55 = HEAP32[$54>>2]|0; - $56 = (_i64Add(($47|0),($49|0),($52|0),($55|0))|0); - $57 = tempRet0; - $58 = $7; - $59 = $58; - HEAP32[$59>>2] = $56; - $60 = (($58) + 4)|0; - $61 = $60; - HEAP32[$61>>2] = $57; - break; - } - default: { - } - } - $62 = $7; - $63 = $62; - $64 = HEAP32[$63>>2]|0; - $65 = (($62) + 4)|0; - $66 = $65; - $67 = HEAP32[$66>>2]|0; - $68 = ((($12)) + 4|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)<(0); - $71 = $70 << 31 >> 31; - $72 = ($67|0)>($71|0); - $73 = ($64>>>0)>=($69>>>0); - $74 = ($67|0)==($71|0); - $75 = $74 & $73; - $76 = $72 | $75; - $77 = $7; - $78 = $77; - $79 = HEAP32[$78>>2]|0; - $80 = (($77) + 4)|0; - $81 = $80; - $82 = HEAP32[$81>>2]|0; - $83 = ($82|0)<(0); - $or$cond = $76 | $83; - $84 = ((($12)) + 12|0); - if ($or$cond) { - HEAP8[$84>>0] = 1; - STACKTOP = sp;return; - } else { - HEAP8[$84>>0] = 0; - $85 = $7; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $88 = (($85) + 4)|0; - $89 = $88; - $90 = HEAP32[$89>>2]|0; - $91 = ((($12)) + 8|0); - HEAP32[$91>>2] = $87; - STACKTOP = sp;return; - } -} -function __ZN6laszip13no_laszip_vlrC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4974); - HEAP32[$2>>2] = (1808); - STACKTOP = sp;return; -} -function __ZN6laszip13no_laszip_vlrD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlr9to_schemaERKS1_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $5 = sp + 40|0; - $8 = sp + 12|0; - $9 = sp; - $3 = $1; - $4 = $2; - $$expand_i1_val = 0; - HEAP8[$5>>0] = $$expand_i1_val; - __ZN6laszip7factory13record_schemaC2Ev($0); - $6 = 0; - while(1) { - $10 = $6; - $11 = $3; - $12 = ((($11)) + 32|0); - $13 = HEAPU8[$12>>0]|(HEAPU8[$12+1>>0]<<8); - $14 = $13&65535; - $15 = ($10|0)<($14|0); - if (!($15)) { - break; - } - $16 = $3; - $17 = ((($16)) + 34|0); - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = $6; - $20 = (($18) + (($19*6)|0)|0); - $7 = $20; - $21 = $7; - $22 = HEAPU8[$21>>0]|(HEAPU8[$21+1>>0]<<8); - $23 = $22&65535; - $24 = $7; - $25 = ((($24)) + 2|0); - $26 = HEAPU8[$25>>0]|(HEAPU8[$25+1>>0]<<8); - $27 = $26&65535; - $28 = $7; - $29 = ((($28)) + 4|0); - $30 = HEAPU8[$29>>0]|(HEAPU8[$29+1>>0]<<8); - $31 = $30&65535; - __ZN6laszip7factory11record_itemC2Eiii($8,$23,$27,$31); - __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$8); - $32 = $7; - $33 = ((($32)) + 2|0); - $34 = HEAPU8[$33>>0]|(HEAPU8[$33+1>>0]<<8); - $35 = $34&65535; - $36 = $4; - $37 = (($36) - ($35))|0; - $4 = $37; - $38 = $6; - $39 = (($38) + 1)|0; - $6 = $39; - } - $40 = $4; - $41 = ($40|0)<(0); - if ($41) { - $42 = (___cxa_allocate_exception(8)|0); - __ZN6laszip25laszip_format_unsupportedC2Ev($42); - ___cxa_throw(($42|0),(152|0),(30|0)); - // unreachable; - } - $43 = $4; - $44 = ($43|0)!=(0); - if ($44) { - $45 = $4; - __ZN6laszip7factory11record_itemC2Eiii($9,0,$45,2); - __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$9); - } - $$expand_i1_val2 = 1; - HEAP8[$5>>0] = $$expand_i1_val2; - $$pre_trunc = HEAP8[$5>>0]|0; - $46 = $$pre_trunc&1; - if ($46) { - STACKTOP = sp;return; - } - __ZN6laszip7factory13record_schemaD2Ev($0); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaaSEOS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 17|0; - $4 = sp + 16|0; - $5 = $0; - $6 = $1; - $7 = $5; - $8 = $6; - $2 = $7; - $3 = $8; - $9 = $2; - $10 = $3; - ;HEAP8[$$byval_copy>>0]=HEAP8[$4>>0]|0; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE13__move_assignERS6_NS_17integral_constantIbLb1EEE($9,$10,$$byval_copy); - STACKTOP = sp;return ($7|0); -} -function __ZN6laszip2io7laz_vlr4fillEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$arith = 0, $$overflow = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; - var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0; - var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; - var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; - var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0; - var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0; - var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0; - var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0; - var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0; - var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0; - var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(464|0); - $112 = $0; - $113 = $1; - $116 = $112; - $117 = $113; - $118 = $113; - $119 = ((($118)) + 2|0); - $109 = $117; - $110 = $119; - $111 = $116; - $120 = $109; - $108 = $120; - $121 = $108; - $122 = $110; - $102 = $122; - $123 = $102; - $124 = $111; - $103 = $124; - $125 = $103; - $104 = $121; - $105 = $123; - $106 = $125; - $126 = $105; - $127 = $104; - $128 = $126; - $129 = $127; - $130 = (($128) - ($129))|0; - $107 = $130; - $131 = $107; - $132 = ($131>>>0)>(0); - if ($132) { - $133 = $106; - $134 = $104; - $135 = $107; - _memmove(($133|0),($134|0),($135|0))|0; - } - $136 = HEAPU8[$116>>0]|(HEAPU8[$116+1>>0]<<8); - HEAP8[$116>>0]=$136&255;HEAP8[$116+1>>0]=$136>>8; - $137 = $113; - $138 = ((($137)) + 2|0); - $113 = $138; - $139 = $113; - $140 = $113; - $141 = ((($140)) + 2|0); - $142 = ((($116)) + 2|0); - $9 = $139; - $10 = $141; - $11 = $142; - $143 = $9; - $8 = $143; - $144 = $8; - $145 = $10; - $2 = $145; - $146 = $2; - $147 = $11; - $3 = $147; - $148 = $3; - $4 = $144; - $5 = $146; - $6 = $148; - $149 = $5; - $150 = $4; - $151 = $149; - $152 = $150; - $153 = (($151) - ($152))|0; - $7 = $153; - $154 = $7; - $155 = ($154>>>0)>(0); - if ($155) { - $156 = $6; - $157 = $4; - $158 = $7; - _memmove(($156|0),($157|0),($158|0))|0; - } - $159 = ((($116)) + 2|0); - $160 = HEAPU8[$159>>0]|(HEAPU8[$159+1>>0]<<8); - $161 = ((($116)) + 2|0); - HEAP8[$161>>0]=$160&255;HEAP8[$161+1>>0]=$160>>8; - $162 = $113; - $163 = ((($162)) + 2|0); - $113 = $163; - $164 = $113; - $165 = ((($164)) + 1|0); - $113 = $165; - $166 = HEAP8[$164>>0]|0; - $167 = ((($116)) + 4|0); - HEAP8[$167>>0] = $166; - $168 = $113; - $169 = ((($168)) + 1|0); - $113 = $169; - $170 = HEAP8[$168>>0]|0; - $171 = ((($116)) + 4|0); - $172 = ((($171)) + 1|0); - HEAP8[$172>>0] = $170; - $173 = $113; - $174 = $113; - $175 = ((($174)) + 2|0); - $176 = ((($116)) + 4|0); - $177 = ((($176)) + 2|0); - $19 = $173; - $20 = $175; - $21 = $177; - $178 = $19; - $18 = $178; - $179 = $18; - $180 = $20; - $12 = $180; - $181 = $12; - $182 = $21; - $13 = $182; - $183 = $13; - $14 = $179; - $15 = $181; - $16 = $183; - $184 = $15; - $185 = $14; - $186 = $184; - $187 = $185; - $188 = (($186) - ($187))|0; - $17 = $188; - $189 = $17; - $190 = ($189>>>0)>(0); - if ($190) { - $191 = $16; - $192 = $14; - $193 = $17; - _memmove(($191|0),($192|0),($193|0))|0; - } - $194 = ((($116)) + 4|0); - $195 = ((($194)) + 2|0); - $196 = HEAPU8[$195>>0]|(HEAPU8[$195+1>>0]<<8); - $197 = ((($116)) + 4|0); - $198 = ((($197)) + 2|0); - HEAP8[$198>>0]=$196&255;HEAP8[$198+1>>0]=$196>>8; - $199 = $113; - $200 = ((($199)) + 2|0); - $113 = $200; - $201 = $113; - $202 = $113; - $203 = ((($202)) + 4|0); - $204 = ((($116)) + 8|0); - $29 = $201; - $30 = $203; - $31 = $204; - $205 = $29; - $28 = $205; - $206 = $28; - $207 = $30; - $22 = $207; - $208 = $22; - $209 = $31; - $23 = $209; - $210 = $23; - $24 = $206; - $25 = $208; - $26 = $210; - $211 = $25; - $212 = $24; - $213 = $211; - $214 = $212; - $215 = (($213) - ($214))|0; - $27 = $215; - $216 = $27; - $217 = ($216>>>0)>(0); - if ($217) { - $218 = $26; - $219 = $24; - $220 = $27; - _memmove(($218|0),($219|0),($220|0))|0; - } - $221 = ((($116)) + 8|0); - $222 = HEAPU8[$221>>0]|(HEAPU8[$221+1>>0]<<8)|(HEAPU8[$221+2>>0]<<16)|(HEAPU8[$221+3>>0]<<24); - $223 = ((($116)) + 8|0); - HEAP8[$223>>0]=$222&255;HEAP8[$223+1>>0]=($222>>8)&255;HEAP8[$223+2>>0]=($222>>16)&255;HEAP8[$223+3>>0]=$222>>24; - $224 = $113; - $225 = ((($224)) + 4|0); - $113 = $225; - $226 = $113; - $227 = $113; - $228 = ((($227)) + 4|0); - $229 = ((($116)) + 12|0); - $39 = $226; - $40 = $228; - $41 = $229; - $230 = $39; - $38 = $230; - $231 = $38; - $232 = $40; - $32 = $232; - $233 = $32; - $234 = $41; - $33 = $234; - $235 = $33; - $34 = $231; - $35 = $233; - $36 = $235; - $236 = $35; - $237 = $34; - $238 = $236; - $239 = $237; - $240 = (($238) - ($239))|0; - $37 = $240; - $241 = $37; - $242 = ($241>>>0)>(0); - if ($242) { - $243 = $36; - $244 = $34; - $245 = $37; - _memmove(($243|0),($244|0),($245|0))|0; - } - $246 = ((($116)) + 12|0); - $247 = HEAPU8[$246>>0]|(HEAPU8[$246+1>>0]<<8)|(HEAPU8[$246+2>>0]<<16)|(HEAPU8[$246+3>>0]<<24); - $248 = ((($116)) + 12|0); - HEAP8[$248>>0]=$247&255;HEAP8[$248+1>>0]=($247>>8)&255;HEAP8[$248+2>>0]=($247>>16)&255;HEAP8[$248+3>>0]=$247>>24; - $249 = $113; - $250 = ((($249)) + 4|0); - $113 = $250; - $251 = $113; - $252 = $113; - $253 = ((($252)) + 8|0); - $254 = ((($116)) + 16|0); - $49 = $251; - $50 = $253; - $51 = $254; - $255 = $49; - $48 = $255; - $256 = $48; - $257 = $50; - $42 = $257; - $258 = $42; - $259 = $51; - $43 = $259; - $260 = $43; - $44 = $256; - $45 = $258; - $46 = $260; - $261 = $45; - $262 = $44; - $263 = $261; - $264 = $262; - $265 = (($263) - ($264))|0; - $47 = $265; - $266 = $47; - $267 = ($266>>>0)>(0); - if ($267) { - $268 = $46; - $269 = $44; - $270 = $47; - _memmove(($268|0),($269|0),($270|0))|0; - } - $271 = ((($116)) + 16|0); - $272 = $271; - $273 = $272; - $274 = HEAPU8[$273>>0]|(HEAPU8[$273+1>>0]<<8)|(HEAPU8[$273+2>>0]<<16)|(HEAPU8[$273+3>>0]<<24); - $275 = (($272) + 4)|0; - $276 = $275; - $277 = HEAPU8[$276>>0]|(HEAPU8[$276+1>>0]<<8)|(HEAPU8[$276+2>>0]<<16)|(HEAPU8[$276+3>>0]<<24); - $278 = ((($116)) + 16|0); - $279 = $278; - $280 = $279; - HEAP8[$280>>0]=$274&255;HEAP8[$280+1>>0]=($274>>8)&255;HEAP8[$280+2>>0]=($274>>16)&255;HEAP8[$280+3>>0]=$274>>24; - $281 = (($279) + 4)|0; - $282 = $281; - HEAP8[$282>>0]=$277&255;HEAP8[$282+1>>0]=($277>>8)&255;HEAP8[$282+2>>0]=($277>>16)&255;HEAP8[$282+3>>0]=$277>>24; - $283 = $113; - $284 = ((($283)) + 8|0); - $113 = $284; - $285 = $113; - $286 = $113; - $287 = ((($286)) + 8|0); - $288 = ((($116)) + 24|0); - $59 = $285; - $60 = $287; - $61 = $288; - $289 = $59; - $58 = $289; - $290 = $58; - $291 = $60; - $52 = $291; - $292 = $52; - $293 = $61; - $53 = $293; - $294 = $53; - $54 = $290; - $55 = $292; - $56 = $294; - $295 = $55; - $296 = $54; - $297 = $295; - $298 = $296; - $299 = (($297) - ($298))|0; - $57 = $299; - $300 = $57; - $301 = ($300>>>0)>(0); - if ($301) { - $302 = $56; - $303 = $54; - $304 = $57; - _memmove(($302|0),($303|0),($304|0))|0; - } - $305 = ((($116)) + 24|0); - $306 = $305; - $307 = $306; - $308 = HEAPU8[$307>>0]|(HEAPU8[$307+1>>0]<<8)|(HEAPU8[$307+2>>0]<<16)|(HEAPU8[$307+3>>0]<<24); - $309 = (($306) + 4)|0; - $310 = $309; - $311 = HEAPU8[$310>>0]|(HEAPU8[$310+1>>0]<<8)|(HEAPU8[$310+2>>0]<<16)|(HEAPU8[$310+3>>0]<<24); - $312 = ((($116)) + 24|0); - $313 = $312; - $314 = $313; - HEAP8[$314>>0]=$308&255;HEAP8[$314+1>>0]=($308>>8)&255;HEAP8[$314+2>>0]=($308>>16)&255;HEAP8[$314+3>>0]=$308>>24; - $315 = (($313) + 4)|0; - $316 = $315; - HEAP8[$316>>0]=$311&255;HEAP8[$316+1>>0]=($311>>8)&255;HEAP8[$316+2>>0]=($311>>16)&255;HEAP8[$316+3>>0]=$311>>24; - $317 = $113; - $318 = ((($317)) + 8|0); - $113 = $318; - $319 = $113; - $320 = $113; - $321 = ((($320)) + 2|0); - $322 = ((($116)) + 32|0); - $69 = $319; - $70 = $321; - $71 = $322; - $323 = $69; - $68 = $323; - $324 = $68; - $325 = $70; - $62 = $325; - $326 = $62; - $327 = $71; - $63 = $327; - $328 = $63; - $64 = $324; - $65 = $326; - $66 = $328; - $329 = $65; - $330 = $64; - $331 = $329; - $332 = $330; - $333 = (($331) - ($332))|0; - $67 = $333; - $334 = $67; - $335 = ($334>>>0)>(0); - if ($335) { - $336 = $66; - $337 = $64; - $338 = $67; - _memmove(($336|0),($337|0),($338|0))|0; - } - $339 = ((($116)) + 32|0); - $340 = HEAPU8[$339>>0]|(HEAPU8[$339+1>>0]<<8); - $341 = ((($116)) + 32|0); - HEAP8[$341>>0]=$340&255;HEAP8[$341+1>>0]=$340>>8; - $342 = $113; - $343 = ((($342)) + 2|0); - $113 = $343; - $344 = ((($116)) + 34|0); - $345 = HEAPU8[$344>>0]|(HEAPU8[$344+1>>0]<<8)|(HEAPU8[$344+2>>0]<<16)|(HEAPU8[$344+3>>0]<<24); - $346 = ($345|0)==(0|0); - if (!($346)) { - __ZdaPv($345); - } - $347 = ((($116)) + 32|0); - $348 = HEAPU8[$347>>0]|(HEAPU8[$347+1>>0]<<8); - $349 = $348&65535; - $$arith = ($349*6)|0; - $$overflow = ($349>>>0)>(715827882); - $350 = $$overflow ? -1 : $$arith; - $351 = (__Znaj($350)|0); - $352 = ((($116)) + 34|0); - HEAP8[$352>>0]=$351&255;HEAP8[$352+1>>0]=($351>>8)&255;HEAP8[$352+2>>0]=($351>>16)&255;HEAP8[$352+3>>0]=$351>>24; - $114 = 0; - while(1) { - $353 = $114; - $354 = ((($116)) + 32|0); - $355 = HEAPU8[$354>>0]|(HEAPU8[$354+1>>0]<<8); - $356 = $355&65535; - $357 = ($353|0)<($356|0); - if (!($357)) { - break; - } - $358 = ((($116)) + 34|0); - $359 = HEAPU8[$358>>0]|(HEAPU8[$358+1>>0]<<8)|(HEAPU8[$358+2>>0]<<16)|(HEAPU8[$358+3>>0]<<24); - $360 = $114; - $361 = (($359) + (($360*6)|0)|0); - $115 = $361; - $362 = $113; - $363 = $113; - $364 = ((($363)) + 2|0); - $365 = $115; - $79 = $362; - $80 = $364; - $81 = $365; - $366 = $79; - $78 = $366; - $367 = $78; - $368 = $80; - $72 = $368; - $369 = $72; - $370 = $81; - $73 = $370; - $371 = $73; - $74 = $367; - $75 = $369; - $76 = $371; - $372 = $75; - $373 = $74; - $374 = $372; - $375 = $373; - $376 = (($374) - ($375))|0; - $77 = $376; - $377 = $77; - $378 = ($377>>>0)>(0); - if ($378) { - $379 = $76; - $380 = $74; - $381 = $77; - _memmove(($379|0),($380|0),($381|0))|0; - } - $382 = $115; - $383 = HEAPU8[$382>>0]|(HEAPU8[$382+1>>0]<<8); - $384 = $115; - HEAP8[$384>>0]=$383&255;HEAP8[$384+1>>0]=$383>>8; - $385 = $113; - $386 = ((($385)) + 2|0); - $113 = $386; - $387 = $113; - $388 = $113; - $389 = ((($388)) + 2|0); - $390 = $115; - $391 = ((($390)) + 2|0); - $89 = $387; - $90 = $389; - $91 = $391; - $392 = $89; - $88 = $392; - $393 = $88; - $394 = $90; - $82 = $394; - $395 = $82; - $396 = $91; - $83 = $396; - $397 = $83; - $84 = $393; - $85 = $395; - $86 = $397; - $398 = $85; - $399 = $84; - $400 = $398; - $401 = $399; - $402 = (($400) - ($401))|0; - $87 = $402; - $403 = $87; - $404 = ($403>>>0)>(0); - if ($404) { - $405 = $86; - $406 = $84; - $407 = $87; - _memmove(($405|0),($406|0),($407|0))|0; - } - $408 = $115; - $409 = ((($408)) + 2|0); - $410 = HEAPU8[$409>>0]|(HEAPU8[$409+1>>0]<<8); - $411 = $115; - $412 = ((($411)) + 2|0); - HEAP8[$412>>0]=$410&255;HEAP8[$412+1>>0]=$410>>8; - $413 = $113; - $414 = ((($413)) + 2|0); - $113 = $414; - $415 = $113; - $416 = $113; - $417 = ((($416)) + 2|0); - $418 = $115; - $419 = ((($418)) + 4|0); - $99 = $415; - $100 = $417; - $101 = $419; - $420 = $99; - $98 = $420; - $421 = $98; - $422 = $100; - $92 = $422; - $423 = $92; - $424 = $101; - $93 = $424; - $425 = $93; - $94 = $421; - $95 = $423; - $96 = $425; - $426 = $95; - $427 = $94; - $428 = $426; - $429 = $427; - $430 = (($428) - ($429))|0; - $97 = $430; - $431 = $97; - $432 = ($431>>>0)>(0); - if ($432) { - $433 = $96; - $434 = $94; - $435 = $97; - _memmove(($433|0),($434|0),($435|0))|0; - } - $436 = $115; - $437 = ((($436)) + 4|0); - $438 = HEAPU8[$437>>0]|(HEAPU8[$437+1>>0]<<8); - $439 = $115; - $440 = ((($439)) + 4|0); - HEAP8[$440>>0]=$438&255;HEAP8[$440+1>>0]=$438>>8; - $441 = $113; - $442 = ((($441)) + 2|0); - $113 = $442; - $443 = $114; - $444 = (($443) + 1)|0; - $114 = $444; - } - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4918); - HEAP32[$2>>2] = (1788); - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip25laszip_format_unsupportedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip13no_laszip_vlrD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13no_laszip_vlrD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $14 = sp; - $19 = sp + 113|0; - $29 = sp + 112|0; - $30 = $0; - $31 = $1; - $32 = $30; - $33 = $31; - $27 = $32; - $28 = $33; - $34 = $27; - $35 = ((($34)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $26 = $34; - $37 = $26; - $38 = ((($37)) + 8|0); - $25 = $38; - $39 = $25; - $24 = $39; - $40 = $24; - $41 = HEAP32[$40>>2]|0; - $42 = ($36|0)!=($41|0); - if ($42) { - $21 = $29; - $22 = $34; - $23 = 1; - $4 = $34; - $43 = $4; - $44 = ((($43)) + 8|0); - $3 = $44; - $45 = $3; - $2 = $45; - $46 = $2; - $47 = ((($34)) + 4|0); - $48 = HEAP32[$47>>2]|0; - $5 = $48; - $49 = $5; - $50 = $28; - $16 = $46; - $17 = $49; - $18 = $50; - $51 = $16; - $52 = $17; - $53 = $18; - $15 = $53; - $54 = $15; - ;HEAP8[$14>>0]=HEAP8[$19>>0]|0; - $11 = $51; - $12 = $52; - $13 = $54; - $55 = $11; - $56 = $12; - $57 = $13; - $10 = $57; - $58 = $10; - $7 = $55; - $8 = $56; - $9 = $58; - $59 = $8; - $60 = $9; - $6 = $60; - $61 = $6; - ;HEAP32[$59>>2]=HEAP32[$61>>2]|0;HEAP32[$59+4>>2]=HEAP32[$61+4>>2]|0;HEAP32[$59+8>>2]=HEAP32[$61+8>>2]|0; - $20 = $29; - $62 = ((($34)) + 4|0); - $63 = HEAP32[$62>>2]|0; - $64 = ((($63)) + 12|0); - HEAP32[$62>>2] = $64; - STACKTOP = sp;return; - } else { - $65 = $28; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE21__push_back_slow_pathIRKS3_EEvOT_($34,$65); - STACKTOP = sp;return; - } -} -function __ZN6laszip7factory11record_itemC2Eiii($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $4; - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($8)) + 4|0); - $11 = $6; - HEAP32[$10>>2] = $11; - $12 = ((($8)) + 8|0); - $13 = $7; - HEAP32[$12>>2] = $13; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE21__push_back_slow_pathIRKS3_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 12)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 12)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 12)&-1; - $107 = $45; - __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEEC2EjjS6_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - ;HEAP32[$122>>2]=HEAP32[$124>>2]|0;HEAP32[$122+4>>2]=HEAP32[$124+4>>2]|0;HEAP32[$122+8>>2]=HEAP32[$124+8>>2]|0; - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 12|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($47,$46); - __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEEC2EjjS6_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(357913941); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*12)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*12)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*12)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $15 = sp + 288|0; - $21 = sp + 264|0; - $33 = sp + 216|0; - $86 = $0; - $87 = $1; - $88 = $86; - $85 = $88; - $89 = $85; - $84 = $89; - $90 = $84; - $91 = HEAP32[$90>>2]|0; - $83 = $91; - $92 = $83; - $62 = $89; - $93 = $62; - $94 = HEAP32[$93>>2]|0; - $61 = $94; - $95 = $61; - $67 = $89; - $96 = $67; - $66 = $96; - $97 = $66; - $65 = $97; - $98 = $65; - $99 = ((($98)) + 8|0); - $64 = $99; - $100 = $64; - $63 = $100; - $101 = $63; - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$97>>2]|0; - $104 = $102; - $105 = $103; - $106 = (($104) - ($105))|0; - $107 = (($106|0) / 12)&-1; - $108 = (($95) + (($107*12)|0)|0); - $69 = $89; - $109 = $69; - $110 = HEAP32[$109>>2]|0; - $68 = $110; - $111 = $68; - $70 = $89; - $112 = $70; - $113 = ((($112)) + 4|0); - $114 = HEAP32[$113>>2]|0; - $115 = HEAP32[$112>>2]|0; - $116 = $114; - $117 = $115; - $118 = (($116) - ($117))|0; - $119 = (($118|0) / 12)&-1; - $120 = (($111) + (($119*12)|0)|0); - $72 = $89; - $121 = $72; - $122 = HEAP32[$121>>2]|0; - $71 = $122; - $123 = $71; - $77 = $89; - $124 = $77; - $76 = $124; - $125 = $76; - $75 = $125; - $126 = $75; - $127 = ((($126)) + 8|0); - $74 = $127; - $128 = $74; - $73 = $128; - $129 = $73; - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$125>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 12)&-1; - $136 = (($123) + (($135*12)|0)|0); - $78 = $89; - $79 = $92; - $80 = $108; - $81 = $120; - $82 = $136; - $4 = $88; - $137 = $4; - $138 = ((($137)) + 8|0); - $3 = $138; - $139 = $3; - $2 = $139; - $140 = $2; - $141 = HEAP32[$88>>2]|0; - $142 = ((($88)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = $87; - $145 = ((($144)) + 4|0); - $5 = $140; - $6 = $141; - $7 = $143; - $8 = $145; - $146 = $7; - $147 = $6; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 12)&-1; - $9 = $151; - $152 = $9; - $153 = $8; - $154 = HEAP32[$153>>2]|0; - $155 = (0 - ($152))|0; - $156 = (($154) + (($155*12)|0)|0); - HEAP32[$153>>2] = $156; - $157 = $9; - $158 = ($157|0)>(0); - if ($158) { - $159 = $8; - $160 = HEAP32[$159>>2]|0; - $161 = $6; - $162 = $9; - $163 = ($162*12)|0; - _memcpy(($160|0),($161|0),($163|0))|0; - } - $164 = $87; - $165 = ((($164)) + 4|0); - $13 = $88; - $14 = $165; - $166 = $13; - $12 = $166; - $167 = $12; - $168 = HEAP32[$167>>2]|0; - HEAP32[$15>>2] = $168; - $169 = $14; - $10 = $169; - $170 = $10; - $171 = HEAP32[$170>>2]|0; - $172 = $13; - HEAP32[$172>>2] = $171; - $11 = $15; - $173 = $11; - $174 = HEAP32[$173>>2]|0; - $175 = $14; - HEAP32[$175>>2] = $174; - $176 = ((($88)) + 4|0); - $177 = $87; - $178 = ((($177)) + 8|0); - $19 = $176; - $20 = $178; - $179 = $19; - $18 = $179; - $180 = $18; - $181 = HEAP32[$180>>2]|0; - HEAP32[$21>>2] = $181; - $182 = $20; - $16 = $182; - $183 = $16; - $184 = HEAP32[$183>>2]|0; - $185 = $19; - HEAP32[$185>>2] = $184; - $17 = $21; - $186 = $17; - $187 = HEAP32[$186>>2]|0; - $188 = $20; - HEAP32[$188>>2] = $187; - $24 = $88; - $189 = $24; - $190 = ((($189)) + 8|0); - $23 = $190; - $191 = $23; - $22 = $191; - $192 = $22; - $193 = $87; - $27 = $193; - $194 = $27; - $195 = ((($194)) + 12|0); - $26 = $195; - $196 = $26; - $25 = $196; - $197 = $25; - $31 = $192; - $32 = $197; - $198 = $31; - $30 = $198; - $199 = $30; - $200 = HEAP32[$199>>2]|0; - HEAP32[$33>>2] = $200; - $201 = $32; - $28 = $201; - $202 = $28; - $203 = HEAP32[$202>>2]|0; - $204 = $31; - HEAP32[$204>>2] = $203; - $29 = $33; - $205 = $29; - $206 = HEAP32[$205>>2]|0; - $207 = $32; - HEAP32[$207>>2] = $206; - $208 = $87; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - $211 = $87; - HEAP32[$211>>2] = $210; - $34 = $88; - $212 = $34; - $213 = ((($212)) + 4|0); - $214 = HEAP32[$213>>2]|0; - $215 = HEAP32[$212>>2]|0; - $216 = $214; - $217 = $215; - $218 = (($216) - ($217))|0; - $219 = (($218|0) / 12)&-1; - $58 = $88; - $59 = $219; - $220 = $58; - $57 = $220; - $221 = $57; - $222 = HEAP32[$221>>2]|0; - $56 = $222; - $223 = $56; - $36 = $220; - $224 = $36; - $225 = HEAP32[$224>>2]|0; - $35 = $225; - $226 = $35; - $41 = $220; - $227 = $41; - $40 = $227; - $228 = $40; - $39 = $228; - $229 = $39; - $230 = ((($229)) + 8|0); - $38 = $230; - $231 = $38; - $37 = $231; - $232 = $37; - $233 = HEAP32[$232>>2]|0; - $234 = HEAP32[$228>>2]|0; - $235 = $233; - $236 = $234; - $237 = (($235) - ($236))|0; - $238 = (($237|0) / 12)&-1; - $239 = (($226) + (($238*12)|0)|0); - $43 = $220; - $240 = $43; - $241 = HEAP32[$240>>2]|0; - $42 = $241; - $242 = $42; - $48 = $220; - $243 = $48; - $47 = $243; - $244 = $47; - $46 = $244; - $245 = $46; - $246 = ((($245)) + 8|0); - $45 = $246; - $247 = $45; - $44 = $247; - $248 = $44; - $249 = HEAP32[$248>>2]|0; - $250 = HEAP32[$244>>2]|0; - $251 = $249; - $252 = $250; - $253 = (($251) - ($252))|0; - $254 = (($253|0) / 12)&-1; - $255 = (($242) + (($254*12)|0)|0); - $50 = $220; - $256 = $50; - $257 = HEAP32[$256>>2]|0; - $49 = $257; - $258 = $49; - $259 = $59; - $260 = (($258) + (($259*12)|0)|0); - $51 = $220; - $52 = $223; - $53 = $239; - $54 = $255; - $55 = $260; - $60 = $88; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -12|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 12)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 357913941; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE13__move_assignERS6_NS_17integral_constantIbLb1EEE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $21 = sp; - $24 = sp + 92|0; - $25 = $0; - $26 = $1; - $27 = $25; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE10deallocateEv($27); - $28 = $26; - $22 = $27; - $23 = $28; - $29 = $22; - $30 = $23; - ;HEAP8[$21>>0]=HEAP8[$24>>0]|0; - $19 = $29; - $20 = $30; - $31 = $19; - $32 = $20; - $18 = $32; - $33 = $18; - $34 = ((($33)) + 8|0); - $17 = $34; - $35 = $17; - $16 = $35; - $36 = $16; - $12 = $36; - $15 = $31; - $37 = $15; - $38 = ((($37)) + 8|0); - $14 = $38; - $39 = $14; - $13 = $39; - $40 = $26; - $41 = HEAP32[$40>>2]|0; - HEAP32[$27>>2] = $41; - $42 = $26; - $43 = ((($42)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = ((($27)) + 4|0); - HEAP32[$45>>2] = $44; - $46 = $26; - $5 = $46; - $47 = $5; - $48 = ((($47)) + 8|0); - $4 = $48; - $49 = $4; - $3 = $49; - $50 = $3; - $51 = HEAP32[$50>>2]|0; - $8 = $27; - $52 = $8; - $53 = ((($52)) + 8|0); - $7 = $53; - $54 = $7; - $6 = $54; - $55 = $6; - HEAP32[$55>>2] = $51; - $56 = $26; - $11 = $56; - $57 = $11; - $58 = ((($57)) + 8|0); - $10 = $58; - $59 = $10; - $9 = $59; - $60 = $9; - HEAP32[$60>>2] = 0; - $61 = $26; - $62 = ((($61)) + 4|0); - HEAP32[$62>>2] = 0; - $63 = $26; - HEAP32[$63>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE10deallocateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(240|0); - $45 = sp; - $48 = sp + 236|0; - $60 = $0; - $61 = $60; - $62 = HEAP32[$61>>2]|0; - $63 = ($62|0)!=(0|0); - if (!($63)) { - STACKTOP = sp;return; - } - $58 = $61; - $64 = $58; - $57 = $64; - $65 = $57; - $66 = ((($65)) + 4|0); - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$65>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 12)&-1; - $59 = $72; - $56 = $64; - $73 = $56; - $74 = HEAP32[$73>>2]|0; - $53 = $73; - $54 = $74; - $75 = $53; - $76 = ((($75)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $55 = $77; - while(1) { - $78 = $54; - $79 = $55; - $80 = ($78|0)!=($79|0); - if (!($80)) { - break; - } - $52 = $75; - $81 = $52; - $82 = ((($81)) + 8|0); - $51 = $82; - $83 = $51; - $50 = $83; - $84 = $50; - $85 = $55; - $86 = ((($85)) + -12|0); - $55 = $86; - $49 = $86; - $87 = $49; - $46 = $84; - $47 = $87; - $88 = $46; - $89 = $47; - ;HEAP8[$45>>0]=HEAP8[$48>>0]|0; - $43 = $88; - $44 = $89; - $90 = $43; - $91 = $44; - $41 = $90; - $42 = $91; - } - $92 = $54; - $93 = ((($75)) + 4|0); - HEAP32[$93>>2] = $92; - $94 = $59; - $38 = $64; - $39 = $94; - $95 = $38; - $37 = $95; - $96 = $37; - $97 = HEAP32[$96>>2]|0; - $36 = $97; - $98 = $36; - $20 = $95; - $99 = $20; - $100 = HEAP32[$99>>2]|0; - $19 = $100; - $101 = $19; - $25 = $95; - $102 = $25; - $24 = $102; - $103 = $24; - $23 = $103; - $104 = $23; - $105 = ((($104)) + 8|0); - $22 = $105; - $106 = $22; - $21 = $106; - $107 = $21; - $108 = HEAP32[$107>>2]|0; - $109 = HEAP32[$103>>2]|0; - $110 = $108; - $111 = $109; - $112 = (($110) - ($111))|0; - $113 = (($112|0) / 12)&-1; - $114 = (($101) + (($113*12)|0)|0); - $27 = $95; - $115 = $27; - $116 = HEAP32[$115>>2]|0; - $26 = $116; - $117 = $26; - $118 = $39; - $119 = (($117) + (($118*12)|0)|0); - $29 = $95; - $120 = $29; - $121 = HEAP32[$120>>2]|0; - $28 = $121; - $122 = $28; - $30 = $95; - $123 = $30; - $124 = ((($123)) + 4|0); - $125 = HEAP32[$124>>2]|0; - $126 = HEAP32[$123>>2]|0; - $127 = $125; - $128 = $126; - $129 = (($127) - ($128))|0; - $130 = (($129|0) / 12)&-1; - $131 = (($122) + (($130*12)|0)|0); - $31 = $95; - $32 = $98; - $33 = $114; - $34 = $119; - $35 = $131; - $40 = $64; - $8 = $61; - $132 = $8; - $133 = ((($132)) + 8|0); - $7 = $133; - $134 = $7; - $6 = $134; - $135 = $6; - $136 = HEAP32[$61>>2]|0; - $5 = $61; - $137 = $5; - $4 = $137; - $138 = $4; - $3 = $138; - $139 = $3; - $140 = ((($139)) + 8|0); - $2 = $140; - $141 = $2; - $1 = $141; - $142 = $1; - $143 = HEAP32[$142>>2]|0; - $144 = HEAP32[$138>>2]|0; - $145 = $143; - $146 = $144; - $147 = (($145) - ($146))|0; - $148 = (($147|0) / 12)&-1; - $13 = $135; - $14 = $136; - $15 = $148; - $149 = $13; - $150 = $14; - $151 = $15; - $10 = $149; - $11 = $150; - $12 = $151; - $152 = $11; - $9 = $152; - $153 = $9; - __ZdlPv($153); - $18 = $61; - $154 = $18; - $155 = ((($154)) + 8|0); - $17 = $155; - $156 = $17; - $16 = $156; - $157 = $16; - HEAP32[$157>>2] = 0; - $158 = ((($61)) + 4|0); - HEAP32[$158>>2] = 0; - HEAP32[$61>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5254); - HEAP32[$2>>2] = (1828); - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZNSt13runtime_errorC2EPKc($4,$5); - HEAP32[$4>>2] = (1848); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5298); - HEAP32[$2>>2] = (1868); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE6resizeEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $6 = sp; - $9 = sp + 180|0; - $45 = $0; - $46 = $1; - $48 = $45; - $44 = $48; - $49 = $44; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $52 = HEAP32[$49>>2]|0; - $53 = $51; - $54 = $52; - $55 = (($53) - ($54))|0; - $56 = (($55|0) / 8)&-1; - $47 = $56; - $57 = $47; - $58 = $46; - $59 = ($57>>>0)<($58>>>0); - if ($59) { - $60 = $46; - $61 = $47; - $62 = (($60) - ($61))|0; - __ZNSt3__26vectorIyNS_9allocatorIyEEE8__appendEj($48,$62); - STACKTOP = sp;return; - } - $63 = $47; - $64 = $46; - $65 = ($63>>>0)>($64>>>0); - if (!($65)) { - STACKTOP = sp;return; - } - $66 = HEAP32[$48>>2]|0; - $67 = $46; - $68 = (($66) + ($67<<3)|0); - $41 = $48; - $42 = $68; - $69 = $41; - $70 = $42; - $39 = $69; - $40 = $70; - $38 = $69; - $71 = $38; - $72 = ((($71)) + 4|0); - $73 = HEAP32[$72>>2]|0; - $74 = HEAP32[$71>>2]|0; - $75 = $73; - $76 = $74; - $77 = (($75) - ($76))|0; - $78 = (($77|0) / 8)&-1; - $43 = $78; - $79 = $42; - $14 = $69; - $15 = $79; - $80 = $14; - $81 = ((($80)) + 4|0); - $82 = HEAP32[$81>>2]|0; - $16 = $82; - while(1) { - $83 = $15; - $84 = $16; - $85 = ($83|0)!=($84|0); - if (!($85)) { - break; - } - $13 = $80; - $86 = $13; - $87 = ((($86)) + 8|0); - $12 = $87; - $88 = $12; - $11 = $88; - $89 = $11; - $90 = $16; - $91 = ((($90)) + -8|0); - $16 = $91; - $10 = $91; - $92 = $10; - $7 = $89; - $8 = $92; - $93 = $7; - $94 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $93; - $5 = $94; - $95 = $4; - $96 = $5; - $2 = $95; - $3 = $96; - } - $97 = $15; - $98 = ((($80)) + 4|0); - HEAP32[$98>>2] = $97; - $99 = $43; - $36 = $69; - $37 = $99; - $100 = $36; - $35 = $100; - $101 = $35; - $102 = HEAP32[$101>>2]|0; - $34 = $102; - $103 = $34; - $18 = $100; - $104 = $18; - $105 = HEAP32[$104>>2]|0; - $17 = $105; - $106 = $17; - $23 = $100; - $107 = $23; - $22 = $107; - $108 = $22; - $21 = $108; - $109 = $21; - $110 = ((($109)) + 8|0); - $20 = $110; - $111 = $20; - $19 = $111; - $112 = $19; - $113 = HEAP32[$112>>2]|0; - $114 = HEAP32[$108>>2]|0; - $115 = $113; - $116 = $114; - $117 = (($115) - ($116))|0; - $118 = (($117|0) / 8)&-1; - $119 = (($106) + ($118<<3)|0); - $25 = $100; - $120 = $25; - $121 = HEAP32[$120>>2]|0; - $24 = $121; - $122 = $24; - $123 = $37; - $124 = (($122) + ($123<<3)|0); - $27 = $100; - $125 = $27; - $126 = HEAP32[$125>>2]|0; - $26 = $126; - $127 = $26; - $28 = $100; - $128 = $28; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 8)&-1; - $136 = (($127) + ($135<<3)|0); - $29 = $100; - $30 = $103; - $31 = $119; - $32 = $124; - $33 = $136; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integerC2Ejjjj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $15 = sp + 72|0; - $27 = sp + 24|0; - $29 = $0; - $30 = $1; - $31 = $2; - $32 = $3; - $33 = $4; - $34 = $29; - $35 = ((($34)) + 4|0); - $36 = $30; - HEAP32[$35>>2] = $36; - $37 = ((($34)) + 8|0); - $38 = $31; - HEAP32[$37>>2] = $38; - $39 = ((($34)) + 12|0); - $40 = $32; - HEAP32[$39>>2] = $40; - $41 = ((($34)) + 16|0); - $42 = $33; - HEAP32[$41>>2] = $42; - $43 = ((($34)) + 36|0); - $28 = $43; - $44 = $28; - $26 = $44; - $45 = $26; - $25 = $45; - HEAP32[$45>>2] = 0; - $46 = ((($45)) + 4|0); - HEAP32[$46>>2] = 0; - $47 = ((($45)) + 8|0); - HEAP32[$27>>2] = 0; - $23 = $47; - $24 = $27; - $48 = $23; - $49 = $24; - $22 = $49; - $50 = $22; - $18 = $48; - $19 = $50; - $51 = $18; - $52 = $19; - $17 = $52; - HEAP32[$51>>2] = 0; - $21 = $48; - $53 = $21; - $20 = $53; - $54 = ((($34)) + 48|0); - __ZN6laszip6models14arithmetic_bitC2Ev($54); - $55 = ((($34)) + 68|0); - $16 = $55; - $56 = $16; - $14 = $56; - $57 = $14; - $13 = $57; - HEAP32[$57>>2] = 0; - $58 = ((($57)) + 4|0); - HEAP32[$58>>2] = 0; - $59 = ((($57)) + 8|0); - HEAP32[$15>>2] = 0; - $11 = $59; - $12 = $15; - $60 = $11; - $61 = $12; - $10 = $61; - $62 = $10; - $6 = $60; - $7 = $62; - $63 = $6; - $64 = $7; - $5 = $64; - HEAP32[$63>>2] = 0; - $9 = $60; - $65 = $9; - $8 = $65; - $66 = $33; - $67 = ($66|0)!=(0); - if (!($67)) { - $100 = $30; - $101 = ($100|0)!=(0); - $102 = $30; - $103 = ($102>>>0)<(32); - $or$cond = $101 & $103; - if ($or$cond) { - $104 = $30; - $105 = ((($34)) + 20|0); - HEAP32[$105>>2] = $104; - $106 = $30; - $107 = 1 << $106; - $108 = ((($34)) + 24|0); - HEAP32[$108>>2] = $107; - $109 = ((($34)) + 24|0); - $110 = HEAP32[$109>>2]|0; - $111 = (($110>>>0) / 2)&-1; - $112 = (0 - ($111))|0; - $113 = ((($34)) + 28|0); - HEAP32[$113>>2] = $112; - $114 = ((($34)) + 28|0); - $115 = HEAP32[$114>>2]|0; - $116 = ((($34)) + 24|0); - $117 = HEAP32[$116>>2]|0; - $118 = (($115) + ($117))|0; - $119 = (($118) - 1)|0; - $120 = ((($34)) + 32|0); - HEAP32[$120>>2] = $119; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } else { - $121 = ((($34)) + 20|0); - HEAP32[$121>>2] = 32; - $122 = ((($34)) + 24|0); - HEAP32[$122>>2] = 0; - $123 = ((($34)) + 28|0); - HEAP32[$123>>2] = -2147483648; - $124 = ((($34)) + 32|0); - HEAP32[$124>>2] = 2147483647; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } - } - $68 = ((($34)) + 20|0); - HEAP32[$68>>2] = 0; - $69 = $33; - $70 = ((($34)) + 24|0); - HEAP32[$70>>2] = $69; - while(1) { - $71 = $33; - $72 = ($71|0)!=(0); - if (!($72)) { - break; - } - $73 = $33; - $74 = $73 >>> 1; - $33 = $74; - $75 = ((($34)) + 20|0); - $76 = HEAP32[$75>>2]|0; - $77 = (($76) + 1)|0; - HEAP32[$75>>2] = $77; - } - $78 = ((($34)) + 24|0); - $79 = HEAP32[$78>>2]|0; - $80 = ((($34)) + 20|0); - $81 = HEAP32[$80>>2]|0; - $82 = (($81) - 1)|0; - $83 = 1 << $82; - $84 = ($79|0)==($83|0); - if ($84) { - $85 = ((($34)) + 20|0); - $86 = HEAP32[$85>>2]|0; - $87 = (($86) + -1)|0; - HEAP32[$85>>2] = $87; - } - $88 = ((($34)) + 24|0); - $89 = HEAP32[$88>>2]|0; - $90 = (($89>>>0) / 2)&-1; - $91 = (0 - ($90))|0; - $92 = ((($34)) + 28|0); - HEAP32[$92>>2] = $91; - $93 = ((($34)) + 28|0); - $94 = HEAP32[$93>>2]|0; - $95 = ((($34)) + 24|0); - $96 = HEAP32[$95>>2]|0; - $97 = (($94) + ($96))|0; - $98 = (($97) - 1)|0; - $99 = ((($34)) + 32|0); - HEAP32[$99>>2] = $98; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($3)|0); - $5 = $4&255; - $6 = $5 << 24; - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($7)|0); - $9 = $8&255; - $10 = $9 << 16; - $11 = $6 | $10; - $12 = HEAP32[$2>>2]|0; - $13 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($12)|0); - $14 = $13&255; - $15 = $14 << 8; - $16 = $11 | $15; - $17 = HEAP32[$2>>2]|0; - $18 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($17)|0); - $19 = $18&255; - $20 = $16 | $19; - $21 = ((($2)) + 4|0); - HEAP32[$21>>2] = $20; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer4initEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $14 = sp + 8|0; - $19 = sp + 335|0; - $30 = sp + 334|0; - $44 = sp; - $49 = sp + 333|0; - $60 = sp + 332|0; - $64 = sp + 60|0; - $66 = sp + 12|0; - $62 = $0; - $67 = $62; - $68 = ((($67)) + 36|0); - $61 = $68; - $69 = $61; - $70 = HEAP32[$69>>2]|0; - $71 = ((($69)) + 4|0); - $72 = HEAP32[$71>>2]|0; - $73 = ($70|0)==($72|0); - if (!($73)) { - STACKTOP = sp;return; - } - $63 = 0; - while(1) { - $74 = $63; - $75 = ((($67)) + 8|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($74>>>0)<($76>>>0); - if (!($77)) { - break; - } - $78 = ((($67)) + 36|0); - $79 = ((($67)) + 20|0); - $80 = HEAP32[$79>>2]|0; - $81 = (($80) + 1)|0; - __ZN6laszip6models10arithmeticC2EjbPj($64,$81,0,0); - $58 = $78; - $59 = $64; - $82 = $58; - $83 = ((($82)) + 4|0); - $84 = HEAP32[$83>>2]|0; - $57 = $82; - $85 = $57; - $86 = ((($85)) + 8|0); - $56 = $86; - $87 = $56; - $55 = $87; - $88 = $55; - $89 = HEAP32[$88>>2]|0; - $90 = ($84>>>0)<($89>>>0); - if ($90) { - $52 = $60; - $53 = $82; - $54 = 1; - $35 = $82; - $91 = $35; - $92 = ((($91)) + 8|0); - $34 = $92; - $93 = $34; - $33 = $93; - $94 = $33; - $95 = ((($82)) + 4|0); - $96 = HEAP32[$95>>2]|0; - $31 = $96; - $97 = $31; - $98 = $59; - $32 = $98; - $99 = $32; - $46 = $94; - $47 = $97; - $48 = $99; - $100 = $46; - $101 = $47; - $102 = $48; - $45 = $102; - $103 = $45; - ;HEAP8[$44>>0]=HEAP8[$49>>0]|0; - $41 = $100; - $42 = $101; - $43 = $103; - $104 = $41; - $105 = $42; - $106 = $43; - $40 = $106; - $107 = $40; - $37 = $104; - $38 = $105; - $39 = $107; - $108 = $38; - $109 = $39; - $36 = $109; - $110 = $36; - __ZN6laszip6models10arithmeticC2EOS1_($108,$110); - $50 = $60; - $111 = ((($82)) + 4|0); - $112 = HEAP32[$111>>2]|0; - $113 = ((($112)) + 44|0); - HEAP32[$111>>2] = $113; - } else { - $114 = $59; - $51 = $114; - $115 = $51; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($82,$115); - } - __ZN6laszip6models10arithmeticD2Ev($64); - $116 = $63; - $117 = (($116) + 1)|0; - $63 = $117; - } - $63 = 1; - while(1) { - $118 = $63; - $119 = ((($67)) + 20|0); - $120 = HEAP32[$119>>2]|0; - $121 = ($118>>>0)<=($120>>>0); - if (!($121)) { - break; - } - $122 = $63; - $123 = ((($67)) + 12|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122>>>0)<=($124>>>0); - if ($125) { - $126 = $63; - $127 = 1 << $126; - $131 = $127; - } else { - $128 = ((($67)) + 12|0); - $129 = HEAP32[$128>>2]|0; - $130 = 1 << $129; - $131 = $130; - } - $65 = $131; - $132 = ((($67)) + 68|0); - $133 = $65; - __ZN6laszip6models10arithmeticC2EjbPj($66,$133,0,0); - $28 = $132; - $29 = $66; - $134 = $28; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $27 = $134; - $137 = $27; - $138 = ((($137)) + 8|0); - $26 = $138; - $139 = $26; - $25 = $139; - $140 = $25; - $141 = HEAP32[$140>>2]|0; - $142 = ($136>>>0)<($141>>>0); - if ($142) { - $22 = $30; - $23 = $134; - $24 = 1; - $5 = $134; - $143 = $5; - $144 = ((($143)) + 8|0); - $4 = $144; - $145 = $4; - $3 = $145; - $146 = $3; - $147 = ((($134)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $1 = $148; - $149 = $1; - $150 = $29; - $2 = $150; - $151 = $2; - $16 = $146; - $17 = $149; - $18 = $151; - $152 = $16; - $153 = $17; - $154 = $18; - $15 = $154; - $155 = $15; - ;HEAP8[$14>>0]=HEAP8[$19>>0]|0; - $11 = $152; - $12 = $153; - $13 = $155; - $156 = $11; - $157 = $12; - $158 = $13; - $10 = $158; - $159 = $10; - $7 = $156; - $8 = $157; - $9 = $159; - $160 = $8; - $161 = $9; - $6 = $161; - $162 = $6; - __ZN6laszip6models10arithmeticC2EOS1_($160,$162); - $20 = $30; - $163 = ((($134)) + 4|0); - $164 = HEAP32[$163>>2]|0; - $165 = ((($164)) + 44|0); - HEAP32[$163>>2] = $165; - } else { - $166 = $29; - $21 = $166; - $167 = $21; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($134,$167); - } - __ZN6laszip6models10arithmeticD2Ev($66); - $168 = $63; - $169 = (($168) + 1)|0; - $63 = $169; - } - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $6 = $0; - $7 = $1; - $8 = $2; - $9 = $3; - $11 = $6; - $12 = $8; - $13 = $7; - $14 = ((($11)) + 36|0); - $15 = $9; - $4 = $14; - $5 = $15; - $16 = $4; - $17 = HEAP32[$16>>2]|0; - $18 = $5; - $19 = (($17) + (($18*44)|0)|0); - $20 = (__ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS_6models10arithmeticEEEiRT_RT0_($11,$13,$19)|0); - $21 = (($12) + ($20))|0; - $10 = $21; - $22 = $10; - $23 = ($22|0)<(0); - if ($23) { - $24 = ((($11)) + 24|0); - $25 = HEAP32[$24>>2]|0; - $26 = $10; - $27 = (($26) + ($25))|0; - $10 = $27; - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $28 = $10; - $29 = ((($11)) + 24|0); - $30 = HEAP32[$29>>2]|0; - $31 = ($28>>>0)>=($30>>>0); - if (!($31)) { - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $32 = ((($11)) + 24|0); - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($34) - ($33))|0; - $10 = $35; - $36 = $10; - STACKTOP = sp;return ($36|0); -} -function __ZN6laszip13decompressors7integerD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 68|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($3); - $4 = ((($2)) + 36|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($4); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip22chunk_table_read_errorD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13not_supportedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip26unknown_chunk_table_formatD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE8__appendEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $8 = sp; - $11 = sp + 140|0; - $19 = sp + 76|0; - $22 = sp + 64|0; - $33 = sp + 4|0; - $30 = $0; - $31 = $1; - $34 = $30; - $29 = $34; - $35 = $29; - $36 = ((($35)) + 8|0); - $28 = $36; - $37 = $28; - $27 = $37; - $38 = $27; - $39 = HEAP32[$38>>2]|0; - $40 = ((($34)) + 4|0); - $41 = HEAP32[$40>>2]|0; - $42 = $39; - $43 = $41; - $44 = (($42) - ($43))|0; - $45 = (($44|0) / 8)&-1; - $46 = $31; - $47 = ($45>>>0)>=($46>>>0); - if ($47) { - $48 = $31; - __ZNSt3__26vectorIyNS_9allocatorIyEEE18__construct_at_endEj($34,$48); - STACKTOP = sp;return; - } - $26 = $34; - $49 = $26; - $50 = ((($49)) + 8|0); - $25 = $50; - $51 = $25; - $24 = $51; - $52 = $24; - $32 = $52; - $23 = $34; - $53 = $23; - $54 = ((($53)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $56 = HEAP32[$53>>2]|0; - $57 = $55; - $58 = $56; - $59 = (($57) - ($58))|0; - $60 = (($59|0) / 8)&-1; - $61 = $31; - $62 = (($60) + ($61))|0; - $18 = $34; - HEAP32[$19>>2] = $62; - $63 = $18; - $64 = (__ZNKSt3__26vectorIyNS_9allocatorIyEEE8max_sizeEv($63)|0); - $20 = $64; - $65 = HEAP32[$19>>2]|0; - $66 = $20; - $67 = ($65>>>0)>($66>>>0); - if ($67) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($63); - // unreachable; - } - $16 = $63; - $68 = $16; - $15 = $68; - $69 = $15; - $14 = $69; - $70 = $14; - $71 = ((($70)) + 8|0); - $13 = $71; - $72 = $13; - $12 = $72; - $73 = $12; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $21 = $79; - $80 = $21; - $81 = $20; - $82 = (($81>>>0) / 2)&-1; - $83 = ($80>>>0)>=($82>>>0); - if ($83) { - $84 = $20; - $17 = $84; - } else { - $85 = $21; - $86 = $85<<1; - HEAP32[$22>>2] = $86; - $9 = $22; - $10 = $19; - $87 = $9; - $88 = $10; - ;HEAP8[$8>>0]=HEAP8[$11>>0]|0; - $6 = $87; - $7 = $88; - $89 = $6; - $90 = $7; - $3 = $8; - $4 = $89; - $5 = $90; - $91 = $4; - $92 = HEAP32[$91>>2]|0; - $93 = $5; - $94 = HEAP32[$93>>2]|0; - $95 = ($92>>>0)<($94>>>0); - $96 = $7; - $97 = $6; - $98 = $95 ? $96 : $97; - $99 = HEAP32[$98>>2]|0; - $17 = $99; - } - $100 = $17; - $2 = $34; - $101 = $2; - $102 = ((($101)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = HEAP32[$101>>2]|0; - $105 = $103; - $106 = $104; - $107 = (($105) - ($106))|0; - $108 = (($107|0) / 8)&-1; - $109 = $32; - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEEC2EjjS3_($33,$100,$108,$109); - $110 = $31; - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEE18__construct_at_endEj($33,$110); - __ZNSt3__26vectorIyNS_9allocatorIyEEE26__swap_out_circular_bufferERNS_14__split_bufferIyRS2_EE($34,$33); - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEED2Ev($33); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $10 = sp; - $13 = sp + 73|0; - $21 = sp + 72|0; - $18 = $0; - $19 = $1; - $22 = $18; - $17 = $22; - $23 = $17; - $24 = ((($23)) + 8|0); - $16 = $24; - $25 = $16; - $15 = $25; - $26 = $15; - $20 = $26; - while(1) { - $2 = $21; - $3 = $22; - $4 = 1; - $27 = $20; - $28 = ((($22)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $5 = $29; - $30 = $5; - $11 = $27; - $12 = $30; - $31 = $11; - $32 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $31; - $9 = $32; - $33 = $8; - $34 = $9; - $6 = $33; - $7 = $34; - $35 = $7; - $36 = $35; - $37 = $36; - HEAP32[$37>>2] = 0; - $38 = (($36) + 4)|0; - $39 = $38; - HEAP32[$39>>2] = 0; - $40 = ((($22)) + 4|0); - $41 = HEAP32[$40>>2]|0; - $42 = ((($41)) + 8|0); - HEAP32[$40>>2] = $42; - $43 = $19; - $44 = (($43) + -1)|0; - $19 = $44; - $14 = $21; - $45 = $19; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEEC2EjjS3_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(536870911); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<3; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<3)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<3)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $7 = sp; - $10 = sp + 56|0; - $14 = $0; - $15 = $1; - $17 = $14; - $13 = $17; - $18 = $13; - $19 = ((($18)) + 12|0); - $12 = $19; - $20 = $12; - $21 = ((($20)) + 4|0); - $11 = $21; - $22 = $11; - $23 = HEAP32[$22>>2]|0; - $16 = $23; - while(1) { - $24 = $16; - $25 = ((($17)) + 8|0); - $26 = HEAP32[$25>>2]|0; - $2 = $26; - $27 = $2; - $8 = $24; - $9 = $27; - $28 = $8; - $29 = $9; - ;HEAP8[$7>>0]=HEAP8[$10>>0]|0; - $5 = $28; - $6 = $29; - $30 = $5; - $31 = $6; - $3 = $30; - $4 = $31; - $32 = $4; - $33 = $32; - $34 = $33; - HEAP32[$34>>2] = 0; - $35 = (($33) + 4)|0; - $36 = $35; - HEAP32[$36>>2] = 0; - $37 = ((($17)) + 8|0); - $38 = HEAP32[$37>>2]|0; - $39 = ((($38)) + 8|0); - HEAP32[$37>>2] = $39; - $40 = $15; - $41 = (($40) + -1)|0; - $15 = $41; - $42 = $15; - $43 = ($42>>>0)>(0); - if (!($43)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE26__swap_out_circular_bufferERNS_14__split_bufferIyRS2_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $15 = sp + 288|0; - $21 = sp + 264|0; - $33 = sp + 216|0; - $86 = $0; - $87 = $1; - $88 = $86; - $85 = $88; - $89 = $85; - $84 = $89; - $90 = $84; - $91 = HEAP32[$90>>2]|0; - $83 = $91; - $92 = $83; - $62 = $89; - $93 = $62; - $94 = HEAP32[$93>>2]|0; - $61 = $94; - $95 = $61; - $67 = $89; - $96 = $67; - $66 = $96; - $97 = $66; - $65 = $97; - $98 = $65; - $99 = ((($98)) + 8|0); - $64 = $99; - $100 = $64; - $63 = $100; - $101 = $63; - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$97>>2]|0; - $104 = $102; - $105 = $103; - $106 = (($104) - ($105))|0; - $107 = (($106|0) / 8)&-1; - $108 = (($95) + ($107<<3)|0); - $69 = $89; - $109 = $69; - $110 = HEAP32[$109>>2]|0; - $68 = $110; - $111 = $68; - $70 = $89; - $112 = $70; - $113 = ((($112)) + 4|0); - $114 = HEAP32[$113>>2]|0; - $115 = HEAP32[$112>>2]|0; - $116 = $114; - $117 = $115; - $118 = (($116) - ($117))|0; - $119 = (($118|0) / 8)&-1; - $120 = (($111) + ($119<<3)|0); - $72 = $89; - $121 = $72; - $122 = HEAP32[$121>>2]|0; - $71 = $122; - $123 = $71; - $77 = $89; - $124 = $77; - $76 = $124; - $125 = $76; - $75 = $125; - $126 = $75; - $127 = ((($126)) + 8|0); - $74 = $127; - $128 = $74; - $73 = $128; - $129 = $73; - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$125>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 8)&-1; - $136 = (($123) + ($135<<3)|0); - $78 = $89; - $79 = $92; - $80 = $108; - $81 = $120; - $82 = $136; - $4 = $88; - $137 = $4; - $138 = ((($137)) + 8|0); - $3 = $138; - $139 = $3; - $2 = $139; - $140 = $2; - $141 = HEAP32[$88>>2]|0; - $142 = ((($88)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = $87; - $145 = ((($144)) + 4|0); - $5 = $140; - $6 = $141; - $7 = $143; - $8 = $145; - $146 = $7; - $147 = $6; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 8)&-1; - $9 = $151; - $152 = $9; - $153 = $8; - $154 = HEAP32[$153>>2]|0; - $155 = (0 - ($152))|0; - $156 = (($154) + ($155<<3)|0); - HEAP32[$153>>2] = $156; - $157 = $9; - $158 = ($157|0)>(0); - if ($158) { - $159 = $8; - $160 = HEAP32[$159>>2]|0; - $161 = $6; - $162 = $9; - $163 = $162<<3; - _memcpy(($160|0),($161|0),($163|0))|0; - } - $164 = $87; - $165 = ((($164)) + 4|0); - $13 = $88; - $14 = $165; - $166 = $13; - $12 = $166; - $167 = $12; - $168 = HEAP32[$167>>2]|0; - HEAP32[$15>>2] = $168; - $169 = $14; - $10 = $169; - $170 = $10; - $171 = HEAP32[$170>>2]|0; - $172 = $13; - HEAP32[$172>>2] = $171; - $11 = $15; - $173 = $11; - $174 = HEAP32[$173>>2]|0; - $175 = $14; - HEAP32[$175>>2] = $174; - $176 = ((($88)) + 4|0); - $177 = $87; - $178 = ((($177)) + 8|0); - $19 = $176; - $20 = $178; - $179 = $19; - $18 = $179; - $180 = $18; - $181 = HEAP32[$180>>2]|0; - HEAP32[$21>>2] = $181; - $182 = $20; - $16 = $182; - $183 = $16; - $184 = HEAP32[$183>>2]|0; - $185 = $19; - HEAP32[$185>>2] = $184; - $17 = $21; - $186 = $17; - $187 = HEAP32[$186>>2]|0; - $188 = $20; - HEAP32[$188>>2] = $187; - $24 = $88; - $189 = $24; - $190 = ((($189)) + 8|0); - $23 = $190; - $191 = $23; - $22 = $191; - $192 = $22; - $193 = $87; - $27 = $193; - $194 = $27; - $195 = ((($194)) + 12|0); - $26 = $195; - $196 = $26; - $25 = $196; - $197 = $25; - $31 = $192; - $32 = $197; - $198 = $31; - $30 = $198; - $199 = $30; - $200 = HEAP32[$199>>2]|0; - HEAP32[$33>>2] = $200; - $201 = $32; - $28 = $201; - $202 = $28; - $203 = HEAP32[$202>>2]|0; - $204 = $31; - HEAP32[$204>>2] = $203; - $29 = $33; - $205 = $29; - $206 = HEAP32[$205>>2]|0; - $207 = $32; - HEAP32[$207>>2] = $206; - $208 = $87; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - $211 = $87; - HEAP32[$211>>2] = $210; - $34 = $88; - $212 = $34; - $213 = ((($212)) + 4|0); - $214 = HEAP32[$213>>2]|0; - $215 = HEAP32[$212>>2]|0; - $216 = $214; - $217 = $215; - $218 = (($216) - ($217))|0; - $219 = (($218|0) / 8)&-1; - $58 = $88; - $59 = $219; - $220 = $58; - $57 = $220; - $221 = $57; - $222 = HEAP32[$221>>2]|0; - $56 = $222; - $223 = $56; - $36 = $220; - $224 = $36; - $225 = HEAP32[$224>>2]|0; - $35 = $225; - $226 = $35; - $41 = $220; - $227 = $41; - $40 = $227; - $228 = $40; - $39 = $228; - $229 = $39; - $230 = ((($229)) + 8|0); - $38 = $230; - $231 = $38; - $37 = $231; - $232 = $37; - $233 = HEAP32[$232>>2]|0; - $234 = HEAP32[$228>>2]|0; - $235 = $233; - $236 = $234; - $237 = (($235) - ($236))|0; - $238 = (($237|0) / 8)&-1; - $239 = (($226) + ($238<<3)|0); - $43 = $220; - $240 = $43; - $241 = HEAP32[$240>>2]|0; - $42 = $241; - $242 = $42; - $48 = $220; - $243 = $48; - $47 = $243; - $244 = $47; - $46 = $244; - $245 = $46; - $246 = ((($245)) + 8|0); - $45 = $246; - $247 = $45; - $44 = $247; - $248 = $44; - $249 = HEAP32[$248>>2]|0; - $250 = HEAP32[$244>>2]|0; - $251 = $249; - $252 = $250; - $253 = (($251) - ($252))|0; - $254 = (($253|0) / 8)&-1; - $255 = (($242) + ($254<<3)|0); - $50 = $220; - $256 = $50; - $257 = HEAP32[$256>>2]|0; - $49 = $257; - $258 = $49; - $259 = $59; - $260 = (($258) + ($259<<3)|0); - $51 = $220; - $52 = $223; - $53 = $239; - $54 = $255; - $55 = $260; - $60 = $88; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -8|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIyNS_9allocatorIyEEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 536870911; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip6models14arithmetic_bitC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - HEAP32[$3>>2] = 1; - $4 = ((($2)) + 16|0); - HEAP32[$4>>2] = 2; - $5 = ((($2)) + 8|0); - HEAP32[$5>>2] = 4096; - $6 = ((($2)) + 4|0); - HEAP32[$6>>2] = 4; - HEAP32[$2>>2] = 4; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -44|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - $54 = $16; - __ZN6laszip6models10arithmeticD2Ev($54); - } - $55 = $28; - $56 = ((($37)) + 4|0); - HEAP32[$56>>2] = $55; - $14 = $32; - $57 = $14; - $58 = ((($57)) + 8|0); - $13 = $58; - $59 = $13; - $12 = $59; - $60 = $12; - $61 = HEAP32[$32>>2]|0; - $4 = $32; - $62 = $4; - $3 = $62; - $63 = $3; - $64 = ((($63)) + 8|0); - $2 = $64; - $65 = $2; - $1 = $65; - $66 = $1; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$62>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 44)&-1; - $9 = $60; - $10 = $61; - $11 = $72; - $73 = $9; - $74 = $10; - $75 = $11; - $6 = $73; - $7 = $74; - $8 = $75; - $76 = $7; - $5 = $76; - $77 = $5; - __ZdlPv($77); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)!=(0|0); - if ($5) { - $6 = ((($2)) + 8|0); - $7 = HEAP32[$6>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($7); - } - $8 = ((($2)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)!=(0|0); - if ($10) { - $11 = ((($2)) + 12|0); - $12 = HEAP32[$11>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($12); - } - $13 = ((($2)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = ((($2)) + 16|0); - $17 = HEAP32[$16>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($17); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($2)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($4|0)>=($6|0); - if ($7) { - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($2); - } - $8 = ((($2)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($2)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = (($11) + 1)|0; - HEAP32[$10>>2] = $12; - $13 = (($9) + ($11)|0); - $14 = HEAP8[$13>>0]|0; - STACKTOP = sp;return ($14|0); -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP32[$3>>2] = 0; - $4 = HEAP32[$2>>2]|0; - $5 = ((($2)) + 12|0); - $6 = HEAP32[$5>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($4,$6,1048576); - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN6laszip7streams13memory_stream6gcountEv($7)|0); - $9 = ((($2)) + 8|0); - HEAP32[$9>>2] = $8; - $10 = ((($2)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0); - if ($12) { - $13 = (___cxa_allocate_exception(8)|0); - __ZN6laszip11end_of_fileC2Ev($13); - ___cxa_throw(($13|0),(216|0),(40|0)); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function __ZN6laszip7streams13memory_stream6gcountEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip11end_of_fileC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5363); - HEAP32[$2>>2] = (1888); - STACKTOP = sp;return; -} -function __ZN6laszip11end_of_fileD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip11end_of_fileD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11end_of_fileD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticC2EjbPj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = $0; - $5 = $1; - $11 = $2&1; - $6 = $11; - $7 = $3; - $12 = $4; - $13 = $5; - HEAP32[$12>>2] = $13; - $14 = ((($12)) + 4|0); - $15 = $6; - $16 = $15&1; - $17 = $16&1; - HEAP8[$14>>0] = $17; - $18 = ((($12)) + 8|0); - HEAP32[$18>>2] = 0; - $19 = ((($12)) + 12|0); - HEAP32[$19>>2] = 0; - $20 = ((($12)) + 16|0); - HEAP32[$20>>2] = 0; - $21 = HEAP32[$12>>2]|0; - $22 = ($21>>>0)<(2); - if ($22) { - $25 = (___cxa_allocate_exception(8)|0); - __ZNSt13runtime_errorC2EPKc($25,5383); - ___cxa_throw(($25|0),(1368|0),(223|0)); - // unreachable; - } - $23 = HEAP32[$12>>2]|0; - $24 = ($23>>>0)>(2048); - if ($24) { - $25 = (___cxa_allocate_exception(8)|0); - __ZNSt13runtime_errorC2EPKc($25,5383); - ___cxa_throw(($25|0),(1368|0),(223|0)); - // unreachable; - } - $26 = HEAP32[$12>>2]|0; - $27 = (($26) - 1)|0; - $28 = ((($12)) + 32|0); - HEAP32[$28>>2] = $27; - $29 = ((($12)) + 4|0); - $30 = HEAP8[$29>>0]|0; - $31 = $30&1; - if ($31) { - label = 10; - } else { - $32 = HEAP32[$12>>2]|0; - $33 = ($32>>>0)>(16); - if ($33) { - $8 = 3; - while(1) { - $34 = HEAP32[$12>>2]|0; - $35 = $8; - $36 = (($35) + 2)|0; - $37 = 1 << $36; - $38 = ($34>>>0)>($37>>>0); - $39 = $8; - if (!($38)) { - break; - } - $40 = (($39) + 1)|0; - $8 = $40; - } - $41 = 1 << $39; - $42 = ((($12)) + 36|0); - HEAP32[$42>>2] = $41; - $43 = $8; - $44 = (15 - ($43))|0; - $45 = ((($12)) + 40|0); - HEAP32[$45>>2] = $44; - $46 = ((($12)) + 36|0); - $47 = HEAP32[$46>>2]|0; - $48 = (($47) + 2)|0; - $49 = $48<<2; - $50 = (__ZN6laszip5utilsL14aligned_mallocEi($49)|0); - $51 = ((($12)) + 16|0); - HEAP32[$51>>2] = $50; - } else { - label = 10; - } - } - if ((label|0) == 10) { - $52 = ((($12)) + 16|0); - HEAP32[$52>>2] = 0; - $53 = ((($12)) + 40|0); - HEAP32[$53>>2] = 0; - $54 = ((($12)) + 36|0); - HEAP32[$54>>2] = 0; - } - $55 = HEAP32[$12>>2]|0; - $56 = $55<<2; - $57 = (__ZN6laszip5utilsL14aligned_mallocEi($56)|0); - $58 = ((($12)) + 8|0); - HEAP32[$58>>2] = $57; - $59 = HEAP32[$12>>2]|0; - $60 = $59<<2; - $61 = (__ZN6laszip5utilsL14aligned_mallocEi($60)|0); - $62 = ((($12)) + 12|0); - HEAP32[$62>>2] = $61; - $63 = ((($12)) + 20|0); - HEAP32[$63>>2] = 0; - $64 = HEAP32[$12>>2]|0; - $65 = ((($12)) + 24|0); - HEAP32[$65>>2] = $64; - $66 = $7; - $67 = ($66|0)!=(0|0); - if ($67) { - $9 = 0; - while(1) { - $68 = $9; - $69 = HEAP32[$12>>2]|0; - $70 = ($68>>>0)<($69>>>0); - if (!($70)) { - break; - } - $71 = $7; - $72 = $9; - $73 = (($71) + ($72<<2)|0); - $74 = HEAP32[$73>>2]|0; - $75 = ((($12)) + 12|0); - $76 = HEAP32[$75>>2]|0; - $77 = $9; - $78 = (($76) + ($77<<2)|0); - HEAP32[$78>>2] = $74; - $79 = $9; - $80 = (($79) + 1)|0; - $9 = $80; - } - __ZN6laszip6models10arithmetic6updateEv($12); - $90 = HEAP32[$12>>2]|0; - $91 = (($90) + 6)|0; - $92 = $91 >>> 1; - $93 = ((($12)) + 24|0); - HEAP32[$93>>2] = $92; - $94 = ((($12)) + 28|0); - HEAP32[$94>>2] = $92; - STACKTOP = sp;return; - } else { - $10 = 0; - while(1) { - $81 = $10; - $82 = HEAP32[$12>>2]|0; - $83 = ($81>>>0)<($82>>>0); - if (!($83)) { - break; - } - $84 = ((($12)) + 12|0); - $85 = HEAP32[$84>>2]|0; - $86 = $10; - $87 = (($85) + ($86<<2)|0); - HEAP32[$87>>2] = 1; - $88 = $10; - $89 = (($88) + 1)|0; - $10 = $89; - } - __ZN6laszip6models10arithmetic6updateEv($12); - $90 = HEAP32[$12>>2]|0; - $91 = (($90) + 6)|0; - $92 = $91 >>> 1; - $93 = ((($12)) + 24|0); - HEAP32[$93>>2] = $92; - $94 = ((($12)) + 28|0); - HEAP32[$94>>2] = $92; - STACKTOP = sp;return; - } -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 44)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 44)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 44)&-1; - $107 = $45; - __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEEC2EjjS6_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - __ZN6laszip6models10arithmeticC2EOS1_($122,$124); - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 44|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($47,$46); - __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticC2EOS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($4)) + 4|0); - $8 = $3; - $9 = ((($8)) + 4|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&1; - $12 = $11&1; - HEAP8[$7>>0] = $12; - $13 = ((($4)) + 8|0); - $14 = $3; - $15 = ((($14)) + 8|0); - $16 = HEAP32[$15>>2]|0; - HEAP32[$13>>2] = $16; - $17 = ((($4)) + 12|0); - $18 = $3; - $19 = ((($18)) + 12|0); - $20 = HEAP32[$19>>2]|0; - HEAP32[$17>>2] = $20; - $21 = ((($4)) + 16|0); - $22 = $3; - $23 = ((($22)) + 16|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$21>>2] = $24; - $25 = ((($4)) + 20|0); - $26 = $3; - $27 = ((($26)) + 20|0); - $28 = HEAP32[$27>>2]|0; - HEAP32[$25>>2] = $28; - $29 = ((($4)) + 24|0); - $30 = $3; - $31 = ((($30)) + 24|0); - $32 = HEAP32[$31>>2]|0; - HEAP32[$29>>2] = $32; - $33 = ((($4)) + 28|0); - $34 = $3; - $35 = ((($34)) + 28|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$33>>2] = $36; - $37 = ((($4)) + 32|0); - $38 = $3; - $39 = ((($38)) + 32|0); - $40 = HEAP32[$39>>2]|0; - HEAP32[$37>>2] = $40; - $41 = ((($4)) + 36|0); - $42 = $3; - $43 = ((($42)) + 36|0); - $44 = HEAP32[$43>>2]|0; - HEAP32[$41>>2] = $44; - $45 = ((($4)) + 40|0); - $46 = $3; - $47 = ((($46)) + 40|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$45>>2] = $48; - $49 = $3; - $50 = ((($49)) + 12|0); - HEAP32[$50>>2] = 0; - $51 = $3; - $52 = ((($51)) + 16|0); - HEAP32[$52>>2] = 0; - $53 = $3; - $54 = ((($53)) + 8|0); - HEAP32[$54>>2] = 0; - $55 = $3; - $56 = ((($55)) + 12|0); - HEAP32[$56>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEEC2EjjS6_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(97612893); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*44)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*44)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*44)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $15 = sp; - $20 = sp + 404|0; - $31 = sp + 292|0; - $37 = sp + 268|0; - $49 = sp + 220|0; - $102 = $0; - $103 = $1; - $104 = $102; - $101 = $104; - $105 = $101; - $100 = $105; - $106 = $100; - $107 = HEAP32[$106>>2]|0; - $99 = $107; - $108 = $99; - $78 = $105; - $109 = $78; - $110 = HEAP32[$109>>2]|0; - $77 = $110; - $111 = $77; - $83 = $105; - $112 = $83; - $82 = $112; - $113 = $82; - $81 = $113; - $114 = $81; - $115 = ((($114)) + 8|0); - $80 = $115; - $116 = $80; - $79 = $116; - $117 = $79; - $118 = HEAP32[$117>>2]|0; - $119 = HEAP32[$113>>2]|0; - $120 = $118; - $121 = $119; - $122 = (($120) - ($121))|0; - $123 = (($122|0) / 44)&-1; - $124 = (($111) + (($123*44)|0)|0); - $85 = $105; - $125 = $85; - $126 = HEAP32[$125>>2]|0; - $84 = $126; - $127 = $84; - $86 = $105; - $128 = $86; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 44)&-1; - $136 = (($127) + (($135*44)|0)|0); - $88 = $105; - $137 = $88; - $138 = HEAP32[$137>>2]|0; - $87 = $138; - $139 = $87; - $93 = $105; - $140 = $93; - $92 = $140; - $141 = $92; - $91 = $141; - $142 = $91; - $143 = ((($142)) + 8|0); - $90 = $143; - $144 = $90; - $89 = $144; - $145 = $89; - $146 = HEAP32[$145>>2]|0; - $147 = HEAP32[$141>>2]|0; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 44)&-1; - $152 = (($139) + (($151*44)|0)|0); - $94 = $105; - $95 = $108; - $96 = $124; - $97 = $136; - $98 = $152; - $4 = $104; - $153 = $4; - $154 = ((($153)) + 8|0); - $3 = $154; - $155 = $3; - $2 = $155; - $156 = $2; - $157 = HEAP32[$104>>2]|0; - $158 = ((($104)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = $103; - $161 = ((($160)) + 4|0); - $22 = $156; - $23 = $157; - $24 = $159; - $25 = $161; - while(1) { - $162 = $24; - $163 = $23; - $164 = ($162|0)!=($163|0); - if (!($164)) { - break; - } - $165 = $22; - $166 = $25; - $167 = HEAP32[$166>>2]|0; - $168 = ((($167)) + -44|0); - $21 = $168; - $169 = $21; - $170 = $24; - $171 = ((($170)) + -44|0); - $24 = $171; - $6 = $171; - $172 = $6; - $5 = $172; - $173 = $5; - $17 = $165; - $18 = $169; - $19 = $173; - $174 = $17; - $175 = $18; - $176 = $19; - $16 = $176; - $177 = $16; - ;HEAP8[$15>>0]=HEAP8[$20>>0]|0; - $12 = $174; - $13 = $175; - $14 = $177; - $178 = $12; - $179 = $13; - $180 = $14; - $11 = $180; - $181 = $11; - $8 = $178; - $9 = $179; - $10 = $181; - $182 = $9; - $183 = $10; - $7 = $183; - $184 = $7; - __ZN6laszip6models10arithmeticC2ERKS1_($182,$184); - $185 = $25; - $186 = HEAP32[$185>>2]|0; - $187 = ((($186)) + -44|0); - HEAP32[$185>>2] = $187; - } - $188 = $103; - $189 = ((($188)) + 4|0); - $29 = $104; - $30 = $189; - $190 = $29; - $28 = $190; - $191 = $28; - $192 = HEAP32[$191>>2]|0; - HEAP32[$31>>2] = $192; - $193 = $30; - $26 = $193; - $194 = $26; - $195 = HEAP32[$194>>2]|0; - $196 = $29; - HEAP32[$196>>2] = $195; - $27 = $31; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = $30; - HEAP32[$199>>2] = $198; - $200 = ((($104)) + 4|0); - $201 = $103; - $202 = ((($201)) + 8|0); - $35 = $200; - $36 = $202; - $203 = $35; - $34 = $203; - $204 = $34; - $205 = HEAP32[$204>>2]|0; - HEAP32[$37>>2] = $205; - $206 = $36; - $32 = $206; - $207 = $32; - $208 = HEAP32[$207>>2]|0; - $209 = $35; - HEAP32[$209>>2] = $208; - $33 = $37; - $210 = $33; - $211 = HEAP32[$210>>2]|0; - $212 = $36; - HEAP32[$212>>2] = $211; - $40 = $104; - $213 = $40; - $214 = ((($213)) + 8|0); - $39 = $214; - $215 = $39; - $38 = $215; - $216 = $38; - $217 = $103; - $43 = $217; - $218 = $43; - $219 = ((($218)) + 12|0); - $42 = $219; - $220 = $42; - $41 = $220; - $221 = $41; - $47 = $216; - $48 = $221; - $222 = $47; - $46 = $222; - $223 = $46; - $224 = HEAP32[$223>>2]|0; - HEAP32[$49>>2] = $224; - $225 = $48; - $44 = $225; - $226 = $44; - $227 = HEAP32[$226>>2]|0; - $228 = $47; - HEAP32[$228>>2] = $227; - $45 = $49; - $229 = $45; - $230 = HEAP32[$229>>2]|0; - $231 = $48; - HEAP32[$231>>2] = $230; - $232 = $103; - $233 = ((($232)) + 4|0); - $234 = HEAP32[$233>>2]|0; - $235 = $103; - HEAP32[$235>>2] = $234; - $50 = $104; - $236 = $50; - $237 = ((($236)) + 4|0); - $238 = HEAP32[$237>>2]|0; - $239 = HEAP32[$236>>2]|0; - $240 = $238; - $241 = $239; - $242 = (($240) - ($241))|0; - $243 = (($242|0) / 44)&-1; - $74 = $104; - $75 = $243; - $244 = $74; - $73 = $244; - $245 = $73; - $246 = HEAP32[$245>>2]|0; - $72 = $246; - $247 = $72; - $52 = $244; - $248 = $52; - $249 = HEAP32[$248>>2]|0; - $51 = $249; - $250 = $51; - $57 = $244; - $251 = $57; - $56 = $251; - $252 = $56; - $55 = $252; - $253 = $55; - $254 = ((($253)) + 8|0); - $54 = $254; - $255 = $54; - $53 = $255; - $256 = $53; - $257 = HEAP32[$256>>2]|0; - $258 = HEAP32[$252>>2]|0; - $259 = $257; - $260 = $258; - $261 = (($259) - ($260))|0; - $262 = (($261|0) / 44)&-1; - $263 = (($250) + (($262*44)|0)|0); - $59 = $244; - $264 = $59; - $265 = HEAP32[$264>>2]|0; - $58 = $265; - $266 = $58; - $64 = $244; - $267 = $64; - $63 = $267; - $268 = $63; - $62 = $268; - $269 = $62; - $270 = ((($269)) + 8|0); - $61 = $270; - $271 = $61; - $60 = $271; - $272 = $60; - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$268>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 44)&-1; - $279 = (($266) + (($278*44)|0)|0); - $66 = $244; - $280 = $66; - $281 = HEAP32[$280>>2]|0; - $65 = $281; - $282 = $65; - $283 = $75; - $284 = (($282) + (($283*44)|0)|0); - $67 = $244; - $68 = $247; - $69 = $263; - $70 = $279; - $71 = $284; - $76 = $104; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -44|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZN6laszip6models10arithmeticD2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 44)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 97612893; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip6models10arithmeticC2ERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $32 = $0; - $33 = $1; - $35 = $32; - $36 = $33; - $37 = HEAP32[$36>>2]|0; - HEAP32[$35>>2] = $37; - $38 = ((($35)) + 4|0); - $39 = $33; - $40 = ((($39)) + 4|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&1; - $43 = $42&1; - HEAP8[$38>>0] = $43; - $44 = ((($35)) + 20|0); - $45 = $33; - $46 = ((($45)) + 20|0); - $47 = HEAP32[$46>>2]|0; - HEAP32[$44>>2] = $47; - $48 = ((($35)) + 24|0); - $49 = $33; - $50 = ((($49)) + 24|0); - $51 = HEAP32[$50>>2]|0; - HEAP32[$48>>2] = $51; - $52 = ((($35)) + 28|0); - $53 = $33; - $54 = ((($53)) + 28|0); - $55 = HEAP32[$54>>2]|0; - HEAP32[$52>>2] = $55; - $56 = ((($35)) + 32|0); - $57 = $33; - $58 = ((($57)) + 32|0); - $59 = HEAP32[$58>>2]|0; - HEAP32[$56>>2] = $59; - $60 = ((($35)) + 36|0); - $61 = $33; - $62 = ((($61)) + 36|0); - $63 = HEAP32[$62>>2]|0; - HEAP32[$60>>2] = $63; - $64 = ((($35)) + 40|0); - $65 = $33; - $66 = ((($65)) + 40|0); - $67 = HEAP32[$66>>2]|0; - HEAP32[$64>>2] = $67; - $68 = HEAP32[$35>>2]|0; - $69 = $68<<2; - $34 = $69; - $70 = $34; - $71 = (__ZN6laszip5utilsL14aligned_mallocEi($70)|0); - $72 = ((($35)) + 8|0); - HEAP32[$72>>2] = $71; - $73 = $33; - $74 = ((($73)) + 8|0); - $75 = HEAP32[$74>>2]|0; - $76 = $33; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = HEAP32[$35>>2]|0; - $80 = (($78) + ($79<<2)|0); - $81 = ((($35)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $29 = $75; - $30 = $80; - $31 = $82; - $83 = $29; - $28 = $83; - $84 = $28; - $85 = $30; - $22 = $85; - $86 = $22; - $87 = $31; - $23 = $87; - $88 = $23; - $24 = $84; - $25 = $86; - $26 = $88; - $89 = $25; - $90 = $24; - $91 = $89; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 4)&-1; - $27 = $94; - $95 = $27; - $96 = ($95>>>0)>(0); - if ($96) { - $97 = $26; - $98 = $24; - $99 = $27; - $100 = $99<<2; - _memmove(($97|0),($98|0),($100|0))|0; - } - $101 = $34; - $102 = (__ZN6laszip5utilsL14aligned_mallocEi($101)|0); - $103 = ((($35)) + 12|0); - HEAP32[$103>>2] = $102; - $104 = $33; - $105 = ((($104)) + 12|0); - $106 = HEAP32[$105>>2]|0; - $107 = $33; - $108 = ((($107)) + 12|0); - $109 = HEAP32[$108>>2]|0; - $110 = HEAP32[$35>>2]|0; - $111 = (($109) + ($110<<2)|0); - $112 = ((($35)) + 12|0); - $113 = HEAP32[$112>>2]|0; - $9 = $106; - $10 = $111; - $11 = $113; - $114 = $9; - $8 = $114; - $115 = $8; - $116 = $10; - $2 = $116; - $117 = $2; - $118 = $11; - $3 = $118; - $119 = $3; - $4 = $115; - $5 = $117; - $6 = $119; - $120 = $5; - $121 = $4; - $122 = $120; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 4)&-1; - $7 = $125; - $126 = $7; - $127 = ($126>>>0)>(0); - if ($127) { - $128 = $6; - $129 = $4; - $130 = $7; - $131 = $130<<2; - _memmove(($128|0),($129|0),($131|0))|0; - } - $132 = ((($35)) + 36|0); - $133 = HEAP32[$132>>2]|0; - $134 = ($133|0)!=(0); - if (!($134)) { - $172 = ((($35)) + 16|0); - HEAP32[$172>>2] = 0; - STACKTOP = sp;return; - } - $135 = ((($35)) + 36|0); - $136 = HEAP32[$135>>2]|0; - $137 = (($136) + 2)|0; - $138 = $137<<2; - $34 = $138; - $139 = $34; - $140 = (__ZN6laszip5utilsL14aligned_mallocEi($139)|0); - $141 = ((($35)) + 16|0); - HEAP32[$141>>2] = $140; - $142 = $33; - $143 = ((($142)) + 16|0); - $144 = HEAP32[$143>>2]|0; - $145 = $33; - $146 = ((($145)) + 16|0); - $147 = HEAP32[$146>>2]|0; - $148 = ((($35)) + 36|0); - $149 = HEAP32[$148>>2]|0; - $150 = (($149) + 2)|0; - $151 = (($147) + ($150<<2)|0); - $152 = ((($35)) + 16|0); - $153 = HEAP32[$152>>2]|0; - $19 = $144; - $20 = $151; - $21 = $153; - $154 = $19; - $18 = $154; - $155 = $18; - $156 = $20; - $12 = $156; - $157 = $12; - $158 = $21; - $13 = $158; - $159 = $13; - $14 = $155; - $15 = $157; - $16 = $159; - $160 = $15; - $161 = $14; - $162 = $160; - $163 = $161; - $164 = (($162) - ($163))|0; - $165 = (($164|0) / 4)&-1; - $17 = $165; - $166 = $17; - $167 = ($166>>>0)>(0); - if ($167) { - $168 = $16; - $169 = $14; - $170 = $17; - $171 = $170<<2; - _memmove(($168|0),($169|0),($171|0))|0; - } - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmetic6updateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = $0; - $9 = $1; - $10 = ((($9)) + 24|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($9)) + 20|0); - $13 = HEAP32[$12>>2]|0; - $14 = (($13) + ($11))|0; - HEAP32[$12>>2] = $14; - $15 = ($14>>>0)>(32768); - L1: do { - if ($15) { - $16 = ((($9)) + 20|0); - HEAP32[$16>>2] = 0; - $2 = 0; - while(1) { - $17 = $2; - $18 = HEAP32[$9>>2]|0; - $19 = ($17>>>0)<($18>>>0); - if (!($19)) { - break L1; - } - $20 = ((($9)) + 12|0); - $21 = HEAP32[$20>>2]|0; - $22 = $2; - $23 = (($21) + ($22<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (($24) + 1)|0; - $26 = $25 >>> 1; - $27 = ((($9)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = $2; - $30 = (($28) + ($29<<2)|0); - HEAP32[$30>>2] = $26; - $31 = ((($9)) + 20|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + ($26))|0; - HEAP32[$31>>2] = $33; - $34 = $2; - $35 = (($34) + 1)|0; - $2 = $35; - } - } - } while(0); - $4 = 0; - $5 = 0; - $36 = ((($9)) + 20|0); - $37 = HEAP32[$36>>2]|0; - $38 = (2147483648 / ($37>>>0))&-1; - $6 = $38; - $39 = ((($9)) + 4|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40&1; - L7: do { - if ($41) { - label = 7; - } else { - $42 = ((($9)) + 36|0); - $43 = HEAP32[$42>>2]|0; - $44 = ($43|0)==(0); - if ($44) { - label = 7; - } else { - $3 = 0; - while(1) { - $65 = $3; - $66 = HEAP32[$9>>2]|0; - $67 = ($65>>>0)<($66>>>0); - if (!($67)) { - break; - } - $68 = $6; - $69 = $4; - $70 = Math_imul($68, $69)|0; - $71 = $70 >>> 16; - $72 = ((($9)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = $3; - $75 = (($73) + ($74<<2)|0); - HEAP32[$75>>2] = $71; - $76 = ((($9)) + 12|0); - $77 = HEAP32[$76>>2]|0; - $78 = $3; - $79 = (($77) + ($78<<2)|0); - $80 = HEAP32[$79>>2]|0; - $81 = $4; - $82 = (($81) + ($80))|0; - $4 = $82; - $83 = ((($9)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = $3; - $86 = (($84) + ($85<<2)|0); - $87 = HEAP32[$86>>2]|0; - $88 = ((($9)) + 40|0); - $89 = HEAP32[$88>>2]|0; - $90 = $87 >>> $89; - $7 = $90; - while(1) { - $91 = $5; - $92 = $7; - $93 = ($91>>>0)<($92>>>0); - $94 = $3; - if (!($93)) { - break; - } - $95 = (($94) - 1)|0; - $96 = ((($9)) + 16|0); - $97 = HEAP32[$96>>2]|0; - $98 = $5; - $99 = (($98) + 1)|0; - $5 = $99; - $100 = (($97) + ($99<<2)|0); - HEAP32[$100>>2] = $95; - } - $101 = (($94) + 1)|0; - $3 = $101; - } - $102 = ((($9)) + 16|0); - $103 = HEAP32[$102>>2]|0; - HEAP32[$103>>2] = 0; - while(1) { - $104 = $5; - $105 = ((($9)) + 36|0); - $106 = HEAP32[$105>>2]|0; - $107 = ($104>>>0)<=($106>>>0); - if (!($107)) { - break L7; - } - $108 = HEAP32[$9>>2]|0; - $109 = (($108) - 1)|0; - $110 = ((($9)) + 16|0); - $111 = HEAP32[$110>>2]|0; - $112 = $5; - $113 = (($112) + 1)|0; - $5 = $113; - $114 = (($111) + ($113<<2)|0); - HEAP32[$114>>2] = $109; - } - } - } - } while(0); - L21: do { - if ((label|0) == 7) { - $3 = 0; - while(1) { - $45 = $3; - $46 = HEAP32[$9>>2]|0; - $47 = ($45>>>0)<($46>>>0); - if (!($47)) { - break L21; - } - $48 = $6; - $49 = $4; - $50 = Math_imul($48, $49)|0; - $51 = $50 >>> 16; - $52 = ((($9)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = $3; - $55 = (($53) + ($54<<2)|0); - HEAP32[$55>>2] = $51; - $56 = ((($9)) + 12|0); - $57 = HEAP32[$56>>2]|0; - $58 = $3; - $59 = (($57) + ($58<<2)|0); - $60 = HEAP32[$59>>2]|0; - $61 = $4; - $62 = (($61) + ($60))|0; - $4 = $62; - $63 = $3; - $64 = (($63) + 1)|0; - $3 = $64; - } - } - } while(0); - $115 = ((($9)) + 24|0); - $116 = HEAP32[$115>>2]|0; - $117 = ($116*5)|0; - $118 = $117 >>> 2; - $119 = ((($9)) + 24|0); - HEAP32[$119>>2] = $118; - $120 = HEAP32[$9>>2]|0; - $121 = (($120) + 6)|0; - $122 = $121 << 3; - $8 = $122; - $123 = ((($9)) + 24|0); - $124 = HEAP32[$123>>2]|0; - $125 = $8; - $126 = ($124>>>0)>($125>>>0); - if (!($126)) { - $129 = ((($9)) + 24|0); - $130 = HEAP32[$129>>2]|0; - $131 = ((($9)) + 28|0); - HEAP32[$131>>2] = $130; - STACKTOP = sp;return; - } - $127 = $8; - $128 = ((($9)) + 24|0); - HEAP32[$128>>2] = $127; - $129 = ((($9)) + 24|0); - $130 = HEAP32[$129>>2]|0; - $131 = ((($9)) + 28|0); - HEAP32[$131>>2] = $130; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS_6models10arithmeticEEEiRT_RT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = $0; - $8 = $1; - $9 = $2; - $13 = $7; - $14 = $8; - $15 = $9; - $16 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($14,$15)|0); - HEAP32[$13>>2] = $16; - $17 = HEAP32[$13>>2]|0; - $18 = ($17|0)!=(0); - if (!($18)) { - $69 = $8; - $70 = ((($13)) + 48|0); - $71 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9decodeBitINS_6models14arithmetic_bitEEEjRT_($69,$70)|0); - $10 = $71; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $19 = HEAP32[$13>>2]|0; - $20 = ($19>>>0)<(32); - if (!($20)) { - $67 = ((($13)) + 28|0); - $68 = HEAP32[$67>>2]|0; - $10 = $68; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $21 = HEAP32[$13>>2]|0; - $22 = ((($13)) + 12|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($21>>>0)<=($23>>>0); - if ($24) { - $25 = $8; - $26 = ((($13)) + 68|0); - $27 = HEAP32[$13>>2]|0; - $28 = (($27) - 1)|0; - $5 = $26; - $6 = $28; - $29 = $5; - $30 = HEAP32[$29>>2]|0; - $31 = $6; - $32 = (($30) + (($31*44)|0)|0); - $33 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($25,$32)|0); - $10 = $33; - } else { - $34 = HEAP32[$13>>2]|0; - $35 = ((($13)) + 12|0); - $36 = HEAP32[$35>>2]|0; - $37 = (($34) - ($36))|0; - $11 = $37; - $38 = $8; - $39 = ((($13)) + 68|0); - $40 = HEAP32[$13>>2]|0; - $41 = (($40) - 1)|0; - $3 = $39; - $4 = $41; - $42 = $3; - $43 = HEAP32[$42>>2]|0; - $44 = $4; - $45 = (($43) + (($44*44)|0)|0); - $46 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($38,$45)|0); - $10 = $46; - $47 = $8; - $48 = $11; - $49 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($47,$48)|0); - $12 = $49; - $50 = $10; - $51 = $11; - $52 = $50 << $51; - $53 = $12; - $54 = $52 | $53; - $10 = $54; - } - $55 = $10; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) - 1)|0; - $58 = 1 << $57; - $59 = ($55|0)>=($58|0); - if ($59) { - $60 = $10; - $61 = (($60) + 1)|0; - $10 = $61; - $72 = $10; - STACKTOP = sp;return ($72|0); - } else { - $62 = HEAP32[$13>>2]|0; - $63 = 1 << $62; - $64 = (($63) - 1)|0; - $65 = $10; - $66 = (($65) - ($64))|0; - $10 = $66; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - return (0)|0; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $2 = $0; - $3 = $1; - $13 = $2; - $14 = ((($13)) + 8|0); - $15 = HEAP32[$14>>2]|0; - $7 = $15; - $16 = $3; - $17 = ((($16)) + 16|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = ((($13)) + 4|0); - $21 = HEAP32[$20>>2]|0; - $22 = ((($13)) + 8|0); - $23 = HEAP32[$22>>2]|0; - $24 = $23 >>> 15; - HEAP32[$22>>2] = $24; - $25 = (($21>>>0) / ($24>>>0))&-1; - $8 = $25; - $26 = $8; - $27 = $3; - $28 = ((($27)) + 40|0); - $29 = HEAP32[$28>>2]|0; - $30 = $26 >>> $29; - $9 = $30; - $31 = $3; - $32 = ((($31)) + 16|0); - $33 = HEAP32[$32>>2]|0; - $34 = $9; - $35 = (($33) + ($34<<2)|0); - $36 = HEAP32[$35>>2]|0; - $5 = $36; - $37 = $3; - $38 = ((($37)) + 16|0); - $39 = HEAP32[$38>>2]|0; - $40 = $9; - $41 = (($40) + 1)|0; - $42 = (($39) + ($41<<2)|0); - $43 = HEAP32[$42>>2]|0; - $44 = (($43) + 1)|0; - $4 = $44; - while(1) { - $45 = $4; - $46 = $5; - $47 = (($46) + 1)|0; - $48 = ($45>>>0)>($47>>>0); - if (!($48)) { - break; - } - $49 = $5; - $50 = $4; - $51 = (($49) + ($50))|0; - $52 = $51 >>> 1; - $10 = $52; - $53 = $3; - $54 = ((($53)) + 8|0); - $55 = HEAP32[$54>>2]|0; - $56 = $10; - $57 = (($55) + ($56<<2)|0); - $58 = HEAP32[$57>>2]|0; - $59 = $8; - $60 = ($58>>>0)>($59>>>0); - $61 = $10; - if ($60) { - $4 = $61; - } else { - $5 = $61; - } - } - $62 = $3; - $63 = ((($62)) + 8|0); - $64 = HEAP32[$63>>2]|0; - $65 = $5; - $66 = (($64) + ($65<<2)|0); - $67 = HEAP32[$66>>2]|0; - $68 = ((($13)) + 8|0); - $69 = HEAP32[$68>>2]|0; - $70 = Math_imul($67, $69)|0; - $6 = $70; - $71 = $5; - $72 = $3; - $73 = ((($72)) + 32|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71|0)!=($74|0); - if ($75) { - $76 = $3; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = $5; - $80 = (($79) + 1)|0; - $81 = (($78) + ($80<<2)|0); - $82 = HEAP32[$81>>2]|0; - $83 = ((($13)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = Math_imul($82, $84)|0; - $7 = $85; - } - } else { - $5 = 0; - $6 = 0; - $86 = ((($13)) + 8|0); - $87 = HEAP32[$86>>2]|0; - $88 = $87 >>> 15; - HEAP32[$86>>2] = $88; - $89 = $3; - $90 = HEAP32[$89>>2]|0; - $4 = $90; - $91 = $90 >>> 1; - $11 = $91; - while(1) { - $92 = ((($13)) + 8|0); - $93 = HEAP32[$92>>2]|0; - $94 = $3; - $95 = ((($94)) + 8|0); - $96 = HEAP32[$95>>2]|0; - $97 = $11; - $98 = (($96) + ($97<<2)|0); - $99 = HEAP32[$98>>2]|0; - $100 = Math_imul($93, $99)|0; - $12 = $100; - $101 = $12; - $102 = ((($13)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = ($101>>>0)>($103>>>0); - $105 = $11; - if ($104) { - $4 = $105; - $106 = $12; - $7 = $106; - } else { - $5 = $105; - $107 = $12; - $6 = $107; - } - $108 = $5; - $109 = $4; - $110 = (($108) + ($109))|0; - $111 = $110 >>> 1; - $11 = $111; - $112 = $5; - $113 = ($111|0)!=($112|0); - if (!($113)) { - break; - } - } - } - $114 = $6; - $115 = ((($13)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = (($116) - ($114))|0; - HEAP32[$115>>2] = $117; - $118 = $7; - $119 = $6; - $120 = (($118) - ($119))|0; - $121 = ((($13)) + 8|0); - HEAP32[$121>>2] = $120; - $122 = ((($13)) + 8|0); - $123 = HEAP32[$122>>2]|0; - $124 = ($123>>>0)<(16777216); - if ($124) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($13); - } - $125 = $3; - $126 = ((($125)) + 12|0); - $127 = HEAP32[$126>>2]|0; - $128 = $5; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $131 = (($130) + 1)|0; - HEAP32[$129>>2] = $131; - $132 = $3; - $133 = ((($132)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = (($134) + -1)|0; - HEAP32[$133>>2] = $135; - $136 = ($135|0)==(0); - if (!($136)) { - $138 = $5; - STACKTOP = sp;return ($138|0); - } - $137 = $3; - __ZN6laszip6models10arithmetic6updateEv($137); - $138 = $5; - STACKTOP = sp;return ($138|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = $0; - $4 = $1; - $8 = $3; - $9 = $4; - $10 = ($9|0)!=(0); - $11 = $4; - $12 = ($11>>>0)<=(32); - $or$cond = $10 & $12; - if (!($or$cond)) { - ___assert_fail((5409|0),(5430|0),139,(5499|0)); - // unreachable; - } - $13 = $4; - $14 = ($13>>>0)>(19); - if ($14) { - $15 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($8)|0); - $16 = $15&65535; - $5 = $16; - $17 = $4; - $18 = (($17) - 16)|0; - $4 = $18; - $19 = $4; - $20 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($8,$19)|0); - $21 = $20 << 16; - $6 = $21; - $22 = $6; - $23 = $5; - $24 = $22 | $23; - $2 = $24; - $43 = $2; - STACKTOP = sp;return ($43|0); - } - $25 = ((($8)) + 4|0); - $26 = HEAP32[$25>>2]|0; - $27 = $4; - $28 = ((($8)) + 8|0); - $29 = HEAP32[$28>>2]|0; - $30 = $29 >>> $27; - HEAP32[$28>>2] = $30; - $31 = (($26>>>0) / ($30>>>0))&-1; - $7 = $31; - $32 = ((($8)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = $7; - $35 = Math_imul($33, $34)|0; - $36 = ((($8)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = (($37) - ($35))|0; - HEAP32[$36>>2] = $38; - $39 = ((($8)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40>>>0)<(16777216); - if ($41) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($8); - } - $42 = $7; - $2 = $42; - $43 = $2; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9decodeBitINS_6models14arithmetic_bitEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $2; - $7 = $3; - $8 = ((($7)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($6)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $11 >>> 13; - $13 = Math_imul($9, $12)|0; - $4 = $13; - $14 = ((($6)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $4; - $17 = ($15>>>0)>=($16>>>0); - $18 = $17&1; - $5 = $18; - $19 = $5; - $20 = ($19|0)==(0); - $21 = $4; - if ($20) { - $22 = ((($6)) + 8|0); - HEAP32[$22>>2] = $21; - $23 = $3; - $24 = ((($23)) + 12|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } else { - $27 = ((($6)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = (($28) - ($21))|0; - HEAP32[$27>>2] = $29; - $30 = $4; - $31 = ((($6)) + 8|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) - ($30))|0; - HEAP32[$31>>2] = $33; - } - $34 = ((($6)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = ($35>>>0)<(16777216); - if ($36) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($6); - } - $37 = $3; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($39) + -1)|0; - HEAP32[$38>>2] = $40; - $41 = ($40|0)==(0); - if (!($41)) { - $43 = $5; - STACKTOP = sp;return ($43|0); - } - $42 = $3; - __ZN6laszip6models14arithmetic_bit6updateEv($42); - $43 = $5; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - while(1) { - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = $4 << 8; - $6 = HEAP32[$2>>2]|0; - $7 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($6)|0); - $8 = $7&255; - $9 = $5 | $8; - $10 = ((($2)) + 4|0); - HEAP32[$10>>2] = $9; - $11 = ((($2)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = $12 << 8; - HEAP32[$11>>2] = $13; - $14 = ($13>>>0)<(16777216); - if (!($14)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($3)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >>> 16; - HEAP32[$6>>2] = $8; - $9 = (($5>>>0) / ($8>>>0))&-1; - $2 = $9; - $10 = ((($3)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $2; - $13 = Math_imul($11, $12)|0; - $14 = ((($3)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) - ($13))|0; - HEAP32[$14>>2] = $16; - $17 = ((($3)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18>>>0)<(16777216); - if ($19) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($3); - } - $20 = $2; - $21 = ($20>>>0)<(65536); - if ($21) { - $22 = $2; - $23 = $22&65535; - STACKTOP = sp;return ($23|0); - } else { - ___assert_fail((5508|0),(5430|0),172,(5522|0)); - // unreachable; - } - return (0)|0; -} -function __ZN6laszip6models14arithmetic_bit6updateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = HEAP32[$3>>2]|0; - $5 = ((($3)) + 16|0); - $6 = HEAP32[$5>>2]|0; - $7 = (($6) + ($4))|0; - HEAP32[$5>>2] = $7; - $8 = ($7>>>0)>(8192); - if ($8) { - $9 = ((($3)) + 16|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($10) + 1)|0; - $12 = $11 >>> 1; - $13 = ((($3)) + 16|0); - HEAP32[$13>>2] = $12; - $14 = ((($3)) + 12|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) + 1)|0; - $17 = $16 >>> 1; - $18 = ((($3)) + 12|0); - HEAP32[$18>>2] = $17; - $19 = ((($3)) + 12|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($3)) + 16|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $24 = ((($3)) + 16|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } - } - $27 = ((($3)) + 16|0); - $28 = HEAP32[$27>>2]|0; - $29 = (2147483648 / ($28>>>0))&-1; - $2 = $29; - $30 = ((($3)) + 12|0); - $31 = HEAP32[$30>>2]|0; - $32 = $2; - $33 = Math_imul($31, $32)|0; - $34 = $33 >>> 18; - $35 = ((($3)) + 8|0); - HEAP32[$35>>2] = $34; - $36 = HEAP32[$3>>2]|0; - $37 = ($36*5)|0; - $38 = $37 >>> 2; - HEAP32[$3>>2] = $38; - $39 = HEAP32[$3>>2]|0; - $40 = ($39>>>0)>(64); - if (!($40)) { - $41 = HEAP32[$3>>2]|0; - $42 = ((($3)) + 4|0); - HEAP32[$42>>2] = $41; - STACKTOP = sp;return; - } - HEAP32[$3>>2] = 64; - $41 = HEAP32[$3>>2]|0; - $42 = ((($3)) + 4|0); - HEAP32[$42>>2] = $41; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE9readPointEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0); - $$byval_copy = sp + 356|0; - $7 = sp + 332|0; - $13 = sp + 308|0; - $21 = sp + 272|0; - $28 = sp + 240|0; - $34 = sp + 216|0; - $39 = sp + 192|0; - $40 = sp + 184|0; - $46 = sp + 160|0; - $52 = sp + 136|0; - $57 = sp + 112|0; - $63 = sp + 88|0; - $69 = sp + 64|0; - $74 = sp + 40|0; - $82 = sp; - $80 = $0; - $81 = $1; - $83 = $80; - $84 = ((($83)) + 328|0); - $85 = ((($84)) + 8|0); - $86 = $85; - $87 = $86; - $88 = HEAP32[$87>>2]|0; - $89 = (($86) + 4)|0; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = ((($83)) + 247|0); - $93 = ((($92)) + 12|0); - $94 = HEAPU8[$93>>0]|(HEAPU8[$93+1>>0]<<8)|(HEAPU8[$93+2>>0]<<16)|(HEAPU8[$93+3>>0]<<24); - $95 = ($88|0)==($94|0); - $96 = ($91|0)==(0); - $97 = $95 & $96; - if (!($97)) { - $98 = ((($83)) + 320|0); - $79 = $98; - $99 = $79; - $78 = $99; - $100 = $78; - $101 = HEAP32[$100>>2]|0; - $102 = ($101|0)!=(0|0); - if ($102) { - $103 = ((($83)) + 312|0); - $77 = $103; - $104 = $77; - $76 = $104; - $105 = $76; - $106 = HEAP32[$105>>2]|0; - $107 = ($106|0)!=(0|0); - if ($107) { - $258 = ((($83)) + 320|0); - $75 = $258; - $259 = $75; - $260 = HEAP32[$259>>2]|0; - $261 = HEAP32[$260>>2]|0; - $262 = HEAP32[$261>>2]|0; - $263 = $81; - (FUNCTION_TABLE_iii[$262 & 255]($260,$263)|0); - $264 = ((($83)) + 328|0); - $265 = ((($264)) + 8|0); - $266 = $265; - $267 = $266; - $268 = HEAP32[$267>>2]|0; - $269 = (($266) + 4)|0; - $270 = $269; - $271 = HEAP32[$270>>2]|0; - $272 = (_i64Add(($268|0),($271|0),1,0)|0); - $273 = tempRet0; - $274 = $265; - $275 = $274; - HEAP32[$275>>2] = $272; - $276 = (($274) + 4)|0; - $277 = $276; - HEAP32[$277>>2] = $273; - STACKTOP = sp;return; - } - } - } - $108 = ((($83)) + 320|0); - $73 = $108; - $109 = $73; - $72 = $74; - $110 = $72; - HEAP32[$110>>2] = 0; - $111 = ((($110)) + 4|0); - HEAP32[$111>>2] = 0; - $70 = $74; - $71 = $109; - $112 = $70; - $113 = $71; - $67 = $112; - $68 = $113; - $114 = $67; - $66 = $114; - $115 = $66; - $116 = HEAP32[$115>>2]|0; - HEAP32[$69>>2] = $116; - $117 = $68; - $64 = $117; - $118 = $64; - $119 = HEAP32[$118>>2]|0; - $120 = $67; - HEAP32[$120>>2] = $119; - $65 = $69; - $121 = $65; - $122 = HEAP32[$121>>2]|0; - $123 = $68; - HEAP32[$123>>2] = $122; - $124 = ((($112)) + 4|0); - $125 = $71; - $126 = ((($125)) + 4|0); - $61 = $124; - $62 = $126; - $127 = $61; - $60 = $127; - $128 = $60; - $129 = HEAP32[$128>>2]|0; - HEAP32[$63>>2] = $129; - $130 = $62; - $58 = $130; - $131 = $58; - $132 = HEAP32[$131>>2]|0; - $133 = $61; - HEAP32[$133>>2] = $132; - $59 = $63; - $134 = $59; - $135 = HEAP32[$134>>2]|0; - $136 = $62; - HEAP32[$136>>2] = $135; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($74); - $137 = ((($83)) + 312|0); - $56 = $137; - $138 = $56; - $55 = $57; - $139 = $55; - HEAP32[$139>>2] = 0; - $140 = ((($139)) + 4|0); - HEAP32[$140>>2] = 0; - $53 = $57; - $54 = $138; - $141 = $53; - $142 = $54; - $50 = $141; - $51 = $142; - $143 = $50; - $49 = $143; - $144 = $49; - $145 = HEAP32[$144>>2]|0; - HEAP32[$52>>2] = $145; - $146 = $51; - $47 = $146; - $147 = $47; - $148 = HEAP32[$147>>2]|0; - $149 = $50; - HEAP32[$149>>2] = $148; - $48 = $52; - $150 = $48; - $151 = HEAP32[$150>>2]|0; - $152 = $51; - HEAP32[$152>>2] = $151; - $153 = ((($141)) + 4|0); - $154 = $54; - $155 = ((($154)) + 4|0); - $44 = $153; - $45 = $155; - $156 = $44; - $43 = $156; - $157 = $43; - $158 = HEAP32[$157>>2]|0; - HEAP32[$46>>2] = $158; - $159 = $45; - $41 = $159; - $160 = $41; - $161 = HEAP32[$160>>2]|0; - $162 = $44; - HEAP32[$162>>2] = $161; - $42 = $46; - $163 = $42; - $164 = HEAP32[$163>>2]|0; - $165 = $45; - HEAP32[$165>>2] = $164; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($57); - $166 = ((($83)) + 312|0); - $167 = (__Znwj(12)|0); - $168 = ((($83)) + 4|0); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($167,$168); - $37 = $166; - $38 = $167; - $169 = $37; - $170 = $38; - ;HEAP32[$40>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$40>>2]|0; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEC2IS9_EEPT_NS_9enable_ifIXsr14is_convertibleISD_PS9_EE5valueENSA_5__natEE4typeE($39,$170,$$byval_copy); - $35 = $39; - $36 = $169; - $171 = $35; - $172 = $36; - $32 = $171; - $33 = $172; - $173 = $32; - $31 = $173; - $174 = $31; - $175 = HEAP32[$174>>2]|0; - HEAP32[$34>>2] = $175; - $176 = $33; - $29 = $176; - $177 = $29; - $178 = HEAP32[$177>>2]|0; - $179 = $32; - HEAP32[$179>>2] = $178; - $30 = $34; - $180 = $30; - $181 = HEAP32[$180>>2]|0; - $182 = $33; - HEAP32[$182>>2] = $181; - $183 = ((($171)) + 4|0); - $184 = $36; - $185 = ((($184)) + 4|0); - $26 = $183; - $27 = $185; - $186 = $26; - $25 = $186; - $187 = $25; - $188 = HEAP32[$187>>2]|0; - HEAP32[$28>>2] = $188; - $189 = $27; - $23 = $189; - $190 = $23; - $191 = HEAP32[$190>>2]|0; - $192 = $26; - HEAP32[$192>>2] = $191; - $24 = $28; - $193 = $24; - $194 = HEAP32[$193>>2]|0; - $195 = $27; - HEAP32[$195>>2] = $194; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($39); - $196 = ((($83)) + 312|0); - $22 = $196; - $197 = $22; - $198 = HEAP32[$197>>2]|0; - $199 = ((($83)) + 300|0); - __ZN6laszip7factory18build_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENSt3__210shared_ptrINS_7formats20dynamic_decompressorEEERT_RKNS0_13record_schemaE($82,$198,$199); - $200 = ((($83)) + 320|0); - $19 = $200; - $20 = $82; - $201 = $19; - $202 = $20; - $18 = $202; - $203 = $18; - $16 = $21; - $17 = $203; - $204 = $16; - $205 = $17; - $206 = HEAP32[$205>>2]|0; - HEAP32[$204>>2] = $206; - $207 = ((($204)) + 4|0); - $208 = $17; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - HEAP32[$207>>2] = $210; - $211 = $17; - HEAP32[$211>>2] = 0; - $212 = $17; - $213 = ((($212)) + 4|0); - HEAP32[$213>>2] = 0; - $14 = $21; - $15 = $201; - $214 = $14; - $215 = $15; - $11 = $214; - $12 = $215; - $216 = $11; - $10 = $216; - $217 = $10; - $218 = HEAP32[$217>>2]|0; - HEAP32[$13>>2] = $218; - $219 = $12; - $8 = $219; - $220 = $8; - $221 = HEAP32[$220>>2]|0; - $222 = $11; - HEAP32[$222>>2] = $221; - $9 = $13; - $223 = $9; - $224 = HEAP32[$223>>2]|0; - $225 = $12; - HEAP32[$225>>2] = $224; - $226 = ((($214)) + 4|0); - $227 = $15; - $228 = ((($227)) + 4|0); - $5 = $226; - $6 = $228; - $229 = $5; - $4 = $229; - $230 = $4; - $231 = HEAP32[$230>>2]|0; - HEAP32[$7>>2] = $231; - $232 = $6; - $2 = $232; - $233 = $2; - $234 = HEAP32[$233>>2]|0; - $235 = $5; - HEAP32[$235>>2] = $234; - $3 = $7; - $236 = $3; - $237 = HEAP32[$236>>2]|0; - $238 = $6; - HEAP32[$238>>2] = $237; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($21); - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($82); - $239 = ((($83)) + 328|0); - $240 = $239; - $241 = $240; - $242 = HEAP32[$241>>2]|0; - $243 = (($240) + 4)|0; - $244 = $243; - $245 = HEAP32[$244>>2]|0; - $246 = (_i64Add(($242|0),($245|0),1,0)|0); - $247 = tempRet0; - $248 = $239; - $249 = $248; - HEAP32[$249>>2] = $246; - $250 = (($248) + 4)|0; - $251 = $250; - HEAP32[$251>>2] = $247; - $252 = ((($83)) + 328|0); - $253 = ((($252)) + 8|0); - $254 = $253; - $255 = $254; - HEAP32[$255>>2] = 0; - $256 = (($254) + 4)|0; - $257 = $256; - HEAP32[$257>>2] = 0; - $258 = ((($83)) + 320|0); - $75 = $258; - $259 = $75; - $260 = HEAP32[$259>>2]|0; - $261 = HEAP32[$260>>2]|0; - $262 = HEAP32[$261>>2]|0; - $263 = $81; - (FUNCTION_TABLE_iii[$262 & 255]($260,$263)|0); - $264 = ((($83)) + 328|0); - $265 = ((($264)) + 8|0); - $266 = $265; - $267 = $266; - $268 = HEAP32[$267>>2]|0; - $269 = (($266) + 4)|0; - $270 = $269; - $271 = HEAP32[$270>>2]|0; - $272 = (_i64Add(($268|0),($271|0),1,0)|0); - $273 = tempRet0; - $274 = $265; - $275 = $274; - HEAP32[$275>>2] = $272; - $276 = (($274) + 4)|0; - $277 = $276; - HEAP32[$277>>2] = $273; - STACKTOP = sp;return; -} -function __ZN6laszip7factory18build_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENSt3__210shared_ptrINS_7formats20dynamic_decompressorEEERT_RKNS0_13record_schemaE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $5 = sp; - $15 = sp + 64|0; - $16 = sp + 8|0; - $17 = sp + 4|0; - $11 = $1; - $12 = $2; - $18 = $12; - $19 = (__ZNK6laszip7factory13record_schema6formatEv($18)|0); - $13 = $19; - $20 = $13; - $21 = ($20|0)==(-1); - if ($21) { - $22 = (___cxa_allocate_exception(8)|0); - __ZN6laszip19unknown_schema_typeC2Ev($22); - ___cxa_throw(($22|0),(256|0),(47|0)); - // unreachable; - } - $23 = $12; - $24 = (__ZNK6laszip7factory13record_schema10extrabytesEv($23)|0); - $14 = $24; - $25 = $14; - $26 = ($25|0)!=(0); - if ($26) { - $27 = $11; - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENS0_26dynamic_field_decompressorIT_E3ptrERSB_($15,$27); - $10 = $15; - $28 = $10; - $29 = HEAP32[$28>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7point10EEEvv($29); - $30 = $13; - $31 = ($30|0)==(1); - $32 = $13; - $33 = ($32|0)==(3); - $or$cond = $31 | $33; - if ($or$cond) { - $8 = $15; - $34 = $8; - $35 = HEAP32[$34>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7gpstimeEEEvv($35); - } - $36 = $13; - $37 = ($36|0)==(2); - $38 = $13; - $39 = ($38|0)==(3); - $or$cond3 = $37 | $39; - if ($or$cond3) { - $7 = $15; - $40 = $7; - $41 = HEAP32[$40>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las3rgbEEEvv($41); - } - $6 = $15; - $42 = $6; - $43 = HEAP32[$42>>2]|0; - $44 = $14; - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2Ej($16,$44); - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISE_EEEEEEvRKT_($43,$16); - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($16); - ;HEAP32[$17>>2]=0|0; - ;HEAP8[$5>>0]=HEAP8[$17>>0]|0;HEAP8[$5+1>>0]=HEAP8[$17+1>>0]|0;HEAP8[$5+2>>0]=HEAP8[$17+2>>0]|0;HEAP8[$5+3>>0]=HEAP8[$17+3>>0]|0; - $3 = $0; - $4 = $15; - $45 = $3; - $46 = $4; - $47 = HEAP32[$46>>2]|0; - HEAP32[$45>>2] = $47; - $48 = ((($45)) + 4|0); - $49 = $4; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - HEAP32[$48>>2] = $51; - $52 = $4; - HEAP32[$52>>2] = 0; - $53 = $4; - $54 = ((($53)) + 4|0); - HEAP32[$54>>2] = 0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEED2Ev($15); - STACKTOP = sp;return; - } - $55 = $13; - switch ($55|0) { - case 0: { - $56 = $11; - $57 = (__Znwj(4788)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEEC2Ev($57); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$56,$57); - STACKTOP = sp;return; - break; - } - case 1: { - $58 = $11; - $59 = (__Znwj(5116)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEEC2Ev($59); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$58,$59); - STACKTOP = sp;return; - break; - } - case 2: { - $60 = $11; - $61 = (__Znwj(5104)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($61); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$60,$61); - STACKTOP = sp;return; - break; - } - case 3: { - $62 = $11; - $63 = (__Znwj(5432)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEEC2Ev($63); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$62,$63); - STACKTOP = sp;return; - break; - } - default: { - $9 = $0; - $64 = $9; - HEAP32[$64>>2] = 0; - $65 = ((($64)) + 4|0); - HEAP32[$65>>2] = 0; - STACKTOP = sp;return; - } - } -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEC2IS9_EEPT_NS_9enable_ifIXsr14is_convertibleISD_PS9_EE5valueENSA_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1908); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 248; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory13record_schema6formatEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $15 = $13; - $11 = $15; - $16 = $11; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = HEAP32[$16>>2]|0; - $20 = $18; - $21 = $19; - $22 = (($20) - ($21))|0; - $23 = (($22|0) / 12)&-1; - $14 = $23; - $24 = $14; - $25 = ($24|0)==(0); - if ($25) { - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $26 = (__ZNK6laszip7factory13record_schema10extrabytesEv($15)|0); - $27 = ($26|0)!=(0); - if ($27) { - $28 = $14; - $29 = (($28) + -1)|0; - $14 = $29; - } - $30 = $14; - $31 = ($30|0)==(0); - if (!($31)) { - $9 = $15; - $10 = 0; - $32 = $9; - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($33) + (($34*12)|0)|0); - $36 = (__ZN6laszip7factory11record_item5pointEv()|0); - $37 = (__ZNK6laszip7factory11record_itemneERKS1_($35,$36)|0); - if (!($37)) { - $38 = $14; - $39 = ($38|0)==(1); - if ($39) { - $12 = 0; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $40 = $14; - $41 = ($40|0)==(2); - if ($41) { - $7 = $15; - $8 = 1; - $42 = $7; - $43 = HEAP32[$42>>2]|0; - $44 = $8; - $45 = (($43) + (($44*12)|0)|0); - $46 = (__ZN6laszip7factory11record_item7gpstimeEv()|0); - $47 = (__ZNK6laszip7factory11record_itemeqERKS1_($45,$46)|0); - if ($47) { - $12 = 1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $3 = $15; - $4 = 1; - $48 = $3; - $49 = HEAP32[$48>>2]|0; - $50 = $4; - $51 = (($49) + (($50*12)|0)|0); - $52 = (__ZN6laszip7factory11record_item3rgbEv()|0); - $53 = (__ZNK6laszip7factory11record_itemeqERKS1_($51,$52)|0); - if ($53) { - $12 = 2; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - $54 = $14; - $55 = ($54|0)==(3); - if ($55) { - $1 = $15; - $2 = 1; - $56 = $1; - $57 = HEAP32[$56>>2]|0; - $58 = $2; - $59 = (($57) + (($58*12)|0)|0); - $60 = (__ZN6laszip7factory11record_item7gpstimeEv()|0); - $61 = (__ZNK6laszip7factory11record_itemeqERKS1_($59,$60)|0); - if ($61) { - $5 = $15; - $6 = 2; - $62 = $5; - $63 = HEAP32[$62>>2]|0; - $64 = $6; - $65 = (($63) + (($64*12)|0)|0); - $66 = (__ZN6laszip7factory11record_item3rgbEv()|0); - $67 = (__ZNK6laszip7factory11record_itemeqERKS1_($65,$66)|0); - if ($67) { - $12 = 3; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - } - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); -} -function __ZN6laszip19unknown_schema_typeC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5848); - HEAP32[$2>>2] = (1936); - STACKTOP = sp;return; -} -function __ZN6laszip19unknown_schema_typeD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory13record_schema10extrabytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $2 = sp; - $5 = sp + 124|0; - $8 = sp + 112|0; - $11 = sp + 100|0; - $16 = sp + 80|0; - $22 = sp + 56|0; - $28 = sp + 32|0; - $33 = sp + 8|0; - $32 = $0; - $34 = $32; - $30 = $34; - $35 = $30; - $36 = ((($35)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = HEAP32[$35>>2]|0; - $39 = $37; - $40 = $38; - $41 = (($39) - ($40))|0; - $42 = (($41|0) / 12)&-1; - $43 = ($42|0)!=(0); - if ($43) { - $10 = $34; - $44 = $10; - $9 = $44; - $45 = $9; - $46 = ((($45)) + 4|0); - $47 = HEAP32[$46>>2]|0; - $6 = $45; - $7 = $47; - $48 = $7; - $3 = $5; - $4 = $48; - $49 = $3; - $50 = $4; - HEAP32[$49>>2] = $50; - $51 = HEAP32[$5>>2]|0; - HEAP32[$8>>2] = $51; - $52 = HEAP32[$8>>2]|0; - HEAP32[$11>>2] = $52; - ;HEAP8[$2>>0]=HEAP8[$11>>0]|0;HEAP8[$2+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$2+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$2+3>>0]=HEAP8[$11+3>>0]|0; - $1 = $33; - $53 = $1; - ;HEAP32[$53>>2]=HEAP32[$2>>2]|0; - $54 = ((($53)) + 4|0); - ;HEAP32[$54>>2]=HEAP32[$2>>2]|0; - $17 = $33; - $55 = $17; - $15 = $55; - $56 = $15; - $57 = ((($56)) + 4|0); - ;HEAP32[$16>>2]=HEAP32[$57>>2]|0; - $14 = $16; - $58 = $14; - $59 = HEAP32[$58>>2]|0; - $60 = ((($59)) + -12|0); - HEAP32[$58>>2] = $60; - $13 = $58; - $61 = $13; - $62 = HEAP32[$61>>2]|0; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($64|0)==(0); - if ($65) { - $23 = $33; - $66 = $23; - $21 = $66; - $67 = $21; - $68 = ((($67)) + 4|0); - ;HEAP32[$22>>2]=HEAP32[$68>>2]|0; - $20 = $22; - $69 = $20; - $70 = HEAP32[$69>>2]|0; - $71 = ((($70)) + -12|0); - HEAP32[$69>>2] = $71; - $19 = $69; - $72 = $19; - $73 = HEAP32[$72>>2]|0; - $18 = $73; - $74 = $18; - $75 = ((($74)) + 8|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($76|0)==(2); - if ($77) { - $29 = $33; - $78 = $29; - $27 = $78; - $79 = $27; - $80 = ((($79)) + 4|0); - ;HEAP32[$28>>2]=HEAP32[$80>>2]|0; - $26 = $28; - $81 = $26; - $82 = HEAP32[$81>>2]|0; - $83 = ((($82)) + -12|0); - HEAP32[$81>>2] = $83; - $25 = $81; - $84 = $25; - $85 = HEAP32[$84>>2]|0; - $24 = $85; - $86 = $24; - $87 = ((($86)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $31 = $88; - $89 = $31; - STACKTOP = sp;return ($89|0); - } - } - } - $31 = 0; - $89 = $31; - STACKTOP = sp;return ($89|0); -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENS0_26dynamic_field_decompressorIT_E3ptrERSB_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 8|0; - $3 = sp; - $2 = $1; - $4 = (__Znwj(24)|0); - $5 = $2; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEC2ERS9_($4,$5); - ;HEAP32[$3>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEEC2ISC_EEPT_NS_9enable_ifIXsr14is_convertibleISG_PSC_EE5valueENSD_5__natEE4typeE($0,$4,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7point10EEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(4792)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7gpstimeEEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(336)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las3rgbEEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(324)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISE_EEEEEEvRKT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $$byval_copy = sp + 140|0; - $17 = sp; - $22 = sp + 145|0; - $33 = sp + 144|0; - $36 = sp + 8|0; - $37 = sp + 4|0; - $34 = $0; - $35 = $1; - $38 = $34; - $39 = ((($38)) + 8|0); - $40 = (__Znwj(64)|0); - $41 = ((($38)) + 4|0); - $42 = HEAP32[$41>>2]|0; - $43 = $35; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEEC2ERS9_RKSF_($40,$42,$43); - ;HEAP32[$37>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$37>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($36,$40,$$byval_copy); - $31 = $39; - $32 = $36; - $44 = $31; - $45 = ((($44)) + 4|0); - $46 = HEAP32[$45>>2]|0; - $30 = $44; - $47 = $30; - $48 = ((($47)) + 8|0); - $29 = $48; - $49 = $29; - $28 = $49; - $50 = $28; - $51 = HEAP32[$50>>2]|0; - $52 = ($46>>>0)<($51>>>0); - if ($52) { - $25 = $33; - $26 = $44; - $27 = 1; - $4 = $44; - $53 = $4; - $54 = ((($53)) + 8|0); - $3 = $54; - $55 = $3; - $2 = $55; - $56 = $2; - $57 = ((($44)) + 4|0); - $58 = HEAP32[$57>>2]|0; - $5 = $58; - $59 = $5; - $60 = $32; - $6 = $60; - $61 = $6; - $19 = $56; - $20 = $59; - $21 = $61; - $62 = $19; - $63 = $20; - $64 = $21; - $18 = $64; - $65 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $62; - $15 = $63; - $16 = $65; - $66 = $14; - $67 = $15; - $68 = $16; - $13 = $68; - $69 = $13; - $10 = $66; - $11 = $67; - $12 = $69; - $70 = $11; - $71 = $12; - $9 = $71; - $72 = $9; - $7 = $70; - $8 = $72; - $73 = $7; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - HEAP32[$73>>2] = $75; - $76 = ((($73)) + 4|0); - $77 = $8; - $78 = ((($77)) + 4|0); - $79 = HEAP32[$78>>2]|0; - HEAP32[$76>>2] = $79; - $80 = $8; - HEAP32[$80>>2] = 0; - $81 = $8; - $82 = ((($81)) + 4|0); - HEAP32[$82>>2] = 0; - $23 = $33; - $83 = ((($44)) + 4|0); - $84 = HEAP32[$83>>2]|0; - $85 = ((($84)) + 8|0); - HEAP32[$83>>2] = $85; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($36); - STACKTOP = sp;return; - } else { - $86 = $32; - $24 = $86; - $87 = $24; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($44,$87); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($36); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2Ej($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $4 = sp; - $2 = $0; - $3 = $1; - $5 = $2; - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($5)) + 4|0); - HEAP8[$7>>0] = 0; - $8 = ((($5)) + 8|0); - $9 = $3; - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($8,$9); - $10 = ((($5)) + 20|0); - $11 = $3; - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($10,$11); - $12 = ((($5)) + 32|0); - $13 = $3; - __ZN6laszip6models10arithmeticC2EjbPj($4,256,0,0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2EjRKS3_($12,$13,$4); - __ZN6laszip6models10arithmeticD2Ev($4); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($3); - $4 = ((($2)) + 20|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($4); - $5 = ((($2)) + 8|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($5); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEC2ERS9_PSH_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISP_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEC2ERS9_PSK_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEC2ERS9_PSK_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_3rgbENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEC2ERS9_PSN_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEENSG_INSH_3rgbENSJ_ISP_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISV_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory11record_itemneERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = (__ZNK6laszip7factory11record_itemeqERKS1_($4,$5)|0); - $7 = $6 ^ 1; - STACKTOP = sp;return ($7|0); -} -function __ZN6laszip7factory11record_item5pointEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21192]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21192)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21256,6,20,2); - } - } - return (21256|0); -} -function __ZNK6laszip7factory11record_itemeqERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = HEAP32[$4>>2]|0; - $6 = $3; - $7 = HEAP32[$6>>2]|0; - $8 = ($5|0)==($7|0); - if (!($8)) { - $21 = 0; - STACKTOP = sp;return ($21|0); - } - $9 = ((($4)) + 8|0); - $10 = HEAP32[$9>>2]|0; - $11 = $3; - $12 = ((($11)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($10|0)==($13|0); - if (!($14)) { - $21 = 0; - STACKTOP = sp;return ($21|0); - } - $15 = ((($4)) + 4|0); - $16 = HEAP32[$15>>2]|0; - $17 = $3; - $18 = ((($17)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $20 = ($16|0)==($19|0); - $21 = $20; - STACKTOP = sp;return ($21|0); -} -function __ZN6laszip7factory11record_item7gpstimeEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21200]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21200)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21268,7,8,2); - } - } - return (21268|0); -} -function __ZN6laszip7factory11record_item3rgbEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21208]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21208)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21280,8,6,2); - } - } - return (21280|0); -} -function __ZN6laszip19unknown_schema_typeD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip19unknown_schema_typeD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 12|0; - $14 = $0; - $15 = $1; - $16 = $14; - __ZN6laszip7formats20dynamic_decompressorC2Ev($16); - HEAP32[$16>>2] = (1956); - $17 = ((($16)) + 4|0); - $18 = $15; - HEAP32[$17>>2] = $18; - $19 = ((($16)) + 8|0); - $13 = $19; - $20 = $13; - $11 = $20; - $21 = $11; - $10 = $21; - HEAP32[$21>>2] = 0; - $22 = ((($21)) + 4|0); - HEAP32[$22>>2] = 0; - $23 = ((($21)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $23; - $9 = $12; - $24 = $8; - $25 = $9; - $7 = $25; - $26 = $7; - $3 = $24; - $4 = $26; - $27 = $3; - $28 = $4; - $2 = $28; - HEAP32[$27>>2] = 0; - $6 = $24; - $29 = $6; - $5 = $29; - $30 = ((($16)) + 20|0); - HEAP8[$30>>0] = 1; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEEC2ISC_EEPT_NS_9enable_ifIXsr14is_convertibleISG_PSC_EE5valueENSD_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1996); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (1976); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp + 72|0; - $23 = sp + 60|0; - $27 = sp + 44|0; - $30 = sp + 32|0; - $35 = sp + 12|0; - $36 = sp + 8|0; - $37 = sp; - $32 = $0; - $33 = $1; - $38 = $32; - $39 = ((($38)) + 8|0); - $34 = $39; - $40 = $34; - $31 = $40; - $41 = $31; - $42 = HEAP32[$41>>2]|0; - $28 = $41; - $29 = $42; - $43 = $29; - $25 = $27; - $26 = $43; - $44 = $25; - $45 = $26; - HEAP32[$44>>2] = $45; - $46 = HEAP32[$27>>2]|0; - HEAP32[$30>>2] = $46; - $47 = HEAP32[$30>>2]|0; - HEAP32[$35>>2] = $47; - $48 = $34; - $24 = $48; - $49 = $24; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $21 = $49; - $22 = $51; - $52 = $22; - $18 = $20; - $19 = $52; - $53 = $18; - $54 = $19; - HEAP32[$53>>2] = $54; - $55 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $55; - $56 = HEAP32[$23>>2]|0; - HEAP32[$36>>2] = $56; - while(1) { - $16 = $35; - $17 = $36; - $57 = $16; - $58 = $17; - $14 = $57; - $15 = $58; - $59 = $14; - $13 = $59; - $60 = $13; - $61 = HEAP32[$60>>2]|0; - $62 = $15; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($61|0)==($64|0); - $66 = $65 ^ 1; - if (!($66)) { - break; - } - $10 = $35; - $67 = $10; - $68 = HEAP32[$67>>2]|0; - $8 = $37; - $9 = $68; - $69 = $8; - $70 = $9; - $71 = HEAP32[$70>>2]|0; - HEAP32[$69>>2] = $71; - $72 = ((($69)) + 4|0); - $73 = $9; - $74 = ((($73)) + 4|0); - $75 = HEAP32[$74>>2]|0; - HEAP32[$72>>2] = $75; - $76 = ((($69)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $78 = ($77|0)!=(0|0); - if ($78) { - $79 = ((($69)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $7 = $80; - $81 = $7; - $6 = $81; - $82 = $6; - $83 = ((($82)) + 4|0); - $3 = $83; - $84 = $3; - $4 = 1; - $85 = $4; - $86 = HEAP32[$84>>2]|0; - $87 = (($86) + ($85))|0; - HEAP32[$84>>2] = $87; - $88 = (($86) + ($85))|0; - $5 = $88; - } - $2 = $37; - $89 = $2; - $90 = HEAP32[$89>>2]|0; - $91 = HEAP32[$90>>2]|0; - $92 = ((($91)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = $33; - $95 = (FUNCTION_TABLE_iii[$93 & 255]($90,$94)|0); - $33 = $95; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($37); - $11 = $35; - $96 = $11; - $97 = HEAP32[$96>>2]|0; - $98 = ((($97)) + 8|0); - HEAP32[$96>>2] = $98; - } - $99 = ((($38)) + 20|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100&1; - if (!($101)) { - $105 = $33; - STACKTOP = sp;return ($105|0); - } - $102 = ((($38)) + 20|0); - HEAP8[$102>>0] = 0; - $103 = ((($38)) + 4|0); - $104 = HEAP32[$103>>2]|0; - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($104); - $105 = $33; - STACKTOP = sp;return ($105|0); -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (1956); - $3 = ((($2)) + 8|0); - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($3); - __ZN6laszip7formats20dynamic_decompressorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorD0Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -8|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - $54 = $16; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($54); - } - $55 = $28; - $56 = ((($37)) + 4|0); - HEAP32[$56>>2] = $55; - $14 = $32; - $57 = $14; - $58 = ((($57)) + 8|0); - $13 = $58; - $59 = $13; - $12 = $59; - $60 = $12; - $61 = HEAP32[$32>>2]|0; - $4 = $32; - $62 = $4; - $3 = $62; - $63 = $3; - $64 = ((($63)) + 8|0); - $2 = $64; - $65 = $2; - $1 = $65; - $66 = $1; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$62>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 8)&-1; - $9 = $60; - $10 = $61; - $11 = $72; - $73 = $9; - $74 = $10; - $75 = $11; - $6 = $73; - $7 = $74; - $8 = $75; - $76 = $7; - $5 = $76; - $77 = $5; - __ZdlPv($77); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 312; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2024); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2072); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $12 = sp + 8|0; - $17 = sp + 201|0; - $26 = sp; - $29 = sp + 200|0; - $37 = sp + 72|0; - $40 = sp + 60|0; - $48 = sp + 12|0; - $45 = $0; - $46 = $1; - $49 = $45; - $44 = $49; - $50 = $44; - $51 = ((($50)) + 8|0); - $43 = $51; - $52 = $43; - $42 = $52; - $53 = $42; - $47 = $53; - $41 = $49; - $54 = $41; - $55 = ((($54)) + 4|0); - $56 = HEAP32[$55>>2]|0; - $57 = HEAP32[$54>>2]|0; - $58 = $56; - $59 = $57; - $60 = (($58) - ($59))|0; - $61 = (($60|0) / 8)&-1; - $62 = (($61) + 1)|0; - $36 = $49; - HEAP32[$37>>2] = $62; - $63 = $36; - $64 = (__ZNKSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE8max_sizeEv($63)|0); - $38 = $64; - $65 = HEAP32[$37>>2]|0; - $66 = $38; - $67 = ($65>>>0)>($66>>>0); - if ($67) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($63); - // unreachable; - } - $34 = $63; - $68 = $34; - $33 = $68; - $69 = $33; - $32 = $69; - $70 = $32; - $71 = ((($70)) + 8|0); - $31 = $71; - $72 = $31; - $30 = $72; - $73 = $30; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $39 = $79; - $80 = $39; - $81 = $38; - $82 = (($81>>>0) / 2)&-1; - $83 = ($80>>>0)>=($82>>>0); - if ($83) { - $84 = $38; - $35 = $84; - } else { - $85 = $39; - $86 = $85<<1; - HEAP32[$40>>2] = $86; - $27 = $40; - $28 = $37; - $87 = $27; - $88 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $87; - $25 = $88; - $89 = $24; - $90 = $25; - $21 = $26; - $22 = $89; - $23 = $90; - $91 = $22; - $92 = HEAP32[$91>>2]|0; - $93 = $23; - $94 = HEAP32[$93>>2]|0; - $95 = ($92>>>0)<($94>>>0); - $96 = $25; - $97 = $24; - $98 = $95 ? $96 : $97; - $99 = HEAP32[$98>>2]|0; - $35 = $99; - } - $100 = $35; - $20 = $49; - $101 = $20; - $102 = ((($101)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = HEAP32[$101>>2]|0; - $105 = $103; - $106 = $104; - $107 = (($105) - ($106))|0; - $108 = (($107|0) / 8)&-1; - $109 = $47; - __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEEC2EjjS8_($48,$100,$108,$109); - $110 = $47; - $111 = ((($48)) + 8|0); - $112 = HEAP32[$111>>2]|0; - $19 = $112; - $113 = $19; - $114 = $46; - $18 = $114; - $115 = $18; - $14 = $110; - $15 = $113; - $16 = $115; - $116 = $14; - $117 = $15; - $118 = $16; - $13 = $118; - $119 = $13; - ;HEAP8[$12>>0]=HEAP8[$17>>0]|0; - $9 = $116; - $10 = $117; - $11 = $119; - $120 = $9; - $121 = $10; - $122 = $11; - $8 = $122; - $123 = $8; - $5 = $120; - $6 = $121; - $7 = $123; - $124 = $6; - $125 = $7; - $4 = $125; - $126 = $4; - $2 = $124; - $3 = $126; - $127 = $2; - $128 = $3; - $129 = HEAP32[$128>>2]|0; - HEAP32[$127>>2] = $129; - $130 = ((($127)) + 4|0); - $131 = $3; - $132 = ((($131)) + 4|0); - $133 = HEAP32[$132>>2]|0; - HEAP32[$130>>2] = $133; - $134 = $3; - HEAP32[$134>>2] = 0; - $135 = $3; - $136 = ((($135)) + 4|0); - HEAP32[$136>>2] = 0; - $137 = ((($48)) + 8|0); - $138 = HEAP32[$137>>2]|0; - $139 = ((($138)) + 8|0); - HEAP32[$137>>2] = $139; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($49,$48); - __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEED2Ev($48); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEEC2EjjS8_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(536870911); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<3; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<3)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<3)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $17 = sp; - $22 = sp + 412|0; - $33 = sp + 292|0; - $39 = sp + 268|0; - $51 = sp + 220|0; - $104 = $0; - $105 = $1; - $106 = $104; - $103 = $106; - $107 = $103; - $102 = $107; - $108 = $102; - $109 = HEAP32[$108>>2]|0; - $101 = $109; - $110 = $101; - $80 = $107; - $111 = $80; - $112 = HEAP32[$111>>2]|0; - $79 = $112; - $113 = $79; - $85 = $107; - $114 = $85; - $84 = $114; - $115 = $84; - $83 = $115; - $116 = $83; - $117 = ((($116)) + 8|0); - $82 = $117; - $118 = $82; - $81 = $118; - $119 = $81; - $120 = HEAP32[$119>>2]|0; - $121 = HEAP32[$115>>2]|0; - $122 = $120; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 8)&-1; - $126 = (($113) + ($125<<3)|0); - $87 = $107; - $127 = $87; - $128 = HEAP32[$127>>2]|0; - $86 = $128; - $129 = $86; - $88 = $107; - $130 = $88; - $131 = ((($130)) + 4|0); - $132 = HEAP32[$131>>2]|0; - $133 = HEAP32[$130>>2]|0; - $134 = $132; - $135 = $133; - $136 = (($134) - ($135))|0; - $137 = (($136|0) / 8)&-1; - $138 = (($129) + ($137<<3)|0); - $90 = $107; - $139 = $90; - $140 = HEAP32[$139>>2]|0; - $89 = $140; - $141 = $89; - $95 = $107; - $142 = $95; - $94 = $142; - $143 = $94; - $93 = $143; - $144 = $93; - $145 = ((($144)) + 8|0); - $92 = $145; - $146 = $92; - $91 = $146; - $147 = $91; - $148 = HEAP32[$147>>2]|0; - $149 = HEAP32[$143>>2]|0; - $150 = $148; - $151 = $149; - $152 = (($150) - ($151))|0; - $153 = (($152|0) / 8)&-1; - $154 = (($141) + ($153<<3)|0); - $96 = $107; - $97 = $110; - $98 = $126; - $99 = $138; - $100 = $154; - $4 = $106; - $155 = $4; - $156 = ((($155)) + 8|0); - $3 = $156; - $157 = $3; - $2 = $157; - $158 = $2; - $159 = HEAP32[$106>>2]|0; - $160 = ((($106)) + 4|0); - $161 = HEAP32[$160>>2]|0; - $162 = $105; - $163 = ((($162)) + 4|0); - $24 = $158; - $25 = $159; - $26 = $161; - $27 = $163; - while(1) { - $164 = $26; - $165 = $25; - $166 = ($164|0)!=($165|0); - if (!($166)) { - break; - } - $167 = $24; - $168 = $27; - $169 = HEAP32[$168>>2]|0; - $170 = ((($169)) + -8|0); - $23 = $170; - $171 = $23; - $172 = $26; - $173 = ((($172)) + -8|0); - $26 = $173; - $6 = $173; - $174 = $6; - $5 = $174; - $175 = $5; - $19 = $167; - $20 = $171; - $21 = $175; - $176 = $19; - $177 = $20; - $178 = $21; - $18 = $178; - $179 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $176; - $15 = $177; - $16 = $179; - $180 = $14; - $181 = $15; - $182 = $16; - $13 = $182; - $183 = $13; - $10 = $180; - $11 = $181; - $12 = $183; - $184 = $11; - $185 = $12; - $9 = $185; - $186 = $9; - $7 = $184; - $8 = $186; - $187 = $7; - $188 = $8; - $189 = HEAP32[$188>>2]|0; - HEAP32[$187>>2] = $189; - $190 = ((($187)) + 4|0); - $191 = $8; - $192 = ((($191)) + 4|0); - $193 = HEAP32[$192>>2]|0; - HEAP32[$190>>2] = $193; - $194 = $8; - HEAP32[$194>>2] = 0; - $195 = $8; - $196 = ((($195)) + 4|0); - HEAP32[$196>>2] = 0; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = ((($198)) + -8|0); - HEAP32[$197>>2] = $199; - } - $200 = $105; - $201 = ((($200)) + 4|0); - $31 = $106; - $32 = $201; - $202 = $31; - $30 = $202; - $203 = $30; - $204 = HEAP32[$203>>2]|0; - HEAP32[$33>>2] = $204; - $205 = $32; - $28 = $205; - $206 = $28; - $207 = HEAP32[$206>>2]|0; - $208 = $31; - HEAP32[$208>>2] = $207; - $29 = $33; - $209 = $29; - $210 = HEAP32[$209>>2]|0; - $211 = $32; - HEAP32[$211>>2] = $210; - $212 = ((($106)) + 4|0); - $213 = $105; - $214 = ((($213)) + 8|0); - $37 = $212; - $38 = $214; - $215 = $37; - $36 = $215; - $216 = $36; - $217 = HEAP32[$216>>2]|0; - HEAP32[$39>>2] = $217; - $218 = $38; - $34 = $218; - $219 = $34; - $220 = HEAP32[$219>>2]|0; - $221 = $37; - HEAP32[$221>>2] = $220; - $35 = $39; - $222 = $35; - $223 = HEAP32[$222>>2]|0; - $224 = $38; - HEAP32[$224>>2] = $223; - $42 = $106; - $225 = $42; - $226 = ((($225)) + 8|0); - $41 = $226; - $227 = $41; - $40 = $227; - $228 = $40; - $229 = $105; - $45 = $229; - $230 = $45; - $231 = ((($230)) + 12|0); - $44 = $231; - $232 = $44; - $43 = $232; - $233 = $43; - $49 = $228; - $50 = $233; - $234 = $49; - $48 = $234; - $235 = $48; - $236 = HEAP32[$235>>2]|0; - HEAP32[$51>>2] = $236; - $237 = $50; - $46 = $237; - $238 = $46; - $239 = HEAP32[$238>>2]|0; - $240 = $49; - HEAP32[$240>>2] = $239; - $47 = $51; - $241 = $47; - $242 = HEAP32[$241>>2]|0; - $243 = $50; - HEAP32[$243>>2] = $242; - $244 = $105; - $245 = ((($244)) + 4|0); - $246 = HEAP32[$245>>2]|0; - $247 = $105; - HEAP32[$247>>2] = $246; - $52 = $106; - $248 = $52; - $249 = ((($248)) + 4|0); - $250 = HEAP32[$249>>2]|0; - $251 = HEAP32[$248>>2]|0; - $252 = $250; - $253 = $251; - $254 = (($252) - ($253))|0; - $255 = (($254|0) / 8)&-1; - $76 = $106; - $77 = $255; - $256 = $76; - $75 = $256; - $257 = $75; - $258 = HEAP32[$257>>2]|0; - $74 = $258; - $259 = $74; - $54 = $256; - $260 = $54; - $261 = HEAP32[$260>>2]|0; - $53 = $261; - $262 = $53; - $59 = $256; - $263 = $59; - $58 = $263; - $264 = $58; - $57 = $264; - $265 = $57; - $266 = ((($265)) + 8|0); - $56 = $266; - $267 = $56; - $55 = $267; - $268 = $55; - $269 = HEAP32[$268>>2]|0; - $270 = HEAP32[$264>>2]|0; - $271 = $269; - $272 = $270; - $273 = (($271) - ($272))|0; - $274 = (($273|0) / 8)&-1; - $275 = (($262) + ($274<<3)|0); - $61 = $256; - $276 = $61; - $277 = HEAP32[$276>>2]|0; - $60 = $277; - $278 = $60; - $66 = $256; - $279 = $66; - $65 = $279; - $280 = $65; - $64 = $280; - $281 = $64; - $282 = ((($281)) + 8|0); - $63 = $282; - $283 = $63; - $62 = $283; - $284 = $62; - $285 = HEAP32[$284>>2]|0; - $286 = HEAP32[$280>>2]|0; - $287 = $285; - $288 = $286; - $289 = (($287) - ($288))|0; - $290 = (($289|0) / 8)&-1; - $291 = (($278) + ($290<<3)|0); - $68 = $256; - $292 = $68; - $293 = HEAP32[$292>>2]|0; - $67 = $293; - $294 = $67; - $295 = $77; - $296 = (($294) + ($295<<3)|0); - $69 = $256; - $70 = $259; - $71 = $275; - $72 = $291; - $73 = $296; - $78 = $106; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -8|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 8)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 536870911; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip7formats10base_fieldC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2048); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($2); - $3 = ((($2)) + 3980|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($3); - $4 = ((($2)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($4); - $5 = ((($2)) + 4780|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 4781|0); - HEAP8[$6>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2024); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_field11compressRawEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats10base_fieldD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_fieldD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats10base_fieldD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_field13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $30 = sp + 124|0; - $31 = sp + 4|0; - $29 = $0; - $33 = $29; - __ZN6laszip7formats3las7point10C2Ev($33); - $34 = ((($33)) + 52|0); - __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($34); - $35 = ((($33)) + 436|0); - __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($35); - $36 = ((($33)) + 852|0); - __ZN6laszip6models10arithmeticC2EjbPj($36,64,0,0); - $37 = ((($33)) + 3976|0); - HEAP8[$37>>0] = 0; - $38 = ((($33)) + 20|0); - HEAP16[$30>>1] = 0; - $27 = $38; - $28 = $30; - $39 = $27; - $40 = $28; - $24 = $39; - $25 = 16; - $26 = $40; - $41 = $24; - $42 = $25; - $23 = $42; - $43 = $23; - $44 = $26; - $20 = $41; - $21 = $43; - $22 = $44; - while(1) { - $45 = $21; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - $47 = $22; - $48 = HEAP16[$47>>1]|0; - $49 = $20; - HEAP16[$49>>1] = $48; - $50 = $20; - $51 = ((($50)) + 2|0); - $20 = $51; - $52 = $21; - $53 = (($52) + -1)|0; - $21 = $53; - } - $54 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($54,256,0,0); - $55 = ((($33)) + 896|0); - $18 = $55; - $19 = 0; - $56 = $18; - $57 = $19; - $58 = (($56) + ($57<<2)|0); - HEAP32[$58>>2] = $54; - $59 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($59,256,0,0); - $60 = ((($33)) + 896|0); - $14 = $60; - $15 = 1; - $61 = $14; - $62 = $15; - $63 = (($61) + ($62<<2)|0); - HEAP32[$63>>2] = $59; - $64 = ((($33)) + 820|0); - HEAP32[$31>>2] = 0; - $10 = $64; - $11 = $31; - $65 = $10; - $66 = $11; - $7 = $65; - $8 = 8; - $9 = $66; - $67 = $7; - $68 = $8; - $6 = $68; - $69 = $6; - $70 = $9; - $3 = $67; - $4 = $69; - $5 = $70; - while(1) { - $71 = $4; - $72 = ($71>>>0)>(0); - if (!($72)) { - break; - } - $73 = $5; - $74 = HEAP32[$73>>2]|0; - $75 = $3; - HEAP32[$75>>2] = $74; - $76 = $3; - $77 = ((($76)) + 4|0); - $3 = $77; - $78 = $4; - $79 = (($78) + -1)|0; - $4 = $79; - } - $32 = 0; - while(1) { - $80 = $32; - $81 = ($80|0)<(256); - if (!($81)) { - break; - } - $82 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($82,256,0,0); - $83 = ((($33)) + 904|0); - $84 = $32; - $1 = $83; - $2 = $84; - $85 = $1; - $86 = $2; - $87 = (($85) + ($86<<2)|0); - HEAP32[$87>>2] = $82; - $88 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($88,256,0,0); - $89 = ((($33)) + 1928|0); - $90 = $32; - $12 = $89; - $13 = $90; - $91 = $12; - $92 = $13; - $93 = (($91) + ($92<<2)|0); - HEAP32[$93>>2] = $88; - $94 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($94,256,0,0); - $95 = ((($33)) + 2952|0); - $96 = $32; - $16 = $95; - $17 = $96; - $97 = $16; - $98 = $17; - $99 = (($97) + ($98<<2)|0); - HEAP32[$99>>2] = $94; - $100 = $32; - $101 = (($100) + 1)|0; - $32 = $101; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,4,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip11compressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - __ZN6laszip11compressors7integerC2Ejjjj($4,32,2,8,0); - $5 = ((($2)) + 240|0); - __ZN6laszip11compressors7integerC2Ejjjj($5,32,22,8,0); - $6 = ((($2)) + 320|0); - __ZN6laszip11compressors7integerC2Ejjjj($6,32,20,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerC2Ejjjj($2,16,4,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integerC2Ejjjj($4,32,2,8,0); - $5 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integerC2Ejjjj($5,32,22,8,0); - $6 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integerC2Ejjjj($6,32,20,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZN6laszip11compressors7integerD2Ev($3); - $4 = ((($2)) + 240|0); - __ZN6laszip11compressors7integerD2Ev($4); - $5 = ((($2)) + 160|0); - __ZN6laszip11compressors7integerD2Ev($5); - $6 = ((($2)) + 80|0); - __ZN6laszip11compressors7integerD2Ev($6); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $11 = $0; - $13 = $11; - $14 = ((($13)) + 896|0); - $9 = $14; - $10 = 0; - $15 = $9; - $16 = $10; - $17 = (($15) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)==(0|0); - if (!($19)) { - __ZN6laszip6models10arithmeticD2Ev($18); - __ZdlPv($18); - } - $20 = ((($13)) + 896|0); - $7 = $20; - $8 = 1; - $21 = $7; - $22 = $8; - $23 = (($21) + ($22<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = ($24|0)==(0|0); - if (!($25)) { - __ZN6laszip6models10arithmeticD2Ev($24); - __ZdlPv($24); - } - $12 = 0; - while(1) { - $26 = $12; - $27 = ($26|0)<(256); - if (!($27)) { - break; - } - $28 = ((($13)) + 904|0); - $29 = $12; - $5 = $28; - $6 = $29; - $30 = $5; - $31 = $6; - $32 = (($30) + ($31<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)==(0|0); - if (!($34)) { - __ZN6laszip6models10arithmeticD2Ev($33); - __ZdlPv($33); - } - $35 = ((($13)) + 1928|0); - $36 = $12; - $3 = $35; - $4 = $36; - $37 = $3; - $38 = $4; - $39 = (($37) + ($38<<2)|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40|0)==(0|0); - if (!($41)) { - __ZN6laszip6models10arithmeticD2Ev($40); - __ZdlPv($40); - } - $42 = ((($13)) + 2952|0); - $43 = $12; - $1 = $42; - $2 = $43; - $44 = $1; - $45 = $2; - $46 = (($44) + ($45<<2)|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47|0)==(0|0); - if (!($48)) { - __ZN6laszip6models10arithmeticD2Ev($47); - __ZdlPv($47); - } - $49 = $12; - $50 = (($49) + 1)|0; - $12 = $50; - } - $51 = ((($13)) + 852|0); - __ZN6laszip6models10arithmeticD2Ev($51); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7point10C2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0]=0&255;HEAP8[$2+1>>0]=(0>>8)&255;HEAP8[$2+2>>0]=(0>>16)&255;HEAP8[$2+3>>0]=0>>24; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=(0>>8)&255;HEAP8[$3+2>>0]=(0>>16)&255;HEAP8[$3+3>>0]=0>>24; - $4 = ((($2)) + 12|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=0>>8; - $5 = ((($2)) + 14|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6 & -8; - HEAP8[$5>>0] = $7; - $8 = ((($2)) + 14|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9 & -57; - HEAP8[$8>>0] = $10; - $11 = ((($2)) + 14|0); - $12 = HEAP8[$11>>0]|0; - $13 = $12 & -65; - HEAP8[$11>>0] = $13; - $14 = ((($2)) + 14|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 & 127; - HEAP8[$14>>0] = $16; - $17 = ((($2)) + 15|0); - HEAP8[$17>>0] = 0; - $18 = ((($2)) + 16|0); - HEAP8[$18>>0] = 0; - $19 = ((($2)) + 17|0); - HEAP8[$19>>0] = 0; - $20 = ((($2)) + 18|0); - HEAP8[$20>>0]=0&255;HEAP8[$20+1>>0]=0>>8; - STACKTOP = sp;return; -} -function __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 384|0); - $4 = $2; - while(1) { - __ZN6laszip5utils16streaming_medianIiEC2Ev($4); - $5 = ((($4)) + 24|0); - $6 = ($5|0)==($3|0); - if ($6) { - break; - } else { - $4 = $5; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip5utils16streaming_medianIiEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip5utils16streaming_medianIiE4initEv($2); - STACKTOP = sp;return; -} -function __ZN6laszip5utils16streaming_medianIiE4initEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $11 = sp; - $10 = $0; - $12 = $10; - HEAP32[$11>>2] = 0; - $8 = $12; - $9 = $11; - $13 = $8; - $14 = $9; - $5 = $13; - $6 = 5; - $7 = $14; - $15 = $5; - $16 = $6; - $4 = $16; - $17 = $4; - $18 = $7; - $1 = $15; - $2 = $17; - $3 = $18; - while(1) { - $19 = $2; - $20 = ($19>>>0)>(0); - if (!($20)) { - break; - } - $21 = $3; - $22 = HEAP32[$21>>2]|0; - $23 = $1; - HEAP32[$23>>2] = $22; - $24 = $1; - $25 = ((($24)) + 4|0); - $1 = $25; - $26 = $2; - $27 = (($26) + -1)|0; - $2 = $27; - } - $28 = ((($12)) + 20|0); - HEAP8[$28>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip11compressors7integerC2Ejjjj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $15 = sp + 72|0; - $27 = sp + 24|0; - $29 = $0; - $30 = $1; - $31 = $2; - $32 = $3; - $33 = $4; - $34 = $29; - $35 = ((($34)) + 4|0); - $36 = $30; - HEAP32[$35>>2] = $36; - $37 = ((($34)) + 8|0); - $38 = $31; - HEAP32[$37>>2] = $38; - $39 = ((($34)) + 12|0); - $40 = $32; - HEAP32[$39>>2] = $40; - $41 = ((($34)) + 16|0); - $42 = $33; - HEAP32[$41>>2] = $42; - $43 = ((($34)) + 36|0); - $28 = $43; - $44 = $28; - $26 = $44; - $45 = $26; - $25 = $45; - HEAP32[$45>>2] = 0; - $46 = ((($45)) + 4|0); - HEAP32[$46>>2] = 0; - $47 = ((($45)) + 8|0); - HEAP32[$27>>2] = 0; - $23 = $47; - $24 = $27; - $48 = $23; - $49 = $24; - $22 = $49; - $50 = $22; - $18 = $48; - $19 = $50; - $51 = $18; - $52 = $19; - $17 = $52; - HEAP32[$51>>2] = 0; - $21 = $48; - $53 = $21; - $20 = $53; - $54 = ((($34)) + 48|0); - __ZN6laszip6models14arithmetic_bitC2Ev($54); - $55 = ((($34)) + 68|0); - $16 = $55; - $56 = $16; - $14 = $56; - $57 = $14; - $13 = $57; - HEAP32[$57>>2] = 0; - $58 = ((($57)) + 4|0); - HEAP32[$58>>2] = 0; - $59 = ((($57)) + 8|0); - HEAP32[$15>>2] = 0; - $11 = $59; - $12 = $15; - $60 = $11; - $61 = $12; - $10 = $61; - $62 = $10; - $6 = $60; - $7 = $62; - $63 = $6; - $64 = $7; - $5 = $64; - HEAP32[$63>>2] = 0; - $9 = $60; - $65 = $9; - $8 = $65; - $66 = $33; - $67 = ($66|0)!=(0); - if (!($67)) { - $100 = $30; - $101 = ($100|0)!=(0); - $102 = $30; - $103 = ($102>>>0)<(32); - $or$cond = $101 & $103; - if ($or$cond) { - $104 = $30; - $105 = ((($34)) + 20|0); - HEAP32[$105>>2] = $104; - $106 = $30; - $107 = 1 << $106; - $108 = ((($34)) + 24|0); - HEAP32[$108>>2] = $107; - $109 = ((($34)) + 24|0); - $110 = HEAP32[$109>>2]|0; - $111 = (($110>>>0) / 2)&-1; - $112 = (0 - ($111))|0; - $113 = ((($34)) + 28|0); - HEAP32[$113>>2] = $112; - $114 = ((($34)) + 28|0); - $115 = HEAP32[$114>>2]|0; - $116 = ((($34)) + 24|0); - $117 = HEAP32[$116>>2]|0; - $118 = (($115) + ($117))|0; - $119 = (($118) - 1)|0; - $120 = ((($34)) + 32|0); - HEAP32[$120>>2] = $119; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } else { - $121 = ((($34)) + 20|0); - HEAP32[$121>>2] = 32; - $122 = ((($34)) + 24|0); - HEAP32[$122>>2] = 0; - $123 = ((($34)) + 28|0); - HEAP32[$123>>2] = -2147483648; - $124 = ((($34)) + 32|0); - HEAP32[$124>>2] = 2147483647; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } - } - $68 = ((($34)) + 20|0); - HEAP32[$68>>2] = 0; - $69 = $33; - $70 = ((($34)) + 24|0); - HEAP32[$70>>2] = $69; - while(1) { - $71 = $33; - $72 = ($71|0)!=(0); - if (!($72)) { - break; - } - $73 = $33; - $74 = $73 >>> 1; - $33 = $74; - $75 = ((($34)) + 20|0); - $76 = HEAP32[$75>>2]|0; - $77 = (($76) + 1)|0; - HEAP32[$75>>2] = $77; - } - $78 = ((($34)) + 24|0); - $79 = HEAP32[$78>>2]|0; - $80 = ((($34)) + 20|0); - $81 = HEAP32[$80>>2]|0; - $82 = (($81) - 1)|0; - $83 = 1 << $82; - $84 = ($79|0)==($83|0); - if ($84) { - $85 = ((($34)) + 20|0); - $86 = HEAP32[$85>>2]|0; - $87 = (($86) + -1)|0; - HEAP32[$85>>2] = $87; - } - $88 = ((($34)) + 24|0); - $89 = HEAP32[$88>>2]|0; - $90 = (($89>>>0) / 2)&-1; - $91 = (0 - ($90))|0; - $92 = ((($34)) + 28|0); - HEAP32[$92>>2] = $91; - $93 = ((($34)) + 28|0); - $94 = HEAP32[$93>>2]|0; - $95 = ((($34)) + 24|0); - $96 = HEAP32[$95>>2]|0; - $97 = (($94) + ($96))|0; - $98 = (($97) - 1)|0; - $99 = ((($34)) + 32|0); - HEAP32[$99>>2] = $98; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip11compressors7integerD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $27 = sp + 8|0; - $30 = sp + 329|0; - $68 = sp; - $71 = sp + 328|0; - $83 = $0; - $84 = $83; - $85 = ((($84)) + 36|0); - $81 = $85; - $86 = $81; - $80 = $86; - $87 = $80; - $88 = ((($87)) + 4|0); - $89 = HEAP32[$88>>2]|0; - $90 = HEAP32[$87>>2]|0; - $91 = $89; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 44)&-1; - $82 = $94; - $79 = $86; - $95 = $79; - $96 = HEAP32[$95>>2]|0; - $76 = $95; - $77 = $96; - $97 = $76; - $98 = ((($97)) + 4|0); - $99 = HEAP32[$98>>2]|0; - $78 = $99; - while(1) { - $100 = $77; - $101 = $78; - $102 = ($100|0)!=($101|0); - if (!($102)) { - break; - } - $75 = $97; - $103 = $75; - $104 = ((($103)) + 8|0); - $74 = $104; - $105 = $74; - $73 = $105; - $106 = $73; - $107 = $78; - $108 = ((($107)) + -44|0); - $78 = $108; - $72 = $108; - $109 = $72; - $69 = $106; - $70 = $109; - $110 = $69; - $111 = $70; - ;HEAP8[$68>>0]=HEAP8[$71>>0]|0; - $66 = $110; - $67 = $111; - $112 = $66; - $113 = $67; - $64 = $112; - $65 = $113; - $114 = $65; - __ZN6laszip6models10arithmeticD2Ev($114); - } - $115 = $77; - $116 = ((($97)) + 4|0); - HEAP32[$116>>2] = $115; - $117 = $82; - $62 = $86; - $63 = $117; - $118 = $62; - $61 = $118; - $119 = $61; - $120 = HEAP32[$119>>2]|0; - $60 = $120; - $121 = $60; - $44 = $118; - $122 = $44; - $123 = HEAP32[$122>>2]|0; - $43 = $123; - $124 = $43; - $49 = $118; - $125 = $49; - $48 = $125; - $126 = $48; - $47 = $126; - $127 = $47; - $128 = ((($127)) + 8|0); - $46 = $128; - $129 = $46; - $45 = $129; - $130 = $45; - $131 = HEAP32[$130>>2]|0; - $132 = HEAP32[$126>>2]|0; - $133 = $131; - $134 = $132; - $135 = (($133) - ($134))|0; - $136 = (($135|0) / 44)&-1; - $137 = (($124) + (($136*44)|0)|0); - $51 = $118; - $138 = $51; - $139 = HEAP32[$138>>2]|0; - $50 = $139; - $140 = $50; - $141 = $63; - $142 = (($140) + (($141*44)|0)|0); - $53 = $118; - $143 = $53; - $144 = HEAP32[$143>>2]|0; - $52 = $144; - $145 = $52; - $54 = $118; - $146 = $54; - $147 = ((($146)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = HEAP32[$146>>2]|0; - $150 = $148; - $151 = $149; - $152 = (($150) - ($151))|0; - $153 = (($152|0) / 44)&-1; - $154 = (($145) + (($153*44)|0)|0); - $55 = $118; - $56 = $121; - $57 = $137; - $58 = $142; - $59 = $154; - $42 = $86; - $155 = ((($84)) + 68|0); - $40 = $155; - $156 = $40; - $39 = $156; - $157 = $39; - $158 = ((($157)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = HEAP32[$157>>2]|0; - $161 = $159; - $162 = $160; - $163 = (($161) - ($162))|0; - $164 = (($163|0) / 44)&-1; - $41 = $164; - $38 = $156; - $165 = $38; - $166 = HEAP32[$165>>2]|0; - $35 = $165; - $36 = $166; - $167 = $35; - $168 = ((($167)) + 4|0); - $169 = HEAP32[$168>>2]|0; - $37 = $169; - while(1) { - $170 = $36; - $171 = $37; - $172 = ($170|0)!=($171|0); - if (!($172)) { - break; - } - $34 = $167; - $173 = $34; - $174 = ((($173)) + 8|0); - $33 = $174; - $175 = $33; - $32 = $175; - $176 = $32; - $177 = $37; - $178 = ((($177)) + -44|0); - $37 = $178; - $31 = $178; - $179 = $31; - $28 = $176; - $29 = $179; - $180 = $28; - $181 = $29; - ;HEAP8[$27>>0]=HEAP8[$30>>0]|0; - $25 = $180; - $26 = $181; - $182 = $25; - $183 = $26; - $23 = $182; - $24 = $183; - $184 = $24; - __ZN6laszip6models10arithmeticD2Ev($184); - } - $185 = $36; - $186 = ((($167)) + 4|0); - HEAP32[$186>>2] = $185; - $187 = $41; - $21 = $156; - $22 = $187; - $188 = $21; - $20 = $188; - $189 = $20; - $190 = HEAP32[$189>>2]|0; - $19 = $190; - $191 = $19; - $3 = $188; - $192 = $3; - $193 = HEAP32[$192>>2]|0; - $2 = $193; - $194 = $2; - $8 = $188; - $195 = $8; - $7 = $195; - $196 = $7; - $6 = $196; - $197 = $6; - $198 = ((($197)) + 8|0); - $5 = $198; - $199 = $5; - $4 = $199; - $200 = $4; - $201 = HEAP32[$200>>2]|0; - $202 = HEAP32[$196>>2]|0; - $203 = $201; - $204 = $202; - $205 = (($203) - ($204))|0; - $206 = (($205|0) / 44)&-1; - $207 = (($194) + (($206*44)|0)|0); - $10 = $188; - $208 = $10; - $209 = HEAP32[$208>>2]|0; - $9 = $209; - $210 = $9; - $211 = $22; - $212 = (($210) + (($211*44)|0)|0); - $12 = $188; - $213 = $12; - $214 = HEAP32[$213>>2]|0; - $11 = $214; - $215 = $11; - $13 = $188; - $216 = $13; - $217 = ((($216)) + 4|0); - $218 = HEAP32[$217>>2]|0; - $219 = HEAP32[$216>>2]|0; - $220 = $218; - $221 = $219; - $222 = (($220) - ($221))|0; - $223 = (($222|0) / 44)&-1; - $224 = (($215) + (($223*44)|0)|0); - $14 = $188; - $15 = $191; - $16 = $207; - $17 = $212; - $18 = $224; - $1 = $156; - $225 = ((($84)) + 68|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($225); - $226 = ((($84)) + 36|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($226); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($3); - $4 = ((($2)) + 3980|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($4); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integerD2Ev($3); - $4 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integerD2Ev($4); - $5 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integerD2Ev($5); - $6 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($6); - __ZN6laszip13decompressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $33 = sp + 160|0; - $40 = sp + 8|0; - $30 = $0; - $31 = $1; - $32 = $2; - $44 = $30; - $45 = ((($44)) + 4781|0); - $46 = HEAP8[$45>>0]|0; - $47 = $46&1; - if (!($47)) { - $48 = ((($44)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($48); - $49 = ((($44)) + 4781|0); - HEAP8[$49>>0] = 1; - } - $50 = ((($44)) + 3976|0); - $51 = HEAP8[$50>>0]|0; - $52 = $51&1; - if (!($52)) { - $53 = ((($44)) + 3976|0); - HEAP8[$53>>0] = 1; - $54 = $31; - $55 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($54)|0); - $56 = $32; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($55,$56,20); - $57 = $32; - __ZN6laszip7formats7packersINS0_3las7point10EE6unpackEPKc($33,$57); - dest=$44; src=$33; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $58 = $32; - $59 = ((($58)) + 20|0); - $29 = $59; - $311 = $29; - STACKTOP = sp;return ($311|0); - } - $60 = $31; - $61 = ((($44)) + 852|0); - $62 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($60,$61)|0); - $41 = $62; - $63 = $41; - $64 = ($63|0)!=(0); - if ($64) { - $65 = $41; - $66 = $65 & 32; - $67 = ($66|0)!=(0); - if ($67) { - $68 = (__ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($44)|0); - $42 = $68; - $69 = $31; - $70 = ((($44)) + 904|0); - $71 = $42; - $72 = $71&255; - $27 = $70; - $28 = $72; - $73 = $27; - $74 = $28; - $75 = (($73) + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($69,$76)|0); - $78 = $77&255; - $42 = $78; - $79 = $42; - __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($79,$44); - } - $80 = ((($44)) + 14|0); - $81 = HEAP8[$80>>0]|0; - $82 = $81 & 7; - $83 = $82&255; - $34 = $83; - $84 = ((($44)) + 14|0); - $85 = HEAP8[$84>>0]|0; - $86 = ($85&255) >>> 3; - $87 = $86 & 7; - $88 = $87&255; - $35 = $88; - $89 = $35; - $90 = (6646 + ($89<<3)|0); - $91 = $34; - $92 = (($90) + ($91)|0); - $93 = HEAP8[$92>>0]|0; - $94 = $93&255; - $36 = $94; - $95 = $35; - $96 = (6710 + ($95<<3)|0); - $97 = $34; - $98 = (($96) + ($97)|0); - $99 = HEAP8[$98>>0]|0; - $100 = $99&255; - $37 = $100; - $101 = $41; - $102 = $101 & 16; - $103 = ($102|0)!=(0); - if ($103) { - $104 = ((($44)) + 4380|0); - $105 = $31; - $106 = ((($44)) + 20|0); - $107 = $36; - $25 = $106; - $26 = $107; - $108 = $25; - $109 = $26; - $110 = (($108) + ($109<<1)|0); - $111 = HEAP16[$110>>1]|0; - $112 = $111&65535; - $113 = $36; - $114 = ($113>>>0)<(3); - $115 = $36; - $116 = $114 ? $115 : 3; - $117 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($104,$105,$112,$116)|0); - $118 = $117&65535; - $119 = ((($44)) + 12|0); - HEAP16[$119>>1] = $118; - $120 = ((($44)) + 12|0); - $121 = HEAP16[$120>>1]|0; - $122 = ((($44)) + 20|0); - $123 = $36; - $21 = $122; - $22 = $123; - $124 = $21; - $125 = $22; - $126 = (($124) + ($125<<1)|0); - HEAP16[$126>>1] = $121; - } else { - $127 = ((($44)) + 20|0); - $128 = $36; - $17 = $127; - $18 = $128; - $129 = $17; - $130 = $18; - $131 = (($129) + ($130<<1)|0); - $132 = HEAP16[$131>>1]|0; - $133 = ((($44)) + 12|0); - HEAP16[$133>>1] = $132; - } - $134 = $41; - $135 = $134 & 8; - $136 = ($135|0)!=(0); - if ($136) { - $137 = $31; - $138 = ((($44)) + 1928|0); - $139 = ((($44)) + 15|0); - $140 = HEAP8[$139>>0]|0; - $141 = $140&255; - $15 = $138; - $16 = $141; - $142 = $15; - $143 = $16; - $144 = (($142) + ($143<<2)|0); - $145 = HEAP32[$144>>2]|0; - $146 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($137,$145)|0); - $147 = $146&255; - $148 = ((($44)) + 15|0); - HEAP8[$148>>0] = $147; - } - $149 = $41; - $150 = $149 & 4; - $151 = ($150|0)!=(0); - if ($151) { - $152 = $31; - $153 = ((($44)) + 896|0); - $154 = ((($44)) + 14|0); - $155 = HEAP8[$154>>0]|0; - $156 = ($155&255) >>> 6; - $157 = $156 & 1; - $158 = $157&255; - $13 = $153; - $14 = $158; - $159 = $13; - $160 = $14; - $161 = (($159) + ($160<<2)|0); - $162 = HEAP32[$161>>2]|0; - $163 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($152,$162)|0); - $43 = $163; - $164 = $43; - $165 = ((($44)) + 16|0); - $166 = HEAP8[$165>>0]|0; - $167 = $166 << 24 >> 24; - $168 = (($164) + ($167))|0; - $169 = (__Z7U8_FOLDi($168)|0); - $170 = ((($44)) + 16|0); - HEAP8[$170>>0] = $169; - } - $171 = $41; - $172 = $171 & 2; - $173 = ($172|0)!=(0); - if ($173) { - $174 = $31; - $175 = ((($44)) + 2952|0); - $176 = ((($44)) + 17|0); - $177 = HEAP8[$176>>0]|0; - $178 = $177&255; - $9 = $175; - $10 = $178; - $179 = $9; - $180 = $10; - $181 = (($179) + ($180<<2)|0); - $182 = HEAP32[$181>>2]|0; - $183 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($174,$182)|0); - $184 = $183&255; - $185 = ((($44)) + 17|0); - HEAP8[$185>>0] = $184; - } - $186 = $41; - $187 = $186 & 1; - $188 = ($187|0)!=(0); - if ($188) { - $189 = ((($44)) + 4380|0); - $190 = ((($189)) + 80|0); - $191 = $31; - $192 = ((($44)) + 18|0); - $193 = HEAP16[$192>>1]|0; - $194 = $193&65535; - $195 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($190,$191,$194,0)|0); - $196 = $195&65535; - $197 = ((($44)) + 18|0); - HEAP16[$197>>1] = $196; - } - } else { - $198 = ((($44)) + 14|0); - $199 = HEAP8[$198>>0]|0; - $200 = $199 & 7; - $201 = $200&255; - $34 = $201; - $202 = ((($44)) + 14|0); - $203 = HEAP8[$202>>0]|0; - $204 = ($203&255) >>> 3; - $205 = $204 & 7; - $206 = $205&255; - $35 = $206; - $207 = $35; - $208 = (6646 + ($207<<3)|0); - $209 = $34; - $210 = (($208) + ($209)|0); - $211 = HEAP8[$210>>0]|0; - $212 = $211&255; - $36 = $212; - $213 = $35; - $214 = (6710 + ($213<<3)|0); - $215 = $34; - $216 = (($214) + ($215)|0); - $217 = HEAP8[$216>>0]|0; - $218 = $217&255; - $37 = $218; - } - $219 = ((($44)) + 52|0); - $220 = $36; - $7 = $219; - $8 = $220; - $221 = $7; - $222 = $8; - $223 = (($221) + (($222*24)|0)|0); - $224 = (__ZNK6laszip5utils16streaming_medianIiE3getEv($223)|0); - $39 = $224; - $225 = ((($44)) + 4380|0); - $226 = ((($225)) + 160|0); - $227 = $31; - $228 = $39; - $229 = $35; - $230 = ($229|0)==(1); - $231 = $230&1; - $232 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($226,$227,$228,$231)|0); - HEAP32[$40>>2] = $232; - $233 = HEAP32[$40>>2]|0; - $234 = HEAP32[$44>>2]|0; - $235 = (($234) + ($233))|0; - HEAP32[$44>>2] = $235; - $236 = ((($44)) + 52|0); - $237 = $36; - $5 = $236; - $6 = $237; - $238 = $5; - $239 = $6; - $240 = (($238) + (($239*24)|0)|0); - __ZN6laszip5utils16streaming_medianIiE3addERKi($240,$40); - $241 = ((($44)) + 436|0); - $242 = $36; - $3 = $241; - $4 = $242; - $243 = $3; - $244 = $4; - $245 = (($243) + (($244*24)|0)|0); - $246 = (__ZNK6laszip5utils16streaming_medianIiE3getEv($245)|0); - $39 = $246; - $247 = ((($44)) + 4380|0); - $248 = ((($247)) + 160|0); - $249 = (__ZNK6laszip13decompressors7integer4getKEv($248)|0); - $38 = $249; - $250 = ((($44)) + 4380|0); - $251 = ((($250)) + 240|0); - $252 = $31; - $253 = $39; - $254 = $35; - $255 = ($254|0)==(1); - $256 = $255&1; - $257 = $38; - $258 = ($257>>>0)<(20); - $259 = $38; - $260 = $259 & -2; - $261 = $258 ? $260 : 20; - $262 = (($256) + ($261))|0; - $263 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($251,$252,$253,$262)|0); - HEAP32[$40>>2] = $263; - $264 = HEAP32[$40>>2]|0; - $265 = ((($44)) + 4|0); - $266 = HEAP32[$265>>2]|0; - $267 = (($266) + ($264))|0; - HEAP32[$265>>2] = $267; - $268 = ((($44)) + 436|0); - $269 = $36; - $11 = $268; - $12 = $269; - $270 = $11; - $271 = $12; - $272 = (($270) + (($271*24)|0)|0); - __ZN6laszip5utils16streaming_medianIiE3addERKi($272,$40); - $273 = ((($44)) + 4380|0); - $274 = ((($273)) + 160|0); - $275 = (__ZNK6laszip13decompressors7integer4getKEv($274)|0); - $276 = ((($44)) + 4380|0); - $277 = ((($276)) + 240|0); - $278 = (__ZNK6laszip13decompressors7integer4getKEv($277)|0); - $279 = (($275) + ($278))|0; - $280 = (($279>>>0) / 2)&-1; - $38 = $280; - $281 = ((($44)) + 4380|0); - $282 = ((($281)) + 320|0); - $283 = $31; - $284 = ((($44)) + 820|0); - $285 = $37; - $19 = $284; - $20 = $285; - $286 = $19; - $287 = $20; - $288 = (($286) + ($287<<2)|0); - $289 = HEAP32[$288>>2]|0; - $290 = $35; - $291 = ($290|0)==(1); - $292 = $291&1; - $293 = $38; - $294 = ($293>>>0)<(18); - $295 = $38; - $296 = $295 & -2; - $297 = $294 ? $296 : 18; - $298 = (($292) + ($297))|0; - $299 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($282,$283,$289,$298)|0); - $300 = ((($44)) + 8|0); - HEAP32[$300>>2] = $299; - $301 = ((($44)) + 8|0); - $302 = HEAP32[$301>>2]|0; - $303 = ((($44)) + 820|0); - $304 = $37; - $23 = $303; - $24 = $304; - $305 = $23; - $306 = $24; - $307 = (($305) + ($306<<2)|0); - HEAP32[$307>>2] = $302; - $308 = $32; - __ZN6laszip7formats7packersINS0_3las7point10EE4packERKS3_Pc($44,$308); - $309 = $32; - $310 = ((($309)) + 20|0); - $29 = $310; - $311 = $29; - STACKTOP = sp;return ($311|0); -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integer4initEv($2); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($3); - $4 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integer4initEv($4); - $5 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integer4initEv($5); - $6 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integer4initEv($6); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $26 = sp; - $29 = sp + 124|0; - $32 = sp + 12|0; - $34 = sp + 4|0; - $30 = $0; - $31 = $1; - HEAP32[$32>>2] = $2; - $35 = $30; - $36 = ((($35)) + 8|0); - $37 = HEAP32[$36>>2]|0; - $38 = ((($35)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($37) - ($39))|0; - HEAP32[$34>>2] = $40; - $27 = $34; - $28 = $32; - $41 = $27; - $42 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $41; - $25 = $42; - $43 = $25; - $44 = $24; - $21 = $26; - $22 = $43; - $23 = $44; - $45 = $22; - $46 = HEAP32[$45>>2]|0; - $47 = $23; - $48 = HEAP32[$47>>2]|0; - $49 = ($46>>>0)<($48>>>0); - $50 = $25; - $51 = $24; - $52 = $49 ? $50 : $51; - $53 = HEAP32[$52>>2]|0; - $33 = $53; - $54 = ((($35)) + 12|0); - $55 = HEAP32[$54>>2]|0; - $56 = ((($35)) + 4|0); - $57 = HEAP32[$56>>2]|0; - $58 = (($55) + ($57)|0); - $59 = ((($35)) + 12|0); - $60 = HEAP32[$59>>2]|0; - $61 = ((($35)) + 4|0); - $62 = HEAP32[$61>>2]|0; - $63 = (($60) + ($62)|0); - $64 = $33; - $65 = (($63) + ($64)|0); - $66 = $31; - $9 = $58; - $10 = $65; - $11 = $66; - $67 = $9; - $8 = $67; - $68 = $8; - $69 = $10; - $3 = $69; - $70 = $3; - $71 = $11; - $4 = $71; - $72 = $4; - $5 = $68; - $6 = $70; - $7 = $72; - while(1) { - $73 = $5; - $74 = $6; - $75 = ($73|0)!=($74|0); - if (!($75)) { - break; - } - $76 = $5; - $77 = HEAP8[$76>>0]|0; - $78 = $7; - HEAP8[$78>>0] = $77; - $79 = $5; - $80 = ((($79)) + 1|0); - $5 = $80; - $81 = $7; - $82 = ((($81)) + 1|0); - $7 = $82; - } - $83 = $33; - $84 = ((($35)) + 4|0); - $85 = HEAP32[$84>>2]|0; - $86 = (($85) + ($83))|0; - HEAP32[$84>>2] = $86; - $87 = $33; - $88 = HEAP32[$32>>2]|0; - $89 = (($88) - ($87))|0; - HEAP32[$32>>2] = $89; - $90 = HEAP32[$32>>2]|0; - $91 = ($90|0)!=(0); - if (!($91)) { - STACKTOP = sp;return; - } - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($35); - $92 = ((($35)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = ((($35)) + 4|0); - $95 = HEAP32[$94>>2]|0; - $96 = (($93) + ($95)|0); - $97 = ((($35)) + 12|0); - $98 = HEAP32[$97>>2]|0; - $99 = ((($35)) + 4|0); - $100 = HEAP32[$99>>2]|0; - $101 = (($98) + ($100)|0); - $102 = HEAP32[$32>>2]|0; - $103 = (($101) + ($102)|0); - $104 = $31; - $105 = $33; - $106 = (($104) + ($105)|0); - $18 = $96; - $19 = $103; - $20 = $106; - $107 = $18; - $17 = $107; - $108 = $17; - $109 = $19; - $12 = $109; - $110 = $12; - $111 = $20; - $13 = $111; - $112 = $13; - $14 = $108; - $15 = $110; - $16 = $112; - while(1) { - $113 = $14; - $114 = $15; - $115 = ($113|0)!=($114|0); - if (!($115)) { - break; - } - $116 = $14; - $117 = HEAP8[$116>>0]|0; - $118 = $16; - HEAP8[$118>>0] = $117; - $119 = $14; - $120 = ((($119)) + 1|0); - $14 = $120; - $121 = $16; - $122 = ((($121)) + 1|0); - $16 = $122; - } - $123 = HEAP32[$32>>2]|0; - $124 = ((($35)) + 4|0); - $125 = HEAP32[$124>>2]|0; - $126 = (($125) + ($123))|0; - HEAP32[$124>>2] = $126; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las7point10EE6unpackEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $1; - __ZN6laszip7formats3las7point10C2Ev($0); - $4 = $2; - $5 = (__ZN6laszip7formats7packersIiE6unpackEPKc($4)|0); - HEAP8[$0>>0]=$5&255;HEAP8[$0+1>>0]=($5>>8)&255;HEAP8[$0+2>>0]=($5>>16)&255;HEAP8[$0+3>>0]=$5>>24; - $6 = $2; - $7 = ((($6)) + 4|0); - $2 = $7; - $8 = $2; - $9 = (__ZN6laszip7formats7packersIiE6unpackEPKc($8)|0); - $10 = ((($0)) + 4|0); - HEAP8[$10>>0]=$9&255;HEAP8[$10+1>>0]=($9>>8)&255;HEAP8[$10+2>>0]=($9>>16)&255;HEAP8[$10+3>>0]=$9>>24; - $11 = $2; - $12 = ((($11)) + 4|0); - $2 = $12; - $13 = $2; - $14 = (__ZN6laszip7formats7packersIiE6unpackEPKc($13)|0); - $15 = ((($0)) + 8|0); - HEAP8[$15>>0]=$14&255;HEAP8[$15+1>>0]=($14>>8)&255;HEAP8[$15+2>>0]=($14>>16)&255;HEAP8[$15+3>>0]=$14>>24; - $16 = $2; - $17 = ((($16)) + 4|0); - $2 = $17; - $18 = $2; - $19 = (__ZN6laszip7formats7packersItE6unpackEPKc($18)|0); - $20 = ((($0)) + 12|0); - HEAP8[$20>>0]=$19&255;HEAP8[$20+1>>0]=$19>>8; - $21 = $2; - $22 = ((($21)) + 2|0); - $2 = $22; - $23 = $2; - $24 = (__ZN6laszip7formats7packersIhE6unpackEPKc($23)|0); - $3 = $24; - $25 = $2; - $26 = ((($25)) + 1|0); - $2 = $26; - $27 = $3; - __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($27,$0); - $28 = $2; - $29 = (__ZN6laszip7formats7packersIhE6unpackEPKc($28)|0); - $30 = ((($0)) + 15|0); - HEAP8[$30>>0] = $29; - $31 = $2; - $32 = ((($31)) + 1|0); - $2 = $32; - $33 = $2; - $34 = (__ZN6laszip7formats7packersIcE6unpackEPKc($33)|0); - $35 = ((($0)) + 16|0); - HEAP8[$35>>0] = $34; - $36 = $2; - $37 = ((($36)) + 1|0); - $2 = $37; - $38 = $2; - $39 = (__ZN6laszip7formats7packersIcE6unpackEPKc($38)|0); - $40 = ((($0)) + 17|0); - HEAP8[$40>>0] = $39; - $41 = $2; - $42 = ((($41)) + 1|0); - $2 = $42; - $43 = $2; - $44 = (__ZN6laszip7formats7packersItE6unpackEPKc($43)|0); - $45 = ((($0)) + 18|0); - HEAP8[$45>>0]=$44&255;HEAP8[$45+1>>0]=$44>>8; - STACKTOP = sp;return; -} -function __ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $6 = $1; - $7 = ((($6)) + 14|0); - $8 = HEAP8[$7>>0]|0; - $9 = $8 & 7; - $2 = $9; - $10 = $1; - $11 = ((($10)) + 14|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12&255) >>> 3; - $14 = $13 & 7; - $3 = $14; - $15 = $1; - $16 = ((($15)) + 14|0); - $17 = HEAP8[$16>>0]|0; - $18 = ($17&255) >>> 6; - $19 = $18 & 1; - $4 = $19; - $20 = $1; - $21 = ((($20)) + 14|0); - $22 = HEAP8[$21>>0]|0; - $23 = ($22&255) >>> 7; - $5 = $23; - $24 = $5; - $25 = $24&255; - $26 = $25 & 1; - $27 = $26 << 7; - $28 = $4; - $29 = $28&255; - $30 = $29 & 1; - $31 = $30 << 6; - $32 = $27 | $31; - $33 = $3; - $34 = $33&255; - $35 = $34 & 7; - $36 = $35 << 3; - $37 = $32 | $36; - $38 = $2; - $39 = $38&255; - $40 = $39 & 7; - $41 = $37 | $40; - $42 = $41&255; - STACKTOP = sp;return ($42|0); -} -function __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4&255; - $6 = $5 & 7; - $7 = $6&255; - $8 = $3; - $9 = ((($8)) + 14|0); - $10 = HEAP8[$9>>0]|0; - $11 = $7 & 7; - $12 = $10 & -8; - $13 = $12 | $11; - HEAP8[$9>>0] = $13; - $14 = $2; - $15 = $14&255; - $16 = $15 >> 3; - $17 = $16 & 7; - $18 = $17&255; - $19 = $3; - $20 = ((($19)) + 14|0); - $21 = HEAP8[$20>>0]|0; - $22 = $18 & 7; - $23 = ($22 << 3)&255; - $24 = $21 & -57; - $25 = $24 | $23; - HEAP8[$20>>0] = $25; - $26 = $2; - $27 = $26&255; - $28 = $27 >> 6; - $29 = $28 & 1; - $30 = $29&255; - $31 = $3; - $32 = ((($31)) + 14|0); - $33 = HEAP8[$32>>0]|0; - $34 = $30 & 1; - $35 = ($34 << 6)&255; - $36 = $33 & -65; - $37 = $36 | $35; - HEAP8[$32>>0] = $37; - $38 = $2; - $39 = $38&255; - $40 = $39 >> 7; - $41 = $40 & 1; - $42 = $41&255; - $43 = $3; - $44 = ((($43)) + 14|0); - $45 = HEAP8[$44>>0]|0; - $46 = $42 & 1; - $47 = ($46 << 7)&255; - $48 = $45 & 127; - $49 = $48 | $47; - HEAP8[$44>>0] = $49; - STACKTOP = sp;return; -} -function __Z7U8_FOLDi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2&255; - STACKTOP = sp;return ($3|0); -} -function __ZNK6laszip5utils16streaming_medianIiE3getEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $3; - $1 = $4; - $2 = 2; - $5 = $1; - $6 = $2; - $7 = (($5) + ($6<<2)|0); - $8 = HEAP32[$7>>2]|0; - STACKTOP = sp;return ($8|0); -} -function __ZN6laszip5utils16streaming_medianIiE3addERKi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $86 = $0; - $87 = $1; - $88 = $86; - $89 = ((($88)) + 20|0); - $90 = HEAP8[$89>>0]|0; - $91 = $90&1; - if ($91) { - $92 = $87; - $93 = HEAP32[$92>>2]|0; - $84 = $88; - $85 = 2; - $94 = $84; - $95 = $85; - $96 = (($94) + ($95<<2)|0); - $97 = HEAP32[$96>>2]|0; - $98 = ($93|0)<($97|0); - if (!($98)) { - $163 = $87; - $164 = HEAP32[$163>>2]|0; - $32 = $88; - $33 = 3; - $165 = $32; - $166 = $33; - $167 = (($165) + ($166<<2)|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($164|0)<($168|0); - if ($169) { - $34 = $88; - $35 = 3; - $170 = $34; - $171 = $35; - $172 = (($170) + ($171<<2)|0); - $173 = HEAP32[$172>>2]|0; - $36 = $88; - $37 = 4; - $174 = $36; - $175 = $37; - $176 = (($174) + ($175<<2)|0); - HEAP32[$176>>2] = $173; - $177 = $87; - $178 = HEAP32[$177>>2]|0; - $38 = $88; - $39 = 3; - $179 = $38; - $180 = $39; - $181 = (($179) + ($180<<2)|0); - HEAP32[$181>>2] = $178; - } else { - $182 = $87; - $183 = HEAP32[$182>>2]|0; - $40 = $88; - $41 = 4; - $184 = $40; - $185 = $41; - $186 = (($184) + ($185<<2)|0); - HEAP32[$186>>2] = $183; - } - $187 = ((($88)) + 20|0); - HEAP8[$187>>0] = 0; - STACKTOP = sp;return; - } - $2 = $88; - $3 = 3; - $99 = $2; - $100 = $3; - $101 = (($99) + ($100<<2)|0); - $102 = HEAP32[$101>>2]|0; - $4 = $88; - $5 = 4; - $103 = $4; - $104 = $5; - $105 = (($103) + ($104<<2)|0); - HEAP32[$105>>2] = $102; - $6 = $88; - $7 = 2; - $106 = $6; - $107 = $7; - $108 = (($106) + ($107<<2)|0); - $109 = HEAP32[$108>>2]|0; - $8 = $88; - $9 = 3; - $110 = $8; - $111 = $9; - $112 = (($110) + ($111<<2)|0); - HEAP32[$112>>2] = $109; - $113 = $87; - $114 = HEAP32[$113>>2]|0; - $10 = $88; - $11 = 0; - $115 = $10; - $116 = $11; - $117 = (($115) + ($116<<2)|0); - $118 = HEAP32[$117>>2]|0; - $119 = ($114|0)<($118|0); - if ($119) { - $12 = $88; - $13 = 1; - $120 = $12; - $121 = $13; - $122 = (($120) + ($121<<2)|0); - $123 = HEAP32[$122>>2]|0; - $14 = $88; - $15 = 2; - $124 = $14; - $125 = $15; - $126 = (($124) + ($125<<2)|0); - HEAP32[$126>>2] = $123; - $16 = $88; - $17 = 0; - $127 = $16; - $128 = $17; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $18 = $88; - $19 = 1; - $131 = $18; - $132 = $19; - $133 = (($131) + ($132<<2)|0); - HEAP32[$133>>2] = $130; - $134 = $87; - $135 = HEAP32[$134>>2]|0; - $20 = $88; - $21 = 0; - $136 = $20; - $137 = $21; - $138 = (($136) + ($137<<2)|0); - HEAP32[$138>>2] = $135; - STACKTOP = sp;return; - } - $139 = $87; - $140 = HEAP32[$139>>2]|0; - $22 = $88; - $23 = 1; - $141 = $22; - $142 = $23; - $143 = (($141) + ($142<<2)|0); - $144 = HEAP32[$143>>2]|0; - $145 = ($140|0)<($144|0); - if ($145) { - $24 = $88; - $25 = 1; - $146 = $24; - $147 = $25; - $148 = (($146) + ($147<<2)|0); - $149 = HEAP32[$148>>2]|0; - $26 = $88; - $27 = 2; - $150 = $26; - $151 = $27; - $152 = (($150) + ($151<<2)|0); - HEAP32[$152>>2] = $149; - $153 = $87; - $154 = HEAP32[$153>>2]|0; - $28 = $88; - $29 = 1; - $155 = $28; - $156 = $29; - $157 = (($155) + ($156<<2)|0); - HEAP32[$157>>2] = $154; - STACKTOP = sp;return; - } else { - $158 = $87; - $159 = HEAP32[$158>>2]|0; - $30 = $88; - $31 = 2; - $160 = $30; - $161 = $31; - $162 = (($160) + ($161<<2)|0); - HEAP32[$162>>2] = $159; - STACKTOP = sp;return; - } - } else { - $42 = $88; - $43 = 2; - $188 = $42; - $189 = $43; - $190 = (($188) + ($189<<2)|0); - $191 = HEAP32[$190>>2]|0; - $192 = $87; - $193 = HEAP32[$192>>2]|0; - $194 = ($191|0)<($193|0); - if (!($194)) { - $74 = $88; - $75 = 1; - $259 = $74; - $260 = $75; - $261 = (($259) + ($260<<2)|0); - $262 = HEAP32[$261>>2]|0; - $263 = $87; - $264 = HEAP32[$263>>2]|0; - $265 = ($262|0)<($264|0); - if ($265) { - $76 = $88; - $77 = 1; - $266 = $76; - $267 = $77; - $268 = (($266) + ($267<<2)|0); - $269 = HEAP32[$268>>2]|0; - $78 = $88; - $79 = 0; - $270 = $78; - $271 = $79; - $272 = (($270) + ($271<<2)|0); - HEAP32[$272>>2] = $269; - $273 = $87; - $274 = HEAP32[$273>>2]|0; - $80 = $88; - $81 = 1; - $275 = $80; - $276 = $81; - $277 = (($275) + ($276<<2)|0); - HEAP32[$277>>2] = $274; - } else { - $278 = $87; - $279 = HEAP32[$278>>2]|0; - $82 = $88; - $83 = 0; - $280 = $82; - $281 = $83; - $282 = (($280) + ($281<<2)|0); - HEAP32[$282>>2] = $279; - } - $283 = ((($88)) + 20|0); - HEAP8[$283>>0] = 1; - STACKTOP = sp;return; - } - $44 = $88; - $45 = 1; - $195 = $44; - $196 = $45; - $197 = (($195) + ($196<<2)|0); - $198 = HEAP32[$197>>2]|0; - $46 = $88; - $47 = 0; - $199 = $46; - $200 = $47; - $201 = (($199) + ($200<<2)|0); - HEAP32[$201>>2] = $198; - $48 = $88; - $49 = 2; - $202 = $48; - $203 = $49; - $204 = (($202) + ($203<<2)|0); - $205 = HEAP32[$204>>2]|0; - $50 = $88; - $51 = 1; - $206 = $50; - $207 = $51; - $208 = (($206) + ($207<<2)|0); - HEAP32[$208>>2] = $205; - $52 = $88; - $53 = 4; - $209 = $52; - $210 = $53; - $211 = (($209) + ($210<<2)|0); - $212 = HEAP32[$211>>2]|0; - $213 = $87; - $214 = HEAP32[$213>>2]|0; - $215 = ($212|0)<($214|0); - if ($215) { - $54 = $88; - $55 = 3; - $216 = $54; - $217 = $55; - $218 = (($216) + ($217<<2)|0); - $219 = HEAP32[$218>>2]|0; - $56 = $88; - $57 = 2; - $220 = $56; - $221 = $57; - $222 = (($220) + ($221<<2)|0); - HEAP32[$222>>2] = $219; - $58 = $88; - $59 = 4; - $223 = $58; - $224 = $59; - $225 = (($223) + ($224<<2)|0); - $226 = HEAP32[$225>>2]|0; - $60 = $88; - $61 = 3; - $227 = $60; - $228 = $61; - $229 = (($227) + ($228<<2)|0); - HEAP32[$229>>2] = $226; - $230 = $87; - $231 = HEAP32[$230>>2]|0; - $62 = $88; - $63 = 4; - $232 = $62; - $233 = $63; - $234 = (($232) + ($233<<2)|0); - HEAP32[$234>>2] = $231; - STACKTOP = sp;return; - } - $64 = $88; - $65 = 3; - $235 = $64; - $236 = $65; - $237 = (($235) + ($236<<2)|0); - $238 = HEAP32[$237>>2]|0; - $239 = $87; - $240 = HEAP32[$239>>2]|0; - $241 = ($238|0)<($240|0); - if ($241) { - $66 = $88; - $67 = 3; - $242 = $66; - $243 = $67; - $244 = (($242) + ($243<<2)|0); - $245 = HEAP32[$244>>2]|0; - $68 = $88; - $69 = 2; - $246 = $68; - $247 = $69; - $248 = (($246) + ($247<<2)|0); - HEAP32[$248>>2] = $245; - $249 = $87; - $250 = HEAP32[$249>>2]|0; - $70 = $88; - $71 = 3; - $251 = $70; - $252 = $71; - $253 = (($251) + ($252<<2)|0); - HEAP32[$253>>2] = $250; - STACKTOP = sp;return; - } else { - $254 = $87; - $255 = HEAP32[$254>>2]|0; - $72 = $88; - $73 = 2; - $256 = $72; - $257 = $73; - $258 = (($256) + ($257<<2)|0); - HEAP32[$258>>2] = $255; - STACKTOP = sp;return; - } - } -} -function __ZNK6laszip13decompressors7integer4getKEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersINS0_3las7point10EE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $5 = $2; - $6 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); - $7 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($6,$7); - $8 = $3; - $9 = ((($8)) + 4|0); - $3 = $9; - $10 = $2; - $11 = ((($10)) + 4|0); - $12 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8)|(HEAPU8[$11+2>>0]<<16)|(HEAPU8[$11+3>>0]<<24); - $13 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($12,$13); - $14 = $3; - $15 = ((($14)) + 4|0); - $3 = $15; - $16 = $2; - $17 = ((($16)) + 8|0); - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($18,$19); - $20 = $3; - $21 = ((($20)) + 4|0); - $3 = $21; - $22 = $2; - $23 = ((($22)) + 12|0); - $24 = HEAPU8[$23>>0]|(HEAPU8[$23+1>>0]<<8); - $25 = $3; - __ZN6laszip7formats7packersItE4packEtPc($24,$25); - $26 = $3; - $27 = ((($26)) + 2|0); - $3 = $27; - $28 = $2; - $29 = (__ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($28)|0); - $4 = $29; - $30 = $4; - $31 = $3; - __ZN6laszip7formats7packersIhE4packEhPc($30,$31); - $32 = $3; - $33 = ((($32)) + 1|0); - $3 = $33; - $34 = $2; - $35 = ((($34)) + 15|0); - $36 = HEAP8[$35>>0]|0; - $37 = $3; - __ZN6laszip7formats7packersIhE4packEhPc($36,$37); - $38 = $3; - $39 = ((($38)) + 1|0); - $3 = $39; - $40 = $2; - $41 = ((($40)) + 16|0); - $42 = HEAP8[$41>>0]|0; - $43 = $3; - __ZN6laszip7formats7packersIcE4packEcPc($42,$43); - $44 = $3; - $45 = ((($44)) + 1|0); - $3 = $45; - $46 = $2; - $47 = ((($46)) + 17|0); - $48 = HEAP8[$47>>0]|0; - $49 = $3; - __ZN6laszip7formats7packersIcE4packEcPc($48,$49); - $50 = $3; - $51 = ((($50)) + 1|0); - $3 = $51; - $52 = $2; - $53 = ((($52)) + 18|0); - $54 = HEAPU8[$53>>0]|(HEAPU8[$53+1>>0]<<8); - $55 = $3; - __ZN6laszip7formats7packersItE4packEtPc($54,$55); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIiE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN6laszip7formats7packersIjE6unpackEPKc($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersItE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = HEAP8[$4>>0]|0; - $6 = $5 << 24 >> 24; - $2 = $6; - $7 = $1; - $8 = ((($7)) + 1|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9 << 24 >> 24; - $3 = $10; - $11 = $3; - $12 = $11&65535; - $13 = $12 & 255; - $14 = $13 << 8; - $15 = $2; - $16 = $15&65535; - $17 = $16 & 255; - $18 = $14 | $17; - $19 = $18&65535; - STACKTOP = sp;return ($19|0); -} -function __ZN6laszip7formats7packersIhE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersIcE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersIjE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = $0; - $6 = $1; - $7 = HEAP8[$6>>0]|0; - $8 = $7 << 24 >> 24; - $2 = $8; - $9 = $1; - $10 = ((($9)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11 << 24 >> 24; - $3 = $12; - $13 = $1; - $14 = ((($13)) + 2|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 << 24 >> 24; - $4 = $16; - $17 = $1; - $18 = ((($17)) + 3|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19 << 24 >> 24; - $5 = $20; - $21 = $5; - $22 = $21 << 24; - $23 = $4; - $24 = $23 & 255; - $25 = $24 << 16; - $26 = $22 | $25; - $27 = $3; - $28 = $27 & 255; - $29 = $28 << 8; - $30 = $26 | $29; - $31 = $2; - $32 = $31 & 255; - $33 = $30 | $32; - STACKTOP = sp;return ($33|0); -} -function __ZN6laszip7formats7packersIiE4packEiPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZN6laszip7formats7packersIjE4packEjPc($4,$5); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersItE4packEtPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4&65535; - $6 = $5 >> 8; - $7 = $6 & 255; - $8 = $7&255; - $9 = $3; - $10 = ((($9)) + 1|0); - HEAP8[$10>>0] = $8; - $11 = $2; - $12 = $11&65535; - $13 = $12 & 255; - $14 = $13&255; - $15 = $3; - HEAP8[$15>>0] = $14; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIhE4packEhPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIcE4packEcPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIjE4packEjPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4 >>> 24; - $6 = $5 & 255; - $7 = $6&255; - $8 = $3; - $9 = ((($8)) + 3|0); - HEAP8[$9>>0] = $7; - $10 = $2; - $11 = $10 >>> 16; - $12 = $11 & 255; - $13 = $12&255; - $14 = $3; - $15 = ((($14)) + 2|0); - HEAP8[$15>>0] = $13; - $16 = $2; - $17 = $16 >>> 8; - $18 = $17 & 255; - $19 = $18&255; - $20 = $3; - $21 = ((($20)) + 1|0); - HEAP8[$21>>0] = $19; - $22 = $2; - $23 = $22 & 255; - $24 = $23&255; - $25 = $3; - HEAP8[$25>>0] = $24; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 360; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2100); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2124); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($2); - $3 = ((($2)) + 164|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($3); - $4 = ((($2)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($4); - $5 = ((($2)) + 324|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 325|0); - HEAP8[$6>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2100); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $29 = sp + 120|0; - $30 = sp + 4|0; - $31 = sp; - $28 = $0; - $32 = $28; - HEAP8[$32>>0] = 0; - $33 = ((($32)) + 4|0); - __ZN6laszip6models10arithmeticC2EjbPj($33,516,0,0); - $34 = ((($32)) + 48|0); - __ZN6laszip6models10arithmeticC2EjbPj($34,6,0,0); - $35 = ((($32)) + 92|0); - HEAP32[$35>>2] = 0; - $36 = ((($32)) + 96|0); - HEAP32[$36>>2] = 0; - $37 = ((($32)) + 100|0); - __ZNSt3__25arrayIN6laszip7formats3las7gpstimeELj4EEC2Ev($37); - $38 = ((($32)) + 100|0); - __ZN6laszip7formats3las7gpstimeC2Ev($29); - $26 = $38; - $27 = $29; - $39 = $26; - $40 = $27; - $23 = $39; - $24 = 4; - $25 = $40; - $41 = $23; - $42 = $24; - $22 = $42; - $43 = $22; - $44 = $25; - $19 = $41; - $20 = $43; - $21 = $44; - while(1) { - $45 = $20; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - $47 = $21; - $48 = $19; - ;HEAP8[$48>>0]=HEAP8[$47>>0]|0;HEAP8[$48+1>>0]=HEAP8[$47+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$47+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$47+3>>0]|0;HEAP8[$48+4>>0]=HEAP8[$47+4>>0]|0;HEAP8[$48+5>>0]=HEAP8[$47+5>>0]|0;HEAP8[$48+6>>0]=HEAP8[$47+6>>0]|0;HEAP8[$48+7>>0]=HEAP8[$47+7>>0]|0; - $49 = $19; - $50 = ((($49)) + 8|0); - $19 = $50; - $51 = $20; - $52 = (($51) + -1)|0; - $20 = $52; - } - $53 = ((($32)) + 132|0); - HEAP32[$30>>2] = 0; - $17 = $53; - $18 = $30; - $54 = $17; - $55 = $18; - $14 = $54; - $15 = 4; - $16 = $55; - $56 = $14; - $57 = $15; - $13 = $57; - $58 = $13; - $59 = $16; - $10 = $56; - $11 = $58; - $12 = $59; - while(1) { - $60 = $11; - $61 = ($60>>>0)>(0); - if (!($61)) { - break; - } - $62 = $12; - $63 = HEAP32[$62>>2]|0; - $64 = $10; - HEAP32[$64>>2] = $63; - $65 = $10; - $66 = ((($65)) + 4|0); - $10 = $66; - $67 = $11; - $68 = (($67) + -1)|0; - $11 = $68; - } - $69 = ((($32)) + 148|0); - HEAP32[$31>>2] = 0; - $8 = $69; - $9 = $31; - $70 = $8; - $71 = $9; - $5 = $70; - $6 = 4; - $7 = $71; - $72 = $5; - $73 = $6; - $4 = $73; - $74 = $4; - $75 = $7; - $1 = $72; - $2 = $74; - $3 = $75; - while(1) { - $76 = $2; - $77 = ($76>>>0)>(0); - if (!($77)) { - break; - } - $78 = $3; - $79 = HEAP32[$78>>2]|0; - $80 = $1; - HEAP32[$80>>2] = $79; - $81 = $1; - $82 = ((($81)) + 4|0); - $1 = $82; - $83 = $2; - $84 = (($83) + -1)|0; - $2 = $84; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,9,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerC2Ejjjj($2,32,9,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 48|0); - __ZN6laszip6models10arithmeticD2Ev($3); - $4 = ((($2)) + 4|0); - __ZN6laszip6models10arithmeticD2Ev($4); - STACKTOP = sp;return; -} -function __ZNSt3__25arrayIN6laszip7formats3las7gpstimeELj4EEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - $4 = $2; - while(1) { - __ZN6laszip7formats3las7gpstimeC2Ev($4); - $5 = ((($4)) + 8|0); - $6 = ($5|0)==($3|0); - if ($6) { - break; - } else { - $4 = $5; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7gpstimeC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2; - $4 = $3; - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=(0>>8)&255;HEAP8[$4+2>>0]=(0>>16)&255;HEAP8[$4+3>>0]=0>>24; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP8[$6>>0]=0&255;HEAP8[$6+1>>0]=(0>>8)&255;HEAP8[$6+2>>0]=(0>>16)&255;HEAP8[$6+3>>0]=0>>24; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($3); - $4 = ((($2)) + 164|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($4); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0; - var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0; - var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0; - var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0; - var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0; - var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0; - var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0; - var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0; - var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0; - var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0; - var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0; - var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0; - var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0; - var $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0; - var $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0; - var $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0; - var $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0); - $91 = sp + 360|0; - $88 = $0; - $89 = $1; - $90 = $2; - $94 = $88; - $95 = ((($94)) + 325|0); - $96 = HEAP8[$95>>0]|0; - $97 = $96&1; - if (!($97)) { - $98 = ((($94)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($98); - $99 = ((($94)) + 325|0); - HEAP8[$99>>0] = 1; - } - $100 = HEAP8[$94>>0]|0; - $101 = $100&1; - if (!($101)) { - HEAP8[$94>>0] = 1; - $102 = $89; - $103 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($102)|0); - $104 = $90; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($103,$104,8); - $105 = $90; - $106 = (__ZN6laszip7formats7packersINS0_3las7gpstimeEE6unpackEPKc($105)|0); - $107 = tempRet0; - $108 = $91; - $109 = $108; - HEAP8[$109>>0]=$106&255;HEAP8[$109+1>>0]=($106>>8)&255;HEAP8[$109+2>>0]=($106>>16)&255;HEAP8[$109+3>>0]=$106>>24; - $110 = (($108) + 4)|0; - $111 = $110; - HEAP8[$111>>0]=$107&255;HEAP8[$111+1>>0]=($107>>8)&255;HEAP8[$111+2>>0]=($107>>16)&255;HEAP8[$111+3>>0]=$107>>24; - $112 = ((($94)) + 100|0); - $85 = $112; - $86 = 0; - $113 = $85; - $114 = $86; - $115 = (($113) + ($114<<3)|0); - ;HEAP8[$115>>0]=HEAP8[$91>>0]|0;HEAP8[$115+1>>0]=HEAP8[$91+1>>0]|0;HEAP8[$115+2>>0]=HEAP8[$91+2>>0]|0;HEAP8[$115+3>>0]=HEAP8[$91+3>>0]|0;HEAP8[$115+4>>0]=HEAP8[$91+4>>0]|0;HEAP8[$115+5>>0]=HEAP8[$91+5>>0]|0;HEAP8[$115+6>>0]=HEAP8[$91+6>>0]|0;HEAP8[$115+7>>0]=HEAP8[$91+7>>0]|0; - $116 = $90; - $117 = ((($116)) + 8|0); - $87 = $117; - $601 = $87; - STACKTOP = sp;return ($601|0); - } - $118 = ((($94)) + 132|0); - $119 = ((($94)) + 92|0); - $120 = HEAP32[$119>>2]|0; - $83 = $118; - $84 = $120; - $121 = $83; - $122 = $84; - $123 = (($121) + ($122<<2)|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($124|0)==(0); - $126 = $89; - do { - if ($125) { - $127 = ((($94)) + 48|0); - $128 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($126,$127)|0); - $92 = $128; - $129 = $92; - $130 = ($129|0)==(1); - if ($130) { - $131 = ((($94)) + 244|0); - $132 = $89; - $133 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($131,$132,0,0)|0); - $134 = ((($94)) + 132|0); - $135 = ((($94)) + 92|0); - $136 = HEAP32[$135>>2]|0; - $81 = $134; - $82 = $136; - $137 = $81; - $138 = $82; - $139 = (($137) + ($138<<2)|0); - HEAP32[$139>>2] = $133; - $140 = ((($94)) + 132|0); - $141 = ((($94)) + 92|0); - $142 = HEAP32[$141>>2]|0; - $71 = $140; - $72 = $142; - $143 = $71; - $144 = $72; - $145 = (($143) + ($144<<2)|0); - $146 = HEAP32[$145>>2]|0; - $147 = ($146|0)<(0); - $148 = $147 << 31 >> 31; - $149 = ((($94)) + 100|0); - $150 = ((($94)) + 92|0); - $151 = HEAP32[$150>>2]|0; - $63 = $149; - $64 = $151; - $152 = $63; - $153 = $64; - $154 = (($152) + ($153<<3)|0); - $155 = $154; - $156 = $155; - $157 = HEAPU8[$156>>0]|(HEAPU8[$156+1>>0]<<8)|(HEAPU8[$156+2>>0]<<16)|(HEAPU8[$156+3>>0]<<24); - $158 = (($155) + 4)|0; - $159 = $158; - $160 = HEAPU8[$159>>0]|(HEAPU8[$159+1>>0]<<8)|(HEAPU8[$159+2>>0]<<16)|(HEAPU8[$159+3>>0]<<24); - $161 = (_i64Add(($157|0),($160|0),($146|0),($148|0))|0); - $162 = tempRet0; - $163 = $154; - $164 = $163; - HEAP8[$164>>0]=$161&255;HEAP8[$164+1>>0]=($161>>8)&255;HEAP8[$164+2>>0]=($161>>16)&255;HEAP8[$164+3>>0]=$161>>24; - $165 = (($163) + 4)|0; - $166 = $165; - HEAP8[$166>>0]=$162&255;HEAP8[$166+1>>0]=($162>>8)&255;HEAP8[$166+2>>0]=($162>>16)&255;HEAP8[$166+3>>0]=$162>>24; - $167 = ((($94)) + 148|0); - $168 = ((($94)) + 92|0); - $169 = HEAP32[$168>>2]|0; - $49 = $167; - $50 = $169; - $170 = $49; - $171 = $50; - $172 = (($170) + ($171<<2)|0); - HEAP32[$172>>2] = 0; - break; - } - $173 = $92; - $174 = ($173|0)==(2); - if ($174) { - $175 = ((($94)) + 96|0); - $176 = HEAP32[$175>>2]|0; - $177 = (($176) + 1)|0; - $178 = $177 & 3; - $179 = ((($94)) + 96|0); - HEAP32[$179>>2] = $178; - $180 = ((($94)) + 244|0); - $181 = $89; - $182 = ((($94)) + 100|0); - $183 = ((($94)) + 92|0); - $184 = HEAP32[$183>>2]|0; - $45 = $182; - $46 = $184; - $185 = $45; - $186 = $46; - $187 = (($185) + ($186<<3)|0); - $188 = $187; - $189 = $188; - $190 = HEAPU8[$189>>0]|(HEAPU8[$189+1>>0]<<8)|(HEAPU8[$189+2>>0]<<16)|(HEAPU8[$189+3>>0]<<24); - $191 = (($188) + 4)|0; - $192 = $191; - $193 = HEAPU8[$192>>0]|(HEAPU8[$192+1>>0]<<8)|(HEAPU8[$192+2>>0]<<16)|(HEAPU8[$192+3>>0]<<24); - $194 = (_bitshift64Ashr(($190|0),($193|0),32)|0); - $195 = tempRet0; - $196 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($180,$181,$194,8)|0); - $197 = ($196|0)<(0); - $198 = $197 << 31 >> 31; - $199 = ((($94)) + 100|0); - $200 = ((($94)) + 96|0); - $201 = HEAP32[$200>>2]|0; - $33 = $199; - $34 = $201; - $202 = $33; - $203 = $34; - $204 = (($202) + ($203<<3)|0); - $205 = $204; - $206 = $205; - HEAP8[$206>>0]=$196&255;HEAP8[$206+1>>0]=($196>>8)&255;HEAP8[$206+2>>0]=($196>>16)&255;HEAP8[$206+3>>0]=$196>>24; - $207 = (($205) + 4)|0; - $208 = $207; - HEAP8[$208>>0]=$198&255;HEAP8[$208+1>>0]=($198>>8)&255;HEAP8[$208+2>>0]=($198>>16)&255;HEAP8[$208+3>>0]=$198>>24; - $209 = ((($94)) + 100|0); - $210 = ((($94)) + 96|0); - $211 = HEAP32[$210>>2]|0; - $29 = $209; - $30 = $211; - $212 = $29; - $213 = $30; - $214 = (($212) + ($213<<3)|0); - $215 = $214; - $216 = $215; - $217 = HEAPU8[$216>>0]|(HEAPU8[$216+1>>0]<<8)|(HEAPU8[$216+2>>0]<<16)|(HEAPU8[$216+3>>0]<<24); - $218 = (($215) + 4)|0; - $219 = $218; - $220 = HEAPU8[$219>>0]|(HEAPU8[$219+1>>0]<<8)|(HEAPU8[$219+2>>0]<<16)|(HEAPU8[$219+3>>0]<<24); - $221 = ((($94)) + 100|0); - $222 = ((($94)) + 96|0); - $223 = HEAP32[$222>>2]|0; - $25 = $221; - $26 = $223; - $224 = $25; - $225 = $26; - $226 = (($224) + ($225<<3)|0); - $227 = $226; - $228 = $227; - HEAP8[$228>>0]=0&255;HEAP8[$228+1>>0]=(0>>8)&255;HEAP8[$228+2>>0]=(0>>16)&255;HEAP8[$228+3>>0]=0>>24; - $229 = (($227) + 4)|0; - $230 = $229; - HEAP8[$230>>0]=$217&255;HEAP8[$230+1>>0]=($217>>8)&255;HEAP8[$230+2>>0]=($217>>16)&255;HEAP8[$230+3>>0]=$217>>24; - $231 = $89; - $232 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($231)|0); - $233 = ((($94)) + 100|0); - $234 = ((($94)) + 96|0); - $235 = HEAP32[$234>>2]|0; - $13 = $233; - $14 = $235; - $236 = $13; - $237 = $14; - $238 = (($236) + ($237<<3)|0); - $239 = $238; - $240 = $239; - $241 = HEAPU8[$240>>0]|(HEAPU8[$240+1>>0]<<8)|(HEAPU8[$240+2>>0]<<16)|(HEAPU8[$240+3>>0]<<24); - $242 = (($239) + 4)|0; - $243 = $242; - $244 = HEAPU8[$243>>0]|(HEAPU8[$243+1>>0]<<8)|(HEAPU8[$243+2>>0]<<16)|(HEAPU8[$243+3>>0]<<24); - $245 = $241 | $232; - $246 = $238; - $247 = $246; - HEAP8[$247>>0]=$245&255;HEAP8[$247+1>>0]=($245>>8)&255;HEAP8[$247+2>>0]=($245>>16)&255;HEAP8[$247+3>>0]=$245>>24; - $248 = (($246) + 4)|0; - $249 = $248; - HEAP8[$249>>0]=$244&255;HEAP8[$249+1>>0]=($244>>8)&255;HEAP8[$249+2>>0]=($244>>16)&255;HEAP8[$249+3>>0]=$244>>24; - $250 = ((($94)) + 96|0); - $251 = HEAP32[$250>>2]|0; - $252 = ((($94)) + 92|0); - HEAP32[$252>>2] = $251; - $253 = ((($94)) + 132|0); - $254 = ((($94)) + 92|0); - $255 = HEAP32[$254>>2]|0; - $7 = $253; - $8 = $255; - $256 = $7; - $257 = $8; - $258 = (($256) + ($257<<2)|0); - HEAP32[$258>>2] = 0; - $259 = ((($94)) + 148|0); - $260 = ((($94)) + 92|0); - $261 = HEAP32[$260>>2]|0; - $3 = $259; - $4 = $261; - $262 = $3; - $263 = $4; - $264 = (($262) + ($263<<2)|0); - HEAP32[$264>>2] = 0; - break; - } - $265 = $92; - $266 = ($265|0)>(2); - if ($266) { - $267 = ((($94)) + 92|0); - $268 = HEAP32[$267>>2]|0; - $269 = $92; - $270 = (($268) + ($269))|0; - $271 = (($270) - 2)|0; - $272 = $271 & 3; - $273 = ((($94)) + 92|0); - HEAP32[$273>>2] = $272; - $274 = $89; - $275 = $90; - (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($94,$274,$275)|0); - } - } else { - $276 = ((($94)) + 4|0); - $277 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($126,$276)|0); - $92 = $277; - $278 = $92; - $279 = ($278|0)==(1); - if ($279) { - $280 = ((($94)) + 244|0); - $281 = $89; - $282 = ((($94)) + 132|0); - $283 = ((($94)) + 92|0); - $284 = HEAP32[$283>>2]|0; - $5 = $282; - $6 = $284; - $285 = $5; - $286 = $6; - $287 = (($285) + ($286<<2)|0); - $288 = HEAP32[$287>>2]|0; - $289 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($280,$281,$288,1)|0); - $290 = ($289|0)<(0); - $291 = $290 << 31 >> 31; - $292 = ((($94)) + 100|0); - $293 = ((($94)) + 92|0); - $294 = HEAP32[$293>>2]|0; - $9 = $292; - $10 = $294; - $295 = $9; - $296 = $10; - $297 = (($295) + ($296<<3)|0); - $298 = $297; - $299 = $298; - $300 = HEAPU8[$299>>0]|(HEAPU8[$299+1>>0]<<8)|(HEAPU8[$299+2>>0]<<16)|(HEAPU8[$299+3>>0]<<24); - $301 = (($298) + 4)|0; - $302 = $301; - $303 = HEAPU8[$302>>0]|(HEAPU8[$302+1>>0]<<8)|(HEAPU8[$302+2>>0]<<16)|(HEAPU8[$302+3>>0]<<24); - $304 = (_i64Add(($300|0),($303|0),($289|0),($291|0))|0); - $305 = tempRet0; - $306 = $297; - $307 = $306; - HEAP8[$307>>0]=$304&255;HEAP8[$307+1>>0]=($304>>8)&255;HEAP8[$307+2>>0]=($304>>16)&255;HEAP8[$307+3>>0]=$304>>24; - $308 = (($306) + 4)|0; - $309 = $308; - HEAP8[$309>>0]=$305&255;HEAP8[$309+1>>0]=($305>>8)&255;HEAP8[$309+2>>0]=($305>>16)&255;HEAP8[$309+3>>0]=$305>>24; - $310 = ((($94)) + 148|0); - $311 = ((($94)) + 92|0); - $312 = HEAP32[$311>>2]|0; - $11 = $310; - $12 = $312; - $313 = $11; - $314 = $12; - $315 = (($313) + ($314<<2)|0); - HEAP32[$315>>2] = 0; - break; - } - $316 = $92; - $317 = ($316|0)<(511); - $318 = $92; - if (!($317)) { - $490 = ($318|0)==(512); - if ($490) { - $491 = ((($94)) + 96|0); - $492 = HEAP32[$491>>2]|0; - $493 = (($492) + 1)|0; - $494 = $493 & 3; - $495 = ((($94)) + 96|0); - HEAP32[$495>>2] = $494; - $496 = ((($94)) + 244|0); - $497 = $89; - $498 = ((($94)) + 100|0); - $499 = ((($94)) + 92|0); - $500 = HEAP32[$499>>2]|0; - $61 = $498; - $62 = $500; - $501 = $61; - $502 = $62; - $503 = (($501) + ($502<<3)|0); - $504 = $503; - $505 = $504; - $506 = HEAPU8[$505>>0]|(HEAPU8[$505+1>>0]<<8)|(HEAPU8[$505+2>>0]<<16)|(HEAPU8[$505+3>>0]<<24); - $507 = (($504) + 4)|0; - $508 = $507; - $509 = HEAPU8[$508>>0]|(HEAPU8[$508+1>>0]<<8)|(HEAPU8[$508+2>>0]<<16)|(HEAPU8[$508+3>>0]<<24); - $510 = (_bitshift64Ashr(($506|0),($509|0),32)|0); - $511 = tempRet0; - $512 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($496,$497,$510,8)|0); - $513 = ($512|0)<(0); - $514 = $513 << 31 >> 31; - $515 = ((($94)) + 100|0); - $516 = ((($94)) + 96|0); - $517 = HEAP32[$516>>2]|0; - $65 = $515; - $66 = $517; - $518 = $65; - $519 = $66; - $520 = (($518) + ($519<<3)|0); - $521 = $520; - $522 = $521; - HEAP8[$522>>0]=$512&255;HEAP8[$522+1>>0]=($512>>8)&255;HEAP8[$522+2>>0]=($512>>16)&255;HEAP8[$522+3>>0]=$512>>24; - $523 = (($521) + 4)|0; - $524 = $523; - HEAP8[$524>>0]=$514&255;HEAP8[$524+1>>0]=($514>>8)&255;HEAP8[$524+2>>0]=($514>>16)&255;HEAP8[$524+3>>0]=$514>>24; - $525 = ((($94)) + 100|0); - $526 = ((($94)) + 96|0); - $527 = HEAP32[$526>>2]|0; - $67 = $525; - $68 = $527; - $528 = $67; - $529 = $68; - $530 = (($528) + ($529<<3)|0); - $531 = $530; - $532 = $531; - $533 = HEAPU8[$532>>0]|(HEAPU8[$532+1>>0]<<8)|(HEAPU8[$532+2>>0]<<16)|(HEAPU8[$532+3>>0]<<24); - $534 = (($531) + 4)|0; - $535 = $534; - $536 = HEAPU8[$535>>0]|(HEAPU8[$535+1>>0]<<8)|(HEAPU8[$535+2>>0]<<16)|(HEAPU8[$535+3>>0]<<24); - $537 = ((($94)) + 100|0); - $538 = ((($94)) + 96|0); - $539 = HEAP32[$538>>2]|0; - $69 = $537; - $70 = $539; - $540 = $69; - $541 = $70; - $542 = (($540) + ($541<<3)|0); - $543 = $542; - $544 = $543; - HEAP8[$544>>0]=0&255;HEAP8[$544+1>>0]=(0>>8)&255;HEAP8[$544+2>>0]=(0>>16)&255;HEAP8[$544+3>>0]=0>>24; - $545 = (($543) + 4)|0; - $546 = $545; - HEAP8[$546>>0]=$533&255;HEAP8[$546+1>>0]=($533>>8)&255;HEAP8[$546+2>>0]=($533>>16)&255;HEAP8[$546+3>>0]=$533>>24; - $547 = $89; - $548 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($547)|0); - $549 = ((($94)) + 100|0); - $550 = ((($94)) + 96|0); - $551 = HEAP32[$550>>2]|0; - $73 = $549; - $74 = $551; - $552 = $73; - $553 = $74; - $554 = (($552) + ($553<<3)|0); - $555 = $554; - $556 = $555; - $557 = HEAPU8[$556>>0]|(HEAPU8[$556+1>>0]<<8)|(HEAPU8[$556+2>>0]<<16)|(HEAPU8[$556+3>>0]<<24); - $558 = (($555) + 4)|0; - $559 = $558; - $560 = HEAPU8[$559>>0]|(HEAPU8[$559+1>>0]<<8)|(HEAPU8[$559+2>>0]<<16)|(HEAPU8[$559+3>>0]<<24); - $561 = $557 | $548; - $562 = $554; - $563 = $562; - HEAP8[$563>>0]=$561&255;HEAP8[$563+1>>0]=($561>>8)&255;HEAP8[$563+2>>0]=($561>>16)&255;HEAP8[$563+3>>0]=$561>>24; - $564 = (($562) + 4)|0; - $565 = $564; - HEAP8[$565>>0]=$560&255;HEAP8[$565+1>>0]=($560>>8)&255;HEAP8[$565+2>>0]=($560>>16)&255;HEAP8[$565+3>>0]=$560>>24; - $566 = ((($94)) + 96|0); - $567 = HEAP32[$566>>2]|0; - $568 = ((($94)) + 92|0); - HEAP32[$568>>2] = $567; - $569 = ((($94)) + 132|0); - $570 = ((($94)) + 92|0); - $571 = HEAP32[$570>>2]|0; - $75 = $569; - $76 = $571; - $572 = $75; - $573 = $76; - $574 = (($572) + ($573<<2)|0); - HEAP32[$574>>2] = 0; - $575 = ((($94)) + 148|0); - $576 = ((($94)) + 92|0); - $577 = HEAP32[$576>>2]|0; - $77 = $575; - $78 = $577; - $578 = $77; - $579 = $78; - $580 = (($578) + ($579<<2)|0); - HEAP32[$580>>2] = 0; - break; - } - $581 = $92; - $582 = ($581|0)>=(512); - if (!($582)) { - break; - } - $583 = ((($94)) + 92|0); - $584 = HEAP32[$583>>2]|0; - $585 = $92; - $586 = (($584) + ($585))|0; - $587 = (($586) - 512)|0; - $588 = $587 & 3; - $589 = ((($94)) + 92|0); - HEAP32[$589>>2] = $588; - $590 = $89; - $591 = $90; - (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($94,$590,$591)|0); - break; - } - $319 = ($318|0)==(0); - do { - if ($319) { - $320 = ((($94)) + 244|0); - $321 = $89; - $322 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($320,$321,0,7)|0); - $93 = $322; - $323 = ((($94)) + 148|0); - $324 = ((($94)) + 92|0); - $325 = HEAP32[$324>>2]|0; - $15 = $323; - $16 = $325; - $326 = $15; - $327 = $16; - $328 = (($326) + ($327<<2)|0); - $329 = HEAP32[$328>>2]|0; - $330 = (($329) + 1)|0; - HEAP32[$328>>2] = $330; - $331 = ((($94)) + 148|0); - $332 = ((($94)) + 92|0); - $333 = HEAP32[$332>>2]|0; - $17 = $331; - $18 = $333; - $334 = $17; - $335 = $18; - $336 = (($334) + ($335<<2)|0); - $337 = HEAP32[$336>>2]|0; - $338 = ($337|0)>(3); - if ($338) { - $339 = $93; - $340 = ((($94)) + 132|0); - $341 = ((($94)) + 92|0); - $342 = HEAP32[$341>>2]|0; - $19 = $340; - $20 = $342; - $343 = $19; - $344 = $20; - $345 = (($343) + ($344<<2)|0); - HEAP32[$345>>2] = $339; - $346 = ((($94)) + 148|0); - $347 = ((($94)) + 92|0); - $348 = HEAP32[$347>>2]|0; - $21 = $346; - $22 = $348; - $349 = $21; - $350 = $22; - $351 = (($349) + ($350<<2)|0); - HEAP32[$351>>2] = 0; - } - } else { - $352 = $92; - $353 = ($352|0)<(500); - $354 = $92; - if ($353) { - $355 = ($354|0)<(10); - $356 = ((($94)) + 244|0); - $357 = $89; - $358 = $92; - $359 = ((($94)) + 132|0); - $360 = ((($94)) + 92|0); - $361 = HEAP32[$360>>2]|0; - if ($355) { - $23 = $359; - $24 = $361; - $362 = $23; - $363 = $24; - $364 = (($362) + ($363<<2)|0); - $365 = HEAP32[$364>>2]|0; - $366 = Math_imul($358, $365)|0; - $367 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($356,$357,$366,2)|0); - $93 = $367; - break; - } else { - $27 = $359; - $28 = $361; - $368 = $27; - $369 = $28; - $370 = (($368) + ($369<<2)|0); - $371 = HEAP32[$370>>2]|0; - $372 = Math_imul($358, $371)|0; - $373 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($356,$357,$372,3)|0); - $93 = $373; - break; - } - } - $374 = ($354|0)==(500); - if ($374) { - $375 = ((($94)) + 244|0); - $376 = $89; - $377 = ((($94)) + 132|0); - $378 = ((($94)) + 92|0); - $379 = HEAP32[$378>>2]|0; - $31 = $377; - $32 = $379; - $380 = $31; - $381 = $32; - $382 = (($380) + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($383*500)|0; - $385 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($375,$376,$384,4)|0); - $93 = $385; - $386 = ((($94)) + 148|0); - $387 = ((($94)) + 92|0); - $388 = HEAP32[$387>>2]|0; - $35 = $386; - $36 = $388; - $389 = $35; - $390 = $36; - $391 = (($389) + ($390<<2)|0); - $392 = HEAP32[$391>>2]|0; - $393 = (($392) + 1)|0; - HEAP32[$391>>2] = $393; - $394 = ((($94)) + 148|0); - $395 = ((($94)) + 92|0); - $396 = HEAP32[$395>>2]|0; - $37 = $394; - $38 = $396; - $397 = $37; - $398 = $38; - $399 = (($397) + ($398<<2)|0); - $400 = HEAP32[$399>>2]|0; - $401 = ($400|0)>(3); - if (!($401)) { - break; - } - $402 = $93; - $403 = ((($94)) + 132|0); - $404 = ((($94)) + 92|0); - $405 = HEAP32[$404>>2]|0; - $39 = $403; - $40 = $405; - $406 = $39; - $407 = $40; - $408 = (($406) + ($407<<2)|0); - HEAP32[$408>>2] = $402; - $409 = ((($94)) + 148|0); - $410 = ((($94)) + 92|0); - $411 = HEAP32[$410>>2]|0; - $41 = $409; - $42 = $411; - $412 = $41; - $413 = $42; - $414 = (($412) + ($413<<2)|0); - HEAP32[$414>>2] = 0; - break; - } - $415 = $92; - $416 = (500 - ($415))|0; - $92 = $416; - $417 = $92; - $418 = ($417|0)>(-10); - $419 = ((($94)) + 244|0); - $420 = $89; - if ($418) { - $421 = $92; - $422 = ((($94)) + 132|0); - $423 = ((($94)) + 92|0); - $424 = HEAP32[$423>>2]|0; - $43 = $422; - $44 = $424; - $425 = $43; - $426 = $44; - $427 = (($425) + ($426<<2)|0); - $428 = HEAP32[$427>>2]|0; - $429 = Math_imul($421, $428)|0; - $430 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($419,$420,$429,5)|0); - $93 = $430; - break; - } - $431 = ((($94)) + 132|0); - $432 = ((($94)) + 92|0); - $433 = HEAP32[$432>>2]|0; - $47 = $431; - $48 = $433; - $434 = $47; - $435 = $48; - $436 = (($434) + ($435<<2)|0); - $437 = HEAP32[$436>>2]|0; - $438 = Math_imul(-10, $437)|0; - $439 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($419,$420,$438,6)|0); - $93 = $439; - $440 = ((($94)) + 148|0); - $441 = ((($94)) + 92|0); - $442 = HEAP32[$441>>2]|0; - $51 = $440; - $52 = $442; - $443 = $51; - $444 = $52; - $445 = (($443) + ($444<<2)|0); - $446 = HEAP32[$445>>2]|0; - $447 = (($446) + 1)|0; - HEAP32[$445>>2] = $447; - $448 = ((($94)) + 148|0); - $449 = ((($94)) + 92|0); - $450 = HEAP32[$449>>2]|0; - $53 = $448; - $54 = $450; - $451 = $53; - $452 = $54; - $453 = (($451) + ($452<<2)|0); - $454 = HEAP32[$453>>2]|0; - $455 = ($454|0)>(3); - if ($455) { - $456 = $93; - $457 = ((($94)) + 132|0); - $458 = ((($94)) + 92|0); - $459 = HEAP32[$458>>2]|0; - $55 = $457; - $56 = $459; - $460 = $55; - $461 = $56; - $462 = (($460) + ($461<<2)|0); - HEAP32[$462>>2] = $456; - $463 = ((($94)) + 148|0); - $464 = ((($94)) + 92|0); - $465 = HEAP32[$464>>2]|0; - $57 = $463; - $58 = $465; - $466 = $57; - $467 = $58; - $468 = (($466) + ($467<<2)|0); - HEAP32[$468>>2] = 0; - } - } - } while(0); - $469 = $93; - $470 = ($469|0)<(0); - $471 = $470 << 31 >> 31; - $472 = ((($94)) + 100|0); - $473 = ((($94)) + 92|0); - $474 = HEAP32[$473>>2]|0; - $59 = $472; - $60 = $474; - $475 = $59; - $476 = $60; - $477 = (($475) + ($476<<3)|0); - $478 = $477; - $479 = $478; - $480 = HEAPU8[$479>>0]|(HEAPU8[$479+1>>0]<<8)|(HEAPU8[$479+2>>0]<<16)|(HEAPU8[$479+3>>0]<<24); - $481 = (($478) + 4)|0; - $482 = $481; - $483 = HEAPU8[$482>>0]|(HEAPU8[$482+1>>0]<<8)|(HEAPU8[$482+2>>0]<<16)|(HEAPU8[$482+3>>0]<<24); - $484 = (_i64Add(($480|0),($483|0),($469|0),($471|0))|0); - $485 = tempRet0; - $486 = $477; - $487 = $486; - HEAP8[$487>>0]=$484&255;HEAP8[$487+1>>0]=($484>>8)&255;HEAP8[$487+2>>0]=($484>>16)&255;HEAP8[$487+3>>0]=$484>>24; - $488 = (($486) + 4)|0; - $489 = $488; - HEAP8[$489>>0]=$485&255;HEAP8[$489+1>>0]=($485>>8)&255;HEAP8[$489+2>>0]=($485>>16)&255;HEAP8[$489+3>>0]=$485>>24; - } - } while(0); - $592 = ((($94)) + 100|0); - $593 = ((($94)) + 92|0); - $594 = HEAP32[$593>>2]|0; - $79 = $592; - $80 = $594; - $595 = $79; - $596 = $80; - $597 = (($595) + ($596<<3)|0); - $598 = $90; - __ZN6laszip7formats7packersINS0_3las7gpstimeEE4packERKS3_Pc($597,$598); - $599 = $90; - $600 = ((($599)) + 8|0); - $87 = $600; - $601 = $87; - STACKTOP = sp;return ($601|0); -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integer4initEv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las7gpstimeEE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = sp + 24|0; - $3 = sp + 8|0; - $4 = sp; - $2 = $0; - $5 = $2; - $6 = (__ZN6laszip7formats7packersIjE6unpackEPKc($5)|0); - $7 = $3; - $8 = $7; - HEAP32[$8>>2] = $6; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 0; - $11 = $2; - $12 = ((($11)) + 4|0); - $13 = (__ZN6laszip7formats7packersIjE6unpackEPKc($12)|0); - $14 = $4; - $15 = $14; - HEAP32[$15>>2] = $13; - $16 = (($14) + 4)|0; - $17 = $16; - HEAP32[$17>>2] = 0; - $18 = $4; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + 4)|0; - $22 = $21; - $23 = HEAP32[$22>>2]|0; - $24 = $3; - $25 = $24; - $26 = HEAP32[$25>>2]|0; - $27 = (($24) + 4)|0; - $28 = $27; - $29 = HEAP32[$28>>2]|0; - $30 = $20 | $29; - __ZN6laszip7formats3las7gpstimeC2Ex($1,$26,$30); - $31 = $1; - $32 = $31; - $33 = HEAPU8[$32>>0]|(HEAPU8[$32+1>>0]<<8)|(HEAPU8[$32+2>>0]<<16)|(HEAPU8[$32+3>>0]<<24); - $34 = (($31) + 4)|0; - $35 = $34; - $36 = HEAPU8[$35>>0]|(HEAPU8[$35+1>>0]<<8)|(HEAPU8[$35+2>>0]<<16)|(HEAPU8[$35+3>>0]<<24); - tempRet0 = ($36); - STACKTOP = sp;return ($33|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($4)|0); - $6 = $5&65535; - $2 = $6; - $7 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($4)|0); - $8 = $7&65535; - $3 = $8; - $9 = $3; - $10 = $9 << 16; - $11 = $2; - $12 = $10 | $11; - STACKTOP = sp;return ($12|0); -} -function __ZN6laszip7formats7packersINS0_3las7gpstimeEE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4; - $6 = $5; - $7 = HEAPU8[$6>>0]|(HEAPU8[$6+1>>0]<<8)|(HEAPU8[$6+2>>0]<<16)|(HEAPU8[$6+3>>0]<<24); - $8 = (($5) + 4)|0; - $9 = $8; - $10 = HEAPU8[$9>>0]|(HEAPU8[$9+1>>0]<<8)|(HEAPU8[$9+2>>0]<<16)|(HEAPU8[$9+3>>0]<<24); - $11 = $3; - __ZN6laszip7formats7packersIjE4packEjPc($7,$11); - $12 = $2; - $13 = $12; - $14 = $13; - $15 = HEAPU8[$14>>0]|(HEAPU8[$14+1>>0]<<8)|(HEAPU8[$14+2>>0]<<16)|(HEAPU8[$14+3>>0]<<24); - $16 = (($13) + 4)|0; - $17 = $16; - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = (_bitshift64Ashr(($15|0),($18|0),32)|0); - $20 = tempRet0; - $21 = $3; - $22 = ((($21)) + 4|0); - __ZN6laszip7formats7packersIjE4packEjPc($19,$22); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7gpstimeC2Ex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - $3 = $0; - $5 = $4; - $6 = $5; - HEAP32[$6>>2] = $1; - $7 = (($5) + 4)|0; - $8 = $7; - HEAP32[$8>>2] = $2; - $9 = $3; - $10 = $4; - $11 = $10; - $12 = HEAP32[$11>>2]|0; - $13 = (($10) + 4)|0; - $14 = $13; - $15 = HEAP32[$14>>2]|0; - $16 = $9; - $17 = $16; - HEAP8[$17>>0]=$12&255;HEAP8[$17+1>>0]=($12>>8)&255;HEAP8[$17+2>>0]=($12>>16)&255;HEAP8[$17+3>>0]=$12>>24; - $18 = (($16) + 4)|0; - $19 = $18; - HEAP8[$19>>0]=$15&255;HEAP8[$19+1>>0]=($15>>8)&255;HEAP8[$19+2>>0]=($15>>16)&255;HEAP8[$19+3>>0]=$15>>24; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 400; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2152); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2176); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0] = 0; - $3 = ((($2)) + 1|0); - __ZN6laszip7formats3las3rgbC2Ev($3); - $4 = ((($2)) + 8|0); - __ZN6laszip6models10arithmeticC2EjbPj($4,128,0,0); - $5 = ((($2)) + 52|0); - __ZN6laszip6models10arithmeticC2EjbPj($5,256,0,0); - $6 = ((($2)) + 96|0); - __ZN6laszip6models10arithmeticC2EjbPj($6,256,0,0); - $7 = ((($2)) + 140|0); - __ZN6laszip6models10arithmeticC2EjbPj($7,256,0,0); - $8 = ((($2)) + 184|0); - __ZN6laszip6models10arithmeticC2EjbPj($8,256,0,0); - $9 = ((($2)) + 228|0); - __ZN6laszip6models10arithmeticC2EjbPj($9,256,0,0); - $10 = ((($2)) + 272|0); - __ZN6laszip6models10arithmeticC2EjbPj($10,256,0,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2152); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats3las3rgbC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0]=0&255;HEAP8[$2+1>>0]=0>>8; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=0>>8; - $4 = ((($2)) + 4|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=0>>8; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 272|0); - __ZN6laszip6models10arithmeticD2Ev($3); - $4 = ((($2)) + 228|0); - __ZN6laszip6models10arithmeticD2Ev($4); - $5 = ((($2)) + 184|0); - __ZN6laszip6models10arithmeticD2Ev($5); - $6 = ((($2)) + 140|0); - __ZN6laszip6models10arithmeticD2Ev($6); - $7 = ((($2)) + 96|0); - __ZN6laszip6models10arithmeticD2Ev($7); - $8 = ((($2)) + 52|0); - __ZN6laszip6models10arithmeticD2Ev($8); - $9 = ((($2)) + 8|0); - __ZN6laszip6models10arithmeticD2Ev($9); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0; - var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = sp + 32|0; - $11 = sp + 24|0; - $4 = $0; - $5 = $1; - $6 = $2; - $12 = $4; - $13 = HEAP8[$12>>0]|0; - $14 = $13&1; - if (!($14)) { - HEAP8[$12>>0] = 1; - $15 = $5; - $16 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($15)|0); - $17 = $6; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($16,$17,6); - $18 = $6; - __ZN6laszip7formats7packersINS0_3las3rgbEE6unpackEPKc($7,$18); - $19 = ((($12)) + 1|0); - ;HEAP8[$19>>0]=HEAP8[$7>>0]|0;HEAP8[$19+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$19+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$19+3>>0]=HEAP8[$7+3>>0]|0;HEAP8[$19+4>>0]=HEAP8[$7+4>>0]|0;HEAP8[$19+5>>0]=HEAP8[$7+5>>0]|0; - $20 = $6; - $21 = ((($20)) + 6|0); - $3 = $21; - $331 = $3; - STACKTOP = sp;return ($331|0); - } - $9 = 0; - $22 = $5; - $23 = ((($12)) + 8|0); - $24 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($22,$23)|0); - $10 = $24; - __ZN6laszip7formats3las3rgbC2Ev($11); - $25 = $10; - $26 = $25 & 1; - $27 = ($26|0)!=(0); - if ($27) { - $28 = $5; - $29 = ((($12)) + 52|0); - $30 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($28,$29)|0); - $31 = $30&255; - $8 = $31; - $32 = $8; - $33 = $32&255; - $34 = ((($12)) + 1|0); - $35 = HEAPU8[$34>>0]|(HEAPU8[$34+1>>0]<<8); - $36 = $35&65535; - $37 = $36 & 255; - $38 = (($33) + ($37))|0; - $39 = (__Z7U8_FOLDi($38)|0); - $40 = $39&255; - HEAP8[$11>>0]=$40&255;HEAP8[$11+1>>0]=$40>>8; - } else { - $41 = ((($12)) + 1|0); - $42 = HEAPU8[$41>>0]|(HEAPU8[$41+1>>0]<<8); - $43 = $42&65535; - $44 = $43 & 255; - $45 = $44&65535; - HEAP8[$11>>0]=$45&255;HEAP8[$11+1>>0]=$45>>8; - } - $46 = $10; - $47 = $46 & 2; - $48 = ($47|0)!=(0); - if ($48) { - $49 = $5; - $50 = ((($12)) + 96|0); - $51 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($49,$50)|0); - $52 = $51&255; - $8 = $52; - $53 = $8; - $54 = $53&255; - $55 = ((($12)) + 1|0); - $56 = HEAPU8[$55>>0]|(HEAPU8[$55+1>>0]<<8); - $57 = $56&65535; - $58 = $57 >> 8; - $59 = (($54) + ($58))|0; - $60 = (__Z7U8_FOLDi($59)|0); - $61 = $60&255; - $62 = $61&65535; - $63 = $62 << 8; - $64 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $65 = $64&65535; - $66 = $65 | $63; - $67 = $66&65535; - HEAP8[$11>>0]=$67&255;HEAP8[$11+1>>0]=$67>>8; - } else { - $68 = ((($12)) + 1|0); - $69 = HEAPU8[$68>>0]|(HEAPU8[$68+1>>0]<<8); - $70 = $69&65535; - $71 = $70 & 65280; - $72 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $73 = $72&65535; - $74 = $73 | $71; - $75 = $74&65535; - HEAP8[$11>>0]=$75&255;HEAP8[$11+1>>0]=$75>>8; - } - $76 = $10; - $77 = $76 & 64; - $78 = ($77|0)!=(0); - $79 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - do { - if ($78) { - $80 = $79&65535; - $81 = $80 & 255; - $82 = ((($12)) + 1|0); - $83 = HEAPU8[$82>>0]|(HEAPU8[$82+1>>0]<<8); - $84 = $83&65535; - $85 = $84 & 255; - $86 = (($81) - ($85))|0; - $9 = $86; - $87 = $10; - $88 = $87 & 4; - $89 = ($88|0)!=(0); - if ($89) { - $90 = $5; - $91 = ((($12)) + 140|0); - $92 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($90,$91)|0); - $93 = $92&255; - $8 = $93; - $94 = $8; - $95 = $94&255; - $96 = $9; - $97 = ((($12)) + 1|0); - $98 = ((($97)) + 2|0); - $99 = HEAPU8[$98>>0]|(HEAPU8[$98+1>>0]<<8); - $100 = $99&65535; - $101 = $100 & 255; - $102 = (($96) + ($101))|0; - $103 = ($102|0)<=(0); - if ($103) { - $121 = 0; - } else { - $104 = $9; - $105 = ((($12)) + 1|0); - $106 = ((($105)) + 2|0); - $107 = HEAPU8[$106>>0]|(HEAPU8[$106+1>>0]<<8); - $108 = $107&65535; - $109 = $108 & 255; - $110 = (($104) + ($109))|0; - $111 = ($110|0)>=(255); - if ($111) { - $121 = -1; - } else { - $112 = $9; - $113 = ((($12)) + 1|0); - $114 = ((($113)) + 2|0); - $115 = HEAPU8[$114>>0]|(HEAPU8[$114+1>>0]<<8); - $116 = $115&65535; - $117 = $116 & 255; - $118 = (($112) + ($117))|0; - $119 = $118&255; - $121 = $119; - } - } - $120 = $121&255; - $122 = (($95) + ($120))|0; - $123 = (__Z7U8_FOLDi($122)|0); - $124 = $123&255; - $125 = ((($11)) + 2|0); - HEAP8[$125>>0]=$124&255;HEAP8[$125+1>>0]=$124>>8; - } else { - $126 = ((($12)) + 1|0); - $127 = ((($126)) + 2|0); - $128 = HEAPU8[$127>>0]|(HEAPU8[$127+1>>0]<<8); - $129 = $128&65535; - $130 = $129 & 255; - $131 = $130&65535; - $132 = ((($11)) + 2|0); - HEAP8[$132>>0]=$131&255;HEAP8[$132+1>>0]=$131>>8; - } - $133 = $10; - $134 = $133 & 16; - $135 = ($134|0)!=(0); - if ($135) { - $136 = $5; - $137 = ((($12)) + 228|0); - $138 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($136,$137)|0); - $139 = $138&255; - $8 = $139; - $140 = $9; - $141 = ((($11)) + 2|0); - $142 = HEAPU8[$141>>0]|(HEAPU8[$141+1>>0]<<8); - $143 = $142&65535; - $144 = $143 & 255; - $145 = (($140) + ($144))|0; - $146 = ((($12)) + 1|0); - $147 = ((($146)) + 2|0); - $148 = HEAPU8[$147>>0]|(HEAPU8[$147+1>>0]<<8); - $149 = $148&65535; - $150 = $149 & 255; - $151 = (($145) - ($150))|0; - $152 = (($151|0) / 2)&-1; - $9 = $152; - $153 = $8; - $154 = $153&255; - $155 = $9; - $156 = ((($12)) + 1|0); - $157 = ((($156)) + 4|0); - $158 = HEAPU8[$157>>0]|(HEAPU8[$157+1>>0]<<8); - $159 = $158&65535; - $160 = $159 & 255; - $161 = (($155) + ($160))|0; - $162 = ($161|0)<=(0); - if ($162) { - $180 = 0; - } else { - $163 = $9; - $164 = ((($12)) + 1|0); - $165 = ((($164)) + 4|0); - $166 = HEAPU8[$165>>0]|(HEAPU8[$165+1>>0]<<8); - $167 = $166&65535; - $168 = $167 & 255; - $169 = (($163) + ($168))|0; - $170 = ($169|0)>=(255); - if ($170) { - $180 = -1; - } else { - $171 = $9; - $172 = ((($12)) + 1|0); - $173 = ((($172)) + 4|0); - $174 = HEAPU8[$173>>0]|(HEAPU8[$173+1>>0]<<8); - $175 = $174&65535; - $176 = $175 & 255; - $177 = (($171) + ($176))|0; - $178 = $177&255; - $180 = $178; - } - } - $179 = $180&255; - $181 = (($154) + ($179))|0; - $182 = (__Z7U8_FOLDi($181)|0); - $183 = $182&255; - $184 = ((($11)) + 4|0); - HEAP8[$184>>0]=$183&255;HEAP8[$184+1>>0]=$183>>8; - } else { - $185 = ((($12)) + 1|0); - $186 = ((($185)) + 4|0); - $187 = HEAPU8[$186>>0]|(HEAPU8[$186+1>>0]<<8); - $188 = $187&65535; - $189 = $188 & 255; - $190 = $189&65535; - $191 = ((($11)) + 4|0); - HEAP8[$191>>0]=$190&255;HEAP8[$191+1>>0]=$190>>8; - } - $192 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $193 = $192&65535; - $194 = $193 >> 8; - $195 = ((($12)) + 1|0); - $196 = HEAPU8[$195>>0]|(HEAPU8[$195+1>>0]<<8); - $197 = $196&65535; - $198 = $197 >> 8; - $199 = (($194) - ($198))|0; - $9 = $199; - $200 = $10; - $201 = $200 & 8; - $202 = ($201|0)!=(0); - if ($202) { - $203 = $5; - $204 = ((($12)) + 184|0); - $205 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($203,$204)|0); - $206 = $205&255; - $8 = $206; - $207 = $8; - $208 = $207&255; - $209 = $9; - $210 = ((($12)) + 1|0); - $211 = ((($210)) + 2|0); - $212 = HEAPU8[$211>>0]|(HEAPU8[$211+1>>0]<<8); - $213 = $212&65535; - $214 = $213 >> 8; - $215 = (($209) + ($214))|0; - $216 = ($215|0)<=(0); - if ($216) { - $234 = 0; - } else { - $217 = $9; - $218 = ((($12)) + 1|0); - $219 = ((($218)) + 2|0); - $220 = HEAPU8[$219>>0]|(HEAPU8[$219+1>>0]<<8); - $221 = $220&65535; - $222 = $221 >> 8; - $223 = (($217) + ($222))|0; - $224 = ($223|0)>=(255); - if ($224) { - $234 = -1; - } else { - $225 = $9; - $226 = ((($12)) + 1|0); - $227 = ((($226)) + 2|0); - $228 = HEAPU8[$227>>0]|(HEAPU8[$227+1>>0]<<8); - $229 = $228&65535; - $230 = $229 >> 8; - $231 = (($225) + ($230))|0; - $232 = $231&255; - $234 = $232; - } - } - $233 = $234&255; - $235 = (($208) + ($233))|0; - $236 = (__Z7U8_FOLDi($235)|0); - $237 = $236&255; - $238 = $237&65535; - $239 = $238 << 8; - $240 = ((($11)) + 2|0); - $241 = HEAPU8[$240>>0]|(HEAPU8[$240+1>>0]<<8); - $242 = $241&65535; - $243 = $242 | $239; - $244 = $243&65535; - HEAP8[$240>>0]=$244&255;HEAP8[$240+1>>0]=$244>>8; - } else { - $245 = ((($12)) + 1|0); - $246 = ((($245)) + 2|0); - $247 = HEAPU8[$246>>0]|(HEAPU8[$246+1>>0]<<8); - $248 = $247&65535; - $249 = $248 & 65280; - $250 = ((($11)) + 2|0); - $251 = HEAPU8[$250>>0]|(HEAPU8[$250+1>>0]<<8); - $252 = $251&65535; - $253 = $252 | $249; - $254 = $253&65535; - HEAP8[$250>>0]=$254&255;HEAP8[$250+1>>0]=$254>>8; - } - $255 = $10; - $256 = $255 & 32; - $257 = ($256|0)!=(0); - if (!($257)) { - $313 = ((($12)) + 1|0); - $314 = ((($313)) + 4|0); - $315 = HEAPU8[$314>>0]|(HEAPU8[$314+1>>0]<<8); - $316 = $315&65535; - $317 = $316 & 65280; - $318 = ((($11)) + 4|0); - $319 = HEAPU8[$318>>0]|(HEAPU8[$318+1>>0]<<8); - $320 = $319&65535; - $321 = $320 | $317; - $322 = $321&65535; - HEAP8[$318>>0]=$322&255;HEAP8[$318+1>>0]=$322>>8; - break; - } - $258 = $5; - $259 = ((($12)) + 272|0); - $260 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($258,$259)|0); - $261 = $260&255; - $8 = $261; - $262 = $9; - $263 = ((($11)) + 2|0); - $264 = HEAPU8[$263>>0]|(HEAPU8[$263+1>>0]<<8); - $265 = $264&65535; - $266 = $265 >> 8; - $267 = (($262) + ($266))|0; - $268 = ((($12)) + 1|0); - $269 = ((($268)) + 2|0); - $270 = HEAPU8[$269>>0]|(HEAPU8[$269+1>>0]<<8); - $271 = $270&65535; - $272 = $271 >> 8; - $273 = (($267) - ($272))|0; - $274 = (($273|0) / 2)&-1; - $9 = $274; - $275 = $8; - $276 = $275&255; - $277 = $9; - $278 = ((($12)) + 1|0); - $279 = ((($278)) + 4|0); - $280 = HEAPU8[$279>>0]|(HEAPU8[$279+1>>0]<<8); - $281 = $280&65535; - $282 = $281 >> 8; - $283 = (($277) + ($282))|0; - $284 = ($283|0)<=(0); - if ($284) { - $302 = 0; - } else { - $285 = $9; - $286 = ((($12)) + 1|0); - $287 = ((($286)) + 4|0); - $288 = HEAPU8[$287>>0]|(HEAPU8[$287+1>>0]<<8); - $289 = $288&65535; - $290 = $289 >> 8; - $291 = (($285) + ($290))|0; - $292 = ($291|0)>=(255); - if ($292) { - $302 = -1; - } else { - $293 = $9; - $294 = ((($12)) + 1|0); - $295 = ((($294)) + 4|0); - $296 = HEAPU8[$295>>0]|(HEAPU8[$295+1>>0]<<8); - $297 = $296&65535; - $298 = $297 >> 8; - $299 = (($293) + ($298))|0; - $300 = $299&255; - $302 = $300; - } - } - $301 = $302&255; - $303 = (($276) + ($301))|0; - $304 = (__Z7U8_FOLDi($303)|0); - $305 = $304&255; - $306 = $305&65535; - $307 = $306 << 8; - $308 = ((($11)) + 4|0); - $309 = HEAPU8[$308>>0]|(HEAPU8[$308+1>>0]<<8); - $310 = $309&65535; - $311 = $310 | $307; - $312 = $311&65535; - HEAP8[$308>>0]=$312&255;HEAP8[$308+1>>0]=$312>>8; - } else { - $323 = ((($11)) + 2|0); - HEAP8[$323>>0]=$79&255;HEAP8[$323+1>>0]=$79>>8; - $324 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $325 = ((($11)) + 4|0); - HEAP8[$325>>0]=$324&255;HEAP8[$325+1>>0]=$324>>8; - } - } while(0); - $326 = ((($12)) + 1|0); - ;HEAP8[$326>>0]=HEAP8[$11>>0]|0;HEAP8[$326+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$326+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$326+3>>0]=HEAP8[$11+3>>0]|0;HEAP8[$326+4>>0]=HEAP8[$11+4>>0]|0;HEAP8[$326+5>>0]=HEAP8[$11+5>>0]|0; - $327 = ((($12)) + 1|0); - $328 = $6; - __ZN6laszip7formats7packersINS0_3las3rgbEE4packERKS3_Pc($327,$328); - $329 = $6; - $330 = ((($329)) + 6|0); - $3 = $330; - $331 = $3; - STACKTOP = sp;return ($331|0); -} -function __ZN6laszip7formats7packersINS0_3las3rgbEE6unpackEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $1; - $3 = $2; - $4 = (__ZN6laszip7formats7packersItE6unpackEPKc($3)|0); - $5 = $2; - $6 = ((($5)) + 2|0); - $7 = (__ZN6laszip7formats7packersItE6unpackEPKc($6)|0); - $8 = $2; - $9 = ((($8)) + 4|0); - $10 = (__ZN6laszip7formats7packersItE6unpackEPKc($9)|0); - __ZN6laszip7formats3las3rgbC2Ettt($0,$4,$7,$10); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las3rgbEE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = HEAPU8[$4>>0]|(HEAPU8[$4+1>>0]<<8); - $6 = $3; - __ZN6laszip7formats7packersItE4packEtPc($5,$6); - $7 = $2; - $8 = ((($7)) + 2|0); - $9 = HEAPU8[$8>>0]|(HEAPU8[$8+1>>0]<<8); - $10 = $3; - $11 = ((($10)) + 2|0); - __ZN6laszip7formats7packersItE4packEtPc($9,$11); - $12 = $2; - $13 = ((($12)) + 4|0); - $14 = HEAPU8[$13>>0]|(HEAPU8[$13+1>>0]<<8); - $15 = $3; - $16 = ((($15)) + 4|0); - __ZN6laszip7formats7packersItE4packEtPc($14,$16); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las3rgbC2Ettt($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $4; - $9 = $5; - HEAP8[$8>>0]=$9&255;HEAP8[$8+1>>0]=$9>>8; - $10 = ((($8)) + 2|0); - $11 = $6; - HEAP8[$10>>0]=$11&255;HEAP8[$10+1>>0]=$11>>8; - $12 = ((($8)) + 4|0); - $13 = $7; - HEAP8[$12>>0]=$13&255;HEAP8[$12+1>>0]=$13>>8; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 440; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEEC2ERS9_RKSF_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - __ZN6laszip7formats10base_fieldC2Ev($6); - HEAP32[$6>>2] = (2204); - $7 = ((($6)) + 4|0); - $8 = $4; - HEAP32[$7>>2] = $8; - $9 = ((($6)) + 8|0); - $10 = $5; - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2ERKS6_($9,$10); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2228); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - ;HEAP32[$4>>2]=HEAP32[$5>>2]|0;HEAP8[$4+4>>0]=HEAP8[$5+4>>0]|0; - $6 = ((($4)) + 8|0); - $7 = $3; - $8 = ((($7)) + 8|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($6,$8); - $9 = ((($4)) + 20|0); - $10 = $3; - $11 = ((($10)) + 20|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($9,$11); - $12 = ((($4)) + 32|0); - $13 = $3; - $14 = ((($13)) + 32|0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2ERKS6_($12,$14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2204); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $17 = sp + 36|0; - $19 = sp; - $21 = sp + 101|0; - $27 = sp + 100|0; - $25 = $0; - $26 = $1; - $29 = $25; - $30 = $26; - $24 = $30; - $31 = $24; - $32 = ((($31)) + 8|0); - $23 = $32; - $33 = $23; - $22 = $33; - $34 = $22; - $20 = $34; - $35 = $20; - ;HEAP8[$19>>0]=HEAP8[$21>>0]|0; - $18 = $35; - $15 = $29; - $16 = $27; - $36 = $15; - $14 = $36; - HEAP32[$36>>2] = 0; - $37 = ((($36)) + 4|0); - HEAP32[$37>>2] = 0; - $38 = ((($36)) + 8|0); - HEAP32[$17>>2] = 0; - $39 = $16; - $11 = $38; - $12 = $17; - $13 = $39; - $40 = $11; - $41 = $12; - $10 = $41; - $42 = $10; - $4 = $40; - $5 = $42; - $43 = $4; - $44 = $5; - $3 = $44; - HEAP32[$43>>2] = 0; - $45 = $13; - $6 = $45; - $46 = $6; - $8 = $40; - $9 = $46; - $47 = $9; - $7 = $47; - $48 = $26; - $2 = $48; - $49 = $2; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $52 = HEAP32[$49>>2]|0; - $53 = $51; - $54 = $52; - $55 = (($53) - ($54))|0; - $28 = $55; - $56 = $28; - $57 = ($56>>>0)>(0); - if (!($57)) { - STACKTOP = sp;return; - } - $58 = $28; - __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($29,$58); - $59 = $26; - $60 = HEAP32[$59>>2]|0; - $61 = $26; - $62 = ((($61)) + 4|0); - $63 = HEAP32[$62>>2]|0; - $64 = $28; - __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endIPhEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_j($29,$60,$63,$64); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 184|0; - $28 = sp + 72|0; - $33 = sp + 202|0; - $34 = sp + 52|0; - $36 = sp; - $38 = sp + 201|0; - $44 = sp + 200|0; - $45 = sp + 16|0; - $46 = sp + 8|0; - $42 = $0; - $43 = $1; - $47 = $42; - $48 = $43; - $41 = $48; - $49 = $41; - $50 = ((($49)) + 20|0); - $40 = $50; - $51 = $40; - $39 = $51; - $52 = $39; - $37 = $52; - $53 = $37; - ;HEAP8[$36>>0]=HEAP8[$38>>0]|0; - $35 = $53; - $31 = $47; - $32 = $44; - $54 = $31; - $55 = $32; - $29 = $33; - $30 = $55; - $26 = $54; - $27 = $33; - $56 = $26; - HEAP32[$56>>2] = 0; - $57 = ((($56)) + 4|0); - HEAP32[$57>>2] = 0; - $58 = ((($56)) + 8|0); - HEAP32[$58>>2] = 0; - $59 = ((($56)) + 12|0); - HEAP32[$28>>2] = 0; - $60 = $27; - $23 = $59; - $24 = $28; - $25 = $60; - $61 = $23; - $62 = $24; - $22 = $62; - $63 = $22; - $16 = $61; - $17 = $63; - $64 = $16; - $65 = $17; - $15 = $65; - HEAP32[$64>>2] = 0; - $66 = $25; - $18 = $66; - $67 = $18; - $20 = $61; - $21 = $67; - $68 = $21; - $19 = $68; - $69 = ((($54)) + 16|0); - HEAP32[$69>>2] = 0; - $70 = ((($54)) + 20|0); - HEAP32[$34>>2] = 0; - $71 = $32; - $12 = $70; - $13 = $34; - $14 = $71; - $72 = $12; - $73 = $13; - $11 = $73; - $74 = $11; - $5 = $72; - $6 = $74; - $75 = $5; - $76 = $6; - $4 = $76; - $77 = $4; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = $14; - $7 = $79; - $80 = $7; - $9 = $72; - $10 = $80; - $81 = $10; - $8 = $81; - $82 = $43; - $2 = $82; - $83 = $2; - __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($45,$83); - $84 = $43; - $3 = $84; - $85 = $3; - __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($46,$85); - ;HEAP32[$$byval_copy>>2]=HEAP32[$45>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$45+4>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$46>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$46+4>>2]|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendINS_16__deque_iteratorIS3_PKS3_RS9_PKSA_iLi0EEEEEvT_SF_PNS_9enable_ifIXsr21__is_forward_iteratorISF_EE5valueEvE4typeE($47,$$byval_copy,$$byval_copy1,0); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIhNS_9allocatorIhEEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $40 = $0; - $41 = $1; - $42 = $40; - $43 = $41; - $44 = (__ZNKSt3__26vectorIhNS_9allocatorIhEEE8max_sizeEv($42)|0); - $45 = ($43>>>0)>($44>>>0); - if ($45) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($42); - // unreachable; - } else { - $39 = $42; - $46 = $39; - $47 = ((($46)) + 8|0); - $38 = $47; - $48 = $38; - $37 = $48; - $49 = $37; - $50 = $41; - $7 = $49; - $8 = $50; - $51 = $7; - $52 = $8; - $4 = $51; - $5 = $52; - $6 = 0; - $53 = $4; - $3 = $53; - $54 = $5; - $2 = $54; - $55 = $2; - $56 = (__Znwj($55)|0); - $57 = ((($42)) + 4|0); - HEAP32[$57>>2] = $56; - HEAP32[$42>>2] = $56; - $58 = HEAP32[$42>>2]|0; - $59 = $41; - $60 = (($58) + ($59)|0); - $11 = $42; - $61 = $11; - $62 = ((($61)) + 8|0); - $10 = $62; - $63 = $10; - $9 = $63; - $64 = $9; - HEAP32[$64>>2] = $60; - $35 = $42; - $36 = 0; - $65 = $35; - $34 = $65; - $66 = $34; - $67 = HEAP32[$66>>2]|0; - $33 = $67; - $68 = $33; - $13 = $65; - $69 = $13; - $70 = HEAP32[$69>>2]|0; - $12 = $70; - $71 = $12; - $18 = $65; - $72 = $18; - $17 = $72; - $73 = $17; - $16 = $73; - $74 = $16; - $75 = ((($74)) + 8|0); - $15 = $75; - $76 = $15; - $14 = $76; - $77 = $14; - $78 = HEAP32[$77>>2]|0; - $79 = HEAP32[$73>>2]|0; - $80 = $78; - $81 = $79; - $82 = (($80) - ($81))|0; - $83 = (($71) + ($82)|0); - $20 = $65; - $84 = $20; - $85 = HEAP32[$84>>2]|0; - $19 = $85; - $86 = $19; - $25 = $65; - $87 = $25; - $24 = $87; - $88 = $24; - $23 = $88; - $89 = $23; - $90 = ((($89)) + 8|0); - $22 = $90; - $91 = $22; - $21 = $91; - $92 = $21; - $93 = HEAP32[$92>>2]|0; - $94 = HEAP32[$88>>2]|0; - $95 = $93; - $96 = $94; - $97 = (($95) - ($96))|0; - $98 = (($86) + ($97)|0); - $27 = $65; - $99 = $27; - $100 = HEAP32[$99>>2]|0; - $26 = $100; - $101 = $26; - $102 = $36; - $103 = (($101) + ($102)|0); - $28 = $65; - $29 = $68; - $30 = $83; - $31 = $98; - $32 = $103; - STACKTOP = sp;return; - } -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endIPhEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_j($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $21 = sp + 68|0; - $16 = $0; - $17 = $1; - $18 = $2; - $19 = $3; - $22 = $16; - $15 = $22; - $23 = $15; - $24 = ((($23)) + 8|0); - $14 = $24; - $25 = $14; - $13 = $25; - $26 = $13; - $20 = $26; - $27 = $19; - $4 = $21; - $5 = $22; - $6 = $27; - $28 = $20; - $29 = $17; - $30 = $18; - $31 = ((($22)) + 4|0); - $7 = $28; - $8 = $29; - $9 = $30; - $10 = $31; - $32 = $9; - $33 = $8; - $34 = $32; - $35 = $33; - $36 = (($34) - ($35))|0; - $11 = $36; - $37 = $11; - $38 = ($37|0)>(0); - if (!($38)) { - $12 = $21; - STACKTOP = sp;return; - } - $39 = $10; - $40 = HEAP32[$39>>2]|0; - $41 = $8; - $42 = $11; - _memcpy(($40|0),($41|0),($42|0))|0; - $43 = $11; - $44 = $10; - $45 = HEAP32[$44>>2]|0; - $46 = (($45) + ($43)|0); - HEAP32[$44>>2] = $46; - $12 = $21; - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIhNS_9allocatorIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -1|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $12 = $59; - $13 = $60; - $14 = $70; - $71 = $12; - $72 = $13; - $73 = $14; - $9 = $71; - $10 = $72; - $11 = $73; - $74 = $10; - $8 = $74; - $75 = $8; - __ZdlPv($75); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIhNS_9allocatorIhEEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = -1; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendINS_16__deque_iteratorIS3_PKS3_RS9_PKSA_iLi0EEEEEvT_SF_PNS_9enable_ifIXsr21__is_forward_iteratorISF_EE5valueEvE4typeE($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0; - var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; - var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; - var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $29 = sp + 40|0; - $34 = sp + 277|0; - $47 = sp + 32|0; - $48 = sp + 24|0; - $49 = sp + 16|0; - $50 = sp + 104|0; - $51 = sp + 96|0; - $52 = sp + 276|0; - $53 = sp + 8|0; - $54 = sp; - $58 = sp + 72|0; - $59 = sp + 64|0; - $62 = sp + 48|0; - $55 = $0; - $56 = $3; - $63 = $55; - ;HEAP32[$58>>2]=HEAP32[$1>>2]|0;HEAP32[$58+4>>2]=HEAP32[$1+4>>2]|0; - ;HEAP32[$59>>2]=HEAP32[$2>>2]|0;HEAP32[$59+4>>2]=HEAP32[$2+4>>2]|0; - ;HEAP8[$53>>0]=HEAP8[$59>>0]|0;HEAP8[$53+1>>0]=HEAP8[$59+1>>0]|0;HEAP8[$53+2>>0]=HEAP8[$59+2>>0]|0;HEAP8[$53+3>>0]=HEAP8[$59+3>>0]|0;HEAP8[$53+4>>0]=HEAP8[$59+4>>0]|0;HEAP8[$53+5>>0]=HEAP8[$59+5>>0]|0;HEAP8[$53+6>>0]=HEAP8[$59+6>>0]|0;HEAP8[$53+7>>0]=HEAP8[$59+7>>0]|0; - ;HEAP8[$54>>0]=HEAP8[$58>>0]|0;HEAP8[$54+1>>0]=HEAP8[$58+1>>0]|0;HEAP8[$54+2>>0]=HEAP8[$58+2>>0]|0;HEAP8[$54+3>>0]=HEAP8[$58+3>>0]|0;HEAP8[$54+4>>0]=HEAP8[$58+4>>0]|0;HEAP8[$54+5>>0]=HEAP8[$58+5>>0]|0;HEAP8[$54+6>>0]=HEAP8[$58+6>>0]|0;HEAP8[$54+7>>0]=HEAP8[$58+7>>0]|0; - ;HEAP32[$50>>2]=HEAP32[$54>>2]|0;HEAP32[$50+4>>2]=HEAP32[$54+4>>2]|0; - ;HEAP32[$51>>2]=HEAP32[$53>>2]|0;HEAP32[$51+4>>2]=HEAP32[$53+4>>2]|0; - ;HEAP8[$47>>0]=HEAP8[$52>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$51>>0]|0;HEAP8[$48+1>>0]=HEAP8[$51+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$51+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$51+3>>0]|0;HEAP8[$48+4>>0]=HEAP8[$51+4>>0]|0;HEAP8[$48+5>>0]=HEAP8[$51+5>>0]|0;HEAP8[$48+6>>0]=HEAP8[$51+6>>0]|0;HEAP8[$48+7>>0]=HEAP8[$51+7>>0]|0; - ;HEAP8[$49>>0]=HEAP8[$50>>0]|0;HEAP8[$49+1>>0]=HEAP8[$50+1>>0]|0;HEAP8[$49+2>>0]=HEAP8[$50+2>>0]|0;HEAP8[$49+3>>0]=HEAP8[$50+3>>0]|0;HEAP8[$49+4>>0]=HEAP8[$50+4>>0]|0;HEAP8[$49+5>>0]=HEAP8[$50+5>>0]|0;HEAP8[$49+6>>0]=HEAP8[$50+6>>0]|0;HEAP8[$49+7>>0]=HEAP8[$50+7>>0]|0; - $45 = $48; - $46 = $49; - $64 = $45; - $65 = $46; - $42 = $64; - $43 = $65; - $66 = $42; - $67 = $43; - $40 = $66; - $41 = $67; - $68 = $40; - $69 = ((($68)) + 4|0); - $70 = HEAP32[$69>>2]|0; - $71 = $41; - $72 = ((($71)) + 4|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($70|0)==($73|0); - $75 = $74 ^ 1; - if ($75) { - $76 = $45; - $77 = HEAP32[$76>>2]|0; - $78 = $46; - $79 = HEAP32[$78>>2]|0; - $80 = $77; - $81 = $79; - $82 = (($80) - ($81))|0; - $83 = (($82|0) / 4)&-1; - $84 = ($83*93)|0; - $85 = $45; - $86 = ((($85)) + 4|0); - $87 = HEAP32[$86>>2]|0; - $88 = $45; - $89 = HEAP32[$88>>2]|0; - $90 = HEAP32[$89>>2]|0; - $91 = $87; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 44)&-1; - $95 = (($84) + ($94))|0; - $96 = $46; - $97 = ((($96)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = $46; - $100 = HEAP32[$99>>2]|0; - $101 = HEAP32[$100>>2]|0; - $102 = $98; - $103 = $101; - $104 = (($102) - ($103))|0; - $105 = (($104|0) / 44)&-1; - $106 = (($95) - ($105))|0; - $44 = $106; - } else { - $44 = 0; - } - $107 = $44; - $57 = $107; - $20 = $63; - $108 = $20; - $109 = ((($108)) + 20|0); - $19 = $109; - $110 = $19; - $18 = $110; - $111 = $18; - $60 = $111; - $10 = $63; - $112 = $10; - $9 = $112; - $113 = $9; - $8 = $113; - $114 = $8; - $115 = ((($114)) + 8|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($114)) + 4|0); - $118 = HEAP32[$117>>2]|0; - $119 = $116; - $120 = $118; - $121 = (($119) - ($120))|0; - $122 = (($121|0) / 4)&-1; - $123 = ($122|0)==(0); - if ($123) { - $144 = 0; - } else { - $7 = $113; - $124 = $7; - $125 = ((($124)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($124)) + 4|0); - $128 = HEAP32[$127>>2]|0; - $129 = $126; - $130 = $128; - $131 = (($129) - ($130))|0; - $132 = (($131|0) / 4)&-1; - $133 = ($132*93)|0; - $134 = (($133) - 1)|0; - $144 = $134; - } - $135 = ((($112)) + 16|0); - $136 = HEAP32[$135>>2]|0; - $6 = $112; - $137 = $6; - $138 = ((($137)) + 20|0); - $5 = $138; - $139 = $5; - $4 = $139; - $140 = $4; - $141 = HEAP32[$140>>2]|0; - $142 = (($136) + ($141))|0; - $143 = (($144) - ($142))|0; - $61 = $143; - $145 = $57; - $146 = $61; - $147 = ($145>>>0)>($146>>>0); - if ($147) { - $148 = $57; - $149 = $61; - $150 = (($148) - ($149))|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($63,$150); - } - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($62,$63); - while(1) { - $13 = $1; - $14 = $2; - $151 = $13; - $152 = $14; - $11 = $151; - $12 = $152; - $153 = $11; - $154 = ((($153)) + 4|0); - $155 = HEAP32[$154>>2]|0; - $156 = $12; - $157 = ((($156)) + 4|0); - $158 = HEAP32[$157>>2]|0; - $159 = ($155|0)==($158|0); - $160 = $159 ^ 1; - if (!($160)) { - break; - } - $161 = $60; - $15 = $62; - $162 = $15; - $163 = ((($162)) + 4|0); - $164 = HEAP32[$163>>2]|0; - $16 = $164; - $165 = $16; - $17 = $1; - $166 = $17; - $167 = ((($166)) + 4|0); - $168 = HEAP32[$167>>2]|0; - $31 = $161; - $32 = $165; - $33 = $168; - $169 = $31; - $170 = $32; - $171 = $33; - $30 = $171; - $172 = $30; - ;HEAP8[$29>>0]=HEAP8[$34>>0]|0; - $26 = $169; - $27 = $170; - $28 = $172; - $173 = $26; - $174 = $27; - $175 = $28; - $25 = $175; - $176 = $25; - $22 = $173; - $23 = $174; - $24 = $176; - $177 = $23; - $178 = $24; - $21 = $178; - $179 = $21; - __ZN6laszip6models10arithmeticC2ERKS1_($177,$179); - $35 = $62; - $180 = $35; - $181 = ((($180)) + 4|0); - $182 = HEAP32[$181>>2]|0; - $183 = ((($182)) + 44|0); - HEAP32[$181>>2] = $183; - $184 = HEAP32[$180>>2]|0; - $185 = HEAP32[$184>>2]|0; - $186 = $183; - $187 = $185; - $188 = (($186) - ($187))|0; - $189 = (($188|0) / 44)&-1; - $190 = ($189|0)==(93); - if ($190) { - $191 = HEAP32[$180>>2]|0; - $192 = ((($191)) + 4|0); - HEAP32[$180>>2] = $192; - $193 = HEAP32[$180>>2]|0; - $194 = HEAP32[$193>>2]|0; - $195 = ((($180)) + 4|0); - HEAP32[$195>>2] = $194; - } - $36 = $1; - $196 = $36; - $197 = ((($196)) + 4|0); - $198 = HEAP32[$197>>2]|0; - $199 = ((($198)) + 44|0); - HEAP32[$197>>2] = $199; - $200 = HEAP32[$196>>2]|0; - $201 = HEAP32[$200>>2]|0; - $202 = $199; - $203 = $201; - $204 = (($202) - ($203))|0; - $205 = (($204|0) / 44)&-1; - $206 = ($205|0)==(93); - if ($206) { - $207 = HEAP32[$196>>2]|0; - $208 = ((($207)) + 4|0); - HEAP32[$196>>2] = $208; - $209 = HEAP32[$196>>2]|0; - $210 = HEAP32[$209>>2]|0; - $211 = ((($196)) + 4|0); - HEAP32[$211>>2] = $210; - } - $39 = $63; - $212 = $39; - $213 = ((($212)) + 20|0); - $38 = $213; - $214 = $38; - $37 = $214; - $215 = $37; - $216 = HEAP32[$215>>2]|0; - $217 = (($216) + 1)|0; - HEAP32[$215>>2] = $217; - } - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $16 = $13; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5clearEv($16); - $12 = $16; - $17 = $12; - $18 = ((($17)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $14 = $19; - $11 = $16; - $20 = $11; - $21 = ((($20)) + 8|0); - $22 = HEAP32[$21>>2]|0; - $15 = $22; - while(1) { - $23 = $14; - $24 = $15; - $25 = ($23|0)!=($24|0); - if (!($25)) { - break; - } - $10 = $16; - $26 = $10; - $27 = ((($26)) + 20|0); - $9 = $27; - $28 = $9; - $8 = $28; - $29 = $8; - $30 = $14; - $31 = HEAP32[$30>>2]|0; - $5 = $29; - $6 = $31; - $7 = 93; - $32 = $5; - $33 = $6; - $34 = $7; - $2 = $32; - $3 = $33; - $4 = $34; - $35 = $3; - $1 = $35; - $36 = $1; - __ZdlPv($36); - $37 = $14; - $38 = ((($37)) + 4|0); - $14 = $38; - } - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEED2Ev($16); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $24 = $48; - $49 = $24; - $50 = ((($41)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ((($51)) + -4|0); - HEAP32[$50>>2] = $52; - $23 = $52; - $53 = $23; - $20 = $49; - $21 = $53; - $54 = $20; - $55 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $54; - $18 = $55; - $56 = $17; - $57 = $18; - $15 = $56; - $16 = $57; - } - $58 = HEAP32[$35>>2]|0; - $59 = ($58|0)!=(0|0); - if (!($59)) { - STACKTOP = sp;return; - } - $14 = $35; - $60 = $14; - $61 = ((($60)) + 12|0); - $13 = $61; - $62 = $13; - $12 = $62; - $63 = $12; - $64 = HEAP32[$35>>2]|0; - $4 = $35; - $65 = $4; - $3 = $65; - $66 = $3; - $67 = ((($66)) + 12|0); - $2 = $67; - $68 = $2; - $1 = $68; - $69 = $1; - $70 = HEAP32[$69>>2]|0; - $71 = HEAP32[$65>>2]|0; - $72 = $70; - $73 = $71; - $74 = (($72) - ($73))|0; - $75 = (($74|0) / 4)&-1; - $9 = $63; - $10 = $64; - $11 = $75; - $76 = $9; - $77 = $10; - $78 = $11; - $6 = $76; - $7 = $77; - $8 = $78; - $79 = $7; - $5 = $79; - $80 = $5; - __ZdlPv($80); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0; - var $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0; - var $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0; - var $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0; - var $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0; - var $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0; - var $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0; - var $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0; - var $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0; - var $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0; - var $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0; - var $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0; - var $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0; - var $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0; - var $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0; - var $1264 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0; - var $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0; - var $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0; - var $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0; - var $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0; - var $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0; - var $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0; - var $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0; - var $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0; - var $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0; - var $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0; - var $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0; - var $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0; - var $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0; - var $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0; - var $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0; - var $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0; - var $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0; - var $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0; - var $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0; - var $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0; - var $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0; - var $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0; - var $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0; - var $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0; - var $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0; - var $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0; - var $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0; - var $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0; - var $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0; - var $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0; - var $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0; - var $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0; - var $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0; - var $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0; - var $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0; - var $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0; - var $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1744|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1744|0); - $$byval_copy5 = sp + 1724|0; - $$byval_copy4 = sp + 1720|0; - $$byval_copy3 = sp + 1716|0; - $$byval_copy2 = sp + 1712|0; - $$byval_copy1 = sp + 1708|0; - $$byval_copy = sp + 1704|0; - $22 = sp + 80|0; - $25 = sp + 1738|0; - $43 = sp + 72|0; - $46 = sp + 1737|0; - $52 = sp + 1516|0; - $58 = sp + 1492|0; - $64 = sp + 1468|0; - $76 = sp + 1420|0; - $102 = sp + 64|0; - $107 = sp + 1736|0; - $115 = sp + 1272|0; - $116 = sp + 1268|0; - $117 = sp + 1248|0; - $118 = sp + 1244|0; - $119 = sp + 1240|0; - $122 = sp + 56|0; - $125 = sp + 1735|0; - $170 = sp + 48|0; - $173 = sp + 1734|0; - $179 = sp + 1016|0; - $185 = sp + 992|0; - $191 = sp + 968|0; - $203 = sp + 920|0; - $229 = sp + 40|0; - $234 = sp + 1733|0; - $242 = sp + 772|0; - $243 = sp + 768|0; - $244 = sp + 748|0; - $245 = sp + 744|0; - $246 = sp + 740|0; - $249 = sp + 32|0; - $252 = sp + 1732|0; - $267 = sp + 24|0; - $270 = sp + 1731|0; - $276 = sp + 636|0; - $282 = sp + 612|0; - $288 = sp + 588|0; - $300 = sp + 540|0; - $326 = sp + 16|0; - $331 = sp + 1730|0; - $339 = sp + 392|0; - $340 = sp + 388|0; - $341 = sp + 368|0; - $342 = sp + 364|0; - $343 = sp + 360|0; - $346 = sp + 8|0; - $349 = sp + 1729|0; - $358 = sp; - $361 = sp + 1728|0; - $367 = sp + 280|0; - $373 = sp + 256|0; - $379 = sp + 232|0; - $391 = sp + 184|0; - $401 = sp + 144|0; - $402 = sp + 140|0; - $403 = sp + 136|0; - $404 = sp + 132|0; - $405 = sp + 128|0; - $406 = sp + 124|0; - $408 = sp + 100|0; - $409 = sp + 96|0; - $410 = sp + 92|0; - $411 = sp + 88|0; - $398 = $0; - $399 = $1; - $413 = $398; - $397 = $413; - $414 = $397; - $415 = ((($414)) + 20|0); - $396 = $415; - $416 = $396; - $395 = $416; - $417 = $395; - $400 = $417; - $418 = $399; - $394 = $413; - $419 = $394; - $420 = ((($419)) + 8|0); - $421 = HEAP32[$420>>2]|0; - $422 = ((($419)) + 4|0); - $423 = HEAP32[$422>>2]|0; - $424 = ($421|0)==($423|0); - $425 = $424&1; - $426 = (($418) + ($425))|0; - $393 = $426; - $427 = $393; - $428 = (($427>>>0) / 93)&-1; - $429 = $393; - $430 = (($429>>>0) % 93)&-1; - $431 = ($430|0)!=(0); - $432 = $431&1; - $433 = (($428) + ($432))|0; - HEAP32[$401>>2] = $433; - $392 = $413; - $434 = $392; - $435 = ((($434)) + 16|0); - $436 = HEAP32[$435>>2]|0; - $437 = (($436>>>0) / 93)&-1; - HEAP32[$402>>2] = $437; - $359 = $402; - $360 = $401; - $438 = $359; - $439 = $360; - ;HEAP8[$358>>0]=HEAP8[$361>>0]|0; - $356 = $438; - $357 = $439; - $440 = $357; - $441 = $356; - $353 = $358; - $354 = $440; - $355 = $441; - $442 = $354; - $443 = HEAP32[$442>>2]|0; - $444 = $355; - $445 = HEAP32[$444>>2]|0; - $446 = ($443>>>0)<($445>>>0); - $447 = $357; - $448 = $356; - $449 = $446 ? $447 : $448; - $450 = HEAP32[$449>>2]|0; - HEAP32[$402>>2] = $450; - $451 = HEAP32[$402>>2]|0; - $452 = HEAP32[$401>>2]|0; - $453 = (($452) - ($451))|0; - HEAP32[$401>>2] = $453; - $454 = HEAP32[$401>>2]|0; - $455 = ($454|0)==(0); - if ($455) { - $456 = HEAP32[$402>>2]|0; - $457 = ($456*93)|0; - $458 = ((($413)) + 16|0); - $459 = HEAP32[$458>>2]|0; - $460 = (($459) - ($457))|0; - HEAP32[$458>>2] = $460; - while(1) { - $461 = HEAP32[$402>>2]|0; - $462 = ($461>>>0)>(0); - if (!($462)) { - break; - } - $254 = $413; - $463 = $254; - $464 = ((($463)) + 4|0); - $465 = HEAP32[$464>>2]|0; - $466 = HEAP32[$465>>2]|0; - HEAP32[$403>>2] = $466; - $253 = $413; - $467 = $253; - $468 = ((($467)) + 4|0); - $469 = HEAP32[$468>>2]|0; - $470 = ((($469)) + 4|0); - $250 = $467; - $251 = $470; - $471 = $250; - $472 = $251; - ;HEAP8[$249>>0]=HEAP8[$252>>0]|0; - $247 = $471; - $248 = $472; - $473 = $247; - $474 = $248; - $475 = ((($473)) + 4|0); - HEAP32[$475>>2] = $474; - $238 = $413; - $239 = $403; - $476 = $238; - $477 = ((($476)) + 8|0); - $478 = HEAP32[$477>>2]|0; - $237 = $476; - $479 = $237; - $480 = ((($479)) + 12|0); - $236 = $480; - $481 = $236; - $235 = $481; - $482 = $235; - $483 = HEAP32[$482>>2]|0; - $484 = ($478|0)==($483|0); - do { - if ($484) { - $485 = ((($476)) + 4|0); - $486 = HEAP32[$485>>2]|0; - $487 = HEAP32[$476>>2]|0; - $488 = ($486>>>0)>($487>>>0); - if (!($488)) { - $206 = $476; - $535 = $206; - $536 = ((($535)) + 12|0); - $205 = $536; - $537 = $205; - $204 = $537; - $538 = $204; - $539 = HEAP32[$538>>2]|0; - $540 = HEAP32[$476>>2]|0; - $541 = $539; - $542 = $540; - $543 = (($541) - ($542))|0; - $544 = (($543|0) / 4)&-1; - $545 = $544<<1; - HEAP32[$242>>2] = $545; - HEAP32[$243>>2] = 1; - $171 = $242; - $172 = $243; - $546 = $171; - $547 = $172; - ;HEAP8[$170>>0]=HEAP8[$173>>0]|0; - $168 = $546; - $169 = $547; - $548 = $168; - $549 = $169; - $165 = $170; - $166 = $548; - $167 = $549; - $550 = $166; - $551 = HEAP32[$550>>2]|0; - $552 = $167; - $553 = HEAP32[$552>>2]|0; - $554 = ($551>>>0)<($553>>>0); - $555 = $169; - $556 = $168; - $557 = $554 ? $555 : $556; - $558 = HEAP32[$557>>2]|0; - $241 = $558; - $559 = $241; - $560 = $241; - $561 = (($560>>>0) / 4)&-1; - $160 = $476; - $562 = $160; - $563 = ((($562)) + 12|0); - $159 = $563; - $564 = $159; - $158 = $564; - $565 = $158; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($244,$559,$561,$565); - $566 = ((($476)) + 4|0); - $567 = HEAP32[$566>>2]|0; - $161 = $245; - $162 = $567; - $568 = $161; - $569 = $162; - HEAP32[$568>>2] = $569; - $570 = ((($476)) + 8|0); - $571 = HEAP32[$570>>2]|0; - $163 = $246; - $164 = $571; - $572 = $163; - $573 = $164; - HEAP32[$572>>2] = $573; - ;HEAP32[$$byval_copy>>2]=HEAP32[$245>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$246>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($244,$$byval_copy,$$byval_copy1); - $177 = $476; - $178 = $244; - $574 = $177; - $176 = $574; - $575 = $176; - $576 = HEAP32[$575>>2]|0; - HEAP32[$179>>2] = $576; - $577 = $178; - $174 = $577; - $578 = $174; - $579 = HEAP32[$578>>2]|0; - $580 = $177; - HEAP32[$580>>2] = $579; - $175 = $179; - $581 = $175; - $582 = HEAP32[$581>>2]|0; - $583 = $178; - HEAP32[$583>>2] = $582; - $584 = ((($476)) + 4|0); - $585 = ((($244)) + 4|0); - $183 = $584; - $184 = $585; - $586 = $183; - $182 = $586; - $587 = $182; - $588 = HEAP32[$587>>2]|0; - HEAP32[$185>>2] = $588; - $589 = $184; - $180 = $589; - $590 = $180; - $591 = HEAP32[$590>>2]|0; - $592 = $183; - HEAP32[$592>>2] = $591; - $181 = $185; - $593 = $181; - $594 = HEAP32[$593>>2]|0; - $595 = $184; - HEAP32[$595>>2] = $594; - $596 = ((($476)) + 8|0); - $597 = ((($244)) + 8|0); - $189 = $596; - $190 = $597; - $598 = $189; - $188 = $598; - $599 = $188; - $600 = HEAP32[$599>>2]|0; - HEAP32[$191>>2] = $600; - $601 = $190; - $186 = $601; - $602 = $186; - $603 = HEAP32[$602>>2]|0; - $604 = $189; - HEAP32[$604>>2] = $603; - $187 = $191; - $605 = $187; - $606 = HEAP32[$605>>2]|0; - $607 = $190; - HEAP32[$607>>2] = $606; - $194 = $476; - $608 = $194; - $609 = ((($608)) + 12|0); - $193 = $609; - $610 = $193; - $192 = $610; - $611 = $192; - $197 = $244; - $612 = $197; - $613 = ((($612)) + 12|0); - $196 = $613; - $614 = $196; - $195 = $614; - $615 = $195; - $201 = $611; - $202 = $615; - $616 = $201; - $200 = $616; - $617 = $200; - $618 = HEAP32[$617>>2]|0; - HEAP32[$203>>2] = $618; - $619 = $202; - $198 = $619; - $620 = $198; - $621 = HEAP32[$620>>2]|0; - $622 = $201; - HEAP32[$622>>2] = $621; - $199 = $203; - $623 = $199; - $624 = HEAP32[$623>>2]|0; - $625 = $202; - HEAP32[$625>>2] = $624; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($244); - break; - } - $489 = ((($476)) + 4|0); - $490 = HEAP32[$489>>2]|0; - $491 = HEAP32[$476>>2]|0; - $492 = $490; - $493 = $491; - $494 = (($492) - ($493))|0; - $495 = (($494|0) / 4)&-1; - $240 = $495; - $496 = $240; - $497 = (($496) + 1)|0; - $498 = (($497|0) / 2)&-1; - $240 = $498; - $499 = ((($476)) + 4|0); - $500 = HEAP32[$499>>2]|0; - $501 = ((($476)) + 8|0); - $502 = HEAP32[$501>>2]|0; - $503 = ((($476)) + 4|0); - $504 = HEAP32[$503>>2]|0; - $505 = $240; - $506 = (0 - ($505))|0; - $507 = (($504) + ($506<<2)|0); - $214 = $500; - $215 = $502; - $216 = $507; - $508 = $214; - $213 = $508; - $509 = $213; - $510 = $215; - $207 = $510; - $511 = $207; - $512 = $216; - $208 = $512; - $513 = $208; - $209 = $509; - $210 = $511; - $211 = $513; - $514 = $210; - $515 = $209; - $516 = $514; - $517 = $515; - $518 = (($516) - ($517))|0; - $519 = (($518|0) / 4)&-1; - $212 = $519; - $520 = $212; - $521 = ($520>>>0)>(0); - if ($521) { - $522 = $211; - $523 = $209; - $524 = $212; - $525 = $524<<2; - _memmove(($522|0),($523|0),($525|0))|0; - } - $526 = $211; - $527 = $212; - $528 = (($526) + ($527<<2)|0); - $529 = ((($476)) + 8|0); - HEAP32[$529>>2] = $528; - $530 = $240; - $531 = ((($476)) + 4|0); - $532 = HEAP32[$531>>2]|0; - $533 = (0 - ($530))|0; - $534 = (($532) + ($533<<2)|0); - HEAP32[$531>>2] = $534; - } - } while(0); - $219 = $476; - $626 = $219; - $627 = ((($626)) + 12|0); - $218 = $627; - $628 = $218; - $217 = $628; - $629 = $217; - $630 = ((($476)) + 8|0); - $631 = HEAP32[$630>>2]|0; - $220 = $631; - $632 = $220; - $633 = $239; - $231 = $629; - $232 = $632; - $233 = $633; - $634 = $231; - $635 = $232; - $636 = $233; - $230 = $636; - $637 = $230; - ;HEAP8[$229>>0]=HEAP8[$234>>0]|0; - $226 = $634; - $227 = $635; - $228 = $637; - $638 = $226; - $639 = $227; - $640 = $228; - $225 = $640; - $641 = $225; - $222 = $638; - $223 = $639; - $224 = $641; - $642 = $223; - $643 = $224; - $221 = $643; - $644 = $221; - $645 = HEAP32[$644>>2]|0; - HEAP32[$642>>2] = $645; - $646 = ((($476)) + 8|0); - $647 = HEAP32[$646>>2]|0; - $648 = ((($647)) + 4|0); - HEAP32[$646>>2] = $648; - $649 = HEAP32[$402>>2]|0; - $650 = (($649) + -1)|0; - HEAP32[$402>>2] = $650; - } - STACKTOP = sp;return; - } - $651 = HEAP32[$401>>2]|0; - $157 = $413; - $652 = $157; - $156 = $652; - $653 = $156; - $654 = ((($653)) + 12|0); - $155 = $654; - $655 = $155; - $154 = $655; - $656 = $154; - $657 = HEAP32[$656>>2]|0; - $658 = HEAP32[$652>>2]|0; - $659 = $657; - $660 = $658; - $661 = (($659) - ($660))|0; - $662 = (($661|0) / 4)&-1; - $153 = $413; - $663 = $153; - $664 = ((($663)) + 8|0); - $665 = HEAP32[$664>>2]|0; - $666 = ((($663)) + 4|0); - $667 = HEAP32[$666>>2]|0; - $668 = $665; - $669 = $667; - $670 = (($668) - ($669))|0; - $671 = (($670|0) / 4)&-1; - $672 = (($662) - ($671))|0; - $673 = ($651>>>0)<=($672>>>0); - if (!($673)) { - $935 = HEAP32[$402>>2]|0; - $936 = ($935*93)|0; - $407 = $936; - $30 = $413; - $937 = $30; - $29 = $937; - $938 = $29; - $939 = ((($938)) + 12|0); - $28 = $939; - $940 = $28; - $27 = $940; - $941 = $27; - $942 = HEAP32[$941>>2]|0; - $943 = HEAP32[$937>>2]|0; - $944 = $942; - $945 = $943; - $946 = (($944) - ($945))|0; - $947 = (($946|0) / 4)&-1; - $948 = $947<<1; - HEAP32[$409>>2] = $948; - $949 = HEAP32[$401>>2]|0; - $26 = $413; - $950 = $26; - $951 = ((($950)) + 8|0); - $952 = HEAP32[$951>>2]|0; - $953 = ((($950)) + 4|0); - $954 = HEAP32[$953>>2]|0; - $955 = $952; - $956 = $954; - $957 = (($955) - ($956))|0; - $958 = (($957|0) / 4)&-1; - $959 = (($949) + ($958))|0; - HEAP32[$410>>2] = $959; - $23 = $409; - $24 = $410; - $960 = $23; - $961 = $24; - ;HEAP8[$22>>0]=HEAP8[$25>>0]|0; - $20 = $960; - $21 = $961; - $962 = $20; - $963 = $21; - $17 = $22; - $18 = $962; - $19 = $963; - $964 = $18; - $965 = HEAP32[$964>>2]|0; - $966 = $19; - $967 = HEAP32[$966>>2]|0; - $968 = ($965>>>0)<($967>>>0); - $969 = $21; - $970 = $20; - $971 = $968 ? $969 : $970; - $972 = HEAP32[$971>>2]|0; - $16 = $413; - $973 = $16; - $974 = ((($973)) + 8|0); - $975 = HEAP32[$974>>2]|0; - $976 = ((($973)) + 4|0); - $977 = HEAP32[$976>>2]|0; - $978 = $975; - $979 = $977; - $980 = (($978) - ($979))|0; - $981 = (($980|0) / 4)&-1; - $982 = HEAP32[$402>>2]|0; - $983 = (($981) - ($982))|0; - $15 = $413; - $984 = $15; - $985 = ((($984)) + 12|0); - $14 = $985; - $986 = $14; - $13 = $986; - $987 = $13; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($408,$972,$983,$987); - while(1) { - $988 = HEAP32[$401>>2]|0; - $989 = ($988>>>0)>(0); - if (!($989)) { - break; - } - $990 = $400; - $11 = $990; - $12 = 93; - $991 = $11; - $992 = $12; - $8 = $991; - $9 = $992; - $10 = 0; - $993 = $8; - $994 = $9; - $7 = $993; - $995 = ($994>>>0)>(97612893); - if ($995) { - label = 35; - break; - } - $1000 = $9; - $1001 = ($1000*44)|0; - $6 = $1001; - $1002 = $6; - $1003 = (__Znwj($1002)|0); - HEAP32[$411>>2] = $1003; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE9push_backEOS4_($408,$411); - $1004 = HEAP32[$401>>2]|0; - $1005 = (($1004) + -1)|0; - HEAP32[$401>>2] = $1005; - } - if ((label|0) == 35) { - $5 = 4287; - $996 = (___cxa_allocate_exception(8)|0); - $997 = $5; - $3 = $996; - $4 = $997; - $998 = $3; - $999 = $4; - __ZNSt11logic_errorC2EPKc($998,$999); - HEAP32[$998>>2] = (3660); - ___cxa_throw(($996|0),(1384|0),(220|0)); - // unreachable; - } - while(1) { - $1006 = HEAP32[$402>>2]|0; - $1007 = ($1006>>>0)>(0); - if (!($1007)) { - break; - } - $2 = $413; - $1008 = $2; - $1009 = ((($1008)) + 4|0); - $1010 = HEAP32[$1009>>2]|0; - $335 = $408; - $336 = $1010; - $1011 = $335; - $1012 = ((($1011)) + 8|0); - $1013 = HEAP32[$1012>>2]|0; - $334 = $1011; - $1014 = $334; - $1015 = ((($1014)) + 12|0); - $333 = $1015; - $1016 = $333; - $332 = $1016; - $1017 = $332; - $1018 = HEAP32[$1017>>2]|0; - $1019 = ($1013|0)==($1018|0); - do { - if ($1019) { - $1020 = ((($1011)) + 4|0); - $1021 = HEAP32[$1020>>2]|0; - $1022 = HEAP32[$1011>>2]|0; - $1023 = ($1021>>>0)>($1022>>>0); - if (!($1023)) { - $303 = $1011; - $1070 = $303; - $1071 = ((($1070)) + 12|0); - $302 = $1071; - $1072 = $302; - $301 = $1072; - $1073 = $301; - $1074 = HEAP32[$1073>>2]|0; - $1075 = HEAP32[$1011>>2]|0; - $1076 = $1074; - $1077 = $1075; - $1078 = (($1076) - ($1077))|0; - $1079 = (($1078|0) / 4)&-1; - $1080 = $1079<<1; - HEAP32[$339>>2] = $1080; - HEAP32[$340>>2] = 1; - $268 = $339; - $269 = $340; - $1081 = $268; - $1082 = $269; - ;HEAP8[$267>>0]=HEAP8[$270>>0]|0; - $265 = $1081; - $266 = $1082; - $1083 = $265; - $1084 = $266; - $262 = $267; - $263 = $1083; - $264 = $1084; - $1085 = $263; - $1086 = HEAP32[$1085>>2]|0; - $1087 = $264; - $1088 = HEAP32[$1087>>2]|0; - $1089 = ($1086>>>0)<($1088>>>0); - $1090 = $266; - $1091 = $265; - $1092 = $1089 ? $1090 : $1091; - $1093 = HEAP32[$1092>>2]|0; - $338 = $1093; - $1094 = $338; - $1095 = $338; - $1096 = (($1095>>>0) / 4)&-1; - $257 = $1011; - $1097 = $257; - $1098 = ((($1097)) + 12|0); - $256 = $1098; - $1099 = $256; - $1100 = ((($1099)) + 4|0); - $255 = $1100; - $1101 = $255; - $1102 = HEAP32[$1101>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($341,$1094,$1096,$1102); - $1103 = ((($1011)) + 4|0); - $1104 = HEAP32[$1103>>2]|0; - $258 = $342; - $259 = $1104; - $1105 = $258; - $1106 = $259; - HEAP32[$1105>>2] = $1106; - $1107 = ((($1011)) + 8|0); - $1108 = HEAP32[$1107>>2]|0; - $260 = $343; - $261 = $1108; - $1109 = $260; - $1110 = $261; - HEAP32[$1109>>2] = $1110; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$342>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$343>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($341,$$byval_copy4,$$byval_copy5); - $274 = $1011; - $275 = $341; - $1111 = $274; - $273 = $1111; - $1112 = $273; - $1113 = HEAP32[$1112>>2]|0; - HEAP32[$276>>2] = $1113; - $1114 = $275; - $271 = $1114; - $1115 = $271; - $1116 = HEAP32[$1115>>2]|0; - $1117 = $274; - HEAP32[$1117>>2] = $1116; - $272 = $276; - $1118 = $272; - $1119 = HEAP32[$1118>>2]|0; - $1120 = $275; - HEAP32[$1120>>2] = $1119; - $1121 = ((($1011)) + 4|0); - $1122 = ((($341)) + 4|0); - $280 = $1121; - $281 = $1122; - $1123 = $280; - $279 = $1123; - $1124 = $279; - $1125 = HEAP32[$1124>>2]|0; - HEAP32[$282>>2] = $1125; - $1126 = $281; - $277 = $1126; - $1127 = $277; - $1128 = HEAP32[$1127>>2]|0; - $1129 = $280; - HEAP32[$1129>>2] = $1128; - $278 = $282; - $1130 = $278; - $1131 = HEAP32[$1130>>2]|0; - $1132 = $281; - HEAP32[$1132>>2] = $1131; - $1133 = ((($1011)) + 8|0); - $1134 = ((($341)) + 8|0); - $286 = $1133; - $287 = $1134; - $1135 = $286; - $285 = $1135; - $1136 = $285; - $1137 = HEAP32[$1136>>2]|0; - HEAP32[$288>>2] = $1137; - $1138 = $287; - $283 = $1138; - $1139 = $283; - $1140 = HEAP32[$1139>>2]|0; - $1141 = $286; - HEAP32[$1141>>2] = $1140; - $284 = $288; - $1142 = $284; - $1143 = HEAP32[$1142>>2]|0; - $1144 = $287; - HEAP32[$1144>>2] = $1143; - $291 = $1011; - $1145 = $291; - $1146 = ((($1145)) + 12|0); - $290 = $1146; - $1147 = $290; - $289 = $1147; - $1148 = $289; - $294 = $341; - $1149 = $294; - $1150 = ((($1149)) + 12|0); - $293 = $1150; - $1151 = $293; - $292 = $1151; - $1152 = $292; - $298 = $1148; - $299 = $1152; - $1153 = $298; - $297 = $1153; - $1154 = $297; - $1155 = HEAP32[$1154>>2]|0; - HEAP32[$300>>2] = $1155; - $1156 = $299; - $295 = $1156; - $1157 = $295; - $1158 = HEAP32[$1157>>2]|0; - $1159 = $298; - HEAP32[$1159>>2] = $1158; - $296 = $300; - $1160 = $296; - $1161 = HEAP32[$1160>>2]|0; - $1162 = $299; - HEAP32[$1162>>2] = $1161; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($341); - break; - } - $1024 = ((($1011)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = HEAP32[$1011>>2]|0; - $1027 = $1025; - $1028 = $1026; - $1029 = (($1027) - ($1028))|0; - $1030 = (($1029|0) / 4)&-1; - $337 = $1030; - $1031 = $337; - $1032 = (($1031) + 1)|0; - $1033 = (($1032|0) / 2)&-1; - $337 = $1033; - $1034 = ((($1011)) + 4|0); - $1035 = HEAP32[$1034>>2]|0; - $1036 = ((($1011)) + 8|0); - $1037 = HEAP32[$1036>>2]|0; - $1038 = ((($1011)) + 4|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = $337; - $1041 = (0 - ($1040))|0; - $1042 = (($1039) + ($1041<<2)|0); - $311 = $1035; - $312 = $1037; - $313 = $1042; - $1043 = $311; - $310 = $1043; - $1044 = $310; - $1045 = $312; - $304 = $1045; - $1046 = $304; - $1047 = $313; - $305 = $1047; - $1048 = $305; - $306 = $1044; - $307 = $1046; - $308 = $1048; - $1049 = $307; - $1050 = $306; - $1051 = $1049; - $1052 = $1050; - $1053 = (($1051) - ($1052))|0; - $1054 = (($1053|0) / 4)&-1; - $309 = $1054; - $1055 = $309; - $1056 = ($1055>>>0)>(0); - if ($1056) { - $1057 = $308; - $1058 = $306; - $1059 = $309; - $1060 = $1059<<2; - _memmove(($1057|0),($1058|0),($1060|0))|0; - } - $1061 = $308; - $1062 = $309; - $1063 = (($1061) + ($1062<<2)|0); - $1064 = ((($1011)) + 8|0); - HEAP32[$1064>>2] = $1063; - $1065 = $337; - $1066 = ((($1011)) + 4|0); - $1067 = HEAP32[$1066>>2]|0; - $1068 = (0 - ($1065))|0; - $1069 = (($1067) + ($1068<<2)|0); - HEAP32[$1066>>2] = $1069; - } - } while(0); - $316 = $1011; - $1163 = $316; - $1164 = ((($1163)) + 12|0); - $315 = $1164; - $1165 = $315; - $1166 = ((($1165)) + 4|0); - $314 = $1166; - $1167 = $314; - $1168 = HEAP32[$1167>>2]|0; - $1169 = ((($1011)) + 8|0); - $1170 = HEAP32[$1169>>2]|0; - $317 = $1170; - $1171 = $317; - $1172 = $336; - $328 = $1168; - $329 = $1171; - $330 = $1172; - $1173 = $328; - $1174 = $329; - $1175 = $330; - $327 = $1175; - $1176 = $327; - ;HEAP8[$326>>0]=HEAP8[$331>>0]|0; - $323 = $1173; - $324 = $1174; - $325 = $1176; - $1177 = $323; - $1178 = $324; - $1179 = $325; - $322 = $1179; - $1180 = $322; - $319 = $1177; - $320 = $1178; - $321 = $1180; - $1181 = $320; - $1182 = $321; - $318 = $1182; - $1183 = $318; - $1184 = HEAP32[$1183>>2]|0; - HEAP32[$1181>>2] = $1184; - $1185 = ((($1011)) + 8|0); - $1186 = HEAP32[$1185>>2]|0; - $1187 = ((($1186)) + 4|0); - HEAP32[$1185>>2] = $1187; - $350 = $413; - $1188 = $350; - $1189 = ((($1188)) + 4|0); - $1190 = HEAP32[$1189>>2]|0; - $1191 = ((($1190)) + 4|0); - $347 = $1188; - $348 = $1191; - $1192 = $347; - $1193 = $348; - ;HEAP8[$346>>0]=HEAP8[$349>>0]|0; - $344 = $1192; - $345 = $1193; - $1194 = $344; - $1195 = $345; - $1196 = ((($1194)) + 4|0); - HEAP32[$1196>>2] = $1195; - $1197 = HEAP32[$402>>2]|0; - $1198 = (($1197) + -1)|0; - HEAP32[$402>>2] = $1198; - } - $351 = $413; - $1199 = $351; - $1200 = ((($1199)) + 8|0); - $1201 = HEAP32[$1200>>2]|0; - $412 = $1201; - while(1) { - $1202 = $412; - $352 = $413; - $1203 = $352; - $1204 = ((($1203)) + 4|0); - $1205 = HEAP32[$1204>>2]|0; - $1206 = ($1202|0)!=($1205|0); - if (!($1206)) { - break; - } - $1207 = $412; - $1208 = ((($1207)) + -4|0); - $412 = $1208; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE10push_frontERKS4_($408,$1208); - } - $365 = $413; - $366 = $408; - $1209 = $365; - $364 = $1209; - $1210 = $364; - $1211 = HEAP32[$1210>>2]|0; - HEAP32[$367>>2] = $1211; - $1212 = $366; - $362 = $1212; - $1213 = $362; - $1214 = HEAP32[$1213>>2]|0; - $1215 = $365; - HEAP32[$1215>>2] = $1214; - $363 = $367; - $1216 = $363; - $1217 = HEAP32[$1216>>2]|0; - $1218 = $366; - HEAP32[$1218>>2] = $1217; - $1219 = ((($413)) + 4|0); - $1220 = ((($408)) + 4|0); - $371 = $1219; - $372 = $1220; - $1221 = $371; - $370 = $1221; - $1222 = $370; - $1223 = HEAP32[$1222>>2]|0; - HEAP32[$373>>2] = $1223; - $1224 = $372; - $368 = $1224; - $1225 = $368; - $1226 = HEAP32[$1225>>2]|0; - $1227 = $371; - HEAP32[$1227>>2] = $1226; - $369 = $373; - $1228 = $369; - $1229 = HEAP32[$1228>>2]|0; - $1230 = $372; - HEAP32[$1230>>2] = $1229; - $1231 = ((($413)) + 8|0); - $1232 = ((($408)) + 8|0); - $377 = $1231; - $378 = $1232; - $1233 = $377; - $376 = $1233; - $1234 = $376; - $1235 = HEAP32[$1234>>2]|0; - HEAP32[$379>>2] = $1235; - $1236 = $378; - $374 = $1236; - $1237 = $374; - $1238 = HEAP32[$1237>>2]|0; - $1239 = $377; - HEAP32[$1239>>2] = $1238; - $375 = $379; - $1240 = $375; - $1241 = HEAP32[$1240>>2]|0; - $1242 = $378; - HEAP32[$1242>>2] = $1241; - $382 = $413; - $1243 = $382; - $1244 = ((($1243)) + 12|0); - $381 = $1244; - $1245 = $381; - $380 = $1245; - $1246 = $380; - $385 = $408; - $1247 = $385; - $1248 = ((($1247)) + 12|0); - $384 = $1248; - $1249 = $384; - $383 = $1249; - $1250 = $383; - $389 = $1246; - $390 = $1250; - $1251 = $389; - $388 = $1251; - $1252 = $388; - $1253 = HEAP32[$1252>>2]|0; - HEAP32[$391>>2] = $1253; - $1254 = $390; - $386 = $1254; - $1255 = $386; - $1256 = HEAP32[$1255>>2]|0; - $1257 = $389; - HEAP32[$1257>>2] = $1256; - $387 = $391; - $1258 = $387; - $1259 = HEAP32[$1258>>2]|0; - $1260 = $390; - HEAP32[$1260>>2] = $1259; - $1261 = $407; - $1262 = ((($413)) + 16|0); - $1263 = HEAP32[$1262>>2]|0; - $1264 = (($1263) - ($1261))|0; - HEAP32[$1262>>2] = $1264; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($408); - STACKTOP = sp;return; - } - while(1) { - $674 = HEAP32[$401>>2]|0; - $675 = ($674>>>0)>(0); - if (!($675)) { - break; - } - $152 = $413; - $676 = $152; - $151 = $676; - $677 = $151; - $678 = ((($677)) + 12|0); - $150 = $678; - $679 = $150; - $149 = $679; - $680 = $149; - $681 = HEAP32[$680>>2]|0; - $682 = ((($676)) + 8|0); - $683 = HEAP32[$682>>2]|0; - $684 = $681; - $685 = $683; - $686 = (($684) - ($685))|0; - $687 = (($686|0) / 4)&-1; - $688 = ($687|0)==(0); - if ($688) { - break; - } - $689 = $400; - $147 = $689; - $148 = 93; - $690 = $147; - $691 = $148; - $144 = $690; - $145 = $691; - $146 = 0; - $692 = $144; - $693 = $145; - $143 = $692; - $694 = ($693>>>0)>(97612893); - if ($694) { - label = 16; - break; - } - $699 = $145; - $700 = ($699*44)|0; - $142 = $700; - $701 = $142; - $702 = (__Znwj($701)|0); - HEAP32[$404>>2] = $702; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE9push_backEOS4_($413,$404); - $703 = HEAP32[$401>>2]|0; - $704 = (($703) + -1)|0; - HEAP32[$401>>2] = $704; - } - if ((label|0) == 16) { - $141 = 4287; - $695 = (___cxa_allocate_exception(8)|0); - $696 = $141; - $139 = $695; - $140 = $696; - $697 = $139; - $698 = $140; - __ZNSt11logic_errorC2EPKc($697,$698); - HEAP32[$697>>2] = (3660); - ___cxa_throw(($695|0),(1384|0),(220|0)); - // unreachable; - } - while(1) { - $705 = HEAP32[$401>>2]|0; - $706 = ($705>>>0)>(0); - if (!($706)) { - break; - } - $707 = $400; - $137 = $707; - $138 = 93; - $708 = $137; - $709 = $138; - $134 = $708; - $135 = $709; - $136 = 0; - $710 = $134; - $711 = $135; - $133 = $710; - $712 = ($711>>>0)>(97612893); - if ($712) { - label = 21; - break; - } - $717 = $135; - $718 = ($717*44)|0; - $132 = $718; - $719 = $132; - $720 = (__Znwj($719)|0); - HEAP32[$405>>2] = $720; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE10push_frontEOS4_($413,$405); - $721 = HEAP32[$401>>2]|0; - $722 = (($721) + -1)|0; - HEAP32[$401>>2] = $722; - $723 = HEAP32[$402>>2]|0; - $724 = (($723) + 1)|0; - HEAP32[$402>>2] = $724; - $128 = $413; - $725 = $128; - $726 = ((($725)) + 8|0); - $727 = HEAP32[$726>>2]|0; - $728 = ((($725)) + 4|0); - $729 = HEAP32[$728>>2]|0; - $730 = $727; - $731 = $729; - $732 = (($730) - ($731))|0; - $733 = (($732|0) / 4)&-1; - $734 = ($733|0)==(1); - $735 = $734&1; - $736 = (93 - ($735))|0; - $737 = ((($413)) + 16|0); - $738 = HEAP32[$737>>2]|0; - $739 = (($738) + ($736))|0; - HEAP32[$737>>2] = $739; - } - if ((label|0) == 21) { - $131 = 4287; - $713 = (___cxa_allocate_exception(8)|0); - $714 = $131; - $129 = $713; - $130 = $714; - $715 = $129; - $716 = $130; - __ZNSt11logic_errorC2EPKc($715,$716); - HEAP32[$715>>2] = (3660); - ___cxa_throw(($713|0),(1384|0),(220|0)); - // unreachable; - } - $740 = HEAP32[$402>>2]|0; - $741 = ($740*93)|0; - $742 = ((($413)) + 16|0); - $743 = HEAP32[$742>>2]|0; - $744 = (($743) - ($741))|0; - HEAP32[$742>>2] = $744; - while(1) { - $745 = HEAP32[$402>>2]|0; - $746 = ($745>>>0)>(0); - if (!($746)) { - break; - } - $127 = $413; - $747 = $127; - $748 = ((($747)) + 4|0); - $749 = HEAP32[$748>>2]|0; - $750 = HEAP32[$749>>2]|0; - HEAP32[$406>>2] = $750; - $126 = $413; - $751 = $126; - $752 = ((($751)) + 4|0); - $753 = HEAP32[$752>>2]|0; - $754 = ((($753)) + 4|0); - $123 = $751; - $124 = $754; - $755 = $123; - $756 = $124; - ;HEAP8[$122>>0]=HEAP8[$125>>0]|0; - $120 = $755; - $121 = $756; - $757 = $120; - $758 = $121; - $759 = ((($757)) + 4|0); - HEAP32[$759>>2] = $758; - $111 = $413; - $112 = $406; - $760 = $111; - $761 = ((($760)) + 8|0); - $762 = HEAP32[$761>>2]|0; - $110 = $760; - $763 = $110; - $764 = ((($763)) + 12|0); - $109 = $764; - $765 = $109; - $108 = $765; - $766 = $108; - $767 = HEAP32[$766>>2]|0; - $768 = ($762|0)==($767|0); - do { - if ($768) { - $769 = ((($760)) + 4|0); - $770 = HEAP32[$769>>2]|0; - $771 = HEAP32[$760>>2]|0; - $772 = ($770>>>0)>($771>>>0); - if (!($772)) { - $79 = $760; - $819 = $79; - $820 = ((($819)) + 12|0); - $78 = $820; - $821 = $78; - $77 = $821; - $822 = $77; - $823 = HEAP32[$822>>2]|0; - $824 = HEAP32[$760>>2]|0; - $825 = $823; - $826 = $824; - $827 = (($825) - ($826))|0; - $828 = (($827|0) / 4)&-1; - $829 = $828<<1; - HEAP32[$115>>2] = $829; - HEAP32[$116>>2] = 1; - $44 = $115; - $45 = $116; - $830 = $44; - $831 = $45; - ;HEAP8[$43>>0]=HEAP8[$46>>0]|0; - $41 = $830; - $42 = $831; - $832 = $41; - $833 = $42; - $38 = $43; - $39 = $832; - $40 = $833; - $834 = $39; - $835 = HEAP32[$834>>2]|0; - $836 = $40; - $837 = HEAP32[$836>>2]|0; - $838 = ($835>>>0)<($837>>>0); - $839 = $42; - $840 = $41; - $841 = $838 ? $839 : $840; - $842 = HEAP32[$841>>2]|0; - $114 = $842; - $843 = $114; - $844 = $114; - $845 = (($844>>>0) / 4)&-1; - $33 = $760; - $846 = $33; - $847 = ((($846)) + 12|0); - $32 = $847; - $848 = $32; - $31 = $848; - $849 = $31; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($117,$843,$845,$849); - $850 = ((($760)) + 4|0); - $851 = HEAP32[$850>>2]|0; - $34 = $118; - $35 = $851; - $852 = $34; - $853 = $35; - HEAP32[$852>>2] = $853; - $854 = ((($760)) + 8|0); - $855 = HEAP32[$854>>2]|0; - $36 = $119; - $37 = $855; - $856 = $36; - $857 = $37; - HEAP32[$856>>2] = $857; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$118>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$119>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($117,$$byval_copy2,$$byval_copy3); - $50 = $760; - $51 = $117; - $858 = $50; - $49 = $858; - $859 = $49; - $860 = HEAP32[$859>>2]|0; - HEAP32[$52>>2] = $860; - $861 = $51; - $47 = $861; - $862 = $47; - $863 = HEAP32[$862>>2]|0; - $864 = $50; - HEAP32[$864>>2] = $863; - $48 = $52; - $865 = $48; - $866 = HEAP32[$865>>2]|0; - $867 = $51; - HEAP32[$867>>2] = $866; - $868 = ((($760)) + 4|0); - $869 = ((($117)) + 4|0); - $56 = $868; - $57 = $869; - $870 = $56; - $55 = $870; - $871 = $55; - $872 = HEAP32[$871>>2]|0; - HEAP32[$58>>2] = $872; - $873 = $57; - $53 = $873; - $874 = $53; - $875 = HEAP32[$874>>2]|0; - $876 = $56; - HEAP32[$876>>2] = $875; - $54 = $58; - $877 = $54; - $878 = HEAP32[$877>>2]|0; - $879 = $57; - HEAP32[$879>>2] = $878; - $880 = ((($760)) + 8|0); - $881 = ((($117)) + 8|0); - $62 = $880; - $63 = $881; - $882 = $62; - $61 = $882; - $883 = $61; - $884 = HEAP32[$883>>2]|0; - HEAP32[$64>>2] = $884; - $885 = $63; - $59 = $885; - $886 = $59; - $887 = HEAP32[$886>>2]|0; - $888 = $62; - HEAP32[$888>>2] = $887; - $60 = $64; - $889 = $60; - $890 = HEAP32[$889>>2]|0; - $891 = $63; - HEAP32[$891>>2] = $890; - $67 = $760; - $892 = $67; - $893 = ((($892)) + 12|0); - $66 = $893; - $894 = $66; - $65 = $894; - $895 = $65; - $70 = $117; - $896 = $70; - $897 = ((($896)) + 12|0); - $69 = $897; - $898 = $69; - $68 = $898; - $899 = $68; - $74 = $895; - $75 = $899; - $900 = $74; - $73 = $900; - $901 = $73; - $902 = HEAP32[$901>>2]|0; - HEAP32[$76>>2] = $902; - $903 = $75; - $71 = $903; - $904 = $71; - $905 = HEAP32[$904>>2]|0; - $906 = $74; - HEAP32[$906>>2] = $905; - $72 = $76; - $907 = $72; - $908 = HEAP32[$907>>2]|0; - $909 = $75; - HEAP32[$909>>2] = $908; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($117); - break; - } - $773 = ((($760)) + 4|0); - $774 = HEAP32[$773>>2]|0; - $775 = HEAP32[$760>>2]|0; - $776 = $774; - $777 = $775; - $778 = (($776) - ($777))|0; - $779 = (($778|0) / 4)&-1; - $113 = $779; - $780 = $113; - $781 = (($780) + 1)|0; - $782 = (($781|0) / 2)&-1; - $113 = $782; - $783 = ((($760)) + 4|0); - $784 = HEAP32[$783>>2]|0; - $785 = ((($760)) + 8|0); - $786 = HEAP32[$785>>2]|0; - $787 = ((($760)) + 4|0); - $788 = HEAP32[$787>>2]|0; - $789 = $113; - $790 = (0 - ($789))|0; - $791 = (($788) + ($790<<2)|0); - $87 = $784; - $88 = $786; - $89 = $791; - $792 = $87; - $86 = $792; - $793 = $86; - $794 = $88; - $80 = $794; - $795 = $80; - $796 = $89; - $81 = $796; - $797 = $81; - $82 = $793; - $83 = $795; - $84 = $797; - $798 = $83; - $799 = $82; - $800 = $798; - $801 = $799; - $802 = (($800) - ($801))|0; - $803 = (($802|0) / 4)&-1; - $85 = $803; - $804 = $85; - $805 = ($804>>>0)>(0); - if ($805) { - $806 = $84; - $807 = $82; - $808 = $85; - $809 = $808<<2; - _memmove(($806|0),($807|0),($809|0))|0; - } - $810 = $84; - $811 = $85; - $812 = (($810) + ($811<<2)|0); - $813 = ((($760)) + 8|0); - HEAP32[$813>>2] = $812; - $814 = $113; - $815 = ((($760)) + 4|0); - $816 = HEAP32[$815>>2]|0; - $817 = (0 - ($814))|0; - $818 = (($816) + ($817<<2)|0); - HEAP32[$815>>2] = $818; - } - } while(0); - $92 = $760; - $910 = $92; - $911 = ((($910)) + 12|0); - $91 = $911; - $912 = $91; - $90 = $912; - $913 = $90; - $914 = ((($760)) + 8|0); - $915 = HEAP32[$914>>2]|0; - $93 = $915; - $916 = $93; - $917 = $112; - $104 = $913; - $105 = $916; - $106 = $917; - $918 = $104; - $919 = $105; - $920 = $106; - $103 = $920; - $921 = $103; - ;HEAP8[$102>>0]=HEAP8[$107>>0]|0; - $99 = $918; - $100 = $919; - $101 = $921; - $922 = $99; - $923 = $100; - $924 = $101; - $98 = $924; - $925 = $98; - $95 = $922; - $96 = $923; - $97 = $925; - $926 = $96; - $927 = $97; - $94 = $927; - $928 = $94; - $929 = HEAP32[$928>>2]|0; - HEAP32[$926>>2] = $929; - $930 = ((($760)) + 8|0); - $931 = HEAP32[$930>>2]|0; - $932 = ((($931)) + 4|0); - HEAP32[$930>>2] = $932; - $933 = HEAP32[$402>>2]|0; - $934 = (($933) + -1)|0; - HEAP32[$402>>2] = $934; - } - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = $1; - $13 = $10; - $9 = $13; - $14 = $9; - $15 = ((($14)) + 20|0); - $8 = $15; - $16 = $8; - $7 = $16; - $17 = $7; - $18 = HEAP32[$17>>2]|0; - $19 = ((($13)) + 16|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + ($20))|0; - $11 = $21; - $6 = $13; - $22 = $6; - $23 = ((($22)) + 4|0); - $24 = HEAP32[$23>>2]|0; - $25 = $11; - $26 = (($25>>>0) / 93)&-1; - $27 = (($24) + ($26<<2)|0); - $12 = $27; - $28 = $12; - $2 = $13; - $29 = $2; - $30 = ((($29)) + 8|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($29)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($31|0)==($33|0); - if ($34) { - $40 = 0; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; - } - $35 = $12; - $36 = HEAP32[$35>>2]|0; - $37 = $11; - $38 = (($37>>>0) % 93)&-1; - $39 = (($36) + (($38*44)|0)|0); - $40 = $39; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE9push_backEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); - $$byval_copy1 = sp + 376|0; - $$byval_copy = sp + 372|0; - $14 = sp + 8|0; - $17 = sp + 381|0; - $23 = sp + 292|0; - $29 = sp + 268|0; - $35 = sp + 244|0; - $47 = sp + 196|0; - $74 = sp; - $79 = sp + 380|0; - $87 = sp + 44|0; - $88 = sp + 40|0; - $89 = sp + 20|0; - $90 = sp + 16|0; - $91 = sp + 12|0; - $83 = $0; - $84 = $1; - $92 = $83; - $93 = ((($92)) + 8|0); - $94 = HEAP32[$93>>2]|0; - $82 = $92; - $95 = $82; - $96 = ((($95)) + 12|0); - $81 = $96; - $97 = $81; - $80 = $97; - $98 = $80; - $99 = HEAP32[$98>>2]|0; - $100 = ($94|0)==($99|0); - do { - if ($100) { - $101 = ((($92)) + 4|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$92>>2]|0; - $104 = ($102>>>0)>($103>>>0); - if (!($104)) { - $50 = $92; - $151 = $50; - $152 = ((($151)) + 12|0); - $49 = $152; - $153 = $49; - $48 = $153; - $154 = $48; - $155 = HEAP32[$154>>2]|0; - $156 = HEAP32[$92>>2]|0; - $157 = $155; - $158 = $156; - $159 = (($157) - ($158))|0; - $160 = (($159|0) / 4)&-1; - $161 = $160<<1; - HEAP32[$87>>2] = $161; - HEAP32[$88>>2] = 1; - $15 = $87; - $16 = $88; - $162 = $15; - $163 = $16; - ;HEAP8[$14>>0]=HEAP8[$17>>0]|0; - $12 = $162; - $13 = $163; - $164 = $12; - $165 = $13; - $9 = $14; - $10 = $164; - $11 = $165; - $166 = $10; - $167 = HEAP32[$166>>2]|0; - $168 = $11; - $169 = HEAP32[$168>>2]|0; - $170 = ($167>>>0)<($169>>>0); - $171 = $13; - $172 = $12; - $173 = $170 ? $171 : $172; - $174 = HEAP32[$173>>2]|0; - $86 = $174; - $175 = $86; - $176 = $86; - $177 = (($176>>>0) / 4)&-1; - $4 = $92; - $178 = $4; - $179 = ((($178)) + 12|0); - $3 = $179; - $180 = $3; - $2 = $180; - $181 = $2; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($89,$175,$177,$181); - $182 = ((($92)) + 4|0); - $183 = HEAP32[$182>>2]|0; - $5 = $90; - $6 = $183; - $184 = $5; - $185 = $6; - HEAP32[$184>>2] = $185; - $186 = ((($92)) + 8|0); - $187 = HEAP32[$186>>2]|0; - $7 = $91; - $8 = $187; - $188 = $7; - $189 = $8; - HEAP32[$188>>2] = $189; - ;HEAP32[$$byval_copy>>2]=HEAP32[$90>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$91>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($89,$$byval_copy,$$byval_copy1); - $21 = $92; - $22 = $89; - $190 = $21; - $20 = $190; - $191 = $20; - $192 = HEAP32[$191>>2]|0; - HEAP32[$23>>2] = $192; - $193 = $22; - $18 = $193; - $194 = $18; - $195 = HEAP32[$194>>2]|0; - $196 = $21; - HEAP32[$196>>2] = $195; - $19 = $23; - $197 = $19; - $198 = HEAP32[$197>>2]|0; - $199 = $22; - HEAP32[$199>>2] = $198; - $200 = ((($92)) + 4|0); - $201 = ((($89)) + 4|0); - $27 = $200; - $28 = $201; - $202 = $27; - $26 = $202; - $203 = $26; - $204 = HEAP32[$203>>2]|0; - HEAP32[$29>>2] = $204; - $205 = $28; - $24 = $205; - $206 = $24; - $207 = HEAP32[$206>>2]|0; - $208 = $27; - HEAP32[$208>>2] = $207; - $25 = $29; - $209 = $25; - $210 = HEAP32[$209>>2]|0; - $211 = $28; - HEAP32[$211>>2] = $210; - $212 = ((($92)) + 8|0); - $213 = ((($89)) + 8|0); - $33 = $212; - $34 = $213; - $214 = $33; - $32 = $214; - $215 = $32; - $216 = HEAP32[$215>>2]|0; - HEAP32[$35>>2] = $216; - $217 = $34; - $30 = $217; - $218 = $30; - $219 = HEAP32[$218>>2]|0; - $220 = $33; - HEAP32[$220>>2] = $219; - $31 = $35; - $221 = $31; - $222 = HEAP32[$221>>2]|0; - $223 = $34; - HEAP32[$223>>2] = $222; - $38 = $92; - $224 = $38; - $225 = ((($224)) + 12|0); - $37 = $225; - $226 = $37; - $36 = $226; - $227 = $36; - $41 = $89; - $228 = $41; - $229 = ((($228)) + 12|0); - $40 = $229; - $230 = $40; - $39 = $230; - $231 = $39; - $45 = $227; - $46 = $231; - $232 = $45; - $44 = $232; - $233 = $44; - $234 = HEAP32[$233>>2]|0; - HEAP32[$47>>2] = $234; - $235 = $46; - $42 = $235; - $236 = $42; - $237 = HEAP32[$236>>2]|0; - $238 = $45; - HEAP32[$238>>2] = $237; - $43 = $47; - $239 = $43; - $240 = HEAP32[$239>>2]|0; - $241 = $46; - HEAP32[$241>>2] = $240; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($89); - break; - } - $105 = ((($92)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = HEAP32[$92>>2]|0; - $108 = $106; - $109 = $107; - $110 = (($108) - ($109))|0; - $111 = (($110|0) / 4)&-1; - $85 = $111; - $112 = $85; - $113 = (($112) + 1)|0; - $114 = (($113|0) / 2)&-1; - $85 = $114; - $115 = ((($92)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($92)) + 8|0); - $118 = HEAP32[$117>>2]|0; - $119 = ((($92)) + 4|0); - $120 = HEAP32[$119>>2]|0; - $121 = $85; - $122 = (0 - ($121))|0; - $123 = (($120) + ($122<<2)|0); - $58 = $116; - $59 = $118; - $60 = $123; - $124 = $58; - $57 = $124; - $125 = $57; - $126 = $59; - $51 = $126; - $127 = $51; - $128 = $60; - $52 = $128; - $129 = $52; - $53 = $125; - $54 = $127; - $55 = $129; - $130 = $54; - $131 = $53; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 4)&-1; - $56 = $135; - $136 = $56; - $137 = ($136>>>0)>(0); - if ($137) { - $138 = $55; - $139 = $53; - $140 = $56; - $141 = $140<<2; - _memmove(($138|0),($139|0),($141|0))|0; - } - $142 = $55; - $143 = $56; - $144 = (($142) + ($143<<2)|0); - $145 = ((($92)) + 8|0); - HEAP32[$145>>2] = $144; - $146 = $85; - $147 = ((($92)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = (0 - ($146))|0; - $150 = (($148) + ($149<<2)|0); - HEAP32[$147>>2] = $150; - } - } while(0); - $63 = $92; - $242 = $63; - $243 = ((($242)) + 12|0); - $62 = $243; - $244 = $62; - $61 = $244; - $245 = $61; - $246 = ((($92)) + 8|0); - $247 = HEAP32[$246>>2]|0; - $64 = $247; - $248 = $64; - $249 = $84; - $65 = $249; - $250 = $65; - $76 = $245; - $77 = $248; - $78 = $250; - $251 = $76; - $252 = $77; - $253 = $78; - $75 = $253; - $254 = $75; - ;HEAP8[$74>>0]=HEAP8[$79>>0]|0; - $71 = $251; - $72 = $252; - $73 = $254; - $255 = $71; - $256 = $72; - $257 = $73; - $70 = $257; - $258 = $70; - $67 = $255; - $68 = $256; - $69 = $258; - $259 = $68; - $260 = $69; - $66 = $260; - $261 = $66; - $262 = HEAP32[$261>>2]|0; - HEAP32[$259>>2] = $262; - $263 = ((($92)) + 8|0); - $264 = HEAP32[$263>>2]|0; - $265 = ((($264)) + 4|0); - HEAP32[$263>>2] = $265; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE10push_frontEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 400|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(400|0); - $$byval_copy1 = sp + 388|0; - $$byval_copy = sp + 384|0; - $10 = sp + 8|0; - $13 = sp + 393|0; - $26 = sp + 292|0; - $32 = sp + 268|0; - $38 = sp + 244|0; - $50 = sp + 196|0; - $77 = sp; - $82 = sp + 392|0; - $90 = sp + 44|0; - $91 = sp + 40|0; - $92 = sp + 20|0; - $93 = sp + 16|0; - $94 = sp + 12|0; - $86 = $0; - $87 = $1; - $95 = $86; - $96 = ((($95)) + 4|0); - $97 = HEAP32[$96>>2]|0; - $98 = HEAP32[$95>>2]|0; - $99 = ($97|0)==($98|0); - do { - if ($99) { - $100 = ((($95)) + 8|0); - $101 = HEAP32[$100>>2]|0; - $85 = $95; - $102 = $85; - $103 = ((($102)) + 12|0); - $84 = $103; - $104 = $84; - $83 = $104; - $105 = $83; - $106 = HEAP32[$105>>2]|0; - $107 = ($101>>>0)<($106>>>0); - if (!($107)) { - $20 = $95; - $158 = $20; - $159 = ((($158)) + 12|0); - $19 = $159; - $160 = $19; - $18 = $160; - $161 = $18; - $162 = HEAP32[$161>>2]|0; - $163 = HEAP32[$95>>2]|0; - $164 = $162; - $165 = $163; - $166 = (($164) - ($165))|0; - $167 = (($166|0) / 4)&-1; - $168 = $167<<1; - HEAP32[$90>>2] = $168; - HEAP32[$91>>2] = 1; - $11 = $90; - $12 = $91; - $169 = $11; - $170 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $169; - $9 = $170; - $171 = $8; - $172 = $9; - $5 = $10; - $6 = $171; - $7 = $172; - $173 = $6; - $174 = HEAP32[$173>>2]|0; - $175 = $7; - $176 = HEAP32[$175>>2]|0; - $177 = ($174>>>0)<($176>>>0); - $178 = $9; - $179 = $8; - $180 = $177 ? $178 : $179; - $181 = HEAP32[$180>>2]|0; - $89 = $181; - $182 = $89; - $183 = $89; - $184 = (($183) + 3)|0; - $185 = (($184>>>0) / 4)&-1; - $4 = $95; - $186 = $4; - $187 = ((($186)) + 12|0); - $3 = $187; - $188 = $3; - $2 = $188; - $189 = $2; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($92,$182,$185,$189); - $190 = ((($95)) + 4|0); - $191 = HEAP32[$190>>2]|0; - $14 = $93; - $15 = $191; - $192 = $14; - $193 = $15; - HEAP32[$192>>2] = $193; - $194 = ((($95)) + 8|0); - $195 = HEAP32[$194>>2]|0; - $16 = $94; - $17 = $195; - $196 = $16; - $197 = $17; - HEAP32[$196>>2] = $197; - ;HEAP32[$$byval_copy>>2]=HEAP32[$93>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$94>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($92,$$byval_copy,$$byval_copy1); - $24 = $95; - $25 = $92; - $198 = $24; - $23 = $198; - $199 = $23; - $200 = HEAP32[$199>>2]|0; - HEAP32[$26>>2] = $200; - $201 = $25; - $21 = $201; - $202 = $21; - $203 = HEAP32[$202>>2]|0; - $204 = $24; - HEAP32[$204>>2] = $203; - $22 = $26; - $205 = $22; - $206 = HEAP32[$205>>2]|0; - $207 = $25; - HEAP32[$207>>2] = $206; - $208 = ((($95)) + 4|0); - $209 = ((($92)) + 4|0); - $30 = $208; - $31 = $209; - $210 = $30; - $29 = $210; - $211 = $29; - $212 = HEAP32[$211>>2]|0; - HEAP32[$32>>2] = $212; - $213 = $31; - $27 = $213; - $214 = $27; - $215 = HEAP32[$214>>2]|0; - $216 = $30; - HEAP32[$216>>2] = $215; - $28 = $32; - $217 = $28; - $218 = HEAP32[$217>>2]|0; - $219 = $31; - HEAP32[$219>>2] = $218; - $220 = ((($95)) + 8|0); - $221 = ((($92)) + 8|0); - $36 = $220; - $37 = $221; - $222 = $36; - $35 = $222; - $223 = $35; - $224 = HEAP32[$223>>2]|0; - HEAP32[$38>>2] = $224; - $225 = $37; - $33 = $225; - $226 = $33; - $227 = HEAP32[$226>>2]|0; - $228 = $36; - HEAP32[$228>>2] = $227; - $34 = $38; - $229 = $34; - $230 = HEAP32[$229>>2]|0; - $231 = $37; - HEAP32[$231>>2] = $230; - $41 = $95; - $232 = $41; - $233 = ((($232)) + 12|0); - $40 = $233; - $234 = $40; - $39 = $234; - $235 = $39; - $44 = $92; - $236 = $44; - $237 = ((($236)) + 12|0); - $43 = $237; - $238 = $43; - $42 = $238; - $239 = $42; - $48 = $235; - $49 = $239; - $240 = $48; - $47 = $240; - $241 = $47; - $242 = HEAP32[$241>>2]|0; - HEAP32[$50>>2] = $242; - $243 = $49; - $45 = $243; - $244 = $45; - $245 = HEAP32[$244>>2]|0; - $246 = $48; - HEAP32[$246>>2] = $245; - $46 = $50; - $247 = $46; - $248 = HEAP32[$247>>2]|0; - $249 = $49; - HEAP32[$249>>2] = $248; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($92); - break; - } - $63 = $95; - $108 = $63; - $109 = ((($108)) + 12|0); - $62 = $109; - $110 = $62; - $61 = $110; - $111 = $61; - $112 = HEAP32[$111>>2]|0; - $113 = ((($95)) + 8|0); - $114 = HEAP32[$113>>2]|0; - $115 = $112; - $116 = $114; - $117 = (($115) - ($116))|0; - $118 = (($117|0) / 4)&-1; - $88 = $118; - $119 = $88; - $120 = (($119) + 1)|0; - $121 = (($120|0) / 2)&-1; - $88 = $121; - $122 = ((($95)) + 4|0); - $123 = HEAP32[$122>>2]|0; - $124 = ((($95)) + 8|0); - $125 = HEAP32[$124>>2]|0; - $126 = ((($95)) + 8|0); - $127 = HEAP32[$126>>2]|0; - $128 = $88; - $129 = (($127) + ($128<<2)|0); - $58 = $123; - $59 = $125; - $60 = $129; - $130 = $58; - $57 = $130; - $131 = $57; - $132 = $59; - $51 = $132; - $133 = $51; - $134 = $60; - $52 = $134; - $135 = $52; - $53 = $131; - $54 = $133; - $55 = $135; - $136 = $54; - $137 = $53; - $138 = $136; - $139 = $137; - $140 = (($138) - ($139))|0; - $141 = (($140|0) / 4)&-1; - $56 = $141; - $142 = $56; - $143 = ($142>>>0)>(0); - if ($143) { - $144 = $56; - $145 = $55; - $146 = (0 - ($144))|0; - $147 = (($145) + ($146<<2)|0); - $55 = $147; - $148 = $55; - $149 = $53; - $150 = $56; - $151 = $150<<2; - _memmove(($148|0),($149|0),($151|0))|0; - } - $152 = $55; - $153 = ((($95)) + 4|0); - HEAP32[$153>>2] = $152; - $154 = $88; - $155 = ((($95)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = (($156) + ($154<<2)|0); - HEAP32[$155>>2] = $157; - } - } while(0); - $66 = $95; - $250 = $66; - $251 = ((($250)) + 12|0); - $65 = $251; - $252 = $65; - $64 = $252; - $253 = $64; - $254 = ((($95)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($255)) + -4|0); - $67 = $256; - $257 = $67; - $258 = $87; - $68 = $258; - $259 = $68; - $79 = $253; - $80 = $257; - $81 = $259; - $260 = $79; - $261 = $80; - $262 = $81; - $78 = $262; - $263 = $78; - ;HEAP8[$77>>0]=HEAP8[$82>>0]|0; - $74 = $260; - $75 = $261; - $76 = $263; - $264 = $74; - $265 = $75; - $266 = $76; - $73 = $266; - $267 = $73; - $70 = $264; - $71 = $265; - $72 = $267; - $268 = $71; - $269 = $72; - $69 = $269; - $270 = $69; - $271 = HEAP32[$270>>2]|0; - HEAP32[$268>>2] = $271; - $272 = ((($95)) + 4|0); - $273 = HEAP32[$272>>2]|0; - $274 = ((($273)) + -4|0); - HEAP32[$272>>2] = $274; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(1073741823); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<2; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<2)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<2)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE9push_backEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; - var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; - var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; - var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; - var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); - $$byval_copy1 = sp + 376|0; - $$byval_copy = sp + 372|0; - $14 = sp + 8|0; - $17 = sp + 381|0; - $23 = sp + 292|0; - $29 = sp + 268|0; - $35 = sp + 244|0; - $47 = sp + 196|0; - $74 = sp; - $79 = sp + 380|0; - $87 = sp + 44|0; - $88 = sp + 40|0; - $89 = sp + 20|0; - $90 = sp + 16|0; - $91 = sp + 12|0; - $83 = $0; - $84 = $1; - $92 = $83; - $93 = ((($92)) + 8|0); - $94 = HEAP32[$93>>2]|0; - $82 = $92; - $95 = $82; - $96 = ((($95)) + 12|0); - $81 = $96; - $97 = $81; - $80 = $97; - $98 = $80; - $99 = HEAP32[$98>>2]|0; - $100 = ($94|0)==($99|0); - do { - if ($100) { - $101 = ((($92)) + 4|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$92>>2]|0; - $104 = ($102>>>0)>($103>>>0); - if (!($104)) { - $50 = $92; - $151 = $50; - $152 = ((($151)) + 12|0); - $49 = $152; - $153 = $49; - $48 = $153; - $154 = $48; - $155 = HEAP32[$154>>2]|0; - $156 = HEAP32[$92>>2]|0; - $157 = $155; - $158 = $156; - $159 = (($157) - ($158))|0; - $160 = (($159|0) / 4)&-1; - $161 = $160<<1; - HEAP32[$87>>2] = $161; - HEAP32[$88>>2] = 1; - $15 = $87; - $16 = $88; - $162 = $15; - $163 = $16; - ;HEAP8[$14>>0]=HEAP8[$17>>0]|0; - $12 = $162; - $13 = $163; - $164 = $12; - $165 = $13; - $9 = $14; - $10 = $164; - $11 = $165; - $166 = $10; - $167 = HEAP32[$166>>2]|0; - $168 = $11; - $169 = HEAP32[$168>>2]|0; - $170 = ($167>>>0)<($169>>>0); - $171 = $13; - $172 = $12; - $173 = $170 ? $171 : $172; - $174 = HEAP32[$173>>2]|0; - $86 = $174; - $175 = $86; - $176 = $86; - $177 = (($176>>>0) / 4)&-1; - $4 = $92; - $178 = $4; - $179 = ((($178)) + 12|0); - $3 = $179; - $180 = $3; - $181 = ((($180)) + 4|0); - $2 = $181; - $182 = $2; - $183 = HEAP32[$182>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($89,$175,$177,$183); - $184 = ((($92)) + 4|0); - $185 = HEAP32[$184>>2]|0; - $5 = $90; - $6 = $185; - $186 = $5; - $187 = $6; - HEAP32[$186>>2] = $187; - $188 = ((($92)) + 8|0); - $189 = HEAP32[$188>>2]|0; - $7 = $91; - $8 = $189; - $190 = $7; - $191 = $8; - HEAP32[$190>>2] = $191; - ;HEAP32[$$byval_copy>>2]=HEAP32[$90>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$91>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($89,$$byval_copy,$$byval_copy1); - $21 = $92; - $22 = $89; - $192 = $21; - $20 = $192; - $193 = $20; - $194 = HEAP32[$193>>2]|0; - HEAP32[$23>>2] = $194; - $195 = $22; - $18 = $195; - $196 = $18; - $197 = HEAP32[$196>>2]|0; - $198 = $21; - HEAP32[$198>>2] = $197; - $19 = $23; - $199 = $19; - $200 = HEAP32[$199>>2]|0; - $201 = $22; - HEAP32[$201>>2] = $200; - $202 = ((($92)) + 4|0); - $203 = ((($89)) + 4|0); - $27 = $202; - $28 = $203; - $204 = $27; - $26 = $204; - $205 = $26; - $206 = HEAP32[$205>>2]|0; - HEAP32[$29>>2] = $206; - $207 = $28; - $24 = $207; - $208 = $24; - $209 = HEAP32[$208>>2]|0; - $210 = $27; - HEAP32[$210>>2] = $209; - $25 = $29; - $211 = $25; - $212 = HEAP32[$211>>2]|0; - $213 = $28; - HEAP32[$213>>2] = $212; - $214 = ((($92)) + 8|0); - $215 = ((($89)) + 8|0); - $33 = $214; - $34 = $215; - $216 = $33; - $32 = $216; - $217 = $32; - $218 = HEAP32[$217>>2]|0; - HEAP32[$35>>2] = $218; - $219 = $34; - $30 = $219; - $220 = $30; - $221 = HEAP32[$220>>2]|0; - $222 = $33; - HEAP32[$222>>2] = $221; - $31 = $35; - $223 = $31; - $224 = HEAP32[$223>>2]|0; - $225 = $34; - HEAP32[$225>>2] = $224; - $38 = $92; - $226 = $38; - $227 = ((($226)) + 12|0); - $37 = $227; - $228 = $37; - $36 = $228; - $229 = $36; - $41 = $89; - $230 = $41; - $231 = ((($230)) + 12|0); - $40 = $231; - $232 = $40; - $39 = $232; - $233 = $39; - $45 = $229; - $46 = $233; - $234 = $45; - $44 = $234; - $235 = $44; - $236 = HEAP32[$235>>2]|0; - HEAP32[$47>>2] = $236; - $237 = $46; - $42 = $237; - $238 = $42; - $239 = HEAP32[$238>>2]|0; - $240 = $45; - HEAP32[$240>>2] = $239; - $43 = $47; - $241 = $43; - $242 = HEAP32[$241>>2]|0; - $243 = $46; - HEAP32[$243>>2] = $242; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($89); - break; - } - $105 = ((($92)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = HEAP32[$92>>2]|0; - $108 = $106; - $109 = $107; - $110 = (($108) - ($109))|0; - $111 = (($110|0) / 4)&-1; - $85 = $111; - $112 = $85; - $113 = (($112) + 1)|0; - $114 = (($113|0) / 2)&-1; - $85 = $114; - $115 = ((($92)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($92)) + 8|0); - $118 = HEAP32[$117>>2]|0; - $119 = ((($92)) + 4|0); - $120 = HEAP32[$119>>2]|0; - $121 = $85; - $122 = (0 - ($121))|0; - $123 = (($120) + ($122<<2)|0); - $58 = $116; - $59 = $118; - $60 = $123; - $124 = $58; - $57 = $124; - $125 = $57; - $126 = $59; - $51 = $126; - $127 = $51; - $128 = $60; - $52 = $128; - $129 = $52; - $53 = $125; - $54 = $127; - $55 = $129; - $130 = $54; - $131 = $53; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 4)&-1; - $56 = $135; - $136 = $56; - $137 = ($136>>>0)>(0); - if ($137) { - $138 = $55; - $139 = $53; - $140 = $56; - $141 = $140<<2; - _memmove(($138|0),($139|0),($141|0))|0; - } - $142 = $55; - $143 = $56; - $144 = (($142) + ($143<<2)|0); - $145 = ((($92)) + 8|0); - HEAP32[$145>>2] = $144; - $146 = $85; - $147 = ((($92)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = (0 - ($146))|0; - $150 = (($148) + ($149<<2)|0); - HEAP32[$147>>2] = $150; - } - } while(0); - $63 = $92; - $244 = $63; - $245 = ((($244)) + 12|0); - $62 = $245; - $246 = $62; - $247 = ((($246)) + 4|0); - $61 = $247; - $248 = $61; - $249 = HEAP32[$248>>2]|0; - $250 = ((($92)) + 8|0); - $251 = HEAP32[$250>>2]|0; - $64 = $251; - $252 = $64; - $253 = $84; - $65 = $253; - $254 = $65; - $76 = $249; - $77 = $252; - $78 = $254; - $255 = $76; - $256 = $77; - $257 = $78; - $75 = $257; - $258 = $75; - ;HEAP8[$74>>0]=HEAP8[$79>>0]|0; - $71 = $255; - $72 = $256; - $73 = $258; - $259 = $71; - $260 = $72; - $261 = $73; - $70 = $261; - $262 = $70; - $67 = $259; - $68 = $260; - $69 = $262; - $263 = $68; - $264 = $69; - $66 = $264; - $265 = $66; - $266 = HEAP32[$265>>2]|0; - HEAP32[$263>>2] = $266; - $267 = ((($92)) + 8|0); - $268 = HEAP32[$267>>2]|0; - $269 = ((($268)) + 4|0); - HEAP32[$267>>2] = $269; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE10push_frontERKS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 400|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(400|0); - $$byval_copy1 = sp + 384|0; - $$byval_copy = sp + 380|0; - $10 = sp + 8|0; - $13 = sp + 389|0; - $26 = sp + 288|0; - $32 = sp + 264|0; - $38 = sp + 240|0; - $50 = sp + 192|0; - $76 = sp; - $81 = sp + 388|0; - $89 = sp + 44|0; - $90 = sp + 40|0; - $91 = sp + 20|0; - $92 = sp + 16|0; - $93 = sp + 12|0; - $85 = $0; - $86 = $1; - $94 = $85; - $95 = ((($94)) + 4|0); - $96 = HEAP32[$95>>2]|0; - $97 = HEAP32[$94>>2]|0; - $98 = ($96|0)==($97|0); - do { - if ($98) { - $99 = ((($94)) + 8|0); - $100 = HEAP32[$99>>2]|0; - $84 = $94; - $101 = $84; - $102 = ((($101)) + 12|0); - $83 = $102; - $103 = $83; - $82 = $103; - $104 = $82; - $105 = HEAP32[$104>>2]|0; - $106 = ($100>>>0)<($105>>>0); - if (!($106)) { - $20 = $94; - $157 = $20; - $158 = ((($157)) + 12|0); - $19 = $158; - $159 = $19; - $18 = $159; - $160 = $18; - $161 = HEAP32[$160>>2]|0; - $162 = HEAP32[$94>>2]|0; - $163 = $161; - $164 = $162; - $165 = (($163) - ($164))|0; - $166 = (($165|0) / 4)&-1; - $167 = $166<<1; - HEAP32[$89>>2] = $167; - HEAP32[$90>>2] = 1; - $11 = $89; - $12 = $90; - $168 = $11; - $169 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $168; - $9 = $169; - $170 = $8; - $171 = $9; - $5 = $10; - $6 = $170; - $7 = $171; - $172 = $6; - $173 = HEAP32[$172>>2]|0; - $174 = $7; - $175 = HEAP32[$174>>2]|0; - $176 = ($173>>>0)<($175>>>0); - $177 = $9; - $178 = $8; - $179 = $176 ? $177 : $178; - $180 = HEAP32[$179>>2]|0; - $88 = $180; - $181 = $88; - $182 = $88; - $183 = (($182) + 3)|0; - $184 = (($183>>>0) / 4)&-1; - $4 = $94; - $185 = $4; - $186 = ((($185)) + 12|0); - $3 = $186; - $187 = $3; - $188 = ((($187)) + 4|0); - $2 = $188; - $189 = $2; - $190 = HEAP32[$189>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($91,$181,$184,$190); - $191 = ((($94)) + 4|0); - $192 = HEAP32[$191>>2]|0; - $14 = $92; - $15 = $192; - $193 = $14; - $194 = $15; - HEAP32[$193>>2] = $194; - $195 = ((($94)) + 8|0); - $196 = HEAP32[$195>>2]|0; - $16 = $93; - $17 = $196; - $197 = $16; - $198 = $17; - HEAP32[$197>>2] = $198; - ;HEAP32[$$byval_copy>>2]=HEAP32[$92>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$93>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($91,$$byval_copy,$$byval_copy1); - $24 = $94; - $25 = $91; - $199 = $24; - $23 = $199; - $200 = $23; - $201 = HEAP32[$200>>2]|0; - HEAP32[$26>>2] = $201; - $202 = $25; - $21 = $202; - $203 = $21; - $204 = HEAP32[$203>>2]|0; - $205 = $24; - HEAP32[$205>>2] = $204; - $22 = $26; - $206 = $22; - $207 = HEAP32[$206>>2]|0; - $208 = $25; - HEAP32[$208>>2] = $207; - $209 = ((($94)) + 4|0); - $210 = ((($91)) + 4|0); - $30 = $209; - $31 = $210; - $211 = $30; - $29 = $211; - $212 = $29; - $213 = HEAP32[$212>>2]|0; - HEAP32[$32>>2] = $213; - $214 = $31; - $27 = $214; - $215 = $27; - $216 = HEAP32[$215>>2]|0; - $217 = $30; - HEAP32[$217>>2] = $216; - $28 = $32; - $218 = $28; - $219 = HEAP32[$218>>2]|0; - $220 = $31; - HEAP32[$220>>2] = $219; - $221 = ((($94)) + 8|0); - $222 = ((($91)) + 8|0); - $36 = $221; - $37 = $222; - $223 = $36; - $35 = $223; - $224 = $35; - $225 = HEAP32[$224>>2]|0; - HEAP32[$38>>2] = $225; - $226 = $37; - $33 = $226; - $227 = $33; - $228 = HEAP32[$227>>2]|0; - $229 = $36; - HEAP32[$229>>2] = $228; - $34 = $38; - $230 = $34; - $231 = HEAP32[$230>>2]|0; - $232 = $37; - HEAP32[$232>>2] = $231; - $41 = $94; - $233 = $41; - $234 = ((($233)) + 12|0); - $40 = $234; - $235 = $40; - $39 = $235; - $236 = $39; - $44 = $91; - $237 = $44; - $238 = ((($237)) + 12|0); - $43 = $238; - $239 = $43; - $42 = $239; - $240 = $42; - $48 = $236; - $49 = $240; - $241 = $48; - $47 = $241; - $242 = $47; - $243 = HEAP32[$242>>2]|0; - HEAP32[$50>>2] = $243; - $244 = $49; - $45 = $244; - $245 = $45; - $246 = HEAP32[$245>>2]|0; - $247 = $48; - HEAP32[$247>>2] = $246; - $46 = $50; - $248 = $46; - $249 = HEAP32[$248>>2]|0; - $250 = $49; - HEAP32[$250>>2] = $249; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($91); - break; - } - $63 = $94; - $107 = $63; - $108 = ((($107)) + 12|0); - $62 = $108; - $109 = $62; - $61 = $109; - $110 = $61; - $111 = HEAP32[$110>>2]|0; - $112 = ((($94)) + 8|0); - $113 = HEAP32[$112>>2]|0; - $114 = $111; - $115 = $113; - $116 = (($114) - ($115))|0; - $117 = (($116|0) / 4)&-1; - $87 = $117; - $118 = $87; - $119 = (($118) + 1)|0; - $120 = (($119|0) / 2)&-1; - $87 = $120; - $121 = ((($94)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($94)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ((($94)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = $87; - $128 = (($126) + ($127<<2)|0); - $58 = $122; - $59 = $124; - $60 = $128; - $129 = $58; - $57 = $129; - $130 = $57; - $131 = $59; - $51 = $131; - $132 = $51; - $133 = $60; - $52 = $133; - $134 = $52; - $53 = $130; - $54 = $132; - $55 = $134; - $135 = $54; - $136 = $53; - $137 = $135; - $138 = $136; - $139 = (($137) - ($138))|0; - $140 = (($139|0) / 4)&-1; - $56 = $140; - $141 = $56; - $142 = ($141>>>0)>(0); - if ($142) { - $143 = $56; - $144 = $55; - $145 = (0 - ($143))|0; - $146 = (($144) + ($145<<2)|0); - $55 = $146; - $147 = $55; - $148 = $53; - $149 = $56; - $150 = $149<<2; - _memmove(($147|0),($148|0),($150|0))|0; - } - $151 = $55; - $152 = ((($94)) + 4|0); - HEAP32[$152>>2] = $151; - $153 = $87; - $154 = ((($94)) + 8|0); - $155 = HEAP32[$154>>2]|0; - $156 = (($155) + ($153<<2)|0); - HEAP32[$154>>2] = $156; - } - } while(0); - $66 = $94; - $251 = $66; - $252 = ((($251)) + 12|0); - $65 = $252; - $253 = $65; - $254 = ((($253)) + 4|0); - $64 = $254; - $255 = $64; - $256 = HEAP32[$255>>2]|0; - $257 = ((($94)) + 4|0); - $258 = HEAP32[$257>>2]|0; - $259 = ((($258)) + -4|0); - $67 = $259; - $260 = $67; - $261 = $86; - $78 = $256; - $79 = $260; - $80 = $261; - $262 = $78; - $263 = $79; - $264 = $80; - $77 = $264; - $265 = $77; - ;HEAP8[$76>>0]=HEAP8[$81>>0]|0; - $73 = $262; - $74 = $263; - $75 = $265; - $266 = $73; - $267 = $74; - $268 = $75; - $72 = $268; - $269 = $72; - $69 = $266; - $70 = $267; - $71 = $269; - $270 = $70; - $271 = $71; - $68 = $271; - $272 = $68; - $273 = HEAP32[$272>>2]|0; - HEAP32[$270>>2] = $273; - $274 = ((($94)) + 4|0); - $275 = HEAP32[$274>>2]|0; - $276 = ((($275)) + -4|0); - HEAP32[$274>>2] = $276; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -4|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 4)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $17 = sp; - $22 = sp + 100|0; - $27 = $0; - $29 = $27; - $26 = $29; - $30 = $26; - $31 = ((($30)) + 12|0); - $25 = $31; - $32 = $25; - $33 = ((($32)) + 4|0); - $24 = $33; - $34 = $24; - $35 = HEAP32[$34>>2]|0; - $28 = $35; - while(1) { - $5 = $1; - $6 = $2; - $36 = $5; - $4 = $36; - $37 = $4; - $38 = HEAP32[$37>>2]|0; - $39 = $6; - $3 = $39; - $40 = $3; - $41 = HEAP32[$40>>2]|0; - $42 = ($38|0)!=($41|0); - if (!($42)) { - break; - } - $43 = $28; - $44 = ((($29)) + 8|0); - $45 = HEAP32[$44>>2]|0; - $7 = $45; - $46 = $7; - $8 = $1; - $47 = $8; - $48 = HEAP32[$47>>2]|0; - $19 = $43; - $20 = $46; - $21 = $48; - $49 = $19; - $50 = $20; - $51 = $21; - $18 = $51; - $52 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $49; - $15 = $50; - $16 = $52; - $53 = $14; - $54 = $15; - $55 = $16; - $13 = $55; - $56 = $13; - $10 = $53; - $11 = $54; - $12 = $56; - $57 = $11; - $58 = $12; - $9 = $58; - $59 = $9; - $60 = HEAP32[$59>>2]|0; - HEAP32[$57>>2] = $60; - $61 = ((($29)) + 8|0); - $62 = HEAP32[$61>>2]|0; - $63 = ((($62)) + 4|0); - HEAP32[$61>>2] = $63; - $23 = $1; - $64 = $23; - $65 = HEAP32[$64>>2]|0; - $66 = ((($65)) + 4|0); - HEAP32[$64>>2] = $66; - } - STACKTOP = sp;return; -} -function __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $1; - $9 = $7; - $6 = $9; - $10 = $6; - $11 = ((($10)) + 4|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($9)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14>>>0) / 93)&-1; - $16 = (($12) + ($15<<2)|0); - $8 = $16; - $17 = $8; - $5 = $9; - $18 = $5; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($18)) + 4|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $30 = 0; - } else { - $24 = $8; - $25 = HEAP32[$24>>2]|0; - $26 = ((($9)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27>>>0) % 93)&-1; - $29 = (($25) + (($28*44)|0)|0); - $30 = $29; - } - $2 = $0; - $3 = $17; - $4 = $30; - $31 = $2; - $32 = $3; - HEAP32[$31>>2] = $32; - $33 = ((($31)) + 4|0); - $34 = $4; - HEAP32[$33>>2] = $34; - STACKTOP = sp;return; -} -function __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = $1; - $13 = $10; - $9 = $13; - $14 = $9; - $15 = ((($14)) + 20|0); - $8 = $15; - $16 = $8; - $7 = $16; - $17 = $7; - $18 = HEAP32[$17>>2]|0; - $19 = ((($13)) + 16|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + ($20))|0; - $11 = $21; - $6 = $13; - $22 = $6; - $23 = ((($22)) + 4|0); - $24 = HEAP32[$23>>2]|0; - $25 = $11; - $26 = (($25>>>0) / 93)&-1; - $27 = (($24) + ($26<<2)|0); - $12 = $27; - $28 = $12; - $2 = $13; - $29 = $2; - $30 = ((($29)) + 8|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($29)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($31|0)==($33|0); - if ($34) { - $40 = 0; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; - } - $35 = $12; - $36 = HEAP32[$35>>2]|0; - $37 = $11; - $38 = (($37>>>0) % 93)&-1; - $39 = (($36) + (($38*44)|0)|0); - $40 = $39; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5clearEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $6 = sp + 8|0; - $9 = sp + 177|0; - $26 = sp; - $29 = sp + 176|0; - $41 = sp + 24|0; - $42 = sp + 16|0; - $39 = $0; - $43 = $39; - $38 = $43; - $44 = $38; - $45 = ((($44)) + 20|0); - $37 = $45; - $46 = $37; - $36 = $46; - $47 = $36; - $40 = $47; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($41,$43); - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($42,$43); - while(1) { - $34 = $41; - $35 = $42; - $48 = $34; - $49 = $35; - $32 = $48; - $33 = $49; - $50 = $32; - $51 = ((($50)) + 4|0); - $52 = HEAP32[$51>>2]|0; - $53 = $33; - $54 = ((($53)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $56 = ($52|0)==($55|0); - $57 = $56 ^ 1; - if (!($57)) { - break; - } - $58 = $40; - $16 = $41; - $59 = $16; - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $1 = $61; - $62 = $1; - $7 = $58; - $8 = $62; - $63 = $7; - $64 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $63; - $5 = $64; - $65 = $4; - $66 = $5; - $2 = $65; - $3 = $66; - $67 = $3; - __ZN6laszip6models10arithmeticD2Ev($67); - $10 = $41; - $68 = $10; - $69 = ((($68)) + 4|0); - $70 = HEAP32[$69>>2]|0; - $71 = ((($70)) + 44|0); - HEAP32[$69>>2] = $71; - $72 = HEAP32[$68>>2]|0; - $73 = HEAP32[$72>>2]|0; - $74 = $71; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 44)&-1; - $78 = ($77|0)==(93); - if ($78) { - $79 = HEAP32[$68>>2]|0; - $80 = ((($79)) + 4|0); - HEAP32[$68>>2] = $80; - $81 = HEAP32[$68>>2]|0; - $82 = HEAP32[$81>>2]|0; - $83 = ((($68)) + 4|0); - HEAP32[$83>>2] = $82; - } - } - $13 = $43; - $84 = $13; - $85 = ((($84)) + 20|0); - $12 = $85; - $86 = $12; - $11 = $86; - $87 = $11; - HEAP32[$87>>2] = 0; - while(1) { - $14 = $43; - $88 = $14; - $89 = ((($88)) + 8|0); - $90 = HEAP32[$89>>2]|0; - $91 = ((($88)) + 4|0); - $92 = HEAP32[$91>>2]|0; - $93 = $90; - $94 = $92; - $95 = (($93) - ($94))|0; - $96 = (($95|0) / 4)&-1; - $97 = ($96>>>0)>(2); - if (!($97)) { - break; - } - $98 = $40; - $15 = $43; - $99 = $15; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$101>>2]|0; - $21 = $98; - $22 = $102; - $23 = 93; - $103 = $21; - $104 = $22; - $105 = $23; - $18 = $103; - $19 = $104; - $20 = $105; - $106 = $19; - $17 = $106; - $107 = $17; - __ZdlPv($107); - $30 = $43; - $108 = $30; - $109 = ((($108)) + 4|0); - $110 = HEAP32[$109>>2]|0; - $111 = ((($110)) + 4|0); - $27 = $108; - $28 = $111; - $112 = $27; - $113 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $112; - $25 = $113; - $114 = $24; - $115 = $25; - $116 = ((($114)) + 4|0); - HEAP32[$116>>2] = $115; - } - $31 = $43; - $117 = $31; - $118 = ((($117)) + 8|0); - $119 = HEAP32[$118>>2]|0; - $120 = ((($117)) + 4|0); - $121 = HEAP32[$120>>2]|0; - $122 = $119; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 4)&-1; - switch ($125|0) { - case 1: { - $126 = ((($43)) + 16|0); - HEAP32[$126>>2] = 46; - STACKTOP = sp;return; - break; - } - case 2: { - $127 = ((($43)) + 16|0); - HEAP32[$127>>2] = 93; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $1; - $9 = $7; - $6 = $9; - $10 = $6; - $11 = ((($10)) + 4|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($9)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14>>>0) / 93)&-1; - $16 = (($12) + ($15<<2)|0); - $8 = $16; - $17 = $8; - $5 = $9; - $18 = $5; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($18)) + 4|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $30 = 0; - } else { - $24 = $8; - $25 = HEAP32[$24>>2]|0; - $26 = ((($9)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27>>>0) % 93)&-1; - $29 = (($25) + (($28*44)|0)|0); - $30 = $29; - } - $2 = $0; - $3 = $17; - $4 = $30; - $31 = $2; - $32 = $3; - HEAP32[$31>>2] = $32; - $33 = ((($31)) + 4|0); - $34 = $4; - HEAP32[$33>>2] = $34; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $5 = sp + 268|0; - $8 = sp + 256|0; - $13 = sp + 236|0; - $16 = sp + 224|0; - $28 = sp + 176|0; - $31 = sp + 164|0; - $46 = sp + 104|0; - $50 = sp + 88|0; - $63 = sp + 36|0; - $64 = sp + 32|0; - $65 = sp + 24|0; - $66 = sp + 16|0; - $67 = sp + 12|0; - $68 = sp + 8|0; - $69 = sp; - $59 = $0; - $60 = $1; - $61 = $2; - $70 = $59; - $71 = ((($70)) + 4|0); - $72 = HEAP8[$71>>0]|0; - $73 = $72&1; - if (!($73)) { - $74 = $60; - $75 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($74)|0); - $76 = $61; - $77 = HEAP32[$70>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($75,$76,$77); - $78 = $61; - $79 = $61; - $80 = HEAP32[$70>>2]|0; - $81 = (($79) + ($80)|0); - $82 = ((($70)) + 8|0); - $57 = $82; - $83 = $57; - $84 = HEAP32[$83>>2]|0; - $56 = $84; - $85 = $56; - $39 = $78; - $40 = $81; - $41 = $85; - $86 = $39; - $38 = $86; - $87 = $38; - $88 = $40; - $33 = $88; - $89 = $33; - $90 = $41; - $34 = $90; - $91 = $34; - $35 = $87; - $36 = $89; - $37 = $91; - while(1) { - $92 = $35; - $93 = $36; - $94 = ($92|0)!=($93|0); - if (!($94)) { - break; - } - $95 = $35; - $96 = HEAP8[$95>>0]|0; - $97 = $37; - HEAP8[$97>>0] = $96; - $98 = $35; - $99 = ((($98)) + 1|0); - $35 = $99; - $100 = $37; - $101 = ((($100)) + 1|0); - $37 = $101; - } - $102 = ((($70)) + 4|0); - HEAP8[$102>>0] = 1; - $103 = $61; - $104 = HEAP32[$70>>2]|0; - $105 = (($103) + ($104)|0); - $58 = $105; - $193 = $58; - STACKTOP = sp;return ($193|0); - } - $106 = ((($70)) + 20|0); - $62 = $106; - $107 = $62; - $32 = $107; - $108 = $32; - $109 = HEAP32[$108>>2]|0; - $29 = $108; - $30 = $109; - $110 = $30; - $26 = $28; - $27 = $110; - $111 = $26; - $112 = $27; - HEAP32[$111>>2] = $112; - $113 = HEAP32[$28>>2]|0; - HEAP32[$31>>2] = $113; - $114 = HEAP32[$31>>2]|0; - HEAP32[$63>>2] = $114; - $115 = ((($70)) + 8|0); - $9 = $115; - $116 = $9; - $117 = HEAP32[$116>>2]|0; - $6 = $116; - $7 = $117; - $118 = $7; - $3 = $5; - $4 = $118; - $119 = $3; - $120 = $4; - HEAP32[$119>>2] = $120; - $121 = HEAP32[$5>>2]|0; - HEAP32[$8>>2] = $121; - $122 = HEAP32[$8>>2]|0; - HEAP32[$64>>2] = $122; - $123 = ((($70)) + 32|0); - $10 = $123; - $124 = $10; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($65,$124); - while(1) { - $125 = ((($70)) + 8|0); - $17 = $125; - $126 = $17; - $127 = ((($126)) + 4|0); - $128 = HEAP32[$127>>2]|0; - $14 = $126; - $15 = $128; - $129 = $15; - $11 = $13; - $12 = $129; - $130 = $11; - $131 = $12; - HEAP32[$130>>2] = $131; - $132 = HEAP32[$13>>2]|0; - HEAP32[$16>>2] = $132; - $133 = HEAP32[$16>>2]|0; - HEAP32[$66>>2] = $133; - $22 = $64; - $23 = $66; - $134 = $22; - $135 = $23; - $20 = $134; - $21 = $135; - $136 = $20; - $19 = $136; - $137 = $19; - $138 = HEAP32[$137>>2]|0; - $139 = $21; - $18 = $139; - $140 = $18; - $141 = HEAP32[$140>>2]|0; - $142 = ($138|0)==($141|0); - $143 = $142 ^ 1; - if (!($143)) { - break; - } - $24 = $64; - $144 = $24; - $145 = HEAP32[$144>>2]|0; - $146 = HEAP8[$145>>0]|0; - $147 = $146&255; - $148 = $60; - $25 = $65; - $149 = $25; - $150 = ((($149)) + 4|0); - $151 = HEAP32[$150>>2]|0; - $152 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($148,$151)|0); - $153 = (($147) + ($152))|0; - $154 = (__Z7u8_foldi($153)|0); - $42 = $63; - $155 = $42; - $156 = HEAP32[$155>>2]|0; - HEAP8[$156>>0] = $154; - $43 = $63; - $157 = $43; - $158 = HEAP32[$157>>2]|0; - $159 = HEAP8[$158>>0]|0; - $160 = $61; - HEAP8[$160>>0] = $159; - $44 = $64; - $161 = $44; - $162 = HEAP32[$161>>2]|0; - HEAP8[$162>>0] = $159; - $47 = $64; - $48 = 0; - $163 = $47; - ;HEAP32[$46>>2]=HEAP32[$163>>2]|0; - $45 = $163; - $164 = $45; - $165 = HEAP32[$164>>2]|0; - $166 = ((($165)) + 1|0); - HEAP32[$164>>2] = $166; - $167 = HEAP32[$46>>2]|0; - HEAP32[$67>>2] = $167; - $168 = $61; - $169 = ((($168)) + 1|0); - $61 = $169; - $51 = $63; - $52 = 0; - $170 = $51; - ;HEAP32[$50>>2]=HEAP32[$170>>2]|0; - $49 = $170; - $171 = $49; - $172 = HEAP32[$171>>2]|0; - $173 = ((($172)) + 1|0); - HEAP32[$171>>2] = $173; - $174 = HEAP32[$50>>2]|0; - HEAP32[$68>>2] = $174; - $54 = $65; - $55 = 0; - $175 = $54; - ;HEAP32[$69>>2]=HEAP32[$175>>2]|0;HEAP32[$69+4>>2]=HEAP32[$175+4>>2]|0; - $53 = $175; - $176 = $53; - $177 = ((($176)) + 4|0); - $178 = HEAP32[$177>>2]|0; - $179 = ((($178)) + 44|0); - HEAP32[$177>>2] = $179; - $180 = HEAP32[$176>>2]|0; - $181 = HEAP32[$180>>2]|0; - $182 = $179; - $183 = $181; - $184 = (($182) - ($183))|0; - $185 = (($184|0) / 44)&-1; - $186 = ($185|0)==(93); - if ($186) { - $187 = HEAP32[$176>>2]|0; - $188 = ((($187)) + 4|0); - HEAP32[$176>>2] = $188; - $189 = HEAP32[$176>>2]|0; - $190 = HEAP32[$189>>2]|0; - $191 = ((($176)) + 4|0); - HEAP32[$191>>2] = $190; - } - } - $192 = $61; - $58 = $192; - $193 = $58; - STACKTOP = sp;return ($193|0); -} -function __Z7u8_foldi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2&255; - STACKTOP = sp;return ($3|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 480; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 8|0; - $13 = $0; - $14 = $1; - $15 = $13; - $11 = $15; - $16 = $11; - $10 = $16; - HEAP32[$16>>2] = 0; - $17 = ((($16)) + 4|0); - HEAP32[$17>>2] = 0; - $18 = ((($16)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $18; - $9 = $12; - $19 = $8; - $20 = $9; - $7 = $20; - $21 = $7; - $3 = $19; - $4 = $21; - $22 = $3; - $23 = $4; - $2 = $23; - HEAP32[$22>>2] = 0; - $6 = $19; - $24 = $6; - $5 = $24; - $25 = $14; - $26 = ($25>>>0)>(0); - if (!($26)) { - STACKTOP = sp;return; - } - $27 = $14; - __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($15,$27); - $28 = $14; - __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endEj($15,$28); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2EjRKS3_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $20 = sp + 20|0; - $22 = sp + 12|0; - $23 = $0; - $24 = $1; - $25 = $2; - $26 = $23; - $21 = $26; - $27 = $21; - $19 = $27; - $28 = $19; - HEAP32[$28>>2] = 0; - $29 = ((($28)) + 4|0); - HEAP32[$29>>2] = 0; - $30 = ((($28)) + 8|0); - HEAP32[$30>>2] = 0; - $31 = ((($28)) + 12|0); - HEAP32[$20>>2] = 0; - $17 = $31; - $18 = $20; - $32 = $17; - $33 = $18; - $16 = $33; - $34 = $16; - $12 = $32; - $13 = $34; - $35 = $12; - $36 = $13; - $11 = $36; - HEAP32[$35>>2] = 0; - $15 = $32; - $37 = $15; - $14 = $37; - $38 = ((($27)) + 16|0); - HEAP32[$38>>2] = 0; - $39 = ((($27)) + 20|0); - HEAP32[$22>>2] = 0; - $9 = $39; - $10 = $22; - $40 = $9; - $41 = $10; - $8 = $41; - $42 = $8; - $4 = $40; - $5 = $42; - $43 = $4; - $44 = $5; - $3 = $44; - $45 = $3; - $46 = HEAP32[$45>>2]|0; - HEAP32[$43>>2] = $46; - $7 = $40; - $47 = $7; - $6 = $47; - $48 = $24; - $49 = ($48>>>0)>(0); - if (!($49)) { - STACKTOP = sp;return; - } - $50 = $24; - $51 = $25; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendEjRKS3_($26,$50,$51); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $10 = sp; - $13 = sp + 73|0; - $21 = sp + 72|0; - $18 = $0; - $19 = $1; - $22 = $18; - $17 = $22; - $23 = $17; - $24 = ((($23)) + 8|0); - $16 = $24; - $25 = $16; - $15 = $25; - $26 = $15; - $20 = $26; - while(1) { - $2 = $21; - $3 = $22; - $4 = 1; - $27 = $20; - $28 = ((($22)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $5 = $29; - $30 = $5; - $11 = $27; - $12 = $30; - $31 = $11; - $32 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $31; - $9 = $32; - $33 = $8; - $34 = $9; - $6 = $33; - $7 = $34; - $35 = $7; - HEAP8[$35>>0] = 0; - $36 = ((($22)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = ((($37)) + 1|0); - HEAP32[$36>>2] = $38; - $39 = $19; - $40 = (($39) + -1)|0; - $19 = $40; - $14 = $21; - $41 = $19; - $42 = ($41>>>0)>(0); - if (!($42)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendEjRKS3_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp; - $25 = sp + 148|0; - $38 = sp + 8|0; - $33 = $0; - $34 = $1; - $35 = $2; - $39 = $33; - $32 = $39; - $40 = $32; - $41 = ((($40)) + 20|0); - $31 = $41; - $42 = $31; - $30 = $42; - $43 = $30; - $36 = $43; - $11 = $39; - $44 = $11; - $10 = $44; - $45 = $10; - $9 = $45; - $46 = $9; - $47 = ((($46)) + 8|0); - $48 = HEAP32[$47>>2]|0; - $49 = ((($46)) + 4|0); - $50 = HEAP32[$49>>2]|0; - $51 = $48; - $52 = $50; - $53 = (($51) - ($52))|0; - $54 = (($53|0) / 4)&-1; - $55 = ($54|0)==(0); - if ($55) { - $76 = 0; - } else { - $8 = $45; - $56 = $8; - $57 = ((($56)) + 8|0); - $58 = HEAP32[$57>>2]|0; - $59 = ((($56)) + 4|0); - $60 = HEAP32[$59>>2]|0; - $61 = $58; - $62 = $60; - $63 = (($61) - ($62))|0; - $64 = (($63|0) / 4)&-1; - $65 = ($64*93)|0; - $66 = (($65) - 1)|0; - $76 = $66; - } - $67 = ((($44)) + 16|0); - $68 = HEAP32[$67>>2]|0; - $7 = $44; - $69 = $7; - $70 = ((($69)) + 20|0); - $6 = $70; - $71 = $6; - $5 = $71; - $72 = $5; - $73 = HEAP32[$72>>2]|0; - $74 = (($68) + ($73))|0; - $75 = (($76) - ($74))|0; - $37 = $75; - $77 = $34; - $78 = $37; - $79 = ($77>>>0)>($78>>>0); - if ($79) { - $80 = $34; - $81 = $37; - $82 = (($80) - ($81))|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($39,$82); - } - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($38,$39); - while(1) { - $83 = $34; - $84 = ($83|0)!=(0); - if (!($84)) { - break; - } - $85 = $36; - $3 = $38; - $86 = $3; - $87 = ((($86)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $4 = $88; - $89 = $4; - $90 = $35; - $22 = $85; - $23 = $89; - $24 = $90; - $91 = $22; - $92 = $23; - $93 = $24; - $21 = $93; - $94 = $21; - ;HEAP8[$20>>0]=HEAP8[$25>>0]|0; - $17 = $91; - $18 = $92; - $19 = $94; - $95 = $17; - $96 = $18; - $97 = $19; - $16 = $97; - $98 = $16; - $13 = $95; - $14 = $96; - $15 = $98; - $99 = $14; - $100 = $15; - $12 = $100; - $101 = $12; - __ZN6laszip6models10arithmeticC2ERKS1_($99,$101); - $102 = $34; - $103 = (($102) + -1)|0; - $34 = $103; - $26 = $38; - $104 = $26; - $105 = ((($104)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = ((($106)) + 44|0); - HEAP32[$105>>2] = $107; - $108 = HEAP32[$104>>2]|0; - $109 = HEAP32[$108>>2]|0; - $110 = $107; - $111 = $109; - $112 = (($110) - ($111))|0; - $113 = (($112|0) / 44)&-1; - $114 = ($113|0)==(93); - if ($114) { - $115 = HEAP32[$104>>2]|0; - $116 = ((($115)) + 4|0); - HEAP32[$104>>2] = $116; - $117 = HEAP32[$104>>2]|0; - $118 = HEAP32[$117>>2]|0; - $119 = ((($104)) + 4|0); - HEAP32[$119>>2] = $118; - } - $29 = $39; - $120 = $29; - $121 = ((($120)) + 20|0); - $28 = $121; - $122 = $28; - $27 = $122; - $123 = $27; - $124 = HEAP32[$123>>2]|0; - $125 = (($124) + 1)|0; - HEAP32[$123>>2] = $125; - } - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEC2ERS9_PSH_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2256); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISP_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2276); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2256); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = HEAP8[$6>>0]|0; - $8 = $7&1; - if (!($8)) { - $10 = $5; - STACKTOP = sp;return ($10|0); - } - $9 = $4; - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($9); - HEAP8[$6>>0] = 0; - $10 = $5; - STACKTOP = sp;return ($10|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 520; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEC2ERS9_PSK_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2304); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2324); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2304); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 328|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 560; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEC2ERS9_PSK_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2352); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_3rgbENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2372); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2352); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 316|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 600; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 316|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEC2ERS9_PSN_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2400); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEENSG_INSH_3rgbENSJ_ISP_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISV_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2420); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SO_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2400); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SO_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 328|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 640; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZNK6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10get_headerEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 20|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10buf_streamC2EPhj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - HEAP32[$6>>2] = $7; - $8 = ((($6)) + 4|0); - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($6)) + 8|0); - HEAP32[$10>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamEC2ERS2_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticI10buf_streamEEEENS0_26dynamic_field_decompressorIT_E3ptrERS7_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 8|0; - $3 = sp; - $2 = $1; - $4 = (__Znwj(24)|0); - $5 = $2; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEEC2ERS5_($4,$5); - ;HEAP32[$3>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEEC2IS8_EEPT_NS_9enable_ifIXsr14is_convertibleISC_PS8_EE5valueENS9_5__natEE4typeE($0,$4,$$byval_copy); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamEC2IS1_EEPT_NS_9enable_ifIXsr14is_convertibleIS5_PS1_EE5valueENS2_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2448); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrI10buf_streamE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 664; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEEC2IS5_EEPT_NS_9enable_ifIXsr14is_convertibleIS9_PS5_EE5valueENS6_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2476); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 688; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 12|0; - $14 = $0; - $15 = $1; - $16 = $14; - __ZN6laszip7formats20dynamic_decompressorC2Ev($16); - HEAP32[$16>>2] = (2504); - $17 = ((($16)) + 4|0); - $18 = $15; - HEAP32[$17>>2] = $18; - $19 = ((($16)) + 8|0); - $13 = $19; - $20 = $13; - $11 = $20; - $21 = $11; - $10 = $21; - HEAP32[$21>>2] = 0; - $22 = ((($21)) + 4|0); - HEAP32[$22>>2] = 0; - $23 = ((($21)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $23; - $9 = $12; - $24 = $8; - $25 = $9; - $7 = $25; - $26 = $7; - $3 = $24; - $4 = $26; - $27 = $3; - $28 = $4; - $2 = $28; - HEAP32[$27>>2] = 0; - $6 = $24; - $29 = $6; - $5 = $29; - $30 = ((($16)) + 20|0); - HEAP8[$30>>0] = 1; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEEC2IS8_EEPT_NS_9enable_ifIXsr14is_convertibleISC_PS8_EE5valueENS9_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2524); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp + 72|0; - $23 = sp + 60|0; - $27 = sp + 44|0; - $30 = sp + 32|0; - $35 = sp + 12|0; - $36 = sp + 8|0; - $37 = sp; - $32 = $0; - $33 = $1; - $38 = $32; - $39 = ((($38)) + 8|0); - $34 = $39; - $40 = $34; - $31 = $40; - $41 = $31; - $42 = HEAP32[$41>>2]|0; - $28 = $41; - $29 = $42; - $43 = $29; - $25 = $27; - $26 = $43; - $44 = $25; - $45 = $26; - HEAP32[$44>>2] = $45; - $46 = HEAP32[$27>>2]|0; - HEAP32[$30>>2] = $46; - $47 = HEAP32[$30>>2]|0; - HEAP32[$35>>2] = $47; - $48 = $34; - $24 = $48; - $49 = $24; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $21 = $49; - $22 = $51; - $52 = $22; - $18 = $20; - $19 = $52; - $53 = $18; - $54 = $19; - HEAP32[$53>>2] = $54; - $55 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $55; - $56 = HEAP32[$23>>2]|0; - HEAP32[$36>>2] = $56; - while(1) { - $16 = $35; - $17 = $36; - $57 = $16; - $58 = $17; - $14 = $57; - $15 = $58; - $59 = $14; - $13 = $59; - $60 = $13; - $61 = HEAP32[$60>>2]|0; - $62 = $15; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($61|0)==($64|0); - $66 = $65 ^ 1; - if (!($66)) { - break; - } - $10 = $35; - $67 = $10; - $68 = HEAP32[$67>>2]|0; - $8 = $37; - $9 = $68; - $69 = $8; - $70 = $9; - $71 = HEAP32[$70>>2]|0; - HEAP32[$69>>2] = $71; - $72 = ((($69)) + 4|0); - $73 = $9; - $74 = ((($73)) + 4|0); - $75 = HEAP32[$74>>2]|0; - HEAP32[$72>>2] = $75; - $76 = ((($69)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $78 = ($77|0)!=(0|0); - if ($78) { - $79 = ((($69)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $7 = $80; - $81 = $7; - $6 = $81; - $82 = $6; - $83 = ((($82)) + 4|0); - $3 = $83; - $84 = $3; - $4 = 1; - $85 = $4; - $86 = HEAP32[$84>>2]|0; - $87 = (($86) + ($85))|0; - HEAP32[$84>>2] = $87; - $88 = (($86) + ($85))|0; - $5 = $88; - } - $2 = $37; - $89 = $2; - $90 = HEAP32[$89>>2]|0; - $91 = HEAP32[$90>>2]|0; - $92 = ((($91)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = $33; - $95 = (FUNCTION_TABLE_iii[$93 & 255]($90,$94)|0); - $33 = $95; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($37); - $11 = $35; - $96 = $11; - $97 = HEAP32[$96>>2]|0; - $98 = ((($97)) + 8|0); - HEAP32[$96>>2] = $98; - } - $99 = ((($38)) + 20|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100&1; - if (!($101)) { - $105 = $33; - STACKTOP = sp;return ($105|0); - } - $102 = ((($38)) + 20|0); - HEAP8[$102>>0] = 0; - $103 = ((($38)) + 4|0); - $104 = HEAP32[$103>>2]|0; - __ZN6laszip8decoders10arithmeticI10buf_streamE13readInitBytesEv($104); - $105 = $33; - STACKTOP = sp;return ($105|0); -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2504); - $3 = ((($2)) + 8|0); - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($3); - __ZN6laszip7formats20dynamic_decompressorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE13readInitBytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (__ZN10buf_stream7getByteEv($3)|0); - $5 = $4&255; - $6 = $5 << 24; - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN10buf_stream7getByteEv($7)|0); - $9 = $8&255; - $10 = $9 << 16; - $11 = $6 | $10; - $12 = HEAP32[$2>>2]|0; - $13 = (__ZN10buf_stream7getByteEv($12)|0); - $14 = $13&255; - $15 = $14 << 8; - $16 = $11 | $15; - $17 = HEAP32[$2>>2]|0; - $18 = (__ZN10buf_stream7getByteEv($17)|0); - $19 = $18&255; - $20 = $16 | $19; - $21 = ((($2)) + 4|0); - HEAP32[$21>>2] = $20; - STACKTOP = sp;return; -} -function __ZN10buf_stream7getByteEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = ((($2)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($5) + 1)|0; - HEAP32[$4>>2] = $6; - $7 = (($3) + ($5)|0); - $8 = HEAP8[$7>>0]|0; - STACKTOP = sp;return ($8|0); -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 728; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(180)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(180)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2552); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2576); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,32,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2552); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIiEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 164|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIiE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 164|0); - $17 = HEAP32[$16>>2]|0; - $18 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$17,0)|0); - HEAP32[$6>>2] = $18; - $19 = HEAP32[$6>>2]|0; - $20 = $5; - __ZN6laszip7formats7packersIiE4packEiPc($19,$20); - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } else { - $21 = $4; - $22 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($21)|0); - $23 = $5; - __ZN10buf_stream8getBytesEPhi($22,$23,4); - $24 = $5; - $25 = (__ZN6laszip7formats7packersIiE6unpackEPKc($24)|0); - HEAP32[$6>>2] = $25; - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIiE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $6 = $0; - $7 = $1; - $8 = $2; - $9 = $3; - $11 = $6; - $12 = $8; - $13 = $7; - $14 = ((($11)) + 36|0); - $15 = $9; - $4 = $14; - $5 = $15; - $16 = $4; - $17 = HEAP32[$16>>2]|0; - $18 = $5; - $19 = (($17) + (($18*44)|0)|0); - $20 = (__ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticI10buf_streamEENS_6models10arithmeticEEEiRT_RT0_($11,$13,$19)|0); - $21 = (($12) + ($20))|0; - $10 = $21; - $22 = $10; - $23 = ($22|0)<(0); - if ($23) { - $24 = ((($11)) + 24|0); - $25 = HEAP32[$24>>2]|0; - $26 = $10; - $27 = (($26) + ($25))|0; - $10 = $27; - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $28 = $10; - $29 = ((($11)) + 24|0); - $30 = HEAP32[$29>>2]|0; - $31 = ($28>>>0)>=($30>>>0); - if (!($31)) { - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $32 = ((($11)) + 24|0); - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($34) - ($33))|0; - $10 = $35; - $36 = $10; - STACKTOP = sp;return ($36|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN10buf_stream8getBytesEPhi($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $6 = 0; - while(1) { - $8 = $6; - $9 = $5; - $10 = ($8|0)<($9|0); - if (!($10)) { - break; - } - $11 = (__ZN10buf_stream7getByteEv($7)|0); - $12 = $4; - $13 = $6; - $14 = (($12) + ($13)|0); - HEAP8[$14>>0] = $11; - $15 = $6; - $16 = (($15) + 1)|0; - $6 = $16; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 4|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 4|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $10; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticI10buf_streamEENS_6models10arithmeticEEEiRT_RT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = $0; - $8 = $1; - $9 = $2; - $13 = $7; - $14 = $8; - $15 = $9; - $16 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($14,$15)|0); - HEAP32[$13>>2] = $16; - $17 = HEAP32[$13>>2]|0; - $18 = ($17|0)!=(0); - if (!($18)) { - $69 = $8; - $70 = ((($13)) + 48|0); - $71 = (__ZN6laszip8decoders10arithmeticI10buf_streamE9decodeBitINS_6models14arithmetic_bitEEEjRT_($69,$70)|0); - $10 = $71; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $19 = HEAP32[$13>>2]|0; - $20 = ($19>>>0)<(32); - if (!($20)) { - $67 = ((($13)) + 28|0); - $68 = HEAP32[$67>>2]|0; - $10 = $68; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $21 = HEAP32[$13>>2]|0; - $22 = ((($13)) + 12|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($21>>>0)<=($23>>>0); - if ($24) { - $25 = $8; - $26 = ((($13)) + 68|0); - $27 = HEAP32[$13>>2]|0; - $28 = (($27) - 1)|0; - $5 = $26; - $6 = $28; - $29 = $5; - $30 = HEAP32[$29>>2]|0; - $31 = $6; - $32 = (($30) + (($31*44)|0)|0); - $33 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($25,$32)|0); - $10 = $33; - } else { - $34 = HEAP32[$13>>2]|0; - $35 = ((($13)) + 12|0); - $36 = HEAP32[$35>>2]|0; - $37 = (($34) - ($36))|0; - $11 = $37; - $38 = $8; - $39 = ((($13)) + 68|0); - $40 = HEAP32[$13>>2]|0; - $41 = (($40) - 1)|0; - $3 = $39; - $4 = $41; - $42 = $3; - $43 = HEAP32[$42>>2]|0; - $44 = $4; - $45 = (($43) + (($44*44)|0)|0); - $46 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($38,$45)|0); - $10 = $46; - $47 = $8; - $48 = $11; - $49 = (__ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($47,$48)|0); - $12 = $49; - $50 = $10; - $51 = $11; - $52 = $50 << $51; - $53 = $12; - $54 = $52 | $53; - $10 = $54; - } - $55 = $10; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) - 1)|0; - $58 = 1 << $57; - $59 = ($55|0)>=($58|0); - if ($59) { - $60 = $10; - $61 = (($60) + 1)|0; - $10 = $61; - $72 = $10; - STACKTOP = sp;return ($72|0); - } else { - $62 = HEAP32[$13>>2]|0; - $63 = 1 << $62; - $64 = (($63) - 1)|0; - $65 = $10; - $66 = (($65) - ($64))|0; - $10 = $66; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - return (0)|0; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $2 = $0; - $3 = $1; - $13 = $2; - $14 = ((($13)) + 8|0); - $15 = HEAP32[$14>>2]|0; - $7 = $15; - $16 = $3; - $17 = ((($16)) + 16|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = ((($13)) + 4|0); - $21 = HEAP32[$20>>2]|0; - $22 = ((($13)) + 8|0); - $23 = HEAP32[$22>>2]|0; - $24 = $23 >>> 15; - HEAP32[$22>>2] = $24; - $25 = (($21>>>0) / ($24>>>0))&-1; - $8 = $25; - $26 = $8; - $27 = $3; - $28 = ((($27)) + 40|0); - $29 = HEAP32[$28>>2]|0; - $30 = $26 >>> $29; - $9 = $30; - $31 = $3; - $32 = ((($31)) + 16|0); - $33 = HEAP32[$32>>2]|0; - $34 = $9; - $35 = (($33) + ($34<<2)|0); - $36 = HEAP32[$35>>2]|0; - $5 = $36; - $37 = $3; - $38 = ((($37)) + 16|0); - $39 = HEAP32[$38>>2]|0; - $40 = $9; - $41 = (($40) + 1)|0; - $42 = (($39) + ($41<<2)|0); - $43 = HEAP32[$42>>2]|0; - $44 = (($43) + 1)|0; - $4 = $44; - while(1) { - $45 = $4; - $46 = $5; - $47 = (($46) + 1)|0; - $48 = ($45>>>0)>($47>>>0); - if (!($48)) { - break; - } - $49 = $5; - $50 = $4; - $51 = (($49) + ($50))|0; - $52 = $51 >>> 1; - $10 = $52; - $53 = $3; - $54 = ((($53)) + 8|0); - $55 = HEAP32[$54>>2]|0; - $56 = $10; - $57 = (($55) + ($56<<2)|0); - $58 = HEAP32[$57>>2]|0; - $59 = $8; - $60 = ($58>>>0)>($59>>>0); - $61 = $10; - if ($60) { - $4 = $61; - } else { - $5 = $61; - } - } - $62 = $3; - $63 = ((($62)) + 8|0); - $64 = HEAP32[$63>>2]|0; - $65 = $5; - $66 = (($64) + ($65<<2)|0); - $67 = HEAP32[$66>>2]|0; - $68 = ((($13)) + 8|0); - $69 = HEAP32[$68>>2]|0; - $70 = Math_imul($67, $69)|0; - $6 = $70; - $71 = $5; - $72 = $3; - $73 = ((($72)) + 32|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71|0)!=($74|0); - if ($75) { - $76 = $3; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = $5; - $80 = (($79) + 1)|0; - $81 = (($78) + ($80<<2)|0); - $82 = HEAP32[$81>>2]|0; - $83 = ((($13)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = Math_imul($82, $84)|0; - $7 = $85; - } - } else { - $5 = 0; - $6 = 0; - $86 = ((($13)) + 8|0); - $87 = HEAP32[$86>>2]|0; - $88 = $87 >>> 15; - HEAP32[$86>>2] = $88; - $89 = $3; - $90 = HEAP32[$89>>2]|0; - $4 = $90; - $91 = $90 >>> 1; - $11 = $91; - while(1) { - $92 = ((($13)) + 8|0); - $93 = HEAP32[$92>>2]|0; - $94 = $3; - $95 = ((($94)) + 8|0); - $96 = HEAP32[$95>>2]|0; - $97 = $11; - $98 = (($96) + ($97<<2)|0); - $99 = HEAP32[$98>>2]|0; - $100 = Math_imul($93, $99)|0; - $12 = $100; - $101 = $12; - $102 = ((($13)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = ($101>>>0)>($103>>>0); - $105 = $11; - if ($104) { - $4 = $105; - $106 = $12; - $7 = $106; - } else { - $5 = $105; - $107 = $12; - $6 = $107; - } - $108 = $5; - $109 = $4; - $110 = (($108) + ($109))|0; - $111 = $110 >>> 1; - $11 = $111; - $112 = $5; - $113 = ($111|0)!=($112|0); - if (!($113)) { - break; - } - } - } - $114 = $6; - $115 = ((($13)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = (($116) - ($114))|0; - HEAP32[$115>>2] = $117; - $118 = $7; - $119 = $6; - $120 = (($118) - ($119))|0; - $121 = ((($13)) + 8|0); - HEAP32[$121>>2] = $120; - $122 = ((($13)) + 8|0); - $123 = HEAP32[$122>>2]|0; - $124 = ($123>>>0)<(16777216); - if ($124) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($13); - } - $125 = $3; - $126 = ((($125)) + 12|0); - $127 = HEAP32[$126>>2]|0; - $128 = $5; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $131 = (($130) + 1)|0; - HEAP32[$129>>2] = $131; - $132 = $3; - $133 = ((($132)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = (($134) + -1)|0; - HEAP32[$133>>2] = $135; - $136 = ($135|0)==(0); - if (!($136)) { - $138 = $5; - STACKTOP = sp;return ($138|0); - } - $137 = $3; - __ZN6laszip6models10arithmetic6updateEv($137); - $138 = $5; - STACKTOP = sp;return ($138|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = $0; - $4 = $1; - $8 = $3; - $9 = $4; - $10 = ($9|0)!=(0); - $11 = $4; - $12 = ($11>>>0)<=(32); - $or$cond = $10 & $12; - if (!($or$cond)) { - ___assert_fail((5409|0),(5430|0),139,(5499|0)); - // unreachable; - } - $13 = $4; - $14 = ($13>>>0)>(19); - if ($14) { - $15 = (__ZN6laszip8decoders10arithmeticI10buf_streamE9readShortEv($8)|0); - $16 = $15&65535; - $5 = $16; - $17 = $4; - $18 = (($17) - 16)|0; - $4 = $18; - $19 = $4; - $20 = (__ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($8,$19)|0); - $21 = $20 << 16; - $6 = $21; - $22 = $6; - $23 = $5; - $24 = $22 | $23; - $2 = $24; - $43 = $2; - STACKTOP = sp;return ($43|0); - } - $25 = ((($8)) + 4|0); - $26 = HEAP32[$25>>2]|0; - $27 = $4; - $28 = ((($8)) + 8|0); - $29 = HEAP32[$28>>2]|0; - $30 = $29 >>> $27; - HEAP32[$28>>2] = $30; - $31 = (($26>>>0) / ($30>>>0))&-1; - $7 = $31; - $32 = ((($8)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = $7; - $35 = Math_imul($33, $34)|0; - $36 = ((($8)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = (($37) - ($35))|0; - HEAP32[$36>>2] = $38; - $39 = ((($8)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40>>>0)<(16777216); - if ($41) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($8); - } - $42 = $7; - $2 = $42; - $43 = $2; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE9decodeBitINS_6models14arithmetic_bitEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $2; - $7 = $3; - $8 = ((($7)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($6)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $11 >>> 13; - $13 = Math_imul($9, $12)|0; - $4 = $13; - $14 = ((($6)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $4; - $17 = ($15>>>0)>=($16>>>0); - $18 = $17&1; - $5 = $18; - $19 = $5; - $20 = ($19|0)==(0); - $21 = $4; - if ($20) { - $22 = ((($6)) + 8|0); - HEAP32[$22>>2] = $21; - $23 = $3; - $24 = ((($23)) + 12|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } else { - $27 = ((($6)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = (($28) - ($21))|0; - HEAP32[$27>>2] = $29; - $30 = $4; - $31 = ((($6)) + 8|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) - ($30))|0; - HEAP32[$31>>2] = $33; - } - $34 = ((($6)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = ($35>>>0)<(16777216); - if ($36) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($6); - } - $37 = $3; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($39) + -1)|0; - HEAP32[$38>>2] = $40; - $41 = ($40|0)==(0); - if (!($41)) { - $43 = $5; - STACKTOP = sp;return ($43|0); - } - $42 = $3; - __ZN6laszip6models14arithmetic_bit6updateEv($42); - $43 = $5; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - while(1) { - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = $4 << 8; - $6 = HEAP32[$2>>2]|0; - $7 = (__ZN10buf_stream7getByteEv($6)|0); - $8 = $7&255; - $9 = $5 | $8; - $10 = ((($2)) + 4|0); - HEAP32[$10>>2] = $9; - $11 = ((($2)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = $12 << 8; - HEAP32[$11>>2] = $13; - $14 = ($13>>>0)<(16777216); - if (!($14)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE9readShortEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($3)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >>> 16; - HEAP32[$6>>2] = $8; - $9 = (($5>>>0) / ($8>>>0))&-1; - $2 = $9; - $10 = ((($3)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $2; - $13 = Math_imul($11, $12)|0; - $14 = ((($3)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) - ($13))|0; - HEAP32[$14>>2] = $16; - $17 = ((($3)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18>>>0)<(16777216); - if ($19) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($3); - } - $20 = $2; - $21 = ($20>>>0)<(65536); - if ($21) { - $22 = $2; - $23 = $22&65535; - STACKTOP = sp;return ($23|0); - } else { - ___assert_fail((5508|0),(5430|0),172,(5522|0)); - // unreachable; - } - return (0)|0; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 768; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2604); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2628); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,32,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2604); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIjEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 164|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIjE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 164|0); - $17 = HEAP32[$16>>2]|0; - $18 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$17,0)|0); - HEAP32[$6>>2] = $18; - $19 = HEAP32[$6>>2]|0; - $20 = $5; - __ZN6laszip7formats7packersIjE4packEjPc($19,$20); - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } else { - $21 = $4; - $22 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($21)|0); - $23 = $5; - __ZN10buf_stream8getBytesEPhi($22,$23,4); - $24 = $5; - $25 = (__ZN6laszip7formats7packersIjE6unpackEPKc($24)|0); - HEAP32[$6>>2] = $25; - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIjE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 4|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 4|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 808; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIaEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(172)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIsEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(176)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2656); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2680); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,8,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,8,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2656); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIaEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIaE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP8[$16>>0]|0; - $18 = $17 << 24 >> 24; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&255; - HEAP8[$6>>0] = $20; - $21 = HEAP8[$6>>0]|0; - $22 = $5; - __ZN6laszip7formats7packersIaE4packEaPc($21,$22); - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,1); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIaE6unpackEPKc($26)|0); - HEAP8[$6>>0] = $27; - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIaE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats7packersIaE4packEaPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIaE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 1|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP8[$9>>0]|0; - HEAP8[$4>>0] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 848; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2708); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2732); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2708); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIsEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIsE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP16[$16>>1]|0; - $18 = $17 << 16 >> 16; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&65535; - HEAP16[$6>>1] = $20; - $21 = HEAP16[$6>>1]|0; - $22 = $5; - __ZN6laszip7formats7packersIsE4packEsPc($21,$22); - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,2); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIsE6unpackEPKc($26)|0); - HEAP16[$6>>1] = $27; - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIsE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats7packersIsE4packEsPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZN6laszip7formats7packersItE4packEtPc($4,$5); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIsE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN6laszip7formats7packersItE6unpackEPKc($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 2|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 2|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP16[$9>>1]|0; - HEAP16[$4>>1] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 888; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIhEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(172)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldItEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(176)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2760); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2784); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,8,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,8,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2760); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIhEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIhE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP8[$16>>0]|0; - $18 = $17&255; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&255; - HEAP8[$6>>0] = $20; - $21 = HEAP8[$6>>0]|0; - $22 = $5; - __ZN6laszip7formats7packersIhE4packEhPc($21,$22); - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,1); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIhE6unpackEPKc($26)|0); - HEAP8[$6>>0] = $27; - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIhE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 1|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP8[$9>>0]|0; - HEAP8[$4>>0] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 928; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2812); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2836); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2812); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodItEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodItE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP16[$16>>1]|0; - $18 = $17&65535; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&65535; - HEAP16[$6>>1] = $20; - $21 = HEAP16[$6>>1]|0; - $22 = $5; - __ZN6laszip7formats7packersItE4packEtPc($21,$22); - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItE4pushERKt($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,2); - $26 = $5; - $27 = (__ZN6laszip7formats7packersItE6unpackEPKc($26)|0); - HEAP16[$6>>1] = $27; - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItE4pushERKt($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodItE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodItE4pushERKt($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 2|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 2|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP16[$9>>1]|0; - HEAP16[$4>>1] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 968; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11NoBaseClass6verifyI6LASZipEEvv() { - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10emscripten8internal13getActualTypeI6LASZipEEPKvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN10emscripten8internal14getLightTypeIDI6LASZipEEPKvRKT_($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal11NoBaseClass11getUpcasterI6LASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal11NoBaseClass13getDowncasterI6LASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14raw_destructorI6LASZipEEvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ($2|0)==(0|0); - if (!($3)) { - __ZN6LASZipD2Ev($2); - __ZdlPv($2); - } - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDI6LASZipE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDI6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI6LASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIP6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK6LASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIPK6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11NoBaseClass3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14getLightTypeIDI6LASZipEEPKvRKT_($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (976|0); -} -function __ZN6LASZipD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $6 = sp + 128|0; - $12 = sp + 104|0; - $17 = sp + 80|0; - $23 = sp + 56|0; - $29 = sp + 32|0; - $34 = sp + 8|0; - $35 = $0; - $36 = $35; - $33 = $36; - $37 = $33; - $32 = $34; - $38 = $32; - HEAP32[$38>>2] = 0; - $39 = ((($38)) + 4|0); - HEAP32[$39>>2] = 0; - $30 = $34; - $31 = $37; - $40 = $30; - $41 = $31; - $27 = $40; - $28 = $41; - $42 = $27; - $26 = $42; - $43 = $26; - $44 = HEAP32[$43>>2]|0; - HEAP32[$29>>2] = $44; - $45 = $28; - $24 = $45; - $46 = $24; - $47 = HEAP32[$46>>2]|0; - $48 = $27; - HEAP32[$48>>2] = $47; - $25 = $29; - $49 = $25; - $50 = HEAP32[$49>>2]|0; - $51 = $28; - HEAP32[$51>>2] = $50; - $52 = ((($40)) + 4|0); - $53 = $31; - $54 = ((($53)) + 4|0); - $21 = $52; - $22 = $54; - $55 = $21; - $20 = $55; - $56 = $20; - $57 = HEAP32[$56>>2]|0; - HEAP32[$23>>2] = $57; - $58 = $22; - $18 = $58; - $59 = $18; - $60 = HEAP32[$59>>2]|0; - $61 = $21; - HEAP32[$61>>2] = $60; - $19 = $23; - $62 = $19; - $63 = HEAP32[$62>>2]|0; - $64 = $22; - HEAP32[$64>>2] = $63; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($34); - $65 = ((($36)) + 8|0); - $16 = $65; - $66 = $16; - $15 = $17; - $67 = $15; - HEAP32[$67>>2] = 0; - $68 = ((($67)) + 4|0); - HEAP32[$68>>2] = 0; - $13 = $17; - $14 = $66; - $69 = $13; - $70 = $14; - $10 = $69; - $11 = $70; - $71 = $10; - $9 = $71; - $72 = $9; - $73 = HEAP32[$72>>2]|0; - HEAP32[$12>>2] = $73; - $74 = $11; - $7 = $74; - $75 = $7; - $76 = HEAP32[$75>>2]|0; - $77 = $10; - HEAP32[$77>>2] = $76; - $8 = $12; - $78 = $8; - $79 = HEAP32[$78>>2]|0; - $80 = $11; - HEAP32[$80>>2] = $79; - $81 = ((($69)) + 4|0); - $82 = $14; - $83 = ((($82)) + 4|0); - $4 = $81; - $5 = $83; - $84 = $4; - $3 = $84; - $85 = $3; - $86 = HEAP32[$85>>2]|0; - HEAP32[$6>>2] = $86; - $87 = $5; - $1 = $87; - $88 = $1; - $89 = HEAP32[$88>>2]|0; - $90 = $4; - HEAP32[$90>>2] = $89; - $2 = $6; - $91 = $2; - $92 = HEAP32[$91>>2]|0; - $93 = $5; - HEAP32[$93>>2] = $92; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($17); - $94 = ((($36)) + 8|0); - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($94); - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($36); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11LightTypeIDI6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (976|0); -} -function __ZN10emscripten8internal11LightTypeIDIP6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (984|0); -} -function __ZN10emscripten8internal11LightTypeIDIPK6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1000|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16424|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16427|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16429|0); -} -function __ZN10emscripten8internal12operator_newI6LASZipJEEEPT_DpOT0_() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__Znwj(16)|0); - __ZN6LASZipC2Ev($0); - return ($0|0); -} -function __ZN10emscripten8internal7InvokerIP6LASZipJEE6invokeEPFS3_vE($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (FUNCTION_TABLE_i[$2 & 255]()|0); - $4 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE10toWireTypeES3_($3)|0); - STACKTOP = sp;return ($4|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 1; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP6LASZipE10toWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2856|0); -} -function __ZN6LASZipC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $3; - $2 = $4; - $5 = $2; - HEAP32[$5>>2] = 0; - $6 = ((($5)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - $1 = $7; - $8 = $1; - HEAP32[$8>>2] = 0; - $9 = ((($8)) + 4|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $5; - $9 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($8)|0); - $10 = $4; - $$field = HEAP32[$10>>2]|0; - $$index1 = ((($10)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $11 = $$field2 >> 1; - $12 = (($9) + ($11)|0); - $13 = $$field2 & 1; - $14 = ($13|0)!=(0); - if ($14) { - $15 = HEAP32[$12>>2]|0; - $16 = (($15) + ($$field)|0); - $17 = HEAP32[$16>>2]|0; - $23 = $17; - } else { - $18 = $$field; - $23 = $18; - } - $19 = $6; - $20 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($19)|0); - $21 = $7; - $22 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($21)|0); - FUNCTION_TABLE_viii[$23 & 255]($12,$20,$22); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 4; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFvjjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2860|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16432|0); -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFviEvPS2_JiEE6invokeERKS4_S5_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFviEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2876|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16438|0); -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFjvEjPS2_JEE6invokeERKS4_S5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - $2 = $0; - $3 = $1; - $5 = $3; - $6 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($5)|0); - $7 = $2; - $$field = HEAP32[$7>>2]|0; - $$index1 = ((($7)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $8 = $$field2 >> 1; - $9 = (($6) + ($8)|0); - $10 = $$field2 & 1; - $11 = ($10|0)!=(0); - if ($11) { - $12 = HEAP32[$9>>2]|0; - $13 = (($12) + ($$field)|0); - $14 = HEAP32[$13>>2]|0; - $16 = $14; - } else { - $15 = $$field; - $16 = $15; - } - $17 = (FUNCTION_TABLE_ii[$16 & 255]($9)|0); - HEAP32[$4>>2] = $17; - $18 = (__ZN10emscripten8internal11BindingTypeIjE10toWireTypeERKj($4)|0); - STACKTOP = sp;return ($18|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 2; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJjNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFjvEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIjE10toWireTypeERKj($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJjNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2888|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJiiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16443|0); -} -function __ZN10emscripten8internal11NoBaseClass6verifyI13DynamicLASZipEEvv() { - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10emscripten8internal13getActualTypeI13DynamicLASZipEEPKvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN10emscripten8internal14getLightTypeIDI13DynamicLASZipEEPKvRKT_($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal11NoBaseClass11getUpcasterI13DynamicLASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal11NoBaseClass13getDowncasterI13DynamicLASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14raw_destructorI13DynamicLASZipEEvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ($2|0)==(0|0); - if (!($3)) { - __ZN13DynamicLASZipD2Ev($2); - __ZdlPv($2); - } - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDI13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI13DynamicLASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIP13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK13DynamicLASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIPK13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal14getLightTypeIDI13DynamicLASZipEEPKvRKT_($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (1016|0); -} -function __ZN13DynamicLASZipD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $6 = sp + 200|0; - $12 = sp + 176|0; - $17 = sp + 152|0; - $23 = sp + 128|0; - $29 = sp + 104|0; - $34 = sp + 80|0; - $40 = sp + 56|0; - $46 = sp + 32|0; - $51 = sp + 8|0; - $52 = $0; - $53 = $52; - $50 = $53; - $54 = $50; - $49 = $51; - $55 = $49; - HEAP32[$55>>2] = 0; - $56 = ((($55)) + 4|0); - HEAP32[$56>>2] = 0; - $47 = $51; - $48 = $54; - $57 = $47; - $58 = $48; - $44 = $57; - $45 = $58; - $59 = $44; - $43 = $59; - $60 = $43; - $61 = HEAP32[$60>>2]|0; - HEAP32[$46>>2] = $61; - $62 = $45; - $41 = $62; - $63 = $41; - $64 = HEAP32[$63>>2]|0; - $65 = $44; - HEAP32[$65>>2] = $64; - $42 = $46; - $66 = $42; - $67 = HEAP32[$66>>2]|0; - $68 = $45; - HEAP32[$68>>2] = $67; - $69 = ((($57)) + 4|0); - $70 = $48; - $71 = ((($70)) + 4|0); - $38 = $69; - $39 = $71; - $72 = $38; - $37 = $72; - $73 = $37; - $74 = HEAP32[$73>>2]|0; - HEAP32[$40>>2] = $74; - $75 = $39; - $35 = $75; - $76 = $35; - $77 = HEAP32[$76>>2]|0; - $78 = $38; - HEAP32[$78>>2] = $77; - $36 = $40; - $79 = $36; - $80 = HEAP32[$79>>2]|0; - $81 = $39; - HEAP32[$81>>2] = $80; - __ZNSt3__210shared_ptrI10buf_streamED2Ev($51); - $82 = ((($53)) + 16|0); - $33 = $82; - $83 = $33; - $32 = $34; - $84 = $32; - HEAP32[$84>>2] = 0; - $85 = ((($84)) + 4|0); - HEAP32[$85>>2] = 0; - $30 = $34; - $31 = $83; - $86 = $30; - $87 = $31; - $27 = $86; - $28 = $87; - $88 = $27; - $26 = $88; - $89 = $26; - $90 = HEAP32[$89>>2]|0; - HEAP32[$29>>2] = $90; - $91 = $28; - $24 = $91; - $92 = $24; - $93 = HEAP32[$92>>2]|0; - $94 = $27; - HEAP32[$94>>2] = $93; - $25 = $29; - $95 = $25; - $96 = HEAP32[$95>>2]|0; - $97 = $28; - HEAP32[$97>>2] = $96; - $98 = ((($86)) + 4|0); - $99 = $31; - $100 = ((($99)) + 4|0); - $21 = $98; - $22 = $100; - $101 = $21; - $20 = $101; - $102 = $20; - $103 = HEAP32[$102>>2]|0; - HEAP32[$23>>2] = $103; - $104 = $22; - $18 = $104; - $105 = $18; - $106 = HEAP32[$105>>2]|0; - $107 = $21; - HEAP32[$107>>2] = $106; - $19 = $23; - $108 = $19; - $109 = HEAP32[$108>>2]|0; - $110 = $22; - HEAP32[$110>>2] = $109; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($34); - $111 = ((($53)) + 16|0); - $16 = $111; - $112 = $16; - $15 = $17; - $113 = $15; - HEAP32[$113>>2] = 0; - $114 = ((($113)) + 4|0); - HEAP32[$114>>2] = 0; - $13 = $17; - $14 = $112; - $115 = $13; - $116 = $14; - $10 = $115; - $11 = $116; - $117 = $10; - $9 = $117; - $118 = $9; - $119 = HEAP32[$118>>2]|0; - HEAP32[$12>>2] = $119; - $120 = $11; - $7 = $120; - $121 = $7; - $122 = HEAP32[$121>>2]|0; - $123 = $10; - HEAP32[$123>>2] = $122; - $8 = $12; - $124 = $8; - $125 = HEAP32[$124>>2]|0; - $126 = $11; - HEAP32[$126>>2] = $125; - $127 = ((($115)) + 4|0); - $128 = $14; - $129 = ((($128)) + 4|0); - $4 = $127; - $5 = $129; - $130 = $4; - $3 = $130; - $131 = $3; - $132 = HEAP32[$131>>2]|0; - HEAP32[$6>>2] = $132; - $133 = $5; - $1 = $133; - $134 = $1; - $135 = HEAP32[$134>>2]|0; - $136 = $4; - HEAP32[$136>>2] = $135; - $2 = $6; - $137 = $2; - $138 = HEAP32[$137>>2]|0; - $139 = $5; - HEAP32[$139>>2] = $138; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($17); - $140 = ((($53)) + 16|0); - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($140); - $141 = ((($53)) + 8|0); - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($141); - __ZNSt3__210shared_ptrI10buf_streamED2Ev($53); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11LightTypeIDI13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1016|0); -} -function __ZN10emscripten8internal11LightTypeIDIP13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1024|0); -} -function __ZN10emscripten8internal11LightTypeIDIPK13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1040|0); -} -function __ZN10emscripten8internal12operator_newI13DynamicLASZipJEEEPT_DpOT0_() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__Znwj(24)|0); - __ZN13DynamicLASZipC2Ev($0); - return ($0|0); -} -function __ZN10emscripten8internal7InvokerIP13DynamicLASZipJEE6invokeEPFS3_vE($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (FUNCTION_TABLE_i[$2 & 255]()|0); - $4 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE10toWireTypeES3_($3)|0); - STACKTOP = sp;return ($4|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 1; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI13DynamicLASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE10toWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI13DynamicLASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2896|0); -} -function __ZN13DynamicLASZipC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $4; - $3 = $5; - $6 = $3; - HEAP32[$6>>2] = 0; - $7 = ((($6)) + 4|0); - HEAP32[$7>>2] = 0; - $8 = ((($5)) + 8|0); - $1 = $8; - $9 = $1; - HEAP32[$9>>2] = 0; - $10 = ((($9)) + 4|0); - HEAP32[$10>>2] = 0; - $11 = ((($5)) + 16|0); - $2 = $11; - $12 = $2; - HEAP32[$12>>2] = 0; - $13 = ((($12)) + 4|0); - HEAP32[$13>>2] = 0; - STACKTOP = sp;return; -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $5; - $9 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($8)|0); - $10 = $4; - $$field = HEAP32[$10>>2]|0; - $$index1 = ((($10)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $11 = $$field2 >> 1; - $12 = (($9) + ($11)|0); - $13 = $$field2 & 1; - $14 = ($13|0)!=(0); - if ($14) { - $15 = HEAP32[$12>>2]|0; - $16 = (($15) + ($$field)|0); - $17 = HEAP32[$16>>2]|0; - $23 = $17; - } else { - $18 = $$field; - $23 = $18; - } - $19 = $6; - $20 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($19)|0); - $21 = $7; - $22 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($21)|0); - FUNCTION_TABLE_viii[$23 & 255]($12,$20,$22); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 4; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFvjjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2900|0); -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjEvPS2_JjEE6invokeERKS4_S5_j($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2916|0); -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFviEvPS2_JiEE6invokeERKS4_S5_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFviEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2928|0); -} -function __GLOBAL__sub_I_laz_perf_cpp() { - var label = 0, sp = 0; - sp = STACKTOP; - ___cxx_global_var_init(); - return; -} -function __GLOBAL__sub_I_bind_cpp() { - var label = 0, sp = 0; - sp = STACKTOP; - ___cxx_global_var_init_2(); - return; -} -function ___cxx_global_var_init_2() { - var label = 0, sp = 0; - sp = STACKTOP; - __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev(21881); - return; -} -function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIvE3getEv()|0); - __embind_register_void(($2|0),(16498|0)); - $3 = (__ZN10emscripten8internal6TypeIDIbE3getEv()|0); - __embind_register_bool(($3|0),(16503|0),1,1,0); - __ZN12_GLOBAL__N_116register_integerIcEEvPKc(16508); - __ZN12_GLOBAL__N_116register_integerIaEEvPKc(16513); - __ZN12_GLOBAL__N_116register_integerIhEEvPKc(16525); - __ZN12_GLOBAL__N_116register_integerIsEEvPKc(16539); - __ZN12_GLOBAL__N_116register_integerItEEvPKc(16545); - __ZN12_GLOBAL__N_116register_integerIiEEvPKc(16560); - __ZN12_GLOBAL__N_116register_integerIjEEvPKc(16564); - __ZN12_GLOBAL__N_116register_integerIlEEvPKc(16577); - __ZN12_GLOBAL__N_116register_integerImEEvPKc(16582); - __ZN12_GLOBAL__N_114register_floatIfEEvPKc(16596); - __ZN12_GLOBAL__N_114register_floatIdEEvPKc(16602); - $4 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0); - __embind_register_std_string(($4|0),(16609|0)); - $5 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0); - __embind_register_std_string(($5|0),(16621|0)); - $6 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0); - __embind_register_std_wstring(($6|0),4,(16654|0)); - $7 = (__ZN10emscripten8internal6TypeIDINS_3valEE3getEv()|0); - __embind_register_emval(($7|0),(16667|0)); - __ZN12_GLOBAL__N_120register_memory_viewIcEEvPKc(16683); - __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc(16713); - __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc(16750); - __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc(16789); - __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc(16820); - __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc(16860); - __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc(16889); - __ZN12_GLOBAL__N_120register_memory_viewIlEEvPKc(16927); - __ZN12_GLOBAL__N_120register_memory_viewImEEvPKc(16957); - __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc(16996); - __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc(17028); - __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc(17061); - __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc(17094); - __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc(17128); - __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc(17161); - __ZN12_GLOBAL__N_120register_memory_viewIfEEvPKc(17195); - __ZN12_GLOBAL__N_120register_memory_viewIdEEvPKc(17226); - __ZN12_GLOBAL__N_120register_memory_viewIeEEvPKc(17258); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDIvE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIvE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDIbE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIbE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_116register_integerIcEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIcE3getEv()|0); - $3 = $1; - $4 = -128 << 24 >> 24; - $5 = 127 << 24 >> 24; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIaEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIaE3getEv()|0); - $3 = $1; - $4 = -128 << 24 >> 24; - $5 = 127 << 24 >> 24; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIhEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIhE3getEv()|0); - $3 = $1; - $4 = 0; - $5 = 255; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIsEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIsE3getEv()|0); - $3 = $1; - $4 = -32768 << 16 >> 16; - $5 = 32767 << 16 >> 16; - __embind_register_integer(($2|0),($3|0),2,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerItEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDItE3getEv()|0); - $3 = $1; - $4 = 0; - $5 = 65535; - __embind_register_integer(($2|0),($3|0),2,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIiEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIiE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,-2147483648,2147483647); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIjEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIjE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,0,-1); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIlEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIlE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,-2147483648,2147483647); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerImEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDImE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,0,-1); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_114register_floatIfEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIfE3getEv()|0); - $3 = $1; - __embind_register_float(($2|0),($3|0),4); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_114register_floatIdEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIdE3getEv()|0); - $3 = $1; - __embind_register_float(($2|0),($3|0),8); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS_3valEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_120register_memory_viewIcEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIlEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewImEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIfEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIdEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIeEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 7; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1056|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 7; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1064|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 6; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1072|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 5; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1080|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1088|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 5; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1096|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1104|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 3; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1112|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 2; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1120|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 1; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1128|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1136|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1144|0); -} -function __ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1152|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1160|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1192|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1216|0); -} -function __ZN10emscripten8internal6TypeIDIdE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIdE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIdE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1552|0); -} -function __ZN10emscripten8internal6TypeIDIfE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIfE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIfE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1544|0); -} -function __ZN10emscripten8internal6TypeIDImE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDImE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDImE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1536|0); -} -function __ZN10emscripten8internal6TypeIDIlE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIlE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIlE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1528|0); -} -function __ZN10emscripten8internal6TypeIDIjE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIjE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIjE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1520|0); -} -function __ZN10emscripten8internal6TypeIDIiE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIiE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIiE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1512|0); -} -function __ZN10emscripten8internal6TypeIDItE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDItE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDItE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1504|0); -} -function __ZN10emscripten8internal6TypeIDIsE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIsE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIsE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1496|0); -} -function __ZN10emscripten8internal6TypeIDIhE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIhE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIhE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1480|0); -} -function __ZN10emscripten8internal6TypeIDIaE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIaE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIaE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1488|0); -} -function __ZN10emscripten8internal6TypeIDIcE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIcE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIcE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1472|0); -} -function __ZN10emscripten8internal11LightTypeIDIbE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1464|0); -} -function __ZN10emscripten8internal11LightTypeIDIvE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1448|0); -} -function ___getTypeName($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - $4 = $1; - $5 = ((($4)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = (___strdup($6)|0); - STACKTOP = sp;return ($7|0); -} -function _malloc($0) { - $0 = $0|0; - var $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i16$i = 0, $$0187$i = 0, $$0189$i = 0, $$0190$i = 0, $$0191$i = 0, $$0197 = 0, $$0199 = 0, $$02065$i$i = 0, $$0207$lcssa$i$i = 0, $$02074$i$i = 0, $$0211$i$i = 0, $$0212$i$i = 0, $$024372$i = 0, $$0286$i$i = 0, $$028711$i$i = 0, $$0288$lcssa$i$i = 0, $$028810$i$i = 0; - var $$0294$i$i = 0, $$0295$i$i = 0, $$0340$i = 0, $$034217$i = 0, $$0343$lcssa$i = 0, $$034316$i = 0, $$0345$i = 0, $$0351$i = 0, $$0357$i = 0, $$0358$i = 0, $$0360$i = 0, $$0361$i = 0, $$0367$i = 0, $$1194$i = 0, $$1194$i$be = 0, $$1194$i$ph = 0, $$1196$i = 0, $$1196$i$be = 0, $$1196$i$ph = 0, $$124471$i = 0; - var $$1290$i$i = 0, $$1290$i$i$be = 0, $$1290$i$i$ph = 0, $$1292$i$i = 0, $$1292$i$i$be = 0, $$1292$i$i$ph = 0, $$1341$i = 0, $$1346$i = 0, $$1362$i = 0, $$1369$i = 0, $$1369$i$be = 0, $$1369$i$ph = 0, $$1373$i = 0, $$1373$i$be = 0, $$1373$i$ph = 0, $$2234243136$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2353$i = 0, $$3$i = 0; - var $$3$i$i = 0, $$3$i203 = 0, $$3$i203218 = 0, $$3348$i = 0, $$3371$i = 0, $$4$lcssa$i = 0, $$420$i = 0, $$420$i$ph = 0, $$4236$i = 0, $$4349$lcssa$i = 0, $$434919$i = 0, $$434919$i$ph = 0, $$4355$i = 0, $$535618$i = 0, $$535618$i$ph = 0, $$723947$i = 0, $$748$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0; - var $$pre$i17$i = 0, $$pre$i208 = 0, $$pre$i210 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i18$iZ2D = 0, $$pre$phi$i209Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi17$i$iZ2D = 0, $$pre$phiZ2D = 0, $$pre16$i$i = 0, $$sink = 0, $$sink325 = 0, $$sink326 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0; - var $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0; - var $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0; - var $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0; - var $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; - var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; - var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; - var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0; - var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0; - var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; - var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; - var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; - var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; - var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0; - var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0; - var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0; - var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0; - var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0; - var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0; - var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0; - var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0; - var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0; - var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0; - var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0; - var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0; - var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0; - var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0; - var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0; - var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0; - var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0; - var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0; - var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0; - var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; - var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; - var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; - var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; - var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; - var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; - var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; - var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; - var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; - var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; - var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; - var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; - var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; - var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; - var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; - var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; - var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; - var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; - var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; - var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; - var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0; - var $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0; - var $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i207 = 0, $not$$i = 0, $or$cond$i = 0, $or$cond$i213 = 0, $or$cond1$i = 0, $or$cond11$i = 0, $or$cond2$i = 0, $or$cond2$i214 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond6$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0; - var $spec$select$i = 0, $spec$select$i205 = 0, $spec$select1$i = 0, $spec$select3$i = 0, $spec$select49$i = 0, $spec$select7$i = 0, $spec$select9$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[5323]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (21332 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==($16|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[5323] = $24; - } else { - $25 = HEAP32[(21308)>>2]|0; - $26 = ($25>>>0)>($20>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(21300)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (21332 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)==($69|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[5323] = $77; - $98 = $77; - } else { - $78 = HEAP32[(21308)>>2]|0; - $79 = ($78>>>0)>($73>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($71) + ($83)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(21312)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (21332 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[5323] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(21308)>>2]|0; - $104 = ($103>>>0)>($102>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(21300)>>2] = $84; - HEAP32[(21312)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(21296)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (21596 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $$0189$i = $134;$$0190$i = $134;$$0191$i = $138; - while(1) { - $139 = ((($$0189$i)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $141 = ($140|0)==(0|0); - if ($141) { - $142 = ((($$0189$i)) + 20|0); - $143 = HEAP32[$142>>2]|0; - $144 = ($143|0)==(0|0); - if ($144) { - break; - } else { - $146 = $143; - } - } else { - $146 = $140; - } - $145 = ((($146)) + 4|0); - $147 = HEAP32[$145>>2]|0; - $148 = $147 & -8; - $149 = (($148) - ($6))|0; - $150 = ($149>>>0)<($$0191$i>>>0); - $spec$select$i = $150 ? $149 : $$0191$i; - $spec$select1$i = $150 ? $146 : $$0190$i; - $$0189$i = $146;$$0190$i = $spec$select1$i;$$0191$i = $spec$select$i; - } - $151 = HEAP32[(21308)>>2]|0; - $152 = ($151>>>0)>($$0190$i>>>0); - if ($152) { - _abort(); - // unreachable; - } - $153 = (($$0190$i) + ($6)|0); - $154 = ($153>>>0)>($$0190$i>>>0); - if (!($154)) { - _abort(); - // unreachable; - } - $155 = ((($$0190$i)) + 24|0); - $156 = HEAP32[$155>>2]|0; - $157 = ((($$0190$i)) + 12|0); - $158 = HEAP32[$157>>2]|0; - $159 = ($158|0)==($$0190$i|0); - do { - if ($159) { - $169 = ((($$0190$i)) + 20|0); - $170 = HEAP32[$169>>2]|0; - $171 = ($170|0)==(0|0); - if ($171) { - $172 = ((($$0190$i)) + 16|0); - $173 = HEAP32[$172>>2]|0; - $174 = ($173|0)==(0|0); - if ($174) { - $$3$i = 0; - break; - } else { - $$1194$i$ph = $173;$$1196$i$ph = $172; - } - } else { - $$1194$i$ph = $170;$$1196$i$ph = $169; - } - $$1194$i = $$1194$i$ph;$$1196$i = $$1196$i$ph; - while(1) { - $175 = ((($$1194$i)) + 20|0); - $176 = HEAP32[$175>>2]|0; - $177 = ($176|0)==(0|0); - if ($177) { - $178 = ((($$1194$i)) + 16|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - break; - } else { - $$1194$i$be = $179;$$1196$i$be = $178; - } - } else { - $$1194$i$be = $176;$$1196$i$be = $175; - } - $$1194$i = $$1194$i$be;$$1196$i = $$1196$i$be; - } - $181 = ($151>>>0)>($$1196$i>>>0); - if ($181) { - _abort(); - // unreachable; - } else { - HEAP32[$$1196$i>>2] = 0; - $$3$i = $$1194$i; - break; - } - } else { - $160 = ((($$0190$i)) + 8|0); - $161 = HEAP32[$160>>2]|0; - $162 = ($151>>>0)>($161>>>0); - if ($162) { - _abort(); - // unreachable; - } - $163 = ((($161)) + 12|0); - $164 = HEAP32[$163>>2]|0; - $165 = ($164|0)==($$0190$i|0); - if (!($165)) { - _abort(); - // unreachable; - } - $166 = ((($158)) + 8|0); - $167 = HEAP32[$166>>2]|0; - $168 = ($167|0)==($$0190$i|0); - if ($168) { - HEAP32[$163>>2] = $158; - HEAP32[$166>>2] = $161; - $$3$i = $158; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $182 = ($156|0)==(0|0); - L78: do { - if (!($182)) { - $183 = ((($$0190$i)) + 28|0); - $184 = HEAP32[$183>>2]|0; - $185 = (21596 + ($184<<2)|0); - $186 = HEAP32[$185>>2]|0; - $187 = ($$0190$i|0)==($186|0); - do { - if ($187) { - HEAP32[$185>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $188 = 1 << $184; - $189 = $188 ^ -1; - $190 = $108 & $189; - HEAP32[(21296)>>2] = $190; - break L78; - } - } else { - $191 = HEAP32[(21308)>>2]|0; - $192 = ($191>>>0)>($156>>>0); - if ($192) { - _abort(); - // unreachable; - } else { - $193 = ((($156)) + 16|0); - $194 = HEAP32[$193>>2]|0; - $195 = ($194|0)==($$0190$i|0); - $196 = ((($156)) + 20|0); - $$sink = $195 ? $193 : $196; - HEAP32[$$sink>>2] = $$3$i; - $197 = ($$3$i|0)==(0|0); - if ($197) { - break L78; - } else { - break; - } - } - } - } while(0); - $198 = HEAP32[(21308)>>2]|0; - $199 = ($198>>>0)>($$3$i>>>0); - if ($199) { - _abort(); - // unreachable; - } - $200 = ((($$3$i)) + 24|0); - HEAP32[$200>>2] = $156; - $201 = ((($$0190$i)) + 16|0); - $202 = HEAP32[$201>>2]|0; - $203 = ($202|0)==(0|0); - do { - if (!($203)) { - $204 = ($198>>>0)>($202>>>0); - if ($204) { - _abort(); - // unreachable; - } else { - $205 = ((($$3$i)) + 16|0); - HEAP32[$205>>2] = $202; - $206 = ((($202)) + 24|0); - HEAP32[$206>>2] = $$3$i; - break; - } - } - } while(0); - $207 = ((($$0190$i)) + 20|0); - $208 = HEAP32[$207>>2]|0; - $209 = ($208|0)==(0|0); - if (!($209)) { - $210 = HEAP32[(21308)>>2]|0; - $211 = ($210>>>0)>($208>>>0); - if ($211) { - _abort(); - // unreachable; - } else { - $212 = ((($$3$i)) + 20|0); - HEAP32[$212>>2] = $208; - $213 = ((($208)) + 24|0); - HEAP32[$213>>2] = $$3$i; - break; - } - } - } - } while(0); - $214 = ($$0191$i>>>0)<(16); - if ($214) { - $215 = (($$0191$i) + ($6))|0; - $216 = $215 | 3; - $217 = ((($$0190$i)) + 4|0); - HEAP32[$217>>2] = $216; - $218 = (($$0190$i) + ($215)|0); - $219 = ((($218)) + 4|0); - $220 = HEAP32[$219>>2]|0; - $221 = $220 | 1; - HEAP32[$219>>2] = $221; - } else { - $222 = $6 | 3; - $223 = ((($$0190$i)) + 4|0); - HEAP32[$223>>2] = $222; - $224 = $$0191$i | 1; - $225 = ((($153)) + 4|0); - HEAP32[$225>>2] = $224; - $226 = (($153) + ($$0191$i)|0); - HEAP32[$226>>2] = $$0191$i; - $227 = ($37|0)==(0); - if (!($227)) { - $228 = HEAP32[(21312)>>2]|0; - $229 = $37 >>> 3; - $230 = $229 << 1; - $231 = (21332 + ($230<<2)|0); - $232 = 1 << $229; - $233 = $232 & $8; - $234 = ($233|0)==(0); - if ($234) { - $235 = $232 | $8; - HEAP32[5323] = $235; - $$pre$i = ((($231)) + 8|0); - $$0187$i = $231;$$pre$phi$iZ2D = $$pre$i; - } else { - $236 = ((($231)) + 8|0); - $237 = HEAP32[$236>>2]|0; - $238 = HEAP32[(21308)>>2]|0; - $239 = ($238>>>0)>($237>>>0); - if ($239) { - _abort(); - // unreachable; - } else { - $$0187$i = $237;$$pre$phi$iZ2D = $236; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $228; - $240 = ((($$0187$i)) + 12|0); - HEAP32[$240>>2] = $228; - $241 = ((($228)) + 8|0); - HEAP32[$241>>2] = $$0187$i; - $242 = ((($228)) + 12|0); - HEAP32[$242>>2] = $231; - } - HEAP32[(21300)>>2] = $$0191$i; - HEAP32[(21312)>>2] = $153; - } - $243 = ((($$0190$i)) + 8|0); - $$0 = $243; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $244 = ($0>>>0)>(4294967231); - if ($244) { - $$0197 = -1; - } else { - $245 = (($0) + 11)|0; - $246 = $245 & -8; - $247 = HEAP32[(21296)>>2]|0; - $248 = ($247|0)==(0); - if ($248) { - $$0197 = $246; - } else { - $249 = (0 - ($246))|0; - $250 = $245 >>> 8; - $251 = ($250|0)==(0); - if ($251) { - $$0357$i = 0; - } else { - $252 = ($246>>>0)>(16777215); - if ($252) { - $$0357$i = 31; - } else { - $253 = (($250) + 1048320)|0; - $254 = $253 >>> 16; - $255 = $254 & 8; - $256 = $250 << $255; - $257 = (($256) + 520192)|0; - $258 = $257 >>> 16; - $259 = $258 & 4; - $260 = $259 | $255; - $261 = $256 << $259; - $262 = (($261) + 245760)|0; - $263 = $262 >>> 16; - $264 = $263 & 2; - $265 = $260 | $264; - $266 = (14 - ($265))|0; - $267 = $261 << $264; - $268 = $267 >>> 15; - $269 = (($266) + ($268))|0; - $270 = $269 << 1; - $271 = (($269) + 7)|0; - $272 = $246 >>> $271; - $273 = $272 & 1; - $274 = $273 | $270; - $$0357$i = $274; - } - } - $275 = (21596 + ($$0357$i<<2)|0); - $276 = HEAP32[$275>>2]|0; - $277 = ($276|0)==(0|0); - L122: do { - if ($277) { - $$2353$i = 0;$$3$i203 = 0;$$3348$i = $249; - label = 85; - } else { - $278 = ($$0357$i|0)==(31); - $279 = $$0357$i >>> 1; - $280 = (25 - ($279))|0; - $281 = $278 ? 0 : $280; - $282 = $246 << $281; - $$0340$i = 0;$$0345$i = $249;$$0351$i = $276;$$0358$i = $282;$$0361$i = 0; - while(1) { - $283 = ((($$0351$i)) + 4|0); - $284 = HEAP32[$283>>2]|0; - $285 = $284 & -8; - $286 = (($285) - ($246))|0; - $287 = ($286>>>0)<($$0345$i>>>0); - if ($287) { - $288 = ($286|0)==(0); - if ($288) { - $$420$i$ph = $$0351$i;$$434919$i$ph = 0;$$535618$i$ph = $$0351$i; - label = 89; - break L122; - } else { - $$1341$i = $$0351$i;$$1346$i = $286; - } - } else { - $$1341$i = $$0340$i;$$1346$i = $$0345$i; - } - $289 = ((($$0351$i)) + 20|0); - $290 = HEAP32[$289>>2]|0; - $291 = $$0358$i >>> 31; - $292 = (((($$0351$i)) + 16|0) + ($291<<2)|0); - $293 = HEAP32[$292>>2]|0; - $294 = ($290|0)==(0|0); - $295 = ($290|0)==($293|0); - $or$cond2$i = $294 | $295; - $$1362$i = $or$cond2$i ? $$0361$i : $290; - $296 = ($293|0)==(0|0); - $spec$select7$i = $$0358$i << 1; - if ($296) { - $$2353$i = $$1362$i;$$3$i203 = $$1341$i;$$3348$i = $$1346$i; - label = 85; - break; - } else { - $$0340$i = $$1341$i;$$0345$i = $$1346$i;$$0351$i = $293;$$0358$i = $spec$select7$i;$$0361$i = $$1362$i; - } - } - } - } while(0); - if ((label|0) == 85) { - $297 = ($$2353$i|0)==(0|0); - $298 = ($$3$i203|0)==(0|0); - $or$cond$i = $297 & $298; - if ($or$cond$i) { - $299 = 2 << $$0357$i; - $300 = (0 - ($299))|0; - $301 = $299 | $300; - $302 = $301 & $247; - $303 = ($302|0)==(0); - if ($303) { - $$0197 = $246; - break; - } - $304 = (0 - ($302))|0; - $305 = $302 & $304; - $306 = (($305) + -1)|0; - $307 = $306 >>> 12; - $308 = $307 & 16; - $309 = $306 >>> $308; - $310 = $309 >>> 5; - $311 = $310 & 8; - $312 = $311 | $308; - $313 = $309 >>> $311; - $314 = $313 >>> 2; - $315 = $314 & 4; - $316 = $312 | $315; - $317 = $313 >>> $315; - $318 = $317 >>> 1; - $319 = $318 & 2; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 1; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = (($324) + ($325))|0; - $327 = (21596 + ($326<<2)|0); - $328 = HEAP32[$327>>2]|0; - $$3$i203218 = 0;$$4355$i = $328; - } else { - $$3$i203218 = $$3$i203;$$4355$i = $$2353$i; - } - $329 = ($$4355$i|0)==(0|0); - if ($329) { - $$4$lcssa$i = $$3$i203218;$$4349$lcssa$i = $$3348$i; - } else { - $$420$i$ph = $$3$i203218;$$434919$i$ph = $$3348$i;$$535618$i$ph = $$4355$i; - label = 89; - } - } - if ((label|0) == 89) { - $$420$i = $$420$i$ph;$$434919$i = $$434919$i$ph;$$535618$i = $$535618$i$ph; - while(1) { - $330 = ((($$535618$i)) + 4|0); - $331 = HEAP32[$330>>2]|0; - $332 = $331 & -8; - $333 = (($332) - ($246))|0; - $334 = ($333>>>0)<($$434919$i>>>0); - $spec$select$i205 = $334 ? $333 : $$434919$i; - $spec$select3$i = $334 ? $$535618$i : $$420$i; - $335 = ((($$535618$i)) + 16|0); - $336 = HEAP32[$335>>2]|0; - $337 = ($336|0)==(0|0); - if ($337) { - $338 = ((($$535618$i)) + 20|0); - $339 = HEAP32[$338>>2]|0; - $341 = $339; - } else { - $341 = $336; - } - $340 = ($341|0)==(0|0); - if ($340) { - $$4$lcssa$i = $spec$select3$i;$$4349$lcssa$i = $spec$select$i205; - break; - } else { - $$420$i = $spec$select3$i;$$434919$i = $spec$select$i205;$$535618$i = $341; - } - } - } - $342 = ($$4$lcssa$i|0)==(0|0); - if ($342) { - $$0197 = $246; - } else { - $343 = HEAP32[(21300)>>2]|0; - $344 = (($343) - ($246))|0; - $345 = ($$4349$lcssa$i>>>0)<($344>>>0); - if ($345) { - $346 = HEAP32[(21308)>>2]|0; - $347 = ($346>>>0)>($$4$lcssa$i>>>0); - if ($347) { - _abort(); - // unreachable; - } - $348 = (($$4$lcssa$i) + ($246)|0); - $349 = ($348>>>0)>($$4$lcssa$i>>>0); - if (!($349)) { - _abort(); - // unreachable; - } - $350 = ((($$4$lcssa$i)) + 24|0); - $351 = HEAP32[$350>>2]|0; - $352 = ((($$4$lcssa$i)) + 12|0); - $353 = HEAP32[$352>>2]|0; - $354 = ($353|0)==($$4$lcssa$i|0); - do { - if ($354) { - $364 = ((($$4$lcssa$i)) + 20|0); - $365 = HEAP32[$364>>2]|0; - $366 = ($365|0)==(0|0); - if ($366) { - $367 = ((($$4$lcssa$i)) + 16|0); - $368 = HEAP32[$367>>2]|0; - $369 = ($368|0)==(0|0); - if ($369) { - $$3371$i = 0; - break; - } else { - $$1369$i$ph = $368;$$1373$i$ph = $367; - } - } else { - $$1369$i$ph = $365;$$1373$i$ph = $364; - } - $$1369$i = $$1369$i$ph;$$1373$i = $$1373$i$ph; - while(1) { - $370 = ((($$1369$i)) + 20|0); - $371 = HEAP32[$370>>2]|0; - $372 = ($371|0)==(0|0); - if ($372) { - $373 = ((($$1369$i)) + 16|0); - $374 = HEAP32[$373>>2]|0; - $375 = ($374|0)==(0|0); - if ($375) { - break; - } else { - $$1369$i$be = $374;$$1373$i$be = $373; - } - } else { - $$1369$i$be = $371;$$1373$i$be = $370; - } - $$1369$i = $$1369$i$be;$$1373$i = $$1373$i$be; - } - $376 = ($346>>>0)>($$1373$i>>>0); - if ($376) { - _abort(); - // unreachable; - } else { - HEAP32[$$1373$i>>2] = 0; - $$3371$i = $$1369$i; - break; - } - } else { - $355 = ((($$4$lcssa$i)) + 8|0); - $356 = HEAP32[$355>>2]|0; - $357 = ($346>>>0)>($356>>>0); - if ($357) { - _abort(); - // unreachable; - } - $358 = ((($356)) + 12|0); - $359 = HEAP32[$358>>2]|0; - $360 = ($359|0)==($$4$lcssa$i|0); - if (!($360)) { - _abort(); - // unreachable; - } - $361 = ((($353)) + 8|0); - $362 = HEAP32[$361>>2]|0; - $363 = ($362|0)==($$4$lcssa$i|0); - if ($363) { - HEAP32[$358>>2] = $353; - HEAP32[$361>>2] = $356; - $$3371$i = $353; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $377 = ($351|0)==(0|0); - L176: do { - if ($377) { - $469 = $247; - } else { - $378 = ((($$4$lcssa$i)) + 28|0); - $379 = HEAP32[$378>>2]|0; - $380 = (21596 + ($379<<2)|0); - $381 = HEAP32[$380>>2]|0; - $382 = ($$4$lcssa$i|0)==($381|0); - do { - if ($382) { - HEAP32[$380>>2] = $$3371$i; - $cond$i207 = ($$3371$i|0)==(0|0); - if ($cond$i207) { - $383 = 1 << $379; - $384 = $383 ^ -1; - $385 = $247 & $384; - HEAP32[(21296)>>2] = $385; - $469 = $385; - break L176; - } - } else { - $386 = HEAP32[(21308)>>2]|0; - $387 = ($386>>>0)>($351>>>0); - if ($387) { - _abort(); - // unreachable; - } else { - $388 = ((($351)) + 16|0); - $389 = HEAP32[$388>>2]|0; - $390 = ($389|0)==($$4$lcssa$i|0); - $391 = ((($351)) + 20|0); - $$sink325 = $390 ? $388 : $391; - HEAP32[$$sink325>>2] = $$3371$i; - $392 = ($$3371$i|0)==(0|0); - if ($392) { - $469 = $247; - break L176; - } else { - break; - } - } - } - } while(0); - $393 = HEAP32[(21308)>>2]|0; - $394 = ($393>>>0)>($$3371$i>>>0); - if ($394) { - _abort(); - // unreachable; - } - $395 = ((($$3371$i)) + 24|0); - HEAP32[$395>>2] = $351; - $396 = ((($$4$lcssa$i)) + 16|0); - $397 = HEAP32[$396>>2]|0; - $398 = ($397|0)==(0|0); - do { - if (!($398)) { - $399 = ($393>>>0)>($397>>>0); - if ($399) { - _abort(); - // unreachable; - } else { - $400 = ((($$3371$i)) + 16|0); - HEAP32[$400>>2] = $397; - $401 = ((($397)) + 24|0); - HEAP32[$401>>2] = $$3371$i; - break; - } - } - } while(0); - $402 = ((($$4$lcssa$i)) + 20|0); - $403 = HEAP32[$402>>2]|0; - $404 = ($403|0)==(0|0); - if ($404) { - $469 = $247; - } else { - $405 = HEAP32[(21308)>>2]|0; - $406 = ($405>>>0)>($403>>>0); - if ($406) { - _abort(); - // unreachable; - } else { - $407 = ((($$3371$i)) + 20|0); - HEAP32[$407>>2] = $403; - $408 = ((($403)) + 24|0); - HEAP32[$408>>2] = $$3371$i; - $469 = $247; - break; - } - } - } - } while(0); - $409 = ($$4349$lcssa$i>>>0)<(16); - L200: do { - if ($409) { - $410 = (($$4349$lcssa$i) + ($246))|0; - $411 = $410 | 3; - $412 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$412>>2] = $411; - $413 = (($$4$lcssa$i) + ($410)|0); - $414 = ((($413)) + 4|0); - $415 = HEAP32[$414>>2]|0; - $416 = $415 | 1; - HEAP32[$414>>2] = $416; - } else { - $417 = $246 | 3; - $418 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$418>>2] = $417; - $419 = $$4349$lcssa$i | 1; - $420 = ((($348)) + 4|0); - HEAP32[$420>>2] = $419; - $421 = (($348) + ($$4349$lcssa$i)|0); - HEAP32[$421>>2] = $$4349$lcssa$i; - $422 = $$4349$lcssa$i >>> 3; - $423 = ($$4349$lcssa$i>>>0)<(256); - if ($423) { - $424 = $422 << 1; - $425 = (21332 + ($424<<2)|0); - $426 = HEAP32[5323]|0; - $427 = 1 << $422; - $428 = $426 & $427; - $429 = ($428|0)==(0); - if ($429) { - $430 = $426 | $427; - HEAP32[5323] = $430; - $$pre$i208 = ((($425)) + 8|0); - $$0367$i = $425;$$pre$phi$i209Z2D = $$pre$i208; - } else { - $431 = ((($425)) + 8|0); - $432 = HEAP32[$431>>2]|0; - $433 = HEAP32[(21308)>>2]|0; - $434 = ($433>>>0)>($432>>>0); - if ($434) { - _abort(); - // unreachable; - } else { - $$0367$i = $432;$$pre$phi$i209Z2D = $431; - } - } - HEAP32[$$pre$phi$i209Z2D>>2] = $348; - $435 = ((($$0367$i)) + 12|0); - HEAP32[$435>>2] = $348; - $436 = ((($348)) + 8|0); - HEAP32[$436>>2] = $$0367$i; - $437 = ((($348)) + 12|0); - HEAP32[$437>>2] = $425; - break; - } - $438 = $$4349$lcssa$i >>> 8; - $439 = ($438|0)==(0); - if ($439) { - $$0360$i = 0; - } else { - $440 = ($$4349$lcssa$i>>>0)>(16777215); - if ($440) { - $$0360$i = 31; - } else { - $441 = (($438) + 1048320)|0; - $442 = $441 >>> 16; - $443 = $442 & 8; - $444 = $438 << $443; - $445 = (($444) + 520192)|0; - $446 = $445 >>> 16; - $447 = $446 & 4; - $448 = $447 | $443; - $449 = $444 << $447; - $450 = (($449) + 245760)|0; - $451 = $450 >>> 16; - $452 = $451 & 2; - $453 = $448 | $452; - $454 = (14 - ($453))|0; - $455 = $449 << $452; - $456 = $455 >>> 15; - $457 = (($454) + ($456))|0; - $458 = $457 << 1; - $459 = (($457) + 7)|0; - $460 = $$4349$lcssa$i >>> $459; - $461 = $460 & 1; - $462 = $461 | $458; - $$0360$i = $462; - } - } - $463 = (21596 + ($$0360$i<<2)|0); - $464 = ((($348)) + 28|0); - HEAP32[$464>>2] = $$0360$i; - $465 = ((($348)) + 16|0); - $466 = ((($465)) + 4|0); - HEAP32[$466>>2] = 0; - HEAP32[$465>>2] = 0; - $467 = 1 << $$0360$i; - $468 = $469 & $467; - $470 = ($468|0)==(0); - if ($470) { - $471 = $469 | $467; - HEAP32[(21296)>>2] = $471; - HEAP32[$463>>2] = $348; - $472 = ((($348)) + 24|0); - HEAP32[$472>>2] = $463; - $473 = ((($348)) + 12|0); - HEAP32[$473>>2] = $348; - $474 = ((($348)) + 8|0); - HEAP32[$474>>2] = $348; - break; - } - $475 = HEAP32[$463>>2]|0; - $476 = ((($475)) + 4|0); - $477 = HEAP32[$476>>2]|0; - $478 = $477 & -8; - $479 = ($478|0)==($$4349$lcssa$i|0); - L218: do { - if ($479) { - $$0343$lcssa$i = $475; - } else { - $480 = ($$0360$i|0)==(31); - $481 = $$0360$i >>> 1; - $482 = (25 - ($481))|0; - $483 = $480 ? 0 : $482; - $484 = $$4349$lcssa$i << $483; - $$034217$i = $484;$$034316$i = $475; - while(1) { - $491 = $$034217$i >>> 31; - $492 = (((($$034316$i)) + 16|0) + ($491<<2)|0); - $487 = HEAP32[$492>>2]|0; - $493 = ($487|0)==(0|0); - if ($493) { - break; - } - $485 = $$034217$i << 1; - $486 = ((($487)) + 4|0); - $488 = HEAP32[$486>>2]|0; - $489 = $488 & -8; - $490 = ($489|0)==($$4349$lcssa$i|0); - if ($490) { - $$0343$lcssa$i = $487; - break L218; - } else { - $$034217$i = $485;$$034316$i = $487; - } - } - $494 = HEAP32[(21308)>>2]|0; - $495 = ($494>>>0)>($492>>>0); - if ($495) { - _abort(); - // unreachable; - } else { - HEAP32[$492>>2] = $348; - $496 = ((($348)) + 24|0); - HEAP32[$496>>2] = $$034316$i; - $497 = ((($348)) + 12|0); - HEAP32[$497>>2] = $348; - $498 = ((($348)) + 8|0); - HEAP32[$498>>2] = $348; - break L200; - } - } - } while(0); - $499 = ((($$0343$lcssa$i)) + 8|0); - $500 = HEAP32[$499>>2]|0; - $501 = HEAP32[(21308)>>2]|0; - $502 = ($501>>>0)<=($$0343$lcssa$i>>>0); - $503 = ($501>>>0)<=($500>>>0); - $504 = $503 & $502; - if ($504) { - $505 = ((($500)) + 12|0); - HEAP32[$505>>2] = $348; - HEAP32[$499>>2] = $348; - $506 = ((($348)) + 8|0); - HEAP32[$506>>2] = $500; - $507 = ((($348)) + 12|0); - HEAP32[$507>>2] = $$0343$lcssa$i; - $508 = ((($348)) + 24|0); - HEAP32[$508>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $509 = ((($$4$lcssa$i)) + 8|0); - $$0 = $509; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $246; - } - } - } - } - } - } while(0); - $510 = HEAP32[(21300)>>2]|0; - $511 = ($510>>>0)<($$0197>>>0); - if (!($511)) { - $512 = (($510) - ($$0197))|0; - $513 = HEAP32[(21312)>>2]|0; - $514 = ($512>>>0)>(15); - if ($514) { - $515 = (($513) + ($$0197)|0); - HEAP32[(21312)>>2] = $515; - HEAP32[(21300)>>2] = $512; - $516 = $512 | 1; - $517 = ((($515)) + 4|0); - HEAP32[$517>>2] = $516; - $518 = (($513) + ($510)|0); - HEAP32[$518>>2] = $512; - $519 = $$0197 | 3; - $520 = ((($513)) + 4|0); - HEAP32[$520>>2] = $519; - } else { - HEAP32[(21300)>>2] = 0; - HEAP32[(21312)>>2] = 0; - $521 = $510 | 3; - $522 = ((($513)) + 4|0); - HEAP32[$522>>2] = $521; - $523 = (($513) + ($510)|0); - $524 = ((($523)) + 4|0); - $525 = HEAP32[$524>>2]|0; - $526 = $525 | 1; - HEAP32[$524>>2] = $526; - } - $527 = ((($513)) + 8|0); - $$0 = $527; - STACKTOP = sp;return ($$0|0); - } - $528 = HEAP32[(21304)>>2]|0; - $529 = ($528>>>0)>($$0197>>>0); - if ($529) { - $530 = (($528) - ($$0197))|0; - HEAP32[(21304)>>2] = $530; - $531 = HEAP32[(21316)>>2]|0; - $532 = (($531) + ($$0197)|0); - HEAP32[(21316)>>2] = $532; - $533 = $530 | 1; - $534 = ((($532)) + 4|0); - HEAP32[$534>>2] = $533; - $535 = $$0197 | 3; - $536 = ((($531)) + 4|0); - HEAP32[$536>>2] = $535; - $537 = ((($531)) + 8|0); - $$0 = $537; - STACKTOP = sp;return ($$0|0); - } - $538 = HEAP32[5441]|0; - $539 = ($538|0)==(0); - if ($539) { - HEAP32[(21772)>>2] = 4096; - HEAP32[(21768)>>2] = 4096; - HEAP32[(21776)>>2] = -1; - HEAP32[(21780)>>2] = -1; - HEAP32[(21784)>>2] = 0; - HEAP32[(21736)>>2] = 0; - $540 = $1; - $541 = $540 & -16; - $542 = $541 ^ 1431655768; - HEAP32[5441] = $542; - $546 = 4096; - } else { - $$pre$i210 = HEAP32[(21772)>>2]|0; - $546 = $$pre$i210; - } - $543 = (($$0197) + 48)|0; - $544 = (($$0197) + 47)|0; - $545 = (($546) + ($544))|0; - $547 = (0 - ($546))|0; - $548 = $545 & $547; - $549 = ($548>>>0)>($$0197>>>0); - if (!($549)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $550 = HEAP32[(21732)>>2]|0; - $551 = ($550|0)==(0); - if (!($551)) { - $552 = HEAP32[(21724)>>2]|0; - $553 = (($552) + ($548))|0; - $554 = ($553>>>0)<=($552>>>0); - $555 = ($553>>>0)>($550>>>0); - $or$cond1$i = $554 | $555; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $556 = HEAP32[(21736)>>2]|0; - $557 = $556 & 4; - $558 = ($557|0)==(0); - L257: do { - if ($558) { - $559 = HEAP32[(21316)>>2]|0; - $560 = ($559|0)==(0|0); - L259: do { - if ($560) { - label = 173; - } else { - $$0$i$i = (21740); - while(1) { - $561 = HEAP32[$$0$i$i>>2]|0; - $562 = ($561>>>0)>($559>>>0); - if (!($562)) { - $563 = ((($$0$i$i)) + 4|0); - $564 = HEAP32[$563>>2]|0; - $565 = (($561) + ($564)|0); - $566 = ($565>>>0)>($559>>>0); - if ($566) { - break; - } - } - $567 = ((($$0$i$i)) + 8|0); - $568 = HEAP32[$567>>2]|0; - $569 = ($568|0)==(0|0); - if ($569) { - label = 173; - break L259; - } else { - $$0$i$i = $568; - } - } - $592 = (($545) - ($528))|0; - $593 = $592 & $547; - $594 = ($593>>>0)<(2147483647); - if ($594) { - $595 = ((($$0$i$i)) + 4|0); - $596 = (_sbrk(($593|0))|0); - $597 = HEAP32[$$0$i$i>>2]|0; - $598 = HEAP32[$595>>2]|0; - $599 = (($597) + ($598)|0); - $600 = ($596|0)==($599|0); - if ($600) { - $601 = ($596|0)==((-1)|0); - if ($601) { - $$2234243136$i = $593; - } else { - $$723947$i = $593;$$748$i = $596; - label = 190; - break L257; - } - } else { - $$2247$ph$i = $596;$$2253$ph$i = $593; - label = 181; - } - } else { - $$2234243136$i = 0; - } - } - } while(0); - do { - if ((label|0) == 173) { - $570 = (_sbrk(0)|0); - $571 = ($570|0)==((-1)|0); - if ($571) { - $$2234243136$i = 0; - } else { - $572 = $570; - $573 = HEAP32[(21768)>>2]|0; - $574 = (($573) + -1)|0; - $575 = $574 & $572; - $576 = ($575|0)==(0); - $577 = (($574) + ($572))|0; - $578 = (0 - ($573))|0; - $579 = $577 & $578; - $580 = (($579) - ($572))|0; - $581 = $576 ? 0 : $580; - $spec$select49$i = (($581) + ($548))|0; - $582 = HEAP32[(21724)>>2]|0; - $583 = (($spec$select49$i) + ($582))|0; - $584 = ($spec$select49$i>>>0)>($$0197>>>0); - $585 = ($spec$select49$i>>>0)<(2147483647); - $or$cond$i213 = $584 & $585; - if ($or$cond$i213) { - $586 = HEAP32[(21732)>>2]|0; - $587 = ($586|0)==(0); - if (!($587)) { - $588 = ($583>>>0)<=($582>>>0); - $589 = ($583>>>0)>($586>>>0); - $or$cond2$i214 = $588 | $589; - if ($or$cond2$i214) { - $$2234243136$i = 0; - break; - } - } - $590 = (_sbrk(($spec$select49$i|0))|0); - $591 = ($590|0)==($570|0); - if ($591) { - $$723947$i = $spec$select49$i;$$748$i = $570; - label = 190; - break L257; - } else { - $$2247$ph$i = $590;$$2253$ph$i = $spec$select49$i; - label = 181; - } - } else { - $$2234243136$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 181) { - $602 = (0 - ($$2253$ph$i))|0; - $603 = ($$2247$ph$i|0)!=((-1)|0); - $604 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $604 & $603; - $605 = ($543>>>0)>($$2253$ph$i>>>0); - $or$cond6$i = $605 & $or$cond7$i; - if (!($or$cond6$i)) { - $615 = ($$2247$ph$i|0)==((-1)|0); - if ($615) { - $$2234243136$i = 0; - break; - } else { - $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - } - $606 = HEAP32[(21772)>>2]|0; - $607 = (($544) - ($$2253$ph$i))|0; - $608 = (($607) + ($606))|0; - $609 = (0 - ($606))|0; - $610 = $608 & $609; - $611 = ($610>>>0)<(2147483647); - if (!($611)) { - $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - $612 = (_sbrk(($610|0))|0); - $613 = ($612|0)==((-1)|0); - if ($613) { - (_sbrk(($602|0))|0); - $$2234243136$i = 0; - break; - } else { - $614 = (($610) + ($$2253$ph$i))|0; - $$723947$i = $614;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - } - } while(0); - $616 = HEAP32[(21736)>>2]|0; - $617 = $616 | 4; - HEAP32[(21736)>>2] = $617; - $$4236$i = $$2234243136$i; - label = 188; - } else { - $$4236$i = 0; - label = 188; - } - } while(0); - if ((label|0) == 188) { - $618 = ($548>>>0)<(2147483647); - if ($618) { - $619 = (_sbrk(($548|0))|0); - $620 = (_sbrk(0)|0); - $621 = ($619|0)!=((-1)|0); - $622 = ($620|0)!=((-1)|0); - $or$cond5$i = $621 & $622; - $623 = ($619>>>0)<($620>>>0); - $or$cond8$i = $623 & $or$cond5$i; - $624 = $620; - $625 = $619; - $626 = (($624) - ($625))|0; - $627 = (($$0197) + 40)|0; - $628 = ($626>>>0)>($627>>>0); - $spec$select9$i = $628 ? $626 : $$4236$i; - $or$cond8$not$i = $or$cond8$i ^ 1; - $629 = ($619|0)==((-1)|0); - $not$$i = $628 ^ 1; - $630 = $629 | $not$$i; - $or$cond50$i = $630 | $or$cond8$not$i; - if (!($or$cond50$i)) { - $$723947$i = $spec$select9$i;$$748$i = $619; - label = 190; - } - } - } - if ((label|0) == 190) { - $631 = HEAP32[(21724)>>2]|0; - $632 = (($631) + ($$723947$i))|0; - HEAP32[(21724)>>2] = $632; - $633 = HEAP32[(21728)>>2]|0; - $634 = ($632>>>0)>($633>>>0); - if ($634) { - HEAP32[(21728)>>2] = $632; - } - $635 = HEAP32[(21316)>>2]|0; - $636 = ($635|0)==(0|0); - L294: do { - if ($636) { - $637 = HEAP32[(21308)>>2]|0; - $638 = ($637|0)==(0|0); - $639 = ($$748$i>>>0)<($637>>>0); - $or$cond11$i = $638 | $639; - if ($or$cond11$i) { - HEAP32[(21308)>>2] = $$748$i; - } - HEAP32[(21740)>>2] = $$748$i; - HEAP32[(21744)>>2] = $$723947$i; - HEAP32[(21752)>>2] = 0; - $640 = HEAP32[5441]|0; - HEAP32[(21328)>>2] = $640; - HEAP32[(21324)>>2] = -1; - HEAP32[(21344)>>2] = (21332); - HEAP32[(21340)>>2] = (21332); - HEAP32[(21352)>>2] = (21340); - HEAP32[(21348)>>2] = (21340); - HEAP32[(21360)>>2] = (21348); - HEAP32[(21356)>>2] = (21348); - HEAP32[(21368)>>2] = (21356); - HEAP32[(21364)>>2] = (21356); - HEAP32[(21376)>>2] = (21364); - HEAP32[(21372)>>2] = (21364); - HEAP32[(21384)>>2] = (21372); - HEAP32[(21380)>>2] = (21372); - HEAP32[(21392)>>2] = (21380); - HEAP32[(21388)>>2] = (21380); - HEAP32[(21400)>>2] = (21388); - HEAP32[(21396)>>2] = (21388); - HEAP32[(21408)>>2] = (21396); - HEAP32[(21404)>>2] = (21396); - HEAP32[(21416)>>2] = (21404); - HEAP32[(21412)>>2] = (21404); - HEAP32[(21424)>>2] = (21412); - HEAP32[(21420)>>2] = (21412); - HEAP32[(21432)>>2] = (21420); - HEAP32[(21428)>>2] = (21420); - HEAP32[(21440)>>2] = (21428); - HEAP32[(21436)>>2] = (21428); - HEAP32[(21448)>>2] = (21436); - HEAP32[(21444)>>2] = (21436); - HEAP32[(21456)>>2] = (21444); - HEAP32[(21452)>>2] = (21444); - HEAP32[(21464)>>2] = (21452); - HEAP32[(21460)>>2] = (21452); - HEAP32[(21472)>>2] = (21460); - HEAP32[(21468)>>2] = (21460); - HEAP32[(21480)>>2] = (21468); - HEAP32[(21476)>>2] = (21468); - HEAP32[(21488)>>2] = (21476); - HEAP32[(21484)>>2] = (21476); - HEAP32[(21496)>>2] = (21484); - HEAP32[(21492)>>2] = (21484); - HEAP32[(21504)>>2] = (21492); - HEAP32[(21500)>>2] = (21492); - HEAP32[(21512)>>2] = (21500); - HEAP32[(21508)>>2] = (21500); - HEAP32[(21520)>>2] = (21508); - HEAP32[(21516)>>2] = (21508); - HEAP32[(21528)>>2] = (21516); - HEAP32[(21524)>>2] = (21516); - HEAP32[(21536)>>2] = (21524); - HEAP32[(21532)>>2] = (21524); - HEAP32[(21544)>>2] = (21532); - HEAP32[(21540)>>2] = (21532); - HEAP32[(21552)>>2] = (21540); - HEAP32[(21548)>>2] = (21540); - HEAP32[(21560)>>2] = (21548); - HEAP32[(21556)>>2] = (21548); - HEAP32[(21568)>>2] = (21556); - HEAP32[(21564)>>2] = (21556); - HEAP32[(21576)>>2] = (21564); - HEAP32[(21572)>>2] = (21564); - HEAP32[(21584)>>2] = (21572); - HEAP32[(21580)>>2] = (21572); - HEAP32[(21592)>>2] = (21580); - HEAP32[(21588)>>2] = (21580); - $641 = (($$723947$i) + -40)|0; - $642 = ((($$748$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$748$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(21316)>>2] = $649; - HEAP32[(21304)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($$748$i) + ($641)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $655; - } else { - $$024372$i = (21740); - while(1) { - $656 = HEAP32[$$024372$i>>2]|0; - $657 = ((($$024372$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$748$i|0)==($659|0); - if ($660) { - label = 199; - break; - } - $661 = ((($$024372$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024372$i = $662; - } - } - if ((label|0) == 199) { - $664 = ((($$024372$i)) + 4|0); - $665 = ((($$024372$i)) + 12|0); - $666 = HEAP32[$665>>2]|0; - $667 = $666 & 8; - $668 = ($667|0)==(0); - if ($668) { - $669 = ($656>>>0)<=($635>>>0); - $670 = ($$748$i>>>0)>($635>>>0); - $or$cond51$i = $670 & $669; - if ($or$cond51$i) { - $671 = (($658) + ($$723947$i))|0; - HEAP32[$664>>2] = $671; - $672 = HEAP32[(21304)>>2]|0; - $673 = (($672) + ($$723947$i))|0; - $674 = ((($635)) + 8|0); - $675 = $674; - $676 = $675 & 7; - $677 = ($676|0)==(0); - $678 = (0 - ($675))|0; - $679 = $678 & 7; - $680 = $677 ? 0 : $679; - $681 = (($635) + ($680)|0); - $682 = (($673) - ($680))|0; - HEAP32[(21316)>>2] = $681; - HEAP32[(21304)>>2] = $682; - $683 = $682 | 1; - $684 = ((($681)) + 4|0); - HEAP32[$684>>2] = $683; - $685 = (($635) + ($673)|0); - $686 = ((($685)) + 4|0); - HEAP32[$686>>2] = 40; - $687 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $687; - break; - } - } - } - $688 = HEAP32[(21308)>>2]|0; - $689 = ($$748$i>>>0)<($688>>>0); - if ($689) { - HEAP32[(21308)>>2] = $$748$i; - $753 = $$748$i; - } else { - $753 = $688; - } - $690 = (($$748$i) + ($$723947$i)|0); - $$124471$i = (21740); - while(1) { - $691 = HEAP32[$$124471$i>>2]|0; - $692 = ($691|0)==($690|0); - if ($692) { - label = 207; - break; - } - $693 = ((($$124471$i)) + 8|0); - $694 = HEAP32[$693>>2]|0; - $695 = ($694|0)==(0|0); - if ($695) { - break; - } else { - $$124471$i = $694; - } - } - if ((label|0) == 207) { - $696 = ((($$124471$i)) + 12|0); - $697 = HEAP32[$696>>2]|0; - $698 = $697 & 8; - $699 = ($698|0)==(0); - if ($699) { - HEAP32[$$124471$i>>2] = $$748$i; - $700 = ((($$124471$i)) + 4|0); - $701 = HEAP32[$700>>2]|0; - $702 = (($701) + ($$723947$i))|0; - HEAP32[$700>>2] = $702; - $703 = ((($$748$i)) + 8|0); - $704 = $703; - $705 = $704 & 7; - $706 = ($705|0)==(0); - $707 = (0 - ($704))|0; - $708 = $707 & 7; - $709 = $706 ? 0 : $708; - $710 = (($$748$i) + ($709)|0); - $711 = ((($690)) + 8|0); - $712 = $711; - $713 = $712 & 7; - $714 = ($713|0)==(0); - $715 = (0 - ($712))|0; - $716 = $715 & 7; - $717 = $714 ? 0 : $716; - $718 = (($690) + ($717)|0); - $719 = $718; - $720 = $710; - $721 = (($719) - ($720))|0; - $722 = (($710) + ($$0197)|0); - $723 = (($721) - ($$0197))|0; - $724 = $$0197 | 3; - $725 = ((($710)) + 4|0); - HEAP32[$725>>2] = $724; - $726 = ($635|0)==($718|0); - L317: do { - if ($726) { - $727 = HEAP32[(21304)>>2]|0; - $728 = (($727) + ($723))|0; - HEAP32[(21304)>>2] = $728; - HEAP32[(21316)>>2] = $722; - $729 = $728 | 1; - $730 = ((($722)) + 4|0); - HEAP32[$730>>2] = $729; - } else { - $731 = HEAP32[(21312)>>2]|0; - $732 = ($731|0)==($718|0); - if ($732) { - $733 = HEAP32[(21300)>>2]|0; - $734 = (($733) + ($723))|0; - HEAP32[(21300)>>2] = $734; - HEAP32[(21312)>>2] = $722; - $735 = $734 | 1; - $736 = ((($722)) + 4|0); - HEAP32[$736>>2] = $735; - $737 = (($722) + ($734)|0); - HEAP32[$737>>2] = $734; - break; - } - $738 = ((($718)) + 4|0); - $739 = HEAP32[$738>>2]|0; - $740 = $739 & 3; - $741 = ($740|0)==(1); - if ($741) { - $742 = $739 & -8; - $743 = $739 >>> 3; - $744 = ($739>>>0)<(256); - L325: do { - if ($744) { - $745 = ((($718)) + 8|0); - $746 = HEAP32[$745>>2]|0; - $747 = ((($718)) + 12|0); - $748 = HEAP32[$747>>2]|0; - $749 = $743 << 1; - $750 = (21332 + ($749<<2)|0); - $751 = ($746|0)==($750|0); - do { - if (!($751)) { - $752 = ($753>>>0)>($746>>>0); - if ($752) { - _abort(); - // unreachable; - } - $754 = ((($746)) + 12|0); - $755 = HEAP32[$754>>2]|0; - $756 = ($755|0)==($718|0); - if ($756) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $757 = ($748|0)==($746|0); - if ($757) { - $758 = 1 << $743; - $759 = $758 ^ -1; - $760 = HEAP32[5323]|0; - $761 = $760 & $759; - HEAP32[5323] = $761; - break; - } - $762 = ($748|0)==($750|0); - do { - if ($762) { - $$pre16$i$i = ((($748)) + 8|0); - $$pre$phi17$i$iZ2D = $$pre16$i$i; - } else { - $763 = ($753>>>0)>($748>>>0); - if ($763) { - _abort(); - // unreachable; - } - $764 = ((($748)) + 8|0); - $765 = HEAP32[$764>>2]|0; - $766 = ($765|0)==($718|0); - if ($766) { - $$pre$phi17$i$iZ2D = $764; - break; - } - _abort(); - // unreachable; - } - } while(0); - $767 = ((($746)) + 12|0); - HEAP32[$767>>2] = $748; - HEAP32[$$pre$phi17$i$iZ2D>>2] = $746; - } else { - $768 = ((($718)) + 24|0); - $769 = HEAP32[$768>>2]|0; - $770 = ((($718)) + 12|0); - $771 = HEAP32[$770>>2]|0; - $772 = ($771|0)==($718|0); - do { - if ($772) { - $782 = ((($718)) + 16|0); - $783 = ((($782)) + 4|0); - $784 = HEAP32[$783>>2]|0; - $785 = ($784|0)==(0|0); - if ($785) { - $786 = HEAP32[$782>>2]|0; - $787 = ($786|0)==(0|0); - if ($787) { - $$3$i$i = 0; - break; - } else { - $$1290$i$i$ph = $786;$$1292$i$i$ph = $782; - } - } else { - $$1290$i$i$ph = $784;$$1292$i$i$ph = $783; - } - $$1290$i$i = $$1290$i$i$ph;$$1292$i$i = $$1292$i$i$ph; - while(1) { - $788 = ((($$1290$i$i)) + 20|0); - $789 = HEAP32[$788>>2]|0; - $790 = ($789|0)==(0|0); - if ($790) { - $791 = ((($$1290$i$i)) + 16|0); - $792 = HEAP32[$791>>2]|0; - $793 = ($792|0)==(0|0); - if ($793) { - break; - } else { - $$1290$i$i$be = $792;$$1292$i$i$be = $791; - } - } else { - $$1290$i$i$be = $789;$$1292$i$i$be = $788; - } - $$1290$i$i = $$1290$i$i$be;$$1292$i$i = $$1292$i$i$be; - } - $794 = ($753>>>0)>($$1292$i$i>>>0); - if ($794) { - _abort(); - // unreachable; - } else { - HEAP32[$$1292$i$i>>2] = 0; - $$3$i$i = $$1290$i$i; - break; - } - } else { - $773 = ((($718)) + 8|0); - $774 = HEAP32[$773>>2]|0; - $775 = ($753>>>0)>($774>>>0); - if ($775) { - _abort(); - // unreachable; - } - $776 = ((($774)) + 12|0); - $777 = HEAP32[$776>>2]|0; - $778 = ($777|0)==($718|0); - if (!($778)) { - _abort(); - // unreachable; - } - $779 = ((($771)) + 8|0); - $780 = HEAP32[$779>>2]|0; - $781 = ($780|0)==($718|0); - if ($781) { - HEAP32[$776>>2] = $771; - HEAP32[$779>>2] = $774; - $$3$i$i = $771; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $795 = ($769|0)==(0|0); - if ($795) { - break; - } - $796 = ((($718)) + 28|0); - $797 = HEAP32[$796>>2]|0; - $798 = (21596 + ($797<<2)|0); - $799 = HEAP32[$798>>2]|0; - $800 = ($799|0)==($718|0); - do { - if ($800) { - HEAP32[$798>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $801 = 1 << $797; - $802 = $801 ^ -1; - $803 = HEAP32[(21296)>>2]|0; - $804 = $803 & $802; - HEAP32[(21296)>>2] = $804; - break L325; - } else { - $805 = HEAP32[(21308)>>2]|0; - $806 = ($805>>>0)>($769>>>0); - if ($806) { - _abort(); - // unreachable; - } else { - $807 = ((($769)) + 16|0); - $808 = HEAP32[$807>>2]|0; - $809 = ($808|0)==($718|0); - $810 = ((($769)) + 20|0); - $$sink326 = $809 ? $807 : $810; - HEAP32[$$sink326>>2] = $$3$i$i; - $811 = ($$3$i$i|0)==(0|0); - if ($811) { - break L325; - } else { - break; - } - } - } - } while(0); - $812 = HEAP32[(21308)>>2]|0; - $813 = ($812>>>0)>($$3$i$i>>>0); - if ($813) { - _abort(); - // unreachable; - } - $814 = ((($$3$i$i)) + 24|0); - HEAP32[$814>>2] = $769; - $815 = ((($718)) + 16|0); - $816 = HEAP32[$815>>2]|0; - $817 = ($816|0)==(0|0); - do { - if (!($817)) { - $818 = ($812>>>0)>($816>>>0); - if ($818) { - _abort(); - // unreachable; - } else { - $819 = ((($$3$i$i)) + 16|0); - HEAP32[$819>>2] = $816; - $820 = ((($816)) + 24|0); - HEAP32[$820>>2] = $$3$i$i; - break; - } - } - } while(0); - $821 = ((($815)) + 4|0); - $822 = HEAP32[$821>>2]|0; - $823 = ($822|0)==(0|0); - if ($823) { - break; - } - $824 = HEAP32[(21308)>>2]|0; - $825 = ($824>>>0)>($822>>>0); - if ($825) { - _abort(); - // unreachable; - } else { - $826 = ((($$3$i$i)) + 20|0); - HEAP32[$826>>2] = $822; - $827 = ((($822)) + 24|0); - HEAP32[$827>>2] = $$3$i$i; - break; - } - } - } while(0); - $828 = (($718) + ($742)|0); - $829 = (($742) + ($723))|0; - $$0$i16$i = $828;$$0286$i$i = $829; - } else { - $$0$i16$i = $718;$$0286$i$i = $723; - } - $830 = ((($$0$i16$i)) + 4|0); - $831 = HEAP32[$830>>2]|0; - $832 = $831 & -2; - HEAP32[$830>>2] = $832; - $833 = $$0286$i$i | 1; - $834 = ((($722)) + 4|0); - HEAP32[$834>>2] = $833; - $835 = (($722) + ($$0286$i$i)|0); - HEAP32[$835>>2] = $$0286$i$i; - $836 = $$0286$i$i >>> 3; - $837 = ($$0286$i$i>>>0)<(256); - if ($837) { - $838 = $836 << 1; - $839 = (21332 + ($838<<2)|0); - $840 = HEAP32[5323]|0; - $841 = 1 << $836; - $842 = $840 & $841; - $843 = ($842|0)==(0); - do { - if ($843) { - $844 = $840 | $841; - HEAP32[5323] = $844; - $$pre$i17$i = ((($839)) + 8|0); - $$0294$i$i = $839;$$pre$phi$i18$iZ2D = $$pre$i17$i; - } else { - $845 = ((($839)) + 8|0); - $846 = HEAP32[$845>>2]|0; - $847 = HEAP32[(21308)>>2]|0; - $848 = ($847>>>0)>($846>>>0); - if (!($848)) { - $$0294$i$i = $846;$$pre$phi$i18$iZ2D = $845; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i18$iZ2D>>2] = $722; - $849 = ((($$0294$i$i)) + 12|0); - HEAP32[$849>>2] = $722; - $850 = ((($722)) + 8|0); - HEAP32[$850>>2] = $$0294$i$i; - $851 = ((($722)) + 12|0); - HEAP32[$851>>2] = $839; - break; - } - $852 = $$0286$i$i >>> 8; - $853 = ($852|0)==(0); - do { - if ($853) { - $$0295$i$i = 0; - } else { - $854 = ($$0286$i$i>>>0)>(16777215); - if ($854) { - $$0295$i$i = 31; - break; - } - $855 = (($852) + 1048320)|0; - $856 = $855 >>> 16; - $857 = $856 & 8; - $858 = $852 << $857; - $859 = (($858) + 520192)|0; - $860 = $859 >>> 16; - $861 = $860 & 4; - $862 = $861 | $857; - $863 = $858 << $861; - $864 = (($863) + 245760)|0; - $865 = $864 >>> 16; - $866 = $865 & 2; - $867 = $862 | $866; - $868 = (14 - ($867))|0; - $869 = $863 << $866; - $870 = $869 >>> 15; - $871 = (($868) + ($870))|0; - $872 = $871 << 1; - $873 = (($871) + 7)|0; - $874 = $$0286$i$i >>> $873; - $875 = $874 & 1; - $876 = $875 | $872; - $$0295$i$i = $876; - } - } while(0); - $877 = (21596 + ($$0295$i$i<<2)|0); - $878 = ((($722)) + 28|0); - HEAP32[$878>>2] = $$0295$i$i; - $879 = ((($722)) + 16|0); - $880 = ((($879)) + 4|0); - HEAP32[$880>>2] = 0; - HEAP32[$879>>2] = 0; - $881 = HEAP32[(21296)>>2]|0; - $882 = 1 << $$0295$i$i; - $883 = $881 & $882; - $884 = ($883|0)==(0); - if ($884) { - $885 = $881 | $882; - HEAP32[(21296)>>2] = $885; - HEAP32[$877>>2] = $722; - $886 = ((($722)) + 24|0); - HEAP32[$886>>2] = $877; - $887 = ((($722)) + 12|0); - HEAP32[$887>>2] = $722; - $888 = ((($722)) + 8|0); - HEAP32[$888>>2] = $722; - break; - } - $889 = HEAP32[$877>>2]|0; - $890 = ((($889)) + 4|0); - $891 = HEAP32[$890>>2]|0; - $892 = $891 & -8; - $893 = ($892|0)==($$0286$i$i|0); - L410: do { - if ($893) { - $$0288$lcssa$i$i = $889; - } else { - $894 = ($$0295$i$i|0)==(31); - $895 = $$0295$i$i >>> 1; - $896 = (25 - ($895))|0; - $897 = $894 ? 0 : $896; - $898 = $$0286$i$i << $897; - $$028711$i$i = $898;$$028810$i$i = $889; - while(1) { - $905 = $$028711$i$i >>> 31; - $906 = (((($$028810$i$i)) + 16|0) + ($905<<2)|0); - $901 = HEAP32[$906>>2]|0; - $907 = ($901|0)==(0|0); - if ($907) { - break; - } - $899 = $$028711$i$i << 1; - $900 = ((($901)) + 4|0); - $902 = HEAP32[$900>>2]|0; - $903 = $902 & -8; - $904 = ($903|0)==($$0286$i$i|0); - if ($904) { - $$0288$lcssa$i$i = $901; - break L410; - } else { - $$028711$i$i = $899;$$028810$i$i = $901; - } - } - $908 = HEAP32[(21308)>>2]|0; - $909 = ($908>>>0)>($906>>>0); - if ($909) { - _abort(); - // unreachable; - } else { - HEAP32[$906>>2] = $722; - $910 = ((($722)) + 24|0); - HEAP32[$910>>2] = $$028810$i$i; - $911 = ((($722)) + 12|0); - HEAP32[$911>>2] = $722; - $912 = ((($722)) + 8|0); - HEAP32[$912>>2] = $722; - break L317; - } - } - } while(0); - $913 = ((($$0288$lcssa$i$i)) + 8|0); - $914 = HEAP32[$913>>2]|0; - $915 = HEAP32[(21308)>>2]|0; - $916 = ($915>>>0)<=($$0288$lcssa$i$i>>>0); - $917 = ($915>>>0)<=($914>>>0); - $918 = $917 & $916; - if ($918) { - $919 = ((($914)) + 12|0); - HEAP32[$919>>2] = $722; - HEAP32[$913>>2] = $722; - $920 = ((($722)) + 8|0); - HEAP32[$920>>2] = $914; - $921 = ((($722)) + 12|0); - HEAP32[$921>>2] = $$0288$lcssa$i$i; - $922 = ((($722)) + 24|0); - HEAP32[$922>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $1059 = ((($710)) + 8|0); - $$0 = $1059; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (21740); - while(1) { - $923 = HEAP32[$$0$i$i$i>>2]|0; - $924 = ($923>>>0)>($635>>>0); - if (!($924)) { - $925 = ((($$0$i$i$i)) + 4|0); - $926 = HEAP32[$925>>2]|0; - $927 = (($923) + ($926)|0); - $928 = ($927>>>0)>($635>>>0); - if ($928) { - break; - } - } - $929 = ((($$0$i$i$i)) + 8|0); - $930 = HEAP32[$929>>2]|0; - $$0$i$i$i = $930; - } - $931 = ((($927)) + -47|0); - $932 = ((($931)) + 8|0); - $933 = $932; - $934 = $933 & 7; - $935 = ($934|0)==(0); - $936 = (0 - ($933))|0; - $937 = $936 & 7; - $938 = $935 ? 0 : $937; - $939 = (($931) + ($938)|0); - $940 = ((($635)) + 16|0); - $941 = ($939>>>0)<($940>>>0); - $942 = $941 ? $635 : $939; - $943 = ((($942)) + 8|0); - $944 = ((($942)) + 24|0); - $945 = (($$723947$i) + -40)|0; - $946 = ((($$748$i)) + 8|0); - $947 = $946; - $948 = $947 & 7; - $949 = ($948|0)==(0); - $950 = (0 - ($947))|0; - $951 = $950 & 7; - $952 = $949 ? 0 : $951; - $953 = (($$748$i) + ($952)|0); - $954 = (($945) - ($952))|0; - HEAP32[(21316)>>2] = $953; - HEAP32[(21304)>>2] = $954; - $955 = $954 | 1; - $956 = ((($953)) + 4|0); - HEAP32[$956>>2] = $955; - $957 = (($$748$i) + ($945)|0); - $958 = ((($957)) + 4|0); - HEAP32[$958>>2] = 40; - $959 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $959; - $960 = ((($942)) + 4|0); - HEAP32[$960>>2] = 27; - ;HEAP32[$943>>2]=HEAP32[(21740)>>2]|0;HEAP32[$943+4>>2]=HEAP32[(21740)+4>>2]|0;HEAP32[$943+8>>2]=HEAP32[(21740)+8>>2]|0;HEAP32[$943+12>>2]=HEAP32[(21740)+12>>2]|0; - HEAP32[(21740)>>2] = $$748$i; - HEAP32[(21744)>>2] = $$723947$i; - HEAP32[(21752)>>2] = 0; - HEAP32[(21748)>>2] = $943; - $962 = $944; - while(1) { - $961 = ((($962)) + 4|0); - HEAP32[$961>>2] = 7; - $963 = ((($962)) + 8|0); - $964 = ($963>>>0)<($927>>>0); - if ($964) { - $962 = $961; - } else { - break; - } - } - $965 = ($942|0)==($635|0); - if (!($965)) { - $966 = $942; - $967 = $635; - $968 = (($966) - ($967))|0; - $969 = HEAP32[$960>>2]|0; - $970 = $969 & -2; - HEAP32[$960>>2] = $970; - $971 = $968 | 1; - $972 = ((($635)) + 4|0); - HEAP32[$972>>2] = $971; - HEAP32[$942>>2] = $968; - $973 = $968 >>> 3; - $974 = ($968>>>0)<(256); - if ($974) { - $975 = $973 << 1; - $976 = (21332 + ($975<<2)|0); - $977 = HEAP32[5323]|0; - $978 = 1 << $973; - $979 = $977 & $978; - $980 = ($979|0)==(0); - if ($980) { - $981 = $977 | $978; - HEAP32[5323] = $981; - $$pre$i$i = ((($976)) + 8|0); - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $982 = ((($976)) + 8|0); - $983 = HEAP32[$982>>2]|0; - $984 = HEAP32[(21308)>>2]|0; - $985 = ($984>>>0)>($983>>>0); - if ($985) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $983;$$pre$phi$i$iZ2D = $982; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $635; - $986 = ((($$0211$i$i)) + 12|0); - HEAP32[$986>>2] = $635; - $987 = ((($635)) + 8|0); - HEAP32[$987>>2] = $$0211$i$i; - $988 = ((($635)) + 12|0); - HEAP32[$988>>2] = $976; - break; - } - $989 = $968 >>> 8; - $990 = ($989|0)==(0); - if ($990) { - $$0212$i$i = 0; - } else { - $991 = ($968>>>0)>(16777215); - if ($991) { - $$0212$i$i = 31; - } else { - $992 = (($989) + 1048320)|0; - $993 = $992 >>> 16; - $994 = $993 & 8; - $995 = $989 << $994; - $996 = (($995) + 520192)|0; - $997 = $996 >>> 16; - $998 = $997 & 4; - $999 = $998 | $994; - $1000 = $995 << $998; - $1001 = (($1000) + 245760)|0; - $1002 = $1001 >>> 16; - $1003 = $1002 & 2; - $1004 = $999 | $1003; - $1005 = (14 - ($1004))|0; - $1006 = $1000 << $1003; - $1007 = $1006 >>> 15; - $1008 = (($1005) + ($1007))|0; - $1009 = $1008 << 1; - $1010 = (($1008) + 7)|0; - $1011 = $968 >>> $1010; - $1012 = $1011 & 1; - $1013 = $1012 | $1009; - $$0212$i$i = $1013; - } - } - $1014 = (21596 + ($$0212$i$i<<2)|0); - $1015 = ((($635)) + 28|0); - HEAP32[$1015>>2] = $$0212$i$i; - $1016 = ((($635)) + 20|0); - HEAP32[$1016>>2] = 0; - HEAP32[$940>>2] = 0; - $1017 = HEAP32[(21296)>>2]|0; - $1018 = 1 << $$0212$i$i; - $1019 = $1017 & $1018; - $1020 = ($1019|0)==(0); - if ($1020) { - $1021 = $1017 | $1018; - HEAP32[(21296)>>2] = $1021; - HEAP32[$1014>>2] = $635; - $1022 = ((($635)) + 24|0); - HEAP32[$1022>>2] = $1014; - $1023 = ((($635)) + 12|0); - HEAP32[$1023>>2] = $635; - $1024 = ((($635)) + 8|0); - HEAP32[$1024>>2] = $635; - break; - } - $1025 = HEAP32[$1014>>2]|0; - $1026 = ((($1025)) + 4|0); - $1027 = HEAP32[$1026>>2]|0; - $1028 = $1027 & -8; - $1029 = ($1028|0)==($968|0); - L451: do { - if ($1029) { - $$0207$lcssa$i$i = $1025; - } else { - $1030 = ($$0212$i$i|0)==(31); - $1031 = $$0212$i$i >>> 1; - $1032 = (25 - ($1031))|0; - $1033 = $1030 ? 0 : $1032; - $1034 = $968 << $1033; - $$02065$i$i = $1034;$$02074$i$i = $1025; - while(1) { - $1041 = $$02065$i$i >>> 31; - $1042 = (((($$02074$i$i)) + 16|0) + ($1041<<2)|0); - $1037 = HEAP32[$1042>>2]|0; - $1043 = ($1037|0)==(0|0); - if ($1043) { - break; - } - $1035 = $$02065$i$i << 1; - $1036 = ((($1037)) + 4|0); - $1038 = HEAP32[$1036>>2]|0; - $1039 = $1038 & -8; - $1040 = ($1039|0)==($968|0); - if ($1040) { - $$0207$lcssa$i$i = $1037; - break L451; - } else { - $$02065$i$i = $1035;$$02074$i$i = $1037; - } - } - $1044 = HEAP32[(21308)>>2]|0; - $1045 = ($1044>>>0)>($1042>>>0); - if ($1045) { - _abort(); - // unreachable; - } else { - HEAP32[$1042>>2] = $635; - $1046 = ((($635)) + 24|0); - HEAP32[$1046>>2] = $$02074$i$i; - $1047 = ((($635)) + 12|0); - HEAP32[$1047>>2] = $635; - $1048 = ((($635)) + 8|0); - HEAP32[$1048>>2] = $635; - break L294; - } - } - } while(0); - $1049 = ((($$0207$lcssa$i$i)) + 8|0); - $1050 = HEAP32[$1049>>2]|0; - $1051 = HEAP32[(21308)>>2]|0; - $1052 = ($1051>>>0)<=($$0207$lcssa$i$i>>>0); - $1053 = ($1051>>>0)<=($1050>>>0); - $1054 = $1053 & $1052; - if ($1054) { - $1055 = ((($1050)) + 12|0); - HEAP32[$1055>>2] = $635; - HEAP32[$1049>>2] = $635; - $1056 = ((($635)) + 8|0); - HEAP32[$1056>>2] = $1050; - $1057 = ((($635)) + 12|0); - HEAP32[$1057>>2] = $$0207$lcssa$i$i; - $1058 = ((($635)) + 24|0); - HEAP32[$1058>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1060 = HEAP32[(21304)>>2]|0; - $1061 = ($1060>>>0)>($$0197>>>0); - if ($1061) { - $1062 = (($1060) - ($$0197))|0; - HEAP32[(21304)>>2] = $1062; - $1063 = HEAP32[(21316)>>2]|0; - $1064 = (($1063) + ($$0197)|0); - HEAP32[(21316)>>2] = $1064; - $1065 = $1062 | 1; - $1066 = ((($1064)) + 4|0); - HEAP32[$1066>>2] = $1065; - $1067 = $$0197 | 3; - $1068 = ((($1063)) + 4|0); - HEAP32[$1068>>2] = $1067; - $1069 = ((($1063)) + 8|0); - $$0 = $1069; - STACKTOP = sp;return ($$0|0); - } - } - $1070 = (___errno_location()|0); - HEAP32[$1070>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0211$i = 0, $$0211$in$i = 0, $$0381438 = 0, $$0382$lcssa = 0, $$0382437 = 0, $$0394 = 0, $$0401 = 0, $$1 = 0, $$1380 = 0, $$1385 = 0, $$1385$be = 0, $$1385$ph = 0, $$1388 = 0, $$1388$be = 0, $$1388$ph = 0, $$1396 = 0, $$1396$be = 0, $$1396$ph = 0, $$1400 = 0, $$1400$be = 0; - var $$1400$ph = 0, $$2 = 0, $$3 = 0, $$3398 = 0, $$pre = 0, $$pre$phi444Z2D = 0, $$pre$phi446Z2D = 0, $$pre$phiZ2D = 0, $$pre443 = 0, $$pre445 = 0, $$sink = 0, $$sink456 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0; - var $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0; - var $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0; - var $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0; - var $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0; - var $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0; - var $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0; - var $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond419 = 0, $cond420 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(21308)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(21312)>>2]|0; - $20 = ($19|0)==($16|0); - if ($20) { - $105 = ((($10)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = $106 & 3; - $108 = ($107|0)==(3); - if (!($108)) { - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $109 = (($16) + ($17)|0); - $110 = ((($16)) + 4|0); - $111 = $17 | 1; - $112 = $106 & -2; - HEAP32[(21300)>>2] = $17; - HEAP32[$105>>2] = $112; - HEAP32[$110>>2] = $111; - HEAP32[$109>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (21332 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($3>>>0)>($24>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[5323]|0; - $38 = $37 & $36; - HEAP32[5323] = $38; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre445 = ((($26)) + 8|0); - $$pre$phi446Z2D = $$pre445; - } else { - $40 = ($3>>>0)>($26>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi446Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi446Z2D>>2] = $24; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1385$ph = $63;$$1388$ph = $59; - } - } else { - $$1385$ph = $61;$$1388$ph = $60; - } - $$1385 = $$1385$ph;$$1388 = $$1388$ph; - while(1) { - $65 = ((($$1385)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if ($67) { - $68 = ((($$1385)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1385$be = $69;$$1388$be = $68; - } - } else { - $$1385$be = $66;$$1388$be = $65; - } - $$1385 = $$1385$be;$$1388 = $$1388$be; - } - $71 = ($3>>>0)>($$1388>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1388>>2] = 0; - $$3 = $$1385; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($3>>>0)>($51>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1380 = $17;$114 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (21596 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($76|0)==($16|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond419 = ($$3|0)==(0|0); - if ($cond419) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(21296)>>2]|0; - $81 = $80 & $79; - HEAP32[(21296)>>2] = $81; - $$1 = $16;$$1380 = $17;$114 = $16; - break L10; - } - } else { - $82 = HEAP32[(21308)>>2]|0; - $83 = ($82>>>0)>($46>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $86 = ($85|0)==($16|0); - $87 = ((($46)) + 20|0); - $$sink = $86 ? $84 : $87; - HEAP32[$$sink>>2] = $$3; - $88 = ($$3|0)==(0|0); - if ($88) { - $$1 = $16;$$1380 = $17;$114 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $89 = HEAP32[(21308)>>2]|0; - $90 = ($89>>>0)>($$3>>>0); - if ($90) { - _abort(); - // unreachable; - } - $91 = ((($$3)) + 24|0); - HEAP32[$91>>2] = $46; - $92 = ((($16)) + 16|0); - $93 = HEAP32[$92>>2]|0; - $94 = ($93|0)==(0|0); - do { - if (!($94)) { - $95 = ($89>>>0)>($93>>>0); - if ($95) { - _abort(); - // unreachable; - } else { - $96 = ((($$3)) + 16|0); - HEAP32[$96>>2] = $93; - $97 = ((($93)) + 24|0); - HEAP32[$97>>2] = $$3; - break; - } - } - } while(0); - $98 = ((($92)) + 4|0); - $99 = HEAP32[$98>>2]|0; - $100 = ($99|0)==(0|0); - if ($100) { - $$1 = $16;$$1380 = $17;$114 = $16; - } else { - $101 = HEAP32[(21308)>>2]|0; - $102 = ($101>>>0)>($99>>>0); - if ($102) { - _abort(); - // unreachable; - } else { - $103 = ((($$3)) + 20|0); - HEAP32[$103>>2] = $99; - $104 = ((($99)) + 24|0); - HEAP32[$104>>2] = $$3; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1380 = $9;$114 = $2; - } - } while(0); - $113 = ($114>>>0)<($10>>>0); - if (!($113)) { - _abort(); - // unreachable; - } - $115 = ((($10)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = $116 & 1; - $118 = ($117|0)==(0); - if ($118) { - _abort(); - // unreachable; - } - $119 = $116 & 2; - $120 = ($119|0)==(0); - if ($120) { - $121 = HEAP32[(21316)>>2]|0; - $122 = ($121|0)==($10|0); - if ($122) { - $123 = HEAP32[(21304)>>2]|0; - $124 = (($123) + ($$1380))|0; - HEAP32[(21304)>>2] = $124; - HEAP32[(21316)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = HEAP32[(21312)>>2]|0; - $128 = ($$1|0)==($127|0); - if (!($128)) { - return; - } - HEAP32[(21312)>>2] = 0; - HEAP32[(21300)>>2] = 0; - return; - } - $129 = HEAP32[(21312)>>2]|0; - $130 = ($129|0)==($10|0); - if ($130) { - $131 = HEAP32[(21300)>>2]|0; - $132 = (($131) + ($$1380))|0; - HEAP32[(21300)>>2] = $132; - HEAP32[(21312)>>2] = $114; - $133 = $132 | 1; - $134 = ((($$1)) + 4|0); - HEAP32[$134>>2] = $133; - $135 = (($114) + ($132)|0); - HEAP32[$135>>2] = $132; - return; - } - $136 = $116 & -8; - $137 = (($136) + ($$1380))|0; - $138 = $116 >>> 3; - $139 = ($116>>>0)<(256); - L111: do { - if ($139) { - $140 = ((($10)) + 8|0); - $141 = HEAP32[$140>>2]|0; - $142 = ((($10)) + 12|0); - $143 = HEAP32[$142>>2]|0; - $144 = $138 << 1; - $145 = (21332 + ($144<<2)|0); - $146 = ($141|0)==($145|0); - if (!($146)) { - $147 = HEAP32[(21308)>>2]|0; - $148 = ($147>>>0)>($141>>>0); - if ($148) { - _abort(); - // unreachable; - } - $149 = ((($141)) + 12|0); - $150 = HEAP32[$149>>2]|0; - $151 = ($150|0)==($10|0); - if (!($151)) { - _abort(); - // unreachable; - } - } - $152 = ($143|0)==($141|0); - if ($152) { - $153 = 1 << $138; - $154 = $153 ^ -1; - $155 = HEAP32[5323]|0; - $156 = $155 & $154; - HEAP32[5323] = $156; - break; - } - $157 = ($143|0)==($145|0); - if ($157) { - $$pre443 = ((($143)) + 8|0); - $$pre$phi444Z2D = $$pre443; - } else { - $158 = HEAP32[(21308)>>2]|0; - $159 = ($158>>>0)>($143>>>0); - if ($159) { - _abort(); - // unreachable; - } - $160 = ((($143)) + 8|0); - $161 = HEAP32[$160>>2]|0; - $162 = ($161|0)==($10|0); - if ($162) { - $$pre$phi444Z2D = $160; - } else { - _abort(); - // unreachable; - } - } - $163 = ((($141)) + 12|0); - HEAP32[$163>>2] = $143; - HEAP32[$$pre$phi444Z2D>>2] = $141; - } else { - $164 = ((($10)) + 24|0); - $165 = HEAP32[$164>>2]|0; - $166 = ((($10)) + 12|0); - $167 = HEAP32[$166>>2]|0; - $168 = ($167|0)==($10|0); - do { - if ($168) { - $179 = ((($10)) + 16|0); - $180 = ((($179)) + 4|0); - $181 = HEAP32[$180>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $183 = HEAP32[$179>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - $$3398 = 0; - break; - } else { - $$1396$ph = $183;$$1400$ph = $179; - } - } else { - $$1396$ph = $181;$$1400$ph = $180; - } - $$1396 = $$1396$ph;$$1400 = $$1400$ph; - while(1) { - $185 = ((($$1396)) + 20|0); - $186 = HEAP32[$185>>2]|0; - $187 = ($186|0)==(0|0); - if ($187) { - $188 = ((($$1396)) + 16|0); - $189 = HEAP32[$188>>2]|0; - $190 = ($189|0)==(0|0); - if ($190) { - break; - } else { - $$1396$be = $189;$$1400$be = $188; - } - } else { - $$1396$be = $186;$$1400$be = $185; - } - $$1396 = $$1396$be;$$1400 = $$1400$be; - } - $191 = HEAP32[(21308)>>2]|0; - $192 = ($191>>>0)>($$1400>>>0); - if ($192) { - _abort(); - // unreachable; - } else { - HEAP32[$$1400>>2] = 0; - $$3398 = $$1396; - break; - } - } else { - $169 = ((($10)) + 8|0); - $170 = HEAP32[$169>>2]|0; - $171 = HEAP32[(21308)>>2]|0; - $172 = ($171>>>0)>($170>>>0); - if ($172) { - _abort(); - // unreachable; - } - $173 = ((($170)) + 12|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==($10|0); - if (!($175)) { - _abort(); - // unreachable; - } - $176 = ((($167)) + 8|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==($10|0); - if ($178) { - HEAP32[$173>>2] = $167; - HEAP32[$176>>2] = $170; - $$3398 = $167; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $193 = ($165|0)==(0|0); - if (!($193)) { - $194 = ((($10)) + 28|0); - $195 = HEAP32[$194>>2]|0; - $196 = (21596 + ($195<<2)|0); - $197 = HEAP32[$196>>2]|0; - $198 = ($197|0)==($10|0); - do { - if ($198) { - HEAP32[$196>>2] = $$3398; - $cond420 = ($$3398|0)==(0|0); - if ($cond420) { - $199 = 1 << $195; - $200 = $199 ^ -1; - $201 = HEAP32[(21296)>>2]|0; - $202 = $201 & $200; - HEAP32[(21296)>>2] = $202; - break L111; - } - } else { - $203 = HEAP32[(21308)>>2]|0; - $204 = ($203>>>0)>($165>>>0); - if ($204) { - _abort(); - // unreachable; - } else { - $205 = ((($165)) + 16|0); - $206 = HEAP32[$205>>2]|0; - $207 = ($206|0)==($10|0); - $208 = ((($165)) + 20|0); - $$sink456 = $207 ? $205 : $208; - HEAP32[$$sink456>>2] = $$3398; - $209 = ($$3398|0)==(0|0); - if ($209) { - break L111; - } else { - break; - } - } - } - } while(0); - $210 = HEAP32[(21308)>>2]|0; - $211 = ($210>>>0)>($$3398>>>0); - if ($211) { - _abort(); - // unreachable; - } - $212 = ((($$3398)) + 24|0); - HEAP32[$212>>2] = $165; - $213 = ((($10)) + 16|0); - $214 = HEAP32[$213>>2]|0; - $215 = ($214|0)==(0|0); - do { - if (!($215)) { - $216 = ($210>>>0)>($214>>>0); - if ($216) { - _abort(); - // unreachable; - } else { - $217 = ((($$3398)) + 16|0); - HEAP32[$217>>2] = $214; - $218 = ((($214)) + 24|0); - HEAP32[$218>>2] = $$3398; - break; - } - } - } while(0); - $219 = ((($213)) + 4|0); - $220 = HEAP32[$219>>2]|0; - $221 = ($220|0)==(0|0); - if (!($221)) { - $222 = HEAP32[(21308)>>2]|0; - $223 = ($222>>>0)>($220>>>0); - if ($223) { - _abort(); - // unreachable; - } else { - $224 = ((($$3398)) + 20|0); - HEAP32[$224>>2] = $220; - $225 = ((($220)) + 24|0); - HEAP32[$225>>2] = $$3398; - break; - } - } - } - } - } while(0); - $226 = $137 | 1; - $227 = ((($$1)) + 4|0); - HEAP32[$227>>2] = $226; - $228 = (($114) + ($137)|0); - HEAP32[$228>>2] = $137; - $229 = HEAP32[(21312)>>2]|0; - $230 = ($$1|0)==($229|0); - if ($230) { - HEAP32[(21300)>>2] = $137; - return; - } else { - $$2 = $137; - } - } else { - $231 = $116 & -2; - HEAP32[$115>>2] = $231; - $232 = $$1380 | 1; - $233 = ((($$1)) + 4|0); - HEAP32[$233>>2] = $232; - $234 = (($114) + ($$1380)|0); - HEAP32[$234>>2] = $$1380; - $$2 = $$1380; - } - $235 = $$2 >>> 3; - $236 = ($$2>>>0)<(256); - if ($236) { - $237 = $235 << 1; - $238 = (21332 + ($237<<2)|0); - $239 = HEAP32[5323]|0; - $240 = 1 << $235; - $241 = $239 & $240; - $242 = ($241|0)==(0); - if ($242) { - $243 = $239 | $240; - HEAP32[5323] = $243; - $$pre = ((($238)) + 8|0); - $$0401 = $238;$$pre$phiZ2D = $$pre; - } else { - $244 = ((($238)) + 8|0); - $245 = HEAP32[$244>>2]|0; - $246 = HEAP32[(21308)>>2]|0; - $247 = ($246>>>0)>($245>>>0); - if ($247) { - _abort(); - // unreachable; - } else { - $$0401 = $245;$$pre$phiZ2D = $244; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $248 = ((($$0401)) + 12|0); - HEAP32[$248>>2] = $$1; - $249 = ((($$1)) + 8|0); - HEAP32[$249>>2] = $$0401; - $250 = ((($$1)) + 12|0); - HEAP32[$250>>2] = $238; - return; - } - $251 = $$2 >>> 8; - $252 = ($251|0)==(0); - if ($252) { - $$0394 = 0; - } else { - $253 = ($$2>>>0)>(16777215); - if ($253) { - $$0394 = 31; - } else { - $254 = (($251) + 1048320)|0; - $255 = $254 >>> 16; - $256 = $255 & 8; - $257 = $251 << $256; - $258 = (($257) + 520192)|0; - $259 = $258 >>> 16; - $260 = $259 & 4; - $261 = $260 | $256; - $262 = $257 << $260; - $263 = (($262) + 245760)|0; - $264 = $263 >>> 16; - $265 = $264 & 2; - $266 = $261 | $265; - $267 = (14 - ($266))|0; - $268 = $262 << $265; - $269 = $268 >>> 15; - $270 = (($267) + ($269))|0; - $271 = $270 << 1; - $272 = (($270) + 7)|0; - $273 = $$2 >>> $272; - $274 = $273 & 1; - $275 = $274 | $271; - $$0394 = $275; - } - } - $276 = (21596 + ($$0394<<2)|0); - $277 = ((($$1)) + 28|0); - HEAP32[$277>>2] = $$0394; - $278 = ((($$1)) + 16|0); - $279 = ((($$1)) + 20|0); - HEAP32[$279>>2] = 0; - HEAP32[$278>>2] = 0; - $280 = HEAP32[(21296)>>2]|0; - $281 = 1 << $$0394; - $282 = $280 & $281; - $283 = ($282|0)==(0); - L197: do { - if ($283) { - $284 = $280 | $281; - HEAP32[(21296)>>2] = $284; - HEAP32[$276>>2] = $$1; - $285 = ((($$1)) + 24|0); - HEAP32[$285>>2] = $276; - $286 = ((($$1)) + 12|0); - HEAP32[$286>>2] = $$1; - $287 = ((($$1)) + 8|0); - HEAP32[$287>>2] = $$1; - } else { - $288 = HEAP32[$276>>2]|0; - $289 = ((($288)) + 4|0); - $290 = HEAP32[$289>>2]|0; - $291 = $290 & -8; - $292 = ($291|0)==($$2|0); - L200: do { - if ($292) { - $$0382$lcssa = $288; - } else { - $293 = ($$0394|0)==(31); - $294 = $$0394 >>> 1; - $295 = (25 - ($294))|0; - $296 = $293 ? 0 : $295; - $297 = $$2 << $296; - $$0381438 = $297;$$0382437 = $288; - while(1) { - $304 = $$0381438 >>> 31; - $305 = (((($$0382437)) + 16|0) + ($304<<2)|0); - $300 = HEAP32[$305>>2]|0; - $306 = ($300|0)==(0|0); - if ($306) { - break; - } - $298 = $$0381438 << 1; - $299 = ((($300)) + 4|0); - $301 = HEAP32[$299>>2]|0; - $302 = $301 & -8; - $303 = ($302|0)==($$2|0); - if ($303) { - $$0382$lcssa = $300; - break L200; - } else { - $$0381438 = $298;$$0382437 = $300; - } - } - $307 = HEAP32[(21308)>>2]|0; - $308 = ($307>>>0)>($305>>>0); - if ($308) { - _abort(); - // unreachable; - } else { - HEAP32[$305>>2] = $$1; - $309 = ((($$1)) + 24|0); - HEAP32[$309>>2] = $$0382437; - $310 = ((($$1)) + 12|0); - HEAP32[$310>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $$1; - break L197; - } - } - } while(0); - $312 = ((($$0382$lcssa)) + 8|0); - $313 = HEAP32[$312>>2]|0; - $314 = HEAP32[(21308)>>2]|0; - $315 = ($314>>>0)<=($$0382$lcssa>>>0); - $316 = ($314>>>0)<=($313>>>0); - $317 = $316 & $315; - if ($317) { - $318 = ((($313)) + 12|0); - HEAP32[$318>>2] = $$1; - HEAP32[$312>>2] = $$1; - $319 = ((($$1)) + 8|0); - HEAP32[$319>>2] = $313; - $320 = ((($$1)) + 12|0); - HEAP32[$320>>2] = $$0382$lcssa; - $321 = ((($$1)) + 24|0); - HEAP32[$321>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $322 = HEAP32[(21324)>>2]|0; - $323 = (($322) + -1)|0; - HEAP32[(21324)>>2] = $323; - $324 = ($323|0)==(0); - if (!($324)) { - return; - } - $$0211$in$i = (21748); - while(1) { - $$0211$i = HEAP32[$$0211$in$i>>2]|0; - $325 = ($$0211$i|0)==(0|0); - $326 = ((($$0211$i)) + 8|0); - if ($325) { - break; - } else { - $$0211$in$i = $326; - } - } - HEAP32[(21324)>>2] = -1; - return; -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_569($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0; - var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$27 = $17; - while(1) { - $26 = ($27|0)<(0); - if ($26) { - break; - } - $35 = (($$04855) - ($27))|0; - $36 = ((($$04954)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = ($27>>>0)>($37>>>0); - $39 = ((($$04954)) + 8|0); - $$150 = $38 ? $39 : $$04954; - $40 = $38 << 31 >> 31; - $$1 = (($$04756) + ($40))|0; - $41 = $38 ? $37 : 0; - $$0 = (($27) - ($41))|0; - $42 = HEAP32[$$150>>2]|0; - $43 = (($42) + ($$0)|0); - HEAP32[$$150>>2] = $43; - $44 = ((($$150)) + 4|0); - $45 = HEAP32[$44>>2]|0; - $46 = (($45) - ($$0))|0; - HEAP32[$44>>2] = $46; - $47 = HEAP32[$13>>2]|0; - $48 = $$150; - HEAP32[$vararg_buffer3>>2] = $47; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $48; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $49 = (___syscall146(146,($vararg_buffer3|0))|0); - $50 = (___syscall_ret($49)|0); - $51 = ($35|0)==($50|0); - if ($51) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $35;$$04954 = $$150;$27 = $50; - } - } - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $29 = HEAP32[$0>>2]|0; - $30 = $29 | 32; - HEAP32[$0>>2] = $30; - $31 = ($$04756|0)==(2); - if ($31) { - $$051 = 0; - } else { - $32 = ((($$04954)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = (($2) - ($33))|0; - $$051 = $34; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - $25 = $20; - HEAP32[$4>>2] = $25; - HEAP32[$7>>2] = $25; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var label = 0, sp = 0; - sp = STACKTOP; - return (21852|0); -} -function _dummy_569($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 194; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _isdigit($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -48)|0; - $2 = ($1>>>0)<(10); - $3 = $2&1; - return ($3|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $spec$select = 0, $spec$select41 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 255]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $spec$select = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $spec$select; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $spec$select41 = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $spec$select41; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$0 = 0, $$0228 = 0, $$0229334 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240313 = 0, $$0240313371 = 0, $$0240333 = 0, $$0243 = 0, $$0243$ph = 0, $$0243$ph$be = 0, $$0247 = 0, $$0247$ph = 0, $$0249$lcssa = 0, $$0249321 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0; - var $$0259 = 0, $$0262$lcssa = 0, $$0262328 = 0, $$0269$ph = 0, $$1 = 0, $$1230340 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241339 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0, $$1260 = 0, $$1263 = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242320 = 0; - var $$2256 = 0, $$2256$ = 0, $$2261 = 0, $$2271 = 0, $$3257 = 0, $$3265 = 0, $$3272 = 0, $$3317 = 0, $$4258370 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa308 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre360 = 0, $$pre362 = 0, $$pre363 = 0, $$pre363$pre = 0, $$pre364 = 0; - var $$pre368 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; - var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; - var $334 = 0, $335 = 0, $336 = 0.0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0; - var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0; - var $arglist_next3 = 0, $brmerge = 0, $brmerge326 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $or$cond = 0, $or$cond276 = 0, $or$cond278 = 0, $or$cond283 = 0, $spec$select = 0, $spec$select281 = 0, $spec$select284 = 0; - var $spec$select291 = 0, $spec$select292 = 0, $spec$select293 = 0, $spec$select294 = 0, $spec$select295 = 0, $spec$select296 = 0, $spec$select297 = 0, $spec$select298 = 0, $spec$select299 = 0, $storemerge273$lcssa = 0, $storemerge273327 = 0, $storemerge274 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243$ph = 0;$$0247$ph = 0;$$0269$ph = 0; - L1: while(1) { - $$0243 = $$0243$ph;$$0247 = $$0247$ph; - while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP32[$5>>2]|0; - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - label = 94; - break L1; - } - $23 = $21;$25 = $20; - L12: while(1) { - switch ($23<<24>>24) { - case 37: { - label = 10; - break L12; - break; - } - case 0: { - $$0249$lcssa = $25; - break L12; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L15: do { - if ((label|0) == 10) { - label = 0; - $$0249321 = $25;$27 = $25; - while(1) { - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249321; - break L15; - } - $30 = ((($$0249321)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249321 = $30;$27 = $31; - } else { - $$0249$lcssa = $30; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $20; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$20,$36); - } - $37 = ($36|0)==(0); - if ($37) { - break; - } else { - $$0243 = $36;$$0247 = $$1248; - } - } - $38 = HEAP32[$5>>2]|0; - $39 = ((($38)) + 1|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40 << 24 >> 24; - $42 = (_isdigit($41)|0); - $43 = ($42|0)==(0); - $$pre360 = HEAP32[$5>>2]|0; - if ($43) { - $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1; - } else { - $44 = ((($$pre360)) + 2|0); - $45 = HEAP8[$44>>0]|0; - $46 = ($45<<24>>24)==(36); - if ($46) { - $47 = ((($$pre360)) + 1|0); - $48 = HEAP8[$47>>0]|0; - $49 = $48 << 24 >> 24; - $50 = (($49) + -48)|0; - $$0253 = $50;$$1270 = 1;$$sink = 3; - } else { - $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1; - } - } - $51 = (($$pre360) + ($$sink)|0); - HEAP32[$5>>2] = $51; - $52 = HEAP8[$51>>0]|0; - $53 = $52 << 24 >> 24; - $54 = (($53) + -32)|0; - $55 = ($54>>>0)>(31); - $56 = 1 << $54; - $57 = $56 & 75913; - $58 = ($57|0)==(0); - $brmerge326 = $55 | $58; - if ($brmerge326) { - $$0262$lcssa = 0;$$lcssa308 = $52;$storemerge273$lcssa = $51; - } else { - $$0262328 = 0;$60 = $54;$storemerge273327 = $51; - while(1) { - $59 = 1 << $60; - $61 = $59 | $$0262328; - $62 = ((($storemerge273327)) + 1|0); - HEAP32[$5>>2] = $62; - $63 = HEAP8[$62>>0]|0; - $64 = $63 << 24 >> 24; - $65 = (($64) + -32)|0; - $66 = ($65>>>0)>(31); - $67 = 1 << $65; - $68 = $67 & 75913; - $69 = ($68|0)==(0); - $brmerge = $66 | $69; - if ($brmerge) { - $$0262$lcssa = $61;$$lcssa308 = $63;$storemerge273$lcssa = $62; - break; - } else { - $$0262328 = $61;$60 = $65;$storemerge273327 = $62; - } - } - } - $70 = ($$lcssa308<<24>>24)==(42); - if ($70) { - $71 = ((($storemerge273$lcssa)) + 1|0); - $72 = HEAP8[$71>>0]|0; - $73 = $72 << 24 >> 24; - $74 = (_isdigit($73)|0); - $75 = ($74|0)==(0); - if ($75) { - label = 27; - } else { - $76 = HEAP32[$5>>2]|0; - $77 = ((($76)) + 2|0); - $78 = HEAP8[$77>>0]|0; - $79 = ($78<<24>>24)==(36); - if ($79) { - $80 = ((($76)) + 1|0); - $81 = HEAP8[$80>>0]|0; - $82 = $81 << 24 >> 24; - $83 = (($82) + -48)|0; - $84 = (($4) + ($83<<2)|0); - HEAP32[$84>>2] = 10; - $85 = HEAP8[$80>>0]|0; - $86 = $85 << 24 >> 24; - $87 = (($86) + -48)|0; - $88 = (($3) + ($87<<3)|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = ((($76)) + 3|0); - $$0259 = $91;$$2271 = 1;$storemerge274 = $95; - } else { - label = 27; - } - } - if ((label|0) == 27) { - label = 0; - $96 = ($$1270|0)==(0); - if (!($96)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $97 = $arglist_current; - $98 = ((0) + 4|0); - $expanded4 = $98; - $expanded = (($expanded4) - 1)|0; - $99 = (($97) + ($expanded))|0; - $100 = ((0) + 4|0); - $expanded8 = $100; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $101 = $99 & $expanded6; - $102 = $101; - $103 = HEAP32[$102>>2]|0; - $arglist_next = ((($102)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $358 = $103; - } else { - $358 = 0; - } - $104 = HEAP32[$5>>2]|0; - $105 = ((($104)) + 1|0); - $$0259 = $358;$$2271 = 0;$storemerge274 = $105; - } - HEAP32[$5>>2] = $storemerge274; - $106 = ($$0259|0)<(0); - $107 = $$0262$lcssa | 8192; - $108 = (0 - ($$0259))|0; - $spec$select291 = $106 ? $107 : $$0262$lcssa; - $spec$select292 = $106 ? $108 : $$0259; - $$1260 = $spec$select292;$$1263 = $spec$select291;$$3272 = $$2271;$112 = $storemerge274; - } else { - $109 = (_getint($5)|0); - $110 = ($109|0)<(0); - if ($110) { - $$0 = -1; - break; - } - $$pre362 = HEAP32[$5>>2]|0; - $$1260 = $109;$$1263 = $$0262$lcssa;$$3272 = $$1270;$112 = $$pre362; - } - $111 = HEAP8[$112>>0]|0; - $113 = ($111<<24>>24)==(46); - do { - if ($113) { - $114 = ((($112)) + 1|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($115<<24>>24)==(42); - if (!($116)) { - HEAP32[$5>>2] = $114; - $152 = (_getint($5)|0); - $$pre363$pre = HEAP32[$5>>2]|0; - $$0254 = $152;$$pre363 = $$pre363$pre; - break; - } - $117 = ((($112)) + 2|0); - $118 = HEAP8[$117>>0]|0; - $119 = $118 << 24 >> 24; - $120 = (_isdigit($119)|0); - $121 = ($120|0)==(0); - if (!($121)) { - $122 = HEAP32[$5>>2]|0; - $123 = ((($122)) + 3|0); - $124 = HEAP8[$123>>0]|0; - $125 = ($124<<24>>24)==(36); - if ($125) { - $126 = ((($122)) + 2|0); - $127 = HEAP8[$126>>0]|0; - $128 = $127 << 24 >> 24; - $129 = (($128) + -48)|0; - $130 = (($4) + ($129<<2)|0); - HEAP32[$130>>2] = 10; - $131 = HEAP8[$126>>0]|0; - $132 = $131 << 24 >> 24; - $133 = (($132) + -48)|0; - $134 = (($3) + ($133<<3)|0); - $135 = $134; - $136 = $135; - $137 = HEAP32[$136>>2]|0; - $138 = (($135) + 4)|0; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = ((($122)) + 4|0); - HEAP32[$5>>2] = $141; - $$0254 = $137;$$pre363 = $141; - break; - } - } - $142 = ($$3272|0)==(0); - if (!($142)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $143 = $arglist_current2; - $144 = ((0) + 4|0); - $expanded11 = $144; - $expanded10 = (($expanded11) - 1)|0; - $145 = (($143) + ($expanded10))|0; - $146 = ((0) + 4|0); - $expanded15 = $146; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $147 = $145 & $expanded13; - $148 = $147; - $149 = HEAP32[$148>>2]|0; - $arglist_next3 = ((($148)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $359 = $149; - } else { - $359 = 0; - } - $150 = HEAP32[$5>>2]|0; - $151 = ((($150)) + 2|0); - HEAP32[$5>>2] = $151; - $$0254 = $359;$$pre363 = $151; - } else { - $$0254 = -1;$$pre363 = $112; - } - } while(0); - $$0252 = 0;$154 = $$pre363; - while(1) { - $153 = HEAP8[$154>>0]|0; - $155 = $153 << 24 >> 24; - $156 = (($155) + -65)|0; - $157 = ($156>>>0)>(57); - if ($157) { - $$0 = -1; - break L1; - } - $158 = ((($154)) + 1|0); - HEAP32[$5>>2] = $158; - $159 = HEAP8[$154>>0]|0; - $160 = $159 << 24 >> 24; - $161 = (($160) + -65)|0; - $162 = ((17913 + (($$0252*58)|0)|0) + ($161)|0); - $163 = HEAP8[$162>>0]|0; - $164 = $163&255; - $165 = (($164) + -1)|0; - $166 = ($165>>>0)<(8); - if ($166) { - $$0252 = $164;$154 = $158; - } else { - break; - } - } - $167 = ($163<<24>>24)==(0); - if ($167) { - $$0 = -1; - break; - } - $168 = ($163<<24>>24)==(19); - $169 = ($$0253|0)>(-1); - do { - if ($168) { - if ($169) { - $$0 = -1; - break L1; - } else { - label = 54; - } - } else { - if ($169) { - $170 = (($4) + ($$0253<<2)|0); - HEAP32[$170>>2] = $164; - $171 = (($3) + ($$0253<<3)|0); - $172 = $171; - $173 = $172; - $174 = HEAP32[$173>>2]|0; - $175 = (($172) + 4)|0; - $176 = $175; - $177 = HEAP32[$176>>2]|0; - $178 = $6; - $179 = $178; - HEAP32[$179>>2] = $174; - $180 = (($178) + 4)|0; - $181 = $180; - HEAP32[$181>>2] = $177; - label = 54; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$164,$2); - $$pre364 = HEAP32[$5>>2]|0; - $183 = $$pre364; - label = 55; - } - } while(0); - if ((label|0) == 54) { - label = 0; - if ($10) { - $183 = $158; - label = 55; - } else { - $$0243$ph$be = 0; - } - } - L77: do { - if ((label|0) == 55) { - label = 0; - $182 = ((($183)) + -1|0); - $184 = HEAP8[$182>>0]|0; - $185 = $184 << 24 >> 24; - $186 = ($$0252|0)!=(0); - $187 = $185 & 15; - $188 = ($187|0)==(3); - $or$cond276 = $186 & $188; - $189 = $185 & -33; - $$0235 = $or$cond276 ? $189 : $185; - $190 = $$1263 & 8192; - $191 = ($190|0)==(0); - $192 = $$1263 & -65537; - $spec$select = $191 ? $$1263 : $192; - L79: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $199 = HEAP32[$6>>2]|0; - HEAP32[$199>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 1: { - $200 = HEAP32[$6>>2]|0; - HEAP32[$200>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 2: { - $201 = ($$1248|0)<(0); - $202 = $201 << 31 >> 31; - $203 = HEAP32[$6>>2]|0; - $204 = $203; - $205 = $204; - HEAP32[$205>>2] = $$1248; - $206 = (($204) + 4)|0; - $207 = $206; - HEAP32[$207>>2] = $202; - $$0243$ph$be = 0; - break L77; - break; - } - case 3: { - $208 = $$1248&65535; - $209 = HEAP32[$6>>2]|0; - HEAP16[$209>>1] = $208; - $$0243$ph$be = 0; - break L77; - break; - } - case 4: { - $210 = $$1248&255; - $211 = HEAP32[$6>>2]|0; - HEAP8[$211>>0] = $210; - $$0243$ph$be = 0; - break L77; - break; - } - case 6: { - $212 = HEAP32[$6>>2]|0; - HEAP32[$212>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 7: { - $213 = ($$1248|0)<(0); - $214 = $213 << 31 >> 31; - $215 = HEAP32[$6>>2]|0; - $216 = $215; - $217 = $216; - HEAP32[$217>>2] = $$1248; - $218 = (($216) + 4)|0; - $219 = $218; - HEAP32[$219>>2] = $214; - $$0243$ph$be = 0; - break L77; - break; - } - default: { - $$0243$ph$be = 0; - break L77; - } - } - break; - } - case 112: { - $220 = ($$0254>>>0)>(8); - $221 = $220 ? $$0254 : 8; - $222 = $spec$select | 8; - $$1236 = 120;$$1255 = $221;$$3265 = $222; - label = 67; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $spec$select; - label = 67; - break; - } - case 111: { - $238 = $6; - $239 = $238; - $240 = HEAP32[$239>>2]|0; - $241 = (($238) + 4)|0; - $242 = $241; - $243 = HEAP32[$242>>2]|0; - $244 = (_fmt_o($240,$243,$11)|0); - $245 = $spec$select & 8; - $246 = ($245|0)==(0); - $247 = $244; - $248 = (($12) - ($247))|0; - $249 = ($$0254|0)>($248|0); - $250 = (($248) + 1)|0; - $251 = $246 | $249; - $spec$select295 = $251 ? $$0254 : $250; - $$0228 = $244;$$1233 = 0;$$1238 = 18377;$$2256 = $spec$select295;$$4266 = $spec$select;$277 = $240;$279 = $243; - label = 73; - break; - } - case 105: case 100: { - $252 = $6; - $253 = $252; - $254 = HEAP32[$253>>2]|0; - $255 = (($252) + 4)|0; - $256 = $255; - $257 = HEAP32[$256>>2]|0; - $258 = ($257|0)<(0); - if ($258) { - $259 = (_i64Subtract(0,0,($254|0),($257|0))|0); - $260 = tempRet0; - $261 = $6; - $262 = $261; - HEAP32[$262>>2] = $259; - $263 = (($261) + 4)|0; - $264 = $263; - HEAP32[$264>>2] = $260; - $$0232 = 1;$$0237 = 18377;$271 = $259;$272 = $260; - label = 72; - break L79; - } else { - $265 = $spec$select & 2048; - $266 = ($265|0)==(0); - $267 = $spec$select & 1; - $268 = ($267|0)==(0); - $$ = $268 ? 18377 : (18379); - $spec$select296 = $266 ? $$ : (18378); - $269 = $spec$select & 2049; - $270 = ($269|0)!=(0); - $spec$select297 = $270&1; - $$0232 = $spec$select297;$$0237 = $spec$select296;$271 = $254;$272 = $257; - label = 72; - break L79; - } - break; - } - case 117: { - $193 = $6; - $194 = $193; - $195 = HEAP32[$194>>2]|0; - $196 = (($193) + 4)|0; - $197 = $196; - $198 = HEAP32[$197>>2]|0; - $$0232 = 0;$$0237 = 18377;$271 = $195;$272 = $198; - label = 72; - break; - } - case 99: { - $288 = $6; - $289 = $288; - $290 = HEAP32[$289>>2]|0; - $291 = (($288) + 4)|0; - $292 = $291; - $293 = HEAP32[$292>>2]|0; - $294 = $290&255; - HEAP8[$13>>0] = $294; - $$2 = $13;$$2234 = 0;$$2239 = 18377;$$5 = 1;$$6268 = $192;$$pre$phiZ2D = $12; - break; - } - case 109: { - $295 = (___errno_location()|0); - $296 = HEAP32[$295>>2]|0; - $297 = (_strerror($296)|0); - $$1 = $297; - label = 77; - break; - } - case 115: { - $298 = HEAP32[$6>>2]|0; - $299 = ($298|0)==(0|0); - $300 = $299 ? 18387 : $298; - $$1 = $300; - label = 77; - break; - } - case 67: { - $307 = $6; - $308 = $307; - $309 = HEAP32[$308>>2]|0; - $310 = (($307) + 4)|0; - $311 = $310; - $312 = HEAP32[$311>>2]|0; - HEAP32[$8>>2] = $309; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258370 = -1; - label = 81; - break; - } - case 83: { - $313 = ($$0254|0)==(0); - if ($313) { - _pad_683($0,32,$$1260,0,$spec$select); - $$0240313371 = 0; - label = 91; - } else { - $$4258370 = $$0254; - label = 81; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $336 = +HEAPF64[$6>>3]; - $337 = (_fmt_fp($0,$336,$$1260,$$0254,$spec$select,$$0235)|0); - $$0243$ph$be = $337; - break L77; - break; - } - default: { - $$2 = $20;$$2234 = 0;$$2239 = 18377;$$5 = $$0254;$$6268 = $spec$select;$$pre$phiZ2D = $12; - } - } - } while(0); - L103: do { - if ((label|0) == 67) { - label = 0; - $223 = $6; - $224 = $223; - $225 = HEAP32[$224>>2]|0; - $226 = (($223) + 4)|0; - $227 = $226; - $228 = HEAP32[$227>>2]|0; - $229 = $$1236 & 32; - $230 = (_fmt_x($225,$228,$11,$229)|0); - $231 = ($225|0)==(0); - $232 = ($228|0)==(0); - $233 = $231 & $232; - $234 = $$3265 & 8; - $235 = ($234|0)==(0); - $or$cond278 = $235 | $233; - $236 = $$1236 >>> 4; - $237 = (18377 + ($236)|0); - $spec$select293 = $or$cond278 ? 18377 : $237; - $spec$select294 = $or$cond278 ? 0 : 2; - $$0228 = $230;$$1233 = $spec$select294;$$1238 = $spec$select293;$$2256 = $$1255;$$4266 = $$3265;$277 = $225;$279 = $228; - label = 73; - } - else if ((label|0) == 72) { - label = 0; - $273 = (_fmt_u($271,$272,$11)|0); - $$0228 = $273;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $spec$select;$277 = $271;$279 = $272; - label = 73; - } - else if ((label|0) == 77) { - label = 0; - $301 = (_memchr($$1,0,$$0254)|0); - $302 = ($301|0)==(0|0); - $303 = $301; - $304 = $$1; - $305 = (($303) - ($304))|0; - $306 = (($$1) + ($$0254)|0); - $$3257 = $302 ? $$0254 : $305; - $$1250 = $302 ? $306 : $301; - $$pre368 = $$1250; - $$2 = $$1;$$2234 = 0;$$2239 = 18377;$$5 = $$3257;$$6268 = $192;$$pre$phiZ2D = $$pre368; - } - else if ((label|0) == 81) { - label = 0; - $314 = HEAP32[$6>>2]|0; - $$0229334 = $314;$$0240333 = 0; - while(1) { - $315 = HEAP32[$$0229334>>2]|0; - $316 = ($315|0)==(0); - if ($316) { - $$0240313 = $$0240333; - break; - } - $317 = (_wctomb($9,$315)|0); - $318 = ($317|0)<(0); - $319 = (($$4258370) - ($$0240333))|0; - $320 = ($317>>>0)>($319>>>0); - $or$cond283 = $318 | $320; - if ($or$cond283) { - label = 85; - break; - } - $321 = ((($$0229334)) + 4|0); - $322 = (($317) + ($$0240333))|0; - $323 = ($$4258370>>>0)>($322>>>0); - if ($323) { - $$0229334 = $321;$$0240333 = $322; - } else { - $$0240313 = $322; - break; - } - } - if ((label|0) == 85) { - label = 0; - if ($318) { - $$0 = -1; - break L1; - } else { - $$0240313 = $$0240333; - } - } - _pad_683($0,32,$$1260,$$0240313,$spec$select); - $324 = ($$0240313|0)==(0); - if ($324) { - $$0240313371 = 0; - label = 91; - } else { - $325 = HEAP32[$6>>2]|0; - $$1230340 = $325;$$1241339 = 0; - while(1) { - $326 = HEAP32[$$1230340>>2]|0; - $327 = ($326|0)==(0); - if ($327) { - $$0240313371 = $$0240313; - label = 91; - break L103; - } - $328 = (_wctomb($9,$326)|0); - $329 = (($328) + ($$1241339))|0; - $330 = ($329|0)>($$0240313|0); - if ($330) { - $$0240313371 = $$0240313; - label = 91; - break L103; - } - $331 = ((($$1230340)) + 4|0); - _out($0,$9,$328); - $332 = ($329>>>0)<($$0240313>>>0); - if ($332) { - $$1230340 = $331;$$1241339 = $329; - } else { - $$0240313371 = $$0240313; - label = 91; - break; - } - } - } - } - } while(0); - if ((label|0) == 73) { - label = 0; - $274 = ($$2256|0)>(-1); - $275 = $$4266 & -65537; - $spec$select281 = $274 ? $275 : $$4266; - $276 = ($277|0)!=(0); - $278 = ($279|0)!=(0); - $280 = $276 | $278; - $281 = ($$2256|0)!=(0); - $or$cond = $281 | $280; - $282 = $$0228; - $283 = (($12) - ($282))|0; - $284 = $280 ^ 1; - $285 = $284&1; - $286 = (($283) + ($285))|0; - $287 = ($$2256|0)>($286|0); - $$2256$ = $287 ? $$2256 : $286; - $spec$select298 = $or$cond ? $$2256$ : 0; - $spec$select299 = $or$cond ? $$0228 : $11; - $$2 = $spec$select299;$$2234 = $$1233;$$2239 = $$1238;$$5 = $spec$select298;$$6268 = $spec$select281;$$pre$phiZ2D = $12; - } - else if ((label|0) == 91) { - label = 0; - $333 = $spec$select ^ 8192; - _pad_683($0,32,$$1260,$$0240313371,$333); - $334 = ($$1260|0)>($$0240313371|0); - $335 = $334 ? $$1260 : $$0240313371; - $$0243$ph$be = $335; - break; - } - $338 = $$2; - $339 = (($$pre$phiZ2D) - ($338))|0; - $340 = ($$5|0)<($339|0); - $spec$select284 = $340 ? $339 : $$5; - $341 = (($spec$select284) + ($$2234))|0; - $342 = ($$1260|0)<($341|0); - $$2261 = $342 ? $341 : $$1260; - _pad_683($0,32,$$2261,$341,$$6268); - _out($0,$$2239,$$2234); - $343 = $$6268 ^ 65536; - _pad_683($0,48,$$2261,$341,$343); - _pad_683($0,48,$spec$select284,$339,0); - _out($0,$$2,$339); - $344 = $$6268 ^ 8192; - _pad_683($0,32,$$2261,$341,$344); - $$0243$ph$be = $$2261; - } - } while(0); - $$0243$ph = $$0243$ph$be;$$0247$ph = $$1248;$$0269$ph = $$3272; - } - L125: do { - if ((label|0) == 94) { - $345 = ($0|0)==(0|0); - if ($345) { - $346 = ($$0269$ph|0)==(0); - if ($346) { - $$0 = 0; - } else { - $$2242320 = 1; - while(1) { - $347 = (($4) + ($$2242320<<2)|0); - $348 = HEAP32[$347>>2]|0; - $349 = ($348|0)==(0); - if ($349) { - break; - } - $350 = (($3) + ($$2242320<<3)|0); - _pop_arg($350,$348,$2); - $351 = (($$2242320) + 1)|0; - $352 = ($351>>>0)<(10); - if ($352) { - $$2242320 = $351; - } else { - $$0 = 1; - break L125; - } - } - $$3317 = $$2242320; - while(1) { - $355 = (($4) + ($$3317<<2)|0); - $356 = HEAP32[$355>>2]|0; - $357 = ($356|0)==(0); - $354 = (($$3317) + 1)|0; - if (!($357)) { - $$0 = -1; - break L125; - } - $353 = ($354>>>0)<(10); - if ($353) { - $$3317 = $354; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$04 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (_isdigit($3)|0); - $5 = ($4|0)==(0); - if ($5) { - $$0$lcssa = 0; - } else { - $$04 = 0; - while(1) { - $6 = ($$04*10)|0; - $7 = HEAP32[$0>>2]|0; - $8 = HEAP8[$7>>0]|0; - $9 = $8 << 24 >> 24; - $10 = (($6) + -48)|0; - $11 = (($10) + ($9))|0; - $12 = ((($7)) + 1|0); - HEAP32[$0>>2] = $12; - $13 = HEAP8[$12>>0]|0; - $14 = $13 << 24 >> 24; - $15 = (_isdigit($14)|0); - $16 = ($15|0)==(0); - if ($16) { - $$0$lcssa = $11; - break; - } else { - $$04 = $11; - } - } - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (18429 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___udivdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = (___muldi3(($10|0),($11|0),10,0)|0); - $13 = tempRet0; - $14 = (_i64Subtract(($8|0),($9|0),($12|0),($13|0))|0); - $15 = tempRet0; - $16 = $14&255; - $17 = $16 | 48; - $18 = ((($$0914)) + -1|0); - HEAP8[$18>>0] = $17; - $19 = ($9>>>0)>(9); - $20 = ($8>>>0)>(4294967295); - $21 = ($9|0)==(9); - $22 = $21 & $20; - $23 = $19 | $22; - if ($23) { - $$0914 = $18;$8 = $10;$9 = $11; - } else { - break; - } - } - $$010$lcssa$off0 = $10;$$09$lcssa = $18; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $24 = ($$010$lcssa$off0|0)==(0); - if ($24) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $25 = (($$012>>>0) / 10)&-1; - $26 = ($25*10)|0; - $27 = (($$012) - ($26))|0; - $28 = $27 | 48; - $29 = $28&255; - $30 = ((($$111)) + -1|0); - HEAP8[$30>>0] = $29; - $31 = ($$012>>>0)<(10); - if ($31) { - $$1$lcssa = $30; - break; - } else { - $$012 = $25;$$111 = $30; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$137$lcssa66 = 0, $$13745 = 0, $$140 = 0, $$23839 = 0, $$in = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - label = 16; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $38 = ($$036$lcssa64|0)==(0); - if ($38) { - label = 16; - break; - } else { - $39 = $$035$lcssa65; - break; - } - } - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L13: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - $$137$lcssa66 = $$13745;$$in = $$046; - break L13; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break; - } - } - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - label = 16; - break; - } else { - $$137$lcssa66 = $$137$lcssa;$$in = $$0$lcssa; - } - } - $$140 = $$in;$$23839 = $$137$lcssa66; - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $39 = $$140; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - label = 16; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } while(0); - if ((label|0) == 16) { - $39 = 0; - } - return ($39|0); -} -function _pad_683($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = $1 << 24 >> 24; - $11 = ($9>>>0)<(256); - $12 = $11 ? $9 : 256; - (_memset(($5|0),($10|0),($12|0))|0); - $13 = ($9>>>0)>(255); - if ($13) { - $14 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $15 = (($$011) + -256)|0; - $16 = ($15>>>0)>(255); - if ($16) { - $$011 = $15; - } else { - break; - } - } - $17 = $14 & 255; - $$0$lcssa = $17; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$0 = 0, $$0463$lcssa = 0, $$0463588 = 0, $$0464599 = 0, $$0471 = 0.0, $$0479 = 0, $$0487657 = 0, $$0488 = 0, $$0488669 = 0, $$0488671 = 0, $$0497670 = 0, $$0498 = 0, $$0511586 = 0.0, $$0512 = 0, $$0513 = 0, $$0516652 = 0, $$0522 = 0, $$0523 = 0, $$0525 = 0; - var $$0527 = 0, $$0529 = 0, $$0529$in646 = 0, $$0532651 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0, $$1480 = 0, $$1482$lcssa = 0, $$1482683 = 0, $$1489656 = 0, $$1499 = 0, $$1510587 = 0, $$1514$lcssa = 0, $$1514614 = 0, $$1517 = 0, $$1526 = 0, $$1528 = 0, $$1530621 = 0; - var $$1533$lcssa = 0, $$1533645 = 0, $$1604 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2483 = 0, $$2490$lcssa = 0, $$2490638 = 0, $$2500$lcssa = 0, $$2500682 = 0, $$2515 = 0, $$2518634 = 0, $$2531 = 0, $$2534633 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484663 = 0, $$3501$lcssa = 0; - var $$3501676 = 0, $$3535620 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478594 = 0, $$4492 = 0, $$4502$lcssa = 0, $$4502662 = 0, $$4520 = 0, $$5$lcssa = 0, $$5486$lcssa = 0, $$5486639 = 0, $$5493603 = 0, $$5503 = 0, $$5521 = 0, $$560 = 0, $$5609 = 0, $$6 = 0, $$6494593 = 0, $$7495608 = 0; - var $$8 = 0, $$8506 = 0, $$9 = 0, $$9507$lcssa = 0, $$9507625 = 0, $$lcssa583 = 0, $$lobit = 0, $$neg = 0, $$neg571 = 0, $$not = 0, $$pn = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi713Z2D = 0, $$pre$phi714Z2D = 0, $$pre716 = 0, $$sink755 = 0, $10 = 0, $100 = 0; - var $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0; - var $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; - var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0.0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0; - var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0; - var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0; - var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; - var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0; - var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0.0; - var $247 = 0.0, $248 = 0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0; - var $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0; - var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0; - var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0; - var $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0; - var $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0; - var $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0.0, $370 = 0, $371 = 0, $372 = 0, $373 = 0; - var $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0; - var $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0; - var $410 = 0, $411 = 0, $412 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0.0; - var $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond543 = 0, $or$cond546 = 0, $or$cond556 = 0, $or$cond559 = 0, $or$cond6 = 0, $scevgep707 = 0, $scevgep707708 = 0, $spec$select = 0, $spec$select539 = 0, $spec$select540 = 0, $spec$select540720 = 0, $spec$select540721 = 0; - var $spec$select541 = 0, $spec$select544 = 0.0, $spec$select547 = 0, $spec$select548 = 0, $spec$select549 = 0, $spec$select551 = 0, $spec$select554 = 0, $spec$select557 = 0, $spec$select561 = 0.0, $spec$select562 = 0, $spec$select563 = 0, $spec$select565 = 0, $spec$select566 = 0, $spec$select567 = 0.0, $spec$select568 = 0.0, $spec$select569 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - $12 = (___DOUBLE_BITS_684($1)|0); - $13 = tempRet0; - $14 = ($13|0)<(0); - if ($14) { - $15 = - $1; - $16 = (___DOUBLE_BITS_684($15)|0); - $17 = tempRet0; - $$0471 = $15;$$0522 = 1;$$0523 = 18394;$25 = $17;$412 = $16; - } else { - $18 = $4 & 2048; - $19 = ($18|0)==(0); - $20 = $4 & 1; - $21 = ($20|0)==(0); - $$ = $21 ? (18395) : (18400); - $spec$select565 = $19 ? $$ : (18397); - $22 = $4 & 2049; - $23 = ($22|0)!=(0); - $spec$select566 = $23&1; - $$0471 = $1;$$0522 = $spec$select566;$$0523 = $spec$select565;$25 = $13;$412 = $12; - } - $24 = $25 & 2146435072; - $26 = (0)==(0); - $27 = ($24|0)==(2146435072); - $28 = $26 & $27; - do { - if ($28) { - $29 = $5 & 32; - $30 = ($29|0)!=(0); - $31 = $30 ? 18413 : 18417; - $32 = ($$0471 != $$0471) | (0.0 != 0.0); - $33 = $30 ? 18421 : 18425; - $$0512 = $32 ? $33 : $31; - $34 = (($$0522) + 3)|0; - $35 = $4 & -65537; - _pad_683($0,32,$2,$34,$35); - _out($0,$$0523,$$0522); - _out($0,$$0512,3); - $36 = $4 ^ 8192; - _pad_683($0,32,$2,$34,$36); - $$sink755 = $34; - } else { - $37 = (+_frexpl($$0471,$7)); - $38 = $37 * 2.0; - $39 = $38 != 0.0; - if ($39) { - $40 = HEAP32[$7>>2]|0; - $41 = (($40) + -1)|0; - HEAP32[$7>>2] = $41; - } - $42 = $5 | 32; - $43 = ($42|0)==(97); - if ($43) { - $44 = $5 & 32; - $45 = ($44|0)==(0); - $46 = ((($$0523)) + 9|0); - $spec$select = $45 ? $$0523 : $46; - $47 = $$0522 | 2; - $48 = ($3>>>0)>(11); - $49 = (12 - ($3))|0; - $50 = ($49|0)==(0); - $51 = $48 | $50; - do { - if ($51) { - $$1472 = $38; - } else { - $$0511586 = 8.0;$$1510587 = $49; - while(1) { - $52 = (($$1510587) + -1)|0; - $53 = $$0511586 * 16.0; - $54 = ($52|0)==(0); - if ($54) { - break; - } else { - $$0511586 = $53;$$1510587 = $52; - } - } - $55 = HEAP8[$spec$select>>0]|0; - $56 = ($55<<24>>24)==(45); - if ($56) { - $57 = - $38; - $58 = $57 - $53; - $59 = $53 + $58; - $60 = - $59; - $$1472 = $60; - break; - } else { - $61 = $38 + $53; - $62 = $61 - $53; - $$1472 = $62; - break; - } - } - } while(0); - $63 = HEAP32[$7>>2]|0; - $64 = ($63|0)<(0); - $65 = (0 - ($63))|0; - $66 = $64 ? $65 : $63; - $67 = ($66|0)<(0); - $68 = $67 << 31 >> 31; - $69 = (_fmt_u($66,$68,$11)|0); - $70 = ($69|0)==($11|0); - if ($70) { - $71 = ((($10)) + 11|0); - HEAP8[$71>>0] = 48; - $$0513 = $71; - } else { - $$0513 = $69; - } - $72 = $63 >> 31; - $73 = $72 & 2; - $74 = (($73) + 43)|0; - $75 = $74&255; - $76 = ((($$0513)) + -1|0); - HEAP8[$76>>0] = $75; - $77 = (($5) + 15)|0; - $78 = $77&255; - $79 = ((($$0513)) + -2|0); - HEAP8[$79>>0] = $78; - $80 = ($3|0)<(1); - $81 = $4 & 8; - $82 = ($81|0)==(0); - $$0525 = $8;$$2473 = $$1472; - while(1) { - $83 = (~~(($$2473))); - $84 = (18429 + ($83)|0); - $85 = HEAP8[$84>>0]|0; - $86 = $85&255; - $87 = $44 | $86; - $88 = $87&255; - $89 = ((($$0525)) + 1|0); - HEAP8[$$0525>>0] = $88; - $90 = (+($83|0)); - $91 = $$2473 - $90; - $92 = $91 * 16.0; - $93 = $89; - $94 = (($93) - ($9))|0; - $95 = ($94|0)==(1); - if ($95) { - $96 = $92 == 0.0; - $or$cond3$not = $80 & $96; - $or$cond = $82 & $or$cond3$not; - if ($or$cond) { - $$1526 = $89; - } else { - $97 = ((($$0525)) + 2|0); - HEAP8[$89>>0] = 46; - $$1526 = $97; - } - } else { - $$1526 = $89; - } - $98 = $92 != 0.0; - if ($98) { - $$0525 = $$1526;$$2473 = $92; - } else { - break; - } - } - $99 = ($3|0)==(0); - $$pre716 = $$1526; - if ($99) { - label = 25; - } else { - $100 = (-2 - ($9))|0; - $101 = (($100) + ($$pre716))|0; - $102 = ($101|0)<($3|0); - if ($102) { - $103 = $11; - $104 = $79; - $105 = (($3) + 2)|0; - $106 = (($105) + ($103))|0; - $107 = (($106) - ($104))|0; - $$0527 = $107;$$pre$phi713Z2D = $103;$$pre$phi714Z2D = $104; - } else { - label = 25; - } - } - if ((label|0) == 25) { - $108 = $11; - $109 = $79; - $110 = (($108) - ($9))|0; - $111 = (($110) - ($109))|0; - $112 = (($111) + ($$pre716))|0; - $$0527 = $112;$$pre$phi713Z2D = $108;$$pre$phi714Z2D = $109; - } - $113 = (($$0527) + ($47))|0; - _pad_683($0,32,$2,$113,$4); - _out($0,$spec$select,$47); - $114 = $4 ^ 65536; - _pad_683($0,48,$2,$113,$114); - $115 = (($$pre716) - ($9))|0; - _out($0,$8,$115); - $116 = (($$pre$phi713Z2D) - ($$pre$phi714Z2D))|0; - $117 = (($115) + ($116))|0; - $118 = (($$0527) - ($117))|0; - _pad_683($0,48,$118,0,0); - _out($0,$79,$116); - $119 = $4 ^ 8192; - _pad_683($0,32,$2,$113,$119); - $$sink755 = $113; - break; - } - $120 = ($3|0)<(0); - $spec$select539 = $120 ? 6 : $3; - if ($39) { - $121 = $38 * 268435456.0; - $122 = HEAP32[$7>>2]|0; - $123 = (($122) + -28)|0; - HEAP32[$7>>2] = $123; - $$3 = $121;$$pr = $123; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $38;$$pr = $$pre; - } - $124 = ($$pr|0)<(0); - $125 = ((($6)) + 288|0); - $$0498 = $124 ? $6 : $125; - $$1499 = $$0498;$$4 = $$3; - while(1) { - $126 = (~~(($$4))>>>0); - HEAP32[$$1499>>2] = $126; - $127 = ((($$1499)) + 4|0); - $128 = (+($126>>>0)); - $129 = $$4 - $128; - $130 = $129 * 1.0E+9; - $131 = $130 != 0.0; - if ($131) { - $$1499 = $127;$$4 = $130; - } else { - break; - } - } - $132 = ($$pr|0)>(0); - if ($132) { - $$1482683 = $$0498;$$2500682 = $127;$134 = $$pr; - while(1) { - $133 = ($134|0)<(29); - $135 = $133 ? $134 : 29; - $$0488669 = ((($$2500682)) + -4|0); - $136 = ($$0488669>>>0)<($$1482683>>>0); - if ($136) { - $$2483 = $$1482683; - } else { - $$0488671 = $$0488669;$$0497670 = 0; - while(1) { - $137 = HEAP32[$$0488671>>2]|0; - $138 = (_bitshift64Shl(($137|0),0,($135|0))|0); - $139 = tempRet0; - $140 = (_i64Add(($138|0),($139|0),($$0497670|0),0)|0); - $141 = tempRet0; - $142 = (___udivdi3(($140|0),($141|0),1000000000,0)|0); - $143 = tempRet0; - $144 = (___muldi3(($142|0),($143|0),1000000000,0)|0); - $145 = tempRet0; - $146 = (_i64Subtract(($140|0),($141|0),($144|0),($145|0))|0); - $147 = tempRet0; - HEAP32[$$0488671>>2] = $146; - $$0488 = ((($$0488671)) + -4|0); - $148 = ($$0488>>>0)<($$1482683>>>0); - if ($148) { - break; - } else { - $$0488671 = $$0488;$$0497670 = $142; - } - } - $149 = ($142|0)==(0); - if ($149) { - $$2483 = $$1482683; - } else { - $150 = ((($$1482683)) + -4|0); - HEAP32[$150>>2] = $142; - $$2483 = $150; - } - } - $151 = ($$2500682>>>0)>($$2483>>>0); - L57: do { - if ($151) { - $$3501676 = $$2500682; - while(1) { - $153 = ((($$3501676)) + -4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ($154|0)==(0); - if (!($155)) { - $$3501$lcssa = $$3501676; - break L57; - } - $152 = ($153>>>0)>($$2483>>>0); - if ($152) { - $$3501676 = $153; - } else { - $$3501$lcssa = $153; - break; - } - } - } else { - $$3501$lcssa = $$2500682; - } - } while(0); - $156 = HEAP32[$7>>2]|0; - $157 = (($156) - ($135))|0; - HEAP32[$7>>2] = $157; - $158 = ($157|0)>(0); - if ($158) { - $$1482683 = $$2483;$$2500682 = $$3501$lcssa;$134 = $157; - } else { - $$1482$lcssa = $$2483;$$2500$lcssa = $$3501$lcssa;$$pr564 = $157; - break; - } - } - } else { - $$1482$lcssa = $$0498;$$2500$lcssa = $127;$$pr564 = $$pr; - } - $159 = ($$pr564|0)<(0); - if ($159) { - $160 = (($spec$select539) + 25)|0; - $161 = (($160|0) / 9)&-1; - $162 = (($161) + 1)|0; - $163 = ($42|0)==(102); - $$3484663 = $$1482$lcssa;$$4502662 = $$2500$lcssa;$165 = $$pr564; - while(1) { - $164 = (0 - ($165))|0; - $166 = ($164|0)<(9); - $167 = $166 ? $164 : 9; - $168 = ($$3484663>>>0)<($$4502662>>>0); - if ($168) { - $172 = 1 << $167; - $173 = (($172) + -1)|0; - $174 = 1000000000 >>> $167; - $$0487657 = 0;$$1489656 = $$3484663; - while(1) { - $175 = HEAP32[$$1489656>>2]|0; - $176 = $175 & $173; - $177 = $175 >>> $167; - $178 = (($177) + ($$0487657))|0; - HEAP32[$$1489656>>2] = $178; - $179 = Math_imul($176, $174)|0; - $180 = ((($$1489656)) + 4|0); - $181 = ($180>>>0)<($$4502662>>>0); - if ($181) { - $$0487657 = $179;$$1489656 = $180; - } else { - break; - } - } - $182 = HEAP32[$$3484663>>2]|0; - $183 = ($182|0)==(0); - $184 = ((($$3484663)) + 4|0); - $spec$select540 = $183 ? $184 : $$3484663; - $185 = ($179|0)==(0); - if ($185) { - $$5503 = $$4502662;$spec$select540721 = $spec$select540; - } else { - $186 = ((($$4502662)) + 4|0); - HEAP32[$$4502662>>2] = $179; - $$5503 = $186;$spec$select540721 = $spec$select540; - } - } else { - $169 = HEAP32[$$3484663>>2]|0; - $170 = ($169|0)==(0); - $171 = ((($$3484663)) + 4|0); - $spec$select540720 = $170 ? $171 : $$3484663; - $$5503 = $$4502662;$spec$select540721 = $spec$select540720; - } - $187 = $163 ? $$0498 : $spec$select540721; - $188 = $$5503; - $189 = $187; - $190 = (($188) - ($189))|0; - $191 = $190 >> 2; - $192 = ($191|0)>($162|0); - $193 = (($187) + ($162<<2)|0); - $spec$select541 = $192 ? $193 : $$5503; - $194 = HEAP32[$7>>2]|0; - $195 = (($194) + ($167))|0; - HEAP32[$7>>2] = $195; - $196 = ($195|0)<(0); - if ($196) { - $$3484663 = $spec$select540721;$$4502662 = $spec$select541;$165 = $195; - } else { - $$3484$lcssa = $spec$select540721;$$4502$lcssa = $spec$select541; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$4502$lcssa = $$2500$lcssa; - } - $197 = ($$3484$lcssa>>>0)<($$4502$lcssa>>>0); - $198 = $$0498; - if ($197) { - $199 = $$3484$lcssa; - $200 = (($198) - ($199))|0; - $201 = $200 >> 2; - $202 = ($201*9)|0; - $203 = HEAP32[$$3484$lcssa>>2]|0; - $204 = ($203>>>0)<(10); - if ($204) { - $$1517 = $202; - } else { - $$0516652 = $202;$$0532651 = 10; - while(1) { - $205 = ($$0532651*10)|0; - $206 = (($$0516652) + 1)|0; - $207 = ($203>>>0)<($205>>>0); - if ($207) { - $$1517 = $206; - break; - } else { - $$0516652 = $206;$$0532651 = $205; - } - } - } - } else { - $$1517 = 0; - } - $208 = ($42|0)==(102); - $209 = $208 ? 0 : $$1517; - $210 = (($spec$select539) - ($209))|0; - $211 = ($42|0)==(103); - $212 = ($spec$select539|0)!=(0); - $213 = $212 & $211; - $$neg = $213 << 31 >> 31; - $214 = (($210) + ($$neg))|0; - $215 = $$4502$lcssa; - $216 = (($215) - ($198))|0; - $217 = $216 >> 2; - $218 = ($217*9)|0; - $219 = (($218) + -9)|0; - $220 = ($214|0)<($219|0); - if ($220) { - $221 = ((($$0498)) + 4|0); - $222 = (($214) + 9216)|0; - $223 = (($222|0) / 9)&-1; - $224 = (($223) + -1024)|0; - $225 = (($221) + ($224<<2)|0); - $226 = ($223*9)|0; - $227 = (($222) - ($226))|0; - $228 = ($227|0)<(8); - if ($228) { - $$0529$in646 = $227;$$1533645 = 10; - while(1) { - $$0529 = (($$0529$in646) + 1)|0; - $229 = ($$1533645*10)|0; - $230 = ($$0529$in646|0)<(7); - if ($230) { - $$0529$in646 = $$0529;$$1533645 = $229; - } else { - $$1533$lcssa = $229; - break; - } - } - } else { - $$1533$lcssa = 10; - } - $231 = HEAP32[$225>>2]|0; - $232 = (($231>>>0) / ($$1533$lcssa>>>0))&-1; - $233 = Math_imul($232, $$1533$lcssa)|0; - $234 = (($231) - ($233))|0; - $235 = ($234|0)==(0); - $236 = ((($225)) + 4|0); - $237 = ($236|0)==($$4502$lcssa|0); - $or$cond543 = $237 & $235; - if ($or$cond543) { - $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa; - } else { - $238 = $232 & 1; - $239 = ($238|0)==(0); - $spec$select544 = $239 ? 9007199254740992.0 : 9007199254740994.0; - $240 = $$1533$lcssa >>> 1; - $241 = ($234>>>0)<($240>>>0); - $242 = ($234|0)==($240|0); - $or$cond546 = $237 & $242; - $spec$select561 = $or$cond546 ? 1.0 : 1.5; - $spec$select567 = $241 ? 0.5 : $spec$select561; - $243 = ($$0522|0)==(0); - if ($243) { - $$1467 = $spec$select567;$$1469 = $spec$select544; - } else { - $244 = HEAP8[$$0523>>0]|0; - $245 = ($244<<24>>24)==(45); - $246 = - $spec$select544; - $247 = - $spec$select567; - $spec$select568 = $245 ? $246 : $spec$select544; - $spec$select569 = $245 ? $247 : $spec$select567; - $$1467 = $spec$select569;$$1469 = $spec$select568; - } - $248 = (($231) - ($234))|0; - HEAP32[$225>>2] = $248; - $249 = $$1469 + $$1467; - $250 = $249 != $$1469; - if ($250) { - $251 = (($248) + ($$1533$lcssa))|0; - HEAP32[$225>>2] = $251; - $252 = ($251>>>0)>(999999999); - if ($252) { - $$2490638 = $225;$$5486639 = $$3484$lcssa; - while(1) { - $253 = ((($$2490638)) + -4|0); - HEAP32[$$2490638>>2] = 0; - $254 = ($253>>>0)<($$5486639>>>0); - if ($254) { - $255 = ((($$5486639)) + -4|0); - HEAP32[$255>>2] = 0; - $$6 = $255; - } else { - $$6 = $$5486639; - } - $256 = HEAP32[$253>>2]|0; - $257 = (($256) + 1)|0; - HEAP32[$253>>2] = $257; - $258 = ($257>>>0)>(999999999); - if ($258) { - $$2490638 = $253;$$5486639 = $$6; - } else { - $$2490$lcssa = $253;$$5486$lcssa = $$6; - break; - } - } - } else { - $$2490$lcssa = $225;$$5486$lcssa = $$3484$lcssa; - } - $259 = $$5486$lcssa; - $260 = (($198) - ($259))|0; - $261 = $260 >> 2; - $262 = ($261*9)|0; - $263 = HEAP32[$$5486$lcssa>>2]|0; - $264 = ($263>>>0)<(10); - if ($264) { - $$4492 = $$2490$lcssa;$$4520 = $262;$$8 = $$5486$lcssa; - } else { - $$2518634 = $262;$$2534633 = 10; - while(1) { - $265 = ($$2534633*10)|0; - $266 = (($$2518634) + 1)|0; - $267 = ($263>>>0)<($265>>>0); - if ($267) { - $$4492 = $$2490$lcssa;$$4520 = $266;$$8 = $$5486$lcssa; - break; - } else { - $$2518634 = $266;$$2534633 = $265; - } - } - } - } else { - $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa; - } - } - $268 = ((($$4492)) + 4|0); - $269 = ($$4502$lcssa>>>0)>($268>>>0); - $spec$select547 = $269 ? $268 : $$4502$lcssa; - $$5521 = $$4520;$$8506 = $spec$select547;$$9 = $$8; - } else { - $$5521 = $$1517;$$8506 = $$4502$lcssa;$$9 = $$3484$lcssa; - } - $270 = (0 - ($$5521))|0; - $271 = ($$8506>>>0)>($$9>>>0); - L109: do { - if ($271) { - $$9507625 = $$8506; - while(1) { - $273 = ((($$9507625)) + -4|0); - $274 = HEAP32[$273>>2]|0; - $275 = ($274|0)==(0); - if (!($275)) { - $$9507$lcssa = $$9507625;$$lcssa583 = 1; - break L109; - } - $272 = ($273>>>0)>($$9>>>0); - if ($272) { - $$9507625 = $273; - } else { - $$9507$lcssa = $273;$$lcssa583 = 0; - break; - } - } - } else { - $$9507$lcssa = $$8506;$$lcssa583 = 0; - } - } while(0); - do { - if ($211) { - $not$ = $212 ^ 1; - $276 = $not$&1; - $spec$select548 = (($spec$select539) + ($276))|0; - $277 = ($spec$select548|0)>($$5521|0); - $278 = ($$5521|0)>(-5); - $or$cond6 = $277 & $278; - if ($or$cond6) { - $279 = (($5) + -1)|0; - $$neg571 = (($spec$select548) + -1)|0; - $280 = (($$neg571) - ($$5521))|0; - $$0479 = $279;$$2476 = $280; - } else { - $281 = (($5) + -2)|0; - $282 = (($spec$select548) + -1)|0; - $$0479 = $281;$$2476 = $282; - } - $283 = $4 & 8; - $284 = ($283|0)==(0); - if ($284) { - if ($$lcssa583) { - $285 = ((($$9507$lcssa)) + -4|0); - $286 = HEAP32[$285>>2]|0; - $287 = ($286|0)==(0); - if ($287) { - $$2531 = 9; - } else { - $288 = (($286>>>0) % 10)&-1; - $289 = ($288|0)==(0); - if ($289) { - $$1530621 = 0;$$3535620 = 10; - while(1) { - $290 = ($$3535620*10)|0; - $291 = (($$1530621) + 1)|0; - $292 = (($286>>>0) % ($290>>>0))&-1; - $293 = ($292|0)==(0); - if ($293) { - $$1530621 = $291;$$3535620 = $290; - } else { - $$2531 = $291; - break; - } - } - } else { - $$2531 = 0; - } - } - } else { - $$2531 = 9; - } - $294 = $$0479 | 32; - $295 = ($294|0)==(102); - $296 = $$9507$lcssa; - $297 = (($296) - ($198))|0; - $298 = $297 >> 2; - $299 = ($298*9)|0; - $300 = (($299) + -9)|0; - if ($295) { - $301 = (($300) - ($$2531))|0; - $302 = ($301|0)>(0); - $spec$select549 = $302 ? $301 : 0; - $303 = ($$2476|0)<($spec$select549|0); - $spec$select562 = $303 ? $$2476 : $spec$select549; - $$1480 = $$0479;$$3477 = $spec$select562; - break; - } else { - $304 = (($300) + ($$5521))|0; - $305 = (($304) - ($$2531))|0; - $306 = ($305|0)>(0); - $spec$select551 = $306 ? $305 : 0; - $307 = ($$2476|0)<($spec$select551|0); - $spec$select563 = $307 ? $$2476 : $spec$select551; - $$1480 = $$0479;$$3477 = $spec$select563; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476; - } - } else { - $$1480 = $5;$$3477 = $spec$select539; - } - } while(0); - $308 = ($$3477|0)!=(0); - $309 = $4 >>> 3; - $$lobit = $309 & 1; - $310 = $308 ? 1 : $$lobit; - $311 = $$1480 | 32; - $312 = ($311|0)==(102); - if ($312) { - $313 = ($$5521|0)>(0); - $314 = $313 ? $$5521 : 0; - $$2515 = 0;$$pn = $314; - } else { - $315 = ($$5521|0)<(0); - $316 = $315 ? $270 : $$5521; - $317 = ($316|0)<(0); - $318 = $317 << 31 >> 31; - $319 = (_fmt_u($316,$318,$11)|0); - $320 = $11; - $321 = $319; - $322 = (($320) - ($321))|0; - $323 = ($322|0)<(2); - if ($323) { - $$1514614 = $319; - while(1) { - $324 = ((($$1514614)) + -1|0); - HEAP8[$324>>0] = 48; - $325 = $324; - $326 = (($320) - ($325))|0; - $327 = ($326|0)<(2); - if ($327) { - $$1514614 = $324; - } else { - $$1514$lcssa = $324; - break; - } - } - } else { - $$1514$lcssa = $319; - } - $328 = $$5521 >> 31; - $329 = $328 & 2; - $330 = (($329) + 43)|0; - $331 = $330&255; - $332 = ((($$1514$lcssa)) + -1|0); - HEAP8[$332>>0] = $331; - $333 = $$1480&255; - $334 = ((($$1514$lcssa)) + -2|0); - HEAP8[$334>>0] = $333; - $335 = $334; - $336 = (($320) - ($335))|0; - $$2515 = $334;$$pn = $336; - } - $337 = (($$0522) + 1)|0; - $338 = (($337) + ($$3477))|0; - $$1528 = (($338) + ($310))|0; - $339 = (($$1528) + ($$pn))|0; - _pad_683($0,32,$2,$339,$4); - _out($0,$$0523,$$0522); - $340 = $4 ^ 65536; - _pad_683($0,48,$2,$339,$340); - if ($312) { - $341 = ($$9>>>0)>($$0498>>>0); - $spec$select554 = $341 ? $$0498 : $$9; - $342 = ((($8)) + 9|0); - $343 = $342; - $344 = ((($8)) + 8|0); - $$5493603 = $spec$select554; - while(1) { - $345 = HEAP32[$$5493603>>2]|0; - $346 = (_fmt_u($345,0,$342)|0); - $347 = ($$5493603|0)==($spec$select554|0); - if ($347) { - $353 = ($346|0)==($342|0); - if ($353) { - HEAP8[$344>>0] = 48; - $$1465 = $344; - } else { - $$1465 = $346; - } - } else { - $348 = ($346>>>0)>($8>>>0); - if ($348) { - $349 = $346; - $350 = (($349) - ($9))|0; - _memset(($8|0),48,($350|0))|0; - $$0464599 = $346; - while(1) { - $351 = ((($$0464599)) + -1|0); - $352 = ($351>>>0)>($8>>>0); - if ($352) { - $$0464599 = $351; - } else { - $$1465 = $351; - break; - } - } - } else { - $$1465 = $346; - } - } - $354 = $$1465; - $355 = (($343) - ($354))|0; - _out($0,$$1465,$355); - $356 = ((($$5493603)) + 4|0); - $357 = ($356>>>0)>($$0498>>>0); - if ($357) { - break; - } else { - $$5493603 = $356; - } - } - $$not = $308 ^ 1; - $358 = $4 & 8; - $359 = ($358|0)==(0); - $or$cond556 = $359 & $$not; - if (!($or$cond556)) { - _out($0,18445,1); - } - $360 = ($356>>>0)<($$9507$lcssa>>>0); - $361 = ($$3477|0)>(0); - $362 = $360 & $361; - if ($362) { - $$4478594 = $$3477;$$6494593 = $356; - while(1) { - $363 = HEAP32[$$6494593>>2]|0; - $364 = (_fmt_u($363,0,$342)|0); - $365 = ($364>>>0)>($8>>>0); - if ($365) { - $366 = $364; - $367 = (($366) - ($9))|0; - _memset(($8|0),48,($367|0))|0; - $$0463588 = $364; - while(1) { - $368 = ((($$0463588)) + -1|0); - $369 = ($368>>>0)>($8>>>0); - if ($369) { - $$0463588 = $368; - } else { - $$0463$lcssa = $368; - break; - } - } - } else { - $$0463$lcssa = $364; - } - $370 = ($$4478594|0)<(9); - $371 = $370 ? $$4478594 : 9; - _out($0,$$0463$lcssa,$371); - $372 = ((($$6494593)) + 4|0); - $373 = (($$4478594) + -9)|0; - $374 = ($372>>>0)<($$9507$lcssa>>>0); - $375 = ($$4478594|0)>(9); - $376 = $374 & $375; - if ($376) { - $$4478594 = $373;$$6494593 = $372; - } else { - $$4478$lcssa = $373; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $377 = (($$4478$lcssa) + 9)|0; - _pad_683($0,48,$377,9,0); - } else { - $378 = ((($$9)) + 4|0); - $spec$select557 = $$lcssa583 ? $$9507$lcssa : $378; - $379 = ($$9>>>0)<($spec$select557>>>0); - $380 = ($$3477|0)>(-1); - $381 = $379 & $380; - if ($381) { - $382 = ((($8)) + 9|0); - $383 = $4 & 8; - $384 = ($383|0)==(0); - $385 = $382; - $386 = (0 - ($9))|0; - $387 = ((($8)) + 8|0); - $$5609 = $$3477;$$7495608 = $$9; - while(1) { - $388 = HEAP32[$$7495608>>2]|0; - $389 = (_fmt_u($388,0,$382)|0); - $390 = ($389|0)==($382|0); - if ($390) { - HEAP8[$387>>0] = 48; - $$0 = $387; - } else { - $$0 = $389; - } - $391 = ($$7495608|0)==($$9|0); - do { - if ($391) { - $395 = ((($$0)) + 1|0); - _out($0,$$0,1); - $396 = ($$5609|0)<(1); - $or$cond559 = $384 & $396; - if ($or$cond559) { - $$2 = $395; - break; - } - _out($0,18445,1); - $$2 = $395; - } else { - $392 = ($$0>>>0)>($8>>>0); - if (!($392)) { - $$2 = $$0; - break; - } - $scevgep707 = (($$0) + ($386)|0); - $scevgep707708 = $scevgep707; - _memset(($8|0),48,($scevgep707708|0))|0; - $$1604 = $$0; - while(1) { - $393 = ((($$1604)) + -1|0); - $394 = ($393>>>0)>($8>>>0); - if ($394) { - $$1604 = $393; - } else { - $$2 = $393; - break; - } - } - } - } while(0); - $397 = $$2; - $398 = (($385) - ($397))|0; - $399 = ($$5609|0)>($398|0); - $400 = $399 ? $398 : $$5609; - _out($0,$$2,$400); - $401 = (($$5609) - ($398))|0; - $402 = ((($$7495608)) + 4|0); - $403 = ($402>>>0)<($spec$select557>>>0); - $404 = ($401|0)>(-1); - $405 = $403 & $404; - if ($405) { - $$5609 = $401;$$7495608 = $402; - } else { - $$5$lcssa = $401; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $406 = (($$5$lcssa) + 18)|0; - _pad_683($0,48,$406,18,0); - $407 = $11; - $408 = $$2515; - $409 = (($407) - ($408))|0; - _out($0,$$2515,$409); - } - $410 = $4 ^ 8192; - _pad_683($0,32,$2,$339,$410); - $$sink755 = $339; - } - } while(0); - $411 = ($$sink755|0)<($2|0); - $$560 = $411 ? $2 : $$sink755; - STACKTOP = sp;return ($$560|0); -} -function ___DOUBLE_BITS_684($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_430()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)==(0|0); - if ($10) { - $11 = $1 & -128; - $12 = ($11|0)==(57216); - if ($12) { - $14 = $1&255; - HEAP8[$0>>0] = $14; - $$0 = 1; - break; - } else { - $13 = (___errno_location()|0); - HEAP32[$13>>2] = 84; - $$0 = -1; - break; - } - } - $15 = ($1>>>0)<(2048); - if ($15) { - $16 = $1 >>> 6; - $17 = $16 | 192; - $18 = $17&255; - $19 = ((($0)) + 1|0); - HEAP8[$0>>0] = $18; - $20 = $1 & 63; - $21 = $20 | 128; - $22 = $21&255; - HEAP8[$19>>0] = $22; - $$0 = 2; - break; - } - $23 = ($1>>>0)<(55296); - $24 = $1 & -8192; - $25 = ($24|0)==(57344); - $or$cond = $23 | $25; - if ($or$cond) { - $26 = $1 >>> 12; - $27 = $26 | 224; - $28 = $27&255; - $29 = ((($0)) + 1|0); - HEAP8[$0>>0] = $28; - $30 = $1 >>> 6; - $31 = $30 & 63; - $32 = $31 | 128; - $33 = $32&255; - $34 = ((($0)) + 2|0); - HEAP8[$29>>0] = $33; - $35 = $1 & 63; - $36 = $35 | 128; - $37 = $36&255; - HEAP8[$34>>0] = $37; - $$0 = 3; - break; - } - $38 = (($1) + -65536)|0; - $39 = ($38>>>0)<(1048576); - if ($39) { - $40 = $1 >>> 18; - $41 = $40 | 240; - $42 = $41&255; - $43 = ((($0)) + 1|0); - HEAP8[$0>>0] = $42; - $44 = $1 >>> 12; - $45 = $44 & 63; - $46 = $45 | 128; - $47 = $46&255; - $48 = ((($0)) + 2|0); - HEAP8[$43>>0] = $47; - $49 = $1 >>> 6; - $50 = $49 & 63; - $51 = $50 | 128; - $52 = $51&255; - $53 = ((($0)) + 3|0); - HEAP8[$48>>0] = $52; - $54 = $1 & 63; - $55 = $54 | 128; - $56 = $55&255; - HEAP8[$53>>0] = $56; - $$0 = 4; - break; - } else { - $57 = (___errno_location()|0); - HEAP32[$57>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_430() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (3196|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $$115$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $2 = (18447 + ($$016)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $3&255; - $5 = ($4|0)==($0|0); - if ($5) { - label = 4; - break; - } - $6 = (($$016) + 1)|0; - $7 = ($6|0)==(87); - if ($7) { - $$115$ph = 87; - label = 5; - break; - } else { - $$016 = $6; - } - } - if ((label|0) == 4) { - $8 = ($$016|0)==(0); - if ($8) { - $$012$lcssa = 18535; - } else { - $$115$ph = $$016; - label = 5; - } - } - if ((label|0) == 5) { - $$01214 = 18535;$$115 = $$115$ph; - while(1) { - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)==(0|0); - $8 = $7 ? $0 : $$0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, $spec$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - if ($62) { - $$4 = 0; - break L1; - } - $$191 = $63 ? $$090 : $26; - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$090 = $$191;$$094 = $$195; - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $spec$select = $61 ? $57 : 0; - $$4 = $spec$select; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $spec$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $spec$select = $2 ? $0 : $3; - return ($spec$select|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$03846 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre48 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 255]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)<(0); - $21 = ($1|0)==(0); - $or$cond = $20 | $21; - L10: do { - if ($or$cond) { - $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14; - } else { - $$03846 = $1; - while(1) { - $23 = (($$03846) + -1)|0; - $24 = (($0) + ($23)|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(10); - if ($26) { - break; - } - $22 = ($23|0)==(0); - if ($22) { - $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14; - break L10; - } else { - $$03846 = $23; - } - } - $27 = ((($2)) + 36|0); - $28 = HEAP32[$27>>2]|0; - $29 = (FUNCTION_TABLE_iiii[$28 & 255]($2,$0,$$03846)|0); - $30 = ($29>>>0)<($$03846>>>0); - if ($30) { - $$1 = $29; - break L5; - } - $31 = (($0) + ($$03846)|0); - $$042 = (($1) - ($$03846))|0; - $$pre48 = HEAP32[$9>>2]|0; - $$139 = $$03846;$$141 = $31;$$143 = $$042;$32 = $$pre48; - } - } while(0); - (_memcpy(($32|0),($$141|0),($$143|0))|0); - $33 = HEAP32[$9>>2]|0; - $34 = (($33) + ($$143)|0); - HEAP32[$9>>2] = $34; - $35 = (($$139) + ($$143))|0; - $$1 = $35; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = $14; - $18 = ((($0)) + 48|0); - $19 = HEAP32[$18>>2]|0; - $20 = (($17) + ($19)|0); - $21 = ((($0)) + 16|0); - HEAP32[$21>>2] = $20; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$014 = 0, $$015$lcssa = 0, $$01518 = 0, $$1$lcssa = 0, $$pn = 0, $$pn29 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 5; - } else { - $$01518 = $0;$22 = $1; - while(1) { - $4 = HEAP8[$$01518>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$pn = $22; - break L1; - } - $6 = ((($$01518)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 5; - break; - } else { - $$01518 = $6;$22 = $7; - } - } - } - } while(0); - if ((label|0) == 5) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn29 = $$0; - while(1) { - $19 = ((($$pn29)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn29 = $19; - } - } - } - $21 = $$1$lcssa; - $$pn = $21; - } - $$014 = (($$pn) - ($1))|0; - return ($$014|0); -} -function ___strdup($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_strlen($0)|0); - $2 = (($1) + 1)|0; - $3 = (_malloc($2)|0); - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $5 = (_memcpy(($3|0),($0|0),($2|0))|0); - $$0 = $5; - } - return ($$0|0); -} -function ___overflow($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - $3 = $1&255; - HEAP8[$2>>0] = $3; - $4 = ((($0)) + 16|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0|0); - if ($6) { - $7 = (___towrite($0)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$4>>2]|0; - $12 = $$pre; - label = 4; - } else { - $$0 = -1; - } - } else { - $12 = $5; - label = 4; - } - do { - if ((label|0) == 4) { - $9 = ((($0)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10>>>0)<($12>>>0); - if ($11) { - $13 = $1 & 255; - $14 = ((($0)) + 75|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 << 24 >> 24; - $17 = ($13|0)==($16|0); - if (!($17)) { - $18 = ((($10)) + 1|0); - HEAP32[$9>>2] = $18; - HEAP8[$10>>0] = $3; - $$0 = $13; - break; - } - } - $19 = ((($0)) + 36|0); - $20 = HEAP32[$19>>2]|0; - $21 = (FUNCTION_TABLE_iiii[$20 & 255]($0,$2,1)|0); - $22 = ($21|0)==(1); - if ($22) { - $23 = HEAP8[$2>>0]|0; - $24 = $23&255; - $$0 = $24; - } else { - $$0 = -1; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((21856|0)); - return (21864|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((21856|0)); - return; -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[798]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[798]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 255]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 255]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _fputc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)<(0); - if ($4) { - label = 3; - } else { - $5 = (___lockfile($1)|0); - $6 = ($5|0)==(0); - if ($6) { - label = 3; - } else { - $20 = $0&255; - $21 = $0 & 255; - $22 = ((($1)) + 75|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23 << 24 >> 24; - $25 = ($21|0)==($24|0); - if ($25) { - label = 10; - } else { - $26 = ((($1)) + 20|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($1)) + 16|0); - $29 = HEAP32[$28>>2]|0; - $30 = ($27>>>0)<($29>>>0); - if ($30) { - $31 = ((($27)) + 1|0); - HEAP32[$26>>2] = $31; - HEAP8[$27>>0] = $20; - $33 = $21; - } else { - label = 10; - } - } - if ((label|0) == 10) { - $32 = (___overflow($1,$0)|0); - $33 = $32; - } - ___unlockfile($1); - $$0 = $33; - } - } - do { - if ((label|0) == 3) { - $7 = $0&255; - $8 = $0 & 255; - $9 = ((($1)) + 75|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10 << 24 >> 24; - $12 = ($8|0)==($11|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($1)) + 16|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($14>>>0)<($16>>>0); - if ($17) { - $18 = ((($14)) + 1|0); - HEAP32[$13>>2] = $18; - HEAP8[$14>>0] = $7; - $$0 = $8; - break; - } - } - $19 = (___overflow($1,$0)|0); - $$0 = $19; - } - } while(0); - return ($$0|0); -} -function __ZNSt3__217bad_function_callD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt3__217bad_function_callD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt3__217bad_function_callD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt3__217bad_function_call4whatEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (20339|0); -} -function __ZNSt3__214__shared_countD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt3__214__shared_countD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__219__shared_weak_countD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _llvm_trap(); - // unreachable; -} -function __ZNKSt3__219__shared_weak_count13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZNSt3__219__shared_weak_count14__release_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 8|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0); - if ($3) { - $4 = HEAP32[$0>>2]|0; - $5 = ((($4)) + 16|0); - $6 = HEAP32[$5>>2]|0; - FUNCTION_TABLE_vi[$6 & 511]($0); - } else { - $7 = HEAP32[$1>>2]|0; - $8 = (($7) + -1)|0; - HEAP32[$1>>2] = $8; - $9 = ($7|0)==(0); - if ($9) { - $10 = HEAP32[$0>>2]|0; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - FUNCTION_TABLE_vi[$12 & 511]($0); - } - } - return; -} -function __ZNSt3__25mutex4lockEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_pthread_mutex_lock(($0|0))|0); - $2 = ($1|0)==(0); - if ($2) { - return; - } else { - __ZNSt3__220__throw_system_errorEiPKc($1,20445); - // unreachable; - } -} -function __ZNSt3__25mutex6unlockEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - (_pthread_mutex_unlock(($0|0))|0); - return; -} -function __Znwj($0) { - $0 = $0|0; - var $$lcssa = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$store$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0); - $spec$store$select = $1 ? 1 : $0; - while(1) { - $2 = (_malloc($spec$store$select)|0); - $3 = ($2|0)==(0|0); - if (!($3)) { - $$lcssa = $2; - break; - } - $4 = (__ZSt15get_new_handlerv()|0); - $5 = ($4|0)==(0|0); - if ($5) { - $$lcssa = 0; - break; - } - FUNCTION_TABLE_v[$4 & 511](); - } - return ($$lcssa|0); -} -function __Znaj($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (__Znwj($0)|0); - return ($1|0); -} -function __ZdlPv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _free($0); - return; -} -function __ZdaPv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZdlPv($0); - return; -} -function __ZNSt3__218__libcpp_refstringC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($1)|0); - $3 = (($2) + 13)|0; - $4 = (__Znwj($3)|0); - HEAP32[$4>>2] = $2; - $5 = ((($4)) + 4|0); - HEAP32[$5>>2] = $2; - $6 = ((($4)) + 8|0); - HEAP32[$6>>2] = 0; - $7 = (__ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE($4)|0); - $8 = (($2) + 1)|0; - _memcpy(($7|0),($1|0),($8|0))|0; - HEAP32[$0>>2] = $7; - return; -} -function __ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 12|0); - return ($1|0); -} -function __ZNSt11logic_errorC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3620); - $2 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringC2EPKc($2,$1); - return; -} -function __ZNKSt3__218__libcpp_refstring15__uses_refcountEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 1; -} -function __ZNSt13runtime_errorC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3640); - $2 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringC2EPKc($2,$1); - return; -} -function __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNKSt3__221__basic_string_commonILb1EE20__throw_out_of_rangeEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 11|0); - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)<(0); - if ($3) { - $4 = HEAP32[$0>>2]|0; - __ZdlPv($4); - } - return; -} -function __ZNSt3__211char_traitsIcE7compareEPKcS3_j($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - if ($3) { - $$0 = 0; - } else { - $4 = (_memcmp($0,$1,$2)|0); - $$0 = $4; - } - return ($$0|0); -} -function __ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7compareEjjPKcj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$sroa$speculated = 0, $$sroa$speculated19 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $or$cond = 0, $spec$select = 0, $spec$select31 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 11|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)<(0); - if ($7) { - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - $12 = $9; - } else { - $10 = $6&255; - $12 = $10; - } - $11 = ($12>>>0)<($1>>>0); - $13 = ($4|0)==(-1); - $or$cond = $13 | $11; - if ($or$cond) { - __ZNKSt3__221__basic_string_commonILb1EE20__throw_out_of_rangeEv($0); - // unreachable; - } - $14 = (($12) - ($1))|0; - $15 = ($14>>>0)<($2>>>0); - $$sroa$speculated = $15 ? $14 : $2; - if ($7) { - $16 = HEAP32[$0>>2]|0; - $18 = $16; - } else { - $18 = $0; - } - $17 = (($18) + ($1)|0); - $19 = ($$sroa$speculated>>>0)>($4>>>0); - $$sroa$speculated19 = $19 ? $4 : $$sroa$speculated; - $20 = (__ZNSt3__211char_traitsIcE7compareEPKcS3_j($17,$3,$$sroa$speculated19)|0); - $21 = ($20|0)==(0); - if ($21) { - $22 = ($$sroa$speculated>>>0)<($4>>>0); - $spec$select = $19&1; - $spec$select31 = $22 ? -1 : $spec$select; - return ($spec$select31|0); - } else { - return ($20|0); - } - return (0)|0; -} -function __ZNSt3__220__throw_system_errorEiPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZL25default_terminate_handlerv() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0; - var $vararg_ptr2 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $0 = sp + 36|0; - $1 = (___cxa_get_globals_fast()|0); - $2 = ($1|0)==(0|0); - if (!($2)) { - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0|0); - if (!($4)) { - $5 = ((($3)) + 80|0); - $6 = ((($3)) + 48|0); - $7 = $6; - $8 = $7; - $9 = HEAP32[$8>>2]|0; - $10 = (($7) + 4)|0; - $11 = $10; - $12 = HEAP32[$11>>2]|0; - $13 = $9 & -256; - $14 = ($13|0)==(1126902528); - $15 = ($12|0)==(1129074247); - $16 = $14 & $15; - if (!($16)) { - HEAP32[$vararg_buffer7>>2] = 20599; - _abort_message(20549,$vararg_buffer7); - // unreachable; - } - $17 = ($9|0)==(1126902529); - $18 = ($12|0)==(1129074247); - $19 = $17 & $18; - if ($19) { - $20 = ((($3)) + 44|0); - $21 = HEAP32[$20>>2]|0; - $22 = $21; - } else { - $22 = $5; - } - HEAP32[$0>>2] = $22; - $23 = HEAP32[$3>>2]|0; - $24 = ((($23)) + 4|0); - $25 = HEAP32[$24>>2]|0; - $26 = HEAP32[322]|0; - $27 = ((($26)) + 16|0); - $28 = HEAP32[$27>>2]|0; - $29 = (FUNCTION_TABLE_iiii[$28 & 255](1288,$23,$0)|0); - if ($29) { - $30 = HEAP32[$0>>2]|0; - $31 = HEAP32[$30>>2]|0; - $32 = ((($31)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = (FUNCTION_TABLE_ii[$33 & 255]($30)|0); - HEAP32[$vararg_buffer>>2] = 20599; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $25; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $34; - _abort_message(20463,$vararg_buffer); - // unreachable; - } else { - HEAP32[$vararg_buffer3>>2] = 20599; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $25; - _abort_message(20508,$vararg_buffer3); - // unreachable; - } - } - } - _abort_message(20587,$vararg_buffer10); - // unreachable; -} -function ___cxa_get_globals_fast() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = (_pthread_once((21868|0),(256|0))|0); - $1 = ($0|0)==(0); - if ($1) { - $2 = HEAP32[5468]|0; - $3 = (_pthread_getspecific(($2|0))|0); - STACKTOP = sp;return ($3|0); - } else { - _abort_message(20738,$vararg_buffer); - // unreachable; - } - return (0)|0; -} -function _abort_message($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $varargs; - $2 = HEAP32[735]|0; - (_vfprintf($2,$0,$1)|0); - (_fputc(10,$2)|0); - _abort(); - // unreachable; -} -function __ZN10__cxxabiv116__shim_type_infoD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10__cxxabiv117__class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - $4 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - if ($4) { - $$2 = 1; - } else { - $5 = ($1|0)==(0|0); - if ($5) { - $$2 = 0; - } else { - $6 = (___dynamic_cast($1,1312,1296,0)|0); - $7 = ($6|0)==(0|0); - if ($7) { - $$2 = 0; - } else { - $8 = ((($3)) + 4|0); - dest=$8; stop=dest+52|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$3>>2] = $6; - $9 = ((($3)) + 8|0); - HEAP32[$9>>2] = $0; - $10 = ((($3)) + 12|0); - HEAP32[$10>>2] = -1; - $11 = ((($3)) + 48|0); - HEAP32[$11>>2] = 1; - $12 = HEAP32[$6>>2]|0; - $13 = ((($12)) + 28|0); - $14 = HEAP32[$13>>2]|0; - $15 = HEAP32[$2>>2]|0; - FUNCTION_TABLE_viiii[$14 & 255]($6,$3,$15,1); - $16 = ((($3)) + 24|0); - $17 = HEAP32[$16>>2]|0; - $18 = ($17|0)==(1); - if ($18) { - $19 = ((($3)) + 16|0); - $20 = HEAP32[$19>>2]|0; - HEAP32[$2>>2] = $20; - $$0 = 1; - } else { - $$0 = 0; - } - $$2 = $$0; - } - } - } - STACKTOP = sp;return ($$2|0); -} -function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } - return; -} -function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if ($9) { - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - HEAP32[$13>>2] = $2; - $19 = ((($1)) + 40|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($20) + 1)|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 36|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($23|0)==(1); - if ($24) { - $25 = ((($1)) + 24|0); - $26 = HEAP32[$25>>2]|0; - $27 = ($26|0)==(2); - if ($27) { - $28 = ((($1)) + 54|0); - HEAP8[$28>>0] = 1; - } - } - $29 = ((($1)) + 44|0); - HEAP32[$29>>2] = 4; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } - return; -} -function __ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==($1|0); - return ($3|0); -} -function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 16|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0|0); - do { - if ($6) { - HEAP32[$4>>2] = $2; - $7 = ((($1)) + 24|0); - HEAP32[$7>>2] = $3; - $8 = ((($1)) + 36|0); - HEAP32[$8>>2] = 1; - } else { - $9 = ($5|0)==($2|0); - if (!($9)) { - $13 = ((($1)) + 36|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14) + 1)|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 24|0); - HEAP32[$16>>2] = 2; - $17 = ((($1)) + 54|0); - HEAP8[$17>>0] = 1; - break; - } - $10 = ((($1)) + 24|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(2); - if ($12) { - HEAP32[$10>>2] = $3; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($2|0); - if ($6) { - $7 = ((($1)) + 28|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)==(1); - if (!($9)) { - HEAP32[$7>>2] = $3; - } - } - return; -} -function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond22 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 53|0); - HEAP8[$5>>0] = 1; - $6 = ((($1)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==($3|0); - do { - if ($8) { - $9 = ((($1)) + 52|0); - HEAP8[$9>>0] = 1; - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0|0); - if ($12) { - HEAP32[$10>>2] = $2; - $13 = ((($1)) + 24|0); - HEAP32[$13>>2] = $4; - $14 = ((($1)) + 36|0); - HEAP32[$14>>2] = 1; - $15 = ((($1)) + 48|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($16|0)==(1); - $18 = ($4|0)==(1); - $or$cond = $18 & $17; - if (!($or$cond)) { - break; - } - $19 = ((($1)) + 54|0); - HEAP8[$19>>0] = 1; - break; - } - $20 = ($11|0)==($2|0); - if (!($20)) { - $30 = ((($1)) + 36|0); - $31 = HEAP32[$30>>2]|0; - $32 = (($31) + 1)|0; - HEAP32[$30>>2] = $32; - $33 = ((($1)) + 54|0); - HEAP8[$33>>0] = 1; - break; - } - $21 = ((($1)) + 24|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(2); - if ($23) { - HEAP32[$21>>2] = $4; - $28 = $4; - } else { - $28 = $22; - } - $24 = ((($1)) + 48|0); - $25 = HEAP32[$24>>2]|0; - $26 = ($25|0)==(1); - $27 = ($28|0)==(1); - $or$cond22 = $26 & $27; - if ($or$cond22) { - $29 = ((($1)) + 54|0); - HEAP8[$29>>0] = 1; - } - } - } while(0); - return; -} -function ___dynamic_cast($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond28 = 0, $or$cond30 = 0, $or$cond32 = 0, $spec$select = 0, $spec$select33 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $4 = sp; - $5 = HEAP32[$0>>2]|0; - $6 = ((($5)) + -8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (($0) + ($7)|0); - $9 = ((($5)) + -4|0); - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $2; - $11 = ((($4)) + 4|0); - HEAP32[$11>>2] = $0; - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = $1; - $13 = ((($4)) + 12|0); - HEAP32[$13>>2] = $3; - $14 = ((($4)) + 16|0); - $15 = ((($4)) + 20|0); - $16 = ((($4)) + 24|0); - $17 = ((($4)) + 28|0); - $18 = ((($4)) + 32|0); - $19 = ((($4)) + 40|0); - dest=$14; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));HEAP16[$14+36>>1]=0|0;HEAP8[$14+38>>0]=0|0; - $20 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($10,$2,0)|0); - L1: do { - if ($20) { - $21 = ((($4)) + 48|0); - HEAP32[$21>>2] = 1; - $22 = HEAP32[$10>>2]|0; - $23 = ((($22)) + 20|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_viiiiii[$24 & 255]($10,$4,$8,$8,1,0); - $25 = HEAP32[$16>>2]|0; - $26 = ($25|0)==(1); - $spec$select = $26 ? $8 : 0; - $$0 = $spec$select; - } else { - $27 = ((($4)) + 36|0); - $28 = HEAP32[$10>>2]|0; - $29 = ((($28)) + 24|0); - $30 = HEAP32[$29>>2]|0; - FUNCTION_TABLE_viiiii[$30 & 255]($10,$4,$8,1,0); - $31 = HEAP32[$27>>2]|0; - switch ($31|0) { - case 0: { - $32 = HEAP32[$19>>2]|0; - $33 = ($32|0)==(1); - $34 = HEAP32[$17>>2]|0; - $35 = ($34|0)==(1); - $or$cond = $33 & $35; - $36 = HEAP32[$18>>2]|0; - $37 = ($36|0)==(1); - $or$cond28 = $or$cond & $37; - $38 = HEAP32[$15>>2]|0; - $spec$select33 = $or$cond28 ? $38 : 0; - $$0 = $spec$select33; - break L1; - break; - } - case 1: { - break; - } - default: { - $$0 = 0; - break L1; - } - } - $39 = HEAP32[$16>>2]|0; - $40 = ($39|0)==(1); - if (!($40)) { - $41 = HEAP32[$19>>2]|0; - $42 = ($41|0)==(0); - $43 = HEAP32[$17>>2]|0; - $44 = ($43|0)==(1); - $or$cond30 = $42 & $44; - $45 = HEAP32[$18>>2]|0; - $46 = ($45|0)==(1); - $or$cond32 = $or$cond30 & $46; - if (!($or$cond32)) { - $$0 = 0; - break; - } - } - $47 = HEAP32[$14>>2]|0; - $$0 = $47; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function __ZN10__cxxabiv120__si_class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } else { - $9 = ((($0)) + 8|0); - $10 = HEAP32[$9>>2]|0; - $11 = HEAP32[$10>>2]|0; - $12 = ((($11)) + 20|0); - $13 = HEAP32[$12>>2]|0; - FUNCTION_TABLE_viiiiii[$13 & 255]($10,$1,$2,$3,$4,$5); - } - return; -} -function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$037$off038 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if (!($9)) { - $44 = ((($0)) + 8|0); - $45 = HEAP32[$44>>2]|0; - $46 = HEAP32[$45>>2]|0; - $47 = ((($46)) + 24|0); - $48 = HEAP32[$47>>2]|0; - FUNCTION_TABLE_viiiii[$48 & 255]($45,$1,$2,$3,$4); - break; - } - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - $19 = ((($1)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(4); - if ($21) { - break; - } - $22 = ((($1)) + 52|0); - HEAP8[$22>>0] = 0; - $23 = ((($1)) + 53|0); - HEAP8[$23>>0] = 0; - $24 = ((($0)) + 8|0); - $25 = HEAP32[$24>>2]|0; - $26 = HEAP32[$25>>2]|0; - $27 = ((($26)) + 20|0); - $28 = HEAP32[$27>>2]|0; - FUNCTION_TABLE_viiiiii[$28 & 255]($25,$1,$2,$2,1,$4); - $29 = HEAP8[$23>>0]|0; - $30 = ($29<<24>>24)==(0); - if ($30) { - $$037$off038 = 0; - label = 11; - } else { - $31 = HEAP8[$22>>0]|0; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$037$off038 = 1; - label = 11; - } else { - label = 15; - } - } - do { - if ((label|0) == 11) { - HEAP32[$13>>2] = $2; - $33 = ((($1)) + 40|0); - $34 = HEAP32[$33>>2]|0; - $35 = (($34) + 1)|0; - HEAP32[$33>>2] = $35; - $36 = ((($1)) + 36|0); - $37 = HEAP32[$36>>2]|0; - $38 = ($37|0)==(1); - if ($38) { - $39 = ((($1)) + 24|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40|0)==(2); - if ($41) { - $42 = ((($1)) + 54|0); - HEAP8[$42>>0] = 1; - if ($$037$off038) { - label = 15; - break; - } else { - $43 = 4; - break; - } - } - } - if ($$037$off038) { - label = 15; - } else { - $43 = 4; - } - } - } while(0); - if ((label|0) == 15) { - $43 = 3; - } - HEAP32[$19>>2] = $43; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } else { - $7 = ((($0)) + 8|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $10 = ((($9)) + 28|0); - $11 = HEAP32[$10>>2]|0; - FUNCTION_TABLE_viiii[$11 & 255]($8,$1,$2,$3); - } - return; -} -function __ZNSt9type_infoD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10__cxxabiv112_GLOBAL__N_110construct_Ev() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = (_pthread_key_create((21872|0),(257|0))|0); - $1 = ($0|0)==(0); - if ($1) { - STACKTOP = sp;return; - } else { - _abort_message(20787,$vararg_buffer); - // unreachable; - } -} -function __ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _free($0); - $1 = HEAP32[5468]|0; - $2 = (_pthread_setspecific(($1|0),(0|0))|0); - $3 = ($2|0)==(0); - if ($3) { - STACKTOP = sp;return; - } else { - _abort_message(20837,$vararg_buffer); - // unreachable; - } -} -function __ZSt9terminatev() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___cxa_get_globals_fast()|0); - $1 = ($0|0)==(0|0); - if (!($1)) { - $2 = HEAP32[$0>>2]|0; - $3 = ($2|0)==(0|0); - if (!($3)) { - $4 = ((($2)) + 48|0); - $5 = $4; - $6 = $5; - $7 = HEAP32[$6>>2]|0; - $8 = (($5) + 4)|0; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $11 = $7 & -256; - $12 = ($11|0)==(1126902528); - $13 = ($10|0)==(1129074247); - $14 = $12 & $13; - if ($14) { - $15 = ((($2)) + 12|0); - $16 = HEAP32[$15>>2]|0; - __ZSt11__terminatePFvvE($16); - // unreachable; - } - } - } - $17 = (__ZSt13get_terminatev()|0); - __ZSt11__terminatePFvvE($17); - // unreachable; -} -function __ZSt11__terminatePFvvE($0) { - $0 = $0|0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - FUNCTION_TABLE_v[$0 & 511](); - _abort_message(20890,$vararg_buffer); - // unreachable; -} -function __ZSt13get_terminatev() { - var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[877]|0; - $1 = (($0) + 0)|0; - HEAP32[877] = $1; - $2 = $0; - return ($2|0); -} -function __ZNSt9exceptionD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt9exceptionD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZdlPv($0); - return; -} -function __ZNKSt9exception4whatEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (20930|0); -} -function __ZNSt11logic_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3620); - $1 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringD2Ev($1); - return; -} -function __ZNSt11logic_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt11logic_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt11logic_error4whatEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = (__ZNKSt3__218__libcpp_refstring5c_strEv($1)|0); - return ($2|0); -} -function __ZNKSt3__218__libcpp_refstring5c_strEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - return ($1|0); -} -function __ZNSt3__218__libcpp_refstringD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (__ZNKSt3__218__libcpp_refstring15__uses_refcountEv($0)|0); - if ($1) { - $2 = HEAP32[$0>>2]|0; - $3 = (__ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_238($2)|0); - $4 = ((($3)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($5) + -1)|0; - HEAP32[$4>>2] = $6; - $7 = (($5) + -1)|0; - $8 = ($7|0)<(0); - if ($8) { - __ZdlPv($3); - } - } - return; -} -function __ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_238($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + -12|0); - return ($1|0); -} -function __ZNSt13runtime_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3640); - $1 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringD2Ev($1); - return; -} -function __ZNSt13runtime_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt13runtime_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt13runtime_error4whatEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = (__ZNKSt3__218__libcpp_refstring5c_strEv($1)|0); - return ($2|0); -} -function __ZNSt12length_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt11logic_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZN10__cxxabiv123__fundamental_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - return ($3|0); -} -function __ZN10__cxxabiv119__pointer_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - $4 = HEAP32[$2>>2]|0; - $5 = HEAP32[$4>>2]|0; - HEAP32[$2>>2] = $5; - $6 = (__ZNK10__cxxabiv117__pbase_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,0)|0); - if ($6) { - $$4 = 1; - } else { - $7 = ($1|0)==(0|0); - if ($7) { - $$4 = 0; - } else { - $8 = (___dynamic_cast($1,1312,1416,0)|0); - $9 = ($8|0)==(0|0); - if ($9) { - $$4 = 0; - } else { - $10 = ((($8)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = $13 ^ -1; - $15 = $11 & $14; - $16 = ($15|0)==(0); - if ($16) { - $17 = ((($0)) + 12|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($8)) + 12|0); - $20 = HEAP32[$19>>2]|0; - $21 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($18,$20,0)|0); - if ($21) { - $$4 = 1; - } else { - $22 = HEAP32[$17>>2]|0; - $23 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($22,1448,0)|0); - if ($23) { - $$4 = 1; - } else { - $24 = HEAP32[$17>>2]|0; - $25 = ($24|0)==(0|0); - if ($25) { - $$4 = 0; - } else { - $26 = (___dynamic_cast($24,1312,1296,0)|0); - $27 = ($26|0)==(0|0); - if ($27) { - $$4 = 0; - } else { - $28 = HEAP32[$19>>2]|0; - $29 = ($28|0)==(0|0); - if ($29) { - $$4 = 0; - } else { - $30 = (___dynamic_cast($28,1312,1296,0)|0); - $31 = ($30|0)==(0|0); - if ($31) { - $$4 = 0; - } else { - $32 = ((($3)) + 4|0); - dest=$32; stop=dest+52|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$3>>2] = $30; - $33 = ((($3)) + 8|0); - HEAP32[$33>>2] = $26; - $34 = ((($3)) + 12|0); - HEAP32[$34>>2] = -1; - $35 = ((($3)) + 48|0); - HEAP32[$35>>2] = 1; - $36 = HEAP32[$30>>2]|0; - $37 = ((($36)) + 28|0); - $38 = HEAP32[$37>>2]|0; - $39 = HEAP32[$2>>2]|0; - FUNCTION_TABLE_viiii[$38 & 255]($30,$3,$39,1); - $40 = ((($3)) + 24|0); - $41 = HEAP32[$40>>2]|0; - $42 = ($41|0)==(1); - if ($42) { - $43 = ((($3)) + 16|0); - $44 = HEAP32[$43>>2]|0; - HEAP32[$2>>2] = $44; - $$0 = 1; - } else { - $$0 = 0; - } - $$4 = $$0; - } - } - } - } - } - } - } else { - $$4 = 0; - } - } - } - } - STACKTOP = sp;return ($$4|0); -} -function __ZNK10__cxxabiv117__pbase_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - if ($3) { - $$0 = 1; - } else { - $4 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($1,1456,0)|0); - $$0 = $4; - } - return ($$0|0); -} -function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } else { - $9 = ((($1)) + 52|0); - $10 = HEAP8[$9>>0]|0; - $11 = ((($1)) + 53|0); - $12 = HEAP8[$11>>0]|0; - $13 = ((($0)) + 16|0); - $14 = ((($0)) + 12|0); - $15 = HEAP32[$14>>2]|0; - $16 = (((($0)) + 16|0) + ($15<<3)|0); - HEAP8[$9>>0] = 0; - HEAP8[$11>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($13,$1,$2,$3,$4,$5); - $17 = ($15|0)>(1); - L4: do { - if ($17) { - $18 = ((($0)) + 24|0); - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 8|0); - $21 = ((($1)) + 54|0); - $$0 = $18; - while(1) { - $22 = HEAP8[$21>>0]|0; - $23 = ($22<<24>>24)==(0); - if (!($23)) { - break L4; - } - $24 = HEAP8[$9>>0]|0; - $25 = ($24<<24>>24)==(0); - if ($25) { - $31 = HEAP8[$11>>0]|0; - $32 = ($31<<24>>24)==(0); - if (!($32)) { - $33 = HEAP32[$20>>2]|0; - $34 = $33 & 1; - $35 = ($34|0)==(0); - if ($35) { - break L4; - } - } - } else { - $26 = HEAP32[$19>>2]|0; - $27 = ($26|0)==(1); - if ($27) { - break L4; - } - $28 = HEAP32[$20>>2]|0; - $29 = $28 & 2; - $30 = ($29|0)==(0); - if ($30) { - break L4; - } - } - HEAP8[$9>>0] = 0; - HEAP8[$11>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($$0,$1,$2,$3,$4,$5); - $36 = ((($$0)) + 8|0); - $37 = ($36>>>0)<($16>>>0); - if ($37) { - $$0 = $36; - } else { - break; - } - } - } - } while(0); - HEAP8[$9>>0] = $10; - HEAP8[$11>>0] = $12; - } - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$081$off0 = 0, $$084 = 0, $$085$off0 = 0, $$1 = 0, $$182$off0 = 0, $$186$off0 = 0, $$2 = 0, $$283$off0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - L1: do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if (!($9)) { - $56 = ((($0)) + 16|0); - $57 = ((($0)) + 12|0); - $58 = HEAP32[$57>>2]|0; - $59 = (((($0)) + 16|0) + ($58<<3)|0); - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($56,$1,$2,$3,$4); - $60 = ((($0)) + 24|0); - $61 = ($58|0)>(1); - if (!($61)) { - break; - } - $62 = ((($0)) + 8|0); - $63 = HEAP32[$62>>2]|0; - $64 = $63 & 2; - $65 = ($64|0)==(0); - if ($65) { - $66 = ((($1)) + 36|0); - $67 = HEAP32[$66>>2]|0; - $68 = ($67|0)==(1); - if (!($68)) { - $74 = $63 & 1; - $75 = ($74|0)==(0); - if ($75) { - $86 = ((($1)) + 54|0); - $$2 = $60; - while(1) { - $87 = HEAP8[$86>>0]|0; - $88 = ($87<<24>>24)==(0); - if (!($88)) { - break L1; - } - $89 = HEAP32[$66>>2]|0; - $90 = ($89|0)==(1); - if ($90) { - break L1; - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$2,$1,$2,$3,$4); - $91 = ((($$2)) + 8|0); - $92 = ($91>>>0)<($59>>>0); - if ($92) { - $$2 = $91; - } else { - break L1; - } - } - } - $76 = ((($1)) + 24|0); - $77 = ((($1)) + 54|0); - $$1 = $60; - while(1) { - $78 = HEAP8[$77>>0]|0; - $79 = ($78<<24>>24)==(0); - if (!($79)) { - break L1; - } - $80 = HEAP32[$66>>2]|0; - $81 = ($80|0)==(1); - if ($81) { - $82 = HEAP32[$76>>2]|0; - $83 = ($82|0)==(1); - if ($83) { - break L1; - } - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$1,$1,$2,$3,$4); - $84 = ((($$1)) + 8|0); - $85 = ($84>>>0)<($59>>>0); - if ($85) { - $$1 = $84; - } else { - break L1; - } - } - } - } - $69 = ((($1)) + 54|0); - $$0 = $60; - while(1) { - $70 = HEAP8[$69>>0]|0; - $71 = ($70<<24>>24)==(0); - if (!($71)) { - break L1; - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$0,$1,$2,$3,$4); - $72 = ((($$0)) + 8|0); - $73 = ($72>>>0)<($59>>>0); - if ($73) { - $$0 = $72; - } else { - break L1; - } - } - } - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - $19 = ((($1)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(4); - if ($21) { - break; - } - $22 = ((($0)) + 16|0); - $23 = ((($0)) + 12|0); - $24 = HEAP32[$23>>2]|0; - $25 = (((($0)) + 16|0) + ($24<<3)|0); - $26 = ((($1)) + 52|0); - $27 = ((($1)) + 53|0); - $28 = ((($1)) + 54|0); - $29 = ((($0)) + 8|0); - $30 = ((($1)) + 24|0); - $$081$off0 = 0;$$084 = $22;$$085$off0 = 0; - L32: while(1) { - $31 = ($$084>>>0)<($25>>>0); - if (!($31)) { - $$283$off0 = $$081$off0; - label = 18; - break; - } - HEAP8[$26>>0] = 0; - HEAP8[$27>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($$084,$1,$2,$2,1,$4); - $32 = HEAP8[$28>>0]|0; - $33 = ($32<<24>>24)==(0); - if (!($33)) { - $$283$off0 = $$081$off0; - label = 18; - break; - } - $34 = HEAP8[$27>>0]|0; - $35 = ($34<<24>>24)==(0); - do { - if ($35) { - $$182$off0 = $$081$off0;$$186$off0 = $$085$off0; - } else { - $36 = HEAP8[$26>>0]|0; - $37 = ($36<<24>>24)==(0); - if ($37) { - $43 = HEAP32[$29>>2]|0; - $44 = $43 & 1; - $45 = ($44|0)==(0); - if ($45) { - $$283$off0 = 1; - label = 18; - break L32; - } else { - $$182$off0 = 1;$$186$off0 = $$085$off0; - break; - } - } - $38 = HEAP32[$30>>2]|0; - $39 = ($38|0)==(1); - if ($39) { - label = 23; - break L32; - } - $40 = HEAP32[$29>>2]|0; - $41 = $40 & 2; - $42 = ($41|0)==(0); - if ($42) { - label = 23; - break L32; - } else { - $$182$off0 = 1;$$186$off0 = 1; - } - } - } while(0); - $46 = ((($$084)) + 8|0); - $$081$off0 = $$182$off0;$$084 = $46;$$085$off0 = $$186$off0; - } - do { - if ((label|0) == 18) { - if (!($$085$off0)) { - HEAP32[$13>>2] = $2; - $47 = ((($1)) + 40|0); - $48 = HEAP32[$47>>2]|0; - $49 = (($48) + 1)|0; - HEAP32[$47>>2] = $49; - $50 = ((($1)) + 36|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51|0)==(1); - if ($52) { - $53 = HEAP32[$30>>2]|0; - $54 = ($53|0)==(2); - if ($54) { - HEAP8[$28>>0] = 1; - if ($$283$off0) { - label = 23; - break; - } else { - $55 = 4; - break; - } - } - } - } - if ($$283$off0) { - label = 23; - } else { - $55 = 4; - } - } - } while(0); - if ((label|0) == 23) { - $55 = 3; - } - HEAP32[$19>>2] = $55; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - L1: do { - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } else { - $7 = ((($0)) + 16|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (((($0)) + 16|0) + ($9<<3)|0); - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($7,$1,$2,$3); - $11 = ($9|0)>(1); - if ($11) { - $12 = ((($0)) + 24|0); - $13 = ((($1)) + 54|0); - $$0 = $12; - while(1) { - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($$0,$1,$2,$3); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if (!($15)) { - break L1; - } - $16 = ((($$0)) + 8|0); - $17 = ($16>>>0)<($10>>>0); - if ($17) { - $$0 = $16; - } else { - break; - } - } - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($0)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = $5 >> 8; - $7 = $5 & 1; - $8 = ($7|0)==(0); - if ($8) { - $$0 = $6; - } else { - $9 = HEAP32[$2>>2]|0; - $10 = (($9) + ($6)|0); - $11 = HEAP32[$10>>2]|0; - $$0 = $11; - } - $12 = HEAP32[$0>>2]|0; - $13 = HEAP32[$12>>2]|0; - $14 = ((($13)) + 28|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($2) + ($$0)|0); - $17 = $5 & 2; - $18 = ($17|0)==(0); - $19 = $18 ? 2 : $3; - FUNCTION_TABLE_viiii[$15 & 255]($12,$1,$16,$19); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($0)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >> 8; - $9 = $7 & 1; - $10 = ($9|0)==(0); - if ($10) { - $$0 = $8; - } else { - $11 = HEAP32[$3>>2]|0; - $12 = (($11) + ($8)|0); - $13 = HEAP32[$12>>2]|0; - $$0 = $13; - } - $14 = HEAP32[$0>>2]|0; - $15 = HEAP32[$14>>2]|0; - $16 = ((($15)) + 20|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($3) + ($$0)|0); - $19 = $7 & 2; - $20 = ($19|0)==(0); - $21 = $20 ? 2 : $4; - FUNCTION_TABLE_viiiiii[$17 & 255]($14,$1,$2,$18,$21,$5); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 >> 8; - $8 = $6 & 1; - $9 = ($8|0)==(0); - if ($9) { - $$0 = $7; - } else { - $10 = HEAP32[$2>>2]|0; - $11 = (($10) + ($7)|0); - $12 = HEAP32[$11>>2]|0; - $$0 = $12; - } - $13 = HEAP32[$0>>2]|0; - $14 = HEAP32[$13>>2]|0; - $15 = ((($14)) + 24|0); - $16 = HEAP32[$15>>2]|0; - $17 = (($2) + ($$0)|0); - $18 = $6 & 2; - $19 = ($18|0)==(0); - $20 = $19 ? 2 : $3; - FUNCTION_TABLE_viiiii[$16 & 255]($13,$1,$17,$20,$4); - return; -} -function ___cxa_guard_acquire($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ($1<<24>>24)==(1); - if ($2) { - $$0 = 0; - } else { - HEAP8[$0>>0] = 1; - $$0 = 1; - } - return ($$0|0); -} -function ___cxa_guard_release($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZSt15get_new_handlerv() { - var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5469]|0; - $1 = (($0) + 0)|0; - HEAP32[5469] = $1; - $2 = $0; - return ($2|0); -} -function ___cxa_can_catch($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = sp; - $4 = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $4; - $5 = HEAP32[$0>>2]|0; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = (FUNCTION_TABLE_iiii[$7 & 255]($0,$1,$3)|0); - $9 = $8&1; - if ($8) { - $10 = HEAP32[$3>>2]|0; - HEAP32[$2>>2] = $10; - } - STACKTOP = sp;return ($9|0); -} -function ___cxa_is_pointer_type($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $phitmp = 0, $phitmp1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - $3 = 0; - } else { - $2 = (___dynamic_cast($0,1312,1416,0)|0); - $phitmp = ($2|0)!=(0|0); - $phitmp1 = $phitmp&1; - $3 = $phitmp1; - } - return ($3|0); -} -function runPostSets() { -} -function ___muldsi3($a, $b) { - $a = $a | 0; - $b = $b | 0; - var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; - $1 = $a & 65535; - $2 = $b & 65535; - $3 = Math_imul($2, $1) | 0; - $6 = $a >>> 16; - $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; - $11 = $b >>> 16; - $12 = Math_imul($11, $1) | 0; - return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; -} -function ___muldi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; - $x_sroa_0_0_extract_trunc = $a$0; - $y_sroa_0_0_extract_trunc = $b$0; - $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; - $1$1 = tempRet0; - $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; - return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { // Note: Currently doesn't take isZeroUndef() - x = x | 0; - return (x ? (31 - (Math_clz32((x ^ (x - 1))) | 0) | 0) : 32) | 0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function _bitshift64Ashr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = (high|0) < 0 ? -1 : 0; - return (high >> (bits - 32))|0; -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function _memmove(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { - // Unlikely case: Copy backwards in a safe manner - ret = dest; - src = (src + num)|0; - dest = (dest + num)|0; - while ((num|0) > 0) { - dest = (dest - 1)|0; - src = (src - 1)|0; - num = (num - 1)|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - } - dest = ret; - } else { - _memcpy(dest, src, num) | 0; - } - return dest | 0; -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _pthread_mutex_lock(x) { - x = x | 0; - return 0; -} -function _pthread_mutex_unlock(x) { - x = x | 0; - return 0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&255]()|0; -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&255](a1|0)|0; -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&255](a1|0,a2|0)|0; -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&255](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&511](); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&511](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&255](a1|0,a2|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&255](a1|0,a2|0,a3|0); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&255](a1|0,a2|0,a3|0,a4|0); -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&255](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&255](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - -function b0() { - ; nullFunc_i(0);return 0; -} -function b1(p0) { - p0 = p0|0; nullFunc_ii(1);return 0; -} -function b2(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(2);return 0; -} -function b3(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(3);return 0; -} -function b4() { - ; nullFunc_v(4); -} -function ___cxa_pure_virtual__wrapper() { - ; ___cxa_pure_virtual(); -} -function b5(p0) { - p0 = p0|0; nullFunc_vi(5); -} -function b6(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(6); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(7); -} -function b8(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(8); -} -function b9(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(9); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_i = [b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,__ZN10emscripten8internal12operator_newI6LASZipJEEEPT_DpOT0_,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,__ZN10emscripten8internal12operator_newI13DynamicLASZipJEEEPT_DpOT0_,b0,b0,b0,b0,b0,b0,b0,b0,b0]; -var FUNCTION_TABLE_ii = [b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZNKSt13runtime_error4whatEv,b1,b1,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEv,b1,b1,b1,b1,b1,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE11target_typeEv,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,___stdio_close,b1,b1,b1,b1,b1,__ZNKSt3__217bad_function_call4whatEv,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZNKSt9exception4whatEv,b1,b1,__ZNKSt11logic_error4whatEv,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZN10emscripten8internal13getActualTypeI6LASZipEEPKvPT_,b1,b1,__ZN10emscripten8internal7InvokerIP6LASZipJEE6invokeEPFS3_vE,b1 -,b1,b1,b1,__ZN6LASZip8getCountEv,b1,__ZN10emscripten8internal13getActualTypeI13DynamicLASZipEEPKvPT_,b1,b1,__ZN10emscripten8internal7InvokerIP13DynamicLASZipJEE6invokeEPFS3_vE,b1,b1,b1,b1,b1,b1,b1,b1]; -var FUNCTION_TABLE_iii = [b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE6targetERKSt9type_info,b2,b2,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE10decompressEPc,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2 -,b2,b2,__ZN6laszip7formats10base_field11compressRawEPKc,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,__ZN6laszip7formats10base_field13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2 -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info,b2 -,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEE13decompressRawEPc,b2 -,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2 -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__219__shared_weak_count13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,__ZN10emscripten8internal13MethodInvokerIM6LASZipFjvEjPS2_JEE6invokeERKS4_S5_,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2]; -var FUNCTION_TABLE_iiii = [b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,___stdio_write,___stdio_seek,___stdout_write,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,__ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3]; -var FUNCTION_TABLE_v = [b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,___cxa_pure_virtual__wrapper,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,__ZL25default_terminate_handlerv,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,__ZN10__cxxabiv112_GLOBAL__N_110construct_Ev,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4]; -var FUNCTION_TABLE_vi = [b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE21__on_zero_shared_weakEv,__ZN6laszip13invalid_magicD2Ev,__ZN6laszip13invalid_magicD0Ev,b5,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED0Ev,b5,b5,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7destroyEv,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE18destroy_deallocateEv,b5,b5,b5,__ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED2Ev,__ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED0Ev,b5,__ZN6laszip21old_style_compressionD2Ev,__ZN6laszip21old_style_compressionD0Ev,__ZN6laszip14not_compressedD2Ev -,__ZN6laszip14not_compressedD0Ev,__ZN6laszip25laszip_format_unsupportedD2Ev,__ZN6laszip25laszip_format_unsupportedD0Ev,__ZN6laszip13no_laszip_vlrD2Ev,__ZN6laszip13no_laszip_vlrD0Ev,__ZN6laszip22chunk_table_read_errorD2Ev,__ZN6laszip22chunk_table_read_errorD0Ev,__ZN6laszip13not_supportedD2Ev,__ZN6laszip13not_supportedD0Ev,__ZN6laszip26unknown_chunk_table_formatD2Ev,__ZN6laszip26unknown_chunk_table_formatD0Ev,__ZN6laszip11end_of_fileD2Ev,__ZN6laszip11end_of_fileD0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE21__on_zero_shared_weakEv,__ZN6laszip19unknown_schema_typeD2Ev,__ZN6laszip19unknown_schema_typeD0Ev,b5,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED0Ev,__ZN6laszip7formats20dynamic_decompressorD2Ev,__ZN6laszip7formats20dynamic_decompressorD0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED0Ev,b5,b5,__ZN6laszip7formats10base_fieldD2Ev,__ZN6laszip7formats10base_fieldD0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED0Ev -,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv -,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev -,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED0Ev -,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,b5,b5,b5,b5,__ZNSt3__217bad_function_callD2Ev,__ZNSt3__217bad_function_callD0Ev,b5,__ZNSt3__214__shared_countD2Ev,__ZNSt3__214__shared_countD0Ev,__ZNSt3__219__shared_weak_countD0Ev,b5,b5,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev -,b5,b5,b5,b5,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b5,b5,b5,__ZNSt9exceptionD2Ev,__ZNSt9exceptionD0Ev,b5,__ZNSt11logic_errorD2Ev,__ZNSt11logic_errorD0Ev,b5,__ZNSt13runtime_errorD2Ev,__ZNSt13runtime_errorD0Ev,__ZNSt12length_errorD0Ev,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,b5,__ZN10__cxxabiv119__pointer_type_infoD0Ev,b5,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,b5,b5,b5,b5,__ZN10emscripten8internal14raw_destructorI6LASZipEEvPT_,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,__ZN10emscripten8internal14raw_destructorI13DynamicLASZipEEvPT_,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,__ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5]; -var FUNCTION_TABLE_vii = [b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEPNS0_6__baseISE_EE,b6,b6,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EEclESA_,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,__ZN6LASZip8getPointEi,b6,b6,b6,b6,b6,b6,b6,b6,b6,__ZN13DynamicLASZip16addFieldFloatingEj,b6,__ZN13DynamicLASZip14addFieldSignedEj,__ZN13DynamicLASZip16addFieldUnsignedEj,__ZN13DynamicLASZip8getPointEi,b6]; -var FUNCTION_TABLE_viii = [b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,__ZN6LASZip4openEjj -,b7,b7,__ZN10emscripten8internal13MethodInvokerIM6LASZipFviEvPS2_JiEE6invokeERKS4_S5_i,b7,b7,b7,b7,b7,b7,__ZN13DynamicLASZip4openEjj,b7,b7,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjEvPS2_JjEE6invokeERKS4_S5_j,b7,b7,b7,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFviEvPS2_JiEE6invokeERKS4_S5_i]; -var FUNCTION_TABLE_viiii = [b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8 -,__ZN10emscripten8internal13MethodInvokerIM6LASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj,b8,b8,b8,b8,b8,b8,b8,b8,b8,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj,b8,b8,b8,b8,b8,b8]; -var FUNCTION_TABLE_viiiii = [b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9]; -var FUNCTION_TABLE_viiiiii = [b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10]; - - return { __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, __GLOBAL__sub_I_laz_perf_cpp: __GLOBAL__sub_I_laz_perf_cpp, ___cxa_can_catch: ___cxa_can_catch, ___cxa_is_pointer_type: ___cxa_is_pointer_type, ___errno_location: ___errno_location, ___getTypeName: ___getTypeName, ___muldi3: ___muldi3, ___udivdi3: ___udivdi3, _bitshift64Ashr: _bitshift64Ashr, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _free: _free, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _llvm_bswap_i32: _llvm_bswap_i32, _malloc: _malloc, _memcpy: _memcpy, _memmove: _memmove, _memset: _memset, _pthread_mutex_lock: _pthread_mutex_lock, _pthread_mutex_unlock: _pthread_mutex_unlock, _sbrk: _sbrk, dynCall_i: dynCall_i, dynCall_ii: dynCall_ii, dynCall_iii: dynCall_iii, dynCall_iiii: dynCall_iiii, dynCall_v: dynCall_v, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_viii: dynCall_viii, dynCall_viiii: dynCall_viiii, dynCall_viiiii: dynCall_viiiii, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, getTempRet0: getTempRet0, runPostSets: runPostSets, setTempRet0: setTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments); -}; - -var real___GLOBAL__sub_I_laz_perf_cpp = asm["__GLOBAL__sub_I_laz_perf_cpp"]; asm["__GLOBAL__sub_I_laz_perf_cpp"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real___GLOBAL__sub_I_laz_perf_cpp.apply(null, arguments); -}; - -var real____cxa_can_catch = asm["___cxa_can_catch"]; asm["___cxa_can_catch"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____cxa_can_catch.apply(null, arguments); -}; - -var real____cxa_is_pointer_type = asm["___cxa_is_pointer_type"]; asm["___cxa_is_pointer_type"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____cxa_is_pointer_type.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real____getTypeName = asm["___getTypeName"]; asm["___getTypeName"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____getTypeName.apply(null, arguments); -}; - -var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____muldi3.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real__bitshift64Ashr = asm["_bitshift64Ashr"]; asm["_bitshift64Ashr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Ashr.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; - -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__memmove.apply(null, arguments); -}; - -var real__pthread_mutex_lock = asm["_pthread_mutex_lock"]; asm["_pthread_mutex_lock"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__pthread_mutex_lock.apply(null, arguments); -}; - -var real__pthread_mutex_unlock = asm["_pthread_mutex_unlock"]; asm["_pthread_mutex_unlock"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__pthread_mutex_unlock.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; -var __GLOBAL__sub_I_bind_cpp = Module["__GLOBAL__sub_I_bind_cpp"] = asm["__GLOBAL__sub_I_bind_cpp"]; -var __GLOBAL__sub_I_laz_perf_cpp = Module["__GLOBAL__sub_I_laz_perf_cpp"] = asm["__GLOBAL__sub_I_laz_perf_cpp"]; -var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; -var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var ___getTypeName = Module["___getTypeName"] = asm["___getTypeName"]; -var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var _free = Module["_free"] = asm["_free"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _pthread_mutex_lock = Module["_pthread_mutex_lock"] = asm["_pthread_mutex_lock"]; -var _pthread_mutex_unlock = Module["_pthread_mutex_unlock"] = asm["_pthread_mutex_unlock"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -; - - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - -if (!Module["intArrayFromString"]) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["intArrayToString"]) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["ccall"]) Module["ccall"] = function() { abort("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["cwrap"]) Module["cwrap"] = function() { abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["setValue"]) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getValue"]) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["allocate"]) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getMemory"]) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["Pointer_stringify"]) Module["Pointer_stringify"] = function() { abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["AsciiToString"]) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToAscii"]) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF8ArrayToString"]) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF8ToString"]) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF8Array"]) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF8"]) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF8"]) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF16ToString"]) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF16"]) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF16"]) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF32ToString"]) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF32"]) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF32"]) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["allocateUTF8"]) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackTrace"]) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPreRun"]) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnInit"]) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPreMain"]) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnExit"]) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPostRun"]) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeStringToMemory"]) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeArrayToMemory"]) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeAsciiToMemory"]) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addRunDependency"]) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["removeRunDependency"]) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS"]) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["FS_createFolder"]) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createPath"]) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createDataFile"]) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createPreloadedFile"]) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createLazyFile"]) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createLink"]) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createDevice"]) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_unlink"]) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["GL"]) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["staticAlloc"]) Module["staticAlloc"] = function() { abort("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["dynamicAlloc"]) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["warnOnce"]) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["loadDynamicLibrary"]) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["loadWebAssemblyModule"]) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getLEB"]) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getFunctionTables"]) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["alignFunctionTables"]) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["registerFunctions"]) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addFunction"]) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["removeFunction"]) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getFuncWrapper"]) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["prettyPrint"]) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["makeBigInt"]) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["dynCall"]) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getCompilerSetting"]) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackSave"]) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackRestore"]) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackAlloc"]) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["intArrayFromBase64"]) Module["intArrayFromBase64"] = function() { abort("'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["tryParseAsDataURI"]) Module["tryParseAsDataURI"] = function() { abort("'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };if (!Module["ALLOC_NORMAL"]) Object.defineProperty(Module, "ALLOC_NORMAL", { get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_STACK"]) Object.defineProperty(Module, "ALLOC_STACK", { get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_STATIC"]) Object.defineProperty(Module, "ALLOC_STATIC", { get: function() { abort("'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_DYNAMIC"]) Object.defineProperty(Module, "ALLOC_DYNAMIC", { get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_NONE"]) Object.defineProperty(Module, "ALLOC_NONE", { get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); - -if (memoryInitializer) { - if (!isDataURI(memoryInitializer)) { - if (typeof Module['locateFile'] === 'function') { - memoryInitializer = Module['locateFile'](memoryInitializer); - } else if (Module['memoryInitializerPrefixURL']) { - memoryInitializer = Module['memoryInitializerPrefixURL'] + memoryInitializer; - } - } - if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { - var data = Module['readBinary'](memoryInitializer); - HEAPU8.set(data, GLOBAL_BASE); - } else { - addRunDependency('memory initializer'); - var applyMemoryInitializer = function(data) { - if (data.byteLength) data = new Uint8Array(data); - for (var i = 0; i < data.length; i++) { - assert(HEAPU8[GLOBAL_BASE + i] === 0, "area for memory initializer should not have been touched before it's loaded"); - } - HEAPU8.set(data, GLOBAL_BASE); - // Delete the typed array that contains the large blob of the memory initializer request response so that - // we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g. - // its .status field can still be accessed later. - if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response; - removeRunDependency('memory initializer'); - } - function doBrowserLoad() { - Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() { - throw 'could not load memory initializer ' + memoryInitializer; - }); - } - var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer); - if (memoryInitializerBytes) { - applyMemoryInitializer(memoryInitializerBytes.buffer); - } else - if (Module['memoryInitializerRequest']) { - // a network request has already been created, just use that - function useRequest() { - var request = Module['memoryInitializerRequest']; - var response = request.response; - if (request.status !== 200 && request.status !== 0) { - var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']); - if (data) { - response = data.buffer; - } else { - // If you see this warning, the issue may be that you are using locateFile or memoryInitializerPrefixURL, and defining them in JS. That - // means that the HTML file doesn't know about them, and when it tries to create the mem init request early, does it to the wrong place. - // Look in your browser's devtools network console to see what's going on. - console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer); - doBrowserLoad(); - return; - } - } - applyMemoryInitializer(response); - } - if (Module['memoryInitializerRequest'].response) { - setTimeout(useRequest, 0); // it's already here; but, apply it asynchronously - } else { - Module['memoryInitializerRequest'].addEventListener('load', useRequest); // wait for it - } - } else { - // fetch it from the network ourselves - doBrowserLoad(); - } - } -} - - - -/** - * @constructor - * @extends {Error} - * @this {ExitStatus} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = run; - -function checkUnflushedContent() { - // Compiler settings do not allow exiting the runtime, so flushing - // the streams is not possible. but in ASSERTIONS mode we check - // if there was something to flush, and if so tell the user they - // should request that the runtime be exitable. - // Normally we would not even include flush() at all, but in ASSERTIONS - // builds we do so just for this check, and here we see if there is any - // content to flush, that is, we check if there would have been - // something a non-ASSERTIONS build would have not seen. - // How we flush the streams depends on whether we are in NO_FILESYSTEM - // mode (which has its own special function for this; otherwise, all - // the code is inside libc) - var print = Module['print']; - var printErr = Module['printErr']; - var has = false; - Module['print'] = Module['printErr'] = function(x) { - has = true; - } - try { // it doesn't matter if it fails - var flush = flush_NO_FILESYSTEM; - if (flush) flush(0); - } catch(e) {} - Module['print'] = print; - Module['printErr'] = printErr; - if (has) { - warnOnce('stdio streams had content in them that was not flushed. you should set NO_EXIT_RUNTIME to 0 (see the FAQ), or make sure to emit a newline when you printf etc.'); - } -} - -function exit(status, implicit) { - checkUnflushedContent(); - - // if this is just main exit-ing implicitly, and the status is 0, then we - // don't need to do anything here and can just leave. if the status is - // non-zero, though, then we need to report it. - // (we may have warned about this earlier, if a situation justifies doing so) - if (implicit && Module['noExitRuntime'] && status === 0) { - return; - } - - if (Module['noExitRuntime']) { - // if exit() was called, we may warn the user if the runtime isn't actually being shut down - if (!implicit) { - Module.printErr('exit(' + status + ') called, but NO_EXIT_RUNTIME is set, so halting execution but not exiting the runtime or preventing further async execution (build with NO_EXIT_RUNTIME=0, if you want a true shutdown)'); - } - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - - -Module["noExitRuntime"] = true; - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - - -/* global onmessage:true postMessage:false Module */ -/* exported onmessage */ -// http://jsperf.com/uint8array-vs-dataview3/3 -function CustomView (buffer) { - this.buffer = buffer; - this.u8 = new Uint8Array(buffer); - - let tmp = new ArrayBuffer(4); - let tmpf = new Float32Array(tmp); - let tmpu8 = new Uint8Array(tmp); - - this.getUint32 = function (i) { - return (this.u8[i + 3] << 24) | (this.u8[i + 2] << 16) | (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getUint16 = function (i) { - return (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getFloat = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - - return tmpf[0]; - }; - - this.getUint8 = function (i) { - return this.u8[i]; - }; -} - -let decompress = function (schema, input, numPoints) { - let x = new Module.DynamicLASZip(); - - let abInt = new Uint8Array(input); - let buf = Module._malloc(input.byteLength); - - Module.HEAPU8.set(abInt, buf); - x.open(buf, input.byteLength); - - let pointSize = 0; - - schema.forEach(function (f) { - pointSize += f.size; - if (f.type === 'floating') x.addFieldFloating(f.size); - else if (f.type === 'unsigned') x.addFieldUnsigned(f.size); - else if (f.type === 'signed') x.addFieldSigned(f.size); - else throw new Error('Unrecognized field desc:', f); - }); - - let out = Module._malloc(numPoints * pointSize); - - for (let i = 0; i < numPoints; i++) { - x.getPoint(out + i * pointSize); - } - - let ret = new Uint8Array(numPoints * pointSize); - ret.set(Module.HEAPU8.subarray(out, out + numPoints * pointSize)); - - Module._free(out); - Module._free(buf); - - return ret.buffer; -}; - -Potree = {}; - -onmessage = function (event) { - let NUM_POINTS_BYTES = 4; - - let buffer = event.data.buffer; - let numPoints = new DataView(buffer, buffer.byteLength - NUM_POINTS_BYTES, NUM_POINTS_BYTES).getUint32(0, true); - buffer = buffer.slice(0, buffer.byteLength - NUM_POINTS_BYTES); - buffer = decompress(event.data.schema, buffer, numPoints); - - let pointAttributes = event.data.pointAttributes; - let cv = new CustomView(buffer); - let version = new Potree.Version(event.data.version); - let nodeOffset = event.data.offset; - let scale = event.data.scale; - - let tightBoxMin = [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ]; - let tightBoxMax = [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ]; - let mean = [0, 0, 0]; - - - let attributeBuffers = {}; - let inOffset = 0; - for (let pointAttribute of pointAttributes.attributes) { - - if (pointAttribute.name === Potree.PointAttribute.POSITION_CARTESIAN.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let positions = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let ux = cv.getUint32(inOffset + j * pointAttributes.byteSize + 0); - let uy = cv.getUint32(inOffset + j * pointAttributes.byteSize + 4); - let uz = cv.getUint32(inOffset + j * pointAttributes.byteSize + 8); - - let x = (scale * ux) + nodeOffset[0]; - let y = (scale * uy) + nodeOffset[1]; - let z = (scale * uz) + nodeOffset[2]; - - positions[3 * j + 0] = x; - positions[3 * j + 1] = y; - positions[3 * j + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoxMin[0] = Math.min(tightBoxMin[0], x); - tightBoxMin[1] = Math.min(tightBoxMin[1], y); - tightBoxMin[2] = Math.min(tightBoxMin[2], z); - - tightBoxMax[0] = Math.max(tightBoxMax[0], x); - tightBoxMax[1] = Math.max(tightBoxMax[1], y); - tightBoxMax[2] = Math.max(tightBoxMax[2], z); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.COLOR_PACKED.name) { - let buff = new ArrayBuffer(numPoints * 4); - let colors = new Uint8Array(buff); - let div = event.data.normalize.color ? 256 : 1; - - for (let j = 0; j < numPoints; j++) { - let r = cv.getUint16(inOffset + j * pointAttributes.byteSize + 0) / div; - let g = cv.getUint16(inOffset + j * pointAttributes.byteSize + 2) / div; - let b = cv.getUint16(inOffset + j * pointAttributes.byteSize + 4) / div; - - colors[4 * j + 0] = r; - colors[4 * j + 1] = g; - colors[4 * j + 2] = b; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.INTENSITY.name) { - let buff = new ArrayBuffer(numPoints * 4); - let intensities = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let intensity = cv.getUint16(inOffset + j * pointAttributes.byteSize, true); - intensities[j] = intensity; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.CLASSIFICATION.name) { - let buff = new ArrayBuffer(numPoints); - let classifications = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let classification = cv.getUint8(inOffset + j * pointAttributes.byteSize); - classifications[j] = classification; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } - - inOffset += pointAttribute.byteSize; - } - - { // add indices - let buff = new ArrayBuffer(numPoints * 4); - let indices = new Uint32Array(buff); - - for (let i = 0; i < numPoints; i++) { - indices[i] = i; - } - - attributeBuffers[Potree.PointAttribute.INDICES.name] = { buffer: buff, attribute: Potree.PointAttribute.INDICES }; - } - - let message = { - numPoints: numPoints, - mean: mean, - attributeBuffers: attributeBuffers, - tightBoundingBox: { min: tightBoxMin, max: tightBoxMax }, - }; - - let transferables = []; - for (let property in message.attributeBuffers) { - transferables.push(message.attributeBuffers[property].buffer); - } - transferables.push(buffer); - - postMessage(message, transferables); -}; - - -export class Version{ - - constructor(version){ - this.version = version; - let vmLength = (version.indexOf('.') === -1) ? version.length : version.indexOf('.'); - this.versionMajor = parseInt(version.substr(0, vmLength)); - this.versionMinor = parseInt(version.substr(vmLength + 1)); - if (this.versionMinor.length === 0) { - this.versionMinor = 0; - } - } - - newerThan(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor > v.versionMinor) { - return true; - } else { - return false; - } - } - - equalOrHigher(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor >= v.versionMinor) { - return true; - } else { - return false; - } - } - - upTo(version){ - return !this.newerThan(version); - } - -} - - - - - -export const PointAttributeNames = { - POSITION_CARTESIAN: 0, // float x, y, z; - COLOR_PACKED: 1, // byte r, g, b, a; I: [0,1] - COLOR_FLOATS_1: 2, // float r, g, b; I: [0,1] - COLOR_FLOATS_255: 3, // float r, g, b; I: [0,255] - NORMAL_FLOATS: 4, // float x, y, z; - FILLER: 5, - INTENSITY: 6, - CLASSIFICATION: 7, - NORMAL_SPHEREMAPPED: 8, - NORMAL_OCT16: 9, - NORMAL: 10, - RETURN_NUMBER: 11, - NUMBER_OF_RETURNS: 12, - SOURCE_ID: 13, - INDICES: 14, - SPACING: 15, - GPS_TIME: 16, -}; - - -/** - * Some types of possible point attribute data formats - * - * @class - */ -const PointAttributeTypes = { - DATA_TYPE_DOUBLE: {ordinal: 0, size: 8}, - DATA_TYPE_FLOAT: {ordinal: 1, size: 4}, - DATA_TYPE_INT8: {ordinal: 2, size: 1}, - DATA_TYPE_UINT8: {ordinal: 3, size: 1}, - DATA_TYPE_INT16: {ordinal: 4, size: 2}, - DATA_TYPE_UINT16: {ordinal: 5, size: 2}, - DATA_TYPE_INT32: {ordinal: 6, size: 4}, - DATA_TYPE_UINT32: {ordinal: 7, size: 4}, - DATA_TYPE_INT64: {ordinal: 8, size: 8}, - DATA_TYPE_UINT64: {ordinal: 9, size: 8} -}; - -let i = 0; -for (let obj in PointAttributeTypes) { - PointAttributeTypes[i] = PointAttributeTypes[obj]; - i++; -} - -export {PointAttributeTypes}; - - -class PointAttribute{ - - constructor(name, type, numElements){ - this.name = name; - this.type = type; - this.numElements = numElements; - this.byteSize = this.numElements * this.type.size; - } - -}; - -PointAttribute.POSITION_CARTESIAN = new PointAttribute( - PointAttributeNames.POSITION_CARTESIAN, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RGBA_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 4); - -PointAttribute.COLOR_PACKED = PointAttribute.RGBA_PACKED; - -PointAttribute.RGB_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 3); - -PointAttribute.NORMAL_FLOATS = new PointAttribute( - PointAttributeNames.NORMAL_FLOATS, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.FILLER_1B = new PointAttribute( - PointAttributeNames.FILLER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.INTENSITY = new PointAttribute( - PointAttributeNames.INTENSITY, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.CLASSIFICATION = new PointAttribute( - PointAttributeNames.CLASSIFICATION, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NORMAL_SPHEREMAPPED = new PointAttribute( - PointAttributeNames.NORMAL_SPHEREMAPPED, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL_OCT16 = new PointAttribute( - PointAttributeNames.NORMAL_OCT16, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL = new PointAttribute( - PointAttributeNames.NORMAL, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RETURN_NUMBER = new PointAttribute( - PointAttributeNames.RETURN_NUMBER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NUMBER_OF_RETURNS = new PointAttribute( - PointAttributeNames.NUMBER_OF_RETURNS, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.SOURCE_ID = new PointAttribute( - PointAttributeNames.SOURCE_ID, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.INDICES = new PointAttribute( - PointAttributeNames.INDICES, - PointAttributeTypes.DATA_TYPE_UINT32, 1); - -PointAttribute.SPACING = new PointAttribute( - PointAttributeNames.SPACING, - PointAttributeTypes.DATA_TYPE_FLOAT, 1); - -PointAttribute.GPS_TIME = new PointAttribute( - PointAttributeNames.GPS_TIME, - PointAttributeTypes.DATA_TYPE_DOUBLE, 1); - -export {PointAttribute}; - -export class PointAttributes{ - - constructor(pointAttributes){ - this.attributes = []; - this.byteSize = 0; - this.size = 0; - - if (pointAttributes != null) { - for (let i = 0; i < pointAttributes.length; i++) { - let pointAttributeName = pointAttributes[i]; - let pointAttribute = PointAttribute[pointAttributeName]; - this.attributes.push(pointAttribute); - this.byteSize += pointAttribute.byteSize; - this.size++; - } - } - } - - - add(pointAttribute){ - this.attributes.push(pointAttribute); - this.byteSize += pointAttribute.byteSize; - this.size++; - }; - - hasColors(){ - for (let name in this.attributes) { - let pointAttribute = this.attributes[name]; - if (pointAttribute.name === PointAttributeNames.COLOR_PACKED) { - return true; - } - } - - return false; - }; - - hasNormals(){ - for (let name in this.attributes) { - let pointAttribute = this.attributes[name]; - if ( - pointAttribute === PointAttribute.NORMAL_SPHEREMAPPED || - pointAttribute === PointAttribute.NORMAL_FLOATS || - pointAttribute === PointAttribute.NORMAL || - pointAttribute === PointAttribute.NORMAL_OCT16) { - return true; - } - } - - return false; - }; - -} - - - - -export class InterleavedBufferAttribute{ - - constructor(name, bytes, numElements, type, normalized){ - this.name = name; - this.bytes = bytes; - this.numElements = numElements; - this.normalized = normalized; - this.type = type; // gl type without prefix, e.g. "FLOAT", "UNSIGNED_INT" - } - -}; - -export class InterleavedBuffer{ - - constructor(data, attributes, numElements){ - this.data = data; - this.attributes = attributes; - this.stride = attributes.reduce( (a, att) => a + att.bytes, 0); - this.stride = Math.ceil(this.stride / 4) * 4; - this.numElements = numElements; - } - - offset(name){ - let offset = 0; - - for(let att of this.attributes){ - if(att.name === name){ - return offset; - } - - offset += att.bytes; - } - - return null; - } - -}; - - -import {PointAttribute} from "../loader/PointAttributes.js"; - -export function toInterleavedBufferAttribute(pointAttribute){ - let att = null; - - if (pointAttribute.name === PointAttribute.POSITION_CARTESIAN.name) { - att = new Potree.InterleavedBufferAttribute("position", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.COLOR_PACKED.name) { - att = new Potree.InterleavedBufferAttribute("color", 4, 4, "UNSIGNED_BYTE", true); - } else if (pointAttribute.name === PointAttribute.INTENSITY.name) { - att = new Potree.InterleavedBufferAttribute("intensity", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.CLASSIFICATION.name) { - att = new Potree.InterleavedBufferAttribute("classification", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.RETURN_NUMBER.name) { - att = new Potree.InterleavedBufferAttribute("returnNumber", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NUMBER_OF_RETURNS.name) { - att = new Potree.InterleavedBufferAttribute("numberOfReturns", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.SOURCE_ID.name) { - att = new Potree.InterleavedBufferAttribute("pointSourceID", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL_SPHEREMAPPED.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL_OCT16.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } - - return att; -}; diff --git a/app/static/app/js/vendor/potree/build/workers/LASDecoderWorker.js b/app/static/app/js/vendor/potree/build/workers/LASDecoderWorker.js deleted file mode 100644 index f91fb2db..00000000 --- a/app/static/app/js/vendor/potree/build/workers/LASDecoderWorker.js +++ /dev/null @@ -1,368 +0,0 @@ -// let pointFormatReaders = { -// 0: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true) -// }; -// }, -// 1: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true) -// }; -// }, -// 2: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true), -// "color": [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)] -// }; -// }, -// 3: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true), -// "color": [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)] -// }; -// } -// }; -// -// - - -function readUsingTempArrays(event) { - - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let sourcePointSize = event.data.pointSize; - let pointFormatID = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let temp = new ArrayBuffer(4); - let tempUint8 = new Uint8Array(temp); - let tempUint16 = new Uint16Array(temp); - let tempInt32 = new Int32Array(temp); - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let targetPointSize = 20; - let targetBuffer = new ArrayBuffer(numPoints * targetPointSize); - let targetView = new DataView(targetBuffer); - - let tightBoundingBox = { - min: [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ], - max: [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - for (let i = 0; i < numPoints; i++) { - // POSITION - tempUint8[0] = sourceUint8[i * sourcePointSize + 0]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 1]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 2]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 3]; - let x = tempInt32[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 4]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 5]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 6]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 7]; - let y = tempInt32[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 8]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 9]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 10]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 11]; - let z = tempInt32[0]; - - x = x * scale[0] + offset[0] - event.data.mins[0]; - y = y * scale[1] + offset[1] - event.data.mins[1]; - z = z * scale[2] + offset[2] - event.data.mins[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - tempUint8[0] = sourceUint8[i * sourcePointSize + 12]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 13]; - let intensity = tempUint16[0]; - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - let returnNumber = sourceUint8[i * sourcePointSize + 14] & 0b111; - returnNumbers[i] = returnNumber; - - // NUMBER OF RETURNS, stored in 00111000 - numberOfReturns[i] = (sourceUint8[i * pointSize + 14] & 0b111000) >> 3; - - debugger; - - // CLASSIFICATION - let classification = sourceUint8[i * sourcePointSize + 15]; - classifications[i] = classification; - - // POINT SOURCE ID - tempUint8[0] = sourceUint8[i * sourcePointSize + 18]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 19]; - let pointSourceID = tempUint16[0]; - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (pointFormatID === 2) { - tempUint8[0] = sourceUint8[i * sourcePointSize + 20]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 21]; - let r = tempUint16[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 22]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 23]; - let g = tempUint16[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 24]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 25]; - let b = tempUint16[0]; - - r = r / 256; - g = g / 256; - b = b / 256; - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - performance.measure("laslaz", "laslaz-start", "laslaz-end"); - - let measure = performance.getEntriesByType("measure")[0]; - let dpp = 1000 * measure.duration / numPoints; - let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} micros / point`; - console.log(debugMessage); - - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices]; - - debugger; - - postMessage(message, transferables); -}; - - -function readUsingDataView(event) { - - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let sourcePointSize = event.data.pointSize; - let pointFormatID = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let targetPointSize = 40; - let targetBuffer = new ArrayBuffer(numPoints * targetPointSize); - let targetView = new DataView(targetBuffer); - - let tightBoundingBox = { - min: [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE], - max: [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - for (let i = 0; i < numPoints; i++) { - // POSITION - let ux = sourceView.getInt32(i * sourcePointSize + 0, true); - let uy = sourceView.getInt32(i * sourcePointSize + 4, true); - let uz = sourceView.getInt32(i * sourcePointSize + 8, true); - - x = ux * scale[0] + offset[0] - event.data.mins[0]; - y = uy * scale[1] + offset[1] - event.data.mins[1]; - z = uz * scale[2] + offset[2] - event.data.mins[2]; - - //x = ux * scale[0]; - //y = uy * scale[1]; - //z = uz * scale[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - let intensity = sourceView.getUint16(i * sourcePointSize + 12, true); - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - // number of returns stored in next 3 bits - 00111000 - let returnNumberAndNumberOfReturns = sourceView.getUint8(i * sourcePointSize + 14, true); - let returnNumber = returnNumberAndNumberOfReturns & 0b0111; - let numberOfReturn = (returnNumberAndNumberOfReturns & 0b00111000) >> 3; - returnNumbers[i] = returnNumber; - numberOfReturns[i] = numberOfReturn; - - // CLASSIFICATION - let classification = sourceView.getUint8(i * sourcePointSize + 15, true); - classifications[i] = classification; - - // POINT SOURCE ID - let pointSourceID = sourceView.getUint16(i * sourcePointSize + 18, true); - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (pointFormatID === 2) { - let r = sourceView.getUint16(i * sourcePointSize + 20, true) / 256; - let g = sourceView.getUint16(i * sourcePointSize + 22, true) / 256; - let b = sourceView.getUint16(i * sourcePointSize + 24, true) / 256; - - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - colors[4 * i + 3] = 255; - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - - //{ // print timings - // performance.measure("laslaz", "laslaz-start", "laslaz-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices]; - - postMessage(message, transferables); -}; - - - -onmessage = readUsingDataView; -//onmessage = readUsingTempArrays; diff --git a/app/static/app/js/vendor/potree/build/workers/LASLAZWorker.js b/app/static/app/js/vendor/potree/build/workers/LASLAZWorker.js deleted file mode 100644 index a3ff852c..00000000 --- a/app/static/app/js/vendor/potree/build/workers/LASLAZWorker.js +++ /dev/null @@ -1,49756 +0,0 @@ -// The Module object: Our interface to the outside world. We import -// and export values on it. There are various ways Module can be used: -// 1. Not defined. We create it here -// 2. A function parameter, function(Module) { ..generated code.. } -// 3. pre-run appended it, var Module = {}; ..generated code.. -// 4. External script tag defines var Module. -// We need to check if Module already exists (e.g. case 3 above). -// Substitution will be replaced with actual code on later stage of the build, -// this way Closure Compiler will not mangle it (e.g. case 4. above). -// Note that if you want to run closure, and also to use Module -// after the generated code, you will need to define var Module = {}; -// before the code. Then that object will be used in the code, and you -// can continue to use Module afterwards as well. -var Module = typeof Module !== 'undefined' ? Module : {}; - -// --pre-jses are emitted after the Module integration code, so that they can -// refer to Module (if they choose; they can also define Module) -// {{PRE_JSES}} - -// Sometimes an existing Module object exists with properties -// meant to overwrite the default module functionality. Here -// we collect those properties and reapply _after_ we configure -// the current environment's defaults to avoid having to be so -// defensive during initialization. -var moduleOverrides = {}; -var key; -for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} - -Module['arguments'] = []; -Module['thisProgram'] = './this.program'; -Module['quit'] = function(status, toThrow) { - throw toThrow; -}; -Module['preRun'] = []; -Module['postRun'] = []; - -// The environment setup code below is customized to use Module. -// *** Environment setup code *** -var ENVIRONMENT_IS_WEB = false; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = false; -var ENVIRONMENT_IS_SHELL = false; - -// Three configurations we can be running in: -// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) -// 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) -// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) - -if (Module['ENVIRONMENT']) { - if (Module['ENVIRONMENT'] === 'WEB') { - ENVIRONMENT_IS_WEB = true; - } else if (Module['ENVIRONMENT'] === 'WORKER') { - ENVIRONMENT_IS_WORKER = true; - } else if (Module['ENVIRONMENT'] === 'NODE') { - ENVIRONMENT_IS_NODE = true; - } else if (Module['ENVIRONMENT'] === 'SHELL') { - ENVIRONMENT_IS_SHELL = true; - } else { - throw new Error('Module[\'ENVIRONMENT\'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.'); - } -} else { - ENVIRONMENT_IS_WEB = typeof window === 'object'; - ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; - ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; - ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; -} - - -if (ENVIRONMENT_IS_NODE) { - // Expose functionality in the same simple way that the shells work - // Note that we pollute the global namespace here, otherwise we break in node - var nodeFS; - var nodePath; - - Module['read'] = function shell_read(filename, binary) { - var ret; - ret = tryParseAsDataURI(filename); - if (!ret) { - if (!nodeFS) nodeFS = require('fs'); - if (!nodePath) nodePath = require('path'); - filename = nodePath['normalize'](filename); - ret = nodeFS['readFileSync'](filename); - } - return binary ? ret : ret.toString(); - }; - - Module['readBinary'] = function readBinary(filename) { - var ret = Module['read'](filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - - if (process['argv'].length > 1) { - Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); - } - - Module['arguments'] = process['argv'].slice(2); - - if (typeof module !== 'undefined') { - module['exports'] = Module; - } - - process['on']('uncaughtException', function(ex) { - // suppress ExitStatus exceptions from showing an error - if (!(ex instanceof ExitStatus)) { - throw ex; - } - }); - // Currently node will swallow unhandled rejections, but this behavior is - // deprecated, and in the future it will exit with error status. - process['on']('unhandledRejection', function(reason, p) { - Module['printErr']('node.js exiting due to unhandled promise rejection'); - process['exit'](1); - }); - - Module['inspect'] = function () { return '[Emscripten Module object]'; }; -} else -if (ENVIRONMENT_IS_SHELL) { - if (typeof read != 'undefined') { - Module['read'] = function shell_read(f) { - var data = tryParseAsDataURI(f); - if (data) { - return intArrayToString(data); - } - return read(f); - }; - } - - Module['readBinary'] = function readBinary(f) { - var data; - data = tryParseAsDataURI(f); - if (data) { - return data; - } - if (typeof readbuffer === 'function') { - return new Uint8Array(readbuffer(f)); - } - data = read(f, 'binary'); - assert(typeof data === 'object'); - return data; - }; - - if (typeof scriptArgs != 'undefined') { - Module['arguments'] = scriptArgs; - } else if (typeof arguments != 'undefined') { - Module['arguments'] = arguments; - } - - if (typeof quit === 'function') { - Module['quit'] = function(status, toThrow) { - quit(status); - } - } -} else -if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - Module['read'] = function shell_read(url) { - try { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.send(null); - return xhr.responseText; - } catch (err) { - var data = tryParseAsDataURI(url); - if (data) { - return intArrayToString(data); - } - throw err; - } - }; - - if (ENVIRONMENT_IS_WORKER) { - Module['readBinary'] = function readBinary(url) { - try { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, false); - xhr.responseType = 'arraybuffer'; - xhr.send(null); - return new Uint8Array(xhr.response); - } catch (err) { - var data = tryParseAsDataURI(url); - if (data) { - return data; - } - throw err; - } - }; - } - - Module['readAsync'] = function readAsync(url, onload, onerror) { - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onload = function xhr_onload() { - if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 - onload(xhr.response); - return; - } - var data = tryParseAsDataURI(url); - if (data) { - onload(data.buffer); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - - Module['setWindowTitle'] = function(title) { document.title = title }; -} else -{ - throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); -} - -// console.log is checked first, as 'print' on the web will open a print dialogue -// printErr is preferable to console.warn (works better in shells) -// bind(console) is necessary to fix IE/Edge closed dev tools panel behavior. -Module['print'] = typeof console !== 'undefined' ? console.log.bind(console) : (typeof print !== 'undefined' ? print : null); -Module['printErr'] = typeof printErr !== 'undefined' ? printErr : ((typeof console !== 'undefined' && console.warn.bind(console)) || Module['print']); - -// *** Environment setup code *** - -// Closure helpers -Module.print = Module['print']; -Module.printErr = Module['printErr']; - -// Merge back in the overrides -for (key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -// Free the object hierarchy contained in the overrides, this lets the GC -// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array. -moduleOverrides = undefined; - - - -// {{PREAMBLE_ADDITIONS}} - -var STACK_ALIGN = 16; - -// stack management, and other functionality that is provided by the compiled code, -// should not be used before it is ready -stackSave = stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function() { - abort('cannot use the stack before compiled code is ready to run, and has provided stack access'); -}; - -function staticAlloc(size) { - assert(!staticSealed); - var ret = STATICTOP; - STATICTOP = (STATICTOP + size + 15) & -16; - return ret; -} - -function dynamicAlloc(size) { - assert(DYNAMICTOP_PTR); - var ret = HEAP32[DYNAMICTOP_PTR>>2]; - var end = (ret + size + 15) & -16; - HEAP32[DYNAMICTOP_PTR>>2] = end; - if (end >= TOTAL_MEMORY) { - var success = enlargeMemory(); - if (!success) { - HEAP32[DYNAMICTOP_PTR>>2] = ret; - return 0; - } - } - return ret; -} - -function alignMemory(size, factor) { - if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default - var ret = size = Math.ceil(size / factor) * factor; - return ret; -} - -function getNativeTypeSize(type) { - switch (type) { - case 'i1': case 'i8': return 1; - case 'i16': return 2; - case 'i32': return 4; - case 'i64': return 8; - case 'float': return 4; - case 'double': return 8; - default: { - if (type[type.length-1] === '*') { - return 4; // A pointer - } else if (type[0] === 'i') { - var bits = parseInt(type.substr(1)); - assert(bits % 8 === 0); - return bits / 8; - } else { - return 0; - } - } - } -} - -function warnOnce(text) { - if (!warnOnce.shown) warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - Module.printErr(text); - } -} - - - -var jsCallStartIndex = 1; -var functionPointers = new Array(0); - -// 'sig' parameter is only used on LLVM wasm backend -function addFunction(func, sig) { - if (typeof sig === 'undefined') { - Module.printErr('warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.'); - } - var base = 0; - for (var i = base; i < base + 0; i++) { - if (!functionPointers[i]) { - functionPointers[i] = func; - return jsCallStartIndex + i; - } - } - throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; -} - -function removeFunction(index) { - functionPointers[index-jsCallStartIndex] = null; -} - -var funcWrappers = {}; - -function getFuncWrapper(func, sig) { - if (!func) return; // on null pointer, return undefined - assert(sig); - if (!funcWrappers[sig]) { - funcWrappers[sig] = {}; - } - var sigCache = funcWrappers[sig]; - if (!sigCache[func]) { - // optimize away arguments usage in common cases - if (sig.length === 1) { - sigCache[func] = function dynCall_wrapper() { - return dynCall(sig, func); - }; - } else if (sig.length === 2) { - sigCache[func] = function dynCall_wrapper(arg) { - return dynCall(sig, func, [arg]); - }; - } else { - // general case - sigCache[func] = function dynCall_wrapper() { - return dynCall(sig, func, Array.prototype.slice.call(arguments)); - }; - } - } - return sigCache[func]; -} - - -function makeBigInt(low, high, unsigned) { - return unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0)); -} - -function dynCall(sig, ptr, args) { - if (args && args.length) { - assert(args.length == sig.length-1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].apply(null, [ptr].concat(args)); - } else { - assert(sig.length == 1); - assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); - return Module['dynCall_' + sig].call(null, ptr); - } -} - - -function getCompilerSetting(name) { - throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work'; -} - -var Runtime = { - // FIXME backwards compatibility layer for ports. Support some Runtime.* - // for now, fix it there, then remove it from here. That way we - // can minimize any period of breakage. - dynCall: dynCall, // for SDL2 port - // helpful errors - getTempRet0: function() { abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, - staticAlloc: function() { abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, - stackAlloc: function() { abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."') }, -}; - -// The address globals begin at. Very low in memory, for code size and optimization opportunities. -// Above 0 is static memory, starting with globals. -// Then the stack. -// Then 'dynamic' memory for sbrk. -var GLOBAL_BASE = 8; - - - -// === Preamble library stuff === - -// Documentation for the public APIs defined in this file must be updated in: -// site/source/docs/api_reference/preamble.js.rst -// A prebuilt local version of the documentation is available at: -// site/build/text/docs/api_reference/preamble.js.txt -// You can also build docs locally as HTML or other formats in site/ -// An online HTML version (which may be of a different version of Emscripten) -// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html - - - -//======================================== -// Runtime essentials -//======================================== - -var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort() -var EXITSTATUS = 0; - -/** @type {function(*, string=)} */ -function assert(condition, text) { - if (!condition) { - abort('Assertion failed: ' + text); - } -} - -var globalScope = this; - -// Returns the C function with a specified identifier (for C++, you need to do manual name mangling) -function getCFunc(ident) { - var func = Module['_' + ident]; // closure exported function - assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); - return func; -} - -var JSfuncs = { - // Helpers for cwrap -- it can't refer to Runtime directly because it might - // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find - // out what the minified function name is. - 'stackSave': function() { - stackSave() - }, - 'stackRestore': function() { - stackRestore() - }, - // type conversion from js to c - 'arrayToC' : function(arr) { - var ret = stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - }, - 'stringToC' : function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { // null string - // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' - var len = (str.length << 2) + 1; - ret = stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - } -}; - -// For fast lookup of conversion functions -var toC = { - 'string': JSfuncs['stringToC'], 'array': JSfuncs['arrayToC'] -}; - -// C calling interface. -function ccall (ident, returnType, argTypes, args, opts) { - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - assert(returnType !== 'array', 'Return type should not be "array".'); - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - if (returnType === 'string') ret = Pointer_stringify(ret); - else if (returnType === 'boolean') ret = Boolean(ret); - if (stack !== 0) { - stackRestore(stack); - } - return ret; -} - -function cwrap (ident, returnType, argTypes) { - argTypes = argTypes || []; - var cfunc = getCFunc(ident); - // When the function takes numbers and returns a number, we can just return - // the original function - var numericArgs = argTypes.every(function(type){ return type === 'number'}); - var numericRet = returnType !== 'string'; - if (numericRet && numericArgs) { - return cfunc; - } - return function() { - return ccall(ident, returnType, argTypes, arguments); - } -} - -/** @type {function(number, number, string, boolean=)} */ -function setValue(ptr, value, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': HEAP8[((ptr)>>0)]=value; break; - case 'i8': HEAP8[((ptr)>>0)]=value; break; - case 'i16': HEAP16[((ptr)>>1)]=value; break; - case 'i32': HEAP32[((ptr)>>2)]=value; break; - case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; - case 'float': HEAPF32[((ptr)>>2)]=value; break; - case 'double': HEAPF64[((ptr)>>3)]=value; break; - default: abort('invalid type for setValue: ' + type); - } -} - -/** @type {function(number, string, boolean=)} */ -function getValue(ptr, type, noSafe) { - type = type || 'i8'; - if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit - switch(type) { - case 'i1': return HEAP8[((ptr)>>0)]; - case 'i8': return HEAP8[((ptr)>>0)]; - case 'i16': return HEAP16[((ptr)>>1)]; - case 'i32': return HEAP32[((ptr)>>2)]; - case 'i64': return HEAP32[((ptr)>>2)]; - case 'float': return HEAPF32[((ptr)>>2)]; - case 'double': return HEAPF64[((ptr)>>3)]; - default: abort('invalid type for getValue: ' + type); - } - return null; -} - -var ALLOC_NORMAL = 0; // Tries to use _malloc() -var ALLOC_STACK = 1; // Lives for the duration of the current function call -var ALLOC_STATIC = 2; // Cannot be freed -var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk -var ALLOC_NONE = 4; // Do not allocate - -// allocate(): This is for internal use. You can use it yourself as well, but the interface -// is a little tricky (see docs right below). The reason is that it is optimized -// for multiple syntaxes to save space in generated code. So you should -// normally not use allocate(), and instead allocate memory using _malloc(), -// initialize it with setValue(), and so forth. -// @slab: An array of data, or a number. If a number, then the size of the block to allocate, -// in *bytes* (note that this is sometimes confusing: the next parameter does not -// affect this!) -// @types: Either an array of types, one for each byte (or 0 if no type at that position), -// or a single type which is used for the entire block. This only matters if there -// is initial data - if @slab is a number, then this does not matter at all and is -// ignored. -// @allocator: How to allocate memory, see ALLOC_* -/** @type {function((TypedArray|Array|number), string, number, number=)} */ -function allocate(slab, types, allocator, ptr) { - var zeroinit, size; - if (typeof slab === 'number') { - zeroinit = true; - size = slab; - } else { - zeroinit = false; - size = slab.length; - } - - var singleType = typeof types === 'string' ? types : null; - - var ret; - if (allocator == ALLOC_NONE) { - ret = ptr; - } else { - ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); - } - - if (zeroinit) { - var stop; - ptr = ret; - assert((ret & 3) == 0); - stop = ret + (size & ~3); - for (; ptr < stop; ptr += 4) { - HEAP32[((ptr)>>2)]=0; - } - stop = ret + size; - while (ptr < stop) { - HEAP8[((ptr++)>>0)]=0; - } - return ret; - } - - if (singleType === 'i8') { - if (slab.subarray || slab.slice) { - HEAPU8.set(/** @type {!Uint8Array} */ (slab), ret); - } else { - HEAPU8.set(new Uint8Array(slab), ret); - } - return ret; - } - - var i = 0, type, typeSize, previousType; - while (i < size) { - var curr = slab[i]; - - type = singleType || types[i]; - if (type === 0) { - i++; - continue; - } - assert(type, 'Must know what type to store in allocate!'); - - if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later - - setValue(ret+i, curr, type); - - // no need to look up size unless type changes, so cache it - if (previousType !== type) { - typeSize = getNativeTypeSize(type); - previousType = type; - } - i += typeSize; - } - - return ret; -} - -// Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready -function getMemory(size) { - if (!staticSealed) return staticAlloc(size); - if (!runtimeInitialized) return dynamicAlloc(size); - return _malloc(size); -} - -/** @type {function(number, number=)} */ -function Pointer_stringify(ptr, length) { - if (length === 0 || !ptr) return ''; - // Find the length, and check for UTF while doing so - var hasUtf = 0; - var t; - var i = 0; - while (1) { - assert(ptr + i < TOTAL_MEMORY); - t = HEAPU8[(((ptr)+(i))>>0)]; - hasUtf |= t; - if (t == 0 && !length) break; - i++; - if (length && i == length) break; - } - if (!length) length = i; - - var ret = ''; - - if (hasUtf < 128) { - var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack - var curr; - while (length > 0) { - curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); - ret = ret ? ret + curr : curr; - ptr += MAX_CHUNK; - length -= MAX_CHUNK; - } - return ret; - } - return UTF8ToString(ptr); -} - -// Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function AsciiToString(ptr) { - var str = ''; - while (1) { - var ch = HEAP8[((ptr++)>>0)]; - if (!ch) return str; - str += String.fromCharCode(ch); - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. - -function stringToAscii(str, outPtr) { - return writeAsciiToMemory(str, outPtr, false); -} - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns -// a copy of that string as a Javascript String object. - -var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined; -function UTF8ArrayToString(u8Array, idx) { - var endPtr = idx; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - while (u8Array[endPtr]) ++endPtr; - - if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { - return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); - } else { - var u0, u1, u2, u3, u4, u5; - - var str = ''; - while (1) { - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - u0 = u8Array[idx++]; - if (!u0) return str; - if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } - u1 = u8Array[idx++] & 63; - if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } - u2 = u8Array[idx++] & 63; - if ((u0 & 0xF0) == 0xE0) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u3 = u8Array[idx++] & 63; - if ((u0 & 0xF8) == 0xF0) { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; - } else { - u4 = u8Array[idx++] & 63; - if ((u0 & 0xFC) == 0xF8) { - u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; - } else { - u5 = u8Array[idx++] & 63; - u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; - } - } - } - if (u0 < 0x10000) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } - } - } -} - -// Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -function UTF8ToString(ptr) { - return UTF8ArrayToString(HEAPU8,ptr); -} - -// Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', -// encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. -// outIdx: The starting offset in the array to begin the copying. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. -// maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. - return 0; - - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - if (outIdx >= endIdx) break; - outU8Array[outIdx++] = u; - } else if (u <= 0x7FF) { - if (outIdx + 1 >= endIdx) break; - outU8Array[outIdx++] = 0xC0 | (u >> 6); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0xFFFF) { - if (outIdx + 2 >= endIdx) break; - outU8Array[outIdx++] = 0xE0 | (u >> 12); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x1FFFFF) { - if (outIdx + 3 >= endIdx) break; - outU8Array[outIdx++] = 0xF0 | (u >> 18); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else if (u <= 0x3FFFFFF) { - if (outIdx + 4 >= endIdx) break; - outU8Array[outIdx++] = 0xF8 | (u >> 24); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } else { - if (outIdx + 5 >= endIdx) break; - outU8Array[outIdx++] = 0xFC | (u >> 30); - outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); - outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); - outU8Array[outIdx++] = 0x80 | (u & 63); - } - } - // Null-terminate the pointer to the buffer. - outU8Array[outIdx] = 0; - return outIdx - startIdx; -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. -// Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF8(str, outPtr, maxBytesToWrite) { - assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - return stringToUTF8Array(str, HEAPU8,outPtr, maxBytesToWrite); -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var u = str.charCodeAt(i); // possibly a lead surrogate - if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); - if (u <= 0x7F) { - ++len; - } else if (u <= 0x7FF) { - len += 2; - } else if (u <= 0xFFFF) { - len += 3; - } else if (u <= 0x1FFFFF) { - len += 4; - } else if (u <= 0x3FFFFFF) { - len += 5; - } else { - len += 6; - } - } - return len; -} - -// Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns -// a copy of that string as a Javascript String object. - -var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined; -function UTF16ToString(ptr) { - assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!'); - var endPtr = ptr; - // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself. - // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage. - var idx = endPtr >> 1; - while (HEAP16[idx]) ++idx; - endPtr = idx << 1; - - if (endPtr - ptr > 32 && UTF16Decoder) { - return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr)); - } else { - var i = 0; - - var str = ''; - while (1) { - var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; - if (codeUnit == 0) return str; - ++i; - // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. - str += String.fromCharCode(codeUnit); - } - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. -// Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. -// maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF16(str, outPtr, maxBytesToWrite) { - assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 2) return 0; - maxBytesToWrite -= 2; // Null terminator. - var startPtr = outPtr; - var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - HEAP16[((outPtr)>>1)]=codeUnit; - outPtr += 2; - } - // Null-terminate the pointer to the HEAP. - HEAP16[((outPtr)>>1)]=0; - return outPtr - startPtr; -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF16(str) { - return str.length*2; -} - -function UTF32ToString(ptr) { - assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!'); - var i = 0; - - var str = ''; - while (1) { - var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; - if (utf32 == 0) - return str; - ++i; - // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - if (utf32 >= 0x10000) { - var ch = utf32 - 0x10000; - str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); - } else { - str += String.fromCharCode(utf32); - } - } -} - -// Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', -// null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. -// Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. -// Parameters: -// str: the Javascript string to copy. -// outPtr: Byte address in Emscripten HEAP where to write the string to. -// maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null -// terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. -// maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. -// Returns the number of bytes written, EXCLUDING the null terminator. - -function stringToUTF32(str, outPtr, maxBytesToWrite) { - assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!'); - assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); - // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. - if (maxBytesToWrite === undefined) { - maxBytesToWrite = 0x7FFFFFFF; - } - if (maxBytesToWrite < 4) return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); // possibly a lead surrogate - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); - } - HEAP32[((outPtr)>>2)]=codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) break; - } - // Null-terminate the pointer to the HEAP. - HEAP32[((outPtr)>>2)]=0; - return outPtr - startPtr; -} - -// Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. - -function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. - // See http://unicode.org/faq/utf_bom.html#utf16-3 - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. - len += 4; - } - - return len; -} - -// Allocate heap space for a JS string, and write it there. -// It is the responsibility of the caller to free() that memory. -function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; -} - -// Allocate stack space for a JS string, and write it there. -function allocateUTF8OnStack(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = stackAlloc(size); - stringToUTF8Array(str, HEAP8, ret, size); - return ret; -} - -function demangle(func) { - warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); - return func; -} - -function demangleAll(text) { - var regex = - /__Z[\w\d_]+/g; - return text.replace(regex, - function(x) { - var y = demangle(x); - return x === y ? x : (x + ' [' + y + ']'); - }); -} - -function jsStackTrace() { - var err = new Error(); - if (!err.stack) { - // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, - // so try that as a special-case. - try { - throw new Error(0); - } catch(e) { - err = e; - } - if (!err.stack) { - return '(no stack trace available)'; - } - } - return err.stack.toString(); -} - -function stackTrace() { - var js = jsStackTrace(); - if (Module['extraStackTrace']) js += '\n' + Module['extraStackTrace'](); - return demangleAll(js); -} - -// Memory management - -var PAGE_SIZE = 16384; -var WASM_PAGE_SIZE = 65536; -var ASMJS_PAGE_SIZE = 16777216; -var MIN_TOTAL_MEMORY = 16777216; - -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} - -var HEAP, -/** @type {ArrayBuffer} */ - buffer, -/** @type {Int8Array} */ - HEAP8, -/** @type {Uint8Array} */ - HEAPU8, -/** @type {Int16Array} */ - HEAP16, -/** @type {Uint16Array} */ - HEAPU16, -/** @type {Int32Array} */ - HEAP32, -/** @type {Uint32Array} */ - HEAPU32, -/** @type {Float32Array} */ - HEAPF32, -/** @type {Float64Array} */ - HEAPF64; - -function updateGlobalBuffer(buf) { - Module['buffer'] = buffer = buf; -} - -function updateGlobalBufferViews() { - Module['HEAP8'] = HEAP8 = new Int8Array(buffer); - Module['HEAP16'] = HEAP16 = new Int16Array(buffer); - Module['HEAP32'] = HEAP32 = new Int32Array(buffer); - Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer); - Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer); - Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer); - Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer); - Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer); -} - -var STATIC_BASE, STATICTOP, staticSealed; // static area -var STACK_BASE, STACKTOP, STACK_MAX; // stack area -var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk - - STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; - staticSealed = false; - - -// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. -function writeStackCookie() { - assert((STACK_MAX & 3) == 0); - HEAPU32[(STACK_MAX >> 2)-1] = 0x02135467; - HEAPU32[(STACK_MAX >> 2)-2] = 0x89BACDFE; -} - -function checkStackCookie() { - if (HEAPU32[(STACK_MAX >> 2)-1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2)-2] != 0x89BACDFE) { - abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2)-2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2)-1].toString(16)); - } - // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own. - if (HEAP32[0] !== 0x63736d65 /* 'emsc' */) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!'; -} - -function abortStackOverflow(allocSize) { - abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - stackSave() + allocSize) + ' bytes available!'); -} - -function abortOnCannotGrowMemory() { - abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 '); -} - - -function enlargeMemory() { - abortOnCannotGrowMemory(); -} - - -var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; -var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 167772160; -if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); - -// Initialize the runtime's memory -// check for full engine support (use string 'subarray' to avoid closure compiler confusion) -assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, - 'JS engine does not provide full typed array support'); - - - -// Use a provided buffer, if there is one, or else allocate a new one -if (Module['buffer']) { - buffer = Module['buffer']; - assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength); -} else { - // Use a WebAssembly memory where available - { - buffer = new ArrayBuffer(TOTAL_MEMORY); - } - assert(buffer.byteLength === TOTAL_MEMORY); - Module['buffer'] = buffer; -} -updateGlobalBufferViews(); - - -function getTotalMemory() { - return TOTAL_MEMORY; -} - -// Endianness check (note: assumes compiler arch was little-endian) - HEAP32[0] = 0x63736d65; /* 'emsc' */ -HEAP16[1] = 0x6373; -if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!'; - -function callRuntimeCallbacks(callbacks) { - while(callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == 'function') { - callback(); - continue; - } - var func = callback.func; - if (typeof func === 'number') { - if (callback.arg === undefined) { - Module['dynCall_v'](func); - } else { - Module['dynCall_vi'](func, callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} - -var __ATPRERUN__ = []; // functions called before the runtime is initialized -var __ATINIT__ = []; // functions called during startup -var __ATMAIN__ = []; // functions called when main() is to be run -var __ATEXIT__ = []; // functions called during shutdown -var __ATPOSTRUN__ = []; // functions called after the main() is called - -var runtimeInitialized = false; -var runtimeExited = false; - - -function preRun() { - // compatibility - merge in anything from Module['preRun'] at this time - if (Module['preRun']) { - if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; - while (Module['preRun'].length) { - addOnPreRun(Module['preRun'].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} - -function ensureInitRuntime() { - checkStackCookie(); - if (runtimeInitialized) return; - runtimeInitialized = true; - callRuntimeCallbacks(__ATINIT__); -} - -function preMain() { - checkStackCookie(); - callRuntimeCallbacks(__ATMAIN__); -} - -function exitRuntime() { - checkStackCookie(); - callRuntimeCallbacks(__ATEXIT__); - runtimeExited = true; -} - -function postRun() { - checkStackCookie(); - // compatibility - merge in anything from Module['postRun'] at this time - if (Module['postRun']) { - if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; - while (Module['postRun'].length) { - addOnPostRun(Module['postRun'].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} - -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} - -function addOnInit(cb) { - __ATINIT__.unshift(cb); -} - -function addOnPreMain(cb) { - __ATMAIN__.unshift(cb); -} - -function addOnExit(cb) { - __ATEXIT__.unshift(cb); -} - -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} - -// Deprecated: This function should not be called because it is unsafe and does not provide -// a maximum length limit of how many bytes it is allowed to write. Prefer calling the -// function stringToUTF8Array() instead, which takes in a maximum length that can be used -// to be secure from out of bounds writes. -/** @deprecated */ -function writeStringToMemory(string, buffer, dontAddNull) { - warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!'); - - var /** @type {number} */ lastChar, /** @type {number} */ end; - if (dontAddNull) { - // stringToUTF8Array always appends null. If we don't want to do that, remember the - // character that existed at the location where the null will be placed, and restore - // that after the write (below). - end = buffer + lengthBytesUTF8(string); - lastChar = HEAP8[end]; - } - stringToUTF8(string, buffer, Infinity); - if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character. -} - -function writeArrayToMemory(array, buffer) { - assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') - HEAP8.set(array, buffer); -} - -function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); - HEAP8[((buffer++)>>0)]=str.charCodeAt(i); - } - // Null-terminate the pointer to the HEAP. - if (!dontAddNull) HEAP8[((buffer)>>0)]=0; -} - -function unSign(value, bits, ignore) { - if (value >= 0) { - return value; - } - return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts - : Math.pow(2, bits) + value; -} -function reSign(value, bits, ignore) { - if (value <= 0) { - return value; - } - var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 - : Math.pow(2, bits-1); - if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that - // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors - // TODO: In i64 mode 1, resign the two parts separately and safely - value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts - } - return value; -} - -assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT'); - -var Math_abs = Math.abs; -var Math_cos = Math.cos; -var Math_sin = Math.sin; -var Math_tan = Math.tan; -var Math_acos = Math.acos; -var Math_asin = Math.asin; -var Math_atan = Math.atan; -var Math_atan2 = Math.atan2; -var Math_exp = Math.exp; -var Math_log = Math.log; -var Math_sqrt = Math.sqrt; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_pow = Math.pow; -var Math_imul = Math.imul; -var Math_fround = Math.fround; -var Math_round = Math.round; -var Math_min = Math.min; -var Math_max = Math.max; -var Math_clz32 = Math.clz32; -var Math_trunc = Math.trunc; - -// A counter of dependencies for calling run(). If we need to -// do asynchronous work before running, increment this and -// decrement it. Incrementing must happen in a place like -// PRE_RUN_ADDITIONS (used by emcc to add file preloading). -// Note that you can add dependencies in preRun, even though -// it happens right before run - run will be postponed until -// the dependencies are met. -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled -var runDependencyTracking = {}; - -function getUniqueRunDependency(id) { - var orig = id; - while (1) { - if (!runDependencyTracking[id]) return id; - id = orig + Math.random(); - } - return id; -} - -function addRunDependency(id) { - runDependencies++; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(!runDependencyTracking[id]); - runDependencyTracking[id] = 1; - if (runDependencyWatcher === null && typeof setInterval !== 'undefined') { - // Check for missing dependencies every few seconds - runDependencyWatcher = setInterval(function() { - if (ABORT) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - return; - } - var shown = false; - for (var dep in runDependencyTracking) { - if (!shown) { - shown = true; - Module.printErr('still waiting on run dependencies:'); - } - Module.printErr('dependency: ' + dep); - } - if (shown) { - Module.printErr('(end of list)'); - } - }, 10000); - } - } else { - Module.printErr('warning: run dependency added without ID'); - } -} - -function removeRunDependency(id) { - runDependencies--; - if (Module['monitorRunDependencies']) { - Module['monitorRunDependencies'](runDependencies); - } - if (id) { - assert(runDependencyTracking[id]); - delete runDependencyTracking[id]; - } else { - Module.printErr('warning: run dependency removed without ID'); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); // can add another dependenciesFulfilled - } - } -} - -Module["preloadedImages"] = {}; // maps url to image data -Module["preloadedAudios"] = {}; // maps url to audio data - - - -var memoryInitializer = null; - - - -var /* show errors on likely calls to FS when it was not included */ FS = { - error: function() { - abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1'); - }, - init: function() { FS.error() }, - createDataFile: function() { FS.error() }, - createPreloadedFile: function() { FS.error() }, - createLazyFile: function() { FS.error() }, - open: function() { FS.error() }, - mkdev: function() { FS.error() }, - registerDevice: function() { FS.error() }, - analyzePath: function() { FS.error() }, - loadFilesFromDB: function() { FS.error() }, - - ErrnoError: function ErrnoError() { FS.error() }, -}; -Module['FS_createDataFile'] = FS.createDataFile; -Module['FS_createPreloadedFile'] = FS.createPreloadedFile; - - - -// Prefix of data URIs emitted by SINGLE_FILE and related options. -var dataURIPrefix = 'data:application/octet-stream;base64,'; - -// Indicates whether filename is a base64 data URI. -function isDataURI(filename) { - return String.prototype.startsWith ? - filename.startsWith(dataURIPrefix) : - filename.indexOf(dataURIPrefix) === 0; -} - - - - - -// === Body === - -var ASM_CONSTS = []; - - - - - -STATIC_BASE = GLOBAL_BASE; - -STATICTOP = STATIC_BASE + 22928; -/* global initializers */ __ATINIT__.push({ func: function() { __GLOBAL__sub_I_laz_perf_cpp() } }, { func: function() { __GLOBAL__sub_I_bind_cpp() } }); - - -memoryInitializer = "data:application/octet-stream;base64,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2wAAAAAAAABIBQAA3AAAAN0AAADeAAAAAAAAAFgFAADfAAAA4AAAAA0AAAAAAAAAaAUAANwAAADhAAAA3gAAAAAAAACYBQAAzQAAAOIAAADPAAAA0AAAAOMAAAAAAAAAiAUAAM0AAADkAAAAzwAAANAAAADlAAAAAAAAABgGAADNAAAA5gAAAM8AAADQAAAA0QAAAOcAAADoAAAA6QAAAExBU1ppcABvcGVuAGdldFBvaW50AGdldENvdW50AER5bmFtaWNMQVNaaXAAYWRkRmllbGRGbG9hdGluZwBhZGRGaWVsZFNpZ25lZABhZGRGaWVsZFVuc2lnbmVkAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVOU185YWxsb2NhdG9ySVMzX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzdfRUVOU185YWxsb2NhdG9ySVM3X0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFAExBU0YATjZsYXN6aXAxM2ludmFsaWRfbWFnaWNFAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUARmlsZSBtYWdpYyBpcyBub3QgdmFsaWQATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWk42bGFzemlwMmlvNnJlYWRlcjEwYmFzaWNfZmlsZUlOUzJfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRTExX3ZhbGlkYXRvcnNFdkVVbFJOUzNfNmhlYWRlckVFX05TXzlhbGxvY2F0b3JJU0JfRUVGdlNBX0VFRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlJONmxhc3ppcDJpbzZoZWFkZXJFRUVFAE42bGFzemlwMjFvbGRfc3R5bGVfY29tcHJlc3Npb25FAE42bGFzemlwMTRub3RfY29tcHJlc3NlZEUAVGhlIGZpbGUgc2VlbXMgdG8gaGF2ZSBvbGQgc3R5bGUgY29tcHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZABUaGUgZmlsZSBkb2Vzbid0IHNlZW0gdG8gYmUgY29tcHJlc3NlZABaTjZsYXN6aXAyaW82cmVhZGVyMTBiYXNpY19maWxlSU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUUxMV92YWxpZGF0b3JzRXZFVWxSTlMwXzZoZWFkZXJFRV8AbGFzemlwIGVuY29kZWQATjZsYXN6aXAxM25vX2xhc3ppcF92bHJFAE42bGFzemlwMjVsYXN6aXBfZm9ybWF0X3Vuc3VwcG9ydGVkRQBPbmx5IExBU3ppcCBQT0lOVFdJU0UgQ0hVTktFRCBkZWNvbXByZXNzb3IgaXMgc3VwcG9ydGVkAE5vIExBU3ppcCBWTFIgd2FzIGZvdW5kIGluIHRoZSBWTFJzIHNlY3Rpb24ATjZsYXN6aXAyMmNodW5rX3RhYmxlX3JlYWRfZXJyb3JFAENodW5rIHRhYmxlIG9mZnNldCA9PSAtMSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZQBONmxhc3ppcDEzbm90X3N1cHBvcnRlZEUATjZsYXN6aXAyNnVua25vd25fY2h1bmtfdGFibGVfZm9ybWF0RQBjaHVua19zaXplID09IHVpbnQubWF4IGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLCBjYWxsIDEtODAwLURBRlVRIGZvciBzdXBwb3J0LgBUaGVyZSB3YXMgYSBwcm9ibGVtIHJlYWRpbmcgdGhlIGNodW5rIHRhYmxlAFRoZSBjaHVuayB0YWJsZSB2ZXJzaW9uIG51bWJlciBpcyB1bmtub3duAE42bGFzemlwMTFlbmRfb2ZfZmlsZUUAUmVhY2hlZCBFbmQgb2YgZmlsZQBJbnZhbGlkIG51bWJlciBvZiBzeW1ib2xzAGJpdHMgJiYgKGJpdHMgPD0gMzIpAC9Vc2Vycy9jb25ub3IvY29kZS9sYXotcGVyZi1hYmVsbC9lbXNjcmlwdGVuLy4uL2xhei1wZXJmL2RlY29kZXIuaHBwAHJlYWRCaXRzAHN5bSA8ICgxPDwxNikAcmVhZFNob3J0AE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM5X0VFTlNfOWFsbG9jYXRvcklTOV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwMTl1bmtub3duX3NjaGVtYV90eXBlRQBUaGUgTEFaIHNjaGVtYSBpcyBub3QgcmVjb2duaXplZABONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2ZpZWxkX2RlY29tcHJlc3NvcklOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMGR5bmFtaWNfZGVjb21wcmVzc29yRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0NfRUVOU185YWxsb2NhdG9ySVNDX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBONmxhc3ppcDdmb3JtYXRzMTBiYXNlX2ZpZWxkRQAPDg0MCwoJCA4AAQMGCgoJDQECBAcLCwoMAwQFCAwMCwsGBwgJDQ0MCgoLDA0ODg0JCgsMDQ4PDggJCgsMDQ4PAAECAwQFBgcBAAECAwQFBgIBAAECAwQFAwIBAAECAwQEAwIBAAECAwUEAwIBAAECBgUEAwIBAAEHBgUEAwIBAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFTlNfOWFsbG9jYXRvcklTSV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzVmaWVsZElOUzBfM2xhczdncHN0aW1lRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzN2dwc3RpbWVFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTSV9FRU5TXzlhbGxvY2F0b3JJU0lfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl81ZmllbGRJTlMyXzNsYXM3Z3BzdGltZUVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjZkeW5hbWljX2RlY29tcHJlc3Nvcl9maWVsZElOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF81ZmllbGRJTlMwXzNsYXMzcmdiRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzM3JnYkVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRV9FRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNJX0VFTlNfOWFsbG9jYXRvcklTSV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzVmaWVsZElOUzJfM2xhczNyZ2JFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0VfRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfNWZpZWxkSU5TMF8zbGFzMTBleHRyYWJ5dGVzRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNDX0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzMTBleHRyYWJ5dGVzRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJU0lfRUVOU185YWxsb2NhdG9ySVNJX0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfNWZpZWxkSU5TMl8zbGFzMTBleHRyYWJ5dGVzRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNFX0VFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMF81ZmllbGRJTlMwXzNsYXM3cG9pbnQxMEVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRF9FRUVFRUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNLX0VFTlNfOWFsbG9jYXRvcklTS19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFRUVFRUVFRQBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzBfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzBfNWZpZWxkSU5TMF8zbGFzN3BvaW50MTBFTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0RfRUVFRU5TQl9JTlNDXzdncHN0aW1lRU5TRV9JU0hfRUVFRUVFRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTTl9FRU5TXzlhbGxvY2F0b3JJU05fRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOU18yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOU183c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMwXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMwXzVmaWVsZElOUzBfM2xhczdwb2ludDEwRU5TMF8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNEX0VFRUVOU0JfSU5TQ18zcmdiRU5TRV9JU0hfRUVFRUVFRUVFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzNyZ2JFTlNHX0lTSl9FRUVFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNOX0VFTlNfOWFsbG9jYXRvcklTTl9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOUzFfOGRlY29kZXJzMTBhcml0aG1ldGljSU5TMV8yaW8xOF9faWZzdHJlYW1fd3JhcHBlcklOUzFfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMl8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMl81ZmllbGRJTlMyXzNsYXM3cG9pbnQxMEVOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRl9FRUVFTlNEX0lOU0VfM3JnYkVOU0dfSVNKX0VFRUVFRUVFRUVFAE42bGFzemlwN2Zvcm1hdHMyMWR5bmFtaWNfZGVjb21wcmVzc29yMUlOU184ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlNfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlNfN3N0cmVhbXMxM21lbW9yeV9zdHJlYW1FRUVFRU5TMF8xOXJlY29yZF9kZWNvbXByZXNzb3JJSk5TMF81ZmllbGRJTlMwXzNsYXM3cG9pbnQxMEVOUzBfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElTRF9FRUVFTlNCX0lOU0NfN2dwc3RpbWVFTlNFX0lTSF9FRUVFTlNCX0lOU0NfM3JnYkVOU0VfSVNLX0VFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czIxZHluYW1pY19kZWNvbXByZXNzb3IxSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJTlMxXzJpbzE4X19pZnN0cmVhbV93cmFwcGVySU5TMV83c3RyZWFtczEzbWVtb3J5X3N0cmVhbUVFRUVFTlMyXzE5cmVjb3JkX2RlY29tcHJlc3NvcklKTlMyXzVmaWVsZElOUzJfM2xhczdwb2ludDEwRU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSVNGX0VFRUVOU0RfSU5TRV83Z3BzdGltZUVOU0dfSVNKX0VFRUVOU0RfSU5TRV8zcmdiRU5TR19JU01fRUVFRUVFRUVFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTUV9FRU5TXzlhbGxvY2F0b3JJU1FfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlONmxhc3ppcDdmb3JtYXRzMjFkeW5hbWljX2RlY29tcHJlc3NvcjFJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0lOUzFfMmlvMThfX2lmc3RyZWFtX3dyYXBwZXJJTlMxXzdzdHJlYW1zMTNtZW1vcnlfc3RyZWFtRUVFRUVOUzJfMTlyZWNvcmRfZGVjb21wcmVzc29ySUpOUzJfNWZpZWxkSU5TMl8zbGFzN3BvaW50MTBFTlMyXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJU0ZfRUVFRU5TRF9JTlNFXzdncHN0aW1lRU5TR19JU0pfRUVFRU5TRF9JTlNFXzNyZ2JFTlNHX0lTTV9FRUVFRUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQMTBidWZfc3RyZWFtTlNfMTRkZWZhdWx0X2RlbGV0ZUlTMV9FRU5TXzlhbGxvY2F0b3JJUzFfRUVFRQBOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUkxMGJ1Zl9zdHJlYW1FRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA4ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOU18xNGRlZmF1bHRfZGVsZXRlSVM1X0VFTlNfOWFsbG9jYXRvcklTNV9FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFRUUATlN0M19fMjIwX19zaGFyZWRfcHRyX3BvaW50ZXJJUE42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZmllbGRfZGVjb21wcmVzc29ySU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzhfRUVOU185YWxsb2NhdG9ySVM4X0VFRUUATlN0M19fMjE0ZGVmYXVsdF9kZWxldGVJTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19maWVsZF9kZWNvbXByZXNzb3JJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElpTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJaU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWlFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWlOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElpRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElqTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJakVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJak5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWpFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWpOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElqRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElhTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJYUVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJYU5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWFFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWFOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElhRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZElzTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJc0VFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJc05TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXNFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXNOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZElzRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZEloTlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJaEVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJaE5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSWhFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSWhOUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEloRUVFRUVFRUUATjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlNfOGRlY29kZXJzMTBhcml0aG1ldGljSTEwYnVmX3N0cmVhbUVFTlMwXzVmaWVsZEl0TlMwXzIwc3RhbmRhcmRfZGlmZl9tZXRob2RJdEVFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZsYXN6aXA3Zm9ybWF0czI2ZHluYW1pY19kZWNvbXByZXNzb3JfZmllbGRJTlMxXzhkZWNvZGVyczEwYXJpdGhtZXRpY0kxMGJ1Zl9zdHJlYW1FRU5TMl81ZmllbGRJdE5TMl8yMHN0YW5kYXJkX2RpZmZfbWV0aG9kSXRFRUVFRUVOU18xNGRlZmF1bHRfZGVsZXRlSVNDX0VFTlNfOWFsbG9jYXRvcklTQ19FRUVFAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42bGFzemlwN2Zvcm1hdHMyNmR5bmFtaWNfZGVjb21wcmVzc29yX2ZpZWxkSU5TMV84ZGVjb2RlcnMxMGFyaXRobWV0aWNJMTBidWZfc3RyZWFtRUVOUzJfNWZpZWxkSXROUzJfMjBzdGFuZGFyZF9kaWZmX21ldGhvZEl0RUVFRUVFRUUANkxBU1ppcABQNkxBU1ppcABQSzZMQVNaaXAAaWkAdgB2aQB2aWlpaQB2aWlpAGlpaQAxM0R5bmFtaWNMQVNaaXAAUDEzRHluYW1pY0xBU1ppcABQSzEzRHluYW1pY0xBU1ppcAB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGZsb2F0AGRvdWJsZQBzdGQ6OnN0cmluZwBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBzdGQ6OndzdHJpbmcAZW1zY3JpcHRlbjo6dmFsAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZyBkb3VibGU+AE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWVFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SW1FRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWlFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWhFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAE4xMGVtc2NyaXB0ZW4zdmFsRQBOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQBOU3QzX18yMjFfX2Jhc2ljX3N0cmluZ19jb21tb25JTGIxRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOADAxMjM0NTY3ODlBQkNERUYuAFQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAc3RkOjpiYWRfZnVuY3Rpb25fY2FsbABOU3QzX18yMTdiYWRfZnVuY3Rpb25fY2FsbEUATlN0M19fMjE0X19zaGFyZWRfY291bnRFAE5TdDNfXzIxOV9fc2hhcmVkX3dlYWtfY291bnRFAG11dGV4IGxvY2sgZmFpbGVkAHRlcm1pbmF0aW5nIHdpdGggJXMgZXhjZXB0aW9uIG9mIHR5cGUgJXM6ICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZXhjZXB0aW9uIG9mIHR5cGUgJXMAdGVybWluYXRpbmcgd2l0aCAlcyBmb3JlaWduIGV4Y2VwdGlvbgB0ZXJtaW5hdGluZwB1bmNhdWdodABTdDlleGNlcHRpb24ATjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAU3Q5dHlwZV9pbmZvAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAcHRocmVhZF9vbmNlIGZhaWx1cmUgaW4gX19jeGFfZ2V0X2dsb2JhbHNfZmFzdCgpAGNhbm5vdCBjcmVhdGUgcHRocmVhZCBrZXkgZm9yIF9fY3hhX2dldF9nbG9iYWxzKCkAY2Fubm90IHplcm8gb3V0IHRocmVhZCB2YWx1ZSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQB0ZXJtaW5hdGVfaGFuZGxlciB1bmV4cGVjdGVkbHkgcmV0dXJuZWQAc3RkOjpleGNlcHRpb24AU3QxMWxvZ2ljX2Vycm9yAFN0MTNydW50aW1lX2Vycm9yAFN0MTJsZW5ndGhfZXJyb3IATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjEyM19fZnVuZGFtZW50YWxfdHlwZV9pbmZvRQB2AERuAGIAYwBoAGEAcwB0AGkAagBsAG0AZgBkAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0U="; - - - - - -/* no memory initializer */ -var tempDoublePtr = STATICTOP; STATICTOP += 16; - -assert(tempDoublePtr % 8 == 0); - -function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - -} - -function copyTempDouble(ptr) { - - HEAP8[tempDoublePtr] = HEAP8[ptr]; - - HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; - - HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; - - HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; - - HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; - - HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; - - HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; - - HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; - -} - -// {{PRE_LIBRARY}} - - - function ___assert_fail(condition, filename, line, func) { - abort('Assertion failed: ' + Pointer_stringify(condition) + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function']); - } - - function ___cxa_allocate_exception(size) { - return _malloc(size); - } - - - function __ZSt18uncaught_exceptionv() { // std::uncaught_exception() - return !!__ZSt18uncaught_exceptionv.uncaught_exception; - } - - var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function (adjusted) { - if (!adjusted || EXCEPTIONS.infos[adjusted]) return adjusted; - for (var key in EXCEPTIONS.infos) { - var ptr = +key; // the iteration key is a string, and if we throw this, it must be an integer as that is what we look for - var info = EXCEPTIONS.infos[ptr]; - if (info.adjusted === adjusted) { - return ptr; - } - } - return adjusted; - },addRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount++; - },decRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - assert(info.refcount > 0); - info.refcount--; - // A rethrown exception can reach refcount 0; it must not be discarded - // Its next handler will clear the rethrown flag and addRef it, prior to - // final decRef and destruction here - if (info.refcount === 0 && !info.rethrown) { - if (info.destructor) { - Module['dynCall_vi'](info.destructor, ptr); - } - delete EXCEPTIONS.infos[ptr]; - ___cxa_free_exception(ptr); - } - },clearRef:function (ptr) { - if (!ptr) return; - var info = EXCEPTIONS.infos[ptr]; - info.refcount = 0; - }};function ___cxa_begin_catch(ptr) { - var info = EXCEPTIONS.infos[ptr]; - if (info && !info.caught) { - info.caught = true; - __ZSt18uncaught_exceptionv.uncaught_exception--; - } - if (info) info.rethrown = false; - EXCEPTIONS.caught.push(ptr); - EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr)); - return ptr; - } - - function ___cxa_pure_virtual() { - ABORT = true; - throw 'Pure virtual function called!'; - } - - - - function ___resumeException(ptr) { - if (!EXCEPTIONS.last) { EXCEPTIONS.last = ptr; } - throw ptr; - }function ___cxa_find_matching_catch() { - var thrown = EXCEPTIONS.last; - if (!thrown) { - // just pass through the null ptr - return ((setTempRet0(0),0)|0); - } - var info = EXCEPTIONS.infos[thrown]; - var throwntype = info.type; - if (!throwntype) { - // just pass through the thrown ptr - return ((setTempRet0(0),thrown)|0); - } - var typeArray = Array.prototype.slice.call(arguments); - - var pointer = Module['___cxa_is_pointer_type'](throwntype); - // can_catch receives a **, add indirection - if (!___cxa_find_matching_catch.buffer) ___cxa_find_matching_catch.buffer = _malloc(4); - HEAP32[((___cxa_find_matching_catch.buffer)>>2)]=thrown; - thrown = ___cxa_find_matching_catch.buffer; - // The different catch blocks are denoted by different types. - // Due to inheritance, those types may not precisely match the - // type of the thrown object. Find one which matches, and - // return the type of the catch block which should be called. - for (var i = 0; i < typeArray.length; i++) { - if (typeArray[i] && Module['___cxa_can_catch'](typeArray[i], throwntype, thrown)) { - thrown = HEAP32[((thrown)>>2)]; // undo indirection - info.adjusted = thrown; - return ((setTempRet0(typeArray[i]),thrown)|0); - } - } - // Shouldn't happen unless we have bogus data in typeArray - // or encounter a type for which emscripten doesn't have suitable - // typeinfo defined. Best-efforts match just in case. - thrown = HEAP32[((thrown)>>2)]; // undo indirection - return ((setTempRet0(throwntype),thrown)|0); - }function ___cxa_throw(ptr, type, destructor) { - EXCEPTIONS.infos[ptr] = { - ptr: ptr, - adjusted: ptr, - type: type, - destructor: destructor, - refcount: 0, - caught: false, - rethrown: false - }; - EXCEPTIONS.last = ptr; - if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) { - __ZSt18uncaught_exceptionv.uncaught_exception = 1; - } else { - __ZSt18uncaught_exceptionv.uncaught_exception++; - } - throw ptr; - } - - function ___gxx_personality_v0() { - } - - function ___lock() {} - - - - - - var SYSCALLS={varargs:0,get:function (varargs) { - SYSCALLS.varargs += 4; - var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)]; - return ret; - },getStr:function () { - var ret = Pointer_stringify(SYSCALLS.get()); - return ret; - },get64:function () { - var low = SYSCALLS.get(), high = SYSCALLS.get(); - if (low >= 0) assert(high === 0); - else assert(high === -1); - return low; - },getZero:function () { - assert(SYSCALLS.get() === 0); - }};function ___syscall140(which, varargs) {SYSCALLS.varargs = varargs; - try { - // llseek - var stream = SYSCALLS.getStreamFromFD(), offset_high = SYSCALLS.get(), offset_low = SYSCALLS.get(), result = SYSCALLS.get(), whence = SYSCALLS.get(); - // NOTE: offset_high is unused - Emscripten's off_t is 32-bit - var offset = offset_low; - FS.llseek(stream, offset, whence); - HEAP32[((result)>>2)]=stream.position; - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - - function flush_NO_FILESYSTEM() { - // flush anything remaining in the buffers during shutdown - var fflush = Module["_fflush"]; - if (fflush) fflush(0); - var printChar = ___syscall146.printChar; - if (!printChar) return; - var buffers = ___syscall146.buffers; - if (buffers[1].length) printChar(1, 10); - if (buffers[2].length) printChar(2, 10); - }function ___syscall146(which, varargs) {SYSCALLS.varargs = varargs; - try { - // writev - // hack to support printf in NO_FILESYSTEM - var stream = SYSCALLS.get(), iov = SYSCALLS.get(), iovcnt = SYSCALLS.get(); - var ret = 0; - if (!___syscall146.buffers) { - ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr - ___syscall146.printChar = function(stream, curr) { - var buffer = ___syscall146.buffers[stream]; - assert(buffer); - if (curr === 0 || curr === 10) { - (stream === 1 ? Module['print'] : Module['printErr'])(UTF8ArrayToString(buffer, 0)); - buffer.length = 0; - } else { - buffer.push(curr); - } - }; - } - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(((iov)+(i*8))>>2)]; - var len = HEAP32[(((iov)+(i*8 + 4))>>2)]; - for (var j = 0; j < len; j++) { - ___syscall146.printChar(stream, HEAPU8[ptr+j]); - } - ret += len; - } - return ret; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall54(which, varargs) {SYSCALLS.varargs = varargs; - try { - // ioctl - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - function ___syscall6(which, varargs) {SYSCALLS.varargs = varargs; - try { - // close - var stream = SYSCALLS.getStreamFromFD(); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } - } - - - - - - - - - - function ___unlock() {} - - - function getShiftFromSize(size) { - switch (size) { - case 1: return 0; - case 2: return 1; - case 4: return 2; - case 8: return 3; - default: - throw new TypeError('Unknown type size: ' + size); - } - } - - - - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - }var embind_charCodes=undefined;function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (HEAPU8[c]) { - ret += embind_charCodes[HEAPU8[c++]]; - } - return ret; - } - - - var awaitingDependencies={}; - - var registeredTypes={}; - - var typeDependencies={}; - - - - - - - var char_0=48; - - var char_9=57;function makeLegalFunctionName(name) { - if (undefined === name) { - return '_unknown'; - } - name = name.replace(/[^a-zA-Z0-9_]/g, '$'); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return '_' + name; - } else { - return name; - } - }function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - /*jshint evil:true*/ - return new Function( - "body", - "return function " + name + "() {\n" + - " \"use strict\";" + - " return body.apply(this, arguments);\n" + - "};\n" - )(body); - }function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - - var stack = (new Error(message)).stack; - if (stack !== undefined) { - this.stack = this.toString() + '\n' + - stack.replace(/^Error(:[^\n]*)?\n/, ''); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === undefined) { - return this.name; - } else { - return this.name + ': ' + this.message; - } - }; - - return errorClass; - }var BindingError=undefined;function throwBindingError(message) { - throw new BindingError(message); - } - - - - var InternalError=undefined;function throwInternalError(message) { - throw new InternalError(message); - }function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - - function onComplete(typeConverters) { - var myTypeConverters = getTypeConverters(typeConverters); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError('Mismatched type converter count'); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach(function(dt, i) { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(function() { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (0 === unregisteredTypes.length) { - onComplete(typeConverters); - } - }function registerType(rawType, registeredInstance, options) { - options = options || {}; - - if (!('argPackAdvance' in registeredInstance)) { - throw new TypeError('registerType registeredInstance requires argPackAdvance'); - } - - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach(function(cb) { - cb(); - }); - } - }function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(wt) { - // ambiguous emscripten ABI: sometimes return values are - // true or false, and sometimes integers (0 or 1) - return !!wt; - }, - 'toWireType': function(destructors, o) { - return o ? trueValue : falseValue; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': function(pointer) { - // TODO: if heap is fixed (like in asm.js) this could be executed outside - var heap; - if (size === 1) { - heap = HEAP8; - } else if (size === 2) { - heap = HEAP16; - } else if (size === 4) { - heap = HEAP32; - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this['fromWireType'](heap[pointer >> shift]); - }, - destructorFunction: null, // This type does not need a destructor - }); - } - - - - - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - - return leftClass === rightClass && left === right; - } - - - function shallowCopyInternalPointer(o) { - return { - count: o.count, - deleteScheduled: o.deleteScheduled, - preservePointerOnDelete: o.preservePointerOnDelete, - ptr: o.ptr, - ptrType: o.ptrType, - smartPtr: o.smartPtr, - smartPtrType: o.smartPtrType, - }; - } - - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + ' instance already deleted'); - }function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = Object.create(Object.getPrototypeOf(this), { - $$: { - value: shallowCopyInternalPointer(this.$$), - } - }); - - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - - - function runDestructor(handle) { - var $$ = handle.$$; - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - }function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError('Object already scheduled for deletion'); - } - - this.$$.count.value -= 1; - var toDelete = 0 === this.$$.count.value; - if (toDelete) { - runDestructor(this); - } - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = undefined; - this.$$.ptr = undefined; - } - } - - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - - - var delayFunction=undefined; - - var deletionQueue=[]; - - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj['delete'](); - } - }function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError('Object already scheduled for deletion'); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - }function init_ClassHandle() { - ClassHandle.prototype['isAliasOf'] = ClassHandle_isAliasOf; - ClassHandle.prototype['clone'] = ClassHandle_clone; - ClassHandle.prototype['delete'] = ClassHandle_delete; - ClassHandle.prototype['isDeleted'] = ClassHandle_isDeleted; - ClassHandle.prototype['deleteLater'] = ClassHandle_deleteLater; - }function ClassHandle() { - } - - var registeredPointers={}; - - - function ensureOverloadTable(proto, methodName, humanName) { - if (undefined === proto[methodName].overloadTable) { - var prevFunc = proto[methodName]; - // Inject an overload resolver function that routes to the appropriate overload based on the number of arguments. - proto[methodName] = function() { - // TODO This check can be removed in -O3 level "unsafe" optimizations. - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - // Move the previous function into the overload table. - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - }function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (undefined === numArguments || (undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments])) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - - // We are exposing a function with the same name as an existing function. Create an overload table and a function selector - // that routes between the two. - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - // Add the new function into the overload table. - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - if (undefined !== numArguments) { - Module[name].numArguments = numArguments; - } - } - } - - function RegisteredClass( - name, - constructor, - instancePrototype, - rawDestructor, - baseClass, - getActualType, - upcast, - downcast - ) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - - - - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - }function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - return 0; - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - - if (this.isSmartPointer) { - // TODO: this is not strictly true - // We could support BY_EMVAL conversions from raw pointers to smart pointers - // because the smart pointer can hold a reference to the handle - if (undefined === handle.$$.smartPtr) { - throwBindingError('Passing raw pointer to smart pointer is illegal'); - } - - switch (this.sharingPolicy) { - case 0: // NONE - // no upcasting - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError('Cannot convert argument of type ' + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + ' to parameter type ' + this.name); - } - break; - - case 1: // INTRUSIVE - ptr = handle.$$.smartPtr; - break; - - case 2: // BY_EMVAL - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle['clone'](); - ptr = this.rawShare( - ptr, - __emval_register(function() { - clonedHandle['delete'](); - }) - ); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - - default: - throwBindingError('Unsupporting sharing policy'); - } - } - return ptr; - } - - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError('null is not a valid ' + this.name); - } - return 0; - } - - if (!handle.$$) { - throwBindingError('Cannot pass "' + _embind_repr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError('Cannot pass deleted object as a pointer of type ' + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError('Cannot convert argument of type ' + handle.$$.ptrType.name + ' to parameter type ' + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - - - function simpleReadValueFromPointer(pointer) { - return this['fromWireType'](HEAPU32[pointer >> 2]); - } - - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle['delete'](); - } - } - - - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (undefined === desiredClass.baseClass) { - return null; // no conversion - } - - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - - - - - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - }function init_embind() { - Module['getInheritedInstanceCount'] = getInheritedInstanceCount; - Module['getLiveInheritedInstances'] = getLiveInheritedInstances; - Module['flushPendingDeletes'] = flushPendingDeletes; - Module['setDelayFunction'] = setDelayFunction; - }var registeredInstances={}; - - function getBasestPointer(class_, ptr) { - if (ptr === undefined) { - throwBindingError('ptr should not be undefined'); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - }function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError('makeClassHandle requires ptr and ptrType'); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError('Both smartPtrType and smartPtr must be specified'); - } - record.count = { value: 1 }; - return Object.create(prototype, { - $$: { - value: record, - }, - }); - }function RegisteredPointer_fromWireType(ptr) { - // ptr is a raw pointer (or a raw smartpointer) - - // rawPointer is a maybe-null raw pointer - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (undefined !== registeredInstance) { - // JS object has been neutered, time to repopulate it - if (0 === registeredInstance.$$.count.value) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance['clone'](); - } else { - // else, just increment reference count on existing object - // it already has a reference to the smart pointer - var rv = registeredInstance['clone'](); - this.destructor(ptr); - return rv; - } - } - - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { - ptrType: this.pointeeType, - ptr: rawPointer, - smartPtrType: this, - smartPtr: ptr, - }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { - ptrType: this, - ptr: ptr, - }); - } - } - - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer( - rawPointer, - this.registeredClass, - toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { - ptrType: toType, - ptr: dp, - smartPtrType: this, - smartPtr: ptr, - }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { - ptrType: toType, - ptr: dp, - }); - } - }function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype['argPackAdvance'] = 8; - RegisteredPointer.prototype['readValueFromPointer'] = simpleReadValueFromPointer; - RegisteredPointer.prototype['deleteObject'] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype['fromWireType'] = RegisteredPointer_fromWireType; - }function RegisteredPointer( - name, - registeredClass, - isReference, - isConst, - - // smart pointer properties - isSmartPointer, - pointeeType, - sharingPolicy, - rawGetPointee, - rawConstructor, - rawShare, - rawDestructor - ) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - - // smart pointer properties - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - - if (!isSmartPointer && registeredClass.baseClass === undefined) { - if (isConst) { - this['toWireType'] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this['toWireType'] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this['toWireType'] = genericPointerToWireType; - // Here we must leave this.destructorFunction undefined, since whether genericPointerToWireType returns - // a pointer that needs to be freed up is runtime-dependent, and cannot be evaluated at registration time. - // TODO: Create an alternative mechanism that allows removing the use of var destructors = []; array in - // craftInvokerFunction altogether. - } - } - - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError('Replacing nonexistant public symbol'); - } - // If there's an overload table for this symbol, replace the symbol in the overload table instead. - if (undefined !== Module[name].overloadTable && undefined !== numArguments) { - Module[name].overloadTable[numArguments] = value; - } - else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - - function makeDynCaller(dynCall) { - var args = []; - for (var i = 1; i < signature.length; ++i) { - args.push('a' + i); - } - - var name = 'dynCall_' + signature + '_' + rawFunction; - var body = 'return function ' + name + '(' + args.join(', ') + ') {\n'; - body += ' return dynCall(rawFunction' + (args.length ? ', ' : '') + args.join(', ') + ');\n'; - body += '};\n'; - - return (new Function('dynCall', 'rawFunction', body))(dynCall, rawFunction); - } - - var fp; - if (Module['FUNCTION_TABLE_' + signature] !== undefined) { - fp = Module['FUNCTION_TABLE_' + signature][rawFunction]; - } else if (typeof FUNCTION_TABLE !== "undefined") { - fp = FUNCTION_TABLE[rawFunction]; - } else { - // asm.js does not give direct access to the function tables, - // and thus we must go through the dynCall interface which allows - // calling into a signature's function table by pointer value. - // - // https://github.com/dherman/asm.js/issues/83 - // - // This has three main penalties: - // - dynCall is another function call in the path from JavaScript to C++. - // - JITs may not predict through the function table indirection at runtime. - var dc = Module["asm"]['dynCall_' + signature]; - if (dc === undefined) { - // We will always enter this branch if the signature - // contains 'f' and PRECISE_F32 is not enabled. - // - // Try again, replacing 'f' with 'd'. - dc = Module["asm"]['dynCall_' + signature.replace(/f/g, 'd')]; - if (dc === undefined) { - throwBindingError("No dynCall invoker for signature: " + signature); - } - } - fp = makeDynCaller(dc); - } - - if (typeof fp !== "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - - - var UnboundTypeError=undefined; - - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - }function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - - throw new UnboundTypeError(message + ': ' + unboundTypes.map(getTypeName).join([', '])); - }function __embind_register_class( - rawType, - rawPointerType, - rawConstPointerType, - baseClassRawType, - getActualTypeSignature, - getActualType, - upcastSignature, - upcast, - downcastSignature, - downcast, - name, - destructorSignature, - rawDestructor - ) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - - exposePublicSymbol(legalFunctionName, function() { - // this code cannot run if baseClassRawType is zero - throwUnboundTypeError('Cannot construct ' + name + ' due to unbound types', [baseClassRawType]); - }); - - whenDependentTypesAreResolved( - [rawType, rawPointerType, rawConstPointerType], - baseClassRawType ? [baseClassRawType] : [], - function(base) { - base = base[0]; - - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (undefined === registeredClass.constructor_body) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (undefined === body) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - - var instancePrototype = Object.create(basePrototype, { - constructor: { value: constructor }, - }); - - constructor.prototype = instancePrototype; - - var registeredClass = new RegisteredClass( - name, - constructor, - instancePrototype, - rawDestructor, - baseClass, - getActualType, - upcast, - downcast); - - var referenceConverter = new RegisteredPointer( - name, - registeredClass, - true, - false, - false); - - var pointerConverter = new RegisteredPointer( - name + '*', - registeredClass, - false, - false, - false); - - var constPointerConverter = new RegisteredPointer( - name + ' const*', - registeredClass, - false, - true, - false); - - registeredPointers[rawType] = { - pointerType: pointerConverter, - constPointerType: constPointerConverter - }; - - replacePublicSymbol(legalFunctionName, constructor); - - return [referenceConverter, pointerConverter, constPointerConverter]; - } - ); - } - - - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(HEAP32[(firstElement >> 2) + i]); - } - return array; - } - - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - }function __embind_register_class_constructor( - rawClassType, - argCount, - rawArgTypesAddr, - invokerSignature, - invoker, - rawConstructor - ) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = 'constructor ' + classType.name; - - if (undefined === classType.registeredClass.constructor_body) { - classType.registeredClass.constructor_body = []; - } - if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount-1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = function unboundTypeHandler() { - throwUnboundTypeError('Cannot construct ' + classType.name + ' due to unbound types', rawArgTypes); - }; - - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - classType.registeredClass.constructor_body[argCount - 1] = function constructor_body() { - if (arguments.length !== argCount - 1) { - throwBindingError(humanName + ' called with ' + arguments.length + ' arguments, expected ' + (argCount-1)); - } - var destructors = []; - var args = new Array(argCount); - args[0] = rawConstructor; - for (var i = 1; i < argCount; ++i) { - args[i] = argTypes[i]['toWireType'](destructors, arguments[i - 1]); - } - - var ptr = invoker.apply(null, args); - runDestructors(destructors); - - return argTypes[0]['fromWireType'](ptr); - }; - return []; - }); - return []; - }); - } - - - - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError('new_ called with constructor type ' + typeof(constructor) + " which is not a function"); - } - - /* - * Previously, the following line was just: - - function dummy() {}; - - * Unfortunately, Chrome was preserving 'dummy' as the object's name, even though at creation, the 'dummy' has the - * correct constructor name. Thus, objects created with IMVU.new would show up in the debugger as 'dummy', which - * isn't very helpful. Using IMVU.createNamedFunction addresses the issue. Doublely-unfortunately, there's no way - * to write a test for this behavior. -NRD 2013.02.22 - */ - var dummy = createNamedFunction(constructor.name || 'unknownFunctionName', function(){}); - dummy.prototype = constructor.prototype; - var obj = new dummy; - - var r = constructor.apply(obj, argumentList); - return (r instanceof Object) ? r : obj; - }function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - // humanName: a human-readable string name for the function to be generated. - // argTypes: An array that contains the embind type objects for all types in the function signature. - // argTypes[0] is the type object for the function return value. - // argTypes[1] is the type object for function this object/class type, or null if not crafting an invoker for a class method. - // argTypes[2...] are the actual function parameters. - // classType: The embind type object for the class to be bound, or null if this is not a method of a class. - // cppInvokerFunc: JS Function object to the C++-side function that interops into C++ code. - // cppTargetFunc: Function pointer (an integer to FUNCTION_TABLE) to the target C++ function the cppInvokerFunc will end up calling. - var argCount = argTypes.length; - - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - - var isClassMethodFunc = (argTypes[1] !== null && classType !== null); - - // Free functions with signature "void function()" do not need an invoker that marshalls between wire types. - // TODO: This omits argument count check - enable only at -O3 or similar. - // if (ENABLE_UNSAFE_OPTS && argCount == 2 && argTypes[0].name == "void" && !isClassMethodFunc) { - // return FUNCTION_TABLE[fn]; - // } - - - // Determine if we need to use a dynamic stack to store the destructors for the function parameters. - // TODO: Remove this completely once all function invokers are being dynamically generated. - var needsDestructorStack = false; - - for(var i = 1; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. - if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) { // The type does not define a destructor function - must use dynamic stack - needsDestructorStack = true; - break; - } - } - - var returns = (argTypes[0].name !== "void"); - - var argsList = ""; - var argsListWired = ""; - for(var i = 0; i < argCount - 2; ++i) { - argsList += (i!==0?", ":"")+"arg"+i; - argsListWired += (i!==0?", ":"")+"arg"+i+"Wired"; - } - - var invokerFnBody = - "return function "+makeLegalFunctionName(humanName)+"("+argsList+") {\n" + - "if (arguments.length !== "+(argCount - 2)+") {\n" + - "throwBindingError('function "+humanName+" called with ' + arguments.length + ' arguments, expected "+(argCount - 2)+" args!');\n" + - "}\n"; - - - if (needsDestructorStack) { - invokerFnBody += - "var destructors = [];\n"; - } - - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - - - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType("+dtorStack+", this);\n"; - } - - for(var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg"+i+"Wired = argType"+i+".toWireType("+dtorStack+", arg"+i+"); // "+argTypes[i+2].name+"\n"; - args1.push("argType"+i); - args2.push(argTypes[i+2]); - } - - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - - invokerFnBody += - (returns?"var rv = ":"") + "invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n"; - - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for(var i = isClassMethodFunc?1:2; i < argTypes.length; ++i) { // Skip return value at index 0 - it's not deleted here. Also skip class type if not a method. - var paramName = (i === 1 ? "thisWired" : ("arg"+(i - 2)+"Wired")); - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName+"_dtor("+paramName+"); // "+argTypes[i].name+"\n"; - args1.push(paramName+"_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\n" + - "return ret;\n"; - } else { - } - invokerFnBody += "}\n"; - - args1.push(invokerFnBody); - - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - }function __embind_register_class_function( - rawClassType, - methodName, - argCount, - rawArgTypesAddr, // [ReturnType, ThisType, Args...] - invokerSignature, - rawInvoker, - context, - isPureVirtual - ) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + '.' + methodName; - - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - - function unboundTypesHandler() { - throwUnboundTypeError('Cannot call ' + humanName + ' due to unbound types', rawArgTypes); - } - - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (undefined === method || (undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2)) { - // This is the first overload to be registered, OR we are replacing a function in the base class with a function in the derived class. - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - // There was an existing function with the same name registered. Set up a function overload routing table. - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - - // Replace the initial unbound-handler-stub function with the appropriate member function, now that all types - // are resolved. If multiple overloads are registered for this function, the function goes into an overload table. - if (undefined === proto[methodName].overloadTable) { - // Set argCount in case an overload is registered later - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - - return []; - }); - return []; - }); - } - - - - var emval_free_list=[]; - - var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle) { - if (handle > 4 && 0 === --emval_handle_array[handle].refcount) { - emval_handle_array[handle] = undefined; - emval_free_list.push(handle); - } - } - - - - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - ++count; - } - } - return count; - } - - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== undefined) { - return emval_handle_array[i]; - } - } - return null; - }function init_emval() { - Module['count_emval_handles'] = count_emval_handles; - Module['get_first_emval'] = get_first_emval; - }function __emval_register(value) { - - switch(value){ - case undefined :{ return 1; } - case null :{ return 2; } - case true :{ return 3; } - case false :{ return 4; } - default:{ - var handle = emval_free_list.length ? - emval_free_list.pop() : - emval_handle_array.length; - - emval_handle_array[handle] = {refcount: 1, value: value}; - return handle; - } - } - }function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(handle) { - var rv = emval_handle_array[handle].value; - __emval_decref(handle); - return rv; - }, - 'toWireType': function(destructors, value) { - return __emval_register(value); - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: null, // This type does not need a destructor - - // TODO: do we need a deleteObject here? write a test where - // emval is passed into JS via an interface - }); - } - - - function _embind_repr(v) { - if (v === null) { - return 'null'; - } - var t = typeof v; - if (t === 'object' || t === 'array' || t === 'function') { - return v.toString(); - } else { - return '' + v; - } - } - - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: return function(pointer) { - return this['fromWireType'](HEAPF32[pointer >> 2]); - }; - case 3: return function(pointer) { - return this['fromWireType'](HEAPF64[pointer >> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - }function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - return value; - }, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following if() and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - return value; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': floatReadValueFromPointer(name, shift), - destructorFunction: null, // This type does not need a destructor - }); - } - - - function integerReadValueFromPointer(name, shift, signed) { - // integers are quite common, so generate very specialized functions - switch (shift) { - case 0: return signed ? - function readS8FromPointer(pointer) { return HEAP8[pointer]; } : - function readU8FromPointer(pointer) { return HEAPU8[pointer]; }; - case 1: return signed ? - function readS16FromPointer(pointer) { return HEAP16[pointer >> 1]; } : - function readU16FromPointer(pointer) { return HEAPU16[pointer >> 1]; }; - case 2: return signed ? - function readS32FromPointer(pointer) { return HEAP32[pointer >> 2]; } : - function readU32FromPointer(pointer) { return HEAPU32[pointer >> 2]; }; - default: - throw new TypeError("Unknown integer type: " + name); - } - }function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - if (maxRange === -1) { // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come out as 'i32 -1'. Always treat those as max u32. - maxRange = 4294967295; - } - - var shift = getShiftFromSize(size); - - var fromWireType = function(value) { - return value; - }; - - if (minRange === 0) { - var bitshift = 32 - 8*size; - fromWireType = function(value) { - return (value << bitshift) >>> bitshift; - }; - } - - var isUnsignedType = (name.indexOf('unsigned') != -1); - - registerType(primitiveType, { - name: name, - 'fromWireType': fromWireType, - 'toWireType': function(destructors, value) { - // todo: Here we have an opportunity for -O3 level "unsafe" optimizations: we could - // avoid the following two if()s and assume value is of proper type. - if (typeof value !== "number" && typeof value !== "boolean") { - throw new TypeError('Cannot convert "' + _embind_repr(value) + '" to ' + this.name); - } - if (value < minRange || value > maxRange) { - throw new TypeError('Passing a number "' + _embind_repr(value) + '" from JS side to C/C++ side to an argument of type "' + name + '", which is outside the valid range [' + minRange + ', ' + maxRange + ']!'); - } - return isUnsignedType ? (value >>> 0) : (value | 0); - }, - 'argPackAdvance': 8, - 'readValueFromPointer': integerReadValueFromPointer(name, shift, minRange !== 0), - destructorFunction: null, // This type does not need a destructor - }); - } - - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [ - Int8Array, - Uint8Array, - Int16Array, - Uint16Array, - Int32Array, - Uint32Array, - Float32Array, - Float64Array, - ]; - - var TA = typeMapping[dataTypeIndex]; - - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = HEAPU32; - var size = heap[handle]; // in elements - var data = heap[handle + 1]; // byte offset into emscripten heap - return new TA(heap['buffer'], data, size); - } - - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': decodeMemoryView, - 'argPackAdvance': 8, - 'readValueFromPointer': decodeMemoryView, - }, { - ignoreDuplicateRegistrations: true, - }); - } - - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - var length = HEAPU32[value >> 2]; - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAPU8[value + 4 + i]); - } - _free(value); - return a.join(''); - }, - 'toWireType': function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - - function getTAElement(ta, index) { - return ta[index]; - } - function getStringElement(string, index) { - return string.charCodeAt(index); - } - var getElement; - if (value instanceof Uint8Array) { - getElement = getTAElement; - } else if (value instanceof Uint8ClampedArray) { - getElement = getTAElement; - } else if (value instanceof Int8Array) { - getElement = getTAElement; - } else if (typeof value === 'string') { - getElement = getStringElement; - } else { - throwBindingError('Cannot pass non-string to std::string'); - } - - // assumes 4-byte alignment - var length = value.length; - var ptr = _malloc(4 + length); - HEAPU32[ptr >> 2] = length; - for (var i = 0; i < length; ++i) { - var charCode = getElement(value, i); - if (charCode > 255) { - _free(ptr); - throwBindingError('String has UTF-16 code units that do not fit in 8 bits'); - } - HEAPU8[ptr + 4 + i] = charCode; - } - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: function(ptr) { _free(ptr); }, - }); - } - - function __embind_register_std_wstring(rawType, charSize, name) { - // nb. do not cache HEAPU16 and HEAPU32, they may be destroyed by enlargeMemory(). - name = readLatin1String(name); - var getHeap, shift; - if (charSize === 2) { - getHeap = function() { return HEAPU16; }; - shift = 1; - } else if (charSize === 4) { - getHeap = function() { return HEAPU32; }; - shift = 2; - } - registerType(rawType, { - name: name, - 'fromWireType': function(value) { - var HEAP = getHeap(); - var length = HEAPU32[value >> 2]; - var a = new Array(length); - var start = (value + 4) >> shift; - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAP[start + i]); - } - _free(value); - return a.join(''); - }, - 'toWireType': function(destructors, value) { - // assumes 4-byte alignment - var HEAP = getHeap(); - var length = value.length; - var ptr = _malloc(4 + length * charSize); - HEAPU32[ptr >> 2] = length; - var start = (ptr + 4) >> shift; - for (var i = 0; i < length; ++i) { - HEAP[start + i] = value.charCodeAt(i); - } - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, - 'argPackAdvance': 8, - 'readValueFromPointer': simpleReadValueFromPointer, - destructorFunction: function(ptr) { _free(ptr); }, - }); - } - - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { - isVoid: true, // void return values can be optimized out sometimes - name: name, - 'argPackAdvance': 0, - 'fromWireType': function() { - return undefined; - }, - 'toWireType': function(destructors, o) { - // TODO: assert if anything else is given? - return undefined; - }, - }); - } - - function _abort() { - Module['abort'](); - } - - - - - - - - - - - - function _llvm_trap() { - abort('trap!'); - } - - - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.set(HEAPU8.subarray(src, src+num), dest); - return dest; - } - - - - - - - var PTHREAD_SPECIFIC={};function _pthread_getspecific(key) { - return PTHREAD_SPECIFIC[key] || 0; - } - - - var PTHREAD_SPECIFIC_NEXT_KEY=1; - - var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key, destructor) { - if (key == 0) { - return ERRNO_CODES.EINVAL; - } - HEAP32[((key)>>2)]=PTHREAD_SPECIFIC_NEXT_KEY; - // values start at 0 - PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY] = 0; - PTHREAD_SPECIFIC_NEXT_KEY++; - return 0; - } - - - - - - function _pthread_once(ptr, func) { - if (!_pthread_once.seen) _pthread_once.seen = {}; - if (ptr in _pthread_once.seen) return; - Module['dynCall_v'](func); - _pthread_once.seen[ptr] = 1; - } - - function _pthread_setspecific(key, value) { - if (!(key in PTHREAD_SPECIFIC)) { - return ERRNO_CODES.EINVAL; - } - PTHREAD_SPECIFIC[key] = value; - return 0; - } - - - function ___setErrNo(value) { - if (Module['___errno_location']) HEAP32[((Module['___errno_location']())>>2)]=value; - else Module.printErr('failed to set errno from JS'); - return value; - } -embind_init_charCodes(); -BindingError = Module['BindingError'] = extendError(Error, 'BindingError');; -InternalError = Module['InternalError'] = extendError(Error, 'InternalError');; -init_ClassHandle(); -init_RegisteredPointer(); -init_embind();; -UnboundTypeError = Module['UnboundTypeError'] = extendError(Error, 'UnboundTypeError');; -init_emval();; -DYNAMICTOP_PTR = staticAlloc(4); - -STACK_BASE = STACKTOP = alignMemory(STATICTOP); - -STACK_MAX = STACK_BASE + TOTAL_STACK; - -DYNAMIC_BASE = alignMemory(STACK_MAX); - -HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; - -staticSealed = true; // seal the static portion of memory - -assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); - -var ASSERTIONS = true; - -/** @type {function(string, boolean=, number=)} */ -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} - -function intArrayToString(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - var chr = array[i]; - if (chr > 0xFF) { - if (ASSERTIONS) { - assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); - } - chr &= 0xFF; - } - ret.push(String.fromCharCode(chr)); - } - return ret.join(''); -} - - -// Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149 - -// This code was written by Tyler Akins and has been placed in the -// public domain. It would be nice if you left this header intact. -// Base64 code from Tyler Akins -- http://rumkin.com - -/** - * Decodes a base64 string. - * @param {String} input The string to decode. - */ -var decodeBase64 = typeof atob === 'function' ? atob : function (input) { - var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - - var output = ''; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - // remove all characters that are not A-Z, a-z, 0-9, +, /, or = - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); - do { - enc1 = keyStr.indexOf(input.charAt(i++)); - enc2 = keyStr.indexOf(input.charAt(i++)); - enc3 = keyStr.indexOf(input.charAt(i++)); - enc4 = keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output = output + String.fromCharCode(chr1); - - if (enc3 !== 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 !== 64) { - output = output + String.fromCharCode(chr3); - } - } while (i < input.length); - return output; -}; - -// Converts a string of base64 into a byte array. -// Throws error on invalid input. -function intArrayFromBase64(s) { - if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) { - var buf; - try { - buf = Buffer.from(s, 'base64'); - } catch (_) { - buf = new Buffer(s, 'base64'); - } - return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); - } - - try { - var decoded = decodeBase64(s); - var bytes = new Uint8Array(decoded.length); - for (var i = 0 ; i < decoded.length ; ++i) { - bytes[i] = decoded.charCodeAt(i); - } - return bytes; - } catch (_) { - throw new Error('Converting base64 string to bytes failed.'); - } -} - -// If filename is a base64 data URI, parses and returns data (Buffer on node, -// Uint8Array otherwise). If filename is not a base64 data URI, returns undefined. -function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); -} - - - -function nullFunc_i(x) { Module["printErr"]("Invalid function pointer called with signature 'i'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_ii(x) { Module["printErr"]("Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iii(x) { Module["printErr"]("Invalid function pointer called with signature 'iii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_iiii(x) { Module["printErr"]("Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_v(x) { Module["printErr"]("Invalid function pointer called with signature 'v'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vi(x) { Module["printErr"]("Invalid function pointer called with signature 'vi'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_vii(x) { Module["printErr"]("Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viii(x) { Module["printErr"]("Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function nullFunc_viiiiii(x) { Module["printErr"]("Invalid function pointer called with signature 'viiiiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)"); Module["printErr"]("Build with ASSERTIONS=2 for more info.");abort(x) } - -function invoke_i(index) { - try { - return Module["dynCall_i"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_ii(index,a1) { - try { - return Module["dynCall_ii"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iii(index,a1,a2) { - try { - return Module["dynCall_iii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_iiii(index,a1,a2,a3) { - try { - return Module["dynCall_iiii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_v(index) { - try { - Module["dynCall_v"](index); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vi(index,a1) { - try { - Module["dynCall_vi"](index,a1); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_vii(index,a1,a2) { - try { - Module["dynCall_vii"](index,a1,a2); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viii(index,a1,a2,a3) { - try { - Module["dynCall_viii"](index,a1,a2,a3); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiii(index,a1,a2,a3,a4) { - try { - Module["dynCall_viiii"](index,a1,a2,a3,a4); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiii(index,a1,a2,a3,a4,a5) { - try { - Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) { - try { - Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6); - } catch(e) { - if (typeof e !== 'number' && e !== 'longjmp') throw e; - Module["setThrew"](1, 0); - } -} - -Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; - -Module.asmLibraryArg = { "abort": abort, "assert": assert, "enlargeMemory": enlargeMemory, "getTotalMemory": getTotalMemory, "abortOnCannotGrowMemory": abortOnCannotGrowMemory, "abortStackOverflow": abortStackOverflow, "nullFunc_i": nullFunc_i, "nullFunc_ii": nullFunc_ii, "nullFunc_iii": nullFunc_iii, "nullFunc_iiii": nullFunc_iiii, "nullFunc_v": nullFunc_v, "nullFunc_vi": nullFunc_vi, "nullFunc_vii": nullFunc_vii, "nullFunc_viii": nullFunc_viii, "nullFunc_viiii": nullFunc_viiii, "nullFunc_viiiii": nullFunc_viiiii, "nullFunc_viiiiii": nullFunc_viiiiii, "invoke_i": invoke_i, "invoke_ii": invoke_ii, "invoke_iii": invoke_iii, "invoke_iiii": invoke_iiii, "invoke_v": invoke_v, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_viii": invoke_viii, "invoke_viiii": invoke_viiii, "invoke_viiiii": invoke_viiiii, "invoke_viiiiii": invoke_viiiiii, "ClassHandle": ClassHandle, "ClassHandle_clone": ClassHandle_clone, "ClassHandle_delete": ClassHandle_delete, "ClassHandle_deleteLater": ClassHandle_deleteLater, "ClassHandle_isAliasOf": ClassHandle_isAliasOf, "ClassHandle_isDeleted": ClassHandle_isDeleted, "RegisteredClass": RegisteredClass, "RegisteredPointer": RegisteredPointer, "RegisteredPointer_deleteObject": RegisteredPointer_deleteObject, "RegisteredPointer_destructor": RegisteredPointer_destructor, "RegisteredPointer_fromWireType": RegisteredPointer_fromWireType, "RegisteredPointer_getPointee": RegisteredPointer_getPointee, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "___assert_fail": ___assert_fail, "___cxa_allocate_exception": ___cxa_allocate_exception, "___cxa_begin_catch": ___cxa_begin_catch, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "___cxa_pure_virtual": ___cxa_pure_virtual, "___cxa_throw": ___cxa_throw, "___gxx_personality_v0": ___gxx_personality_v0, "___lock": ___lock, "___resumeException": ___resumeException, "___setErrNo": ___setErrNo, "___syscall140": ___syscall140, "___syscall146": ___syscall146, "___syscall54": ___syscall54, "___syscall6": ___syscall6, "___unlock": ___unlock, "__embind_register_bool": __embind_register_bool, "__embind_register_class": __embind_register_class, "__embind_register_class_constructor": __embind_register_class_constructor, "__embind_register_class_function": __embind_register_class_function, "__embind_register_emval": __embind_register_emval, "__embind_register_float": __embind_register_float, "__embind_register_integer": __embind_register_integer, "__embind_register_memory_view": __embind_register_memory_view, "__embind_register_std_string": __embind_register_std_string, "__embind_register_std_wstring": __embind_register_std_wstring, "__embind_register_void": __embind_register_void, "__emval_decref": __emval_decref, "__emval_register": __emval_register, "_abort": _abort, "_embind_repr": _embind_repr, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_llvm_trap": _llvm_trap, "_pthread_getspecific": _pthread_getspecific, "_pthread_key_create": _pthread_key_create, "_pthread_once": _pthread_once, "_pthread_setspecific": _pthread_setspecific, "constNoSmartPtrRawPointerToWireType": constNoSmartPtrRawPointerToWireType, "count_emval_handles": count_emval_handles, "craftInvokerFunction": craftInvokerFunction, "createNamedFunction": createNamedFunction, "downcastPointer": downcastPointer, "embind__requireFunction": embind__requireFunction, "embind_init_charCodes": embind_init_charCodes, "ensureOverloadTable": ensureOverloadTable, "exposePublicSymbol": exposePublicSymbol, "extendError": extendError, "floatReadValueFromPointer": floatReadValueFromPointer, "flushPendingDeletes": flushPendingDeletes, "flush_NO_FILESYSTEM": flush_NO_FILESYSTEM, "genericPointerToWireType": genericPointerToWireType, "getBasestPointer": getBasestPointer, "getInheritedInstance": getInheritedInstance, "getInheritedInstanceCount": getInheritedInstanceCount, "getLiveInheritedInstances": getLiveInheritedInstances, "getShiftFromSize": getShiftFromSize, "getTypeName": getTypeName, "get_first_emval": get_first_emval, "heap32VectorToArray": heap32VectorToArray, "init_ClassHandle": init_ClassHandle, "init_RegisteredPointer": init_RegisteredPointer, "init_embind": init_embind, "init_emval": init_emval, "integerReadValueFromPointer": integerReadValueFromPointer, "makeClassHandle": makeClassHandle, "makeLegalFunctionName": makeLegalFunctionName, "new_": new_, "nonConstNoSmartPtrRawPointerToWireType": nonConstNoSmartPtrRawPointerToWireType, "readLatin1String": readLatin1String, "registerType": registerType, "replacePublicSymbol": replacePublicSymbol, "runDestructor": runDestructor, "runDestructors": runDestructors, "setDelayFunction": setDelayFunction, "shallowCopyInternalPointer": shallowCopyInternalPointer, "simpleReadValueFromPointer": simpleReadValueFromPointer, "throwBindingError": throwBindingError, "throwInstanceAlreadyDeleted": throwInstanceAlreadyDeleted, "throwInternalError": throwInternalError, "throwUnboundTypeError": throwUnboundTypeError, "upcastPointer": upcastPointer, "whenDependentTypesAreResolved": whenDependentTypesAreResolved, "DYNAMICTOP_PTR": DYNAMICTOP_PTR, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX }; -// EMSCRIPTEN_START_ASM -var asm = (/** @suppress {uselessCode} */ function(global, env, buffer) { -'almost asm'; - - - var HEAP8 = new global.Int8Array(buffer); - var HEAP16 = new global.Int16Array(buffer); - var HEAP32 = new global.Int32Array(buffer); - var HEAPU8 = new global.Uint8Array(buffer); - var HEAPU16 = new global.Uint16Array(buffer); - var HEAPU32 = new global.Uint32Array(buffer); - var HEAPF32 = new global.Float32Array(buffer); - var HEAPF64 = new global.Float64Array(buffer); - - var DYNAMICTOP_PTR=env.DYNAMICTOP_PTR|0; - var tempDoublePtr=env.tempDoublePtr|0; - var ABORT=env.ABORT|0; - var STACKTOP=env.STACKTOP|0; - var STACK_MAX=env.STACK_MAX|0; - - var __THREW__ = 0; - var threwValue = 0; - var setjmpId = 0; - var undef = 0; - var nan = global.NaN, inf = global.Infinity; - var tempInt = 0, tempBigInt = 0, tempBigIntS = 0, tempValue = 0, tempDouble = 0.0; - var tempRet0 = 0; - - var Math_floor=global.Math.floor; - var Math_abs=global.Math.abs; - var Math_sqrt=global.Math.sqrt; - var Math_pow=global.Math.pow; - var Math_cos=global.Math.cos; - var Math_sin=global.Math.sin; - var Math_tan=global.Math.tan; - var Math_acos=global.Math.acos; - var Math_asin=global.Math.asin; - var Math_atan=global.Math.atan; - var Math_atan2=global.Math.atan2; - var Math_exp=global.Math.exp; - var Math_log=global.Math.log; - var Math_ceil=global.Math.ceil; - var Math_imul=global.Math.imul; - var Math_min=global.Math.min; - var Math_max=global.Math.max; - var Math_clz32=global.Math.clz32; - var abort=env.abort; - var assert=env.assert; - var enlargeMemory=env.enlargeMemory; - var getTotalMemory=env.getTotalMemory; - var abortOnCannotGrowMemory=env.abortOnCannotGrowMemory; - var abortStackOverflow=env.abortStackOverflow; - var nullFunc_i=env.nullFunc_i; - var nullFunc_ii=env.nullFunc_ii; - var nullFunc_iii=env.nullFunc_iii; - var nullFunc_iiii=env.nullFunc_iiii; - var nullFunc_v=env.nullFunc_v; - var nullFunc_vi=env.nullFunc_vi; - var nullFunc_vii=env.nullFunc_vii; - var nullFunc_viii=env.nullFunc_viii; - var nullFunc_viiii=env.nullFunc_viiii; - var nullFunc_viiiii=env.nullFunc_viiiii; - var nullFunc_viiiiii=env.nullFunc_viiiiii; - var invoke_i=env.invoke_i; - var invoke_ii=env.invoke_ii; - var invoke_iii=env.invoke_iii; - var invoke_iiii=env.invoke_iiii; - var invoke_v=env.invoke_v; - var invoke_vi=env.invoke_vi; - var invoke_vii=env.invoke_vii; - var invoke_viii=env.invoke_viii; - var invoke_viiii=env.invoke_viiii; - var invoke_viiiii=env.invoke_viiiii; - var invoke_viiiiii=env.invoke_viiiiii; - var ClassHandle=env.ClassHandle; - var ClassHandle_clone=env.ClassHandle_clone; - var ClassHandle_delete=env.ClassHandle_delete; - var ClassHandle_deleteLater=env.ClassHandle_deleteLater; - var ClassHandle_isAliasOf=env.ClassHandle_isAliasOf; - var ClassHandle_isDeleted=env.ClassHandle_isDeleted; - var RegisteredClass=env.RegisteredClass; - var RegisteredPointer=env.RegisteredPointer; - var RegisteredPointer_deleteObject=env.RegisteredPointer_deleteObject; - var RegisteredPointer_destructor=env.RegisteredPointer_destructor; - var RegisteredPointer_fromWireType=env.RegisteredPointer_fromWireType; - var RegisteredPointer_getPointee=env.RegisteredPointer_getPointee; - var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv; - var ___assert_fail=env.___assert_fail; - var ___cxa_allocate_exception=env.___cxa_allocate_exception; - var ___cxa_begin_catch=env.___cxa_begin_catch; - var ___cxa_find_matching_catch=env.___cxa_find_matching_catch; - var ___cxa_pure_virtual=env.___cxa_pure_virtual; - var ___cxa_throw=env.___cxa_throw; - var ___gxx_personality_v0=env.___gxx_personality_v0; - var ___lock=env.___lock; - var ___resumeException=env.___resumeException; - var ___setErrNo=env.___setErrNo; - var ___syscall140=env.___syscall140; - var ___syscall146=env.___syscall146; - var ___syscall54=env.___syscall54; - var ___syscall6=env.___syscall6; - var ___unlock=env.___unlock; - var __embind_register_bool=env.__embind_register_bool; - var __embind_register_class=env.__embind_register_class; - var __embind_register_class_constructor=env.__embind_register_class_constructor; - var __embind_register_class_function=env.__embind_register_class_function; - var __embind_register_emval=env.__embind_register_emval; - var __embind_register_float=env.__embind_register_float; - var __embind_register_integer=env.__embind_register_integer; - var __embind_register_memory_view=env.__embind_register_memory_view; - var __embind_register_std_string=env.__embind_register_std_string; - var __embind_register_std_wstring=env.__embind_register_std_wstring; - var __embind_register_void=env.__embind_register_void; - var __emval_decref=env.__emval_decref; - var __emval_register=env.__emval_register; - var _abort=env._abort; - var _embind_repr=env._embind_repr; - var _emscripten_memcpy_big=env._emscripten_memcpy_big; - var _llvm_trap=env._llvm_trap; - var _pthread_getspecific=env._pthread_getspecific; - var _pthread_key_create=env._pthread_key_create; - var _pthread_once=env._pthread_once; - var _pthread_setspecific=env._pthread_setspecific; - var constNoSmartPtrRawPointerToWireType=env.constNoSmartPtrRawPointerToWireType; - var count_emval_handles=env.count_emval_handles; - var craftInvokerFunction=env.craftInvokerFunction; - var createNamedFunction=env.createNamedFunction; - var downcastPointer=env.downcastPointer; - var embind__requireFunction=env.embind__requireFunction; - var embind_init_charCodes=env.embind_init_charCodes; - var ensureOverloadTable=env.ensureOverloadTable; - var exposePublicSymbol=env.exposePublicSymbol; - var extendError=env.extendError; - var floatReadValueFromPointer=env.floatReadValueFromPointer; - var flushPendingDeletes=env.flushPendingDeletes; - var flush_NO_FILESYSTEM=env.flush_NO_FILESYSTEM; - var genericPointerToWireType=env.genericPointerToWireType; - var getBasestPointer=env.getBasestPointer; - var getInheritedInstance=env.getInheritedInstance; - var getInheritedInstanceCount=env.getInheritedInstanceCount; - var getLiveInheritedInstances=env.getLiveInheritedInstances; - var getShiftFromSize=env.getShiftFromSize; - var getTypeName=env.getTypeName; - var get_first_emval=env.get_first_emval; - var heap32VectorToArray=env.heap32VectorToArray; - var init_ClassHandle=env.init_ClassHandle; - var init_RegisteredPointer=env.init_RegisteredPointer; - var init_embind=env.init_embind; - var init_emval=env.init_emval; - var integerReadValueFromPointer=env.integerReadValueFromPointer; - var makeClassHandle=env.makeClassHandle; - var makeLegalFunctionName=env.makeLegalFunctionName; - var new_=env.new_; - var nonConstNoSmartPtrRawPointerToWireType=env.nonConstNoSmartPtrRawPointerToWireType; - var readLatin1String=env.readLatin1String; - var registerType=env.registerType; - var replacePublicSymbol=env.replacePublicSymbol; - var runDestructor=env.runDestructor; - var runDestructors=env.runDestructors; - var setDelayFunction=env.setDelayFunction; - var shallowCopyInternalPointer=env.shallowCopyInternalPointer; - var simpleReadValueFromPointer=env.simpleReadValueFromPointer; - var throwBindingError=env.throwBindingError; - var throwInstanceAlreadyDeleted=env.throwInstanceAlreadyDeleted; - var throwInternalError=env.throwInternalError; - var throwUnboundTypeError=env.throwUnboundTypeError; - var upcastPointer=env.upcastPointer; - var whenDependentTypesAreResolved=env.whenDependentTypesAreResolved; - var tempFloat = 0.0; - -// EMSCRIPTEN_START_FUNCS - -function stackAlloc(size) { - size = size|0; - var ret = 0; - ret = STACKTOP; - STACKTOP = (STACKTOP + size)|0; - STACKTOP = (STACKTOP + 15)&-16; - if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(size|0); - - return ret|0; -} -function stackSave() { - return STACKTOP|0; -} -function stackRestore(top) { - top = top|0; - STACKTOP = top; -} -function establishStackSpace(stackBase, stackMax) { - stackBase = stackBase|0; - stackMax = stackMax|0; - STACKTOP = stackBase; - STACK_MAX = stackMax; -} - -function setThrew(threw, value) { - threw = threw|0; - value = value|0; - if ((__THREW__|0) == 0) { - __THREW__ = threw; - threwValue = value; - } -} - -function setTempRet0(value) { - value = value|0; - tempRet0 = value; -} -function getTempRet0() { - return tempRet0|0; -} - -function ___cxx_global_var_init() { - var label = 0, sp = 0; - sp = STACKTOP; - __ZN38EmscriptenBindingInitializer_my_moduleC2Ev(21880); - return; -} -function __ZN38EmscriptenBindingInitializer_my_moduleC2Ev($0) { - $0 = $0|0; - var $$field = 0, $$field11 = 0, $$field14 = 0, $$field21 = 0, $$field24 = 0, $$field31 = 0, $$field34 = 0, $$field4 = 0, $$field41 = 0, $$field44 = 0, $$field51 = 0, $$field54 = 0, $$field61 = 0, $$field64 = 0, $$field71 = 0, $$field74 = 0, $$index1 = 0, $$index13 = 0, $$index17 = 0, $$index19 = 0; - var $$index23 = 0, $$index27 = 0, $$index29 = 0, $$index3 = 0, $$index33 = 0, $$index37 = 0, $$index39 = 0, $$index43 = 0, $$index47 = 0, $$index49 = 0, $$index53 = 0, $$index57 = 0, $$index59 = 0, $$index63 = 0, $$index67 = 0, $$index69 = 0, $$index7 = 0, $$index73 = 0, $$index77 = 0, $$index9 = 0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 496|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(496|0); - $4 = sp + 448|0; - $6 = sp + 481|0; - $7 = sp + 72|0; - $11 = sp + 424|0; - $13 = sp + 480|0; - $14 = sp + 64|0; - $18 = sp + 400|0; - $20 = sp + 479|0; - $21 = sp + 56|0; - $25 = sp + 376|0; - $27 = sp + 478|0; - $28 = sp + 48|0; - $32 = sp + 352|0; - $34 = sp + 477|0; - $35 = sp + 40|0; - $36 = sp + 32|0; - $40 = sp + 476|0; - $56 = sp + 264|0; - $58 = sp + 475|0; - $59 = sp + 24|0; - $63 = sp + 240|0; - $65 = sp + 474|0; - $66 = sp + 16|0; - $70 = sp + 216|0; - $72 = sp + 473|0; - $73 = sp + 8|0; - $74 = sp; - $78 = sp + 472|0; - $92 = sp + 471|0; - $93 = sp + 470|0; - $94 = sp + 136|0; - $95 = sp + 128|0; - $96 = sp + 120|0; - $97 = sp + 469|0; - $98 = sp + 468|0; - $99 = sp + 112|0; - $100 = sp + 104|0; - $101 = sp + 96|0; - $102 = sp + 88|0; - $103 = sp + 80|0; - $91 = $0; - $85 = $92; - $86 = 3768; - __ZN10emscripten8internal11NoBaseClass6verifyI6LASZipEEvv(); - $87 = 234; - $104 = (__ZN10emscripten8internal11NoBaseClass11getUpcasterI6LASZipEEPFvvEv()|0); - $88 = $104; - $105 = (__ZN10emscripten8internal11NoBaseClass13getDowncasterI6LASZipEEPFvvEv()|0); - $89 = $105; - $90 = 235; - $106 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $107 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI6LASZipEEE3getEv()|0); - $108 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK6LASZipEEE3getEv()|0); - $109 = (__ZN10emscripten8internal11NoBaseClass3getEv()|0); - $110 = $87; - $84 = $110; - $111 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $112 = $87; - $113 = $88; - $83 = $113; - $114 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $115 = $88; - $116 = $89; - $82 = $116; - $117 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $118 = $89; - $119 = $86; - $120 = $90; - $81 = $120; - $121 = (__ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv()|0); - $122 = $90; - __embind_register_class(($106|0),($107|0),($108|0),($109|0),($111|0),($112|0),($114|0),($115|0),($117|0),($118|0),($119|0),($121|0),($122|0)); - $80 = $92; - $123 = $80; - $76 = $123; - $77 = 236; - $124 = $76; - $79 = 237; - $125 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $126 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getCountEv($78)|0); - $127 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getTypesEv($78)|0); - $128 = $79; - $75 = $128; - $129 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $130 = $79; - $131 = $77; - __embind_register_class_constructor(($125|0),($126|0),($127|0),($129|0),($130|0),($131|0)); - HEAP32[$94>>2] = (238); - $$index1 = ((($94)) + 4|0); - HEAP32[$$index1>>2] = 0; - ;HEAP8[$73>>0]=HEAP8[$93>>0]|0; - ;HEAP8[$74>>0]=HEAP8[$94>>0]|0;HEAP8[$74+1>>0]=HEAP8[$94+1>>0]|0;HEAP8[$74+2>>0]=HEAP8[$94+2>>0]|0;HEAP8[$74+3>>0]=HEAP8[$94+3>>0]|0;HEAP8[$74+4>>0]=HEAP8[$94+4>>0]|0;HEAP8[$74+5>>0]=HEAP8[$94+5>>0]|0;HEAP8[$74+6>>0]=HEAP8[$94+6>>0]|0;HEAP8[$74+7>>0]=HEAP8[$94+7>>0]|0; - $$field = HEAP32[$74>>2]|0; - $$index3 = ((($74)) + 4|0); - $$field4 = HEAP32[$$index3>>2]|0; - $68 = $124; - $69 = 3775; - HEAP32[$70>>2] = $$field; - $$index7 = ((($70)) + 4|0); - HEAP32[$$index7>>2] = $$field4; - $132 = $68; - $71 = 239; - $133 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $134 = $69; - $135 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getCountEv($72)|0); - $136 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getTypesEv($72)|0); - $137 = $71; - $67 = $137; - $138 = (__ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv()|0); - $139 = $71; - $140 = (__ZN10emscripten8internal10getContextIM6LASZipFvjjEEEPT_RKS5_($70)|0); - __embind_register_class_function(($133|0),($134|0),($135|0),($136|0),($138|0),($139|0),($140|0),0); - HEAP32[$95>>2] = (240); - $$index9 = ((($95)) + 4|0); - HEAP32[$$index9>>2] = 0; - ;HEAP8[$66>>0]=HEAP8[$95>>0]|0;HEAP8[$66+1>>0]=HEAP8[$95+1>>0]|0;HEAP8[$66+2>>0]=HEAP8[$95+2>>0]|0;HEAP8[$66+3>>0]=HEAP8[$95+3>>0]|0;HEAP8[$66+4>>0]=HEAP8[$95+4>>0]|0;HEAP8[$66+5>>0]=HEAP8[$95+5>>0]|0;HEAP8[$66+6>>0]=HEAP8[$95+6>>0]|0;HEAP8[$66+7>>0]=HEAP8[$95+7>>0]|0; - $$field11 = HEAP32[$66>>2]|0; - $$index13 = ((($66)) + 4|0); - $$field14 = HEAP32[$$index13>>2]|0; - $61 = $132; - $62 = 3780; - HEAP32[$63>>2] = $$field11; - $$index17 = ((($63)) + 4|0); - HEAP32[$$index17>>2] = $$field14; - $141 = $61; - $64 = 241; - $142 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $143 = $62; - $144 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getCountEv($65)|0); - $145 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getTypesEv($65)|0); - $146 = $64; - $60 = $146; - $147 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $148 = $64; - $149 = (__ZN10emscripten8internal10getContextIM6LASZipFviEEEPT_RKS5_($63)|0); - __embind_register_class_function(($142|0),($143|0),($144|0),($145|0),($147|0),($148|0),($149|0),0); - HEAP32[$96>>2] = (242); - $$index19 = ((($96)) + 4|0); - HEAP32[$$index19>>2] = 0; - ;HEAP8[$59>>0]=HEAP8[$96>>0]|0;HEAP8[$59+1>>0]=HEAP8[$96+1>>0]|0;HEAP8[$59+2>>0]=HEAP8[$96+2>>0]|0;HEAP8[$59+3>>0]=HEAP8[$96+3>>0]|0;HEAP8[$59+4>>0]=HEAP8[$96+4>>0]|0;HEAP8[$59+5>>0]=HEAP8[$96+5>>0]|0;HEAP8[$59+6>>0]=HEAP8[$96+6>>0]|0;HEAP8[$59+7>>0]=HEAP8[$96+7>>0]|0; - $$field21 = HEAP32[$59>>2]|0; - $$index23 = ((($59)) + 4|0); - $$field24 = HEAP32[$$index23>>2]|0; - $54 = $141; - $55 = 3789; - HEAP32[$56>>2] = $$field21; - $$index27 = ((($56)) + 4|0); - HEAP32[$$index27>>2] = $$field24; - $57 = 243; - $150 = (__ZN10emscripten8internal6TypeIDI6LASZipE3getEv()|0); - $151 = $55; - $152 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getCountEv($58)|0); - $153 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getTypesEv($58)|0); - $154 = $57; - $53 = $154; - $155 = (__ZN10emscripten8internal19getGenericSignatureIJiiiEEEPKcv()|0); - $156 = $57; - $157 = (__ZN10emscripten8internal10getContextIM6LASZipFjvEEEPT_RKS5_($56)|0); - __embind_register_class_function(($150|0),($151|0),($152|0),($153|0),($155|0),($156|0),($157|0),0); - $47 = $97; - $48 = 3798; - __ZN10emscripten8internal11NoBaseClass6verifyI13DynamicLASZipEEvv(); - $49 = 244; - $158 = (__ZN10emscripten8internal11NoBaseClass11getUpcasterI13DynamicLASZipEEPFvvEv()|0); - $50 = $158; - $159 = (__ZN10emscripten8internal11NoBaseClass13getDowncasterI13DynamicLASZipEEPFvvEv()|0); - $51 = $159; - $52 = 245; - $160 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $161 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI13DynamicLASZipEEE3getEv()|0); - $162 = (__ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK13DynamicLASZipEEE3getEv()|0); - $163 = (__ZN10emscripten8internal11NoBaseClass3getEv()|0); - $164 = $49; - $46 = $164; - $165 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $166 = $49; - $167 = $50; - $45 = $167; - $168 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $169 = $50; - $170 = $51; - $44 = $170; - $171 = (__ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv()|0); - $172 = $51; - $173 = $48; - $174 = $52; - $43 = $174; - $175 = (__ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv()|0); - $176 = $52; - __embind_register_class(($160|0),($161|0),($162|0),($163|0),($165|0),($166|0),($168|0),($169|0),($171|0),($172|0),($173|0),($175|0),($176|0)); - $42 = $97; - $177 = $42; - $38 = $177; - $39 = 246; - $178 = $38; - $41 = 247; - $179 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $180 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getCountEv($40)|0); - $181 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getTypesEv($40)|0); - $182 = $41; - $37 = $182; - $183 = (__ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv()|0); - $184 = $41; - $185 = $39; - __embind_register_class_constructor(($179|0),($180|0),($181|0),($183|0),($184|0),($185|0)); - HEAP32[$99>>2] = (248); - $$index29 = ((($99)) + 4|0); - HEAP32[$$index29>>2] = 0; - ;HEAP8[$35>>0]=HEAP8[$98>>0]|0; - ;HEAP8[$36>>0]=HEAP8[$99>>0]|0;HEAP8[$36+1>>0]=HEAP8[$99+1>>0]|0;HEAP8[$36+2>>0]=HEAP8[$99+2>>0]|0;HEAP8[$36+3>>0]=HEAP8[$99+3>>0]|0;HEAP8[$36+4>>0]=HEAP8[$99+4>>0]|0;HEAP8[$36+5>>0]=HEAP8[$99+5>>0]|0;HEAP8[$36+6>>0]=HEAP8[$99+6>>0]|0;HEAP8[$36+7>>0]=HEAP8[$99+7>>0]|0; - $$field31 = HEAP32[$36>>2]|0; - $$index33 = ((($36)) + 4|0); - $$field34 = HEAP32[$$index33>>2]|0; - $30 = $178; - $31 = 3775; - HEAP32[$32>>2] = $$field31; - $$index37 = ((($32)) + 4|0); - HEAP32[$$index37>>2] = $$field34; - $186 = $30; - $33 = 249; - $187 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $188 = $31; - $189 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getCountEv($34)|0); - $190 = (__ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getTypesEv($34)|0); - $191 = $33; - $29 = $191; - $192 = (__ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv()|0); - $193 = $33; - $194 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjjEEEPT_RKS5_($32)|0); - __embind_register_class_function(($187|0),($188|0),($189|0),($190|0),($192|0),($193|0),($194|0),0); - HEAP32[$100>>2] = (250); - $$index39 = ((($100)) + 4|0); - HEAP32[$$index39>>2] = 0; - ;HEAP8[$28>>0]=HEAP8[$100>>0]|0;HEAP8[$28+1>>0]=HEAP8[$100+1>>0]|0;HEAP8[$28+2>>0]=HEAP8[$100+2>>0]|0;HEAP8[$28+3>>0]=HEAP8[$100+3>>0]|0;HEAP8[$28+4>>0]=HEAP8[$100+4>>0]|0;HEAP8[$28+5>>0]=HEAP8[$100+5>>0]|0;HEAP8[$28+6>>0]=HEAP8[$100+6>>0]|0;HEAP8[$28+7>>0]=HEAP8[$100+7>>0]|0; - $$field41 = HEAP32[$28>>2]|0; - $$index43 = ((($28)) + 4|0); - $$field44 = HEAP32[$$index43>>2]|0; - $23 = $186; - $24 = 3812; - HEAP32[$25>>2] = $$field41; - $$index47 = ((($25)) + 4|0); - HEAP32[$$index47>>2] = $$field44; - $195 = $23; - $26 = 251; - $196 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $197 = $24; - $198 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($27)|0); - $199 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($27)|0); - $200 = $26; - $22 = $200; - $201 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $202 = $26; - $203 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($25)|0); - __embind_register_class_function(($196|0),($197|0),($198|0),($199|0),($201|0),($202|0),($203|0),0); - HEAP32[$101>>2] = (252); - $$index49 = ((($101)) + 4|0); - HEAP32[$$index49>>2] = 0; - ;HEAP8[$21>>0]=HEAP8[$101>>0]|0;HEAP8[$21+1>>0]=HEAP8[$101+1>>0]|0;HEAP8[$21+2>>0]=HEAP8[$101+2>>0]|0;HEAP8[$21+3>>0]=HEAP8[$101+3>>0]|0;HEAP8[$21+4>>0]=HEAP8[$101+4>>0]|0;HEAP8[$21+5>>0]=HEAP8[$101+5>>0]|0;HEAP8[$21+6>>0]=HEAP8[$101+6>>0]|0;HEAP8[$21+7>>0]=HEAP8[$101+7>>0]|0; - $$field51 = HEAP32[$21>>2]|0; - $$index53 = ((($21)) + 4|0); - $$field54 = HEAP32[$$index53>>2]|0; - $16 = $195; - $17 = 3829; - HEAP32[$18>>2] = $$field51; - $$index57 = ((($18)) + 4|0); - HEAP32[$$index57>>2] = $$field54; - $204 = $16; - $19 = 251; - $205 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $206 = $17; - $207 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($20)|0); - $208 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($20)|0); - $209 = $19; - $15 = $209; - $210 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $211 = $19; - $212 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($18)|0); - __embind_register_class_function(($205|0),($206|0),($207|0),($208|0),($210|0),($211|0),($212|0),0); - HEAP32[$102>>2] = (253); - $$index59 = ((($102)) + 4|0); - HEAP32[$$index59>>2] = 0; - ;HEAP8[$14>>0]=HEAP8[$102>>0]|0;HEAP8[$14+1>>0]=HEAP8[$102+1>>0]|0;HEAP8[$14+2>>0]=HEAP8[$102+2>>0]|0;HEAP8[$14+3>>0]=HEAP8[$102+3>>0]|0;HEAP8[$14+4>>0]=HEAP8[$102+4>>0]|0;HEAP8[$14+5>>0]=HEAP8[$102+5>>0]|0;HEAP8[$14+6>>0]=HEAP8[$102+6>>0]|0;HEAP8[$14+7>>0]=HEAP8[$102+7>>0]|0; - $$field61 = HEAP32[$14>>2]|0; - $$index63 = ((($14)) + 4|0); - $$field64 = HEAP32[$$index63>>2]|0; - $9 = $204; - $10 = 3844; - HEAP32[$11>>2] = $$field61; - $$index67 = ((($11)) + 4|0); - HEAP32[$$index67>>2] = $$field64; - $213 = $9; - $12 = 251; - $214 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $215 = $10; - $216 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($13)|0); - $217 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($13)|0); - $218 = $12; - $8 = $218; - $219 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $220 = $12; - $221 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($11)|0); - __embind_register_class_function(($214|0),($215|0),($216|0),($217|0),($219|0),($220|0),($221|0),0); - HEAP32[$103>>2] = (254); - $$index69 = ((($103)) + 4|0); - HEAP32[$$index69>>2] = 0; - ;HEAP8[$7>>0]=HEAP8[$103>>0]|0;HEAP8[$7+1>>0]=HEAP8[$103+1>>0]|0;HEAP8[$7+2>>0]=HEAP8[$103+2>>0]|0;HEAP8[$7+3>>0]=HEAP8[$103+3>>0]|0;HEAP8[$7+4>>0]=HEAP8[$103+4>>0]|0;HEAP8[$7+5>>0]=HEAP8[$103+5>>0]|0;HEAP8[$7+6>>0]=HEAP8[$103+6>>0]|0;HEAP8[$7+7>>0]=HEAP8[$103+7>>0]|0; - $$field71 = HEAP32[$7>>2]|0; - $$index73 = ((($7)) + 4|0); - $$field74 = HEAP32[$$index73>>2]|0; - $2 = $213; - $3 = 3780; - HEAP32[$4>>2] = $$field71; - $$index77 = ((($4)) + 4|0); - HEAP32[$$index77>>2] = $$field74; - $5 = 255; - $222 = (__ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv()|0); - $223 = $3; - $224 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getCountEv($6)|0); - $225 = (__ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getTypesEv($6)|0); - $226 = $5; - $1 = $226; - $227 = (__ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv()|0); - $228 = $5; - $229 = (__ZN10emscripten8internal10getContextIM13DynamicLASZipFviEEEPT_RKS5_($4)|0); - __embind_register_class_function(($222|0),($223|0),($224|0),($225|0),($227|0),($228|0),($229|0),0); - STACKTOP = sp;return; -} -function __ZN6LASZip4openEjj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $$byval_copy1 = sp + 180|0; - $$byval_copy = sp + 176|0; - $8 = sp + 152|0; - $14 = sp + 128|0; - $19 = sp + 104|0; - $20 = sp + 100|0; - $27 = sp + 72|0; - $33 = sp + 48|0; - $38 = sp + 24|0; - $39 = sp + 16|0; - $40 = $0; - $41 = $1; - $42 = $2; - $44 = $40; - $45 = $41; - $46 = $45; - $43 = $46; - $47 = (__Znwj(20)|0); - $48 = $43; - $49 = $42; - __ZN6laszip7streams13memory_streamC2EPKci($47,$48,$49); - $36 = $44; - $37 = $47; - $50 = $36; - $51 = $37; - ;HEAP32[$39>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$39>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($38,$51,$$byval_copy); - $34 = $38; - $35 = $50; - $52 = $34; - $53 = $35; - $31 = $52; - $32 = $53; - $54 = $31; - $30 = $54; - $55 = $30; - $56 = HEAP32[$55>>2]|0; - HEAP32[$33>>2] = $56; - $57 = $32; - $28 = $57; - $58 = $28; - $59 = HEAP32[$58>>2]|0; - $60 = $31; - HEAP32[$60>>2] = $59; - $29 = $33; - $61 = $29; - $62 = HEAP32[$61>>2]|0; - $63 = $32; - HEAP32[$63>>2] = $62; - $64 = ((($52)) + 4|0); - $65 = $35; - $66 = ((($65)) + 4|0); - $25 = $64; - $26 = $66; - $67 = $25; - $24 = $67; - $68 = $24; - $69 = HEAP32[$68>>2]|0; - HEAP32[$27>>2] = $69; - $70 = $26; - $22 = $70; - $71 = $22; - $72 = HEAP32[$71>>2]|0; - $73 = $25; - HEAP32[$73>>2] = $72; - $23 = $27; - $74 = $23; - $75 = HEAP32[$74>>2]|0; - $76 = $26; - HEAP32[$76>>2] = $75; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($38); - $77 = ((($44)) + 8|0); - $78 = (__Znwj(352)|0); - $21 = $44; - $79 = $21; - $80 = HEAP32[$79>>2]|0; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEEC2ERS4_($78,$80); - $17 = $77; - $18 = $78; - $81 = $17; - $82 = $18; - ;HEAP32[$20>>2]=0|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$20>>2]|0; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEEC2IS7_EEPT_NS_9enable_ifIXsr14is_convertibleISB_PS7_EE5valueENS8_5__natEE4typeE($19,$82,$$byval_copy1); - $15 = $19; - $16 = $81; - $83 = $15; - $84 = $16; - $12 = $83; - $13 = $84; - $85 = $12; - $11 = $85; - $86 = $11; - $87 = HEAP32[$86>>2]|0; - HEAP32[$14>>2] = $87; - $88 = $13; - $9 = $88; - $89 = $9; - $90 = HEAP32[$89>>2]|0; - $91 = $12; - HEAP32[$91>>2] = $90; - $10 = $14; - $92 = $10; - $93 = HEAP32[$92>>2]|0; - $94 = $13; - HEAP32[$94>>2] = $93; - $95 = ((($83)) + 4|0); - $96 = $16; - $97 = ((($96)) + 4|0); - $6 = $95; - $7 = $97; - $98 = $6; - $5 = $98; - $99 = $5; - $100 = HEAP32[$99>>2]|0; - HEAP32[$8>>2] = $100; - $101 = $7; - $3 = $101; - $102 = $3; - $103 = HEAP32[$102>>2]|0; - $104 = $6; - HEAP32[$104>>2] = $103; - $4 = $8; - $105 = $4; - $106 = HEAP32[$105>>2]|0; - $107 = $7; - HEAP32[$107>>2] = $106; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($19); - STACKTOP = sp;return; -} -function __ZN6LASZip8getPointEi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $6 = $3; - $7 = $4; - $8 = $7; - $5 = $8; - $9 = ((($6)) + 8|0); - $2 = $9; - $10 = $2; - $11 = HEAP32[$10>>2]|0; - $12 = $5; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE9readPointEPc($11,$12); - STACKTOP = sp;return; -} -function __ZN6LASZip8getCountEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $4 = ((($3)) + 8|0); - $1 = $4; - $5 = $1; - $6 = HEAP32[$5>>2]|0; - $7 = (__ZNK6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10get_headerEv($6)|0); - $8 = ((($7)) + 107|0); - $9 = HEAPU8[$8>>0]|(HEAPU8[$8+1>>0]<<8)|(HEAPU8[$8+2>>0]<<16)|(HEAPU8[$8+3>>0]<<24); - STACKTOP = sp;return ($9|0); -} -function __ZN13DynamicLASZip4openEjj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $$byval_copy1 = sp + 280|0; - $$byval_copy = sp + 276|0; - $8 = sp + 252|0; - $14 = sp + 228|0; - $22 = sp + 192|0; - $29 = sp + 160|0; - $35 = sp + 136|0; - $40 = sp + 112|0; - $41 = sp + 108|0; - $48 = sp + 80|0; - $54 = sp + 56|0; - $59 = sp + 32|0; - $60 = sp + 24|0; - $65 = sp; - $61 = $0; - $62 = $1; - $63 = $2; - $66 = $61; - $67 = $62; - $68 = $67; - $64 = $68; - $69 = (__Znwj(12)|0); - $70 = $64; - $71 = $63; - __ZN10buf_streamC2EPhj($69,$70,$71); - $57 = $66; - $58 = $69; - $72 = $57; - $73 = $58; - ;HEAP32[$60>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$60>>2]|0; - __ZNSt3__210shared_ptrI10buf_streamEC2IS1_EEPT_NS_9enable_ifIXsr14is_convertibleIS5_PS1_EE5valueENS2_5__natEE4typeE($59,$73,$$byval_copy); - $55 = $59; - $56 = $72; - $74 = $55; - $75 = $56; - $52 = $74; - $53 = $75; - $76 = $52; - $51 = $76; - $77 = $51; - $78 = HEAP32[$77>>2]|0; - HEAP32[$54>>2] = $78; - $79 = $53; - $49 = $79; - $80 = $49; - $81 = HEAP32[$80>>2]|0; - $82 = $52; - HEAP32[$82>>2] = $81; - $50 = $54; - $83 = $50; - $84 = HEAP32[$83>>2]|0; - $85 = $53; - HEAP32[$85>>2] = $84; - $86 = ((($74)) + 4|0); - $87 = $56; - $88 = ((($87)) + 4|0); - $46 = $86; - $47 = $88; - $89 = $46; - $45 = $89; - $90 = $45; - $91 = HEAP32[$90>>2]|0; - HEAP32[$48>>2] = $91; - $92 = $47; - $43 = $92; - $93 = $43; - $94 = HEAP32[$93>>2]|0; - $95 = $46; - HEAP32[$95>>2] = $94; - $44 = $48; - $96 = $44; - $97 = HEAP32[$96>>2]|0; - $98 = $47; - HEAP32[$98>>2] = $97; - __ZNSt3__210shared_ptrI10buf_streamED2Ev($59); - $99 = ((($66)) + 8|0); - $100 = (__Znwj(12)|0); - $42 = $66; - $101 = $42; - $102 = HEAP32[$101>>2]|0; - __ZN6laszip8decoders10arithmeticI10buf_streamEC2ERS2_($100,$102); - $38 = $99; - $39 = $100; - $103 = $38; - $104 = $39; - ;HEAP32[$41>>2]=0|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$41>>2]|0; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEEC2IS5_EEPT_NS_9enable_ifIXsr14is_convertibleIS9_PS5_EE5valueENS6_5__natEE4typeE($40,$104,$$byval_copy1); - $36 = $40; - $37 = $103; - $105 = $36; - $106 = $37; - $33 = $105; - $34 = $106; - $107 = $33; - $32 = $107; - $108 = $32; - $109 = HEAP32[$108>>2]|0; - HEAP32[$35>>2] = $109; - $110 = $34; - $30 = $110; - $111 = $30; - $112 = HEAP32[$111>>2]|0; - $113 = $33; - HEAP32[$113>>2] = $112; - $31 = $35; - $114 = $31; - $115 = HEAP32[$114>>2]|0; - $116 = $34; - HEAP32[$116>>2] = $115; - $117 = ((($105)) + 4|0); - $118 = $37; - $119 = ((($118)) + 4|0); - $27 = $117; - $28 = $119; - $120 = $27; - $26 = $120; - $121 = $26; - $122 = HEAP32[$121>>2]|0; - HEAP32[$29>>2] = $122; - $123 = $28; - $24 = $123; - $124 = $24; - $125 = HEAP32[$124>>2]|0; - $126 = $27; - HEAP32[$126>>2] = $125; - $25 = $29; - $127 = $25; - $128 = HEAP32[$127>>2]|0; - $129 = $28; - HEAP32[$129>>2] = $128; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($40); - $130 = ((($66)) + 8|0); - $23 = $130; - $131 = $23; - $132 = HEAP32[$131>>2]|0; - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticI10buf_streamEEEENS0_26dynamic_field_decompressorIT_E3ptrERS7_($65,$132); - $133 = ((($66)) + 16|0); - $20 = $133; - $21 = $65; - $134 = $20; - $135 = $21; - $19 = $135; - $136 = $19; - $17 = $22; - $18 = $136; - $137 = $17; - $138 = $18; - $139 = HEAP32[$138>>2]|0; - HEAP32[$137>>2] = $139; - $140 = ((($137)) + 4|0); - $141 = $18; - $142 = ((($141)) + 4|0); - $143 = HEAP32[$142>>2]|0; - HEAP32[$140>>2] = $143; - $144 = $18; - HEAP32[$144>>2] = 0; - $145 = $18; - $146 = ((($145)) + 4|0); - HEAP32[$146>>2] = 0; - $15 = $22; - $16 = $134; - $147 = $15; - $148 = $16; - $12 = $147; - $13 = $148; - $149 = $12; - $11 = $149; - $150 = $11; - $151 = HEAP32[$150>>2]|0; - HEAP32[$14>>2] = $151; - $152 = $13; - $9 = $152; - $153 = $9; - $154 = HEAP32[$153>>2]|0; - $155 = $12; - HEAP32[$155>>2] = $154; - $10 = $14; - $156 = $10; - $157 = HEAP32[$156>>2]|0; - $158 = $13; - HEAP32[$158>>2] = $157; - $159 = ((($147)) + 4|0); - $160 = $16; - $161 = ((($160)) + 4|0); - $6 = $159; - $7 = $161; - $162 = $6; - $5 = $162; - $163 = $5; - $164 = HEAP32[$163>>2]|0; - HEAP32[$8>>2] = $164; - $165 = $7; - $3 = $165; - $166 = $3; - $167 = HEAP32[$166>>2]|0; - $168 = $6; - HEAP32[$168>>2] = $167; - $4 = $8; - $169 = $4; - $170 = HEAP32[$169>>2]|0; - $171 = $7; - HEAP32[$171>>2] = $170; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($22); - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($65); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip16addFieldFloatingEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $0; - $8 = $1; - $9 = $7; - $10 = ((($9)) + 16|0); - $6 = $10; - $11 = $6; - $5 = $11; - $12 = $5; - $13 = HEAP32[$12>>2]|0; - $14 = ($13|0)!=(0|0); - if (!($14)) { - STACKTOP = sp;return; - } - $15 = $8; - switch ($15|0) { - case 4: { - $16 = ((($9)) + 16|0); - $4 = $16; - $17 = $4; - $18 = HEAP32[$17>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($18); - STACKTOP = sp;return; - break; - } - case 8: { - $19 = ((($9)) + 16|0); - $2 = $19; - $20 = $2; - $21 = HEAP32[$20>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($21); - $22 = ((($9)) + 16|0); - $3 = $22; - $23 = $3; - $24 = HEAP32[$23>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($24); - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function __ZN13DynamicLASZip14addFieldSignedEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $11 = ((($10)) + 16|0); - $7 = $11; - $12 = $7; - $6 = $12; - $13 = $6; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = $9; - switch ($16|0) { - case 1: { - $17 = ((($10)) + 16|0); - $5 = $17; - $18 = $5; - $19 = HEAP32[$18>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIaEEvv($19); - STACKTOP = sp;return; - break; - } - case 2: { - $20 = ((($10)) + 16|0); - $3 = $20; - $21 = $3; - $22 = HEAP32[$21>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIsEEvv($22); - STACKTOP = sp;return; - break; - } - case 8: { - $23 = ((($10)) + 16|0); - $2 = $23; - $24 = $2; - $25 = HEAP32[$24>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($25); - break; - } - case 4: { - break; - } - default: { - STACKTOP = sp;return; - } - } - $26 = ((($10)) + 16|0); - $4 = $26; - $27 = $4; - $28 = HEAP32[$27>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($28); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip16addFieldUnsignedEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $11 = ((($10)) + 16|0); - $7 = $11; - $12 = $7; - $6 = $12; - $13 = $6; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = $9; - switch ($16|0) { - case 1: { - $17 = ((($10)) + 16|0); - $5 = $17; - $18 = $5; - $19 = HEAP32[$18>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIhEEvv($19); - STACKTOP = sp;return; - break; - } - case 2: { - $20 = ((($10)) + 16|0); - $3 = $20; - $21 = $3; - $22 = HEAP32[$21>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldItEEvv($22); - STACKTOP = sp;return; - break; - } - case 8: { - $23 = ((($10)) + 16|0); - $2 = $23; - $24 = $2; - $25 = HEAP32[$24>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($25); - break; - } - case 4: { - break; - } - default: { - STACKTOP = sp;return; - } - } - $26 = ((($10)) + 16|0); - $4 = $26; - $27 = $4; - $28 = HEAP32[$27>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($28); - STACKTOP = sp;return; -} -function __ZN13DynamicLASZip8getPointEi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $8 = $5; - $9 = $6; - $10 = $9; - $7 = $10; - $11 = ((($8)) + 16|0); - $4 = $11; - $12 = $4; - $3 = $12; - $13 = $3; - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = ((($8)) + 16|0); - $2 = $16; - $17 = $2; - $18 = HEAP32[$17>>2]|0; - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = $7; - (FUNCTION_TABLE_iii[$20 & 255]($18,$21)|0); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_streamC2EPKci($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - HEAP32[$6>>2] = $7; - $8 = ((($6)) + 4|0); - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($6)) + 8|0); - HEAP32[$10>>2] = 0; - $11 = ((($6)) + 12|0); - HEAP8[$11>>0] = 0; - $12 = ((($6)) + 13|0); - HEAP8[$12>>0] = 0; - $13 = ((($6)) + 16|0); - HEAP32[$13>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEEC2ERS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 12|0; - $16 = $0; - $17 = $1; - $18 = $16; - $19 = $17; - HEAP32[$18>>2] = $19; - $20 = ((($18)) + 4|0); - $21 = HEAP32[$18>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($20,$21); - $22 = ((($18)) + 247|0); - __ZN6laszip2io7laz_vlrC2Ev($22); - $23 = ((($18)) + 288|0); - $15 = $23; - $24 = $15; - $13 = $24; - $25 = $13; - $12 = $25; - HEAP32[$25>>2] = 0; - $26 = ((($25)) + 4|0); - HEAP32[$26>>2] = 0; - $27 = ((($25)) + 8|0); - HEAP32[$14>>2] = 0; - $10 = $27; - $11 = $14; - $28 = $10; - $29 = $11; - $9 = $29; - $30 = $9; - $5 = $28; - $6 = $30; - $31 = $5; - $32 = $6; - $4 = $32; - HEAP32[$31>>2] = 0; - $8 = $28; - $33 = $8; - $7 = $33; - $34 = ((($18)) + 300|0); - __ZN6laszip7factory13record_schemaC2Ev($34); - $35 = ((($18)) + 312|0); - $3 = $35; - $36 = $3; - HEAP32[$36>>2] = 0; - $37 = ((($36)) + 4|0); - HEAP32[$37>>2] = 0; - $38 = ((($18)) + 320|0); - $2 = $38; - $39 = $2; - HEAP32[$39>>2] = 0; - $40 = ((($39)) + 4|0); - HEAP32[$40>>2] = 0; - $41 = ((($18)) + 328|0); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE13__chunk_stateC2Ev($41); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE5_openEv($18); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEEC2IS3_EEPT_NS_9enable_ifIXsr14is_convertibleIS7_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1584); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function ___clang_call_terminate($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - (___cxa_begin_catch(($0|0))|0); - __ZSt9terminatev(); - // unreachable; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 24; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEEC2IS7_EEPT_NS_9enable_ifIXsr14is_convertibleISB_PS7_EE5valueENS8_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1612); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 48; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($3); - $4 = ((($2)) + 312|0); - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($4); - $5 = ((($2)) + 300|0); - __ZN6laszip7factory13record_schemaD2Ev($5); - $6 = ((($2)) + 288|0); - __ZNSt3__26vectorIyNS_9allocatorIyEEED2Ev($6); - $7 = ((($2)) + 247|0); - __ZN6laszip2io7laz_vlrD2Ev($7); - $8 = ((($2)) + 4|0); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($8); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIyNS_9allocatorIyEEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlrD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 34|0); - $4 = HEAPU8[$3>>0]|(HEAPU8[$3+1>>0]<<8)|(HEAPU8[$3+2>>0]<<16)|(HEAPU8[$3+3>>0]<<24); - $5 = ($4|0)==(0|0); - if ($5) { - STACKTOP = sp;return; - } - __ZdaPv($4); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - $4 = HEAP32[$3>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($4); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIN6laszip7factory11record_itemENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -12|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $71 = (($70|0) / 12)&-1; - $12 = $59; - $13 = $60; - $14 = $71; - $72 = $12; - $73 = $13; - $74 = $14; - $9 = $72; - $10 = $73; - $11 = $74; - $75 = $10; - $8 = $75; - $76 = $8; - __ZdlPv($76); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIyNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -8|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $71 = (($70|0) / 8)&-1; - $12 = $59; - $13 = $60; - $14 = $71; - $72 = $12; - $73 = $13; - $74 = $14; - $9 = $72; - $10 = $73; - $11 = $74; - $75 = $10; - $8 = $75; - $76 = $8; - __ZdlPv($76); - STACKTOP = sp;return; -} -function __ZN6laszip5utilsL12aligned_freeEPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + -4|0); - $4 = HEAP32[$3>>2]|0; - _free($4); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = 0; - $8 = ((($4)) + 12|0); - $9 = (__ZN6laszip5utilsL14aligned_mallocEi(1048576)|0); - HEAP32[$8>>2] = $9; - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlrC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=0>>8; - $4 = ((($2)) + 34|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=(0>>8)&255;HEAP8[$4+2>>0]=(0>>16)&255;HEAP8[$4+3>>0]=0>>24; - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $11 = sp + 8|0; - $13 = $0; - $14 = $13; - $12 = $14; - $15 = $12; - $10 = $15; - $16 = $10; - $9 = $16; - HEAP32[$16>>2] = 0; - $17 = ((($16)) + 4|0); - HEAP32[$17>>2] = 0; - $18 = ((($16)) + 8|0); - HEAP32[$11>>2] = 0; - $7 = $18; - $8 = $11; - $19 = $7; - $20 = $8; - $6 = $20; - $21 = $6; - $2 = $19; - $3 = $21; - $22 = $2; - $23 = $3; - $1 = $23; - HEAP32[$22>>2] = 0; - $5 = $19; - $24 = $5; - $4 = $24; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE13__chunk_stateC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2; - $4 = $3; - HEAP32[$4>>2] = 0; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP32[$6>>2] = 0; - $7 = ((($2)) + 8|0); - $8 = $7; - $9 = $8; - HEAP32[$9>>2] = 0; - $10 = (($8) + 4)|0; - $11 = $10; - HEAP32[$11>>2] = 0; - $12 = ((($2)) + 16|0); - $13 = $12; - $14 = $13; - HEAP32[$14>>2] = -1; - $15 = (($13) + 4)|0; - $16 = $15; - HEAP32[$16>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE5_openEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$expand_i1_val = 0, $$expand_i1_val3 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0; - var $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0; - var $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0; - var $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0; - var $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; - var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $$byval_copy1 = sp + 88|0; - $$byval_copy = sp + 72|0; - $3 = sp + 64|0; - $13 = sp + 268|0; - $16 = sp + 256|0; - $20 = sp + 240|0; - $23 = sp + 228|0; - $26 = sp + 56|0; - $37 = sp + 320|0; - $51 = sp + 316|0; - $52 = sp + 116|0; - $53 = sp + 40|0; - $55 = sp + 108|0; - $56 = sp + 104|0; - $57 = sp + 16|0; - $58 = sp; - $50 = $0; - $59 = $50; - $60 = HEAP32[$59>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($60,$51,4); - $61 = ((($51)) + 4|0); - $47 = $52; - $48 = $51; - $49 = $61; - $62 = $47; - $46 = $62; - $63 = $46; - $45 = $63; - $64 = $45; - ;HEAP32[$64>>2]=0|0;HEAP32[$64+4>>2]=0|0;HEAP32[$64+8>>2]=0|0; - $44 = $63; - $65 = $44; - $43 = $65; - $66 = $48; - $67 = $49; - __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES9_S9_($62,$66,$67); - $41 = $52; - $42 = 4257; - $68 = $41; - $69 = $42; - $38 = $68; - $39 = $69; - $70 = $39; - $71 = (__ZNSt3__211char_traitsIcE6lengthEPKc($70)|0); - $40 = $71; - $72 = $40; - $73 = $38; - $36 = $73; - $74 = $36; - $35 = $74; - $75 = $35; - $34 = $75; - $76 = $34; - $33 = $76; - $77 = $33; - $78 = ((($77)) + 11|0); - $79 = HEAP8[$78>>0]|0; - $80 = $79&255; - $81 = $80 & 128; - $82 = ($81|0)!=(0); - if ($82) { - $29 = $74; - $83 = $29; - $28 = $83; - $84 = $28; - $27 = $84; - $85 = $27; - $86 = ((($85)) + 4|0); - $87 = HEAP32[$86>>2]|0; - $95 = $87; - } else { - $32 = $74; - $88 = $32; - $31 = $88; - $89 = $31; - $30 = $89; - $90 = $30; - $91 = ((($90)) + 11|0); - $92 = HEAP8[$91>>0]|0; - $93 = $92&255; - $95 = $93; - } - $94 = ($72|0)!=($95|0); - if ($94) { - $$expand_i1_val = 0; - HEAP8[$37>>0] = $$expand_i1_val; - } else { - $96 = $38; - $97 = $39; - $98 = $40; - $99 = (__ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7compareEjjPKcj($96,0,-1,$97,$98)|0); - $100 = ($99|0)==(0); - $$expand_i1_val3 = $100&1; - HEAP8[$37>>0] = $$expand_i1_val3; - } - $$pre_trunc = HEAP8[$37>>0]|0; - $101 = $$pre_trunc&1; - $102 = $101 ^ 1; - __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($52); - if ($102) { - $103 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13invalid_magicC2Ev($103); - ___cxa_throw(($103|0),(56|0),(11|0)); - // unreachable; - } - $104 = HEAP32[$59>>2]|0; - $25 = $53; - $105 = $26; - $106 = $105; - HEAP32[$106>>2] = 0; - $107 = (($105) + 4)|0; - $108 = $107; - HEAP32[$108>>2] = 0; - $109 = $25; - ;HEAP32[$109>>2]=0|0;HEAP32[$109+4>>2]=0|0; - $110 = ((($109)) + 8|0); - $111 = $26; - $112 = $111; - $113 = HEAP32[$112>>2]|0; - $114 = (($111) + 4)|0; - $115 = $114; - $116 = HEAP32[$115>>2]|0; - $117 = $110; - $118 = $117; - HEAP32[$118>>2] = $113; - $119 = (($117) + 4)|0; - $120 = $119; - HEAP32[$120>>2] = $116; - ;HEAP32[$$byval_copy>>2]=HEAP32[$53>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$53+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$53+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$53+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($104,$$byval_copy); - $121 = HEAP32[$59>>2]|0; - $122 = ((($59)) + 20|0); - __ZN6laszip7streams13memory_stream4readEPci($121,$122,227); - $123 = ((($59)) + 20|0); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10_fixMinMaxERNS0_6headerE($59,$123); - $124 = (__ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEv()|0); - $54 = $124; - $125 = $54; - $24 = $125; - $126 = $24; - $127 = HEAP32[$126>>2]|0; - $21 = $126; - $22 = $127; - $128 = $22; - $18 = $20; - $19 = $128; - $129 = $18; - $130 = $19; - HEAP32[$129>>2] = $130; - $131 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $131; - $132 = HEAP32[$23>>2]|0; - HEAP32[$55>>2] = $132; - $133 = $54; - $17 = $133; - $134 = $17; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $14 = $134; - $15 = $136; - $137 = $15; - $11 = $13; - $12 = $137; - $138 = $11; - $139 = $12; - HEAP32[$138>>2] = $139; - $140 = HEAP32[$13>>2]|0; - HEAP32[$16>>2] = $140; - $141 = HEAP32[$16>>2]|0; - HEAP32[$56>>2] = $141; - while(1) { - $9 = $55; - $10 = $56; - $142 = $9; - $143 = $10; - $7 = $142; - $8 = $143; - $144 = $7; - $6 = $144; - $145 = $6; - $146 = HEAP32[$145>>2]|0; - $147 = $8; - $5 = $147; - $148 = $5; - $149 = HEAP32[$148>>2]|0; - $150 = ($146|0)==($149|0); - $151 = $150 ^ 1; - if (!($151)) { - break; - } - $4 = $55; - $152 = $4; - $153 = HEAP32[$152>>2]|0; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2ERKS6_($57,$153); - $154 = ((($59)) + 20|0); - __ZNKSt3__28functionIFvRN6laszip2io6headerEEEclES4_($57,$154); - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($57); - $1 = $55; - $155 = $1; - $156 = HEAP32[$155>>2]|0; - $157 = ((($156)) + 24|0); - HEAP32[$155>>2] = $157; - } - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE12_parseLASZIPEv($59); - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE16_parseChunkTableEv($59); - $158 = HEAP32[$59>>2]|0; - __ZN6laszip7streams13memory_stream5clearEv($158); - $159 = HEAP32[$59>>2]|0; - $160 = ((($59)) + 20|0); - $161 = ((($160)) + 96|0); - $162 = HEAP32[$161>>2]|0; - $163 = (($162) + 8)|0; - $2 = $58; - $164 = $3; - $165 = $164; - HEAP32[$165>>2] = $163; - $166 = (($164) + 4)|0; - $167 = $166; - HEAP32[$167>>2] = 0; - $168 = $2; - ;HEAP32[$168>>2]=0|0;HEAP32[$168+4>>2]=0|0; - $169 = ((($168)) + 8|0); - $170 = $3; - $171 = $170; - $172 = HEAP32[$171>>2]|0; - $173 = (($170) + 4)|0; - $174 = $173; - $175 = HEAP32[$174>>2]|0; - $176 = $169; - $177 = $176; - HEAP32[$177>>2] = $172; - $178 = (($176) + 4)|0; - $179 = $178; - HEAP32[$179>>2] = $175; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$58>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$58+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$58+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$58+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($159,$$byval_copy1); - $180 = ((($59)) + 4|0); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE5resetEv($180); - STACKTOP = sp;return; -} -function __ZN6laszip5utilsL14aligned_mallocEi($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = (($4) + 64)|0; - $6 = (($5) + 4)|0; - $7 = (_malloc($6)|0); - $2 = $7; - $8 = $2; - $9 = $8; - $10 = (($9) + 64)|0; - $11 = (($10) + 4)|0; - $12 = $11 & -64; - $13 = $12; - $3 = $13; - $14 = $2; - $15 = $3; - $16 = ((($15)) + -4|0); - HEAP32[$16>>2] = $14; - $17 = $3; - STACKTOP = sp;return ($17|0); -} -function __ZN6laszip7streams13memory_stream4readEPci($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $18 = sp; - $21 = sp + 92|0; - $24 = sp + 12|0; - $26 = sp + 4|0; - $22 = $0; - $23 = $1; - HEAP32[$24>>2] = $2; - $27 = $22; - $28 = ((($27)) + 13|0); - $29 = HEAP8[$28>>0]|0; - $30 = $29&1; - if ($30) { - $31 = ((($27)) + 12|0); - HEAP8[$31>>0] = 1; - STACKTOP = sp;return; - } - $32 = ((($27)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ((($27)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = (($33) - ($35))|0; - HEAP32[$26>>2] = $36; - $19 = $24; - $20 = $26; - $37 = $19; - $38 = $20; - ;HEAP8[$18>>0]=HEAP8[$21>>0]|0; - $16 = $37; - $17 = $38; - $39 = $17; - $40 = $16; - $13 = $18; - $14 = $39; - $15 = $40; - $41 = $14; - $42 = HEAP32[$41>>2]|0; - $43 = $15; - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)<($44|0); - $46 = $17; - $47 = $16; - $48 = $45 ? $46 : $47; - $49 = HEAP32[$48>>2]|0; - $25 = $49; - $50 = HEAP32[$27>>2]|0; - $51 = ((($27)) + 8|0); - $52 = HEAP32[$51>>2]|0; - $53 = (($50) + ($52)|0); - $54 = HEAP32[$27>>2]|0; - $55 = ((($27)) + 8|0); - $56 = HEAP32[$55>>2]|0; - $57 = (($54) + ($56)|0); - $58 = $25; - $59 = (($57) + ($58)|0); - $60 = $23; - $10 = $53; - $11 = $59; - $12 = $60; - $61 = $10; - $9 = $61; - $62 = $9; - $63 = $11; - $3 = $63; - $64 = $3; - $65 = $12; - $4 = $65; - $66 = $4; - $5 = $62; - $6 = $64; - $7 = $66; - $67 = $6; - $68 = $5; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $8 = $71; - $72 = $8; - $73 = ($72>>>0)>(0); - if ($73) { - $74 = $7; - $75 = $5; - $76 = $8; - _memmove(($74|0),($75|0),($76|0))|0; - } - $77 = $25; - $78 = ((($27)) + 8|0); - $79 = HEAP32[$78>>2]|0; - $80 = (($79) + ($77))|0; - HEAP32[$78>>2] = $80; - $81 = $25; - $82 = ((($27)) + 16|0); - HEAP32[$82>>2] = $81; - $83 = ((($27)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = ((($27)) + 4|0); - $86 = HEAP32[$85>>2]|0; - $87 = ($84|0)>=($86|0); - if (!($87)) { - STACKTOP = sp;return; - } - $88 = ((($27)) + 13|0); - HEAP8[$88>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4355); - HEAP32[$2>>2] = (1640); - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $4; - $3 = $1; - $6 = $3; - $7 = ((($6)) + 8|0); - $8 = $7; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $11 = (($8) + 4)|0; - $12 = $11; - $13 = HEAP32[$12>>2]|0; - $14 = ((($5)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)<(0); - $17 = $16 << 31 >> 31; - $18 = ($13|0)>($17|0); - $19 = ($10>>>0)>=($15>>>0); - $20 = ($13|0)==($17|0); - $21 = $20 & $19; - $22 = $18 | $21; - if ($22) { - $23 = ((($5)) + 12|0); - HEAP8[$23>>0] = 1; - STACKTOP = sp;return; - } else { - $2 = $1; - $24 = $2; - $25 = ((($24)) + 8|0); - $26 = $25; - $27 = $26; - $28 = HEAP32[$27>>2]|0; - $29 = (($26) + 4)|0; - $30 = $29; - $31 = HEAP32[$30>>2]|0; - $32 = ((($5)) + 8|0); - HEAP32[$32>>2] = $28; - STACKTOP = sp;return; - } -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10_fixMinMaxERNS0_6headerE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0, $27 = 0.0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0.0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0.0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0.0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $2 = $0; - $3 = $1; - $10 = $3; - $11 = ((($10)) + 179|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$11>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$11+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$11+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$11+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$11+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$11+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$11+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$11+7>>0];$12 = +HEAPF64[tempDoublePtr>>3]; - $4 = $12; - $13 = $3; - $14 = ((($13)) + 179|0); - $15 = ((($14)) + 8|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$15>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$15+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$15+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$15+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$15+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$15+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$15+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$15+7>>0];$16 = +HEAPF64[tempDoublePtr>>3]; - $7 = $16; - $17 = $3; - $18 = ((($17)) + 179|0); - $19 = ((($18)) + 16|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$19>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$19+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$19+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$19+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$19+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$19+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$19+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$19+7>>0];$20 = +HEAPF64[tempDoublePtr>>3]; - $5 = $20; - $21 = $3; - $22 = ((($21)) + 203|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$22>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$22+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$22+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$22+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$22+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$22+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$22+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$22+7>>0];$23 = +HEAPF64[tempDoublePtr>>3]; - $8 = $23; - $24 = $3; - $25 = ((($24)) + 203|0); - $26 = ((($25)) + 8|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$26>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$26+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$26+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$26+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$26+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$26+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$26+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$26+7>>0];$27 = +HEAPF64[tempDoublePtr>>3]; - $6 = $27; - $28 = $3; - $29 = ((($28)) + 203|0); - $30 = ((($29)) + 16|0); - HEAP8[tempDoublePtr>>0]=HEAP8[$30>>0];HEAP8[tempDoublePtr+1>>0]=HEAP8[$30+1>>0];HEAP8[tempDoublePtr+2>>0]=HEAP8[$30+2>>0];HEAP8[tempDoublePtr+3>>0]=HEAP8[$30+3>>0];HEAP8[tempDoublePtr+4>>0]=HEAP8[$30+4>>0];HEAP8[tempDoublePtr+5>>0]=HEAP8[$30+5>>0];HEAP8[tempDoublePtr+6>>0]=HEAP8[$30+6>>0];HEAP8[tempDoublePtr+7>>0]=HEAP8[$30+7>>0];$31 = +HEAPF64[tempDoublePtr>>3]; - $9 = $31; - $32 = $7; - $33 = $3; - $34 = ((($33)) + 179|0); - HEAPF64[tempDoublePtr>>3]=$32;HEAP8[$34>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$34+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$34+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$34+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$34+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$34+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$34+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$34+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $35 = $4; - $36 = $3; - $37 = ((($36)) + 203|0); - HEAPF64[tempDoublePtr>>3]=$35;HEAP8[$37>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$37+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$37+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$37+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$37+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$37+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$37+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$37+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $38 = $8; - $39 = $3; - $40 = ((($39)) + 179|0); - $41 = ((($40)) + 8|0); - HEAPF64[tempDoublePtr>>3]=$38;HEAP8[$41>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$41+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$41+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$41+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$41+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$41+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$41+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$41+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $42 = $5; - $43 = $3; - $44 = ((($43)) + 203|0); - $45 = ((($44)) + 8|0); - HEAPF64[tempDoublePtr>>3]=$42;HEAP8[$45>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$45+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$45+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$45+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$45+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$45+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$45+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$45+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $46 = $9; - $47 = $3; - $48 = ((($47)) + 179|0); - $49 = ((($48)) + 16|0); - HEAPF64[tempDoublePtr>>3]=$46;HEAP8[$49>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$49+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$49+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$49+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$49+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$49+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$49+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$49+7>>0]=HEAP8[tempDoublePtr+7>>0]; - $50 = $6; - $51 = $3; - $52 = ((($51)) + 203|0); - $53 = ((($52)) + 16|0); - HEAPF64[tempDoublePtr>>3]=$50;HEAP8[$53>>0]=HEAP8[tempDoublePtr>>0];HEAP8[$53+1>>0]=HEAP8[tempDoublePtr+1>>0];HEAP8[$53+2>>0]=HEAP8[tempDoublePtr+2>>0];HEAP8[$53+3>>0]=HEAP8[tempDoublePtr+3>>0];HEAP8[$53+4>>0]=HEAP8[tempDoublePtr+4>>0];HEAP8[$53+5>>0]=HEAP8[tempDoublePtr+5>>0];HEAP8[$53+6>>0]=HEAP8[tempDoublePtr+6>>0];HEAP8[$53+7>>0]=HEAP8[tempDoublePtr+7>>0]; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEv() { - var $$byval_copy = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $$byval_copy = sp + 195|0; - $13 = sp + 24|0; - $18 = sp + 194|0; - $29 = sp + 193|0; - $42 = sp + 32|0; - $44 = sp; - $45 = sp + 192|0; - $46 = HEAP8[21176]|0; - $47 = ($46<<24>>24)==(0); - if ($47) { - $48 = (___cxa_guard_acquire(21176)|0); - $49 = ($48|0)!=(0); - if ($49) { - $43 = 21216; - $50 = $43; - $41 = $50; - $51 = $41; - $40 = $51; - HEAP32[$51>>2] = 0; - $52 = ((($51)) + 4|0); - HEAP32[$52>>2] = 0; - $53 = ((($51)) + 8|0); - HEAP32[$42>>2] = 0; - $38 = $53; - $39 = $42; - $54 = $38; - $55 = $39; - $37 = $55; - $56 = $37; - $33 = $54; - $34 = $56; - $57 = $33; - $58 = $34; - $32 = $58; - HEAP32[$57>>2] = 0; - $36 = $54; - $59 = $36; - $35 = $59; - } - } - $60 = HEAP8[21184]|0; - $61 = ($60<<24>>24)==(0); - if ($61) { - $62 = (___cxa_guard_acquire(21184)|0); - $63 = ($62|0)!=(0); - if ($63) { - } - } - $31 = 21216; - $64 = $31; - $65 = HEAP32[$64>>2]|0; - $66 = ((($64)) + 4|0); - $67 = HEAP32[$66>>2]|0; - $68 = ($65|0)==($67|0); - if (!($68)) { - STACKTOP = sp;return (21216|0); - } - __ZNSt3__25mutex4lockEv(21228); - $30 = 21216; - $69 = $30; - $70 = HEAP32[$69>>2]|0; - $71 = ((($69)) + 4|0); - $72 = HEAP32[$71>>2]|0; - $73 = ($70|0)==($72|0); - if ($73) { - ;HEAP8[$$byval_copy>>0]=HEAP8[$45>>0]|0; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2IZNS2_6reader10basic_fileINS1_7streams13memory_streamEE11_validatorsEvEUlS4_E_vEET_($44,$$byval_copy); - $27 = 21216; - $28 = $44; - $74 = $27; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - $26 = $74; - $77 = $26; - $78 = ((($77)) + 8|0); - $25 = $78; - $79 = $25; - $24 = $79; - $80 = $24; - $81 = HEAP32[$80>>2]|0; - $82 = ($76>>>0)<($81>>>0); - if ($82) { - $21 = $29; - $22 = $74; - $23 = 1; - $4 = $74; - $83 = $4; - $84 = ((($83)) + 8|0); - $3 = $84; - $85 = $3; - $2 = $85; - $86 = $2; - $87 = ((($74)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $0 = $88; - $89 = $0; - $90 = $28; - $1 = $90; - $91 = $1; - $15 = $86; - $16 = $89; - $17 = $91; - $92 = $15; - $93 = $16; - $94 = $17; - $14 = $94; - $95 = $14; - ;HEAP8[$13>>0]=HEAP8[$18>>0]|0; - $10 = $92; - $11 = $93; - $12 = $95; - $96 = $10; - $97 = $11; - $98 = $12; - $9 = $98; - $99 = $9; - $6 = $96; - $7 = $97; - $8 = $99; - $100 = $7; - $101 = $8; - $5 = $101; - $102 = $5; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($100,$102); - $19 = $29; - $103 = ((($74)) + 4|0); - $104 = HEAP32[$103>>2]|0; - $105 = ((($104)) + 24|0); - HEAP32[$103>>2] = $105; - } else { - $106 = $28; - $20 = $106; - $107 = $20; - __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE21__push_back_slow_pathIS7_EEvOT_($74,$107); - } - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($44); - } - __ZNSt3__25mutex6unlockEv(21228); - STACKTOP = sp;return (21216|0); -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = ((($4)) + 16|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; - } - $10 = $3; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = $3; - $14 = ($12|0)==($13|0); - if ($14) { - $15 = (__ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($4)|0); - $16 = ((($4)) + 16|0); - HEAP32[$16>>2] = $15; - $17 = $3; - $18 = ((($17)) + 16|0); - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = ((($20)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = ((($4)) + 16|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_vii[$22 & 255]($19,$24); - STACKTOP = sp;return; - } else { - $25 = $3; - $26 = ((($25)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = HEAP32[$27>>2]|0; - $29 = ((($28)) + 8|0); - $30 = HEAP32[$29>>2]|0; - $31 = (FUNCTION_TABLE_ii[$30 & 255]($27)|0); - $32 = ((($4)) + 16|0); - HEAP32[$32>>2] = $31; - STACKTOP = sp;return; - } -} -function __ZNKSt3__28functionIFvRN6laszip2io6headerEEEclES4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = (___cxa_allocate_exception(4)|0); - ;HEAP32[$9>>2]=0|0; - __ZNSt3__217bad_function_callC2Ev($9); - ___cxa_throw(($9|0),(1240|0),(197|0)); - // unreachable; - } else { - $10 = ((($5)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = HEAP32[$11>>2]|0; - $13 = ((($12)) + 24|0); - $14 = HEAP32[$13>>2]|0; - $15 = $4; - $2 = $15; - $16 = $2; - FUNCTION_TABLE_vii[$14 & 255]($11,$16); - STACKTOP = sp;return; - } -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==($2|0); - $6 = ((($2)) + 16|0); - $7 = HEAP32[$6>>2]|0; - if ($5) { - $8 = HEAP32[$7>>2]|0; - $9 = ((($8)) + 16|0); - $10 = HEAP32[$9>>2]|0; - FUNCTION_TABLE_vi[$10 & 511]($7); - STACKTOP = sp;return; - } - $11 = ($7|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($2)) + 16|0); - $13 = HEAP32[$12>>2]|0; - $14 = HEAP32[$13>>2]|0; - $15 = ((($14)) + 20|0); - $16 = HEAP32[$15>>2]|0; - FUNCTION_TABLE_vi[$16 & 511]($13); - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE12_parseLASZIPEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$expand_i1_val = 0, $$expand_i1_val3 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; - var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; - var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; - var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $$byval_copy = sp + 32|0; - $26 = sp + 116|0; - $30 = sp + 277|0; - $34 = sp + 24|0; - $38 = sp + 276|0; - $40 = sp + 16|0; - $42 = sp; - $43 = sp + 222|0; - $47 = sp + 60|0; - $48 = sp + 48|0; - $41 = $0; - $49 = $41; - $50 = HEAP32[$49>>2]|0; - $51 = ((($49)) + 20|0); - $52 = ((($51)) + 94|0); - $53 = HEAP16[$52>>1]|0; - $54 = $53&65535; - $39 = $42; - $55 = $40; - $56 = $55; - HEAP32[$56>>2] = $54; - $57 = (($55) + 4)|0; - $58 = $57; - HEAP32[$58>>2] = 0; - $59 = $39; - ;HEAP32[$59>>2]=0|0;HEAP32[$59+4>>2]=0|0; - $60 = ((($59)) + 8|0); - $61 = $40; - $62 = $61; - $63 = HEAP32[$62>>2]|0; - $64 = (($61) + 4)|0; - $65 = $64; - $66 = HEAP32[$65>>2]|0; - $67 = $60; - $68 = $67; - HEAP32[$68>>2] = $63; - $69 = (($67) + 4)|0; - $70 = $69; - HEAP32[$70>>2] = $66; - ;HEAP32[$$byval_copy>>2]=HEAP32[$42>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$42+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$42+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$42+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($50,$$byval_copy); - $44 = 0; - $45 = 0; - while(1) { - $71 = $44; - $72 = ((($49)) + 20|0); - $73 = ((($72)) + 100|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71>>>0)<($74>>>0); - if (!($75)) { - break; - } - $76 = HEAP32[$49>>2]|0; - $77 = (__ZN6laszip7streams13memory_stream4goodEv($76)|0); - if (!($77)) { - break; - } - $78 = HEAP32[$49>>2]|0; - $79 = (__ZN6laszip7streams13memory_stream3eofEv($78)|0); - $80 = $79 ^ 1; - if (!($80)) { - break; - } - $81 = HEAP32[$49>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($81,$43,54); - $46 = 4841; - $82 = ((($43)) + 2|0); - $83 = ((($43)) + 2|0); - $84 = ((($83)) + 14|0); - $85 = $46; - $35 = $82; - $36 = $84; - $37 = $85; - $86 = $35; - $87 = $36; - $88 = $37; - ;HEAP8[$34>>0]=HEAP8[$38>>0]|0; - $31 = $86; - $32 = $87; - $33 = $88; - while(1) { - $89 = $31; - $90 = $32; - $91 = ($89|0)!=($90|0); - if (!($91)) { - label = 10; - break; - } - $92 = $31; - $93 = $33; - $27 = $34; - $28 = $92; - $29 = $93; - $94 = $28; - $95 = HEAP8[$94>>0]|0; - $96 = $95 << 24 >> 24; - $97 = $29; - $98 = HEAP8[$97>>0]|0; - $99 = $98 << 24 >> 24; - $100 = ($96|0)==($99|0); - if (!($100)) { - label = 8; - break; - } - $101 = $31; - $102 = ((($101)) + 1|0); - $31 = $102; - $103 = $33; - $104 = ((($103)) + 1|0); - $33 = $104; - } - if ((label|0) == 8) { - label = 0; - $$expand_i1_val = 0; - HEAP8[$30>>0] = $$expand_i1_val; - } - else if ((label|0) == 10) { - label = 0; - $$expand_i1_val3 = 1; - HEAP8[$30>>0] = $$expand_i1_val3; - } - $$pre_trunc = HEAP8[$30>>0]|0; - $105 = $$pre_trunc&1; - if ($105) { - $106 = ((($43)) + 18|0); - $107 = HEAPU8[$106>>0]|(HEAPU8[$106+1>>0]<<8); - $108 = $107&65535; - $109 = ($108|0)==(22204); - if ($109) { - label = 13; - break; - } - } - $149 = HEAP32[$49>>2]|0; - $150 = ((($43)) + 20|0); - $151 = HEAPU8[$150>>0]|(HEAPU8[$150+1>>0]<<8); - $152 = $151&65535; - __ZN6laszip7streams13memory_stream5seekgExNSt3__28ios_base7seekdirE($149,$152,0,1); - $153 = $44; - $154 = (($153) + 1)|0; - $44 = $154; - } - if ((label|0) == 13) { - $45 = 1; - $110 = ((($43)) + 20|0); - $111 = HEAPU8[$110>>0]|(HEAPU8[$110+1>>0]<<8); - $112 = $111&65535; - $113 = (__Znaj($112)|0); - $25 = $47; - HEAP32[$26>>2] = $113; - $114 = $25; - $23 = $114; - $24 = $26; - $115 = $23; - $116 = $24; - $22 = $116; - $117 = $22; - $20 = $115; - $21 = $117; - $118 = $20; - $119 = $21; - $19 = $119; - $120 = $19; - $121 = HEAP32[$120>>2]|0; - HEAP32[$118>>2] = $121; - $122 = HEAP32[$49>>2]|0; - $18 = $47; - $123 = $18; - $17 = $123; - $124 = $17; - $16 = $124; - $125 = $16; - $126 = HEAP32[$125>>2]|0; - $127 = ((($43)) + 20|0); - $128 = HEAPU8[$127>>0]|(HEAPU8[$127+1>>0]<<8); - $129 = $128&65535; - __ZN6laszip7streams13memory_stream4readEPci($122,$126,$129); - $15 = $47; - $130 = $15; - $14 = $130; - $131 = $14; - $13 = $131; - $132 = $13; - $133 = HEAP32[$132>>2]|0; - __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE15_parseLASZIPVLREPKc($49,$133); - $12 = $47; - $134 = $12; - $9 = $134; - $10 = 0; - $135 = $9; - $8 = $135; - $136 = $8; - $7 = $136; - $137 = $7; - $138 = HEAP32[$137>>2]|0; - $11 = $138; - $139 = $10; - $4 = $135; - $140 = $4; - $3 = $140; - $141 = $3; - HEAP32[$141>>2] = $139; - $142 = $11; - $143 = ($142|0)!=(0|0); - if ($143) { - $2 = $135; - $144 = $2; - $1 = $144; - $145 = $1; - $146 = $11; - $5 = $145; - $6 = $146; - $147 = $6; - $148 = ($147|0)==(0|0); - if (!($148)) { - __ZdlPv($147); - } - } - } - $155 = $45; - $156 = $155&1; - if ($156) { - $158 = ((($49)) + 247|0); - $159 = ((($49)) + 20|0); - $160 = ((($159)) + 105|0); - $161 = HEAPU8[$160>>0]|(HEAPU8[$160+1>>0]<<8); - $162 = $161&65535; - __ZN6laszip2io7laz_vlr9to_schemaERKS1_i($48,$158,$162); - $163 = ((($49)) + 300|0); - (__ZN6laszip7factory13record_schemaaSEOS1_($163,$48)|0); - __ZN6laszip7factory13record_schemaD2Ev($48); - STACKTOP = sp;return; - } else { - $157 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13no_laszip_vlrC2Ev($157); - ___cxa_throw(($157|0),(136|0),(32|0)); - // unreachable; - } -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE16_parseChunkTableEv($0) { - $0 = $0|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; - var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; - var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; - var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; - var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0; - var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; - var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0; - var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0; - var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0; - var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; - var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0; - var $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0; - var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; - var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; - var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 448|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(448|0); - $$byval_copy1 = sp + 80|0; - $$byval_copy = sp + 64|0; - $38 = sp + 56|0; - $41 = sp + 436|0; - $54 = sp + 48|0; - $56 = sp + 40|0; - $58 = sp + 24|0; - $59 = sp + 16|0; - $60 = sp; - $61 = sp + 216|0; - $62 = sp + 200|0; - $63 = sp + 184|0; - $64 = sp + 104|0; - $57 = $0; - $67 = $57; - $68 = HEAP32[$67>>2]|0; - $69 = ((($67)) + 20|0); - $70 = ((($69)) + 96|0); - $71 = HEAP32[$70>>2]|0; - $55 = $58; - $72 = $56; - $73 = $72; - HEAP32[$73>>2] = $71; - $74 = (($72) + 4)|0; - $75 = $74; - HEAP32[$75>>2] = 0; - $76 = $55; - ;HEAP32[$76>>2]=0|0;HEAP32[$76+4>>2]=0|0; - $77 = ((($76)) + 8|0); - $78 = $56; - $79 = $78; - $80 = HEAP32[$79>>2]|0; - $81 = (($78) + 4)|0; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $84 = $77; - $85 = $84; - HEAP32[$85>>2] = $80; - $86 = (($84) + 4)|0; - $87 = $86; - HEAP32[$87>>2] = $83; - ;HEAP32[$$byval_copy>>2]=HEAP32[$58>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$58+4>>2]|0;HEAP32[$$byval_copy+8>>2]=HEAP32[$58+8>>2]|0;HEAP32[$$byval_copy+12>>2]=HEAP32[$58+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($68,$$byval_copy); - $88 = $59; - $89 = $88; - HEAP32[$89>>2] = 0; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = 0; - $92 = HEAP32[$67>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($92,$59,8); - $93 = HEAP32[$67>>2]|0; - $94 = (__ZN6laszip7streams13memory_stream4goodEv($93)|0); - if (!($94)) { - $95 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($95); - ___cxa_throw(($95|0),(168|0),(34|0)); - // unreachable; - } - $96 = $59; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $99 = (($96) + 4)|0; - $100 = $99; - $101 = HEAP32[$100>>2]|0; - $102 = ($98|0)==(-1); - $103 = ($101|0)==(-1); - $104 = $102 & $103; - if ($104) { - $105 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13not_supportedC2EPKc($105,5052); - ___cxa_throw(($105|0),(184|0),(36|0)); - // unreachable; - } - $106 = HEAP32[$67>>2]|0; - $107 = $59; - $108 = $107; - $109 = HEAP32[$108>>2]|0; - $110 = (($107) + 4)|0; - $111 = $110; - $112 = HEAP32[$111>>2]|0; - $53 = $60; - $113 = $54; - $114 = $113; - HEAP32[$114>>2] = $109; - $115 = (($113) + 4)|0; - $116 = $115; - HEAP32[$116>>2] = $112; - $117 = $53; - ;HEAP32[$117>>2]=0|0;HEAP32[$117+4>>2]=0|0; - $118 = ((($117)) + 8|0); - $119 = $54; - $120 = $119; - $121 = HEAP32[$120>>2]|0; - $122 = (($119) + 4)|0; - $123 = $122; - $124 = HEAP32[$123>>2]|0; - $125 = $118; - $126 = $125; - HEAP32[$126>>2] = $121; - $127 = (($125) + 4)|0; - $128 = $127; - HEAP32[$128>>2] = $124; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$60>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$60+4>>2]|0;HEAP32[$$byval_copy1+8>>2]=HEAP32[$60+8>>2]|0;HEAP32[$$byval_copy1+12>>2]=HEAP32[$60+12>>2]|0; - __ZN6laszip7streams13memory_stream5seekgENSt3__24fposI11__mbstate_tEE($106,$$byval_copy1); - $129 = HEAP32[$67>>2]|0; - $130 = (__ZN6laszip7streams13memory_stream4goodEv($129)|0); - if (!($130)) { - $131 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($131); - ___cxa_throw(($131|0),(168|0),(34|0)); - // unreachable; - } - $132 = HEAP32[$67>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($132,$61,8); - $133 = HEAP32[$67>>2]|0; - $134 = (__ZN6laszip7streams13memory_stream4goodEv($133)|0); - if (!($134)) { - $135 = (___cxa_allocate_exception(8)|0); - __ZN6laszip22chunk_table_read_errorC2Ev($135); - ___cxa_throw(($135|0),(168|0),(34|0)); - // unreachable; - } - $136 = HEAP32[$61>>2]|0; - $137 = ($136|0)!=(0); - if ($137) { - $138 = (___cxa_allocate_exception(8)|0); - __ZN6laszip26unknown_chunk_table_formatC2Ev($138); - ___cxa_throw(($138|0),(200|0),(38|0)); - // unreachable; - } - $139 = ((($67)) + 288|0); - $51 = $139; - $140 = $51; - $50 = $140; - $141 = $50; - $142 = ((($141)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = HEAP32[$141>>2]|0; - $145 = $143; - $146 = $144; - $147 = (($145) - ($146))|0; - $148 = (($147|0) / 8)&-1; - $52 = $148; - $49 = $140; - $149 = $49; - $150 = HEAP32[$149>>2]|0; - $46 = $149; - $47 = $150; - $151 = $46; - $152 = ((($151)) + 4|0); - $153 = HEAP32[$152>>2]|0; - $48 = $153; - while(1) { - $154 = $47; - $155 = $48; - $156 = ($154|0)!=($155|0); - if (!($156)) { - break; - } - $45 = $151; - $157 = $45; - $158 = ((($157)) + 8|0); - $44 = $158; - $159 = $44; - $43 = $159; - $160 = $43; - $161 = $48; - $162 = ((($161)) + -8|0); - $48 = $162; - $42 = $162; - $163 = $42; - $39 = $160; - $40 = $163; - $164 = $39; - $165 = $40; - ;HEAP8[$38>>0]=HEAP8[$41>>0]|0; - $36 = $164; - $37 = $165; - $166 = $36; - $167 = $37; - $34 = $166; - $35 = $167; - } - $168 = $47; - $169 = ((($151)) + 4|0); - HEAP32[$169>>2] = $168; - $170 = $52; - $31 = $140; - $32 = $170; - $171 = $31; - $30 = $171; - $172 = $30; - $173 = HEAP32[$172>>2]|0; - $29 = $173; - $174 = $29; - $13 = $171; - $175 = $13; - $176 = HEAP32[$175>>2]|0; - $12 = $176; - $177 = $12; - $18 = $171; - $178 = $18; - $17 = $178; - $179 = $17; - $16 = $179; - $180 = $16; - $181 = ((($180)) + 8|0); - $15 = $181; - $182 = $15; - $14 = $182; - $183 = $14; - $184 = HEAP32[$183>>2]|0; - $185 = HEAP32[$179>>2]|0; - $186 = $184; - $187 = $185; - $188 = (($186) - ($187))|0; - $189 = (($188|0) / 8)&-1; - $190 = (($177) + ($189<<3)|0); - $20 = $171; - $191 = $20; - $192 = HEAP32[$191>>2]|0; - $19 = $192; - $193 = $19; - $194 = $32; - $195 = (($193) + ($194<<3)|0); - $22 = $171; - $196 = $22; - $197 = HEAP32[$196>>2]|0; - $21 = $197; - $198 = $21; - $23 = $171; - $199 = $23; - $200 = ((($199)) + 4|0); - $201 = HEAP32[$200>>2]|0; - $202 = HEAP32[$199>>2]|0; - $203 = $201; - $204 = $202; - $205 = (($203) - ($204))|0; - $206 = (($205|0) / 8)&-1; - $207 = (($198) + ($206<<3)|0); - $24 = $171; - $25 = $174; - $26 = $190; - $27 = $195; - $28 = $207; - $33 = $140; - $208 = ((($67)) + 247|0); - $209 = ((($208)) + 12|0); - $210 = HEAPU8[$209>>0]|(HEAPU8[$209+1>>0]<<8)|(HEAPU8[$209+2>>0]<<16)|(HEAPU8[$209+3>>0]<<24); - $211 = ($210|0)==(-1); - if ($211) { - $212 = (___cxa_allocate_exception(8)|0); - __ZN6laszip13not_supportedC2EPKc($212,5170); - ___cxa_throw(($212|0),(184|0),(36|0)); - // unreachable; - } - $213 = ((($67)) + 288|0); - $214 = ((($61)) + 4|0); - $215 = HEAP32[$214>>2]|0; - $216 = (($215) + 1)|0; - __ZNSt3__26vectorIyNS_9allocatorIyEEE6resizeEj($213,$216); - $217 = ((($67)) + 20|0); - $218 = ((($217)) + 96|0); - $219 = HEAP32[$218>>2]|0; - $220 = (($219) + 8)|0; - $221 = ((($67)) + 288|0); - $10 = $221; - $11 = 0; - $222 = $10; - $223 = HEAP32[$222>>2]|0; - $224 = $11; - $225 = (($223) + ($224<<3)|0); - $226 = $225; - $227 = $226; - HEAP32[$227>>2] = $220; - $228 = (($226) + 4)|0; - $229 = $228; - HEAP32[$229>>2] = 0; - $230 = ((($61)) + 4|0); - $231 = HEAP32[$230>>2]|0; - $232 = ($231>>>0)>(1); - if (!($232)) { - STACKTOP = sp;return; - } - $233 = HEAP32[$67>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEEC2ERS3_($62,$233); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($63,$62); - __ZN6laszip13decompressors7integerC2Ejjjj($64,32,2,8,0); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($63); - __ZN6laszip13decompressors7integer4initEv($64); - $65 = 1; - while(1) { - $234 = $65; - $235 = ((($61)) + 4|0); - $236 = HEAP32[$235>>2]|0; - $237 = ($234>>>0)<=($236>>>0); - if (!($237)) { - break; - } - $238 = $65; - $239 = ($238>>>0)>(1); - if ($239) { - $240 = ((($67)) + 288|0); - $241 = $65; - $242 = (($241) - 1)|0; - $8 = $240; - $9 = $242; - $243 = $8; - $244 = HEAP32[$243>>2]|0; - $245 = $9; - $246 = (($244) + ($245<<3)|0); - $247 = $246; - $248 = $247; - $249 = HEAP32[$248>>2]|0; - $250 = (($247) + 4)|0; - $251 = $250; - $252 = HEAP32[$251>>2]|0; - $253 = $249; - } else { - $253 = 0; - } - $254 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($64,$63,$253,1)|0); - $255 = ($254|0)<(0); - $256 = $255 << 31 >> 31; - $257 = ((($67)) + 288|0); - $258 = $65; - $1 = $257; - $2 = $258; - $259 = $1; - $260 = HEAP32[$259>>2]|0; - $261 = $2; - $262 = (($260) + ($261<<3)|0); - $263 = $262; - $264 = $263; - HEAP32[$264>>2] = $254; - $265 = (($263) + 4)|0; - $266 = $265; - HEAP32[$266>>2] = $256; - $267 = $65; - $268 = (($267) + 1)|0; - $65 = $268; - } - $66 = 1; - while(1) { - $269 = $66; - $270 = ((($67)) + 288|0); - $3 = $270; - $271 = $3; - $272 = ((($271)) + 4|0); - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$271>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 8)&-1; - $279 = ($269>>>0)<($278>>>0); - if (!($279)) { - break; - } - $280 = ((($67)) + 288|0); - $281 = $66; - $282 = (($281) - 1)|0; - $4 = $280; - $5 = $282; - $283 = $4; - $284 = HEAP32[$283>>2]|0; - $285 = $5; - $286 = (($284) + ($285<<3)|0); - $287 = $286; - $288 = $287; - $289 = HEAP32[$288>>2]|0; - $290 = (($287) + 4)|0; - $291 = $290; - $292 = HEAP32[$291>>2]|0; - $293 = ((($67)) + 288|0); - $294 = $66; - $6 = $293; - $7 = $294; - $295 = $6; - $296 = HEAP32[$295>>2]|0; - $297 = $7; - $298 = (($296) + ($297<<3)|0); - $299 = $298; - $300 = $299; - $301 = HEAP32[$300>>2]|0; - $302 = (($299) + 4)|0; - $303 = $302; - $304 = HEAP32[$303>>2]|0; - $305 = (_i64Add(($301|0),($304|0),($289|0),($292|0))|0); - $306 = tempRet0; - $307 = $298; - $308 = $307; - HEAP32[$308>>2] = $305; - $309 = (($307) + 4)|0; - $310 = $309; - HEAP32[$310>>2] = $306; - $311 = $66; - $312 = (($311) + 1)|0; - $66 = $312; - } - __ZN6laszip13decompressors7integerD2Ev($64); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($63); - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEED2Ev($62); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream5clearEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - HEAP8[$3>>0] = 0; - $4 = ((($2)) + 13|0); - HEAP8[$4>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE5resetEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 8|0); - HEAP32[$3>>2] = 0; - $4 = ((($2)) + 4|0); - HEAP32[$4>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__211char_traitsIcE6lengthEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (_strlen($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initIPcEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES9_S9_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $38 = sp + 8|0; - $40 = sp + 218|0; - $48 = sp; - $51 = sp + 217|0; - $58 = sp + 216|0; - $52 = $0; - $53 = $1; - $54 = $2; - $59 = $52; - $60 = $53; - $61 = $54; - $49 = $60; - $50 = $61; - $62 = $49; - $63 = $50; - ;HEAP8[$48>>0]=HEAP8[$51>>0]|0; - $46 = $62; - $47 = $63; - $64 = $47; - $65 = $46; - $66 = $64; - $67 = $65; - $68 = (($66) - ($67))|0; - $55 = $68; - $69 = $55; - $44 = $59; - $70 = $44; - $43 = $70; - $71 = $43; - $42 = $71; - $72 = $42; - $41 = $72; - $73 = $41; - $39 = $73; - $74 = $39; - ;HEAP8[$38>>0]=HEAP8[$40>>0]|0; - $37 = $74; - $75 = $37; - $36 = $75; - $45 = -1; - $76 = $45; - $77 = (($76) - 16)|0; - $78 = ($69>>>0)>($77>>>0); - if ($78) { - __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv($59); - // unreachable; - } - $79 = $55; - $80 = ($79>>>0)<(11); - $81 = $55; - if ($80) { - $34 = $59; - $35 = $81; - $82 = $34; - $83 = $35; - $84 = $83&255; - $33 = $82; - $85 = $33; - $32 = $85; - $86 = $32; - $87 = ((($86)) + 11|0); - HEAP8[$87>>0] = $84; - $12 = $59; - $88 = $12; - $11 = $88; - $89 = $11; - $10 = $89; - $90 = $10; - $9 = $90; - $91 = $9; - $8 = $91; - $92 = $8; - $56 = $92; - } else { - $4 = $81; - $93 = $4; - $94 = ($93>>>0)<(11); - if ($94) { - $101 = 11; - } else { - $95 = $4; - $96 = (($95) + 1)|0; - $3 = $96; - $97 = $3; - $98 = (($97) + 15)|0; - $99 = $98 & -16; - $101 = $99; - } - $100 = (($101) - 1)|0; - $57 = $100; - $7 = $59; - $102 = $7; - $6 = $102; - $103 = $6; - $5 = $103; - $104 = $5; - $105 = $57; - $106 = (($105) + 1)|0; - $18 = $104; - $19 = $106; - $107 = $18; - $108 = $19; - $15 = $107; - $16 = $108; - $17 = 0; - $109 = $15; - $14 = $109; - $110 = $16; - $13 = $110; - $111 = $13; - $112 = (__Znwj($111)|0); - $56 = $112; - $113 = $56; - $22 = $59; - $23 = $113; - $114 = $22; - $115 = $23; - $21 = $114; - $116 = $21; - $20 = $116; - $117 = $20; - HEAP32[$117>>2] = $115; - $118 = $57; - $119 = (($118) + 1)|0; - $26 = $59; - $27 = $119; - $120 = $26; - $121 = $27; - $122 = -2147483648 | $121; - $25 = $120; - $123 = $25; - $24 = $123; - $124 = $24; - $125 = ((($124)) + 8|0); - HEAP32[$125>>2] = $122; - $126 = $55; - $30 = $59; - $31 = $126; - $127 = $30; - $128 = $31; - $29 = $127; - $129 = $29; - $28 = $129; - $130 = $28; - $131 = ((($130)) + 4|0); - HEAP32[$131>>2] = $128; - } - while(1) { - $132 = $53; - $133 = $54; - $134 = ($132|0)!=($133|0); - $135 = $56; - if (!($134)) { - break; - } - $136 = $53; - __ZNSt3__211char_traitsIcE6assignERcRKc($135,$136); - $137 = $53; - $138 = ((($137)) + 1|0); - $53 = $138; - $139 = $56; - $140 = ((($139)) + 1|0); - $56 = $140; - } - HEAP8[$58>>0] = 0; - __ZNSt3__211char_traitsIcE6assignERcRKc($135,$58); - STACKTOP = sp;return; -} -function __ZNSt3__211char_traitsIcE6assignERcRKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - $5 = HEAP8[$4>>0]|0; - $6 = $2; - HEAP8[$6>>0] = $5; - STACKTOP = sp;return; -} -function __ZN6laszip13invalid_magicD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13invalid_magicD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2IZNS2_6reader10basic_fileINS1_7streams13memory_streamEE11_validatorsEvEUlS4_E_vEET_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(240|0); - $10 = sp + 96|0; - $11 = sp + 88|0; - $12 = sp + 80|0; - $13 = sp + 72|0; - $17 = sp + 235|0; - $18 = sp + 234|0; - $19 = sp + 233|0; - $20 = sp + 232|0; - $22 = sp + 172|0; - $25 = sp + 231|0; - $30 = sp + 64|0; - $31 = sp + 56|0; - $32 = sp + 48|0; - $36 = sp + 40|0; - $37 = sp + 32|0; - $38 = sp + 24|0; - $41 = sp + 230|0; - $42 = sp + 124|0; - $43 = sp + 229|0; - $44 = sp + 228|0; - $45 = sp + 227|0; - $46 = sp + 226|0; - $47 = sp + 16|0; - $48 = sp + 8|0; - $49 = sp; - $53 = sp + 225|0; - $54 = sp + 108|0; - $55 = sp + 224|0; - $57 = $0; - $58 = $57; - $59 = ((($58)) + 16|0); - HEAP32[$59>>2] = 0; - $56 = $1; - $2 = $1; - $60 = $2; - $51 = $58; - $52 = $60; - $61 = $51; - $50 = $61; - $62 = $50; - HEAP32[$62>>2] = (1704); - HEAP32[$61>>2] = (1660); - $63 = ((($61)) + 4|0); - $64 = $52; - $3 = $64; - $65 = $3; - $23 = $65; - $66 = $23; - $21 = $66; - $67 = $21; - $15 = $22; - $16 = $67; - $68 = $15; - $69 = $16; - $14 = $69; - $70 = $14; - ;HEAP8[$10>>0]=HEAP8[$20>>0]|0; - ;HEAP8[$11>>0]=HEAP8[$19>>0]|0; - ;HEAP8[$12>>0]=HEAP8[$18>>0]|0; - ;HEAP8[$13>>0]=HEAP8[$17>>0]|0; - $8 = $68; - $9 = $70; - $71 = $8; - $72 = $9; - $7 = $72; - $73 = $7; - $5 = $71; - $6 = $73; - $74 = $5; - $75 = $6; - $4 = $75; - $76 = $4; - HEAP32[$74>>2] = $76; - $77 = HEAP32[$22>>2]|0; - HEAP32[$54>>2] = $77; - $24 = $25; - ;HEAP8[$47>>0]=HEAP8[$55>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$54>>0]|0;HEAP8[$48+1>>0]=HEAP8[$54+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$54+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$54+3>>0]|0; - ;HEAP8[$49>>0]=HEAP8[$53>>0]|0; - $40 = $63; - $78 = $40; - $39 = $48; - $79 = $39; - ;HEAP32[$42>>2]=HEAP32[$79>>2]|0; - ;HEAP8[$30>>0]=HEAP8[$43>>0]|0; - ;HEAP8[$31>>0]=HEAP8[$42>>0]|0;HEAP8[$31+1>>0]=HEAP8[$42+1>>0]|0;HEAP8[$31+2>>0]=HEAP8[$42+2>>0]|0;HEAP8[$31+3>>0]=HEAP8[$42+3>>0]|0; - ;HEAP8[$32>>0]=HEAP8[$41>>0]|0; - $29 = $78; - $28 = $31; - $80 = $28; - $27 = $80; - $81 = $27; - $82 = HEAP32[$81>>2]|0; - $26 = $82; - $33 = $47; - ;HEAP8[$36>>0]=HEAP8[$46>>0]|0; - ;HEAP8[$37>>0]=HEAP8[$45>>0]|0; - ;HEAP8[$38>>0]=HEAP8[$44>>0]|0; - $35 = $78; - $83 = $35; - $34 = $83; - $84 = ((($58)) + 16|0); - HEAP32[$84>>2] = $58; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE21__push_back_slow_pathIS7_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 24)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 24)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 24)&-1; - $107 = $45; - __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEEC2EjjSA_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($122,$124); - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 24|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS9_EE($47,$46); - __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==(0|0); - if ($8) { - $9 = ((($4)) + 16|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; - } - $10 = $3; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = $3; - $14 = ($12|0)==($13|0); - if ($14) { - $15 = (__ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($4)|0); - $16 = ((($4)) + 16|0); - HEAP32[$16>>2] = $15; - $17 = $3; - $18 = ((($17)) + 16|0); - $19 = HEAP32[$18>>2]|0; - $20 = HEAP32[$19>>2]|0; - $21 = ((($20)) + 12|0); - $22 = HEAP32[$21>>2]|0; - $23 = ((($4)) + 16|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_vii[$22 & 255]($19,$24); - STACKTOP = sp;return; - } else { - $25 = $3; - $26 = ((($25)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($4)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = $3; - $30 = ((($29)) + 16|0); - HEAP32[$30>>2] = 0; - STACKTOP = sp;return; - } -} -function __ZNSt3__28functionIFvRN6laszip2io6headerEEE9__as_baseEPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEEC2EjjSA_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(178956970); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*24)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*24)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*24)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS7_RS9_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $15 = sp; - $20 = sp + 404|0; - $31 = sp + 292|0; - $37 = sp + 268|0; - $49 = sp + 220|0; - $102 = $0; - $103 = $1; - $104 = $102; - $101 = $104; - $105 = $101; - $100 = $105; - $106 = $100; - $107 = HEAP32[$106>>2]|0; - $99 = $107; - $108 = $99; - $78 = $105; - $109 = $78; - $110 = HEAP32[$109>>2]|0; - $77 = $110; - $111 = $77; - $83 = $105; - $112 = $83; - $82 = $112; - $113 = $82; - $81 = $113; - $114 = $81; - $115 = ((($114)) + 8|0); - $80 = $115; - $116 = $80; - $79 = $116; - $117 = $79; - $118 = HEAP32[$117>>2]|0; - $119 = HEAP32[$113>>2]|0; - $120 = $118; - $121 = $119; - $122 = (($120) - ($121))|0; - $123 = (($122|0) / 24)&-1; - $124 = (($111) + (($123*24)|0)|0); - $85 = $105; - $125 = $85; - $126 = HEAP32[$125>>2]|0; - $84 = $126; - $127 = $84; - $86 = $105; - $128 = $86; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 24)&-1; - $136 = (($127) + (($135*24)|0)|0); - $88 = $105; - $137 = $88; - $138 = HEAP32[$137>>2]|0; - $87 = $138; - $139 = $87; - $93 = $105; - $140 = $93; - $92 = $140; - $141 = $92; - $91 = $141; - $142 = $91; - $143 = ((($142)) + 8|0); - $90 = $143; - $144 = $90; - $89 = $144; - $145 = $89; - $146 = HEAP32[$145>>2]|0; - $147 = HEAP32[$141>>2]|0; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 24)&-1; - $152 = (($139) + (($151*24)|0)|0); - $94 = $105; - $95 = $108; - $96 = $124; - $97 = $136; - $98 = $152; - $4 = $104; - $153 = $4; - $154 = ((($153)) + 8|0); - $3 = $154; - $155 = $3; - $2 = $155; - $156 = $2; - $157 = HEAP32[$104>>2]|0; - $158 = ((($104)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = $103; - $161 = ((($160)) + 4|0); - $22 = $156; - $23 = $157; - $24 = $159; - $25 = $161; - while(1) { - $162 = $24; - $163 = $23; - $164 = ($162|0)!=($163|0); - if (!($164)) { - break; - } - $165 = $22; - $166 = $25; - $167 = HEAP32[$166>>2]|0; - $168 = ((($167)) + -24|0); - $21 = $168; - $169 = $21; - $170 = $24; - $171 = ((($170)) + -24|0); - $24 = $171; - $6 = $171; - $172 = $6; - $5 = $172; - $173 = $5; - $17 = $165; - $18 = $169; - $19 = $173; - $174 = $17; - $175 = $18; - $176 = $19; - $16 = $176; - $177 = $16; - ;HEAP8[$15>>0]=HEAP8[$20>>0]|0; - $12 = $174; - $13 = $175; - $14 = $177; - $178 = $12; - $179 = $13; - $180 = $14; - $11 = $180; - $181 = $11; - $8 = $178; - $9 = $179; - $10 = $181; - $182 = $9; - $183 = $10; - $7 = $183; - $184 = $7; - __ZNSt3__28functionIFvRN6laszip2io6headerEEEC2EOS6_($182,$184); - $185 = $25; - $186 = HEAP32[$185>>2]|0; - $187 = ((($186)) + -24|0); - HEAP32[$185>>2] = $187; - } - $188 = $103; - $189 = ((($188)) + 4|0); - $29 = $104; - $30 = $189; - $190 = $29; - $28 = $190; - $191 = $28; - $192 = HEAP32[$191>>2]|0; - HEAP32[$31>>2] = $192; - $193 = $30; - $26 = $193; - $194 = $26; - $195 = HEAP32[$194>>2]|0; - $196 = $29; - HEAP32[$196>>2] = $195; - $27 = $31; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = $30; - HEAP32[$199>>2] = $198; - $200 = ((($104)) + 4|0); - $201 = $103; - $202 = ((($201)) + 8|0); - $35 = $200; - $36 = $202; - $203 = $35; - $34 = $203; - $204 = $34; - $205 = HEAP32[$204>>2]|0; - HEAP32[$37>>2] = $205; - $206 = $36; - $32 = $206; - $207 = $32; - $208 = HEAP32[$207>>2]|0; - $209 = $35; - HEAP32[$209>>2] = $208; - $33 = $37; - $210 = $33; - $211 = HEAP32[$210>>2]|0; - $212 = $36; - HEAP32[$212>>2] = $211; - $40 = $104; - $213 = $40; - $214 = ((($213)) + 8|0); - $39 = $214; - $215 = $39; - $38 = $215; - $216 = $38; - $217 = $103; - $43 = $217; - $218 = $43; - $219 = ((($218)) + 12|0); - $42 = $219; - $220 = $42; - $41 = $220; - $221 = $41; - $47 = $216; - $48 = $221; - $222 = $47; - $46 = $222; - $223 = $46; - $224 = HEAP32[$223>>2]|0; - HEAP32[$49>>2] = $224; - $225 = $48; - $44 = $225; - $226 = $44; - $227 = HEAP32[$226>>2]|0; - $228 = $47; - HEAP32[$228>>2] = $227; - $45 = $49; - $229 = $45; - $230 = HEAP32[$229>>2]|0; - $231 = $48; - HEAP32[$231>>2] = $230; - $232 = $103; - $233 = ((($232)) + 4|0); - $234 = HEAP32[$233>>2]|0; - $235 = $103; - HEAP32[$235>>2] = $234; - $50 = $104; - $236 = $50; - $237 = ((($236)) + 4|0); - $238 = HEAP32[$237>>2]|0; - $239 = HEAP32[$236>>2]|0; - $240 = $238; - $241 = $239; - $242 = (($240) - ($241))|0; - $243 = (($242|0) / 24)&-1; - $74 = $104; - $75 = $243; - $244 = $74; - $73 = $244; - $245 = $73; - $246 = HEAP32[$245>>2]|0; - $72 = $246; - $247 = $72; - $52 = $244; - $248 = $52; - $249 = HEAP32[$248>>2]|0; - $51 = $249; - $250 = $51; - $57 = $244; - $251 = $57; - $56 = $251; - $252 = $56; - $55 = $252; - $253 = $55; - $254 = ((($253)) + 8|0); - $54 = $254; - $255 = $54; - $53 = $255; - $256 = $53; - $257 = HEAP32[$256>>2]|0; - $258 = HEAP32[$252>>2]|0; - $259 = $257; - $260 = $258; - $261 = (($259) - ($260))|0; - $262 = (($261|0) / 24)&-1; - $263 = (($250) + (($262*24)|0)|0); - $59 = $244; - $264 = $59; - $265 = HEAP32[$264>>2]|0; - $58 = $265; - $266 = $58; - $64 = $244; - $267 = $64; - $63 = $267; - $268 = $63; - $62 = $268; - $269 = $62; - $270 = ((($269)) + 8|0); - $61 = $270; - $271 = $61; - $60 = $271; - $272 = $60; - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$268>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 24)&-1; - $279 = (($266) + (($278*24)|0)|0); - $66 = $244; - $280 = $66; - $281 = HEAP32[$280>>2]|0; - $65 = $281; - $282 = $65; - $283 = $75; - $284 = (($282) + (($283*24)|0)|0); - $67 = $244; - $68 = $247; - $69 = $263; - $70 = $279; - $71 = $284; - $76 = $104; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_8functionIFvRN6laszip2io6headerEEEERNS_9allocatorIS7_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -24|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZNSt3__28functionIFvRN6laszip2io6headerEEED2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 24)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorINS_8functionIFvRN6laszip2io6headerEEEENS_9allocatorIS7_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 178956970; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 608|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(608|0); - $7 = sp + 128|0; - $8 = sp + 120|0; - $9 = sp + 112|0; - $10 = sp + 104|0; - $13 = sp + 594|0; - $14 = sp + 593|0; - $15 = sp + 592|0; - $16 = sp + 591|0; - $18 = sp + 540|0; - $27 = sp + 96|0; - $28 = sp + 88|0; - $29 = sp + 80|0; - $30 = sp + 72|0; - $34 = sp + 590|0; - $35 = sp + 589|0; - $36 = sp + 588|0; - $37 = sp + 587|0; - $39 = sp + 488|0; - $45 = sp + 64|0; - $46 = sp + 56|0; - $47 = sp + 48|0; - $53 = sp + 40|0; - $54 = sp + 32|0; - $55 = sp + 24|0; - $58 = sp + 586|0; - $59 = sp + 436|0; - $60 = sp + 585|0; - $61 = sp + 584|0; - $62 = sp + 432|0; - $63 = sp + 583|0; - $64 = sp + 16|0; - $65 = sp + 8|0; - $66 = sp; - $71 = sp + 582|0; - $72 = sp + 412|0; - $73 = sp + 408|0; - $100 = sp + 300|0; - $137 = sp + 581|0; - $138 = sp + 144|0; - $139 = sp + 136|0; - $140 = sp + 580|0; - $136 = $0; - $141 = $136; - $142 = ((($141)) + 4|0); - $135 = $142; - $143 = $135; - $134 = $143; - $144 = $134; - $132 = $137; - $133 = $144; - $110 = $137; - $111 = 1; - $112 = 0; - $145 = $110; - $146 = $111; - $109 = $145; - $147 = ($146>>>0)>(536870911); - if ($147) { - $107 = 4287; - $148 = (___cxa_allocate_exception(8)|0); - $149 = $107; - $105 = $148; - $106 = $149; - $150 = $105; - $151 = $106; - __ZNSt11logic_errorC2EPKc($150,$151); - HEAP32[$150>>2] = (3660); - ___cxa_throw(($148|0),(1384|0),(220|0)); - // unreachable; - } - $152 = $111; - $153 = $152<<3; - $108 = $153; - $154 = $108; - $155 = (__Znwj($154)|0); - $102 = $139; - $103 = $137; - $104 = 1; - $156 = $102; - $157 = $103; - HEAP32[$156>>2] = $157; - $158 = ((($156)) + 4|0); - $159 = $104; - HEAP32[$158>>2] = $159; - $99 = $138; - HEAP32[$100>>2] = $155; - $101 = $139; - $160 = $99; - $161 = $101; - $98 = $161; - $162 = $98; - $95 = $160; - $96 = $100; - $97 = $162; - $163 = $95; - $164 = $96; - $94 = $164; - $165 = $94; - $88 = $163; - $89 = $165; - $166 = $88; - $167 = $89; - $87 = $167; - $168 = $87; - $169 = HEAP32[$168>>2]|0; - HEAP32[$166>>2] = $169; - $170 = ((($163)) + 4|0); - $171 = $97; - $90 = $171; - $172 = $90; - $92 = $170; - $93 = $172; - $173 = $92; - $174 = $93; - $91 = $174; - $175 = $91; - ;HEAP32[$173>>2]=HEAP32[$175>>2]|0;HEAP32[$173+4>>2]=HEAP32[$175+4>>2]|0; - $86 = $138; - $176 = $86; - $85 = $176; - $177 = $85; - $84 = $177; - $178 = $84; - $179 = HEAP32[$178>>2]|0; - $180 = ((($141)) + 4|0); - $83 = $180; - $181 = $83; - $82 = $181; - $182 = $82; - $80 = $140; - $81 = $137; - $68 = $179; - $69 = $182; - $70 = $140; - $183 = $68; - $67 = $183; - $184 = $67; - HEAP32[$184>>2] = (1704); - HEAP32[$183>>2] = (1660); - $185 = ((($183)) + 4|0); - $186 = $69; - $19 = $186; - $187 = $19; - $17 = $187; - $188 = $17; - $11 = $18; - $12 = $188; - $189 = $11; - $190 = $12; - ;HEAP8[$7>>0]=HEAP8[$16>>0]|0; - ;HEAP8[$8>>0]=HEAP8[$15>>0]|0; - ;HEAP8[$9>>0]=HEAP8[$14>>0]|0; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $5 = $189; - $6 = $190; - $191 = $5; - $192 = $6; - $4 = $192; - $193 = $4; - $2 = $191; - $3 = $193; - $194 = $2; - $195 = $3; - $1 = $195; - $196 = $1; - HEAP32[$194>>2] = $196; - $197 = HEAP32[$18>>2]|0; - HEAP32[$72>>2] = $197; - $198 = $70; - $20 = $198; - $199 = $20; - $40 = $199; - $200 = $40; - $38 = $200; - $201 = $38; - $32 = $39; - $33 = $201; - $202 = $32; - $203 = $33; - $31 = $203; - $204 = $31; - ;HEAP8[$27>>0]=HEAP8[$37>>0]|0; - ;HEAP8[$28>>0]=HEAP8[$36>>0]|0; - ;HEAP8[$29>>0]=HEAP8[$35>>0]|0; - ;HEAP8[$30>>0]=HEAP8[$34>>0]|0; - $25 = $202; - $26 = $204; - $205 = $25; - $206 = $26; - $24 = $206; - $207 = $24; - $22 = $205; - $23 = $207; - $208 = $22; - $209 = $23; - $21 = $209; - $210 = $21; - HEAP32[$208>>2] = $210; - $211 = HEAP32[$39>>2]|0; - HEAP32[$73>>2] = $211; - ;HEAP8[$64>>0]=HEAP8[$73>>0]|0;HEAP8[$64+1>>0]=HEAP8[$73+1>>0]|0;HEAP8[$64+2>>0]=HEAP8[$73+2>>0]|0;HEAP8[$64+3>>0]=HEAP8[$73+3>>0]|0; - ;HEAP8[$65>>0]=HEAP8[$72>>0]|0;HEAP8[$65+1>>0]=HEAP8[$72+1>>0]|0;HEAP8[$65+2>>0]=HEAP8[$72+2>>0]|0;HEAP8[$65+3>>0]=HEAP8[$72+3>>0]|0; - ;HEAP8[$66>>0]=HEAP8[$71>>0]|0; - $57 = $185; - $212 = $57; - $56 = $65; - $213 = $56; - ;HEAP32[$59>>2]=HEAP32[$213>>2]|0; - ;HEAP8[$45>>0]=HEAP8[$60>>0]|0; - ;HEAP8[$46>>0]=HEAP8[$59>>0]|0;HEAP8[$46+1>>0]=HEAP8[$59+1>>0]|0;HEAP8[$46+2>>0]=HEAP8[$59+2>>0]|0;HEAP8[$46+3>>0]=HEAP8[$59+3>>0]|0; - ;HEAP8[$47>>0]=HEAP8[$58>>0]|0; - $44 = $212; - $43 = $46; - $214 = $43; - $42 = $214; - $215 = $42; - $216 = HEAP32[$215>>2]|0; - $41 = $216; - $48 = $64; - $217 = $48; - ;HEAP32[$62>>2]=HEAP32[$217>>2]|0; - ;HEAP8[$53>>0]=HEAP8[$63>>0]|0; - ;HEAP8[$54>>0]=HEAP8[$62>>0]|0;HEAP8[$54+1>>0]=HEAP8[$62+1>>0]|0;HEAP8[$54+2>>0]=HEAP8[$62+2>>0]|0;HEAP8[$54+3>>0]=HEAP8[$62+3>>0]|0; - ;HEAP8[$55>>0]=HEAP8[$61>>0]|0; - $52 = $212; - $51 = $54; - $218 = $51; - $50 = $218; - $219 = $50; - $220 = HEAP32[$219>>2]|0; - $49 = $220; - $78 = $138; - $221 = $78; - $77 = $221; - $222 = $77; - $76 = $222; - $223 = $76; - $224 = HEAP32[$223>>2]|0; - $79 = $224; - $75 = $221; - $225 = $75; - $74 = $225; - $226 = $74; - HEAP32[$226>>2] = 0; - $227 = $79; - $131 = $138; - $228 = $131; - $128 = $228; - $129 = 0; - $229 = $128; - $127 = $229; - $230 = $127; - $126 = $230; - $231 = $126; - $232 = HEAP32[$231>>2]|0; - $130 = $232; - $233 = $129; - $116 = $229; - $234 = $116; - $115 = $234; - $235 = $115; - HEAP32[$235>>2] = $233; - $236 = $130; - $237 = ($236|0)!=(0|0); - if (!($237)) { - STACKTOP = sp;return ($227|0); - } - $114 = $229; - $238 = $114; - $239 = ((($238)) + 4|0); - $113 = $239; - $240 = $113; - $241 = $130; - $124 = $240; - $125 = $241; - $242 = $124; - $243 = HEAP32[$242>>2]|0; - $244 = $125; - $245 = ((($242)) + 4|0); - $246 = HEAP32[$245>>2]|0; - $121 = $243; - $122 = $244; - $123 = $246; - $247 = $121; - $248 = $122; - $249 = $123; - $118 = $247; - $119 = $248; - $120 = $249; - $250 = $119; - $117 = $250; - $251 = $117; - __ZdlPv($251); - STACKTOP = sp;return ($227|0); -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEPNS0_6__baseISE_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $10 = sp + 128|0; - $11 = sp + 120|0; - $12 = sp + 112|0; - $13 = sp + 104|0; - $16 = sp + 332|0; - $17 = sp + 331|0; - $18 = sp + 330|0; - $19 = sp + 329|0; - $21 = sp + 272|0; - $29 = sp + 96|0; - $30 = sp + 88|0; - $31 = sp + 80|0; - $32 = sp + 72|0; - $35 = sp + 328|0; - $36 = sp + 327|0; - $37 = sp + 326|0; - $38 = sp + 325|0; - $40 = sp + 228|0; - $46 = sp + 64|0; - $47 = sp + 56|0; - $48 = sp + 48|0; - $54 = sp + 40|0; - $55 = sp + 32|0; - $56 = sp + 24|0; - $59 = sp + 324|0; - $60 = sp + 176|0; - $61 = sp + 323|0; - $62 = sp + 322|0; - $63 = sp + 172|0; - $64 = sp + 321|0; - $65 = sp + 16|0; - $66 = sp + 8|0; - $67 = sp; - $72 = sp + 320|0; - $73 = sp + 152|0; - $74 = sp + 148|0; - $77 = $0; - $78 = $1; - $79 = $77; - $80 = $78; - $81 = ((($79)) + 4|0); - $76 = $81; - $82 = $76; - $75 = $82; - $83 = $75; - $84 = ((($79)) + 4|0); - $3 = $84; - $85 = $3; - $2 = $85; - $86 = $2; - $69 = $80; - $70 = $83; - $71 = $86; - $87 = $69; - $68 = $87; - $88 = $68; - HEAP32[$88>>2] = (1704); - HEAP32[$87>>2] = (1660); - $89 = ((($87)) + 4|0); - $90 = $70; - $22 = $90; - $91 = $22; - $20 = $91; - $92 = $20; - $14 = $21; - $15 = $92; - $93 = $14; - $94 = $15; - ;HEAP8[$10>>0]=HEAP8[$19>>0]|0; - ;HEAP8[$11>>0]=HEAP8[$18>>0]|0; - ;HEAP8[$12>>0]=HEAP8[$17>>0]|0; - ;HEAP8[$13>>0]=HEAP8[$16>>0]|0; - $8 = $93; - $9 = $94; - $95 = $8; - $96 = $9; - $7 = $96; - $97 = $7; - $5 = $95; - $6 = $97; - $98 = $5; - $99 = $6; - $4 = $99; - $100 = $4; - HEAP32[$98>>2] = $100; - $101 = HEAP32[$21>>2]|0; - HEAP32[$73>>2] = $101; - $102 = $71; - $41 = $102; - $103 = $41; - $39 = $103; - $104 = $39; - $33 = $40; - $34 = $104; - $105 = $33; - $106 = $34; - ;HEAP8[$29>>0]=HEAP8[$38>>0]|0; - ;HEAP8[$30>>0]=HEAP8[$37>>0]|0; - ;HEAP8[$31>>0]=HEAP8[$36>>0]|0; - ;HEAP8[$32>>0]=HEAP8[$35>>0]|0; - $27 = $105; - $28 = $106; - $107 = $27; - $108 = $28; - $26 = $108; - $109 = $26; - $24 = $107; - $25 = $109; - $110 = $24; - $111 = $25; - $23 = $111; - $112 = $23; - HEAP32[$110>>2] = $112; - $113 = HEAP32[$40>>2]|0; - HEAP32[$74>>2] = $113; - ;HEAP8[$65>>0]=HEAP8[$74>>0]|0;HEAP8[$65+1>>0]=HEAP8[$74+1>>0]|0;HEAP8[$65+2>>0]=HEAP8[$74+2>>0]|0;HEAP8[$65+3>>0]=HEAP8[$74+3>>0]|0; - ;HEAP8[$66>>0]=HEAP8[$73>>0]|0;HEAP8[$66+1>>0]=HEAP8[$73+1>>0]|0;HEAP8[$66+2>>0]=HEAP8[$73+2>>0]|0;HEAP8[$66+3>>0]=HEAP8[$73+3>>0]|0; - ;HEAP8[$67>>0]=HEAP8[$72>>0]|0; - $58 = $89; - $114 = $58; - $57 = $66; - $115 = $57; - ;HEAP32[$60>>2]=HEAP32[$115>>2]|0; - ;HEAP8[$46>>0]=HEAP8[$61>>0]|0; - ;HEAP8[$47>>0]=HEAP8[$60>>0]|0;HEAP8[$47+1>>0]=HEAP8[$60+1>>0]|0;HEAP8[$47+2>>0]=HEAP8[$60+2>>0]|0;HEAP8[$47+3>>0]=HEAP8[$60+3>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$59>>0]|0; - $45 = $114; - $44 = $47; - $116 = $44; - $43 = $116; - $117 = $43; - $118 = HEAP32[$117>>2]|0; - $42 = $118; - $49 = $65; - $119 = $49; - ;HEAP32[$63>>2]=HEAP32[$119>>2]|0; - ;HEAP8[$54>>0]=HEAP8[$64>>0]|0; - ;HEAP8[$55>>0]=HEAP8[$63>>0]|0;HEAP8[$55+1>>0]=HEAP8[$63+1>>0]|0;HEAP8[$55+2>>0]=HEAP8[$63+2>>0]|0;HEAP8[$55+3>>0]=HEAP8[$63+3>>0]|0; - ;HEAP8[$56>>0]=HEAP8[$62>>0]|0; - $53 = $114; - $52 = $55; - $120 = $52; - $51 = $120; - $121 = $51; - $122 = HEAP32[$121>>2]|0; - $50 = $122; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7destroyEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE18destroy_deallocateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 36|0; - $9 = $0; - $11 = $9; - $12 = ((($11)) + 4|0); - $8 = $12; - $13 = $8; - $7 = $13; - $14 = $7; - $1 = $10; - $2 = $14; - $4 = $10; - $5 = $11; - $6 = 1; - $15 = $5; - $3 = $15; - $16 = $3; - __ZdlPv($16); - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EEclESA_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 4|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $11 = $6; - $2 = $11; - $12 = $2; - __ZNSt3__228__invoke_void_return_wrapperIvE6__callIJRZN6laszip2io6reader10basic_fileINS3_7streams13memory_streamEE11_validatorsEvEUlRNS4_6headerEE_SB_EEEvDpOT_($10,$12); - STACKTOP = sp;return; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE6targetERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $0; - $8 = $1; - $9 = $7; - $10 = $8; - $4 = $10; - $5 = 128; - $11 = $4; - $12 = ((($11)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $14 = $5; - $15 = ((($14)) + 4|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($13|0)==($16|0); - if ($17) { - $18 = ((($9)) + 4|0); - $3 = $18; - $19 = $3; - $2 = $19; - $20 = $2; - $6 = $20; - $21 = $6; - STACKTOP = sp;return ($21|0); - } else { - $6 = 0; - $21 = $6; - STACKTOP = sp;return ($21|0); - } - return (0)|0; -} -function __ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE11target_typeEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (128|0); -} -function __ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__228__invoke_void_return_wrapperIvE6__callIJRZN6laszip2io6reader10basic_fileINS3_7streams13memory_streamEE11_validatorsEvEUlRNS4_6headerEE_SB_EEEvDpOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $8 = $0; - $9 = $1; - $10 = $8; - $7 = $10; - $11 = $7; - $12 = $9; - $2 = $12; - $13 = $2; - $5 = $11; - $6 = $13; - $14 = $5; - $4 = $14; - $15 = $4; - $16 = $6; - $3 = $16; - $17 = $3; - __ZZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEvENKUlRNS0_6headerEE_clES7_($15,$17); - STACKTOP = sp;return; -} -function __ZZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE11_validatorsEvENKUlRNS0_6headerEE_clES7_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $3; - $7 = ((($6)) + 104|0); - $8 = HEAP8[$7>>0]|0; - $9 = $8&255; - $10 = $9 >> 7; - $11 = $10 & 1; - $4 = $11; - $12 = $3; - $13 = ((($12)) + 104|0); - $14 = HEAP8[$13>>0]|0; - $15 = $14&255; - $16 = $15 >> 6; - $17 = $16 & 1; - $5 = $17; - $18 = $4; - $19 = ($18|0)==(1); - $20 = $5; - $21 = ($20|0)==(1); - $or$cond = $19 & $21; - if ($or$cond) { - $22 = (___cxa_allocate_exception(8)|0); - __ZN6laszip21old_style_compressionC2Ev($22); - ___cxa_throw(($22|0),(96|0),(26|0)); - // unreachable; - } - $23 = $4; - $24 = $5; - $25 = $23 ^ $24; - $26 = ($25|0)==(0); - if ($26) { - $27 = (___cxa_allocate_exception(8)|0); - __ZN6laszip14not_compressedC2Ev($27); - ___cxa_throw(($27|0),(112|0),(28|0)); - // unreachable; - } else { - $28 = $3; - $29 = ((($28)) + 104|0); - $30 = HEAP8[$29>>0]|0; - $31 = $30&255; - $32 = $31 & 63; - $33 = $32&255; - HEAP8[$29>>0] = $33; - STACKTOP = sp;return; - } -} -function __ZN6laszip21old_style_compressionC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4640); - HEAP32[$2>>2] = (1748); - STACKTOP = sp;return; -} -function __ZN6laszip21old_style_compressionD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4708); - HEAP32[$2>>2] = (1768); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip21old_style_compressionD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip21old_style_compressionD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip14not_compressedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip14not_compressedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__217bad_function_callC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - $4 = $1; - HEAP32[$4>>2] = (3600); - HEAP32[$3>>2] = (3448); - STACKTOP = sp;return; -} -function __ZN6laszip7streams13memory_stream4goodEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 12|0); - $5 = HEAP8[$4>>0]|0; - $6 = $5&1; - $7 = $6&1; - $2 = $7; - $8 = ((($3)) + 12|0); - HEAP8[$8>>0] = 0; - $9 = $2; - $10 = $9&1; - $11 = $10 ^ 1; - STACKTOP = sp;return ($11|0); -} -function __ZN6laszip7streams13memory_stream3eofEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 13|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE15_parseLASZIPVLREPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 247|0); - $6 = $3; - __ZN6laszip2io7laz_vlr4fillEPKc($5,$6); - $7 = ((($4)) + 247|0); - $8 = HEAPU8[$7>>0]|(HEAPU8[$7+1>>0]<<8); - $9 = $8&65535; - $10 = ($9|0)!=(2); - if ($10) { - $11 = (___cxa_allocate_exception(8)|0); - __ZN6laszip25laszip_format_unsupportedC2Ev($11); - ___cxa_throw(($11|0),(152|0),(30|0)); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function __ZN6laszip7streams13memory_stream5seekgExNSt3__28ios_base7seekdirE($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = sp + 8|0; - $7 = sp; - $4 = $0; - $8 = $5; - $9 = $8; - HEAP32[$9>>2] = $1; - $10 = (($8) + 4)|0; - $11 = $10; - HEAP32[$11>>2] = $2; - $6 = $3; - $12 = $4; - $13 = $7; - $14 = $13; - HEAP32[$14>>2] = 0; - $15 = (($13) + 4)|0; - $16 = $15; - HEAP32[$16>>2] = 0; - $17 = $6; - switch ($17|0) { - case 0: { - $18 = $5; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + 4)|0; - $22 = $21; - $23 = HEAP32[$22>>2]|0; - $24 = $7; - $25 = $24; - HEAP32[$25>>2] = $20; - $26 = (($24) + 4)|0; - $27 = $26; - HEAP32[$27>>2] = $23; - break; - } - case 2: { - $28 = ((($12)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $30 = ($29|0)<(0); - $31 = $30 << 31 >> 31; - $32 = $5; - $33 = $32; - $34 = HEAP32[$33>>2]|0; - $35 = (($32) + 4)|0; - $36 = $35; - $37 = HEAP32[$36>>2]|0; - $38 = (_i64Add(($29|0),($31|0),($34|0),($37|0))|0); - $39 = tempRet0; - $40 = (_i64Subtract(($38|0),($39|0),1,0)|0); - $41 = tempRet0; - $42 = $7; - $43 = $42; - HEAP32[$43>>2] = $40; - $44 = (($42) + 4)|0; - $45 = $44; - HEAP32[$45>>2] = $41; - break; - } - case 1: { - $46 = ((($12)) + 8|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47|0)<(0); - $49 = $48 << 31 >> 31; - $50 = $5; - $51 = $50; - $52 = HEAP32[$51>>2]|0; - $53 = (($50) + 4)|0; - $54 = $53; - $55 = HEAP32[$54>>2]|0; - $56 = (_i64Add(($47|0),($49|0),($52|0),($55|0))|0); - $57 = tempRet0; - $58 = $7; - $59 = $58; - HEAP32[$59>>2] = $56; - $60 = (($58) + 4)|0; - $61 = $60; - HEAP32[$61>>2] = $57; - break; - } - default: { - } - } - $62 = $7; - $63 = $62; - $64 = HEAP32[$63>>2]|0; - $65 = (($62) + 4)|0; - $66 = $65; - $67 = HEAP32[$66>>2]|0; - $68 = ((($12)) + 4|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)<(0); - $71 = $70 << 31 >> 31; - $72 = ($67|0)>($71|0); - $73 = ($64>>>0)>=($69>>>0); - $74 = ($67|0)==($71|0); - $75 = $74 & $73; - $76 = $72 | $75; - $77 = $7; - $78 = $77; - $79 = HEAP32[$78>>2]|0; - $80 = (($77) + 4)|0; - $81 = $80; - $82 = HEAP32[$81>>2]|0; - $83 = ($82|0)<(0); - $or$cond = $76 | $83; - $84 = ((($12)) + 12|0); - if ($or$cond) { - HEAP8[$84>>0] = 1; - STACKTOP = sp;return; - } else { - HEAP8[$84>>0] = 0; - $85 = $7; - $86 = $85; - $87 = HEAP32[$86>>2]|0; - $88 = (($85) + 4)|0; - $89 = $88; - $90 = HEAP32[$89>>2]|0; - $91 = ((($12)) + 8|0); - HEAP32[$91>>2] = $87; - STACKTOP = sp;return; - } -} -function __ZN6laszip13no_laszip_vlrC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4974); - HEAP32[$2>>2] = (1808); - STACKTOP = sp;return; -} -function __ZN6laszip13no_laszip_vlrD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip2io7laz_vlr9to_schemaERKS1_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $5 = sp + 40|0; - $8 = sp + 12|0; - $9 = sp; - $3 = $1; - $4 = $2; - $$expand_i1_val = 0; - HEAP8[$5>>0] = $$expand_i1_val; - __ZN6laszip7factory13record_schemaC2Ev($0); - $6 = 0; - while(1) { - $10 = $6; - $11 = $3; - $12 = ((($11)) + 32|0); - $13 = HEAPU8[$12>>0]|(HEAPU8[$12+1>>0]<<8); - $14 = $13&65535; - $15 = ($10|0)<($14|0); - if (!($15)) { - break; - } - $16 = $3; - $17 = ((($16)) + 34|0); - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = $6; - $20 = (($18) + (($19*6)|0)|0); - $7 = $20; - $21 = $7; - $22 = HEAPU8[$21>>0]|(HEAPU8[$21+1>>0]<<8); - $23 = $22&65535; - $24 = $7; - $25 = ((($24)) + 2|0); - $26 = HEAPU8[$25>>0]|(HEAPU8[$25+1>>0]<<8); - $27 = $26&65535; - $28 = $7; - $29 = ((($28)) + 4|0); - $30 = HEAPU8[$29>>0]|(HEAPU8[$29+1>>0]<<8); - $31 = $30&65535; - __ZN6laszip7factory11record_itemC2Eiii($8,$23,$27,$31); - __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$8); - $32 = $7; - $33 = ((($32)) + 2|0); - $34 = HEAPU8[$33>>0]|(HEAPU8[$33+1>>0]<<8); - $35 = $34&65535; - $36 = $4; - $37 = (($36) - ($35))|0; - $4 = $37; - $38 = $6; - $39 = (($38) + 1)|0; - $6 = $39; - } - $40 = $4; - $41 = ($40|0)<(0); - if ($41) { - $42 = (___cxa_allocate_exception(8)|0); - __ZN6laszip25laszip_format_unsupportedC2Ev($42); - ___cxa_throw(($42|0),(152|0),(30|0)); - // unreachable; - } - $43 = $4; - $44 = ($43|0)!=(0); - if ($44) { - $45 = $4; - __ZN6laszip7factory11record_itemC2Eiii($9,0,$45,2); - __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$9); - } - $$expand_i1_val2 = 1; - HEAP8[$5>>0] = $$expand_i1_val2; - $$pre_trunc = HEAP8[$5>>0]|0; - $46 = $$pre_trunc&1; - if ($46) { - STACKTOP = sp;return; - } - __ZN6laszip7factory13record_schemaD2Ev($0); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schemaaSEOS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $$byval_copy = sp + 17|0; - $4 = sp + 16|0; - $5 = $0; - $6 = $1; - $7 = $5; - $8 = $6; - $2 = $7; - $3 = $8; - $9 = $2; - $10 = $3; - ;HEAP8[$$byval_copy>>0]=HEAP8[$4>>0]|0; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE13__move_assignERS6_NS_17integral_constantIbLb1EEE($9,$10,$$byval_copy); - STACKTOP = sp;return ($7|0); -} -function __ZN6laszip2io7laz_vlr4fillEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$arith = 0, $$overflow = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; - var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0; - var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; - var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; - var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0; - var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0; - var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0; - var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0; - var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0; - var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0; - var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0; - var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 464|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(464|0); - $112 = $0; - $113 = $1; - $116 = $112; - $117 = $113; - $118 = $113; - $119 = ((($118)) + 2|0); - $109 = $117; - $110 = $119; - $111 = $116; - $120 = $109; - $108 = $120; - $121 = $108; - $122 = $110; - $102 = $122; - $123 = $102; - $124 = $111; - $103 = $124; - $125 = $103; - $104 = $121; - $105 = $123; - $106 = $125; - $126 = $105; - $127 = $104; - $128 = $126; - $129 = $127; - $130 = (($128) - ($129))|0; - $107 = $130; - $131 = $107; - $132 = ($131>>>0)>(0); - if ($132) { - $133 = $106; - $134 = $104; - $135 = $107; - _memmove(($133|0),($134|0),($135|0))|0; - } - $136 = HEAPU8[$116>>0]|(HEAPU8[$116+1>>0]<<8); - HEAP8[$116>>0]=$136&255;HEAP8[$116+1>>0]=$136>>8; - $137 = $113; - $138 = ((($137)) + 2|0); - $113 = $138; - $139 = $113; - $140 = $113; - $141 = ((($140)) + 2|0); - $142 = ((($116)) + 2|0); - $9 = $139; - $10 = $141; - $11 = $142; - $143 = $9; - $8 = $143; - $144 = $8; - $145 = $10; - $2 = $145; - $146 = $2; - $147 = $11; - $3 = $147; - $148 = $3; - $4 = $144; - $5 = $146; - $6 = $148; - $149 = $5; - $150 = $4; - $151 = $149; - $152 = $150; - $153 = (($151) - ($152))|0; - $7 = $153; - $154 = $7; - $155 = ($154>>>0)>(0); - if ($155) { - $156 = $6; - $157 = $4; - $158 = $7; - _memmove(($156|0),($157|0),($158|0))|0; - } - $159 = ((($116)) + 2|0); - $160 = HEAPU8[$159>>0]|(HEAPU8[$159+1>>0]<<8); - $161 = ((($116)) + 2|0); - HEAP8[$161>>0]=$160&255;HEAP8[$161+1>>0]=$160>>8; - $162 = $113; - $163 = ((($162)) + 2|0); - $113 = $163; - $164 = $113; - $165 = ((($164)) + 1|0); - $113 = $165; - $166 = HEAP8[$164>>0]|0; - $167 = ((($116)) + 4|0); - HEAP8[$167>>0] = $166; - $168 = $113; - $169 = ((($168)) + 1|0); - $113 = $169; - $170 = HEAP8[$168>>0]|0; - $171 = ((($116)) + 4|0); - $172 = ((($171)) + 1|0); - HEAP8[$172>>0] = $170; - $173 = $113; - $174 = $113; - $175 = ((($174)) + 2|0); - $176 = ((($116)) + 4|0); - $177 = ((($176)) + 2|0); - $19 = $173; - $20 = $175; - $21 = $177; - $178 = $19; - $18 = $178; - $179 = $18; - $180 = $20; - $12 = $180; - $181 = $12; - $182 = $21; - $13 = $182; - $183 = $13; - $14 = $179; - $15 = $181; - $16 = $183; - $184 = $15; - $185 = $14; - $186 = $184; - $187 = $185; - $188 = (($186) - ($187))|0; - $17 = $188; - $189 = $17; - $190 = ($189>>>0)>(0); - if ($190) { - $191 = $16; - $192 = $14; - $193 = $17; - _memmove(($191|0),($192|0),($193|0))|0; - } - $194 = ((($116)) + 4|0); - $195 = ((($194)) + 2|0); - $196 = HEAPU8[$195>>0]|(HEAPU8[$195+1>>0]<<8); - $197 = ((($116)) + 4|0); - $198 = ((($197)) + 2|0); - HEAP8[$198>>0]=$196&255;HEAP8[$198+1>>0]=$196>>8; - $199 = $113; - $200 = ((($199)) + 2|0); - $113 = $200; - $201 = $113; - $202 = $113; - $203 = ((($202)) + 4|0); - $204 = ((($116)) + 8|0); - $29 = $201; - $30 = $203; - $31 = $204; - $205 = $29; - $28 = $205; - $206 = $28; - $207 = $30; - $22 = $207; - $208 = $22; - $209 = $31; - $23 = $209; - $210 = $23; - $24 = $206; - $25 = $208; - $26 = $210; - $211 = $25; - $212 = $24; - $213 = $211; - $214 = $212; - $215 = (($213) - ($214))|0; - $27 = $215; - $216 = $27; - $217 = ($216>>>0)>(0); - if ($217) { - $218 = $26; - $219 = $24; - $220 = $27; - _memmove(($218|0),($219|0),($220|0))|0; - } - $221 = ((($116)) + 8|0); - $222 = HEAPU8[$221>>0]|(HEAPU8[$221+1>>0]<<8)|(HEAPU8[$221+2>>0]<<16)|(HEAPU8[$221+3>>0]<<24); - $223 = ((($116)) + 8|0); - HEAP8[$223>>0]=$222&255;HEAP8[$223+1>>0]=($222>>8)&255;HEAP8[$223+2>>0]=($222>>16)&255;HEAP8[$223+3>>0]=$222>>24; - $224 = $113; - $225 = ((($224)) + 4|0); - $113 = $225; - $226 = $113; - $227 = $113; - $228 = ((($227)) + 4|0); - $229 = ((($116)) + 12|0); - $39 = $226; - $40 = $228; - $41 = $229; - $230 = $39; - $38 = $230; - $231 = $38; - $232 = $40; - $32 = $232; - $233 = $32; - $234 = $41; - $33 = $234; - $235 = $33; - $34 = $231; - $35 = $233; - $36 = $235; - $236 = $35; - $237 = $34; - $238 = $236; - $239 = $237; - $240 = (($238) - ($239))|0; - $37 = $240; - $241 = $37; - $242 = ($241>>>0)>(0); - if ($242) { - $243 = $36; - $244 = $34; - $245 = $37; - _memmove(($243|0),($244|0),($245|0))|0; - } - $246 = ((($116)) + 12|0); - $247 = HEAPU8[$246>>0]|(HEAPU8[$246+1>>0]<<8)|(HEAPU8[$246+2>>0]<<16)|(HEAPU8[$246+3>>0]<<24); - $248 = ((($116)) + 12|0); - HEAP8[$248>>0]=$247&255;HEAP8[$248+1>>0]=($247>>8)&255;HEAP8[$248+2>>0]=($247>>16)&255;HEAP8[$248+3>>0]=$247>>24; - $249 = $113; - $250 = ((($249)) + 4|0); - $113 = $250; - $251 = $113; - $252 = $113; - $253 = ((($252)) + 8|0); - $254 = ((($116)) + 16|0); - $49 = $251; - $50 = $253; - $51 = $254; - $255 = $49; - $48 = $255; - $256 = $48; - $257 = $50; - $42 = $257; - $258 = $42; - $259 = $51; - $43 = $259; - $260 = $43; - $44 = $256; - $45 = $258; - $46 = $260; - $261 = $45; - $262 = $44; - $263 = $261; - $264 = $262; - $265 = (($263) - ($264))|0; - $47 = $265; - $266 = $47; - $267 = ($266>>>0)>(0); - if ($267) { - $268 = $46; - $269 = $44; - $270 = $47; - _memmove(($268|0),($269|0),($270|0))|0; - } - $271 = ((($116)) + 16|0); - $272 = $271; - $273 = $272; - $274 = HEAPU8[$273>>0]|(HEAPU8[$273+1>>0]<<8)|(HEAPU8[$273+2>>0]<<16)|(HEAPU8[$273+3>>0]<<24); - $275 = (($272) + 4)|0; - $276 = $275; - $277 = HEAPU8[$276>>0]|(HEAPU8[$276+1>>0]<<8)|(HEAPU8[$276+2>>0]<<16)|(HEAPU8[$276+3>>0]<<24); - $278 = ((($116)) + 16|0); - $279 = $278; - $280 = $279; - HEAP8[$280>>0]=$274&255;HEAP8[$280+1>>0]=($274>>8)&255;HEAP8[$280+2>>0]=($274>>16)&255;HEAP8[$280+3>>0]=$274>>24; - $281 = (($279) + 4)|0; - $282 = $281; - HEAP8[$282>>0]=$277&255;HEAP8[$282+1>>0]=($277>>8)&255;HEAP8[$282+2>>0]=($277>>16)&255;HEAP8[$282+3>>0]=$277>>24; - $283 = $113; - $284 = ((($283)) + 8|0); - $113 = $284; - $285 = $113; - $286 = $113; - $287 = ((($286)) + 8|0); - $288 = ((($116)) + 24|0); - $59 = $285; - $60 = $287; - $61 = $288; - $289 = $59; - $58 = $289; - $290 = $58; - $291 = $60; - $52 = $291; - $292 = $52; - $293 = $61; - $53 = $293; - $294 = $53; - $54 = $290; - $55 = $292; - $56 = $294; - $295 = $55; - $296 = $54; - $297 = $295; - $298 = $296; - $299 = (($297) - ($298))|0; - $57 = $299; - $300 = $57; - $301 = ($300>>>0)>(0); - if ($301) { - $302 = $56; - $303 = $54; - $304 = $57; - _memmove(($302|0),($303|0),($304|0))|0; - } - $305 = ((($116)) + 24|0); - $306 = $305; - $307 = $306; - $308 = HEAPU8[$307>>0]|(HEAPU8[$307+1>>0]<<8)|(HEAPU8[$307+2>>0]<<16)|(HEAPU8[$307+3>>0]<<24); - $309 = (($306) + 4)|0; - $310 = $309; - $311 = HEAPU8[$310>>0]|(HEAPU8[$310+1>>0]<<8)|(HEAPU8[$310+2>>0]<<16)|(HEAPU8[$310+3>>0]<<24); - $312 = ((($116)) + 24|0); - $313 = $312; - $314 = $313; - HEAP8[$314>>0]=$308&255;HEAP8[$314+1>>0]=($308>>8)&255;HEAP8[$314+2>>0]=($308>>16)&255;HEAP8[$314+3>>0]=$308>>24; - $315 = (($313) + 4)|0; - $316 = $315; - HEAP8[$316>>0]=$311&255;HEAP8[$316+1>>0]=($311>>8)&255;HEAP8[$316+2>>0]=($311>>16)&255;HEAP8[$316+3>>0]=$311>>24; - $317 = $113; - $318 = ((($317)) + 8|0); - $113 = $318; - $319 = $113; - $320 = $113; - $321 = ((($320)) + 2|0); - $322 = ((($116)) + 32|0); - $69 = $319; - $70 = $321; - $71 = $322; - $323 = $69; - $68 = $323; - $324 = $68; - $325 = $70; - $62 = $325; - $326 = $62; - $327 = $71; - $63 = $327; - $328 = $63; - $64 = $324; - $65 = $326; - $66 = $328; - $329 = $65; - $330 = $64; - $331 = $329; - $332 = $330; - $333 = (($331) - ($332))|0; - $67 = $333; - $334 = $67; - $335 = ($334>>>0)>(0); - if ($335) { - $336 = $66; - $337 = $64; - $338 = $67; - _memmove(($336|0),($337|0),($338|0))|0; - } - $339 = ((($116)) + 32|0); - $340 = HEAPU8[$339>>0]|(HEAPU8[$339+1>>0]<<8); - $341 = ((($116)) + 32|0); - HEAP8[$341>>0]=$340&255;HEAP8[$341+1>>0]=$340>>8; - $342 = $113; - $343 = ((($342)) + 2|0); - $113 = $343; - $344 = ((($116)) + 34|0); - $345 = HEAPU8[$344>>0]|(HEAPU8[$344+1>>0]<<8)|(HEAPU8[$344+2>>0]<<16)|(HEAPU8[$344+3>>0]<<24); - $346 = ($345|0)==(0|0); - if (!($346)) { - __ZdaPv($345); - } - $347 = ((($116)) + 32|0); - $348 = HEAPU8[$347>>0]|(HEAPU8[$347+1>>0]<<8); - $349 = $348&65535; - $$arith = ($349*6)|0; - $$overflow = ($349>>>0)>(715827882); - $350 = $$overflow ? -1 : $$arith; - $351 = (__Znaj($350)|0); - $352 = ((($116)) + 34|0); - HEAP8[$352>>0]=$351&255;HEAP8[$352+1>>0]=($351>>8)&255;HEAP8[$352+2>>0]=($351>>16)&255;HEAP8[$352+3>>0]=$351>>24; - $114 = 0; - while(1) { - $353 = $114; - $354 = ((($116)) + 32|0); - $355 = HEAPU8[$354>>0]|(HEAPU8[$354+1>>0]<<8); - $356 = $355&65535; - $357 = ($353|0)<($356|0); - if (!($357)) { - break; - } - $358 = ((($116)) + 34|0); - $359 = HEAPU8[$358>>0]|(HEAPU8[$358+1>>0]<<8)|(HEAPU8[$358+2>>0]<<16)|(HEAPU8[$358+3>>0]<<24); - $360 = $114; - $361 = (($359) + (($360*6)|0)|0); - $115 = $361; - $362 = $113; - $363 = $113; - $364 = ((($363)) + 2|0); - $365 = $115; - $79 = $362; - $80 = $364; - $81 = $365; - $366 = $79; - $78 = $366; - $367 = $78; - $368 = $80; - $72 = $368; - $369 = $72; - $370 = $81; - $73 = $370; - $371 = $73; - $74 = $367; - $75 = $369; - $76 = $371; - $372 = $75; - $373 = $74; - $374 = $372; - $375 = $373; - $376 = (($374) - ($375))|0; - $77 = $376; - $377 = $77; - $378 = ($377>>>0)>(0); - if ($378) { - $379 = $76; - $380 = $74; - $381 = $77; - _memmove(($379|0),($380|0),($381|0))|0; - } - $382 = $115; - $383 = HEAPU8[$382>>0]|(HEAPU8[$382+1>>0]<<8); - $384 = $115; - HEAP8[$384>>0]=$383&255;HEAP8[$384+1>>0]=$383>>8; - $385 = $113; - $386 = ((($385)) + 2|0); - $113 = $386; - $387 = $113; - $388 = $113; - $389 = ((($388)) + 2|0); - $390 = $115; - $391 = ((($390)) + 2|0); - $89 = $387; - $90 = $389; - $91 = $391; - $392 = $89; - $88 = $392; - $393 = $88; - $394 = $90; - $82 = $394; - $395 = $82; - $396 = $91; - $83 = $396; - $397 = $83; - $84 = $393; - $85 = $395; - $86 = $397; - $398 = $85; - $399 = $84; - $400 = $398; - $401 = $399; - $402 = (($400) - ($401))|0; - $87 = $402; - $403 = $87; - $404 = ($403>>>0)>(0); - if ($404) { - $405 = $86; - $406 = $84; - $407 = $87; - _memmove(($405|0),($406|0),($407|0))|0; - } - $408 = $115; - $409 = ((($408)) + 2|0); - $410 = HEAPU8[$409>>0]|(HEAPU8[$409+1>>0]<<8); - $411 = $115; - $412 = ((($411)) + 2|0); - HEAP8[$412>>0]=$410&255;HEAP8[$412+1>>0]=$410>>8; - $413 = $113; - $414 = ((($413)) + 2|0); - $113 = $414; - $415 = $113; - $416 = $113; - $417 = ((($416)) + 2|0); - $418 = $115; - $419 = ((($418)) + 4|0); - $99 = $415; - $100 = $417; - $101 = $419; - $420 = $99; - $98 = $420; - $421 = $98; - $422 = $100; - $92 = $422; - $423 = $92; - $424 = $101; - $93 = $424; - $425 = $93; - $94 = $421; - $95 = $423; - $96 = $425; - $426 = $95; - $427 = $94; - $428 = $426; - $429 = $427; - $430 = (($428) - ($429))|0; - $97 = $430; - $431 = $97; - $432 = ($431>>>0)>(0); - if ($432) { - $433 = $96; - $434 = $94; - $435 = $97; - _memmove(($433|0),($434|0),($435|0))|0; - } - $436 = $115; - $437 = ((($436)) + 4|0); - $438 = HEAPU8[$437>>0]|(HEAPU8[$437+1>>0]<<8); - $439 = $115; - $440 = ((($439)) + 4|0); - HEAP8[$440>>0]=$438&255;HEAP8[$440+1>>0]=$438>>8; - $441 = $113; - $442 = ((($441)) + 2|0); - $113 = $442; - $443 = $114; - $444 = (($443) + 1)|0; - $114 = $444; - } - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,4918); - HEAP32[$2>>2] = (1788); - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip25laszip_format_unsupportedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip25laszip_format_unsupportedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip13no_laszip_vlrD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13no_laszip_vlrD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7factory13record_schema4pushERKNS0_11record_itemE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $14 = sp; - $19 = sp + 113|0; - $29 = sp + 112|0; - $30 = $0; - $31 = $1; - $32 = $30; - $33 = $31; - $27 = $32; - $28 = $33; - $34 = $27; - $35 = ((($34)) + 4|0); - $36 = HEAP32[$35>>2]|0; - $26 = $34; - $37 = $26; - $38 = ((($37)) + 8|0); - $25 = $38; - $39 = $25; - $24 = $39; - $40 = $24; - $41 = HEAP32[$40>>2]|0; - $42 = ($36|0)!=($41|0); - if ($42) { - $21 = $29; - $22 = $34; - $23 = 1; - $4 = $34; - $43 = $4; - $44 = ((($43)) + 8|0); - $3 = $44; - $45 = $3; - $2 = $45; - $46 = $2; - $47 = ((($34)) + 4|0); - $48 = HEAP32[$47>>2]|0; - $5 = $48; - $49 = $5; - $50 = $28; - $16 = $46; - $17 = $49; - $18 = $50; - $51 = $16; - $52 = $17; - $53 = $18; - $15 = $53; - $54 = $15; - ;HEAP8[$14>>0]=HEAP8[$19>>0]|0; - $11 = $51; - $12 = $52; - $13 = $54; - $55 = $11; - $56 = $12; - $57 = $13; - $10 = $57; - $58 = $10; - $7 = $55; - $8 = $56; - $9 = $58; - $59 = $8; - $60 = $9; - $6 = $60; - $61 = $6; - ;HEAP32[$59>>2]=HEAP32[$61>>2]|0;HEAP32[$59+4>>2]=HEAP32[$61+4>>2]|0;HEAP32[$59+8>>2]=HEAP32[$61+8>>2]|0; - $20 = $29; - $62 = ((($34)) + 4|0); - $63 = HEAP32[$62>>2]|0; - $64 = ((($63)) + 12|0); - HEAP32[$62>>2] = $64; - STACKTOP = sp;return; - } else { - $65 = $28; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE21__push_back_slow_pathIRKS3_EEvOT_($34,$65); - STACKTOP = sp;return; - } -} -function __ZN6laszip7factory11record_itemC2Eiii($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $4; - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($8)) + 4|0); - $11 = $6; - HEAP32[$10>>2] = $11; - $12 = ((($8)) + 8|0); - $13 = $7; - HEAP32[$12>>2] = $13; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE21__push_back_slow_pathIRKS3_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 12)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 12)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 12)&-1; - $107 = $45; - __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEEC2EjjS6_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - ;HEAP32[$122>>2]=HEAP32[$124>>2]|0;HEAP32[$122+4>>2]=HEAP32[$124+4>>2]|0;HEAP32[$122+8>>2]=HEAP32[$124+8>>2]|0; - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 12|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($47,$46); - __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEEC2EjjS6_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(357913941); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*12)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*12)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*12)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $15 = sp + 288|0; - $21 = sp + 264|0; - $33 = sp + 216|0; - $86 = $0; - $87 = $1; - $88 = $86; - $85 = $88; - $89 = $85; - $84 = $89; - $90 = $84; - $91 = HEAP32[$90>>2]|0; - $83 = $91; - $92 = $83; - $62 = $89; - $93 = $62; - $94 = HEAP32[$93>>2]|0; - $61 = $94; - $95 = $61; - $67 = $89; - $96 = $67; - $66 = $96; - $97 = $66; - $65 = $97; - $98 = $65; - $99 = ((($98)) + 8|0); - $64 = $99; - $100 = $64; - $63 = $100; - $101 = $63; - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$97>>2]|0; - $104 = $102; - $105 = $103; - $106 = (($104) - ($105))|0; - $107 = (($106|0) / 12)&-1; - $108 = (($95) + (($107*12)|0)|0); - $69 = $89; - $109 = $69; - $110 = HEAP32[$109>>2]|0; - $68 = $110; - $111 = $68; - $70 = $89; - $112 = $70; - $113 = ((($112)) + 4|0); - $114 = HEAP32[$113>>2]|0; - $115 = HEAP32[$112>>2]|0; - $116 = $114; - $117 = $115; - $118 = (($116) - ($117))|0; - $119 = (($118|0) / 12)&-1; - $120 = (($111) + (($119*12)|0)|0); - $72 = $89; - $121 = $72; - $122 = HEAP32[$121>>2]|0; - $71 = $122; - $123 = $71; - $77 = $89; - $124 = $77; - $76 = $124; - $125 = $76; - $75 = $125; - $126 = $75; - $127 = ((($126)) + 8|0); - $74 = $127; - $128 = $74; - $73 = $128; - $129 = $73; - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$125>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 12)&-1; - $136 = (($123) + (($135*12)|0)|0); - $78 = $89; - $79 = $92; - $80 = $108; - $81 = $120; - $82 = $136; - $4 = $88; - $137 = $4; - $138 = ((($137)) + 8|0); - $3 = $138; - $139 = $3; - $2 = $139; - $140 = $2; - $141 = HEAP32[$88>>2]|0; - $142 = ((($88)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = $87; - $145 = ((($144)) + 4|0); - $5 = $140; - $6 = $141; - $7 = $143; - $8 = $145; - $146 = $7; - $147 = $6; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 12)&-1; - $9 = $151; - $152 = $9; - $153 = $8; - $154 = HEAP32[$153>>2]|0; - $155 = (0 - ($152))|0; - $156 = (($154) + (($155*12)|0)|0); - HEAP32[$153>>2] = $156; - $157 = $9; - $158 = ($157|0)>(0); - if ($158) { - $159 = $8; - $160 = HEAP32[$159>>2]|0; - $161 = $6; - $162 = $9; - $163 = ($162*12)|0; - _memcpy(($160|0),($161|0),($163|0))|0; - } - $164 = $87; - $165 = ((($164)) + 4|0); - $13 = $88; - $14 = $165; - $166 = $13; - $12 = $166; - $167 = $12; - $168 = HEAP32[$167>>2]|0; - HEAP32[$15>>2] = $168; - $169 = $14; - $10 = $169; - $170 = $10; - $171 = HEAP32[$170>>2]|0; - $172 = $13; - HEAP32[$172>>2] = $171; - $11 = $15; - $173 = $11; - $174 = HEAP32[$173>>2]|0; - $175 = $14; - HEAP32[$175>>2] = $174; - $176 = ((($88)) + 4|0); - $177 = $87; - $178 = ((($177)) + 8|0); - $19 = $176; - $20 = $178; - $179 = $19; - $18 = $179; - $180 = $18; - $181 = HEAP32[$180>>2]|0; - HEAP32[$21>>2] = $181; - $182 = $20; - $16 = $182; - $183 = $16; - $184 = HEAP32[$183>>2]|0; - $185 = $19; - HEAP32[$185>>2] = $184; - $17 = $21; - $186 = $17; - $187 = HEAP32[$186>>2]|0; - $188 = $20; - HEAP32[$188>>2] = $187; - $24 = $88; - $189 = $24; - $190 = ((($189)) + 8|0); - $23 = $190; - $191 = $23; - $22 = $191; - $192 = $22; - $193 = $87; - $27 = $193; - $194 = $27; - $195 = ((($194)) + 12|0); - $26 = $195; - $196 = $26; - $25 = $196; - $197 = $25; - $31 = $192; - $32 = $197; - $198 = $31; - $30 = $198; - $199 = $30; - $200 = HEAP32[$199>>2]|0; - HEAP32[$33>>2] = $200; - $201 = $32; - $28 = $201; - $202 = $28; - $203 = HEAP32[$202>>2]|0; - $204 = $31; - HEAP32[$204>>2] = $203; - $29 = $33; - $205 = $29; - $206 = HEAP32[$205>>2]|0; - $207 = $32; - HEAP32[$207>>2] = $206; - $208 = $87; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - $211 = $87; - HEAP32[$211>>2] = $210; - $34 = $88; - $212 = $34; - $213 = ((($212)) + 4|0); - $214 = HEAP32[$213>>2]|0; - $215 = HEAP32[$212>>2]|0; - $216 = $214; - $217 = $215; - $218 = (($216) - ($217))|0; - $219 = (($218|0) / 12)&-1; - $58 = $88; - $59 = $219; - $220 = $58; - $57 = $220; - $221 = $57; - $222 = HEAP32[$221>>2]|0; - $56 = $222; - $223 = $56; - $36 = $220; - $224 = $36; - $225 = HEAP32[$224>>2]|0; - $35 = $225; - $226 = $35; - $41 = $220; - $227 = $41; - $40 = $227; - $228 = $40; - $39 = $228; - $229 = $39; - $230 = ((($229)) + 8|0); - $38 = $230; - $231 = $38; - $37 = $231; - $232 = $37; - $233 = HEAP32[$232>>2]|0; - $234 = HEAP32[$228>>2]|0; - $235 = $233; - $236 = $234; - $237 = (($235) - ($236))|0; - $238 = (($237|0) / 12)&-1; - $239 = (($226) + (($238*12)|0)|0); - $43 = $220; - $240 = $43; - $241 = HEAP32[$240>>2]|0; - $42 = $241; - $242 = $42; - $48 = $220; - $243 = $48; - $47 = $243; - $244 = $47; - $46 = $244; - $245 = $46; - $246 = ((($245)) + 8|0); - $45 = $246; - $247 = $45; - $44 = $247; - $248 = $44; - $249 = HEAP32[$248>>2]|0; - $250 = HEAP32[$244>>2]|0; - $251 = $249; - $252 = $250; - $253 = (($251) - ($252))|0; - $254 = (($253|0) / 12)&-1; - $255 = (($242) + (($254*12)|0)|0); - $50 = $220; - $256 = $50; - $257 = HEAP32[$256>>2]|0; - $49 = $257; - $258 = $49; - $259 = $59; - $260 = (($258) + (($259*12)|0)|0); - $51 = $220; - $52 = $223; - $53 = $239; - $54 = $255; - $55 = $260; - $60 = $88; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip7factory11record_itemERNS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -12|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 12)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 357913941; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE13__move_assignERS6_NS_17integral_constantIbLb1EEE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $21 = sp; - $24 = sp + 92|0; - $25 = $0; - $26 = $1; - $27 = $25; - __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE10deallocateEv($27); - $28 = $26; - $22 = $27; - $23 = $28; - $29 = $22; - $30 = $23; - ;HEAP8[$21>>0]=HEAP8[$24>>0]|0; - $19 = $29; - $20 = $30; - $31 = $19; - $32 = $20; - $18 = $32; - $33 = $18; - $34 = ((($33)) + 8|0); - $17 = $34; - $35 = $17; - $16 = $35; - $36 = $16; - $12 = $36; - $15 = $31; - $37 = $15; - $38 = ((($37)) + 8|0); - $14 = $38; - $39 = $14; - $13 = $39; - $40 = $26; - $41 = HEAP32[$40>>2]|0; - HEAP32[$27>>2] = $41; - $42 = $26; - $43 = ((($42)) + 4|0); - $44 = HEAP32[$43>>2]|0; - $45 = ((($27)) + 4|0); - HEAP32[$45>>2] = $44; - $46 = $26; - $5 = $46; - $47 = $5; - $48 = ((($47)) + 8|0); - $4 = $48; - $49 = $4; - $3 = $49; - $50 = $3; - $51 = HEAP32[$50>>2]|0; - $8 = $27; - $52 = $8; - $53 = ((($52)) + 8|0); - $7 = $53; - $54 = $7; - $6 = $54; - $55 = $6; - HEAP32[$55>>2] = $51; - $56 = $26; - $11 = $56; - $57 = $11; - $58 = ((($57)) + 8|0); - $10 = $58; - $59 = $10; - $9 = $59; - $60 = $9; - HEAP32[$60>>2] = 0; - $61 = $26; - $62 = ((($61)) + 4|0); - HEAP32[$62>>2] = 0; - $63 = $26; - HEAP32[$63>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip7factory11record_itemENS_9allocatorIS3_EEE10deallocateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 240|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(240|0); - $45 = sp; - $48 = sp + 236|0; - $60 = $0; - $61 = $60; - $62 = HEAP32[$61>>2]|0; - $63 = ($62|0)!=(0|0); - if (!($63)) { - STACKTOP = sp;return; - } - $58 = $61; - $64 = $58; - $57 = $64; - $65 = $57; - $66 = ((($65)) + 4|0); - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$65>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 12)&-1; - $59 = $72; - $56 = $64; - $73 = $56; - $74 = HEAP32[$73>>2]|0; - $53 = $73; - $54 = $74; - $75 = $53; - $76 = ((($75)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $55 = $77; - while(1) { - $78 = $54; - $79 = $55; - $80 = ($78|0)!=($79|0); - if (!($80)) { - break; - } - $52 = $75; - $81 = $52; - $82 = ((($81)) + 8|0); - $51 = $82; - $83 = $51; - $50 = $83; - $84 = $50; - $85 = $55; - $86 = ((($85)) + -12|0); - $55 = $86; - $49 = $86; - $87 = $49; - $46 = $84; - $47 = $87; - $88 = $46; - $89 = $47; - ;HEAP8[$45>>0]=HEAP8[$48>>0]|0; - $43 = $88; - $44 = $89; - $90 = $43; - $91 = $44; - $41 = $90; - $42 = $91; - } - $92 = $54; - $93 = ((($75)) + 4|0); - HEAP32[$93>>2] = $92; - $94 = $59; - $38 = $64; - $39 = $94; - $95 = $38; - $37 = $95; - $96 = $37; - $97 = HEAP32[$96>>2]|0; - $36 = $97; - $98 = $36; - $20 = $95; - $99 = $20; - $100 = HEAP32[$99>>2]|0; - $19 = $100; - $101 = $19; - $25 = $95; - $102 = $25; - $24 = $102; - $103 = $24; - $23 = $103; - $104 = $23; - $105 = ((($104)) + 8|0); - $22 = $105; - $106 = $22; - $21 = $106; - $107 = $21; - $108 = HEAP32[$107>>2]|0; - $109 = HEAP32[$103>>2]|0; - $110 = $108; - $111 = $109; - $112 = (($110) - ($111))|0; - $113 = (($112|0) / 12)&-1; - $114 = (($101) + (($113*12)|0)|0); - $27 = $95; - $115 = $27; - $116 = HEAP32[$115>>2]|0; - $26 = $116; - $117 = $26; - $118 = $39; - $119 = (($117) + (($118*12)|0)|0); - $29 = $95; - $120 = $29; - $121 = HEAP32[$120>>2]|0; - $28 = $121; - $122 = $28; - $30 = $95; - $123 = $30; - $124 = ((($123)) + 4|0); - $125 = HEAP32[$124>>2]|0; - $126 = HEAP32[$123>>2]|0; - $127 = $125; - $128 = $126; - $129 = (($127) - ($128))|0; - $130 = (($129|0) / 12)&-1; - $131 = (($122) + (($130*12)|0)|0); - $31 = $95; - $32 = $98; - $33 = $114; - $34 = $119; - $35 = $131; - $40 = $64; - $8 = $61; - $132 = $8; - $133 = ((($132)) + 8|0); - $7 = $133; - $134 = $7; - $6 = $134; - $135 = $6; - $136 = HEAP32[$61>>2]|0; - $5 = $61; - $137 = $5; - $4 = $137; - $138 = $4; - $3 = $138; - $139 = $3; - $140 = ((($139)) + 8|0); - $2 = $140; - $141 = $2; - $1 = $141; - $142 = $1; - $143 = HEAP32[$142>>2]|0; - $144 = HEAP32[$138>>2]|0; - $145 = $143; - $146 = $144; - $147 = (($145) - ($146))|0; - $148 = (($147|0) / 12)&-1; - $13 = $135; - $14 = $136; - $15 = $148; - $149 = $13; - $150 = $14; - $151 = $15; - $10 = $149; - $11 = $150; - $12 = $151; - $152 = $11; - $9 = $152; - $153 = $9; - __ZdlPv($153); - $18 = $61; - $154 = $18; - $155 = ((($154)) + 8|0); - $17 = $155; - $156 = $17; - $16 = $156; - $157 = $16; - HEAP32[$157>>2] = 0; - $158 = ((($61)) + 4|0); - HEAP32[$158>>2] = 0; - HEAP32[$61>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5254); - HEAP32[$2>>2] = (1828); - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZNSt13runtime_errorC2EPKc($4,$5); - HEAP32[$4>>2] = (1848); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5298); - HEAP32[$2>>2] = (1868); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE6resizeEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $6 = sp; - $9 = sp + 180|0; - $45 = $0; - $46 = $1; - $48 = $45; - $44 = $48; - $49 = $44; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $52 = HEAP32[$49>>2]|0; - $53 = $51; - $54 = $52; - $55 = (($53) - ($54))|0; - $56 = (($55|0) / 8)&-1; - $47 = $56; - $57 = $47; - $58 = $46; - $59 = ($57>>>0)<($58>>>0); - if ($59) { - $60 = $46; - $61 = $47; - $62 = (($60) - ($61))|0; - __ZNSt3__26vectorIyNS_9allocatorIyEEE8__appendEj($48,$62); - STACKTOP = sp;return; - } - $63 = $47; - $64 = $46; - $65 = ($63>>>0)>($64>>>0); - if (!($65)) { - STACKTOP = sp;return; - } - $66 = HEAP32[$48>>2]|0; - $67 = $46; - $68 = (($66) + ($67<<3)|0); - $41 = $48; - $42 = $68; - $69 = $41; - $70 = $42; - $39 = $69; - $40 = $70; - $38 = $69; - $71 = $38; - $72 = ((($71)) + 4|0); - $73 = HEAP32[$72>>2]|0; - $74 = HEAP32[$71>>2]|0; - $75 = $73; - $76 = $74; - $77 = (($75) - ($76))|0; - $78 = (($77|0) / 8)&-1; - $43 = $78; - $79 = $42; - $14 = $69; - $15 = $79; - $80 = $14; - $81 = ((($80)) + 4|0); - $82 = HEAP32[$81>>2]|0; - $16 = $82; - while(1) { - $83 = $15; - $84 = $16; - $85 = ($83|0)!=($84|0); - if (!($85)) { - break; - } - $13 = $80; - $86 = $13; - $87 = ((($86)) + 8|0); - $12 = $87; - $88 = $12; - $11 = $88; - $89 = $11; - $90 = $16; - $91 = ((($90)) + -8|0); - $16 = $91; - $10 = $91; - $92 = $10; - $7 = $89; - $8 = $92; - $93 = $7; - $94 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $93; - $5 = $94; - $95 = $4; - $96 = $5; - $2 = $95; - $3 = $96; - } - $97 = $15; - $98 = ((($80)) + 4|0); - HEAP32[$98>>2] = $97; - $99 = $43; - $36 = $69; - $37 = $99; - $100 = $36; - $35 = $100; - $101 = $35; - $102 = HEAP32[$101>>2]|0; - $34 = $102; - $103 = $34; - $18 = $100; - $104 = $18; - $105 = HEAP32[$104>>2]|0; - $17 = $105; - $106 = $17; - $23 = $100; - $107 = $23; - $22 = $107; - $108 = $22; - $21 = $108; - $109 = $21; - $110 = ((($109)) + 8|0); - $20 = $110; - $111 = $20; - $19 = $111; - $112 = $19; - $113 = HEAP32[$112>>2]|0; - $114 = HEAP32[$108>>2]|0; - $115 = $113; - $116 = $114; - $117 = (($115) - ($116))|0; - $118 = (($117|0) / 8)&-1; - $119 = (($106) + ($118<<3)|0); - $25 = $100; - $120 = $25; - $121 = HEAP32[$120>>2]|0; - $24 = $121; - $122 = $24; - $123 = $37; - $124 = (($122) + ($123<<3)|0); - $27 = $100; - $125 = $27; - $126 = HEAP32[$125>>2]|0; - $26 = $126; - $127 = $26; - $28 = $100; - $128 = $28; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 8)&-1; - $136 = (($127) + ($135<<3)|0); - $29 = $100; - $30 = $103; - $31 = $119; - $32 = $124; - $33 = $136; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integerC2Ejjjj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $15 = sp + 72|0; - $27 = sp + 24|0; - $29 = $0; - $30 = $1; - $31 = $2; - $32 = $3; - $33 = $4; - $34 = $29; - $35 = ((($34)) + 4|0); - $36 = $30; - HEAP32[$35>>2] = $36; - $37 = ((($34)) + 8|0); - $38 = $31; - HEAP32[$37>>2] = $38; - $39 = ((($34)) + 12|0); - $40 = $32; - HEAP32[$39>>2] = $40; - $41 = ((($34)) + 16|0); - $42 = $33; - HEAP32[$41>>2] = $42; - $43 = ((($34)) + 36|0); - $28 = $43; - $44 = $28; - $26 = $44; - $45 = $26; - $25 = $45; - HEAP32[$45>>2] = 0; - $46 = ((($45)) + 4|0); - HEAP32[$46>>2] = 0; - $47 = ((($45)) + 8|0); - HEAP32[$27>>2] = 0; - $23 = $47; - $24 = $27; - $48 = $23; - $49 = $24; - $22 = $49; - $50 = $22; - $18 = $48; - $19 = $50; - $51 = $18; - $52 = $19; - $17 = $52; - HEAP32[$51>>2] = 0; - $21 = $48; - $53 = $21; - $20 = $53; - $54 = ((($34)) + 48|0); - __ZN6laszip6models14arithmetic_bitC2Ev($54); - $55 = ((($34)) + 68|0); - $16 = $55; - $56 = $16; - $14 = $56; - $57 = $14; - $13 = $57; - HEAP32[$57>>2] = 0; - $58 = ((($57)) + 4|0); - HEAP32[$58>>2] = 0; - $59 = ((($57)) + 8|0); - HEAP32[$15>>2] = 0; - $11 = $59; - $12 = $15; - $60 = $11; - $61 = $12; - $10 = $61; - $62 = $10; - $6 = $60; - $7 = $62; - $63 = $6; - $64 = $7; - $5 = $64; - HEAP32[$63>>2] = 0; - $9 = $60; - $65 = $9; - $8 = $65; - $66 = $33; - $67 = ($66|0)!=(0); - if (!($67)) { - $100 = $30; - $101 = ($100|0)!=(0); - $102 = $30; - $103 = ($102>>>0)<(32); - $or$cond = $101 & $103; - if ($or$cond) { - $104 = $30; - $105 = ((($34)) + 20|0); - HEAP32[$105>>2] = $104; - $106 = $30; - $107 = 1 << $106; - $108 = ((($34)) + 24|0); - HEAP32[$108>>2] = $107; - $109 = ((($34)) + 24|0); - $110 = HEAP32[$109>>2]|0; - $111 = (($110>>>0) / 2)&-1; - $112 = (0 - ($111))|0; - $113 = ((($34)) + 28|0); - HEAP32[$113>>2] = $112; - $114 = ((($34)) + 28|0); - $115 = HEAP32[$114>>2]|0; - $116 = ((($34)) + 24|0); - $117 = HEAP32[$116>>2]|0; - $118 = (($115) + ($117))|0; - $119 = (($118) - 1)|0; - $120 = ((($34)) + 32|0); - HEAP32[$120>>2] = $119; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } else { - $121 = ((($34)) + 20|0); - HEAP32[$121>>2] = 32; - $122 = ((($34)) + 24|0); - HEAP32[$122>>2] = 0; - $123 = ((($34)) + 28|0); - HEAP32[$123>>2] = -2147483648; - $124 = ((($34)) + 32|0); - HEAP32[$124>>2] = 2147483647; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } - } - $68 = ((($34)) + 20|0); - HEAP32[$68>>2] = 0; - $69 = $33; - $70 = ((($34)) + 24|0); - HEAP32[$70>>2] = $69; - while(1) { - $71 = $33; - $72 = ($71|0)!=(0); - if (!($72)) { - break; - } - $73 = $33; - $74 = $73 >>> 1; - $33 = $74; - $75 = ((($34)) + 20|0); - $76 = HEAP32[$75>>2]|0; - $77 = (($76) + 1)|0; - HEAP32[$75>>2] = $77; - } - $78 = ((($34)) + 24|0); - $79 = HEAP32[$78>>2]|0; - $80 = ((($34)) + 20|0); - $81 = HEAP32[$80>>2]|0; - $82 = (($81) - 1)|0; - $83 = 1 << $82; - $84 = ($79|0)==($83|0); - if ($84) { - $85 = ((($34)) + 20|0); - $86 = HEAP32[$85>>2]|0; - $87 = (($86) + -1)|0; - HEAP32[$85>>2] = $87; - } - $88 = ((($34)) + 24|0); - $89 = HEAP32[$88>>2]|0; - $90 = (($89>>>0) / 2)&-1; - $91 = (0 - ($90))|0; - $92 = ((($34)) + 28|0); - HEAP32[$92>>2] = $91; - $93 = ((($34)) + 28|0); - $94 = HEAP32[$93>>2]|0; - $95 = ((($34)) + 24|0); - $96 = HEAP32[$95>>2]|0; - $97 = (($94) + ($96))|0; - $98 = (($97) - 1)|0; - $99 = ((($34)) + 32|0); - HEAP32[$99>>2] = $98; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($3)|0); - $5 = $4&255; - $6 = $5 << 24; - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($7)|0); - $9 = $8&255; - $10 = $9 << 16; - $11 = $6 | $10; - $12 = HEAP32[$2>>2]|0; - $13 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($12)|0); - $14 = $13&255; - $15 = $14 << 8; - $16 = $11 | $15; - $17 = HEAP32[$2>>2]|0; - $18 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($17)|0); - $19 = $18&255; - $20 = $16 | $19; - $21 = ((($2)) + 4|0); - HEAP32[$21>>2] = $20; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer4initEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $14 = sp + 8|0; - $19 = sp + 335|0; - $30 = sp + 334|0; - $44 = sp; - $49 = sp + 333|0; - $60 = sp + 332|0; - $64 = sp + 60|0; - $66 = sp + 12|0; - $62 = $0; - $67 = $62; - $68 = ((($67)) + 36|0); - $61 = $68; - $69 = $61; - $70 = HEAP32[$69>>2]|0; - $71 = ((($69)) + 4|0); - $72 = HEAP32[$71>>2]|0; - $73 = ($70|0)==($72|0); - if (!($73)) { - STACKTOP = sp;return; - } - $63 = 0; - while(1) { - $74 = $63; - $75 = ((($67)) + 8|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($74>>>0)<($76>>>0); - if (!($77)) { - break; - } - $78 = ((($67)) + 36|0); - $79 = ((($67)) + 20|0); - $80 = HEAP32[$79>>2]|0; - $81 = (($80) + 1)|0; - __ZN6laszip6models10arithmeticC2EjbPj($64,$81,0,0); - $58 = $78; - $59 = $64; - $82 = $58; - $83 = ((($82)) + 4|0); - $84 = HEAP32[$83>>2]|0; - $57 = $82; - $85 = $57; - $86 = ((($85)) + 8|0); - $56 = $86; - $87 = $56; - $55 = $87; - $88 = $55; - $89 = HEAP32[$88>>2]|0; - $90 = ($84>>>0)<($89>>>0); - if ($90) { - $52 = $60; - $53 = $82; - $54 = 1; - $35 = $82; - $91 = $35; - $92 = ((($91)) + 8|0); - $34 = $92; - $93 = $34; - $33 = $93; - $94 = $33; - $95 = ((($82)) + 4|0); - $96 = HEAP32[$95>>2]|0; - $31 = $96; - $97 = $31; - $98 = $59; - $32 = $98; - $99 = $32; - $46 = $94; - $47 = $97; - $48 = $99; - $100 = $46; - $101 = $47; - $102 = $48; - $45 = $102; - $103 = $45; - ;HEAP8[$44>>0]=HEAP8[$49>>0]|0; - $41 = $100; - $42 = $101; - $43 = $103; - $104 = $41; - $105 = $42; - $106 = $43; - $40 = $106; - $107 = $40; - $37 = $104; - $38 = $105; - $39 = $107; - $108 = $38; - $109 = $39; - $36 = $109; - $110 = $36; - __ZN6laszip6models10arithmeticC2EOS1_($108,$110); - $50 = $60; - $111 = ((($82)) + 4|0); - $112 = HEAP32[$111>>2]|0; - $113 = ((($112)) + 44|0); - HEAP32[$111>>2] = $113; - } else { - $114 = $59; - $51 = $114; - $115 = $51; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($82,$115); - } - __ZN6laszip6models10arithmeticD2Ev($64); - $116 = $63; - $117 = (($116) + 1)|0; - $63 = $117; - } - $63 = 1; - while(1) { - $118 = $63; - $119 = ((($67)) + 20|0); - $120 = HEAP32[$119>>2]|0; - $121 = ($118>>>0)<=($120>>>0); - if (!($121)) { - break; - } - $122 = $63; - $123 = ((($67)) + 12|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($122>>>0)<=($124>>>0); - if ($125) { - $126 = $63; - $127 = 1 << $126; - $131 = $127; - } else { - $128 = ((($67)) + 12|0); - $129 = HEAP32[$128>>2]|0; - $130 = 1 << $129; - $131 = $130; - } - $65 = $131; - $132 = ((($67)) + 68|0); - $133 = $65; - __ZN6laszip6models10arithmeticC2EjbPj($66,$133,0,0); - $28 = $132; - $29 = $66; - $134 = $28; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $27 = $134; - $137 = $27; - $138 = ((($137)) + 8|0); - $26 = $138; - $139 = $26; - $25 = $139; - $140 = $25; - $141 = HEAP32[$140>>2]|0; - $142 = ($136>>>0)<($141>>>0); - if ($142) { - $22 = $30; - $23 = $134; - $24 = 1; - $5 = $134; - $143 = $5; - $144 = ((($143)) + 8|0); - $4 = $144; - $145 = $4; - $3 = $145; - $146 = $3; - $147 = ((($134)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $1 = $148; - $149 = $1; - $150 = $29; - $2 = $150; - $151 = $2; - $16 = $146; - $17 = $149; - $18 = $151; - $152 = $16; - $153 = $17; - $154 = $18; - $15 = $154; - $155 = $15; - ;HEAP8[$14>>0]=HEAP8[$19>>0]|0; - $11 = $152; - $12 = $153; - $13 = $155; - $156 = $11; - $157 = $12; - $158 = $13; - $10 = $158; - $159 = $10; - $7 = $156; - $8 = $157; - $9 = $159; - $160 = $8; - $161 = $9; - $6 = $161; - $162 = $6; - __ZN6laszip6models10arithmeticC2EOS1_($160,$162); - $20 = $30; - $163 = ((($134)) + 4|0); - $164 = HEAP32[$163>>2]|0; - $165 = ((($164)) + 44|0); - HEAP32[$163>>2] = $165; - } else { - $166 = $29; - $21 = $166; - $167 = $21; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($134,$167); - } - __ZN6laszip6models10arithmeticD2Ev($66); - $168 = $63; - $169 = (($168) + 1)|0; - $63 = $169; - } - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $6 = $0; - $7 = $1; - $8 = $2; - $9 = $3; - $11 = $6; - $12 = $8; - $13 = $7; - $14 = ((($11)) + 36|0); - $15 = $9; - $4 = $14; - $5 = $15; - $16 = $4; - $17 = HEAP32[$16>>2]|0; - $18 = $5; - $19 = (($17) + (($18*44)|0)|0); - $20 = (__ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS_6models10arithmeticEEEiRT_RT0_($11,$13,$19)|0); - $21 = (($12) + ($20))|0; - $10 = $21; - $22 = $10; - $23 = ($22|0)<(0); - if ($23) { - $24 = ((($11)) + 24|0); - $25 = HEAP32[$24>>2]|0; - $26 = $10; - $27 = (($26) + ($25))|0; - $10 = $27; - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $28 = $10; - $29 = ((($11)) + 24|0); - $30 = HEAP32[$29>>2]|0; - $31 = ($28>>>0)>=($30>>>0); - if (!($31)) { - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $32 = ((($11)) + 24|0); - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($34) - ($33))|0; - $10 = $35; - $36 = $10; - STACKTOP = sp;return ($36|0); -} -function __ZN6laszip13decompressors7integerD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 68|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($3); - $4 = ((($2)) + 36|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($4); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip22chunk_table_read_errorD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip22chunk_table_read_errorD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip13not_supportedD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13not_supportedD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip26unknown_chunk_table_formatD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip26unknown_chunk_table_formatD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE8__appendEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; - var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $8 = sp; - $11 = sp + 140|0; - $19 = sp + 76|0; - $22 = sp + 64|0; - $33 = sp + 4|0; - $30 = $0; - $31 = $1; - $34 = $30; - $29 = $34; - $35 = $29; - $36 = ((($35)) + 8|0); - $28 = $36; - $37 = $28; - $27 = $37; - $38 = $27; - $39 = HEAP32[$38>>2]|0; - $40 = ((($34)) + 4|0); - $41 = HEAP32[$40>>2]|0; - $42 = $39; - $43 = $41; - $44 = (($42) - ($43))|0; - $45 = (($44|0) / 8)&-1; - $46 = $31; - $47 = ($45>>>0)>=($46>>>0); - if ($47) { - $48 = $31; - __ZNSt3__26vectorIyNS_9allocatorIyEEE18__construct_at_endEj($34,$48); - STACKTOP = sp;return; - } - $26 = $34; - $49 = $26; - $50 = ((($49)) + 8|0); - $25 = $50; - $51 = $25; - $24 = $51; - $52 = $24; - $32 = $52; - $23 = $34; - $53 = $23; - $54 = ((($53)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $56 = HEAP32[$53>>2]|0; - $57 = $55; - $58 = $56; - $59 = (($57) - ($58))|0; - $60 = (($59|0) / 8)&-1; - $61 = $31; - $62 = (($60) + ($61))|0; - $18 = $34; - HEAP32[$19>>2] = $62; - $63 = $18; - $64 = (__ZNKSt3__26vectorIyNS_9allocatorIyEEE8max_sizeEv($63)|0); - $20 = $64; - $65 = HEAP32[$19>>2]|0; - $66 = $20; - $67 = ($65>>>0)>($66>>>0); - if ($67) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($63); - // unreachable; - } - $16 = $63; - $68 = $16; - $15 = $68; - $69 = $15; - $14 = $69; - $70 = $14; - $71 = ((($70)) + 8|0); - $13 = $71; - $72 = $13; - $12 = $72; - $73 = $12; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $21 = $79; - $80 = $21; - $81 = $20; - $82 = (($81>>>0) / 2)&-1; - $83 = ($80>>>0)>=($82>>>0); - if ($83) { - $84 = $20; - $17 = $84; - } else { - $85 = $21; - $86 = $85<<1; - HEAP32[$22>>2] = $86; - $9 = $22; - $10 = $19; - $87 = $9; - $88 = $10; - ;HEAP8[$8>>0]=HEAP8[$11>>0]|0; - $6 = $87; - $7 = $88; - $89 = $6; - $90 = $7; - $3 = $8; - $4 = $89; - $5 = $90; - $91 = $4; - $92 = HEAP32[$91>>2]|0; - $93 = $5; - $94 = HEAP32[$93>>2]|0; - $95 = ($92>>>0)<($94>>>0); - $96 = $7; - $97 = $6; - $98 = $95 ? $96 : $97; - $99 = HEAP32[$98>>2]|0; - $17 = $99; - } - $100 = $17; - $2 = $34; - $101 = $2; - $102 = ((($101)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = HEAP32[$101>>2]|0; - $105 = $103; - $106 = $104; - $107 = (($105) - ($106))|0; - $108 = (($107|0) / 8)&-1; - $109 = $32; - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEEC2EjjS3_($33,$100,$108,$109); - $110 = $31; - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEE18__construct_at_endEj($33,$110); - __ZNSt3__26vectorIyNS_9allocatorIyEEE26__swap_out_circular_bufferERNS_14__split_bufferIyRS2_EE($34,$33); - __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEED2Ev($33); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $10 = sp; - $13 = sp + 73|0; - $21 = sp + 72|0; - $18 = $0; - $19 = $1; - $22 = $18; - $17 = $22; - $23 = $17; - $24 = ((($23)) + 8|0); - $16 = $24; - $25 = $16; - $15 = $25; - $26 = $15; - $20 = $26; - while(1) { - $2 = $21; - $3 = $22; - $4 = 1; - $27 = $20; - $28 = ((($22)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $5 = $29; - $30 = $5; - $11 = $27; - $12 = $30; - $31 = $11; - $32 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $31; - $9 = $32; - $33 = $8; - $34 = $9; - $6 = $33; - $7 = $34; - $35 = $7; - $36 = $35; - $37 = $36; - HEAP32[$37>>2] = 0; - $38 = (($36) + 4)|0; - $39 = $38; - HEAP32[$39>>2] = 0; - $40 = ((($22)) + 4|0); - $41 = HEAP32[$40>>2]|0; - $42 = ((($41)) + 8|0); - HEAP32[$40>>2] = $42; - $43 = $19; - $44 = (($43) + -1)|0; - $19 = $44; - $14 = $21; - $45 = $19; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEEC2EjjS3_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(536870911); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<3; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<3)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<3)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $7 = sp; - $10 = sp + 56|0; - $14 = $0; - $15 = $1; - $17 = $14; - $13 = $17; - $18 = $13; - $19 = ((($18)) + 12|0); - $12 = $19; - $20 = $12; - $21 = ((($20)) + 4|0); - $11 = $21; - $22 = $11; - $23 = HEAP32[$22>>2]|0; - $16 = $23; - while(1) { - $24 = $16; - $25 = ((($17)) + 8|0); - $26 = HEAP32[$25>>2]|0; - $2 = $26; - $27 = $2; - $8 = $24; - $9 = $27; - $28 = $8; - $29 = $9; - ;HEAP8[$7>>0]=HEAP8[$10>>0]|0; - $5 = $28; - $6 = $29; - $30 = $5; - $31 = $6; - $3 = $30; - $4 = $31; - $32 = $4; - $33 = $32; - $34 = $33; - HEAP32[$34>>2] = 0; - $35 = (($33) + 4)|0; - $36 = $35; - HEAP32[$36>>2] = 0; - $37 = ((($17)) + 8|0); - $38 = HEAP32[$37>>2]|0; - $39 = ((($38)) + 8|0); - HEAP32[$37>>2] = $39; - $40 = $15; - $41 = (($40) + -1)|0; - $15 = $41; - $42 = $15; - $43 = ($42>>>0)>(0); - if (!($43)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIyNS_9allocatorIyEEE26__swap_out_circular_bufferERNS_14__split_bufferIyRS2_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $15 = sp + 288|0; - $21 = sp + 264|0; - $33 = sp + 216|0; - $86 = $0; - $87 = $1; - $88 = $86; - $85 = $88; - $89 = $85; - $84 = $89; - $90 = $84; - $91 = HEAP32[$90>>2]|0; - $83 = $91; - $92 = $83; - $62 = $89; - $93 = $62; - $94 = HEAP32[$93>>2]|0; - $61 = $94; - $95 = $61; - $67 = $89; - $96 = $67; - $66 = $96; - $97 = $66; - $65 = $97; - $98 = $65; - $99 = ((($98)) + 8|0); - $64 = $99; - $100 = $64; - $63 = $100; - $101 = $63; - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$97>>2]|0; - $104 = $102; - $105 = $103; - $106 = (($104) - ($105))|0; - $107 = (($106|0) / 8)&-1; - $108 = (($95) + ($107<<3)|0); - $69 = $89; - $109 = $69; - $110 = HEAP32[$109>>2]|0; - $68 = $110; - $111 = $68; - $70 = $89; - $112 = $70; - $113 = ((($112)) + 4|0); - $114 = HEAP32[$113>>2]|0; - $115 = HEAP32[$112>>2]|0; - $116 = $114; - $117 = $115; - $118 = (($116) - ($117))|0; - $119 = (($118|0) / 8)&-1; - $120 = (($111) + ($119<<3)|0); - $72 = $89; - $121 = $72; - $122 = HEAP32[$121>>2]|0; - $71 = $122; - $123 = $71; - $77 = $89; - $124 = $77; - $76 = $124; - $125 = $76; - $75 = $125; - $126 = $75; - $127 = ((($126)) + 8|0); - $74 = $127; - $128 = $74; - $73 = $128; - $129 = $73; - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$125>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 8)&-1; - $136 = (($123) + ($135<<3)|0); - $78 = $89; - $79 = $92; - $80 = $108; - $81 = $120; - $82 = $136; - $4 = $88; - $137 = $4; - $138 = ((($137)) + 8|0); - $3 = $138; - $139 = $3; - $2 = $139; - $140 = $2; - $141 = HEAP32[$88>>2]|0; - $142 = ((($88)) + 4|0); - $143 = HEAP32[$142>>2]|0; - $144 = $87; - $145 = ((($144)) + 4|0); - $5 = $140; - $6 = $141; - $7 = $143; - $8 = $145; - $146 = $7; - $147 = $6; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 8)&-1; - $9 = $151; - $152 = $9; - $153 = $8; - $154 = HEAP32[$153>>2]|0; - $155 = (0 - ($152))|0; - $156 = (($154) + ($155<<3)|0); - HEAP32[$153>>2] = $156; - $157 = $9; - $158 = ($157|0)>(0); - if ($158) { - $159 = $8; - $160 = HEAP32[$159>>2]|0; - $161 = $6; - $162 = $9; - $163 = $162<<3; - _memcpy(($160|0),($161|0),($163|0))|0; - } - $164 = $87; - $165 = ((($164)) + 4|0); - $13 = $88; - $14 = $165; - $166 = $13; - $12 = $166; - $167 = $12; - $168 = HEAP32[$167>>2]|0; - HEAP32[$15>>2] = $168; - $169 = $14; - $10 = $169; - $170 = $10; - $171 = HEAP32[$170>>2]|0; - $172 = $13; - HEAP32[$172>>2] = $171; - $11 = $15; - $173 = $11; - $174 = HEAP32[$173>>2]|0; - $175 = $14; - HEAP32[$175>>2] = $174; - $176 = ((($88)) + 4|0); - $177 = $87; - $178 = ((($177)) + 8|0); - $19 = $176; - $20 = $178; - $179 = $19; - $18 = $179; - $180 = $18; - $181 = HEAP32[$180>>2]|0; - HEAP32[$21>>2] = $181; - $182 = $20; - $16 = $182; - $183 = $16; - $184 = HEAP32[$183>>2]|0; - $185 = $19; - HEAP32[$185>>2] = $184; - $17 = $21; - $186 = $17; - $187 = HEAP32[$186>>2]|0; - $188 = $20; - HEAP32[$188>>2] = $187; - $24 = $88; - $189 = $24; - $190 = ((($189)) + 8|0); - $23 = $190; - $191 = $23; - $22 = $191; - $192 = $22; - $193 = $87; - $27 = $193; - $194 = $27; - $195 = ((($194)) + 12|0); - $26 = $195; - $196 = $26; - $25 = $196; - $197 = $25; - $31 = $192; - $32 = $197; - $198 = $31; - $30 = $198; - $199 = $30; - $200 = HEAP32[$199>>2]|0; - HEAP32[$33>>2] = $200; - $201 = $32; - $28 = $201; - $202 = $28; - $203 = HEAP32[$202>>2]|0; - $204 = $31; - HEAP32[$204>>2] = $203; - $29 = $33; - $205 = $29; - $206 = HEAP32[$205>>2]|0; - $207 = $32; - HEAP32[$207>>2] = $206; - $208 = $87; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - $211 = $87; - HEAP32[$211>>2] = $210; - $34 = $88; - $212 = $34; - $213 = ((($212)) + 4|0); - $214 = HEAP32[$213>>2]|0; - $215 = HEAP32[$212>>2]|0; - $216 = $214; - $217 = $215; - $218 = (($216) - ($217))|0; - $219 = (($218|0) / 8)&-1; - $58 = $88; - $59 = $219; - $220 = $58; - $57 = $220; - $221 = $57; - $222 = HEAP32[$221>>2]|0; - $56 = $222; - $223 = $56; - $36 = $220; - $224 = $36; - $225 = HEAP32[$224>>2]|0; - $35 = $225; - $226 = $35; - $41 = $220; - $227 = $41; - $40 = $227; - $228 = $40; - $39 = $228; - $229 = $39; - $230 = ((($229)) + 8|0); - $38 = $230; - $231 = $38; - $37 = $231; - $232 = $37; - $233 = HEAP32[$232>>2]|0; - $234 = HEAP32[$228>>2]|0; - $235 = $233; - $236 = $234; - $237 = (($235) - ($236))|0; - $238 = (($237|0) / 8)&-1; - $239 = (($226) + ($238<<3)|0); - $43 = $220; - $240 = $43; - $241 = HEAP32[$240>>2]|0; - $42 = $241; - $242 = $42; - $48 = $220; - $243 = $48; - $47 = $243; - $244 = $47; - $46 = $244; - $245 = $46; - $246 = ((($245)) + 8|0); - $45 = $246; - $247 = $45; - $44 = $247; - $248 = $44; - $249 = HEAP32[$248>>2]|0; - $250 = HEAP32[$244>>2]|0; - $251 = $249; - $252 = $250; - $253 = (($251) - ($252))|0; - $254 = (($253|0) / 8)&-1; - $255 = (($242) + ($254<<3)|0); - $50 = $220; - $256 = $50; - $257 = HEAP32[$256>>2]|0; - $49 = $257; - $258 = $49; - $259 = $59; - $260 = (($258) + ($259<<3)|0); - $51 = $220; - $52 = $223; - $53 = $239; - $54 = $255; - $55 = $260; - $60 = $88; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIyRNS_9allocatorIyEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -8|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIyNS_9allocatorIyEEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 536870911; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip6models14arithmetic_bitC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 12|0); - HEAP32[$3>>2] = 1; - $4 = ((($2)) + 16|0); - HEAP32[$4>>2] = 2; - $5 = ((($2)) + 8|0); - HEAP32[$5>>2] = 4096; - $6 = ((($2)) + 4|0); - HEAP32[$6>>2] = 4; - HEAP32[$2>>2] = 4; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -44|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - $54 = $16; - __ZN6laszip6models10arithmeticD2Ev($54); - } - $55 = $28; - $56 = ((($37)) + 4|0); - HEAP32[$56>>2] = $55; - $14 = $32; - $57 = $14; - $58 = ((($57)) + 8|0); - $13 = $58; - $59 = $13; - $12 = $59; - $60 = $12; - $61 = HEAP32[$32>>2]|0; - $4 = $32; - $62 = $4; - $3 = $62; - $63 = $3; - $64 = ((($63)) + 8|0); - $2 = $64; - $65 = $2; - $1 = $65; - $66 = $1; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$62>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 44)&-1; - $9 = $60; - $10 = $61; - $11 = $72; - $73 = $9; - $74 = $10; - $75 = $11; - $6 = $73; - $7 = $74; - $8 = $75; - $76 = $7; - $5 = $76; - $77 = $5; - __ZdlPv($77); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 8|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)!=(0|0); - if ($5) { - $6 = ((($2)) + 8|0); - $7 = HEAP32[$6>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($7); - } - $8 = ((($2)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)!=(0|0); - if ($10) { - $11 = ((($2)) + 12|0); - $12 = HEAP32[$11>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($12); - } - $13 = ((($2)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)!=(0|0); - if (!($15)) { - STACKTOP = sp;return; - } - $16 = ((($2)) + 16|0); - $17 = HEAP32[$16>>2]|0; - __ZN6laszip5utilsL12aligned_freeEPv($17); - STACKTOP = sp;return; -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = ((($2)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = ($4|0)>=($6|0); - if ($7) { - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($2); - } - $8 = ((($2)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($2)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = (($11) + 1)|0; - HEAP32[$10>>2] = $12; - $13 = (($9) + ($11)|0); - $14 = HEAP8[$13>>0]|0; - STACKTOP = sp;return ($14|0); -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP32[$3>>2] = 0; - $4 = HEAP32[$2>>2]|0; - $5 = ((($2)) + 12|0); - $6 = HEAP32[$5>>2]|0; - __ZN6laszip7streams13memory_stream4readEPci($4,$6,1048576); - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN6laszip7streams13memory_stream6gcountEv($7)|0); - $9 = ((($2)) + 8|0); - HEAP32[$9>>2] = $8; - $10 = ((($2)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0); - if ($12) { - $13 = (___cxa_allocate_exception(8)|0); - __ZN6laszip11end_of_fileC2Ev($13); - ___cxa_throw(($13|0),(216|0),(40|0)); - // unreachable; - } else { - STACKTOP = sp;return; - } -} -function __ZN6laszip7streams13memory_stream6gcountEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip11end_of_fileC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5363); - HEAP32[$2>>2] = (1888); - STACKTOP = sp;return; -} -function __ZN6laszip11end_of_fileD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip11end_of_fileD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11end_of_fileD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticC2EjbPj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = $0; - $5 = $1; - $11 = $2&1; - $6 = $11; - $7 = $3; - $12 = $4; - $13 = $5; - HEAP32[$12>>2] = $13; - $14 = ((($12)) + 4|0); - $15 = $6; - $16 = $15&1; - $17 = $16&1; - HEAP8[$14>>0] = $17; - $18 = ((($12)) + 8|0); - HEAP32[$18>>2] = 0; - $19 = ((($12)) + 12|0); - HEAP32[$19>>2] = 0; - $20 = ((($12)) + 16|0); - HEAP32[$20>>2] = 0; - $21 = HEAP32[$12>>2]|0; - $22 = ($21>>>0)<(2); - if ($22) { - $25 = (___cxa_allocate_exception(8)|0); - __ZNSt13runtime_errorC2EPKc($25,5383); - ___cxa_throw(($25|0),(1368|0),(223|0)); - // unreachable; - } - $23 = HEAP32[$12>>2]|0; - $24 = ($23>>>0)>(2048); - if ($24) { - $25 = (___cxa_allocate_exception(8)|0); - __ZNSt13runtime_errorC2EPKc($25,5383); - ___cxa_throw(($25|0),(1368|0),(223|0)); - // unreachable; - } - $26 = HEAP32[$12>>2]|0; - $27 = (($26) - 1)|0; - $28 = ((($12)) + 32|0); - HEAP32[$28>>2] = $27; - $29 = ((($12)) + 4|0); - $30 = HEAP8[$29>>0]|0; - $31 = $30&1; - if ($31) { - label = 10; - } else { - $32 = HEAP32[$12>>2]|0; - $33 = ($32>>>0)>(16); - if ($33) { - $8 = 3; - while(1) { - $34 = HEAP32[$12>>2]|0; - $35 = $8; - $36 = (($35) + 2)|0; - $37 = 1 << $36; - $38 = ($34>>>0)>($37>>>0); - $39 = $8; - if (!($38)) { - break; - } - $40 = (($39) + 1)|0; - $8 = $40; - } - $41 = 1 << $39; - $42 = ((($12)) + 36|0); - HEAP32[$42>>2] = $41; - $43 = $8; - $44 = (15 - ($43))|0; - $45 = ((($12)) + 40|0); - HEAP32[$45>>2] = $44; - $46 = ((($12)) + 36|0); - $47 = HEAP32[$46>>2]|0; - $48 = (($47) + 2)|0; - $49 = $48<<2; - $50 = (__ZN6laszip5utilsL14aligned_mallocEi($49)|0); - $51 = ((($12)) + 16|0); - HEAP32[$51>>2] = $50; - } else { - label = 10; - } - } - if ((label|0) == 10) { - $52 = ((($12)) + 16|0); - HEAP32[$52>>2] = 0; - $53 = ((($12)) + 40|0); - HEAP32[$53>>2] = 0; - $54 = ((($12)) + 36|0); - HEAP32[$54>>2] = 0; - } - $55 = HEAP32[$12>>2]|0; - $56 = $55<<2; - $57 = (__ZN6laszip5utilsL14aligned_mallocEi($56)|0); - $58 = ((($12)) + 8|0); - HEAP32[$58>>2] = $57; - $59 = HEAP32[$12>>2]|0; - $60 = $59<<2; - $61 = (__ZN6laszip5utilsL14aligned_mallocEi($60)|0); - $62 = ((($12)) + 12|0); - HEAP32[$62>>2] = $61; - $63 = ((($12)) + 20|0); - HEAP32[$63>>2] = 0; - $64 = HEAP32[$12>>2]|0; - $65 = ((($12)) + 24|0); - HEAP32[$65>>2] = $64; - $66 = $7; - $67 = ($66|0)!=(0|0); - if ($67) { - $9 = 0; - while(1) { - $68 = $9; - $69 = HEAP32[$12>>2]|0; - $70 = ($68>>>0)<($69>>>0); - if (!($70)) { - break; - } - $71 = $7; - $72 = $9; - $73 = (($71) + ($72<<2)|0); - $74 = HEAP32[$73>>2]|0; - $75 = ((($12)) + 12|0); - $76 = HEAP32[$75>>2]|0; - $77 = $9; - $78 = (($76) + ($77<<2)|0); - HEAP32[$78>>2] = $74; - $79 = $9; - $80 = (($79) + 1)|0; - $9 = $80; - } - __ZN6laszip6models10arithmetic6updateEv($12); - $90 = HEAP32[$12>>2]|0; - $91 = (($90) + 6)|0; - $92 = $91 >>> 1; - $93 = ((($12)) + 24|0); - HEAP32[$93>>2] = $92; - $94 = ((($12)) + 28|0); - HEAP32[$94>>2] = $92; - STACKTOP = sp;return; - } else { - $10 = 0; - while(1) { - $81 = $10; - $82 = HEAP32[$12>>2]|0; - $83 = ($81>>>0)<($82>>>0); - if (!($83)) { - break; - } - $84 = ((($12)) + 12|0); - $85 = HEAP32[$84>>2]|0; - $86 = $10; - $87 = (($85) + ($86<<2)|0); - HEAP32[$87>>2] = 1; - $88 = $10; - $89 = (($88) + 1)|0; - $10 = $89; - } - __ZN6laszip6models10arithmetic6updateEv($12); - $90 = HEAP32[$12>>2]|0; - $91 = (($90) + 6)|0; - $92 = $91 >>> 1; - $93 = ((($12)) + 24|0); - HEAP32[$93>>2] = $92; - $94 = ((($12)) + 28|0); - HEAP32[$94>>2] = $92; - STACKTOP = sp;return; - } -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE21__push_back_slow_pathIS3_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $10 = sp + 8|0; - $15 = sp + 193|0; - $24 = sp; - $27 = sp + 192|0; - $35 = sp + 72|0; - $38 = sp + 60|0; - $46 = sp + 12|0; - $43 = $0; - $44 = $1; - $47 = $43; - $42 = $47; - $48 = $42; - $49 = ((($48)) + 8|0); - $41 = $49; - $50 = $41; - $40 = $50; - $51 = $40; - $45 = $51; - $39 = $47; - $52 = $39; - $53 = ((($52)) + 4|0); - $54 = HEAP32[$53>>2]|0; - $55 = HEAP32[$52>>2]|0; - $56 = $54; - $57 = $55; - $58 = (($56) - ($57))|0; - $59 = (($58|0) / 44)&-1; - $60 = (($59) + 1)|0; - $34 = $47; - HEAP32[$35>>2] = $60; - $61 = $34; - $62 = (__ZNKSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8max_sizeEv($61)|0); - $36 = $62; - $63 = HEAP32[$35>>2]|0; - $64 = $36; - $65 = ($63>>>0)>($64>>>0); - if ($65) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($61); - // unreachable; - } - $32 = $61; - $66 = $32; - $31 = $66; - $67 = $31; - $30 = $67; - $68 = $30; - $69 = ((($68)) + 8|0); - $29 = $69; - $70 = $29; - $28 = $70; - $71 = $28; - $72 = HEAP32[$71>>2]|0; - $73 = HEAP32[$67>>2]|0; - $74 = $72; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 44)&-1; - $37 = $77; - $78 = $37; - $79 = $36; - $80 = (($79>>>0) / 2)&-1; - $81 = ($78>>>0)>=($80>>>0); - if ($81) { - $82 = $36; - $33 = $82; - } else { - $83 = $37; - $84 = $83<<1; - HEAP32[$38>>2] = $84; - $25 = $38; - $26 = $35; - $85 = $25; - $86 = $26; - ;HEAP8[$24>>0]=HEAP8[$27>>0]|0; - $22 = $85; - $23 = $86; - $87 = $22; - $88 = $23; - $19 = $24; - $20 = $87; - $21 = $88; - $89 = $20; - $90 = HEAP32[$89>>2]|0; - $91 = $21; - $92 = HEAP32[$91>>2]|0; - $93 = ($90>>>0)<($92>>>0); - $94 = $23; - $95 = $22; - $96 = $93 ? $94 : $95; - $97 = HEAP32[$96>>2]|0; - $33 = $97; - } - $98 = $33; - $18 = $47; - $99 = $18; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$99>>2]|0; - $103 = $101; - $104 = $102; - $105 = (($103) - ($104))|0; - $106 = (($105|0) / 44)&-1; - $107 = $45; - __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEEC2EjjS6_($46,$98,$106,$107); - $108 = $45; - $109 = ((($46)) + 8|0); - $110 = HEAP32[$109>>2]|0; - $17 = $110; - $111 = $17; - $112 = $44; - $16 = $112; - $113 = $16; - $12 = $108; - $13 = $111; - $14 = $113; - $114 = $12; - $115 = $13; - $116 = $14; - $11 = $116; - $117 = $11; - ;HEAP8[$10>>0]=HEAP8[$15>>0]|0; - $7 = $114; - $8 = $115; - $9 = $117; - $118 = $7; - $119 = $8; - $120 = $9; - $6 = $120; - $121 = $6; - $3 = $118; - $4 = $119; - $5 = $121; - $122 = $4; - $123 = $5; - $2 = $123; - $124 = $2; - __ZN6laszip6models10arithmeticC2EOS1_($122,$124); - $125 = ((($46)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($126)) + 44|0); - HEAP32[$125>>2] = $127; - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($47,$46); - __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEED2Ev($46); - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmeticC2EOS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = HEAP32[$5>>2]|0; - HEAP32[$4>>2] = $6; - $7 = ((($4)) + 4|0); - $8 = $3; - $9 = ((($8)) + 4|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&1; - $12 = $11&1; - HEAP8[$7>>0] = $12; - $13 = ((($4)) + 8|0); - $14 = $3; - $15 = ((($14)) + 8|0); - $16 = HEAP32[$15>>2]|0; - HEAP32[$13>>2] = $16; - $17 = ((($4)) + 12|0); - $18 = $3; - $19 = ((($18)) + 12|0); - $20 = HEAP32[$19>>2]|0; - HEAP32[$17>>2] = $20; - $21 = ((($4)) + 16|0); - $22 = $3; - $23 = ((($22)) + 16|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$21>>2] = $24; - $25 = ((($4)) + 20|0); - $26 = $3; - $27 = ((($26)) + 20|0); - $28 = HEAP32[$27>>2]|0; - HEAP32[$25>>2] = $28; - $29 = ((($4)) + 24|0); - $30 = $3; - $31 = ((($30)) + 24|0); - $32 = HEAP32[$31>>2]|0; - HEAP32[$29>>2] = $32; - $33 = ((($4)) + 28|0); - $34 = $3; - $35 = ((($34)) + 28|0); - $36 = HEAP32[$35>>2]|0; - HEAP32[$33>>2] = $36; - $37 = ((($4)) + 32|0); - $38 = $3; - $39 = ((($38)) + 32|0); - $40 = HEAP32[$39>>2]|0; - HEAP32[$37>>2] = $40; - $41 = ((($4)) + 36|0); - $42 = $3; - $43 = ((($42)) + 36|0); - $44 = HEAP32[$43>>2]|0; - HEAP32[$41>>2] = $44; - $45 = ((($4)) + 40|0); - $46 = $3; - $47 = ((($46)) + 40|0); - $48 = HEAP32[$47>>2]|0; - HEAP32[$45>>2] = $48; - $49 = $3; - $50 = ((($49)) + 12|0); - HEAP32[$50>>2] = 0; - $51 = $3; - $52 = ((($51)) + 16|0); - HEAP32[$52>>2] = 0; - $53 = $3; - $54 = ((($53)) + 8|0); - HEAP32[$54>>2] = 0; - $55 = $3; - $56 = ((($55)) + 12|0); - HEAP32[$56>>2] = 0; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEEC2EjjS6_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(97612893); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = ($68*44)|0; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + (($74*44)|0)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + (($79*44)|0)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS3_RS5_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $15 = sp; - $20 = sp + 404|0; - $31 = sp + 292|0; - $37 = sp + 268|0; - $49 = sp + 220|0; - $102 = $0; - $103 = $1; - $104 = $102; - $101 = $104; - $105 = $101; - $100 = $105; - $106 = $100; - $107 = HEAP32[$106>>2]|0; - $99 = $107; - $108 = $99; - $78 = $105; - $109 = $78; - $110 = HEAP32[$109>>2]|0; - $77 = $110; - $111 = $77; - $83 = $105; - $112 = $83; - $82 = $112; - $113 = $82; - $81 = $113; - $114 = $81; - $115 = ((($114)) + 8|0); - $80 = $115; - $116 = $80; - $79 = $116; - $117 = $79; - $118 = HEAP32[$117>>2]|0; - $119 = HEAP32[$113>>2]|0; - $120 = $118; - $121 = $119; - $122 = (($120) - ($121))|0; - $123 = (($122|0) / 44)&-1; - $124 = (($111) + (($123*44)|0)|0); - $85 = $105; - $125 = $85; - $126 = HEAP32[$125>>2]|0; - $84 = $126; - $127 = $84; - $86 = $105; - $128 = $86; - $129 = ((($128)) + 4|0); - $130 = HEAP32[$129>>2]|0; - $131 = HEAP32[$128>>2]|0; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 44)&-1; - $136 = (($127) + (($135*44)|0)|0); - $88 = $105; - $137 = $88; - $138 = HEAP32[$137>>2]|0; - $87 = $138; - $139 = $87; - $93 = $105; - $140 = $93; - $92 = $140; - $141 = $92; - $91 = $141; - $142 = $91; - $143 = ((($142)) + 8|0); - $90 = $143; - $144 = $90; - $89 = $144; - $145 = $89; - $146 = HEAP32[$145>>2]|0; - $147 = HEAP32[$141>>2]|0; - $148 = $146; - $149 = $147; - $150 = (($148) - ($149))|0; - $151 = (($150|0) / 44)&-1; - $152 = (($139) + (($151*44)|0)|0); - $94 = $105; - $95 = $108; - $96 = $124; - $97 = $136; - $98 = $152; - $4 = $104; - $153 = $4; - $154 = ((($153)) + 8|0); - $3 = $154; - $155 = $3; - $2 = $155; - $156 = $2; - $157 = HEAP32[$104>>2]|0; - $158 = ((($104)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = $103; - $161 = ((($160)) + 4|0); - $22 = $156; - $23 = $157; - $24 = $159; - $25 = $161; - while(1) { - $162 = $24; - $163 = $23; - $164 = ($162|0)!=($163|0); - if (!($164)) { - break; - } - $165 = $22; - $166 = $25; - $167 = HEAP32[$166>>2]|0; - $168 = ((($167)) + -44|0); - $21 = $168; - $169 = $21; - $170 = $24; - $171 = ((($170)) + -44|0); - $24 = $171; - $6 = $171; - $172 = $6; - $5 = $172; - $173 = $5; - $17 = $165; - $18 = $169; - $19 = $173; - $174 = $17; - $175 = $18; - $176 = $19; - $16 = $176; - $177 = $16; - ;HEAP8[$15>>0]=HEAP8[$20>>0]|0; - $12 = $174; - $13 = $175; - $14 = $177; - $178 = $12; - $179 = $13; - $180 = $14; - $11 = $180; - $181 = $11; - $8 = $178; - $9 = $179; - $10 = $181; - $182 = $9; - $183 = $10; - $7 = $183; - $184 = $7; - __ZN6laszip6models10arithmeticC2ERKS1_($182,$184); - $185 = $25; - $186 = HEAP32[$185>>2]|0; - $187 = ((($186)) + -44|0); - HEAP32[$185>>2] = $187; - } - $188 = $103; - $189 = ((($188)) + 4|0); - $29 = $104; - $30 = $189; - $190 = $29; - $28 = $190; - $191 = $28; - $192 = HEAP32[$191>>2]|0; - HEAP32[$31>>2] = $192; - $193 = $30; - $26 = $193; - $194 = $26; - $195 = HEAP32[$194>>2]|0; - $196 = $29; - HEAP32[$196>>2] = $195; - $27 = $31; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = $30; - HEAP32[$199>>2] = $198; - $200 = ((($104)) + 4|0); - $201 = $103; - $202 = ((($201)) + 8|0); - $35 = $200; - $36 = $202; - $203 = $35; - $34 = $203; - $204 = $34; - $205 = HEAP32[$204>>2]|0; - HEAP32[$37>>2] = $205; - $206 = $36; - $32 = $206; - $207 = $32; - $208 = HEAP32[$207>>2]|0; - $209 = $35; - HEAP32[$209>>2] = $208; - $33 = $37; - $210 = $33; - $211 = HEAP32[$210>>2]|0; - $212 = $36; - HEAP32[$212>>2] = $211; - $40 = $104; - $213 = $40; - $214 = ((($213)) + 8|0); - $39 = $214; - $215 = $39; - $38 = $215; - $216 = $38; - $217 = $103; - $43 = $217; - $218 = $43; - $219 = ((($218)) + 12|0); - $42 = $219; - $220 = $42; - $41 = $220; - $221 = $41; - $47 = $216; - $48 = $221; - $222 = $47; - $46 = $222; - $223 = $46; - $224 = HEAP32[$223>>2]|0; - HEAP32[$49>>2] = $224; - $225 = $48; - $44 = $225; - $226 = $44; - $227 = HEAP32[$226>>2]|0; - $228 = $47; - HEAP32[$228>>2] = $227; - $45 = $49; - $229 = $45; - $230 = HEAP32[$229>>2]|0; - $231 = $48; - HEAP32[$231>>2] = $230; - $232 = $103; - $233 = ((($232)) + 4|0); - $234 = HEAP32[$233>>2]|0; - $235 = $103; - HEAP32[$235>>2] = $234; - $50 = $104; - $236 = $50; - $237 = ((($236)) + 4|0); - $238 = HEAP32[$237>>2]|0; - $239 = HEAP32[$236>>2]|0; - $240 = $238; - $241 = $239; - $242 = (($240) - ($241))|0; - $243 = (($242|0) / 44)&-1; - $74 = $104; - $75 = $243; - $244 = $74; - $73 = $244; - $245 = $73; - $246 = HEAP32[$245>>2]|0; - $72 = $246; - $247 = $72; - $52 = $244; - $248 = $52; - $249 = HEAP32[$248>>2]|0; - $51 = $249; - $250 = $51; - $57 = $244; - $251 = $57; - $56 = $251; - $252 = $56; - $55 = $252; - $253 = $55; - $254 = ((($253)) + 8|0); - $54 = $254; - $255 = $54; - $53 = $255; - $256 = $53; - $257 = HEAP32[$256>>2]|0; - $258 = HEAP32[$252>>2]|0; - $259 = $257; - $260 = $258; - $261 = (($259) - ($260))|0; - $262 = (($261|0) / 44)&-1; - $263 = (($250) + (($262*44)|0)|0); - $59 = $244; - $264 = $59; - $265 = HEAP32[$264>>2]|0; - $58 = $265; - $266 = $58; - $64 = $244; - $267 = $64; - $63 = $267; - $268 = $63; - $62 = $268; - $269 = $62; - $270 = ((($269)) + 8|0); - $61 = $270; - $271 = $61; - $60 = $271; - $272 = $60; - $273 = HEAP32[$272>>2]|0; - $274 = HEAP32[$268>>2]|0; - $275 = $273; - $276 = $274; - $277 = (($275) - ($276))|0; - $278 = (($277|0) / 44)&-1; - $279 = (($266) + (($278*44)|0)|0); - $66 = $244; - $280 = $66; - $281 = HEAP32[$280>>2]|0; - $65 = $281; - $282 = $65; - $283 = $75; - $284 = (($282) + (($283*44)|0)|0); - $67 = $244; - $68 = $247; - $69 = $263; - $70 = $279; - $71 = $284; - $76 = $104; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIN6laszip6models10arithmeticERNS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -44|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZN6laszip6models10arithmeticD2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 44)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 97612893; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip6models10arithmeticC2ERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $32 = $0; - $33 = $1; - $35 = $32; - $36 = $33; - $37 = HEAP32[$36>>2]|0; - HEAP32[$35>>2] = $37; - $38 = ((($35)) + 4|0); - $39 = $33; - $40 = ((($39)) + 4|0); - $41 = HEAP8[$40>>0]|0; - $42 = $41&1; - $43 = $42&1; - HEAP8[$38>>0] = $43; - $44 = ((($35)) + 20|0); - $45 = $33; - $46 = ((($45)) + 20|0); - $47 = HEAP32[$46>>2]|0; - HEAP32[$44>>2] = $47; - $48 = ((($35)) + 24|0); - $49 = $33; - $50 = ((($49)) + 24|0); - $51 = HEAP32[$50>>2]|0; - HEAP32[$48>>2] = $51; - $52 = ((($35)) + 28|0); - $53 = $33; - $54 = ((($53)) + 28|0); - $55 = HEAP32[$54>>2]|0; - HEAP32[$52>>2] = $55; - $56 = ((($35)) + 32|0); - $57 = $33; - $58 = ((($57)) + 32|0); - $59 = HEAP32[$58>>2]|0; - HEAP32[$56>>2] = $59; - $60 = ((($35)) + 36|0); - $61 = $33; - $62 = ((($61)) + 36|0); - $63 = HEAP32[$62>>2]|0; - HEAP32[$60>>2] = $63; - $64 = ((($35)) + 40|0); - $65 = $33; - $66 = ((($65)) + 40|0); - $67 = HEAP32[$66>>2]|0; - HEAP32[$64>>2] = $67; - $68 = HEAP32[$35>>2]|0; - $69 = $68<<2; - $34 = $69; - $70 = $34; - $71 = (__ZN6laszip5utilsL14aligned_mallocEi($70)|0); - $72 = ((($35)) + 8|0); - HEAP32[$72>>2] = $71; - $73 = $33; - $74 = ((($73)) + 8|0); - $75 = HEAP32[$74>>2]|0; - $76 = $33; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = HEAP32[$35>>2]|0; - $80 = (($78) + ($79<<2)|0); - $81 = ((($35)) + 8|0); - $82 = HEAP32[$81>>2]|0; - $29 = $75; - $30 = $80; - $31 = $82; - $83 = $29; - $28 = $83; - $84 = $28; - $85 = $30; - $22 = $85; - $86 = $22; - $87 = $31; - $23 = $87; - $88 = $23; - $24 = $84; - $25 = $86; - $26 = $88; - $89 = $25; - $90 = $24; - $91 = $89; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 4)&-1; - $27 = $94; - $95 = $27; - $96 = ($95>>>0)>(0); - if ($96) { - $97 = $26; - $98 = $24; - $99 = $27; - $100 = $99<<2; - _memmove(($97|0),($98|0),($100|0))|0; - } - $101 = $34; - $102 = (__ZN6laszip5utilsL14aligned_mallocEi($101)|0); - $103 = ((($35)) + 12|0); - HEAP32[$103>>2] = $102; - $104 = $33; - $105 = ((($104)) + 12|0); - $106 = HEAP32[$105>>2]|0; - $107 = $33; - $108 = ((($107)) + 12|0); - $109 = HEAP32[$108>>2]|0; - $110 = HEAP32[$35>>2]|0; - $111 = (($109) + ($110<<2)|0); - $112 = ((($35)) + 12|0); - $113 = HEAP32[$112>>2]|0; - $9 = $106; - $10 = $111; - $11 = $113; - $114 = $9; - $8 = $114; - $115 = $8; - $116 = $10; - $2 = $116; - $117 = $2; - $118 = $11; - $3 = $118; - $119 = $3; - $4 = $115; - $5 = $117; - $6 = $119; - $120 = $5; - $121 = $4; - $122 = $120; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 4)&-1; - $7 = $125; - $126 = $7; - $127 = ($126>>>0)>(0); - if ($127) { - $128 = $6; - $129 = $4; - $130 = $7; - $131 = $130<<2; - _memmove(($128|0),($129|0),($131|0))|0; - } - $132 = ((($35)) + 36|0); - $133 = HEAP32[$132>>2]|0; - $134 = ($133|0)!=(0); - if (!($134)) { - $172 = ((($35)) + 16|0); - HEAP32[$172>>2] = 0; - STACKTOP = sp;return; - } - $135 = ((($35)) + 36|0); - $136 = HEAP32[$135>>2]|0; - $137 = (($136) + 2)|0; - $138 = $137<<2; - $34 = $138; - $139 = $34; - $140 = (__ZN6laszip5utilsL14aligned_mallocEi($139)|0); - $141 = ((($35)) + 16|0); - HEAP32[$141>>2] = $140; - $142 = $33; - $143 = ((($142)) + 16|0); - $144 = HEAP32[$143>>2]|0; - $145 = $33; - $146 = ((($145)) + 16|0); - $147 = HEAP32[$146>>2]|0; - $148 = ((($35)) + 36|0); - $149 = HEAP32[$148>>2]|0; - $150 = (($149) + 2)|0; - $151 = (($147) + ($150<<2)|0); - $152 = ((($35)) + 16|0); - $153 = HEAP32[$152>>2]|0; - $19 = $144; - $20 = $151; - $21 = $153; - $154 = $19; - $18 = $154; - $155 = $18; - $156 = $20; - $12 = $156; - $157 = $12; - $158 = $21; - $13 = $158; - $159 = $13; - $14 = $155; - $15 = $157; - $16 = $159; - $160 = $15; - $161 = $14; - $162 = $160; - $163 = $161; - $164 = (($162) - ($163))|0; - $165 = (($164|0) / 4)&-1; - $17 = $165; - $166 = $17; - $167 = ($166>>>0)>(0); - if ($167) { - $168 = $16; - $169 = $14; - $170 = $17; - $171 = $170<<2; - _memmove(($168|0),($169|0),($171|0))|0; - } - STACKTOP = sp;return; -} -function __ZN6laszip6models10arithmetic6updateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $14 = 0, $15 = 0, $16 = 0; - var $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = $0; - $9 = $1; - $10 = ((($9)) + 24|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($9)) + 20|0); - $13 = HEAP32[$12>>2]|0; - $14 = (($13) + ($11))|0; - HEAP32[$12>>2] = $14; - $15 = ($14>>>0)>(32768); - L1: do { - if ($15) { - $16 = ((($9)) + 20|0); - HEAP32[$16>>2] = 0; - $2 = 0; - while(1) { - $17 = $2; - $18 = HEAP32[$9>>2]|0; - $19 = ($17>>>0)<($18>>>0); - if (!($19)) { - break L1; - } - $20 = ((($9)) + 12|0); - $21 = HEAP32[$20>>2]|0; - $22 = $2; - $23 = (($21) + ($22<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = (($24) + 1)|0; - $26 = $25 >>> 1; - $27 = ((($9)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = $2; - $30 = (($28) + ($29<<2)|0); - HEAP32[$30>>2] = $26; - $31 = ((($9)) + 20|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) + ($26))|0; - HEAP32[$31>>2] = $33; - $34 = $2; - $35 = (($34) + 1)|0; - $2 = $35; - } - } - } while(0); - $4 = 0; - $5 = 0; - $36 = ((($9)) + 20|0); - $37 = HEAP32[$36>>2]|0; - $38 = (2147483648 / ($37>>>0))&-1; - $6 = $38; - $39 = ((($9)) + 4|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40&1; - L7: do { - if ($41) { - label = 7; - } else { - $42 = ((($9)) + 36|0); - $43 = HEAP32[$42>>2]|0; - $44 = ($43|0)==(0); - if ($44) { - label = 7; - } else { - $3 = 0; - while(1) { - $65 = $3; - $66 = HEAP32[$9>>2]|0; - $67 = ($65>>>0)<($66>>>0); - if (!($67)) { - break; - } - $68 = $6; - $69 = $4; - $70 = Math_imul($68, $69)|0; - $71 = $70 >>> 16; - $72 = ((($9)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = $3; - $75 = (($73) + ($74<<2)|0); - HEAP32[$75>>2] = $71; - $76 = ((($9)) + 12|0); - $77 = HEAP32[$76>>2]|0; - $78 = $3; - $79 = (($77) + ($78<<2)|0); - $80 = HEAP32[$79>>2]|0; - $81 = $4; - $82 = (($81) + ($80))|0; - $4 = $82; - $83 = ((($9)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = $3; - $86 = (($84) + ($85<<2)|0); - $87 = HEAP32[$86>>2]|0; - $88 = ((($9)) + 40|0); - $89 = HEAP32[$88>>2]|0; - $90 = $87 >>> $89; - $7 = $90; - while(1) { - $91 = $5; - $92 = $7; - $93 = ($91>>>0)<($92>>>0); - $94 = $3; - if (!($93)) { - break; - } - $95 = (($94) - 1)|0; - $96 = ((($9)) + 16|0); - $97 = HEAP32[$96>>2]|0; - $98 = $5; - $99 = (($98) + 1)|0; - $5 = $99; - $100 = (($97) + ($99<<2)|0); - HEAP32[$100>>2] = $95; - } - $101 = (($94) + 1)|0; - $3 = $101; - } - $102 = ((($9)) + 16|0); - $103 = HEAP32[$102>>2]|0; - HEAP32[$103>>2] = 0; - while(1) { - $104 = $5; - $105 = ((($9)) + 36|0); - $106 = HEAP32[$105>>2]|0; - $107 = ($104>>>0)<=($106>>>0); - if (!($107)) { - break L7; - } - $108 = HEAP32[$9>>2]|0; - $109 = (($108) - 1)|0; - $110 = ((($9)) + 16|0); - $111 = HEAP32[$110>>2]|0; - $112 = $5; - $113 = (($112) + 1)|0; - $5 = $113; - $114 = (($111) + ($113<<2)|0); - HEAP32[$114>>2] = $109; - } - } - } - } while(0); - L21: do { - if ((label|0) == 7) { - $3 = 0; - while(1) { - $45 = $3; - $46 = HEAP32[$9>>2]|0; - $47 = ($45>>>0)<($46>>>0); - if (!($47)) { - break L21; - } - $48 = $6; - $49 = $4; - $50 = Math_imul($48, $49)|0; - $51 = $50 >>> 16; - $52 = ((($9)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = $3; - $55 = (($53) + ($54<<2)|0); - HEAP32[$55>>2] = $51; - $56 = ((($9)) + 12|0); - $57 = HEAP32[$56>>2]|0; - $58 = $3; - $59 = (($57) + ($58<<2)|0); - $60 = HEAP32[$59>>2]|0; - $61 = $4; - $62 = (($61) + ($60))|0; - $4 = $62; - $63 = $3; - $64 = (($63) + 1)|0; - $3 = $64; - } - } - } while(0); - $115 = ((($9)) + 24|0); - $116 = HEAP32[$115>>2]|0; - $117 = ($116*5)|0; - $118 = $117 >>> 2; - $119 = ((($9)) + 24|0); - HEAP32[$119>>2] = $118; - $120 = HEAP32[$9>>2]|0; - $121 = (($120) + 6)|0; - $122 = $121 << 3; - $8 = $122; - $123 = ((($9)) + 24|0); - $124 = HEAP32[$123>>2]|0; - $125 = $8; - $126 = ($124>>>0)>($125>>>0); - if (!($126)) { - $129 = ((($9)) + 24|0); - $130 = HEAP32[$129>>2]|0; - $131 = ((($9)) + 28|0); - HEAP32[$131>>2] = $130; - STACKTOP = sp;return; - } - $127 = $8; - $128 = ((($9)) + 24|0); - HEAP32[$128>>2] = $127; - $129 = ((($9)) + 24|0); - $130 = HEAP32[$129>>2]|0; - $131 = ((($9)) + 28|0); - HEAP32[$131>>2] = $130; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS_6models10arithmeticEEEiRT_RT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = $0; - $8 = $1; - $9 = $2; - $13 = $7; - $14 = $8; - $15 = $9; - $16 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($14,$15)|0); - HEAP32[$13>>2] = $16; - $17 = HEAP32[$13>>2]|0; - $18 = ($17|0)!=(0); - if (!($18)) { - $69 = $8; - $70 = ((($13)) + 48|0); - $71 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9decodeBitINS_6models14arithmetic_bitEEEjRT_($69,$70)|0); - $10 = $71; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $19 = HEAP32[$13>>2]|0; - $20 = ($19>>>0)<(32); - if (!($20)) { - $67 = ((($13)) + 28|0); - $68 = HEAP32[$67>>2]|0; - $10 = $68; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $21 = HEAP32[$13>>2]|0; - $22 = ((($13)) + 12|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($21>>>0)<=($23>>>0); - if ($24) { - $25 = $8; - $26 = ((($13)) + 68|0); - $27 = HEAP32[$13>>2]|0; - $28 = (($27) - 1)|0; - $5 = $26; - $6 = $28; - $29 = $5; - $30 = HEAP32[$29>>2]|0; - $31 = $6; - $32 = (($30) + (($31*44)|0)|0); - $33 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($25,$32)|0); - $10 = $33; - } else { - $34 = HEAP32[$13>>2]|0; - $35 = ((($13)) + 12|0); - $36 = HEAP32[$35>>2]|0; - $37 = (($34) - ($36))|0; - $11 = $37; - $38 = $8; - $39 = ((($13)) + 68|0); - $40 = HEAP32[$13>>2]|0; - $41 = (($40) - 1)|0; - $3 = $39; - $4 = $41; - $42 = $3; - $43 = HEAP32[$42>>2]|0; - $44 = $4; - $45 = (($43) + (($44*44)|0)|0); - $46 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($38,$45)|0); - $10 = $46; - $47 = $8; - $48 = $11; - $49 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($47,$48)|0); - $12 = $49; - $50 = $10; - $51 = $11; - $52 = $50 << $51; - $53 = $12; - $54 = $52 | $53; - $10 = $54; - } - $55 = $10; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) - 1)|0; - $58 = 1 << $57; - $59 = ($55|0)>=($58|0); - if ($59) { - $60 = $10; - $61 = (($60) + 1)|0; - $10 = $61; - $72 = $10; - STACKTOP = sp;return ($72|0); - } else { - $62 = HEAP32[$13>>2]|0; - $63 = 1 << $62; - $64 = (($63) - 1)|0; - $65 = $10; - $66 = (($65) - ($64))|0; - $10 = $66; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - return (0)|0; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $2 = $0; - $3 = $1; - $13 = $2; - $14 = ((($13)) + 8|0); - $15 = HEAP32[$14>>2]|0; - $7 = $15; - $16 = $3; - $17 = ((($16)) + 16|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = ((($13)) + 4|0); - $21 = HEAP32[$20>>2]|0; - $22 = ((($13)) + 8|0); - $23 = HEAP32[$22>>2]|0; - $24 = $23 >>> 15; - HEAP32[$22>>2] = $24; - $25 = (($21>>>0) / ($24>>>0))&-1; - $8 = $25; - $26 = $8; - $27 = $3; - $28 = ((($27)) + 40|0); - $29 = HEAP32[$28>>2]|0; - $30 = $26 >>> $29; - $9 = $30; - $31 = $3; - $32 = ((($31)) + 16|0); - $33 = HEAP32[$32>>2]|0; - $34 = $9; - $35 = (($33) + ($34<<2)|0); - $36 = HEAP32[$35>>2]|0; - $5 = $36; - $37 = $3; - $38 = ((($37)) + 16|0); - $39 = HEAP32[$38>>2]|0; - $40 = $9; - $41 = (($40) + 1)|0; - $42 = (($39) + ($41<<2)|0); - $43 = HEAP32[$42>>2]|0; - $44 = (($43) + 1)|0; - $4 = $44; - while(1) { - $45 = $4; - $46 = $5; - $47 = (($46) + 1)|0; - $48 = ($45>>>0)>($47>>>0); - if (!($48)) { - break; - } - $49 = $5; - $50 = $4; - $51 = (($49) + ($50))|0; - $52 = $51 >>> 1; - $10 = $52; - $53 = $3; - $54 = ((($53)) + 8|0); - $55 = HEAP32[$54>>2]|0; - $56 = $10; - $57 = (($55) + ($56<<2)|0); - $58 = HEAP32[$57>>2]|0; - $59 = $8; - $60 = ($58>>>0)>($59>>>0); - $61 = $10; - if ($60) { - $4 = $61; - } else { - $5 = $61; - } - } - $62 = $3; - $63 = ((($62)) + 8|0); - $64 = HEAP32[$63>>2]|0; - $65 = $5; - $66 = (($64) + ($65<<2)|0); - $67 = HEAP32[$66>>2]|0; - $68 = ((($13)) + 8|0); - $69 = HEAP32[$68>>2]|0; - $70 = Math_imul($67, $69)|0; - $6 = $70; - $71 = $5; - $72 = $3; - $73 = ((($72)) + 32|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71|0)!=($74|0); - if ($75) { - $76 = $3; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = $5; - $80 = (($79) + 1)|0; - $81 = (($78) + ($80<<2)|0); - $82 = HEAP32[$81>>2]|0; - $83 = ((($13)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = Math_imul($82, $84)|0; - $7 = $85; - } - } else { - $5 = 0; - $6 = 0; - $86 = ((($13)) + 8|0); - $87 = HEAP32[$86>>2]|0; - $88 = $87 >>> 15; - HEAP32[$86>>2] = $88; - $89 = $3; - $90 = HEAP32[$89>>2]|0; - $4 = $90; - $91 = $90 >>> 1; - $11 = $91; - while(1) { - $92 = ((($13)) + 8|0); - $93 = HEAP32[$92>>2]|0; - $94 = $3; - $95 = ((($94)) + 8|0); - $96 = HEAP32[$95>>2]|0; - $97 = $11; - $98 = (($96) + ($97<<2)|0); - $99 = HEAP32[$98>>2]|0; - $100 = Math_imul($93, $99)|0; - $12 = $100; - $101 = $12; - $102 = ((($13)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = ($101>>>0)>($103>>>0); - $105 = $11; - if ($104) { - $4 = $105; - $106 = $12; - $7 = $106; - } else { - $5 = $105; - $107 = $12; - $6 = $107; - } - $108 = $5; - $109 = $4; - $110 = (($108) + ($109))|0; - $111 = $110 >>> 1; - $11 = $111; - $112 = $5; - $113 = ($111|0)!=($112|0); - if (!($113)) { - break; - } - } - } - $114 = $6; - $115 = ((($13)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = (($116) - ($114))|0; - HEAP32[$115>>2] = $117; - $118 = $7; - $119 = $6; - $120 = (($118) - ($119))|0; - $121 = ((($13)) + 8|0); - HEAP32[$121>>2] = $120; - $122 = ((($13)) + 8|0); - $123 = HEAP32[$122>>2]|0; - $124 = ($123>>>0)<(16777216); - if ($124) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($13); - } - $125 = $3; - $126 = ((($125)) + 12|0); - $127 = HEAP32[$126>>2]|0; - $128 = $5; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $131 = (($130) + 1)|0; - HEAP32[$129>>2] = $131; - $132 = $3; - $133 = ((($132)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = (($134) + -1)|0; - HEAP32[$133>>2] = $135; - $136 = ($135|0)==(0); - if (!($136)) { - $138 = $5; - STACKTOP = sp;return ($138|0); - } - $137 = $3; - __ZN6laszip6models10arithmetic6updateEv($137); - $138 = $5; - STACKTOP = sp;return ($138|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = $0; - $4 = $1; - $8 = $3; - $9 = $4; - $10 = ($9|0)!=(0); - $11 = $4; - $12 = ($11>>>0)<=(32); - $or$cond = $10 & $12; - if (!($or$cond)) { - ___assert_fail((5409|0),(5430|0),139,(5499|0)); - // unreachable; - } - $13 = $4; - $14 = ($13>>>0)>(19); - if ($14) { - $15 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($8)|0); - $16 = $15&65535; - $5 = $16; - $17 = $4; - $18 = (($17) - 16)|0; - $4 = $18; - $19 = $4; - $20 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE8readBitsEj($8,$19)|0); - $21 = $20 << 16; - $6 = $21; - $22 = $6; - $23 = $5; - $24 = $22 | $23; - $2 = $24; - $43 = $2; - STACKTOP = sp;return ($43|0); - } - $25 = ((($8)) + 4|0); - $26 = HEAP32[$25>>2]|0; - $27 = $4; - $28 = ((($8)) + 8|0); - $29 = HEAP32[$28>>2]|0; - $30 = $29 >>> $27; - HEAP32[$28>>2] = $30; - $31 = (($26>>>0) / ($30>>>0))&-1; - $7 = $31; - $32 = ((($8)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = $7; - $35 = Math_imul($33, $34)|0; - $36 = ((($8)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = (($37) - ($35))|0; - HEAP32[$36>>2] = $38; - $39 = ((($8)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40>>>0)<(16777216); - if ($41) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($8); - } - $42 = $7; - $2 = $42; - $43 = $2; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9decodeBitINS_6models14arithmetic_bitEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $2; - $7 = $3; - $8 = ((($7)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($6)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $11 >>> 13; - $13 = Math_imul($9, $12)|0; - $4 = $13; - $14 = ((($6)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $4; - $17 = ($15>>>0)>=($16>>>0); - $18 = $17&1; - $5 = $18; - $19 = $5; - $20 = ($19|0)==(0); - $21 = $4; - if ($20) { - $22 = ((($6)) + 8|0); - HEAP32[$22>>2] = $21; - $23 = $3; - $24 = ((($23)) + 12|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } else { - $27 = ((($6)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = (($28) - ($21))|0; - HEAP32[$27>>2] = $29; - $30 = $4; - $31 = ((($6)) + 8|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) - ($30))|0; - HEAP32[$31>>2] = $33; - } - $34 = ((($6)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = ($35>>>0)<(16777216); - if ($36) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($6); - } - $37 = $3; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($39) + -1)|0; - HEAP32[$38>>2] = $40; - $41 = ($40|0)==(0); - if (!($41)) { - $43 = $5; - STACKTOP = sp;return ($43|0); - } - $42 = $3; - __ZN6laszip6models14arithmetic_bit6updateEv($42); - $43 = $5; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - while(1) { - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = $4 << 8; - $6 = HEAP32[$2>>2]|0; - $7 = (__ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7getByteEv($6)|0); - $8 = $7&255; - $9 = $5 | $8; - $10 = ((($2)) + 4|0); - HEAP32[$10>>2] = $9; - $11 = ((($2)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = $12 << 8; - HEAP32[$11>>2] = $13; - $14 = ($13>>>0)<(16777216); - if (!($14)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($3)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >>> 16; - HEAP32[$6>>2] = $8; - $9 = (($5>>>0) / ($8>>>0))&-1; - $2 = $9; - $10 = ((($3)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $2; - $13 = Math_imul($11, $12)|0; - $14 = ((($3)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) - ($13))|0; - HEAP32[$14>>2] = $16; - $17 = ((($3)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18>>>0)<(16777216); - if ($19) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE19renorm_dec_intervalEv($3); - } - $20 = $2; - $21 = ($20>>>0)<(65536); - if ($21) { - $22 = $2; - $23 = $22&65535; - STACKTOP = sp;return ($23|0); - } else { - ___assert_fail((5508|0),(5430|0),172,(5522|0)); - // unreachable; - } - return (0)|0; -} -function __ZN6laszip6models14arithmetic_bit6updateEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = HEAP32[$3>>2]|0; - $5 = ((($3)) + 16|0); - $6 = HEAP32[$5>>2]|0; - $7 = (($6) + ($4))|0; - HEAP32[$5>>2] = $7; - $8 = ($7>>>0)>(8192); - if ($8) { - $9 = ((($3)) + 16|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($10) + 1)|0; - $12 = $11 >>> 1; - $13 = ((($3)) + 16|0); - HEAP32[$13>>2] = $12; - $14 = ((($3)) + 12|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) + 1)|0; - $17 = $16 >>> 1; - $18 = ((($3)) + 12|0); - HEAP32[$18>>2] = $17; - $19 = ((($3)) + 12|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($3)) + 16|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $24 = ((($3)) + 16|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } - } - $27 = ((($3)) + 16|0); - $28 = HEAP32[$27>>2]|0; - $29 = (2147483648 / ($28>>>0))&-1; - $2 = $29; - $30 = ((($3)) + 12|0); - $31 = HEAP32[$30>>2]|0; - $32 = $2; - $33 = Math_imul($31, $32)|0; - $34 = $33 >>> 18; - $35 = ((($3)) + 8|0); - HEAP32[$35>>2] = $34; - $36 = HEAP32[$3>>2]|0; - $37 = ($36*5)|0; - $38 = $37 >>> 2; - HEAP32[$3>>2] = $38; - $39 = HEAP32[$3>>2]|0; - $40 = ($39>>>0)>(64); - if (!($40)) { - $41 = HEAP32[$3>>2]|0; - $42 = ((($3)) + 4|0); - HEAP32[$42>>2] = $41; - STACKTOP = sp;return; - } - HEAP32[$3>>2] = 64; - $41 = HEAP32[$3>>2]|0; - $42 = ((($3)) + 4|0); - HEAP32[$42>>2] = $41; - STACKTOP = sp;return; -} -function __ZN6laszip2io6reader10basic_fileINS_7streams13memory_streamEE9readPointEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0); - $$byval_copy = sp + 356|0; - $7 = sp + 332|0; - $13 = sp + 308|0; - $21 = sp + 272|0; - $28 = sp + 240|0; - $34 = sp + 216|0; - $39 = sp + 192|0; - $40 = sp + 184|0; - $46 = sp + 160|0; - $52 = sp + 136|0; - $57 = sp + 112|0; - $63 = sp + 88|0; - $69 = sp + 64|0; - $74 = sp + 40|0; - $82 = sp; - $80 = $0; - $81 = $1; - $83 = $80; - $84 = ((($83)) + 328|0); - $85 = ((($84)) + 8|0); - $86 = $85; - $87 = $86; - $88 = HEAP32[$87>>2]|0; - $89 = (($86) + 4)|0; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = ((($83)) + 247|0); - $93 = ((($92)) + 12|0); - $94 = HEAPU8[$93>>0]|(HEAPU8[$93+1>>0]<<8)|(HEAPU8[$93+2>>0]<<16)|(HEAPU8[$93+3>>0]<<24); - $95 = ($88|0)==($94|0); - $96 = ($91|0)==(0); - $97 = $95 & $96; - if (!($97)) { - $98 = ((($83)) + 320|0); - $79 = $98; - $99 = $79; - $78 = $99; - $100 = $78; - $101 = HEAP32[$100>>2]|0; - $102 = ($101|0)!=(0|0); - if ($102) { - $103 = ((($83)) + 312|0); - $77 = $103; - $104 = $77; - $76 = $104; - $105 = $76; - $106 = HEAP32[$105>>2]|0; - $107 = ($106|0)!=(0|0); - if ($107) { - $258 = ((($83)) + 320|0); - $75 = $258; - $259 = $75; - $260 = HEAP32[$259>>2]|0; - $261 = HEAP32[$260>>2]|0; - $262 = HEAP32[$261>>2]|0; - $263 = $81; - (FUNCTION_TABLE_iii[$262 & 255]($260,$263)|0); - $264 = ((($83)) + 328|0); - $265 = ((($264)) + 8|0); - $266 = $265; - $267 = $266; - $268 = HEAP32[$267>>2]|0; - $269 = (($266) + 4)|0; - $270 = $269; - $271 = HEAP32[$270>>2]|0; - $272 = (_i64Add(($268|0),($271|0),1,0)|0); - $273 = tempRet0; - $274 = $265; - $275 = $274; - HEAP32[$275>>2] = $272; - $276 = (($274) + 4)|0; - $277 = $276; - HEAP32[$277>>2] = $273; - STACKTOP = sp;return; - } - } - } - $108 = ((($83)) + 320|0); - $73 = $108; - $109 = $73; - $72 = $74; - $110 = $72; - HEAP32[$110>>2] = 0; - $111 = ((($110)) + 4|0); - HEAP32[$111>>2] = 0; - $70 = $74; - $71 = $109; - $112 = $70; - $113 = $71; - $67 = $112; - $68 = $113; - $114 = $67; - $66 = $114; - $115 = $66; - $116 = HEAP32[$115>>2]|0; - HEAP32[$69>>2] = $116; - $117 = $68; - $64 = $117; - $118 = $64; - $119 = HEAP32[$118>>2]|0; - $120 = $67; - HEAP32[$120>>2] = $119; - $65 = $69; - $121 = $65; - $122 = HEAP32[$121>>2]|0; - $123 = $68; - HEAP32[$123>>2] = $122; - $124 = ((($112)) + 4|0); - $125 = $71; - $126 = ((($125)) + 4|0); - $61 = $124; - $62 = $126; - $127 = $61; - $60 = $127; - $128 = $60; - $129 = HEAP32[$128>>2]|0; - HEAP32[$63>>2] = $129; - $130 = $62; - $58 = $130; - $131 = $58; - $132 = HEAP32[$131>>2]|0; - $133 = $61; - HEAP32[$133>>2] = $132; - $59 = $63; - $134 = $59; - $135 = HEAP32[$134>>2]|0; - $136 = $62; - HEAP32[$136>>2] = $135; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($74); - $137 = ((($83)) + 312|0); - $56 = $137; - $138 = $56; - $55 = $57; - $139 = $55; - HEAP32[$139>>2] = 0; - $140 = ((($139)) + 4|0); - HEAP32[$140>>2] = 0; - $53 = $57; - $54 = $138; - $141 = $53; - $142 = $54; - $50 = $141; - $51 = $142; - $143 = $50; - $49 = $143; - $144 = $49; - $145 = HEAP32[$144>>2]|0; - HEAP32[$52>>2] = $145; - $146 = $51; - $47 = $146; - $147 = $47; - $148 = HEAP32[$147>>2]|0; - $149 = $50; - HEAP32[$149>>2] = $148; - $48 = $52; - $150 = $48; - $151 = HEAP32[$150>>2]|0; - $152 = $51; - HEAP32[$152>>2] = $151; - $153 = ((($141)) + 4|0); - $154 = $54; - $155 = ((($154)) + 4|0); - $44 = $153; - $45 = $155; - $156 = $44; - $43 = $156; - $157 = $43; - $158 = HEAP32[$157>>2]|0; - HEAP32[$46>>2] = $158; - $159 = $45; - $41 = $159; - $160 = $41; - $161 = HEAP32[$160>>2]|0; - $162 = $44; - HEAP32[$162>>2] = $161; - $42 = $46; - $163 = $42; - $164 = HEAP32[$163>>2]|0; - $165 = $45; - HEAP32[$165>>2] = $164; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($57); - $166 = ((($83)) + 312|0); - $167 = (__Znwj(12)|0); - $168 = ((($83)) + 4|0); - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEC2ERS6_($167,$168); - $37 = $166; - $38 = $167; - $169 = $37; - $170 = $38; - ;HEAP32[$40>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$40>>2]|0; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEC2IS9_EEPT_NS_9enable_ifIXsr14is_convertibleISD_PS9_EE5valueENSA_5__natEE4typeE($39,$170,$$byval_copy); - $35 = $39; - $36 = $169; - $171 = $35; - $172 = $36; - $32 = $171; - $33 = $172; - $173 = $32; - $31 = $173; - $174 = $31; - $175 = HEAP32[$174>>2]|0; - HEAP32[$34>>2] = $175; - $176 = $33; - $29 = $176; - $177 = $29; - $178 = HEAP32[$177>>2]|0; - $179 = $32; - HEAP32[$179>>2] = $178; - $30 = $34; - $180 = $30; - $181 = HEAP32[$180>>2]|0; - $182 = $33; - HEAP32[$182>>2] = $181; - $183 = ((($171)) + 4|0); - $184 = $36; - $185 = ((($184)) + 4|0); - $26 = $183; - $27 = $185; - $186 = $26; - $25 = $186; - $187 = $25; - $188 = HEAP32[$187>>2]|0; - HEAP32[$28>>2] = $188; - $189 = $27; - $23 = $189; - $190 = $23; - $191 = HEAP32[$190>>2]|0; - $192 = $26; - HEAP32[$192>>2] = $191; - $24 = $28; - $193 = $24; - $194 = HEAP32[$193>>2]|0; - $195 = $27; - HEAP32[$195>>2] = $194; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEED2Ev($39); - $196 = ((($83)) + 312|0); - $22 = $196; - $197 = $22; - $198 = HEAP32[$197>>2]|0; - $199 = ((($83)) + 300|0); - __ZN6laszip7factory18build_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENSt3__210shared_ptrINS_7formats20dynamic_decompressorEEERT_RKNS0_13record_schemaE($82,$198,$199); - $200 = ((($83)) + 320|0); - $19 = $200; - $20 = $82; - $201 = $19; - $202 = $20; - $18 = $202; - $203 = $18; - $16 = $21; - $17 = $203; - $204 = $16; - $205 = $17; - $206 = HEAP32[$205>>2]|0; - HEAP32[$204>>2] = $206; - $207 = ((($204)) + 4|0); - $208 = $17; - $209 = ((($208)) + 4|0); - $210 = HEAP32[$209>>2]|0; - HEAP32[$207>>2] = $210; - $211 = $17; - HEAP32[$211>>2] = 0; - $212 = $17; - $213 = ((($212)) + 4|0); - HEAP32[$213>>2] = 0; - $14 = $21; - $15 = $201; - $214 = $14; - $215 = $15; - $11 = $214; - $12 = $215; - $216 = $11; - $10 = $216; - $217 = $10; - $218 = HEAP32[$217>>2]|0; - HEAP32[$13>>2] = $218; - $219 = $12; - $8 = $219; - $220 = $8; - $221 = HEAP32[$220>>2]|0; - $222 = $11; - HEAP32[$222>>2] = $221; - $9 = $13; - $223 = $9; - $224 = HEAP32[$223>>2]|0; - $225 = $12; - HEAP32[$225>>2] = $224; - $226 = ((($214)) + 4|0); - $227 = $15; - $228 = ((($227)) + 4|0); - $5 = $226; - $6 = $228; - $229 = $5; - $4 = $229; - $230 = $4; - $231 = HEAP32[$230>>2]|0; - HEAP32[$7>>2] = $231; - $232 = $6; - $2 = $232; - $233 = $2; - $234 = HEAP32[$233>>2]|0; - $235 = $5; - HEAP32[$235>>2] = $234; - $3 = $7; - $236 = $3; - $237 = HEAP32[$236>>2]|0; - $238 = $6; - HEAP32[$238>>2] = $237; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($21); - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEED2Ev($82); - $239 = ((($83)) + 328|0); - $240 = $239; - $241 = $240; - $242 = HEAP32[$241>>2]|0; - $243 = (($240) + 4)|0; - $244 = $243; - $245 = HEAP32[$244>>2]|0; - $246 = (_i64Add(($242|0),($245|0),1,0)|0); - $247 = tempRet0; - $248 = $239; - $249 = $248; - HEAP32[$249>>2] = $246; - $250 = (($248) + 4)|0; - $251 = $250; - HEAP32[$251>>2] = $247; - $252 = ((($83)) + 328|0); - $253 = ((($252)) + 8|0); - $254 = $253; - $255 = $254; - HEAP32[$255>>2] = 0; - $256 = (($254) + 4)|0; - $257 = $256; - HEAP32[$257>>2] = 0; - $258 = ((($83)) + 320|0); - $75 = $258; - $259 = $75; - $260 = HEAP32[$259>>2]|0; - $261 = HEAP32[$260>>2]|0; - $262 = HEAP32[$261>>2]|0; - $263 = $81; - (FUNCTION_TABLE_iii[$262 & 255]($260,$263)|0); - $264 = ((($83)) + 328|0); - $265 = ((($264)) + 8|0); - $266 = $265; - $267 = $266; - $268 = HEAP32[$267>>2]|0; - $269 = (($266) + 4)|0; - $270 = $269; - $271 = HEAP32[$270>>2]|0; - $272 = (_i64Add(($268|0),($271|0),1,0)|0); - $273 = tempRet0; - $274 = $265; - $275 = $274; - HEAP32[$275>>2] = $272; - $276 = (($274) + 4)|0; - $277 = $276; - HEAP32[$277>>2] = $273; - STACKTOP = sp;return; -} -function __ZN6laszip7factory18build_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENSt3__210shared_ptrINS_7formats20dynamic_decompressorEEERT_RKNS0_13record_schemaE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $5 = sp; - $15 = sp + 64|0; - $16 = sp + 8|0; - $17 = sp + 4|0; - $11 = $1; - $12 = $2; - $18 = $12; - $19 = (__ZNK6laszip7factory13record_schema6formatEv($18)|0); - $13 = $19; - $20 = $13; - $21 = ($20|0)==(-1); - if ($21) { - $22 = (___cxa_allocate_exception(8)|0); - __ZN6laszip19unknown_schema_typeC2Ev($22); - ___cxa_throw(($22|0),(256|0),(47|0)); - // unreachable; - } - $23 = $12; - $24 = (__ZNK6laszip7factory13record_schema10extrabytesEv($23)|0); - $14 = $24; - $25 = $14; - $26 = ($25|0)!=(0); - if ($26) { - $27 = $11; - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENS0_26dynamic_field_decompressorIT_E3ptrERSB_($15,$27); - $10 = $15; - $28 = $10; - $29 = HEAP32[$28>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7point10EEEvv($29); - $30 = $13; - $31 = ($30|0)==(1); - $32 = $13; - $33 = ($32|0)==(3); - $or$cond = $31 | $33; - if ($or$cond) { - $8 = $15; - $34 = $8; - $35 = HEAP32[$34>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7gpstimeEEEvv($35); - } - $36 = $13; - $37 = ($36|0)==(2); - $38 = $13; - $39 = ($38|0)==(3); - $or$cond3 = $37 | $39; - if ($or$cond3) { - $7 = $15; - $40 = $7; - $41 = HEAP32[$40>>2]|0; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las3rgbEEEvv($41); - } - $6 = $15; - $42 = $6; - $43 = HEAP32[$42>>2]|0; - $44 = $14; - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2Ej($16,$44); - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISE_EEEEEEvRKT_($43,$16); - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($16); - ;HEAP32[$17>>2]=0|0; - ;HEAP8[$5>>0]=HEAP8[$17>>0]|0;HEAP8[$5+1>>0]=HEAP8[$17+1>>0]|0;HEAP8[$5+2>>0]=HEAP8[$17+2>>0]|0;HEAP8[$5+3>>0]=HEAP8[$17+3>>0]|0; - $3 = $0; - $4 = $15; - $45 = $3; - $46 = $4; - $47 = HEAP32[$46>>2]|0; - HEAP32[$45>>2] = $47; - $48 = ((($45)) + 4|0); - $49 = $4; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - HEAP32[$48>>2] = $51; - $52 = $4; - HEAP32[$52>>2] = 0; - $53 = $4; - $54 = ((($53)) + 4|0); - HEAP32[$54>>2] = 0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEED2Ev($15); - STACKTOP = sp;return; - } - $55 = $13; - switch ($55|0) { - case 0: { - $56 = $11; - $57 = (__Znwj(4788)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEEC2Ev($57); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$56,$57); - STACKTOP = sp;return; - break; - } - case 1: { - $58 = $11; - $59 = (__Znwj(5116)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEEC2Ev($59); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$58,$59); - STACKTOP = sp;return; - break; - } - case 2: { - $60 = $11; - $61 = (__Znwj(5104)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($61); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$60,$61); - STACKTOP = sp;return; - break; - } - case 3: { - $62 = $11; - $63 = (__Znwj(5432)|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEEC2Ev($63); - __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$62,$63); - STACKTOP = sp;return; - break; - } - default: { - $9 = $0; - $64 = $9; - HEAP32[$64>>2] = 0; - $65 = ((($64)) + 4|0); - HEAP32[$65>>2] = 0; - STACKTOP = sp;return; - } - } -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEC2IS9_EEPT_NS_9enable_ifIXsr14is_convertibleISD_PS9_EE5valueENSA_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1908); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 248; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory13record_schema6formatEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $15 = $13; - $11 = $15; - $16 = $11; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = HEAP32[$16>>2]|0; - $20 = $18; - $21 = $19; - $22 = (($20) - ($21))|0; - $23 = (($22|0) / 12)&-1; - $14 = $23; - $24 = $14; - $25 = ($24|0)==(0); - if ($25) { - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $26 = (__ZNK6laszip7factory13record_schema10extrabytesEv($15)|0); - $27 = ($26|0)!=(0); - if ($27) { - $28 = $14; - $29 = (($28) + -1)|0; - $14 = $29; - } - $30 = $14; - $31 = ($30|0)==(0); - if (!($31)) { - $9 = $15; - $10 = 0; - $32 = $9; - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($33) + (($34*12)|0)|0); - $36 = (__ZN6laszip7factory11record_item5pointEv()|0); - $37 = (__ZNK6laszip7factory11record_itemneERKS1_($35,$36)|0); - if (!($37)) { - $38 = $14; - $39 = ($38|0)==(1); - if ($39) { - $12 = 0; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $40 = $14; - $41 = ($40|0)==(2); - if ($41) { - $7 = $15; - $8 = 1; - $42 = $7; - $43 = HEAP32[$42>>2]|0; - $44 = $8; - $45 = (($43) + (($44*12)|0)|0); - $46 = (__ZN6laszip7factory11record_item7gpstimeEv()|0); - $47 = (__ZNK6laszip7factory11record_itemeqERKS1_($45,$46)|0); - if ($47) { - $12 = 1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - $3 = $15; - $4 = 1; - $48 = $3; - $49 = HEAP32[$48>>2]|0; - $50 = $4; - $51 = (($49) + (($50*12)|0)|0); - $52 = (__ZN6laszip7factory11record_item3rgbEv()|0); - $53 = (__ZNK6laszip7factory11record_itemeqERKS1_($51,$52)|0); - if ($53) { - $12 = 2; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - $54 = $14; - $55 = ($54|0)==(3); - if ($55) { - $1 = $15; - $2 = 1; - $56 = $1; - $57 = HEAP32[$56>>2]|0; - $58 = $2; - $59 = (($57) + (($58*12)|0)|0); - $60 = (__ZN6laszip7factory11record_item7gpstimeEv()|0); - $61 = (__ZNK6laszip7factory11record_itemeqERKS1_($59,$60)|0); - if ($61) { - $5 = $15; - $6 = 2; - $62 = $5; - $63 = HEAP32[$62>>2]|0; - $64 = $6; - $65 = (($63) + (($64*12)|0)|0); - $66 = (__ZN6laszip7factory11record_item3rgbEv()|0); - $67 = (__ZNK6laszip7factory11record_itemeqERKS1_($65,$66)|0); - if ($67) { - $12 = 3; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - } - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); - } - } - $12 = -1; - $68 = $12; - STACKTOP = sp;return ($68|0); -} -function __ZN6laszip19unknown_schema_typeC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorC2EPKc($2,5848); - HEAP32[$2>>2] = (1936); - STACKTOP = sp;return; -} -function __ZN6laszip19unknown_schema_typeD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt13runtime_errorD2Ev($2); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory13record_schema10extrabytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $2 = sp; - $5 = sp + 124|0; - $8 = sp + 112|0; - $11 = sp + 100|0; - $16 = sp + 80|0; - $22 = sp + 56|0; - $28 = sp + 32|0; - $33 = sp + 8|0; - $32 = $0; - $34 = $32; - $30 = $34; - $35 = $30; - $36 = ((($35)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = HEAP32[$35>>2]|0; - $39 = $37; - $40 = $38; - $41 = (($39) - ($40))|0; - $42 = (($41|0) / 12)&-1; - $43 = ($42|0)!=(0); - if ($43) { - $10 = $34; - $44 = $10; - $9 = $44; - $45 = $9; - $46 = ((($45)) + 4|0); - $47 = HEAP32[$46>>2]|0; - $6 = $45; - $7 = $47; - $48 = $7; - $3 = $5; - $4 = $48; - $49 = $3; - $50 = $4; - HEAP32[$49>>2] = $50; - $51 = HEAP32[$5>>2]|0; - HEAP32[$8>>2] = $51; - $52 = HEAP32[$8>>2]|0; - HEAP32[$11>>2] = $52; - ;HEAP8[$2>>0]=HEAP8[$11>>0]|0;HEAP8[$2+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$2+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$2+3>>0]=HEAP8[$11+3>>0]|0; - $1 = $33; - $53 = $1; - ;HEAP32[$53>>2]=HEAP32[$2>>2]|0; - $54 = ((($53)) + 4|0); - ;HEAP32[$54>>2]=HEAP32[$2>>2]|0; - $17 = $33; - $55 = $17; - $15 = $55; - $56 = $15; - $57 = ((($56)) + 4|0); - ;HEAP32[$16>>2]=HEAP32[$57>>2]|0; - $14 = $16; - $58 = $14; - $59 = HEAP32[$58>>2]|0; - $60 = ((($59)) + -12|0); - HEAP32[$58>>2] = $60; - $13 = $58; - $61 = $13; - $62 = HEAP32[$61>>2]|0; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($64|0)==(0); - if ($65) { - $23 = $33; - $66 = $23; - $21 = $66; - $67 = $21; - $68 = ((($67)) + 4|0); - ;HEAP32[$22>>2]=HEAP32[$68>>2]|0; - $20 = $22; - $69 = $20; - $70 = HEAP32[$69>>2]|0; - $71 = ((($70)) + -12|0); - HEAP32[$69>>2] = $71; - $19 = $69; - $72 = $19; - $73 = HEAP32[$72>>2]|0; - $18 = $73; - $74 = $18; - $75 = ((($74)) + 8|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($76|0)==(2); - if ($77) { - $29 = $33; - $78 = $29; - $27 = $78; - $79 = $27; - $80 = ((($79)) + 4|0); - ;HEAP32[$28>>2]=HEAP32[$80>>2]|0; - $26 = $28; - $81 = $26; - $82 = HEAP32[$81>>2]|0; - $83 = ((($82)) + -12|0); - HEAP32[$81>>2] = $83; - $25 = $81; - $84 = $25; - $85 = HEAP32[$84>>2]|0; - $24 = $85; - $86 = $24; - $87 = ((($86)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $31 = $88; - $89 = $31; - STACKTOP = sp;return ($89|0); - } - } - } - $31 = 0; - $89 = $31; - STACKTOP = sp;return ($89|0); -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEENS0_26dynamic_field_decompressorIT_E3ptrERSB_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 8|0; - $3 = sp; - $2 = $1; - $4 = (__Znwj(24)|0); - $5 = $2; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEC2ERS9_($4,$5); - ;HEAP32[$3>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEEC2ISC_EEPT_NS_9enable_ifIXsr14is_convertibleISG_PSC_EE5valueENSD_5__natEE4typeE($0,$4,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7point10EEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(4792)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las7gpstimeEEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(336)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_3las3rgbEEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(324)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEEC2ERS9_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE9add_fieldINS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISE_EEEEEEvRKT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $$byval_copy = sp + 140|0; - $17 = sp; - $22 = sp + 145|0; - $33 = sp + 144|0; - $36 = sp + 8|0; - $37 = sp + 4|0; - $34 = $0; - $35 = $1; - $38 = $34; - $39 = ((($38)) + 8|0); - $40 = (__Znwj(64)|0); - $41 = ((($38)) + 4|0); - $42 = HEAP32[$41>>2]|0; - $43 = $35; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEEC2ERS9_RKSF_($40,$42,$43); - ;HEAP32[$37>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$37>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($36,$40,$$byval_copy); - $31 = $39; - $32 = $36; - $44 = $31; - $45 = ((($44)) + 4|0); - $46 = HEAP32[$45>>2]|0; - $30 = $44; - $47 = $30; - $48 = ((($47)) + 8|0); - $29 = $48; - $49 = $29; - $28 = $49; - $50 = $28; - $51 = HEAP32[$50>>2]|0; - $52 = ($46>>>0)<($51>>>0); - if ($52) { - $25 = $33; - $26 = $44; - $27 = 1; - $4 = $44; - $53 = $4; - $54 = ((($53)) + 8|0); - $3 = $54; - $55 = $3; - $2 = $55; - $56 = $2; - $57 = ((($44)) + 4|0); - $58 = HEAP32[$57>>2]|0; - $5 = $58; - $59 = $5; - $60 = $32; - $6 = $60; - $61 = $6; - $19 = $56; - $20 = $59; - $21 = $61; - $62 = $19; - $63 = $20; - $64 = $21; - $18 = $64; - $65 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $62; - $15 = $63; - $16 = $65; - $66 = $14; - $67 = $15; - $68 = $16; - $13 = $68; - $69 = $13; - $10 = $66; - $11 = $67; - $12 = $69; - $70 = $11; - $71 = $12; - $9 = $71; - $72 = $9; - $7 = $70; - $8 = $72; - $73 = $7; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - HEAP32[$73>>2] = $75; - $76 = ((($73)) + 4|0); - $77 = $8; - $78 = ((($77)) + 4|0); - $79 = HEAP32[$78>>2]|0; - HEAP32[$76>>2] = $79; - $80 = $8; - HEAP32[$80>>2] = 0; - $81 = $8; - $82 = ((($81)) + 4|0); - HEAP32[$82>>2] = 0; - $23 = $33; - $83 = ((($44)) + 4|0); - $84 = HEAP32[$83>>2]|0; - $85 = ((($84)) + 8|0); - HEAP32[$83>>2] = $85; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($36); - STACKTOP = sp;return; - } else { - $86 = $32; - $24 = $86; - $87 = $24; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($44,$87); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($36); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2Ej($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $4 = sp; - $2 = $0; - $3 = $1; - $5 = $2; - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($5)) + 4|0); - HEAP8[$7>>0] = 0; - $8 = ((($5)) + 8|0); - $9 = $3; - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($8,$9); - $10 = ((($5)) + 20|0); - $11 = $3; - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($10,$11); - $12 = ((($5)) + 32|0); - $13 = $3; - __ZN6laszip6models10arithmeticC2EjbPj($4,256,0,0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2EjRKS3_($12,$13,$4); - __ZN6laszip6models10arithmeticD2Ev($4); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($3); - $4 = ((($2)) + 20|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($4); - $5 = ((($2)) + 8|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($5); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEC2ERS9_PSH_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISP_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEC2ERS9_PSK_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEC2ERS9_PSK_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_3rgbENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEENSt3__210shared_ptrINS0_20dynamic_decompressorEEERT_PT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$byval_copy = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 12|0; - $5 = sp; - $3 = $1; - $4 = $2; - $6 = (__Znwj(12)|0); - $7 = $3; - $8 = $4; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEC2ERS9_PSN_($6,$7,$8); - ;HEAP32[$5>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$5>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEENSG_INSH_3rgbENSJ_ISP_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISV_PS3_EE5valueENS4_5__natEE4typeE($0,$6,$$byval_copy); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZNK6laszip7factory11record_itemneERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - $6 = (__ZNK6laszip7factory11record_itemeqERKS1_($4,$5)|0); - $7 = $6 ^ 1; - STACKTOP = sp;return ($7|0); -} -function __ZN6laszip7factory11record_item5pointEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21192]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21192)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21256,6,20,2); - } - } - return (21256|0); -} -function __ZNK6laszip7factory11record_itemeqERKS1_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = HEAP32[$4>>2]|0; - $6 = $3; - $7 = HEAP32[$6>>2]|0; - $8 = ($5|0)==($7|0); - if (!($8)) { - $21 = 0; - STACKTOP = sp;return ($21|0); - } - $9 = ((($4)) + 8|0); - $10 = HEAP32[$9>>2]|0; - $11 = $3; - $12 = ((($11)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($10|0)==($13|0); - if (!($14)) { - $21 = 0; - STACKTOP = sp;return ($21|0); - } - $15 = ((($4)) + 4|0); - $16 = HEAP32[$15>>2]|0; - $17 = $3; - $18 = ((($17)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $20 = ($16|0)==($19|0); - $21 = $20; - STACKTOP = sp;return ($21|0); -} -function __ZN6laszip7factory11record_item7gpstimeEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21200]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21200)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21268,7,8,2); - } - } - return (21268|0); -} -function __ZN6laszip7factory11record_item3rgbEv() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP8[21208]|0; - $1 = ($0<<24>>24)==(0); - if ($1) { - $2 = (___cxa_guard_acquire(21208)|0); - $3 = ($2|0)!=(0); - if ($3) { - __ZN6laszip7factory11record_itemC2Eiii(21280,8,6,2); - } - } - return (21280|0); -} -function __ZN6laszip19unknown_schema_typeD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip19unknown_schema_typeD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 12|0; - $14 = $0; - $15 = $1; - $16 = $14; - __ZN6laszip7formats20dynamic_decompressorC2Ev($16); - HEAP32[$16>>2] = (1956); - $17 = ((($16)) + 4|0); - $18 = $15; - HEAP32[$17>>2] = $18; - $19 = ((($16)) + 8|0); - $13 = $19; - $20 = $13; - $11 = $20; - $21 = $11; - $10 = $21; - HEAP32[$21>>2] = 0; - $22 = ((($21)) + 4|0); - HEAP32[$22>>2] = 0; - $23 = ((($21)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $23; - $9 = $12; - $24 = $8; - $25 = $9; - $7 = $25; - $26 = $7; - $3 = $24; - $4 = $26; - $27 = $3; - $28 = $4; - $2 = $28; - HEAP32[$27>>2] = 0; - $6 = $24; - $29 = $6; - $5 = $29; - $30 = ((($16)) + 20|0); - HEAP8[$30>>0] = 1; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEEC2ISC_EEPT_NS_9enable_ifIXsr14is_convertibleISG_PSC_EE5valueENSD_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (1996); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (1976); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp + 72|0; - $23 = sp + 60|0; - $27 = sp + 44|0; - $30 = sp + 32|0; - $35 = sp + 12|0; - $36 = sp + 8|0; - $37 = sp; - $32 = $0; - $33 = $1; - $38 = $32; - $39 = ((($38)) + 8|0); - $34 = $39; - $40 = $34; - $31 = $40; - $41 = $31; - $42 = HEAP32[$41>>2]|0; - $28 = $41; - $29 = $42; - $43 = $29; - $25 = $27; - $26 = $43; - $44 = $25; - $45 = $26; - HEAP32[$44>>2] = $45; - $46 = HEAP32[$27>>2]|0; - HEAP32[$30>>2] = $46; - $47 = HEAP32[$30>>2]|0; - HEAP32[$35>>2] = $47; - $48 = $34; - $24 = $48; - $49 = $24; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $21 = $49; - $22 = $51; - $52 = $22; - $18 = $20; - $19 = $52; - $53 = $18; - $54 = $19; - HEAP32[$53>>2] = $54; - $55 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $55; - $56 = HEAP32[$23>>2]|0; - HEAP32[$36>>2] = $56; - while(1) { - $16 = $35; - $17 = $36; - $57 = $16; - $58 = $17; - $14 = $57; - $15 = $58; - $59 = $14; - $13 = $59; - $60 = $13; - $61 = HEAP32[$60>>2]|0; - $62 = $15; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($61|0)==($64|0); - $66 = $65 ^ 1; - if (!($66)) { - break; - } - $10 = $35; - $67 = $10; - $68 = HEAP32[$67>>2]|0; - $8 = $37; - $9 = $68; - $69 = $8; - $70 = $9; - $71 = HEAP32[$70>>2]|0; - HEAP32[$69>>2] = $71; - $72 = ((($69)) + 4|0); - $73 = $9; - $74 = ((($73)) + 4|0); - $75 = HEAP32[$74>>2]|0; - HEAP32[$72>>2] = $75; - $76 = ((($69)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $78 = ($77|0)!=(0|0); - if ($78) { - $79 = ((($69)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $7 = $80; - $81 = $7; - $6 = $81; - $82 = $6; - $83 = ((($82)) + 4|0); - $3 = $83; - $84 = $3; - $4 = 1; - $85 = $4; - $86 = HEAP32[$84>>2]|0; - $87 = (($86) + ($85))|0; - HEAP32[$84>>2] = $87; - $88 = (($86) + ($85))|0; - $5 = $88; - } - $2 = $37; - $89 = $2; - $90 = HEAP32[$89>>2]|0; - $91 = HEAP32[$90>>2]|0; - $92 = ((($91)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = $33; - $95 = (FUNCTION_TABLE_iii[$93 & 255]($90,$94)|0); - $33 = $95; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($37); - $11 = $35; - $96 = $11; - $97 = HEAP32[$96>>2]|0; - $98 = ((($97)) + 8|0); - HEAP32[$96>>2] = $98; - } - $99 = ((($38)) + 20|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100&1; - if (!($101)) { - $105 = $33; - STACKTOP = sp;return ($105|0); - } - $102 = ((($38)) + 20|0); - HEAP8[$102>>0] = 0; - $103 = ((($38)) + 4|0); - $104 = HEAP32[$103>>2]|0; - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($104); - $105 = $33; - STACKTOP = sp;return ($105|0); -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (1956); - $3 = ((($2)) + 8|0); - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($3); - __ZN6laszip7formats20dynamic_decompressorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats20dynamic_decompressorD0Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -8|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - $54 = $16; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($54); - } - $55 = $28; - $56 = ((($37)) + 4|0); - HEAP32[$56>>2] = $55; - $14 = $32; - $57 = $14; - $58 = ((($57)) + 8|0); - $13 = $58; - $59 = $13; - $12 = $59; - $60 = $12; - $61 = HEAP32[$32>>2]|0; - $4 = $32; - $62 = $4; - $3 = $62; - $63 = $3; - $64 = ((($63)) + 8|0); - $2 = $64; - $65 = $2; - $1 = $65; - $66 = $1; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$62>>2]|0; - $69 = $67; - $70 = $68; - $71 = (($69) - ($70))|0; - $72 = (($71|0) / 8)&-1; - $9 = $60; - $10 = $61; - $11 = $72; - $73 = $9; - $74 = $10; - $75 = $11; - $6 = $73; - $7 = $74; - $8 = $75; - $76 = $7; - $5 = $76; - $77 = $5; - __ZdlPv($77); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 312; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2024); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2072); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $12 = sp + 8|0; - $17 = sp + 201|0; - $26 = sp; - $29 = sp + 200|0; - $37 = sp + 72|0; - $40 = sp + 60|0; - $48 = sp + 12|0; - $45 = $0; - $46 = $1; - $49 = $45; - $44 = $49; - $50 = $44; - $51 = ((($50)) + 8|0); - $43 = $51; - $52 = $43; - $42 = $52; - $53 = $42; - $47 = $53; - $41 = $49; - $54 = $41; - $55 = ((($54)) + 4|0); - $56 = HEAP32[$55>>2]|0; - $57 = HEAP32[$54>>2]|0; - $58 = $56; - $59 = $57; - $60 = (($58) - ($59))|0; - $61 = (($60|0) / 8)&-1; - $62 = (($61) + 1)|0; - $36 = $49; - HEAP32[$37>>2] = $62; - $63 = $36; - $64 = (__ZNKSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE8max_sizeEv($63)|0); - $38 = $64; - $65 = HEAP32[$37>>2]|0; - $66 = $38; - $67 = ($65>>>0)>($66>>>0); - if ($67) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($63); - // unreachable; - } - $34 = $63; - $68 = $34; - $33 = $68; - $69 = $33; - $32 = $69; - $70 = $32; - $71 = ((($70)) + 8|0); - $31 = $71; - $72 = $31; - $30 = $72; - $73 = $30; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 8)&-1; - $39 = $79; - $80 = $39; - $81 = $38; - $82 = (($81>>>0) / 2)&-1; - $83 = ($80>>>0)>=($82>>>0); - if ($83) { - $84 = $38; - $35 = $84; - } else { - $85 = $39; - $86 = $85<<1; - HEAP32[$40>>2] = $86; - $27 = $40; - $28 = $37; - $87 = $27; - $88 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $87; - $25 = $88; - $89 = $24; - $90 = $25; - $21 = $26; - $22 = $89; - $23 = $90; - $91 = $22; - $92 = HEAP32[$91>>2]|0; - $93 = $23; - $94 = HEAP32[$93>>2]|0; - $95 = ($92>>>0)<($94>>>0); - $96 = $25; - $97 = $24; - $98 = $95 ? $96 : $97; - $99 = HEAP32[$98>>2]|0; - $35 = $99; - } - $100 = $35; - $20 = $49; - $101 = $20; - $102 = ((($101)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = HEAP32[$101>>2]|0; - $105 = $103; - $106 = $104; - $107 = (($105) - ($106))|0; - $108 = (($107|0) / 8)&-1; - $109 = $47; - __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEEC2EjjS8_($48,$100,$108,$109); - $110 = $47; - $111 = ((($48)) + 8|0); - $112 = HEAP32[$111>>2]|0; - $19 = $112; - $113 = $19; - $114 = $46; - $18 = $114; - $115 = $18; - $14 = $110; - $15 = $113; - $16 = $115; - $116 = $14; - $117 = $15; - $118 = $16; - $13 = $118; - $119 = $13; - ;HEAP8[$12>>0]=HEAP8[$17>>0]|0; - $9 = $116; - $10 = $117; - $11 = $119; - $120 = $9; - $121 = $10; - $122 = $11; - $8 = $122; - $123 = $8; - $5 = $120; - $6 = $121; - $7 = $123; - $124 = $6; - $125 = $7; - $4 = $125; - $126 = $4; - $2 = $124; - $3 = $126; - $127 = $2; - $128 = $3; - $129 = HEAP32[$128>>2]|0; - HEAP32[$127>>2] = $129; - $130 = ((($127)) + 4|0); - $131 = $3; - $132 = ((($131)) + 4|0); - $133 = HEAP32[$132>>2]|0; - HEAP32[$130>>2] = $133; - $134 = $3; - HEAP32[$134>>2] = 0; - $135 = $3; - $136 = ((($135)) + 4|0); - HEAP32[$136>>2] = 0; - $137 = ((($48)) + 8|0); - $138 = HEAP32[$137>>2]|0; - $139 = ((($138)) + 8|0); - HEAP32[$137>>2] = $139; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($49,$48); - __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEED2Ev($48); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEEC2EjjS8_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(536870911); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<3; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<3)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<3)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE26__swap_out_circular_bufferERNS_14__split_bufferIS5_RS7_EE($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(416|0); - $17 = sp; - $22 = sp + 412|0; - $33 = sp + 292|0; - $39 = sp + 268|0; - $51 = sp + 220|0; - $104 = $0; - $105 = $1; - $106 = $104; - $103 = $106; - $107 = $103; - $102 = $107; - $108 = $102; - $109 = HEAP32[$108>>2]|0; - $101 = $109; - $110 = $101; - $80 = $107; - $111 = $80; - $112 = HEAP32[$111>>2]|0; - $79 = $112; - $113 = $79; - $85 = $107; - $114 = $85; - $84 = $114; - $115 = $84; - $83 = $115; - $116 = $83; - $117 = ((($116)) + 8|0); - $82 = $117; - $118 = $82; - $81 = $118; - $119 = $81; - $120 = HEAP32[$119>>2]|0; - $121 = HEAP32[$115>>2]|0; - $122 = $120; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 8)&-1; - $126 = (($113) + ($125<<3)|0); - $87 = $107; - $127 = $87; - $128 = HEAP32[$127>>2]|0; - $86 = $128; - $129 = $86; - $88 = $107; - $130 = $88; - $131 = ((($130)) + 4|0); - $132 = HEAP32[$131>>2]|0; - $133 = HEAP32[$130>>2]|0; - $134 = $132; - $135 = $133; - $136 = (($134) - ($135))|0; - $137 = (($136|0) / 8)&-1; - $138 = (($129) + ($137<<3)|0); - $90 = $107; - $139 = $90; - $140 = HEAP32[$139>>2]|0; - $89 = $140; - $141 = $89; - $95 = $107; - $142 = $95; - $94 = $142; - $143 = $94; - $93 = $143; - $144 = $93; - $145 = ((($144)) + 8|0); - $92 = $145; - $146 = $92; - $91 = $146; - $147 = $91; - $148 = HEAP32[$147>>2]|0; - $149 = HEAP32[$143>>2]|0; - $150 = $148; - $151 = $149; - $152 = (($150) - ($151))|0; - $153 = (($152|0) / 8)&-1; - $154 = (($141) + ($153<<3)|0); - $96 = $107; - $97 = $110; - $98 = $126; - $99 = $138; - $100 = $154; - $4 = $106; - $155 = $4; - $156 = ((($155)) + 8|0); - $3 = $156; - $157 = $3; - $2 = $157; - $158 = $2; - $159 = HEAP32[$106>>2]|0; - $160 = ((($106)) + 4|0); - $161 = HEAP32[$160>>2]|0; - $162 = $105; - $163 = ((($162)) + 4|0); - $24 = $158; - $25 = $159; - $26 = $161; - $27 = $163; - while(1) { - $164 = $26; - $165 = $25; - $166 = ($164|0)!=($165|0); - if (!($166)) { - break; - } - $167 = $24; - $168 = $27; - $169 = HEAP32[$168>>2]|0; - $170 = ((($169)) + -8|0); - $23 = $170; - $171 = $23; - $172 = $26; - $173 = ((($172)) + -8|0); - $26 = $173; - $6 = $173; - $174 = $6; - $5 = $174; - $175 = $5; - $19 = $167; - $20 = $171; - $21 = $175; - $176 = $19; - $177 = $20; - $178 = $21; - $18 = $178; - $179 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $176; - $15 = $177; - $16 = $179; - $180 = $14; - $181 = $15; - $182 = $16; - $13 = $182; - $183 = $13; - $10 = $180; - $11 = $181; - $12 = $183; - $184 = $11; - $185 = $12; - $9 = $185; - $186 = $9; - $7 = $184; - $8 = $186; - $187 = $7; - $188 = $8; - $189 = HEAP32[$188>>2]|0; - HEAP32[$187>>2] = $189; - $190 = ((($187)) + 4|0); - $191 = $8; - $192 = ((($191)) + 4|0); - $193 = HEAP32[$192>>2]|0; - HEAP32[$190>>2] = $193; - $194 = $8; - HEAP32[$194>>2] = 0; - $195 = $8; - $196 = ((($195)) + 4|0); - HEAP32[$196>>2] = 0; - $197 = $27; - $198 = HEAP32[$197>>2]|0; - $199 = ((($198)) + -8|0); - HEAP32[$197>>2] = $199; - } - $200 = $105; - $201 = ((($200)) + 4|0); - $31 = $106; - $32 = $201; - $202 = $31; - $30 = $202; - $203 = $30; - $204 = HEAP32[$203>>2]|0; - HEAP32[$33>>2] = $204; - $205 = $32; - $28 = $205; - $206 = $28; - $207 = HEAP32[$206>>2]|0; - $208 = $31; - HEAP32[$208>>2] = $207; - $29 = $33; - $209 = $29; - $210 = HEAP32[$209>>2]|0; - $211 = $32; - HEAP32[$211>>2] = $210; - $212 = ((($106)) + 4|0); - $213 = $105; - $214 = ((($213)) + 8|0); - $37 = $212; - $38 = $214; - $215 = $37; - $36 = $215; - $216 = $36; - $217 = HEAP32[$216>>2]|0; - HEAP32[$39>>2] = $217; - $218 = $38; - $34 = $218; - $219 = $34; - $220 = HEAP32[$219>>2]|0; - $221 = $37; - HEAP32[$221>>2] = $220; - $35 = $39; - $222 = $35; - $223 = HEAP32[$222>>2]|0; - $224 = $38; - HEAP32[$224>>2] = $223; - $42 = $106; - $225 = $42; - $226 = ((($225)) + 8|0); - $41 = $226; - $227 = $41; - $40 = $227; - $228 = $40; - $229 = $105; - $45 = $229; - $230 = $45; - $231 = ((($230)) + 12|0); - $44 = $231; - $232 = $44; - $43 = $232; - $233 = $43; - $49 = $228; - $50 = $233; - $234 = $49; - $48 = $234; - $235 = $48; - $236 = HEAP32[$235>>2]|0; - HEAP32[$51>>2] = $236; - $237 = $50; - $46 = $237; - $238 = $46; - $239 = HEAP32[$238>>2]|0; - $240 = $49; - HEAP32[$240>>2] = $239; - $47 = $51; - $241 = $47; - $242 = HEAP32[$241>>2]|0; - $243 = $50; - HEAP32[$243>>2] = $242; - $244 = $105; - $245 = ((($244)) + 4|0); - $246 = HEAP32[$245>>2]|0; - $247 = $105; - HEAP32[$247>>2] = $246; - $52 = $106; - $248 = $52; - $249 = ((($248)) + 4|0); - $250 = HEAP32[$249>>2]|0; - $251 = HEAP32[$248>>2]|0; - $252 = $250; - $253 = $251; - $254 = (($252) - ($253))|0; - $255 = (($254|0) / 8)&-1; - $76 = $106; - $77 = $255; - $256 = $76; - $75 = $256; - $257 = $75; - $258 = HEAP32[$257>>2]|0; - $74 = $258; - $259 = $74; - $54 = $256; - $260 = $54; - $261 = HEAP32[$260>>2]|0; - $53 = $261; - $262 = $53; - $59 = $256; - $263 = $59; - $58 = $263; - $264 = $58; - $57 = $264; - $265 = $57; - $266 = ((($265)) + 8|0); - $56 = $266; - $267 = $56; - $55 = $267; - $268 = $55; - $269 = HEAP32[$268>>2]|0; - $270 = HEAP32[$264>>2]|0; - $271 = $269; - $272 = $270; - $273 = (($271) - ($272))|0; - $274 = (($273|0) / 8)&-1; - $275 = (($262) + ($274<<3)|0); - $61 = $256; - $276 = $61; - $277 = HEAP32[$276>>2]|0; - $60 = $277; - $278 = $60; - $66 = $256; - $279 = $66; - $65 = $279; - $280 = $65; - $64 = $280; - $281 = $64; - $282 = ((($281)) + 8|0); - $63 = $282; - $283 = $63; - $62 = $283; - $284 = $62; - $285 = HEAP32[$284>>2]|0; - $286 = HEAP32[$280>>2]|0; - $287 = $285; - $288 = $286; - $289 = (($287) - ($288))|0; - $290 = (($289|0) / 8)&-1; - $291 = (($278) + ($290<<3)|0); - $68 = $256; - $292 = $68; - $293 = HEAP32[$292>>2]|0; - $67 = $293; - $294 = $67; - $295 = $77; - $296 = (($294) + ($295<<3)|0); - $69 = $256; - $70 = $259; - $71 = $275; - $72 = $291; - $73 = $296; - $78 = $106; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferINS_10shared_ptrIN6laszip7formats10base_fieldEEERNS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -8|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - $60 = $16; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($60); - } - $61 = HEAP32[$35>>2]|0; - $62 = ($61|0)!=(0|0); - if (!($62)) { - STACKTOP = sp;return; - } - $14 = $35; - $63 = $14; - $64 = ((($63)) + 12|0); - $13 = $64; - $65 = $13; - $66 = ((($65)) + 4|0); - $12 = $66; - $67 = $12; - $68 = HEAP32[$67>>2]|0; - $69 = HEAP32[$35>>2]|0; - $11 = $35; - $70 = $11; - $10 = $70; - $71 = $10; - $72 = ((($71)) + 12|0); - $9 = $72; - $73 = $9; - $8 = $73; - $74 = $8; - $75 = HEAP32[$74>>2]|0; - $76 = HEAP32[$70>>2]|0; - $77 = $75; - $78 = $76; - $79 = (($77) - ($78))|0; - $80 = (($79|0) / 8)&-1; - $5 = $68; - $6 = $69; - $7 = $80; - $81 = $5; - $82 = $6; - $83 = $7; - $2 = $81; - $3 = $82; - $4 = $83; - $84 = $3; - $1 = $84; - $85 = $1; - __ZdlPv($85); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = 536870911; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZN6laszip7formats10base_fieldC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2048); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($2); - $3 = ((($2)) + 3980|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($3); - $4 = ((($2)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($4); - $5 = ((($2)) + 4780|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 4781|0); - HEAP8[$6>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2024); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_field11compressRawEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats10base_fieldD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_fieldD0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats10base_fieldD2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats10base_field13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $3; - STACKTOP = sp;return ($4|0); -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $30 = sp + 124|0; - $31 = sp + 4|0; - $29 = $0; - $33 = $29; - __ZN6laszip7formats3las7point10C2Ev($33); - $34 = ((($33)) + 52|0); - __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($34); - $35 = ((($33)) + 436|0); - __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($35); - $36 = ((($33)) + 852|0); - __ZN6laszip6models10arithmeticC2EjbPj($36,64,0,0); - $37 = ((($33)) + 3976|0); - HEAP8[$37>>0] = 0; - $38 = ((($33)) + 20|0); - HEAP16[$30>>1] = 0; - $27 = $38; - $28 = $30; - $39 = $27; - $40 = $28; - $24 = $39; - $25 = 16; - $26 = $40; - $41 = $24; - $42 = $25; - $23 = $42; - $43 = $23; - $44 = $26; - $20 = $41; - $21 = $43; - $22 = $44; - while(1) { - $45 = $21; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - $47 = $22; - $48 = HEAP16[$47>>1]|0; - $49 = $20; - HEAP16[$49>>1] = $48; - $50 = $20; - $51 = ((($50)) + 2|0); - $20 = $51; - $52 = $21; - $53 = (($52) + -1)|0; - $21 = $53; - } - $54 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($54,256,0,0); - $55 = ((($33)) + 896|0); - $18 = $55; - $19 = 0; - $56 = $18; - $57 = $19; - $58 = (($56) + ($57<<2)|0); - HEAP32[$58>>2] = $54; - $59 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($59,256,0,0); - $60 = ((($33)) + 896|0); - $14 = $60; - $15 = 1; - $61 = $14; - $62 = $15; - $63 = (($61) + ($62<<2)|0); - HEAP32[$63>>2] = $59; - $64 = ((($33)) + 820|0); - HEAP32[$31>>2] = 0; - $10 = $64; - $11 = $31; - $65 = $10; - $66 = $11; - $7 = $65; - $8 = 8; - $9 = $66; - $67 = $7; - $68 = $8; - $6 = $68; - $69 = $6; - $70 = $9; - $3 = $67; - $4 = $69; - $5 = $70; - while(1) { - $71 = $4; - $72 = ($71>>>0)>(0); - if (!($72)) { - break; - } - $73 = $5; - $74 = HEAP32[$73>>2]|0; - $75 = $3; - HEAP32[$75>>2] = $74; - $76 = $3; - $77 = ((($76)) + 4|0); - $3 = $77; - $78 = $4; - $79 = (($78) + -1)|0; - $4 = $79; - } - $32 = 0; - while(1) { - $80 = $32; - $81 = ($80|0)<(256); - if (!($81)) { - break; - } - $82 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($82,256,0,0); - $83 = ((($33)) + 904|0); - $84 = $32; - $1 = $83; - $2 = $84; - $85 = $1; - $86 = $2; - $87 = (($85) + ($86<<2)|0); - HEAP32[$87>>2] = $82; - $88 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($88,256,0,0); - $89 = ((($33)) + 1928|0); - $90 = $32; - $12 = $89; - $13 = $90; - $91 = $12; - $92 = $13; - $93 = (($91) + ($92<<2)|0); - HEAP32[$93>>2] = $88; - $94 = (__Znwj(44)|0); - __ZN6laszip6models10arithmeticC2EjbPj($94,256,0,0); - $95 = ((($33)) + 2952|0); - $96 = $32; - $16 = $95; - $17 = $96; - $97 = $16; - $98 = $17; - $99 = (($97) + ($98<<2)|0); - HEAP32[$99>>2] = $94; - $100 = $32; - $101 = (($100) + 1)|0; - $32 = $101; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,4,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip11compressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - __ZN6laszip11compressors7integerC2Ejjjj($4,32,2,8,0); - $5 = ((($2)) + 240|0); - __ZN6laszip11compressors7integerC2Ejjjj($5,32,22,8,0); - $6 = ((($2)) + 320|0); - __ZN6laszip11compressors7integerC2Ejjjj($6,32,20,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerC2Ejjjj($2,16,4,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integerC2Ejjjj($4,32,2,8,0); - $5 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integerC2Ejjjj($5,32,22,8,0); - $6 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integerC2Ejjjj($6,32,20,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZN6laszip11compressors7integerD2Ev($3); - $4 = ((($2)) + 240|0); - __ZN6laszip11compressors7integerD2Ev($4); - $5 = ((($2)) + 160|0); - __ZN6laszip11compressors7integerD2Ev($5); - $6 = ((($2)) + 80|0); - __ZN6laszip11compressors7integerD2Ev($6); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $11 = $0; - $13 = $11; - $14 = ((($13)) + 896|0); - $9 = $14; - $10 = 0; - $15 = $9; - $16 = $10; - $17 = (($15) + ($16<<2)|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)==(0|0); - if (!($19)) { - __ZN6laszip6models10arithmeticD2Ev($18); - __ZdlPv($18); - } - $20 = ((($13)) + 896|0); - $7 = $20; - $8 = 1; - $21 = $7; - $22 = $8; - $23 = (($21) + ($22<<2)|0); - $24 = HEAP32[$23>>2]|0; - $25 = ($24|0)==(0|0); - if (!($25)) { - __ZN6laszip6models10arithmeticD2Ev($24); - __ZdlPv($24); - } - $12 = 0; - while(1) { - $26 = $12; - $27 = ($26|0)<(256); - if (!($27)) { - break; - } - $28 = ((($13)) + 904|0); - $29 = $12; - $5 = $28; - $6 = $29; - $30 = $5; - $31 = $6; - $32 = (($30) + ($31<<2)|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)==(0|0); - if (!($34)) { - __ZN6laszip6models10arithmeticD2Ev($33); - __ZdlPv($33); - } - $35 = ((($13)) + 1928|0); - $36 = $12; - $3 = $35; - $4 = $36; - $37 = $3; - $38 = $4; - $39 = (($37) + ($38<<2)|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40|0)==(0|0); - if (!($41)) { - __ZN6laszip6models10arithmeticD2Ev($40); - __ZdlPv($40); - } - $42 = ((($13)) + 2952|0); - $43 = $12; - $1 = $42; - $2 = $43; - $44 = $1; - $45 = $2; - $46 = (($44) + ($45<<2)|0); - $47 = HEAP32[$46>>2]|0; - $48 = ($47|0)==(0|0); - if (!($48)) { - __ZN6laszip6models10arithmeticD2Ev($47); - __ZdlPv($47); - } - $49 = $12; - $50 = (($49) + 1)|0; - $12 = $50; - } - $51 = ((($13)) + 852|0); - __ZN6laszip6models10arithmeticD2Ev($51); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7point10C2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0]=0&255;HEAP8[$2+1>>0]=(0>>8)&255;HEAP8[$2+2>>0]=(0>>16)&255;HEAP8[$2+3>>0]=0>>24; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=(0>>8)&255;HEAP8[$3+2>>0]=(0>>16)&255;HEAP8[$3+3>>0]=0>>24; - $4 = ((($2)) + 12|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=0>>8; - $5 = ((($2)) + 14|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6 & -8; - HEAP8[$5>>0] = $7; - $8 = ((($2)) + 14|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9 & -57; - HEAP8[$8>>0] = $10; - $11 = ((($2)) + 14|0); - $12 = HEAP8[$11>>0]|0; - $13 = $12 & -65; - HEAP8[$11>>0] = $13; - $14 = ((($2)) + 14|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 & 127; - HEAP8[$14>>0] = $16; - $17 = ((($2)) + 15|0); - HEAP8[$17>>0] = 0; - $18 = ((($2)) + 16|0); - HEAP8[$18>>0] = 0; - $19 = ((($2)) + 17|0); - HEAP8[$19>>0] = 0; - $20 = ((($2)) + 18|0); - HEAP8[$20>>0]=0&255;HEAP8[$20+1>>0]=0>>8; - STACKTOP = sp;return; -} -function __ZNSt3__25arrayIN6laszip5utils16streaming_medianIiEELj16EEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 384|0); - $4 = $2; - while(1) { - __ZN6laszip5utils16streaming_medianIiEC2Ev($4); - $5 = ((($4)) + 24|0); - $6 = ($5|0)==($3|0); - if ($6) { - break; - } else { - $4 = $5; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip5utils16streaming_medianIiEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip5utils16streaming_medianIiE4initEv($2); - STACKTOP = sp;return; -} -function __ZN6laszip5utils16streaming_medianIiE4initEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $11 = sp; - $10 = $0; - $12 = $10; - HEAP32[$11>>2] = 0; - $8 = $12; - $9 = $11; - $13 = $8; - $14 = $9; - $5 = $13; - $6 = 5; - $7 = $14; - $15 = $5; - $16 = $6; - $4 = $16; - $17 = $4; - $18 = $7; - $1 = $15; - $2 = $17; - $3 = $18; - while(1) { - $19 = $2; - $20 = ($19>>>0)>(0); - if (!($20)) { - break; - } - $21 = $3; - $22 = HEAP32[$21>>2]|0; - $23 = $1; - HEAP32[$23>>2] = $22; - $24 = $1; - $25 = ((($24)) + 4|0); - $1 = $25; - $26 = $2; - $27 = (($26) + -1)|0; - $2 = $27; - } - $28 = ((($12)) + 20|0); - HEAP8[$28>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip11compressors7integerC2Ejjjj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; - var $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $15 = sp + 72|0; - $27 = sp + 24|0; - $29 = $0; - $30 = $1; - $31 = $2; - $32 = $3; - $33 = $4; - $34 = $29; - $35 = ((($34)) + 4|0); - $36 = $30; - HEAP32[$35>>2] = $36; - $37 = ((($34)) + 8|0); - $38 = $31; - HEAP32[$37>>2] = $38; - $39 = ((($34)) + 12|0); - $40 = $32; - HEAP32[$39>>2] = $40; - $41 = ((($34)) + 16|0); - $42 = $33; - HEAP32[$41>>2] = $42; - $43 = ((($34)) + 36|0); - $28 = $43; - $44 = $28; - $26 = $44; - $45 = $26; - $25 = $45; - HEAP32[$45>>2] = 0; - $46 = ((($45)) + 4|0); - HEAP32[$46>>2] = 0; - $47 = ((($45)) + 8|0); - HEAP32[$27>>2] = 0; - $23 = $47; - $24 = $27; - $48 = $23; - $49 = $24; - $22 = $49; - $50 = $22; - $18 = $48; - $19 = $50; - $51 = $18; - $52 = $19; - $17 = $52; - HEAP32[$51>>2] = 0; - $21 = $48; - $53 = $21; - $20 = $53; - $54 = ((($34)) + 48|0); - __ZN6laszip6models14arithmetic_bitC2Ev($54); - $55 = ((($34)) + 68|0); - $16 = $55; - $56 = $16; - $14 = $56; - $57 = $14; - $13 = $57; - HEAP32[$57>>2] = 0; - $58 = ((($57)) + 4|0); - HEAP32[$58>>2] = 0; - $59 = ((($57)) + 8|0); - HEAP32[$15>>2] = 0; - $11 = $59; - $12 = $15; - $60 = $11; - $61 = $12; - $10 = $61; - $62 = $10; - $6 = $60; - $7 = $62; - $63 = $6; - $64 = $7; - $5 = $64; - HEAP32[$63>>2] = 0; - $9 = $60; - $65 = $9; - $8 = $65; - $66 = $33; - $67 = ($66|0)!=(0); - if (!($67)) { - $100 = $30; - $101 = ($100|0)!=(0); - $102 = $30; - $103 = ($102>>>0)<(32); - $or$cond = $101 & $103; - if ($or$cond) { - $104 = $30; - $105 = ((($34)) + 20|0); - HEAP32[$105>>2] = $104; - $106 = $30; - $107 = 1 << $106; - $108 = ((($34)) + 24|0); - HEAP32[$108>>2] = $107; - $109 = ((($34)) + 24|0); - $110 = HEAP32[$109>>2]|0; - $111 = (($110>>>0) / 2)&-1; - $112 = (0 - ($111))|0; - $113 = ((($34)) + 28|0); - HEAP32[$113>>2] = $112; - $114 = ((($34)) + 28|0); - $115 = HEAP32[$114>>2]|0; - $116 = ((($34)) + 24|0); - $117 = HEAP32[$116>>2]|0; - $118 = (($115) + ($117))|0; - $119 = (($118) - 1)|0; - $120 = ((($34)) + 32|0); - HEAP32[$120>>2] = $119; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } else { - $121 = ((($34)) + 20|0); - HEAP32[$121>>2] = 32; - $122 = ((($34)) + 24|0); - HEAP32[$122>>2] = 0; - $123 = ((($34)) + 28|0); - HEAP32[$123>>2] = -2147483648; - $124 = ((($34)) + 32|0); - HEAP32[$124>>2] = 2147483647; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; - } - } - $68 = ((($34)) + 20|0); - HEAP32[$68>>2] = 0; - $69 = $33; - $70 = ((($34)) + 24|0); - HEAP32[$70>>2] = $69; - while(1) { - $71 = $33; - $72 = ($71|0)!=(0); - if (!($72)) { - break; - } - $73 = $33; - $74 = $73 >>> 1; - $33 = $74; - $75 = ((($34)) + 20|0); - $76 = HEAP32[$75>>2]|0; - $77 = (($76) + 1)|0; - HEAP32[$75>>2] = $77; - } - $78 = ((($34)) + 24|0); - $79 = HEAP32[$78>>2]|0; - $80 = ((($34)) + 20|0); - $81 = HEAP32[$80>>2]|0; - $82 = (($81) - 1)|0; - $83 = 1 << $82; - $84 = ($79|0)==($83|0); - if ($84) { - $85 = ((($34)) + 20|0); - $86 = HEAP32[$85>>2]|0; - $87 = (($86) + -1)|0; - HEAP32[$85>>2] = $87; - } - $88 = ((($34)) + 24|0); - $89 = HEAP32[$88>>2]|0; - $90 = (($89>>>0) / 2)&-1; - $91 = (0 - ($90))|0; - $92 = ((($34)) + 28|0); - HEAP32[$92>>2] = $91; - $93 = ((($34)) + 28|0); - $94 = HEAP32[$93>>2]|0; - $95 = ((($34)) + 24|0); - $96 = HEAP32[$95>>2]|0; - $97 = (($94) + ($96))|0; - $98 = (($97) - 1)|0; - $99 = ((($34)) + 32|0); - HEAP32[$99>>2] = $98; - HEAP32[$34>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip11compressors7integerD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0; - var $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0; - var $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0; - var $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 336|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(336|0); - $27 = sp + 8|0; - $30 = sp + 329|0; - $68 = sp; - $71 = sp + 328|0; - $83 = $0; - $84 = $83; - $85 = ((($84)) + 36|0); - $81 = $85; - $86 = $81; - $80 = $86; - $87 = $80; - $88 = ((($87)) + 4|0); - $89 = HEAP32[$88>>2]|0; - $90 = HEAP32[$87>>2]|0; - $91 = $89; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 44)&-1; - $82 = $94; - $79 = $86; - $95 = $79; - $96 = HEAP32[$95>>2]|0; - $76 = $95; - $77 = $96; - $97 = $76; - $98 = ((($97)) + 4|0); - $99 = HEAP32[$98>>2]|0; - $78 = $99; - while(1) { - $100 = $77; - $101 = $78; - $102 = ($100|0)!=($101|0); - if (!($102)) { - break; - } - $75 = $97; - $103 = $75; - $104 = ((($103)) + 8|0); - $74 = $104; - $105 = $74; - $73 = $105; - $106 = $73; - $107 = $78; - $108 = ((($107)) + -44|0); - $78 = $108; - $72 = $108; - $109 = $72; - $69 = $106; - $70 = $109; - $110 = $69; - $111 = $70; - ;HEAP8[$68>>0]=HEAP8[$71>>0]|0; - $66 = $110; - $67 = $111; - $112 = $66; - $113 = $67; - $64 = $112; - $65 = $113; - $114 = $65; - __ZN6laszip6models10arithmeticD2Ev($114); - } - $115 = $77; - $116 = ((($97)) + 4|0); - HEAP32[$116>>2] = $115; - $117 = $82; - $62 = $86; - $63 = $117; - $118 = $62; - $61 = $118; - $119 = $61; - $120 = HEAP32[$119>>2]|0; - $60 = $120; - $121 = $60; - $44 = $118; - $122 = $44; - $123 = HEAP32[$122>>2]|0; - $43 = $123; - $124 = $43; - $49 = $118; - $125 = $49; - $48 = $125; - $126 = $48; - $47 = $126; - $127 = $47; - $128 = ((($127)) + 8|0); - $46 = $128; - $129 = $46; - $45 = $129; - $130 = $45; - $131 = HEAP32[$130>>2]|0; - $132 = HEAP32[$126>>2]|0; - $133 = $131; - $134 = $132; - $135 = (($133) - ($134))|0; - $136 = (($135|0) / 44)&-1; - $137 = (($124) + (($136*44)|0)|0); - $51 = $118; - $138 = $51; - $139 = HEAP32[$138>>2]|0; - $50 = $139; - $140 = $50; - $141 = $63; - $142 = (($140) + (($141*44)|0)|0); - $53 = $118; - $143 = $53; - $144 = HEAP32[$143>>2]|0; - $52 = $144; - $145 = $52; - $54 = $118; - $146 = $54; - $147 = ((($146)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = HEAP32[$146>>2]|0; - $150 = $148; - $151 = $149; - $152 = (($150) - ($151))|0; - $153 = (($152|0) / 44)&-1; - $154 = (($145) + (($153*44)|0)|0); - $55 = $118; - $56 = $121; - $57 = $137; - $58 = $142; - $59 = $154; - $42 = $86; - $155 = ((($84)) + 68|0); - $40 = $155; - $156 = $40; - $39 = $156; - $157 = $39; - $158 = ((($157)) + 4|0); - $159 = HEAP32[$158>>2]|0; - $160 = HEAP32[$157>>2]|0; - $161 = $159; - $162 = $160; - $163 = (($161) - ($162))|0; - $164 = (($163|0) / 44)&-1; - $41 = $164; - $38 = $156; - $165 = $38; - $166 = HEAP32[$165>>2]|0; - $35 = $165; - $36 = $166; - $167 = $35; - $168 = ((($167)) + 4|0); - $169 = HEAP32[$168>>2]|0; - $37 = $169; - while(1) { - $170 = $36; - $171 = $37; - $172 = ($170|0)!=($171|0); - if (!($172)) { - break; - } - $34 = $167; - $173 = $34; - $174 = ((($173)) + 8|0); - $33 = $174; - $175 = $33; - $32 = $175; - $176 = $32; - $177 = $37; - $178 = ((($177)) + -44|0); - $37 = $178; - $31 = $178; - $179 = $31; - $28 = $176; - $29 = $179; - $180 = $28; - $181 = $29; - ;HEAP8[$27>>0]=HEAP8[$30>>0]|0; - $25 = $180; - $26 = $181; - $182 = $25; - $183 = $26; - $23 = $182; - $24 = $183; - $184 = $24; - __ZN6laszip6models10arithmeticD2Ev($184); - } - $185 = $36; - $186 = ((($167)) + 4|0); - HEAP32[$186>>2] = $185; - $187 = $41; - $21 = $156; - $22 = $187; - $188 = $21; - $20 = $188; - $189 = $20; - $190 = HEAP32[$189>>2]|0; - $19 = $190; - $191 = $19; - $3 = $188; - $192 = $3; - $193 = HEAP32[$192>>2]|0; - $2 = $193; - $194 = $2; - $8 = $188; - $195 = $8; - $7 = $195; - $196 = $7; - $6 = $196; - $197 = $6; - $198 = ((($197)) + 8|0); - $5 = $198; - $199 = $5; - $4 = $199; - $200 = $4; - $201 = HEAP32[$200>>2]|0; - $202 = HEAP32[$196>>2]|0; - $203 = $201; - $204 = $202; - $205 = (($203) - ($204))|0; - $206 = (($205|0) / 44)&-1; - $207 = (($194) + (($206*44)|0)|0); - $10 = $188; - $208 = $10; - $209 = HEAP32[$208>>2]|0; - $9 = $209; - $210 = $9; - $211 = $22; - $212 = (($210) + (($211*44)|0)|0); - $12 = $188; - $213 = $12; - $214 = HEAP32[$213>>2]|0; - $11 = $214; - $215 = $11; - $13 = $188; - $216 = $13; - $217 = ((($216)) + 4|0); - $218 = HEAP32[$217>>2]|0; - $219 = HEAP32[$216>>2]|0; - $220 = $218; - $221 = $219; - $222 = (($220) - ($221))|0; - $223 = (($222|0) / 44)&-1; - $224 = (($215) + (($223*44)|0)|0); - $14 = $188; - $15 = $191; - $16 = $207; - $17 = $212; - $18 = $224; - $1 = $156; - $225 = ((($84)) + 68|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($225); - $226 = ((($84)) + 36|0); - __ZNSt3__26vectorIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($226); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($3); - $4 = ((($2)) + 3980|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($4); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integerD2Ev($3); - $4 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integerD2Ev($4); - $5 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integerD2Ev($5); - $6 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($6); - __ZN6laszip13decompressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, dest = 0, label = 0, sp = 0, src = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $33 = sp + 160|0; - $40 = sp + 8|0; - $30 = $0; - $31 = $1; - $32 = $2; - $44 = $30; - $45 = ((($44)) + 4781|0); - $46 = HEAP8[$45>>0]|0; - $47 = $46&1; - if (!($47)) { - $48 = ((($44)) + 4380|0); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($48); - $49 = ((($44)) + 4781|0); - HEAP8[$49>>0] = 1; - } - $50 = ((($44)) + 3976|0); - $51 = HEAP8[$50>>0]|0; - $52 = $51&1; - if (!($52)) { - $53 = ((($44)) + 3976|0); - HEAP8[$53>>0] = 1; - $54 = $31; - $55 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($54)|0); - $56 = $32; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($55,$56,20); - $57 = $32; - __ZN6laszip7formats7packersINS0_3las7point10EE6unpackEPKc($33,$57); - dest=$44; src=$33; stop=dest+20|0; do { HEAP8[dest>>0]=HEAP8[src>>0]|0; dest=dest+1|0; src=src+1|0; } while ((dest|0) < (stop|0)); - $58 = $32; - $59 = ((($58)) + 20|0); - $29 = $59; - $311 = $29; - STACKTOP = sp;return ($311|0); - } - $60 = $31; - $61 = ((($44)) + 852|0); - $62 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($60,$61)|0); - $41 = $62; - $63 = $41; - $64 = ($63|0)!=(0); - if ($64) { - $65 = $41; - $66 = $65 & 32; - $67 = ($66|0)!=(0); - if ($67) { - $68 = (__ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($44)|0); - $42 = $68; - $69 = $31; - $70 = ((($44)) + 904|0); - $71 = $42; - $72 = $71&255; - $27 = $70; - $28 = $72; - $73 = $27; - $74 = $28; - $75 = (($73) + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($69,$76)|0); - $78 = $77&255; - $42 = $78; - $79 = $42; - __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($79,$44); - } - $80 = ((($44)) + 14|0); - $81 = HEAP8[$80>>0]|0; - $82 = $81 & 7; - $83 = $82&255; - $34 = $83; - $84 = ((($44)) + 14|0); - $85 = HEAP8[$84>>0]|0; - $86 = ($85&255) >>> 3; - $87 = $86 & 7; - $88 = $87&255; - $35 = $88; - $89 = $35; - $90 = (6646 + ($89<<3)|0); - $91 = $34; - $92 = (($90) + ($91)|0); - $93 = HEAP8[$92>>0]|0; - $94 = $93&255; - $36 = $94; - $95 = $35; - $96 = (6710 + ($95<<3)|0); - $97 = $34; - $98 = (($96) + ($97)|0); - $99 = HEAP8[$98>>0]|0; - $100 = $99&255; - $37 = $100; - $101 = $41; - $102 = $101 & 16; - $103 = ($102|0)!=(0); - if ($103) { - $104 = ((($44)) + 4380|0); - $105 = $31; - $106 = ((($44)) + 20|0); - $107 = $36; - $25 = $106; - $26 = $107; - $108 = $25; - $109 = $26; - $110 = (($108) + ($109<<1)|0); - $111 = HEAP16[$110>>1]|0; - $112 = $111&65535; - $113 = $36; - $114 = ($113>>>0)<(3); - $115 = $36; - $116 = $114 ? $115 : 3; - $117 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($104,$105,$112,$116)|0); - $118 = $117&65535; - $119 = ((($44)) + 12|0); - HEAP16[$119>>1] = $118; - $120 = ((($44)) + 12|0); - $121 = HEAP16[$120>>1]|0; - $122 = ((($44)) + 20|0); - $123 = $36; - $21 = $122; - $22 = $123; - $124 = $21; - $125 = $22; - $126 = (($124) + ($125<<1)|0); - HEAP16[$126>>1] = $121; - } else { - $127 = ((($44)) + 20|0); - $128 = $36; - $17 = $127; - $18 = $128; - $129 = $17; - $130 = $18; - $131 = (($129) + ($130<<1)|0); - $132 = HEAP16[$131>>1]|0; - $133 = ((($44)) + 12|0); - HEAP16[$133>>1] = $132; - } - $134 = $41; - $135 = $134 & 8; - $136 = ($135|0)!=(0); - if ($136) { - $137 = $31; - $138 = ((($44)) + 1928|0); - $139 = ((($44)) + 15|0); - $140 = HEAP8[$139>>0]|0; - $141 = $140&255; - $15 = $138; - $16 = $141; - $142 = $15; - $143 = $16; - $144 = (($142) + ($143<<2)|0); - $145 = HEAP32[$144>>2]|0; - $146 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($137,$145)|0); - $147 = $146&255; - $148 = ((($44)) + 15|0); - HEAP8[$148>>0] = $147; - } - $149 = $41; - $150 = $149 & 4; - $151 = ($150|0)!=(0); - if ($151) { - $152 = $31; - $153 = ((($44)) + 896|0); - $154 = ((($44)) + 14|0); - $155 = HEAP8[$154>>0]|0; - $156 = ($155&255) >>> 6; - $157 = $156 & 1; - $158 = $157&255; - $13 = $153; - $14 = $158; - $159 = $13; - $160 = $14; - $161 = (($159) + ($160<<2)|0); - $162 = HEAP32[$161>>2]|0; - $163 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($152,$162)|0); - $43 = $163; - $164 = $43; - $165 = ((($44)) + 16|0); - $166 = HEAP8[$165>>0]|0; - $167 = $166 << 24 >> 24; - $168 = (($164) + ($167))|0; - $169 = (__Z7U8_FOLDi($168)|0); - $170 = ((($44)) + 16|0); - HEAP8[$170>>0] = $169; - } - $171 = $41; - $172 = $171 & 2; - $173 = ($172|0)!=(0); - if ($173) { - $174 = $31; - $175 = ((($44)) + 2952|0); - $176 = ((($44)) + 17|0); - $177 = HEAP8[$176>>0]|0; - $178 = $177&255; - $9 = $175; - $10 = $178; - $179 = $9; - $180 = $10; - $181 = (($179) + ($180<<2)|0); - $182 = HEAP32[$181>>2]|0; - $183 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($174,$182)|0); - $184 = $183&255; - $185 = ((($44)) + 17|0); - HEAP8[$185>>0] = $184; - } - $186 = $41; - $187 = $186 & 1; - $188 = ($187|0)!=(0); - if ($188) { - $189 = ((($44)) + 4380|0); - $190 = ((($189)) + 80|0); - $191 = $31; - $192 = ((($44)) + 18|0); - $193 = HEAP16[$192>>1]|0; - $194 = $193&65535; - $195 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($190,$191,$194,0)|0); - $196 = $195&65535; - $197 = ((($44)) + 18|0); - HEAP16[$197>>1] = $196; - } - } else { - $198 = ((($44)) + 14|0); - $199 = HEAP8[$198>>0]|0; - $200 = $199 & 7; - $201 = $200&255; - $34 = $201; - $202 = ((($44)) + 14|0); - $203 = HEAP8[$202>>0]|0; - $204 = ($203&255) >>> 3; - $205 = $204 & 7; - $206 = $205&255; - $35 = $206; - $207 = $35; - $208 = (6646 + ($207<<3)|0); - $209 = $34; - $210 = (($208) + ($209)|0); - $211 = HEAP8[$210>>0]|0; - $212 = $211&255; - $36 = $212; - $213 = $35; - $214 = (6710 + ($213<<3)|0); - $215 = $34; - $216 = (($214) + ($215)|0); - $217 = HEAP8[$216>>0]|0; - $218 = $217&255; - $37 = $218; - } - $219 = ((($44)) + 52|0); - $220 = $36; - $7 = $219; - $8 = $220; - $221 = $7; - $222 = $8; - $223 = (($221) + (($222*24)|0)|0); - $224 = (__ZNK6laszip5utils16streaming_medianIiE3getEv($223)|0); - $39 = $224; - $225 = ((($44)) + 4380|0); - $226 = ((($225)) + 160|0); - $227 = $31; - $228 = $39; - $229 = $35; - $230 = ($229|0)==(1); - $231 = $230&1; - $232 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($226,$227,$228,$231)|0); - HEAP32[$40>>2] = $232; - $233 = HEAP32[$40>>2]|0; - $234 = HEAP32[$44>>2]|0; - $235 = (($234) + ($233))|0; - HEAP32[$44>>2] = $235; - $236 = ((($44)) + 52|0); - $237 = $36; - $5 = $236; - $6 = $237; - $238 = $5; - $239 = $6; - $240 = (($238) + (($239*24)|0)|0); - __ZN6laszip5utils16streaming_medianIiE3addERKi($240,$40); - $241 = ((($44)) + 436|0); - $242 = $36; - $3 = $241; - $4 = $242; - $243 = $3; - $244 = $4; - $245 = (($243) + (($244*24)|0)|0); - $246 = (__ZNK6laszip5utils16streaming_medianIiE3getEv($245)|0); - $39 = $246; - $247 = ((($44)) + 4380|0); - $248 = ((($247)) + 160|0); - $249 = (__ZNK6laszip13decompressors7integer4getKEv($248)|0); - $38 = $249; - $250 = ((($44)) + 4380|0); - $251 = ((($250)) + 240|0); - $252 = $31; - $253 = $39; - $254 = $35; - $255 = ($254|0)==(1); - $256 = $255&1; - $257 = $38; - $258 = ($257>>>0)<(20); - $259 = $38; - $260 = $259 & -2; - $261 = $258 ? $260 : 20; - $262 = (($256) + ($261))|0; - $263 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($251,$252,$253,$262)|0); - HEAP32[$40>>2] = $263; - $264 = HEAP32[$40>>2]|0; - $265 = ((($44)) + 4|0); - $266 = HEAP32[$265>>2]|0; - $267 = (($266) + ($264))|0; - HEAP32[$265>>2] = $267; - $268 = ((($44)) + 436|0); - $269 = $36; - $11 = $268; - $12 = $269; - $270 = $11; - $271 = $12; - $272 = (($270) + (($271*24)|0)|0); - __ZN6laszip5utils16streaming_medianIiE3addERKi($272,$40); - $273 = ((($44)) + 4380|0); - $274 = ((($273)) + 160|0); - $275 = (__ZNK6laszip13decompressors7integer4getKEv($274)|0); - $276 = ((($44)) + 4380|0); - $277 = ((($276)) + 240|0); - $278 = (__ZNK6laszip13decompressors7integer4getKEv($277)|0); - $279 = (($275) + ($278))|0; - $280 = (($279>>>0) / 2)&-1; - $38 = $280; - $281 = ((($44)) + 4380|0); - $282 = ((($281)) + 320|0); - $283 = $31; - $284 = ((($44)) + 820|0); - $285 = $37; - $19 = $284; - $20 = $285; - $286 = $19; - $287 = $20; - $288 = (($286) + ($287<<2)|0); - $289 = HEAP32[$288>>2]|0; - $290 = $35; - $291 = ($290|0)==(1); - $292 = $291&1; - $293 = $38; - $294 = ($293>>>0)<(18); - $295 = $38; - $296 = $295 & -2; - $297 = $294 ? $296 : 18; - $298 = (($292) + ($297))|0; - $299 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($282,$283,$289,$298)|0); - $300 = ((($44)) + 8|0); - HEAP32[$300>>2] = $299; - $301 = ((($44)) + 8|0); - $302 = HEAP32[$301>>2]|0; - $303 = ((($44)) + 820|0); - $304 = $37; - $23 = $303; - $24 = $304; - $305 = $23; - $306 = $24; - $307 = (($305) + ($306<<2)|0); - HEAP32[$307>>2] = $302; - $308 = $32; - __ZN6laszip7formats7packersINS0_3las7point10EE4packERKS3_Pc($44,$308); - $309 = $32; - $310 = ((($309)) + 20|0); - $29 = $310; - $311 = $29; - STACKTOP = sp;return ($311|0); -} -function __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integer4initEv($2); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($3); - $4 = ((($2)) + 160|0); - __ZN6laszip13decompressors7integer4initEv($4); - $5 = ((($2)) + 240|0); - __ZN6laszip13decompressors7integer4initEv($5); - $6 = ((($2)) + 320|0); - __ZN6laszip13decompressors7integer4initEv($6); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $26 = sp; - $29 = sp + 124|0; - $32 = sp + 12|0; - $34 = sp + 4|0; - $30 = $0; - $31 = $1; - HEAP32[$32>>2] = $2; - $35 = $30; - $36 = ((($35)) + 8|0); - $37 = HEAP32[$36>>2]|0; - $38 = ((($35)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($37) - ($39))|0; - HEAP32[$34>>2] = $40; - $27 = $34; - $28 = $32; - $41 = $27; - $42 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $41; - $25 = $42; - $43 = $25; - $44 = $24; - $21 = $26; - $22 = $43; - $23 = $44; - $45 = $22; - $46 = HEAP32[$45>>2]|0; - $47 = $23; - $48 = HEAP32[$47>>2]|0; - $49 = ($46>>>0)<($48>>>0); - $50 = $25; - $51 = $24; - $52 = $49 ? $50 : $51; - $53 = HEAP32[$52>>2]|0; - $33 = $53; - $54 = ((($35)) + 12|0); - $55 = HEAP32[$54>>2]|0; - $56 = ((($35)) + 4|0); - $57 = HEAP32[$56>>2]|0; - $58 = (($55) + ($57)|0); - $59 = ((($35)) + 12|0); - $60 = HEAP32[$59>>2]|0; - $61 = ((($35)) + 4|0); - $62 = HEAP32[$61>>2]|0; - $63 = (($60) + ($62)|0); - $64 = $33; - $65 = (($63) + ($64)|0); - $66 = $31; - $9 = $58; - $10 = $65; - $11 = $66; - $67 = $9; - $8 = $67; - $68 = $8; - $69 = $10; - $3 = $69; - $70 = $3; - $71 = $11; - $4 = $71; - $72 = $4; - $5 = $68; - $6 = $70; - $7 = $72; - while(1) { - $73 = $5; - $74 = $6; - $75 = ($73|0)!=($74|0); - if (!($75)) { - break; - } - $76 = $5; - $77 = HEAP8[$76>>0]|0; - $78 = $7; - HEAP8[$78>>0] = $77; - $79 = $5; - $80 = ((($79)) + 1|0); - $5 = $80; - $81 = $7; - $82 = ((($81)) + 1|0); - $7 = $82; - } - $83 = $33; - $84 = ((($35)) + 4|0); - $85 = HEAP32[$84>>2]|0; - $86 = (($85) + ($83))|0; - HEAP32[$84>>2] = $86; - $87 = $33; - $88 = HEAP32[$32>>2]|0; - $89 = (($88) - ($87))|0; - HEAP32[$32>>2] = $89; - $90 = HEAP32[$32>>2]|0; - $91 = ($90|0)!=(0); - if (!($91)) { - STACKTOP = sp;return; - } - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE7fillit_Ev($35); - $92 = ((($35)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = ((($35)) + 4|0); - $95 = HEAP32[$94>>2]|0; - $96 = (($93) + ($95)|0); - $97 = ((($35)) + 12|0); - $98 = HEAP32[$97>>2]|0; - $99 = ((($35)) + 4|0); - $100 = HEAP32[$99>>2]|0; - $101 = (($98) + ($100)|0); - $102 = HEAP32[$32>>2]|0; - $103 = (($101) + ($102)|0); - $104 = $31; - $105 = $33; - $106 = (($104) + ($105)|0); - $18 = $96; - $19 = $103; - $20 = $106; - $107 = $18; - $17 = $107; - $108 = $17; - $109 = $19; - $12 = $109; - $110 = $12; - $111 = $20; - $13 = $111; - $112 = $13; - $14 = $108; - $15 = $110; - $16 = $112; - while(1) { - $113 = $14; - $114 = $15; - $115 = ($113|0)!=($114|0); - if (!($115)) { - break; - } - $116 = $14; - $117 = HEAP8[$116>>0]|0; - $118 = $16; - HEAP8[$118>>0] = $117; - $119 = $14; - $120 = ((($119)) + 1|0); - $14 = $120; - $121 = $16; - $122 = ((($121)) + 1|0); - $16 = $122; - } - $123 = HEAP32[$32>>2]|0; - $124 = ((($35)) + 4|0); - $125 = HEAP32[$124>>2]|0; - $126 = (($125) + ($123))|0; - HEAP32[$124>>2] = $126; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las7point10EE6unpackEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $1; - __ZN6laszip7formats3las7point10C2Ev($0); - $4 = $2; - $5 = (__ZN6laszip7formats7packersIiE6unpackEPKc($4)|0); - HEAP8[$0>>0]=$5&255;HEAP8[$0+1>>0]=($5>>8)&255;HEAP8[$0+2>>0]=($5>>16)&255;HEAP8[$0+3>>0]=$5>>24; - $6 = $2; - $7 = ((($6)) + 4|0); - $2 = $7; - $8 = $2; - $9 = (__ZN6laszip7formats7packersIiE6unpackEPKc($8)|0); - $10 = ((($0)) + 4|0); - HEAP8[$10>>0]=$9&255;HEAP8[$10+1>>0]=($9>>8)&255;HEAP8[$10+2>>0]=($9>>16)&255;HEAP8[$10+3>>0]=$9>>24; - $11 = $2; - $12 = ((($11)) + 4|0); - $2 = $12; - $13 = $2; - $14 = (__ZN6laszip7formats7packersIiE6unpackEPKc($13)|0); - $15 = ((($0)) + 8|0); - HEAP8[$15>>0]=$14&255;HEAP8[$15+1>>0]=($14>>8)&255;HEAP8[$15+2>>0]=($14>>16)&255;HEAP8[$15+3>>0]=$14>>24; - $16 = $2; - $17 = ((($16)) + 4|0); - $2 = $17; - $18 = $2; - $19 = (__ZN6laszip7formats7packersItE6unpackEPKc($18)|0); - $20 = ((($0)) + 12|0); - HEAP8[$20>>0]=$19&255;HEAP8[$20+1>>0]=$19>>8; - $21 = $2; - $22 = ((($21)) + 2|0); - $2 = $22; - $23 = $2; - $24 = (__ZN6laszip7formats7packersIhE6unpackEPKc($23)|0); - $3 = $24; - $25 = $2; - $26 = ((($25)) + 1|0); - $2 = $26; - $27 = $3; - __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($27,$0); - $28 = $2; - $29 = (__ZN6laszip7formats7packersIhE6unpackEPKc($28)|0); - $30 = ((($0)) + 15|0); - HEAP8[$30>>0] = $29; - $31 = $2; - $32 = ((($31)) + 1|0); - $2 = $32; - $33 = $2; - $34 = (__ZN6laszip7formats7packersIcE6unpackEPKc($33)|0); - $35 = ((($0)) + 16|0); - HEAP8[$35>>0] = $34; - $36 = $2; - $37 = ((($36)) + 1|0); - $2 = $37; - $38 = $2; - $39 = (__ZN6laszip7formats7packersIcE6unpackEPKc($38)|0); - $40 = ((($0)) + 17|0); - HEAP8[$40>>0] = $39; - $41 = $2; - $42 = ((($41)) + 1|0); - $2 = $42; - $43 = $2; - $44 = (__ZN6laszip7formats7packersItE6unpackEPKc($43)|0); - $45 = ((($0)) + 18|0); - HEAP8[$45>>0]=$44&255;HEAP8[$45+1>>0]=$44>>8; - STACKTOP = sp;return; -} -function __ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $6 = $1; - $7 = ((($6)) + 14|0); - $8 = HEAP8[$7>>0]|0; - $9 = $8 & 7; - $2 = $9; - $10 = $1; - $11 = ((($10)) + 14|0); - $12 = HEAP8[$11>>0]|0; - $13 = ($12&255) >>> 3; - $14 = $13 & 7; - $3 = $14; - $15 = $1; - $16 = ((($15)) + 14|0); - $17 = HEAP8[$16>>0]|0; - $18 = ($17&255) >>> 6; - $19 = $18 & 1; - $4 = $19; - $20 = $1; - $21 = ((($20)) + 14|0); - $22 = HEAP8[$21>>0]|0; - $23 = ($22&255) >>> 7; - $5 = $23; - $24 = $5; - $25 = $24&255; - $26 = $25 & 1; - $27 = $26 << 7; - $28 = $4; - $29 = $28&255; - $30 = $29 & 1; - $31 = $30 << 6; - $32 = $27 | $31; - $33 = $3; - $34 = $33&255; - $35 = $34 & 7; - $36 = $35 << 3; - $37 = $32 | $36; - $38 = $2; - $39 = $38&255; - $40 = $39 & 7; - $41 = $37 | $40; - $42 = $41&255; - STACKTOP = sp;return ($42|0); -} -function __ZN6laszip7formats6detail17char_to_bitfieldsEhRNS0_3las7point10E($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4&255; - $6 = $5 & 7; - $7 = $6&255; - $8 = $3; - $9 = ((($8)) + 14|0); - $10 = HEAP8[$9>>0]|0; - $11 = $7 & 7; - $12 = $10 & -8; - $13 = $12 | $11; - HEAP8[$9>>0] = $13; - $14 = $2; - $15 = $14&255; - $16 = $15 >> 3; - $17 = $16 & 7; - $18 = $17&255; - $19 = $3; - $20 = ((($19)) + 14|0); - $21 = HEAP8[$20>>0]|0; - $22 = $18 & 7; - $23 = ($22 << 3)&255; - $24 = $21 & -57; - $25 = $24 | $23; - HEAP8[$20>>0] = $25; - $26 = $2; - $27 = $26&255; - $28 = $27 >> 6; - $29 = $28 & 1; - $30 = $29&255; - $31 = $3; - $32 = ((($31)) + 14|0); - $33 = HEAP8[$32>>0]|0; - $34 = $30 & 1; - $35 = ($34 << 6)&255; - $36 = $33 & -65; - $37 = $36 | $35; - HEAP8[$32>>0] = $37; - $38 = $2; - $39 = $38&255; - $40 = $39 >> 7; - $41 = $40 & 1; - $42 = $41&255; - $43 = $3; - $44 = ((($43)) + 14|0); - $45 = HEAP8[$44>>0]|0; - $46 = $42 & 1; - $47 = ($46 << 7)&255; - $48 = $45 & 127; - $49 = $48 | $47; - HEAP8[$44>>0] = $49; - STACKTOP = sp;return; -} -function __Z7U8_FOLDi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2&255; - STACKTOP = sp;return ($3|0); -} -function __ZNK6laszip5utils16streaming_medianIiE3getEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $3; - $1 = $4; - $2 = 2; - $5 = $1; - $6 = $2; - $7 = (($5) + ($6<<2)|0); - $8 = HEAP32[$7>>2]|0; - STACKTOP = sp;return ($8|0); -} -function __ZN6laszip5utils16streaming_medianIiE3addERKi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; - var $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0; - var $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0; - var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0; - var $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0; - var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 352|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(352|0); - $86 = $0; - $87 = $1; - $88 = $86; - $89 = ((($88)) + 20|0); - $90 = HEAP8[$89>>0]|0; - $91 = $90&1; - if ($91) { - $92 = $87; - $93 = HEAP32[$92>>2]|0; - $84 = $88; - $85 = 2; - $94 = $84; - $95 = $85; - $96 = (($94) + ($95<<2)|0); - $97 = HEAP32[$96>>2]|0; - $98 = ($93|0)<($97|0); - if (!($98)) { - $163 = $87; - $164 = HEAP32[$163>>2]|0; - $32 = $88; - $33 = 3; - $165 = $32; - $166 = $33; - $167 = (($165) + ($166<<2)|0); - $168 = HEAP32[$167>>2]|0; - $169 = ($164|0)<($168|0); - if ($169) { - $34 = $88; - $35 = 3; - $170 = $34; - $171 = $35; - $172 = (($170) + ($171<<2)|0); - $173 = HEAP32[$172>>2]|0; - $36 = $88; - $37 = 4; - $174 = $36; - $175 = $37; - $176 = (($174) + ($175<<2)|0); - HEAP32[$176>>2] = $173; - $177 = $87; - $178 = HEAP32[$177>>2]|0; - $38 = $88; - $39 = 3; - $179 = $38; - $180 = $39; - $181 = (($179) + ($180<<2)|0); - HEAP32[$181>>2] = $178; - } else { - $182 = $87; - $183 = HEAP32[$182>>2]|0; - $40 = $88; - $41 = 4; - $184 = $40; - $185 = $41; - $186 = (($184) + ($185<<2)|0); - HEAP32[$186>>2] = $183; - } - $187 = ((($88)) + 20|0); - HEAP8[$187>>0] = 0; - STACKTOP = sp;return; - } - $2 = $88; - $3 = 3; - $99 = $2; - $100 = $3; - $101 = (($99) + ($100<<2)|0); - $102 = HEAP32[$101>>2]|0; - $4 = $88; - $5 = 4; - $103 = $4; - $104 = $5; - $105 = (($103) + ($104<<2)|0); - HEAP32[$105>>2] = $102; - $6 = $88; - $7 = 2; - $106 = $6; - $107 = $7; - $108 = (($106) + ($107<<2)|0); - $109 = HEAP32[$108>>2]|0; - $8 = $88; - $9 = 3; - $110 = $8; - $111 = $9; - $112 = (($110) + ($111<<2)|0); - HEAP32[$112>>2] = $109; - $113 = $87; - $114 = HEAP32[$113>>2]|0; - $10 = $88; - $11 = 0; - $115 = $10; - $116 = $11; - $117 = (($115) + ($116<<2)|0); - $118 = HEAP32[$117>>2]|0; - $119 = ($114|0)<($118|0); - if ($119) { - $12 = $88; - $13 = 1; - $120 = $12; - $121 = $13; - $122 = (($120) + ($121<<2)|0); - $123 = HEAP32[$122>>2]|0; - $14 = $88; - $15 = 2; - $124 = $14; - $125 = $15; - $126 = (($124) + ($125<<2)|0); - HEAP32[$126>>2] = $123; - $16 = $88; - $17 = 0; - $127 = $16; - $128 = $17; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $18 = $88; - $19 = 1; - $131 = $18; - $132 = $19; - $133 = (($131) + ($132<<2)|0); - HEAP32[$133>>2] = $130; - $134 = $87; - $135 = HEAP32[$134>>2]|0; - $20 = $88; - $21 = 0; - $136 = $20; - $137 = $21; - $138 = (($136) + ($137<<2)|0); - HEAP32[$138>>2] = $135; - STACKTOP = sp;return; - } - $139 = $87; - $140 = HEAP32[$139>>2]|0; - $22 = $88; - $23 = 1; - $141 = $22; - $142 = $23; - $143 = (($141) + ($142<<2)|0); - $144 = HEAP32[$143>>2]|0; - $145 = ($140|0)<($144|0); - if ($145) { - $24 = $88; - $25 = 1; - $146 = $24; - $147 = $25; - $148 = (($146) + ($147<<2)|0); - $149 = HEAP32[$148>>2]|0; - $26 = $88; - $27 = 2; - $150 = $26; - $151 = $27; - $152 = (($150) + ($151<<2)|0); - HEAP32[$152>>2] = $149; - $153 = $87; - $154 = HEAP32[$153>>2]|0; - $28 = $88; - $29 = 1; - $155 = $28; - $156 = $29; - $157 = (($155) + ($156<<2)|0); - HEAP32[$157>>2] = $154; - STACKTOP = sp;return; - } else { - $158 = $87; - $159 = HEAP32[$158>>2]|0; - $30 = $88; - $31 = 2; - $160 = $30; - $161 = $31; - $162 = (($160) + ($161<<2)|0); - HEAP32[$162>>2] = $159; - STACKTOP = sp;return; - } - } else { - $42 = $88; - $43 = 2; - $188 = $42; - $189 = $43; - $190 = (($188) + ($189<<2)|0); - $191 = HEAP32[$190>>2]|0; - $192 = $87; - $193 = HEAP32[$192>>2]|0; - $194 = ($191|0)<($193|0); - if (!($194)) { - $74 = $88; - $75 = 1; - $259 = $74; - $260 = $75; - $261 = (($259) + ($260<<2)|0); - $262 = HEAP32[$261>>2]|0; - $263 = $87; - $264 = HEAP32[$263>>2]|0; - $265 = ($262|0)<($264|0); - if ($265) { - $76 = $88; - $77 = 1; - $266 = $76; - $267 = $77; - $268 = (($266) + ($267<<2)|0); - $269 = HEAP32[$268>>2]|0; - $78 = $88; - $79 = 0; - $270 = $78; - $271 = $79; - $272 = (($270) + ($271<<2)|0); - HEAP32[$272>>2] = $269; - $273 = $87; - $274 = HEAP32[$273>>2]|0; - $80 = $88; - $81 = 1; - $275 = $80; - $276 = $81; - $277 = (($275) + ($276<<2)|0); - HEAP32[$277>>2] = $274; - } else { - $278 = $87; - $279 = HEAP32[$278>>2]|0; - $82 = $88; - $83 = 0; - $280 = $82; - $281 = $83; - $282 = (($280) + ($281<<2)|0); - HEAP32[$282>>2] = $279; - } - $283 = ((($88)) + 20|0); - HEAP8[$283>>0] = 1; - STACKTOP = sp;return; - } - $44 = $88; - $45 = 1; - $195 = $44; - $196 = $45; - $197 = (($195) + ($196<<2)|0); - $198 = HEAP32[$197>>2]|0; - $46 = $88; - $47 = 0; - $199 = $46; - $200 = $47; - $201 = (($199) + ($200<<2)|0); - HEAP32[$201>>2] = $198; - $48 = $88; - $49 = 2; - $202 = $48; - $203 = $49; - $204 = (($202) + ($203<<2)|0); - $205 = HEAP32[$204>>2]|0; - $50 = $88; - $51 = 1; - $206 = $50; - $207 = $51; - $208 = (($206) + ($207<<2)|0); - HEAP32[$208>>2] = $205; - $52 = $88; - $53 = 4; - $209 = $52; - $210 = $53; - $211 = (($209) + ($210<<2)|0); - $212 = HEAP32[$211>>2]|0; - $213 = $87; - $214 = HEAP32[$213>>2]|0; - $215 = ($212|0)<($214|0); - if ($215) { - $54 = $88; - $55 = 3; - $216 = $54; - $217 = $55; - $218 = (($216) + ($217<<2)|0); - $219 = HEAP32[$218>>2]|0; - $56 = $88; - $57 = 2; - $220 = $56; - $221 = $57; - $222 = (($220) + ($221<<2)|0); - HEAP32[$222>>2] = $219; - $58 = $88; - $59 = 4; - $223 = $58; - $224 = $59; - $225 = (($223) + ($224<<2)|0); - $226 = HEAP32[$225>>2]|0; - $60 = $88; - $61 = 3; - $227 = $60; - $228 = $61; - $229 = (($227) + ($228<<2)|0); - HEAP32[$229>>2] = $226; - $230 = $87; - $231 = HEAP32[$230>>2]|0; - $62 = $88; - $63 = 4; - $232 = $62; - $233 = $63; - $234 = (($232) + ($233<<2)|0); - HEAP32[$234>>2] = $231; - STACKTOP = sp;return; - } - $64 = $88; - $65 = 3; - $235 = $64; - $236 = $65; - $237 = (($235) + ($236<<2)|0); - $238 = HEAP32[$237>>2]|0; - $239 = $87; - $240 = HEAP32[$239>>2]|0; - $241 = ($238|0)<($240|0); - if ($241) { - $66 = $88; - $67 = 3; - $242 = $66; - $243 = $67; - $244 = (($242) + ($243<<2)|0); - $245 = HEAP32[$244>>2]|0; - $68 = $88; - $69 = 2; - $246 = $68; - $247 = $69; - $248 = (($246) + ($247<<2)|0); - HEAP32[$248>>2] = $245; - $249 = $87; - $250 = HEAP32[$249>>2]|0; - $70 = $88; - $71 = 3; - $251 = $70; - $252 = $71; - $253 = (($251) + ($252<<2)|0); - HEAP32[$253>>2] = $250; - STACKTOP = sp;return; - } else { - $254 = $87; - $255 = HEAP32[$254>>2]|0; - $72 = $88; - $73 = 2; - $256 = $72; - $257 = $73; - $258 = (($256) + ($257<<2)|0); - HEAP32[$258>>2] = $255; - STACKTOP = sp;return; - } - } -} -function __ZNK6laszip13decompressors7integer4getKEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersINS0_3las7point10EE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $5 = $2; - $6 = HEAPU8[$5>>0]|(HEAPU8[$5+1>>0]<<8)|(HEAPU8[$5+2>>0]<<16)|(HEAPU8[$5+3>>0]<<24); - $7 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($6,$7); - $8 = $3; - $9 = ((($8)) + 4|0); - $3 = $9; - $10 = $2; - $11 = ((($10)) + 4|0); - $12 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8)|(HEAPU8[$11+2>>0]<<16)|(HEAPU8[$11+3>>0]<<24); - $13 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($12,$13); - $14 = $3; - $15 = ((($14)) + 4|0); - $3 = $15; - $16 = $2; - $17 = ((($16)) + 8|0); - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = $3; - __ZN6laszip7formats7packersIiE4packEiPc($18,$19); - $20 = $3; - $21 = ((($20)) + 4|0); - $3 = $21; - $22 = $2; - $23 = ((($22)) + 12|0); - $24 = HEAPU8[$23>>0]|(HEAPU8[$23+1>>0]<<8); - $25 = $3; - __ZN6laszip7formats7packersItE4packEtPc($24,$25); - $26 = $3; - $27 = ((($26)) + 2|0); - $3 = $27; - $28 = $2; - $29 = (__ZN6laszip7formats6detail17bitfields_to_charERKNS0_3las7point10E($28)|0); - $4 = $29; - $30 = $4; - $31 = $3; - __ZN6laszip7formats7packersIhE4packEhPc($30,$31); - $32 = $3; - $33 = ((($32)) + 1|0); - $3 = $33; - $34 = $2; - $35 = ((($34)) + 15|0); - $36 = HEAP8[$35>>0]|0; - $37 = $3; - __ZN6laszip7formats7packersIhE4packEhPc($36,$37); - $38 = $3; - $39 = ((($38)) + 1|0); - $3 = $39; - $40 = $2; - $41 = ((($40)) + 16|0); - $42 = HEAP8[$41>>0]|0; - $43 = $3; - __ZN6laszip7formats7packersIcE4packEcPc($42,$43); - $44 = $3; - $45 = ((($44)) + 1|0); - $3 = $45; - $46 = $2; - $47 = ((($46)) + 17|0); - $48 = HEAP8[$47>>0]|0; - $49 = $3; - __ZN6laszip7formats7packersIcE4packEcPc($48,$49); - $50 = $3; - $51 = ((($50)) + 1|0); - $3 = $51; - $52 = $2; - $53 = ((($52)) + 18|0); - $54 = HEAPU8[$53>>0]|(HEAPU8[$53+1>>0]<<8); - $55 = $3; - __ZN6laszip7formats7packersItE4packEtPc($54,$55); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIiE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN6laszip7formats7packersIjE6unpackEPKc($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersItE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = HEAP8[$4>>0]|0; - $6 = $5 << 24 >> 24; - $2 = $6; - $7 = $1; - $8 = ((($7)) + 1|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9 << 24 >> 24; - $3 = $10; - $11 = $3; - $12 = $11&65535; - $13 = $12 & 255; - $14 = $13 << 8; - $15 = $2; - $16 = $15&65535; - $17 = $16 & 255; - $18 = $14 | $17; - $19 = $18&65535; - STACKTOP = sp;return ($19|0); -} -function __ZN6laszip7formats7packersIhE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersIcE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats7packersIjE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = $0; - $6 = $1; - $7 = HEAP8[$6>>0]|0; - $8 = $7 << 24 >> 24; - $2 = $8; - $9 = $1; - $10 = ((($9)) + 1|0); - $11 = HEAP8[$10>>0]|0; - $12 = $11 << 24 >> 24; - $3 = $12; - $13 = $1; - $14 = ((($13)) + 2|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 << 24 >> 24; - $4 = $16; - $17 = $1; - $18 = ((($17)) + 3|0); - $19 = HEAP8[$18>>0]|0; - $20 = $19 << 24 >> 24; - $5 = $20; - $21 = $5; - $22 = $21 << 24; - $23 = $4; - $24 = $23 & 255; - $25 = $24 << 16; - $26 = $22 | $25; - $27 = $3; - $28 = $27 & 255; - $29 = $28 << 8; - $30 = $26 | $29; - $31 = $2; - $32 = $31 & 255; - $33 = $30 | $32; - STACKTOP = sp;return ($33|0); -} -function __ZN6laszip7formats7packersIiE4packEiPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZN6laszip7formats7packersIjE4packEjPc($4,$5); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersItE4packEtPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4&65535; - $6 = $5 >> 8; - $7 = $6 & 255; - $8 = $7&255; - $9 = $3; - $10 = ((($9)) + 1|0); - HEAP8[$10>>0] = $8; - $11 = $2; - $12 = $11&65535; - $13 = $12 & 255; - $14 = $13&255; - $15 = $3; - HEAP8[$15>>0] = $14; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIhE4packEhPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIcE4packEcPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIjE4packEjPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4 >>> 24; - $6 = $5 & 255; - $7 = $6&255; - $8 = $3; - $9 = ((($8)) + 3|0); - HEAP8[$9>>0] = $7; - $10 = $2; - $11 = $10 >>> 16; - $12 = $11 & 255; - $13 = $12&255; - $14 = $3; - $15 = ((($14)) + 2|0); - HEAP8[$15>>0] = $13; - $16 = $2; - $17 = $16 >>> 8; - $18 = $17 & 255; - $19 = $18&255; - $20 = $3; - $21 = ((($20)) + 1|0); - HEAP8[$21>>0] = $19; - $22 = $2; - $23 = $22 & 255; - $24 = $23&255; - $25 = $3; - HEAP8[$25>>0] = $24; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 360; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2100); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2124); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($2); - $3 = ((($2)) + 164|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($3); - $4 = ((($2)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($4); - $5 = ((($2)) + 324|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 325|0); - HEAP8[$6>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2100); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $29 = sp + 120|0; - $30 = sp + 4|0; - $31 = sp; - $28 = $0; - $32 = $28; - HEAP8[$32>>0] = 0; - $33 = ((($32)) + 4|0); - __ZN6laszip6models10arithmeticC2EjbPj($33,516,0,0); - $34 = ((($32)) + 48|0); - __ZN6laszip6models10arithmeticC2EjbPj($34,6,0,0); - $35 = ((($32)) + 92|0); - HEAP32[$35>>2] = 0; - $36 = ((($32)) + 96|0); - HEAP32[$36>>2] = 0; - $37 = ((($32)) + 100|0); - __ZNSt3__25arrayIN6laszip7formats3las7gpstimeELj4EEC2Ev($37); - $38 = ((($32)) + 100|0); - __ZN6laszip7formats3las7gpstimeC2Ev($29); - $26 = $38; - $27 = $29; - $39 = $26; - $40 = $27; - $23 = $39; - $24 = 4; - $25 = $40; - $41 = $23; - $42 = $24; - $22 = $42; - $43 = $22; - $44 = $25; - $19 = $41; - $20 = $43; - $21 = $44; - while(1) { - $45 = $20; - $46 = ($45>>>0)>(0); - if (!($46)) { - break; - } - $47 = $21; - $48 = $19; - ;HEAP8[$48>>0]=HEAP8[$47>>0]|0;HEAP8[$48+1>>0]=HEAP8[$47+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$47+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$47+3>>0]|0;HEAP8[$48+4>>0]=HEAP8[$47+4>>0]|0;HEAP8[$48+5>>0]=HEAP8[$47+5>>0]|0;HEAP8[$48+6>>0]=HEAP8[$47+6>>0]|0;HEAP8[$48+7>>0]=HEAP8[$47+7>>0]|0; - $49 = $19; - $50 = ((($49)) + 8|0); - $19 = $50; - $51 = $20; - $52 = (($51) + -1)|0; - $20 = $52; - } - $53 = ((($32)) + 132|0); - HEAP32[$30>>2] = 0; - $17 = $53; - $18 = $30; - $54 = $17; - $55 = $18; - $14 = $54; - $15 = 4; - $16 = $55; - $56 = $14; - $57 = $15; - $13 = $57; - $58 = $13; - $59 = $16; - $10 = $56; - $11 = $58; - $12 = $59; - while(1) { - $60 = $11; - $61 = ($60>>>0)>(0); - if (!($61)) { - break; - } - $62 = $12; - $63 = HEAP32[$62>>2]|0; - $64 = $10; - HEAP32[$64>>2] = $63; - $65 = $10; - $66 = ((($65)) + 4|0); - $10 = $66; - $67 = $11; - $68 = (($67) + -1)|0; - $11 = $68; - } - $69 = ((($32)) + 148|0); - HEAP32[$31>>2] = 0; - $8 = $69; - $9 = $31; - $70 = $8; - $71 = $9; - $5 = $70; - $6 = 4; - $7 = $71; - $72 = $5; - $73 = $6; - $4 = $73; - $74 = $4; - $75 = $7; - $1 = $72; - $2 = $74; - $3 = $75; - while(1) { - $76 = $2; - $77 = ($76>>>0)>(0); - if (!($77)) { - break; - } - $78 = $3; - $79 = HEAP32[$78>>2]|0; - $80 = $1; - HEAP32[$80>>2] = $79; - $81 = $1; - $82 = ((($81)) + 4|0); - $1 = $82; - $83 = $2; - $84 = (($83) + -1)|0; - $2 = $84; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,9,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerC2Ejjjj($2,32,9,8,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 48|0); - __ZN6laszip6models10arithmeticD2Ev($3); - $4 = ((($2)) + 4|0); - __ZN6laszip6models10arithmeticD2Ev($4); - STACKTOP = sp;return; -} -function __ZNSt3__25arrayIN6laszip7formats3las7gpstimeELj4EEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 32|0); - $4 = $2; - while(1) { - __ZN6laszip7formats3las7gpstimeC2Ev($4); - $5 = ((($4)) + 8|0); - $6 = ($5|0)==($3|0); - if ($6) { - break; - } else { - $4 = $5; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7gpstimeC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2; - $4 = $3; - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=(0>>8)&255;HEAP8[$4+2>>0]=(0>>16)&255;HEAP8[$4+3>>0]=0>>24; - $5 = (($3) + 4)|0; - $6 = $5; - HEAP8[$6>>0]=0&255;HEAP8[$6+1>>0]=(0>>8)&255;HEAP8[$6+2>>0]=(0>>16)&255;HEAP8[$6+3>>0]=0>>24; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($3); - $4 = ((($2)) + 164|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE13__compressorsD2Ev($4); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE8__commonD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressorsD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0; - var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0; - var $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0; - var $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0; - var $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0; - var $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0; - var $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0; - var $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0; - var $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0; - var $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0; - var $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0; - var $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0; - var $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0; - var $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0; - var $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0; - var $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0; - var $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 368|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(368|0); - $91 = sp + 360|0; - $88 = $0; - $89 = $1; - $90 = $2; - $94 = $88; - $95 = ((($94)) + 325|0); - $96 = HEAP8[$95>>0]|0; - $97 = $96&1; - if (!($97)) { - $98 = ((($94)) + 244|0); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($98); - $99 = ((($94)) + 325|0); - HEAP8[$99>>0] = 1; - } - $100 = HEAP8[$94>>0]|0; - $101 = $100&1; - if (!($101)) { - HEAP8[$94>>0] = 1; - $102 = $89; - $103 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($102)|0); - $104 = $90; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($103,$104,8); - $105 = $90; - $106 = (__ZN6laszip7formats7packersINS0_3las7gpstimeEE6unpackEPKc($105)|0); - $107 = tempRet0; - $108 = $91; - $109 = $108; - HEAP8[$109>>0]=$106&255;HEAP8[$109+1>>0]=($106>>8)&255;HEAP8[$109+2>>0]=($106>>16)&255;HEAP8[$109+3>>0]=$106>>24; - $110 = (($108) + 4)|0; - $111 = $110; - HEAP8[$111>>0]=$107&255;HEAP8[$111+1>>0]=($107>>8)&255;HEAP8[$111+2>>0]=($107>>16)&255;HEAP8[$111+3>>0]=$107>>24; - $112 = ((($94)) + 100|0); - $85 = $112; - $86 = 0; - $113 = $85; - $114 = $86; - $115 = (($113) + ($114<<3)|0); - ;HEAP8[$115>>0]=HEAP8[$91>>0]|0;HEAP8[$115+1>>0]=HEAP8[$91+1>>0]|0;HEAP8[$115+2>>0]=HEAP8[$91+2>>0]|0;HEAP8[$115+3>>0]=HEAP8[$91+3>>0]|0;HEAP8[$115+4>>0]=HEAP8[$91+4>>0]|0;HEAP8[$115+5>>0]=HEAP8[$91+5>>0]|0;HEAP8[$115+6>>0]=HEAP8[$91+6>>0]|0;HEAP8[$115+7>>0]=HEAP8[$91+7>>0]|0; - $116 = $90; - $117 = ((($116)) + 8|0); - $87 = $117; - $601 = $87; - STACKTOP = sp;return ($601|0); - } - $118 = ((($94)) + 132|0); - $119 = ((($94)) + 92|0); - $120 = HEAP32[$119>>2]|0; - $83 = $118; - $84 = $120; - $121 = $83; - $122 = $84; - $123 = (($121) + ($122<<2)|0); - $124 = HEAP32[$123>>2]|0; - $125 = ($124|0)==(0); - $126 = $89; - do { - if ($125) { - $127 = ((($94)) + 48|0); - $128 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($126,$127)|0); - $92 = $128; - $129 = $92; - $130 = ($129|0)==(1); - if ($130) { - $131 = ((($94)) + 244|0); - $132 = $89; - $133 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($131,$132,0,0)|0); - $134 = ((($94)) + 132|0); - $135 = ((($94)) + 92|0); - $136 = HEAP32[$135>>2]|0; - $81 = $134; - $82 = $136; - $137 = $81; - $138 = $82; - $139 = (($137) + ($138<<2)|0); - HEAP32[$139>>2] = $133; - $140 = ((($94)) + 132|0); - $141 = ((($94)) + 92|0); - $142 = HEAP32[$141>>2]|0; - $71 = $140; - $72 = $142; - $143 = $71; - $144 = $72; - $145 = (($143) + ($144<<2)|0); - $146 = HEAP32[$145>>2]|0; - $147 = ($146|0)<(0); - $148 = $147 << 31 >> 31; - $149 = ((($94)) + 100|0); - $150 = ((($94)) + 92|0); - $151 = HEAP32[$150>>2]|0; - $63 = $149; - $64 = $151; - $152 = $63; - $153 = $64; - $154 = (($152) + ($153<<3)|0); - $155 = $154; - $156 = $155; - $157 = HEAPU8[$156>>0]|(HEAPU8[$156+1>>0]<<8)|(HEAPU8[$156+2>>0]<<16)|(HEAPU8[$156+3>>0]<<24); - $158 = (($155) + 4)|0; - $159 = $158; - $160 = HEAPU8[$159>>0]|(HEAPU8[$159+1>>0]<<8)|(HEAPU8[$159+2>>0]<<16)|(HEAPU8[$159+3>>0]<<24); - $161 = (_i64Add(($157|0),($160|0),($146|0),($148|0))|0); - $162 = tempRet0; - $163 = $154; - $164 = $163; - HEAP8[$164>>0]=$161&255;HEAP8[$164+1>>0]=($161>>8)&255;HEAP8[$164+2>>0]=($161>>16)&255;HEAP8[$164+3>>0]=$161>>24; - $165 = (($163) + 4)|0; - $166 = $165; - HEAP8[$166>>0]=$162&255;HEAP8[$166+1>>0]=($162>>8)&255;HEAP8[$166+2>>0]=($162>>16)&255;HEAP8[$166+3>>0]=$162>>24; - $167 = ((($94)) + 148|0); - $168 = ((($94)) + 92|0); - $169 = HEAP32[$168>>2]|0; - $49 = $167; - $50 = $169; - $170 = $49; - $171 = $50; - $172 = (($170) + ($171<<2)|0); - HEAP32[$172>>2] = 0; - break; - } - $173 = $92; - $174 = ($173|0)==(2); - if ($174) { - $175 = ((($94)) + 96|0); - $176 = HEAP32[$175>>2]|0; - $177 = (($176) + 1)|0; - $178 = $177 & 3; - $179 = ((($94)) + 96|0); - HEAP32[$179>>2] = $178; - $180 = ((($94)) + 244|0); - $181 = $89; - $182 = ((($94)) + 100|0); - $183 = ((($94)) + 92|0); - $184 = HEAP32[$183>>2]|0; - $45 = $182; - $46 = $184; - $185 = $45; - $186 = $46; - $187 = (($185) + ($186<<3)|0); - $188 = $187; - $189 = $188; - $190 = HEAPU8[$189>>0]|(HEAPU8[$189+1>>0]<<8)|(HEAPU8[$189+2>>0]<<16)|(HEAPU8[$189+3>>0]<<24); - $191 = (($188) + 4)|0; - $192 = $191; - $193 = HEAPU8[$192>>0]|(HEAPU8[$192+1>>0]<<8)|(HEAPU8[$192+2>>0]<<16)|(HEAPU8[$192+3>>0]<<24); - $194 = (_bitshift64Ashr(($190|0),($193|0),32)|0); - $195 = tempRet0; - $196 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($180,$181,$194,8)|0); - $197 = ($196|0)<(0); - $198 = $197 << 31 >> 31; - $199 = ((($94)) + 100|0); - $200 = ((($94)) + 96|0); - $201 = HEAP32[$200>>2]|0; - $33 = $199; - $34 = $201; - $202 = $33; - $203 = $34; - $204 = (($202) + ($203<<3)|0); - $205 = $204; - $206 = $205; - HEAP8[$206>>0]=$196&255;HEAP8[$206+1>>0]=($196>>8)&255;HEAP8[$206+2>>0]=($196>>16)&255;HEAP8[$206+3>>0]=$196>>24; - $207 = (($205) + 4)|0; - $208 = $207; - HEAP8[$208>>0]=$198&255;HEAP8[$208+1>>0]=($198>>8)&255;HEAP8[$208+2>>0]=($198>>16)&255;HEAP8[$208+3>>0]=$198>>24; - $209 = ((($94)) + 100|0); - $210 = ((($94)) + 96|0); - $211 = HEAP32[$210>>2]|0; - $29 = $209; - $30 = $211; - $212 = $29; - $213 = $30; - $214 = (($212) + ($213<<3)|0); - $215 = $214; - $216 = $215; - $217 = HEAPU8[$216>>0]|(HEAPU8[$216+1>>0]<<8)|(HEAPU8[$216+2>>0]<<16)|(HEAPU8[$216+3>>0]<<24); - $218 = (($215) + 4)|0; - $219 = $218; - $220 = HEAPU8[$219>>0]|(HEAPU8[$219+1>>0]<<8)|(HEAPU8[$219+2>>0]<<16)|(HEAPU8[$219+3>>0]<<24); - $221 = ((($94)) + 100|0); - $222 = ((($94)) + 96|0); - $223 = HEAP32[$222>>2]|0; - $25 = $221; - $26 = $223; - $224 = $25; - $225 = $26; - $226 = (($224) + ($225<<3)|0); - $227 = $226; - $228 = $227; - HEAP8[$228>>0]=0&255;HEAP8[$228+1>>0]=(0>>8)&255;HEAP8[$228+2>>0]=(0>>16)&255;HEAP8[$228+3>>0]=0>>24; - $229 = (($227) + 4)|0; - $230 = $229; - HEAP8[$230>>0]=$217&255;HEAP8[$230+1>>0]=($217>>8)&255;HEAP8[$230+2>>0]=($217>>16)&255;HEAP8[$230+3>>0]=$217>>24; - $231 = $89; - $232 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($231)|0); - $233 = ((($94)) + 100|0); - $234 = ((($94)) + 96|0); - $235 = HEAP32[$234>>2]|0; - $13 = $233; - $14 = $235; - $236 = $13; - $237 = $14; - $238 = (($236) + ($237<<3)|0); - $239 = $238; - $240 = $239; - $241 = HEAPU8[$240>>0]|(HEAPU8[$240+1>>0]<<8)|(HEAPU8[$240+2>>0]<<16)|(HEAPU8[$240+3>>0]<<24); - $242 = (($239) + 4)|0; - $243 = $242; - $244 = HEAPU8[$243>>0]|(HEAPU8[$243+1>>0]<<8)|(HEAPU8[$243+2>>0]<<16)|(HEAPU8[$243+3>>0]<<24); - $245 = $241 | $232; - $246 = $238; - $247 = $246; - HEAP8[$247>>0]=$245&255;HEAP8[$247+1>>0]=($245>>8)&255;HEAP8[$247+2>>0]=($245>>16)&255;HEAP8[$247+3>>0]=$245>>24; - $248 = (($246) + 4)|0; - $249 = $248; - HEAP8[$249>>0]=$244&255;HEAP8[$249+1>>0]=($244>>8)&255;HEAP8[$249+2>>0]=($244>>16)&255;HEAP8[$249+3>>0]=$244>>24; - $250 = ((($94)) + 96|0); - $251 = HEAP32[$250>>2]|0; - $252 = ((($94)) + 92|0); - HEAP32[$252>>2] = $251; - $253 = ((($94)) + 132|0); - $254 = ((($94)) + 92|0); - $255 = HEAP32[$254>>2]|0; - $7 = $253; - $8 = $255; - $256 = $7; - $257 = $8; - $258 = (($256) + ($257<<2)|0); - HEAP32[$258>>2] = 0; - $259 = ((($94)) + 148|0); - $260 = ((($94)) + 92|0); - $261 = HEAP32[$260>>2]|0; - $3 = $259; - $4 = $261; - $262 = $3; - $263 = $4; - $264 = (($262) + ($263<<2)|0); - HEAP32[$264>>2] = 0; - break; - } - $265 = $92; - $266 = ($265|0)>(2); - if ($266) { - $267 = ((($94)) + 92|0); - $268 = HEAP32[$267>>2]|0; - $269 = $92; - $270 = (($268) + ($269))|0; - $271 = (($270) - 2)|0; - $272 = $271 & 3; - $273 = ((($94)) + 92|0); - HEAP32[$273>>2] = $272; - $274 = $89; - $275 = $90; - (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($94,$274,$275)|0); - } - } else { - $276 = ((($94)) + 4|0); - $277 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($126,$276)|0); - $92 = $277; - $278 = $92; - $279 = ($278|0)==(1); - if ($279) { - $280 = ((($94)) + 244|0); - $281 = $89; - $282 = ((($94)) + 132|0); - $283 = ((($94)) + 92|0); - $284 = HEAP32[$283>>2]|0; - $5 = $282; - $6 = $284; - $285 = $5; - $286 = $6; - $287 = (($285) + ($286<<2)|0); - $288 = HEAP32[$287>>2]|0; - $289 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($280,$281,$288,1)|0); - $290 = ($289|0)<(0); - $291 = $290 << 31 >> 31; - $292 = ((($94)) + 100|0); - $293 = ((($94)) + 92|0); - $294 = HEAP32[$293>>2]|0; - $9 = $292; - $10 = $294; - $295 = $9; - $296 = $10; - $297 = (($295) + ($296<<3)|0); - $298 = $297; - $299 = $298; - $300 = HEAPU8[$299>>0]|(HEAPU8[$299+1>>0]<<8)|(HEAPU8[$299+2>>0]<<16)|(HEAPU8[$299+3>>0]<<24); - $301 = (($298) + 4)|0; - $302 = $301; - $303 = HEAPU8[$302>>0]|(HEAPU8[$302+1>>0]<<8)|(HEAPU8[$302+2>>0]<<16)|(HEAPU8[$302+3>>0]<<24); - $304 = (_i64Add(($300|0),($303|0),($289|0),($291|0))|0); - $305 = tempRet0; - $306 = $297; - $307 = $306; - HEAP8[$307>>0]=$304&255;HEAP8[$307+1>>0]=($304>>8)&255;HEAP8[$307+2>>0]=($304>>16)&255;HEAP8[$307+3>>0]=$304>>24; - $308 = (($306) + 4)|0; - $309 = $308; - HEAP8[$309>>0]=$305&255;HEAP8[$309+1>>0]=($305>>8)&255;HEAP8[$309+2>>0]=($305>>16)&255;HEAP8[$309+3>>0]=$305>>24; - $310 = ((($94)) + 148|0); - $311 = ((($94)) + 92|0); - $312 = HEAP32[$311>>2]|0; - $11 = $310; - $12 = $312; - $313 = $11; - $314 = $12; - $315 = (($313) + ($314<<2)|0); - HEAP32[$315>>2] = 0; - break; - } - $316 = $92; - $317 = ($316|0)<(511); - $318 = $92; - if (!($317)) { - $490 = ($318|0)==(512); - if ($490) { - $491 = ((($94)) + 96|0); - $492 = HEAP32[$491>>2]|0; - $493 = (($492) + 1)|0; - $494 = $493 & 3; - $495 = ((($94)) + 96|0); - HEAP32[$495>>2] = $494; - $496 = ((($94)) + 244|0); - $497 = $89; - $498 = ((($94)) + 100|0); - $499 = ((($94)) + 92|0); - $500 = HEAP32[$499>>2]|0; - $61 = $498; - $62 = $500; - $501 = $61; - $502 = $62; - $503 = (($501) + ($502<<3)|0); - $504 = $503; - $505 = $504; - $506 = HEAPU8[$505>>0]|(HEAPU8[$505+1>>0]<<8)|(HEAPU8[$505+2>>0]<<16)|(HEAPU8[$505+3>>0]<<24); - $507 = (($504) + 4)|0; - $508 = $507; - $509 = HEAPU8[$508>>0]|(HEAPU8[$508+1>>0]<<8)|(HEAPU8[$508+2>>0]<<16)|(HEAPU8[$508+3>>0]<<24); - $510 = (_bitshift64Ashr(($506|0),($509|0),32)|0); - $511 = tempRet0; - $512 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($496,$497,$510,8)|0); - $513 = ($512|0)<(0); - $514 = $513 << 31 >> 31; - $515 = ((($94)) + 100|0); - $516 = ((($94)) + 96|0); - $517 = HEAP32[$516>>2]|0; - $65 = $515; - $66 = $517; - $518 = $65; - $519 = $66; - $520 = (($518) + ($519<<3)|0); - $521 = $520; - $522 = $521; - HEAP8[$522>>0]=$512&255;HEAP8[$522+1>>0]=($512>>8)&255;HEAP8[$522+2>>0]=($512>>16)&255;HEAP8[$522+3>>0]=$512>>24; - $523 = (($521) + 4)|0; - $524 = $523; - HEAP8[$524>>0]=$514&255;HEAP8[$524+1>>0]=($514>>8)&255;HEAP8[$524+2>>0]=($514>>16)&255;HEAP8[$524+3>>0]=$514>>24; - $525 = ((($94)) + 100|0); - $526 = ((($94)) + 96|0); - $527 = HEAP32[$526>>2]|0; - $67 = $525; - $68 = $527; - $528 = $67; - $529 = $68; - $530 = (($528) + ($529<<3)|0); - $531 = $530; - $532 = $531; - $533 = HEAPU8[$532>>0]|(HEAPU8[$532+1>>0]<<8)|(HEAPU8[$532+2>>0]<<16)|(HEAPU8[$532+3>>0]<<24); - $534 = (($531) + 4)|0; - $535 = $534; - $536 = HEAPU8[$535>>0]|(HEAPU8[$535+1>>0]<<8)|(HEAPU8[$535+2>>0]<<16)|(HEAPU8[$535+3>>0]<<24); - $537 = ((($94)) + 100|0); - $538 = ((($94)) + 96|0); - $539 = HEAP32[$538>>2]|0; - $69 = $537; - $70 = $539; - $540 = $69; - $541 = $70; - $542 = (($540) + ($541<<3)|0); - $543 = $542; - $544 = $543; - HEAP8[$544>>0]=0&255;HEAP8[$544+1>>0]=(0>>8)&255;HEAP8[$544+2>>0]=(0>>16)&255;HEAP8[$544+3>>0]=0>>24; - $545 = (($543) + 4)|0; - $546 = $545; - HEAP8[$546>>0]=$533&255;HEAP8[$546+1>>0]=($533>>8)&255;HEAP8[$546+2>>0]=($533>>16)&255;HEAP8[$546+3>>0]=$533>>24; - $547 = $89; - $548 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($547)|0); - $549 = ((($94)) + 100|0); - $550 = ((($94)) + 96|0); - $551 = HEAP32[$550>>2]|0; - $73 = $549; - $74 = $551; - $552 = $73; - $553 = $74; - $554 = (($552) + ($553<<3)|0); - $555 = $554; - $556 = $555; - $557 = HEAPU8[$556>>0]|(HEAPU8[$556+1>>0]<<8)|(HEAPU8[$556+2>>0]<<16)|(HEAPU8[$556+3>>0]<<24); - $558 = (($555) + 4)|0; - $559 = $558; - $560 = HEAPU8[$559>>0]|(HEAPU8[$559+1>>0]<<8)|(HEAPU8[$559+2>>0]<<16)|(HEAPU8[$559+3>>0]<<24); - $561 = $557 | $548; - $562 = $554; - $563 = $562; - HEAP8[$563>>0]=$561&255;HEAP8[$563+1>>0]=($561>>8)&255;HEAP8[$563+2>>0]=($561>>16)&255;HEAP8[$563+3>>0]=$561>>24; - $564 = (($562) + 4)|0; - $565 = $564; - HEAP8[$565>>0]=$560&255;HEAP8[$565+1>>0]=($560>>8)&255;HEAP8[$565+2>>0]=($560>>16)&255;HEAP8[$565+3>>0]=$560>>24; - $566 = ((($94)) + 96|0); - $567 = HEAP32[$566>>2]|0; - $568 = ((($94)) + 92|0); - HEAP32[$568>>2] = $567; - $569 = ((($94)) + 132|0); - $570 = ((($94)) + 92|0); - $571 = HEAP32[$570>>2]|0; - $75 = $569; - $76 = $571; - $572 = $75; - $573 = $76; - $574 = (($572) + ($573<<2)|0); - HEAP32[$574>>2] = 0; - $575 = ((($94)) + 148|0); - $576 = ((($94)) + 92|0); - $577 = HEAP32[$576>>2]|0; - $77 = $575; - $78 = $577; - $578 = $77; - $579 = $78; - $580 = (($578) + ($579<<2)|0); - HEAP32[$580>>2] = 0; - break; - } - $581 = $92; - $582 = ($581|0)>=(512); - if (!($582)) { - break; - } - $583 = ((($94)) + 92|0); - $584 = HEAP32[$583>>2]|0; - $585 = $92; - $586 = (($584) + ($585))|0; - $587 = (($586) - 512)|0; - $588 = $587 & 3; - $589 = ((($94)) + 92|0); - HEAP32[$589>>2] = $588; - $590 = $89; - $591 = $90; - (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($94,$590,$591)|0); - break; - } - $319 = ($318|0)==(0); - do { - if ($319) { - $320 = ((($94)) + 244|0); - $321 = $89; - $322 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($320,$321,0,7)|0); - $93 = $322; - $323 = ((($94)) + 148|0); - $324 = ((($94)) + 92|0); - $325 = HEAP32[$324>>2]|0; - $15 = $323; - $16 = $325; - $326 = $15; - $327 = $16; - $328 = (($326) + ($327<<2)|0); - $329 = HEAP32[$328>>2]|0; - $330 = (($329) + 1)|0; - HEAP32[$328>>2] = $330; - $331 = ((($94)) + 148|0); - $332 = ((($94)) + 92|0); - $333 = HEAP32[$332>>2]|0; - $17 = $331; - $18 = $333; - $334 = $17; - $335 = $18; - $336 = (($334) + ($335<<2)|0); - $337 = HEAP32[$336>>2]|0; - $338 = ($337|0)>(3); - if ($338) { - $339 = $93; - $340 = ((($94)) + 132|0); - $341 = ((($94)) + 92|0); - $342 = HEAP32[$341>>2]|0; - $19 = $340; - $20 = $342; - $343 = $19; - $344 = $20; - $345 = (($343) + ($344<<2)|0); - HEAP32[$345>>2] = $339; - $346 = ((($94)) + 148|0); - $347 = ((($94)) + 92|0); - $348 = HEAP32[$347>>2]|0; - $21 = $346; - $22 = $348; - $349 = $21; - $350 = $22; - $351 = (($349) + ($350<<2)|0); - HEAP32[$351>>2] = 0; - } - } else { - $352 = $92; - $353 = ($352|0)<(500); - $354 = $92; - if ($353) { - $355 = ($354|0)<(10); - $356 = ((($94)) + 244|0); - $357 = $89; - $358 = $92; - $359 = ((($94)) + 132|0); - $360 = ((($94)) + 92|0); - $361 = HEAP32[$360>>2]|0; - if ($355) { - $23 = $359; - $24 = $361; - $362 = $23; - $363 = $24; - $364 = (($362) + ($363<<2)|0); - $365 = HEAP32[$364>>2]|0; - $366 = Math_imul($358, $365)|0; - $367 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($356,$357,$366,2)|0); - $93 = $367; - break; - } else { - $27 = $359; - $28 = $361; - $368 = $27; - $369 = $28; - $370 = (($368) + ($369<<2)|0); - $371 = HEAP32[$370>>2]|0; - $372 = Math_imul($358, $371)|0; - $373 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($356,$357,$372,3)|0); - $93 = $373; - break; - } - } - $374 = ($354|0)==(500); - if ($374) { - $375 = ((($94)) + 244|0); - $376 = $89; - $377 = ((($94)) + 132|0); - $378 = ((($94)) + 92|0); - $379 = HEAP32[$378>>2]|0; - $31 = $377; - $32 = $379; - $380 = $31; - $381 = $32; - $382 = (($380) + ($381<<2)|0); - $383 = HEAP32[$382>>2]|0; - $384 = ($383*500)|0; - $385 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($375,$376,$384,4)|0); - $93 = $385; - $386 = ((($94)) + 148|0); - $387 = ((($94)) + 92|0); - $388 = HEAP32[$387>>2]|0; - $35 = $386; - $36 = $388; - $389 = $35; - $390 = $36; - $391 = (($389) + ($390<<2)|0); - $392 = HEAP32[$391>>2]|0; - $393 = (($392) + 1)|0; - HEAP32[$391>>2] = $393; - $394 = ((($94)) + 148|0); - $395 = ((($94)) + 92|0); - $396 = HEAP32[$395>>2]|0; - $37 = $394; - $38 = $396; - $397 = $37; - $398 = $38; - $399 = (($397) + ($398<<2)|0); - $400 = HEAP32[$399>>2]|0; - $401 = ($400|0)>(3); - if (!($401)) { - break; - } - $402 = $93; - $403 = ((($94)) + 132|0); - $404 = ((($94)) + 92|0); - $405 = HEAP32[$404>>2]|0; - $39 = $403; - $40 = $405; - $406 = $39; - $407 = $40; - $408 = (($406) + ($407<<2)|0); - HEAP32[$408>>2] = $402; - $409 = ((($94)) + 148|0); - $410 = ((($94)) + 92|0); - $411 = HEAP32[$410>>2]|0; - $41 = $409; - $42 = $411; - $412 = $41; - $413 = $42; - $414 = (($412) + ($413<<2)|0); - HEAP32[$414>>2] = 0; - break; - } - $415 = $92; - $416 = (500 - ($415))|0; - $92 = $416; - $417 = $92; - $418 = ($417|0)>(-10); - $419 = ((($94)) + 244|0); - $420 = $89; - if ($418) { - $421 = $92; - $422 = ((($94)) + 132|0); - $423 = ((($94)) + 92|0); - $424 = HEAP32[$423>>2]|0; - $43 = $422; - $44 = $424; - $425 = $43; - $426 = $44; - $427 = (($425) + ($426<<2)|0); - $428 = HEAP32[$427>>2]|0; - $429 = Math_imul($421, $428)|0; - $430 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($419,$420,$429,5)|0); - $93 = $430; - break; - } - $431 = ((($94)) + 132|0); - $432 = ((($94)) + 92|0); - $433 = HEAP32[$432>>2]|0; - $47 = $431; - $48 = $433; - $434 = $47; - $435 = $48; - $436 = (($434) + ($435<<2)|0); - $437 = HEAP32[$436>>2]|0; - $438 = Math_imul(-10, $437)|0; - $439 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEiRT_ij($419,$420,$438,6)|0); - $93 = $439; - $440 = ((($94)) + 148|0); - $441 = ((($94)) + 92|0); - $442 = HEAP32[$441>>2]|0; - $51 = $440; - $52 = $442; - $443 = $51; - $444 = $52; - $445 = (($443) + ($444<<2)|0); - $446 = HEAP32[$445>>2]|0; - $447 = (($446) + 1)|0; - HEAP32[$445>>2] = $447; - $448 = ((($94)) + 148|0); - $449 = ((($94)) + 92|0); - $450 = HEAP32[$449>>2]|0; - $53 = $448; - $54 = $450; - $451 = $53; - $452 = $54; - $453 = (($451) + ($452<<2)|0); - $454 = HEAP32[$453>>2]|0; - $455 = ($454|0)>(3); - if ($455) { - $456 = $93; - $457 = ((($94)) + 132|0); - $458 = ((($94)) + 92|0); - $459 = HEAP32[$458>>2]|0; - $55 = $457; - $56 = $459; - $460 = $55; - $461 = $56; - $462 = (($460) + ($461<<2)|0); - HEAP32[$462>>2] = $456; - $463 = ((($94)) + 148|0); - $464 = ((($94)) + 92|0); - $465 = HEAP32[$464>>2]|0; - $57 = $463; - $58 = $465; - $466 = $57; - $467 = $58; - $468 = (($466) + ($467<<2)|0); - HEAP32[$468>>2] = 0; - } - } - } while(0); - $469 = $93; - $470 = ($469|0)<(0); - $471 = $470 << 31 >> 31; - $472 = ((($94)) + 100|0); - $473 = ((($94)) + 92|0); - $474 = HEAP32[$473>>2]|0; - $59 = $472; - $60 = $474; - $475 = $59; - $476 = $60; - $477 = (($475) + ($476<<3)|0); - $478 = $477; - $479 = $478; - $480 = HEAPU8[$479>>0]|(HEAPU8[$479+1>>0]<<8)|(HEAPU8[$479+2>>0]<<16)|(HEAPU8[$479+3>>0]<<24); - $481 = (($478) + 4)|0; - $482 = $481; - $483 = HEAPU8[$482>>0]|(HEAPU8[$482+1>>0]<<8)|(HEAPU8[$482+2>>0]<<16)|(HEAPU8[$482+3>>0]<<24); - $484 = (_i64Add(($480|0),($483|0),($469|0),($471|0))|0); - $485 = tempRet0; - $486 = $477; - $487 = $486; - HEAP8[$487>>0]=$484&255;HEAP8[$487+1>>0]=($484>>8)&255;HEAP8[$487+2>>0]=($484>>16)&255;HEAP8[$487+3>>0]=$484>>24; - $488 = (($486) + 4)|0; - $489 = $488; - HEAP8[$489>>0]=$485&255;HEAP8[$489+1>>0]=($485>>8)&255;HEAP8[$489+2>>0]=($485>>16)&255;HEAP8[$489+3>>0]=$485>>24; - } - } while(0); - $592 = ((($94)) + 100|0); - $593 = ((($94)) + 92|0); - $594 = HEAP32[$593>>2]|0; - $79 = $592; - $80 = $594; - $595 = $79; - $596 = $80; - $597 = (($595) + ($596<<3)|0); - $598 = $90; - __ZN6laszip7formats7packersINS0_3las7gpstimeEE4packERKS3_Pc($597,$598); - $599 = $90; - $600 = ((($599)) + 8|0); - $87 = $600; - $601 = $87; - STACKTOP = sp;return ($601|0); -} -function __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE15__decompressors4initEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip13decompressors7integer4initEv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las7gpstimeEE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $1 = sp + 24|0; - $3 = sp + 8|0; - $4 = sp; - $2 = $0; - $5 = $2; - $6 = (__ZN6laszip7formats7packersIjE6unpackEPKc($5)|0); - $7 = $3; - $8 = $7; - HEAP32[$8>>2] = $6; - $9 = (($7) + 4)|0; - $10 = $9; - HEAP32[$10>>2] = 0; - $11 = $2; - $12 = ((($11)) + 4|0); - $13 = (__ZN6laszip7formats7packersIjE6unpackEPKc($12)|0); - $14 = $4; - $15 = $14; - HEAP32[$15>>2] = $13; - $16 = (($14) + 4)|0; - $17 = $16; - HEAP32[$17>>2] = 0; - $18 = $4; - $19 = $18; - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + 4)|0; - $22 = $21; - $23 = HEAP32[$22>>2]|0; - $24 = $3; - $25 = $24; - $26 = HEAP32[$25>>2]|0; - $27 = (($24) + 4)|0; - $28 = $27; - $29 = HEAP32[$28>>2]|0; - $30 = $20 | $29; - __ZN6laszip7formats3las7gpstimeC2Ex($1,$26,$30); - $31 = $1; - $32 = $31; - $33 = HEAPU8[$32>>0]|(HEAPU8[$32+1>>0]<<8)|(HEAPU8[$32+2>>0]<<16)|(HEAPU8[$32+3>>0]<<24); - $34 = (($31) + 4)|0; - $35 = $34; - $36 = HEAPU8[$35>>0]|(HEAPU8[$35+1>>0]<<8)|(HEAPU8[$35+2>>0]<<16)|(HEAPU8[$35+3>>0]<<24); - tempRet0 = ($36); - STACKTOP = sp;return ($33|0); -} -function __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE7readIntEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $4 = $1; - $5 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($4)|0); - $6 = $5&65535; - $2 = $6; - $7 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE9readShortEv($4)|0); - $8 = $7&65535; - $3 = $8; - $9 = $3; - $10 = $9 << 16; - $11 = $2; - $12 = $10 | $11; - STACKTOP = sp;return ($12|0); -} -function __ZN6laszip7formats7packersINS0_3las7gpstimeEE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $4; - $6 = $5; - $7 = HEAPU8[$6>>0]|(HEAPU8[$6+1>>0]<<8)|(HEAPU8[$6+2>>0]<<16)|(HEAPU8[$6+3>>0]<<24); - $8 = (($5) + 4)|0; - $9 = $8; - $10 = HEAPU8[$9>>0]|(HEAPU8[$9+1>>0]<<8)|(HEAPU8[$9+2>>0]<<16)|(HEAPU8[$9+3>>0]<<24); - $11 = $3; - __ZN6laszip7formats7packersIjE4packEjPc($7,$11); - $12 = $2; - $13 = $12; - $14 = $13; - $15 = HEAPU8[$14>>0]|(HEAPU8[$14+1>>0]<<8)|(HEAPU8[$14+2>>0]<<16)|(HEAPU8[$14+3>>0]<<24); - $16 = (($13) + 4)|0; - $17 = $16; - $18 = HEAPU8[$17>>0]|(HEAPU8[$17+1>>0]<<8)|(HEAPU8[$17+2>>0]<<16)|(HEAPU8[$17+3>>0]<<24); - $19 = (_bitshift64Ashr(($15|0),($18|0),32)|0); - $20 = tempRet0; - $21 = $3; - $22 = ((($21)) + 4|0); - __ZN6laszip7formats7packersIjE4packEjPc($19,$22); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las7gpstimeC2Ex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - $3 = $0; - $5 = $4; - $6 = $5; - HEAP32[$6>>2] = $1; - $7 = (($5) + 4)|0; - $8 = $7; - HEAP32[$8>>2] = $2; - $9 = $3; - $10 = $4; - $11 = $10; - $12 = HEAP32[$11>>2]|0; - $13 = (($10) + 4)|0; - $14 = $13; - $15 = HEAP32[$14>>2]|0; - $16 = $9; - $17 = $16; - HEAP8[$17>>0]=$12&255;HEAP8[$17+1>>0]=($12>>8)&255;HEAP8[$17+2>>0]=($12>>16)&255;HEAP8[$17+3>>0]=$12>>24; - $18 = (($16) + 4)|0; - $19 = $18; - HEAP8[$19>>0]=$15&255;HEAP8[$19+1>>0]=($15>>8)&255;HEAP8[$19+2>>0]=($15>>16)&255;HEAP8[$19+3>>0]=$15>>24; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 400; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEEC2ERS9_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2152); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2176); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0] = 0; - $3 = ((($2)) + 1|0); - __ZN6laszip7formats3las3rgbC2Ev($3); - $4 = ((($2)) + 8|0); - __ZN6laszip6models10arithmeticC2EjbPj($4,128,0,0); - $5 = ((($2)) + 52|0); - __ZN6laszip6models10arithmeticC2EjbPj($5,256,0,0); - $6 = ((($2)) + 96|0); - __ZN6laszip6models10arithmeticC2EjbPj($6,256,0,0); - $7 = ((($2)) + 140|0); - __ZN6laszip6models10arithmeticC2EjbPj($7,256,0,0); - $8 = ((($2)) + 184|0); - __ZN6laszip6models10arithmeticC2EjbPj($8,256,0,0); - $9 = ((($2)) + 228|0); - __ZN6laszip6models10arithmeticC2EjbPj($9,256,0,0); - $10 = ((($2)) + 272|0); - __ZN6laszip6models10arithmeticC2EjbPj($10,256,0,0); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2152); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats3las3rgbC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0]=0&255;HEAP8[$2+1>>0]=0>>8; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0]=0&255;HEAP8[$3+1>>0]=0>>8; - $4 = ((($2)) + 4|0); - HEAP8[$4>>0]=0&255;HEAP8[$4+1>>0]=0>>8; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 272|0); - __ZN6laszip6models10arithmeticD2Ev($3); - $4 = ((($2)) + 228|0); - __ZN6laszip6models10arithmeticD2Ev($4); - $5 = ((($2)) + 184|0); - __ZN6laszip6models10arithmeticD2Ev($5); - $6 = ((($2)) + 140|0); - __ZN6laszip6models10arithmeticD2Ev($6); - $7 = ((($2)) + 96|0); - __ZN6laszip6models10arithmeticD2Ev($7); - $8 = ((($2)) + 52|0); - __ZN6laszip6models10arithmeticD2Ev($8); - $9 = ((($2)) + 8|0); - __ZN6laszip6models10arithmeticD2Ev($9); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0; - var $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0; - var $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0; - var $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0; - var $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0; - var $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0; - var $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $34 = 0, $35 = 0, $36 = 0; - var $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0; - var $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0; - var $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0; - var $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = sp + 32|0; - $11 = sp + 24|0; - $4 = $0; - $5 = $1; - $6 = $2; - $12 = $4; - $13 = HEAP8[$12>>0]|0; - $14 = $13&1; - if (!($14)) { - HEAP8[$12>>0] = 1; - $15 = $5; - $16 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($15)|0); - $17 = $6; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($16,$17,6); - $18 = $6; - __ZN6laszip7formats7packersINS0_3las3rgbEE6unpackEPKc($7,$18); - $19 = ((($12)) + 1|0); - ;HEAP8[$19>>0]=HEAP8[$7>>0]|0;HEAP8[$19+1>>0]=HEAP8[$7+1>>0]|0;HEAP8[$19+2>>0]=HEAP8[$7+2>>0]|0;HEAP8[$19+3>>0]=HEAP8[$7+3>>0]|0;HEAP8[$19+4>>0]=HEAP8[$7+4>>0]|0;HEAP8[$19+5>>0]=HEAP8[$7+5>>0]|0; - $20 = $6; - $21 = ((($20)) + 6|0); - $3 = $21; - $331 = $3; - STACKTOP = sp;return ($331|0); - } - $9 = 0; - $22 = $5; - $23 = ((($12)) + 8|0); - $24 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($22,$23)|0); - $10 = $24; - __ZN6laszip7formats3las3rgbC2Ev($11); - $25 = $10; - $26 = $25 & 1; - $27 = ($26|0)!=(0); - if ($27) { - $28 = $5; - $29 = ((($12)) + 52|0); - $30 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($28,$29)|0); - $31 = $30&255; - $8 = $31; - $32 = $8; - $33 = $32&255; - $34 = ((($12)) + 1|0); - $35 = HEAPU8[$34>>0]|(HEAPU8[$34+1>>0]<<8); - $36 = $35&65535; - $37 = $36 & 255; - $38 = (($33) + ($37))|0; - $39 = (__Z7U8_FOLDi($38)|0); - $40 = $39&255; - HEAP8[$11>>0]=$40&255;HEAP8[$11+1>>0]=$40>>8; - } else { - $41 = ((($12)) + 1|0); - $42 = HEAPU8[$41>>0]|(HEAPU8[$41+1>>0]<<8); - $43 = $42&65535; - $44 = $43 & 255; - $45 = $44&65535; - HEAP8[$11>>0]=$45&255;HEAP8[$11+1>>0]=$45>>8; - } - $46 = $10; - $47 = $46 & 2; - $48 = ($47|0)!=(0); - if ($48) { - $49 = $5; - $50 = ((($12)) + 96|0); - $51 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($49,$50)|0); - $52 = $51&255; - $8 = $52; - $53 = $8; - $54 = $53&255; - $55 = ((($12)) + 1|0); - $56 = HEAPU8[$55>>0]|(HEAPU8[$55+1>>0]<<8); - $57 = $56&65535; - $58 = $57 >> 8; - $59 = (($54) + ($58))|0; - $60 = (__Z7U8_FOLDi($59)|0); - $61 = $60&255; - $62 = $61&65535; - $63 = $62 << 8; - $64 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $65 = $64&65535; - $66 = $65 | $63; - $67 = $66&65535; - HEAP8[$11>>0]=$67&255;HEAP8[$11+1>>0]=$67>>8; - } else { - $68 = ((($12)) + 1|0); - $69 = HEAPU8[$68>>0]|(HEAPU8[$68+1>>0]<<8); - $70 = $69&65535; - $71 = $70 & 65280; - $72 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $73 = $72&65535; - $74 = $73 | $71; - $75 = $74&65535; - HEAP8[$11>>0]=$75&255;HEAP8[$11+1>>0]=$75>>8; - } - $76 = $10; - $77 = $76 & 64; - $78 = ($77|0)!=(0); - $79 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - do { - if ($78) { - $80 = $79&65535; - $81 = $80 & 255; - $82 = ((($12)) + 1|0); - $83 = HEAPU8[$82>>0]|(HEAPU8[$82+1>>0]<<8); - $84 = $83&65535; - $85 = $84 & 255; - $86 = (($81) - ($85))|0; - $9 = $86; - $87 = $10; - $88 = $87 & 4; - $89 = ($88|0)!=(0); - if ($89) { - $90 = $5; - $91 = ((($12)) + 140|0); - $92 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($90,$91)|0); - $93 = $92&255; - $8 = $93; - $94 = $8; - $95 = $94&255; - $96 = $9; - $97 = ((($12)) + 1|0); - $98 = ((($97)) + 2|0); - $99 = HEAPU8[$98>>0]|(HEAPU8[$98+1>>0]<<8); - $100 = $99&65535; - $101 = $100 & 255; - $102 = (($96) + ($101))|0; - $103 = ($102|0)<=(0); - if ($103) { - $121 = 0; - } else { - $104 = $9; - $105 = ((($12)) + 1|0); - $106 = ((($105)) + 2|0); - $107 = HEAPU8[$106>>0]|(HEAPU8[$106+1>>0]<<8); - $108 = $107&65535; - $109 = $108 & 255; - $110 = (($104) + ($109))|0; - $111 = ($110|0)>=(255); - if ($111) { - $121 = -1; - } else { - $112 = $9; - $113 = ((($12)) + 1|0); - $114 = ((($113)) + 2|0); - $115 = HEAPU8[$114>>0]|(HEAPU8[$114+1>>0]<<8); - $116 = $115&65535; - $117 = $116 & 255; - $118 = (($112) + ($117))|0; - $119 = $118&255; - $121 = $119; - } - } - $120 = $121&255; - $122 = (($95) + ($120))|0; - $123 = (__Z7U8_FOLDi($122)|0); - $124 = $123&255; - $125 = ((($11)) + 2|0); - HEAP8[$125>>0]=$124&255;HEAP8[$125+1>>0]=$124>>8; - } else { - $126 = ((($12)) + 1|0); - $127 = ((($126)) + 2|0); - $128 = HEAPU8[$127>>0]|(HEAPU8[$127+1>>0]<<8); - $129 = $128&65535; - $130 = $129 & 255; - $131 = $130&65535; - $132 = ((($11)) + 2|0); - HEAP8[$132>>0]=$131&255;HEAP8[$132+1>>0]=$131>>8; - } - $133 = $10; - $134 = $133 & 16; - $135 = ($134|0)!=(0); - if ($135) { - $136 = $5; - $137 = ((($12)) + 228|0); - $138 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($136,$137)|0); - $139 = $138&255; - $8 = $139; - $140 = $9; - $141 = ((($11)) + 2|0); - $142 = HEAPU8[$141>>0]|(HEAPU8[$141+1>>0]<<8); - $143 = $142&65535; - $144 = $143 & 255; - $145 = (($140) + ($144))|0; - $146 = ((($12)) + 1|0); - $147 = ((($146)) + 2|0); - $148 = HEAPU8[$147>>0]|(HEAPU8[$147+1>>0]<<8); - $149 = $148&65535; - $150 = $149 & 255; - $151 = (($145) - ($150))|0; - $152 = (($151|0) / 2)&-1; - $9 = $152; - $153 = $8; - $154 = $153&255; - $155 = $9; - $156 = ((($12)) + 1|0); - $157 = ((($156)) + 4|0); - $158 = HEAPU8[$157>>0]|(HEAPU8[$157+1>>0]<<8); - $159 = $158&65535; - $160 = $159 & 255; - $161 = (($155) + ($160))|0; - $162 = ($161|0)<=(0); - if ($162) { - $180 = 0; - } else { - $163 = $9; - $164 = ((($12)) + 1|0); - $165 = ((($164)) + 4|0); - $166 = HEAPU8[$165>>0]|(HEAPU8[$165+1>>0]<<8); - $167 = $166&65535; - $168 = $167 & 255; - $169 = (($163) + ($168))|0; - $170 = ($169|0)>=(255); - if ($170) { - $180 = -1; - } else { - $171 = $9; - $172 = ((($12)) + 1|0); - $173 = ((($172)) + 4|0); - $174 = HEAPU8[$173>>0]|(HEAPU8[$173+1>>0]<<8); - $175 = $174&65535; - $176 = $175 & 255; - $177 = (($171) + ($176))|0; - $178 = $177&255; - $180 = $178; - } - } - $179 = $180&255; - $181 = (($154) + ($179))|0; - $182 = (__Z7U8_FOLDi($181)|0); - $183 = $182&255; - $184 = ((($11)) + 4|0); - HEAP8[$184>>0]=$183&255;HEAP8[$184+1>>0]=$183>>8; - } else { - $185 = ((($12)) + 1|0); - $186 = ((($185)) + 4|0); - $187 = HEAPU8[$186>>0]|(HEAPU8[$186+1>>0]<<8); - $188 = $187&65535; - $189 = $188 & 255; - $190 = $189&65535; - $191 = ((($11)) + 4|0); - HEAP8[$191>>0]=$190&255;HEAP8[$191+1>>0]=$190>>8; - } - $192 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $193 = $192&65535; - $194 = $193 >> 8; - $195 = ((($12)) + 1|0); - $196 = HEAPU8[$195>>0]|(HEAPU8[$195+1>>0]<<8); - $197 = $196&65535; - $198 = $197 >> 8; - $199 = (($194) - ($198))|0; - $9 = $199; - $200 = $10; - $201 = $200 & 8; - $202 = ($201|0)!=(0); - if ($202) { - $203 = $5; - $204 = ((($12)) + 184|0); - $205 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($203,$204)|0); - $206 = $205&255; - $8 = $206; - $207 = $8; - $208 = $207&255; - $209 = $9; - $210 = ((($12)) + 1|0); - $211 = ((($210)) + 2|0); - $212 = HEAPU8[$211>>0]|(HEAPU8[$211+1>>0]<<8); - $213 = $212&65535; - $214 = $213 >> 8; - $215 = (($209) + ($214))|0; - $216 = ($215|0)<=(0); - if ($216) { - $234 = 0; - } else { - $217 = $9; - $218 = ((($12)) + 1|0); - $219 = ((($218)) + 2|0); - $220 = HEAPU8[$219>>0]|(HEAPU8[$219+1>>0]<<8); - $221 = $220&65535; - $222 = $221 >> 8; - $223 = (($217) + ($222))|0; - $224 = ($223|0)>=(255); - if ($224) { - $234 = -1; - } else { - $225 = $9; - $226 = ((($12)) + 1|0); - $227 = ((($226)) + 2|0); - $228 = HEAPU8[$227>>0]|(HEAPU8[$227+1>>0]<<8); - $229 = $228&65535; - $230 = $229 >> 8; - $231 = (($225) + ($230))|0; - $232 = $231&255; - $234 = $232; - } - } - $233 = $234&255; - $235 = (($208) + ($233))|0; - $236 = (__Z7U8_FOLDi($235)|0); - $237 = $236&255; - $238 = $237&65535; - $239 = $238 << 8; - $240 = ((($11)) + 2|0); - $241 = HEAPU8[$240>>0]|(HEAPU8[$240+1>>0]<<8); - $242 = $241&65535; - $243 = $242 | $239; - $244 = $243&65535; - HEAP8[$240>>0]=$244&255;HEAP8[$240+1>>0]=$244>>8; - } else { - $245 = ((($12)) + 1|0); - $246 = ((($245)) + 2|0); - $247 = HEAPU8[$246>>0]|(HEAPU8[$246+1>>0]<<8); - $248 = $247&65535; - $249 = $248 & 65280; - $250 = ((($11)) + 2|0); - $251 = HEAPU8[$250>>0]|(HEAPU8[$250+1>>0]<<8); - $252 = $251&65535; - $253 = $252 | $249; - $254 = $253&65535; - HEAP8[$250>>0]=$254&255;HEAP8[$250+1>>0]=$254>>8; - } - $255 = $10; - $256 = $255 & 32; - $257 = ($256|0)!=(0); - if (!($257)) { - $313 = ((($12)) + 1|0); - $314 = ((($313)) + 4|0); - $315 = HEAPU8[$314>>0]|(HEAPU8[$314+1>>0]<<8); - $316 = $315&65535; - $317 = $316 & 65280; - $318 = ((($11)) + 4|0); - $319 = HEAPU8[$318>>0]|(HEAPU8[$318+1>>0]<<8); - $320 = $319&65535; - $321 = $320 | $317; - $322 = $321&65535; - HEAP8[$318>>0]=$322&255;HEAP8[$318+1>>0]=$322>>8; - break; - } - $258 = $5; - $259 = ((($12)) + 272|0); - $260 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($258,$259)|0); - $261 = $260&255; - $8 = $261; - $262 = $9; - $263 = ((($11)) + 2|0); - $264 = HEAPU8[$263>>0]|(HEAPU8[$263+1>>0]<<8); - $265 = $264&65535; - $266 = $265 >> 8; - $267 = (($262) + ($266))|0; - $268 = ((($12)) + 1|0); - $269 = ((($268)) + 2|0); - $270 = HEAPU8[$269>>0]|(HEAPU8[$269+1>>0]<<8); - $271 = $270&65535; - $272 = $271 >> 8; - $273 = (($267) - ($272))|0; - $274 = (($273|0) / 2)&-1; - $9 = $274; - $275 = $8; - $276 = $275&255; - $277 = $9; - $278 = ((($12)) + 1|0); - $279 = ((($278)) + 4|0); - $280 = HEAPU8[$279>>0]|(HEAPU8[$279+1>>0]<<8); - $281 = $280&65535; - $282 = $281 >> 8; - $283 = (($277) + ($282))|0; - $284 = ($283|0)<=(0); - if ($284) { - $302 = 0; - } else { - $285 = $9; - $286 = ((($12)) + 1|0); - $287 = ((($286)) + 4|0); - $288 = HEAPU8[$287>>0]|(HEAPU8[$287+1>>0]<<8); - $289 = $288&65535; - $290 = $289 >> 8; - $291 = (($285) + ($290))|0; - $292 = ($291|0)>=(255); - if ($292) { - $302 = -1; - } else { - $293 = $9; - $294 = ((($12)) + 1|0); - $295 = ((($294)) + 4|0); - $296 = HEAPU8[$295>>0]|(HEAPU8[$295+1>>0]<<8); - $297 = $296&65535; - $298 = $297 >> 8; - $299 = (($293) + ($298))|0; - $300 = $299&255; - $302 = $300; - } - } - $301 = $302&255; - $303 = (($276) + ($301))|0; - $304 = (__Z7U8_FOLDi($303)|0); - $305 = $304&255; - $306 = $305&65535; - $307 = $306 << 8; - $308 = ((($11)) + 4|0); - $309 = HEAPU8[$308>>0]|(HEAPU8[$308+1>>0]<<8); - $310 = $309&65535; - $311 = $310 | $307; - $312 = $311&65535; - HEAP8[$308>>0]=$312&255;HEAP8[$308+1>>0]=$312>>8; - } else { - $323 = ((($11)) + 2|0); - HEAP8[$323>>0]=$79&255;HEAP8[$323+1>>0]=$79>>8; - $324 = HEAPU8[$11>>0]|(HEAPU8[$11+1>>0]<<8); - $325 = ((($11)) + 4|0); - HEAP8[$325>>0]=$324&255;HEAP8[$325+1>>0]=$324>>8; - } - } while(0); - $326 = ((($12)) + 1|0); - ;HEAP8[$326>>0]=HEAP8[$11>>0]|0;HEAP8[$326+1>>0]=HEAP8[$11+1>>0]|0;HEAP8[$326+2>>0]=HEAP8[$11+2>>0]|0;HEAP8[$326+3>>0]=HEAP8[$11+3>>0]|0;HEAP8[$326+4>>0]=HEAP8[$11+4>>0]|0;HEAP8[$326+5>>0]=HEAP8[$11+5>>0]|0; - $327 = ((($12)) + 1|0); - $328 = $6; - __ZN6laszip7formats7packersINS0_3las3rgbEE4packERKS3_Pc($327,$328); - $329 = $6; - $330 = ((($329)) + 6|0); - $3 = $330; - $331 = $3; - STACKTOP = sp;return ($331|0); -} -function __ZN6laszip7formats7packersINS0_3las3rgbEE6unpackEPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $1; - $3 = $2; - $4 = (__ZN6laszip7formats7packersItE6unpackEPKc($3)|0); - $5 = $2; - $6 = ((($5)) + 2|0); - $7 = (__ZN6laszip7formats7packersItE6unpackEPKc($6)|0); - $8 = $2; - $9 = ((($8)) + 4|0); - $10 = (__ZN6laszip7formats7packersItE6unpackEPKc($9)|0); - __ZN6laszip7formats3las3rgbC2Ettt($0,$4,$7,$10); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersINS0_3las3rgbEE4packERKS3_Pc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = HEAPU8[$4>>0]|(HEAPU8[$4+1>>0]<<8); - $6 = $3; - __ZN6laszip7formats7packersItE4packEtPc($5,$6); - $7 = $2; - $8 = ((($7)) + 2|0); - $9 = HEAPU8[$8>>0]|(HEAPU8[$8+1>>0]<<8); - $10 = $3; - $11 = ((($10)) + 2|0); - __ZN6laszip7formats7packersItE4packEtPc($9,$11); - $12 = $2; - $13 = ((($12)) + 4|0); - $14 = HEAPU8[$13>>0]|(HEAPU8[$13+1>>0]<<8); - $15 = $3; - $16 = ((($15)) + 4|0); - __ZN6laszip7formats7packersItE4packEtPc($14,$16); - STACKTOP = sp;return; -} -function __ZN6laszip7formats3las3rgbC2Ettt($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $4; - $9 = $5; - HEAP8[$8>>0]=$9&255;HEAP8[$8+1>>0]=$9>>8; - $10 = ((($8)) + 2|0); - $11 = $6; - HEAP8[$10>>0]=$11&255;HEAP8[$10+1>>0]=$11>>8; - $12 = ((($8)) + 4|0); - $13 = $7; - HEAP8[$12>>0]=$13&255;HEAP8[$12+1>>0]=$13>>8; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 440; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEEC2ERS9_RKSF_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - __ZN6laszip7formats10base_fieldC2Ev($6); - HEAP32[$6>>2] = (2204); - $7 = ((($6)) + 4|0); - $8 = $4; - HEAP32[$7>>2] = $8; - $9 = ((($6)) + 8|0); - $10 = $5; - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2ERKS6_($9,$10); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISH_EEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISN_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2228); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - ;HEAP32[$4>>2]=HEAP32[$5>>2]|0;HEAP8[$4+4>>0]=HEAP8[$5+4>>0]|0; - $6 = ((($4)) + 8|0); - $7 = $3; - $8 = ((($7)) + 8|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($6,$8); - $9 = ((($4)) + 20|0); - $10 = $3; - $11 = ((($10)) + 20|0); - __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($9,$11); - $12 = ((($4)) + 32|0); - $13 = $3; - $14 = ((($13)) + 32|0); - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2ERKS6_($12,$14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2204); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEEC2ERKS3_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $17 = sp + 36|0; - $19 = sp; - $21 = sp + 101|0; - $27 = sp + 100|0; - $25 = $0; - $26 = $1; - $29 = $25; - $30 = $26; - $24 = $30; - $31 = $24; - $32 = ((($31)) + 8|0); - $23 = $32; - $33 = $23; - $22 = $33; - $34 = $22; - $20 = $34; - $35 = $20; - ;HEAP8[$19>>0]=HEAP8[$21>>0]|0; - $18 = $35; - $15 = $29; - $16 = $27; - $36 = $15; - $14 = $36; - HEAP32[$36>>2] = 0; - $37 = ((($36)) + 4|0); - HEAP32[$37>>2] = 0; - $38 = ((($36)) + 8|0); - HEAP32[$17>>2] = 0; - $39 = $16; - $11 = $38; - $12 = $17; - $13 = $39; - $40 = $11; - $41 = $12; - $10 = $41; - $42 = $10; - $4 = $40; - $5 = $42; - $43 = $4; - $44 = $5; - $3 = $44; - HEAP32[$43>>2] = 0; - $45 = $13; - $6 = $45; - $46 = $6; - $8 = $40; - $9 = $46; - $47 = $9; - $7 = $47; - $48 = $26; - $2 = $48; - $49 = $2; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $52 = HEAP32[$49>>2]|0; - $53 = $51; - $54 = $52; - $55 = (($53) - ($54))|0; - $28 = $55; - $56 = $28; - $57 = ($56>>>0)>(0); - if (!($57)) { - STACKTOP = sp;return; - } - $58 = $28; - __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($29,$58); - $59 = $26; - $60 = HEAP32[$59>>2]|0; - $61 = $26; - $62 = ((($61)) + 4|0); - $63 = HEAP32[$62>>2]|0; - $64 = $28; - __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endIPhEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_j($29,$60,$63,$64); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2ERKS6_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 208|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(208|0); - $$byval_copy1 = sp + 192|0; - $$byval_copy = sp + 184|0; - $28 = sp + 72|0; - $33 = sp + 202|0; - $34 = sp + 52|0; - $36 = sp; - $38 = sp + 201|0; - $44 = sp + 200|0; - $45 = sp + 16|0; - $46 = sp + 8|0; - $42 = $0; - $43 = $1; - $47 = $42; - $48 = $43; - $41 = $48; - $49 = $41; - $50 = ((($49)) + 20|0); - $40 = $50; - $51 = $40; - $39 = $51; - $52 = $39; - $37 = $52; - $53 = $37; - ;HEAP8[$36>>0]=HEAP8[$38>>0]|0; - $35 = $53; - $31 = $47; - $32 = $44; - $54 = $31; - $55 = $32; - $29 = $33; - $30 = $55; - $26 = $54; - $27 = $33; - $56 = $26; - HEAP32[$56>>2] = 0; - $57 = ((($56)) + 4|0); - HEAP32[$57>>2] = 0; - $58 = ((($56)) + 8|0); - HEAP32[$58>>2] = 0; - $59 = ((($56)) + 12|0); - HEAP32[$28>>2] = 0; - $60 = $27; - $23 = $59; - $24 = $28; - $25 = $60; - $61 = $23; - $62 = $24; - $22 = $62; - $63 = $22; - $16 = $61; - $17 = $63; - $64 = $16; - $65 = $17; - $15 = $65; - HEAP32[$64>>2] = 0; - $66 = $25; - $18 = $66; - $67 = $18; - $20 = $61; - $21 = $67; - $68 = $21; - $19 = $68; - $69 = ((($54)) + 16|0); - HEAP32[$69>>2] = 0; - $70 = ((($54)) + 20|0); - HEAP32[$34>>2] = 0; - $71 = $32; - $12 = $70; - $13 = $34; - $14 = $71; - $72 = $12; - $73 = $13; - $11 = $73; - $74 = $11; - $5 = $72; - $6 = $74; - $75 = $5; - $76 = $6; - $4 = $76; - $77 = $4; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = $14; - $7 = $79; - $80 = $7; - $9 = $72; - $10 = $80; - $81 = $10; - $8 = $81; - $82 = $43; - $2 = $82; - $83 = $2; - __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($45,$83); - $84 = $43; - $3 = $84; - $85 = $3; - __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($46,$85); - ;HEAP32[$$byval_copy>>2]=HEAP32[$45>>2]|0;HEAP32[$$byval_copy+4>>2]=HEAP32[$45+4>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$46>>2]|0;HEAP32[$$byval_copy1+4>>2]=HEAP32[$46+4>>2]|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendINS_16__deque_iteratorIS3_PKS3_RS9_PKSA_iLi0EEEEEvT_SF_PNS_9enable_ifIXsr21__is_forward_iteratorISF_EE5valueEvE4typeE($47,$$byval_copy,$$byval_copy1,0); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__213__vector_baseIhNS_9allocatorIhEEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; - var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; - var $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $40 = $0; - $41 = $1; - $42 = $40; - $43 = $41; - $44 = (__ZNKSt3__26vectorIhNS_9allocatorIhEEE8max_sizeEv($42)|0); - $45 = ($43>>>0)>($44>>>0); - if ($45) { - __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($42); - // unreachable; - } else { - $39 = $42; - $46 = $39; - $47 = ((($46)) + 8|0); - $38 = $47; - $48 = $38; - $37 = $48; - $49 = $37; - $50 = $41; - $7 = $49; - $8 = $50; - $51 = $7; - $52 = $8; - $4 = $51; - $5 = $52; - $6 = 0; - $53 = $4; - $3 = $53; - $54 = $5; - $2 = $54; - $55 = $2; - $56 = (__Znwj($55)|0); - $57 = ((($42)) + 4|0); - HEAP32[$57>>2] = $56; - HEAP32[$42>>2] = $56; - $58 = HEAP32[$42>>2]|0; - $59 = $41; - $60 = (($58) + ($59)|0); - $11 = $42; - $61 = $11; - $62 = ((($61)) + 8|0); - $10 = $62; - $63 = $10; - $9 = $63; - $64 = $9; - HEAP32[$64>>2] = $60; - $35 = $42; - $36 = 0; - $65 = $35; - $34 = $65; - $66 = $34; - $67 = HEAP32[$66>>2]|0; - $33 = $67; - $68 = $33; - $13 = $65; - $69 = $13; - $70 = HEAP32[$69>>2]|0; - $12 = $70; - $71 = $12; - $18 = $65; - $72 = $18; - $17 = $72; - $73 = $17; - $16 = $73; - $74 = $16; - $75 = ((($74)) + 8|0); - $15 = $75; - $76 = $15; - $14 = $76; - $77 = $14; - $78 = HEAP32[$77>>2]|0; - $79 = HEAP32[$73>>2]|0; - $80 = $78; - $81 = $79; - $82 = (($80) - ($81))|0; - $83 = (($71) + ($82)|0); - $20 = $65; - $84 = $20; - $85 = HEAP32[$84>>2]|0; - $19 = $85; - $86 = $19; - $25 = $65; - $87 = $25; - $24 = $87; - $88 = $24; - $23 = $88; - $89 = $23; - $90 = ((($89)) + 8|0); - $22 = $90; - $91 = $22; - $21 = $91; - $92 = $21; - $93 = HEAP32[$92>>2]|0; - $94 = HEAP32[$88>>2]|0; - $95 = $93; - $96 = $94; - $97 = (($95) - ($96))|0; - $98 = (($86) + ($97)|0); - $27 = $65; - $99 = $27; - $100 = HEAP32[$99>>2]|0; - $26 = $100; - $101 = $26; - $102 = $36; - $103 = (($101) + ($102)|0); - $28 = $65; - $29 = $68; - $30 = $83; - $31 = $98; - $32 = $103; - STACKTOP = sp;return; - } -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endIPhEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES7_S7_j($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $21 = sp + 68|0; - $16 = $0; - $17 = $1; - $18 = $2; - $19 = $3; - $22 = $16; - $15 = $22; - $23 = $15; - $24 = ((($23)) + 8|0); - $14 = $24; - $25 = $14; - $13 = $25; - $26 = $13; - $20 = $26; - $27 = $19; - $4 = $21; - $5 = $22; - $6 = $27; - $28 = $20; - $29 = $17; - $30 = $18; - $31 = ((($22)) + 4|0); - $7 = $28; - $8 = $29; - $9 = $30; - $10 = $31; - $32 = $9; - $33 = $8; - $34 = $32; - $35 = $33; - $36 = (($34) - ($35))|0; - $11 = $36; - $37 = $11; - $38 = ($37|0)>(0); - if (!($38)) { - $12 = $21; - STACKTOP = sp;return; - } - $39 = $10; - $40 = HEAP32[$39>>2]|0; - $41 = $8; - $42 = $11; - _memcpy(($40|0),($41|0),($42|0))|0; - $43 = $11; - $44 = $10; - $45 = HEAP32[$44>>2]|0; - $46 = (($45) + ($43)|0); - HEAP32[$44>>2] = $46; - $12 = $21; - STACKTOP = sp;return; -} -function __ZNSt3__213__vector_baseIhNS_9allocatorIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $19 = sp; - $22 = sp + 120|0; - $31 = $0; - $32 = $31; - $33 = HEAP32[$32>>2]|0; - $34 = ($33|0)!=(0|0); - if (!($34)) { - STACKTOP = sp;return; - } - $30 = $32; - $35 = $30; - $36 = HEAP32[$35>>2]|0; - $27 = $35; - $28 = $36; - $37 = $27; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $29 = $39; - while(1) { - $40 = $28; - $41 = $29; - $42 = ($40|0)!=($41|0); - if (!($42)) { - break; - } - $26 = $37; - $43 = $26; - $44 = ((($43)) + 8|0); - $25 = $44; - $45 = $25; - $24 = $45; - $46 = $24; - $47 = $29; - $48 = ((($47)) + -1|0); - $29 = $48; - $23 = $48; - $49 = $23; - $20 = $46; - $21 = $49; - $50 = $20; - $51 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $50; - $18 = $51; - $52 = $17; - $53 = $18; - $15 = $52; - $16 = $53; - } - $54 = $28; - $55 = ((($37)) + 4|0); - HEAP32[$55>>2] = $54; - $7 = $32; - $56 = $7; - $57 = ((($56)) + 8|0); - $6 = $57; - $58 = $6; - $5 = $58; - $59 = $5; - $60 = HEAP32[$32>>2]|0; - $4 = $32; - $61 = $4; - $3 = $61; - $62 = $3; - $63 = ((($62)) + 8|0); - $2 = $63; - $64 = $2; - $1 = $64; - $65 = $1; - $66 = HEAP32[$65>>2]|0; - $67 = HEAP32[$61>>2]|0; - $68 = $66; - $69 = $67; - $70 = (($68) - ($69))|0; - $12 = $59; - $13 = $60; - $14 = $70; - $71 = $12; - $72 = $13; - $73 = $14; - $9 = $71; - $10 = $72; - $11 = $73; - $74 = $10; - $8 = $74; - $75 = $8; - __ZdlPv($75); - STACKTOP = sp;return; -} -function __ZNKSt3__26vectorIhNS_9allocatorIhEEE8max_sizeEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $6 = sp + 8|0; - $9 = sp + 77|0; - $12 = sp; - $14 = sp + 76|0; - $19 = sp + 16|0; - $20 = sp + 12|0; - $18 = $0; - $21 = $18; - $17 = $21; - $22 = $17; - $23 = ((($22)) + 8|0); - $16 = $23; - $24 = $16; - $15 = $24; - $25 = $15; - $13 = $25; - $26 = $13; - ;HEAP8[$12>>0]=HEAP8[$14>>0]|0; - $11 = $26; - $27 = $11; - $10 = $27; - HEAP32[$19>>2] = -1; - HEAP32[$20>>2] = 2147483647; - $7 = $19; - $8 = $20; - $28 = $7; - $29 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $28; - $5 = $29; - $30 = $5; - $31 = $4; - $1 = $6; - $2 = $30; - $3 = $31; - $32 = $2; - $33 = HEAP32[$32>>2]|0; - $34 = $3; - $35 = HEAP32[$34>>2]|0; - $36 = ($33>>>0)<($35>>>0); - $37 = $5; - $38 = $4; - $39 = $36 ? $37 : $38; - $40 = HEAP32[$39>>2]|0; - STACKTOP = sp;return ($40|0); -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendINS_16__deque_iteratorIS3_PKS3_RS9_PKSA_iLi0EEEEEvT_SF_PNS_9enable_ifIXsr21__is_forward_iteratorISF_EE5valueEvE4typeE($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0; - var $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0; - var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; - var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; - var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; - var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $29 = sp + 40|0; - $34 = sp + 277|0; - $47 = sp + 32|0; - $48 = sp + 24|0; - $49 = sp + 16|0; - $50 = sp + 104|0; - $51 = sp + 96|0; - $52 = sp + 276|0; - $53 = sp + 8|0; - $54 = sp; - $58 = sp + 72|0; - $59 = sp + 64|0; - $62 = sp + 48|0; - $55 = $0; - $56 = $3; - $63 = $55; - ;HEAP32[$58>>2]=HEAP32[$1>>2]|0;HEAP32[$58+4>>2]=HEAP32[$1+4>>2]|0; - ;HEAP32[$59>>2]=HEAP32[$2>>2]|0;HEAP32[$59+4>>2]=HEAP32[$2+4>>2]|0; - ;HEAP8[$53>>0]=HEAP8[$59>>0]|0;HEAP8[$53+1>>0]=HEAP8[$59+1>>0]|0;HEAP8[$53+2>>0]=HEAP8[$59+2>>0]|0;HEAP8[$53+3>>0]=HEAP8[$59+3>>0]|0;HEAP8[$53+4>>0]=HEAP8[$59+4>>0]|0;HEAP8[$53+5>>0]=HEAP8[$59+5>>0]|0;HEAP8[$53+6>>0]=HEAP8[$59+6>>0]|0;HEAP8[$53+7>>0]=HEAP8[$59+7>>0]|0; - ;HEAP8[$54>>0]=HEAP8[$58>>0]|0;HEAP8[$54+1>>0]=HEAP8[$58+1>>0]|0;HEAP8[$54+2>>0]=HEAP8[$58+2>>0]|0;HEAP8[$54+3>>0]=HEAP8[$58+3>>0]|0;HEAP8[$54+4>>0]=HEAP8[$58+4>>0]|0;HEAP8[$54+5>>0]=HEAP8[$58+5>>0]|0;HEAP8[$54+6>>0]=HEAP8[$58+6>>0]|0;HEAP8[$54+7>>0]=HEAP8[$58+7>>0]|0; - ;HEAP32[$50>>2]=HEAP32[$54>>2]|0;HEAP32[$50+4>>2]=HEAP32[$54+4>>2]|0; - ;HEAP32[$51>>2]=HEAP32[$53>>2]|0;HEAP32[$51+4>>2]=HEAP32[$53+4>>2]|0; - ;HEAP8[$47>>0]=HEAP8[$52>>0]|0; - ;HEAP8[$48>>0]=HEAP8[$51>>0]|0;HEAP8[$48+1>>0]=HEAP8[$51+1>>0]|0;HEAP8[$48+2>>0]=HEAP8[$51+2>>0]|0;HEAP8[$48+3>>0]=HEAP8[$51+3>>0]|0;HEAP8[$48+4>>0]=HEAP8[$51+4>>0]|0;HEAP8[$48+5>>0]=HEAP8[$51+5>>0]|0;HEAP8[$48+6>>0]=HEAP8[$51+6>>0]|0;HEAP8[$48+7>>0]=HEAP8[$51+7>>0]|0; - ;HEAP8[$49>>0]=HEAP8[$50>>0]|0;HEAP8[$49+1>>0]=HEAP8[$50+1>>0]|0;HEAP8[$49+2>>0]=HEAP8[$50+2>>0]|0;HEAP8[$49+3>>0]=HEAP8[$50+3>>0]|0;HEAP8[$49+4>>0]=HEAP8[$50+4>>0]|0;HEAP8[$49+5>>0]=HEAP8[$50+5>>0]|0;HEAP8[$49+6>>0]=HEAP8[$50+6>>0]|0;HEAP8[$49+7>>0]=HEAP8[$50+7>>0]|0; - $45 = $48; - $46 = $49; - $64 = $45; - $65 = $46; - $42 = $64; - $43 = $65; - $66 = $42; - $67 = $43; - $40 = $66; - $41 = $67; - $68 = $40; - $69 = ((($68)) + 4|0); - $70 = HEAP32[$69>>2]|0; - $71 = $41; - $72 = ((($71)) + 4|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($70|0)==($73|0); - $75 = $74 ^ 1; - if ($75) { - $76 = $45; - $77 = HEAP32[$76>>2]|0; - $78 = $46; - $79 = HEAP32[$78>>2]|0; - $80 = $77; - $81 = $79; - $82 = (($80) - ($81))|0; - $83 = (($82|0) / 4)&-1; - $84 = ($83*93)|0; - $85 = $45; - $86 = ((($85)) + 4|0); - $87 = HEAP32[$86>>2]|0; - $88 = $45; - $89 = HEAP32[$88>>2]|0; - $90 = HEAP32[$89>>2]|0; - $91 = $87; - $92 = $90; - $93 = (($91) - ($92))|0; - $94 = (($93|0) / 44)&-1; - $95 = (($84) + ($94))|0; - $96 = $46; - $97 = ((($96)) + 4|0); - $98 = HEAP32[$97>>2]|0; - $99 = $46; - $100 = HEAP32[$99>>2]|0; - $101 = HEAP32[$100>>2]|0; - $102 = $98; - $103 = $101; - $104 = (($102) - ($103))|0; - $105 = (($104|0) / 44)&-1; - $106 = (($95) - ($105))|0; - $44 = $106; - } else { - $44 = 0; - } - $107 = $44; - $57 = $107; - $20 = $63; - $108 = $20; - $109 = ((($108)) + 20|0); - $19 = $109; - $110 = $19; - $18 = $110; - $111 = $18; - $60 = $111; - $10 = $63; - $112 = $10; - $9 = $112; - $113 = $9; - $8 = $113; - $114 = $8; - $115 = ((($114)) + 8|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($114)) + 4|0); - $118 = HEAP32[$117>>2]|0; - $119 = $116; - $120 = $118; - $121 = (($119) - ($120))|0; - $122 = (($121|0) / 4)&-1; - $123 = ($122|0)==(0); - if ($123) { - $144 = 0; - } else { - $7 = $113; - $124 = $7; - $125 = ((($124)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = ((($124)) + 4|0); - $128 = HEAP32[$127>>2]|0; - $129 = $126; - $130 = $128; - $131 = (($129) - ($130))|0; - $132 = (($131|0) / 4)&-1; - $133 = ($132*93)|0; - $134 = (($133) - 1)|0; - $144 = $134; - } - $135 = ((($112)) + 16|0); - $136 = HEAP32[$135>>2]|0; - $6 = $112; - $137 = $6; - $138 = ((($137)) + 20|0); - $5 = $138; - $139 = $5; - $4 = $139; - $140 = $4; - $141 = HEAP32[$140>>2]|0; - $142 = (($136) + ($141))|0; - $143 = (($144) - ($142))|0; - $61 = $143; - $145 = $57; - $146 = $61; - $147 = ($145>>>0)>($146>>>0); - if ($147) { - $148 = $57; - $149 = $61; - $150 = (($148) - ($149))|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($63,$150); - } - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($62,$63); - while(1) { - $13 = $1; - $14 = $2; - $151 = $13; - $152 = $14; - $11 = $151; - $12 = $152; - $153 = $11; - $154 = ((($153)) + 4|0); - $155 = HEAP32[$154>>2]|0; - $156 = $12; - $157 = ((($156)) + 4|0); - $158 = HEAP32[$157>>2]|0; - $159 = ($155|0)==($158|0); - $160 = $159 ^ 1; - if (!($160)) { - break; - } - $161 = $60; - $15 = $62; - $162 = $15; - $163 = ((($162)) + 4|0); - $164 = HEAP32[$163>>2]|0; - $16 = $164; - $165 = $16; - $17 = $1; - $166 = $17; - $167 = ((($166)) + 4|0); - $168 = HEAP32[$167>>2]|0; - $31 = $161; - $32 = $165; - $33 = $168; - $169 = $31; - $170 = $32; - $171 = $33; - $30 = $171; - $172 = $30; - ;HEAP8[$29>>0]=HEAP8[$34>>0]|0; - $26 = $169; - $27 = $170; - $28 = $172; - $173 = $26; - $174 = $27; - $175 = $28; - $25 = $175; - $176 = $25; - $22 = $173; - $23 = $174; - $24 = $176; - $177 = $23; - $178 = $24; - $21 = $178; - $179 = $21; - __ZN6laszip6models10arithmeticC2ERKS1_($177,$179); - $35 = $62; - $180 = $35; - $181 = ((($180)) + 4|0); - $182 = HEAP32[$181>>2]|0; - $183 = ((($182)) + 44|0); - HEAP32[$181>>2] = $183; - $184 = HEAP32[$180>>2]|0; - $185 = HEAP32[$184>>2]|0; - $186 = $183; - $187 = $185; - $188 = (($186) - ($187))|0; - $189 = (($188|0) / 44)&-1; - $190 = ($189|0)==(93); - if ($190) { - $191 = HEAP32[$180>>2]|0; - $192 = ((($191)) + 4|0); - HEAP32[$180>>2] = $192; - $193 = HEAP32[$180>>2]|0; - $194 = HEAP32[$193>>2]|0; - $195 = ((($180)) + 4|0); - HEAP32[$195>>2] = $194; - } - $36 = $1; - $196 = $36; - $197 = ((($196)) + 4|0); - $198 = HEAP32[$197>>2]|0; - $199 = ((($198)) + 44|0); - HEAP32[$197>>2] = $199; - $200 = HEAP32[$196>>2]|0; - $201 = HEAP32[$200>>2]|0; - $202 = $199; - $203 = $201; - $204 = (($202) - ($203))|0; - $205 = (($204|0) / 44)&-1; - $206 = ($205|0)==(93); - if ($206) { - $207 = HEAP32[$196>>2]|0; - $208 = ((($207)) + 4|0); - HEAP32[$196>>2] = $208; - $209 = HEAP32[$196>>2]|0; - $210 = HEAP32[$209>>2]|0; - $211 = ((($196)) + 4|0); - HEAP32[$211>>2] = $210; - } - $39 = $63; - $212 = $39; - $213 = ((($212)) + 20|0); - $38 = $213; - $214 = $38; - $37 = $214; - $215 = $37; - $216 = HEAP32[$215>>2]|0; - $217 = (($216) + 1)|0; - HEAP32[$215>>2] = $217; - } - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $16 = $13; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5clearEv($16); - $12 = $16; - $17 = $12; - $18 = ((($17)) + 4|0); - $19 = HEAP32[$18>>2]|0; - $14 = $19; - $11 = $16; - $20 = $11; - $21 = ((($20)) + 8|0); - $22 = HEAP32[$21>>2]|0; - $15 = $22; - while(1) { - $23 = $14; - $24 = $15; - $25 = ($23|0)!=($24|0); - if (!($25)) { - break; - } - $10 = $16; - $26 = $10; - $27 = ((($26)) + 20|0); - $9 = $27; - $28 = $9; - $8 = $28; - $29 = $8; - $30 = $14; - $31 = HEAP32[$30>>2]|0; - $5 = $29; - $6 = $31; - $7 = 93; - $32 = $5; - $33 = $6; - $34 = $7; - $2 = $32; - $3 = $33; - $4 = $34; - $35 = $3; - $1 = $35; - $36 = $1; - __ZdlPv($36); - $37 = $14; - $38 = ((($37)) + 4|0); - $14 = $38; - } - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEED2Ev($16); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $24 = $48; - $49 = $24; - $50 = ((($41)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ((($51)) + -4|0); - HEAP32[$50>>2] = $52; - $23 = $52; - $53 = $23; - $20 = $49; - $21 = $53; - $54 = $20; - $55 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $54; - $18 = $55; - $56 = $17; - $57 = $18; - $15 = $56; - $16 = $57; - } - $58 = HEAP32[$35>>2]|0; - $59 = ($58|0)!=(0|0); - if (!($59)) { - STACKTOP = sp;return; - } - $14 = $35; - $60 = $14; - $61 = ((($60)) + 12|0); - $13 = $61; - $62 = $13; - $12 = $62; - $63 = $12; - $64 = HEAP32[$35>>2]|0; - $4 = $35; - $65 = $4; - $3 = $65; - $66 = $3; - $67 = ((($66)) + 12|0); - $2 = $67; - $68 = $2; - $1 = $68; - $69 = $1; - $70 = HEAP32[$69>>2]|0; - $71 = HEAP32[$65>>2]|0; - $72 = $70; - $73 = $71; - $74 = (($72) - ($73))|0; - $75 = (($74|0) / 4)&-1; - $9 = $63; - $10 = $64; - $11 = $75; - $76 = $9; - $77 = $10; - $78 = $11; - $6 = $76; - $7 = $77; - $8 = $78; - $79 = $7; - $5 = $79; - $80 = $5; - __ZdlPv($80); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $$byval_copy2 = 0, $$byval_copy3 = 0, $$byval_copy4 = 0, $$byval_copy5 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0; - var $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0; - var $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0; - var $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0; - var $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0, $1083 = 0; - var $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0, $1088 = 0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0; - var $1101 = 0, $1102 = 0, $1103 = 0, $1104 = 0, $1105 = 0, $1106 = 0, $1107 = 0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0; - var $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0, $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0; - var $1138 = 0, $1139 = 0, $114 = 0, $1140 = 0, $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0; - var $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0, $116 = 0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0; - var $1174 = 0, $1175 = 0, $1176 = 0, $1177 = 0, $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0; - var $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0, $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0; - var $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0, $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0; - var $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0, $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0, $1245 = 0; - var $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0, $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0; - var $1264 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0; - var $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0; - var $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0; - var $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0; - var $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0; - var $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0; - var $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0; - var $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0; - var $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0; - var $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0; - var $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0; - var $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0; - var $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0; - var $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0; - var $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0; - var $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0; - var $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0; - var $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0; - var $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0; - var $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0; - var $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0; - var $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0; - var $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0; - var $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0; - var $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0; - var $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0; - var $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0; - var $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0; - var $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0; - var $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0; - var $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0; - var $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0; - var $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0; - var $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0; - var $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0; - var $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0; - var $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0; - var $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0; - var $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0; - var $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0; - var $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0; - var $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0; - var $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0; - var $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0; - var $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0; - var $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0; - var $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0; - var $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0; - var $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 1744|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(1744|0); - $$byval_copy5 = sp + 1724|0; - $$byval_copy4 = sp + 1720|0; - $$byval_copy3 = sp + 1716|0; - $$byval_copy2 = sp + 1712|0; - $$byval_copy1 = sp + 1708|0; - $$byval_copy = sp + 1704|0; - $22 = sp + 80|0; - $25 = sp + 1738|0; - $43 = sp + 72|0; - $46 = sp + 1737|0; - $52 = sp + 1516|0; - $58 = sp + 1492|0; - $64 = sp + 1468|0; - $76 = sp + 1420|0; - $102 = sp + 64|0; - $107 = sp + 1736|0; - $115 = sp + 1272|0; - $116 = sp + 1268|0; - $117 = sp + 1248|0; - $118 = sp + 1244|0; - $119 = sp + 1240|0; - $122 = sp + 56|0; - $125 = sp + 1735|0; - $170 = sp + 48|0; - $173 = sp + 1734|0; - $179 = sp + 1016|0; - $185 = sp + 992|0; - $191 = sp + 968|0; - $203 = sp + 920|0; - $229 = sp + 40|0; - $234 = sp + 1733|0; - $242 = sp + 772|0; - $243 = sp + 768|0; - $244 = sp + 748|0; - $245 = sp + 744|0; - $246 = sp + 740|0; - $249 = sp + 32|0; - $252 = sp + 1732|0; - $267 = sp + 24|0; - $270 = sp + 1731|0; - $276 = sp + 636|0; - $282 = sp + 612|0; - $288 = sp + 588|0; - $300 = sp + 540|0; - $326 = sp + 16|0; - $331 = sp + 1730|0; - $339 = sp + 392|0; - $340 = sp + 388|0; - $341 = sp + 368|0; - $342 = sp + 364|0; - $343 = sp + 360|0; - $346 = sp + 8|0; - $349 = sp + 1729|0; - $358 = sp; - $361 = sp + 1728|0; - $367 = sp + 280|0; - $373 = sp + 256|0; - $379 = sp + 232|0; - $391 = sp + 184|0; - $401 = sp + 144|0; - $402 = sp + 140|0; - $403 = sp + 136|0; - $404 = sp + 132|0; - $405 = sp + 128|0; - $406 = sp + 124|0; - $408 = sp + 100|0; - $409 = sp + 96|0; - $410 = sp + 92|0; - $411 = sp + 88|0; - $398 = $0; - $399 = $1; - $413 = $398; - $397 = $413; - $414 = $397; - $415 = ((($414)) + 20|0); - $396 = $415; - $416 = $396; - $395 = $416; - $417 = $395; - $400 = $417; - $418 = $399; - $394 = $413; - $419 = $394; - $420 = ((($419)) + 8|0); - $421 = HEAP32[$420>>2]|0; - $422 = ((($419)) + 4|0); - $423 = HEAP32[$422>>2]|0; - $424 = ($421|0)==($423|0); - $425 = $424&1; - $426 = (($418) + ($425))|0; - $393 = $426; - $427 = $393; - $428 = (($427>>>0) / 93)&-1; - $429 = $393; - $430 = (($429>>>0) % 93)&-1; - $431 = ($430|0)!=(0); - $432 = $431&1; - $433 = (($428) + ($432))|0; - HEAP32[$401>>2] = $433; - $392 = $413; - $434 = $392; - $435 = ((($434)) + 16|0); - $436 = HEAP32[$435>>2]|0; - $437 = (($436>>>0) / 93)&-1; - HEAP32[$402>>2] = $437; - $359 = $402; - $360 = $401; - $438 = $359; - $439 = $360; - ;HEAP8[$358>>0]=HEAP8[$361>>0]|0; - $356 = $438; - $357 = $439; - $440 = $357; - $441 = $356; - $353 = $358; - $354 = $440; - $355 = $441; - $442 = $354; - $443 = HEAP32[$442>>2]|0; - $444 = $355; - $445 = HEAP32[$444>>2]|0; - $446 = ($443>>>0)<($445>>>0); - $447 = $357; - $448 = $356; - $449 = $446 ? $447 : $448; - $450 = HEAP32[$449>>2]|0; - HEAP32[$402>>2] = $450; - $451 = HEAP32[$402>>2]|0; - $452 = HEAP32[$401>>2]|0; - $453 = (($452) - ($451))|0; - HEAP32[$401>>2] = $453; - $454 = HEAP32[$401>>2]|0; - $455 = ($454|0)==(0); - if ($455) { - $456 = HEAP32[$402>>2]|0; - $457 = ($456*93)|0; - $458 = ((($413)) + 16|0); - $459 = HEAP32[$458>>2]|0; - $460 = (($459) - ($457))|0; - HEAP32[$458>>2] = $460; - while(1) { - $461 = HEAP32[$402>>2]|0; - $462 = ($461>>>0)>(0); - if (!($462)) { - break; - } - $254 = $413; - $463 = $254; - $464 = ((($463)) + 4|0); - $465 = HEAP32[$464>>2]|0; - $466 = HEAP32[$465>>2]|0; - HEAP32[$403>>2] = $466; - $253 = $413; - $467 = $253; - $468 = ((($467)) + 4|0); - $469 = HEAP32[$468>>2]|0; - $470 = ((($469)) + 4|0); - $250 = $467; - $251 = $470; - $471 = $250; - $472 = $251; - ;HEAP8[$249>>0]=HEAP8[$252>>0]|0; - $247 = $471; - $248 = $472; - $473 = $247; - $474 = $248; - $475 = ((($473)) + 4|0); - HEAP32[$475>>2] = $474; - $238 = $413; - $239 = $403; - $476 = $238; - $477 = ((($476)) + 8|0); - $478 = HEAP32[$477>>2]|0; - $237 = $476; - $479 = $237; - $480 = ((($479)) + 12|0); - $236 = $480; - $481 = $236; - $235 = $481; - $482 = $235; - $483 = HEAP32[$482>>2]|0; - $484 = ($478|0)==($483|0); - do { - if ($484) { - $485 = ((($476)) + 4|0); - $486 = HEAP32[$485>>2]|0; - $487 = HEAP32[$476>>2]|0; - $488 = ($486>>>0)>($487>>>0); - if (!($488)) { - $206 = $476; - $535 = $206; - $536 = ((($535)) + 12|0); - $205 = $536; - $537 = $205; - $204 = $537; - $538 = $204; - $539 = HEAP32[$538>>2]|0; - $540 = HEAP32[$476>>2]|0; - $541 = $539; - $542 = $540; - $543 = (($541) - ($542))|0; - $544 = (($543|0) / 4)&-1; - $545 = $544<<1; - HEAP32[$242>>2] = $545; - HEAP32[$243>>2] = 1; - $171 = $242; - $172 = $243; - $546 = $171; - $547 = $172; - ;HEAP8[$170>>0]=HEAP8[$173>>0]|0; - $168 = $546; - $169 = $547; - $548 = $168; - $549 = $169; - $165 = $170; - $166 = $548; - $167 = $549; - $550 = $166; - $551 = HEAP32[$550>>2]|0; - $552 = $167; - $553 = HEAP32[$552>>2]|0; - $554 = ($551>>>0)<($553>>>0); - $555 = $169; - $556 = $168; - $557 = $554 ? $555 : $556; - $558 = HEAP32[$557>>2]|0; - $241 = $558; - $559 = $241; - $560 = $241; - $561 = (($560>>>0) / 4)&-1; - $160 = $476; - $562 = $160; - $563 = ((($562)) + 12|0); - $159 = $563; - $564 = $159; - $158 = $564; - $565 = $158; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($244,$559,$561,$565); - $566 = ((($476)) + 4|0); - $567 = HEAP32[$566>>2]|0; - $161 = $245; - $162 = $567; - $568 = $161; - $569 = $162; - HEAP32[$568>>2] = $569; - $570 = ((($476)) + 8|0); - $571 = HEAP32[$570>>2]|0; - $163 = $246; - $164 = $571; - $572 = $163; - $573 = $164; - HEAP32[$572>>2] = $573; - ;HEAP32[$$byval_copy>>2]=HEAP32[$245>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$246>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($244,$$byval_copy,$$byval_copy1); - $177 = $476; - $178 = $244; - $574 = $177; - $176 = $574; - $575 = $176; - $576 = HEAP32[$575>>2]|0; - HEAP32[$179>>2] = $576; - $577 = $178; - $174 = $577; - $578 = $174; - $579 = HEAP32[$578>>2]|0; - $580 = $177; - HEAP32[$580>>2] = $579; - $175 = $179; - $581 = $175; - $582 = HEAP32[$581>>2]|0; - $583 = $178; - HEAP32[$583>>2] = $582; - $584 = ((($476)) + 4|0); - $585 = ((($244)) + 4|0); - $183 = $584; - $184 = $585; - $586 = $183; - $182 = $586; - $587 = $182; - $588 = HEAP32[$587>>2]|0; - HEAP32[$185>>2] = $588; - $589 = $184; - $180 = $589; - $590 = $180; - $591 = HEAP32[$590>>2]|0; - $592 = $183; - HEAP32[$592>>2] = $591; - $181 = $185; - $593 = $181; - $594 = HEAP32[$593>>2]|0; - $595 = $184; - HEAP32[$595>>2] = $594; - $596 = ((($476)) + 8|0); - $597 = ((($244)) + 8|0); - $189 = $596; - $190 = $597; - $598 = $189; - $188 = $598; - $599 = $188; - $600 = HEAP32[$599>>2]|0; - HEAP32[$191>>2] = $600; - $601 = $190; - $186 = $601; - $602 = $186; - $603 = HEAP32[$602>>2]|0; - $604 = $189; - HEAP32[$604>>2] = $603; - $187 = $191; - $605 = $187; - $606 = HEAP32[$605>>2]|0; - $607 = $190; - HEAP32[$607>>2] = $606; - $194 = $476; - $608 = $194; - $609 = ((($608)) + 12|0); - $193 = $609; - $610 = $193; - $192 = $610; - $611 = $192; - $197 = $244; - $612 = $197; - $613 = ((($612)) + 12|0); - $196 = $613; - $614 = $196; - $195 = $614; - $615 = $195; - $201 = $611; - $202 = $615; - $616 = $201; - $200 = $616; - $617 = $200; - $618 = HEAP32[$617>>2]|0; - HEAP32[$203>>2] = $618; - $619 = $202; - $198 = $619; - $620 = $198; - $621 = HEAP32[$620>>2]|0; - $622 = $201; - HEAP32[$622>>2] = $621; - $199 = $203; - $623 = $199; - $624 = HEAP32[$623>>2]|0; - $625 = $202; - HEAP32[$625>>2] = $624; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($244); - break; - } - $489 = ((($476)) + 4|0); - $490 = HEAP32[$489>>2]|0; - $491 = HEAP32[$476>>2]|0; - $492 = $490; - $493 = $491; - $494 = (($492) - ($493))|0; - $495 = (($494|0) / 4)&-1; - $240 = $495; - $496 = $240; - $497 = (($496) + 1)|0; - $498 = (($497|0) / 2)&-1; - $240 = $498; - $499 = ((($476)) + 4|0); - $500 = HEAP32[$499>>2]|0; - $501 = ((($476)) + 8|0); - $502 = HEAP32[$501>>2]|0; - $503 = ((($476)) + 4|0); - $504 = HEAP32[$503>>2]|0; - $505 = $240; - $506 = (0 - ($505))|0; - $507 = (($504) + ($506<<2)|0); - $214 = $500; - $215 = $502; - $216 = $507; - $508 = $214; - $213 = $508; - $509 = $213; - $510 = $215; - $207 = $510; - $511 = $207; - $512 = $216; - $208 = $512; - $513 = $208; - $209 = $509; - $210 = $511; - $211 = $513; - $514 = $210; - $515 = $209; - $516 = $514; - $517 = $515; - $518 = (($516) - ($517))|0; - $519 = (($518|0) / 4)&-1; - $212 = $519; - $520 = $212; - $521 = ($520>>>0)>(0); - if ($521) { - $522 = $211; - $523 = $209; - $524 = $212; - $525 = $524<<2; - _memmove(($522|0),($523|0),($525|0))|0; - } - $526 = $211; - $527 = $212; - $528 = (($526) + ($527<<2)|0); - $529 = ((($476)) + 8|0); - HEAP32[$529>>2] = $528; - $530 = $240; - $531 = ((($476)) + 4|0); - $532 = HEAP32[$531>>2]|0; - $533 = (0 - ($530))|0; - $534 = (($532) + ($533<<2)|0); - HEAP32[$531>>2] = $534; - } - } while(0); - $219 = $476; - $626 = $219; - $627 = ((($626)) + 12|0); - $218 = $627; - $628 = $218; - $217 = $628; - $629 = $217; - $630 = ((($476)) + 8|0); - $631 = HEAP32[$630>>2]|0; - $220 = $631; - $632 = $220; - $633 = $239; - $231 = $629; - $232 = $632; - $233 = $633; - $634 = $231; - $635 = $232; - $636 = $233; - $230 = $636; - $637 = $230; - ;HEAP8[$229>>0]=HEAP8[$234>>0]|0; - $226 = $634; - $227 = $635; - $228 = $637; - $638 = $226; - $639 = $227; - $640 = $228; - $225 = $640; - $641 = $225; - $222 = $638; - $223 = $639; - $224 = $641; - $642 = $223; - $643 = $224; - $221 = $643; - $644 = $221; - $645 = HEAP32[$644>>2]|0; - HEAP32[$642>>2] = $645; - $646 = ((($476)) + 8|0); - $647 = HEAP32[$646>>2]|0; - $648 = ((($647)) + 4|0); - HEAP32[$646>>2] = $648; - $649 = HEAP32[$402>>2]|0; - $650 = (($649) + -1)|0; - HEAP32[$402>>2] = $650; - } - STACKTOP = sp;return; - } - $651 = HEAP32[$401>>2]|0; - $157 = $413; - $652 = $157; - $156 = $652; - $653 = $156; - $654 = ((($653)) + 12|0); - $155 = $654; - $655 = $155; - $154 = $655; - $656 = $154; - $657 = HEAP32[$656>>2]|0; - $658 = HEAP32[$652>>2]|0; - $659 = $657; - $660 = $658; - $661 = (($659) - ($660))|0; - $662 = (($661|0) / 4)&-1; - $153 = $413; - $663 = $153; - $664 = ((($663)) + 8|0); - $665 = HEAP32[$664>>2]|0; - $666 = ((($663)) + 4|0); - $667 = HEAP32[$666>>2]|0; - $668 = $665; - $669 = $667; - $670 = (($668) - ($669))|0; - $671 = (($670|0) / 4)&-1; - $672 = (($662) - ($671))|0; - $673 = ($651>>>0)<=($672>>>0); - if (!($673)) { - $935 = HEAP32[$402>>2]|0; - $936 = ($935*93)|0; - $407 = $936; - $30 = $413; - $937 = $30; - $29 = $937; - $938 = $29; - $939 = ((($938)) + 12|0); - $28 = $939; - $940 = $28; - $27 = $940; - $941 = $27; - $942 = HEAP32[$941>>2]|0; - $943 = HEAP32[$937>>2]|0; - $944 = $942; - $945 = $943; - $946 = (($944) - ($945))|0; - $947 = (($946|0) / 4)&-1; - $948 = $947<<1; - HEAP32[$409>>2] = $948; - $949 = HEAP32[$401>>2]|0; - $26 = $413; - $950 = $26; - $951 = ((($950)) + 8|0); - $952 = HEAP32[$951>>2]|0; - $953 = ((($950)) + 4|0); - $954 = HEAP32[$953>>2]|0; - $955 = $952; - $956 = $954; - $957 = (($955) - ($956))|0; - $958 = (($957|0) / 4)&-1; - $959 = (($949) + ($958))|0; - HEAP32[$410>>2] = $959; - $23 = $409; - $24 = $410; - $960 = $23; - $961 = $24; - ;HEAP8[$22>>0]=HEAP8[$25>>0]|0; - $20 = $960; - $21 = $961; - $962 = $20; - $963 = $21; - $17 = $22; - $18 = $962; - $19 = $963; - $964 = $18; - $965 = HEAP32[$964>>2]|0; - $966 = $19; - $967 = HEAP32[$966>>2]|0; - $968 = ($965>>>0)<($967>>>0); - $969 = $21; - $970 = $20; - $971 = $968 ? $969 : $970; - $972 = HEAP32[$971>>2]|0; - $16 = $413; - $973 = $16; - $974 = ((($973)) + 8|0); - $975 = HEAP32[$974>>2]|0; - $976 = ((($973)) + 4|0); - $977 = HEAP32[$976>>2]|0; - $978 = $975; - $979 = $977; - $980 = (($978) - ($979))|0; - $981 = (($980|0) / 4)&-1; - $982 = HEAP32[$402>>2]|0; - $983 = (($981) - ($982))|0; - $15 = $413; - $984 = $15; - $985 = ((($984)) + 12|0); - $14 = $985; - $986 = $14; - $13 = $986; - $987 = $13; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($408,$972,$983,$987); - while(1) { - $988 = HEAP32[$401>>2]|0; - $989 = ($988>>>0)>(0); - if (!($989)) { - break; - } - $990 = $400; - $11 = $990; - $12 = 93; - $991 = $11; - $992 = $12; - $8 = $991; - $9 = $992; - $10 = 0; - $993 = $8; - $994 = $9; - $7 = $993; - $995 = ($994>>>0)>(97612893); - if ($995) { - label = 35; - break; - } - $1000 = $9; - $1001 = ($1000*44)|0; - $6 = $1001; - $1002 = $6; - $1003 = (__Znwj($1002)|0); - HEAP32[$411>>2] = $1003; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE9push_backEOS4_($408,$411); - $1004 = HEAP32[$401>>2]|0; - $1005 = (($1004) + -1)|0; - HEAP32[$401>>2] = $1005; - } - if ((label|0) == 35) { - $5 = 4287; - $996 = (___cxa_allocate_exception(8)|0); - $997 = $5; - $3 = $996; - $4 = $997; - $998 = $3; - $999 = $4; - __ZNSt11logic_errorC2EPKc($998,$999); - HEAP32[$998>>2] = (3660); - ___cxa_throw(($996|0),(1384|0),(220|0)); - // unreachable; - } - while(1) { - $1006 = HEAP32[$402>>2]|0; - $1007 = ($1006>>>0)>(0); - if (!($1007)) { - break; - } - $2 = $413; - $1008 = $2; - $1009 = ((($1008)) + 4|0); - $1010 = HEAP32[$1009>>2]|0; - $335 = $408; - $336 = $1010; - $1011 = $335; - $1012 = ((($1011)) + 8|0); - $1013 = HEAP32[$1012>>2]|0; - $334 = $1011; - $1014 = $334; - $1015 = ((($1014)) + 12|0); - $333 = $1015; - $1016 = $333; - $332 = $1016; - $1017 = $332; - $1018 = HEAP32[$1017>>2]|0; - $1019 = ($1013|0)==($1018|0); - do { - if ($1019) { - $1020 = ((($1011)) + 4|0); - $1021 = HEAP32[$1020>>2]|0; - $1022 = HEAP32[$1011>>2]|0; - $1023 = ($1021>>>0)>($1022>>>0); - if (!($1023)) { - $303 = $1011; - $1070 = $303; - $1071 = ((($1070)) + 12|0); - $302 = $1071; - $1072 = $302; - $301 = $1072; - $1073 = $301; - $1074 = HEAP32[$1073>>2]|0; - $1075 = HEAP32[$1011>>2]|0; - $1076 = $1074; - $1077 = $1075; - $1078 = (($1076) - ($1077))|0; - $1079 = (($1078|0) / 4)&-1; - $1080 = $1079<<1; - HEAP32[$339>>2] = $1080; - HEAP32[$340>>2] = 1; - $268 = $339; - $269 = $340; - $1081 = $268; - $1082 = $269; - ;HEAP8[$267>>0]=HEAP8[$270>>0]|0; - $265 = $1081; - $266 = $1082; - $1083 = $265; - $1084 = $266; - $262 = $267; - $263 = $1083; - $264 = $1084; - $1085 = $263; - $1086 = HEAP32[$1085>>2]|0; - $1087 = $264; - $1088 = HEAP32[$1087>>2]|0; - $1089 = ($1086>>>0)<($1088>>>0); - $1090 = $266; - $1091 = $265; - $1092 = $1089 ? $1090 : $1091; - $1093 = HEAP32[$1092>>2]|0; - $338 = $1093; - $1094 = $338; - $1095 = $338; - $1096 = (($1095>>>0) / 4)&-1; - $257 = $1011; - $1097 = $257; - $1098 = ((($1097)) + 12|0); - $256 = $1098; - $1099 = $256; - $1100 = ((($1099)) + 4|0); - $255 = $1100; - $1101 = $255; - $1102 = HEAP32[$1101>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($341,$1094,$1096,$1102); - $1103 = ((($1011)) + 4|0); - $1104 = HEAP32[$1103>>2]|0; - $258 = $342; - $259 = $1104; - $1105 = $258; - $1106 = $259; - HEAP32[$1105>>2] = $1106; - $1107 = ((($1011)) + 8|0); - $1108 = HEAP32[$1107>>2]|0; - $260 = $343; - $261 = $1108; - $1109 = $260; - $1110 = $261; - HEAP32[$1109>>2] = $1110; - ;HEAP32[$$byval_copy4>>2]=HEAP32[$342>>2]|0; - ;HEAP32[$$byval_copy5>>2]=HEAP32[$343>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($341,$$byval_copy4,$$byval_copy5); - $274 = $1011; - $275 = $341; - $1111 = $274; - $273 = $1111; - $1112 = $273; - $1113 = HEAP32[$1112>>2]|0; - HEAP32[$276>>2] = $1113; - $1114 = $275; - $271 = $1114; - $1115 = $271; - $1116 = HEAP32[$1115>>2]|0; - $1117 = $274; - HEAP32[$1117>>2] = $1116; - $272 = $276; - $1118 = $272; - $1119 = HEAP32[$1118>>2]|0; - $1120 = $275; - HEAP32[$1120>>2] = $1119; - $1121 = ((($1011)) + 4|0); - $1122 = ((($341)) + 4|0); - $280 = $1121; - $281 = $1122; - $1123 = $280; - $279 = $1123; - $1124 = $279; - $1125 = HEAP32[$1124>>2]|0; - HEAP32[$282>>2] = $1125; - $1126 = $281; - $277 = $1126; - $1127 = $277; - $1128 = HEAP32[$1127>>2]|0; - $1129 = $280; - HEAP32[$1129>>2] = $1128; - $278 = $282; - $1130 = $278; - $1131 = HEAP32[$1130>>2]|0; - $1132 = $281; - HEAP32[$1132>>2] = $1131; - $1133 = ((($1011)) + 8|0); - $1134 = ((($341)) + 8|0); - $286 = $1133; - $287 = $1134; - $1135 = $286; - $285 = $1135; - $1136 = $285; - $1137 = HEAP32[$1136>>2]|0; - HEAP32[$288>>2] = $1137; - $1138 = $287; - $283 = $1138; - $1139 = $283; - $1140 = HEAP32[$1139>>2]|0; - $1141 = $286; - HEAP32[$1141>>2] = $1140; - $284 = $288; - $1142 = $284; - $1143 = HEAP32[$1142>>2]|0; - $1144 = $287; - HEAP32[$1144>>2] = $1143; - $291 = $1011; - $1145 = $291; - $1146 = ((($1145)) + 12|0); - $290 = $1146; - $1147 = $290; - $289 = $1147; - $1148 = $289; - $294 = $341; - $1149 = $294; - $1150 = ((($1149)) + 12|0); - $293 = $1150; - $1151 = $293; - $292 = $1151; - $1152 = $292; - $298 = $1148; - $299 = $1152; - $1153 = $298; - $297 = $1153; - $1154 = $297; - $1155 = HEAP32[$1154>>2]|0; - HEAP32[$300>>2] = $1155; - $1156 = $299; - $295 = $1156; - $1157 = $295; - $1158 = HEAP32[$1157>>2]|0; - $1159 = $298; - HEAP32[$1159>>2] = $1158; - $296 = $300; - $1160 = $296; - $1161 = HEAP32[$1160>>2]|0; - $1162 = $299; - HEAP32[$1162>>2] = $1161; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($341); - break; - } - $1024 = ((($1011)) + 4|0); - $1025 = HEAP32[$1024>>2]|0; - $1026 = HEAP32[$1011>>2]|0; - $1027 = $1025; - $1028 = $1026; - $1029 = (($1027) - ($1028))|0; - $1030 = (($1029|0) / 4)&-1; - $337 = $1030; - $1031 = $337; - $1032 = (($1031) + 1)|0; - $1033 = (($1032|0) / 2)&-1; - $337 = $1033; - $1034 = ((($1011)) + 4|0); - $1035 = HEAP32[$1034>>2]|0; - $1036 = ((($1011)) + 8|0); - $1037 = HEAP32[$1036>>2]|0; - $1038 = ((($1011)) + 4|0); - $1039 = HEAP32[$1038>>2]|0; - $1040 = $337; - $1041 = (0 - ($1040))|0; - $1042 = (($1039) + ($1041<<2)|0); - $311 = $1035; - $312 = $1037; - $313 = $1042; - $1043 = $311; - $310 = $1043; - $1044 = $310; - $1045 = $312; - $304 = $1045; - $1046 = $304; - $1047 = $313; - $305 = $1047; - $1048 = $305; - $306 = $1044; - $307 = $1046; - $308 = $1048; - $1049 = $307; - $1050 = $306; - $1051 = $1049; - $1052 = $1050; - $1053 = (($1051) - ($1052))|0; - $1054 = (($1053|0) / 4)&-1; - $309 = $1054; - $1055 = $309; - $1056 = ($1055>>>0)>(0); - if ($1056) { - $1057 = $308; - $1058 = $306; - $1059 = $309; - $1060 = $1059<<2; - _memmove(($1057|0),($1058|0),($1060|0))|0; - } - $1061 = $308; - $1062 = $309; - $1063 = (($1061) + ($1062<<2)|0); - $1064 = ((($1011)) + 8|0); - HEAP32[$1064>>2] = $1063; - $1065 = $337; - $1066 = ((($1011)) + 4|0); - $1067 = HEAP32[$1066>>2]|0; - $1068 = (0 - ($1065))|0; - $1069 = (($1067) + ($1068<<2)|0); - HEAP32[$1066>>2] = $1069; - } - } while(0); - $316 = $1011; - $1163 = $316; - $1164 = ((($1163)) + 12|0); - $315 = $1164; - $1165 = $315; - $1166 = ((($1165)) + 4|0); - $314 = $1166; - $1167 = $314; - $1168 = HEAP32[$1167>>2]|0; - $1169 = ((($1011)) + 8|0); - $1170 = HEAP32[$1169>>2]|0; - $317 = $1170; - $1171 = $317; - $1172 = $336; - $328 = $1168; - $329 = $1171; - $330 = $1172; - $1173 = $328; - $1174 = $329; - $1175 = $330; - $327 = $1175; - $1176 = $327; - ;HEAP8[$326>>0]=HEAP8[$331>>0]|0; - $323 = $1173; - $324 = $1174; - $325 = $1176; - $1177 = $323; - $1178 = $324; - $1179 = $325; - $322 = $1179; - $1180 = $322; - $319 = $1177; - $320 = $1178; - $321 = $1180; - $1181 = $320; - $1182 = $321; - $318 = $1182; - $1183 = $318; - $1184 = HEAP32[$1183>>2]|0; - HEAP32[$1181>>2] = $1184; - $1185 = ((($1011)) + 8|0); - $1186 = HEAP32[$1185>>2]|0; - $1187 = ((($1186)) + 4|0); - HEAP32[$1185>>2] = $1187; - $350 = $413; - $1188 = $350; - $1189 = ((($1188)) + 4|0); - $1190 = HEAP32[$1189>>2]|0; - $1191 = ((($1190)) + 4|0); - $347 = $1188; - $348 = $1191; - $1192 = $347; - $1193 = $348; - ;HEAP8[$346>>0]=HEAP8[$349>>0]|0; - $344 = $1192; - $345 = $1193; - $1194 = $344; - $1195 = $345; - $1196 = ((($1194)) + 4|0); - HEAP32[$1196>>2] = $1195; - $1197 = HEAP32[$402>>2]|0; - $1198 = (($1197) + -1)|0; - HEAP32[$402>>2] = $1198; - } - $351 = $413; - $1199 = $351; - $1200 = ((($1199)) + 8|0); - $1201 = HEAP32[$1200>>2]|0; - $412 = $1201; - while(1) { - $1202 = $412; - $352 = $413; - $1203 = $352; - $1204 = ((($1203)) + 4|0); - $1205 = HEAP32[$1204>>2]|0; - $1206 = ($1202|0)!=($1205|0); - if (!($1206)) { - break; - } - $1207 = $412; - $1208 = ((($1207)) + -4|0); - $412 = $1208; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE10push_frontERKS4_($408,$1208); - } - $365 = $413; - $366 = $408; - $1209 = $365; - $364 = $1209; - $1210 = $364; - $1211 = HEAP32[$1210>>2]|0; - HEAP32[$367>>2] = $1211; - $1212 = $366; - $362 = $1212; - $1213 = $362; - $1214 = HEAP32[$1213>>2]|0; - $1215 = $365; - HEAP32[$1215>>2] = $1214; - $363 = $367; - $1216 = $363; - $1217 = HEAP32[$1216>>2]|0; - $1218 = $366; - HEAP32[$1218>>2] = $1217; - $1219 = ((($413)) + 4|0); - $1220 = ((($408)) + 4|0); - $371 = $1219; - $372 = $1220; - $1221 = $371; - $370 = $1221; - $1222 = $370; - $1223 = HEAP32[$1222>>2]|0; - HEAP32[$373>>2] = $1223; - $1224 = $372; - $368 = $1224; - $1225 = $368; - $1226 = HEAP32[$1225>>2]|0; - $1227 = $371; - HEAP32[$1227>>2] = $1226; - $369 = $373; - $1228 = $369; - $1229 = HEAP32[$1228>>2]|0; - $1230 = $372; - HEAP32[$1230>>2] = $1229; - $1231 = ((($413)) + 8|0); - $1232 = ((($408)) + 8|0); - $377 = $1231; - $378 = $1232; - $1233 = $377; - $376 = $1233; - $1234 = $376; - $1235 = HEAP32[$1234>>2]|0; - HEAP32[$379>>2] = $1235; - $1236 = $378; - $374 = $1236; - $1237 = $374; - $1238 = HEAP32[$1237>>2]|0; - $1239 = $377; - HEAP32[$1239>>2] = $1238; - $375 = $379; - $1240 = $375; - $1241 = HEAP32[$1240>>2]|0; - $1242 = $378; - HEAP32[$1242>>2] = $1241; - $382 = $413; - $1243 = $382; - $1244 = ((($1243)) + 12|0); - $381 = $1244; - $1245 = $381; - $380 = $1245; - $1246 = $380; - $385 = $408; - $1247 = $385; - $1248 = ((($1247)) + 12|0); - $384 = $1248; - $1249 = $384; - $383 = $1249; - $1250 = $383; - $389 = $1246; - $390 = $1250; - $1251 = $389; - $388 = $1251; - $1252 = $388; - $1253 = HEAP32[$1252>>2]|0; - HEAP32[$391>>2] = $1253; - $1254 = $390; - $386 = $1254; - $1255 = $386; - $1256 = HEAP32[$1255>>2]|0; - $1257 = $389; - HEAP32[$1257>>2] = $1256; - $387 = $391; - $1258 = $387; - $1259 = HEAP32[$1258>>2]|0; - $1260 = $390; - HEAP32[$1260>>2] = $1259; - $1261 = $407; - $1262 = ((($413)) + 16|0); - $1263 = HEAP32[$1262>>2]|0; - $1264 = (($1263) - ($1261))|0; - HEAP32[$1262>>2] = $1264; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($408); - STACKTOP = sp;return; - } - while(1) { - $674 = HEAP32[$401>>2]|0; - $675 = ($674>>>0)>(0); - if (!($675)) { - break; - } - $152 = $413; - $676 = $152; - $151 = $676; - $677 = $151; - $678 = ((($677)) + 12|0); - $150 = $678; - $679 = $150; - $149 = $679; - $680 = $149; - $681 = HEAP32[$680>>2]|0; - $682 = ((($676)) + 8|0); - $683 = HEAP32[$682>>2]|0; - $684 = $681; - $685 = $683; - $686 = (($684) - ($685))|0; - $687 = (($686|0) / 4)&-1; - $688 = ($687|0)==(0); - if ($688) { - break; - } - $689 = $400; - $147 = $689; - $148 = 93; - $690 = $147; - $691 = $148; - $144 = $690; - $145 = $691; - $146 = 0; - $692 = $144; - $693 = $145; - $143 = $692; - $694 = ($693>>>0)>(97612893); - if ($694) { - label = 16; - break; - } - $699 = $145; - $700 = ($699*44)|0; - $142 = $700; - $701 = $142; - $702 = (__Znwj($701)|0); - HEAP32[$404>>2] = $702; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE9push_backEOS4_($413,$404); - $703 = HEAP32[$401>>2]|0; - $704 = (($703) + -1)|0; - HEAP32[$401>>2] = $704; - } - if ((label|0) == 16) { - $141 = 4287; - $695 = (___cxa_allocate_exception(8)|0); - $696 = $141; - $139 = $695; - $140 = $696; - $697 = $139; - $698 = $140; - __ZNSt11logic_errorC2EPKc($697,$698); - HEAP32[$697>>2] = (3660); - ___cxa_throw(($695|0),(1384|0),(220|0)); - // unreachable; - } - while(1) { - $705 = HEAP32[$401>>2]|0; - $706 = ($705>>>0)>(0); - if (!($706)) { - break; - } - $707 = $400; - $137 = $707; - $138 = 93; - $708 = $137; - $709 = $138; - $134 = $708; - $135 = $709; - $136 = 0; - $710 = $134; - $711 = $135; - $133 = $710; - $712 = ($711>>>0)>(97612893); - if ($712) { - label = 21; - break; - } - $717 = $135; - $718 = ($717*44)|0; - $132 = $718; - $719 = $132; - $720 = (__Znwj($719)|0); - HEAP32[$405>>2] = $720; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE10push_frontEOS4_($413,$405); - $721 = HEAP32[$401>>2]|0; - $722 = (($721) + -1)|0; - HEAP32[$401>>2] = $722; - $723 = HEAP32[$402>>2]|0; - $724 = (($723) + 1)|0; - HEAP32[$402>>2] = $724; - $128 = $413; - $725 = $128; - $726 = ((($725)) + 8|0); - $727 = HEAP32[$726>>2]|0; - $728 = ((($725)) + 4|0); - $729 = HEAP32[$728>>2]|0; - $730 = $727; - $731 = $729; - $732 = (($730) - ($731))|0; - $733 = (($732|0) / 4)&-1; - $734 = ($733|0)==(1); - $735 = $734&1; - $736 = (93 - ($735))|0; - $737 = ((($413)) + 16|0); - $738 = HEAP32[$737>>2]|0; - $739 = (($738) + ($736))|0; - HEAP32[$737>>2] = $739; - } - if ((label|0) == 21) { - $131 = 4287; - $713 = (___cxa_allocate_exception(8)|0); - $714 = $131; - $129 = $713; - $130 = $714; - $715 = $129; - $716 = $130; - __ZNSt11logic_errorC2EPKc($715,$716); - HEAP32[$715>>2] = (3660); - ___cxa_throw(($713|0),(1384|0),(220|0)); - // unreachable; - } - $740 = HEAP32[$402>>2]|0; - $741 = ($740*93)|0; - $742 = ((($413)) + 16|0); - $743 = HEAP32[$742>>2]|0; - $744 = (($743) - ($741))|0; - HEAP32[$742>>2] = $744; - while(1) { - $745 = HEAP32[$402>>2]|0; - $746 = ($745>>>0)>(0); - if (!($746)) { - break; - } - $127 = $413; - $747 = $127; - $748 = ((($747)) + 4|0); - $749 = HEAP32[$748>>2]|0; - $750 = HEAP32[$749>>2]|0; - HEAP32[$406>>2] = $750; - $126 = $413; - $751 = $126; - $752 = ((($751)) + 4|0); - $753 = HEAP32[$752>>2]|0; - $754 = ((($753)) + 4|0); - $123 = $751; - $124 = $754; - $755 = $123; - $756 = $124; - ;HEAP8[$122>>0]=HEAP8[$125>>0]|0; - $120 = $755; - $121 = $756; - $757 = $120; - $758 = $121; - $759 = ((($757)) + 4|0); - HEAP32[$759>>2] = $758; - $111 = $413; - $112 = $406; - $760 = $111; - $761 = ((($760)) + 8|0); - $762 = HEAP32[$761>>2]|0; - $110 = $760; - $763 = $110; - $764 = ((($763)) + 12|0); - $109 = $764; - $765 = $109; - $108 = $765; - $766 = $108; - $767 = HEAP32[$766>>2]|0; - $768 = ($762|0)==($767|0); - do { - if ($768) { - $769 = ((($760)) + 4|0); - $770 = HEAP32[$769>>2]|0; - $771 = HEAP32[$760>>2]|0; - $772 = ($770>>>0)>($771>>>0); - if (!($772)) { - $79 = $760; - $819 = $79; - $820 = ((($819)) + 12|0); - $78 = $820; - $821 = $78; - $77 = $821; - $822 = $77; - $823 = HEAP32[$822>>2]|0; - $824 = HEAP32[$760>>2]|0; - $825 = $823; - $826 = $824; - $827 = (($825) - ($826))|0; - $828 = (($827|0) / 4)&-1; - $829 = $828<<1; - HEAP32[$115>>2] = $829; - HEAP32[$116>>2] = 1; - $44 = $115; - $45 = $116; - $830 = $44; - $831 = $45; - ;HEAP8[$43>>0]=HEAP8[$46>>0]|0; - $41 = $830; - $42 = $831; - $832 = $41; - $833 = $42; - $38 = $43; - $39 = $832; - $40 = $833; - $834 = $39; - $835 = HEAP32[$834>>2]|0; - $836 = $40; - $837 = HEAP32[$836>>2]|0; - $838 = ($835>>>0)<($837>>>0); - $839 = $42; - $840 = $41; - $841 = $838 ? $839 : $840; - $842 = HEAP32[$841>>2]|0; - $114 = $842; - $843 = $114; - $844 = $114; - $845 = (($844>>>0) / 4)&-1; - $33 = $760; - $846 = $33; - $847 = ((($846)) + 12|0); - $32 = $847; - $848 = $32; - $31 = $848; - $849 = $31; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($117,$843,$845,$849); - $850 = ((($760)) + 4|0); - $851 = HEAP32[$850>>2]|0; - $34 = $118; - $35 = $851; - $852 = $34; - $853 = $35; - HEAP32[$852>>2] = $853; - $854 = ((($760)) + 8|0); - $855 = HEAP32[$854>>2]|0; - $36 = $119; - $37 = $855; - $856 = $36; - $857 = $37; - HEAP32[$856>>2] = $857; - ;HEAP32[$$byval_copy2>>2]=HEAP32[$118>>2]|0; - ;HEAP32[$$byval_copy3>>2]=HEAP32[$119>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($117,$$byval_copy2,$$byval_copy3); - $50 = $760; - $51 = $117; - $858 = $50; - $49 = $858; - $859 = $49; - $860 = HEAP32[$859>>2]|0; - HEAP32[$52>>2] = $860; - $861 = $51; - $47 = $861; - $862 = $47; - $863 = HEAP32[$862>>2]|0; - $864 = $50; - HEAP32[$864>>2] = $863; - $48 = $52; - $865 = $48; - $866 = HEAP32[$865>>2]|0; - $867 = $51; - HEAP32[$867>>2] = $866; - $868 = ((($760)) + 4|0); - $869 = ((($117)) + 4|0); - $56 = $868; - $57 = $869; - $870 = $56; - $55 = $870; - $871 = $55; - $872 = HEAP32[$871>>2]|0; - HEAP32[$58>>2] = $872; - $873 = $57; - $53 = $873; - $874 = $53; - $875 = HEAP32[$874>>2]|0; - $876 = $56; - HEAP32[$876>>2] = $875; - $54 = $58; - $877 = $54; - $878 = HEAP32[$877>>2]|0; - $879 = $57; - HEAP32[$879>>2] = $878; - $880 = ((($760)) + 8|0); - $881 = ((($117)) + 8|0); - $62 = $880; - $63 = $881; - $882 = $62; - $61 = $882; - $883 = $61; - $884 = HEAP32[$883>>2]|0; - HEAP32[$64>>2] = $884; - $885 = $63; - $59 = $885; - $886 = $59; - $887 = HEAP32[$886>>2]|0; - $888 = $62; - HEAP32[$888>>2] = $887; - $60 = $64; - $889 = $60; - $890 = HEAP32[$889>>2]|0; - $891 = $63; - HEAP32[$891>>2] = $890; - $67 = $760; - $892 = $67; - $893 = ((($892)) + 12|0); - $66 = $893; - $894 = $66; - $65 = $894; - $895 = $65; - $70 = $117; - $896 = $70; - $897 = ((($896)) + 12|0); - $69 = $897; - $898 = $69; - $68 = $898; - $899 = $68; - $74 = $895; - $75 = $899; - $900 = $74; - $73 = $900; - $901 = $73; - $902 = HEAP32[$901>>2]|0; - HEAP32[$76>>2] = $902; - $903 = $75; - $71 = $903; - $904 = $71; - $905 = HEAP32[$904>>2]|0; - $906 = $74; - HEAP32[$906>>2] = $905; - $72 = $76; - $907 = $72; - $908 = HEAP32[$907>>2]|0; - $909 = $75; - HEAP32[$909>>2] = $908; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($117); - break; - } - $773 = ((($760)) + 4|0); - $774 = HEAP32[$773>>2]|0; - $775 = HEAP32[$760>>2]|0; - $776 = $774; - $777 = $775; - $778 = (($776) - ($777))|0; - $779 = (($778|0) / 4)&-1; - $113 = $779; - $780 = $113; - $781 = (($780) + 1)|0; - $782 = (($781|0) / 2)&-1; - $113 = $782; - $783 = ((($760)) + 4|0); - $784 = HEAP32[$783>>2]|0; - $785 = ((($760)) + 8|0); - $786 = HEAP32[$785>>2]|0; - $787 = ((($760)) + 4|0); - $788 = HEAP32[$787>>2]|0; - $789 = $113; - $790 = (0 - ($789))|0; - $791 = (($788) + ($790<<2)|0); - $87 = $784; - $88 = $786; - $89 = $791; - $792 = $87; - $86 = $792; - $793 = $86; - $794 = $88; - $80 = $794; - $795 = $80; - $796 = $89; - $81 = $796; - $797 = $81; - $82 = $793; - $83 = $795; - $84 = $797; - $798 = $83; - $799 = $82; - $800 = $798; - $801 = $799; - $802 = (($800) - ($801))|0; - $803 = (($802|0) / 4)&-1; - $85 = $803; - $804 = $85; - $805 = ($804>>>0)>(0); - if ($805) { - $806 = $84; - $807 = $82; - $808 = $85; - $809 = $808<<2; - _memmove(($806|0),($807|0),($809|0))|0; - } - $810 = $84; - $811 = $85; - $812 = (($810) + ($811<<2)|0); - $813 = ((($760)) + 8|0); - HEAP32[$813>>2] = $812; - $814 = $113; - $815 = ((($760)) + 4|0); - $816 = HEAP32[$815>>2]|0; - $817 = (0 - ($814))|0; - $818 = (($816) + ($817<<2)|0); - HEAP32[$815>>2] = $818; - } - } while(0); - $92 = $760; - $910 = $92; - $911 = ((($910)) + 12|0); - $91 = $911; - $912 = $91; - $90 = $912; - $913 = $90; - $914 = ((($760)) + 8|0); - $915 = HEAP32[$914>>2]|0; - $93 = $915; - $916 = $93; - $917 = $112; - $104 = $913; - $105 = $916; - $106 = $917; - $918 = $104; - $919 = $105; - $920 = $106; - $103 = $920; - $921 = $103; - ;HEAP8[$102>>0]=HEAP8[$107>>0]|0; - $99 = $918; - $100 = $919; - $101 = $921; - $922 = $99; - $923 = $100; - $924 = $101; - $98 = $924; - $925 = $98; - $95 = $922; - $96 = $923; - $97 = $925; - $926 = $96; - $927 = $97; - $94 = $927; - $928 = $94; - $929 = HEAP32[$928>>2]|0; - HEAP32[$926>>2] = $929; - $930 = ((($760)) + 8|0); - $931 = HEAP32[$930>>2]|0; - $932 = ((($931)) + 4|0); - HEAP32[$930>>2] = $932; - $933 = HEAP32[$402>>2]|0; - $934 = (($933) + -1)|0; - HEAP32[$402>>2] = $934; - } - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = $1; - $13 = $10; - $9 = $13; - $14 = $9; - $15 = ((($14)) + 20|0); - $8 = $15; - $16 = $8; - $7 = $16; - $17 = $7; - $18 = HEAP32[$17>>2]|0; - $19 = ((($13)) + 16|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + ($20))|0; - $11 = $21; - $6 = $13; - $22 = $6; - $23 = ((($22)) + 4|0); - $24 = HEAP32[$23>>2]|0; - $25 = $11; - $26 = (($25>>>0) / 93)&-1; - $27 = (($24) + ($26<<2)|0); - $12 = $27; - $28 = $12; - $2 = $13; - $29 = $2; - $30 = ((($29)) + 8|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($29)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($31|0)==($33|0); - if ($34) { - $40 = 0; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; - } - $35 = $12; - $36 = HEAP32[$35>>2]|0; - $37 = $11; - $38 = (($37>>>0) % 93)&-1; - $39 = (($36) + (($38*44)|0)|0); - $40 = $39; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE9push_backEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0; - var $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0; - var $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0; - var $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0; - var $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); - $$byval_copy1 = sp + 376|0; - $$byval_copy = sp + 372|0; - $14 = sp + 8|0; - $17 = sp + 381|0; - $23 = sp + 292|0; - $29 = sp + 268|0; - $35 = sp + 244|0; - $47 = sp + 196|0; - $74 = sp; - $79 = sp + 380|0; - $87 = sp + 44|0; - $88 = sp + 40|0; - $89 = sp + 20|0; - $90 = sp + 16|0; - $91 = sp + 12|0; - $83 = $0; - $84 = $1; - $92 = $83; - $93 = ((($92)) + 8|0); - $94 = HEAP32[$93>>2]|0; - $82 = $92; - $95 = $82; - $96 = ((($95)) + 12|0); - $81 = $96; - $97 = $81; - $80 = $97; - $98 = $80; - $99 = HEAP32[$98>>2]|0; - $100 = ($94|0)==($99|0); - do { - if ($100) { - $101 = ((($92)) + 4|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$92>>2]|0; - $104 = ($102>>>0)>($103>>>0); - if (!($104)) { - $50 = $92; - $151 = $50; - $152 = ((($151)) + 12|0); - $49 = $152; - $153 = $49; - $48 = $153; - $154 = $48; - $155 = HEAP32[$154>>2]|0; - $156 = HEAP32[$92>>2]|0; - $157 = $155; - $158 = $156; - $159 = (($157) - ($158))|0; - $160 = (($159|0) / 4)&-1; - $161 = $160<<1; - HEAP32[$87>>2] = $161; - HEAP32[$88>>2] = 1; - $15 = $87; - $16 = $88; - $162 = $15; - $163 = $16; - ;HEAP8[$14>>0]=HEAP8[$17>>0]|0; - $12 = $162; - $13 = $163; - $164 = $12; - $165 = $13; - $9 = $14; - $10 = $164; - $11 = $165; - $166 = $10; - $167 = HEAP32[$166>>2]|0; - $168 = $11; - $169 = HEAP32[$168>>2]|0; - $170 = ($167>>>0)<($169>>>0); - $171 = $13; - $172 = $12; - $173 = $170 ? $171 : $172; - $174 = HEAP32[$173>>2]|0; - $86 = $174; - $175 = $86; - $176 = $86; - $177 = (($176>>>0) / 4)&-1; - $4 = $92; - $178 = $4; - $179 = ((($178)) + 12|0); - $3 = $179; - $180 = $3; - $2 = $180; - $181 = $2; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($89,$175,$177,$181); - $182 = ((($92)) + 4|0); - $183 = HEAP32[$182>>2]|0; - $5 = $90; - $6 = $183; - $184 = $5; - $185 = $6; - HEAP32[$184>>2] = $185; - $186 = ((($92)) + 8|0); - $187 = HEAP32[$186>>2]|0; - $7 = $91; - $8 = $187; - $188 = $7; - $189 = $8; - HEAP32[$188>>2] = $189; - ;HEAP32[$$byval_copy>>2]=HEAP32[$90>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$91>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($89,$$byval_copy,$$byval_copy1); - $21 = $92; - $22 = $89; - $190 = $21; - $20 = $190; - $191 = $20; - $192 = HEAP32[$191>>2]|0; - HEAP32[$23>>2] = $192; - $193 = $22; - $18 = $193; - $194 = $18; - $195 = HEAP32[$194>>2]|0; - $196 = $21; - HEAP32[$196>>2] = $195; - $19 = $23; - $197 = $19; - $198 = HEAP32[$197>>2]|0; - $199 = $22; - HEAP32[$199>>2] = $198; - $200 = ((($92)) + 4|0); - $201 = ((($89)) + 4|0); - $27 = $200; - $28 = $201; - $202 = $27; - $26 = $202; - $203 = $26; - $204 = HEAP32[$203>>2]|0; - HEAP32[$29>>2] = $204; - $205 = $28; - $24 = $205; - $206 = $24; - $207 = HEAP32[$206>>2]|0; - $208 = $27; - HEAP32[$208>>2] = $207; - $25 = $29; - $209 = $25; - $210 = HEAP32[$209>>2]|0; - $211 = $28; - HEAP32[$211>>2] = $210; - $212 = ((($92)) + 8|0); - $213 = ((($89)) + 8|0); - $33 = $212; - $34 = $213; - $214 = $33; - $32 = $214; - $215 = $32; - $216 = HEAP32[$215>>2]|0; - HEAP32[$35>>2] = $216; - $217 = $34; - $30 = $217; - $218 = $30; - $219 = HEAP32[$218>>2]|0; - $220 = $33; - HEAP32[$220>>2] = $219; - $31 = $35; - $221 = $31; - $222 = HEAP32[$221>>2]|0; - $223 = $34; - HEAP32[$223>>2] = $222; - $38 = $92; - $224 = $38; - $225 = ((($224)) + 12|0); - $37 = $225; - $226 = $37; - $36 = $226; - $227 = $36; - $41 = $89; - $228 = $41; - $229 = ((($228)) + 12|0); - $40 = $229; - $230 = $40; - $39 = $230; - $231 = $39; - $45 = $227; - $46 = $231; - $232 = $45; - $44 = $232; - $233 = $44; - $234 = HEAP32[$233>>2]|0; - HEAP32[$47>>2] = $234; - $235 = $46; - $42 = $235; - $236 = $42; - $237 = HEAP32[$236>>2]|0; - $238 = $45; - HEAP32[$238>>2] = $237; - $43 = $47; - $239 = $43; - $240 = HEAP32[$239>>2]|0; - $241 = $46; - HEAP32[$241>>2] = $240; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($89); - break; - } - $105 = ((($92)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = HEAP32[$92>>2]|0; - $108 = $106; - $109 = $107; - $110 = (($108) - ($109))|0; - $111 = (($110|0) / 4)&-1; - $85 = $111; - $112 = $85; - $113 = (($112) + 1)|0; - $114 = (($113|0) / 2)&-1; - $85 = $114; - $115 = ((($92)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($92)) + 8|0); - $118 = HEAP32[$117>>2]|0; - $119 = ((($92)) + 4|0); - $120 = HEAP32[$119>>2]|0; - $121 = $85; - $122 = (0 - ($121))|0; - $123 = (($120) + ($122<<2)|0); - $58 = $116; - $59 = $118; - $60 = $123; - $124 = $58; - $57 = $124; - $125 = $57; - $126 = $59; - $51 = $126; - $127 = $51; - $128 = $60; - $52 = $128; - $129 = $52; - $53 = $125; - $54 = $127; - $55 = $129; - $130 = $54; - $131 = $53; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 4)&-1; - $56 = $135; - $136 = $56; - $137 = ($136>>>0)>(0); - if ($137) { - $138 = $55; - $139 = $53; - $140 = $56; - $141 = $140<<2; - _memmove(($138|0),($139|0),($141|0))|0; - } - $142 = $55; - $143 = $56; - $144 = (($142) + ($143<<2)|0); - $145 = ((($92)) + 8|0); - HEAP32[$145>>2] = $144; - $146 = $85; - $147 = ((($92)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = (0 - ($146))|0; - $150 = (($148) + ($149<<2)|0); - HEAP32[$147>>2] = $150; - } - } while(0); - $63 = $92; - $242 = $63; - $243 = ((($242)) + 12|0); - $62 = $243; - $244 = $62; - $61 = $244; - $245 = $61; - $246 = ((($92)) + 8|0); - $247 = HEAP32[$246>>2]|0; - $64 = $247; - $248 = $64; - $249 = $84; - $65 = $249; - $250 = $65; - $76 = $245; - $77 = $248; - $78 = $250; - $251 = $76; - $252 = $77; - $253 = $78; - $75 = $253; - $254 = $75; - ;HEAP8[$74>>0]=HEAP8[$79>>0]|0; - $71 = $251; - $72 = $252; - $73 = $254; - $255 = $71; - $256 = $72; - $257 = $73; - $70 = $257; - $258 = $70; - $67 = $255; - $68 = $256; - $69 = $258; - $259 = $68; - $260 = $69; - $66 = $260; - $261 = $66; - $262 = HEAP32[$261>>2]|0; - HEAP32[$259>>2] = $262; - $263 = ((($92)) + 8|0); - $264 = HEAP32[$263>>2]|0; - $265 = ((($264)) + 4|0); - HEAP32[$263>>2] = $265; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticENS_9allocatorIS4_EEE10push_frontEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 400|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(400|0); - $$byval_copy1 = sp + 388|0; - $$byval_copy = sp + 384|0; - $10 = sp + 8|0; - $13 = sp + 393|0; - $26 = sp + 292|0; - $32 = sp + 268|0; - $38 = sp + 244|0; - $50 = sp + 196|0; - $77 = sp; - $82 = sp + 392|0; - $90 = sp + 44|0; - $91 = sp + 40|0; - $92 = sp + 20|0; - $93 = sp + 16|0; - $94 = sp + 12|0; - $86 = $0; - $87 = $1; - $95 = $86; - $96 = ((($95)) + 4|0); - $97 = HEAP32[$96>>2]|0; - $98 = HEAP32[$95>>2]|0; - $99 = ($97|0)==($98|0); - do { - if ($99) { - $100 = ((($95)) + 8|0); - $101 = HEAP32[$100>>2]|0; - $85 = $95; - $102 = $85; - $103 = ((($102)) + 12|0); - $84 = $103; - $104 = $84; - $83 = $104; - $105 = $83; - $106 = HEAP32[$105>>2]|0; - $107 = ($101>>>0)<($106>>>0); - if (!($107)) { - $20 = $95; - $158 = $20; - $159 = ((($158)) + 12|0); - $19 = $159; - $160 = $19; - $18 = $160; - $161 = $18; - $162 = HEAP32[$161>>2]|0; - $163 = HEAP32[$95>>2]|0; - $164 = $162; - $165 = $163; - $166 = (($164) - ($165))|0; - $167 = (($166|0) / 4)&-1; - $168 = $167<<1; - HEAP32[$90>>2] = $168; - HEAP32[$91>>2] = 1; - $11 = $90; - $12 = $91; - $169 = $11; - $170 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $169; - $9 = $170; - $171 = $8; - $172 = $9; - $5 = $10; - $6 = $171; - $7 = $172; - $173 = $6; - $174 = HEAP32[$173>>2]|0; - $175 = $7; - $176 = HEAP32[$175>>2]|0; - $177 = ($174>>>0)<($176>>>0); - $178 = $9; - $179 = $8; - $180 = $177 ? $178 : $179; - $181 = HEAP32[$180>>2]|0; - $89 = $181; - $182 = $89; - $183 = $89; - $184 = (($183) + 3)|0; - $185 = (($184>>>0) / 4)&-1; - $4 = $95; - $186 = $4; - $187 = ((($186)) + 12|0); - $3 = $187; - $188 = $3; - $2 = $188; - $189 = $2; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($92,$182,$185,$189); - $190 = ((($95)) + 4|0); - $191 = HEAP32[$190>>2]|0; - $14 = $93; - $15 = $191; - $192 = $14; - $193 = $15; - HEAP32[$192>>2] = $193; - $194 = ((($95)) + 8|0); - $195 = HEAP32[$194>>2]|0; - $16 = $94; - $17 = $195; - $196 = $16; - $197 = $17; - HEAP32[$196>>2] = $197; - ;HEAP32[$$byval_copy>>2]=HEAP32[$93>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$94>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($92,$$byval_copy,$$byval_copy1); - $24 = $95; - $25 = $92; - $198 = $24; - $23 = $198; - $199 = $23; - $200 = HEAP32[$199>>2]|0; - HEAP32[$26>>2] = $200; - $201 = $25; - $21 = $201; - $202 = $21; - $203 = HEAP32[$202>>2]|0; - $204 = $24; - HEAP32[$204>>2] = $203; - $22 = $26; - $205 = $22; - $206 = HEAP32[$205>>2]|0; - $207 = $25; - HEAP32[$207>>2] = $206; - $208 = ((($95)) + 4|0); - $209 = ((($92)) + 4|0); - $30 = $208; - $31 = $209; - $210 = $30; - $29 = $210; - $211 = $29; - $212 = HEAP32[$211>>2]|0; - HEAP32[$32>>2] = $212; - $213 = $31; - $27 = $213; - $214 = $27; - $215 = HEAP32[$214>>2]|0; - $216 = $30; - HEAP32[$216>>2] = $215; - $28 = $32; - $217 = $28; - $218 = HEAP32[$217>>2]|0; - $219 = $31; - HEAP32[$219>>2] = $218; - $220 = ((($95)) + 8|0); - $221 = ((($92)) + 8|0); - $36 = $220; - $37 = $221; - $222 = $36; - $35 = $222; - $223 = $35; - $224 = HEAP32[$223>>2]|0; - HEAP32[$38>>2] = $224; - $225 = $37; - $33 = $225; - $226 = $33; - $227 = HEAP32[$226>>2]|0; - $228 = $36; - HEAP32[$228>>2] = $227; - $34 = $38; - $229 = $34; - $230 = HEAP32[$229>>2]|0; - $231 = $37; - HEAP32[$231>>2] = $230; - $41 = $95; - $232 = $41; - $233 = ((($232)) + 12|0); - $40 = $233; - $234 = $40; - $39 = $234; - $235 = $39; - $44 = $92; - $236 = $44; - $237 = ((($236)) + 12|0); - $43 = $237; - $238 = $43; - $42 = $238; - $239 = $42; - $48 = $235; - $49 = $239; - $240 = $48; - $47 = $240; - $241 = $47; - $242 = HEAP32[$241>>2]|0; - HEAP32[$50>>2] = $242; - $243 = $49; - $45 = $243; - $244 = $45; - $245 = HEAP32[$244>>2]|0; - $246 = $48; - HEAP32[$246>>2] = $245; - $46 = $50; - $247 = $46; - $248 = HEAP32[$247>>2]|0; - $249 = $49; - HEAP32[$249>>2] = $248; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($92); - break; - } - $63 = $95; - $108 = $63; - $109 = ((($108)) + 12|0); - $62 = $109; - $110 = $62; - $61 = $110; - $111 = $61; - $112 = HEAP32[$111>>2]|0; - $113 = ((($95)) + 8|0); - $114 = HEAP32[$113>>2]|0; - $115 = $112; - $116 = $114; - $117 = (($115) - ($116))|0; - $118 = (($117|0) / 4)&-1; - $88 = $118; - $119 = $88; - $120 = (($119) + 1)|0; - $121 = (($120|0) / 2)&-1; - $88 = $121; - $122 = ((($95)) + 4|0); - $123 = HEAP32[$122>>2]|0; - $124 = ((($95)) + 8|0); - $125 = HEAP32[$124>>2]|0; - $126 = ((($95)) + 8|0); - $127 = HEAP32[$126>>2]|0; - $128 = $88; - $129 = (($127) + ($128<<2)|0); - $58 = $123; - $59 = $125; - $60 = $129; - $130 = $58; - $57 = $130; - $131 = $57; - $132 = $59; - $51 = $132; - $133 = $51; - $134 = $60; - $52 = $134; - $135 = $52; - $53 = $131; - $54 = $133; - $55 = $135; - $136 = $54; - $137 = $53; - $138 = $136; - $139 = $137; - $140 = (($138) - ($139))|0; - $141 = (($140|0) / 4)&-1; - $56 = $141; - $142 = $56; - $143 = ($142>>>0)>(0); - if ($143) { - $144 = $56; - $145 = $55; - $146 = (0 - ($144))|0; - $147 = (($145) + ($146<<2)|0); - $55 = $147; - $148 = $55; - $149 = $53; - $150 = $56; - $151 = $150<<2; - _memmove(($148|0),($149|0),($151|0))|0; - } - $152 = $55; - $153 = ((($95)) + 4|0); - HEAP32[$153>>2] = $152; - $154 = $88; - $155 = ((($95)) + 8|0); - $156 = HEAP32[$155>>2]|0; - $157 = (($156) + ($154<<2)|0); - HEAP32[$155>>2] = $157; - } - } while(0); - $66 = $95; - $250 = $66; - $251 = ((($250)) + 12|0); - $65 = $251; - $252 = $65; - $64 = $252; - $253 = $64; - $254 = ((($95)) + 4|0); - $255 = HEAP32[$254>>2]|0; - $256 = ((($255)) + -4|0); - $67 = $256; - $257 = $67; - $258 = $87; - $68 = $258; - $259 = $68; - $79 = $253; - $80 = $257; - $81 = $259; - $260 = $79; - $261 = $80; - $262 = $81; - $78 = $262; - $263 = $78; - ;HEAP8[$77>>0]=HEAP8[$82>>0]|0; - $74 = $260; - $75 = $261; - $76 = $263; - $264 = $74; - $265 = $75; - $266 = $76; - $73 = $266; - $267 = $73; - $70 = $264; - $71 = $265; - $72 = $267; - $268 = $71; - $269 = $72; - $69 = $269; - $270 = $69; - $271 = HEAP32[$270>>2]|0; - HEAP32[$268>>2] = $271; - $272 = ((($95)) + 4|0); - $273 = HEAP32[$272>>2]|0; - $274 = ((($273)) + -4|0); - HEAP32[$272>>2] = $274; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(128|0); - $35 = sp; - $31 = $0; - $32 = $1; - $33 = $2; - $34 = $3; - $36 = $31; - $37 = ((($36)) + 12|0); - HEAP32[$35>>2] = 0; - $38 = $34; - $28 = $37; - $29 = $35; - $30 = $38; - $39 = $28; - $40 = $29; - $27 = $40; - $41 = $27; - $21 = $39; - $22 = $41; - $42 = $21; - $43 = $22; - $20 = $43; - HEAP32[$42>>2] = 0; - $44 = ((($39)) + 4|0); - $45 = $30; - $23 = $45; - $46 = $23; - $25 = $44; - $26 = $46; - $47 = $25; - $48 = $26; - $24 = $48; - $49 = $24; - HEAP32[$47>>2] = $49; - $50 = $32; - $51 = ($50|0)!=(0); - do { - if ($51) { - $6 = $36; - $52 = $6; - $53 = ((($52)) + 12|0); - $5 = $53; - $54 = $5; - $55 = ((($54)) + 4|0); - $4 = $55; - $56 = $4; - $57 = HEAP32[$56>>2]|0; - $58 = $32; - $15 = $57; - $16 = $58; - $59 = $15; - $60 = $16; - $12 = $59; - $13 = $60; - $14 = 0; - $61 = $12; - $62 = $13; - $11 = $61; - $63 = ($62>>>0)>(1073741823); - if ($63) { - $9 = 4287; - $64 = (___cxa_allocate_exception(8)|0); - $65 = $9; - $7 = $64; - $8 = $65; - $66 = $7; - $67 = $8; - __ZNSt11logic_errorC2EPKc($66,$67); - HEAP32[$66>>2] = (3660); - ___cxa_throw(($64|0),(1384|0),(220|0)); - // unreachable; - } else { - $68 = $13; - $69 = $68<<2; - $10 = $69; - $70 = $10; - $71 = (__Znwj($70)|0); - $72 = $71; - break; - } - } else { - $72 = 0; - } - } while(0); - HEAP32[$36>>2] = $72; - $73 = HEAP32[$36>>2]|0; - $74 = $33; - $75 = (($73) + ($74<<2)|0); - $76 = ((($36)) + 8|0); - HEAP32[$76>>2] = $75; - $77 = ((($36)) + 4|0); - HEAP32[$77>>2] = $75; - $78 = HEAP32[$36>>2]|0; - $79 = $32; - $80 = (($78) + ($79<<2)|0); - $19 = $36; - $81 = $19; - $82 = ((($81)) + 12|0); - $18 = $82; - $83 = $18; - $17 = $83; - $84 = $17; - HEAP32[$84>>2] = $80; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE9push_backEOS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; - var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; - var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; - var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; - var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 384|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(384|0); - $$byval_copy1 = sp + 376|0; - $$byval_copy = sp + 372|0; - $14 = sp + 8|0; - $17 = sp + 381|0; - $23 = sp + 292|0; - $29 = sp + 268|0; - $35 = sp + 244|0; - $47 = sp + 196|0; - $74 = sp; - $79 = sp + 380|0; - $87 = sp + 44|0; - $88 = sp + 40|0; - $89 = sp + 20|0; - $90 = sp + 16|0; - $91 = sp + 12|0; - $83 = $0; - $84 = $1; - $92 = $83; - $93 = ((($92)) + 8|0); - $94 = HEAP32[$93>>2]|0; - $82 = $92; - $95 = $82; - $96 = ((($95)) + 12|0); - $81 = $96; - $97 = $81; - $80 = $97; - $98 = $80; - $99 = HEAP32[$98>>2]|0; - $100 = ($94|0)==($99|0); - do { - if ($100) { - $101 = ((($92)) + 4|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[$92>>2]|0; - $104 = ($102>>>0)>($103>>>0); - if (!($104)) { - $50 = $92; - $151 = $50; - $152 = ((($151)) + 12|0); - $49 = $152; - $153 = $49; - $48 = $153; - $154 = $48; - $155 = HEAP32[$154>>2]|0; - $156 = HEAP32[$92>>2]|0; - $157 = $155; - $158 = $156; - $159 = (($157) - ($158))|0; - $160 = (($159|0) / 4)&-1; - $161 = $160<<1; - HEAP32[$87>>2] = $161; - HEAP32[$88>>2] = 1; - $15 = $87; - $16 = $88; - $162 = $15; - $163 = $16; - ;HEAP8[$14>>0]=HEAP8[$17>>0]|0; - $12 = $162; - $13 = $163; - $164 = $12; - $165 = $13; - $9 = $14; - $10 = $164; - $11 = $165; - $166 = $10; - $167 = HEAP32[$166>>2]|0; - $168 = $11; - $169 = HEAP32[$168>>2]|0; - $170 = ($167>>>0)<($169>>>0); - $171 = $13; - $172 = $12; - $173 = $170 ? $171 : $172; - $174 = HEAP32[$173>>2]|0; - $86 = $174; - $175 = $86; - $176 = $86; - $177 = (($176>>>0) / 4)&-1; - $4 = $92; - $178 = $4; - $179 = ((($178)) + 12|0); - $3 = $179; - $180 = $3; - $181 = ((($180)) + 4|0); - $2 = $181; - $182 = $2; - $183 = HEAP32[$182>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($89,$175,$177,$183); - $184 = ((($92)) + 4|0); - $185 = HEAP32[$184>>2]|0; - $5 = $90; - $6 = $185; - $186 = $5; - $187 = $6; - HEAP32[$186>>2] = $187; - $188 = ((($92)) + 8|0); - $189 = HEAP32[$188>>2]|0; - $7 = $91; - $8 = $189; - $190 = $7; - $191 = $8; - HEAP32[$190>>2] = $191; - ;HEAP32[$$byval_copy>>2]=HEAP32[$90>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$91>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($89,$$byval_copy,$$byval_copy1); - $21 = $92; - $22 = $89; - $192 = $21; - $20 = $192; - $193 = $20; - $194 = HEAP32[$193>>2]|0; - HEAP32[$23>>2] = $194; - $195 = $22; - $18 = $195; - $196 = $18; - $197 = HEAP32[$196>>2]|0; - $198 = $21; - HEAP32[$198>>2] = $197; - $19 = $23; - $199 = $19; - $200 = HEAP32[$199>>2]|0; - $201 = $22; - HEAP32[$201>>2] = $200; - $202 = ((($92)) + 4|0); - $203 = ((($89)) + 4|0); - $27 = $202; - $28 = $203; - $204 = $27; - $26 = $204; - $205 = $26; - $206 = HEAP32[$205>>2]|0; - HEAP32[$29>>2] = $206; - $207 = $28; - $24 = $207; - $208 = $24; - $209 = HEAP32[$208>>2]|0; - $210 = $27; - HEAP32[$210>>2] = $209; - $25 = $29; - $211 = $25; - $212 = HEAP32[$211>>2]|0; - $213 = $28; - HEAP32[$213>>2] = $212; - $214 = ((($92)) + 8|0); - $215 = ((($89)) + 8|0); - $33 = $214; - $34 = $215; - $216 = $33; - $32 = $216; - $217 = $32; - $218 = HEAP32[$217>>2]|0; - HEAP32[$35>>2] = $218; - $219 = $34; - $30 = $219; - $220 = $30; - $221 = HEAP32[$220>>2]|0; - $222 = $33; - HEAP32[$222>>2] = $221; - $31 = $35; - $223 = $31; - $224 = HEAP32[$223>>2]|0; - $225 = $34; - HEAP32[$225>>2] = $224; - $38 = $92; - $226 = $38; - $227 = ((($226)) + 12|0); - $37 = $227; - $228 = $37; - $36 = $228; - $229 = $36; - $41 = $89; - $230 = $41; - $231 = ((($230)) + 12|0); - $40 = $231; - $232 = $40; - $39 = $232; - $233 = $39; - $45 = $229; - $46 = $233; - $234 = $45; - $44 = $234; - $235 = $44; - $236 = HEAP32[$235>>2]|0; - HEAP32[$47>>2] = $236; - $237 = $46; - $42 = $237; - $238 = $42; - $239 = HEAP32[$238>>2]|0; - $240 = $45; - HEAP32[$240>>2] = $239; - $43 = $47; - $241 = $43; - $242 = HEAP32[$241>>2]|0; - $243 = $46; - HEAP32[$243>>2] = $242; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($89); - break; - } - $105 = ((($92)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = HEAP32[$92>>2]|0; - $108 = $106; - $109 = $107; - $110 = (($108) - ($109))|0; - $111 = (($110|0) / 4)&-1; - $85 = $111; - $112 = $85; - $113 = (($112) + 1)|0; - $114 = (($113|0) / 2)&-1; - $85 = $114; - $115 = ((($92)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = ((($92)) + 8|0); - $118 = HEAP32[$117>>2]|0; - $119 = ((($92)) + 4|0); - $120 = HEAP32[$119>>2]|0; - $121 = $85; - $122 = (0 - ($121))|0; - $123 = (($120) + ($122<<2)|0); - $58 = $116; - $59 = $118; - $60 = $123; - $124 = $58; - $57 = $124; - $125 = $57; - $126 = $59; - $51 = $126; - $127 = $51; - $128 = $60; - $52 = $128; - $129 = $52; - $53 = $125; - $54 = $127; - $55 = $129; - $130 = $54; - $131 = $53; - $132 = $130; - $133 = $131; - $134 = (($132) - ($133))|0; - $135 = (($134|0) / 4)&-1; - $56 = $135; - $136 = $56; - $137 = ($136>>>0)>(0); - if ($137) { - $138 = $55; - $139 = $53; - $140 = $56; - $141 = $140<<2; - _memmove(($138|0),($139|0),($141|0))|0; - } - $142 = $55; - $143 = $56; - $144 = (($142) + ($143<<2)|0); - $145 = ((($92)) + 8|0); - HEAP32[$145>>2] = $144; - $146 = $85; - $147 = ((($92)) + 4|0); - $148 = HEAP32[$147>>2]|0; - $149 = (0 - ($146))|0; - $150 = (($148) + ($149<<2)|0); - HEAP32[$147>>2] = $150; - } - } while(0); - $63 = $92; - $244 = $63; - $245 = ((($244)) + 12|0); - $62 = $245; - $246 = $62; - $247 = ((($246)) + 4|0); - $61 = $247; - $248 = $61; - $249 = HEAP32[$248>>2]|0; - $250 = ((($92)) + 8|0); - $251 = HEAP32[$250>>2]|0; - $64 = $251; - $252 = $64; - $253 = $84; - $65 = $253; - $254 = $65; - $76 = $249; - $77 = $252; - $78 = $254; - $255 = $76; - $256 = $77; - $257 = $78; - $75 = $257; - $258 = $75; - ;HEAP8[$74>>0]=HEAP8[$79>>0]|0; - $71 = $255; - $72 = $256; - $73 = $258; - $259 = $71; - $260 = $72; - $261 = $73; - $70 = $261; - $262 = $70; - $67 = $259; - $68 = $260; - $69 = $262; - $263 = $68; - $264 = $69; - $66 = $264; - $265 = $66; - $266 = HEAP32[$265>>2]|0; - HEAP32[$263>>2] = $266; - $267 = ((($92)) + 8|0); - $268 = HEAP32[$267>>2]|0; - $269 = ((($268)) + 4|0); - HEAP32[$267>>2] = $269; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE10push_frontERKS4_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $$byval_copy1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; - var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; - var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; - var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; - var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 400|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(400|0); - $$byval_copy1 = sp + 384|0; - $$byval_copy = sp + 380|0; - $10 = sp + 8|0; - $13 = sp + 389|0; - $26 = sp + 288|0; - $32 = sp + 264|0; - $38 = sp + 240|0; - $50 = sp + 192|0; - $76 = sp; - $81 = sp + 388|0; - $89 = sp + 44|0; - $90 = sp + 40|0; - $91 = sp + 20|0; - $92 = sp + 16|0; - $93 = sp + 12|0; - $85 = $0; - $86 = $1; - $94 = $85; - $95 = ((($94)) + 4|0); - $96 = HEAP32[$95>>2]|0; - $97 = HEAP32[$94>>2]|0; - $98 = ($96|0)==($97|0); - do { - if ($98) { - $99 = ((($94)) + 8|0); - $100 = HEAP32[$99>>2]|0; - $84 = $94; - $101 = $84; - $102 = ((($101)) + 12|0); - $83 = $102; - $103 = $83; - $82 = $103; - $104 = $82; - $105 = HEAP32[$104>>2]|0; - $106 = ($100>>>0)<($105>>>0); - if (!($106)) { - $20 = $94; - $157 = $20; - $158 = ((($157)) + 12|0); - $19 = $158; - $159 = $19; - $18 = $159; - $160 = $18; - $161 = HEAP32[$160>>2]|0; - $162 = HEAP32[$94>>2]|0; - $163 = $161; - $164 = $162; - $165 = (($163) - ($164))|0; - $166 = (($165|0) / 4)&-1; - $167 = $166<<1; - HEAP32[$89>>2] = $167; - HEAP32[$90>>2] = 1; - $11 = $89; - $12 = $90; - $168 = $11; - $169 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $168; - $9 = $169; - $170 = $8; - $171 = $9; - $5 = $10; - $6 = $170; - $7 = $171; - $172 = $6; - $173 = HEAP32[$172>>2]|0; - $174 = $7; - $175 = HEAP32[$174>>2]|0; - $176 = ($173>>>0)<($175>>>0); - $177 = $9; - $178 = $8; - $179 = $176 ? $177 : $178; - $180 = HEAP32[$179>>2]|0; - $88 = $180; - $181 = $88; - $182 = $88; - $183 = (($182) + 3)|0; - $184 = (($183>>>0) / 4)&-1; - $4 = $94; - $185 = $4; - $186 = ((($185)) + 12|0); - $3 = $186; - $187 = $3; - $188 = ((($187)) + 4|0); - $2 = $188; - $189 = $2; - $190 = HEAP32[$189>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEEC2EjjS7_($91,$181,$184,$190); - $191 = ((($94)) + 4|0); - $192 = HEAP32[$191>>2]|0; - $14 = $92; - $15 = $192; - $193 = $14; - $194 = $15; - HEAP32[$193>>2] = $194; - $195 = ((($94)) + 8|0); - $196 = HEAP32[$195>>2]|0; - $16 = $93; - $17 = $196; - $197 = $16; - $198 = $17; - HEAP32[$197>>2] = $198; - ;HEAP32[$$byval_copy>>2]=HEAP32[$92>>2]|0; - ;HEAP32[$$byval_copy1>>2]=HEAP32[$93>>2]|0; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($91,$$byval_copy,$$byval_copy1); - $24 = $94; - $25 = $91; - $199 = $24; - $23 = $199; - $200 = $23; - $201 = HEAP32[$200>>2]|0; - HEAP32[$26>>2] = $201; - $202 = $25; - $21 = $202; - $203 = $21; - $204 = HEAP32[$203>>2]|0; - $205 = $24; - HEAP32[$205>>2] = $204; - $22 = $26; - $206 = $22; - $207 = HEAP32[$206>>2]|0; - $208 = $25; - HEAP32[$208>>2] = $207; - $209 = ((($94)) + 4|0); - $210 = ((($91)) + 4|0); - $30 = $209; - $31 = $210; - $211 = $30; - $29 = $211; - $212 = $29; - $213 = HEAP32[$212>>2]|0; - HEAP32[$32>>2] = $213; - $214 = $31; - $27 = $214; - $215 = $27; - $216 = HEAP32[$215>>2]|0; - $217 = $30; - HEAP32[$217>>2] = $216; - $28 = $32; - $218 = $28; - $219 = HEAP32[$218>>2]|0; - $220 = $31; - HEAP32[$220>>2] = $219; - $221 = ((($94)) + 8|0); - $222 = ((($91)) + 8|0); - $36 = $221; - $37 = $222; - $223 = $36; - $35 = $223; - $224 = $35; - $225 = HEAP32[$224>>2]|0; - HEAP32[$38>>2] = $225; - $226 = $37; - $33 = $226; - $227 = $33; - $228 = HEAP32[$227>>2]|0; - $229 = $36; - HEAP32[$229>>2] = $228; - $34 = $38; - $230 = $34; - $231 = HEAP32[$230>>2]|0; - $232 = $37; - HEAP32[$232>>2] = $231; - $41 = $94; - $233 = $41; - $234 = ((($233)) + 12|0); - $40 = $234; - $235 = $40; - $39 = $235; - $236 = $39; - $44 = $91; - $237 = $44; - $238 = ((($237)) + 12|0); - $43 = $238; - $239 = $43; - $42 = $239; - $240 = $42; - $48 = $236; - $49 = $240; - $241 = $48; - $47 = $241; - $242 = $47; - $243 = HEAP32[$242>>2]|0; - HEAP32[$50>>2] = $243; - $244 = $49; - $45 = $244; - $245 = $45; - $246 = HEAP32[$245>>2]|0; - $247 = $48; - HEAP32[$247>>2] = $246; - $46 = $50; - $248 = $46; - $249 = HEAP32[$248>>2]|0; - $250 = $49; - HEAP32[$250>>2] = $249; - __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($91); - break; - } - $63 = $94; - $107 = $63; - $108 = ((($107)) + 12|0); - $62 = $108; - $109 = $62; - $61 = $109; - $110 = $61; - $111 = HEAP32[$110>>2]|0; - $112 = ((($94)) + 8|0); - $113 = HEAP32[$112>>2]|0; - $114 = $111; - $115 = $113; - $116 = (($114) - ($115))|0; - $117 = (($116|0) / 4)&-1; - $87 = $117; - $118 = $87; - $119 = (($118) + 1)|0; - $120 = (($119|0) / 2)&-1; - $87 = $120; - $121 = ((($94)) + 4|0); - $122 = HEAP32[$121>>2]|0; - $123 = ((($94)) + 8|0); - $124 = HEAP32[$123>>2]|0; - $125 = ((($94)) + 8|0); - $126 = HEAP32[$125>>2]|0; - $127 = $87; - $128 = (($126) + ($127<<2)|0); - $58 = $122; - $59 = $124; - $60 = $128; - $129 = $58; - $57 = $129; - $130 = $57; - $131 = $59; - $51 = $131; - $132 = $51; - $133 = $60; - $52 = $133; - $134 = $52; - $53 = $130; - $54 = $132; - $55 = $134; - $135 = $54; - $136 = $53; - $137 = $135; - $138 = $136; - $139 = (($137) - ($138))|0; - $140 = (($139|0) / 4)&-1; - $56 = $140; - $141 = $56; - $142 = ($141>>>0)>(0); - if ($142) { - $143 = $56; - $144 = $55; - $145 = (0 - ($143))|0; - $146 = (($144) + ($145<<2)|0); - $55 = $146; - $147 = $55; - $148 = $53; - $149 = $56; - $150 = $149<<2; - _memmove(($147|0),($148|0),($150|0))|0; - } - $151 = $55; - $152 = ((($94)) + 4|0); - HEAP32[$152>>2] = $151; - $153 = $87; - $154 = ((($94)) + 8|0); - $155 = HEAP32[$154>>2]|0; - $156 = (($155) + ($153<<2)|0); - HEAP32[$154>>2] = $156; - } - } while(0); - $66 = $94; - $251 = $66; - $252 = ((($251)) + 12|0); - $65 = $252; - $253 = $65; - $254 = ((($253)) + 4|0); - $64 = $254; - $255 = $64; - $256 = HEAP32[$255>>2]|0; - $257 = ((($94)) + 4|0); - $258 = HEAP32[$257>>2]|0; - $259 = ((($258)) + -4|0); - $67 = $259; - $260 = $67; - $261 = $86; - $78 = $256; - $79 = $260; - $80 = $261; - $262 = $78; - $263 = $79; - $264 = $80; - $77 = $264; - $265 = $77; - ;HEAP8[$76>>0]=HEAP8[$81>>0]|0; - $73 = $262; - $74 = $263; - $75 = $265; - $266 = $73; - $267 = $74; - $268 = $75; - $72 = $268; - $269 = $72; - $69 = $266; - $70 = $267; - $71 = $269; - $270 = $70; - $271 = $71; - $68 = $271; - $272 = $68; - $273 = HEAP32[$272>>2]|0; - HEAP32[$270>>2] = $273; - $274 = ((($94)) + 4|0); - $275 = HEAP32[$274>>2]|0; - $276 = ((($275)) + -4|0); - HEAP32[$274>>2] = $276; - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $19 = sp + 8|0; - $22 = sp + 133|0; - $29 = sp; - $32 = sp + 132|0; - $34 = $0; - $35 = $34; - $33 = $35; - $36 = $33; - $37 = ((($36)) + 4|0); - $38 = HEAP32[$37>>2]|0; - $30 = $36; - $31 = $38; - $39 = $30; - $40 = $31; - ;HEAP8[$29>>0]=HEAP8[$32>>0]|0; - $27 = $39; - $28 = $40; - $41 = $27; - while(1) { - $42 = $28; - $43 = ((($41)) + 8|0); - $44 = HEAP32[$43>>2]|0; - $45 = ($42|0)!=($44|0); - if (!($45)) { - break; - } - $26 = $41; - $46 = $26; - $47 = ((($46)) + 12|0); - $25 = $47; - $48 = $25; - $49 = ((($48)) + 4|0); - $24 = $49; - $50 = $24; - $51 = HEAP32[$50>>2]|0; - $52 = ((($41)) + 8|0); - $53 = HEAP32[$52>>2]|0; - $54 = ((($53)) + -4|0); - HEAP32[$52>>2] = $54; - $23 = $54; - $55 = $23; - $20 = $51; - $21 = $55; - $56 = $20; - $57 = $21; - ;HEAP8[$19>>0]=HEAP8[$22>>0]|0; - $17 = $56; - $18 = $57; - $58 = $17; - $59 = $18; - $15 = $58; - $16 = $59; - } - $60 = HEAP32[$35>>2]|0; - $61 = ($60|0)!=(0|0); - if (!($61)) { - STACKTOP = sp;return; - } - $14 = $35; - $62 = $14; - $63 = ((($62)) + 12|0); - $13 = $63; - $64 = $13; - $65 = ((($64)) + 4|0); - $12 = $65; - $66 = $12; - $67 = HEAP32[$66>>2]|0; - $68 = HEAP32[$35>>2]|0; - $4 = $35; - $69 = $4; - $3 = $69; - $70 = $3; - $71 = ((($70)) + 12|0); - $2 = $71; - $72 = $2; - $1 = $72; - $73 = $1; - $74 = HEAP32[$73>>2]|0; - $75 = HEAP32[$69>>2]|0; - $76 = $74; - $77 = $75; - $78 = (($76) - ($77))|0; - $79 = (($78|0) / 4)&-1; - $9 = $67; - $10 = $68; - $11 = $79; - $80 = $9; - $81 = $10; - $82 = $11; - $6 = $80; - $7 = $81; - $8 = $82; - $83 = $7; - $5 = $83; - $84 = $5; - __ZdlPv($84); - STACKTOP = sp;return; -} -function __ZNSt3__214__split_bufferIPN6laszip6models10arithmeticERNS_9allocatorIS4_EEE18__construct_at_endINS_13move_iteratorIPS4_EEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeESE_SE_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 112|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(112|0); - $17 = sp; - $22 = sp + 100|0; - $27 = $0; - $29 = $27; - $26 = $29; - $30 = $26; - $31 = ((($30)) + 12|0); - $25 = $31; - $32 = $25; - $33 = ((($32)) + 4|0); - $24 = $33; - $34 = $24; - $35 = HEAP32[$34>>2]|0; - $28 = $35; - while(1) { - $5 = $1; - $6 = $2; - $36 = $5; - $4 = $36; - $37 = $4; - $38 = HEAP32[$37>>2]|0; - $39 = $6; - $3 = $39; - $40 = $3; - $41 = HEAP32[$40>>2]|0; - $42 = ($38|0)!=($41|0); - if (!($42)) { - break; - } - $43 = $28; - $44 = ((($29)) + 8|0); - $45 = HEAP32[$44>>2]|0; - $7 = $45; - $46 = $7; - $8 = $1; - $47 = $8; - $48 = HEAP32[$47>>2]|0; - $19 = $43; - $20 = $46; - $21 = $48; - $49 = $19; - $50 = $20; - $51 = $21; - $18 = $51; - $52 = $18; - ;HEAP8[$17>>0]=HEAP8[$22>>0]|0; - $14 = $49; - $15 = $50; - $16 = $52; - $53 = $14; - $54 = $15; - $55 = $16; - $13 = $55; - $56 = $13; - $10 = $53; - $11 = $54; - $12 = $56; - $57 = $11; - $58 = $12; - $9 = $58; - $59 = $9; - $60 = HEAP32[$59>>2]|0; - HEAP32[$57>>2] = $60; - $61 = ((($29)) + 8|0); - $62 = HEAP32[$61>>2]|0; - $63 = ((($62)) + 4|0); - HEAP32[$61>>2] = $63; - $23 = $1; - $64 = $23; - $65 = HEAP32[$64>>2]|0; - $66 = ((($65)) + 4|0); - HEAP32[$64>>2] = $66; - } - STACKTOP = sp;return; -} -function __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $1; - $9 = $7; - $6 = $9; - $10 = $6; - $11 = ((($10)) + 4|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($9)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14>>>0) / 93)&-1; - $16 = (($12) + ($15<<2)|0); - $8 = $16; - $17 = $8; - $5 = $9; - $18 = $5; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($18)) + 4|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $30 = 0; - } else { - $24 = $8; - $25 = HEAP32[$24>>2]|0; - $26 = ((($9)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27>>>0) % 93)&-1; - $29 = (($25) + (($28*44)|0)|0); - $30 = $29; - } - $2 = $0; - $3 = $17; - $4 = $30; - $31 = $2; - $32 = $3; - HEAP32[$31>>2] = $32; - $33 = ((($31)) + 4|0); - $34 = $4; - HEAP32[$33>>2] = $34; - STACKTOP = sp;return; -} -function __ZNKSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = $1; - $13 = $10; - $9 = $13; - $14 = $9; - $15 = ((($14)) + 20|0); - $8 = $15; - $16 = $8; - $7 = $16; - $17 = $7; - $18 = HEAP32[$17>>2]|0; - $19 = ((($13)) + 16|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($18) + ($20))|0; - $11 = $21; - $6 = $13; - $22 = $6; - $23 = ((($22)) + 4|0); - $24 = HEAP32[$23>>2]|0; - $25 = $11; - $26 = (($25>>>0) / 93)&-1; - $27 = (($24) + ($26<<2)|0); - $12 = $27; - $28 = $12; - $2 = $13; - $29 = $2; - $30 = ((($29)) + 8|0); - $31 = HEAP32[$30>>2]|0; - $32 = ((($29)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = ($31|0)==($33|0); - if ($34) { - $40 = 0; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; - } - $35 = $12; - $36 = HEAP32[$35>>2]|0; - $37 = $11; - $38 = (($37>>>0) % 93)&-1; - $39 = (($36) + (($38*44)|0)|0); - $40 = $39; - $3 = $0; - $4 = $28; - $5 = $40; - $41 = $3; - $42 = $4; - HEAP32[$41>>2] = $42; - $43 = ((($41)) + 4|0); - $44 = $5; - HEAP32[$43>>2] = $44; - STACKTOP = sp;return; -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5clearEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; - var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; - var $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0; - var $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; - var $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 192|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(192|0); - $6 = sp + 8|0; - $9 = sp + 177|0; - $26 = sp; - $29 = sp + 176|0; - $41 = sp + 24|0; - $42 = sp + 16|0; - $39 = $0; - $43 = $39; - $38 = $43; - $44 = $38; - $45 = ((($44)) + 20|0); - $37 = $45; - $46 = $37; - $36 = $46; - $47 = $36; - $40 = $47; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($41,$43); - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($42,$43); - while(1) { - $34 = $41; - $35 = $42; - $48 = $34; - $49 = $35; - $32 = $48; - $33 = $49; - $50 = $32; - $51 = ((($50)) + 4|0); - $52 = HEAP32[$51>>2]|0; - $53 = $33; - $54 = ((($53)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $56 = ($52|0)==($55|0); - $57 = $56 ^ 1; - if (!($57)) { - break; - } - $58 = $40; - $16 = $41; - $59 = $16; - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $1 = $61; - $62 = $1; - $7 = $58; - $8 = $62; - $63 = $7; - $64 = $8; - ;HEAP8[$6>>0]=HEAP8[$9>>0]|0; - $4 = $63; - $5 = $64; - $65 = $4; - $66 = $5; - $2 = $65; - $3 = $66; - $67 = $3; - __ZN6laszip6models10arithmeticD2Ev($67); - $10 = $41; - $68 = $10; - $69 = ((($68)) + 4|0); - $70 = HEAP32[$69>>2]|0; - $71 = ((($70)) + 44|0); - HEAP32[$69>>2] = $71; - $72 = HEAP32[$68>>2]|0; - $73 = HEAP32[$72>>2]|0; - $74 = $71; - $75 = $73; - $76 = (($74) - ($75))|0; - $77 = (($76|0) / 44)&-1; - $78 = ($77|0)==(93); - if ($78) { - $79 = HEAP32[$68>>2]|0; - $80 = ((($79)) + 4|0); - HEAP32[$68>>2] = $80; - $81 = HEAP32[$68>>2]|0; - $82 = HEAP32[$81>>2]|0; - $83 = ((($68)) + 4|0); - HEAP32[$83>>2] = $82; - } - } - $13 = $43; - $84 = $13; - $85 = ((($84)) + 20|0); - $12 = $85; - $86 = $12; - $11 = $86; - $87 = $11; - HEAP32[$87>>2] = 0; - while(1) { - $14 = $43; - $88 = $14; - $89 = ((($88)) + 8|0); - $90 = HEAP32[$89>>2]|0; - $91 = ((($88)) + 4|0); - $92 = HEAP32[$91>>2]|0; - $93 = $90; - $94 = $92; - $95 = (($93) - ($94))|0; - $96 = (($95|0) / 4)&-1; - $97 = ($96>>>0)>(2); - if (!($97)) { - break; - } - $98 = $40; - $15 = $43; - $99 = $15; - $100 = ((($99)) + 4|0); - $101 = HEAP32[$100>>2]|0; - $102 = HEAP32[$101>>2]|0; - $21 = $98; - $22 = $102; - $23 = 93; - $103 = $21; - $104 = $22; - $105 = $23; - $18 = $103; - $19 = $104; - $20 = $105; - $106 = $19; - $17 = $106; - $107 = $17; - __ZdlPv($107); - $30 = $43; - $108 = $30; - $109 = ((($108)) + 4|0); - $110 = HEAP32[$109>>2]|0; - $111 = ((($110)) + 4|0); - $27 = $108; - $28 = $111; - $112 = $27; - $113 = $28; - ;HEAP8[$26>>0]=HEAP8[$29>>0]|0; - $24 = $112; - $25 = $113; - $114 = $24; - $115 = $25; - $116 = ((($114)) + 4|0); - HEAP32[$116>>2] = $115; - } - $31 = $43; - $117 = $31; - $118 = ((($117)) + 8|0); - $119 = HEAP32[$118>>2]|0; - $120 = ((($117)) + 4|0); - $121 = HEAP32[$120>>2]|0; - $122 = $119; - $123 = $121; - $124 = (($122) - ($123))|0; - $125 = (($124|0) / 4)&-1; - switch ($125|0) { - case 1: { - $126 = ((($43)) + 16|0); - HEAP32[$126>>2] = 46; - STACKTOP = sp;return; - break; - } - case 2: { - $127 = ((($43)) + 16|0); - HEAP32[$127>>2] = 93; - STACKTOP = sp;return; - break; - } - default: { - STACKTOP = sp;return; - } - } -} -function __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $7 = $1; - $9 = $7; - $6 = $9; - $10 = $6; - $11 = ((($10)) + 4|0); - $12 = HEAP32[$11>>2]|0; - $13 = ((($9)) + 16|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14>>>0) / 93)&-1; - $16 = (($12) + ($15<<2)|0); - $8 = $16; - $17 = $8; - $5 = $9; - $18 = $5; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($18)) + 4|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($20|0)==($22|0); - if ($23) { - $30 = 0; - } else { - $24 = $8; - $25 = HEAP32[$24>>2]|0; - $26 = ((($9)) + 16|0); - $27 = HEAP32[$26>>2]|0; - $28 = (($27>>>0) % 93)&-1; - $29 = (($25) + (($28*44)|0)|0); - $30 = $29; - } - $2 = $0; - $3 = $17; - $4 = $30; - $31 = $2; - $32 = $3; - HEAP32[$31>>2] = $32; - $33 = ((($31)) + 4|0); - $34 = $4; - HEAP32[$33>>2] = $34; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldINS0_3las10extrabytesENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0; - var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; - var $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; - var $190 = 0, $191 = 0, $192 = 0, $193 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0; - var $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0; - var $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0; - var $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0; - var $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 288|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(288|0); - $5 = sp + 268|0; - $8 = sp + 256|0; - $13 = sp + 236|0; - $16 = sp + 224|0; - $28 = sp + 176|0; - $31 = sp + 164|0; - $46 = sp + 104|0; - $50 = sp + 88|0; - $63 = sp + 36|0; - $64 = sp + 32|0; - $65 = sp + 24|0; - $66 = sp + 16|0; - $67 = sp + 12|0; - $68 = sp + 8|0; - $69 = sp; - $59 = $0; - $60 = $1; - $61 = $2; - $70 = $59; - $71 = ((($70)) + 4|0); - $72 = HEAP8[$71>>0]|0; - $73 = $72&1; - if (!($73)) { - $74 = $60; - $75 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE11getInStreamEv($74)|0); - $76 = $61; - $77 = HEAP32[$70>>2]|0; - __ZN6laszip2io18__ifstream_wrapperINS_7streams13memory_streamEE8getBytesEPhj($75,$76,$77); - $78 = $61; - $79 = $61; - $80 = HEAP32[$70>>2]|0; - $81 = (($79) + ($80)|0); - $82 = ((($70)) + 8|0); - $57 = $82; - $83 = $57; - $84 = HEAP32[$83>>2]|0; - $56 = $84; - $85 = $56; - $39 = $78; - $40 = $81; - $41 = $85; - $86 = $39; - $38 = $86; - $87 = $38; - $88 = $40; - $33 = $88; - $89 = $33; - $90 = $41; - $34 = $90; - $91 = $34; - $35 = $87; - $36 = $89; - $37 = $91; - while(1) { - $92 = $35; - $93 = $36; - $94 = ($92|0)!=($93|0); - if (!($94)) { - break; - } - $95 = $35; - $96 = HEAP8[$95>>0]|0; - $97 = $37; - HEAP8[$97>>0] = $96; - $98 = $35; - $99 = ((($98)) + 1|0); - $35 = $99; - $100 = $37; - $101 = ((($100)) + 1|0); - $37 = $101; - } - $102 = ((($70)) + 4|0); - HEAP8[$102>>0] = 1; - $103 = $61; - $104 = HEAP32[$70>>2]|0; - $105 = (($103) + ($104)|0); - $58 = $105; - $193 = $58; - STACKTOP = sp;return ($193|0); - } - $106 = ((($70)) + 20|0); - $62 = $106; - $107 = $62; - $32 = $107; - $108 = $32; - $109 = HEAP32[$108>>2]|0; - $29 = $108; - $30 = $109; - $110 = $30; - $26 = $28; - $27 = $110; - $111 = $26; - $112 = $27; - HEAP32[$111>>2] = $112; - $113 = HEAP32[$28>>2]|0; - HEAP32[$31>>2] = $113; - $114 = HEAP32[$31>>2]|0; - HEAP32[$63>>2] = $114; - $115 = ((($70)) + 8|0); - $9 = $115; - $116 = $9; - $117 = HEAP32[$116>>2]|0; - $6 = $116; - $7 = $117; - $118 = $7; - $3 = $5; - $4 = $118; - $119 = $3; - $120 = $4; - HEAP32[$119>>2] = $120; - $121 = HEAP32[$5>>2]|0; - HEAP32[$8>>2] = $121; - $122 = HEAP32[$8>>2]|0; - HEAP32[$64>>2] = $122; - $123 = ((($70)) + 32|0); - $10 = $123; - $124 = $10; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE5beginEv($65,$124); - while(1) { - $125 = ((($70)) + 8|0); - $17 = $125; - $126 = $17; - $127 = ((($126)) + 4|0); - $128 = HEAP32[$127>>2]|0; - $14 = $126; - $15 = $128; - $129 = $15; - $11 = $13; - $12 = $129; - $130 = $11; - $131 = $12; - HEAP32[$130>>2] = $131; - $132 = HEAP32[$13>>2]|0; - HEAP32[$16>>2] = $132; - $133 = HEAP32[$16>>2]|0; - HEAP32[$66>>2] = $133; - $22 = $64; - $23 = $66; - $134 = $22; - $135 = $23; - $20 = $134; - $21 = $135; - $136 = $20; - $19 = $136; - $137 = $19; - $138 = HEAP32[$137>>2]|0; - $139 = $21; - $18 = $139; - $140 = $18; - $141 = HEAP32[$140>>2]|0; - $142 = ($138|0)==($141|0); - $143 = $142 ^ 1; - if (!($143)) { - break; - } - $24 = $64; - $144 = $24; - $145 = HEAP32[$144>>2]|0; - $146 = HEAP8[$145>>0]|0; - $147 = $146&255; - $148 = $60; - $25 = $65; - $149 = $25; - $150 = ((($149)) + 4|0); - $151 = HEAP32[$150>>2]|0; - $152 = (__ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE12decodeSymbolINS_6models10arithmeticEEEjRT_($148,$151)|0); - $153 = (($147) + ($152))|0; - $154 = (__Z7u8_foldi($153)|0); - $42 = $63; - $155 = $42; - $156 = HEAP32[$155>>2]|0; - HEAP8[$156>>0] = $154; - $43 = $63; - $157 = $43; - $158 = HEAP32[$157>>2]|0; - $159 = HEAP8[$158>>0]|0; - $160 = $61; - HEAP8[$160>>0] = $159; - $44 = $64; - $161 = $44; - $162 = HEAP32[$161>>2]|0; - HEAP8[$162>>0] = $159; - $47 = $64; - $48 = 0; - $163 = $47; - ;HEAP32[$46>>2]=HEAP32[$163>>2]|0; - $45 = $163; - $164 = $45; - $165 = HEAP32[$164>>2]|0; - $166 = ((($165)) + 1|0); - HEAP32[$164>>2] = $166; - $167 = HEAP32[$46>>2]|0; - HEAP32[$67>>2] = $167; - $168 = $61; - $169 = ((($168)) + 1|0); - $61 = $169; - $51 = $63; - $52 = 0; - $170 = $51; - ;HEAP32[$50>>2]=HEAP32[$170>>2]|0; - $49 = $170; - $171 = $49; - $172 = HEAP32[$171>>2]|0; - $173 = ((($172)) + 1|0); - HEAP32[$171>>2] = $173; - $174 = HEAP32[$50>>2]|0; - HEAP32[$68>>2] = $174; - $54 = $65; - $55 = 0; - $175 = $54; - ;HEAP32[$69>>2]=HEAP32[$175>>2]|0;HEAP32[$69+4>>2]=HEAP32[$175+4>>2]|0; - $53 = $175; - $176 = $53; - $177 = ((($176)) + 4|0); - $178 = HEAP32[$177>>2]|0; - $179 = ((($178)) + 44|0); - HEAP32[$177>>2] = $179; - $180 = HEAP32[$176>>2]|0; - $181 = HEAP32[$180>>2]|0; - $182 = $179; - $183 = $181; - $184 = (($182) - ($183))|0; - $185 = (($184|0) / 44)&-1; - $186 = ($185|0)==(93); - if ($186) { - $187 = HEAP32[$176>>2]|0; - $188 = ((($187)) + 4|0); - HEAP32[$176>>2] = $188; - $189 = HEAP32[$176>>2]|0; - $190 = HEAP32[$189>>2]|0; - $191 = ((($176)) + 4|0); - HEAP32[$191>>2] = $190; - } - } - $192 = $61; - $58 = $192; - $193 = $58; - STACKTOP = sp;return ($193|0); -} -function __Z7u8_foldi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = $2&255; - STACKTOP = sp;return ($3|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 480; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEEC2Ej($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 8|0; - $13 = $0; - $14 = $1; - $15 = $13; - $11 = $15; - $16 = $11; - $10 = $16; - HEAP32[$16>>2] = 0; - $17 = ((($16)) + 4|0); - HEAP32[$17>>2] = 0; - $18 = ((($16)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $18; - $9 = $12; - $19 = $8; - $20 = $9; - $7 = $20; - $21 = $7; - $3 = $19; - $4 = $21; - $22 = $3; - $23 = $4; - $2 = $23; - HEAP32[$22>>2] = 0; - $6 = $19; - $24 = $6; - $5 = $24; - $25 = $14; - $26 = ($25>>>0)>(0); - if (!($26)) { - STACKTOP = sp;return; - } - $27 = $14; - __ZNSt3__26vectorIhNS_9allocatorIhEEE8allocateEj($15,$27); - $28 = $14; - __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endEj($15,$28); - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEEC2EjRKS3_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(96|0); - $20 = sp + 20|0; - $22 = sp + 12|0; - $23 = $0; - $24 = $1; - $25 = $2; - $26 = $23; - $21 = $26; - $27 = $21; - $19 = $27; - $28 = $19; - HEAP32[$28>>2] = 0; - $29 = ((($28)) + 4|0); - HEAP32[$29>>2] = 0; - $30 = ((($28)) + 8|0); - HEAP32[$30>>2] = 0; - $31 = ((($28)) + 12|0); - HEAP32[$20>>2] = 0; - $17 = $31; - $18 = $20; - $32 = $17; - $33 = $18; - $16 = $33; - $34 = $16; - $12 = $32; - $13 = $34; - $35 = $12; - $36 = $13; - $11 = $36; - HEAP32[$35>>2] = 0; - $15 = $32; - $37 = $15; - $14 = $37; - $38 = ((($27)) + 16|0); - HEAP32[$38>>2] = 0; - $39 = ((($27)) + 20|0); - HEAP32[$22>>2] = 0; - $9 = $39; - $10 = $22; - $40 = $9; - $41 = $10; - $8 = $41; - $42 = $8; - $4 = $40; - $5 = $42; - $43 = $4; - $44 = $5; - $3 = $44; - $45 = $3; - $46 = HEAP32[$45>>2]|0; - HEAP32[$43>>2] = $46; - $7 = $40; - $47 = $7; - $6 = $47; - $48 = $24; - $49 = ($48>>>0)>(0); - if (!($49)) { - STACKTOP = sp;return; - } - $50 = $24; - $51 = $25; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendEjRKS3_($26,$50,$51); - STACKTOP = sp;return; -} -function __ZNSt3__26vectorIhNS_9allocatorIhEEE18__construct_at_endEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(80|0); - $10 = sp; - $13 = sp + 73|0; - $21 = sp + 72|0; - $18 = $0; - $19 = $1; - $22 = $18; - $17 = $22; - $23 = $17; - $24 = ((($23)) + 8|0); - $16 = $24; - $25 = $16; - $15 = $25; - $26 = $15; - $20 = $26; - while(1) { - $2 = $21; - $3 = $22; - $4 = 1; - $27 = $20; - $28 = ((($22)) + 4|0); - $29 = HEAP32[$28>>2]|0; - $5 = $29; - $30 = $5; - $11 = $27; - $12 = $30; - $31 = $11; - $32 = $12; - ;HEAP8[$10>>0]=HEAP8[$13>>0]|0; - $8 = $31; - $9 = $32; - $33 = $8; - $34 = $9; - $6 = $33; - $7 = $34; - $35 = $7; - HEAP8[$35>>0] = 0; - $36 = ((($22)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = ((($37)) + 1|0); - HEAP32[$36>>2] = $38; - $39 = $19; - $40 = (($39) + -1)|0; - $19 = $40; - $14 = $21; - $41 = $19; - $42 = ($41>>>0)>(0); - if (!($42)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE8__appendEjRKS3_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; - var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; - var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; - var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; - var $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp; - $25 = sp + 148|0; - $38 = sp + 8|0; - $33 = $0; - $34 = $1; - $35 = $2; - $39 = $33; - $32 = $39; - $40 = $32; - $41 = ((($40)) + 20|0); - $31 = $41; - $42 = $31; - $30 = $42; - $43 = $30; - $36 = $43; - $11 = $39; - $44 = $11; - $10 = $44; - $45 = $10; - $9 = $45; - $46 = $9; - $47 = ((($46)) + 8|0); - $48 = HEAP32[$47>>2]|0; - $49 = ((($46)) + 4|0); - $50 = HEAP32[$49>>2]|0; - $51 = $48; - $52 = $50; - $53 = (($51) - ($52))|0; - $54 = (($53|0) / 4)&-1; - $55 = ($54|0)==(0); - if ($55) { - $76 = 0; - } else { - $8 = $45; - $56 = $8; - $57 = ((($56)) + 8|0); - $58 = HEAP32[$57>>2]|0; - $59 = ((($56)) + 4|0); - $60 = HEAP32[$59>>2]|0; - $61 = $58; - $62 = $60; - $63 = (($61) - ($62))|0; - $64 = (($63|0) / 4)&-1; - $65 = ($64*93)|0; - $66 = (($65) - 1)|0; - $76 = $66; - } - $67 = ((($44)) + 16|0); - $68 = HEAP32[$67>>2]|0; - $7 = $44; - $69 = $7; - $70 = ((($69)) + 20|0); - $6 = $70; - $71 = $6; - $5 = $71; - $72 = $5; - $73 = HEAP32[$72>>2]|0; - $74 = (($68) + ($73))|0; - $75 = (($76) - ($74))|0; - $37 = $75; - $77 = $34; - $78 = $37; - $79 = ($77>>>0)>($78>>>0); - if ($79) { - $80 = $34; - $81 = $37; - $82 = (($80) - ($81))|0; - __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEE19__add_back_capacityEj($39,$82); - } - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEE3endEv($38,$39); - while(1) { - $83 = $34; - $84 = ($83|0)!=(0); - if (!($84)) { - break; - } - $85 = $36; - $3 = $38; - $86 = $3; - $87 = ((($86)) + 4|0); - $88 = HEAP32[$87>>2]|0; - $4 = $88; - $89 = $4; - $90 = $35; - $22 = $85; - $23 = $89; - $24 = $90; - $91 = $22; - $92 = $23; - $93 = $24; - $21 = $93; - $94 = $21; - ;HEAP8[$20>>0]=HEAP8[$25>>0]|0; - $17 = $91; - $18 = $92; - $19 = $94; - $95 = $17; - $96 = $18; - $97 = $19; - $16 = $97; - $98 = $16; - $13 = $95; - $14 = $96; - $15 = $98; - $99 = $14; - $100 = $15; - $12 = $100; - $101 = $12; - __ZN6laszip6models10arithmeticC2ERKS1_($99,$101); - $102 = $34; - $103 = (($102) + -1)|0; - $34 = $103; - $26 = $38; - $104 = $26; - $105 = ((($104)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = ((($106)) + 44|0); - HEAP32[$105>>2] = $107; - $108 = HEAP32[$104>>2]|0; - $109 = HEAP32[$108>>2]|0; - $110 = $107; - $111 = $109; - $112 = (($110) - ($111))|0; - $113 = (($112|0) / 44)&-1; - $114 = ($113|0)==(93); - if ($114) { - $115 = HEAP32[$104>>2]|0; - $116 = ((($115)) + 4|0); - HEAP32[$104>>2] = $116; - $117 = HEAP32[$104>>2]|0; - $118 = HEAP32[$117>>2]|0; - $119 = ((($104)) + 4|0); - HEAP32[$119>>2] = $118; - } - $29 = $39; - $120 = $29; - $121 = ((($120)) + 20|0); - $28 = $121; - $122 = $28; - $27 = $122; - $123 = $27; - $124 = HEAP32[$123>>2]|0; - $125 = (($124) + 1)|0; - HEAP32[$123>>2] = $125; - } - STACKTOP = sp;return; -} -function __ZNSt3__25dequeIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__212__deque_baseIN6laszip6models10arithmeticENS_9allocatorIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEEC2ERS9_PSH_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2256); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISP_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2276); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2256); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = HEAP8[$6>>0]|0; - $8 = $7&1; - if (!($8)) { - $10 = $5; - STACKTOP = sp;return ($10|0); - } - $9 = $4; - __ZN6laszip8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEE13readInitBytesEv($9); - HEAP8[$6>>0] = 0; - $10 = $5; - STACKTOP = sp;return ($10|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 520; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP8[$2>>0] = 1; - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEEC2ERS9_PSK_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2304); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2324); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2304); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 328|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 560; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEEC2ERS9_PSK_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2352); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_3rgbENSJ_ISM_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISS_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2372); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2352); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 316|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SC_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 600; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las3rgbENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 316|0); - __ZN6laszip7formats19record_decompressorIJEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEEC2ERS9_PSN_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $10 = sp + 12|0; - $11 = $0; - $12 = $1; - $13 = $2; - $14 = $11; - __ZN6laszip7formats20dynamic_decompressorC2Ev($14); - HEAP32[$14>>2] = (2400); - $15 = ((($14)) + 4|0); - $16 = $12; - HEAP32[$15>>2] = $16; - $17 = ((($14)) + 8|0); - $18 = $13; - $9 = $17; - HEAP32[$10>>2] = $18; - $19 = $9; - $7 = $19; - $8 = $10; - $20 = $7; - $21 = $8; - $6 = $21; - $22 = $6; - $4 = $20; - $5 = $22; - $23 = $4; - $24 = $5; - $3 = $24; - $25 = $3; - $26 = HEAP32[$25>>2]|0; - HEAP32[$23>>2] = $26; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEEC2INS2_21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISI_EEEENSG_INSH_7gpstimeENSJ_ISM_EEEENSG_INSH_3rgbENSJ_ISP_EEEEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISV_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2420); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats20dynamic_decompressorEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $5 = $0; - $6 = $1; - $7 = $5; - $8 = ((($7)) + 8|0); - $4 = $8; - $9 = $4; - $3 = $9; - $10 = $3; - $2 = $10; - $11 = $2; - $12 = HEAP32[$11>>2]|0; - $13 = ((($7)) + 4|0); - $14 = HEAP32[$13>>2]|0; - $15 = $6; - $16 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SO_($12,$14,$15)|0); - STACKTOP = sp;return ($16|0); -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $13 = $0; - $14 = $13; - HEAP32[$14>>2] = (2400); - $15 = ((($14)) + 8|0); - $12 = $15; - $16 = $12; - $9 = $16; - $10 = 0; - $17 = $9; - $8 = $17; - $18 = $8; - $7 = $18; - $19 = $7; - $20 = HEAP32[$19>>2]|0; - $11 = $20; - $21 = $10; - $4 = $17; - $22 = $4; - $3 = $22; - $23 = $3; - HEAP32[$23>>2] = $21; - $24 = $11; - $25 = ($24|0)!=(0|0); - if ($25) { - $2 = $17; - $26 = $2; - $1 = $26; - $27 = $1; - $28 = $11; - $5 = $27; - $6 = $28; - $29 = $6; - $30 = ($29|0)==(0|0); - if (!($30)) { - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEED2Ev($29); - __ZdlPv($29); - } - } - __ZN6laszip7formats20dynamic_decompressorD2Ev($14); - STACKTOP = sp;return; -} -function __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SO_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 4784|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SL_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - $8 = $5; - $9 = (__ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SG_($6,$7,$8)|0); - $5 = $9; - $10 = ((($6)) + 328|0); - $11 = $4; - $12 = $5; - $13 = (__ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEE14decompressWithINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEEEPcRT_SI_($10,$11,$12)|0); - STACKTOP = sp;return ($13|0); -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodIS4_EEEENS2_INS3_7gpstimeENS5_IS8_EEEENS2_INS3_3rgbENS5_ISB_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4784|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7point10ENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEED2Ev($3); - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEED2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 640; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS4_EEEENS2_INS3_3rgbENS5_IS8_EEEEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats5fieldINS0_3las7gpstimeENS0_20standard_diff_methodIS3_EEEC2Ev($2); - $3 = ((($2)) + 328|0); - __ZN6laszip7formats19record_decompressorIJNS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodIS4_EEEEEEC2Ev($3); - STACKTOP = sp;return; -} -function __ZNK6laszip2io6reader10basic_fileINS_7streams13memory_streamEE10get_headerEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 20|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10buf_streamC2EPhj($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $3; - $7 = $4; - HEAP32[$6>>2] = $7; - $8 = ((($6)) + 4|0); - $9 = $5; - HEAP32[$8>>2] = $9; - $10 = ((($6)) + 8|0); - HEAP32[$10>>2] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamEC2ERS2_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP32[$4>>2] = $5; - $6 = ((($4)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - HEAP32[$7>>2] = -1; - STACKTOP = sp;return; -} -function __ZN6laszip7formatsL25make_dynamic_decompressorINS_8decoders10arithmeticI10buf_streamEEEENS0_26dynamic_field_decompressorIT_E3ptrERS7_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$byval_copy = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $$byval_copy = sp + 8|0; - $3 = sp; - $2 = $1; - $4 = (__Znwj(24)|0); - $5 = $2; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEEC2ERS5_($4,$5); - ;HEAP32[$3>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$3>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEEC2IS8_EEPT_NS_9enable_ifIXsr14is_convertibleISC_PS8_EE5valueENS9_5__natEE4typeE($0,$4,$$byval_copy); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamEC2IS1_EEPT_NS_9enable_ifIXsr14is_convertibleIS5_PS1_EE5valueENS2_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2448); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrI10buf_streamE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrI10buf_streamE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 664; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEEC2IS5_EEPT_NS_9enable_ifIXsr14is_convertibleIS9_PS5_EE5valueENS6_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; - var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; - var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0; - var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $50 = sp + 76|0; - $51 = sp + 72|0; - $52 = sp + 8|0; - $53 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$52>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$53>>0]=HEAP8[$66>>0]|0; - $49 = $79; - HEAP32[$50>>2] = $80; - $81 = $49; - $47 = $81; - $48 = 0; - $82 = $47; - $83 = $48; - $45 = $82; - $46 = $83; - $84 = $45; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $46; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $48; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2476); - $89 = ((($81)) + 12|0); - $21 = $53; - $90 = $21; - $30 = $51; - $31 = $50; - $32 = $90; - $91 = $30; - $92 = $31; - $29 = $92; - $93 = $29; - $23 = $91; - $24 = $93; - $94 = $23; - $95 = $24; - $22 = $95; - $96 = $22; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $32; - $25 = $98; - $99 = $25; - $27 = $91; - $28 = $99; - $100 = $28; - $26 = $100; - $33 = $52; - $101 = $33; - $42 = $89; - $43 = $51; - $44 = $101; - $102 = $42; - $103 = $43; - $41 = $103; - $104 = $41; - $35 = $102; - $36 = $104; - $105 = $35; - $106 = $36; - $34 = $106; - $107 = $34; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $44; - $37 = $108; - $109 = $37; - $39 = $102; - $40 = $109; - $110 = $40; - $38 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEE18__enable_weak_thisEz($68,$vararg_buffer); - $20 = $65; - $120 = $20; - $17 = $120; - $18 = 0; - $121 = $17; - $16 = $121; - $122 = $16; - $15 = $122; - $123 = $15; - $124 = HEAP32[$123>>2]|0; - $19 = $124; - $125 = $18; - $12 = $121; - $126 = $12; - $11 = $126; - $127 = $11; - HEAP32[$127>>2] = $125; - $128 = $19; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $10 = $121; - $130 = $10; - $9 = $130; - $131 = $9; - $132 = $19; - $13 = $131; - $14 = $132; - $133 = $14; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($133); - __ZdlPv($133); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($0) { - $0 = $0|0; - var $$expand_i1_val = 0, $$expand_i1_val2 = 0, $$pre_trunc = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $4 = sp + 24|0; - $7 = $0; - $8 = $7; - $9 = ((($8)) + 4|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)!=(0|0); - if (!($11)) { - STACKTOP = sp;return; - } - $12 = ((($8)) + 4|0); - $13 = HEAP32[$12>>2]|0; - $6 = $13; - $14 = $6; - $5 = $14; - $15 = $5; - $16 = ((($15)) + 4|0); - $1 = $16; - $17 = $1; - $2 = -1; - $18 = $2; - $19 = HEAP32[$17>>2]|0; - $20 = (($19) + ($18))|0; - HEAP32[$17>>2] = $20; - $21 = (($19) + ($18))|0; - $3 = $21; - $22 = $3; - $23 = ($22|0)==(-1); - if ($23) { - $24 = HEAP32[$15>>2]|0; - $25 = ((($24)) + 8|0); - $26 = HEAP32[$25>>2]|0; - FUNCTION_TABLE_vi[$26 & 511]($15); - $$expand_i1_val = 1; - HEAP8[$4>>0] = $$expand_i1_val; - } else { - $$expand_i1_val2 = 0; - HEAP8[$4>>0] = $$expand_i1_val2; - } - $$pre_trunc = HEAP8[$4>>0]|0; - $27 = $$pre_trunc&1; - if (!($27)) { - STACKTOP = sp;return; - } - __ZNSt3__219__shared_weak_count14__release_weakEv($14); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $4 = $22; - $23 = $4; - $3 = $23; - $24 = $3; - $2 = $24; - $25 = $2; - $1 = $25; - $26 = $1; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($28); - __ZdlPv($28); - } - $30 = ((($16)) + 12|0); - $10 = $30; - $31 = $10; - $9 = $31; - $32 = $9; - $12 = $32; - $33 = $12; - $11 = $33; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 688; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamED2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $12 = sp + 12|0; - $14 = $0; - $15 = $1; - $16 = $14; - __ZN6laszip7formats20dynamic_decompressorC2Ev($16); - HEAP32[$16>>2] = (2504); - $17 = ((($16)) + 4|0); - $18 = $15; - HEAP32[$17>>2] = $18; - $19 = ((($16)) + 8|0); - $13 = $19; - $20 = $13; - $11 = $20; - $21 = $11; - $10 = $21; - HEAP32[$21>>2] = 0; - $22 = ((($21)) + 4|0); - HEAP32[$22>>2] = 0; - $23 = ((($21)) + 8|0); - HEAP32[$12>>2] = 0; - $8 = $23; - $9 = $12; - $24 = $8; - $25 = $9; - $7 = $25; - $26 = $7; - $3 = $24; - $4 = $26; - $27 = $3; - $28 = $4; - $2 = $28; - HEAP32[$27>>2] = 0; - $6 = $24; - $29 = $6; - $5 = $29; - $30 = ((($16)) + 20|0); - HEAP8[$30>>0] = 1; - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEEC2IS8_EEPT_NS_9enable_ifIXsr14is_convertibleISC_PS8_EE5valueENS9_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2524); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 8|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE10decompressEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0; - var $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $20 = sp + 72|0; - $23 = sp + 60|0; - $27 = sp + 44|0; - $30 = sp + 32|0; - $35 = sp + 12|0; - $36 = sp + 8|0; - $37 = sp; - $32 = $0; - $33 = $1; - $38 = $32; - $39 = ((($38)) + 8|0); - $34 = $39; - $40 = $34; - $31 = $40; - $41 = $31; - $42 = HEAP32[$41>>2]|0; - $28 = $41; - $29 = $42; - $43 = $29; - $25 = $27; - $26 = $43; - $44 = $25; - $45 = $26; - HEAP32[$44>>2] = $45; - $46 = HEAP32[$27>>2]|0; - HEAP32[$30>>2] = $46; - $47 = HEAP32[$30>>2]|0; - HEAP32[$35>>2] = $47; - $48 = $34; - $24 = $48; - $49 = $24; - $50 = ((($49)) + 4|0); - $51 = HEAP32[$50>>2]|0; - $21 = $49; - $22 = $51; - $52 = $22; - $18 = $20; - $19 = $52; - $53 = $18; - $54 = $19; - HEAP32[$53>>2] = $54; - $55 = HEAP32[$20>>2]|0; - HEAP32[$23>>2] = $55; - $56 = HEAP32[$23>>2]|0; - HEAP32[$36>>2] = $56; - while(1) { - $16 = $35; - $17 = $36; - $57 = $16; - $58 = $17; - $14 = $57; - $15 = $58; - $59 = $14; - $13 = $59; - $60 = $13; - $61 = HEAP32[$60>>2]|0; - $62 = $15; - $12 = $62; - $63 = $12; - $64 = HEAP32[$63>>2]|0; - $65 = ($61|0)==($64|0); - $66 = $65 ^ 1; - if (!($66)) { - break; - } - $10 = $35; - $67 = $10; - $68 = HEAP32[$67>>2]|0; - $8 = $37; - $9 = $68; - $69 = $8; - $70 = $9; - $71 = HEAP32[$70>>2]|0; - HEAP32[$69>>2] = $71; - $72 = ((($69)) + 4|0); - $73 = $9; - $74 = ((($73)) + 4|0); - $75 = HEAP32[$74>>2]|0; - HEAP32[$72>>2] = $75; - $76 = ((($69)) + 4|0); - $77 = HEAP32[$76>>2]|0; - $78 = ($77|0)!=(0|0); - if ($78) { - $79 = ((($69)) + 4|0); - $80 = HEAP32[$79>>2]|0; - $7 = $80; - $81 = $7; - $6 = $81; - $82 = $6; - $83 = ((($82)) + 4|0); - $3 = $83; - $84 = $3; - $4 = 1; - $85 = $4; - $86 = HEAP32[$84>>2]|0; - $87 = (($86) + ($85))|0; - HEAP32[$84>>2] = $87; - $88 = (($86) + ($85))|0; - $5 = $88; - } - $2 = $37; - $89 = $2; - $90 = HEAP32[$89>>2]|0; - $91 = HEAP32[$90>>2]|0; - $92 = ((($91)) + 12|0); - $93 = HEAP32[$92>>2]|0; - $94 = $33; - $95 = (FUNCTION_TABLE_iii[$93 & 255]($90,$94)|0); - $33 = $95; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($37); - $11 = $35; - $96 = $11; - $97 = HEAP32[$96>>2]|0; - $98 = ((($97)) + 8|0); - HEAP32[$96>>2] = $98; - } - $99 = ((($38)) + 20|0); - $100 = HEAP8[$99>>0]|0; - $101 = $100&1; - if (!($101)) { - $105 = $33; - STACKTOP = sp;return ($105|0); - } - $102 = ((($38)) + 20|0); - HEAP8[$102>>0] = 0; - $103 = ((($38)) + 4|0); - $104 = HEAP32[$103>>2]|0; - __ZN6laszip8decoders10arithmeticI10buf_streamE13readInitBytesEv($104); - $105 = $33; - STACKTOP = sp;return ($105|0); -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2504); - $3 = ((($2)) + 8|0); - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEED2Ev($3); - __ZN6laszip7formats20dynamic_decompressorD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE13readInitBytesEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = (__ZN10buf_stream7getByteEv($3)|0); - $5 = $4&255; - $6 = $5 << 24; - $7 = HEAP32[$2>>2]|0; - $8 = (__ZN10buf_stream7getByteEv($7)|0); - $9 = $8&255; - $10 = $9 << 16; - $11 = $6 | $10; - $12 = HEAP32[$2>>2]|0; - $13 = (__ZN10buf_stream7getByteEv($12)|0); - $14 = $13&255; - $15 = $14 << 8; - $16 = $11 | $15; - $17 = HEAP32[$2>>2]|0; - $18 = (__ZN10buf_stream7getByteEv($17)|0); - $19 = $18&255; - $20 = $16 | $19; - $21 = ((($2)) + 4|0); - HEAP32[$21>>2] = $20; - STACKTOP = sp;return; -} -function __ZN10buf_stream7getByteEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - $4 = ((($2)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($5) + 1)|0; - HEAP32[$4>>2] = $6; - $7 = (($3) + ($5)|0); - $8 = HEAP8[$7>>0]|0; - STACKTOP = sp;return ($8|0); -} -function __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEE18__enable_weak_thisEz($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 8|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 728; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIiEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(180)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIjEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(180)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2552); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2576); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,32,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2552); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIiEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIiNS0_20standard_diff_methodIiEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 164|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIiE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 164|0); - $17 = HEAP32[$16>>2]|0; - $18 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$17,0)|0); - HEAP32[$6>>2] = $18; - $19 = HEAP32[$6>>2]|0; - $20 = $5; - __ZN6laszip7formats7packersIiE4packEiPc($19,$20); - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } else { - $21 = $4; - $22 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($21)|0); - $23 = $5; - __ZN10buf_stream8getBytesEPhi($22,$23,4); - $24 = $5; - $25 = (__ZN6laszip7formats7packersIiE6unpackEPKc($24)|0); - HEAP32[$6>>2] = $25; - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIiE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $6 = $0; - $7 = $1; - $8 = $2; - $9 = $3; - $11 = $6; - $12 = $8; - $13 = $7; - $14 = ((($11)) + 36|0); - $15 = $9; - $4 = $14; - $5 = $15; - $16 = $4; - $17 = HEAP32[$16>>2]|0; - $18 = $5; - $19 = (($17) + (($18*44)|0)|0); - $20 = (__ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticI10buf_streamEENS_6models10arithmeticEEEiRT_RT0_($11,$13,$19)|0); - $21 = (($12) + ($20))|0; - $10 = $21; - $22 = $10; - $23 = ($22|0)<(0); - if ($23) { - $24 = ((($11)) + 24|0); - $25 = HEAP32[$24>>2]|0; - $26 = $10; - $27 = (($26) + ($25))|0; - $10 = $27; - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $28 = $10; - $29 = ((($11)) + 24|0); - $30 = HEAP32[$29>>2]|0; - $31 = ($28>>>0)>=($30>>>0); - if (!($31)) { - $36 = $10; - STACKTOP = sp;return ($36|0); - } - $32 = ((($11)) + 24|0); - $33 = HEAP32[$32>>2]|0; - $34 = $10; - $35 = (($34) - ($33))|0; - $10 = $35; - $36 = $10; - STACKTOP = sp;return ($36|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN10buf_stream8getBytesEPhi($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $6 = 0; - while(1) { - $8 = $6; - $9 = $5; - $10 = ($8|0)<($9|0); - if (!($10)) { - break; - } - $11 = (__ZN10buf_stream7getByteEv($7)|0); - $12 = $4; - $13 = $6; - $14 = (($12) + ($13)|0); - HEAP8[$14>>0] = $11; - $15 = $6; - $16 = (($15) + 1)|0; - $6 = $16; - } - STACKTOP = sp;return; -} -function __ZN6laszip7formats20standard_diff_methodIiE4pushERKi($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 4|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 4|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $10; - STACKTOP = sp;return; -} -function __ZN6laszip13decompressors7integer13readCorrectorINS_8decoders10arithmeticI10buf_streamEENS_6models10arithmeticEEEiRT_RT0_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $7 = $0; - $8 = $1; - $9 = $2; - $13 = $7; - $14 = $8; - $15 = $9; - $16 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($14,$15)|0); - HEAP32[$13>>2] = $16; - $17 = HEAP32[$13>>2]|0; - $18 = ($17|0)!=(0); - if (!($18)) { - $69 = $8; - $70 = ((($13)) + 48|0); - $71 = (__ZN6laszip8decoders10arithmeticI10buf_streamE9decodeBitINS_6models14arithmetic_bitEEEjRT_($69,$70)|0); - $10 = $71; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $19 = HEAP32[$13>>2]|0; - $20 = ($19>>>0)<(32); - if (!($20)) { - $67 = ((($13)) + 28|0); - $68 = HEAP32[$67>>2]|0; - $10 = $68; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - $21 = HEAP32[$13>>2]|0; - $22 = ((($13)) + 12|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($21>>>0)<=($23>>>0); - if ($24) { - $25 = $8; - $26 = ((($13)) + 68|0); - $27 = HEAP32[$13>>2]|0; - $28 = (($27) - 1)|0; - $5 = $26; - $6 = $28; - $29 = $5; - $30 = HEAP32[$29>>2]|0; - $31 = $6; - $32 = (($30) + (($31*44)|0)|0); - $33 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($25,$32)|0); - $10 = $33; - } else { - $34 = HEAP32[$13>>2]|0; - $35 = ((($13)) + 12|0); - $36 = HEAP32[$35>>2]|0; - $37 = (($34) - ($36))|0; - $11 = $37; - $38 = $8; - $39 = ((($13)) + 68|0); - $40 = HEAP32[$13>>2]|0; - $41 = (($40) - 1)|0; - $3 = $39; - $4 = $41; - $42 = $3; - $43 = HEAP32[$42>>2]|0; - $44 = $4; - $45 = (($43) + (($44*44)|0)|0); - $46 = (__ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($38,$45)|0); - $10 = $46; - $47 = $8; - $48 = $11; - $49 = (__ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($47,$48)|0); - $12 = $49; - $50 = $10; - $51 = $11; - $52 = $50 << $51; - $53 = $12; - $54 = $52 | $53; - $10 = $54; - } - $55 = $10; - $56 = HEAP32[$13>>2]|0; - $57 = (($56) - 1)|0; - $58 = 1 << $57; - $59 = ($55|0)>=($58|0); - if ($59) { - $60 = $10; - $61 = (($60) + 1)|0; - $10 = $61; - $72 = $10; - STACKTOP = sp;return ($72|0); - } else { - $62 = HEAP32[$13>>2]|0; - $63 = 1 << $62; - $64 = (($63) - 1)|0; - $65 = $10; - $66 = (($65) - ($64))|0; - $10 = $66; - $72 = $10; - STACKTOP = sp;return ($72|0); - } - return (0)|0; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE12decodeSymbolINS_6models10arithmeticEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $2 = $0; - $3 = $1; - $13 = $2; - $14 = ((($13)) + 8|0); - $15 = HEAP32[$14>>2]|0; - $7 = $15; - $16 = $3; - $17 = ((($16)) + 16|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18|0)!=(0|0); - if ($19) { - $20 = ((($13)) + 4|0); - $21 = HEAP32[$20>>2]|0; - $22 = ((($13)) + 8|0); - $23 = HEAP32[$22>>2]|0; - $24 = $23 >>> 15; - HEAP32[$22>>2] = $24; - $25 = (($21>>>0) / ($24>>>0))&-1; - $8 = $25; - $26 = $8; - $27 = $3; - $28 = ((($27)) + 40|0); - $29 = HEAP32[$28>>2]|0; - $30 = $26 >>> $29; - $9 = $30; - $31 = $3; - $32 = ((($31)) + 16|0); - $33 = HEAP32[$32>>2]|0; - $34 = $9; - $35 = (($33) + ($34<<2)|0); - $36 = HEAP32[$35>>2]|0; - $5 = $36; - $37 = $3; - $38 = ((($37)) + 16|0); - $39 = HEAP32[$38>>2]|0; - $40 = $9; - $41 = (($40) + 1)|0; - $42 = (($39) + ($41<<2)|0); - $43 = HEAP32[$42>>2]|0; - $44 = (($43) + 1)|0; - $4 = $44; - while(1) { - $45 = $4; - $46 = $5; - $47 = (($46) + 1)|0; - $48 = ($45>>>0)>($47>>>0); - if (!($48)) { - break; - } - $49 = $5; - $50 = $4; - $51 = (($49) + ($50))|0; - $52 = $51 >>> 1; - $10 = $52; - $53 = $3; - $54 = ((($53)) + 8|0); - $55 = HEAP32[$54>>2]|0; - $56 = $10; - $57 = (($55) + ($56<<2)|0); - $58 = HEAP32[$57>>2]|0; - $59 = $8; - $60 = ($58>>>0)>($59>>>0); - $61 = $10; - if ($60) { - $4 = $61; - } else { - $5 = $61; - } - } - $62 = $3; - $63 = ((($62)) + 8|0); - $64 = HEAP32[$63>>2]|0; - $65 = $5; - $66 = (($64) + ($65<<2)|0); - $67 = HEAP32[$66>>2]|0; - $68 = ((($13)) + 8|0); - $69 = HEAP32[$68>>2]|0; - $70 = Math_imul($67, $69)|0; - $6 = $70; - $71 = $5; - $72 = $3; - $73 = ((($72)) + 32|0); - $74 = HEAP32[$73>>2]|0; - $75 = ($71|0)!=($74|0); - if ($75) { - $76 = $3; - $77 = ((($76)) + 8|0); - $78 = HEAP32[$77>>2]|0; - $79 = $5; - $80 = (($79) + 1)|0; - $81 = (($78) + ($80<<2)|0); - $82 = HEAP32[$81>>2]|0; - $83 = ((($13)) + 8|0); - $84 = HEAP32[$83>>2]|0; - $85 = Math_imul($82, $84)|0; - $7 = $85; - } - } else { - $5 = 0; - $6 = 0; - $86 = ((($13)) + 8|0); - $87 = HEAP32[$86>>2]|0; - $88 = $87 >>> 15; - HEAP32[$86>>2] = $88; - $89 = $3; - $90 = HEAP32[$89>>2]|0; - $4 = $90; - $91 = $90 >>> 1; - $11 = $91; - while(1) { - $92 = ((($13)) + 8|0); - $93 = HEAP32[$92>>2]|0; - $94 = $3; - $95 = ((($94)) + 8|0); - $96 = HEAP32[$95>>2]|0; - $97 = $11; - $98 = (($96) + ($97<<2)|0); - $99 = HEAP32[$98>>2]|0; - $100 = Math_imul($93, $99)|0; - $12 = $100; - $101 = $12; - $102 = ((($13)) + 4|0); - $103 = HEAP32[$102>>2]|0; - $104 = ($101>>>0)>($103>>>0); - $105 = $11; - if ($104) { - $4 = $105; - $106 = $12; - $7 = $106; - } else { - $5 = $105; - $107 = $12; - $6 = $107; - } - $108 = $5; - $109 = $4; - $110 = (($108) + ($109))|0; - $111 = $110 >>> 1; - $11 = $111; - $112 = $5; - $113 = ($111|0)!=($112|0); - if (!($113)) { - break; - } - } - } - $114 = $6; - $115 = ((($13)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = (($116) - ($114))|0; - HEAP32[$115>>2] = $117; - $118 = $7; - $119 = $6; - $120 = (($118) - ($119))|0; - $121 = ((($13)) + 8|0); - HEAP32[$121>>2] = $120; - $122 = ((($13)) + 8|0); - $123 = HEAP32[$122>>2]|0; - $124 = ($123>>>0)<(16777216); - if ($124) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($13); - } - $125 = $3; - $126 = ((($125)) + 12|0); - $127 = HEAP32[$126>>2]|0; - $128 = $5; - $129 = (($127) + ($128<<2)|0); - $130 = HEAP32[$129>>2]|0; - $131 = (($130) + 1)|0; - HEAP32[$129>>2] = $131; - $132 = $3; - $133 = ((($132)) + 28|0); - $134 = HEAP32[$133>>2]|0; - $135 = (($134) + -1)|0; - HEAP32[$133>>2] = $135; - $136 = ($135|0)==(0); - if (!($136)) { - $138 = $5; - STACKTOP = sp;return ($138|0); - } - $137 = $3; - __ZN6laszip6models10arithmetic6updateEv($137); - $138 = $5; - STACKTOP = sp;return ($138|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $3 = $0; - $4 = $1; - $8 = $3; - $9 = $4; - $10 = ($9|0)!=(0); - $11 = $4; - $12 = ($11>>>0)<=(32); - $or$cond = $10 & $12; - if (!($or$cond)) { - ___assert_fail((5409|0),(5430|0),139,(5499|0)); - // unreachable; - } - $13 = $4; - $14 = ($13>>>0)>(19); - if ($14) { - $15 = (__ZN6laszip8decoders10arithmeticI10buf_streamE9readShortEv($8)|0); - $16 = $15&65535; - $5 = $16; - $17 = $4; - $18 = (($17) - 16)|0; - $4 = $18; - $19 = $4; - $20 = (__ZN6laszip8decoders10arithmeticI10buf_streamE8readBitsEj($8,$19)|0); - $21 = $20 << 16; - $6 = $21; - $22 = $6; - $23 = $5; - $24 = $22 | $23; - $2 = $24; - $43 = $2; - STACKTOP = sp;return ($43|0); - } - $25 = ((($8)) + 4|0); - $26 = HEAP32[$25>>2]|0; - $27 = $4; - $28 = ((($8)) + 8|0); - $29 = HEAP32[$28>>2]|0; - $30 = $29 >>> $27; - HEAP32[$28>>2] = $30; - $31 = (($26>>>0) / ($30>>>0))&-1; - $7 = $31; - $32 = ((($8)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = $7; - $35 = Math_imul($33, $34)|0; - $36 = ((($8)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = (($37) - ($35))|0; - HEAP32[$36>>2] = $38; - $39 = ((($8)) + 8|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40>>>0)<(16777216); - if ($41) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($8); - } - $42 = $7; - $2 = $42; - $43 = $2; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE9decodeBitINS_6models14arithmetic_bitEEEjRT_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $6 = $2; - $7 = $3; - $8 = ((($7)) + 8|0); - $9 = HEAP32[$8>>2]|0; - $10 = ((($6)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $11 >>> 13; - $13 = Math_imul($9, $12)|0; - $4 = $13; - $14 = ((($6)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $4; - $17 = ($15>>>0)>=($16>>>0); - $18 = $17&1; - $5 = $18; - $19 = $5; - $20 = ($19|0)==(0); - $21 = $4; - if ($20) { - $22 = ((($6)) + 8|0); - HEAP32[$22>>2] = $21; - $23 = $3; - $24 = ((($23)) + 12|0); - $25 = HEAP32[$24>>2]|0; - $26 = (($25) + 1)|0; - HEAP32[$24>>2] = $26; - } else { - $27 = ((($6)) + 4|0); - $28 = HEAP32[$27>>2]|0; - $29 = (($28) - ($21))|0; - HEAP32[$27>>2] = $29; - $30 = $4; - $31 = ((($6)) + 8|0); - $32 = HEAP32[$31>>2]|0; - $33 = (($32) - ($30))|0; - HEAP32[$31>>2] = $33; - } - $34 = ((($6)) + 8|0); - $35 = HEAP32[$34>>2]|0; - $36 = ($35>>>0)<(16777216); - if ($36) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($6); - } - $37 = $3; - $38 = ((($37)) + 4|0); - $39 = HEAP32[$38>>2]|0; - $40 = (($39) + -1)|0; - HEAP32[$38>>2] = $40; - $41 = ($40|0)==(0); - if (!($41)) { - $43 = $5; - STACKTOP = sp;return ($43|0); - } - $42 = $3; - __ZN6laszip6models14arithmetic_bit6updateEv($42); - $43 = $5; - STACKTOP = sp;return ($43|0); -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - while(1) { - $3 = ((($2)) + 4|0); - $4 = HEAP32[$3>>2]|0; - $5 = $4 << 8; - $6 = HEAP32[$2>>2]|0; - $7 = (__ZN10buf_stream7getByteEv($6)|0); - $8 = $7&255; - $9 = $5 | $8; - $10 = ((($2)) + 4|0); - HEAP32[$10>>2] = $9; - $11 = ((($2)) + 8|0); - $12 = HEAP32[$11>>2]|0; - $13 = $12 << 8; - HEAP32[$11>>2] = $13; - $14 = ($13>>>0)<(16777216); - if (!($14)) { - break; - } - } - STACKTOP = sp;return; -} -function __ZN6laszip8decoders10arithmeticI10buf_streamE9readShortEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $3 = $1; - $4 = ((($3)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ((($3)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >>> 16; - HEAP32[$6>>2] = $8; - $9 = (($5>>>0) / ($8>>>0))&-1; - $2 = $9; - $10 = ((($3)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = $2; - $13 = Math_imul($11, $12)|0; - $14 = ((($3)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($15) - ($13))|0; - HEAP32[$14>>2] = $16; - $17 = ((($3)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($18>>>0)<(16777216); - if ($19) { - __ZN6laszip8decoders10arithmeticI10buf_streamE19renorm_dec_intervalEv($3); - } - $20 = $2; - $21 = ($20>>>0)<(65536); - if ($21) { - $22 = $2; - $23 = $22&65535; - STACKTOP = sp;return ($23|0); - } else { - ___assert_fail((5508|0),(5430|0),172,(5522|0)); - // unreachable; - } - return (0)|0; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 768; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2604); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2628); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,32,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,32,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2604); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIjEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIjNS0_20standard_diff_methodIjEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 164|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIjE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 164|0); - $17 = HEAP32[$16>>2]|0; - $18 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$17,0)|0); - HEAP32[$6>>2] = $18; - $19 = HEAP32[$6>>2]|0; - $20 = $5; - __ZN6laszip7formats7packersIjE4packEjPc($19,$20); - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } else { - $21 = $4; - $22 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($21)|0); - $23 = $5; - __ZN10buf_stream8getBytesEPhi($22,$23,4); - $24 = $5; - $25 = (__ZN6laszip7formats7packersIjE6unpackEPKc($24)|0); - HEAP32[$6>>2] = $25; - $26 = $5; - $27 = ((($26)) + 4|0); - $5 = $27; - $28 = ((($7)) + 164|0); - __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($28,$6); - $29 = $5; - STACKTOP = sp;return ($29|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIjE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 4|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodIjE4pushERKj($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 4|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 4|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 808; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIaEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(172)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIsEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(176)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2656); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2680); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,8,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,8,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2656); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIaEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIaNS0_20standard_diff_methodIaEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIaE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP8[$16>>0]|0; - $18 = $17 << 24 >> 24; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&255; - HEAP8[$6>>0] = $20; - $21 = HEAP8[$6>>0]|0; - $22 = $5; - __ZN6laszip7formats7packersIaE4packEaPc($21,$22); - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,1); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIaE6unpackEPKc($26)|0); - HEAP8[$6>>0] = $27; - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIaE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats7packersIaE4packEaPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - HEAP8[$5>>0] = $4; - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIaE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP8[$2>>0]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats20standard_diff_methodIaE4pushERKa($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 1|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP8[$9>>0]|0; - HEAP8[$4>>0] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 848; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2708); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2732); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2708); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIsEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIsNS0_20standard_diff_methodIsEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIsE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP16[$16>>1]|0; - $18 = $17 << 16 >> 16; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&65535; - HEAP16[$6>>1] = $20; - $21 = HEAP16[$6>>1]|0; - $22 = $5; - __ZN6laszip7formats7packersIsE4packEsPc($21,$22); - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,2); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIsE6unpackEPKc($26)|0); - HEAP16[$6>>1] = $27; - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIsE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats7packersIsE4packEsPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = $3; - __ZN6laszip7formats7packersItE4packEtPc($4,$5); - STACKTOP = sp;return; -} -function __ZN6laszip7formats7packersIsE6unpackEPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN6laszip7formats7packersItE6unpackEPKc($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN6laszip7formats20standard_diff_methodIsE4pushERKs($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 2|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 2|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP16[$9>>1]|0; - HEAP16[$4>>1] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 888; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldIhEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(172)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE9add_fieldItEEvv($0) { - $0 = $0|0; - var $$byval_copy = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; - var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; - var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; - var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 144|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(144|0); - $$byval_copy = sp + 136|0; - $16 = sp; - $21 = sp + 141|0; - $32 = sp + 140|0; - $34 = sp + 8|0; - $35 = sp + 4|0; - $33 = $0; - $36 = $33; - $37 = ((($36)) + 8|0); - $38 = (__Znwj(176)|0); - $39 = ((($36)) + 4|0); - $40 = HEAP32[$39>>2]|0; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEEC2ERS5_($38,$40); - ;HEAP32[$35>>2]=0|0; - ;HEAP32[$$byval_copy>>2]=HEAP32[$35>>2]|0; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($34,$38,$$byval_copy); - $30 = $37; - $31 = $34; - $41 = $30; - $42 = ((($41)) + 4|0); - $43 = HEAP32[$42>>2]|0; - $29 = $41; - $44 = $29; - $45 = ((($44)) + 8|0); - $28 = $45; - $46 = $28; - $27 = $46; - $47 = $27; - $48 = HEAP32[$47>>2]|0; - $49 = ($43>>>0)<($48>>>0); - if ($49) { - $24 = $32; - $25 = $41; - $26 = 1; - $3 = $41; - $50 = $3; - $51 = ((($50)) + 8|0); - $2 = $51; - $52 = $2; - $1 = $52; - $53 = $1; - $54 = ((($41)) + 4|0); - $55 = HEAP32[$54>>2]|0; - $4 = $55; - $56 = $4; - $57 = $31; - $5 = $57; - $58 = $5; - $18 = $53; - $19 = $56; - $20 = $58; - $59 = $18; - $60 = $19; - $61 = $20; - $17 = $61; - $62 = $17; - ;HEAP8[$16>>0]=HEAP8[$21>>0]|0; - $13 = $59; - $14 = $60; - $15 = $62; - $63 = $13; - $64 = $14; - $65 = $15; - $12 = $65; - $66 = $12; - $9 = $63; - $10 = $64; - $11 = $66; - $67 = $10; - $68 = $11; - $8 = $68; - $69 = $8; - $6 = $67; - $7 = $69; - $70 = $6; - $71 = $7; - $72 = HEAP32[$71>>2]|0; - HEAP32[$70>>2] = $72; - $73 = ((($70)) + 4|0); - $74 = $7; - $75 = ((($74)) + 4|0); - $76 = HEAP32[$75>>2]|0; - HEAP32[$73>>2] = $76; - $77 = $7; - HEAP32[$77>>2] = 0; - $78 = $7; - $79 = ((($78)) + 4|0); - HEAP32[$79>>2] = 0; - $22 = $32; - $80 = ((($41)) + 4|0); - $81 = HEAP32[$80>>2]|0; - $82 = ((($81)) + 8|0); - HEAP32[$80>>2] = $82; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } else { - $83 = $31; - $23 = $83; - $84 = $23; - __ZNSt3__26vectorINS_10shared_ptrIN6laszip7formats10base_fieldEEENS_9allocatorIS5_EEE21__push_back_slow_pathIS5_EEvOT_($41,$84); - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEED2Ev($34); - STACKTOP = sp;return; - } -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2760); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2784); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,8,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,8,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2760); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodIhEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldIhNS0_20standard_diff_methodIhEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodIhE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP8[$16>>0]|0; - $18 = $17&255; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&255; - HEAP8[$6>>0] = $20; - $21 = HEAP8[$6>>0]|0; - $22 = $5; - __ZN6laszip7formats7packersIhE4packEhPc($21,$22); - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,1); - $26 = $5; - $27 = (__ZN6laszip7formats7packersIhE6unpackEPKc($26)|0); - HEAP8[$6>>0] = $27; - $28 = $5; - $29 = ((($28)) + 1|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodIhE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 1|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodIhE4pushERKh($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 1|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 1|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP8[$9>>0]|0; - HEAP8[$4>>0] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 928; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEEC2ERS5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - __ZN6laszip7formats10base_fieldC2Ev($4); - HEAP32[$4>>2] = (2812); - $5 = ((($4)) + 4|0); - $6 = $3; - HEAP32[$5>>2] = $6; - $7 = ((($4)) + 8|0); - __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEEC2Ev($7); - STACKTOP = sp;return; -} -function __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEEC2INS2_26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEEEEPT_NS_9enable_ifIXsr14is_convertibleISH_PS3_EE5valueENS4_5__natEE4typeE($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0; - var $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0; - var $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0; - var $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0; - var $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0; - var $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0; - var $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 272|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(272|0); - $vararg_buffer = sp + 16|0; - $38 = sp + 124|0; - $39 = sp + 120|0; - $40 = sp + 8|0; - $41 = sp; - $62 = sp + 36|0; - $65 = sp + 24|0; - $66 = sp + 269|0; - $67 = sp + 268|0; - $63 = $0; - $64 = $1; - $68 = $63; - $69 = $64; - HEAP32[$68>>2] = $69; - $70 = $64; - $61 = $65; - HEAP32[$62>>2] = $70; - $71 = $61; - $59 = $71; - $60 = $62; - $72 = $59; - $73 = $60; - $58 = $73; - $74 = $58; - $56 = $72; - $57 = $74; - $75 = $56; - $76 = $57; - $55 = $76; - $77 = $55; - $78 = HEAP32[$77>>2]|0; - HEAP32[$75>>2] = $78; - $79 = (__Znwj(16)|0); - $80 = $64; - $54 = $67; - ;HEAP8[$40>>0]=HEAP8[$67>>0]|0; - ;HEAP8[$41>>0]=HEAP8[$66>>0]|0; - $37 = $79; - HEAP32[$38>>2] = $80; - $81 = $37; - $35 = $81; - $36 = 0; - $82 = $35; - $83 = $36; - $33 = $82; - $34 = $83; - $84 = $33; - HEAP32[$84>>2] = (3468); - $85 = ((($84)) + 4|0); - $86 = $34; - HEAP32[$85>>2] = $86; - HEAP32[$82>>2] = (3488); - $87 = ((($82)) + 8|0); - $88 = $36; - HEAP32[$87>>2] = $88; - HEAP32[$81>>2] = (2836); - $89 = ((($81)) + 12|0); - $9 = $41; - $90 = $9; - $18 = $39; - $19 = $38; - $20 = $90; - $91 = $18; - $92 = $19; - $17 = $92; - $93 = $17; - $11 = $91; - $12 = $93; - $94 = $11; - $95 = $12; - $10 = $95; - $96 = $10; - $97 = HEAP32[$96>>2]|0; - HEAP32[$94>>2] = $97; - $98 = $20; - $13 = $98; - $99 = $13; - $15 = $91; - $16 = $99; - $100 = $16; - $14 = $100; - $21 = $40; - $101 = $21; - $30 = $89; - $31 = $39; - $32 = $101; - $102 = $30; - $103 = $31; - $29 = $103; - $104 = $29; - $23 = $102; - $24 = $104; - $105 = $23; - $106 = $24; - $22 = $106; - $107 = $22; - ;HEAP32[$105>>2]=HEAP32[$107>>2]|0; - $108 = $32; - $25 = $108; - $109 = $25; - $27 = $102; - $28 = $109; - $110 = $28; - $26 = $110; - $111 = ((($68)) + 4|0); - HEAP32[$111>>2] = $79; - $7 = $65; - $112 = $7; - $6 = $112; - $113 = $6; - $5 = $113; - $114 = $5; - $115 = HEAP32[$114>>2]|0; - $8 = $115; - $4 = $112; - $116 = $4; - $3 = $116; - $117 = $3; - HEAP32[$117>>2] = 0; - $118 = $64; - $119 = $64; - HEAP32[$vararg_buffer>>2] = $118; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $119; - __ZNSt3__210shared_ptrIN6laszip7formats10base_fieldEE18__enable_weak_thisEz($68,$vararg_buffer); - $53 = $65; - $120 = $53; - $50 = $120; - $51 = 0; - $121 = $50; - $49 = $121; - $122 = $49; - $48 = $122; - $123 = $48; - $124 = HEAP32[$123>>2]|0; - $52 = $124; - $125 = $51; - $45 = $121; - $126 = $45; - $44 = $126; - $127 = $44; - HEAP32[$127>>2] = $125; - $128 = $52; - $129 = ($128|0)!=(0|0); - if (!($129)) { - STACKTOP = sp;return; - } - $43 = $121; - $130 = $43; - $42 = $130; - $131 = $42; - $132 = $52; - $46 = $131; - $47 = $132; - $133 = $47; - $134 = ($133|0)==(0|0); - if ($134) { - STACKTOP = sp;return; - } - $135 = HEAP32[$133>>2]|0; - $136 = ((($135)) + 4|0); - $137 = HEAP32[$136>>2]|0; - FUNCTION_TABLE_vi[$137 & 511]($133); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip11compressors7integerC2Ejjjj($2,16,1,8,0); - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerC2Ejjjj($3,16,1,8,0); - $4 = ((($2)) + 160|0); - HEAP8[$4>>0] = 0; - $5 = ((($2)) + 161|0); - HEAP8[$5>>0] = 0; - $6 = ((($2)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItEC2Ev($6); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - HEAP32[$2>>2] = (2812); - $3 = ((($2)) + 8|0); - __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEED2Ev($3); - __ZN6laszip7formats10base_fieldD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEE13decompressRawEPc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 8|0); - $6 = ((($4)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $3; - $9 = (__ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($5,$7,$8)|0); - STACKTOP = sp;return ($9|0); -} -function __ZN6laszip7formats20standard_diff_methodItEC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - HEAP8[$3>>0] = 0; - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 80|0); - __ZN6laszip13decompressors7integerD2Ev($3); - __ZN6laszip11compressors7integerD2Ev($2); - STACKTOP = sp;return; -} -function __ZN6laszip7formats5fieldItNS0_20standard_diff_methodItEEE14decompressWithINS_8decoders10arithmeticI10buf_streamEEEEPcRT_SA_($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $6 = sp + 12|0; - $3 = $0; - $4 = $1; - $5 = $2; - $7 = $3; - $8 = ((($7)) + 161|0); - $9 = HEAP8[$8>>0]|0; - $10 = $9&1; - if (!($10)) { - $11 = ((($7)) + 80|0); - __ZN6laszip13decompressors7integer4initEv($11); - } - $12 = ((($7)) + 162|0); - $13 = (__ZNK6laszip7formats20standard_diff_methodItE10have_valueEv($12)|0); - if ($13) { - $14 = ((($7)) + 80|0); - $15 = $4; - $16 = ((($7)) + 162|0); - $17 = HEAP16[$16>>1]|0; - $18 = $17&65535; - $19 = (__ZN6laszip13decompressors7integer10decompressINS_8decoders10arithmeticI10buf_streamEEEEiRT_ij($14,$15,$18,0)|0); - $20 = $19&65535; - HEAP16[$6>>1] = $20; - $21 = HEAP16[$6>>1]|0; - $22 = $5; - __ZN6laszip7formats7packersItE4packEtPc($21,$22); - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItE4pushERKt($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } else { - $23 = $4; - $24 = (__ZN6laszip8decoders10arithmeticI10buf_streamE11getInStreamEv($23)|0); - $25 = $5; - __ZN10buf_stream8getBytesEPhi($24,$25,2); - $26 = $5; - $27 = (__ZN6laszip7formats7packersItE6unpackEPKc($26)|0); - HEAP16[$6>>1] = $27; - $28 = $5; - $29 = ((($28)) + 2|0); - $5 = $29; - $30 = ((($7)) + 162|0); - __ZN6laszip7formats20standard_diff_methodItE4pushERKt($30,$6); - $31 = $5; - STACKTOP = sp;return ($31|0); - } - return (0)|0; -} -function __ZNK6laszip7formats20standard_diff_methodItE10have_valueEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ((($2)) + 2|0); - $4 = HEAP8[$3>>0]|0; - $5 = $4&1; - STACKTOP = sp;return ($5|0); -} -function __ZN6laszip7formats20standard_diff_methodItE4pushERKt($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $1; - $4 = $2; - $5 = ((($4)) + 2|0); - $6 = HEAP8[$5>>0]|0; - $7 = $6&1; - if (!($7)) { - $8 = ((($4)) + 2|0); - HEAP8[$8>>0] = 1; - } - $9 = $3; - $10 = HEAP16[$9>>1]|0; - HEAP16[$4>>1] = $10; - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__214__shared_countD2Ev($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev($2); - __ZdlPv($2); - STACKTOP = sp;return; -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $15 = $0; - $16 = $15; - $17 = ((($16)) + 12|0); - $14 = $17; - $18 = $14; - $13 = $18; - $19 = $13; - $6 = $19; - $20 = $6; - $5 = $20; - $21 = $5; - $22 = ((($16)) + 12|0); - $2 = $22; - $23 = $2; - $1 = $23; - $24 = $1; - $4 = $24; - $25 = $4; - $3 = $25; - $26 = $3; - $27 = HEAP32[$26>>2]|0; - $7 = $21; - $8 = $27; - $28 = $8; - $29 = ($28|0)==(0|0); - if (!($29)) { - $30 = HEAP32[$28>>2]|0; - $31 = ((($30)) + 4|0); - $32 = HEAP32[$31>>2]|0; - FUNCTION_TABLE_vi[$32 & 511]($28); - } - $33 = ((($16)) + 12|0); - $10 = $33; - $34 = $10; - $9 = $34; - $35 = $9; - $12 = $35; - $36 = $12; - $11 = $36; - STACKTOP = sp;return; -} -function __ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $9 = $0; - $10 = $1; - $11 = $9; - $12 = $10; - $7 = $12; - $8 = 968; - $13 = $7; - $14 = ((($13)) + 4|0); - $15 = HEAP32[$14>>2]|0; - $16 = $8; - $17 = ((($16)) + 4|0); - $18 = HEAP32[$17>>2]|0; - $19 = ($15|0)==($18|0); - if (!($19)) { - $26 = 0; - STACKTOP = sp;return ($26|0); - } - $20 = ((($11)) + 12|0); - $3 = $20; - $21 = $3; - $2 = $21; - $22 = $2; - $5 = $22; - $23 = $5; - $4 = $23; - $24 = $4; - $6 = $24; - $25 = $6; - $26 = $25; - STACKTOP = sp;return ($26|0); -} -function __ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $14 = sp + 52|0; - $13 = $0; - $15 = $13; - $16 = ((($15)) + 12|0); - $12 = $16; - $17 = $12; - $11 = $17; - $18 = $11; - $5 = $14; - $6 = $18; - $19 = ((($15)) + 12|0); - $2 = $19; - $20 = $2; - $1 = $20; - $4 = $15; - $21 = $4; - $3 = $21; - $22 = $3; - $8 = $14; - $9 = $22; - $10 = 1; - $23 = $9; - $7 = $23; - $24 = $7; - __ZdlPv($24); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11NoBaseClass6verifyI6LASZipEEvv() { - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10emscripten8internal13getActualTypeI6LASZipEEPKvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN10emscripten8internal14getLightTypeIDI6LASZipEEPKvRKT_($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal11NoBaseClass11getUpcasterI6LASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal11NoBaseClass13getDowncasterI6LASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14raw_destructorI6LASZipEEvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ($2|0)==(0|0); - if (!($3)) { - __ZN6LASZipD2Ev($2); - __ZdlPv($2); - } - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDI6LASZipE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDI6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI6LASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIP6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK6LASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIPK6LASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11NoBaseClass3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14getLightTypeIDI6LASZipEEPKvRKT_($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (976|0); -} -function __ZN6LASZipD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0; - var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; - var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; - var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 160|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(160|0); - $6 = sp + 128|0; - $12 = sp + 104|0; - $17 = sp + 80|0; - $23 = sp + 56|0; - $29 = sp + 32|0; - $34 = sp + 8|0; - $35 = $0; - $36 = $35; - $33 = $36; - $37 = $33; - $32 = $34; - $38 = $32; - HEAP32[$38>>2] = 0; - $39 = ((($38)) + 4|0); - HEAP32[$39>>2] = 0; - $30 = $34; - $31 = $37; - $40 = $30; - $41 = $31; - $27 = $40; - $28 = $41; - $42 = $27; - $26 = $42; - $43 = $26; - $44 = HEAP32[$43>>2]|0; - HEAP32[$29>>2] = $44; - $45 = $28; - $24 = $45; - $46 = $24; - $47 = HEAP32[$46>>2]|0; - $48 = $27; - HEAP32[$48>>2] = $47; - $25 = $29; - $49 = $25; - $50 = HEAP32[$49>>2]|0; - $51 = $28; - HEAP32[$51>>2] = $50; - $52 = ((($40)) + 4|0); - $53 = $31; - $54 = ((($53)) + 4|0); - $21 = $52; - $22 = $54; - $55 = $21; - $20 = $55; - $56 = $20; - $57 = HEAP32[$56>>2]|0; - HEAP32[$23>>2] = $57; - $58 = $22; - $18 = $58; - $59 = $18; - $60 = HEAP32[$59>>2]|0; - $61 = $21; - HEAP32[$61>>2] = $60; - $19 = $23; - $62 = $19; - $63 = HEAP32[$62>>2]|0; - $64 = $22; - HEAP32[$64>>2] = $63; - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($34); - $65 = ((($36)) + 8|0); - $16 = $65; - $66 = $16; - $15 = $17; - $67 = $15; - HEAP32[$67>>2] = 0; - $68 = ((($67)) + 4|0); - HEAP32[$68>>2] = 0; - $13 = $17; - $14 = $66; - $69 = $13; - $70 = $14; - $10 = $69; - $11 = $70; - $71 = $10; - $9 = $71; - $72 = $9; - $73 = HEAP32[$72>>2]|0; - HEAP32[$12>>2] = $73; - $74 = $11; - $7 = $74; - $75 = $7; - $76 = HEAP32[$75>>2]|0; - $77 = $10; - HEAP32[$77>>2] = $76; - $8 = $12; - $78 = $8; - $79 = HEAP32[$78>>2]|0; - $80 = $11; - HEAP32[$80>>2] = $79; - $81 = ((($69)) + 4|0); - $82 = $14; - $83 = ((($82)) + 4|0); - $4 = $81; - $5 = $83; - $84 = $4; - $3 = $84; - $85 = $3; - $86 = HEAP32[$85>>2]|0; - HEAP32[$6>>2] = $86; - $87 = $5; - $1 = $87; - $88 = $1; - $89 = HEAP32[$88>>2]|0; - $90 = $4; - HEAP32[$90>>2] = $89; - $2 = $6; - $91 = $2; - $92 = HEAP32[$91>>2]|0; - $93 = $5; - HEAP32[$93>>2] = $92; - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($17); - $94 = ((($36)) + 8|0); - __ZNSt3__210shared_ptrIN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEEED2Ev($94); - __ZNSt3__210shared_ptrIN6laszip7streams13memory_streamEED2Ev($36); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11LightTypeIDI6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (976|0); -} -function __ZN10emscripten8internal11LightTypeIDIP6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (984|0); -} -function __ZN10emscripten8internal11LightTypeIDIPK6LASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1000|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16424|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJvEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16427|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16429|0); -} -function __ZN10emscripten8internal12operator_newI6LASZipJEEEPT_DpOT0_() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__Znwj(16)|0); - __ZN6LASZipC2Ev($0); - return ($0|0); -} -function __ZN10emscripten8internal7InvokerIP6LASZipJEE6invokeEPFS3_vE($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (FUNCTION_TABLE_i[$2 & 255]()|0); - $4 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE10toWireTypeES3_($3)|0); - STACKTOP = sp;return ($4|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 1; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP6LASZipEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP6LASZipE10toWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2856|0); -} -function __ZN6LASZipC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $3; - $2 = $4; - $5 = $2; - HEAP32[$5>>2] = 0; - $6 = ((($5)) + 4|0); - HEAP32[$6>>2] = 0; - $7 = ((($4)) + 8|0); - $1 = $7; - $8 = $1; - HEAP32[$8>>2] = 0; - $9 = ((($8)) + 4|0); - HEAP32[$9>>2] = 0; - STACKTOP = sp;return; -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $5; - $9 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($8)|0); - $10 = $4; - $$field = HEAP32[$10>>2]|0; - $$index1 = ((($10)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $11 = $$field2 >> 1; - $12 = (($9) + ($11)|0); - $13 = $$field2 & 1; - $14 = ($13|0)!=(0); - if ($14) { - $15 = HEAP32[$12>>2]|0; - $16 = (($15) + ($$field)|0); - $17 = HEAP32[$16>>2]|0; - $23 = $17; - } else { - $18 = $$field; - $23 = $18; - } - $19 = $6; - $20 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($19)|0); - $21 = $7; - $22 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($21)|0); - FUNCTION_TABLE_viii[$23 & 255]($12,$20,$22); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 4; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFvjjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEjjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2860|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviiiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16432|0); -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFviEvPS2_JiEE6invokeERKS4_S5_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFviEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI6LASZipEEiEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2876|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJviiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16438|0); -} -function __ZN10emscripten8internal13MethodInvokerIM6LASZipFjvEjPS2_JEE6invokeERKS4_S5_($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = sp; - $2 = $0; - $3 = $1; - $5 = $3; - $6 = (__ZN10emscripten8internal11BindingTypeIP6LASZipE12fromWireTypeES3_($5)|0); - $7 = $2; - $$field = HEAP32[$7>>2]|0; - $$index1 = ((($7)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $8 = $$field2 >> 1; - $9 = (($6) + ($8)|0); - $10 = $$field2 & 1; - $11 = ($10|0)!=(0); - if ($11) { - $12 = HEAP32[$9>>2]|0; - $13 = (($12) + ($$field)|0); - $14 = HEAP32[$13>>2]|0; - $16 = $14; - } else { - $15 = $$field; - $16 = $15; - } - $17 = (FUNCTION_TABLE_ii[$16 & 255]($9)|0); - HEAP32[$4>>2] = $17; - $18 = (__ZN10emscripten8internal11BindingTypeIjE10toWireTypeERKj($4)|0); - STACKTOP = sp;return ($18|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 2; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJjNS0_17AllowedRawPointerI6LASZipEEEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJjNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM6LASZipFjvEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIjE10toWireTypeERKj($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = HEAP32[$2>>2]|0; - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJjNS0_17AllowedRawPointerI6LASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2888|0); -} -function __ZN10emscripten8internal19getGenericSignatureIJiiiEEEPKcv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (16443|0); -} -function __ZN10emscripten8internal11NoBaseClass6verifyI13DynamicLASZipEEvv() { - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10emscripten8internal13getActualTypeI13DynamicLASZipEEPKvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (__ZN10emscripten8internal14getLightTypeIDI13DynamicLASZipEEPKvRKT_($2)|0); - STACKTOP = sp;return ($3|0); -} -function __ZN10emscripten8internal11NoBaseClass11getUpcasterI13DynamicLASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal11NoBaseClass13getDowncasterI13DynamicLASZipEEPFvvEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZN10emscripten8internal14raw_destructorI13DynamicLASZipEEvPT_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = ($2|0)==(0|0); - if (!($3)) { - __ZN13DynamicLASZipD2Ev($2); - __ZdlPv($2); - } - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDI13DynamicLASZipE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDI13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerI13DynamicLASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIP13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS0_17AllowedRawPointerIK13DynamicLASZipEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIPK13DynamicLASZipE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal14getLightTypeIDI13DynamicLASZipEEPKvRKT_($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return (1016|0); -} -function __ZN13DynamicLASZipD2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0; - var $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0; - var $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0; - var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; - var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; - var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; - var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; - var $99 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $6 = sp + 200|0; - $12 = sp + 176|0; - $17 = sp + 152|0; - $23 = sp + 128|0; - $29 = sp + 104|0; - $34 = sp + 80|0; - $40 = sp + 56|0; - $46 = sp + 32|0; - $51 = sp + 8|0; - $52 = $0; - $53 = $52; - $50 = $53; - $54 = $50; - $49 = $51; - $55 = $49; - HEAP32[$55>>2] = 0; - $56 = ((($55)) + 4|0); - HEAP32[$56>>2] = 0; - $47 = $51; - $48 = $54; - $57 = $47; - $58 = $48; - $44 = $57; - $45 = $58; - $59 = $44; - $43 = $59; - $60 = $43; - $61 = HEAP32[$60>>2]|0; - HEAP32[$46>>2] = $61; - $62 = $45; - $41 = $62; - $63 = $41; - $64 = HEAP32[$63>>2]|0; - $65 = $44; - HEAP32[$65>>2] = $64; - $42 = $46; - $66 = $42; - $67 = HEAP32[$66>>2]|0; - $68 = $45; - HEAP32[$68>>2] = $67; - $69 = ((($57)) + 4|0); - $70 = $48; - $71 = ((($70)) + 4|0); - $38 = $69; - $39 = $71; - $72 = $38; - $37 = $72; - $73 = $37; - $74 = HEAP32[$73>>2]|0; - HEAP32[$40>>2] = $74; - $75 = $39; - $35 = $75; - $76 = $35; - $77 = HEAP32[$76>>2]|0; - $78 = $38; - HEAP32[$78>>2] = $77; - $36 = $40; - $79 = $36; - $80 = HEAP32[$79>>2]|0; - $81 = $39; - HEAP32[$81>>2] = $80; - __ZNSt3__210shared_ptrI10buf_streamED2Ev($51); - $82 = ((($53)) + 16|0); - $33 = $82; - $83 = $33; - $32 = $34; - $84 = $32; - HEAP32[$84>>2] = 0; - $85 = ((($84)) + 4|0); - HEAP32[$85>>2] = 0; - $30 = $34; - $31 = $83; - $86 = $30; - $87 = $31; - $27 = $86; - $28 = $87; - $88 = $27; - $26 = $88; - $89 = $26; - $90 = HEAP32[$89>>2]|0; - HEAP32[$29>>2] = $90; - $91 = $28; - $24 = $91; - $92 = $24; - $93 = HEAP32[$92>>2]|0; - $94 = $27; - HEAP32[$94>>2] = $93; - $25 = $29; - $95 = $25; - $96 = HEAP32[$95>>2]|0; - $97 = $28; - HEAP32[$97>>2] = $96; - $98 = ((($86)) + 4|0); - $99 = $31; - $100 = ((($99)) + 4|0); - $21 = $98; - $22 = $100; - $101 = $21; - $20 = $101; - $102 = $20; - $103 = HEAP32[$102>>2]|0; - HEAP32[$23>>2] = $103; - $104 = $22; - $18 = $104; - $105 = $18; - $106 = HEAP32[$105>>2]|0; - $107 = $21; - HEAP32[$107>>2] = $106; - $19 = $23; - $108 = $19; - $109 = HEAP32[$108>>2]|0; - $110 = $22; - HEAP32[$110>>2] = $109; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($34); - $111 = ((($53)) + 16|0); - $16 = $111; - $112 = $16; - $15 = $17; - $113 = $15; - HEAP32[$113>>2] = 0; - $114 = ((($113)) + 4|0); - HEAP32[$114>>2] = 0; - $13 = $17; - $14 = $112; - $115 = $13; - $116 = $14; - $10 = $115; - $11 = $116; - $117 = $10; - $9 = $117; - $118 = $9; - $119 = HEAP32[$118>>2]|0; - HEAP32[$12>>2] = $119; - $120 = $11; - $7 = $120; - $121 = $7; - $122 = HEAP32[$121>>2]|0; - $123 = $10; - HEAP32[$123>>2] = $122; - $8 = $12; - $124 = $8; - $125 = HEAP32[$124>>2]|0; - $126 = $11; - HEAP32[$126>>2] = $125; - $127 = ((($115)) + 4|0); - $128 = $14; - $129 = ((($128)) + 4|0); - $4 = $127; - $5 = $129; - $130 = $4; - $3 = $130; - $131 = $3; - $132 = HEAP32[$131>>2]|0; - HEAP32[$6>>2] = $132; - $133 = $5; - $1 = $133; - $134 = $1; - $135 = HEAP32[$134>>2]|0; - $136 = $4; - HEAP32[$136>>2] = $135; - $2 = $6; - $137 = $2; - $138 = HEAP32[$137>>2]|0; - $139 = $5; - HEAP32[$139>>2] = $138; - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($17); - $140 = ((($53)) + 16|0); - __ZNSt3__210shared_ptrIN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEEED2Ev($140); - $141 = ((($53)) + 8|0); - __ZNSt3__210shared_ptrIN6laszip8decoders10arithmeticI10buf_streamEEED2Ev($141); - __ZNSt3__210shared_ptrI10buf_streamED2Ev($53); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal11LightTypeIDI13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1016|0); -} -function __ZN10emscripten8internal11LightTypeIDIP13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1024|0); -} -function __ZN10emscripten8internal11LightTypeIDIPK13DynamicLASZipE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1040|0); -} -function __ZN10emscripten8internal12operator_newI13DynamicLASZipJEEEPT_DpOT0_() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__Znwj(24)|0); - __ZN13DynamicLASZipC2Ev($0); - return ($0|0); -} -function __ZN10emscripten8internal7InvokerIP13DynamicLASZipJEE6invokeEPFS3_vE($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - $3 = (FUNCTION_TABLE_i[$2 & 255]()|0); - $4 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE10toWireTypeES3_($3)|0); - STACKTOP = sp;return ($4|0); -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 1; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJP13DynamicLASZipEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI13DynamicLASZipEEEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE10toWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerI13DynamicLASZipEEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2896|0); -} -function __ZN13DynamicLASZipC2Ev($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $4; - $3 = $5; - $6 = $3; - HEAP32[$6>>2] = 0; - $7 = ((($6)) + 4|0); - HEAP32[$7>>2] = 0; - $8 = ((($5)) + 8|0); - $1 = $8; - $9 = $1; - HEAP32[$9>>2] = 0; - $10 = ((($9)) + 4|0); - HEAP32[$10>>2] = 0; - $11 = ((($5)) + 16|0); - $2 = $11; - $12 = $2; - HEAP32[$12>>2] = 0; - $13 = ((($12)) + 4|0); - HEAP32[$13>>2] = 0; - STACKTOP = sp;return; -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $4 = 0, $5 = 0, $6 = 0; - var $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $4 = $0; - $5 = $1; - $6 = $2; - $7 = $3; - $8 = $5; - $9 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($8)|0); - $10 = $4; - $$field = HEAP32[$10>>2]|0; - $$index1 = ((($10)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $11 = $$field2 >> 1; - $12 = (($9) + ($11)|0); - $13 = $$field2 & 1; - $14 = ($13|0)!=(0); - if ($14) { - $15 = HEAP32[$12>>2]|0; - $16 = (($15) + ($$field)|0); - $17 = HEAP32[$16>>2]|0; - $23 = $17; - } else { - $18 = $$field; - $23 = $18; - } - $19 = $6; - $20 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($19)|0); - $21 = $7; - $22 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($21)|0); - FUNCTION_TABLE_viii[$23 & 255]($12,$20,$22); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 4; -} -function __ZNK10emscripten8internal12WithPoliciesIJNS_18allow_raw_pointersEEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFvjjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = $1; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2900|0); -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjEvPS2_JjEE6invokeERKS4_S5_j($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIjE12fromWireTypeEj($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFvjEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEjEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2916|0); -} -function __ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFviEvPS2_JiEE6invokeERKS4_S5_i($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = $0; - $4 = $1; - $5 = $2; - $6 = $4; - $7 = (__ZN10emscripten8internal11BindingTypeIP13DynamicLASZipE12fromWireTypeES3_($6)|0); - $8 = $3; - $$field = HEAP32[$8>>2]|0; - $$index1 = ((($8)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - $9 = $$field2 >> 1; - $10 = (($7) + ($9)|0); - $11 = $$field2 & 1; - $12 = ($11|0)!=(0); - if ($12) { - $13 = HEAP32[$10>>2]|0; - $14 = (($13) + ($$field)|0); - $15 = HEAP32[$14>>2]|0; - $19 = $15; - } else { - $16 = $$field; - $19 = $16; - } - $17 = $5; - $18 = (__ZN10emscripten8internal11BindingTypeIiE12fromWireTypeEi($17)|0); - FUNCTION_TABLE_vii[$19 & 255]($10,$18); - STACKTOP = sp;return; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getCountEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - STACKTOP = sp;return 3; -} -function __ZNK10emscripten8internal12WithPoliciesIJEE11ArgTypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEE8getTypesEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEEEE3getEv()|0); - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal10getContextIM13DynamicLASZipFviEEEPT_RKS5_($0) { - $0 = $0|0; - var $$field = 0, $$field2 = 0, $$index1 = 0, $$index5 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__Znwj(8)|0); - $3 = $1; - $$field = HEAP32[$3>>2]|0; - $$index1 = ((($3)) + 4|0); - $$field2 = HEAP32[$$index1>>2]|0; - HEAP32[$2>>2] = $$field; - $$index5 = ((($2)) + 4|0); - HEAP32[$$index5>>2] = $$field2; - STACKTOP = sp;return ($2|0); -} -function __ZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerI13DynamicLASZipEEiEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (2928|0); -} -function __GLOBAL__sub_I_laz_perf_cpp() { - var label = 0, sp = 0; - sp = STACKTOP; - ___cxx_global_var_init(); - return; -} -function __GLOBAL__sub_I_bind_cpp() { - var label = 0, sp = 0; - sp = STACKTOP; - ___cxx_global_var_init_2(); - return; -} -function ___cxx_global_var_init_2() { - var label = 0, sp = 0; - sp = STACKTOP; - __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev(21881); - return; -} -function __ZN53EmscriptenBindingInitializer_native_and_builtin_typesC2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIvE3getEv()|0); - __embind_register_void(($2|0),(16498|0)); - $3 = (__ZN10emscripten8internal6TypeIDIbE3getEv()|0); - __embind_register_bool(($3|0),(16503|0),1,1,0); - __ZN12_GLOBAL__N_116register_integerIcEEvPKc(16508); - __ZN12_GLOBAL__N_116register_integerIaEEvPKc(16513); - __ZN12_GLOBAL__N_116register_integerIhEEvPKc(16525); - __ZN12_GLOBAL__N_116register_integerIsEEvPKc(16539); - __ZN12_GLOBAL__N_116register_integerItEEvPKc(16545); - __ZN12_GLOBAL__N_116register_integerIiEEvPKc(16560); - __ZN12_GLOBAL__N_116register_integerIjEEvPKc(16564); - __ZN12_GLOBAL__N_116register_integerIlEEvPKc(16577); - __ZN12_GLOBAL__N_116register_integerImEEvPKc(16582); - __ZN12_GLOBAL__N_114register_floatIfEEvPKc(16596); - __ZN12_GLOBAL__N_114register_floatIdEEvPKc(16602); - $4 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0); - __embind_register_std_string(($4|0),(16609|0)); - $5 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0); - __embind_register_std_string(($5|0),(16621|0)); - $6 = (__ZN10emscripten8internal6TypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0); - __embind_register_std_wstring(($6|0),4,(16654|0)); - $7 = (__ZN10emscripten8internal6TypeIDINS_3valEE3getEv()|0); - __embind_register_emval(($7|0),(16667|0)); - __ZN12_GLOBAL__N_120register_memory_viewIcEEvPKc(16683); - __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc(16713); - __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc(16750); - __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc(16789); - __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc(16820); - __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc(16860); - __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc(16889); - __ZN12_GLOBAL__N_120register_memory_viewIlEEvPKc(16927); - __ZN12_GLOBAL__N_120register_memory_viewImEEvPKc(16957); - __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc(16996); - __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc(17028); - __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc(17061); - __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc(17094); - __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc(17128); - __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc(17161); - __ZN12_GLOBAL__N_120register_memory_viewIfEEvPKc(17195); - __ZN12_GLOBAL__N_120register_memory_viewIdEEvPKc(17226); - __ZN12_GLOBAL__N_120register_memory_viewIeEEvPKc(17258); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDIvE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIvE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDIbE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIbE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_116register_integerIcEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIcE3getEv()|0); - $3 = $1; - $4 = -128 << 24 >> 24; - $5 = 127 << 24 >> 24; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIaEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIaE3getEv()|0); - $3 = $1; - $4 = -128 << 24 >> 24; - $5 = 127 << 24 >> 24; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIhEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIhE3getEv()|0); - $3 = $1; - $4 = 0; - $5 = 255; - __embind_register_integer(($2|0),($3|0),1,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIsEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIsE3getEv()|0); - $3 = $1; - $4 = -32768 << 16 >> 16; - $5 = 32767 << 16 >> 16; - __embind_register_integer(($2|0),($3|0),2,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerItEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDItE3getEv()|0); - $3 = $1; - $4 = 0; - $5 = 65535; - __embind_register_integer(($2|0),($3|0),2,($4|0),($5|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIiEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIiE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,-2147483648,2147483647); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIjEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIjE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,0,-1); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerIlEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIlE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,-2147483648,2147483647); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_116register_integerImEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDImE3getEv()|0); - $3 = $1; - __embind_register_integer(($2|0),($3|0),4,0,-1); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_114register_floatIfEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIfE3getEv()|0); - $3 = $1; - __embind_register_float(($2|0),($3|0),4); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_114register_floatIdEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDIdE3getEv()|0); - $3 = $1; - __embind_register_float(($2|0),($3|0),8); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal6TypeIDINS_3valEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_120register_memory_viewIcEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIaEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIhEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIsEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewItEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIiEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIjEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIlEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewImEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIfEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIdEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN12_GLOBAL__N_120register_memory_viewIeEEvPKc($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = $0; - $2 = (__ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv()|0); - $3 = (__ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv()|0); - $4 = $1; - __embind_register_memory_view(($2|0),($3|0),($4|0)); - STACKTOP = sp;return; -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIeEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIeEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 7; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIeEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1056|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIdEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIdEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 7; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIdEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1064|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIfEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIfEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 6; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIfEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1072|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewImEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexImEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 5; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewImEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1080|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIlEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIlEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIlEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1088|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIjEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIjEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 5; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIjEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1096|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIiEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIiEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 4; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIiEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1104|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewItEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexItEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 3; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewItEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1112|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIsEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIsEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 2; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIsEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1120|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIhEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIhEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 1; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIhEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1128|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIaEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIaEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIaEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1136|0); -} -function __ZN10emscripten8internal6TypeIDINS_11memory_viewIcEEE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv()|0); - return ($0|0); -} -function __ZN12_GLOBAL__N_118getTypedArrayIndexIcEENS_15TypedArrayIndexEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function __ZN10emscripten8internal11LightTypeIDINS_11memory_viewIcEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1144|0); -} -function __ZN10emscripten8internal11LightTypeIDINS_3valEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1152|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1160|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIhNS2_11char_traitsIhEENS2_9allocatorIhEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1192|0); -} -function __ZN10emscripten8internal11LightTypeIDINSt3__212basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1216|0); -} -function __ZN10emscripten8internal6TypeIDIdE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIdE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIdE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1552|0); -} -function __ZN10emscripten8internal6TypeIDIfE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIfE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIfE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1544|0); -} -function __ZN10emscripten8internal6TypeIDImE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDImE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDImE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1536|0); -} -function __ZN10emscripten8internal6TypeIDIlE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIlE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIlE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1528|0); -} -function __ZN10emscripten8internal6TypeIDIjE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIjE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIjE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1520|0); -} -function __ZN10emscripten8internal6TypeIDIiE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIiE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIiE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1512|0); -} -function __ZN10emscripten8internal6TypeIDItE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDItE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDItE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1504|0); -} -function __ZN10emscripten8internal6TypeIDIsE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIsE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIsE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1496|0); -} -function __ZN10emscripten8internal6TypeIDIhE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIhE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIhE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1480|0); -} -function __ZN10emscripten8internal6TypeIDIaE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIaE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIaE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1488|0); -} -function __ZN10emscripten8internal6TypeIDIcE3getEv() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (__ZN10emscripten8internal11LightTypeIDIcE3getEv()|0); - return ($0|0); -} -function __ZN10emscripten8internal11LightTypeIDIcE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1472|0); -} -function __ZN10emscripten8internal11LightTypeIDIbE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1464|0); -} -function __ZN10emscripten8internal11LightTypeIDIvE3getEv() { - var label = 0, sp = 0; - sp = STACKTOP; - return (1448|0); -} -function ___getTypeName($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = $0; - $3 = $2; - $1 = $3; - $4 = $1; - $5 = ((($4)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = (___strdup($6)|0); - STACKTOP = sp;return ($7|0); -} -function _malloc($0) { - $0 = $0|0; - var $$0 = 0, $$0$i$i = 0, $$0$i$i$i = 0, $$0$i16$i = 0, $$0187$i = 0, $$0189$i = 0, $$0190$i = 0, $$0191$i = 0, $$0197 = 0, $$0199 = 0, $$02065$i$i = 0, $$0207$lcssa$i$i = 0, $$02074$i$i = 0, $$0211$i$i = 0, $$0212$i$i = 0, $$024372$i = 0, $$0286$i$i = 0, $$028711$i$i = 0, $$0288$lcssa$i$i = 0, $$028810$i$i = 0; - var $$0294$i$i = 0, $$0295$i$i = 0, $$0340$i = 0, $$034217$i = 0, $$0343$lcssa$i = 0, $$034316$i = 0, $$0345$i = 0, $$0351$i = 0, $$0357$i = 0, $$0358$i = 0, $$0360$i = 0, $$0361$i = 0, $$0367$i = 0, $$1194$i = 0, $$1194$i$be = 0, $$1194$i$ph = 0, $$1196$i = 0, $$1196$i$be = 0, $$1196$i$ph = 0, $$124471$i = 0; - var $$1290$i$i = 0, $$1290$i$i$be = 0, $$1290$i$i$ph = 0, $$1292$i$i = 0, $$1292$i$i$be = 0, $$1292$i$i$ph = 0, $$1341$i = 0, $$1346$i = 0, $$1362$i = 0, $$1369$i = 0, $$1369$i$be = 0, $$1369$i$ph = 0, $$1373$i = 0, $$1373$i$be = 0, $$1373$i$ph = 0, $$2234243136$i = 0, $$2247$ph$i = 0, $$2253$ph$i = 0, $$2353$i = 0, $$3$i = 0; - var $$3$i$i = 0, $$3$i203 = 0, $$3$i203218 = 0, $$3348$i = 0, $$3371$i = 0, $$4$lcssa$i = 0, $$420$i = 0, $$420$i$ph = 0, $$4236$i = 0, $$4349$lcssa$i = 0, $$434919$i = 0, $$434919$i$ph = 0, $$4355$i = 0, $$535618$i = 0, $$535618$i$ph = 0, $$723947$i = 0, $$748$i = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0; - var $$pre$i17$i = 0, $$pre$i208 = 0, $$pre$i210 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i18$iZ2D = 0, $$pre$phi$i209Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi17$i$iZ2D = 0, $$pre$phiZ2D = 0, $$pre16$i$i = 0, $$sink = 0, $$sink325 = 0, $$sink326 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0; - var $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0; - var $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0; - var $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0; - var $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0; - var $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0; - var $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0; - var $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0; - var $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0; - var $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0; - var $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0; - var $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0; - var $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0; - var $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0; - var $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0; - var $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0; - var $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0; - var $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0; - var $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0; - var $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0; - var $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0; - var $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0; - var $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0; - var $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0; - var $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0; - var $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0; - var $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0; - var $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0; - var $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0; - var $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0, $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0; - var $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0; - var $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0, $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0; - var $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0; - var $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0; - var $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0; - var $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0; - var $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0; - var $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0; - var $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0; - var $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0; - var $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0, $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0; - var $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0; - var $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0, $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0; - var $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0; - var $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0; - var $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0; - var $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0; - var $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0; - var $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0; - var $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0; - var $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0; - var $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0; - var $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0; - var $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0; - var $997 = 0, $998 = 0, $999 = 0, $cond$i = 0, $cond$i$i = 0, $cond$i207 = 0, $not$$i = 0, $or$cond$i = 0, $or$cond$i213 = 0, $or$cond1$i = 0, $or$cond11$i = 0, $or$cond2$i = 0, $or$cond2$i214 = 0, $or$cond5$i = 0, $or$cond50$i = 0, $or$cond51$i = 0, $or$cond6$i = 0, $or$cond7$i = 0, $or$cond8$i = 0, $or$cond8$not$i = 0; - var $spec$select$i = 0, $spec$select$i205 = 0, $spec$select1$i = 0, $spec$select3$i = 0, $spec$select49$i = 0, $spec$select7$i = 0, $spec$select9$i = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - $2 = ($0>>>0)<(245); - do { - if ($2) { - $3 = ($0>>>0)<(11); - $4 = (($0) + 11)|0; - $5 = $4 & -8; - $6 = $3 ? 16 : $5; - $7 = $6 >>> 3; - $8 = HEAP32[5323]|0; - $9 = $8 >>> $7; - $10 = $9 & 3; - $11 = ($10|0)==(0); - if (!($11)) { - $12 = $9 & 1; - $13 = $12 ^ 1; - $14 = (($13) + ($7))|0; - $15 = $14 << 1; - $16 = (21332 + ($15<<2)|0); - $17 = ((($16)) + 8|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($18)) + 8|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==($16|0); - do { - if ($21) { - $22 = 1 << $14; - $23 = $22 ^ -1; - $24 = $8 & $23; - HEAP32[5323] = $24; - } else { - $25 = HEAP32[(21308)>>2]|0; - $26 = ($25>>>0)>($20>>>0); - if ($26) { - _abort(); - // unreachable; - } - $27 = ((($20)) + 12|0); - $28 = HEAP32[$27>>2]|0; - $29 = ($28|0)==($18|0); - if ($29) { - HEAP32[$27>>2] = $16; - HEAP32[$17>>2] = $20; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $30 = $14 << 3; - $31 = $30 | 3; - $32 = ((($18)) + 4|0); - HEAP32[$32>>2] = $31; - $33 = (($18) + ($30)|0); - $34 = ((($33)) + 4|0); - $35 = HEAP32[$34>>2]|0; - $36 = $35 | 1; - HEAP32[$34>>2] = $36; - $$0 = $19; - STACKTOP = sp;return ($$0|0); - } - $37 = HEAP32[(21300)>>2]|0; - $38 = ($6>>>0)>($37>>>0); - if ($38) { - $39 = ($9|0)==(0); - if (!($39)) { - $40 = $9 << $7; - $41 = 2 << $7; - $42 = (0 - ($41))|0; - $43 = $41 | $42; - $44 = $40 & $43; - $45 = (0 - ($44))|0; - $46 = $44 & $45; - $47 = (($46) + -1)|0; - $48 = $47 >>> 12; - $49 = $48 & 16; - $50 = $47 >>> $49; - $51 = $50 >>> 5; - $52 = $51 & 8; - $53 = $52 | $49; - $54 = $50 >>> $52; - $55 = $54 >>> 2; - $56 = $55 & 4; - $57 = $53 | $56; - $58 = $54 >>> $56; - $59 = $58 >>> 1; - $60 = $59 & 2; - $61 = $57 | $60; - $62 = $58 >>> $60; - $63 = $62 >>> 1; - $64 = $63 & 1; - $65 = $61 | $64; - $66 = $62 >>> $64; - $67 = (($65) + ($66))|0; - $68 = $67 << 1; - $69 = (21332 + ($68<<2)|0); - $70 = ((($69)) + 8|0); - $71 = HEAP32[$70>>2]|0; - $72 = ((($71)) + 8|0); - $73 = HEAP32[$72>>2]|0; - $74 = ($73|0)==($69|0); - do { - if ($74) { - $75 = 1 << $67; - $76 = $75 ^ -1; - $77 = $8 & $76; - HEAP32[5323] = $77; - $98 = $77; - } else { - $78 = HEAP32[(21308)>>2]|0; - $79 = ($78>>>0)>($73>>>0); - if ($79) { - _abort(); - // unreachable; - } - $80 = ((($73)) + 12|0); - $81 = HEAP32[$80>>2]|0; - $82 = ($81|0)==($71|0); - if ($82) { - HEAP32[$80>>2] = $69; - HEAP32[$70>>2] = $73; - $98 = $8; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $83 = $67 << 3; - $84 = (($83) - ($6))|0; - $85 = $6 | 3; - $86 = ((($71)) + 4|0); - HEAP32[$86>>2] = $85; - $87 = (($71) + ($6)|0); - $88 = $84 | 1; - $89 = ((($87)) + 4|0); - HEAP32[$89>>2] = $88; - $90 = (($71) + ($83)|0); - HEAP32[$90>>2] = $84; - $91 = ($37|0)==(0); - if (!($91)) { - $92 = HEAP32[(21312)>>2]|0; - $93 = $37 >>> 3; - $94 = $93 << 1; - $95 = (21332 + ($94<<2)|0); - $96 = 1 << $93; - $97 = $98 & $96; - $99 = ($97|0)==(0); - if ($99) { - $100 = $98 | $96; - HEAP32[5323] = $100; - $$pre = ((($95)) + 8|0); - $$0199 = $95;$$pre$phiZ2D = $$pre; - } else { - $101 = ((($95)) + 8|0); - $102 = HEAP32[$101>>2]|0; - $103 = HEAP32[(21308)>>2]|0; - $104 = ($103>>>0)>($102>>>0); - if ($104) { - _abort(); - // unreachable; - } else { - $$0199 = $102;$$pre$phiZ2D = $101; - } - } - HEAP32[$$pre$phiZ2D>>2] = $92; - $105 = ((($$0199)) + 12|0); - HEAP32[$105>>2] = $92; - $106 = ((($92)) + 8|0); - HEAP32[$106>>2] = $$0199; - $107 = ((($92)) + 12|0); - HEAP32[$107>>2] = $95; - } - HEAP32[(21300)>>2] = $84; - HEAP32[(21312)>>2] = $87; - $$0 = $72; - STACKTOP = sp;return ($$0|0); - } - $108 = HEAP32[(21296)>>2]|0; - $109 = ($108|0)==(0); - if ($109) { - $$0197 = $6; - } else { - $110 = (0 - ($108))|0; - $111 = $108 & $110; - $112 = (($111) + -1)|0; - $113 = $112 >>> 12; - $114 = $113 & 16; - $115 = $112 >>> $114; - $116 = $115 >>> 5; - $117 = $116 & 8; - $118 = $117 | $114; - $119 = $115 >>> $117; - $120 = $119 >>> 2; - $121 = $120 & 4; - $122 = $118 | $121; - $123 = $119 >>> $121; - $124 = $123 >>> 1; - $125 = $124 & 2; - $126 = $122 | $125; - $127 = $123 >>> $125; - $128 = $127 >>> 1; - $129 = $128 & 1; - $130 = $126 | $129; - $131 = $127 >>> $129; - $132 = (($130) + ($131))|0; - $133 = (21596 + ($132<<2)|0); - $134 = HEAP32[$133>>2]|0; - $135 = ((($134)) + 4|0); - $136 = HEAP32[$135>>2]|0; - $137 = $136 & -8; - $138 = (($137) - ($6))|0; - $$0189$i = $134;$$0190$i = $134;$$0191$i = $138; - while(1) { - $139 = ((($$0189$i)) + 16|0); - $140 = HEAP32[$139>>2]|0; - $141 = ($140|0)==(0|0); - if ($141) { - $142 = ((($$0189$i)) + 20|0); - $143 = HEAP32[$142>>2]|0; - $144 = ($143|0)==(0|0); - if ($144) { - break; - } else { - $146 = $143; - } - } else { - $146 = $140; - } - $145 = ((($146)) + 4|0); - $147 = HEAP32[$145>>2]|0; - $148 = $147 & -8; - $149 = (($148) - ($6))|0; - $150 = ($149>>>0)<($$0191$i>>>0); - $spec$select$i = $150 ? $149 : $$0191$i; - $spec$select1$i = $150 ? $146 : $$0190$i; - $$0189$i = $146;$$0190$i = $spec$select1$i;$$0191$i = $spec$select$i; - } - $151 = HEAP32[(21308)>>2]|0; - $152 = ($151>>>0)>($$0190$i>>>0); - if ($152) { - _abort(); - // unreachable; - } - $153 = (($$0190$i) + ($6)|0); - $154 = ($153>>>0)>($$0190$i>>>0); - if (!($154)) { - _abort(); - // unreachable; - } - $155 = ((($$0190$i)) + 24|0); - $156 = HEAP32[$155>>2]|0; - $157 = ((($$0190$i)) + 12|0); - $158 = HEAP32[$157>>2]|0; - $159 = ($158|0)==($$0190$i|0); - do { - if ($159) { - $169 = ((($$0190$i)) + 20|0); - $170 = HEAP32[$169>>2]|0; - $171 = ($170|0)==(0|0); - if ($171) { - $172 = ((($$0190$i)) + 16|0); - $173 = HEAP32[$172>>2]|0; - $174 = ($173|0)==(0|0); - if ($174) { - $$3$i = 0; - break; - } else { - $$1194$i$ph = $173;$$1196$i$ph = $172; - } - } else { - $$1194$i$ph = $170;$$1196$i$ph = $169; - } - $$1194$i = $$1194$i$ph;$$1196$i = $$1196$i$ph; - while(1) { - $175 = ((($$1194$i)) + 20|0); - $176 = HEAP32[$175>>2]|0; - $177 = ($176|0)==(0|0); - if ($177) { - $178 = ((($$1194$i)) + 16|0); - $179 = HEAP32[$178>>2]|0; - $180 = ($179|0)==(0|0); - if ($180) { - break; - } else { - $$1194$i$be = $179;$$1196$i$be = $178; - } - } else { - $$1194$i$be = $176;$$1196$i$be = $175; - } - $$1194$i = $$1194$i$be;$$1196$i = $$1196$i$be; - } - $181 = ($151>>>0)>($$1196$i>>>0); - if ($181) { - _abort(); - // unreachable; - } else { - HEAP32[$$1196$i>>2] = 0; - $$3$i = $$1194$i; - break; - } - } else { - $160 = ((($$0190$i)) + 8|0); - $161 = HEAP32[$160>>2]|0; - $162 = ($151>>>0)>($161>>>0); - if ($162) { - _abort(); - // unreachable; - } - $163 = ((($161)) + 12|0); - $164 = HEAP32[$163>>2]|0; - $165 = ($164|0)==($$0190$i|0); - if (!($165)) { - _abort(); - // unreachable; - } - $166 = ((($158)) + 8|0); - $167 = HEAP32[$166>>2]|0; - $168 = ($167|0)==($$0190$i|0); - if ($168) { - HEAP32[$163>>2] = $158; - HEAP32[$166>>2] = $161; - $$3$i = $158; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $182 = ($156|0)==(0|0); - L78: do { - if (!($182)) { - $183 = ((($$0190$i)) + 28|0); - $184 = HEAP32[$183>>2]|0; - $185 = (21596 + ($184<<2)|0); - $186 = HEAP32[$185>>2]|0; - $187 = ($$0190$i|0)==($186|0); - do { - if ($187) { - HEAP32[$185>>2] = $$3$i; - $cond$i = ($$3$i|0)==(0|0); - if ($cond$i) { - $188 = 1 << $184; - $189 = $188 ^ -1; - $190 = $108 & $189; - HEAP32[(21296)>>2] = $190; - break L78; - } - } else { - $191 = HEAP32[(21308)>>2]|0; - $192 = ($191>>>0)>($156>>>0); - if ($192) { - _abort(); - // unreachable; - } else { - $193 = ((($156)) + 16|0); - $194 = HEAP32[$193>>2]|0; - $195 = ($194|0)==($$0190$i|0); - $196 = ((($156)) + 20|0); - $$sink = $195 ? $193 : $196; - HEAP32[$$sink>>2] = $$3$i; - $197 = ($$3$i|0)==(0|0); - if ($197) { - break L78; - } else { - break; - } - } - } - } while(0); - $198 = HEAP32[(21308)>>2]|0; - $199 = ($198>>>0)>($$3$i>>>0); - if ($199) { - _abort(); - // unreachable; - } - $200 = ((($$3$i)) + 24|0); - HEAP32[$200>>2] = $156; - $201 = ((($$0190$i)) + 16|0); - $202 = HEAP32[$201>>2]|0; - $203 = ($202|0)==(0|0); - do { - if (!($203)) { - $204 = ($198>>>0)>($202>>>0); - if ($204) { - _abort(); - // unreachable; - } else { - $205 = ((($$3$i)) + 16|0); - HEAP32[$205>>2] = $202; - $206 = ((($202)) + 24|0); - HEAP32[$206>>2] = $$3$i; - break; - } - } - } while(0); - $207 = ((($$0190$i)) + 20|0); - $208 = HEAP32[$207>>2]|0; - $209 = ($208|0)==(0|0); - if (!($209)) { - $210 = HEAP32[(21308)>>2]|0; - $211 = ($210>>>0)>($208>>>0); - if ($211) { - _abort(); - // unreachable; - } else { - $212 = ((($$3$i)) + 20|0); - HEAP32[$212>>2] = $208; - $213 = ((($208)) + 24|0); - HEAP32[$213>>2] = $$3$i; - break; - } - } - } - } while(0); - $214 = ($$0191$i>>>0)<(16); - if ($214) { - $215 = (($$0191$i) + ($6))|0; - $216 = $215 | 3; - $217 = ((($$0190$i)) + 4|0); - HEAP32[$217>>2] = $216; - $218 = (($$0190$i) + ($215)|0); - $219 = ((($218)) + 4|0); - $220 = HEAP32[$219>>2]|0; - $221 = $220 | 1; - HEAP32[$219>>2] = $221; - } else { - $222 = $6 | 3; - $223 = ((($$0190$i)) + 4|0); - HEAP32[$223>>2] = $222; - $224 = $$0191$i | 1; - $225 = ((($153)) + 4|0); - HEAP32[$225>>2] = $224; - $226 = (($153) + ($$0191$i)|0); - HEAP32[$226>>2] = $$0191$i; - $227 = ($37|0)==(0); - if (!($227)) { - $228 = HEAP32[(21312)>>2]|0; - $229 = $37 >>> 3; - $230 = $229 << 1; - $231 = (21332 + ($230<<2)|0); - $232 = 1 << $229; - $233 = $232 & $8; - $234 = ($233|0)==(0); - if ($234) { - $235 = $232 | $8; - HEAP32[5323] = $235; - $$pre$i = ((($231)) + 8|0); - $$0187$i = $231;$$pre$phi$iZ2D = $$pre$i; - } else { - $236 = ((($231)) + 8|0); - $237 = HEAP32[$236>>2]|0; - $238 = HEAP32[(21308)>>2]|0; - $239 = ($238>>>0)>($237>>>0); - if ($239) { - _abort(); - // unreachable; - } else { - $$0187$i = $237;$$pre$phi$iZ2D = $236; - } - } - HEAP32[$$pre$phi$iZ2D>>2] = $228; - $240 = ((($$0187$i)) + 12|0); - HEAP32[$240>>2] = $228; - $241 = ((($228)) + 8|0); - HEAP32[$241>>2] = $$0187$i; - $242 = ((($228)) + 12|0); - HEAP32[$242>>2] = $231; - } - HEAP32[(21300)>>2] = $$0191$i; - HEAP32[(21312)>>2] = $153; - } - $243 = ((($$0190$i)) + 8|0); - $$0 = $243; - STACKTOP = sp;return ($$0|0); - } - } else { - $$0197 = $6; - } - } else { - $244 = ($0>>>0)>(4294967231); - if ($244) { - $$0197 = -1; - } else { - $245 = (($0) + 11)|0; - $246 = $245 & -8; - $247 = HEAP32[(21296)>>2]|0; - $248 = ($247|0)==(0); - if ($248) { - $$0197 = $246; - } else { - $249 = (0 - ($246))|0; - $250 = $245 >>> 8; - $251 = ($250|0)==(0); - if ($251) { - $$0357$i = 0; - } else { - $252 = ($246>>>0)>(16777215); - if ($252) { - $$0357$i = 31; - } else { - $253 = (($250) + 1048320)|0; - $254 = $253 >>> 16; - $255 = $254 & 8; - $256 = $250 << $255; - $257 = (($256) + 520192)|0; - $258 = $257 >>> 16; - $259 = $258 & 4; - $260 = $259 | $255; - $261 = $256 << $259; - $262 = (($261) + 245760)|0; - $263 = $262 >>> 16; - $264 = $263 & 2; - $265 = $260 | $264; - $266 = (14 - ($265))|0; - $267 = $261 << $264; - $268 = $267 >>> 15; - $269 = (($266) + ($268))|0; - $270 = $269 << 1; - $271 = (($269) + 7)|0; - $272 = $246 >>> $271; - $273 = $272 & 1; - $274 = $273 | $270; - $$0357$i = $274; - } - } - $275 = (21596 + ($$0357$i<<2)|0); - $276 = HEAP32[$275>>2]|0; - $277 = ($276|0)==(0|0); - L122: do { - if ($277) { - $$2353$i = 0;$$3$i203 = 0;$$3348$i = $249; - label = 85; - } else { - $278 = ($$0357$i|0)==(31); - $279 = $$0357$i >>> 1; - $280 = (25 - ($279))|0; - $281 = $278 ? 0 : $280; - $282 = $246 << $281; - $$0340$i = 0;$$0345$i = $249;$$0351$i = $276;$$0358$i = $282;$$0361$i = 0; - while(1) { - $283 = ((($$0351$i)) + 4|0); - $284 = HEAP32[$283>>2]|0; - $285 = $284 & -8; - $286 = (($285) - ($246))|0; - $287 = ($286>>>0)<($$0345$i>>>0); - if ($287) { - $288 = ($286|0)==(0); - if ($288) { - $$420$i$ph = $$0351$i;$$434919$i$ph = 0;$$535618$i$ph = $$0351$i; - label = 89; - break L122; - } else { - $$1341$i = $$0351$i;$$1346$i = $286; - } - } else { - $$1341$i = $$0340$i;$$1346$i = $$0345$i; - } - $289 = ((($$0351$i)) + 20|0); - $290 = HEAP32[$289>>2]|0; - $291 = $$0358$i >>> 31; - $292 = (((($$0351$i)) + 16|0) + ($291<<2)|0); - $293 = HEAP32[$292>>2]|0; - $294 = ($290|0)==(0|0); - $295 = ($290|0)==($293|0); - $or$cond2$i = $294 | $295; - $$1362$i = $or$cond2$i ? $$0361$i : $290; - $296 = ($293|0)==(0|0); - $spec$select7$i = $$0358$i << 1; - if ($296) { - $$2353$i = $$1362$i;$$3$i203 = $$1341$i;$$3348$i = $$1346$i; - label = 85; - break; - } else { - $$0340$i = $$1341$i;$$0345$i = $$1346$i;$$0351$i = $293;$$0358$i = $spec$select7$i;$$0361$i = $$1362$i; - } - } - } - } while(0); - if ((label|0) == 85) { - $297 = ($$2353$i|0)==(0|0); - $298 = ($$3$i203|0)==(0|0); - $or$cond$i = $297 & $298; - if ($or$cond$i) { - $299 = 2 << $$0357$i; - $300 = (0 - ($299))|0; - $301 = $299 | $300; - $302 = $301 & $247; - $303 = ($302|0)==(0); - if ($303) { - $$0197 = $246; - break; - } - $304 = (0 - ($302))|0; - $305 = $302 & $304; - $306 = (($305) + -1)|0; - $307 = $306 >>> 12; - $308 = $307 & 16; - $309 = $306 >>> $308; - $310 = $309 >>> 5; - $311 = $310 & 8; - $312 = $311 | $308; - $313 = $309 >>> $311; - $314 = $313 >>> 2; - $315 = $314 & 4; - $316 = $312 | $315; - $317 = $313 >>> $315; - $318 = $317 >>> 1; - $319 = $318 & 2; - $320 = $316 | $319; - $321 = $317 >>> $319; - $322 = $321 >>> 1; - $323 = $322 & 1; - $324 = $320 | $323; - $325 = $321 >>> $323; - $326 = (($324) + ($325))|0; - $327 = (21596 + ($326<<2)|0); - $328 = HEAP32[$327>>2]|0; - $$3$i203218 = 0;$$4355$i = $328; - } else { - $$3$i203218 = $$3$i203;$$4355$i = $$2353$i; - } - $329 = ($$4355$i|0)==(0|0); - if ($329) { - $$4$lcssa$i = $$3$i203218;$$4349$lcssa$i = $$3348$i; - } else { - $$420$i$ph = $$3$i203218;$$434919$i$ph = $$3348$i;$$535618$i$ph = $$4355$i; - label = 89; - } - } - if ((label|0) == 89) { - $$420$i = $$420$i$ph;$$434919$i = $$434919$i$ph;$$535618$i = $$535618$i$ph; - while(1) { - $330 = ((($$535618$i)) + 4|0); - $331 = HEAP32[$330>>2]|0; - $332 = $331 & -8; - $333 = (($332) - ($246))|0; - $334 = ($333>>>0)<($$434919$i>>>0); - $spec$select$i205 = $334 ? $333 : $$434919$i; - $spec$select3$i = $334 ? $$535618$i : $$420$i; - $335 = ((($$535618$i)) + 16|0); - $336 = HEAP32[$335>>2]|0; - $337 = ($336|0)==(0|0); - if ($337) { - $338 = ((($$535618$i)) + 20|0); - $339 = HEAP32[$338>>2]|0; - $341 = $339; - } else { - $341 = $336; - } - $340 = ($341|0)==(0|0); - if ($340) { - $$4$lcssa$i = $spec$select3$i;$$4349$lcssa$i = $spec$select$i205; - break; - } else { - $$420$i = $spec$select3$i;$$434919$i = $spec$select$i205;$$535618$i = $341; - } - } - } - $342 = ($$4$lcssa$i|0)==(0|0); - if ($342) { - $$0197 = $246; - } else { - $343 = HEAP32[(21300)>>2]|0; - $344 = (($343) - ($246))|0; - $345 = ($$4349$lcssa$i>>>0)<($344>>>0); - if ($345) { - $346 = HEAP32[(21308)>>2]|0; - $347 = ($346>>>0)>($$4$lcssa$i>>>0); - if ($347) { - _abort(); - // unreachable; - } - $348 = (($$4$lcssa$i) + ($246)|0); - $349 = ($348>>>0)>($$4$lcssa$i>>>0); - if (!($349)) { - _abort(); - // unreachable; - } - $350 = ((($$4$lcssa$i)) + 24|0); - $351 = HEAP32[$350>>2]|0; - $352 = ((($$4$lcssa$i)) + 12|0); - $353 = HEAP32[$352>>2]|0; - $354 = ($353|0)==($$4$lcssa$i|0); - do { - if ($354) { - $364 = ((($$4$lcssa$i)) + 20|0); - $365 = HEAP32[$364>>2]|0; - $366 = ($365|0)==(0|0); - if ($366) { - $367 = ((($$4$lcssa$i)) + 16|0); - $368 = HEAP32[$367>>2]|0; - $369 = ($368|0)==(0|0); - if ($369) { - $$3371$i = 0; - break; - } else { - $$1369$i$ph = $368;$$1373$i$ph = $367; - } - } else { - $$1369$i$ph = $365;$$1373$i$ph = $364; - } - $$1369$i = $$1369$i$ph;$$1373$i = $$1373$i$ph; - while(1) { - $370 = ((($$1369$i)) + 20|0); - $371 = HEAP32[$370>>2]|0; - $372 = ($371|0)==(0|0); - if ($372) { - $373 = ((($$1369$i)) + 16|0); - $374 = HEAP32[$373>>2]|0; - $375 = ($374|0)==(0|0); - if ($375) { - break; - } else { - $$1369$i$be = $374;$$1373$i$be = $373; - } - } else { - $$1369$i$be = $371;$$1373$i$be = $370; - } - $$1369$i = $$1369$i$be;$$1373$i = $$1373$i$be; - } - $376 = ($346>>>0)>($$1373$i>>>0); - if ($376) { - _abort(); - // unreachable; - } else { - HEAP32[$$1373$i>>2] = 0; - $$3371$i = $$1369$i; - break; - } - } else { - $355 = ((($$4$lcssa$i)) + 8|0); - $356 = HEAP32[$355>>2]|0; - $357 = ($346>>>0)>($356>>>0); - if ($357) { - _abort(); - // unreachable; - } - $358 = ((($356)) + 12|0); - $359 = HEAP32[$358>>2]|0; - $360 = ($359|0)==($$4$lcssa$i|0); - if (!($360)) { - _abort(); - // unreachable; - } - $361 = ((($353)) + 8|0); - $362 = HEAP32[$361>>2]|0; - $363 = ($362|0)==($$4$lcssa$i|0); - if ($363) { - HEAP32[$358>>2] = $353; - HEAP32[$361>>2] = $356; - $$3371$i = $353; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $377 = ($351|0)==(0|0); - L176: do { - if ($377) { - $469 = $247; - } else { - $378 = ((($$4$lcssa$i)) + 28|0); - $379 = HEAP32[$378>>2]|0; - $380 = (21596 + ($379<<2)|0); - $381 = HEAP32[$380>>2]|0; - $382 = ($$4$lcssa$i|0)==($381|0); - do { - if ($382) { - HEAP32[$380>>2] = $$3371$i; - $cond$i207 = ($$3371$i|0)==(0|0); - if ($cond$i207) { - $383 = 1 << $379; - $384 = $383 ^ -1; - $385 = $247 & $384; - HEAP32[(21296)>>2] = $385; - $469 = $385; - break L176; - } - } else { - $386 = HEAP32[(21308)>>2]|0; - $387 = ($386>>>0)>($351>>>0); - if ($387) { - _abort(); - // unreachable; - } else { - $388 = ((($351)) + 16|0); - $389 = HEAP32[$388>>2]|0; - $390 = ($389|0)==($$4$lcssa$i|0); - $391 = ((($351)) + 20|0); - $$sink325 = $390 ? $388 : $391; - HEAP32[$$sink325>>2] = $$3371$i; - $392 = ($$3371$i|0)==(0|0); - if ($392) { - $469 = $247; - break L176; - } else { - break; - } - } - } - } while(0); - $393 = HEAP32[(21308)>>2]|0; - $394 = ($393>>>0)>($$3371$i>>>0); - if ($394) { - _abort(); - // unreachable; - } - $395 = ((($$3371$i)) + 24|0); - HEAP32[$395>>2] = $351; - $396 = ((($$4$lcssa$i)) + 16|0); - $397 = HEAP32[$396>>2]|0; - $398 = ($397|0)==(0|0); - do { - if (!($398)) { - $399 = ($393>>>0)>($397>>>0); - if ($399) { - _abort(); - // unreachable; - } else { - $400 = ((($$3371$i)) + 16|0); - HEAP32[$400>>2] = $397; - $401 = ((($397)) + 24|0); - HEAP32[$401>>2] = $$3371$i; - break; - } - } - } while(0); - $402 = ((($$4$lcssa$i)) + 20|0); - $403 = HEAP32[$402>>2]|0; - $404 = ($403|0)==(0|0); - if ($404) { - $469 = $247; - } else { - $405 = HEAP32[(21308)>>2]|0; - $406 = ($405>>>0)>($403>>>0); - if ($406) { - _abort(); - // unreachable; - } else { - $407 = ((($$3371$i)) + 20|0); - HEAP32[$407>>2] = $403; - $408 = ((($403)) + 24|0); - HEAP32[$408>>2] = $$3371$i; - $469 = $247; - break; - } - } - } - } while(0); - $409 = ($$4349$lcssa$i>>>0)<(16); - L200: do { - if ($409) { - $410 = (($$4349$lcssa$i) + ($246))|0; - $411 = $410 | 3; - $412 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$412>>2] = $411; - $413 = (($$4$lcssa$i) + ($410)|0); - $414 = ((($413)) + 4|0); - $415 = HEAP32[$414>>2]|0; - $416 = $415 | 1; - HEAP32[$414>>2] = $416; - } else { - $417 = $246 | 3; - $418 = ((($$4$lcssa$i)) + 4|0); - HEAP32[$418>>2] = $417; - $419 = $$4349$lcssa$i | 1; - $420 = ((($348)) + 4|0); - HEAP32[$420>>2] = $419; - $421 = (($348) + ($$4349$lcssa$i)|0); - HEAP32[$421>>2] = $$4349$lcssa$i; - $422 = $$4349$lcssa$i >>> 3; - $423 = ($$4349$lcssa$i>>>0)<(256); - if ($423) { - $424 = $422 << 1; - $425 = (21332 + ($424<<2)|0); - $426 = HEAP32[5323]|0; - $427 = 1 << $422; - $428 = $426 & $427; - $429 = ($428|0)==(0); - if ($429) { - $430 = $426 | $427; - HEAP32[5323] = $430; - $$pre$i208 = ((($425)) + 8|0); - $$0367$i = $425;$$pre$phi$i209Z2D = $$pre$i208; - } else { - $431 = ((($425)) + 8|0); - $432 = HEAP32[$431>>2]|0; - $433 = HEAP32[(21308)>>2]|0; - $434 = ($433>>>0)>($432>>>0); - if ($434) { - _abort(); - // unreachable; - } else { - $$0367$i = $432;$$pre$phi$i209Z2D = $431; - } - } - HEAP32[$$pre$phi$i209Z2D>>2] = $348; - $435 = ((($$0367$i)) + 12|0); - HEAP32[$435>>2] = $348; - $436 = ((($348)) + 8|0); - HEAP32[$436>>2] = $$0367$i; - $437 = ((($348)) + 12|0); - HEAP32[$437>>2] = $425; - break; - } - $438 = $$4349$lcssa$i >>> 8; - $439 = ($438|0)==(0); - if ($439) { - $$0360$i = 0; - } else { - $440 = ($$4349$lcssa$i>>>0)>(16777215); - if ($440) { - $$0360$i = 31; - } else { - $441 = (($438) + 1048320)|0; - $442 = $441 >>> 16; - $443 = $442 & 8; - $444 = $438 << $443; - $445 = (($444) + 520192)|0; - $446 = $445 >>> 16; - $447 = $446 & 4; - $448 = $447 | $443; - $449 = $444 << $447; - $450 = (($449) + 245760)|0; - $451 = $450 >>> 16; - $452 = $451 & 2; - $453 = $448 | $452; - $454 = (14 - ($453))|0; - $455 = $449 << $452; - $456 = $455 >>> 15; - $457 = (($454) + ($456))|0; - $458 = $457 << 1; - $459 = (($457) + 7)|0; - $460 = $$4349$lcssa$i >>> $459; - $461 = $460 & 1; - $462 = $461 | $458; - $$0360$i = $462; - } - } - $463 = (21596 + ($$0360$i<<2)|0); - $464 = ((($348)) + 28|0); - HEAP32[$464>>2] = $$0360$i; - $465 = ((($348)) + 16|0); - $466 = ((($465)) + 4|0); - HEAP32[$466>>2] = 0; - HEAP32[$465>>2] = 0; - $467 = 1 << $$0360$i; - $468 = $469 & $467; - $470 = ($468|0)==(0); - if ($470) { - $471 = $469 | $467; - HEAP32[(21296)>>2] = $471; - HEAP32[$463>>2] = $348; - $472 = ((($348)) + 24|0); - HEAP32[$472>>2] = $463; - $473 = ((($348)) + 12|0); - HEAP32[$473>>2] = $348; - $474 = ((($348)) + 8|0); - HEAP32[$474>>2] = $348; - break; - } - $475 = HEAP32[$463>>2]|0; - $476 = ((($475)) + 4|0); - $477 = HEAP32[$476>>2]|0; - $478 = $477 & -8; - $479 = ($478|0)==($$4349$lcssa$i|0); - L218: do { - if ($479) { - $$0343$lcssa$i = $475; - } else { - $480 = ($$0360$i|0)==(31); - $481 = $$0360$i >>> 1; - $482 = (25 - ($481))|0; - $483 = $480 ? 0 : $482; - $484 = $$4349$lcssa$i << $483; - $$034217$i = $484;$$034316$i = $475; - while(1) { - $491 = $$034217$i >>> 31; - $492 = (((($$034316$i)) + 16|0) + ($491<<2)|0); - $487 = HEAP32[$492>>2]|0; - $493 = ($487|0)==(0|0); - if ($493) { - break; - } - $485 = $$034217$i << 1; - $486 = ((($487)) + 4|0); - $488 = HEAP32[$486>>2]|0; - $489 = $488 & -8; - $490 = ($489|0)==($$4349$lcssa$i|0); - if ($490) { - $$0343$lcssa$i = $487; - break L218; - } else { - $$034217$i = $485;$$034316$i = $487; - } - } - $494 = HEAP32[(21308)>>2]|0; - $495 = ($494>>>0)>($492>>>0); - if ($495) { - _abort(); - // unreachable; - } else { - HEAP32[$492>>2] = $348; - $496 = ((($348)) + 24|0); - HEAP32[$496>>2] = $$034316$i; - $497 = ((($348)) + 12|0); - HEAP32[$497>>2] = $348; - $498 = ((($348)) + 8|0); - HEAP32[$498>>2] = $348; - break L200; - } - } - } while(0); - $499 = ((($$0343$lcssa$i)) + 8|0); - $500 = HEAP32[$499>>2]|0; - $501 = HEAP32[(21308)>>2]|0; - $502 = ($501>>>0)<=($$0343$lcssa$i>>>0); - $503 = ($501>>>0)<=($500>>>0); - $504 = $503 & $502; - if ($504) { - $505 = ((($500)) + 12|0); - HEAP32[$505>>2] = $348; - HEAP32[$499>>2] = $348; - $506 = ((($348)) + 8|0); - HEAP32[$506>>2] = $500; - $507 = ((($348)) + 12|0); - HEAP32[$507>>2] = $$0343$lcssa$i; - $508 = ((($348)) + 24|0); - HEAP32[$508>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $509 = ((($$4$lcssa$i)) + 8|0); - $$0 = $509; - STACKTOP = sp;return ($$0|0); - } else { - $$0197 = $246; - } - } - } - } - } - } while(0); - $510 = HEAP32[(21300)>>2]|0; - $511 = ($510>>>0)<($$0197>>>0); - if (!($511)) { - $512 = (($510) - ($$0197))|0; - $513 = HEAP32[(21312)>>2]|0; - $514 = ($512>>>0)>(15); - if ($514) { - $515 = (($513) + ($$0197)|0); - HEAP32[(21312)>>2] = $515; - HEAP32[(21300)>>2] = $512; - $516 = $512 | 1; - $517 = ((($515)) + 4|0); - HEAP32[$517>>2] = $516; - $518 = (($513) + ($510)|0); - HEAP32[$518>>2] = $512; - $519 = $$0197 | 3; - $520 = ((($513)) + 4|0); - HEAP32[$520>>2] = $519; - } else { - HEAP32[(21300)>>2] = 0; - HEAP32[(21312)>>2] = 0; - $521 = $510 | 3; - $522 = ((($513)) + 4|0); - HEAP32[$522>>2] = $521; - $523 = (($513) + ($510)|0); - $524 = ((($523)) + 4|0); - $525 = HEAP32[$524>>2]|0; - $526 = $525 | 1; - HEAP32[$524>>2] = $526; - } - $527 = ((($513)) + 8|0); - $$0 = $527; - STACKTOP = sp;return ($$0|0); - } - $528 = HEAP32[(21304)>>2]|0; - $529 = ($528>>>0)>($$0197>>>0); - if ($529) { - $530 = (($528) - ($$0197))|0; - HEAP32[(21304)>>2] = $530; - $531 = HEAP32[(21316)>>2]|0; - $532 = (($531) + ($$0197)|0); - HEAP32[(21316)>>2] = $532; - $533 = $530 | 1; - $534 = ((($532)) + 4|0); - HEAP32[$534>>2] = $533; - $535 = $$0197 | 3; - $536 = ((($531)) + 4|0); - HEAP32[$536>>2] = $535; - $537 = ((($531)) + 8|0); - $$0 = $537; - STACKTOP = sp;return ($$0|0); - } - $538 = HEAP32[5441]|0; - $539 = ($538|0)==(0); - if ($539) { - HEAP32[(21772)>>2] = 4096; - HEAP32[(21768)>>2] = 4096; - HEAP32[(21776)>>2] = -1; - HEAP32[(21780)>>2] = -1; - HEAP32[(21784)>>2] = 0; - HEAP32[(21736)>>2] = 0; - $540 = $1; - $541 = $540 & -16; - $542 = $541 ^ 1431655768; - HEAP32[5441] = $542; - $546 = 4096; - } else { - $$pre$i210 = HEAP32[(21772)>>2]|0; - $546 = $$pre$i210; - } - $543 = (($$0197) + 48)|0; - $544 = (($$0197) + 47)|0; - $545 = (($546) + ($544))|0; - $547 = (0 - ($546))|0; - $548 = $545 & $547; - $549 = ($548>>>0)>($$0197>>>0); - if (!($549)) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - $550 = HEAP32[(21732)>>2]|0; - $551 = ($550|0)==(0); - if (!($551)) { - $552 = HEAP32[(21724)>>2]|0; - $553 = (($552) + ($548))|0; - $554 = ($553>>>0)<=($552>>>0); - $555 = ($553>>>0)>($550>>>0); - $or$cond1$i = $554 | $555; - if ($or$cond1$i) { - $$0 = 0; - STACKTOP = sp;return ($$0|0); - } - } - $556 = HEAP32[(21736)>>2]|0; - $557 = $556 & 4; - $558 = ($557|0)==(0); - L257: do { - if ($558) { - $559 = HEAP32[(21316)>>2]|0; - $560 = ($559|0)==(0|0); - L259: do { - if ($560) { - label = 173; - } else { - $$0$i$i = (21740); - while(1) { - $561 = HEAP32[$$0$i$i>>2]|0; - $562 = ($561>>>0)>($559>>>0); - if (!($562)) { - $563 = ((($$0$i$i)) + 4|0); - $564 = HEAP32[$563>>2]|0; - $565 = (($561) + ($564)|0); - $566 = ($565>>>0)>($559>>>0); - if ($566) { - break; - } - } - $567 = ((($$0$i$i)) + 8|0); - $568 = HEAP32[$567>>2]|0; - $569 = ($568|0)==(0|0); - if ($569) { - label = 173; - break L259; - } else { - $$0$i$i = $568; - } - } - $592 = (($545) - ($528))|0; - $593 = $592 & $547; - $594 = ($593>>>0)<(2147483647); - if ($594) { - $595 = ((($$0$i$i)) + 4|0); - $596 = (_sbrk(($593|0))|0); - $597 = HEAP32[$$0$i$i>>2]|0; - $598 = HEAP32[$595>>2]|0; - $599 = (($597) + ($598)|0); - $600 = ($596|0)==($599|0); - if ($600) { - $601 = ($596|0)==((-1)|0); - if ($601) { - $$2234243136$i = $593; - } else { - $$723947$i = $593;$$748$i = $596; - label = 190; - break L257; - } - } else { - $$2247$ph$i = $596;$$2253$ph$i = $593; - label = 181; - } - } else { - $$2234243136$i = 0; - } - } - } while(0); - do { - if ((label|0) == 173) { - $570 = (_sbrk(0)|0); - $571 = ($570|0)==((-1)|0); - if ($571) { - $$2234243136$i = 0; - } else { - $572 = $570; - $573 = HEAP32[(21768)>>2]|0; - $574 = (($573) + -1)|0; - $575 = $574 & $572; - $576 = ($575|0)==(0); - $577 = (($574) + ($572))|0; - $578 = (0 - ($573))|0; - $579 = $577 & $578; - $580 = (($579) - ($572))|0; - $581 = $576 ? 0 : $580; - $spec$select49$i = (($581) + ($548))|0; - $582 = HEAP32[(21724)>>2]|0; - $583 = (($spec$select49$i) + ($582))|0; - $584 = ($spec$select49$i>>>0)>($$0197>>>0); - $585 = ($spec$select49$i>>>0)<(2147483647); - $or$cond$i213 = $584 & $585; - if ($or$cond$i213) { - $586 = HEAP32[(21732)>>2]|0; - $587 = ($586|0)==(0); - if (!($587)) { - $588 = ($583>>>0)<=($582>>>0); - $589 = ($583>>>0)>($586>>>0); - $or$cond2$i214 = $588 | $589; - if ($or$cond2$i214) { - $$2234243136$i = 0; - break; - } - } - $590 = (_sbrk(($spec$select49$i|0))|0); - $591 = ($590|0)==($570|0); - if ($591) { - $$723947$i = $spec$select49$i;$$748$i = $570; - label = 190; - break L257; - } else { - $$2247$ph$i = $590;$$2253$ph$i = $spec$select49$i; - label = 181; - } - } else { - $$2234243136$i = 0; - } - } - } - } while(0); - do { - if ((label|0) == 181) { - $602 = (0 - ($$2253$ph$i))|0; - $603 = ($$2247$ph$i|0)!=((-1)|0); - $604 = ($$2253$ph$i>>>0)<(2147483647); - $or$cond7$i = $604 & $603; - $605 = ($543>>>0)>($$2253$ph$i>>>0); - $or$cond6$i = $605 & $or$cond7$i; - if (!($or$cond6$i)) { - $615 = ($$2247$ph$i|0)==((-1)|0); - if ($615) { - $$2234243136$i = 0; - break; - } else { - $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - } - $606 = HEAP32[(21772)>>2]|0; - $607 = (($544) - ($$2253$ph$i))|0; - $608 = (($607) + ($606))|0; - $609 = (0 - ($606))|0; - $610 = $608 & $609; - $611 = ($610>>>0)<(2147483647); - if (!($611)) { - $$723947$i = $$2253$ph$i;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - $612 = (_sbrk(($610|0))|0); - $613 = ($612|0)==((-1)|0); - if ($613) { - (_sbrk(($602|0))|0); - $$2234243136$i = 0; - break; - } else { - $614 = (($610) + ($$2253$ph$i))|0; - $$723947$i = $614;$$748$i = $$2247$ph$i; - label = 190; - break L257; - } - } - } while(0); - $616 = HEAP32[(21736)>>2]|0; - $617 = $616 | 4; - HEAP32[(21736)>>2] = $617; - $$4236$i = $$2234243136$i; - label = 188; - } else { - $$4236$i = 0; - label = 188; - } - } while(0); - if ((label|0) == 188) { - $618 = ($548>>>0)<(2147483647); - if ($618) { - $619 = (_sbrk(($548|0))|0); - $620 = (_sbrk(0)|0); - $621 = ($619|0)!=((-1)|0); - $622 = ($620|0)!=((-1)|0); - $or$cond5$i = $621 & $622; - $623 = ($619>>>0)<($620>>>0); - $or$cond8$i = $623 & $or$cond5$i; - $624 = $620; - $625 = $619; - $626 = (($624) - ($625))|0; - $627 = (($$0197) + 40)|0; - $628 = ($626>>>0)>($627>>>0); - $spec$select9$i = $628 ? $626 : $$4236$i; - $or$cond8$not$i = $or$cond8$i ^ 1; - $629 = ($619|0)==((-1)|0); - $not$$i = $628 ^ 1; - $630 = $629 | $not$$i; - $or$cond50$i = $630 | $or$cond8$not$i; - if (!($or$cond50$i)) { - $$723947$i = $spec$select9$i;$$748$i = $619; - label = 190; - } - } - } - if ((label|0) == 190) { - $631 = HEAP32[(21724)>>2]|0; - $632 = (($631) + ($$723947$i))|0; - HEAP32[(21724)>>2] = $632; - $633 = HEAP32[(21728)>>2]|0; - $634 = ($632>>>0)>($633>>>0); - if ($634) { - HEAP32[(21728)>>2] = $632; - } - $635 = HEAP32[(21316)>>2]|0; - $636 = ($635|0)==(0|0); - L294: do { - if ($636) { - $637 = HEAP32[(21308)>>2]|0; - $638 = ($637|0)==(0|0); - $639 = ($$748$i>>>0)<($637>>>0); - $or$cond11$i = $638 | $639; - if ($or$cond11$i) { - HEAP32[(21308)>>2] = $$748$i; - } - HEAP32[(21740)>>2] = $$748$i; - HEAP32[(21744)>>2] = $$723947$i; - HEAP32[(21752)>>2] = 0; - $640 = HEAP32[5441]|0; - HEAP32[(21328)>>2] = $640; - HEAP32[(21324)>>2] = -1; - HEAP32[(21344)>>2] = (21332); - HEAP32[(21340)>>2] = (21332); - HEAP32[(21352)>>2] = (21340); - HEAP32[(21348)>>2] = (21340); - HEAP32[(21360)>>2] = (21348); - HEAP32[(21356)>>2] = (21348); - HEAP32[(21368)>>2] = (21356); - HEAP32[(21364)>>2] = (21356); - HEAP32[(21376)>>2] = (21364); - HEAP32[(21372)>>2] = (21364); - HEAP32[(21384)>>2] = (21372); - HEAP32[(21380)>>2] = (21372); - HEAP32[(21392)>>2] = (21380); - HEAP32[(21388)>>2] = (21380); - HEAP32[(21400)>>2] = (21388); - HEAP32[(21396)>>2] = (21388); - HEAP32[(21408)>>2] = (21396); - HEAP32[(21404)>>2] = (21396); - HEAP32[(21416)>>2] = (21404); - HEAP32[(21412)>>2] = (21404); - HEAP32[(21424)>>2] = (21412); - HEAP32[(21420)>>2] = (21412); - HEAP32[(21432)>>2] = (21420); - HEAP32[(21428)>>2] = (21420); - HEAP32[(21440)>>2] = (21428); - HEAP32[(21436)>>2] = (21428); - HEAP32[(21448)>>2] = (21436); - HEAP32[(21444)>>2] = (21436); - HEAP32[(21456)>>2] = (21444); - HEAP32[(21452)>>2] = (21444); - HEAP32[(21464)>>2] = (21452); - HEAP32[(21460)>>2] = (21452); - HEAP32[(21472)>>2] = (21460); - HEAP32[(21468)>>2] = (21460); - HEAP32[(21480)>>2] = (21468); - HEAP32[(21476)>>2] = (21468); - HEAP32[(21488)>>2] = (21476); - HEAP32[(21484)>>2] = (21476); - HEAP32[(21496)>>2] = (21484); - HEAP32[(21492)>>2] = (21484); - HEAP32[(21504)>>2] = (21492); - HEAP32[(21500)>>2] = (21492); - HEAP32[(21512)>>2] = (21500); - HEAP32[(21508)>>2] = (21500); - HEAP32[(21520)>>2] = (21508); - HEAP32[(21516)>>2] = (21508); - HEAP32[(21528)>>2] = (21516); - HEAP32[(21524)>>2] = (21516); - HEAP32[(21536)>>2] = (21524); - HEAP32[(21532)>>2] = (21524); - HEAP32[(21544)>>2] = (21532); - HEAP32[(21540)>>2] = (21532); - HEAP32[(21552)>>2] = (21540); - HEAP32[(21548)>>2] = (21540); - HEAP32[(21560)>>2] = (21548); - HEAP32[(21556)>>2] = (21548); - HEAP32[(21568)>>2] = (21556); - HEAP32[(21564)>>2] = (21556); - HEAP32[(21576)>>2] = (21564); - HEAP32[(21572)>>2] = (21564); - HEAP32[(21584)>>2] = (21572); - HEAP32[(21580)>>2] = (21572); - HEAP32[(21592)>>2] = (21580); - HEAP32[(21588)>>2] = (21580); - $641 = (($$723947$i) + -40)|0; - $642 = ((($$748$i)) + 8|0); - $643 = $642; - $644 = $643 & 7; - $645 = ($644|0)==(0); - $646 = (0 - ($643))|0; - $647 = $646 & 7; - $648 = $645 ? 0 : $647; - $649 = (($$748$i) + ($648)|0); - $650 = (($641) - ($648))|0; - HEAP32[(21316)>>2] = $649; - HEAP32[(21304)>>2] = $650; - $651 = $650 | 1; - $652 = ((($649)) + 4|0); - HEAP32[$652>>2] = $651; - $653 = (($$748$i) + ($641)|0); - $654 = ((($653)) + 4|0); - HEAP32[$654>>2] = 40; - $655 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $655; - } else { - $$024372$i = (21740); - while(1) { - $656 = HEAP32[$$024372$i>>2]|0; - $657 = ((($$024372$i)) + 4|0); - $658 = HEAP32[$657>>2]|0; - $659 = (($656) + ($658)|0); - $660 = ($$748$i|0)==($659|0); - if ($660) { - label = 199; - break; - } - $661 = ((($$024372$i)) + 8|0); - $662 = HEAP32[$661>>2]|0; - $663 = ($662|0)==(0|0); - if ($663) { - break; - } else { - $$024372$i = $662; - } - } - if ((label|0) == 199) { - $664 = ((($$024372$i)) + 4|0); - $665 = ((($$024372$i)) + 12|0); - $666 = HEAP32[$665>>2]|0; - $667 = $666 & 8; - $668 = ($667|0)==(0); - if ($668) { - $669 = ($656>>>0)<=($635>>>0); - $670 = ($$748$i>>>0)>($635>>>0); - $or$cond51$i = $670 & $669; - if ($or$cond51$i) { - $671 = (($658) + ($$723947$i))|0; - HEAP32[$664>>2] = $671; - $672 = HEAP32[(21304)>>2]|0; - $673 = (($672) + ($$723947$i))|0; - $674 = ((($635)) + 8|0); - $675 = $674; - $676 = $675 & 7; - $677 = ($676|0)==(0); - $678 = (0 - ($675))|0; - $679 = $678 & 7; - $680 = $677 ? 0 : $679; - $681 = (($635) + ($680)|0); - $682 = (($673) - ($680))|0; - HEAP32[(21316)>>2] = $681; - HEAP32[(21304)>>2] = $682; - $683 = $682 | 1; - $684 = ((($681)) + 4|0); - HEAP32[$684>>2] = $683; - $685 = (($635) + ($673)|0); - $686 = ((($685)) + 4|0); - HEAP32[$686>>2] = 40; - $687 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $687; - break; - } - } - } - $688 = HEAP32[(21308)>>2]|0; - $689 = ($$748$i>>>0)<($688>>>0); - if ($689) { - HEAP32[(21308)>>2] = $$748$i; - $753 = $$748$i; - } else { - $753 = $688; - } - $690 = (($$748$i) + ($$723947$i)|0); - $$124471$i = (21740); - while(1) { - $691 = HEAP32[$$124471$i>>2]|0; - $692 = ($691|0)==($690|0); - if ($692) { - label = 207; - break; - } - $693 = ((($$124471$i)) + 8|0); - $694 = HEAP32[$693>>2]|0; - $695 = ($694|0)==(0|0); - if ($695) { - break; - } else { - $$124471$i = $694; - } - } - if ((label|0) == 207) { - $696 = ((($$124471$i)) + 12|0); - $697 = HEAP32[$696>>2]|0; - $698 = $697 & 8; - $699 = ($698|0)==(0); - if ($699) { - HEAP32[$$124471$i>>2] = $$748$i; - $700 = ((($$124471$i)) + 4|0); - $701 = HEAP32[$700>>2]|0; - $702 = (($701) + ($$723947$i))|0; - HEAP32[$700>>2] = $702; - $703 = ((($$748$i)) + 8|0); - $704 = $703; - $705 = $704 & 7; - $706 = ($705|0)==(0); - $707 = (0 - ($704))|0; - $708 = $707 & 7; - $709 = $706 ? 0 : $708; - $710 = (($$748$i) + ($709)|0); - $711 = ((($690)) + 8|0); - $712 = $711; - $713 = $712 & 7; - $714 = ($713|0)==(0); - $715 = (0 - ($712))|0; - $716 = $715 & 7; - $717 = $714 ? 0 : $716; - $718 = (($690) + ($717)|0); - $719 = $718; - $720 = $710; - $721 = (($719) - ($720))|0; - $722 = (($710) + ($$0197)|0); - $723 = (($721) - ($$0197))|0; - $724 = $$0197 | 3; - $725 = ((($710)) + 4|0); - HEAP32[$725>>2] = $724; - $726 = ($635|0)==($718|0); - L317: do { - if ($726) { - $727 = HEAP32[(21304)>>2]|0; - $728 = (($727) + ($723))|0; - HEAP32[(21304)>>2] = $728; - HEAP32[(21316)>>2] = $722; - $729 = $728 | 1; - $730 = ((($722)) + 4|0); - HEAP32[$730>>2] = $729; - } else { - $731 = HEAP32[(21312)>>2]|0; - $732 = ($731|0)==($718|0); - if ($732) { - $733 = HEAP32[(21300)>>2]|0; - $734 = (($733) + ($723))|0; - HEAP32[(21300)>>2] = $734; - HEAP32[(21312)>>2] = $722; - $735 = $734 | 1; - $736 = ((($722)) + 4|0); - HEAP32[$736>>2] = $735; - $737 = (($722) + ($734)|0); - HEAP32[$737>>2] = $734; - break; - } - $738 = ((($718)) + 4|0); - $739 = HEAP32[$738>>2]|0; - $740 = $739 & 3; - $741 = ($740|0)==(1); - if ($741) { - $742 = $739 & -8; - $743 = $739 >>> 3; - $744 = ($739>>>0)<(256); - L325: do { - if ($744) { - $745 = ((($718)) + 8|0); - $746 = HEAP32[$745>>2]|0; - $747 = ((($718)) + 12|0); - $748 = HEAP32[$747>>2]|0; - $749 = $743 << 1; - $750 = (21332 + ($749<<2)|0); - $751 = ($746|0)==($750|0); - do { - if (!($751)) { - $752 = ($753>>>0)>($746>>>0); - if ($752) { - _abort(); - // unreachable; - } - $754 = ((($746)) + 12|0); - $755 = HEAP32[$754>>2]|0; - $756 = ($755|0)==($718|0); - if ($756) { - break; - } - _abort(); - // unreachable; - } - } while(0); - $757 = ($748|0)==($746|0); - if ($757) { - $758 = 1 << $743; - $759 = $758 ^ -1; - $760 = HEAP32[5323]|0; - $761 = $760 & $759; - HEAP32[5323] = $761; - break; - } - $762 = ($748|0)==($750|0); - do { - if ($762) { - $$pre16$i$i = ((($748)) + 8|0); - $$pre$phi17$i$iZ2D = $$pre16$i$i; - } else { - $763 = ($753>>>0)>($748>>>0); - if ($763) { - _abort(); - // unreachable; - } - $764 = ((($748)) + 8|0); - $765 = HEAP32[$764>>2]|0; - $766 = ($765|0)==($718|0); - if ($766) { - $$pre$phi17$i$iZ2D = $764; - break; - } - _abort(); - // unreachable; - } - } while(0); - $767 = ((($746)) + 12|0); - HEAP32[$767>>2] = $748; - HEAP32[$$pre$phi17$i$iZ2D>>2] = $746; - } else { - $768 = ((($718)) + 24|0); - $769 = HEAP32[$768>>2]|0; - $770 = ((($718)) + 12|0); - $771 = HEAP32[$770>>2]|0; - $772 = ($771|0)==($718|0); - do { - if ($772) { - $782 = ((($718)) + 16|0); - $783 = ((($782)) + 4|0); - $784 = HEAP32[$783>>2]|0; - $785 = ($784|0)==(0|0); - if ($785) { - $786 = HEAP32[$782>>2]|0; - $787 = ($786|0)==(0|0); - if ($787) { - $$3$i$i = 0; - break; - } else { - $$1290$i$i$ph = $786;$$1292$i$i$ph = $782; - } - } else { - $$1290$i$i$ph = $784;$$1292$i$i$ph = $783; - } - $$1290$i$i = $$1290$i$i$ph;$$1292$i$i = $$1292$i$i$ph; - while(1) { - $788 = ((($$1290$i$i)) + 20|0); - $789 = HEAP32[$788>>2]|0; - $790 = ($789|0)==(0|0); - if ($790) { - $791 = ((($$1290$i$i)) + 16|0); - $792 = HEAP32[$791>>2]|0; - $793 = ($792|0)==(0|0); - if ($793) { - break; - } else { - $$1290$i$i$be = $792;$$1292$i$i$be = $791; - } - } else { - $$1290$i$i$be = $789;$$1292$i$i$be = $788; - } - $$1290$i$i = $$1290$i$i$be;$$1292$i$i = $$1292$i$i$be; - } - $794 = ($753>>>0)>($$1292$i$i>>>0); - if ($794) { - _abort(); - // unreachable; - } else { - HEAP32[$$1292$i$i>>2] = 0; - $$3$i$i = $$1290$i$i; - break; - } - } else { - $773 = ((($718)) + 8|0); - $774 = HEAP32[$773>>2]|0; - $775 = ($753>>>0)>($774>>>0); - if ($775) { - _abort(); - // unreachable; - } - $776 = ((($774)) + 12|0); - $777 = HEAP32[$776>>2]|0; - $778 = ($777|0)==($718|0); - if (!($778)) { - _abort(); - // unreachable; - } - $779 = ((($771)) + 8|0); - $780 = HEAP32[$779>>2]|0; - $781 = ($780|0)==($718|0); - if ($781) { - HEAP32[$776>>2] = $771; - HEAP32[$779>>2] = $774; - $$3$i$i = $771; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $795 = ($769|0)==(0|0); - if ($795) { - break; - } - $796 = ((($718)) + 28|0); - $797 = HEAP32[$796>>2]|0; - $798 = (21596 + ($797<<2)|0); - $799 = HEAP32[$798>>2]|0; - $800 = ($799|0)==($718|0); - do { - if ($800) { - HEAP32[$798>>2] = $$3$i$i; - $cond$i$i = ($$3$i$i|0)==(0|0); - if (!($cond$i$i)) { - break; - } - $801 = 1 << $797; - $802 = $801 ^ -1; - $803 = HEAP32[(21296)>>2]|0; - $804 = $803 & $802; - HEAP32[(21296)>>2] = $804; - break L325; - } else { - $805 = HEAP32[(21308)>>2]|0; - $806 = ($805>>>0)>($769>>>0); - if ($806) { - _abort(); - // unreachable; - } else { - $807 = ((($769)) + 16|0); - $808 = HEAP32[$807>>2]|0; - $809 = ($808|0)==($718|0); - $810 = ((($769)) + 20|0); - $$sink326 = $809 ? $807 : $810; - HEAP32[$$sink326>>2] = $$3$i$i; - $811 = ($$3$i$i|0)==(0|0); - if ($811) { - break L325; - } else { - break; - } - } - } - } while(0); - $812 = HEAP32[(21308)>>2]|0; - $813 = ($812>>>0)>($$3$i$i>>>0); - if ($813) { - _abort(); - // unreachable; - } - $814 = ((($$3$i$i)) + 24|0); - HEAP32[$814>>2] = $769; - $815 = ((($718)) + 16|0); - $816 = HEAP32[$815>>2]|0; - $817 = ($816|0)==(0|0); - do { - if (!($817)) { - $818 = ($812>>>0)>($816>>>0); - if ($818) { - _abort(); - // unreachable; - } else { - $819 = ((($$3$i$i)) + 16|0); - HEAP32[$819>>2] = $816; - $820 = ((($816)) + 24|0); - HEAP32[$820>>2] = $$3$i$i; - break; - } - } - } while(0); - $821 = ((($815)) + 4|0); - $822 = HEAP32[$821>>2]|0; - $823 = ($822|0)==(0|0); - if ($823) { - break; - } - $824 = HEAP32[(21308)>>2]|0; - $825 = ($824>>>0)>($822>>>0); - if ($825) { - _abort(); - // unreachable; - } else { - $826 = ((($$3$i$i)) + 20|0); - HEAP32[$826>>2] = $822; - $827 = ((($822)) + 24|0); - HEAP32[$827>>2] = $$3$i$i; - break; - } - } - } while(0); - $828 = (($718) + ($742)|0); - $829 = (($742) + ($723))|0; - $$0$i16$i = $828;$$0286$i$i = $829; - } else { - $$0$i16$i = $718;$$0286$i$i = $723; - } - $830 = ((($$0$i16$i)) + 4|0); - $831 = HEAP32[$830>>2]|0; - $832 = $831 & -2; - HEAP32[$830>>2] = $832; - $833 = $$0286$i$i | 1; - $834 = ((($722)) + 4|0); - HEAP32[$834>>2] = $833; - $835 = (($722) + ($$0286$i$i)|0); - HEAP32[$835>>2] = $$0286$i$i; - $836 = $$0286$i$i >>> 3; - $837 = ($$0286$i$i>>>0)<(256); - if ($837) { - $838 = $836 << 1; - $839 = (21332 + ($838<<2)|0); - $840 = HEAP32[5323]|0; - $841 = 1 << $836; - $842 = $840 & $841; - $843 = ($842|0)==(0); - do { - if ($843) { - $844 = $840 | $841; - HEAP32[5323] = $844; - $$pre$i17$i = ((($839)) + 8|0); - $$0294$i$i = $839;$$pre$phi$i18$iZ2D = $$pre$i17$i; - } else { - $845 = ((($839)) + 8|0); - $846 = HEAP32[$845>>2]|0; - $847 = HEAP32[(21308)>>2]|0; - $848 = ($847>>>0)>($846>>>0); - if (!($848)) { - $$0294$i$i = $846;$$pre$phi$i18$iZ2D = $845; - break; - } - _abort(); - // unreachable; - } - } while(0); - HEAP32[$$pre$phi$i18$iZ2D>>2] = $722; - $849 = ((($$0294$i$i)) + 12|0); - HEAP32[$849>>2] = $722; - $850 = ((($722)) + 8|0); - HEAP32[$850>>2] = $$0294$i$i; - $851 = ((($722)) + 12|0); - HEAP32[$851>>2] = $839; - break; - } - $852 = $$0286$i$i >>> 8; - $853 = ($852|0)==(0); - do { - if ($853) { - $$0295$i$i = 0; - } else { - $854 = ($$0286$i$i>>>0)>(16777215); - if ($854) { - $$0295$i$i = 31; - break; - } - $855 = (($852) + 1048320)|0; - $856 = $855 >>> 16; - $857 = $856 & 8; - $858 = $852 << $857; - $859 = (($858) + 520192)|0; - $860 = $859 >>> 16; - $861 = $860 & 4; - $862 = $861 | $857; - $863 = $858 << $861; - $864 = (($863) + 245760)|0; - $865 = $864 >>> 16; - $866 = $865 & 2; - $867 = $862 | $866; - $868 = (14 - ($867))|0; - $869 = $863 << $866; - $870 = $869 >>> 15; - $871 = (($868) + ($870))|0; - $872 = $871 << 1; - $873 = (($871) + 7)|0; - $874 = $$0286$i$i >>> $873; - $875 = $874 & 1; - $876 = $875 | $872; - $$0295$i$i = $876; - } - } while(0); - $877 = (21596 + ($$0295$i$i<<2)|0); - $878 = ((($722)) + 28|0); - HEAP32[$878>>2] = $$0295$i$i; - $879 = ((($722)) + 16|0); - $880 = ((($879)) + 4|0); - HEAP32[$880>>2] = 0; - HEAP32[$879>>2] = 0; - $881 = HEAP32[(21296)>>2]|0; - $882 = 1 << $$0295$i$i; - $883 = $881 & $882; - $884 = ($883|0)==(0); - if ($884) { - $885 = $881 | $882; - HEAP32[(21296)>>2] = $885; - HEAP32[$877>>2] = $722; - $886 = ((($722)) + 24|0); - HEAP32[$886>>2] = $877; - $887 = ((($722)) + 12|0); - HEAP32[$887>>2] = $722; - $888 = ((($722)) + 8|0); - HEAP32[$888>>2] = $722; - break; - } - $889 = HEAP32[$877>>2]|0; - $890 = ((($889)) + 4|0); - $891 = HEAP32[$890>>2]|0; - $892 = $891 & -8; - $893 = ($892|0)==($$0286$i$i|0); - L410: do { - if ($893) { - $$0288$lcssa$i$i = $889; - } else { - $894 = ($$0295$i$i|0)==(31); - $895 = $$0295$i$i >>> 1; - $896 = (25 - ($895))|0; - $897 = $894 ? 0 : $896; - $898 = $$0286$i$i << $897; - $$028711$i$i = $898;$$028810$i$i = $889; - while(1) { - $905 = $$028711$i$i >>> 31; - $906 = (((($$028810$i$i)) + 16|0) + ($905<<2)|0); - $901 = HEAP32[$906>>2]|0; - $907 = ($901|0)==(0|0); - if ($907) { - break; - } - $899 = $$028711$i$i << 1; - $900 = ((($901)) + 4|0); - $902 = HEAP32[$900>>2]|0; - $903 = $902 & -8; - $904 = ($903|0)==($$0286$i$i|0); - if ($904) { - $$0288$lcssa$i$i = $901; - break L410; - } else { - $$028711$i$i = $899;$$028810$i$i = $901; - } - } - $908 = HEAP32[(21308)>>2]|0; - $909 = ($908>>>0)>($906>>>0); - if ($909) { - _abort(); - // unreachable; - } else { - HEAP32[$906>>2] = $722; - $910 = ((($722)) + 24|0); - HEAP32[$910>>2] = $$028810$i$i; - $911 = ((($722)) + 12|0); - HEAP32[$911>>2] = $722; - $912 = ((($722)) + 8|0); - HEAP32[$912>>2] = $722; - break L317; - } - } - } while(0); - $913 = ((($$0288$lcssa$i$i)) + 8|0); - $914 = HEAP32[$913>>2]|0; - $915 = HEAP32[(21308)>>2]|0; - $916 = ($915>>>0)<=($$0288$lcssa$i$i>>>0); - $917 = ($915>>>0)<=($914>>>0); - $918 = $917 & $916; - if ($918) { - $919 = ((($914)) + 12|0); - HEAP32[$919>>2] = $722; - HEAP32[$913>>2] = $722; - $920 = ((($722)) + 8|0); - HEAP32[$920>>2] = $914; - $921 = ((($722)) + 12|0); - HEAP32[$921>>2] = $$0288$lcssa$i$i; - $922 = ((($722)) + 24|0); - HEAP32[$922>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $1059 = ((($710)) + 8|0); - $$0 = $1059; - STACKTOP = sp;return ($$0|0); - } - } - $$0$i$i$i = (21740); - while(1) { - $923 = HEAP32[$$0$i$i$i>>2]|0; - $924 = ($923>>>0)>($635>>>0); - if (!($924)) { - $925 = ((($$0$i$i$i)) + 4|0); - $926 = HEAP32[$925>>2]|0; - $927 = (($923) + ($926)|0); - $928 = ($927>>>0)>($635>>>0); - if ($928) { - break; - } - } - $929 = ((($$0$i$i$i)) + 8|0); - $930 = HEAP32[$929>>2]|0; - $$0$i$i$i = $930; - } - $931 = ((($927)) + -47|0); - $932 = ((($931)) + 8|0); - $933 = $932; - $934 = $933 & 7; - $935 = ($934|0)==(0); - $936 = (0 - ($933))|0; - $937 = $936 & 7; - $938 = $935 ? 0 : $937; - $939 = (($931) + ($938)|0); - $940 = ((($635)) + 16|0); - $941 = ($939>>>0)<($940>>>0); - $942 = $941 ? $635 : $939; - $943 = ((($942)) + 8|0); - $944 = ((($942)) + 24|0); - $945 = (($$723947$i) + -40)|0; - $946 = ((($$748$i)) + 8|0); - $947 = $946; - $948 = $947 & 7; - $949 = ($948|0)==(0); - $950 = (0 - ($947))|0; - $951 = $950 & 7; - $952 = $949 ? 0 : $951; - $953 = (($$748$i) + ($952)|0); - $954 = (($945) - ($952))|0; - HEAP32[(21316)>>2] = $953; - HEAP32[(21304)>>2] = $954; - $955 = $954 | 1; - $956 = ((($953)) + 4|0); - HEAP32[$956>>2] = $955; - $957 = (($$748$i) + ($945)|0); - $958 = ((($957)) + 4|0); - HEAP32[$958>>2] = 40; - $959 = HEAP32[(21780)>>2]|0; - HEAP32[(21320)>>2] = $959; - $960 = ((($942)) + 4|0); - HEAP32[$960>>2] = 27; - ;HEAP32[$943>>2]=HEAP32[(21740)>>2]|0;HEAP32[$943+4>>2]=HEAP32[(21740)+4>>2]|0;HEAP32[$943+8>>2]=HEAP32[(21740)+8>>2]|0;HEAP32[$943+12>>2]=HEAP32[(21740)+12>>2]|0; - HEAP32[(21740)>>2] = $$748$i; - HEAP32[(21744)>>2] = $$723947$i; - HEAP32[(21752)>>2] = 0; - HEAP32[(21748)>>2] = $943; - $962 = $944; - while(1) { - $961 = ((($962)) + 4|0); - HEAP32[$961>>2] = 7; - $963 = ((($962)) + 8|0); - $964 = ($963>>>0)<($927>>>0); - if ($964) { - $962 = $961; - } else { - break; - } - } - $965 = ($942|0)==($635|0); - if (!($965)) { - $966 = $942; - $967 = $635; - $968 = (($966) - ($967))|0; - $969 = HEAP32[$960>>2]|0; - $970 = $969 & -2; - HEAP32[$960>>2] = $970; - $971 = $968 | 1; - $972 = ((($635)) + 4|0); - HEAP32[$972>>2] = $971; - HEAP32[$942>>2] = $968; - $973 = $968 >>> 3; - $974 = ($968>>>0)<(256); - if ($974) { - $975 = $973 << 1; - $976 = (21332 + ($975<<2)|0); - $977 = HEAP32[5323]|0; - $978 = 1 << $973; - $979 = $977 & $978; - $980 = ($979|0)==(0); - if ($980) { - $981 = $977 | $978; - HEAP32[5323] = $981; - $$pre$i$i = ((($976)) + 8|0); - $$0211$i$i = $976;$$pre$phi$i$iZ2D = $$pre$i$i; - } else { - $982 = ((($976)) + 8|0); - $983 = HEAP32[$982>>2]|0; - $984 = HEAP32[(21308)>>2]|0; - $985 = ($984>>>0)>($983>>>0); - if ($985) { - _abort(); - // unreachable; - } else { - $$0211$i$i = $983;$$pre$phi$i$iZ2D = $982; - } - } - HEAP32[$$pre$phi$i$iZ2D>>2] = $635; - $986 = ((($$0211$i$i)) + 12|0); - HEAP32[$986>>2] = $635; - $987 = ((($635)) + 8|0); - HEAP32[$987>>2] = $$0211$i$i; - $988 = ((($635)) + 12|0); - HEAP32[$988>>2] = $976; - break; - } - $989 = $968 >>> 8; - $990 = ($989|0)==(0); - if ($990) { - $$0212$i$i = 0; - } else { - $991 = ($968>>>0)>(16777215); - if ($991) { - $$0212$i$i = 31; - } else { - $992 = (($989) + 1048320)|0; - $993 = $992 >>> 16; - $994 = $993 & 8; - $995 = $989 << $994; - $996 = (($995) + 520192)|0; - $997 = $996 >>> 16; - $998 = $997 & 4; - $999 = $998 | $994; - $1000 = $995 << $998; - $1001 = (($1000) + 245760)|0; - $1002 = $1001 >>> 16; - $1003 = $1002 & 2; - $1004 = $999 | $1003; - $1005 = (14 - ($1004))|0; - $1006 = $1000 << $1003; - $1007 = $1006 >>> 15; - $1008 = (($1005) + ($1007))|0; - $1009 = $1008 << 1; - $1010 = (($1008) + 7)|0; - $1011 = $968 >>> $1010; - $1012 = $1011 & 1; - $1013 = $1012 | $1009; - $$0212$i$i = $1013; - } - } - $1014 = (21596 + ($$0212$i$i<<2)|0); - $1015 = ((($635)) + 28|0); - HEAP32[$1015>>2] = $$0212$i$i; - $1016 = ((($635)) + 20|0); - HEAP32[$1016>>2] = 0; - HEAP32[$940>>2] = 0; - $1017 = HEAP32[(21296)>>2]|0; - $1018 = 1 << $$0212$i$i; - $1019 = $1017 & $1018; - $1020 = ($1019|0)==(0); - if ($1020) { - $1021 = $1017 | $1018; - HEAP32[(21296)>>2] = $1021; - HEAP32[$1014>>2] = $635; - $1022 = ((($635)) + 24|0); - HEAP32[$1022>>2] = $1014; - $1023 = ((($635)) + 12|0); - HEAP32[$1023>>2] = $635; - $1024 = ((($635)) + 8|0); - HEAP32[$1024>>2] = $635; - break; - } - $1025 = HEAP32[$1014>>2]|0; - $1026 = ((($1025)) + 4|0); - $1027 = HEAP32[$1026>>2]|0; - $1028 = $1027 & -8; - $1029 = ($1028|0)==($968|0); - L451: do { - if ($1029) { - $$0207$lcssa$i$i = $1025; - } else { - $1030 = ($$0212$i$i|0)==(31); - $1031 = $$0212$i$i >>> 1; - $1032 = (25 - ($1031))|0; - $1033 = $1030 ? 0 : $1032; - $1034 = $968 << $1033; - $$02065$i$i = $1034;$$02074$i$i = $1025; - while(1) { - $1041 = $$02065$i$i >>> 31; - $1042 = (((($$02074$i$i)) + 16|0) + ($1041<<2)|0); - $1037 = HEAP32[$1042>>2]|0; - $1043 = ($1037|0)==(0|0); - if ($1043) { - break; - } - $1035 = $$02065$i$i << 1; - $1036 = ((($1037)) + 4|0); - $1038 = HEAP32[$1036>>2]|0; - $1039 = $1038 & -8; - $1040 = ($1039|0)==($968|0); - if ($1040) { - $$0207$lcssa$i$i = $1037; - break L451; - } else { - $$02065$i$i = $1035;$$02074$i$i = $1037; - } - } - $1044 = HEAP32[(21308)>>2]|0; - $1045 = ($1044>>>0)>($1042>>>0); - if ($1045) { - _abort(); - // unreachable; - } else { - HEAP32[$1042>>2] = $635; - $1046 = ((($635)) + 24|0); - HEAP32[$1046>>2] = $$02074$i$i; - $1047 = ((($635)) + 12|0); - HEAP32[$1047>>2] = $635; - $1048 = ((($635)) + 8|0); - HEAP32[$1048>>2] = $635; - break L294; - } - } - } while(0); - $1049 = ((($$0207$lcssa$i$i)) + 8|0); - $1050 = HEAP32[$1049>>2]|0; - $1051 = HEAP32[(21308)>>2]|0; - $1052 = ($1051>>>0)<=($$0207$lcssa$i$i>>>0); - $1053 = ($1051>>>0)<=($1050>>>0); - $1054 = $1053 & $1052; - if ($1054) { - $1055 = ((($1050)) + 12|0); - HEAP32[$1055>>2] = $635; - HEAP32[$1049>>2] = $635; - $1056 = ((($635)) + 8|0); - HEAP32[$1056>>2] = $1050; - $1057 = ((($635)) + 12|0); - HEAP32[$1057>>2] = $$0207$lcssa$i$i; - $1058 = ((($635)) + 24|0); - HEAP32[$1058>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } - } while(0); - $1060 = HEAP32[(21304)>>2]|0; - $1061 = ($1060>>>0)>($$0197>>>0); - if ($1061) { - $1062 = (($1060) - ($$0197))|0; - HEAP32[(21304)>>2] = $1062; - $1063 = HEAP32[(21316)>>2]|0; - $1064 = (($1063) + ($$0197)|0); - HEAP32[(21316)>>2] = $1064; - $1065 = $1062 | 1; - $1066 = ((($1064)) + 4|0); - HEAP32[$1066>>2] = $1065; - $1067 = $$0197 | 3; - $1068 = ((($1063)) + 4|0); - HEAP32[$1068>>2] = $1067; - $1069 = ((($1063)) + 8|0); - $$0 = $1069; - STACKTOP = sp;return ($$0|0); - } - } - $1070 = (___errno_location()|0); - HEAP32[$1070>>2] = 12; - $$0 = 0; - STACKTOP = sp;return ($$0|0); -} -function _free($0) { - $0 = $0|0; - var $$0211$i = 0, $$0211$in$i = 0, $$0381438 = 0, $$0382$lcssa = 0, $$0382437 = 0, $$0394 = 0, $$0401 = 0, $$1 = 0, $$1380 = 0, $$1385 = 0, $$1385$be = 0, $$1385$ph = 0, $$1388 = 0, $$1388$be = 0, $$1388$ph = 0, $$1396 = 0, $$1396$be = 0, $$1396$ph = 0, $$1400 = 0, $$1400$be = 0; - var $$1400$ph = 0, $$2 = 0, $$3 = 0, $$3398 = 0, $$pre = 0, $$pre$phi444Z2D = 0, $$pre$phi446Z2D = 0, $$pre$phiZ2D = 0, $$pre443 = 0, $$pre445 = 0, $$sink = 0, $$sink456 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0; - var $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0; - var $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0; - var $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0; - var $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0; - var $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0; - var $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0; - var $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0; - var $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0; - var $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0; - var $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0; - var $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0; - var $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0; - var $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; - var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; - var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $cond419 = 0, $cond420 = 0; - var label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - return; - } - $2 = ((($0)) + -8|0); - $3 = HEAP32[(21308)>>2]|0; - $4 = ($2>>>0)<($3>>>0); - if ($4) { - _abort(); - // unreachable; - } - $5 = ((($0)) + -4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 & 3; - $8 = ($7|0)==(1); - if ($8) { - _abort(); - // unreachable; - } - $9 = $6 & -8; - $10 = (($2) + ($9)|0); - $11 = $6 & 1; - $12 = ($11|0)==(0); - L10: do { - if ($12) { - $13 = HEAP32[$2>>2]|0; - $14 = ($7|0)==(0); - if ($14) { - return; - } - $15 = (0 - ($13))|0; - $16 = (($2) + ($15)|0); - $17 = (($13) + ($9))|0; - $18 = ($16>>>0)<($3>>>0); - if ($18) { - _abort(); - // unreachable; - } - $19 = HEAP32[(21312)>>2]|0; - $20 = ($19|0)==($16|0); - if ($20) { - $105 = ((($10)) + 4|0); - $106 = HEAP32[$105>>2]|0; - $107 = $106 & 3; - $108 = ($107|0)==(3); - if (!($108)) { - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $109 = (($16) + ($17)|0); - $110 = ((($16)) + 4|0); - $111 = $17 | 1; - $112 = $106 & -2; - HEAP32[(21300)>>2] = $17; - HEAP32[$105>>2] = $112; - HEAP32[$110>>2] = $111; - HEAP32[$109>>2] = $17; - return; - } - $21 = $13 >>> 3; - $22 = ($13>>>0)<(256); - if ($22) { - $23 = ((($16)) + 8|0); - $24 = HEAP32[$23>>2]|0; - $25 = ((($16)) + 12|0); - $26 = HEAP32[$25>>2]|0; - $27 = $21 << 1; - $28 = (21332 + ($27<<2)|0); - $29 = ($24|0)==($28|0); - if (!($29)) { - $30 = ($3>>>0)>($24>>>0); - if ($30) { - _abort(); - // unreachable; - } - $31 = ((($24)) + 12|0); - $32 = HEAP32[$31>>2]|0; - $33 = ($32|0)==($16|0); - if (!($33)) { - _abort(); - // unreachable; - } - } - $34 = ($26|0)==($24|0); - if ($34) { - $35 = 1 << $21; - $36 = $35 ^ -1; - $37 = HEAP32[5323]|0; - $38 = $37 & $36; - HEAP32[5323] = $38; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $39 = ($26|0)==($28|0); - if ($39) { - $$pre445 = ((($26)) + 8|0); - $$pre$phi446Z2D = $$pre445; - } else { - $40 = ($3>>>0)>($26>>>0); - if ($40) { - _abort(); - // unreachable; - } - $41 = ((($26)) + 8|0); - $42 = HEAP32[$41>>2]|0; - $43 = ($42|0)==($16|0); - if ($43) { - $$pre$phi446Z2D = $41; - } else { - _abort(); - // unreachable; - } - } - $44 = ((($24)) + 12|0); - HEAP32[$44>>2] = $26; - HEAP32[$$pre$phi446Z2D>>2] = $24; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - $45 = ((($16)) + 24|0); - $46 = HEAP32[$45>>2]|0; - $47 = ((($16)) + 12|0); - $48 = HEAP32[$47>>2]|0; - $49 = ($48|0)==($16|0); - do { - if ($49) { - $59 = ((($16)) + 16|0); - $60 = ((($59)) + 4|0); - $61 = HEAP32[$60>>2]|0; - $62 = ($61|0)==(0|0); - if ($62) { - $63 = HEAP32[$59>>2]|0; - $64 = ($63|0)==(0|0); - if ($64) { - $$3 = 0; - break; - } else { - $$1385$ph = $63;$$1388$ph = $59; - } - } else { - $$1385$ph = $61;$$1388$ph = $60; - } - $$1385 = $$1385$ph;$$1388 = $$1388$ph; - while(1) { - $65 = ((($$1385)) + 20|0); - $66 = HEAP32[$65>>2]|0; - $67 = ($66|0)==(0|0); - if ($67) { - $68 = ((($$1385)) + 16|0); - $69 = HEAP32[$68>>2]|0; - $70 = ($69|0)==(0|0); - if ($70) { - break; - } else { - $$1385$be = $69;$$1388$be = $68; - } - } else { - $$1385$be = $66;$$1388$be = $65; - } - $$1385 = $$1385$be;$$1388 = $$1388$be; - } - $71 = ($3>>>0)>($$1388>>>0); - if ($71) { - _abort(); - // unreachable; - } else { - HEAP32[$$1388>>2] = 0; - $$3 = $$1385; - break; - } - } else { - $50 = ((($16)) + 8|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($3>>>0)>($51>>>0); - if ($52) { - _abort(); - // unreachable; - } - $53 = ((($51)) + 12|0); - $54 = HEAP32[$53>>2]|0; - $55 = ($54|0)==($16|0); - if (!($55)) { - _abort(); - // unreachable; - } - $56 = ((($48)) + 8|0); - $57 = HEAP32[$56>>2]|0; - $58 = ($57|0)==($16|0); - if ($58) { - HEAP32[$53>>2] = $48; - HEAP32[$56>>2] = $51; - $$3 = $48; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $72 = ($46|0)==(0|0); - if ($72) { - $$1 = $16;$$1380 = $17;$114 = $16; - } else { - $73 = ((($16)) + 28|0); - $74 = HEAP32[$73>>2]|0; - $75 = (21596 + ($74<<2)|0); - $76 = HEAP32[$75>>2]|0; - $77 = ($76|0)==($16|0); - do { - if ($77) { - HEAP32[$75>>2] = $$3; - $cond419 = ($$3|0)==(0|0); - if ($cond419) { - $78 = 1 << $74; - $79 = $78 ^ -1; - $80 = HEAP32[(21296)>>2]|0; - $81 = $80 & $79; - HEAP32[(21296)>>2] = $81; - $$1 = $16;$$1380 = $17;$114 = $16; - break L10; - } - } else { - $82 = HEAP32[(21308)>>2]|0; - $83 = ($82>>>0)>($46>>>0); - if ($83) { - _abort(); - // unreachable; - } else { - $84 = ((($46)) + 16|0); - $85 = HEAP32[$84>>2]|0; - $86 = ($85|0)==($16|0); - $87 = ((($46)) + 20|0); - $$sink = $86 ? $84 : $87; - HEAP32[$$sink>>2] = $$3; - $88 = ($$3|0)==(0|0); - if ($88) { - $$1 = $16;$$1380 = $17;$114 = $16; - break L10; - } else { - break; - } - } - } - } while(0); - $89 = HEAP32[(21308)>>2]|0; - $90 = ($89>>>0)>($$3>>>0); - if ($90) { - _abort(); - // unreachable; - } - $91 = ((($$3)) + 24|0); - HEAP32[$91>>2] = $46; - $92 = ((($16)) + 16|0); - $93 = HEAP32[$92>>2]|0; - $94 = ($93|0)==(0|0); - do { - if (!($94)) { - $95 = ($89>>>0)>($93>>>0); - if ($95) { - _abort(); - // unreachable; - } else { - $96 = ((($$3)) + 16|0); - HEAP32[$96>>2] = $93; - $97 = ((($93)) + 24|0); - HEAP32[$97>>2] = $$3; - break; - } - } - } while(0); - $98 = ((($92)) + 4|0); - $99 = HEAP32[$98>>2]|0; - $100 = ($99|0)==(0|0); - if ($100) { - $$1 = $16;$$1380 = $17;$114 = $16; - } else { - $101 = HEAP32[(21308)>>2]|0; - $102 = ($101>>>0)>($99>>>0); - if ($102) { - _abort(); - // unreachable; - } else { - $103 = ((($$3)) + 20|0); - HEAP32[$103>>2] = $99; - $104 = ((($99)) + 24|0); - HEAP32[$104>>2] = $$3; - $$1 = $16;$$1380 = $17;$114 = $16; - break; - } - } - } - } else { - $$1 = $2;$$1380 = $9;$114 = $2; - } - } while(0); - $113 = ($114>>>0)<($10>>>0); - if (!($113)) { - _abort(); - // unreachable; - } - $115 = ((($10)) + 4|0); - $116 = HEAP32[$115>>2]|0; - $117 = $116 & 1; - $118 = ($117|0)==(0); - if ($118) { - _abort(); - // unreachable; - } - $119 = $116 & 2; - $120 = ($119|0)==(0); - if ($120) { - $121 = HEAP32[(21316)>>2]|0; - $122 = ($121|0)==($10|0); - if ($122) { - $123 = HEAP32[(21304)>>2]|0; - $124 = (($123) + ($$1380))|0; - HEAP32[(21304)>>2] = $124; - HEAP32[(21316)>>2] = $$1; - $125 = $124 | 1; - $126 = ((($$1)) + 4|0); - HEAP32[$126>>2] = $125; - $127 = HEAP32[(21312)>>2]|0; - $128 = ($$1|0)==($127|0); - if (!($128)) { - return; - } - HEAP32[(21312)>>2] = 0; - HEAP32[(21300)>>2] = 0; - return; - } - $129 = HEAP32[(21312)>>2]|0; - $130 = ($129|0)==($10|0); - if ($130) { - $131 = HEAP32[(21300)>>2]|0; - $132 = (($131) + ($$1380))|0; - HEAP32[(21300)>>2] = $132; - HEAP32[(21312)>>2] = $114; - $133 = $132 | 1; - $134 = ((($$1)) + 4|0); - HEAP32[$134>>2] = $133; - $135 = (($114) + ($132)|0); - HEAP32[$135>>2] = $132; - return; - } - $136 = $116 & -8; - $137 = (($136) + ($$1380))|0; - $138 = $116 >>> 3; - $139 = ($116>>>0)<(256); - L111: do { - if ($139) { - $140 = ((($10)) + 8|0); - $141 = HEAP32[$140>>2]|0; - $142 = ((($10)) + 12|0); - $143 = HEAP32[$142>>2]|0; - $144 = $138 << 1; - $145 = (21332 + ($144<<2)|0); - $146 = ($141|0)==($145|0); - if (!($146)) { - $147 = HEAP32[(21308)>>2]|0; - $148 = ($147>>>0)>($141>>>0); - if ($148) { - _abort(); - // unreachable; - } - $149 = ((($141)) + 12|0); - $150 = HEAP32[$149>>2]|0; - $151 = ($150|0)==($10|0); - if (!($151)) { - _abort(); - // unreachable; - } - } - $152 = ($143|0)==($141|0); - if ($152) { - $153 = 1 << $138; - $154 = $153 ^ -1; - $155 = HEAP32[5323]|0; - $156 = $155 & $154; - HEAP32[5323] = $156; - break; - } - $157 = ($143|0)==($145|0); - if ($157) { - $$pre443 = ((($143)) + 8|0); - $$pre$phi444Z2D = $$pre443; - } else { - $158 = HEAP32[(21308)>>2]|0; - $159 = ($158>>>0)>($143>>>0); - if ($159) { - _abort(); - // unreachable; - } - $160 = ((($143)) + 8|0); - $161 = HEAP32[$160>>2]|0; - $162 = ($161|0)==($10|0); - if ($162) { - $$pre$phi444Z2D = $160; - } else { - _abort(); - // unreachable; - } - } - $163 = ((($141)) + 12|0); - HEAP32[$163>>2] = $143; - HEAP32[$$pre$phi444Z2D>>2] = $141; - } else { - $164 = ((($10)) + 24|0); - $165 = HEAP32[$164>>2]|0; - $166 = ((($10)) + 12|0); - $167 = HEAP32[$166>>2]|0; - $168 = ($167|0)==($10|0); - do { - if ($168) { - $179 = ((($10)) + 16|0); - $180 = ((($179)) + 4|0); - $181 = HEAP32[$180>>2]|0; - $182 = ($181|0)==(0|0); - if ($182) { - $183 = HEAP32[$179>>2]|0; - $184 = ($183|0)==(0|0); - if ($184) { - $$3398 = 0; - break; - } else { - $$1396$ph = $183;$$1400$ph = $179; - } - } else { - $$1396$ph = $181;$$1400$ph = $180; - } - $$1396 = $$1396$ph;$$1400 = $$1400$ph; - while(1) { - $185 = ((($$1396)) + 20|0); - $186 = HEAP32[$185>>2]|0; - $187 = ($186|0)==(0|0); - if ($187) { - $188 = ((($$1396)) + 16|0); - $189 = HEAP32[$188>>2]|0; - $190 = ($189|0)==(0|0); - if ($190) { - break; - } else { - $$1396$be = $189;$$1400$be = $188; - } - } else { - $$1396$be = $186;$$1400$be = $185; - } - $$1396 = $$1396$be;$$1400 = $$1400$be; - } - $191 = HEAP32[(21308)>>2]|0; - $192 = ($191>>>0)>($$1400>>>0); - if ($192) { - _abort(); - // unreachable; - } else { - HEAP32[$$1400>>2] = 0; - $$3398 = $$1396; - break; - } - } else { - $169 = ((($10)) + 8|0); - $170 = HEAP32[$169>>2]|0; - $171 = HEAP32[(21308)>>2]|0; - $172 = ($171>>>0)>($170>>>0); - if ($172) { - _abort(); - // unreachable; - } - $173 = ((($170)) + 12|0); - $174 = HEAP32[$173>>2]|0; - $175 = ($174|0)==($10|0); - if (!($175)) { - _abort(); - // unreachable; - } - $176 = ((($167)) + 8|0); - $177 = HEAP32[$176>>2]|0; - $178 = ($177|0)==($10|0); - if ($178) { - HEAP32[$173>>2] = $167; - HEAP32[$176>>2] = $170; - $$3398 = $167; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $193 = ($165|0)==(0|0); - if (!($193)) { - $194 = ((($10)) + 28|0); - $195 = HEAP32[$194>>2]|0; - $196 = (21596 + ($195<<2)|0); - $197 = HEAP32[$196>>2]|0; - $198 = ($197|0)==($10|0); - do { - if ($198) { - HEAP32[$196>>2] = $$3398; - $cond420 = ($$3398|0)==(0|0); - if ($cond420) { - $199 = 1 << $195; - $200 = $199 ^ -1; - $201 = HEAP32[(21296)>>2]|0; - $202 = $201 & $200; - HEAP32[(21296)>>2] = $202; - break L111; - } - } else { - $203 = HEAP32[(21308)>>2]|0; - $204 = ($203>>>0)>($165>>>0); - if ($204) { - _abort(); - // unreachable; - } else { - $205 = ((($165)) + 16|0); - $206 = HEAP32[$205>>2]|0; - $207 = ($206|0)==($10|0); - $208 = ((($165)) + 20|0); - $$sink456 = $207 ? $205 : $208; - HEAP32[$$sink456>>2] = $$3398; - $209 = ($$3398|0)==(0|0); - if ($209) { - break L111; - } else { - break; - } - } - } - } while(0); - $210 = HEAP32[(21308)>>2]|0; - $211 = ($210>>>0)>($$3398>>>0); - if ($211) { - _abort(); - // unreachable; - } - $212 = ((($$3398)) + 24|0); - HEAP32[$212>>2] = $165; - $213 = ((($10)) + 16|0); - $214 = HEAP32[$213>>2]|0; - $215 = ($214|0)==(0|0); - do { - if (!($215)) { - $216 = ($210>>>0)>($214>>>0); - if ($216) { - _abort(); - // unreachable; - } else { - $217 = ((($$3398)) + 16|0); - HEAP32[$217>>2] = $214; - $218 = ((($214)) + 24|0); - HEAP32[$218>>2] = $$3398; - break; - } - } - } while(0); - $219 = ((($213)) + 4|0); - $220 = HEAP32[$219>>2]|0; - $221 = ($220|0)==(0|0); - if (!($221)) { - $222 = HEAP32[(21308)>>2]|0; - $223 = ($222>>>0)>($220>>>0); - if ($223) { - _abort(); - // unreachable; - } else { - $224 = ((($$3398)) + 20|0); - HEAP32[$224>>2] = $220; - $225 = ((($220)) + 24|0); - HEAP32[$225>>2] = $$3398; - break; - } - } - } - } - } while(0); - $226 = $137 | 1; - $227 = ((($$1)) + 4|0); - HEAP32[$227>>2] = $226; - $228 = (($114) + ($137)|0); - HEAP32[$228>>2] = $137; - $229 = HEAP32[(21312)>>2]|0; - $230 = ($$1|0)==($229|0); - if ($230) { - HEAP32[(21300)>>2] = $137; - return; - } else { - $$2 = $137; - } - } else { - $231 = $116 & -2; - HEAP32[$115>>2] = $231; - $232 = $$1380 | 1; - $233 = ((($$1)) + 4|0); - HEAP32[$233>>2] = $232; - $234 = (($114) + ($$1380)|0); - HEAP32[$234>>2] = $$1380; - $$2 = $$1380; - } - $235 = $$2 >>> 3; - $236 = ($$2>>>0)<(256); - if ($236) { - $237 = $235 << 1; - $238 = (21332 + ($237<<2)|0); - $239 = HEAP32[5323]|0; - $240 = 1 << $235; - $241 = $239 & $240; - $242 = ($241|0)==(0); - if ($242) { - $243 = $239 | $240; - HEAP32[5323] = $243; - $$pre = ((($238)) + 8|0); - $$0401 = $238;$$pre$phiZ2D = $$pre; - } else { - $244 = ((($238)) + 8|0); - $245 = HEAP32[$244>>2]|0; - $246 = HEAP32[(21308)>>2]|0; - $247 = ($246>>>0)>($245>>>0); - if ($247) { - _abort(); - // unreachable; - } else { - $$0401 = $245;$$pre$phiZ2D = $244; - } - } - HEAP32[$$pre$phiZ2D>>2] = $$1; - $248 = ((($$0401)) + 12|0); - HEAP32[$248>>2] = $$1; - $249 = ((($$1)) + 8|0); - HEAP32[$249>>2] = $$0401; - $250 = ((($$1)) + 12|0); - HEAP32[$250>>2] = $238; - return; - } - $251 = $$2 >>> 8; - $252 = ($251|0)==(0); - if ($252) { - $$0394 = 0; - } else { - $253 = ($$2>>>0)>(16777215); - if ($253) { - $$0394 = 31; - } else { - $254 = (($251) + 1048320)|0; - $255 = $254 >>> 16; - $256 = $255 & 8; - $257 = $251 << $256; - $258 = (($257) + 520192)|0; - $259 = $258 >>> 16; - $260 = $259 & 4; - $261 = $260 | $256; - $262 = $257 << $260; - $263 = (($262) + 245760)|0; - $264 = $263 >>> 16; - $265 = $264 & 2; - $266 = $261 | $265; - $267 = (14 - ($266))|0; - $268 = $262 << $265; - $269 = $268 >>> 15; - $270 = (($267) + ($269))|0; - $271 = $270 << 1; - $272 = (($270) + 7)|0; - $273 = $$2 >>> $272; - $274 = $273 & 1; - $275 = $274 | $271; - $$0394 = $275; - } - } - $276 = (21596 + ($$0394<<2)|0); - $277 = ((($$1)) + 28|0); - HEAP32[$277>>2] = $$0394; - $278 = ((($$1)) + 16|0); - $279 = ((($$1)) + 20|0); - HEAP32[$279>>2] = 0; - HEAP32[$278>>2] = 0; - $280 = HEAP32[(21296)>>2]|0; - $281 = 1 << $$0394; - $282 = $280 & $281; - $283 = ($282|0)==(0); - L197: do { - if ($283) { - $284 = $280 | $281; - HEAP32[(21296)>>2] = $284; - HEAP32[$276>>2] = $$1; - $285 = ((($$1)) + 24|0); - HEAP32[$285>>2] = $276; - $286 = ((($$1)) + 12|0); - HEAP32[$286>>2] = $$1; - $287 = ((($$1)) + 8|0); - HEAP32[$287>>2] = $$1; - } else { - $288 = HEAP32[$276>>2]|0; - $289 = ((($288)) + 4|0); - $290 = HEAP32[$289>>2]|0; - $291 = $290 & -8; - $292 = ($291|0)==($$2|0); - L200: do { - if ($292) { - $$0382$lcssa = $288; - } else { - $293 = ($$0394|0)==(31); - $294 = $$0394 >>> 1; - $295 = (25 - ($294))|0; - $296 = $293 ? 0 : $295; - $297 = $$2 << $296; - $$0381438 = $297;$$0382437 = $288; - while(1) { - $304 = $$0381438 >>> 31; - $305 = (((($$0382437)) + 16|0) + ($304<<2)|0); - $300 = HEAP32[$305>>2]|0; - $306 = ($300|0)==(0|0); - if ($306) { - break; - } - $298 = $$0381438 << 1; - $299 = ((($300)) + 4|0); - $301 = HEAP32[$299>>2]|0; - $302 = $301 & -8; - $303 = ($302|0)==($$2|0); - if ($303) { - $$0382$lcssa = $300; - break L200; - } else { - $$0381438 = $298;$$0382437 = $300; - } - } - $307 = HEAP32[(21308)>>2]|0; - $308 = ($307>>>0)>($305>>>0); - if ($308) { - _abort(); - // unreachable; - } else { - HEAP32[$305>>2] = $$1; - $309 = ((($$1)) + 24|0); - HEAP32[$309>>2] = $$0382437; - $310 = ((($$1)) + 12|0); - HEAP32[$310>>2] = $$1; - $311 = ((($$1)) + 8|0); - HEAP32[$311>>2] = $$1; - break L197; - } - } - } while(0); - $312 = ((($$0382$lcssa)) + 8|0); - $313 = HEAP32[$312>>2]|0; - $314 = HEAP32[(21308)>>2]|0; - $315 = ($314>>>0)<=($$0382$lcssa>>>0); - $316 = ($314>>>0)<=($313>>>0); - $317 = $316 & $315; - if ($317) { - $318 = ((($313)) + 12|0); - HEAP32[$318>>2] = $$1; - HEAP32[$312>>2] = $$1; - $319 = ((($$1)) + 8|0); - HEAP32[$319>>2] = $313; - $320 = ((($$1)) + 12|0); - HEAP32[$320>>2] = $$0382$lcssa; - $321 = ((($$1)) + 24|0); - HEAP32[$321>>2] = 0; - break; - } else { - _abort(); - // unreachable; - } - } - } while(0); - $322 = HEAP32[(21324)>>2]|0; - $323 = (($322) + -1)|0; - HEAP32[(21324)>>2] = $323; - $324 = ($323|0)==(0); - if (!($324)) { - return; - } - $$0211$in$i = (21748); - while(1) { - $$0211$i = HEAP32[$$0211$in$i>>2]|0; - $325 = ($$0211$i|0)==(0|0); - $326 = ((($$0211$i)) + 8|0); - if ($325) { - break; - } else { - $$0211$in$i = $326; - } - } - HEAP32[(21324)>>2] = -1; - return; -} -function ___stdio_close($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $1 = ((($0)) + 60|0); - $2 = HEAP32[$1>>2]|0; - $3 = (_dummy_569($2)|0); - HEAP32[$vararg_buffer>>2] = $3; - $4 = (___syscall6(6,($vararg_buffer|0))|0); - $5 = (___syscall_ret($4)|0); - STACKTOP = sp;return ($5|0); -} -function ___stdio_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$04756 = 0, $$04855 = 0, $$04954 = 0, $$051 = 0, $$1 = 0, $$150 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0; - var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer3 = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0; - var $vararg_ptr6 = 0, $vararg_ptr7 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $3 = sp + 32|0; - $4 = ((($0)) + 28|0); - $5 = HEAP32[$4>>2]|0; - HEAP32[$3>>2] = $5; - $6 = ((($3)) + 4|0); - $7 = ((($0)) + 20|0); - $8 = HEAP32[$7>>2]|0; - $9 = (($8) - ($5))|0; - HEAP32[$6>>2] = $9; - $10 = ((($3)) + 8|0); - HEAP32[$10>>2] = $1; - $11 = ((($3)) + 12|0); - HEAP32[$11>>2] = $2; - $12 = (($9) + ($2))|0; - $13 = ((($0)) + 60|0); - $14 = HEAP32[$13>>2]|0; - $15 = $3; - HEAP32[$vararg_buffer>>2] = $14; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $15; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = 2; - $16 = (___syscall146(146,($vararg_buffer|0))|0); - $17 = (___syscall_ret($16)|0); - $18 = ($12|0)==($17|0); - L1: do { - if ($18) { - label = 3; - } else { - $$04756 = 2;$$04855 = $12;$$04954 = $3;$27 = $17; - while(1) { - $26 = ($27|0)<(0); - if ($26) { - break; - } - $35 = (($$04855) - ($27))|0; - $36 = ((($$04954)) + 4|0); - $37 = HEAP32[$36>>2]|0; - $38 = ($27>>>0)>($37>>>0); - $39 = ((($$04954)) + 8|0); - $$150 = $38 ? $39 : $$04954; - $40 = $38 << 31 >> 31; - $$1 = (($$04756) + ($40))|0; - $41 = $38 ? $37 : 0; - $$0 = (($27) - ($41))|0; - $42 = HEAP32[$$150>>2]|0; - $43 = (($42) + ($$0)|0); - HEAP32[$$150>>2] = $43; - $44 = ((($$150)) + 4|0); - $45 = HEAP32[$44>>2]|0; - $46 = (($45) - ($$0))|0; - HEAP32[$44>>2] = $46; - $47 = HEAP32[$13>>2]|0; - $48 = $$150; - HEAP32[$vararg_buffer3>>2] = $47; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $48; - $vararg_ptr7 = ((($vararg_buffer3)) + 8|0); - HEAP32[$vararg_ptr7>>2] = $$1; - $49 = (___syscall146(146,($vararg_buffer3|0))|0); - $50 = (___syscall_ret($49)|0); - $51 = ($35|0)==($50|0); - if ($51) { - label = 3; - break L1; - } else { - $$04756 = $$1;$$04855 = $35;$$04954 = $$150;$27 = $50; - } - } - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = 0; - HEAP32[$4>>2] = 0; - HEAP32[$7>>2] = 0; - $29 = HEAP32[$0>>2]|0; - $30 = $29 | 32; - HEAP32[$0>>2] = $30; - $31 = ($$04756|0)==(2); - if ($31) { - $$051 = 0; - } else { - $32 = ((($$04954)) + 4|0); - $33 = HEAP32[$32>>2]|0; - $34 = (($2) - ($33))|0; - $$051 = $34; - } - } - } while(0); - if ((label|0) == 3) { - $19 = ((($0)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ((($0)) + 48|0); - $22 = HEAP32[$21>>2]|0; - $23 = (($20) + ($22)|0); - $24 = ((($0)) + 16|0); - HEAP32[$24>>2] = $23; - $25 = $20; - HEAP32[$4>>2] = $25; - HEAP32[$7>>2] = $25; - $$051 = $2; - } - STACKTOP = sp;return ($$051|0); -} -function ___stdio_seek($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$pre = 0, $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, $vararg_ptr3 = 0, $vararg_ptr4 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 20|0; - $4 = ((($0)) + 60|0); - $5 = HEAP32[$4>>2]|0; - $6 = $3; - HEAP32[$vararg_buffer>>2] = $5; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 0; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $1; - $vararg_ptr3 = ((($vararg_buffer)) + 12|0); - HEAP32[$vararg_ptr3>>2] = $6; - $vararg_ptr4 = ((($vararg_buffer)) + 16|0); - HEAP32[$vararg_ptr4>>2] = $2; - $7 = (___syscall140(140,($vararg_buffer|0))|0); - $8 = (___syscall_ret($7)|0); - $9 = ($8|0)<(0); - if ($9) { - HEAP32[$3>>2] = -1; - $10 = -1; - } else { - $$pre = HEAP32[$3>>2]|0; - $10 = $$pre; - } - STACKTOP = sp;return ($10|0); -} -function ___syscall_ret($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0>>>0)>(4294963200); - if ($1) { - $2 = (0 - ($0))|0; - $3 = (___errno_location()|0); - HEAP32[$3>>2] = $2; - $$0 = -1; - } else { - $$0 = $0; - } - return ($$0|0); -} -function ___errno_location() { - var label = 0, sp = 0; - sp = STACKTOP; - return (21852|0); -} -function _dummy_569($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return ($0|0); -} -function ___stdout_write($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_ptr1 = 0, $vararg_ptr2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(32|0); - $vararg_buffer = sp; - $3 = sp + 16|0; - $4 = ((($0)) + 36|0); - HEAP32[$4>>2] = 194; - $5 = HEAP32[$0>>2]|0; - $6 = $5 & 64; - $7 = ($6|0)==(0); - if ($7) { - $8 = ((($0)) + 60|0); - $9 = HEAP32[$8>>2]|0; - $10 = $3; - HEAP32[$vararg_buffer>>2] = $9; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = 21523; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $10; - $11 = (___syscall54(54,($vararg_buffer|0))|0); - $12 = ($11|0)==(0); - if (!($12)) { - $13 = ((($0)) + 75|0); - HEAP8[$13>>0] = -1; - } - } - $14 = (___stdio_write($0,$1,$2)|0); - STACKTOP = sp;return ($14|0); -} -function _strcmp($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$011 = 0, $$0710 = 0, $$lcssa = 0, $$lcssa8 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $2 = HEAP8[$0>>0]|0; - $3 = HEAP8[$1>>0]|0; - $4 = ($2<<24>>24)!=($3<<24>>24); - $5 = ($2<<24>>24)==(0); - $or$cond9 = $5 | $4; - if ($or$cond9) { - $$lcssa = $3;$$lcssa8 = $2; - } else { - $$011 = $1;$$0710 = $0; - while(1) { - $6 = ((($$0710)) + 1|0); - $7 = ((($$011)) + 1|0); - $8 = HEAP8[$6>>0]|0; - $9 = HEAP8[$7>>0]|0; - $10 = ($8<<24>>24)!=($9<<24>>24); - $11 = ($8<<24>>24)==(0); - $or$cond = $11 | $10; - if ($or$cond) { - $$lcssa = $9;$$lcssa8 = $8; - break; - } else { - $$011 = $7;$$0710 = $6; - } - } - } - $12 = $$lcssa8&255; - $13 = $$lcssa&255; - $14 = (($12) - ($13))|0; - return ($14|0); -} -function _memcmp($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$01318 = 0, $$01417 = 0, $$019 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $14 = 0; - } else { - $$01318 = $0;$$01417 = $2;$$019 = $1; - while(1) { - $4 = HEAP8[$$01318>>0]|0; - $5 = HEAP8[$$019>>0]|0; - $6 = ($4<<24>>24)==($5<<24>>24); - if (!($6)) { - break; - } - $7 = (($$01417) + -1)|0; - $8 = ((($$01318)) + 1|0); - $9 = ((($$019)) + 1|0); - $10 = ($7|0)==(0); - if ($10) { - $14 = 0; - break L1; - } else { - $$01318 = $8;$$01417 = $7;$$019 = $9; - } - } - $11 = $4&255; - $12 = $5&255; - $13 = (($11) - ($12))|0; - $14 = $13; - } - } while(0); - return ($14|0); -} -function _isdigit($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (($0) + -48)|0; - $2 = ($1>>>0)<(10); - $3 = $2&1; - return ($3|0); -} -function _vfprintf($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $spec$select = 0, $spec$select41 = 0, $vacopy_currentptr = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 224|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(224|0); - $3 = sp + 120|0; - $4 = sp + 80|0; - $5 = sp; - $6 = sp + 136|0; - dest=$4; stop=dest+40|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - $vacopy_currentptr = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $vacopy_currentptr; - $7 = (_printf_core(0,$1,$3,$5,$4)|0); - $8 = ($7|0)<(0); - if ($8) { - $$0 = -1; - } else { - $9 = ((($0)) + 76|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10|0)>(-1); - if ($11) { - $12 = (___lockfile($0)|0); - $40 = $12; - } else { - $40 = 0; - } - $13 = HEAP32[$0>>2]|0; - $14 = $13 & 32; - $15 = ((($0)) + 74|0); - $16 = HEAP8[$15>>0]|0; - $17 = ($16<<24>>24)<(1); - if ($17) { - $18 = $13 & -33; - HEAP32[$0>>2] = $18; - } - $19 = ((($0)) + 48|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(0); - if ($21) { - $23 = ((($0)) + 44|0); - $24 = HEAP32[$23>>2]|0; - HEAP32[$23>>2] = $6; - $25 = ((($0)) + 28|0); - HEAP32[$25>>2] = $6; - $26 = ((($0)) + 20|0); - HEAP32[$26>>2] = $6; - HEAP32[$19>>2] = 80; - $27 = ((($6)) + 80|0); - $28 = ((($0)) + 16|0); - HEAP32[$28>>2] = $27; - $29 = (_printf_core($0,$1,$3,$5,$4)|0); - $30 = ($24|0)==(0|0); - if ($30) { - $$1 = $29; - } else { - $31 = ((($0)) + 36|0); - $32 = HEAP32[$31>>2]|0; - (FUNCTION_TABLE_iiii[$32 & 255]($0,0,0)|0); - $33 = HEAP32[$26>>2]|0; - $34 = ($33|0)==(0|0); - $spec$select = $34 ? -1 : $29; - HEAP32[$23>>2] = $24; - HEAP32[$19>>2] = 0; - HEAP32[$28>>2] = 0; - HEAP32[$25>>2] = 0; - HEAP32[$26>>2] = 0; - $$1 = $spec$select; - } - } else { - $22 = (_printf_core($0,$1,$3,$5,$4)|0); - $$1 = $22; - } - $35 = HEAP32[$0>>2]|0; - $36 = $35 & 32; - $37 = ($36|0)==(0); - $spec$select41 = $37 ? $$1 : -1; - $38 = $35 | $14; - HEAP32[$0>>2] = $38; - $39 = ($40|0)==(0); - if (!($39)) { - ___unlockfile($0); - } - $$0 = $spec$select41; - } - STACKTOP = sp;return ($$0|0); -} -function _printf_core($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$ = 0, $$0 = 0, $$0228 = 0, $$0229334 = 0, $$0232 = 0, $$0235 = 0, $$0237 = 0, $$0240313 = 0, $$0240313371 = 0, $$0240333 = 0, $$0243 = 0, $$0243$ph = 0, $$0243$ph$be = 0, $$0247 = 0, $$0247$ph = 0, $$0249$lcssa = 0, $$0249321 = 0, $$0252 = 0, $$0253 = 0, $$0254 = 0; - var $$0259 = 0, $$0262$lcssa = 0, $$0262328 = 0, $$0269$ph = 0, $$1 = 0, $$1230340 = 0, $$1233 = 0, $$1236 = 0, $$1238 = 0, $$1241339 = 0, $$1248 = 0, $$1250 = 0, $$1255 = 0, $$1260 = 0, $$1263 = 0, $$1270 = 0, $$2 = 0, $$2234 = 0, $$2239 = 0, $$2242320 = 0; - var $$2256 = 0, $$2256$ = 0, $$2261 = 0, $$2271 = 0, $$3257 = 0, $$3265 = 0, $$3272 = 0, $$3317 = 0, $$4258370 = 0, $$4266 = 0, $$5 = 0, $$6268 = 0, $$lcssa308 = 0, $$pre = 0, $$pre$phiZ2D = 0, $$pre360 = 0, $$pre362 = 0, $$pre363 = 0, $$pre363$pre = 0, $$pre364 = 0; - var $$pre368 = 0, $$sink = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; - var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; - var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; - var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; - var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0; - var $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0; - var $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0; - var $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0; - var $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0; - var $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0; - var $298 = 0, $299 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0; - var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0; - var $334 = 0, $335 = 0, $336 = 0.0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0; - var $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0; - var $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0; - var $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current2 = 0, $arglist_next = 0; - var $arglist_next3 = 0, $brmerge = 0, $brmerge326 = 0, $expanded = 0, $expanded10 = 0, $expanded11 = 0, $expanded13 = 0, $expanded14 = 0, $expanded15 = 0, $expanded4 = 0, $expanded6 = 0, $expanded7 = 0, $expanded8 = 0, $or$cond = 0, $or$cond276 = 0, $or$cond278 = 0, $or$cond283 = 0, $spec$select = 0, $spec$select281 = 0, $spec$select284 = 0; - var $spec$select291 = 0, $spec$select292 = 0, $spec$select293 = 0, $spec$select294 = 0, $spec$select295 = 0, $spec$select296 = 0, $spec$select297 = 0, $spec$select298 = 0, $spec$select299 = 0, $storemerge273$lcssa = 0, $storemerge273327 = 0, $storemerge274 = 0, $trunc = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $5 = sp + 16|0; - $6 = sp; - $7 = sp + 24|0; - $8 = sp + 8|0; - $9 = sp + 20|0; - HEAP32[$5>>2] = $1; - $10 = ($0|0)!=(0|0); - $11 = ((($7)) + 40|0); - $12 = $11; - $13 = ((($7)) + 39|0); - $14 = ((($8)) + 4|0); - $$0243$ph = 0;$$0247$ph = 0;$$0269$ph = 0; - L1: while(1) { - $$0243 = $$0243$ph;$$0247 = $$0247$ph; - while(1) { - $15 = ($$0247|0)>(-1); - do { - if ($15) { - $16 = (2147483647 - ($$0247))|0; - $17 = ($$0243|0)>($16|0); - if ($17) { - $18 = (___errno_location()|0); - HEAP32[$18>>2] = 75; - $$1248 = -1; - break; - } else { - $19 = (($$0243) + ($$0247))|0; - $$1248 = $19; - break; - } - } else { - $$1248 = $$0247; - } - } while(0); - $20 = HEAP32[$5>>2]|0; - $21 = HEAP8[$20>>0]|0; - $22 = ($21<<24>>24)==(0); - if ($22) { - label = 94; - break L1; - } - $23 = $21;$25 = $20; - L12: while(1) { - switch ($23<<24>>24) { - case 37: { - label = 10; - break L12; - break; - } - case 0: { - $$0249$lcssa = $25; - break L12; - break; - } - default: { - } - } - $24 = ((($25)) + 1|0); - HEAP32[$5>>2] = $24; - $$pre = HEAP8[$24>>0]|0; - $23 = $$pre;$25 = $24; - } - L15: do { - if ((label|0) == 10) { - label = 0; - $$0249321 = $25;$27 = $25; - while(1) { - $26 = ((($27)) + 1|0); - $28 = HEAP8[$26>>0]|0; - $29 = ($28<<24>>24)==(37); - if (!($29)) { - $$0249$lcssa = $$0249321; - break L15; - } - $30 = ((($$0249321)) + 1|0); - $31 = ((($27)) + 2|0); - HEAP32[$5>>2] = $31; - $32 = HEAP8[$31>>0]|0; - $33 = ($32<<24>>24)==(37); - if ($33) { - $$0249321 = $30;$27 = $31; - } else { - $$0249$lcssa = $30; - break; - } - } - } - } while(0); - $34 = $$0249$lcssa; - $35 = $20; - $36 = (($34) - ($35))|0; - if ($10) { - _out($0,$20,$36); - } - $37 = ($36|0)==(0); - if ($37) { - break; - } else { - $$0243 = $36;$$0247 = $$1248; - } - } - $38 = HEAP32[$5>>2]|0; - $39 = ((($38)) + 1|0); - $40 = HEAP8[$39>>0]|0; - $41 = $40 << 24 >> 24; - $42 = (_isdigit($41)|0); - $43 = ($42|0)==(0); - $$pre360 = HEAP32[$5>>2]|0; - if ($43) { - $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1; - } else { - $44 = ((($$pre360)) + 2|0); - $45 = HEAP8[$44>>0]|0; - $46 = ($45<<24>>24)==(36); - if ($46) { - $47 = ((($$pre360)) + 1|0); - $48 = HEAP8[$47>>0]|0; - $49 = $48 << 24 >> 24; - $50 = (($49) + -48)|0; - $$0253 = $50;$$1270 = 1;$$sink = 3; - } else { - $$0253 = -1;$$1270 = $$0269$ph;$$sink = 1; - } - } - $51 = (($$pre360) + ($$sink)|0); - HEAP32[$5>>2] = $51; - $52 = HEAP8[$51>>0]|0; - $53 = $52 << 24 >> 24; - $54 = (($53) + -32)|0; - $55 = ($54>>>0)>(31); - $56 = 1 << $54; - $57 = $56 & 75913; - $58 = ($57|0)==(0); - $brmerge326 = $55 | $58; - if ($brmerge326) { - $$0262$lcssa = 0;$$lcssa308 = $52;$storemerge273$lcssa = $51; - } else { - $$0262328 = 0;$60 = $54;$storemerge273327 = $51; - while(1) { - $59 = 1 << $60; - $61 = $59 | $$0262328; - $62 = ((($storemerge273327)) + 1|0); - HEAP32[$5>>2] = $62; - $63 = HEAP8[$62>>0]|0; - $64 = $63 << 24 >> 24; - $65 = (($64) + -32)|0; - $66 = ($65>>>0)>(31); - $67 = 1 << $65; - $68 = $67 & 75913; - $69 = ($68|0)==(0); - $brmerge = $66 | $69; - if ($brmerge) { - $$0262$lcssa = $61;$$lcssa308 = $63;$storemerge273$lcssa = $62; - break; - } else { - $$0262328 = $61;$60 = $65;$storemerge273327 = $62; - } - } - } - $70 = ($$lcssa308<<24>>24)==(42); - if ($70) { - $71 = ((($storemerge273$lcssa)) + 1|0); - $72 = HEAP8[$71>>0]|0; - $73 = $72 << 24 >> 24; - $74 = (_isdigit($73)|0); - $75 = ($74|0)==(0); - if ($75) { - label = 27; - } else { - $76 = HEAP32[$5>>2]|0; - $77 = ((($76)) + 2|0); - $78 = HEAP8[$77>>0]|0; - $79 = ($78<<24>>24)==(36); - if ($79) { - $80 = ((($76)) + 1|0); - $81 = HEAP8[$80>>0]|0; - $82 = $81 << 24 >> 24; - $83 = (($82) + -48)|0; - $84 = (($4) + ($83<<2)|0); - HEAP32[$84>>2] = 10; - $85 = HEAP8[$80>>0]|0; - $86 = $85 << 24 >> 24; - $87 = (($86) + -48)|0; - $88 = (($3) + ($87<<3)|0); - $89 = $88; - $90 = $89; - $91 = HEAP32[$90>>2]|0; - $92 = (($89) + 4)|0; - $93 = $92; - $94 = HEAP32[$93>>2]|0; - $95 = ((($76)) + 3|0); - $$0259 = $91;$$2271 = 1;$storemerge274 = $95; - } else { - label = 27; - } - } - if ((label|0) == 27) { - label = 0; - $96 = ($$1270|0)==(0); - if (!($96)) { - $$0 = -1; - break; - } - if ($10) { - $arglist_current = HEAP32[$2>>2]|0; - $97 = $arglist_current; - $98 = ((0) + 4|0); - $expanded4 = $98; - $expanded = (($expanded4) - 1)|0; - $99 = (($97) + ($expanded))|0; - $100 = ((0) + 4|0); - $expanded8 = $100; - $expanded7 = (($expanded8) - 1)|0; - $expanded6 = $expanded7 ^ -1; - $101 = $99 & $expanded6; - $102 = $101; - $103 = HEAP32[$102>>2]|0; - $arglist_next = ((($102)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - $358 = $103; - } else { - $358 = 0; - } - $104 = HEAP32[$5>>2]|0; - $105 = ((($104)) + 1|0); - $$0259 = $358;$$2271 = 0;$storemerge274 = $105; - } - HEAP32[$5>>2] = $storemerge274; - $106 = ($$0259|0)<(0); - $107 = $$0262$lcssa | 8192; - $108 = (0 - ($$0259))|0; - $spec$select291 = $106 ? $107 : $$0262$lcssa; - $spec$select292 = $106 ? $108 : $$0259; - $$1260 = $spec$select292;$$1263 = $spec$select291;$$3272 = $$2271;$112 = $storemerge274; - } else { - $109 = (_getint($5)|0); - $110 = ($109|0)<(0); - if ($110) { - $$0 = -1; - break; - } - $$pre362 = HEAP32[$5>>2]|0; - $$1260 = $109;$$1263 = $$0262$lcssa;$$3272 = $$1270;$112 = $$pre362; - } - $111 = HEAP8[$112>>0]|0; - $113 = ($111<<24>>24)==(46); - do { - if ($113) { - $114 = ((($112)) + 1|0); - $115 = HEAP8[$114>>0]|0; - $116 = ($115<<24>>24)==(42); - if (!($116)) { - HEAP32[$5>>2] = $114; - $152 = (_getint($5)|0); - $$pre363$pre = HEAP32[$5>>2]|0; - $$0254 = $152;$$pre363 = $$pre363$pre; - break; - } - $117 = ((($112)) + 2|0); - $118 = HEAP8[$117>>0]|0; - $119 = $118 << 24 >> 24; - $120 = (_isdigit($119)|0); - $121 = ($120|0)==(0); - if (!($121)) { - $122 = HEAP32[$5>>2]|0; - $123 = ((($122)) + 3|0); - $124 = HEAP8[$123>>0]|0; - $125 = ($124<<24>>24)==(36); - if ($125) { - $126 = ((($122)) + 2|0); - $127 = HEAP8[$126>>0]|0; - $128 = $127 << 24 >> 24; - $129 = (($128) + -48)|0; - $130 = (($4) + ($129<<2)|0); - HEAP32[$130>>2] = 10; - $131 = HEAP8[$126>>0]|0; - $132 = $131 << 24 >> 24; - $133 = (($132) + -48)|0; - $134 = (($3) + ($133<<3)|0); - $135 = $134; - $136 = $135; - $137 = HEAP32[$136>>2]|0; - $138 = (($135) + 4)|0; - $139 = $138; - $140 = HEAP32[$139>>2]|0; - $141 = ((($122)) + 4|0); - HEAP32[$5>>2] = $141; - $$0254 = $137;$$pre363 = $141; - break; - } - } - $142 = ($$3272|0)==(0); - if (!($142)) { - $$0 = -1; - break L1; - } - if ($10) { - $arglist_current2 = HEAP32[$2>>2]|0; - $143 = $arglist_current2; - $144 = ((0) + 4|0); - $expanded11 = $144; - $expanded10 = (($expanded11) - 1)|0; - $145 = (($143) + ($expanded10))|0; - $146 = ((0) + 4|0); - $expanded15 = $146; - $expanded14 = (($expanded15) - 1)|0; - $expanded13 = $expanded14 ^ -1; - $147 = $145 & $expanded13; - $148 = $147; - $149 = HEAP32[$148>>2]|0; - $arglist_next3 = ((($148)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $359 = $149; - } else { - $359 = 0; - } - $150 = HEAP32[$5>>2]|0; - $151 = ((($150)) + 2|0); - HEAP32[$5>>2] = $151; - $$0254 = $359;$$pre363 = $151; - } else { - $$0254 = -1;$$pre363 = $112; - } - } while(0); - $$0252 = 0;$154 = $$pre363; - while(1) { - $153 = HEAP8[$154>>0]|0; - $155 = $153 << 24 >> 24; - $156 = (($155) + -65)|0; - $157 = ($156>>>0)>(57); - if ($157) { - $$0 = -1; - break L1; - } - $158 = ((($154)) + 1|0); - HEAP32[$5>>2] = $158; - $159 = HEAP8[$154>>0]|0; - $160 = $159 << 24 >> 24; - $161 = (($160) + -65)|0; - $162 = ((17913 + (($$0252*58)|0)|0) + ($161)|0); - $163 = HEAP8[$162>>0]|0; - $164 = $163&255; - $165 = (($164) + -1)|0; - $166 = ($165>>>0)<(8); - if ($166) { - $$0252 = $164;$154 = $158; - } else { - break; - } - } - $167 = ($163<<24>>24)==(0); - if ($167) { - $$0 = -1; - break; - } - $168 = ($163<<24>>24)==(19); - $169 = ($$0253|0)>(-1); - do { - if ($168) { - if ($169) { - $$0 = -1; - break L1; - } else { - label = 54; - } - } else { - if ($169) { - $170 = (($4) + ($$0253<<2)|0); - HEAP32[$170>>2] = $164; - $171 = (($3) + ($$0253<<3)|0); - $172 = $171; - $173 = $172; - $174 = HEAP32[$173>>2]|0; - $175 = (($172) + 4)|0; - $176 = $175; - $177 = HEAP32[$176>>2]|0; - $178 = $6; - $179 = $178; - HEAP32[$179>>2] = $174; - $180 = (($178) + 4)|0; - $181 = $180; - HEAP32[$181>>2] = $177; - label = 54; - break; - } - if (!($10)) { - $$0 = 0; - break L1; - } - _pop_arg($6,$164,$2); - $$pre364 = HEAP32[$5>>2]|0; - $183 = $$pre364; - label = 55; - } - } while(0); - if ((label|0) == 54) { - label = 0; - if ($10) { - $183 = $158; - label = 55; - } else { - $$0243$ph$be = 0; - } - } - L77: do { - if ((label|0) == 55) { - label = 0; - $182 = ((($183)) + -1|0); - $184 = HEAP8[$182>>0]|0; - $185 = $184 << 24 >> 24; - $186 = ($$0252|0)!=(0); - $187 = $185 & 15; - $188 = ($187|0)==(3); - $or$cond276 = $186 & $188; - $189 = $185 & -33; - $$0235 = $or$cond276 ? $189 : $185; - $190 = $$1263 & 8192; - $191 = ($190|0)==(0); - $192 = $$1263 & -65537; - $spec$select = $191 ? $$1263 : $192; - L79: do { - switch ($$0235|0) { - case 110: { - $trunc = $$0252&255; - switch ($trunc<<24>>24) { - case 0: { - $199 = HEAP32[$6>>2]|0; - HEAP32[$199>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 1: { - $200 = HEAP32[$6>>2]|0; - HEAP32[$200>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 2: { - $201 = ($$1248|0)<(0); - $202 = $201 << 31 >> 31; - $203 = HEAP32[$6>>2]|0; - $204 = $203; - $205 = $204; - HEAP32[$205>>2] = $$1248; - $206 = (($204) + 4)|0; - $207 = $206; - HEAP32[$207>>2] = $202; - $$0243$ph$be = 0; - break L77; - break; - } - case 3: { - $208 = $$1248&65535; - $209 = HEAP32[$6>>2]|0; - HEAP16[$209>>1] = $208; - $$0243$ph$be = 0; - break L77; - break; - } - case 4: { - $210 = $$1248&255; - $211 = HEAP32[$6>>2]|0; - HEAP8[$211>>0] = $210; - $$0243$ph$be = 0; - break L77; - break; - } - case 6: { - $212 = HEAP32[$6>>2]|0; - HEAP32[$212>>2] = $$1248; - $$0243$ph$be = 0; - break L77; - break; - } - case 7: { - $213 = ($$1248|0)<(0); - $214 = $213 << 31 >> 31; - $215 = HEAP32[$6>>2]|0; - $216 = $215; - $217 = $216; - HEAP32[$217>>2] = $$1248; - $218 = (($216) + 4)|0; - $219 = $218; - HEAP32[$219>>2] = $214; - $$0243$ph$be = 0; - break L77; - break; - } - default: { - $$0243$ph$be = 0; - break L77; - } - } - break; - } - case 112: { - $220 = ($$0254>>>0)>(8); - $221 = $220 ? $$0254 : 8; - $222 = $spec$select | 8; - $$1236 = 120;$$1255 = $221;$$3265 = $222; - label = 67; - break; - } - case 88: case 120: { - $$1236 = $$0235;$$1255 = $$0254;$$3265 = $spec$select; - label = 67; - break; - } - case 111: { - $238 = $6; - $239 = $238; - $240 = HEAP32[$239>>2]|0; - $241 = (($238) + 4)|0; - $242 = $241; - $243 = HEAP32[$242>>2]|0; - $244 = (_fmt_o($240,$243,$11)|0); - $245 = $spec$select & 8; - $246 = ($245|0)==(0); - $247 = $244; - $248 = (($12) - ($247))|0; - $249 = ($$0254|0)>($248|0); - $250 = (($248) + 1)|0; - $251 = $246 | $249; - $spec$select295 = $251 ? $$0254 : $250; - $$0228 = $244;$$1233 = 0;$$1238 = 18377;$$2256 = $spec$select295;$$4266 = $spec$select;$277 = $240;$279 = $243; - label = 73; - break; - } - case 105: case 100: { - $252 = $6; - $253 = $252; - $254 = HEAP32[$253>>2]|0; - $255 = (($252) + 4)|0; - $256 = $255; - $257 = HEAP32[$256>>2]|0; - $258 = ($257|0)<(0); - if ($258) { - $259 = (_i64Subtract(0,0,($254|0),($257|0))|0); - $260 = tempRet0; - $261 = $6; - $262 = $261; - HEAP32[$262>>2] = $259; - $263 = (($261) + 4)|0; - $264 = $263; - HEAP32[$264>>2] = $260; - $$0232 = 1;$$0237 = 18377;$271 = $259;$272 = $260; - label = 72; - break L79; - } else { - $265 = $spec$select & 2048; - $266 = ($265|0)==(0); - $267 = $spec$select & 1; - $268 = ($267|0)==(0); - $$ = $268 ? 18377 : (18379); - $spec$select296 = $266 ? $$ : (18378); - $269 = $spec$select & 2049; - $270 = ($269|0)!=(0); - $spec$select297 = $270&1; - $$0232 = $spec$select297;$$0237 = $spec$select296;$271 = $254;$272 = $257; - label = 72; - break L79; - } - break; - } - case 117: { - $193 = $6; - $194 = $193; - $195 = HEAP32[$194>>2]|0; - $196 = (($193) + 4)|0; - $197 = $196; - $198 = HEAP32[$197>>2]|0; - $$0232 = 0;$$0237 = 18377;$271 = $195;$272 = $198; - label = 72; - break; - } - case 99: { - $288 = $6; - $289 = $288; - $290 = HEAP32[$289>>2]|0; - $291 = (($288) + 4)|0; - $292 = $291; - $293 = HEAP32[$292>>2]|0; - $294 = $290&255; - HEAP8[$13>>0] = $294; - $$2 = $13;$$2234 = 0;$$2239 = 18377;$$5 = 1;$$6268 = $192;$$pre$phiZ2D = $12; - break; - } - case 109: { - $295 = (___errno_location()|0); - $296 = HEAP32[$295>>2]|0; - $297 = (_strerror($296)|0); - $$1 = $297; - label = 77; - break; - } - case 115: { - $298 = HEAP32[$6>>2]|0; - $299 = ($298|0)==(0|0); - $300 = $299 ? 18387 : $298; - $$1 = $300; - label = 77; - break; - } - case 67: { - $307 = $6; - $308 = $307; - $309 = HEAP32[$308>>2]|0; - $310 = (($307) + 4)|0; - $311 = $310; - $312 = HEAP32[$311>>2]|0; - HEAP32[$8>>2] = $309; - HEAP32[$14>>2] = 0; - HEAP32[$6>>2] = $8; - $$4258370 = -1; - label = 81; - break; - } - case 83: { - $313 = ($$0254|0)==(0); - if ($313) { - _pad_683($0,32,$$1260,0,$spec$select); - $$0240313371 = 0; - label = 91; - } else { - $$4258370 = $$0254; - label = 81; - } - break; - } - case 65: case 71: case 70: case 69: case 97: case 103: case 102: case 101: { - $336 = +HEAPF64[$6>>3]; - $337 = (_fmt_fp($0,$336,$$1260,$$0254,$spec$select,$$0235)|0); - $$0243$ph$be = $337; - break L77; - break; - } - default: { - $$2 = $20;$$2234 = 0;$$2239 = 18377;$$5 = $$0254;$$6268 = $spec$select;$$pre$phiZ2D = $12; - } - } - } while(0); - L103: do { - if ((label|0) == 67) { - label = 0; - $223 = $6; - $224 = $223; - $225 = HEAP32[$224>>2]|0; - $226 = (($223) + 4)|0; - $227 = $226; - $228 = HEAP32[$227>>2]|0; - $229 = $$1236 & 32; - $230 = (_fmt_x($225,$228,$11,$229)|0); - $231 = ($225|0)==(0); - $232 = ($228|0)==(0); - $233 = $231 & $232; - $234 = $$3265 & 8; - $235 = ($234|0)==(0); - $or$cond278 = $235 | $233; - $236 = $$1236 >>> 4; - $237 = (18377 + ($236)|0); - $spec$select293 = $or$cond278 ? 18377 : $237; - $spec$select294 = $or$cond278 ? 0 : 2; - $$0228 = $230;$$1233 = $spec$select294;$$1238 = $spec$select293;$$2256 = $$1255;$$4266 = $$3265;$277 = $225;$279 = $228; - label = 73; - } - else if ((label|0) == 72) { - label = 0; - $273 = (_fmt_u($271,$272,$11)|0); - $$0228 = $273;$$1233 = $$0232;$$1238 = $$0237;$$2256 = $$0254;$$4266 = $spec$select;$277 = $271;$279 = $272; - label = 73; - } - else if ((label|0) == 77) { - label = 0; - $301 = (_memchr($$1,0,$$0254)|0); - $302 = ($301|0)==(0|0); - $303 = $301; - $304 = $$1; - $305 = (($303) - ($304))|0; - $306 = (($$1) + ($$0254)|0); - $$3257 = $302 ? $$0254 : $305; - $$1250 = $302 ? $306 : $301; - $$pre368 = $$1250; - $$2 = $$1;$$2234 = 0;$$2239 = 18377;$$5 = $$3257;$$6268 = $192;$$pre$phiZ2D = $$pre368; - } - else if ((label|0) == 81) { - label = 0; - $314 = HEAP32[$6>>2]|0; - $$0229334 = $314;$$0240333 = 0; - while(1) { - $315 = HEAP32[$$0229334>>2]|0; - $316 = ($315|0)==(0); - if ($316) { - $$0240313 = $$0240333; - break; - } - $317 = (_wctomb($9,$315)|0); - $318 = ($317|0)<(0); - $319 = (($$4258370) - ($$0240333))|0; - $320 = ($317>>>0)>($319>>>0); - $or$cond283 = $318 | $320; - if ($or$cond283) { - label = 85; - break; - } - $321 = ((($$0229334)) + 4|0); - $322 = (($317) + ($$0240333))|0; - $323 = ($$4258370>>>0)>($322>>>0); - if ($323) { - $$0229334 = $321;$$0240333 = $322; - } else { - $$0240313 = $322; - break; - } - } - if ((label|0) == 85) { - label = 0; - if ($318) { - $$0 = -1; - break L1; - } else { - $$0240313 = $$0240333; - } - } - _pad_683($0,32,$$1260,$$0240313,$spec$select); - $324 = ($$0240313|0)==(0); - if ($324) { - $$0240313371 = 0; - label = 91; - } else { - $325 = HEAP32[$6>>2]|0; - $$1230340 = $325;$$1241339 = 0; - while(1) { - $326 = HEAP32[$$1230340>>2]|0; - $327 = ($326|0)==(0); - if ($327) { - $$0240313371 = $$0240313; - label = 91; - break L103; - } - $328 = (_wctomb($9,$326)|0); - $329 = (($328) + ($$1241339))|0; - $330 = ($329|0)>($$0240313|0); - if ($330) { - $$0240313371 = $$0240313; - label = 91; - break L103; - } - $331 = ((($$1230340)) + 4|0); - _out($0,$9,$328); - $332 = ($329>>>0)<($$0240313>>>0); - if ($332) { - $$1230340 = $331;$$1241339 = $329; - } else { - $$0240313371 = $$0240313; - label = 91; - break; - } - } - } - } - } while(0); - if ((label|0) == 73) { - label = 0; - $274 = ($$2256|0)>(-1); - $275 = $$4266 & -65537; - $spec$select281 = $274 ? $275 : $$4266; - $276 = ($277|0)!=(0); - $278 = ($279|0)!=(0); - $280 = $276 | $278; - $281 = ($$2256|0)!=(0); - $or$cond = $281 | $280; - $282 = $$0228; - $283 = (($12) - ($282))|0; - $284 = $280 ^ 1; - $285 = $284&1; - $286 = (($283) + ($285))|0; - $287 = ($$2256|0)>($286|0); - $$2256$ = $287 ? $$2256 : $286; - $spec$select298 = $or$cond ? $$2256$ : 0; - $spec$select299 = $or$cond ? $$0228 : $11; - $$2 = $spec$select299;$$2234 = $$1233;$$2239 = $$1238;$$5 = $spec$select298;$$6268 = $spec$select281;$$pre$phiZ2D = $12; - } - else if ((label|0) == 91) { - label = 0; - $333 = $spec$select ^ 8192; - _pad_683($0,32,$$1260,$$0240313371,$333); - $334 = ($$1260|0)>($$0240313371|0); - $335 = $334 ? $$1260 : $$0240313371; - $$0243$ph$be = $335; - break; - } - $338 = $$2; - $339 = (($$pre$phiZ2D) - ($338))|0; - $340 = ($$5|0)<($339|0); - $spec$select284 = $340 ? $339 : $$5; - $341 = (($spec$select284) + ($$2234))|0; - $342 = ($$1260|0)<($341|0); - $$2261 = $342 ? $341 : $$1260; - _pad_683($0,32,$$2261,$341,$$6268); - _out($0,$$2239,$$2234); - $343 = $$6268 ^ 65536; - _pad_683($0,48,$$2261,$341,$343); - _pad_683($0,48,$spec$select284,$339,0); - _out($0,$$2,$339); - $344 = $$6268 ^ 8192; - _pad_683($0,32,$$2261,$341,$344); - $$0243$ph$be = $$2261; - } - } while(0); - $$0243$ph = $$0243$ph$be;$$0247$ph = $$1248;$$0269$ph = $$3272; - } - L125: do { - if ((label|0) == 94) { - $345 = ($0|0)==(0|0); - if ($345) { - $346 = ($$0269$ph|0)==(0); - if ($346) { - $$0 = 0; - } else { - $$2242320 = 1; - while(1) { - $347 = (($4) + ($$2242320<<2)|0); - $348 = HEAP32[$347>>2]|0; - $349 = ($348|0)==(0); - if ($349) { - break; - } - $350 = (($3) + ($$2242320<<3)|0); - _pop_arg($350,$348,$2); - $351 = (($$2242320) + 1)|0; - $352 = ($351>>>0)<(10); - if ($352) { - $$2242320 = $351; - } else { - $$0 = 1; - break L125; - } - } - $$3317 = $$2242320; - while(1) { - $355 = (($4) + ($$3317<<2)|0); - $356 = HEAP32[$355>>2]|0; - $357 = ($356|0)==(0); - $354 = (($$3317) + 1)|0; - if (!($357)) { - $$0 = -1; - break L125; - } - $353 = ($354>>>0)<(10); - if ($353) { - $$3317 = $354; - } else { - $$0 = 1; - break; - } - } - } - } else { - $$0 = $$1248; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___lockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 0; -} -function ___unlockfile($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function _out($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = $3 & 32; - $5 = ($4|0)==(0); - if ($5) { - (___fwritex($1,$2,$0)|0); - } - return; -} -function _getint($0) { - $0 = $0|0; - var $$0$lcssa = 0, $$04 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (_isdigit($3)|0); - $5 = ($4|0)==(0); - if ($5) { - $$0$lcssa = 0; - } else { - $$04 = 0; - while(1) { - $6 = ($$04*10)|0; - $7 = HEAP32[$0>>2]|0; - $8 = HEAP8[$7>>0]|0; - $9 = $8 << 24 >> 24; - $10 = (($6) + -48)|0; - $11 = (($10) + ($9))|0; - $12 = ((($7)) + 1|0); - HEAP32[$0>>2] = $12; - $13 = HEAP8[$12>>0]|0; - $14 = $13 << 24 >> 24; - $15 = (_isdigit($14)|0); - $16 = ($15|0)==(0); - if ($16) { - $$0$lcssa = $11; - break; - } else { - $$04 = $11; - } - } - } - return ($$0$lcssa|0); -} -function _pop_arg($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$mask = 0, $$mask31 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; - var $116 = 0.0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; - var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; - var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $arglist_current = 0, $arglist_current11 = 0, $arglist_current14 = 0, $arglist_current17 = 0; - var $arglist_current2 = 0, $arglist_current20 = 0, $arglist_current23 = 0, $arglist_current26 = 0, $arglist_current5 = 0, $arglist_current8 = 0, $arglist_next = 0, $arglist_next12 = 0, $arglist_next15 = 0, $arglist_next18 = 0, $arglist_next21 = 0, $arglist_next24 = 0, $arglist_next27 = 0, $arglist_next3 = 0, $arglist_next6 = 0, $arglist_next9 = 0, $expanded = 0, $expanded28 = 0, $expanded30 = 0, $expanded31 = 0; - var $expanded32 = 0, $expanded34 = 0, $expanded35 = 0, $expanded37 = 0, $expanded38 = 0, $expanded39 = 0, $expanded41 = 0, $expanded42 = 0, $expanded44 = 0, $expanded45 = 0, $expanded46 = 0, $expanded48 = 0, $expanded49 = 0, $expanded51 = 0, $expanded52 = 0, $expanded53 = 0, $expanded55 = 0, $expanded56 = 0, $expanded58 = 0, $expanded59 = 0; - var $expanded60 = 0, $expanded62 = 0, $expanded63 = 0, $expanded65 = 0, $expanded66 = 0, $expanded67 = 0, $expanded69 = 0, $expanded70 = 0, $expanded72 = 0, $expanded73 = 0, $expanded74 = 0, $expanded76 = 0, $expanded77 = 0, $expanded79 = 0, $expanded80 = 0, $expanded81 = 0, $expanded83 = 0, $expanded84 = 0, $expanded86 = 0, $expanded87 = 0; - var $expanded88 = 0, $expanded90 = 0, $expanded91 = 0, $expanded93 = 0, $expanded94 = 0, $expanded95 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(20); - L1: do { - if (!($3)) { - do { - switch ($1|0) { - case 9: { - $arglist_current = HEAP32[$2>>2]|0; - $4 = $arglist_current; - $5 = ((0) + 4|0); - $expanded28 = $5; - $expanded = (($expanded28) - 1)|0; - $6 = (($4) + ($expanded))|0; - $7 = ((0) + 4|0); - $expanded32 = $7; - $expanded31 = (($expanded32) - 1)|0; - $expanded30 = $expanded31 ^ -1; - $8 = $6 & $expanded30; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $arglist_next = ((($9)) + 4|0); - HEAP32[$2>>2] = $arglist_next; - HEAP32[$0>>2] = $10; - break L1; - break; - } - case 10: { - $arglist_current2 = HEAP32[$2>>2]|0; - $11 = $arglist_current2; - $12 = ((0) + 4|0); - $expanded35 = $12; - $expanded34 = (($expanded35) - 1)|0; - $13 = (($11) + ($expanded34))|0; - $14 = ((0) + 4|0); - $expanded39 = $14; - $expanded38 = (($expanded39) - 1)|0; - $expanded37 = $expanded38 ^ -1; - $15 = $13 & $expanded37; - $16 = $15; - $17 = HEAP32[$16>>2]|0; - $arglist_next3 = ((($16)) + 4|0); - HEAP32[$2>>2] = $arglist_next3; - $18 = ($17|0)<(0); - $19 = $18 << 31 >> 31; - $20 = $0; - $21 = $20; - HEAP32[$21>>2] = $17; - $22 = (($20) + 4)|0; - $23 = $22; - HEAP32[$23>>2] = $19; - break L1; - break; - } - case 11: { - $arglist_current5 = HEAP32[$2>>2]|0; - $24 = $arglist_current5; - $25 = ((0) + 4|0); - $expanded42 = $25; - $expanded41 = (($expanded42) - 1)|0; - $26 = (($24) + ($expanded41))|0; - $27 = ((0) + 4|0); - $expanded46 = $27; - $expanded45 = (($expanded46) - 1)|0; - $expanded44 = $expanded45 ^ -1; - $28 = $26 & $expanded44; - $29 = $28; - $30 = HEAP32[$29>>2]|0; - $arglist_next6 = ((($29)) + 4|0); - HEAP32[$2>>2] = $arglist_next6; - $31 = $0; - $32 = $31; - HEAP32[$32>>2] = $30; - $33 = (($31) + 4)|0; - $34 = $33; - HEAP32[$34>>2] = 0; - break L1; - break; - } - case 12: { - $arglist_current8 = HEAP32[$2>>2]|0; - $35 = $arglist_current8; - $36 = ((0) + 8|0); - $expanded49 = $36; - $expanded48 = (($expanded49) - 1)|0; - $37 = (($35) + ($expanded48))|0; - $38 = ((0) + 8|0); - $expanded53 = $38; - $expanded52 = (($expanded53) - 1)|0; - $expanded51 = $expanded52 ^ -1; - $39 = $37 & $expanded51; - $40 = $39; - $41 = $40; - $42 = $41; - $43 = HEAP32[$42>>2]|0; - $44 = (($41) + 4)|0; - $45 = $44; - $46 = HEAP32[$45>>2]|0; - $arglist_next9 = ((($40)) + 8|0); - HEAP32[$2>>2] = $arglist_next9; - $47 = $0; - $48 = $47; - HEAP32[$48>>2] = $43; - $49 = (($47) + 4)|0; - $50 = $49; - HEAP32[$50>>2] = $46; - break L1; - break; - } - case 13: { - $arglist_current11 = HEAP32[$2>>2]|0; - $51 = $arglist_current11; - $52 = ((0) + 4|0); - $expanded56 = $52; - $expanded55 = (($expanded56) - 1)|0; - $53 = (($51) + ($expanded55))|0; - $54 = ((0) + 4|0); - $expanded60 = $54; - $expanded59 = (($expanded60) - 1)|0; - $expanded58 = $expanded59 ^ -1; - $55 = $53 & $expanded58; - $56 = $55; - $57 = HEAP32[$56>>2]|0; - $arglist_next12 = ((($56)) + 4|0); - HEAP32[$2>>2] = $arglist_next12; - $58 = $57&65535; - $59 = $58 << 16 >> 16; - $60 = ($59|0)<(0); - $61 = $60 << 31 >> 31; - $62 = $0; - $63 = $62; - HEAP32[$63>>2] = $59; - $64 = (($62) + 4)|0; - $65 = $64; - HEAP32[$65>>2] = $61; - break L1; - break; - } - case 14: { - $arglist_current14 = HEAP32[$2>>2]|0; - $66 = $arglist_current14; - $67 = ((0) + 4|0); - $expanded63 = $67; - $expanded62 = (($expanded63) - 1)|0; - $68 = (($66) + ($expanded62))|0; - $69 = ((0) + 4|0); - $expanded67 = $69; - $expanded66 = (($expanded67) - 1)|0; - $expanded65 = $expanded66 ^ -1; - $70 = $68 & $expanded65; - $71 = $70; - $72 = HEAP32[$71>>2]|0; - $arglist_next15 = ((($71)) + 4|0); - HEAP32[$2>>2] = $arglist_next15; - $$mask31 = $72 & 65535; - $73 = $0; - $74 = $73; - HEAP32[$74>>2] = $$mask31; - $75 = (($73) + 4)|0; - $76 = $75; - HEAP32[$76>>2] = 0; - break L1; - break; - } - case 15: { - $arglist_current17 = HEAP32[$2>>2]|0; - $77 = $arglist_current17; - $78 = ((0) + 4|0); - $expanded70 = $78; - $expanded69 = (($expanded70) - 1)|0; - $79 = (($77) + ($expanded69))|0; - $80 = ((0) + 4|0); - $expanded74 = $80; - $expanded73 = (($expanded74) - 1)|0; - $expanded72 = $expanded73 ^ -1; - $81 = $79 & $expanded72; - $82 = $81; - $83 = HEAP32[$82>>2]|0; - $arglist_next18 = ((($82)) + 4|0); - HEAP32[$2>>2] = $arglist_next18; - $84 = $83&255; - $85 = $84 << 24 >> 24; - $86 = ($85|0)<(0); - $87 = $86 << 31 >> 31; - $88 = $0; - $89 = $88; - HEAP32[$89>>2] = $85; - $90 = (($88) + 4)|0; - $91 = $90; - HEAP32[$91>>2] = $87; - break L1; - break; - } - case 16: { - $arglist_current20 = HEAP32[$2>>2]|0; - $92 = $arglist_current20; - $93 = ((0) + 4|0); - $expanded77 = $93; - $expanded76 = (($expanded77) - 1)|0; - $94 = (($92) + ($expanded76))|0; - $95 = ((0) + 4|0); - $expanded81 = $95; - $expanded80 = (($expanded81) - 1)|0; - $expanded79 = $expanded80 ^ -1; - $96 = $94 & $expanded79; - $97 = $96; - $98 = HEAP32[$97>>2]|0; - $arglist_next21 = ((($97)) + 4|0); - HEAP32[$2>>2] = $arglist_next21; - $$mask = $98 & 255; - $99 = $0; - $100 = $99; - HEAP32[$100>>2] = $$mask; - $101 = (($99) + 4)|0; - $102 = $101; - HEAP32[$102>>2] = 0; - break L1; - break; - } - case 17: { - $arglist_current23 = HEAP32[$2>>2]|0; - $103 = $arglist_current23; - $104 = ((0) + 8|0); - $expanded84 = $104; - $expanded83 = (($expanded84) - 1)|0; - $105 = (($103) + ($expanded83))|0; - $106 = ((0) + 8|0); - $expanded88 = $106; - $expanded87 = (($expanded88) - 1)|0; - $expanded86 = $expanded87 ^ -1; - $107 = $105 & $expanded86; - $108 = $107; - $109 = +HEAPF64[$108>>3]; - $arglist_next24 = ((($108)) + 8|0); - HEAP32[$2>>2] = $arglist_next24; - HEAPF64[$0>>3] = $109; - break L1; - break; - } - case 18: { - $arglist_current26 = HEAP32[$2>>2]|0; - $110 = $arglist_current26; - $111 = ((0) + 8|0); - $expanded91 = $111; - $expanded90 = (($expanded91) - 1)|0; - $112 = (($110) + ($expanded90))|0; - $113 = ((0) + 8|0); - $expanded95 = $113; - $expanded94 = (($expanded95) - 1)|0; - $expanded93 = $expanded94 ^ -1; - $114 = $112 & $expanded93; - $115 = $114; - $116 = +HEAPF64[$115>>3]; - $arglist_next27 = ((($115)) + 8|0); - HEAP32[$2>>2] = $arglist_next27; - HEAPF64[$0>>3] = $116; - break L1; - break; - } - default: { - break L1; - } - } - } while(0); - } - } while(0); - return; -} -function _fmt_x($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$05$lcssa = 0, $$056 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0; - var sp = 0; - sp = STACKTOP; - $4 = ($0|0)==(0); - $5 = ($1|0)==(0); - $6 = $4 & $5; - if ($6) { - $$05$lcssa = $2; - } else { - $$056 = $2;$15 = $1;$8 = $0; - while(1) { - $7 = $8 & 15; - $9 = (18429 + ($7)|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10&255; - $12 = $11 | $3; - $13 = $12&255; - $14 = ((($$056)) + -1|0); - HEAP8[$14>>0] = $13; - $16 = (_bitshift64Lshr(($8|0),($15|0),4)|0); - $17 = tempRet0; - $18 = ($16|0)==(0); - $19 = ($17|0)==(0); - $20 = $18 & $19; - if ($20) { - $$05$lcssa = $14; - break; - } else { - $$056 = $14;$15 = $17;$8 = $16; - } - } - } - return ($$05$lcssa|0); -} -function _fmt_o($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$06 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0); - $4 = ($1|0)==(0); - $5 = $3 & $4; - if ($5) { - $$0$lcssa = $2; - } else { - $$06 = $2;$11 = $1;$7 = $0; - while(1) { - $6 = $7&255; - $8 = $6 & 7; - $9 = $8 | 48; - $10 = ((($$06)) + -1|0); - HEAP8[$10>>0] = $9; - $12 = (_bitshift64Lshr(($7|0),($11|0),3)|0); - $13 = tempRet0; - $14 = ($12|0)==(0); - $15 = ($13|0)==(0); - $16 = $14 & $15; - if ($16) { - $$0$lcssa = $10; - break; - } else { - $$06 = $10;$11 = $13;$7 = $12; - } - } - } - return ($$0$lcssa|0); -} -function _fmt_u($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$010$lcssa$off0 = 0, $$012 = 0, $$09$lcssa = 0, $$0914 = 0, $$1$lcssa = 0, $$111 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0; - var $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($1>>>0)>(0); - $4 = ($0>>>0)>(4294967295); - $5 = ($1|0)==(0); - $6 = $5 & $4; - $7 = $3 | $6; - if ($7) { - $$0914 = $2;$8 = $0;$9 = $1; - while(1) { - $10 = (___udivdi3(($8|0),($9|0),10,0)|0); - $11 = tempRet0; - $12 = (___muldi3(($10|0),($11|0),10,0)|0); - $13 = tempRet0; - $14 = (_i64Subtract(($8|0),($9|0),($12|0),($13|0))|0); - $15 = tempRet0; - $16 = $14&255; - $17 = $16 | 48; - $18 = ((($$0914)) + -1|0); - HEAP8[$18>>0] = $17; - $19 = ($9>>>0)>(9); - $20 = ($8>>>0)>(4294967295); - $21 = ($9|0)==(9); - $22 = $21 & $20; - $23 = $19 | $22; - if ($23) { - $$0914 = $18;$8 = $10;$9 = $11; - } else { - break; - } - } - $$010$lcssa$off0 = $10;$$09$lcssa = $18; - } else { - $$010$lcssa$off0 = $0;$$09$lcssa = $2; - } - $24 = ($$010$lcssa$off0|0)==(0); - if ($24) { - $$1$lcssa = $$09$lcssa; - } else { - $$012 = $$010$lcssa$off0;$$111 = $$09$lcssa; - while(1) { - $25 = (($$012>>>0) / 10)&-1; - $26 = ($25*10)|0; - $27 = (($$012) - ($26))|0; - $28 = $27 | 48; - $29 = $28&255; - $30 = ((($$111)) + -1|0); - HEAP8[$30>>0] = $29; - $31 = ($$012>>>0)<(10); - if ($31) { - $$1$lcssa = $30; - break; - } else { - $$012 = $25;$$111 = $30; - } - } - } - return ($$1$lcssa|0); -} -function _strerror($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (___pthread_self_105()|0); - $2 = ((($1)) + 188|0); - $3 = HEAP32[$2>>2]|0; - $4 = (___strerror_l($0,$3)|0); - return ($4|0); -} -function _memchr($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0$lcssa = 0, $$035$lcssa = 0, $$035$lcssa65 = 0, $$03555 = 0, $$036$lcssa = 0, $$036$lcssa64 = 0, $$03654 = 0, $$046 = 0, $$137$lcssa = 0, $$137$lcssa66 = 0, $$13745 = 0, $$140 = 0, $$23839 = 0, $$in = 0, $$lcssa = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0; - var $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; - var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond53 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = $1 & 255; - $4 = $0; - $5 = $4 & 3; - $6 = ($5|0)!=(0); - $7 = ($2|0)!=(0); - $or$cond53 = $7 & $6; - L1: do { - if ($or$cond53) { - $8 = $1&255; - $$03555 = $0;$$03654 = $2; - while(1) { - $9 = HEAP8[$$03555>>0]|0; - $10 = ($9<<24>>24)==($8<<24>>24); - if ($10) { - $$035$lcssa65 = $$03555;$$036$lcssa64 = $$03654; - label = 6; - break L1; - } - $11 = ((($$03555)) + 1|0); - $12 = (($$03654) + -1)|0; - $13 = $11; - $14 = $13 & 3; - $15 = ($14|0)!=(0); - $16 = ($12|0)!=(0); - $or$cond = $16 & $15; - if ($or$cond) { - $$03555 = $11;$$03654 = $12; - } else { - $$035$lcssa = $11;$$036$lcssa = $12;$$lcssa = $16; - label = 5; - break; - } - } - } else { - $$035$lcssa = $0;$$036$lcssa = $2;$$lcssa = $7; - label = 5; - } - } while(0); - if ((label|0) == 5) { - if ($$lcssa) { - $$035$lcssa65 = $$035$lcssa;$$036$lcssa64 = $$036$lcssa; - label = 6; - } else { - label = 16; - } - } - L8: do { - if ((label|0) == 6) { - $17 = HEAP8[$$035$lcssa65>>0]|0; - $18 = $1&255; - $19 = ($17<<24>>24)==($18<<24>>24); - if ($19) { - $38 = ($$036$lcssa64|0)==(0); - if ($38) { - label = 16; - break; - } else { - $39 = $$035$lcssa65; - break; - } - } - $20 = Math_imul($3, 16843009)|0; - $21 = ($$036$lcssa64>>>0)>(3); - L13: do { - if ($21) { - $$046 = $$035$lcssa65;$$13745 = $$036$lcssa64; - while(1) { - $22 = HEAP32[$$046>>2]|0; - $23 = $22 ^ $20; - $24 = (($23) + -16843009)|0; - $25 = $23 & -2139062144; - $26 = $25 ^ -2139062144; - $27 = $26 & $24; - $28 = ($27|0)==(0); - if (!($28)) { - $$137$lcssa66 = $$13745;$$in = $$046; - break L13; - } - $29 = ((($$046)) + 4|0); - $30 = (($$13745) + -4)|0; - $31 = ($30>>>0)>(3); - if ($31) { - $$046 = $29;$$13745 = $30; - } else { - $$0$lcssa = $29;$$137$lcssa = $30; - label = 11; - break; - } - } - } else { - $$0$lcssa = $$035$lcssa65;$$137$lcssa = $$036$lcssa64; - label = 11; - } - } while(0); - if ((label|0) == 11) { - $32 = ($$137$lcssa|0)==(0); - if ($32) { - label = 16; - break; - } else { - $$137$lcssa66 = $$137$lcssa;$$in = $$0$lcssa; - } - } - $$140 = $$in;$$23839 = $$137$lcssa66; - while(1) { - $33 = HEAP8[$$140>>0]|0; - $34 = ($33<<24>>24)==($18<<24>>24); - if ($34) { - $39 = $$140; - break L8; - } - $35 = ((($$140)) + 1|0); - $36 = (($$23839) + -1)|0; - $37 = ($36|0)==(0); - if ($37) { - label = 16; - break; - } else { - $$140 = $35;$$23839 = $36; - } - } - } - } while(0); - if ((label|0) == 16) { - $39 = 0; - } - return ($39|0); -} -function _pad_683($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0$lcssa = 0, $$011 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 256|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(256|0); - $5 = sp; - $6 = $4 & 73728; - $7 = ($6|0)==(0); - $8 = ($2|0)>($3|0); - $or$cond = $8 & $7; - if ($or$cond) { - $9 = (($2) - ($3))|0; - $10 = $1 << 24 >> 24; - $11 = ($9>>>0)<(256); - $12 = $11 ? $9 : 256; - (_memset(($5|0),($10|0),($12|0))|0); - $13 = ($9>>>0)>(255); - if ($13) { - $14 = (($2) - ($3))|0; - $$011 = $9; - while(1) { - _out($0,$5,256); - $15 = (($$011) + -256)|0; - $16 = ($15>>>0)>(255); - if ($16) { - $$011 = $15; - } else { - break; - } - } - $17 = $14 & 255; - $$0$lcssa = $17; - } else { - $$0$lcssa = $9; - } - _out($0,$5,$$0$lcssa); - } - STACKTOP = sp;return; -} -function _wctomb($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($0|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = (_wcrtomb($0,$1,0)|0); - $$0 = $3; - } - return ($$0|0); -} -function _fmt_fp($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = +$1; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$ = 0, $$0 = 0, $$0463$lcssa = 0, $$0463588 = 0, $$0464599 = 0, $$0471 = 0.0, $$0479 = 0, $$0487657 = 0, $$0488 = 0, $$0488669 = 0, $$0488671 = 0, $$0497670 = 0, $$0498 = 0, $$0511586 = 0.0, $$0512 = 0, $$0513 = 0, $$0516652 = 0, $$0522 = 0, $$0523 = 0, $$0525 = 0; - var $$0527 = 0, $$0529 = 0, $$0529$in646 = 0, $$0532651 = 0, $$1465 = 0, $$1467 = 0.0, $$1469 = 0.0, $$1472 = 0.0, $$1480 = 0, $$1482$lcssa = 0, $$1482683 = 0, $$1489656 = 0, $$1499 = 0, $$1510587 = 0, $$1514$lcssa = 0, $$1514614 = 0, $$1517 = 0, $$1526 = 0, $$1528 = 0, $$1530621 = 0; - var $$1533$lcssa = 0, $$1533645 = 0, $$1604 = 0, $$2 = 0, $$2473 = 0.0, $$2476 = 0, $$2483 = 0, $$2490$lcssa = 0, $$2490638 = 0, $$2500$lcssa = 0, $$2500682 = 0, $$2515 = 0, $$2518634 = 0, $$2531 = 0, $$2534633 = 0, $$3 = 0.0, $$3477 = 0, $$3484$lcssa = 0, $$3484663 = 0, $$3501$lcssa = 0; - var $$3501676 = 0, $$3535620 = 0, $$4 = 0.0, $$4478$lcssa = 0, $$4478594 = 0, $$4492 = 0, $$4502$lcssa = 0, $$4502662 = 0, $$4520 = 0, $$5$lcssa = 0, $$5486$lcssa = 0, $$5486639 = 0, $$5493603 = 0, $$5503 = 0, $$5521 = 0, $$560 = 0, $$5609 = 0, $$6 = 0, $$6494593 = 0, $$7495608 = 0; - var $$8 = 0, $$8506 = 0, $$9 = 0, $$9507$lcssa = 0, $$9507625 = 0, $$lcssa583 = 0, $$lobit = 0, $$neg = 0, $$neg571 = 0, $$not = 0, $$pn = 0, $$pr = 0, $$pr564 = 0, $$pre = 0, $$pre$phi713Z2D = 0, $$pre$phi714Z2D = 0, $$pre716 = 0, $$sink755 = 0, $10 = 0, $100 = 0; - var $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0; - var $12 = 0, $120 = 0, $121 = 0.0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; - var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0.0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0; - var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0; - var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0; - var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0; - var $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0; - var $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0.0; - var $247 = 0.0, $248 = 0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0; - var $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0; - var $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $30 = 0, $300 = 0; - var $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0; - var $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0; - var $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0; - var $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0.0, $370 = 0, $371 = 0, $372 = 0, $373 = 0; - var $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0.0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0; - var $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0; - var $410 = 0, $411 = 0, $412 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0.0; - var $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; - var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0; - var $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $not$ = 0, $or$cond = 0, $or$cond3$not = 0, $or$cond543 = 0, $or$cond546 = 0, $or$cond556 = 0, $or$cond559 = 0, $or$cond6 = 0, $scevgep707 = 0, $scevgep707708 = 0, $spec$select = 0, $spec$select539 = 0, $spec$select540 = 0, $spec$select540720 = 0, $spec$select540721 = 0; - var $spec$select541 = 0, $spec$select544 = 0.0, $spec$select547 = 0, $spec$select548 = 0, $spec$select549 = 0, $spec$select551 = 0, $spec$select554 = 0, $spec$select557 = 0, $spec$select561 = 0.0, $spec$select562 = 0, $spec$select563 = 0, $spec$select565 = 0, $spec$select566 = 0, $spec$select567 = 0.0, $spec$select568 = 0.0, $spec$select569 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 560|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(560|0); - $6 = sp + 8|0; - $7 = sp; - $8 = sp + 524|0; - $9 = $8; - $10 = sp + 512|0; - HEAP32[$7>>2] = 0; - $11 = ((($10)) + 12|0); - $12 = (___DOUBLE_BITS_684($1)|0); - $13 = tempRet0; - $14 = ($13|0)<(0); - if ($14) { - $15 = - $1; - $16 = (___DOUBLE_BITS_684($15)|0); - $17 = tempRet0; - $$0471 = $15;$$0522 = 1;$$0523 = 18394;$25 = $17;$412 = $16; - } else { - $18 = $4 & 2048; - $19 = ($18|0)==(0); - $20 = $4 & 1; - $21 = ($20|0)==(0); - $$ = $21 ? (18395) : (18400); - $spec$select565 = $19 ? $$ : (18397); - $22 = $4 & 2049; - $23 = ($22|0)!=(0); - $spec$select566 = $23&1; - $$0471 = $1;$$0522 = $spec$select566;$$0523 = $spec$select565;$25 = $13;$412 = $12; - } - $24 = $25 & 2146435072; - $26 = (0)==(0); - $27 = ($24|0)==(2146435072); - $28 = $26 & $27; - do { - if ($28) { - $29 = $5 & 32; - $30 = ($29|0)!=(0); - $31 = $30 ? 18413 : 18417; - $32 = ($$0471 != $$0471) | (0.0 != 0.0); - $33 = $30 ? 18421 : 18425; - $$0512 = $32 ? $33 : $31; - $34 = (($$0522) + 3)|0; - $35 = $4 & -65537; - _pad_683($0,32,$2,$34,$35); - _out($0,$$0523,$$0522); - _out($0,$$0512,3); - $36 = $4 ^ 8192; - _pad_683($0,32,$2,$34,$36); - $$sink755 = $34; - } else { - $37 = (+_frexpl($$0471,$7)); - $38 = $37 * 2.0; - $39 = $38 != 0.0; - if ($39) { - $40 = HEAP32[$7>>2]|0; - $41 = (($40) + -1)|0; - HEAP32[$7>>2] = $41; - } - $42 = $5 | 32; - $43 = ($42|0)==(97); - if ($43) { - $44 = $5 & 32; - $45 = ($44|0)==(0); - $46 = ((($$0523)) + 9|0); - $spec$select = $45 ? $$0523 : $46; - $47 = $$0522 | 2; - $48 = ($3>>>0)>(11); - $49 = (12 - ($3))|0; - $50 = ($49|0)==(0); - $51 = $48 | $50; - do { - if ($51) { - $$1472 = $38; - } else { - $$0511586 = 8.0;$$1510587 = $49; - while(1) { - $52 = (($$1510587) + -1)|0; - $53 = $$0511586 * 16.0; - $54 = ($52|0)==(0); - if ($54) { - break; - } else { - $$0511586 = $53;$$1510587 = $52; - } - } - $55 = HEAP8[$spec$select>>0]|0; - $56 = ($55<<24>>24)==(45); - if ($56) { - $57 = - $38; - $58 = $57 - $53; - $59 = $53 + $58; - $60 = - $59; - $$1472 = $60; - break; - } else { - $61 = $38 + $53; - $62 = $61 - $53; - $$1472 = $62; - break; - } - } - } while(0); - $63 = HEAP32[$7>>2]|0; - $64 = ($63|0)<(0); - $65 = (0 - ($63))|0; - $66 = $64 ? $65 : $63; - $67 = ($66|0)<(0); - $68 = $67 << 31 >> 31; - $69 = (_fmt_u($66,$68,$11)|0); - $70 = ($69|0)==($11|0); - if ($70) { - $71 = ((($10)) + 11|0); - HEAP8[$71>>0] = 48; - $$0513 = $71; - } else { - $$0513 = $69; - } - $72 = $63 >> 31; - $73 = $72 & 2; - $74 = (($73) + 43)|0; - $75 = $74&255; - $76 = ((($$0513)) + -1|0); - HEAP8[$76>>0] = $75; - $77 = (($5) + 15)|0; - $78 = $77&255; - $79 = ((($$0513)) + -2|0); - HEAP8[$79>>0] = $78; - $80 = ($3|0)<(1); - $81 = $4 & 8; - $82 = ($81|0)==(0); - $$0525 = $8;$$2473 = $$1472; - while(1) { - $83 = (~~(($$2473))); - $84 = (18429 + ($83)|0); - $85 = HEAP8[$84>>0]|0; - $86 = $85&255; - $87 = $44 | $86; - $88 = $87&255; - $89 = ((($$0525)) + 1|0); - HEAP8[$$0525>>0] = $88; - $90 = (+($83|0)); - $91 = $$2473 - $90; - $92 = $91 * 16.0; - $93 = $89; - $94 = (($93) - ($9))|0; - $95 = ($94|0)==(1); - if ($95) { - $96 = $92 == 0.0; - $or$cond3$not = $80 & $96; - $or$cond = $82 & $or$cond3$not; - if ($or$cond) { - $$1526 = $89; - } else { - $97 = ((($$0525)) + 2|0); - HEAP8[$89>>0] = 46; - $$1526 = $97; - } - } else { - $$1526 = $89; - } - $98 = $92 != 0.0; - if ($98) { - $$0525 = $$1526;$$2473 = $92; - } else { - break; - } - } - $99 = ($3|0)==(0); - $$pre716 = $$1526; - if ($99) { - label = 25; - } else { - $100 = (-2 - ($9))|0; - $101 = (($100) + ($$pre716))|0; - $102 = ($101|0)<($3|0); - if ($102) { - $103 = $11; - $104 = $79; - $105 = (($3) + 2)|0; - $106 = (($105) + ($103))|0; - $107 = (($106) - ($104))|0; - $$0527 = $107;$$pre$phi713Z2D = $103;$$pre$phi714Z2D = $104; - } else { - label = 25; - } - } - if ((label|0) == 25) { - $108 = $11; - $109 = $79; - $110 = (($108) - ($9))|0; - $111 = (($110) - ($109))|0; - $112 = (($111) + ($$pre716))|0; - $$0527 = $112;$$pre$phi713Z2D = $108;$$pre$phi714Z2D = $109; - } - $113 = (($$0527) + ($47))|0; - _pad_683($0,32,$2,$113,$4); - _out($0,$spec$select,$47); - $114 = $4 ^ 65536; - _pad_683($0,48,$2,$113,$114); - $115 = (($$pre716) - ($9))|0; - _out($0,$8,$115); - $116 = (($$pre$phi713Z2D) - ($$pre$phi714Z2D))|0; - $117 = (($115) + ($116))|0; - $118 = (($$0527) - ($117))|0; - _pad_683($0,48,$118,0,0); - _out($0,$79,$116); - $119 = $4 ^ 8192; - _pad_683($0,32,$2,$113,$119); - $$sink755 = $113; - break; - } - $120 = ($3|0)<(0); - $spec$select539 = $120 ? 6 : $3; - if ($39) { - $121 = $38 * 268435456.0; - $122 = HEAP32[$7>>2]|0; - $123 = (($122) + -28)|0; - HEAP32[$7>>2] = $123; - $$3 = $121;$$pr = $123; - } else { - $$pre = HEAP32[$7>>2]|0; - $$3 = $38;$$pr = $$pre; - } - $124 = ($$pr|0)<(0); - $125 = ((($6)) + 288|0); - $$0498 = $124 ? $6 : $125; - $$1499 = $$0498;$$4 = $$3; - while(1) { - $126 = (~~(($$4))>>>0); - HEAP32[$$1499>>2] = $126; - $127 = ((($$1499)) + 4|0); - $128 = (+($126>>>0)); - $129 = $$4 - $128; - $130 = $129 * 1.0E+9; - $131 = $130 != 0.0; - if ($131) { - $$1499 = $127;$$4 = $130; - } else { - break; - } - } - $132 = ($$pr|0)>(0); - if ($132) { - $$1482683 = $$0498;$$2500682 = $127;$134 = $$pr; - while(1) { - $133 = ($134|0)<(29); - $135 = $133 ? $134 : 29; - $$0488669 = ((($$2500682)) + -4|0); - $136 = ($$0488669>>>0)<($$1482683>>>0); - if ($136) { - $$2483 = $$1482683; - } else { - $$0488671 = $$0488669;$$0497670 = 0; - while(1) { - $137 = HEAP32[$$0488671>>2]|0; - $138 = (_bitshift64Shl(($137|0),0,($135|0))|0); - $139 = tempRet0; - $140 = (_i64Add(($138|0),($139|0),($$0497670|0),0)|0); - $141 = tempRet0; - $142 = (___udivdi3(($140|0),($141|0),1000000000,0)|0); - $143 = tempRet0; - $144 = (___muldi3(($142|0),($143|0),1000000000,0)|0); - $145 = tempRet0; - $146 = (_i64Subtract(($140|0),($141|0),($144|0),($145|0))|0); - $147 = tempRet0; - HEAP32[$$0488671>>2] = $146; - $$0488 = ((($$0488671)) + -4|0); - $148 = ($$0488>>>0)<($$1482683>>>0); - if ($148) { - break; - } else { - $$0488671 = $$0488;$$0497670 = $142; - } - } - $149 = ($142|0)==(0); - if ($149) { - $$2483 = $$1482683; - } else { - $150 = ((($$1482683)) + -4|0); - HEAP32[$150>>2] = $142; - $$2483 = $150; - } - } - $151 = ($$2500682>>>0)>($$2483>>>0); - L57: do { - if ($151) { - $$3501676 = $$2500682; - while(1) { - $153 = ((($$3501676)) + -4|0); - $154 = HEAP32[$153>>2]|0; - $155 = ($154|0)==(0); - if (!($155)) { - $$3501$lcssa = $$3501676; - break L57; - } - $152 = ($153>>>0)>($$2483>>>0); - if ($152) { - $$3501676 = $153; - } else { - $$3501$lcssa = $153; - break; - } - } - } else { - $$3501$lcssa = $$2500682; - } - } while(0); - $156 = HEAP32[$7>>2]|0; - $157 = (($156) - ($135))|0; - HEAP32[$7>>2] = $157; - $158 = ($157|0)>(0); - if ($158) { - $$1482683 = $$2483;$$2500682 = $$3501$lcssa;$134 = $157; - } else { - $$1482$lcssa = $$2483;$$2500$lcssa = $$3501$lcssa;$$pr564 = $157; - break; - } - } - } else { - $$1482$lcssa = $$0498;$$2500$lcssa = $127;$$pr564 = $$pr; - } - $159 = ($$pr564|0)<(0); - if ($159) { - $160 = (($spec$select539) + 25)|0; - $161 = (($160|0) / 9)&-1; - $162 = (($161) + 1)|0; - $163 = ($42|0)==(102); - $$3484663 = $$1482$lcssa;$$4502662 = $$2500$lcssa;$165 = $$pr564; - while(1) { - $164 = (0 - ($165))|0; - $166 = ($164|0)<(9); - $167 = $166 ? $164 : 9; - $168 = ($$3484663>>>0)<($$4502662>>>0); - if ($168) { - $172 = 1 << $167; - $173 = (($172) + -1)|0; - $174 = 1000000000 >>> $167; - $$0487657 = 0;$$1489656 = $$3484663; - while(1) { - $175 = HEAP32[$$1489656>>2]|0; - $176 = $175 & $173; - $177 = $175 >>> $167; - $178 = (($177) + ($$0487657))|0; - HEAP32[$$1489656>>2] = $178; - $179 = Math_imul($176, $174)|0; - $180 = ((($$1489656)) + 4|0); - $181 = ($180>>>0)<($$4502662>>>0); - if ($181) { - $$0487657 = $179;$$1489656 = $180; - } else { - break; - } - } - $182 = HEAP32[$$3484663>>2]|0; - $183 = ($182|0)==(0); - $184 = ((($$3484663)) + 4|0); - $spec$select540 = $183 ? $184 : $$3484663; - $185 = ($179|0)==(0); - if ($185) { - $$5503 = $$4502662;$spec$select540721 = $spec$select540; - } else { - $186 = ((($$4502662)) + 4|0); - HEAP32[$$4502662>>2] = $179; - $$5503 = $186;$spec$select540721 = $spec$select540; - } - } else { - $169 = HEAP32[$$3484663>>2]|0; - $170 = ($169|0)==(0); - $171 = ((($$3484663)) + 4|0); - $spec$select540720 = $170 ? $171 : $$3484663; - $$5503 = $$4502662;$spec$select540721 = $spec$select540720; - } - $187 = $163 ? $$0498 : $spec$select540721; - $188 = $$5503; - $189 = $187; - $190 = (($188) - ($189))|0; - $191 = $190 >> 2; - $192 = ($191|0)>($162|0); - $193 = (($187) + ($162<<2)|0); - $spec$select541 = $192 ? $193 : $$5503; - $194 = HEAP32[$7>>2]|0; - $195 = (($194) + ($167))|0; - HEAP32[$7>>2] = $195; - $196 = ($195|0)<(0); - if ($196) { - $$3484663 = $spec$select540721;$$4502662 = $spec$select541;$165 = $195; - } else { - $$3484$lcssa = $spec$select540721;$$4502$lcssa = $spec$select541; - break; - } - } - } else { - $$3484$lcssa = $$1482$lcssa;$$4502$lcssa = $$2500$lcssa; - } - $197 = ($$3484$lcssa>>>0)<($$4502$lcssa>>>0); - $198 = $$0498; - if ($197) { - $199 = $$3484$lcssa; - $200 = (($198) - ($199))|0; - $201 = $200 >> 2; - $202 = ($201*9)|0; - $203 = HEAP32[$$3484$lcssa>>2]|0; - $204 = ($203>>>0)<(10); - if ($204) { - $$1517 = $202; - } else { - $$0516652 = $202;$$0532651 = 10; - while(1) { - $205 = ($$0532651*10)|0; - $206 = (($$0516652) + 1)|0; - $207 = ($203>>>0)<($205>>>0); - if ($207) { - $$1517 = $206; - break; - } else { - $$0516652 = $206;$$0532651 = $205; - } - } - } - } else { - $$1517 = 0; - } - $208 = ($42|0)==(102); - $209 = $208 ? 0 : $$1517; - $210 = (($spec$select539) - ($209))|0; - $211 = ($42|0)==(103); - $212 = ($spec$select539|0)!=(0); - $213 = $212 & $211; - $$neg = $213 << 31 >> 31; - $214 = (($210) + ($$neg))|0; - $215 = $$4502$lcssa; - $216 = (($215) - ($198))|0; - $217 = $216 >> 2; - $218 = ($217*9)|0; - $219 = (($218) + -9)|0; - $220 = ($214|0)<($219|0); - if ($220) { - $221 = ((($$0498)) + 4|0); - $222 = (($214) + 9216)|0; - $223 = (($222|0) / 9)&-1; - $224 = (($223) + -1024)|0; - $225 = (($221) + ($224<<2)|0); - $226 = ($223*9)|0; - $227 = (($222) - ($226))|0; - $228 = ($227|0)<(8); - if ($228) { - $$0529$in646 = $227;$$1533645 = 10; - while(1) { - $$0529 = (($$0529$in646) + 1)|0; - $229 = ($$1533645*10)|0; - $230 = ($$0529$in646|0)<(7); - if ($230) { - $$0529$in646 = $$0529;$$1533645 = $229; - } else { - $$1533$lcssa = $229; - break; - } - } - } else { - $$1533$lcssa = 10; - } - $231 = HEAP32[$225>>2]|0; - $232 = (($231>>>0) / ($$1533$lcssa>>>0))&-1; - $233 = Math_imul($232, $$1533$lcssa)|0; - $234 = (($231) - ($233))|0; - $235 = ($234|0)==(0); - $236 = ((($225)) + 4|0); - $237 = ($236|0)==($$4502$lcssa|0); - $or$cond543 = $237 & $235; - if ($or$cond543) { - $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa; - } else { - $238 = $232 & 1; - $239 = ($238|0)==(0); - $spec$select544 = $239 ? 9007199254740992.0 : 9007199254740994.0; - $240 = $$1533$lcssa >>> 1; - $241 = ($234>>>0)<($240>>>0); - $242 = ($234|0)==($240|0); - $or$cond546 = $237 & $242; - $spec$select561 = $or$cond546 ? 1.0 : 1.5; - $spec$select567 = $241 ? 0.5 : $spec$select561; - $243 = ($$0522|0)==(0); - if ($243) { - $$1467 = $spec$select567;$$1469 = $spec$select544; - } else { - $244 = HEAP8[$$0523>>0]|0; - $245 = ($244<<24>>24)==(45); - $246 = - $spec$select544; - $247 = - $spec$select567; - $spec$select568 = $245 ? $246 : $spec$select544; - $spec$select569 = $245 ? $247 : $spec$select567; - $$1467 = $spec$select569;$$1469 = $spec$select568; - } - $248 = (($231) - ($234))|0; - HEAP32[$225>>2] = $248; - $249 = $$1469 + $$1467; - $250 = $249 != $$1469; - if ($250) { - $251 = (($248) + ($$1533$lcssa))|0; - HEAP32[$225>>2] = $251; - $252 = ($251>>>0)>(999999999); - if ($252) { - $$2490638 = $225;$$5486639 = $$3484$lcssa; - while(1) { - $253 = ((($$2490638)) + -4|0); - HEAP32[$$2490638>>2] = 0; - $254 = ($253>>>0)<($$5486639>>>0); - if ($254) { - $255 = ((($$5486639)) + -4|0); - HEAP32[$255>>2] = 0; - $$6 = $255; - } else { - $$6 = $$5486639; - } - $256 = HEAP32[$253>>2]|0; - $257 = (($256) + 1)|0; - HEAP32[$253>>2] = $257; - $258 = ($257>>>0)>(999999999); - if ($258) { - $$2490638 = $253;$$5486639 = $$6; - } else { - $$2490$lcssa = $253;$$5486$lcssa = $$6; - break; - } - } - } else { - $$2490$lcssa = $225;$$5486$lcssa = $$3484$lcssa; - } - $259 = $$5486$lcssa; - $260 = (($198) - ($259))|0; - $261 = $260 >> 2; - $262 = ($261*9)|0; - $263 = HEAP32[$$5486$lcssa>>2]|0; - $264 = ($263>>>0)<(10); - if ($264) { - $$4492 = $$2490$lcssa;$$4520 = $262;$$8 = $$5486$lcssa; - } else { - $$2518634 = $262;$$2534633 = 10; - while(1) { - $265 = ($$2534633*10)|0; - $266 = (($$2518634) + 1)|0; - $267 = ($263>>>0)<($265>>>0); - if ($267) { - $$4492 = $$2490$lcssa;$$4520 = $266;$$8 = $$5486$lcssa; - break; - } else { - $$2518634 = $266;$$2534633 = $265; - } - } - } - } else { - $$4492 = $225;$$4520 = $$1517;$$8 = $$3484$lcssa; - } - } - $268 = ((($$4492)) + 4|0); - $269 = ($$4502$lcssa>>>0)>($268>>>0); - $spec$select547 = $269 ? $268 : $$4502$lcssa; - $$5521 = $$4520;$$8506 = $spec$select547;$$9 = $$8; - } else { - $$5521 = $$1517;$$8506 = $$4502$lcssa;$$9 = $$3484$lcssa; - } - $270 = (0 - ($$5521))|0; - $271 = ($$8506>>>0)>($$9>>>0); - L109: do { - if ($271) { - $$9507625 = $$8506; - while(1) { - $273 = ((($$9507625)) + -4|0); - $274 = HEAP32[$273>>2]|0; - $275 = ($274|0)==(0); - if (!($275)) { - $$9507$lcssa = $$9507625;$$lcssa583 = 1; - break L109; - } - $272 = ($273>>>0)>($$9>>>0); - if ($272) { - $$9507625 = $273; - } else { - $$9507$lcssa = $273;$$lcssa583 = 0; - break; - } - } - } else { - $$9507$lcssa = $$8506;$$lcssa583 = 0; - } - } while(0); - do { - if ($211) { - $not$ = $212 ^ 1; - $276 = $not$&1; - $spec$select548 = (($spec$select539) + ($276))|0; - $277 = ($spec$select548|0)>($$5521|0); - $278 = ($$5521|0)>(-5); - $or$cond6 = $277 & $278; - if ($or$cond6) { - $279 = (($5) + -1)|0; - $$neg571 = (($spec$select548) + -1)|0; - $280 = (($$neg571) - ($$5521))|0; - $$0479 = $279;$$2476 = $280; - } else { - $281 = (($5) + -2)|0; - $282 = (($spec$select548) + -1)|0; - $$0479 = $281;$$2476 = $282; - } - $283 = $4 & 8; - $284 = ($283|0)==(0); - if ($284) { - if ($$lcssa583) { - $285 = ((($$9507$lcssa)) + -4|0); - $286 = HEAP32[$285>>2]|0; - $287 = ($286|0)==(0); - if ($287) { - $$2531 = 9; - } else { - $288 = (($286>>>0) % 10)&-1; - $289 = ($288|0)==(0); - if ($289) { - $$1530621 = 0;$$3535620 = 10; - while(1) { - $290 = ($$3535620*10)|0; - $291 = (($$1530621) + 1)|0; - $292 = (($286>>>0) % ($290>>>0))&-1; - $293 = ($292|0)==(0); - if ($293) { - $$1530621 = $291;$$3535620 = $290; - } else { - $$2531 = $291; - break; - } - } - } else { - $$2531 = 0; - } - } - } else { - $$2531 = 9; - } - $294 = $$0479 | 32; - $295 = ($294|0)==(102); - $296 = $$9507$lcssa; - $297 = (($296) - ($198))|0; - $298 = $297 >> 2; - $299 = ($298*9)|0; - $300 = (($299) + -9)|0; - if ($295) { - $301 = (($300) - ($$2531))|0; - $302 = ($301|0)>(0); - $spec$select549 = $302 ? $301 : 0; - $303 = ($$2476|0)<($spec$select549|0); - $spec$select562 = $303 ? $$2476 : $spec$select549; - $$1480 = $$0479;$$3477 = $spec$select562; - break; - } else { - $304 = (($300) + ($$5521))|0; - $305 = (($304) - ($$2531))|0; - $306 = ($305|0)>(0); - $spec$select551 = $306 ? $305 : 0; - $307 = ($$2476|0)<($spec$select551|0); - $spec$select563 = $307 ? $$2476 : $spec$select551; - $$1480 = $$0479;$$3477 = $spec$select563; - break; - } - } else { - $$1480 = $$0479;$$3477 = $$2476; - } - } else { - $$1480 = $5;$$3477 = $spec$select539; - } - } while(0); - $308 = ($$3477|0)!=(0); - $309 = $4 >>> 3; - $$lobit = $309 & 1; - $310 = $308 ? 1 : $$lobit; - $311 = $$1480 | 32; - $312 = ($311|0)==(102); - if ($312) { - $313 = ($$5521|0)>(0); - $314 = $313 ? $$5521 : 0; - $$2515 = 0;$$pn = $314; - } else { - $315 = ($$5521|0)<(0); - $316 = $315 ? $270 : $$5521; - $317 = ($316|0)<(0); - $318 = $317 << 31 >> 31; - $319 = (_fmt_u($316,$318,$11)|0); - $320 = $11; - $321 = $319; - $322 = (($320) - ($321))|0; - $323 = ($322|0)<(2); - if ($323) { - $$1514614 = $319; - while(1) { - $324 = ((($$1514614)) + -1|0); - HEAP8[$324>>0] = 48; - $325 = $324; - $326 = (($320) - ($325))|0; - $327 = ($326|0)<(2); - if ($327) { - $$1514614 = $324; - } else { - $$1514$lcssa = $324; - break; - } - } - } else { - $$1514$lcssa = $319; - } - $328 = $$5521 >> 31; - $329 = $328 & 2; - $330 = (($329) + 43)|0; - $331 = $330&255; - $332 = ((($$1514$lcssa)) + -1|0); - HEAP8[$332>>0] = $331; - $333 = $$1480&255; - $334 = ((($$1514$lcssa)) + -2|0); - HEAP8[$334>>0] = $333; - $335 = $334; - $336 = (($320) - ($335))|0; - $$2515 = $334;$$pn = $336; - } - $337 = (($$0522) + 1)|0; - $338 = (($337) + ($$3477))|0; - $$1528 = (($338) + ($310))|0; - $339 = (($$1528) + ($$pn))|0; - _pad_683($0,32,$2,$339,$4); - _out($0,$$0523,$$0522); - $340 = $4 ^ 65536; - _pad_683($0,48,$2,$339,$340); - if ($312) { - $341 = ($$9>>>0)>($$0498>>>0); - $spec$select554 = $341 ? $$0498 : $$9; - $342 = ((($8)) + 9|0); - $343 = $342; - $344 = ((($8)) + 8|0); - $$5493603 = $spec$select554; - while(1) { - $345 = HEAP32[$$5493603>>2]|0; - $346 = (_fmt_u($345,0,$342)|0); - $347 = ($$5493603|0)==($spec$select554|0); - if ($347) { - $353 = ($346|0)==($342|0); - if ($353) { - HEAP8[$344>>0] = 48; - $$1465 = $344; - } else { - $$1465 = $346; - } - } else { - $348 = ($346>>>0)>($8>>>0); - if ($348) { - $349 = $346; - $350 = (($349) - ($9))|0; - _memset(($8|0),48,($350|0))|0; - $$0464599 = $346; - while(1) { - $351 = ((($$0464599)) + -1|0); - $352 = ($351>>>0)>($8>>>0); - if ($352) { - $$0464599 = $351; - } else { - $$1465 = $351; - break; - } - } - } else { - $$1465 = $346; - } - } - $354 = $$1465; - $355 = (($343) - ($354))|0; - _out($0,$$1465,$355); - $356 = ((($$5493603)) + 4|0); - $357 = ($356>>>0)>($$0498>>>0); - if ($357) { - break; - } else { - $$5493603 = $356; - } - } - $$not = $308 ^ 1; - $358 = $4 & 8; - $359 = ($358|0)==(0); - $or$cond556 = $359 & $$not; - if (!($or$cond556)) { - _out($0,18445,1); - } - $360 = ($356>>>0)<($$9507$lcssa>>>0); - $361 = ($$3477|0)>(0); - $362 = $360 & $361; - if ($362) { - $$4478594 = $$3477;$$6494593 = $356; - while(1) { - $363 = HEAP32[$$6494593>>2]|0; - $364 = (_fmt_u($363,0,$342)|0); - $365 = ($364>>>0)>($8>>>0); - if ($365) { - $366 = $364; - $367 = (($366) - ($9))|0; - _memset(($8|0),48,($367|0))|0; - $$0463588 = $364; - while(1) { - $368 = ((($$0463588)) + -1|0); - $369 = ($368>>>0)>($8>>>0); - if ($369) { - $$0463588 = $368; - } else { - $$0463$lcssa = $368; - break; - } - } - } else { - $$0463$lcssa = $364; - } - $370 = ($$4478594|0)<(9); - $371 = $370 ? $$4478594 : 9; - _out($0,$$0463$lcssa,$371); - $372 = ((($$6494593)) + 4|0); - $373 = (($$4478594) + -9)|0; - $374 = ($372>>>0)<($$9507$lcssa>>>0); - $375 = ($$4478594|0)>(9); - $376 = $374 & $375; - if ($376) { - $$4478594 = $373;$$6494593 = $372; - } else { - $$4478$lcssa = $373; - break; - } - } - } else { - $$4478$lcssa = $$3477; - } - $377 = (($$4478$lcssa) + 9)|0; - _pad_683($0,48,$377,9,0); - } else { - $378 = ((($$9)) + 4|0); - $spec$select557 = $$lcssa583 ? $$9507$lcssa : $378; - $379 = ($$9>>>0)<($spec$select557>>>0); - $380 = ($$3477|0)>(-1); - $381 = $379 & $380; - if ($381) { - $382 = ((($8)) + 9|0); - $383 = $4 & 8; - $384 = ($383|0)==(0); - $385 = $382; - $386 = (0 - ($9))|0; - $387 = ((($8)) + 8|0); - $$5609 = $$3477;$$7495608 = $$9; - while(1) { - $388 = HEAP32[$$7495608>>2]|0; - $389 = (_fmt_u($388,0,$382)|0); - $390 = ($389|0)==($382|0); - if ($390) { - HEAP8[$387>>0] = 48; - $$0 = $387; - } else { - $$0 = $389; - } - $391 = ($$7495608|0)==($$9|0); - do { - if ($391) { - $395 = ((($$0)) + 1|0); - _out($0,$$0,1); - $396 = ($$5609|0)<(1); - $or$cond559 = $384 & $396; - if ($or$cond559) { - $$2 = $395; - break; - } - _out($0,18445,1); - $$2 = $395; - } else { - $392 = ($$0>>>0)>($8>>>0); - if (!($392)) { - $$2 = $$0; - break; - } - $scevgep707 = (($$0) + ($386)|0); - $scevgep707708 = $scevgep707; - _memset(($8|0),48,($scevgep707708|0))|0; - $$1604 = $$0; - while(1) { - $393 = ((($$1604)) + -1|0); - $394 = ($393>>>0)>($8>>>0); - if ($394) { - $$1604 = $393; - } else { - $$2 = $393; - break; - } - } - } - } while(0); - $397 = $$2; - $398 = (($385) - ($397))|0; - $399 = ($$5609|0)>($398|0); - $400 = $399 ? $398 : $$5609; - _out($0,$$2,$400); - $401 = (($$5609) - ($398))|0; - $402 = ((($$7495608)) + 4|0); - $403 = ($402>>>0)<($spec$select557>>>0); - $404 = ($401|0)>(-1); - $405 = $403 & $404; - if ($405) { - $$5609 = $401;$$7495608 = $402; - } else { - $$5$lcssa = $401; - break; - } - } - } else { - $$5$lcssa = $$3477; - } - $406 = (($$5$lcssa) + 18)|0; - _pad_683($0,48,$406,18,0); - $407 = $11; - $408 = $$2515; - $409 = (($407) - ($408))|0; - _out($0,$$2515,$409); - } - $410 = $4 ^ 8192; - _pad_683($0,32,$2,$339,$410); - $$sink755 = $339; - } - } while(0); - $411 = ($$sink755|0)<($2|0); - $$560 = $411 ? $2 : $$sink755; - STACKTOP = sp;return ($$560|0); -} -function ___DOUBLE_BITS_684($0) { - $0 = +$0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$1 = HEAP32[tempDoublePtr>>2]|0; - $2 = HEAP32[tempDoublePtr+4>>2]|0; - tempRet0 = ($2); - return ($1|0); -} -function _frexpl($0,$1) { - $0 = +$0; - $1 = $1|0; - var $2 = 0.0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (+_frexp($0,$1)); - return (+$2); -} -function _frexp($0,$1) { - $0 = +$0; - $1 = $1|0; - var $$0 = 0.0, $$016 = 0.0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0.0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0.0, $9 = 0.0, $storemerge = 0, $trunc$clear = 0, label = 0; - var sp = 0; - sp = STACKTOP; - HEAPF64[tempDoublePtr>>3] = $0;$2 = HEAP32[tempDoublePtr>>2]|0; - $3 = HEAP32[tempDoublePtr+4>>2]|0; - $4 = (_bitshift64Lshr(($2|0),($3|0),52)|0); - $5 = tempRet0; - $6 = $4&65535; - $trunc$clear = $6 & 2047; - switch ($trunc$clear<<16>>16) { - case 0: { - $7 = $0 != 0.0; - if ($7) { - $8 = $0 * 1.8446744073709552E+19; - $9 = (+_frexp($8,$1)); - $10 = HEAP32[$1>>2]|0; - $11 = (($10) + -64)|0; - $$016 = $9;$storemerge = $11; - } else { - $$016 = $0;$storemerge = 0; - } - HEAP32[$1>>2] = $storemerge; - $$0 = $$016; - break; - } - case 2047: { - $$0 = $0; - break; - } - default: { - $12 = $4 & 2047; - $13 = (($12) + -1022)|0; - HEAP32[$1>>2] = $13; - $14 = $3 & -2146435073; - $15 = $14 | 1071644672; - HEAP32[tempDoublePtr>>2] = $2;HEAP32[tempDoublePtr+4>>2] = $15;$16 = +HEAPF64[tempDoublePtr>>3]; - $$0 = $16; - } - } - return (+$$0); -} -function _wcrtomb($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; - var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==(0|0); - do { - if ($3) { - $$0 = 1; - } else { - $4 = ($1>>>0)<(128); - if ($4) { - $5 = $1&255; - HEAP8[$0>>0] = $5; - $$0 = 1; - break; - } - $6 = (___pthread_self_430()|0); - $7 = ((($6)) + 188|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $10 = ($9|0)==(0|0); - if ($10) { - $11 = $1 & -128; - $12 = ($11|0)==(57216); - if ($12) { - $14 = $1&255; - HEAP8[$0>>0] = $14; - $$0 = 1; - break; - } else { - $13 = (___errno_location()|0); - HEAP32[$13>>2] = 84; - $$0 = -1; - break; - } - } - $15 = ($1>>>0)<(2048); - if ($15) { - $16 = $1 >>> 6; - $17 = $16 | 192; - $18 = $17&255; - $19 = ((($0)) + 1|0); - HEAP8[$0>>0] = $18; - $20 = $1 & 63; - $21 = $20 | 128; - $22 = $21&255; - HEAP8[$19>>0] = $22; - $$0 = 2; - break; - } - $23 = ($1>>>0)<(55296); - $24 = $1 & -8192; - $25 = ($24|0)==(57344); - $or$cond = $23 | $25; - if ($or$cond) { - $26 = $1 >>> 12; - $27 = $26 | 224; - $28 = $27&255; - $29 = ((($0)) + 1|0); - HEAP8[$0>>0] = $28; - $30 = $1 >>> 6; - $31 = $30 & 63; - $32 = $31 | 128; - $33 = $32&255; - $34 = ((($0)) + 2|0); - HEAP8[$29>>0] = $33; - $35 = $1 & 63; - $36 = $35 | 128; - $37 = $36&255; - HEAP8[$34>>0] = $37; - $$0 = 3; - break; - } - $38 = (($1) + -65536)|0; - $39 = ($38>>>0)<(1048576); - if ($39) { - $40 = $1 >>> 18; - $41 = $40 | 240; - $42 = $41&255; - $43 = ((($0)) + 1|0); - HEAP8[$0>>0] = $42; - $44 = $1 >>> 12; - $45 = $44 & 63; - $46 = $45 | 128; - $47 = $46&255; - $48 = ((($0)) + 2|0); - HEAP8[$43>>0] = $47; - $49 = $1 >>> 6; - $50 = $49 & 63; - $51 = $50 | 128; - $52 = $51&255; - $53 = ((($0)) + 3|0); - HEAP8[$48>>0] = $52; - $54 = $1 & 63; - $55 = $54 | 128; - $56 = $55&255; - HEAP8[$53>>0] = $56; - $$0 = 4; - break; - } else { - $57 = (___errno_location()|0); - HEAP32[$57>>2] = 84; - $$0 = -1; - break; - } - } - } while(0); - return ($$0|0); -} -function ___pthread_self_430() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function _pthread_self() { - var label = 0, sp = 0; - sp = STACKTOP; - return (3196|0); -} -function ___pthread_self_105() { - var $0 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (_pthread_self()|0); - return ($0|0); -} -function ___strerror_l($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$012$lcssa = 0, $$01214 = 0, $$016 = 0, $$113 = 0, $$115 = 0, $$115$ph = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $$016 = 0; - while(1) { - $2 = (18447 + ($$016)|0); - $3 = HEAP8[$2>>0]|0; - $4 = $3&255; - $5 = ($4|0)==($0|0); - if ($5) { - label = 4; - break; - } - $6 = (($$016) + 1)|0; - $7 = ($6|0)==(87); - if ($7) { - $$115$ph = 87; - label = 5; - break; - } else { - $$016 = $6; - } - } - if ((label|0) == 4) { - $8 = ($$016|0)==(0); - if ($8) { - $$012$lcssa = 18535; - } else { - $$115$ph = $$016; - label = 5; - } - } - if ((label|0) == 5) { - $$01214 = 18535;$$115 = $$115$ph; - while(1) { - $$113 = $$01214; - while(1) { - $9 = HEAP8[$$113>>0]|0; - $10 = ($9<<24>>24)==(0); - $11 = ((($$113)) + 1|0); - if ($10) { - break; - } else { - $$113 = $11; - } - } - $12 = (($$115) + -1)|0; - $13 = ($12|0)==(0); - if ($13) { - $$012$lcssa = $11; - break; - } else { - $$01214 = $11;$$115 = $12; - } - } - } - $14 = ((($1)) + 20|0); - $15 = HEAP32[$14>>2]|0; - $16 = (___lctrans($$012$lcssa,$15)|0); - return ($16|0); -} -function ___lctrans($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (___lctrans_impl($0,$1)|0); - return ($2|0); -} -function ___lctrans_impl($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0|0); - if ($2) { - $$0 = 0; - } else { - $3 = HEAP32[$1>>2]|0; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = (___mo_lookup($3,$5,$0)|0); - $$0 = $6; - } - $7 = ($$0|0)==(0|0); - $8 = $7 ? $0 : $$0; - return ($8|0); -} -function ___mo_lookup($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$090 = 0, $$094 = 0, $$191 = 0, $$195 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0; - var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; - var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; - var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond102 = 0, $or$cond104 = 0, $spec$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = HEAP32[$0>>2]|0; - $4 = (($3) + 1794895138)|0; - $5 = ((($0)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (_swapc($6,$4)|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (_swapc($9,$4)|0); - $11 = ((($0)) + 16|0); - $12 = HEAP32[$11>>2]|0; - $13 = (_swapc($12,$4)|0); - $14 = $1 >>> 2; - $15 = ($7>>>0)<($14>>>0); - L1: do { - if ($15) { - $16 = $7 << 2; - $17 = (($1) - ($16))|0; - $18 = ($10>>>0)<($17>>>0); - $19 = ($13>>>0)<($17>>>0); - $or$cond = $18 & $19; - if ($or$cond) { - $20 = $13 | $10; - $21 = $20 & 3; - $22 = ($21|0)==(0); - if ($22) { - $23 = $10 >>> 2; - $24 = $13 >>> 2; - $$090 = 0;$$094 = $7; - while(1) { - $25 = $$094 >>> 1; - $26 = (($$090) + ($25))|0; - $27 = $26 << 1; - $28 = (($27) + ($23))|0; - $29 = (($0) + ($28<<2)|0); - $30 = HEAP32[$29>>2]|0; - $31 = (_swapc($30,$4)|0); - $32 = (($28) + 1)|0; - $33 = (($0) + ($32<<2)|0); - $34 = HEAP32[$33>>2]|0; - $35 = (_swapc($34,$4)|0); - $36 = ($35>>>0)<($1>>>0); - $37 = (($1) - ($35))|0; - $38 = ($31>>>0)<($37>>>0); - $or$cond102 = $36 & $38; - if (!($or$cond102)) { - $$4 = 0; - break L1; - } - $39 = (($35) + ($31))|0; - $40 = (($0) + ($39)|0); - $41 = HEAP8[$40>>0]|0; - $42 = ($41<<24>>24)==(0); - if (!($42)) { - $$4 = 0; - break L1; - } - $43 = (($0) + ($35)|0); - $44 = (_strcmp($2,$43)|0); - $45 = ($44|0)==(0); - if ($45) { - break; - } - $62 = ($$094|0)==(1); - $63 = ($44|0)<(0); - if ($62) { - $$4 = 0; - break L1; - } - $$191 = $63 ? $$090 : $26; - $64 = (($$094) - ($25))|0; - $$195 = $63 ? $25 : $64; - $$090 = $$191;$$094 = $$195; - } - $46 = (($27) + ($24))|0; - $47 = (($0) + ($46<<2)|0); - $48 = HEAP32[$47>>2]|0; - $49 = (_swapc($48,$4)|0); - $50 = (($46) + 1)|0; - $51 = (($0) + ($50<<2)|0); - $52 = HEAP32[$51>>2]|0; - $53 = (_swapc($52,$4)|0); - $54 = ($53>>>0)<($1>>>0); - $55 = (($1) - ($53))|0; - $56 = ($49>>>0)<($55>>>0); - $or$cond104 = $54 & $56; - if ($or$cond104) { - $57 = (($0) + ($53)|0); - $58 = (($53) + ($49))|0; - $59 = (($0) + ($58)|0); - $60 = HEAP8[$59>>0]|0; - $61 = ($60<<24>>24)==(0); - $spec$select = $61 ? $57 : 0; - $$4 = $spec$select; - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } else { - $$4 = 0; - } - } while(0); - return ($$4|0); -} -function _swapc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $spec$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ($1|0)==(0); - $3 = (_llvm_bswap_i32(($0|0))|0); - $spec$select = $2 ? $0 : $3; - return ($spec$select|0); -} -function ___fwritex($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$03846 = 0, $$042 = 0, $$1 = 0, $$139 = 0, $$141 = 0, $$143 = 0, $$pre = 0, $$pre48 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0; - var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, $or$cond = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ((($2)) + 16|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($4|0)==(0|0); - if ($5) { - $7 = (___towrite($2)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$3>>2]|0; - $12 = $$pre; - label = 5; - } else { - $$1 = 0; - } - } else { - $6 = $4; - $12 = $6; - label = 5; - } - L5: do { - if ((label|0) == 5) { - $9 = ((($2)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = (($12) - ($10))|0; - $13 = ($11>>>0)<($1>>>0); - $14 = $10; - if ($13) { - $15 = ((($2)) + 36|0); - $16 = HEAP32[$15>>2]|0; - $17 = (FUNCTION_TABLE_iiii[$16 & 255]($2,$0,$1)|0); - $$1 = $17; - break; - } - $18 = ((($2)) + 75|0); - $19 = HEAP8[$18>>0]|0; - $20 = ($19<<24>>24)<(0); - $21 = ($1|0)==(0); - $or$cond = $20 | $21; - L10: do { - if ($or$cond) { - $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14; - } else { - $$03846 = $1; - while(1) { - $23 = (($$03846) + -1)|0; - $24 = (($0) + ($23)|0); - $25 = HEAP8[$24>>0]|0; - $26 = ($25<<24>>24)==(10); - if ($26) { - break; - } - $22 = ($23|0)==(0); - if ($22) { - $$139 = 0;$$141 = $0;$$143 = $1;$32 = $14; - break L10; - } else { - $$03846 = $23; - } - } - $27 = ((($2)) + 36|0); - $28 = HEAP32[$27>>2]|0; - $29 = (FUNCTION_TABLE_iiii[$28 & 255]($2,$0,$$03846)|0); - $30 = ($29>>>0)<($$03846>>>0); - if ($30) { - $$1 = $29; - break L5; - } - $31 = (($0) + ($$03846)|0); - $$042 = (($1) - ($$03846))|0; - $$pre48 = HEAP32[$9>>2]|0; - $$139 = $$03846;$$141 = $31;$$143 = $$042;$32 = $$pre48; - } - } while(0); - (_memcpy(($32|0),($$141|0),($$143|0))|0); - $33 = HEAP32[$9>>2]|0; - $34 = (($33) + ($$143)|0); - HEAP32[$9>>2] = $34; - $35 = (($$139) + ($$143))|0; - $$1 = $35; - } - } while(0); - return ($$1|0); -} -function ___towrite($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; - var $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 74|0); - $2 = HEAP8[$1>>0]|0; - $3 = $2 << 24 >> 24; - $4 = (($3) + 255)|0; - $5 = $4 | $3; - $6 = $5&255; - HEAP8[$1>>0] = $6; - $7 = HEAP32[$0>>2]|0; - $8 = $7 & 8; - $9 = ($8|0)==(0); - if ($9) { - $11 = ((($0)) + 8|0); - HEAP32[$11>>2] = 0; - $12 = ((($0)) + 4|0); - HEAP32[$12>>2] = 0; - $13 = ((($0)) + 44|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($0)) + 28|0); - HEAP32[$15>>2] = $14; - $16 = ((($0)) + 20|0); - HEAP32[$16>>2] = $14; - $17 = $14; - $18 = ((($0)) + 48|0); - $19 = HEAP32[$18>>2]|0; - $20 = (($17) + ($19)|0); - $21 = ((($0)) + 16|0); - HEAP32[$21>>2] = $20; - $$0 = 0; - } else { - $10 = $7 | 32; - HEAP32[$0>>2] = $10; - $$0 = -1; - } - return ($$0|0); -} -function _strlen($0) { - $0 = $0|0; - var $$0 = 0, $$014 = 0, $$015$lcssa = 0, $$01518 = 0, $$1$lcssa = 0, $$pn = 0, $$pn29 = 0, $$pre = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0; - var $20 = 0, $21 = 0, $22 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = $0; - $2 = $1 & 3; - $3 = ($2|0)==(0); - L1: do { - if ($3) { - $$015$lcssa = $0; - label = 5; - } else { - $$01518 = $0;$22 = $1; - while(1) { - $4 = HEAP8[$$01518>>0]|0; - $5 = ($4<<24>>24)==(0); - if ($5) { - $$pn = $22; - break L1; - } - $6 = ((($$01518)) + 1|0); - $7 = $6; - $8 = $7 & 3; - $9 = ($8|0)==(0); - if ($9) { - $$015$lcssa = $6; - label = 5; - break; - } else { - $$01518 = $6;$22 = $7; - } - } - } - } while(0); - if ((label|0) == 5) { - $$0 = $$015$lcssa; - while(1) { - $10 = HEAP32[$$0>>2]|0; - $11 = (($10) + -16843009)|0; - $12 = $10 & -2139062144; - $13 = $12 ^ -2139062144; - $14 = $13 & $11; - $15 = ($14|0)==(0); - $16 = ((($$0)) + 4|0); - if ($15) { - $$0 = $16; - } else { - break; - } - } - $17 = $10&255; - $18 = ($17<<24>>24)==(0); - if ($18) { - $$1$lcssa = $$0; - } else { - $$pn29 = $$0; - while(1) { - $19 = ((($$pn29)) + 1|0); - $$pre = HEAP8[$19>>0]|0; - $20 = ($$pre<<24>>24)==(0); - if ($20) { - $$1$lcssa = $19; - break; - } else { - $$pn29 = $19; - } - } - } - $21 = $$1$lcssa; - $$pn = $21; - } - $$014 = (($$pn) - ($1))|0; - return ($$014|0); -} -function ___strdup($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_strlen($0)|0); - $2 = (($1) + 1)|0; - $3 = (_malloc($2)|0); - $4 = ($3|0)==(0|0); - if ($4) { - $$0 = 0; - } else { - $5 = (_memcpy(($3|0),($0|0),($2|0))|0); - $$0 = $5; - } - return ($$0|0); -} -function ___overflow($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $$pre = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $3 = 0, $4 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $2 = sp; - $3 = $1&255; - HEAP8[$2>>0] = $3; - $4 = ((($0)) + 16|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0|0); - if ($6) { - $7 = (___towrite($0)|0); - $8 = ($7|0)==(0); - if ($8) { - $$pre = HEAP32[$4>>2]|0; - $12 = $$pre; - label = 4; - } else { - $$0 = -1; - } - } else { - $12 = $5; - label = 4; - } - do { - if ((label|0) == 4) { - $9 = ((($0)) + 20|0); - $10 = HEAP32[$9>>2]|0; - $11 = ($10>>>0)<($12>>>0); - if ($11) { - $13 = $1 & 255; - $14 = ((($0)) + 75|0); - $15 = HEAP8[$14>>0]|0; - $16 = $15 << 24 >> 24; - $17 = ($13|0)==($16|0); - if (!($17)) { - $18 = ((($10)) + 1|0); - HEAP32[$9>>2] = $18; - HEAP8[$10>>0] = $3; - $$0 = $13; - break; - } - } - $19 = ((($0)) + 36|0); - $20 = HEAP32[$19>>2]|0; - $21 = (FUNCTION_TABLE_iiii[$20 & 255]($0,$2,1)|0); - $22 = ($21|0)==(1); - if ($22) { - $23 = HEAP8[$2>>0]|0; - $24 = $23&255; - $$0 = $24; - } else { - $$0 = -1; - } - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function ___ofl_lock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___lock((21856|0)); - return (21864|0); -} -function ___ofl_unlock() { - var label = 0, sp = 0; - sp = STACKTOP; - ___unlock((21856|0)); - return; -} -function _fflush($0) { - $0 = $0|0; - var $$0 = 0, $$023 = 0, $$02325 = 0, $$02327 = 0, $$024$lcssa = 0, $$02426 = 0, $$1 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $phitmp = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - do { - if ($1) { - $8 = HEAP32[798]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $29 = 0; - } else { - $10 = HEAP32[798]|0; - $11 = (_fflush($10)|0); - $29 = $11; - } - $12 = (___ofl_lock()|0); - $$02325 = HEAP32[$12>>2]|0; - $13 = ($$02325|0)==(0|0); - if ($13) { - $$024$lcssa = $29; - } else { - $$02327 = $$02325;$$02426 = $29; - while(1) { - $14 = ((($$02327)) + 76|0); - $15 = HEAP32[$14>>2]|0; - $16 = ($15|0)>(-1); - if ($16) { - $17 = (___lockfile($$02327)|0); - $26 = $17; - } else { - $26 = 0; - } - $18 = ((($$02327)) + 20|0); - $19 = HEAP32[$18>>2]|0; - $20 = ((($$02327)) + 28|0); - $21 = HEAP32[$20>>2]|0; - $22 = ($19>>>0)>($21>>>0); - if ($22) { - $23 = (___fflush_unlocked($$02327)|0); - $24 = $23 | $$02426; - $$1 = $24; - } else { - $$1 = $$02426; - } - $25 = ($26|0)==(0); - if (!($25)) { - ___unlockfile($$02327); - } - $27 = ((($$02327)) + 56|0); - $$023 = HEAP32[$27>>2]|0; - $28 = ($$023|0)==(0|0); - if ($28) { - $$024$lcssa = $$1; - break; - } else { - $$02327 = $$023;$$02426 = $$1; - } - } - } - ___ofl_unlock(); - $$0 = $$024$lcssa; - } else { - $2 = ((($0)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)>(-1); - if (!($4)) { - $5 = (___fflush_unlocked($0)|0); - $$0 = $5; - break; - } - $6 = (___lockfile($0)|0); - $phitmp = ($6|0)==(0); - $7 = (___fflush_unlocked($0)|0); - if ($phitmp) { - $$0 = $7; - } else { - ___unlockfile($0); - $$0 = $7; - } - } - } while(0); - return ($$0|0); -} -function ___fflush_unlocked($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0; - var $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 20|0); - $2 = HEAP32[$1>>2]|0; - $3 = ((($0)) + 28|0); - $4 = HEAP32[$3>>2]|0; - $5 = ($2>>>0)>($4>>>0); - if ($5) { - $6 = ((($0)) + 36|0); - $7 = HEAP32[$6>>2]|0; - (FUNCTION_TABLE_iiii[$7 & 255]($0,0,0)|0); - $8 = HEAP32[$1>>2]|0; - $9 = ($8|0)==(0|0); - if ($9) { - $$0 = -1; - } else { - label = 3; - } - } else { - label = 3; - } - if ((label|0) == 3) { - $10 = ((($0)) + 4|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = ($11>>>0)<($13>>>0); - if ($14) { - $15 = $11; - $16 = $13; - $17 = (($15) - ($16))|0; - $18 = ((($0)) + 40|0); - $19 = HEAP32[$18>>2]|0; - (FUNCTION_TABLE_iiii[$19 & 255]($0,$17,1)|0); - } - $20 = ((($0)) + 16|0); - HEAP32[$20>>2] = 0; - HEAP32[$3>>2] = 0; - HEAP32[$1>>2] = 0; - HEAP32[$12>>2] = 0; - HEAP32[$10>>2] = 0; - $$0 = 0; - } - return ($$0|0); -} -function _fputc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = ((($1)) + 76|0); - $3 = HEAP32[$2>>2]|0; - $4 = ($3|0)<(0); - if ($4) { - label = 3; - } else { - $5 = (___lockfile($1)|0); - $6 = ($5|0)==(0); - if ($6) { - label = 3; - } else { - $20 = $0&255; - $21 = $0 & 255; - $22 = ((($1)) + 75|0); - $23 = HEAP8[$22>>0]|0; - $24 = $23 << 24 >> 24; - $25 = ($21|0)==($24|0); - if ($25) { - label = 10; - } else { - $26 = ((($1)) + 20|0); - $27 = HEAP32[$26>>2]|0; - $28 = ((($1)) + 16|0); - $29 = HEAP32[$28>>2]|0; - $30 = ($27>>>0)<($29>>>0); - if ($30) { - $31 = ((($27)) + 1|0); - HEAP32[$26>>2] = $31; - HEAP8[$27>>0] = $20; - $33 = $21; - } else { - label = 10; - } - } - if ((label|0) == 10) { - $32 = (___overflow($1,$0)|0); - $33 = $32; - } - ___unlockfile($1); - $$0 = $33; - } - } - do { - if ((label|0) == 3) { - $7 = $0&255; - $8 = $0 & 255; - $9 = ((($1)) + 75|0); - $10 = HEAP8[$9>>0]|0; - $11 = $10 << 24 >> 24; - $12 = ($8|0)==($11|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ((($1)) + 16|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($14>>>0)<($16>>>0); - if ($17) { - $18 = ((($14)) + 1|0); - HEAP32[$13>>2] = $18; - HEAP8[$14>>0] = $7; - $$0 = $8; - break; - } - } - $19 = (___overflow($1,$0)|0); - $$0 = $19; - } - } while(0); - return ($$0|0); -} -function __ZNSt3__217bad_function_callD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt3__217bad_function_callD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt3__217bad_function_callD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt3__217bad_function_call4whatEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (20339|0); -} -function __ZNSt3__214__shared_countD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt3__214__shared_countD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _llvm_trap(); - // unreachable; -} -function __ZNSt3__219__shared_weak_countD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _llvm_trap(); - // unreachable; -} -function __ZNKSt3__219__shared_weak_count13__get_deleterERKSt9type_info($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (0|0); -} -function __ZNSt3__219__shared_weak_count14__release_weakEv($0) { - $0 = $0|0; - var $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 8|0); - $2 = HEAP32[$1>>2]|0; - $3 = ($2|0)==(0); - if ($3) { - $4 = HEAP32[$0>>2]|0; - $5 = ((($4)) + 16|0); - $6 = HEAP32[$5>>2]|0; - FUNCTION_TABLE_vi[$6 & 511]($0); - } else { - $7 = HEAP32[$1>>2]|0; - $8 = (($7) + -1)|0; - HEAP32[$1>>2] = $8; - $9 = ($7|0)==(0); - if ($9) { - $10 = HEAP32[$0>>2]|0; - $11 = ((($10)) + 16|0); - $12 = HEAP32[$11>>2]|0; - FUNCTION_TABLE_vi[$12 & 511]($0); - } - } - return; -} -function __ZNSt3__25mutex4lockEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (_pthread_mutex_lock(($0|0))|0); - $2 = ($1|0)==(0); - if ($2) { - return; - } else { - __ZNSt3__220__throw_system_errorEiPKc($1,20445); - // unreachable; - } -} -function __ZNSt3__25mutex6unlockEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - (_pthread_mutex_unlock(($0|0))|0); - return; -} -function __Znwj($0) { - $0 = $0|0; - var $$lcssa = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $spec$store$select = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0); - $spec$store$select = $1 ? 1 : $0; - while(1) { - $2 = (_malloc($spec$store$select)|0); - $3 = ($2|0)==(0|0); - if (!($3)) { - $$lcssa = $2; - break; - } - $4 = (__ZSt15get_new_handlerv()|0); - $5 = ($4|0)==(0|0); - if ($5) { - $$lcssa = 0; - break; - } - FUNCTION_TABLE_v[$4 & 511](); - } - return ($$lcssa|0); -} -function __Znaj($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (__Znwj($0)|0); - return ($1|0); -} -function __ZdlPv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _free($0); - return; -} -function __ZdaPv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZdlPv($0); - return; -} -function __ZNSt3__218__libcpp_refstringC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $2 = (_strlen($1)|0); - $3 = (($2) + 13)|0; - $4 = (__Znwj($3)|0); - HEAP32[$4>>2] = $2; - $5 = ((($4)) + 4|0); - HEAP32[$5>>2] = $2; - $6 = ((($4)) + 8|0); - HEAP32[$6>>2] = 0; - $7 = (__ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE($4)|0); - $8 = (($2) + 1)|0; - _memcpy(($7|0),($1|0),($8|0))|0; - HEAP32[$0>>2] = $7; - return; -} -function __ZNSt3__215__refstring_imp12_GLOBAL__N_113data_from_repEPNS1_9_Rep_baseE($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 12|0); - return ($1|0); -} -function __ZNSt11logic_errorC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3620); - $2 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringC2EPKc($2,$1); - return; -} -function __ZNKSt3__218__libcpp_refstring15__uses_refcountEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return 1; -} -function __ZNSt13runtime_errorC2EPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3640); - $2 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringC2EPKc($2,$1); - return; -} -function __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNKSt3__221__basic_string_commonILb1EE20__throw_out_of_rangeEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 11|0); - $2 = HEAP8[$1>>0]|0; - $3 = ($2<<24>>24)<(0); - if ($3) { - $4 = HEAP32[$0>>2]|0; - __ZdlPv($4); - } - return; -} -function __ZNSt3__211char_traitsIcE7compareEPKcS3_j($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($2|0)==(0); - if ($3) { - $$0 = 0; - } else { - $4 = (_memcmp($0,$1,$2)|0); - $$0 = $4; - } - return ($$0|0); -} -function __ZNKSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE7compareEjjPKcj($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$sroa$speculated = 0, $$sroa$speculated19 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var $or$cond = 0, $spec$select = 0, $spec$select31 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 11|0); - $6 = HEAP8[$5>>0]|0; - $7 = ($6<<24>>24)<(0); - if ($7) { - $8 = ((($0)) + 4|0); - $9 = HEAP32[$8>>2]|0; - $12 = $9; - } else { - $10 = $6&255; - $12 = $10; - } - $11 = ($12>>>0)<($1>>>0); - $13 = ($4|0)==(-1); - $or$cond = $13 | $11; - if ($or$cond) { - __ZNKSt3__221__basic_string_commonILb1EE20__throw_out_of_rangeEv($0); - // unreachable; - } - $14 = (($12) - ($1))|0; - $15 = ($14>>>0)<($2>>>0); - $$sroa$speculated = $15 ? $14 : $2; - if ($7) { - $16 = HEAP32[$0>>2]|0; - $18 = $16; - } else { - $18 = $0; - } - $17 = (($18) + ($1)|0); - $19 = ($$sroa$speculated>>>0)>($4>>>0); - $$sroa$speculated19 = $19 ? $4 : $$sroa$speculated; - $20 = (__ZNSt3__211char_traitsIcE7compareEPKcS3_j($17,$3,$$sroa$speculated19)|0); - $21 = ($20|0)==(0); - if ($21) { - $22 = ($$sroa$speculated>>>0)<($4>>>0); - $spec$select = $19&1; - $spec$select31 = $22 ? -1 : $spec$select; - return ($spec$select31|0); - } else { - return ($20|0); - } - return (0)|0; -} -function __ZNSt3__220__throw_system_errorEiPKc($0,$1) { - $0 = $0|0; - $1 = $1|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - _abort(); - // unreachable; -} -function __ZL25default_terminate_handlerv() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; - var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, $vararg_buffer10 = 0, $vararg_buffer3 = 0, $vararg_buffer7 = 0, $vararg_ptr1 = 0; - var $vararg_ptr2 = 0, $vararg_ptr6 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(48|0); - $vararg_buffer10 = sp + 32|0; - $vararg_buffer7 = sp + 24|0; - $vararg_buffer3 = sp + 16|0; - $vararg_buffer = sp; - $0 = sp + 36|0; - $1 = (___cxa_get_globals_fast()|0); - $2 = ($1|0)==(0|0); - if (!($2)) { - $3 = HEAP32[$1>>2]|0; - $4 = ($3|0)==(0|0); - if (!($4)) { - $5 = ((($3)) + 80|0); - $6 = ((($3)) + 48|0); - $7 = $6; - $8 = $7; - $9 = HEAP32[$8>>2]|0; - $10 = (($7) + 4)|0; - $11 = $10; - $12 = HEAP32[$11>>2]|0; - $13 = $9 & -256; - $14 = ($13|0)==(1126902528); - $15 = ($12|0)==(1129074247); - $16 = $14 & $15; - if (!($16)) { - HEAP32[$vararg_buffer7>>2] = 20599; - _abort_message(20549,$vararg_buffer7); - // unreachable; - } - $17 = ($9|0)==(1126902529); - $18 = ($12|0)==(1129074247); - $19 = $17 & $18; - if ($19) { - $20 = ((($3)) + 44|0); - $21 = HEAP32[$20>>2]|0; - $22 = $21; - } else { - $22 = $5; - } - HEAP32[$0>>2] = $22; - $23 = HEAP32[$3>>2]|0; - $24 = ((($23)) + 4|0); - $25 = HEAP32[$24>>2]|0; - $26 = HEAP32[322]|0; - $27 = ((($26)) + 16|0); - $28 = HEAP32[$27>>2]|0; - $29 = (FUNCTION_TABLE_iiii[$28 & 255](1288,$23,$0)|0); - if ($29) { - $30 = HEAP32[$0>>2]|0; - $31 = HEAP32[$30>>2]|0; - $32 = ((($31)) + 8|0); - $33 = HEAP32[$32>>2]|0; - $34 = (FUNCTION_TABLE_ii[$33 & 255]($30)|0); - HEAP32[$vararg_buffer>>2] = 20599; - $vararg_ptr1 = ((($vararg_buffer)) + 4|0); - HEAP32[$vararg_ptr1>>2] = $25; - $vararg_ptr2 = ((($vararg_buffer)) + 8|0); - HEAP32[$vararg_ptr2>>2] = $34; - _abort_message(20463,$vararg_buffer); - // unreachable; - } else { - HEAP32[$vararg_buffer3>>2] = 20599; - $vararg_ptr6 = ((($vararg_buffer3)) + 4|0); - HEAP32[$vararg_ptr6>>2] = $25; - _abort_message(20508,$vararg_buffer3); - // unreachable; - } - } - } - _abort_message(20587,$vararg_buffer10); - // unreachable; -} -function ___cxa_get_globals_fast() { - var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = (_pthread_once((21868|0),(256|0))|0); - $1 = ($0|0)==(0); - if ($1) { - $2 = HEAP32[5468]|0; - $3 = (_pthread_getspecific(($2|0))|0); - STACKTOP = sp;return ($3|0); - } else { - _abort_message(20738,$vararg_buffer); - // unreachable; - } - return (0)|0; -} -function _abort_message($0,$varargs) { - $0 = $0|0; - $varargs = $varargs|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $1 = sp; - HEAP32[$1>>2] = $varargs; - $2 = HEAP32[735]|0; - (_vfprintf($2,$0,$1)|0); - (_fputc(10,$2)|0); - _abort(); - // unreachable; -} -function __ZN10__cxxabiv116__shim_type_infoD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10__cxxabiv117__class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv116__shim_type_info5noop1Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNK10__cxxabiv116__shim_type_info5noop2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$2 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0; - var dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - $4 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - if ($4) { - $$2 = 1; - } else { - $5 = ($1|0)==(0|0); - if ($5) { - $$2 = 0; - } else { - $6 = (___dynamic_cast($1,1312,1296,0)|0); - $7 = ($6|0)==(0|0); - if ($7) { - $$2 = 0; - } else { - $8 = ((($3)) + 4|0); - dest=$8; stop=dest+52|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$3>>2] = $6; - $9 = ((($3)) + 8|0); - HEAP32[$9>>2] = $0; - $10 = ((($3)) + 12|0); - HEAP32[$10>>2] = -1; - $11 = ((($3)) + 48|0); - HEAP32[$11>>2] = 1; - $12 = HEAP32[$6>>2]|0; - $13 = ((($12)) + 28|0); - $14 = HEAP32[$13>>2]|0; - $15 = HEAP32[$2>>2]|0; - FUNCTION_TABLE_viiii[$14 & 255]($6,$3,$15,1); - $16 = ((($3)) + 24|0); - $17 = HEAP32[$16>>2]|0; - $18 = ($17|0)==(1); - if ($18) { - $19 = ((($3)) + 16|0); - $20 = HEAP32[$19>>2]|0; - HEAP32[$2>>2] = $20; - $$0 = 1; - } else { - $$0 = 0; - } - $$2 = $$0; - } - } - } - STACKTOP = sp;return ($$2|0); -} -function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } - return; -} -function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if ($9) { - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - HEAP32[$13>>2] = $2; - $19 = ((($1)) + 40|0); - $20 = HEAP32[$19>>2]|0; - $21 = (($20) + 1)|0; - HEAP32[$19>>2] = $21; - $22 = ((($1)) + 36|0); - $23 = HEAP32[$22>>2]|0; - $24 = ($23|0)==(1); - if ($24) { - $25 = ((($1)) + 24|0); - $26 = HEAP32[$25>>2]|0; - $27 = ($26|0)==(2); - if ($27) { - $28 = ((($1)) + 54|0); - HEAP8[$28>>0] = 1; - } - } - $29 = ((($1)) + 44|0); - HEAP32[$29>>2] = 4; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } - return; -} -function __ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = ($0|0)==($1|0); - return ($3|0); -} -function __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 16|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==(0|0); - do { - if ($6) { - HEAP32[$4>>2] = $2; - $7 = ((($1)) + 24|0); - HEAP32[$7>>2] = $3; - $8 = ((($1)) + 36|0); - HEAP32[$8>>2] = 1; - } else { - $9 = ($5|0)==($2|0); - if (!($9)) { - $13 = ((($1)) + 36|0); - $14 = HEAP32[$13>>2]|0; - $15 = (($14) + 1)|0; - HEAP32[$13>>2] = $15; - $16 = ((($1)) + 24|0); - HEAP32[$16>>2] = 2; - $17 = ((($1)) + 54|0); - HEAP8[$17>>0] = 1; - break; - } - $10 = ((($1)) + 24|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(2); - if ($12) { - HEAP32[$10>>2] = $3; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = ($5|0)==($2|0); - if ($6) { - $7 = ((($1)) + 28|0); - $8 = HEAP32[$7>>2]|0; - $9 = ($8|0)==(1); - if (!($9)) { - HEAP32[$7>>2] = $3; - } - } - return; -} -function __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0; - var $30 = 0, $31 = 0, $32 = 0, $33 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond22 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 53|0); - HEAP8[$5>>0] = 1; - $6 = ((($1)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = ($7|0)==($3|0); - do { - if ($8) { - $9 = ((($1)) + 52|0); - HEAP8[$9>>0] = 1; - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==(0|0); - if ($12) { - HEAP32[$10>>2] = $2; - $13 = ((($1)) + 24|0); - HEAP32[$13>>2] = $4; - $14 = ((($1)) + 36|0); - HEAP32[$14>>2] = 1; - $15 = ((($1)) + 48|0); - $16 = HEAP32[$15>>2]|0; - $17 = ($16|0)==(1); - $18 = ($4|0)==(1); - $or$cond = $18 & $17; - if (!($or$cond)) { - break; - } - $19 = ((($1)) + 54|0); - HEAP8[$19>>0] = 1; - break; - } - $20 = ($11|0)==($2|0); - if (!($20)) { - $30 = ((($1)) + 36|0); - $31 = HEAP32[$30>>2]|0; - $32 = (($31) + 1)|0; - HEAP32[$30>>2] = $32; - $33 = ((($1)) + 54|0); - HEAP8[$33>>0] = 1; - break; - } - $21 = ((($1)) + 24|0); - $22 = HEAP32[$21>>2]|0; - $23 = ($22|0)==(2); - if ($23) { - HEAP32[$21>>2] = $4; - $28 = $4; - } else { - $28 = $22; - } - $24 = ((($1)) + 48|0); - $25 = HEAP32[$24>>2]|0; - $26 = ($25|0)==(1); - $27 = ($28|0)==(1); - $or$cond22 = $26 & $27; - if ($or$cond22) { - $29 = ((($1)) + 54|0); - HEAP8[$29>>0] = 1; - } - } - } while(0); - return; -} -function ___dynamic_cast($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond28 = 0, $or$cond30 = 0, $or$cond32 = 0, $spec$select = 0, $spec$select33 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $4 = sp; - $5 = HEAP32[$0>>2]|0; - $6 = ((($5)) + -8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (($0) + ($7)|0); - $9 = ((($5)) + -4|0); - $10 = HEAP32[$9>>2]|0; - HEAP32[$4>>2] = $2; - $11 = ((($4)) + 4|0); - HEAP32[$11>>2] = $0; - $12 = ((($4)) + 8|0); - HEAP32[$12>>2] = $1; - $13 = ((($4)) + 12|0); - HEAP32[$13>>2] = $3; - $14 = ((($4)) + 16|0); - $15 = ((($4)) + 20|0); - $16 = ((($4)) + 24|0); - $17 = ((($4)) + 28|0); - $18 = ((($4)) + 32|0); - $19 = ((($4)) + 40|0); - dest=$14; stop=dest+36|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));HEAP16[$14+36>>1]=0|0;HEAP8[$14+38>>0]=0|0; - $20 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($10,$2,0)|0); - L1: do { - if ($20) { - $21 = ((($4)) + 48|0); - HEAP32[$21>>2] = 1; - $22 = HEAP32[$10>>2]|0; - $23 = ((($22)) + 20|0); - $24 = HEAP32[$23>>2]|0; - FUNCTION_TABLE_viiiiii[$24 & 255]($10,$4,$8,$8,1,0); - $25 = HEAP32[$16>>2]|0; - $26 = ($25|0)==(1); - $spec$select = $26 ? $8 : 0; - $$0 = $spec$select; - } else { - $27 = ((($4)) + 36|0); - $28 = HEAP32[$10>>2]|0; - $29 = ((($28)) + 24|0); - $30 = HEAP32[$29>>2]|0; - FUNCTION_TABLE_viiiii[$30 & 255]($10,$4,$8,1,0); - $31 = HEAP32[$27>>2]|0; - switch ($31|0) { - case 0: { - $32 = HEAP32[$19>>2]|0; - $33 = ($32|0)==(1); - $34 = HEAP32[$17>>2]|0; - $35 = ($34|0)==(1); - $or$cond = $33 & $35; - $36 = HEAP32[$18>>2]|0; - $37 = ($36|0)==(1); - $or$cond28 = $or$cond & $37; - $38 = HEAP32[$15>>2]|0; - $spec$select33 = $or$cond28 ? $38 : 0; - $$0 = $spec$select33; - break L1; - break; - } - case 1: { - break; - } - default: { - $$0 = 0; - break L1; - } - } - $39 = HEAP32[$16>>2]|0; - $40 = ($39|0)==(1); - if (!($40)) { - $41 = HEAP32[$19>>2]|0; - $42 = ($41|0)==(0); - $43 = HEAP32[$17>>2]|0; - $44 = ($43|0)==(1); - $or$cond30 = $42 & $44; - $45 = HEAP32[$18>>2]|0; - $46 = ($45|0)==(1); - $or$cond32 = $or$cond30 & $46; - if (!($or$cond32)) { - $$0 = 0; - break; - } - } - $47 = HEAP32[$14>>2]|0; - $$0 = $47; - } - } while(0); - STACKTOP = sp;return ($$0|0); -} -function __ZN10__cxxabiv120__si_class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $10 = 0, $11 = 0, $12 = 0, $13 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } else { - $9 = ((($0)) + 8|0); - $10 = HEAP32[$9>>2]|0; - $11 = HEAP32[$10>>2]|0; - $12 = ((($11)) + 20|0); - $13 = HEAP32[$12>>2]|0; - FUNCTION_TABLE_viiiiii[$13 & 255]($10,$1,$2,$3,$4,$5); - } - return; -} -function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$037$off038 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0; - var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if (!($9)) { - $44 = ((($0)) + 8|0); - $45 = HEAP32[$44>>2]|0; - $46 = HEAP32[$45>>2]|0; - $47 = ((($46)) + 24|0); - $48 = HEAP32[$47>>2]|0; - FUNCTION_TABLE_viiiii[$48 & 255]($45,$1,$2,$3,$4); - break; - } - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - $19 = ((($1)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(4); - if ($21) { - break; - } - $22 = ((($1)) + 52|0); - HEAP8[$22>>0] = 0; - $23 = ((($1)) + 53|0); - HEAP8[$23>>0] = 0; - $24 = ((($0)) + 8|0); - $25 = HEAP32[$24>>2]|0; - $26 = HEAP32[$25>>2]|0; - $27 = ((($26)) + 20|0); - $28 = HEAP32[$27>>2]|0; - FUNCTION_TABLE_viiiiii[$28 & 255]($25,$1,$2,$2,1,$4); - $29 = HEAP8[$23>>0]|0; - $30 = ($29<<24>>24)==(0); - if ($30) { - $$037$off038 = 0; - label = 11; - } else { - $31 = HEAP8[$22>>0]|0; - $32 = ($31<<24>>24)==(0); - if ($32) { - $$037$off038 = 1; - label = 11; - } else { - label = 15; - } - } - do { - if ((label|0) == 11) { - HEAP32[$13>>2] = $2; - $33 = ((($1)) + 40|0); - $34 = HEAP32[$33>>2]|0; - $35 = (($34) + 1)|0; - HEAP32[$33>>2] = $35; - $36 = ((($1)) + 36|0); - $37 = HEAP32[$36>>2]|0; - $38 = ($37|0)==(1); - if ($38) { - $39 = ((($1)) + 24|0); - $40 = HEAP32[$39>>2]|0; - $41 = ($40|0)==(2); - if ($41) { - $42 = ((($1)) + 54|0); - HEAP8[$42>>0] = 1; - if ($$037$off038) { - label = 15; - break; - } else { - $43 = 4; - break; - } - } - } - if ($$037$off038) { - label = 15; - } else { - $43 = 4; - } - } - } while(0); - if ((label|0) == 15) { - $43 = 3; - } - HEAP32[$19>>2] = $43; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $10 = 0, $11 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } else { - $7 = ((($0)) + 8|0); - $8 = HEAP32[$7>>2]|0; - $9 = HEAP32[$8>>2]|0; - $10 = ((($9)) + 28|0); - $11 = HEAP32[$10>>2]|0; - FUNCTION_TABLE_viiii[$11 & 255]($8,$1,$2,$3); - } - return; -} -function __ZNSt9type_infoD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZN10__cxxabiv112_GLOBAL__N_110construct_Ev() { - var $0 = 0, $1 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - $0 = (_pthread_key_create((21872|0),(257|0))|0); - $1 = ($0|0)==(0); - if ($1) { - STACKTOP = sp;return; - } else { - _abort_message(20787,$vararg_buffer); - // unreachable; - } -} -function __ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - _free($0); - $1 = HEAP32[5468]|0; - $2 = (_pthread_setspecific(($1|0),(0|0))|0); - $3 = ($2|0)==(0); - if ($3) { - STACKTOP = sp;return; - } else { - _abort_message(20837,$vararg_buffer); - // unreachable; - } -} -function __ZSt9terminatev() { - var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = (___cxa_get_globals_fast()|0); - $1 = ($0|0)==(0|0); - if (!($1)) { - $2 = HEAP32[$0>>2]|0; - $3 = ($2|0)==(0|0); - if (!($3)) { - $4 = ((($2)) + 48|0); - $5 = $4; - $6 = $5; - $7 = HEAP32[$6>>2]|0; - $8 = (($5) + 4)|0; - $9 = $8; - $10 = HEAP32[$9>>2]|0; - $11 = $7 & -256; - $12 = ($11|0)==(1126902528); - $13 = ($10|0)==(1129074247); - $14 = $12 & $13; - if ($14) { - $15 = ((($2)) + 12|0); - $16 = HEAP32[$15>>2]|0; - __ZSt11__terminatePFvvE($16); - // unreachable; - } - } - } - $17 = (__ZSt13get_terminatev()|0); - __ZSt11__terminatePFvvE($17); - // unreachable; -} -function __ZSt11__terminatePFvvE($0) { - $0 = $0|0; - var $vararg_buffer = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $vararg_buffer = sp; - FUNCTION_TABLE_v[$0 & 511](); - _abort_message(20890,$vararg_buffer); - // unreachable; -} -function __ZSt13get_terminatev() { - var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[877]|0; - $1 = (($0) + 0)|0; - HEAP32[877] = $1; - $2 = $0; - return ($2|0); -} -function __ZNSt9exceptionD2Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZNSt9exceptionD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZdlPv($0); - return; -} -function __ZNKSt9exception4whatEv($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return (20930|0); -} -function __ZNSt11logic_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3620); - $1 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringD2Ev($1); - return; -} -function __ZNSt11logic_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt11logic_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt11logic_error4whatEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = (__ZNKSt3__218__libcpp_refstring5c_strEv($1)|0); - return ($2|0); -} -function __ZNKSt3__218__libcpp_refstring5c_strEv($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP32[$0>>2]|0; - return ($1|0); -} -function __ZNSt3__218__libcpp_refstringD2Ev($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = (__ZNKSt3__218__libcpp_refstring15__uses_refcountEv($0)|0); - if ($1) { - $2 = HEAP32[$0>>2]|0; - $3 = (__ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_238($2)|0); - $4 = ((($3)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (($5) + -1)|0; - HEAP32[$4>>2] = $6; - $7 = (($5) + -1)|0; - $8 = ($7|0)<(0); - if ($8) { - __ZdlPv($3); - } - } - return; -} -function __ZNSt3__215__refstring_imp12_GLOBAL__N_113rep_from_dataEPKc_238($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + -12|0); - return ($1|0); -} -function __ZNSt13runtime_errorD2Ev($0) { - $0 = $0|0; - var $1 = 0, label = 0, sp = 0; - sp = STACKTOP; - HEAP32[$0>>2] = (3640); - $1 = ((($0)) + 4|0); - __ZNSt3__218__libcpp_refstringD2Ev($1); - return; -} -function __ZNSt13runtime_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt13runtime_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNKSt13runtime_error4whatEv($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ((($0)) + 4|0); - $2 = (__ZNKSt3__218__libcpp_refstring5c_strEv($1)|0); - return ($2|0); -} -function __ZNSt12length_errorD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZNSt11logic_errorD2Ev($0); - __ZdlPv($0); - return; -} -function __ZN10__cxxabiv123__fundamental_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $3 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - return ($3|0); -} -function __ZN10__cxxabiv119__pointer_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $$4 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; - var $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $5 = 0; - var $6 = 0, $7 = 0, $8 = 0, $9 = 0, dest = 0, label = 0, sp = 0, stop = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(64|0); - $3 = sp; - $4 = HEAP32[$2>>2]|0; - $5 = HEAP32[$4>>2]|0; - HEAP32[$2>>2] = $5; - $6 = (__ZNK10__cxxabiv117__pbase_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,0)|0); - if ($6) { - $$4 = 1; - } else { - $7 = ($1|0)==(0|0); - if ($7) { - $$4 = 0; - } else { - $8 = (___dynamic_cast($1,1312,1416,0)|0); - $9 = ($8|0)==(0|0); - if ($9) { - $$4 = 0; - } else { - $10 = ((($8)) + 8|0); - $11 = HEAP32[$10>>2]|0; - $12 = ((($0)) + 8|0); - $13 = HEAP32[$12>>2]|0; - $14 = $13 ^ -1; - $15 = $11 & $14; - $16 = ($15|0)==(0); - if ($16) { - $17 = ((($0)) + 12|0); - $18 = HEAP32[$17>>2]|0; - $19 = ((($8)) + 12|0); - $20 = HEAP32[$19>>2]|0; - $21 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($18,$20,0)|0); - if ($21) { - $$4 = 1; - } else { - $22 = HEAP32[$17>>2]|0; - $23 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($22,1448,0)|0); - if ($23) { - $$4 = 1; - } else { - $24 = HEAP32[$17>>2]|0; - $25 = ($24|0)==(0|0); - if ($25) { - $$4 = 0; - } else { - $26 = (___dynamic_cast($24,1312,1296,0)|0); - $27 = ($26|0)==(0|0); - if ($27) { - $$4 = 0; - } else { - $28 = HEAP32[$19>>2]|0; - $29 = ($28|0)==(0|0); - if ($29) { - $$4 = 0; - } else { - $30 = (___dynamic_cast($28,1312,1296,0)|0); - $31 = ($30|0)==(0|0); - if ($31) { - $$4 = 0; - } else { - $32 = ((($3)) + 4|0); - dest=$32; stop=dest+52|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); - HEAP32[$3>>2] = $30; - $33 = ((($3)) + 8|0); - HEAP32[$33>>2] = $26; - $34 = ((($3)) + 12|0); - HEAP32[$34>>2] = -1; - $35 = ((($3)) + 48|0); - HEAP32[$35>>2] = 1; - $36 = HEAP32[$30>>2]|0; - $37 = ((($36)) + 28|0); - $38 = HEAP32[$37>>2]|0; - $39 = HEAP32[$2>>2]|0; - FUNCTION_TABLE_viiii[$38 & 255]($30,$3,$39,1); - $40 = ((($3)) + 24|0); - $41 = HEAP32[$40>>2]|0; - $42 = ($41|0)==(1); - if ($42) { - $43 = ((($3)) + 16|0); - $44 = HEAP32[$43>>2]|0; - HEAP32[$2>>2] = $44; - $$0 = 1; - } else { - $$0 = 0; - } - $$4 = $$0; - } - } - } - } - } - } - } else { - $$4 = 0; - } - } - } - } - STACKTOP = sp;return ($$4|0); -} -function __ZNK10__cxxabiv117__pbase_type_info9can_catchEPKNS_16__shim_type_infoERPv($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $$0 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; - sp = STACKTOP; - $3 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$1,0)|0); - if ($3) { - $$0 = 1; - } else { - $4 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($1,1456,0)|0); - $$0 = $4; - } - return ($$0|0); -} -function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - __ZN10__cxxabiv116__shim_type_infoD2Ev($0); - __ZdlPv($0); - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; - var $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($1)) + 8|0); - $7 = HEAP32[$6>>2]|0; - $8 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$7,$5)|0); - if ($8) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_above_dstEPNS_19__dynamic_cast_infoEPKvS4_i(0,$1,$2,$3,$4); - } else { - $9 = ((($1)) + 52|0); - $10 = HEAP8[$9>>0]|0; - $11 = ((($1)) + 53|0); - $12 = HEAP8[$11>>0]|0; - $13 = ((($0)) + 16|0); - $14 = ((($0)) + 12|0); - $15 = HEAP32[$14>>2]|0; - $16 = (((($0)) + 16|0) + ($15<<3)|0); - HEAP8[$9>>0] = 0; - HEAP8[$11>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($13,$1,$2,$3,$4,$5); - $17 = ($15|0)>(1); - L4: do { - if ($17) { - $18 = ((($0)) + 24|0); - $19 = ((($1)) + 24|0); - $20 = ((($0)) + 8|0); - $21 = ((($1)) + 54|0); - $$0 = $18; - while(1) { - $22 = HEAP8[$21>>0]|0; - $23 = ($22<<24>>24)==(0); - if (!($23)) { - break L4; - } - $24 = HEAP8[$9>>0]|0; - $25 = ($24<<24>>24)==(0); - if ($25) { - $31 = HEAP8[$11>>0]|0; - $32 = ($31<<24>>24)==(0); - if (!($32)) { - $33 = HEAP32[$20>>2]|0; - $34 = $33 & 1; - $35 = ($34|0)==(0); - if ($35) { - break L4; - } - } - } else { - $26 = HEAP32[$19>>2]|0; - $27 = ($26|0)==(1); - if ($27) { - break L4; - } - $28 = HEAP32[$20>>2]|0; - $29 = $28 & 2; - $30 = ($29|0)==(0); - if ($30) { - break L4; - } - } - HEAP8[$9>>0] = 0; - HEAP8[$11>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($$0,$1,$2,$3,$4,$5); - $36 = ((($$0)) + 8|0); - $37 = ($36>>>0)<($16>>>0); - if ($37) { - $$0 = $36; - } else { - break; - } - } - } - } while(0); - HEAP8[$9>>0] = $10; - HEAP8[$11>>0] = $12; - } - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $$081$off0 = 0, $$084 = 0, $$085$off0 = 0, $$1 = 0, $$182$off0 = 0, $$186$off0 = 0, $$2 = 0, $$283$off0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0; - var $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $40 = 0; - var $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0; - var $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0; - var $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($1)) + 8|0); - $6 = HEAP32[$5>>2]|0; - $7 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$6,$4)|0); - L1: do { - if ($7) { - __ZNK10__cxxabiv117__class_type_info29process_static_type_below_dstEPNS_19__dynamic_cast_infoEPKvi(0,$1,$2,$3); - } else { - $8 = HEAP32[$1>>2]|0; - $9 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$8,$4)|0); - if (!($9)) { - $56 = ((($0)) + 16|0); - $57 = ((($0)) + 12|0); - $58 = HEAP32[$57>>2]|0; - $59 = (((($0)) + 16|0) + ($58<<3)|0); - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($56,$1,$2,$3,$4); - $60 = ((($0)) + 24|0); - $61 = ($58|0)>(1); - if (!($61)) { - break; - } - $62 = ((($0)) + 8|0); - $63 = HEAP32[$62>>2]|0; - $64 = $63 & 2; - $65 = ($64|0)==(0); - if ($65) { - $66 = ((($1)) + 36|0); - $67 = HEAP32[$66>>2]|0; - $68 = ($67|0)==(1); - if (!($68)) { - $74 = $63 & 1; - $75 = ($74|0)==(0); - if ($75) { - $86 = ((($1)) + 54|0); - $$2 = $60; - while(1) { - $87 = HEAP8[$86>>0]|0; - $88 = ($87<<24>>24)==(0); - if (!($88)) { - break L1; - } - $89 = HEAP32[$66>>2]|0; - $90 = ($89|0)==(1); - if ($90) { - break L1; - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$2,$1,$2,$3,$4); - $91 = ((($$2)) + 8|0); - $92 = ($91>>>0)<($59>>>0); - if ($92) { - $$2 = $91; - } else { - break L1; - } - } - } - $76 = ((($1)) + 24|0); - $77 = ((($1)) + 54|0); - $$1 = $60; - while(1) { - $78 = HEAP8[$77>>0]|0; - $79 = ($78<<24>>24)==(0); - if (!($79)) { - break L1; - } - $80 = HEAP32[$66>>2]|0; - $81 = ($80|0)==(1); - if ($81) { - $82 = HEAP32[$76>>2]|0; - $83 = ($82|0)==(1); - if ($83) { - break L1; - } - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$1,$1,$2,$3,$4); - $84 = ((($$1)) + 8|0); - $85 = ($84>>>0)<($59>>>0); - if ($85) { - $$1 = $84; - } else { - break L1; - } - } - } - } - $69 = ((($1)) + 54|0); - $$0 = $60; - while(1) { - $70 = HEAP8[$69>>0]|0; - $71 = ($70<<24>>24)==(0); - if (!($71)) { - break L1; - } - __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($$0,$1,$2,$3,$4); - $72 = ((($$0)) + 8|0); - $73 = ($72>>>0)<($59>>>0); - if ($73) { - $$0 = $72; - } else { - break L1; - } - } - } - $10 = ((($1)) + 16|0); - $11 = HEAP32[$10>>2]|0; - $12 = ($11|0)==($2|0); - if (!($12)) { - $13 = ((($1)) + 20|0); - $14 = HEAP32[$13>>2]|0; - $15 = ($14|0)==($2|0); - if (!($15)) { - $18 = ((($1)) + 32|0); - HEAP32[$18>>2] = $3; - $19 = ((($1)) + 44|0); - $20 = HEAP32[$19>>2]|0; - $21 = ($20|0)==(4); - if ($21) { - break; - } - $22 = ((($0)) + 16|0); - $23 = ((($0)) + 12|0); - $24 = HEAP32[$23>>2]|0; - $25 = (((($0)) + 16|0) + ($24<<3)|0); - $26 = ((($1)) + 52|0); - $27 = ((($1)) + 53|0); - $28 = ((($1)) + 54|0); - $29 = ((($0)) + 8|0); - $30 = ((($1)) + 24|0); - $$081$off0 = 0;$$084 = $22;$$085$off0 = 0; - L32: while(1) { - $31 = ($$084>>>0)<($25>>>0); - if (!($31)) { - $$283$off0 = $$081$off0; - label = 18; - break; - } - HEAP8[$26>>0] = 0; - HEAP8[$27>>0] = 0; - __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($$084,$1,$2,$2,1,$4); - $32 = HEAP8[$28>>0]|0; - $33 = ($32<<24>>24)==(0); - if (!($33)) { - $$283$off0 = $$081$off0; - label = 18; - break; - } - $34 = HEAP8[$27>>0]|0; - $35 = ($34<<24>>24)==(0); - do { - if ($35) { - $$182$off0 = $$081$off0;$$186$off0 = $$085$off0; - } else { - $36 = HEAP8[$26>>0]|0; - $37 = ($36<<24>>24)==(0); - if ($37) { - $43 = HEAP32[$29>>2]|0; - $44 = $43 & 1; - $45 = ($44|0)==(0); - if ($45) { - $$283$off0 = 1; - label = 18; - break L32; - } else { - $$182$off0 = 1;$$186$off0 = $$085$off0; - break; - } - } - $38 = HEAP32[$30>>2]|0; - $39 = ($38|0)==(1); - if ($39) { - label = 23; - break L32; - } - $40 = HEAP32[$29>>2]|0; - $41 = $40 & 2; - $42 = ($41|0)==(0); - if ($42) { - label = 23; - break L32; - } else { - $$182$off0 = 1;$$186$off0 = 1; - } - } - } while(0); - $46 = ((($$084)) + 8|0); - $$081$off0 = $$182$off0;$$084 = $46;$$085$off0 = $$186$off0; - } - do { - if ((label|0) == 18) { - if (!($$085$off0)) { - HEAP32[$13>>2] = $2; - $47 = ((($1)) + 40|0); - $48 = HEAP32[$47>>2]|0; - $49 = (($48) + 1)|0; - HEAP32[$47>>2] = $49; - $50 = ((($1)) + 36|0); - $51 = HEAP32[$50>>2]|0; - $52 = ($51|0)==(1); - if ($52) { - $53 = HEAP32[$30>>2]|0; - $54 = ($53|0)==(2); - if ($54) { - HEAP8[$28>>0] = 1; - if ($$283$off0) { - label = 23; - break; - } else { - $55 = 4; - break; - } - } - } - } - if ($$283$off0) { - label = 23; - } else { - $55 = 4; - } - } - } while(0); - if ((label|0) == 23) { - $55 = 3; - } - HEAP32[$19>>2] = $55; - break; - } - } - $16 = ($3|0)==(1); - if ($16) { - $17 = ((($1)) + 32|0); - HEAP32[$17>>2] = 1; - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($1)) + 8|0); - $5 = HEAP32[$4>>2]|0; - $6 = (__ZN10__cxxabiv18is_equalEPKSt9type_infoS2_b($0,$5,0)|0); - L1: do { - if ($6) { - __ZNK10__cxxabiv117__class_type_info24process_found_base_classEPNS_19__dynamic_cast_infoEPvi(0,$1,$2,$3); - } else { - $7 = ((($0)) + 16|0); - $8 = ((($0)) + 12|0); - $9 = HEAP32[$8>>2]|0; - $10 = (((($0)) + 16|0) + ($9<<3)|0); - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($7,$1,$2,$3); - $11 = ($9|0)>(1); - if ($11) { - $12 = ((($0)) + 24|0); - $13 = ((($1)) + 54|0); - $$0 = $12; - while(1) { - __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($$0,$1,$2,$3); - $14 = HEAP8[$13>>0]|0; - $15 = ($14<<24>>24)==(0); - if (!($15)) { - break L1; - } - $16 = ((($$0)) + 8|0); - $17 = ($16>>>0)<($10>>>0); - if ($17) { - $$0 = $16; - } else { - break; - } - } - } - } - } while(0); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi($0,$1,$2,$3) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $4 = ((($0)) + 4|0); - $5 = HEAP32[$4>>2]|0; - $6 = $5 >> 8; - $7 = $5 & 1; - $8 = ($7|0)==(0); - if ($8) { - $$0 = $6; - } else { - $9 = HEAP32[$2>>2]|0; - $10 = (($9) + ($6)|0); - $11 = HEAP32[$10>>2]|0; - $$0 = $11; - } - $12 = HEAP32[$0>>2]|0; - $13 = HEAP32[$12>>2]|0; - $14 = ((($13)) + 28|0); - $15 = HEAP32[$14>>2]|0; - $16 = (($2) + ($$0)|0); - $17 = $5 & 2; - $18 = ($17|0)==(0); - $19 = $18 ? 2 : $3; - FUNCTION_TABLE_viiii[$15 & 255]($12,$1,$16,$19); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib($0,$1,$2,$3,$4,$5) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - $5 = $5|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $21 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $6 = ((($0)) + 4|0); - $7 = HEAP32[$6>>2]|0; - $8 = $7 >> 8; - $9 = $7 & 1; - $10 = ($9|0)==(0); - if ($10) { - $$0 = $8; - } else { - $11 = HEAP32[$3>>2]|0; - $12 = (($11) + ($8)|0); - $13 = HEAP32[$12>>2]|0; - $$0 = $13; - } - $14 = HEAP32[$0>>2]|0; - $15 = HEAP32[$14>>2]|0; - $16 = ((($15)) + 20|0); - $17 = HEAP32[$16>>2]|0; - $18 = (($3) + ($$0)|0); - $19 = $7 & 2; - $20 = ($19|0)==(0); - $21 = $20 ? 2 : $4; - FUNCTION_TABLE_viiiiii[$17 & 255]($14,$1,$2,$18,$21,$5); - return; -} -function __ZNK10__cxxabiv122__base_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib($0,$1,$2,$3,$4) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - $3 = $3|0; - $4 = $4|0; - var $$0 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $20 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - $5 = ((($0)) + 4|0); - $6 = HEAP32[$5>>2]|0; - $7 = $6 >> 8; - $8 = $6 & 1; - $9 = ($8|0)==(0); - if ($9) { - $$0 = $7; - } else { - $10 = HEAP32[$2>>2]|0; - $11 = (($10) + ($7)|0); - $12 = HEAP32[$11>>2]|0; - $$0 = $12; - } - $13 = HEAP32[$0>>2]|0; - $14 = HEAP32[$13>>2]|0; - $15 = ((($14)) + 24|0); - $16 = HEAP32[$15>>2]|0; - $17 = (($2) + ($$0)|0); - $18 = $6 & 2; - $19 = ($18|0)==(0); - $20 = $19 ? 2 : $3; - FUNCTION_TABLE_viiiii[$16 & 255]($13,$1,$17,$20,$4); - return; -} -function ___cxa_guard_acquire($0) { - $0 = $0|0; - var $$0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = HEAP8[$0>>0]|0; - $2 = ($1<<24>>24)==(1); - if ($2) { - $$0 = 0; - } else { - HEAP8[$0>>0] = 1; - $$0 = 1; - } - return ($$0|0); -} -function ___cxa_guard_release($0) { - $0 = $0|0; - var label = 0, sp = 0; - sp = STACKTOP; - return; -} -function __ZSt15get_new_handlerv() { - var $0 = 0, $1 = 0, $2 = 0, label = 0, sp = 0; - sp = STACKTOP; - $0 = HEAP32[5469]|0; - $1 = (($0) + 0)|0; - HEAP32[5469] = $1; - $2 = $0; - return ($2|0); -} -function ___cxa_can_catch($0,$1,$2) { - $0 = $0|0; - $1 = $1|0; - $2 = $2|0; - var $10 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0; - sp = STACKTOP; - STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0); - $3 = sp; - $4 = HEAP32[$2>>2]|0; - HEAP32[$3>>2] = $4; - $5 = HEAP32[$0>>2]|0; - $6 = ((($5)) + 16|0); - $7 = HEAP32[$6>>2]|0; - $8 = (FUNCTION_TABLE_iiii[$7 & 255]($0,$1,$3)|0); - $9 = $8&1; - if ($8) { - $10 = HEAP32[$3>>2]|0; - HEAP32[$2>>2] = $10; - } - STACKTOP = sp;return ($9|0); -} -function ___cxa_is_pointer_type($0) { - $0 = $0|0; - var $1 = 0, $2 = 0, $3 = 0, $phitmp = 0, $phitmp1 = 0, label = 0, sp = 0; - sp = STACKTOP; - $1 = ($0|0)==(0|0); - if ($1) { - $3 = 0; - } else { - $2 = (___dynamic_cast($0,1312,1416,0)|0); - $phitmp = ($2|0)!=(0|0); - $phitmp1 = $phitmp&1; - $3 = $phitmp1; - } - return ($3|0); -} -function runPostSets() { -} -function ___muldsi3($a, $b) { - $a = $a | 0; - $b = $b | 0; - var $1 = 0, $2 = 0, $3 = 0, $6 = 0, $8 = 0, $11 = 0, $12 = 0; - $1 = $a & 65535; - $2 = $b & 65535; - $3 = Math_imul($2, $1) | 0; - $6 = $a >>> 16; - $8 = ($3 >>> 16) + (Math_imul($2, $6) | 0) | 0; - $11 = $b >>> 16; - $12 = Math_imul($11, $1) | 0; - return (tempRet0 = (($8 >>> 16) + (Math_imul($11, $6) | 0) | 0) + ((($8 & 65535) + $12 | 0) >>> 16) | 0, 0 | ($8 + $12 << 16 | $3 & 65535)) | 0; -} -function ___muldi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $x_sroa_0_0_extract_trunc = 0, $y_sroa_0_0_extract_trunc = 0, $1$0 = 0, $1$1 = 0, $2 = 0; - $x_sroa_0_0_extract_trunc = $a$0; - $y_sroa_0_0_extract_trunc = $b$0; - $1$0 = ___muldsi3($x_sroa_0_0_extract_trunc, $y_sroa_0_0_extract_trunc) | 0; - $1$1 = tempRet0; - $2 = Math_imul($a$1, $y_sroa_0_0_extract_trunc) | 0; - return (tempRet0 = ((Math_imul($b$1, $x_sroa_0_0_extract_trunc) | 0) + $2 | 0) + $1$1 | $1$1 & 0, 0 | $1$0 & -1) | 0; -} -function _i64Add(a, b, c, d) { - /* - x = a + b*2^32 - y = c + d*2^32 - result = l + h*2^32 - */ - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a + c)>>>0; - h = (b + d + (((l>>>0) < (a>>>0))|0))>>>0; // Add carry from low word to high word on overflow. - return ((tempRet0 = h,l|0)|0); -} -function _i64Subtract(a, b, c, d) { - a = a|0; b = b|0; c = c|0; d = d|0; - var l = 0, h = 0; - l = (a - c)>>>0; - h = (b - d)>>>0; - h = (b - d - (((c>>>0) > (a>>>0))|0))>>>0; // Borrow one from high word to low word on underflow. - return ((tempRet0 = h,l|0)|0); -} -function _llvm_cttz_i32(x) { // Note: Currently doesn't take isZeroUndef() - x = x | 0; - return (x ? (31 - (Math_clz32((x ^ (x - 1))) | 0) | 0) : 32) | 0; -} -function ___udivmoddi4($a$0, $a$1, $b$0, $b$1, $rem) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - $rem = $rem | 0; - var $n_sroa_0_0_extract_trunc = 0, $n_sroa_1_4_extract_shift$0 = 0, $n_sroa_1_4_extract_trunc = 0, $d_sroa_0_0_extract_trunc = 0, $d_sroa_1_4_extract_shift$0 = 0, $d_sroa_1_4_extract_trunc = 0, $4 = 0, $17 = 0, $37 = 0, $49 = 0, $51 = 0, $57 = 0, $58 = 0, $66 = 0, $78 = 0, $86 = 0, $88 = 0, $89 = 0, $91 = 0, $92 = 0, $95 = 0, $105 = 0, $117 = 0, $119 = 0, $125 = 0, $126 = 0, $130 = 0, $q_sroa_1_1_ph = 0, $q_sroa_0_1_ph = 0, $r_sroa_1_1_ph = 0, $r_sroa_0_1_ph = 0, $sr_1_ph = 0, $d_sroa_0_0_insert_insert99$0 = 0, $d_sroa_0_0_insert_insert99$1 = 0, $137$0 = 0, $137$1 = 0, $carry_0203 = 0, $sr_1202 = 0, $r_sroa_0_1201 = 0, $r_sroa_1_1200 = 0, $q_sroa_0_1199 = 0, $q_sroa_1_1198 = 0, $147 = 0, $149 = 0, $r_sroa_0_0_insert_insert42$0 = 0, $r_sroa_0_0_insert_insert42$1 = 0, $150$1 = 0, $151$0 = 0, $152 = 0, $154$0 = 0, $r_sroa_0_0_extract_trunc = 0, $r_sroa_1_4_extract_trunc = 0, $155 = 0, $carry_0_lcssa$0 = 0, $carry_0_lcssa$1 = 0, $r_sroa_0_1_lcssa = 0, $r_sroa_1_1_lcssa = 0, $q_sroa_0_1_lcssa = 0, $q_sroa_1_1_lcssa = 0, $q_sroa_0_0_insert_ext75$0 = 0, $q_sroa_0_0_insert_ext75$1 = 0, $q_sroa_0_0_insert_insert77$1 = 0, $_0$0 = 0, $_0$1 = 0; - $n_sroa_0_0_extract_trunc = $a$0; - $n_sroa_1_4_extract_shift$0 = $a$1; - $n_sroa_1_4_extract_trunc = $n_sroa_1_4_extract_shift$0; - $d_sroa_0_0_extract_trunc = $b$0; - $d_sroa_1_4_extract_shift$0 = $b$1; - $d_sroa_1_4_extract_trunc = $d_sroa_1_4_extract_shift$0; - if (($n_sroa_1_4_extract_trunc | 0) == 0) { - $4 = ($rem | 0) != 0; - if (($d_sroa_1_4_extract_trunc | 0) == 0) { - if ($4) { - HEAP32[$rem >> 2] = ($n_sroa_0_0_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_0_0_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$4) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - $17 = ($d_sroa_1_4_extract_trunc | 0) == 0; - do { - if (($d_sroa_0_0_extract_trunc | 0) == 0) { - if ($17) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_0_0_extract_trunc >>> 0); - HEAP32[$rem + 4 >> 2] = 0; - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_0_0_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - if (($n_sroa_0_0_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0; - HEAP32[$rem + 4 >> 2] = ($n_sroa_1_4_extract_trunc >>> 0) % ($d_sroa_1_4_extract_trunc >>> 0); - } - $_0$1 = 0; - $_0$0 = ($n_sroa_1_4_extract_trunc >>> 0) / ($d_sroa_1_4_extract_trunc >>> 0) >>> 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $37 = $d_sroa_1_4_extract_trunc - 1 | 0; - if (($37 & $d_sroa_1_4_extract_trunc | 0) == 0) { - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $37 & $n_sroa_1_4_extract_trunc | $a$1 & 0; - } - $_0$1 = 0; - $_0$0 = $n_sroa_1_4_extract_trunc >>> ((_llvm_cttz_i32($d_sroa_1_4_extract_trunc | 0) | 0) >>> 0); - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $49 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $51 = $49 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($51 >>> 0 <= 30) { - $57 = $51 + 1 | 0; - $58 = 31 - $51 | 0; - $sr_1_ph = $57; - $r_sroa_0_1_ph = $n_sroa_1_4_extract_trunc << $58 | $n_sroa_0_0_extract_trunc >>> ($57 >>> 0); - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($57 >>> 0); - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $58; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - if (!$17) { - $117 = Math_clz32($d_sroa_1_4_extract_trunc | 0) | 0; - $119 = $117 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - if ($119 >>> 0 <= 31) { - $125 = $119 + 1 | 0; - $126 = 31 - $119 | 0; - $130 = $119 - 31 >> 31; - $sr_1_ph = $125; - $r_sroa_0_1_ph = $n_sroa_0_0_extract_trunc >>> ($125 >>> 0) & $130 | $n_sroa_1_4_extract_trunc << $126; - $r_sroa_1_1_ph = $n_sroa_1_4_extract_trunc >>> ($125 >>> 0) & $130; - $q_sroa_0_1_ph = 0; - $q_sroa_1_1_ph = $n_sroa_0_0_extract_trunc << $126; - break; - } - if (($rem | 0) == 0) { - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - HEAP32[$rem >> 2] = 0 | $a$0 & -1; - HEAP32[$rem + 4 >> 2] = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$1 = 0; - $_0$0 = 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - $66 = $d_sroa_0_0_extract_trunc - 1 | 0; - if (($66 & $d_sroa_0_0_extract_trunc | 0) != 0) { - $86 = (Math_clz32($d_sroa_0_0_extract_trunc | 0) | 0) + 33 | 0; - $88 = $86 - (Math_clz32($n_sroa_1_4_extract_trunc | 0) | 0) | 0; - $89 = 64 - $88 | 0; - $91 = 32 - $88 | 0; - $92 = $91 >> 31; - $95 = $88 - 32 | 0; - $105 = $95 >> 31; - $sr_1_ph = $88; - $r_sroa_0_1_ph = $91 - 1 >> 31 & $n_sroa_1_4_extract_trunc >>> ($95 >>> 0) | ($n_sroa_1_4_extract_trunc << $91 | $n_sroa_0_0_extract_trunc >>> ($88 >>> 0)) & $105; - $r_sroa_1_1_ph = $105 & $n_sroa_1_4_extract_trunc >>> ($88 >>> 0); - $q_sroa_0_1_ph = $n_sroa_0_0_extract_trunc << $89 & $92; - $q_sroa_1_1_ph = ($n_sroa_1_4_extract_trunc << $89 | $n_sroa_0_0_extract_trunc >>> ($95 >>> 0)) & $92 | $n_sroa_0_0_extract_trunc << $91 & $88 - 33 >> 31; - break; - } - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = $66 & $n_sroa_0_0_extract_trunc; - HEAP32[$rem + 4 >> 2] = 0; - } - if (($d_sroa_0_0_extract_trunc | 0) == 1) { - $_0$1 = $n_sroa_1_4_extract_shift$0 | $a$1 & 0; - $_0$0 = 0 | $a$0 & -1; - return (tempRet0 = $_0$1, $_0$0) | 0; - } else { - $78 = _llvm_cttz_i32($d_sroa_0_0_extract_trunc | 0) | 0; - $_0$1 = 0 | $n_sroa_1_4_extract_trunc >>> ($78 >>> 0); - $_0$0 = $n_sroa_1_4_extract_trunc << 32 - $78 | $n_sroa_0_0_extract_trunc >>> ($78 >>> 0) | 0; - return (tempRet0 = $_0$1, $_0$0) | 0; - } - } - } while (0); - if (($sr_1_ph | 0) == 0) { - $q_sroa_1_1_lcssa = $q_sroa_1_1_ph; - $q_sroa_0_1_lcssa = $q_sroa_0_1_ph; - $r_sroa_1_1_lcssa = $r_sroa_1_1_ph; - $r_sroa_0_1_lcssa = $r_sroa_0_1_ph; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = 0; - } else { - $d_sroa_0_0_insert_insert99$0 = 0 | $b$0 & -1; - $d_sroa_0_0_insert_insert99$1 = $d_sroa_1_4_extract_shift$0 | $b$1 & 0; - $137$0 = _i64Add($d_sroa_0_0_insert_insert99$0 | 0, $d_sroa_0_0_insert_insert99$1 | 0, -1, -1) | 0; - $137$1 = tempRet0; - $q_sroa_1_1198 = $q_sroa_1_1_ph; - $q_sroa_0_1199 = $q_sroa_0_1_ph; - $r_sroa_1_1200 = $r_sroa_1_1_ph; - $r_sroa_0_1201 = $r_sroa_0_1_ph; - $sr_1202 = $sr_1_ph; - $carry_0203 = 0; - while (1) { - $147 = $q_sroa_0_1199 >>> 31 | $q_sroa_1_1198 << 1; - $149 = $carry_0203 | $q_sroa_0_1199 << 1; - $r_sroa_0_0_insert_insert42$0 = 0 | ($r_sroa_0_1201 << 1 | $q_sroa_1_1198 >>> 31); - $r_sroa_0_0_insert_insert42$1 = $r_sroa_0_1201 >>> 31 | $r_sroa_1_1200 << 1 | 0; - _i64Subtract($137$0 | 0, $137$1 | 0, $r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0) | 0; - $150$1 = tempRet0; - $151$0 = $150$1 >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1; - $152 = $151$0 & 1; - $154$0 = _i64Subtract($r_sroa_0_0_insert_insert42$0 | 0, $r_sroa_0_0_insert_insert42$1 | 0, $151$0 & $d_sroa_0_0_insert_insert99$0 | 0, ((($150$1 | 0) < 0 ? -1 : 0) >> 31 | (($150$1 | 0) < 0 ? -1 : 0) << 1) & $d_sroa_0_0_insert_insert99$1 | 0) | 0; - $r_sroa_0_0_extract_trunc = $154$0; - $r_sroa_1_4_extract_trunc = tempRet0; - $155 = $sr_1202 - 1 | 0; - if (($155 | 0) == 0) { - break; - } else { - $q_sroa_1_1198 = $147; - $q_sroa_0_1199 = $149; - $r_sroa_1_1200 = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1201 = $r_sroa_0_0_extract_trunc; - $sr_1202 = $155; - $carry_0203 = $152; - } - } - $q_sroa_1_1_lcssa = $147; - $q_sroa_0_1_lcssa = $149; - $r_sroa_1_1_lcssa = $r_sroa_1_4_extract_trunc; - $r_sroa_0_1_lcssa = $r_sroa_0_0_extract_trunc; - $carry_0_lcssa$1 = 0; - $carry_0_lcssa$0 = $152; - } - $q_sroa_0_0_insert_ext75$0 = $q_sroa_0_1_lcssa; - $q_sroa_0_0_insert_ext75$1 = 0; - $q_sroa_0_0_insert_insert77$1 = $q_sroa_1_1_lcssa | $q_sroa_0_0_insert_ext75$1; - if (($rem | 0) != 0) { - HEAP32[$rem >> 2] = 0 | $r_sroa_0_1_lcssa; - HEAP32[$rem + 4 >> 2] = $r_sroa_1_1_lcssa | 0; - } - $_0$1 = (0 | $q_sroa_0_0_insert_ext75$0) >>> 31 | $q_sroa_0_0_insert_insert77$1 << 1 | ($q_sroa_0_0_insert_ext75$1 << 1 | $q_sroa_0_0_insert_ext75$0 >>> 31) & 0 | $carry_0_lcssa$1; - $_0$0 = ($q_sroa_0_0_insert_ext75$0 << 1 | 0 >>> 31) & -2 | $carry_0_lcssa$0; - return (tempRet0 = $_0$1, $_0$0) | 0; -} -function ___udivdi3($a$0, $a$1, $b$0, $b$1) { - $a$0 = $a$0 | 0; - $a$1 = $a$1 | 0; - $b$0 = $b$0 | 0; - $b$1 = $b$1 | 0; - var $1$0 = 0; - $1$0 = ___udivmoddi4($a$0, $a$1, $b$0, $b$1, 0) | 0; - return $1$0 | 0; -} -function _bitshift64Ashr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = (high|0) < 0 ? -1 : 0; - return (high >> (bits - 32))|0; -} -function _bitshift64Lshr(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = high >>> bits; - return (low >>> bits) | ((high&ander) << (32 - bits)); - } - tempRet0 = 0; - return (high >>> (bits - 32))|0; -} -function _bitshift64Shl(low, high, bits) { - low = low|0; high = high|0; bits = bits|0; - var ander = 0; - if ((bits|0) < 32) { - ander = ((1 << bits) - 1)|0; - tempRet0 = (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits)); - return low << bits; - } - tempRet0 = low << (bits - 32); - return 0; -} -function _llvm_bswap_i32(x) { - x = x|0; - return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; -} -function _memcpy(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - var aligned_dest_end = 0; - var block_aligned_dest_end = 0; - var dest_end = 0; - // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. - if ((num|0) >= - 8192 - ) { - return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; - } - - ret = dest|0; - dest_end = (dest + num)|0; - if ((dest&3) == (src&3)) { - // The initial unaligned < 4-byte front. - while (dest & 3) { - if ((num|0) == 0) return ret|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - num = (num-1)|0; - } - aligned_dest_end = (dest_end & -4)|0; - block_aligned_dest_end = (aligned_dest_end - 64)|0; - while ((dest|0) <= (block_aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); - HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); - HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); - HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); - HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); - HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); - HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); - HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); - HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); - HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); - HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); - HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); - HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); - HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); - HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); - dest = (dest+64)|0; - src = (src+64)|0; - } - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } else { - // In the unaligned copy case, unroll a bit as well. - aligned_dest_end = (dest_end - 4)|0; - while ((dest|0) < (aligned_dest_end|0) ) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); - HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); - HEAP8[(((dest)+(3))>>0)]=((HEAP8[(((src)+(3))>>0)])|0); - dest = (dest+4)|0; - src = (src+4)|0; - } - } - // The remaining unaligned < 4 byte tail. - while ((dest|0) < (dest_end|0)) { - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - dest = (dest+1)|0; - src = (src+1)|0; - } - return ret|0; -} -function _memmove(dest, src, num) { - dest = dest|0; src = src|0; num = num|0; - var ret = 0; - if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) { - // Unlikely case: Copy backwards in a safe manner - ret = dest; - src = (src + num)|0; - dest = (dest + num)|0; - while ((num|0) > 0) { - dest = (dest - 1)|0; - src = (src - 1)|0; - num = (num - 1)|0; - HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); - } - dest = ret; - } else { - _memcpy(dest, src, num) | 0; - } - return dest | 0; -} -function _memset(ptr, value, num) { - ptr = ptr|0; value = value|0; num = num|0; - var end = 0, aligned_end = 0, block_aligned_end = 0, value4 = 0; - end = (ptr + num)|0; - - value = value & 0xff; - if ((num|0) >= 67 /* 64 bytes for an unrolled loop + 3 bytes for unaligned head*/) { - while ((ptr&3) != 0) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - - aligned_end = (end & -4)|0; - block_aligned_end = (aligned_end - 64)|0; - value4 = value | (value << 8) | (value << 16) | (value << 24); - - while((ptr|0) <= (block_aligned_end|0)) { - HEAP32[((ptr)>>2)]=value4; - HEAP32[(((ptr)+(4))>>2)]=value4; - HEAP32[(((ptr)+(8))>>2)]=value4; - HEAP32[(((ptr)+(12))>>2)]=value4; - HEAP32[(((ptr)+(16))>>2)]=value4; - HEAP32[(((ptr)+(20))>>2)]=value4; - HEAP32[(((ptr)+(24))>>2)]=value4; - HEAP32[(((ptr)+(28))>>2)]=value4; - HEAP32[(((ptr)+(32))>>2)]=value4; - HEAP32[(((ptr)+(36))>>2)]=value4; - HEAP32[(((ptr)+(40))>>2)]=value4; - HEAP32[(((ptr)+(44))>>2)]=value4; - HEAP32[(((ptr)+(48))>>2)]=value4; - HEAP32[(((ptr)+(52))>>2)]=value4; - HEAP32[(((ptr)+(56))>>2)]=value4; - HEAP32[(((ptr)+(60))>>2)]=value4; - ptr = (ptr + 64)|0; - } - - while ((ptr|0) < (aligned_end|0) ) { - HEAP32[((ptr)>>2)]=value4; - ptr = (ptr+4)|0; - } - } - // The remaining bytes. - while ((ptr|0) < (end|0)) { - HEAP8[((ptr)>>0)]=value; - ptr = (ptr+1)|0; - } - return (end-num)|0; -} -function _pthread_mutex_lock(x) { - x = x | 0; - return 0; -} -function _pthread_mutex_unlock(x) { - x = x | 0; - return 0; -} -function _sbrk(increment) { - increment = increment|0; - var oldDynamicTop = 0; - var oldDynamicTopOnChange = 0; - var newDynamicTop = 0; - var totalMemory = 0; - oldDynamicTop = HEAP32[DYNAMICTOP_PTR>>2]|0; - newDynamicTop = oldDynamicTop + increment | 0; - - if (((increment|0) > 0 & (newDynamicTop|0) < (oldDynamicTop|0)) // Detect and fail if we would wrap around signed 32-bit int. - | (newDynamicTop|0) < 0) { // Also underflow, sbrk() should be able to be used to subtract. - abortOnCannotGrowMemory()|0; - ___setErrNo(12); - return -1; - } - - HEAP32[DYNAMICTOP_PTR>>2] = newDynamicTop; - totalMemory = getTotalMemory()|0; - if ((newDynamicTop|0) > (totalMemory|0)) { - if ((enlargeMemory()|0) == 0) { - HEAP32[DYNAMICTOP_PTR>>2] = oldDynamicTop; - ___setErrNo(12); - return -1; - } - } - return oldDynamicTop|0; -} - - -function dynCall_i(index) { - index = index|0; - - return FUNCTION_TABLE_i[index&255]()|0; -} - - -function dynCall_ii(index,a1) { - index = index|0; - a1=a1|0; - return FUNCTION_TABLE_ii[index&255](a1|0)|0; -} - - -function dynCall_iii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - return FUNCTION_TABLE_iii[index&255](a1|0,a2|0)|0; -} - - -function dynCall_iiii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - return FUNCTION_TABLE_iiii[index&255](a1|0,a2|0,a3|0)|0; -} - - -function dynCall_v(index) { - index = index|0; - - FUNCTION_TABLE_v[index&511](); -} - - -function dynCall_vi(index,a1) { - index = index|0; - a1=a1|0; - FUNCTION_TABLE_vi[index&511](a1|0); -} - - -function dynCall_vii(index,a1,a2) { - index = index|0; - a1=a1|0; a2=a2|0; - FUNCTION_TABLE_vii[index&255](a1|0,a2|0); -} - - -function dynCall_viii(index,a1,a2,a3) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; - FUNCTION_TABLE_viii[index&255](a1|0,a2|0,a3|0); -} - - -function dynCall_viiii(index,a1,a2,a3,a4) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; - FUNCTION_TABLE_viiii[index&255](a1|0,a2|0,a3|0,a4|0); -} - - -function dynCall_viiiii(index,a1,a2,a3,a4,a5) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; - FUNCTION_TABLE_viiiii[index&255](a1|0,a2|0,a3|0,a4|0,a5|0); -} - - -function dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6) { - index = index|0; - a1=a1|0; a2=a2|0; a3=a3|0; a4=a4|0; a5=a5|0; a6=a6|0; - FUNCTION_TABLE_viiiiii[index&255](a1|0,a2|0,a3|0,a4|0,a5|0,a6|0); -} - -function b0() { - ; nullFunc_i(0);return 0; -} -function b1(p0) { - p0 = p0|0; nullFunc_ii(1);return 0; -} -function b2(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_iii(2);return 0; -} -function b3(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_iiii(3);return 0; -} -function b4() { - ; nullFunc_v(4); -} -function ___cxa_pure_virtual__wrapper() { - ; ___cxa_pure_virtual(); -} -function b5(p0) { - p0 = p0|0; nullFunc_vi(5); -} -function b6(p0,p1) { - p0 = p0|0;p1 = p1|0; nullFunc_vii(6); -} -function b7(p0,p1,p2) { - p0 = p0|0;p1 = p1|0;p2 = p2|0; nullFunc_viii(7); -} -function b8(p0,p1,p2,p3) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0; nullFunc_viiii(8); -} -function b9(p0,p1,p2,p3,p4) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0; nullFunc_viiiii(9); -} -function b10(p0,p1,p2,p3,p4,p5) { - p0 = p0|0;p1 = p1|0;p2 = p2|0;p3 = p3|0;p4 = p4|0;p5 = p5|0; nullFunc_viiiiii(10); -} - -// EMSCRIPTEN_END_FUNCS -var FUNCTION_TABLE_i = [b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,b0,__ZN10emscripten8internal12operator_newI6LASZipJEEEPT_DpOT0_,b0,b0 -,b0,b0,b0,b0,b0,b0,b0,__ZN10emscripten8internal12operator_newI13DynamicLASZipJEEEPT_DpOT0_,b0,b0,b0,b0,b0,b0,b0,b0,b0]; -var FUNCTION_TABLE_ii = [b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZNKSt13runtime_error4whatEv,b1,b1,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEv,b1,b1,b1,b1,b1,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE11target_typeEv,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,___stdio_close,b1,b1,b1,b1,b1,__ZNKSt3__217bad_function_call4whatEv,b1,b1,b1,b1,b1,b1,b1,b1,b1 -,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZNKSt9exception4whatEv,b1,b1,__ZNKSt11logic_error4whatEv,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,__ZN10emscripten8internal13getActualTypeI6LASZipEEPKvPT_,b1,b1,__ZN10emscripten8internal7InvokerIP6LASZipJEE6invokeEPFS3_vE,b1 -,b1,b1,b1,__ZN6LASZip8getCountEv,b1,__ZN10emscripten8internal13getActualTypeI13DynamicLASZipEEPKvPT_,b1,b1,__ZN10emscripten8internal7InvokerIP13DynamicLASZipJEE6invokeEPFS3_vE,b1,b1,b1,b1,b1,b1,b1,b1]; -var FUNCTION_TABLE_iii = [b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE6targetERKSt9type_info,b2,b2,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEE10decompressEPc,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2 -,b2,b2,__ZN6laszip7formats10base_field11compressRawEPKc,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,__ZN6laszip7formats10base_field13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,b2,b2 -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE13__get_deleterERKSt9type_info,b2 -,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE13__get_deleterERKSt9type_info,b2,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEE10decompressEPc,b2,b2,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEE13decompressRawEPc,b2 -,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2 -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEE13decompressRawEPc,b2,b2,b2,__ZNKSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,__ZNKSt3__219__shared_weak_count13__get_deleterERKSt9type_info,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2 -,b2,b2,b2,b2,__ZN10emscripten8internal13MethodInvokerIM6LASZipFjvEjPS2_JEE6invokeERKS4_S5_,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2,b2]; -var FUNCTION_TABLE_iiii = [b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,___stdio_write,___stdio_seek,___stdout_write,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,__ZNK10__cxxabiv123__fundamental_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,__ZNK10__cxxabiv119__pointer_type_info9can_catchEPKNS_16__shim_type_infoERPv,b3,b3,b3,b3,b3,b3,b3,b3,b3 -,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3]; -var FUNCTION_TABLE_v = [b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,___cxa_pure_virtual__wrapper,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,__ZL25default_terminate_handlerv,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,__ZN10__cxxabiv112_GLOBAL__N_110construct_Ev,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4 -,b4,b4,b4]; -var FUNCTION_TABLE_vi = [b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7streams13memory_streamENS_14default_deleteIS3_EENS_9allocatorIS3_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip2io6reader10basic_fileINS1_7streams13memory_streamEEENS_14default_deleteIS7_EENS_9allocatorIS7_EEE21__on_zero_shared_weakEv,__ZN6laszip13invalid_magicD2Ev,__ZN6laszip13invalid_magicD0Ev,b5,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED2Ev,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EED0Ev,b5,b5,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7destroyEv,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE18destroy_deallocateEv,b5,b5,b5,__ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED2Ev,__ZNSt3__210__function6__baseIFvRN6laszip2io6headerEEED0Ev,b5,__ZN6laszip21old_style_compressionD2Ev,__ZN6laszip21old_style_compressionD0Ev,__ZN6laszip14not_compressedD2Ev -,__ZN6laszip14not_compressedD0Ev,__ZN6laszip25laszip_format_unsupportedD2Ev,__ZN6laszip25laszip_format_unsupportedD0Ev,__ZN6laszip13no_laszip_vlrD2Ev,__ZN6laszip13no_laszip_vlrD0Ev,__ZN6laszip22chunk_table_read_errorD2Ev,__ZN6laszip22chunk_table_read_errorD0Ev,__ZN6laszip13not_supportedD2Ev,__ZN6laszip13not_supportedD0Ev,__ZN6laszip26unknown_chunk_table_formatD2Ev,__ZN6laszip26unknown_chunk_table_formatD0Ev,__ZN6laszip11end_of_fileD2Ev,__ZN6laszip11end_of_fileD0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS_14default_deleteIS9_EENS_9allocatorIS9_EEE21__on_zero_shared_weakEv,__ZN6laszip19unknown_schema_typeD2Ev,__ZN6laszip19unknown_schema_typeD0Ev,b5,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED2Ev,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEEED0Ev,__ZN6laszip7formats20dynamic_decompressorD2Ev,__ZN6laszip7formats20dynamic_decompressorD0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv -,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISC_EEEEED0Ev,b5,b5,__ZN6laszip7formats10base_fieldD2Ev,__ZN6laszip7formats10base_fieldD0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las7gpstimeENS0_20standard_diff_methodISC_EEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las7gpstimeENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las3rgbENS0_20standard_diff_methodISC_EEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las3rgbENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_5fieldINS0_3las10extrabytesENS0_20standard_diff_methodISC_EEEEED0Ev -,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_5fieldINS2_3las10extrabytesENS2_20standard_diff_methodISE_EEEEEENS_14default_deleteISI_EENS_9allocatorISI_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEEEEEEENS_14default_deleteISK_EENS_9allocatorISK_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_3rgbENSE_ISH_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_3rgbENSG_ISJ_EEEEEEEEENS_14default_deleteISN_EENS_9allocatorISN_EEE21__on_zero_shared_weakEv -,b5,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED2Ev,__ZN6laszip7formats21dynamic_decompressor1INS_8decoders10arithmeticINS_2io18__ifstream_wrapperINS_7streams13memory_streamEEEEENS0_19record_decompressorIJNS0_5fieldINS0_3las7point10ENS0_20standard_diff_methodISD_EEEENSB_INSC_7gpstimeENSE_ISH_EEEENSB_INSC_3rgbENSE_ISK_EEEEEEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats21dynamic_decompressor1INS1_8decoders10arithmeticINS1_2io18__ifstream_wrapperINS1_7streams13memory_streamEEEEENS2_19record_decompressorIJNS2_5fieldINS2_3las7point10ENS2_20standard_diff_methodISF_EEEENSD_INSE_7gpstimeENSG_ISJ_EEEENSD_INSE_3rgbENSG_ISM_EEEEEEEEENS_14default_deleteISQ_EENS_9allocatorISQ_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIP10buf_streamNS_14default_deleteIS1_EENS_9allocatorIS1_EEE21__on_zero_shared_weakEv,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip8decoders10arithmeticI10buf_streamEENS_14default_deleteIS5_EENS_9allocatorIS5_EEE21__on_zero_shared_weakEv,b5,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED2Ev,__ZN6laszip7formats26dynamic_field_decompressorINS_8decoders10arithmeticI10buf_streamEEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_field_decompressorINS1_8decoders10arithmeticI10buf_streamEEEENS_14default_deleteIS8_EENS_9allocatorIS8_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIiNS0_20standard_diff_methodIiEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev -,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIiNS2_20standard_diff_methodIiEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIjNS0_20standard_diff_methodIjEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIjNS2_20standard_diff_methodIjEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIaNS0_20standard_diff_methodIaEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIaNS2_20standard_diff_methodIaEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIsNS0_20standard_diff_methodIsEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIsNS2_20standard_diff_methodIsEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldIhNS0_20standard_diff_methodIhEEEEED0Ev -,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldIhNS2_20standard_diff_methodIhEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED2Ev,__ZN6laszip7formats26dynamic_decompressor_fieldINS_8decoders10arithmeticI10buf_streamEENS0_5fieldItNS0_20standard_diff_methodItEEEEED0Ev,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED2Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEED0Ev,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE16__on_zero_sharedEv,b5,__ZNSt3__220__shared_ptr_pointerIPN6laszip7formats26dynamic_decompressor_fieldINS1_8decoders10arithmeticI10buf_streamEENS2_5fieldItNS2_20standard_diff_methodItEEEEEENS_14default_deleteISC_EENS_9allocatorISC_EEE21__on_zero_shared_weakEv,b5,b5,b5,b5,__ZNSt3__217bad_function_callD2Ev,__ZNSt3__217bad_function_callD0Ev,b5,__ZNSt3__214__shared_countD2Ev,__ZNSt3__214__shared_countD0Ev,__ZNSt3__219__shared_weak_countD0Ev,b5,b5,__ZN10__cxxabiv116__shim_type_infoD2Ev,__ZN10__cxxabiv117__class_type_infoD0Ev,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,__ZNK10__cxxabiv116__shim_type_info5noop2Ev -,b5,b5,b5,b5,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b5,b5,b5,__ZNSt9exceptionD2Ev,__ZNSt9exceptionD0Ev,b5,__ZNSt11logic_errorD2Ev,__ZNSt11logic_errorD0Ev,b5,__ZNSt13runtime_errorD2Ev,__ZNSt13runtime_errorD0Ev,__ZNSt12length_errorD0Ev,__ZN10__cxxabiv123__fundamental_type_infoD0Ev,b5,__ZN10__cxxabiv119__pointer_type_infoD0Ev,b5,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev,b5,b5,b5,b5,__ZN10emscripten8internal14raw_destructorI6LASZipEEvPT_,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,__ZN10emscripten8internal14raw_destructorI13DynamicLASZipEEvPT_,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,__ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5 -,b5,b5,b5]; -var FUNCTION_TABLE_vii = [b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,__ZNKSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EE7__cloneEPNS0_6__baseISE_EE,b6,b6,__ZNSt3__210__function6__funcIZN6laszip2io6reader10basic_fileINS2_7streams13memory_streamEE11_validatorsEvEUlRNS3_6headerEE_NS_9allocatorISB_EEFvSA_EEclESA_,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6 -,b6,__ZN6LASZip8getPointEi,b6,b6,b6,b6,b6,b6,b6,b6,b6,__ZN13DynamicLASZip16addFieldFloatingEj,b6,__ZN13DynamicLASZip14addFieldSignedEj,__ZN13DynamicLASZip16addFieldUnsignedEj,__ZN13DynamicLASZip8getPointEi,b6]; -var FUNCTION_TABLE_viii = [b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7 -,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,b7,__ZN6LASZip4openEjj -,b7,b7,__ZN10emscripten8internal13MethodInvokerIM6LASZipFviEvPS2_JiEE6invokeERKS4_S5_i,b7,b7,b7,b7,b7,b7,__ZN13DynamicLASZip4openEjj,b7,b7,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjEvPS2_JjEE6invokeERKS4_S5_j,b7,b7,b7,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFviEvPS2_JiEE6invokeERKS4_S5_i]; -var FUNCTION_TABLE_viiii = [b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8 -,b8,b8,b8,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b8,b8,b8,b8,b8 -,__ZN10emscripten8internal13MethodInvokerIM6LASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj,b8,b8,b8,b8,b8,b8,b8,b8,b8,__ZN10emscripten8internal13MethodInvokerIM13DynamicLASZipFvjjEvPS2_JjjEE6invokeERKS4_S5_jj,b8,b8,b8,b8,b8,b8]; -var FUNCTION_TABLE_viiiii = [b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9 -,b9,b9,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b9,b9,b9,b9,b9,b9 -,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9,b9]; -var FUNCTION_TABLE_viiiiii = [b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10 -,b10,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b10,b10,b10,b10,b10,b10,b10 -,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10,b10]; - - return { __GLOBAL__sub_I_bind_cpp: __GLOBAL__sub_I_bind_cpp, __GLOBAL__sub_I_laz_perf_cpp: __GLOBAL__sub_I_laz_perf_cpp, ___cxa_can_catch: ___cxa_can_catch, ___cxa_is_pointer_type: ___cxa_is_pointer_type, ___errno_location: ___errno_location, ___getTypeName: ___getTypeName, ___muldi3: ___muldi3, ___udivdi3: ___udivdi3, _bitshift64Ashr: _bitshift64Ashr, _bitshift64Lshr: _bitshift64Lshr, _bitshift64Shl: _bitshift64Shl, _fflush: _fflush, _free: _free, _i64Add: _i64Add, _i64Subtract: _i64Subtract, _llvm_bswap_i32: _llvm_bswap_i32, _malloc: _malloc, _memcpy: _memcpy, _memmove: _memmove, _memset: _memset, _pthread_mutex_lock: _pthread_mutex_lock, _pthread_mutex_unlock: _pthread_mutex_unlock, _sbrk: _sbrk, dynCall_i: dynCall_i, dynCall_ii: dynCall_ii, dynCall_iii: dynCall_iii, dynCall_iiii: dynCall_iiii, dynCall_v: dynCall_v, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_viii: dynCall_viii, dynCall_viiii: dynCall_viiii, dynCall_viiiii: dynCall_viiiii, dynCall_viiiiii: dynCall_viiiiii, establishStackSpace: establishStackSpace, getTempRet0: getTempRet0, runPostSets: runPostSets, setTempRet0: setTempRet0, setThrew: setThrew, stackAlloc: stackAlloc, stackRestore: stackRestore, stackSave: stackSave }; -}) -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg, Module.asmLibraryArg, buffer); - -var real___GLOBAL__sub_I_bind_cpp = asm["__GLOBAL__sub_I_bind_cpp"]; asm["__GLOBAL__sub_I_bind_cpp"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real___GLOBAL__sub_I_bind_cpp.apply(null, arguments); -}; - -var real___GLOBAL__sub_I_laz_perf_cpp = asm["__GLOBAL__sub_I_laz_perf_cpp"]; asm["__GLOBAL__sub_I_laz_perf_cpp"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real___GLOBAL__sub_I_laz_perf_cpp.apply(null, arguments); -}; - -var real____cxa_can_catch = asm["___cxa_can_catch"]; asm["___cxa_can_catch"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____cxa_can_catch.apply(null, arguments); -}; - -var real____cxa_is_pointer_type = asm["___cxa_is_pointer_type"]; asm["___cxa_is_pointer_type"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____cxa_is_pointer_type.apply(null, arguments); -}; - -var real____errno_location = asm["___errno_location"]; asm["___errno_location"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____errno_location.apply(null, arguments); -}; - -var real____getTypeName = asm["___getTypeName"]; asm["___getTypeName"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____getTypeName.apply(null, arguments); -}; - -var real____muldi3 = asm["___muldi3"]; asm["___muldi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____muldi3.apply(null, arguments); -}; - -var real____udivdi3 = asm["___udivdi3"]; asm["___udivdi3"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real____udivdi3.apply(null, arguments); -}; - -var real__bitshift64Ashr = asm["_bitshift64Ashr"]; asm["_bitshift64Ashr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Ashr.apply(null, arguments); -}; - -var real__bitshift64Lshr = asm["_bitshift64Lshr"]; asm["_bitshift64Lshr"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Lshr.apply(null, arguments); -}; - -var real__bitshift64Shl = asm["_bitshift64Shl"]; asm["_bitshift64Shl"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__bitshift64Shl.apply(null, arguments); -}; - -var real__fflush = asm["_fflush"]; asm["_fflush"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__fflush.apply(null, arguments); -}; - -var real__free = asm["_free"]; asm["_free"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__free.apply(null, arguments); -}; - -var real__i64Add = asm["_i64Add"]; asm["_i64Add"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Add.apply(null, arguments); -}; - -var real__i64Subtract = asm["_i64Subtract"]; asm["_i64Subtract"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__i64Subtract.apply(null, arguments); -}; - -var real__llvm_bswap_i32 = asm["_llvm_bswap_i32"]; asm["_llvm_bswap_i32"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__llvm_bswap_i32.apply(null, arguments); -}; - -var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__malloc.apply(null, arguments); -}; - -var real__memmove = asm["_memmove"]; asm["_memmove"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__memmove.apply(null, arguments); -}; - -var real__pthread_mutex_lock = asm["_pthread_mutex_lock"]; asm["_pthread_mutex_lock"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__pthread_mutex_lock.apply(null, arguments); -}; - -var real__pthread_mutex_unlock = asm["_pthread_mutex_unlock"]; asm["_pthread_mutex_unlock"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__pthread_mutex_unlock.apply(null, arguments); -}; - -var real__sbrk = asm["_sbrk"]; asm["_sbrk"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real__sbrk.apply(null, arguments); -}; - -var real_establishStackSpace = asm["establishStackSpace"]; asm["establishStackSpace"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_establishStackSpace.apply(null, arguments); -}; - -var real_getTempRet0 = asm["getTempRet0"]; asm["getTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_getTempRet0.apply(null, arguments); -}; - -var real_setTempRet0 = asm["setTempRet0"]; asm["setTempRet0"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setTempRet0.apply(null, arguments); -}; - -var real_setThrew = asm["setThrew"]; asm["setThrew"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_setThrew.apply(null, arguments); -}; - -var real_stackAlloc = asm["stackAlloc"]; asm["stackAlloc"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackAlloc.apply(null, arguments); -}; - -var real_stackRestore = asm["stackRestore"]; asm["stackRestore"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackRestore.apply(null, arguments); -}; - -var real_stackSave = asm["stackSave"]; asm["stackSave"] = function() { - assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); - assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); - return real_stackSave.apply(null, arguments); -}; -var __GLOBAL__sub_I_bind_cpp = Module["__GLOBAL__sub_I_bind_cpp"] = asm["__GLOBAL__sub_I_bind_cpp"]; -var __GLOBAL__sub_I_laz_perf_cpp = Module["__GLOBAL__sub_I_laz_perf_cpp"] = asm["__GLOBAL__sub_I_laz_perf_cpp"]; -var ___cxa_can_catch = Module["___cxa_can_catch"] = asm["___cxa_can_catch"]; -var ___cxa_is_pointer_type = Module["___cxa_is_pointer_type"] = asm["___cxa_is_pointer_type"]; -var ___errno_location = Module["___errno_location"] = asm["___errno_location"]; -var ___getTypeName = Module["___getTypeName"] = asm["___getTypeName"]; -var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; -var ___udivdi3 = Module["___udivdi3"] = asm["___udivdi3"]; -var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"]; -var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; -var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; -var _fflush = Module["_fflush"] = asm["_fflush"]; -var _free = Module["_free"] = asm["_free"]; -var _i64Add = Module["_i64Add"] = asm["_i64Add"]; -var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; -var _llvm_bswap_i32 = Module["_llvm_bswap_i32"] = asm["_llvm_bswap_i32"]; -var _malloc = Module["_malloc"] = asm["_malloc"]; -var _memcpy = Module["_memcpy"] = asm["_memcpy"]; -var _memmove = Module["_memmove"] = asm["_memmove"]; -var _memset = Module["_memset"] = asm["_memset"]; -var _pthread_mutex_lock = Module["_pthread_mutex_lock"] = asm["_pthread_mutex_lock"]; -var _pthread_mutex_unlock = Module["_pthread_mutex_unlock"] = asm["_pthread_mutex_unlock"]; -var _sbrk = Module["_sbrk"] = asm["_sbrk"]; -var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; -var getTempRet0 = Module["getTempRet0"] = asm["getTempRet0"]; -var runPostSets = Module["runPostSets"] = asm["runPostSets"]; -var setTempRet0 = Module["setTempRet0"] = asm["setTempRet0"]; -var setThrew = Module["setThrew"] = asm["setThrew"]; -var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; -var stackRestore = Module["stackRestore"] = asm["stackRestore"]; -var stackSave = Module["stackSave"] = asm["stackSave"]; -var dynCall_i = Module["dynCall_i"] = asm["dynCall_i"]; -var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; -var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; -var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; -var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"]; -var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; -var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; -var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"]; -var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"]; -var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"]; -var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"]; -; - - - -// === Auto-generated postamble setup entry stuff === - -Module['asm'] = asm; - -if (!Module["intArrayFromString"]) Module["intArrayFromString"] = function() { abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["intArrayToString"]) Module["intArrayToString"] = function() { abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["ccall"]) Module["ccall"] = function() { abort("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["cwrap"]) Module["cwrap"] = function() { abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["setValue"]) Module["setValue"] = function() { abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getValue"]) Module["getValue"] = function() { abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["allocate"]) Module["allocate"] = function() { abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getMemory"]) Module["getMemory"] = function() { abort("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["Pointer_stringify"]) Module["Pointer_stringify"] = function() { abort("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["AsciiToString"]) Module["AsciiToString"] = function() { abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToAscii"]) Module["stringToAscii"] = function() { abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF8ArrayToString"]) Module["UTF8ArrayToString"] = function() { abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF8ToString"]) Module["UTF8ToString"] = function() { abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF8Array"]) Module["stringToUTF8Array"] = function() { abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF8"]) Module["stringToUTF8"] = function() { abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF8"]) Module["lengthBytesUTF8"] = function() { abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF16ToString"]) Module["UTF16ToString"] = function() { abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF16"]) Module["stringToUTF16"] = function() { abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF16"]) Module["lengthBytesUTF16"] = function() { abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["UTF32ToString"]) Module["UTF32ToString"] = function() { abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stringToUTF32"]) Module["stringToUTF32"] = function() { abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["lengthBytesUTF32"]) Module["lengthBytesUTF32"] = function() { abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["allocateUTF8"]) Module["allocateUTF8"] = function() { abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackTrace"]) Module["stackTrace"] = function() { abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPreRun"]) Module["addOnPreRun"] = function() { abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnInit"]) Module["addOnInit"] = function() { abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPreMain"]) Module["addOnPreMain"] = function() { abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnExit"]) Module["addOnExit"] = function() { abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addOnPostRun"]) Module["addOnPostRun"] = function() { abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeStringToMemory"]) Module["writeStringToMemory"] = function() { abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeArrayToMemory"]) Module["writeArrayToMemory"] = function() { abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["writeAsciiToMemory"]) Module["writeAsciiToMemory"] = function() { abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addRunDependency"]) Module["addRunDependency"] = function() { abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["removeRunDependency"]) Module["removeRunDependency"] = function() { abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS"]) Module["FS"] = function() { abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["FS_createFolder"]) Module["FS_createFolder"] = function() { abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createPath"]) Module["FS_createPath"] = function() { abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createDataFile"]) Module["FS_createDataFile"] = function() { abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createPreloadedFile"]) Module["FS_createPreloadedFile"] = function() { abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createLazyFile"]) Module["FS_createLazyFile"] = function() { abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createLink"]) Module["FS_createLink"] = function() { abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_createDevice"]) Module["FS_createDevice"] = function() { abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["FS_unlink"]) Module["FS_unlink"] = function() { abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you") }; -if (!Module["GL"]) Module["GL"] = function() { abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["staticAlloc"]) Module["staticAlloc"] = function() { abort("'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["dynamicAlloc"]) Module["dynamicAlloc"] = function() { abort("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["warnOnce"]) Module["warnOnce"] = function() { abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["loadDynamicLibrary"]) Module["loadDynamicLibrary"] = function() { abort("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["loadWebAssemblyModule"]) Module["loadWebAssemblyModule"] = function() { abort("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getLEB"]) Module["getLEB"] = function() { abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getFunctionTables"]) Module["getFunctionTables"] = function() { abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["alignFunctionTables"]) Module["alignFunctionTables"] = function() { abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["registerFunctions"]) Module["registerFunctions"] = function() { abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["addFunction"]) Module["addFunction"] = function() { abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["removeFunction"]) Module["removeFunction"] = function() { abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getFuncWrapper"]) Module["getFuncWrapper"] = function() { abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["prettyPrint"]) Module["prettyPrint"] = function() { abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["makeBigInt"]) Module["makeBigInt"] = function() { abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["dynCall"]) Module["dynCall"] = function() { abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["getCompilerSetting"]) Module["getCompilerSetting"] = function() { abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackSave"]) Module["stackSave"] = function() { abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackRestore"]) Module["stackRestore"] = function() { abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["stackAlloc"]) Module["stackAlloc"] = function() { abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["intArrayFromBase64"]) Module["intArrayFromBase64"] = function() { abort("'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") }; -if (!Module["tryParseAsDataURI"]) Module["tryParseAsDataURI"] = function() { abort("'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") };if (!Module["ALLOC_NORMAL"]) Object.defineProperty(Module, "ALLOC_NORMAL", { get: function() { abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_STACK"]) Object.defineProperty(Module, "ALLOC_STACK", { get: function() { abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_STATIC"]) Object.defineProperty(Module, "ALLOC_STATIC", { get: function() { abort("'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_DYNAMIC"]) Object.defineProperty(Module, "ALLOC_DYNAMIC", { get: function() { abort("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); -if (!Module["ALLOC_NONE"]) Object.defineProperty(Module, "ALLOC_NONE", { get: function() { abort("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") } }); - -if (memoryInitializer) { - if (!isDataURI(memoryInitializer)) { - if (typeof Module['locateFile'] === 'function') { - memoryInitializer = Module['locateFile'](memoryInitializer); - } else if (Module['memoryInitializerPrefixURL']) { - memoryInitializer = Module['memoryInitializerPrefixURL'] + memoryInitializer; - } - } - if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { - var data = Module['readBinary'](memoryInitializer); - HEAPU8.set(data, GLOBAL_BASE); - } else { - addRunDependency('memory initializer'); - var applyMemoryInitializer = function(data) { - if (data.byteLength) data = new Uint8Array(data); - for (var i = 0; i < data.length; i++) { - assert(HEAPU8[GLOBAL_BASE + i] === 0, "area for memory initializer should not have been touched before it's loaded"); - } - HEAPU8.set(data, GLOBAL_BASE); - // Delete the typed array that contains the large blob of the memory initializer request response so that - // we won't keep unnecessary memory lying around. However, keep the XHR object itself alive so that e.g. - // its .status field can still be accessed later. - if (Module['memoryInitializerRequest']) delete Module['memoryInitializerRequest'].response; - removeRunDependency('memory initializer'); - } - function doBrowserLoad() { - Module['readAsync'](memoryInitializer, applyMemoryInitializer, function() { - throw 'could not load memory initializer ' + memoryInitializer; - }); - } - var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer); - if (memoryInitializerBytes) { - applyMemoryInitializer(memoryInitializerBytes.buffer); - } else - if (Module['memoryInitializerRequest']) { - // a network request has already been created, just use that - function useRequest() { - var request = Module['memoryInitializerRequest']; - var response = request.response; - if (request.status !== 200 && request.status !== 0) { - var data = tryParseAsDataURI(Module['memoryInitializerRequestURL']); - if (data) { - response = data.buffer; - } else { - // If you see this warning, the issue may be that you are using locateFile or memoryInitializerPrefixURL, and defining them in JS. That - // means that the HTML file doesn't know about them, and when it tries to create the mem init request early, does it to the wrong place. - // Look in your browser's devtools network console to see what's going on. - console.warn('a problem seems to have happened with Module.memoryInitializerRequest, status: ' + request.status + ', retrying ' + memoryInitializer); - doBrowserLoad(); - return; - } - } - applyMemoryInitializer(response); - } - if (Module['memoryInitializerRequest'].response) { - setTimeout(useRequest, 0); // it's already here; but, apply it asynchronously - } else { - Module['memoryInitializerRequest'].addEventListener('load', useRequest); // wait for it - } - } else { - // fetch it from the network ourselves - doBrowserLoad(); - } - } -} - - - -/** - * @constructor - * @extends {Error} - * @this {ExitStatus} - */ -function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; -}; -ExitStatus.prototype = new Error(); -ExitStatus.prototype.constructor = ExitStatus; - -var initialStackTop; -var calledMain = false; - -dependenciesFulfilled = function runCaller() { - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!Module['calledRun']) run(); - if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled -} - - - - - -/** @type {function(Array=)} */ -function run(args) { - args = args || Module['arguments']; - - if (runDependencies > 0) { - return; - } - - writeStackCookie(); - - preRun(); - - if (runDependencies > 0) return; // a preRun added a dependency, run will be called later - if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame - - function doRun() { - if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening - Module['calledRun'] = true; - - if (ABORT) return; - - ensureInitRuntime(); - - preMain(); - - if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); - - assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); - - postRun(); - } - - if (Module['setStatus']) { - Module['setStatus']('Running...'); - setTimeout(function() { - setTimeout(function() { - Module['setStatus'](''); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - checkStackCookie(); -} -Module['run'] = run; - -function checkUnflushedContent() { - // Compiler settings do not allow exiting the runtime, so flushing - // the streams is not possible. but in ASSERTIONS mode we check - // if there was something to flush, and if so tell the user they - // should request that the runtime be exitable. - // Normally we would not even include flush() at all, but in ASSERTIONS - // builds we do so just for this check, and here we see if there is any - // content to flush, that is, we check if there would have been - // something a non-ASSERTIONS build would have not seen. - // How we flush the streams depends on whether we are in NO_FILESYSTEM - // mode (which has its own special function for this; otherwise, all - // the code is inside libc) - var print = Module['print']; - var printErr = Module['printErr']; - var has = false; - Module['print'] = Module['printErr'] = function(x) { - has = true; - } - try { // it doesn't matter if it fails - var flush = flush_NO_FILESYSTEM; - if (flush) flush(0); - } catch(e) {} - Module['print'] = print; - Module['printErr'] = printErr; - if (has) { - warnOnce('stdio streams had content in them that was not flushed. you should set NO_EXIT_RUNTIME to 0 (see the FAQ), or make sure to emit a newline when you printf etc.'); - } -} - -function exit(status, implicit) { - checkUnflushedContent(); - - // if this is just main exit-ing implicitly, and the status is 0, then we - // don't need to do anything here and can just leave. if the status is - // non-zero, though, then we need to report it. - // (we may have warned about this earlier, if a situation justifies doing so) - if (implicit && Module['noExitRuntime'] && status === 0) { - return; - } - - if (Module['noExitRuntime']) { - // if exit() was called, we may warn the user if the runtime isn't actually being shut down - if (!implicit) { - Module.printErr('exit(' + status + ') called, but NO_EXIT_RUNTIME is set, so halting execution but not exiting the runtime or preventing further async execution (build with NO_EXIT_RUNTIME=0, if you want a true shutdown)'); - } - } else { - - ABORT = true; - EXITSTATUS = status; - STACKTOP = initialStackTop; - - exitRuntime(); - - if (Module['onExit']) Module['onExit'](status); - } - - if (ENVIRONMENT_IS_NODE) { - process['exit'](status); - } - Module['quit'](status, new ExitStatus(status)); -} -Module['exit'] = exit; - -var abortDecorators = []; - -function abort(what) { - if (Module['onAbort']) { - Module['onAbort'](what); - } - - if (what !== undefined) { - Module.print(what); - Module.printErr(what); - what = JSON.stringify(what) - } else { - what = ''; - } - - ABORT = true; - EXITSTATUS = 1; - - var extra = ''; - var output = 'abort(' + what + ') at ' + stackTrace() + extra; - if (abortDecorators) { - abortDecorators.forEach(function(decorator) { - output = decorator(output, what); - }); - } - throw output; -} -Module['abort'] = abort; - -// {{PRE_RUN_ADDITIONS}} - -if (Module['preInit']) { - if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; - while (Module['preInit'].length > 0) { - Module['preInit'].pop()(); - } -} - - -Module["noExitRuntime"] = true; - -run(); - -// {{POST_RUN_ADDITIONS}} - - - - - -// {{MODULE_ADDITIONS}} - - - - -// laz-loader-worker.js -// - -//import {Module} from "./laz-perf.js"; - -let instance = null; // laz-perf instance - -function readAs(buf, Type, offset, count) { - count = (count === undefined || count === 0 ? 1 : count); - var sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count); - - var r = new Type(sub); - if (count === undefined || count === 1) - return r[0]; - - var ret = []; - for (var i = 0 ; i < count ; i ++) { - ret.push(r[i]); - } - - return ret; -} - -function parseLASHeader(arraybuffer) { - var o = { }; - - o.pointsOffset = readAs(arraybuffer, Uint32Array, 32*3); - o.pointsFormatId = readAs(arraybuffer, Uint8Array, 32*3+8) & 0b111111; - o.pointsStructSize = readAs(arraybuffer, Uint16Array, 32*3+8+1); - - o.extraBytes = 0; - - switch (o.pointsFormatId) { - case 0: o.extraBytes = o.pointsStructSize - 20; break; - case 1: o.extraBytes = o.pointsStructSize - 28; break; - case 2: o.extraBytes = o.pointsStructSize - 26; break; - case 3: o.extraBytes = o.pointsStructSize - 34; break; - } - - o.pointsCount = readAs(arraybuffer, Uint32Array, 32 * 3 + 11); - - var start = 32 * 3 + 35; - o.scale = readAs(arraybuffer, Float64Array, start, 3); start += 24; - o.offset = readAs(arraybuffer, Float64Array, start, 3); start += 24; - - var bounds = readAs(arraybuffer, Float64Array, start, 6); start += 48; - o.maxs = [bounds[0], bounds[2], bounds[4]]; - o.mins = [bounds[1], bounds[3], bounds[5]]; - - return o; -} - -function handleEvent(msg) { - switch(msg.type) { - case "open": - try { - instance = new Module.LASZip(); - var abInt = new Uint8Array(msg.arraybuffer); - var buf = Module._malloc(msg.arraybuffer.byteLength); - - instance.arraybuffer = msg.arraybuffer; - instance.buf = buf; - Module.HEAPU8.set(abInt, buf); - instance.open(buf, msg.arraybuffer.byteLength); - - instance.readOffset = 0; - - postMessage({ type: "open", status: 1}); - }catch(e) { - debugger; - postMessage({ type: "open", status: 0, details: e }); - } - break; - - case "header": - if (!instance) - throw new Error( - "You need to open the file before reading the header"); - - var header = parseLASHeader(instance.arraybuffer); - header.pointsFormatId &= 0x3f; - instance.header = header; - postMessage({type: "header", status: 1, header: header}); - break; - - case "read": - if (!instance) - throw new Error( - "You need to open the file before trying to read"); - - var start = msg.start, count = msg.count, skip = msg.skip; - var o = instance; - - if (!o.header) - throw new Error( - "You need to query header before reading"); - - let h = o.header; - - var pointsToRead = Math.min( - count * skip, h.pointsCount - o.readOffset); - var bufferSize = Math.ceil(pointsToRead / skip); - var pointsRead = 0; - - let buffer = new ArrayBuffer(bufferSize * h.pointsStructSize); - let this_buf = new Uint8Array(buffer); - var buf_read = Module._malloc(h.pointsStructSize); - - for (var i = 0 ; i < pointsToRead ; i ++) { - o.getPoint(buf_read); - - if (i % skip === 0) { - var a = new Uint8Array( - Module.HEAPU8.buffer, - buf_read, - h.pointsStructSize); - - this_buf.set( - a, - pointsRead * h.pointsStructSize, - h.pointsStructSize); - - ++pointsRead; - } - - ++o.readOffset; - } - Module._free(buf_read); - - let transferables = [buffer]; - - postMessage({ - type: 'header', - status: 1, - buffer: buffer, - count: pointsRead, - hasMoreData: o.readOffset < o.header.pointsCount - }, transferables); - - break; - - case "close": - if (instance !== null) { - Module._free(instance.buf); - instance.delete(); - instance = null; - }else{ - debugger; - } - - postMessage({ type: "close", status: 1}); - break; - } -} - -onmessage = function(event) { - try { - handleEvent(event.data); - } catch(e) { - debugger; - postMessage({type: event.data.type, status: 0, details: e}); - } -}; - - diff --git a/app/static/app/js/vendor/potree/libs/BinaryHeap.js b/app/static/app/js/vendor/potree/libs/BinaryHeap.js deleted file mode 100644 index 8effa740..00000000 --- a/app/static/app/js/vendor/potree/libs/BinaryHeap.js +++ /dev/null @@ -1,126 +0,0 @@ -/* -** Binary Heap implementation in Javascript -** From: http://eloquentjavascript.net/1st_edition/appendix2.htmlt -** -** Copyright (c) 2007 Marijn Haverbeke, last modified on November 28 2013. -** -** Licensed under a Creative Commons attribution-noncommercial license. -** All code in this book may also be considered licensed under an MIT license. -*/ - - - -function BinaryHeap(scoreFunction){ - this.content = []; - this.scoreFunction = scoreFunction; -} - -BinaryHeap.prototype = { - push: function(element) { - // Add the new element to the end of the array. - this.content.push(element); - // Allow it to bubble up. - this.bubbleUp(this.content.length - 1); - }, - - pop: function() { - // Store the first element so we can return it later. - var result = this.content[0]; - // Get the element at the end of the array. - var end = this.content.pop(); - // If there are any elements left, put the end element at the - // start, and let it sink down. - if (this.content.length > 0) { - this.content[0] = end; - this.sinkDown(0); - } - return result; - }, - - remove: function(node) { - var length = this.content.length; - // To remove a value, we must search through the array to find - // it. - for (var i = 0; i < length; i++) { - if (this.content[i] != node) continue; - // When it is found, the process seen in 'pop' is repeated - // to fill up the hole. - var end = this.content.pop(); - // If the element we popped was the one we needed to remove, - // we're done. - if (i == length - 1) break; - // Otherwise, we replace the removed element with the popped - // one, and allow it to float up or sink down as appropriate. - this.content[i] = end; - this.bubbleUp(i); - this.sinkDown(i); - break; - } - }, - - size: function() { - return this.content.length; - }, - - bubbleUp: function(n) { - // Fetch the element that has to be moved. - var element = this.content[n], score = this.scoreFunction(element); - // When at 0, an element can not go up any further. - while (n > 0) { - // Compute the parent element's index, and fetch it. - var parentN = Math.floor((n + 1) / 2) - 1, - parent = this.content[parentN]; - // If the parent has a lesser score, things are in order and we - // are done. - if (score >= this.scoreFunction(parent)) - break; - - // Otherwise, swap the parent with the current element and - // continue. - this.content[parentN] = element; - this.content[n] = parent; - n = parentN; - } - }, - - sinkDown: function(n) { - // Look up the target element and its score. - var length = this.content.length, - element = this.content[n], - elemScore = this.scoreFunction(element); - - while(true) { - // Compute the indices of the child elements. - var child2N = (n + 1) * 2, child1N = child2N - 1; - // This is used to store the new position of the element, - // if any. - var swap = null; - // If the first child exists (is inside the array)... - if (child1N < length) { - // Look it up and compute its score. - var child1 = this.content[child1N], - child1Score = this.scoreFunction(child1); - // If the score is less than our element's, we need to swap. - if (child1Score < elemScore) - swap = child1N; - } - // Do the same checks for the other child. - if (child2N < length) { - var child2 = this.content[child2N], - child2Score = this.scoreFunction(child2); - if (child2Score < (swap == null ? elemScore : child1Score)) - swap = child2N; - } - - // No need to swap further, we are done. - if (swap == null) break; - - // Otherwise, swap and continue. - this.content[n] = this.content[swap]; - this.content[swap] = element; - n = swap; - } - } -}; - -export default BinaryHeap; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/libs/i18next.js b/app/static/app/js/vendor/potree/libs/i18next.js deleted file mode 100644 index 3c4cc446..00000000 --- a/app/static/app/js/vendor/potree/libs/i18next.js +++ /dev/null @@ -1,5 +0,0 @@ -// i18next, v1.8.0 -// Copyright (c)2015 Jan Mühlemann (jamuhl). -// Distributed under MIT license -// http://i18next.com -!function(a){function b(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function c(a,b){for(var d in b)d in a?c(a[d],b[d]):a[d]=b[d];return a}function d(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function e(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function f(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;cd?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,void l.appendChild(m)}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function g(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),M=T.toLanguages(P.lng),H=M[0],T.log("currentLng set to: "+H),P.useCookie&&T.cookie.read(P.cookieName)!==H&&T.cookie.create(P.cookieName,H,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",H);var c=B;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,B(a,b)},c.lng=H),W.setCurrentLng(H),I&&P.setJqueryExt&&u();var d;if(I&&I.Deferred&&(d=I.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return J.sync.load(e,P,function(a,e){K=e,N=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return K=P.resStore,N=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function h(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return g(b)}function i(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),K[a]=K[a]||{},K[a][b]=K[a][b]||{},d?T.deepExtend(K[a][b],c):T.extend(K[a][b],c),P.useLocalStorage&&O._storeLocal(K)}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),K[a]=K[a]||{};var c=K[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function k(a,b){return"string"!=typeof b&&(b=P.ns.defaultNs),K[a]=K[a]||{},T.extend({},K[a][b])}function l(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),K[a]=K[a]||{},K[a][b]={},P.useLocalStorage&&O._storeLocal(K)}function m(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),K[a]=K[a]||{},K[a][b]=K[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=K[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++;P.useLocalStorage&&O._storeLocal(K)}function n(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&m(a,b,d,c[d])}function o(a){P.ns.defaultNs=a}function p(a,b){q([a],b)}function q(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=K[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?J.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){K[f]=K[f]||{},K[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&J.sync._storeLocal(K),b())})})}):b&&b()}function r(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,g(b,c)}function s(){return H}function t(a){K={},r(H,a)}function u(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?I.extend({defaultValue:a.html()},c):c,a.html(I.t(b,f));else if("text"===d)f=P.defaultValueFromContent?I.extend({defaultValue:a.text()},c):c,a.text(I.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?I.extend({defaultValue:a.html()},c):c,a.prepend(I.t(b,f));else if("append"===d)f=P.defaultValueFromContent?I.extend({defaultValue:a.html()},c):c,a.append(I.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?I.extend({defaultValue:a.data(g)},c):c;var h=I.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?I.extend({defaultValue:a.attr(d)},c):c,a.attr(d,I.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");I.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}I.t=I.t||B,I.fn.i18n=function(a){return this.each(function(){b(I(this),a);var c=I(this).find("["+P.selectorAttr+"]");c.each(function(){b(I(this),a)})})}}function v(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=v(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function w(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(L++,!(L>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=E(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function x(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function y(a){return void 0!==a.count&&"string"!=typeof a.count}function z(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function A(a,b){b=b||{};var c=C(a,b),d=F(a,b);return void 0!==d||d===c}function B(a,b){return b=b||{},N?(L=0,E.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function C(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function D(){for(var a=[],b=1;b1)for(var d=0;d-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j;j="string"==typeof P.postProcess&&""!==P.postProcess?[P.postProcess]:"array"==typeof P.postProcess||"object"==typeof P.postProcess?P.postProcess:[],"string"==typeof b.postProcess&&""!==b.postProcess?j=j.concat([b.postProcess]):("array"==typeof b.postProcess||"object"==typeof b.postProcess)&&(j=j.concat(b.postProcess)),void 0!==g&&j.length&&j.forEach(function(a){X[a]&&(g=X[a](g,c,b))});var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=v(f,b),f=w(f,b),j.length)){var l=C(c,b);j.forEach(function(a){X[a]&&(g=X[a](l,c,b))})}return void 0!==g?g:f}function F(a,b){b=b||{};var c,d,e=C(a,b),f=M;if(!K)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!K[f[0]])){var g=P.getAsync;P.getAsync=!1,J.sync.load(f,P,function(a,b){T.extend(K,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(x(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=B(j,c),d!=P.contextNotFound)return v(d,{context:b.context})}if(y(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,c._origLng=c._origLng||c.lng||f[0],delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=B(k,c),d!=P.pluralNotFound)return v(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return c.lng=c._origLng,delete c._origLng,d=B(h+P.nsseparator+a,c),v(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),b._origLng=c._origLng,delete b.lng,d=B(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(z(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!y(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=B(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var t=f[r],u=0,A=K[t]&&K[t][h];q[u];)A=A&&A[q[u]],u++;if(void 0!==A){var D=Object.prototype.toString.apply(A);if("string"==typeof A)A=v(A,b),A=w(A,b);else if("[object Array]"!==D||P.returnObjectTrees||b.returnObjectTrees){if(null===A&&P.fallbackOnNull===!0)A=void 0;else if(null!==A)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==D&&"[object Function]"!==D&&"[object RegExp]"!==D){var G="[object Array]"===D?[]:{};T.each(A,function(c){G[c]=E(h+P.nsseparator+a+P.keyseparator+c,b)}),A=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?A=P.objectTreeKeyHandler(a,A,t,h,b):(A="key '"+h+":"+a+" ("+t+")' returned an object instead of string.",T.log(A))}else A=A.join("\n"),A=v(A,b),A=w(A,b);"string"==typeof A&&""===A.trim()&&P.fallbackOnEmpty===!0&&(A=void 0),p=A}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,I=P.fallbackNS.length;I>H;H++)if(p=F(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var L=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(L!==N)break}}else p=F(a,b);b.isFallbackLookup=!1}return p}function G(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(T.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var H,I=a.jQuery||a.Zepto,J={},K={},L=0,M=[],N=!1,O={};"undefined"!=typeof module&&module.exports?module.exports=J:(I&&(I.i18n=I.i18n||J),a.i18n=a.i18n||J),O={load:function(a,b,c){b.useLocalStorage?O._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?O._fetch(f,b,function(a,b){T.extend(e,b),O._storeLocal(b),c(null,e)}):c(null,e)}):O._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=T.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=v(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):O._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=v(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;hh;h++)g.push({lng:e[h],url:v(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=K[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:t};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:O.postMissing,shortcutFunction:"sprintf"},Q={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+60*c*1e3),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(a%10==1&&a%100!=11?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(a%10!=1||a%100==11)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(a%10==1&&a%100!=11?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(a%10==1&&a%100!=11?0:0!==a?1:2)},17:function(a){return Number(1==a||a%10==1?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(a%100==1?1:a%100==2?2:a%100==3||a%100==4?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],c&&c.numbers.length<=1?!1:1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.plurals(d.noAbs?c:Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),J.init=g,J.setLng=r,J.preload=h,J.addResourceBundle=i,J.hasResourceBundle=j,J.getResourceBundle=k,J.addResource=m,J.addResources=n,J.removeResourceBundle=l,J.loadNamespace=p,J.loadNamespaces=q,J.setDefaultNamespace=o,J.t=B,J.translate=B,J.exists=A,J.detectLanguage=T.detectLanguage,J.pluralExtensions=W,J.sync=O,J.functions=T,J.lng=s,J.addPostProcessor=Y,J.applyReplacement=T.applyReplacement,J.options=P}("undefined"==typeof exports?window:exports); \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/libs/images/ui-icons_444444_256x240.png b/app/static/app/js/vendor/potree/libs/images/ui-icons_444444_256x240.png deleted file mode 100644 index 19f664d970194372c3228494e34ac01d611a4d45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6992 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

    5|X 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 T*jdB9;Hy@sOw` diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox2/pz.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox2/pz.jpg deleted file mode 100644 index 954ed86c41cd48302b4fc789c55bb75bc46fc41d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302881 zcmbq)Wl&sC^yLf;?t=z`Lttt02rdbMAwY01PKJU z06_+VX7k^z{ji_+zN)V3*VX6ttJig_@9A^@e*gOuK(6)@{t^HL0sz2&58&?#KI2n^N5v2wwsWD7|u{9WHWO(n8%hR05=h(WnT1XjeT8#o669ccGXGe)}ROja(4X%j0eSoyxVxxBe{N!>nI^feEO&e?aX_B z{CaV@dh1+HGt57o`YrnK{?@ZX!W3vz%oy+>R!RfawN&9P=SuJW(wA8Dl-8R2^75*5 zvO`e72`zTit$zPDf;IVGeLy-|aQDDvUmWegAk2Y$6}Ed~|_8eh)f?5sMvXe!~63Ra7nsk zD){Gezb>&R73NIu4GCD+RYL&{*t6&*43EC8eDlHX$}v1VJ(^+0hqHW)cntr*c%M(M z1b)(WzlFlJk?;0iX)DUqvE3_01>A3dB<(!xpB39WI^Xx{HH%SnNakt{s&4%OZb`QW zy#k@F-Hf*)X#4BizO1e~p^JvZ+s9AA^0ys+)*Obxt$5y^<_HA=qDUD=u^WtndNy$E z(dxkU!n>| zEFj)f8vmM|q_(7Tj)Ygw&w=cjx#c&U-gE0~4n~P~y$r@{qugLu^C+{1M)y>K2=y_- z;5WL#w(Pop7PF#1DCh{#o!UzK5&F#Vy$MHy%A4o+)VpN?5nd1h)V5jhY@U*Y!R<>= zm!O0l$r&;Q?4*z7?3$Db{8oY1l{=&59zv`ur`G-IhWkI$8Aqx|FgQ8iO=>PuIKTj$ z3!Rf6VlE9N#Y>rQo>llF7Jc;!R0B5t0%S|KzwRX*loEZmJg=)=LQ*Lq&z!23QP(s<~{da{d9$*=ec)URDZcQT_||INrKC^xwhD# zcGKvc^|5Ya?=;OVW}Pir&ikx{fJL@a?Z3*>Id-+xb54#(LTh+wZ+38JuEoeS_vq+` z030Oz)(^M2qfz1+dCY4Xmh8_kSKQN*XwHOPslmRV>fUD%rQg0u8n5k3{nwS?bi%on zUM?*Ca307b&Z zn&8Xb#JE0HD8`yw<}VG>g4ZCOB*{HVgO^oVYc_Y(Tbu^lQ#cZ^0{FRmK}re)`Zs~M=h zbGmY6>YsZsueXR%7h^~)7G_<^`R=hM#+#mogX@LIJx8-%=^Fb^BQ^BU8px7l98W+a zAWh?fV4waIC?VEkI-*J^^4(Pu(#T(al+k3MI( zTtTNH$>}h$!2e9V(>}bI%O;2t~*#jK%zxPMHzq5y9yovfJ~yR@qBLw8yx3= zDX4}YfV?L29|!sI$1RR3Zc6J#^gl15wJx`K4F z?L@y|-9Fg8rDISFZ}0S-ok{#f-{V@%tJzHU01G+Qo z)02DLkJJojkI0i*+JbGZyn`>I8SMck@A%h7hYe-kseh&4=a%i7<^+V^O4N?_+i3Z)PieAXV;FWO#E*e28oQgY##SoKkeSY$zl4)<9e6an)$yW4=@SW7-X!LLy&s?UjlPTkrIKE0c?Ge$n^5$BsU@4bktg`X?$W zW(AEc(Y}`hzPm^YH`hQ%VquP{ZaI&Nm>wa!*OBtDnUxR@e4|6TWrOBb0v5$#-K&}6 z#P!AD$VFqq`da=xfAgPrH59dg*ie$o)&6SJxP1t`zK z?BN1E{(CKTXblLSw&o)pJfpn1w3~T$4I3{r4gY9md1#Kqln9n2eQDnR=^%z>r8eu@ zHBi)>9OmZ{u-vY^;1{)=^JvvH1z7H$H2PHeK3R9YChhDqIy=nq=I&x`K6dH+)q!@# z!99{)Pedt{hqQfm`Y+%^j*7+shb>Ol)m~XIlQVIOn;S8Si(E?S3t8UkaF4~&gH!6X zEdE0rkJTGzOp_qV8?W~Z%`I0;hj`B@?8PmjlV0-it=TNF^5bYAjH32~^6U4Prv$Bq z>n_e}T*+Efna$j4>=V=LZCWqZ7TKcCz}wV+l0TJ%;DjLeO&P!9tcqF7Bzm&t7l=h+ z{pdba`Y)Ge)y`{bEqiZ()*QbTYt%l8WvCL`IBlToJ-FzQ@KDhkh|Ie%^HfUCXl?`?-3$!sJLzJW^^f!wB9a z_TbJ+K$kbjl`^?IN>Wr$)`UYSPIqw(%y$M`n2{5WI-0P@sg;BD0LY_1n!oZNucf% zM30+GVL-swbzS35_DS+`jy(6$#yUS$bh<0w>05wFwV=_$ia^V4V)oIJ`o0ZP`SUe; z2f*NX5+HP3$8#}O!sU54I`b;4qb z3#E5xvldr|h*_xW*i%-H9t!MoxH*;MRS-tIpJO43O~+V8Q!q#gL$7m0poUN&(Y0P@_|_QJgBv`jn^1>$Q6U!H z8fMqTBHNX7+(Bp+N`urukww>w0_I#7(q!clG4FaSH|OZ}biBNnGg172BuCW}rIp&m z?agQ1Cn%04g63SzTSsNrA66WR&=zc&0Cb1%{D%-Np@{>?)SHLbGYh#}`~;mxJ7X9B zSdK)*shg$d&5`H+i_NbbZ$KYHZ*LAs$Mt12sqkqn9T9KwqQjdF}b--(0YzMU2F zC5Dgjq92IWjgOdg#^$ZxKolUsq)=Ou8cbItNipE>1@ox`_C!M>m=eHjzQks%{I-K(T zl#J(9Mk-ZNJ7CGd)2Sk~ivA0gt@o+iAH|T{Sb55#% zzZ8KYOBmh7Om!&d*p@=fy-*80+aBS@p&Qd$oJXS4Qib22IDo=#$Mb8qn@!>4#{=@0;~&B@=I7@`3a-zB)HAIAe0a$}Yo@xy=4u__(!2#IVgkboS zAUjvHuvoFq%h*Rn-wlOT_4UI1P#z!HDe4ugGof3wn5q~r;S=~mT0`)wkhk=w_y$j& zlkeOsPY;^L#@b0IjqsPUO2J95L>-OSheeQ6Gvp=7J#`GU0pCfQraaiBe{JULjzn>j zo(e>IPQFAU)96IfaIrSlD}Ur1H)`f^hlhXGSE_&8Hv4A>{pyJlgqmZq-wi3RWLQ|@ z`35lu(4(h>7Iziik4_P~F5bj%gI`fd4?P6Lqyp$Z$L@G`;kxJ5iW0w}j7Z)trXz3#O0jF5;`U@(fIp@M`Puln;gcKSiU!J4Yw$*q1Tj60j1`S)JCc zT0S$iLnK**Tln7IB;ol2V+I!lATz7gf+_9Pa1Y`ITNVgYu9zK?Bv8z1&-)0HrHP4F z9C_~k@Lgbn!!!lRWJyBWh1eR;?Ow6Og^NUf@pp=E=vOpupxJlUv)CwiF75}J34TA0 z$~qf|N?4y9$_IVS){lG^jCIT4Oj&oXII3q85Y*)>-2O6yFVZ(h$3#^=fNcayz{l<1 z_HWCp4o7#E5-Q5nCxzlIlxF5c7}x@PYF~cO>CWJ19oR@se-9|p&beK=pn=nHNQpK1 z_>&L;lE>#C&#>;2L! zX_do!e06UK1yCq0iT=?Ww`2<78wZ(vD`e1xh2`>~Q=NV35PF{3x-(kn$9r5JTm-^?=}-{(SQllkvk|1tm5f&K@2--rcH zYe)M&)H^gu_p{`XSPdk@JuP8-4}Lvrq$!E`$!F1vWqT7HT8@sz>wD&!g!r!dC%vPm zqYlhteoVodc)6-l@^gN(OJ(Lj6tkQI8G4t@?l%|j!Z9JXf?%T#4wL2 zFCb{Pf9k8^$N0s)nWqGf@O7t7YZX)@1);#~Ls2gLzo-$1`{6A@ zH_Y3sh)|L)f4k(~*VXJJ;FVGtU2{MWN#R^M0Qe|)ktzYA304yligD@pX$aTMCGpNN>(#5&7!7vTOHA?3OO$ z$Cq+QdCSP!q7~r@T!ysvVvXDMCE#4{@yDlXU*He$SNPbQ%W>$pzkuejjI`Qgd_7Qp z!JN@2Ju(ulZsP#Ps16nVBC*b>)y!bk9pbbyLPW=!rc| zD__uCd6fmWHo>3d?ncp8VH=xTn-2M(^q#L(!OGItjbhQ|Qr12BVQ2LIS~xKfkQ4sm z(g*YEfYpUc(#CXI75U7=M|GH$$ZN8(zkvMzLK?$ZG9oq(n%O>K%_ToM7?V)kMx-~s z$m)@^ycV6yFNuJ_lB=G#Qb|}oIrUoTSb;_AG$vCeCn>0#6wjGVEhq9y2H&G7lBd~- zC+?ULJW%$|trZY8=-y%AwGEEixCeg)_ zT0@2oppnf>u6{=gTe)gIyA;bt;}7_3K~1gPg+E1o4qsp<*31`TGj$-V@zSz~MsC&D zkt2r#6eT8GZZTGb52gL@jYt$)udAU|Vj?D;6~859#IKG@GO+&Z?cW7G$QB*wY204m z=CAV{6M-+V=vvFa#~YnGn7WdYi0sr)FBgS2dSQ-sz?|jrDpFGC)Mc$dicWU{46ra< zW>e7nuF}{r=~rsGgoKQ}v_biO*WzKAeT?(DyrN*oNTOq5Wmbr$Au7*Fg+BEe0t6u`fDrg)u86( z#jR=u4)Jv%?!ZFA9@MB!(t~+r6L%;aacUvmvdQ-g0_VV$vt%%3kPsB7=*)ExU;*b| z4Q+Bd*|A{g(oWfmanN(YWF_ymc4CgmLJR)_3{my1fQBCjS3AT6DxXegGxkiBE9`Ut zkkdf@n+c+umjd_RaI9{r+;F8WAlu4e<+1HPcpNOgTU&miBfk zMN^P;EV+k5;T?vmwfH7VPzh~y|LG?w^N4n>I{;$iQ>b)teR`n3`wAP`+NmlrXMf)Z zE=qCbHMYfO#!Psmz{``xK#%2hBV(qJ5049L z3$1#g=N7=T+u zA*&@QlC{8GRk!-V5j@R(Xv*klSV8TA^g!b0b6$l#sMIM=gwR<%L=bdWx&N@rkka32`~DM z-R_%hJQUsN`Ks*rE6Mb83IEpK-hfL=1V{0}DT24jy+rWHstT^(d?u5$6C}%QVT4p0 zfy32lR)z6w46l!1S3bIMh_2;!6Mc1^{0~grc#GKpuoQqxK`Zdl-_!b|-80jWQUk8y z0m?iLbnaJD$Cp-^?%olKRB)*)G^p!`_RH$cXH1U0@3CbP8W5W`>##ZnwcJi^6W42! z(xPW4%x5`S(du0<$~>sao?xt=HQxIcAnKCtpqx$Y`zDij!IM0eq~-}FVc84$`8pBi z5y7h#6|++cl=(&D?^Sh70ve}!9n-fHo&s0NaqIBjWk2~EcO)%L^i6NmHJ-k7VQ)75 zFTjSM@KpZ2bVJgp!(V_4wMeeCyI5yn@1`ds2N}7o01r{SSj^3W@TQ3!Ibvd~{PhV+ zO0<{bWY%qOIUTItq>9nIp0pkCG|_UYi}f1J?Q=)!du3cDdOVC= zCcSlW-jH<6y`XX6udR_|A~lP|mI>XbV+6W2mYVoYfPklqW;e>;%!Qt;AfR^-@~tmt zu=$??Fp_f81jD|T(LfMK;Vk2wJg2Tq+@M0qjCuHJeQSV236KmwgS*s$l@kKDJS`D0 zO{!@mq2a{=4%!V>x8ESverIu1%|}F&RD1XWCQXiP;~l>|B49TLzy)lRq^(XU5asc0 z1ychlDdUfd4mQ!=95-ItXXEHAqMJ`Bxw?$`6A_-2=K0=VqMr89!wzZM^&4UtTDWIi z=cKVXBf62yPfH$#Yi=!kcy|Q5GaodlQJg9KIYtLLE$$XJ<9U_6%YbNa%z%671bgm6 ztNG1s1r^Un-*7=JMLwNYyf+Gi9=)H|j7|};jwQz@h4U9j&LLX99~m9}ToY_1LYc&b zvDtV%tqV|VD{8na=Nb5u{7;HPAVcF~O_B*_I@W`?y2nHb!wEs3&ElOljuj^N&=S13 zjl9xfi4ZM!XQRfH2wemWB>l<6uj}%=xpb{KfC4Jwcbu`6ApO-%%IC@0FHH2WIQ>_x z@0)O_+JGUnH;bB^d~?rUG11sgH56pu7>HK(?Lft7-gdWomfUZOj*(}^jlk(oZ33L3 z*Kt)_fQAuvdArkvs*cZ1)6UY#an^n>Zc_El*nVAJ-;zms!(N9{ZZ4#8)>Z<5%mc63 ziP5p4U=OUzt{xrS=>heWC^AL302P_}7so2+`)FYTk3e2*jsjr>nXrtq!VqxcP})YV z4Llm9zA%p2Q&XP%3WRD_2N%ki6#ijbGp8})5~#U#xG5%+)c-}F3Bma;i9BxZ=*3jA z4%3=`AodpN%J2H`+01L~(L9;!gsV!%=pPS*R=;tEnvTfWN%fO|9>PT>{8rQ1Ug#Im z1;5Jrf(#JbU2VcojBE78`dBIdM#sn%;3Ey<8Xsy*wEN~IAtU^UXdsoH6(l6a*(QEk z(Nz2moO;!%$@obd<5Vvz0@FdZx97N*{*aeA5B*H4E^o)Xtc6-dX^9D?DhAx{e|pI% z)gz8fnTXo0x8ZoY#CI82b~37TsymY@wc#Iwggf&p zKSqe~^qJiEXJwh0BJ3SOU%sTG|9lpDeH8H2e~pS$U+3iXbf?aSNbA?HAErw!QOQ(B z85KKi4S1qYH}L4mahLX+{{kT1j;BN6qu+hr36jVywZma=)|SoGZJ30d`psVz}7M z`sB8|kSTlwY-7P})5PrTrk;U}oywL-zg(=+PG1r4uT0Udy`V_W*p@TqKn0ulF*jTs zVWPSFP8<0!QWi)JvB%5P^{c!nJG|6{ZlS9e$Q&< z!8+|nlI_j;uB;kCYgysV0TCfiBbRn|AnR*#qX9~HMUmhC!hKB_73uc1;L7AoG62|l zonX_O)l&#+kzwW+Bn@|RxL91qc47W5^78kWxEBX652-Yc7o8e^3{A+gPr(FOShG== zH|O=+yl_5C{uf+9#zGt)|J=A=8Sgj-?(O<;9z|xu%+$1 zx5k^ki7g_OyT#Ryq>~g}?{1O>dE<)<9U|~SxBibT{%wK*y>X`uJGOZegg`^G?y?0& zHS8&=y|ZvZ2uQd8hWY13xbu75r5|?-*#j}=BeuK)oXU7*CijifJnHaD03a7PVb8{Sw0*wg|~9OExnAQ%5drmvuGJkc-NbN z={CyM(FxgY_;XvPVg3ZdQU_YuxbV(M8cjLt>}264fm#%-rN!giB?R8->YV3QYd1-p z2cw%*q!Qx60IzK(DsoM;f(h=`$l=5E^kKlv4a?x>U^ej5tCT8T+O)3i#?cCgBb1?zeSc1n4gHToLV!kFOp0S8& z*s3RzRx$krNG(6frW3MKyM3@HyH?@+vGh%5c7Z-K(f`!s-p(3-0h-`*H*dmTneNG2 zP?nGsS;Flm#07N<@jf1e)KXVrSq{b`acvH=N;Wl3%f z1D0>TW8XYF{km0r_S@(AknKpFQ9Yl+DlL7(!@&~@JMa$a+M;=ALwh7lTkbx9H)XRf zw2R`N*=({U50@SPr2l5o*4JbbcKGKJ7mY)uFZ?VUQ+LUlcS?7!MT{zcPJV(}A8#fW z7~&a?W?6ALBnt3|ihuvC%{y0w<-rOQ-+3HuK$YZR)PNML>D$uWl>YsRC4z%uyrc5^ zDjrcc&>nwWCeaW?@xb`ae}Jef&IfV5RA$ zC|#yfgy&b33X$RLnP)uP4lXC#Jko8^$^7h<7z9qpFh^?W7&EgHJ>}xuMH;5~mi#4` z9QD)Yxc(!C-pe2Q;7~gBe_`!R8uZ2APIW1`0A+=^!S@XTUNNIOWNFGFt#hlwr2O0S zYiwGe?^w9Ch6gi??a?dY-vw=7Q{&Kt{zoe~qr^BOO)=}DlTL+;NG@HOI0?K$D%qPr zqG#f@&5qRM8`boCQ$qp3%BDfc@e#!wg^2al1H#gmv%QF0Yyw%WcHDNg!l1~m( z=;|KJ!o@SQrbvAh0Z49jXfstVd(jJ=n2f}Ze0Dlt<#S%y&+ApO%d~T9)w;NF<{3OO z_3^Xl@SLt1aVc9Yb{1<_%fjzlrB#uL<-vXX@%S$T`W0XN8)0hwNK-qb4+-KfU+p_& zj)juIADJFx!V>5ey24*Oo+@bp1}+**)F`aJ9uYqO{KqVM79q-F92V%?&jU&vNR(#g z^(P_reuq-A^LTqxf!oxmeHNCrOgn!Q2$>&Zas``l)K^g3`p!(Y@QSMEi6erEN306v zeyN&=n`RcJ&*LxZd6Jcub_?*mDgPAFTZ-^Hbh>T3sB&}h2AB#aD|gxi?7!iM5V3w! zRJoEULs@&=^-WRf)q6QYkaJ9meYI#c!XVFFHXsuJ||p#b_f@p{eE*WLv!+Y}so4 zLNE@zw_<#<cGxQXn%(&HwG72myzZkrO1~X{D~} zdHL?tBw#J6JuR*UuSO7p?%S)Y%%p@ z58Q29OJBroBZAGLftIase6UjeM}^vDj15=;tF(70+XA_25PoEO@<-2E5R&DVD@c4f z3pbr){rT|JTH*HOlX2Yv5heIZe#p2Oms)ndGg)|C)zZ7uO4;1b%455a!fbI*pQk9A z=1>GGv{tizbE6bWLcn}K(C6{-cHR!;ct^Wosi5Eorxn?jkwahJ>FoPPVyDb>AmIKr zPW)aKrQxSX-|9+OH4q9CE?R|y?hW0k+UcoB+f3IEYaJ6Ss%=W2lZkR<8(VljD$_4N zTbXTK?n|nwg5h{b{jTs6+_UFjOCSRreS;9B5Uz(^HWS_dp8+Fk_xUs)3y;gqyi4q-fV3-`MrZyGn z5S#s>u0G(>#x937{oUr+m@JV{@nweuCqa68A+1!}2>Q8?c;8}->s%_if@5$~=HYId z1YafF-x;pzUa;$t^H#C3`{;vcr)`0HPs24w+K5`|sr}E`Ybr?_vC9 zGFI}U>z>#9{28(QgqkV!zXo-FX&i zM8+(W172v{*A3xOmFH`Z^$B?4mabtAIUg+}0o*kHVh0*|UoR;cZmU z`o9WYSX-OZBXv~nRg^pF7MeXB?(oA!aA6P2#=)lw3e@*VgN@f5fS-7*s|{EVmsivj zbMG3L9cdCN4vH8+i$+2`P^s3BE7a}R*$vNA#P}1rTM0X{U>tV#nw=XCSF zFrAnv4ZW|zM2upT>*hxfL8~1oQt4cuaHg^}{L)iaE8H#Skrm0E2wc&j>oaoDIMB|t zm;G|I;t`v}H!8=;K`ud}TLOLCq`Wn_^#tJ@R@gT&IXWU%35TD~=0Fum1|jVZ`$%U> zc@0pq!7%Sm&0bOs=7{|DcpCo<926UTEekP|C}Hd6RSZQWdy=`2CY ziet>GEw4(lo;l74QT)!maW97@+m5mGlSEWBkZGA1GfC=?!u5o0LE@z!hrY;bb2nyi z60pQlRuB5(ITq3ISi%i?^mO>7^!-sE8h^O#G^XJoU9vD2XeU}JfCnY&=pYY?60m*- zRv{>s5th&PuO5g1t8kC)enI3`P(ME-;QNNcTI6hb#62}~RURCBS5gk>tYOv;tzYoA z{YgmEla7x?_WdT62WOjVHG0ZDzm_to#7O%!I=rMG4?C-+U^KdhkYg#VMb9`$+q_<8 zz)ax5!4dm@nE|YrmtqVCRA05srdklYcD^5VMI_ksA25V)(W@q_L*w*5>+AOfPaYYp zZ#hz)6W3rTW83xH#q+$v3XSQ^yS30nN_=<%bLphR4j@axpPeGE-tffk_AdW2-qB4> z!66H^YVC%l@p+dEF#NuAJRoBy+%3$CSvCAenu-c@f&rY$QsS#LJF0K*U-tccFQRyv z`s_vV^H;N`uYUBg}!qe^52Y$*>0N{DcWGF|qFtZxdS&FPI z1dT>xWjG!fw@hw6gSp*B*2v07J+eYnnk`i~pQ*uEbSp~N8MNXF(Ps8sS|xa=wTJ0o z*n4TWs3e|$F*7huj?UNg^JW#Gg;!!Y2Cl*lan9{565!-0=-ARwXK+xQlFl0|kd6c6 z0J_Jm212RUN@B3hb*}W(7$f9_t}dg%v0#IqAma%;= z@#Kn0QFsf!cT@+TQ37NJ=oeJU$>R#k{|)b5P?YkdR$}=-23Ub-ig^6FY&sn}AI6XZ zkyhl=Keg9HtETEH_!yP9m?qcI>O7O`QvXEHxJhpz%4qDdZpHO61J)Ge+#?%8UqvOl zyip_?ub!;Ccz8F&<;@5-6TSPQ{eGEZN{;GL>6#<4IwGFXzWw%eB*QK>4Hw(^A@B^h z@74U!%-bqYCNWL4Wk1VKM2qqDU?rL7HlBcAA1cZfm!2_j%kJe2*K1MsMc|ekh4w%} z0A9B=Ie-)+zY^%HxIqBN*`M!RNl#)0hRF1De0Uu*RO)sTn0ho&G?08>asR-+8Z6xX ztgAq-u9aQdW&W7iVxEs12sL|$PU0#*iF72xLhL9w{ch_aEImMDkW?&3Nd8S@_!Z!&w1c-?3J;H!VCR2cI5F<+vdx6zk|s-}5S?214F54Xra508 z;0;40=6Xk5?TRGF0)EnCt2vQw}aU@^KZ;;$X@Z2+r{izjP2%?o7Yf4Eg_{Z>6UnU;?u@nmstHl?XpMv{{w zaY?-(+b~Uf$Y8~7j&;{su60;XcVJ`rrQC@4)x<9W=!cDq_lFSEb{ZE2=&IgIuKq+n zA7`Kbid&_}joqR5oLVN#2xoAq*Na8pz5HAlDnrEAMgTIxz4f5!8ivh>W+uL|eB?sS zRT+}pv;2&h6A`-KZOh#je+viAEO@nU%Pp(Wup#KynPkUM`;XshHg@FoqO&CeL7~bDfE@}paw%-9@t!yP#9Y>g3p&< zt+05n`rZ)Wk_n<^mWulTsR<${4tF6)?4aMYi zcf1Ft<)(!!j}0b}6=^wzUcZ=VGws7<>-QIR)RpI}zVI6rEal z0bxlOwKiYVe`Ng$vn{lJmUh+QbFsHc*Sz^T=E`s_)DaivFuRr-4pEGAmq1D$Xv;%& zN~A-OU8mQJZ^I01)Vgwf`;v{;Yqj$OtbSO7LcgxztzX9``EYWd{o~U#yl3q}6myFi z3mwhAkul#U5cmzQe(g68qT#IEJgt1{3uSp?b9hX1nW<z1}4BC&DpjQE10SlGq<9wM8yON+l;ltDhQl zW32fCMwMbxX`WN0DPuw3k8eLlrNq8eHgdd)8u0*th4Z@Ag;n6Z=?X0N4PdyXx1y@y}KNHQXc=(OwB^(f3>g)pfEYKeZHpTLWjsJ18(2l?s z4|k%S4Ka2}Y;L%%D1!eSMvXf=FQdC71sWNk_#;a1^4yhcrFpCs4Q^mKtg&|6AN~tF z@Om-Y!HVenXdq1#+=nS_VUsmdeqZv;(ik3~)DX4M^YAi`*r?>04Y~g+IlKfGFs=-J z8r{9{qJMoTHZE6AKY8O3S8HJT@+h=dNxbY+b!DAjJMmHHv zCOMLgMMe*(w&KW2oxqKzis|C#gB<6H>gtR_h+Yy#ucA-0Jnl{4pJmn#83!gwqn6hG zB_)KU-^K*y9GYUdv}M0Wz43A*i++QYr1GrynlG1@p(Hd-O(RdkfyBI}Wk8^3GQ8f# zeA#f>>0rYR#ScFxcyb=5qLmD;y9=BV+&MC&?|aq~qp;eLP>CEjPcX9?$$t|UF^N8F zqVAM!JD@i506+n@x@{;92Tzdx{_WgAng)VEr!w{^BZsm&O4#e8NvnkvO*lS5n&bpx zsJ5DnzM7P0Abl!7l-~3b9in(mI$-j0&(EUjIWJ92a2r;(&T(7yI#NdYopQ&!2o{cIk^B4TZcM^G$3oR zis@xVlq%I?^mARWTD^TDe|Q#BNDKf6cMdnGYgBDx9iPN4KsBxy#xVqA?^*M1&NUiN zQ_qejDJ4!zrL9{7YjuBNTE(von1Z68+DULtjRRDHwMo$Fs|ga;5>8yI-r={`lY)B1 z&K($k+CoyW!NCBER_1`ShiBF@<6Z@X8*Z3_NCkk=z>xmb?Z`wACPEPz@`=f-1>u!7 z8Qjr6C$%YHdh^s$ky|k3No#>Z$5VG;Y-?BNXuFp-T(qS$Qfdpes3_zMa`OTs&61gl zX=xcsYD1L@pWU$}@70};2MXc}xE@fG`9_;$`E0AG*=wXGPvYJ0MxJGS6!k^vggEXK?Sw>=@K|xk^?6( z+BP%yp{U>AVfu=9yi!!;xvE~A&D)p9iwrd4JSwUEz>846{{To~QVNm?XKOv%%jc6r zm~xacPy}k?%}#Br)AI|I5r#)h2w!?nl!gk+A_lBy9RreSSQ6f`yupZU_kcHq-rHgYJ_8V6J0Dbh<8E-=2{%C<+KWdp*n$nuWElLzR-zT_tI#!875e7U8gXb zhXVqVnL$F_!!@Yq&(?uct|te3mK-QosNzcI5Wy52P>@ZQ<3UDWyZVJzL9anDq$EYVGse^GFF{ z@}B1b#C6BFP4bDktq}0*;!2tVTnbgg)~)uvp=B-^sBKMbI`riZrcfNg)1Rxutad(; znF2Mz*&0IoPW~gq!!-z?H81W*(h^Q$EG*~ir0m{Up|cx&CC$rb>sD_ zLgZUp9An=7sS13-Ah0@)Ph$ySl~g!teCqI}iaXo#AtWfVXL~lEKeGi0?+JB#u|4S| zlXyadhIXwz3@idm2=vP(?P?yaZ^i&s zA!!5#JjYQErdrri!`Dh_Q%HFdZJ0mblYB1}IZg(?&u*TPP)RCr`uu(AsZ#S6upFKF zeI6zzR^!+4`SphpESiACa{Aj{HE588C|=?8`t7&k0s~}-(3HR3SnxCph!L*Z`2HyY zCcrakXmt{lSei2$>+_Stp#-rs9`N^sWdlq8K6=9DyFs3lqwt-nGrlp>qvbVVb+0i` zJ6J-HR%mTn>AmmDzlfAF9$Is)JpI}{QZ{?r=iVop;g{k&c>as)R4%#a%*U-IId$t( z?ArXKEh-0Lu;ouE@dAf;ELzkN=tCF2-FM~6B$7)te9425v93C6=bBs)LP~(V6cTM6 zPEN$w1YKA{PYaZSkS*UB*-WUYpk-p?1J%1Z`x^g@q8}){>D}SGF zC{kCUa(>P3emp)~w)#|qafW4U?RZm=M~}$a?d{i;d6?*u&d>aP%S5OCf%U2bm;S&# zfIqbqsPLp4kC%WFZV38$9bv?w!@b}kQWoRp&disb3Gwu%zyiUe*jYgquKxhn_Z}3G zE4wzZQ|12v?U<1|M3>>&(n$iQ5V+6No-2 zsGWDDWE}o){4{zHkX^b~-#NmeNdTJL;QEmiO^X>=$nhin@pV*|<^BHva6{k#?W{3> ztU=d4J80;l2=p`7(4v%(;I-&^d)5^#Tk!Y#q(_1E3}4rrdju5el@Rpv`!_FdXiFWT zOwX7S8%uip=?;Pjdk@Fj82}QbX)oWtlxVy9uf;=M`q%CDghQ%MVm;5zzVO)$NZ7Ol zwa@@ODT2Djq5Jj~GFL-J6~5nZcx)HYj zcx#gT1x&1fN%;Q&$^67pmo>1{pE#M2z51V(e~%uNpbGEn*XGdhyvoQB0_!?p=M;m} zI3Gkh&32v{#1OS0C}kpr?aBUh*y?5?T;vfkDOgYhDS`Fr&ee)(Tm^Vgl_;MJF&1Z| z&_5&AETj`9UMEs{T7z%Qe8&@%muWo?qZp4rTK!tla0=jFF`RXeuXkAF<6A5AhL~JoYSD+TK;R>7lFiMr7lY4p6~(yBKQ8h*`t>6 zo(qh@6^Yn&Wp!j&Nn$EPkwLXcce&TUhHWH^t{lNYB1c{HC|8xo;UUZ)DuRj7M&e>| zSgG>T_66VT_V_OqGi0$KS<7juwv^lR7gJ@Z5|c#(uQBoBB*|unFI#_4esQ_s;PRXS z^jPv9T1O4mwU5`Ir>#*gLW7^R`2+K*grY>bj)}>kyXXs7Yx4A@TPy`q=Wjz-^&Jkd z*~1kYA29Ab^z)=;b%ZoltY!80qId@|3BY|l&b5}}J)1}J)^5}P6A}i zQc3{@%2h{g1Mg64Z8>CdTs+Egl(DfXZhHp&J*^(63*vZuKmdY-5;_7x+p?}3_*Ytb zb^7B0=kZxIBm?3Fk5+g5yNW+6!e+@(@g*dKUD!3w-h8>ms_^+sWv@DqCLb%bDH6zF zLpW-=AYfwYH zOqDq`06Eke8tTM-!?CMJ72MX6Q8Cqx^M~Luw3Qh$3XWAKq0PT==0#HW>N-LuVG;l- zWRX&mEoQ5+Hg><2ZbDL~AOiITtJ9||L}}90llw}YHg8d@Ge2H&7V(L>0!KopL!Z7p zDEIH{;Z##_vk~J5!Y@|^*_r8Wi`>>4A#?;5GzIBR#=gJB&U}eEl33A|r>>)Bv$n93 z612KS$)$_Ac6~)l18UZf)o&8$=dpnd5E>e(dgr5}sm!GUO$wXIn2B#R`{ zqK#1&D^i06A?sRcxHWvj^cQ0d5XuToiJ;w_7HUvmoNO;3V0YXEpRFnJ_SG>dZb4c| z8qxgNYTJ)1MYOU+wg46Yq_YMVW~-0}_40@;9l$nocDT{Ky+uSml*}xkg$5N%kSfmn z*c-OQUNgK~a%dvw8g?RfI;t7l_m9c)k}71CW+yNPm8b#T>h)pn&TS8giA@Srq>{jr zPnAN24z_PdugqDho$eU5Ys;RZ)`z7nnIvWuayH$oT7v#<7+q#gb^xKIf^!SYSwQjA zKK%5nIZ}pTLRcFD7>z0@?OTp-x|Jk_g(V=p%g|Wb?nQi`XeG>iq$IN@q14Yp`wc2> ztV;<7sBl}+s;YX^VH|fG#mvCMIOyc4+pKQtDx`(7^0BM6iPS57-<#ggrdzi_SUIOk z4>pH^sd0O_Yf_fkoKihO@es^yQA2t=0zK;zO~h#!lK`mjEm2Am5~Q&YmAbpV7&+Gd znKV({#=W&y*1MTyKWR&5%$8*K_&R=mU^K)#^r z%+z{ndC&%l2$r-Ut0{AEToJVm^}eNtKC^erY`d5Vg@Ew<4k)HV2qB0pOAz#}UVxWi z^`uG(QqshX*-N-2a-}LM(xaS1IgG|BQVG<9Q&LzO7pu2DB7B4vE~Ytkx7LN~Lw;g! z1p-P)f@kTY={pK4uPUX?ASAQ3i5*-EP}QBCt|Dzxh9Hz18nCANH$HJF$Zrt=LF%N~ z2LRZ%)U{1Z5*DFO?J4kpN=rC9in>m`#*G!u2?Pvew7^rozqq6Vef+)VssKXs0ZNkL z!|zLdG^0g!BM7(5*BYCR?WrZ3$OyeSP~k~Q1ndhty+<$X-Q=eXrMgN;vl1K{kk7HG z+yW?Fj`s2G;gCTp7&#C;Ozh%vs!gPVFh&S~Mo}4$Zn4RdP)maTWxce88EVW31O;hY zy+^1wqg0DiQ8xmKYRXUue87NPT}^i^Ne@lLGdB#7k`jUoI3PO;Qr5P_UD!uOzYs2& zFL>Lj#;h^eij!&%7VORzoBeaGQ^-n^pB0^j1*v1Jd+T8qa;7BFFPW${Qn^&S>vGyc zJJ2V-y8}Y@1k@ibG+@(x_Fm>w9z)Ycd&8*! z=nXw3b1J1ElHd?Qw@r1lUSL#}C=!(BxDG=C+6Q~l_AOe7GBE2i09at60Se3k1c6}G ztGm+mu+ibLh(IfrmkAXllUAz&O$|=EXwkvPzR3qA1`HygoiV)ZYX1PPWj>pE=rT~; zK(Co0E10C^%Ry0Ua@E@GE2W`>gh5d`Yf6D%>YJFd#7rSYAp{hM1)q@fCBf-N!Ky=`k4b2AM`lh&XHd_eVl7h%0r;WTPt6MK}cP9iE|! z`iN$B6eygcnjOn{x%pPHElSFo2QKgAXxHgj1kBRf$_`s@uh(yQEMc4ya6B?Sy|$9G zc5cLo5ima6)mg%tBq5YVO-LhV>G$Ob{VIh)0)_m#djnhZiOQKXpdS8!5ePwC!rmr& zy*j&jKUdN^>^CVOYDvJHc}Ij8tceqlbs%|8xgBT5yq1M!IjqhY>8GbUJO)aYSD?S4 zXVXK!D3+9|0kXPoCx_Cc;U!E-s(h|M=rwzD zi*OVL0n7z@wKg@Y{{S%_T7(D?LJvn^Gl8bCiPC z9cpjz9W4_(tbiNrYSgFSoGc+EC(P1})Fa&2+9ZHVZRTt>r_WJHhSAZSz&K3c>S5t6 zX%vp6>N1Krcu}?{O+-N@LBo6Rx0k^dk|dJFoIkkp^6Ooplp(AuKIE#$)}!zu_1y(78~vN`od+Li6rV7 z>}#*By6sr;K+Fu93WwbE`F$fXCozMn{{S|tq=r(NH6Or#o5Scp&@komoOvoqMcVcI zZ+&`t%}l!;t~BNISY`q=b-kJ#5Tlu;C!-84W#^JvGVr02xs5z6f)wdr= zcu6XvYIS-B`OYAc8H75Qr%!Ae$dP~m^*^u8Rjx{ipnU}!kq2R4jAAmdD|cgCQ+-QY z>Gh2dbWp$tI=1D$z2Z zKk@mM=cQ5i3#Bgh8#kBrXmj+(C?@*yf9FPiac(3M0cHSna5ty(30$z0zPz97(|@!v zk*tb?#I)i9YqEzAw9M6NWGaA`4Sjt&Z~VilKyob9`s?Knu{P2G39vsm+BZdQD0U0U zk1CQuJgklSwG0k$dZ^2wU(k84Jp1iY(i9kF z9<}R7qj|!>CYthx<)G9WYrn^&ETARTSD?|3ulDj0F4=?7hxaSf6;|HQQ6>A{qLFa? zsRB@Isod%H_J;~8T+#Ha*K_>DiD?@(MvN=3m*NHh(7foe4=2yUwKq8{ZO?!)JFhcQ z#I*wCP+i`;dzea*Qdl?Gn|!2LsVM^Y^Lu+=tT0gS-07!Jp3s4r0K%Veew2aguz~)% zFhCIh0N${}IG`$~^!Z`BPqS*wWpbFJt=c zMC))J1o~ST@u=h*kZbeGJx~Fd7HgNUI>ely*;VID{O4FZz1o&Pep}uSVXdRWDS}7+ zhj}Gz7{^cDMF}Rt7nNeiP5p+)pS(Ii28I6sG2|TE0Jbyd@797K7D*xi_4JL&uPVZo zwNJS^!a!DMIzGGY3xXz#NJXDUQw^TD%xR?&;Yc?ga1wL`wf_K(`alboW9e!=cK7E3 z{Q3U?wNBVtz)`5mk>y@wPw@W$54?KAVZF89J%t1lTMxG{<_cq&W_)pt`g+nxd%{TY zkUgobVn|2@z>ji*U7z`-f0%K%k^H}!lTzb- zSPgWqC`pzct~yY8Q>ViUoiIa#ONwv5)uFJ1s}FPY&Lk)RSOZ5Vr{G!;#MnGAcWb77 zuqdWfGM(uE06gE?u*f91%SzgVW_xdIn3a$MO0RPC8};{w)UPo^Qe0Au{{TINNC|)3b2G@8VN3)MV z&0i`pI|HT}IG+cD+v(+;^2%s*1PAh`lv7QX#Z5+br98TO^@q`l?$iS9y#+aMr$&jh z`-MyI0|yu9bN2fiKg*?x{cYQDP<{KFrTtPt2wAfN3tjX(bp9g9q%KZo3PRIRrXsF9 zzHJ%2Ql+M8R$u`KTM@N)0-M_H4B>dPkXIzADFBu!E?AHJZ*E)POa3xIHnWIR?>j~- z5qPwbd&(y=5uatDRya--B5c)#B?w!Rf)XoR9ml`gkBaa>X0A->2%3e9<+HtAoHKK6 zb&VDi7L=?lDh93tu^)o9{AL6M1Hh!4Z@j9`>&@;(h@01Hl%TH(Js$jV5$EsjrvkV8`wUExo+Y=j_b1 z5kf&HUXOU~d}I7o#qd(5OvB7ZC`$!F2qQAm>=`a|5;aL~RgO)L;kc{}{_hncWQ77j zO43p(O+X}b9bCM2@bBSqLFBw#bVhJA@2Wk`d7MrM6NY|!4Ww#{D2$P@LaSDXp=al> z%kqe802fUNH5#8?_t14QY-OQoFK{WZx0!SA74s#rVrn(z)92b1+%U_X)*g28^{g(m zycUK$GEPa;SR2$i(vgZrRfbR$Qm*5f-_A08Lx&`lCo3HoIQF*>E;TLRz5eK{Q{{UQ8S8%}zBeeSKlGiyKqw8+@T{r=kjh9b4L}5cZVuFk6ojcNUv~B-sKZh}>Pgkw*WTG!G@-&?q>~ChQz%#cC&iZq&O#` zLnua5cm2iLi#>_ha)?t9OSo#dwf6b+gv-o=4GUWKtvXct>?6Ezg}`!&0ARr}oivTK z#V3xaY)&>h5?JmuE?dk=H6Rwdf;~ld(k$eySyEKx{Vj9X&5a_ZYf`*vEmBAV&+q;1 z56GPEl@c6^v)9V31#3a&5q}Gs#kWMY@0ze$NpjRx7y!Ya zVX!04JxrXc6(Fb$2n^OPLusex6p3YFkhj=4I}JsxV-ATkN=_vAeLq~YQ0QNLKKqVI%}nT zTU_bAYUUwed(7;lxOBeY{VU?I)}fv5l#<6OVna5K=j-dddE8<}G+E^E(Sz6grBYC?j??G8xV8?Yhmu6p zVp5Ek85L&$}62UEAWuxI4^bKKClBKjAPG?pnT1tR3oWovRRQ?{Bz0ZURcY8YJ+a6qo4^714!aoutxGs;MZh!RlogGE6^l&I7-D3sKZxehe5zq`W|WhE(a zvIuVv{x564mbHBtKZusJWg*J};!BsQWW9h4=Pr6U&0-$fMuCaZD7IB`Ieh5u*p*k7Czqx#o`TIg*ssMyzR5K+O7!at+G& z^g&|k1x!hyG-?L3Hpf`=^aCRjRHTqZ!XCx!HU@%~V_g{H+6UPdKFPQk15#;Vn91v~ z-49J|wFWTs#gEt%Pf6|f-GYS$*ZN=FXKFw8zA<|G1jFHu1LRy^t(T!qRge8i}l z0Z_~=#lfzc5c);bkuXV5gpwJ-AYSITtyo^qSex!6<^(IkARiK3DPNpYa9em`uu#+1 zAcx%6FAS8CFy>%I0~Ii5a-hP1vx54*vwu*808;E&XazuVLfVf;uqGu;lb%w7fKegp z9**aootoQe6qB%%Q!QmKQ&tuuOFbBqZ3F2C3|quP`@gB>MCToIxafQ&jR|-mjNyi4 z5`2cBMOi9zsjP||z|@gSJ6o@yH;8zQsYobJQtTPEaa&!*wTdLFbhQAoLsR*Es@(^z zlBR`88HvrK5J)s<)rhBB?;T@-%57J3T1XIM(?q{+p@olMU8fk(QqpGU8I3Z%O#l?q zmGa-ChcP27W!>(1^1F|M43#QjAz7*j1n7Cz*8Fbb60k^0joPOF04W=P80Ir*Kp>FP zUyj>%sU!j0&qw}#U1%_}6Ez3COEtx*rQNkQgw0H;M=BFSTpmo#(TzR%Glmm@DXTV` zi*mQ;c=mLOgp~(+v1WF#uAm!h(iOJ+=bGT2jX#%TtmMF62;B{ASr9P0nZVf1E&IfT zq*xr!ed$WusM;jUl9B_G>;VohTc2H_sWK*H@dHh4YeqC`^|w(H6D4Jm0U5TbJo%HS z+L5Zr7a$AzYWYMQ2{Z?AEalBFeRPO7 z00DUtPjRcjiSZ|8>MA^(2~vWRnwq=0u%OptZ#FSHUKK)Tc0z$oxtpG~eusNS%&Z}l zkd|_xLM%CZ?Ar*kl_AjTmK31Opcv{1^4+TD+GKdTAZAWytJ$`H!L3YK&A_Qj${c1S=6^jlheVYmB?=^@QO=ypy?yCc z(uL7!1)m4pFF})~CLs`gKRe*n8IUt2gOhd}b3a~C@R5)Qdi?%~i?rYrwG}sqLjH`_ zxz|WU{2HhLECo)SwZBe{8VkYY4k7iQXl9cPkeZJ~^l!%%Q$`KvwE4}?0X{F< zDmwgc?kr^#l`zz|PHpAOSc`|lEl-&wSKrh4K5=B6IYAB>Grewn_R#+T5t%@sdwMgO z>xosRrR@Dk^wj;j)R8Qd4QXD2*0r@TsdAD>h?J0hOEb5fp;FXSl^{^=X-D?+8^h%^ zb8rbQsrjQuLEwbh2|`*(`k$=?kcQ|u%MLI-X;Lx*O6tzS+qYYRO`OE93WtPItGDs+ zG**RLhucfP^L?V)RT7dKfFC|^T;NN(8fpE$6S- z`)I1gODR%-1>Nk_a(xDdoa0LayTUugCZ}oJ*GghZqje{H>TlDmOzz16udd%cImBra zl-Y25?5-MVap#yJB;BY4g?;C52dZt9tKD?q_ zyd$w^{ylv~B2aHBp)%H}eKhM=Xta_t6B+tv-YOKiE)JU-RqX5_T%rS3wEMU=Xt@|N zkzgnvdiqyK^@y{j=Jm)KpMX2mm>ye)^H=4rEadNM?2#>h53d z5|bf?QUDu=_P3-R($onQ4Bbzk(w$&qdZt_u4y2d1xbmFoQAayN;Dc_EwBeOU`P5(D z90*Ei1+~AZBOfw_QrdWn6rpWOoMm<3M04h#I#DwYF_d;Ib~u+dIZ zz%bLBbBjqBQ!=?+f8<@C>G-E8TJVWYO=w(?QY~M;<_>E>&)oa(R7e{5Yvr1tQF2HX z*wfFIApsx;ARYZ)CeBJjfZCnF{&c-Ih^b1}rUIICG^V!lhqvKl+*78M2{a46)ZM{^{we)PwKRi7E%j`05g$6PL~kMWwBs9LEq?qvv`;! ztfHacO>4_mHM}?r18*AA-9usI>j1>Cr?&8GzE8pCNCJm!+v@(Zl$QKp!k%jTi$->@v2lUMB|Yiy3fdrro-D)*BDS)!-pTz!`&@u+UnMuh!dM z6T}yZP0g4PdFmXG#ALXq1!895rQ})z<+Fydr96Ap3Njcd z5#kZ)?biHDSO}|tj;Umck>E(ui5y1_ijX`&O-N!M)UStH{dS6uHNbdB9K#uSygaip zK!nUnKu}Q>CYBELW6WAPwkIEnz~h#XNI+3y31Q+P{tc|n7ZUqRFd!>4kO3}K#8}p) z-_xXSco*13_FT0If-#egd~1|(th^gV*1x2?Js3!a6Cl8Dc2w<%F0G;8}K}hcsl`~ZG_5z&5aSVSBn;~ipa=EsJ z&h)0#YFx*s@ccu4w*LSk=e1kk0mq8*b6#J>a5*k~FnMkqz${_%#xllm^c9>^KuUs3 zxo{Y}Q`XT6Vn`%qEOl!;H7~8=$w*QODijTSYVY!f8YwDeGXn0%(2if0>Cmk`7yv%Q z7=FcZUBl>LA*#pKhr9<>N=afG^c`Xh%raEu%dWq3?R!(4U9Api1qrzHHiW1o(L$sb zARe#J-K$Y}gKCk8n93b}iL7q0q7wsLZQp;dTFXqpgP3I?H<9z(+J{()`XvPrnm1n~ z&*`H^y(kXEI#|6c*P!`$@mNV~{h^5$7vyYoxaAT_CSLtC9)E3X6Tue^LXw8-I%HmKEF<^+(>Z68|3 zif#of{{W$-2x|3xZGMp)@bZTsJGh`B-*?uRw_8Sr+Y0{xso5}ffI&}jr-fo{BMd;! zz2gXD4`Er*W-Blu#Q-FF?PK(hWJ^lCD;l-62k>lmi^X8l!O{f@px<7Uy9U}Fmx4`L zc(v93bkX8&i;^dROMBq;Xw+;FO5>jErt|(t~LoPe5=0 z@Qiq~Sqb3CTZF3MnpU=Q`s;s6Llaacf~H~vKBU%zTMfw?IIL?i5+$u9sWlsU+&1@k ztX2|ADiR1#v)TUu9^B)nhr|lfZC3;e)i1?C2euE;{=apQogrC*gOnC|03>9!$*idNt|< zPMIl4QiGPRx8(MvquG0N09SAyUXB8oP51XVkUF zw)O~~C8V;Lu+@vufJc?OjpGh2tb=HM@LuckUKKk~jpux&jDqt4$69>PRD}X8`Ze!S z%cyHwCrRQm*Oe+$C|nk62eEOewM*WSR=h$;%P|0?&?sA|p&NCpyhK!>R8=hV%A)1N z*s!Cu!PTzOpZ-0U0nKR_f9w&$-(G}9lye7|GlS4=+_~B_TJnig8I%u(hL))T!J|?9 z$4?g{DDb!~eGaYoRSUkxGcxgW5&PwqOKyG3FvB*iX;qvm4k-YTnRaJ?UwsfR1 zH3dBB%)M>6*uc4INp%dsGp3HmnbS*-MlKSRCs9$!ul#Qju_;19DwYaM48XAhgw?qc z&Rvf04%^AN0y`|iT8s^((NvREmLgCfU9P|eE?$*-IATelXNY^kD3Vn5_Z9k=*2d9v znHXc@xL{b2A6kYcr=X_HA*rT92l~KpNGw1a8ipiaeJfKPd^^BE19Q~obSFA5y&@i@ zcJTatX~ucY8l*(&26g^ z#*u9+7lfOYE>c~*O!ay=wF7!Nsf;+>JB{4jrGML$J(6ANGy<57HXnb$H8{vj#5z@0 zEn=4-vxgvp4zIjbES%q`WVpoz68FbzmDoO*@tW-%S z&ZV2l%hn~LP)Rh(_o*+?IRfR#xv6+{C`v#83Uaqip+G$ZWpS2Cod%~p_E_scfICxa zlPzT>NphQ1j(RaZWxe6hm(Ww&<3iGnPp9YSy`4&4g5OA)DUt@3gFSX#b{iUNJ#$D2 z09bl_YEl}TBpk|6WYT~JFLFS+sU(p8V8qanIi3Fi8$;=poh2$1dcRNXdb~RdE3Pfm zxrsRMS>8bkVC@}=@vN3Bhs#)0#5;l*RppN1JEs2E^I%?LrtjRscFqMMDEj!D5n!LlT2`W&~l18GGuGBZzXK0fn6)tH^ zwWLzznaDObZ@6f$;l;^Gs!M_h4XvNuxoZ;t089ZZKyjFm15)nwrD)rEHhh+ITn<r0U(CA-R`*D%xz z)Pr-bkH|%uC82;oEn0c&(v_uR5Cwn^Kqa|3i@Xw2Qb|Z86XDng>O&Xl=^5M#XSohG z9eenqHIhp+k*3ifW9v)9cWO>a$zf!u(6wn@F6O?maUxuY{{UF<)HoF+H4Q6W??7RM z$xOl-4qBA3zet^iM2SQo8s3`O_XBZ#TCtVrvp@bL8+`yc6SlH+ERRi&y{Dt85;AwG zOvI3qN0m<0`0cg4$tYowsu_g{W^RvCS&bShz$RmW;m%Ml1JlgfkLeaD1dHWyP)%CT zWIqtFoJd8>%g#%drWweIjg+!(O>6vJn?Y#xNKEAx9u^l3 z*QI_^98`tpEHi^zJN%>}DN+eT8@fU|0fLSOHKCI-SVggOpV$5=g7opnJpNw>(A#nCCN%dI4b2< zeoXwV{;e9v+uojAPAQaNlY=m1kaQTF!8qww0$idfz#80iApG@(%gHR=)BgaAI2$!I zuP%_lmP$ebh%~QF0C9hF5~bl(5Wu+?+nK+%fuc|uxbBGyNm8m$GsyL=H-^)NPy*zF@8@rOUe&EE(}h?{Slx-<&s|!T*PJ4N zK&K$>h+=zmq;>@#!4DJpbs|ipcVLhmL4i7HNA><*5i&y33X-o2xzPM(qy3^(tRkim zmnFR$(wzNb;9&B~GRV(LmZh5ZVEXUn8Gk1!WXVsce*V>&BpKJ}R2PsEP@rel#l1OH76!EPi_~Gerj~%^Pf`m8q3GV$(yW{)6G~mm&1q-b z`hJl@@0o-0l?y}%&%Gkx_IlaT`MA71Gvg*Nhic;%=D_0gGx34 zXh*L~Hizj9DF7B>y*0i601+~5+{~g`^cra1$FHP#nI&wky$Jp)ZO>@vw&DOcGExWX zJ;qYSOC|=T#{U3;QILeWE%^CrdqeW@rDe)oI}Ptnoqh{R7+}LNsUxdzr(eWbBMuQ} z70`R0V^6FG^DEasaaJulle~1q`_VlqlYu3uHzA+Qfwz}9lAI5O`VM4hbU$12i=?Jl z0A*?yKK}qdh8+n@04g;3PM*|2z%@3Dvn+kD*_$t!oy-dfc;|Q z3xX>D0I!ob%Q4*VNOdSlAOww=em9K<9#T^%Fg5zN{{UkPoazxr^k>Gk;et$Te&3CJ zHLU#nC`*6~d3pVhry~?NsYSC{iKe`cyMY^t(m`@=KKAr_-Qt@WhDipX0^pO&<(z#X zbK^0Wt}*rRR7Rx0pQLpW-KALpD69Uw?OJ@+kSa-MX4rY`-0H?JLS>)?B_TyjGZ4TI zMy8e8o5NF5gl%gNvAb5jaYFV`f$CB#r++D^=53TT5ZGG6nZnAde2Pf@q1wXcpHF>b z(JjlUbLM_?^oa{mCV*V>{&WBaq$VzobH2EYbwghSyp)6_2WLK~_&U?9Ab@Z4<@^_tKcS5~I(c#C7zha)N9hrQhoc2zmf1zK8P@6DTH)Q==d3>sV1jQpLp{ z#m6Tn+iy4@oUae1HVz0i6#&!`N3&3$O4vk{$Z$%CNM|i`u%mlDBi9W?*t?JW8;fnJ z+;tJ_D3s?u8Z&Y?x5{YO&*!srg)T~^snjY(j+<#uM~Eb!`y>Z_8=W@GiYb|LLY$Dv)a&I&9!$`@lHHIT zQpD@`_k{s6X<(88YdbZl{{UeURWJ150FbqjDp3oVC`o4ic5Q?)JsIefuom9V!_&*r z=n(*tS(z)O9lJ}+DyvF8KhM@SsD^2nFO`E?h2K_l)NcxtC`?dbR1W_D2gb9*vhbhw zQ?PQ+e^3i+wIWJDN9_$)*WXy1mXF6yox%2VO#;X&b&aMvocWrNj3LSj)4XVQL^GCx6nVCbu z#s;gY*GQtk%-}LR$G()v30ca-sFtr?fTx{W_lr3gX(KAsLEV7AA;{Cnn29JL(#@>} zPp>__;#|3@aFBvhDN9?`-Ts$&tIVy0=cj_ljc8th;!mkRuC+CIiC{7k!H8-dC~wnP zqnh(pq5}%%JuG+f<*Zsw3n|MkSpc;_0M~P0P)O%Si0Q$yONA*#*&yq=Vbt5DA}v85 zww^kTANqj>ZXTzz&(?mmUQs28y04TjZgX%)#5!;)By9=7ubXorZ$B_|?D09=hvHE7(mxr9Nu>biyGKhCQ( zNjYo62ZVV2YrD$C<;z-m(E7hE$B>Ju6Vjj+cc({dx7srjn1Ef~oak$QR552MecFLS zsiIA(^cz1|`O5ur++~B04*GtpRAx#c`RayMGZ$iAqUPmq02R{VDdOKi(!{ z25Kk(&1&l3X7-Bd(^V@m(!B2elsjMBI~3)gemU>=*5d(?KmkW=$w_#9Ak3F8W0ICS zgF;8sTY1G|uvkGiGo=f-X7NA9Hz&#^99kAtS1!&udDfjZge@XsLW4M{J2u?@JZc!h zA^1dkYgn6sT%Z#Yq@-VrgO4oFLZp->0fK-4`hH=5@$%=SkwRVA=yw|W@`#vB1~(r$ zD8n{jz!qR@M<(&Cli9vKD=vI8)b>&;NZ&5n_(|uyXLa`3{{U-6*#O->8uk&rX=Ru3 z1XxJj6{68B(snJ zda$DpU4D_`oDyu%sd&6ONfsm!LH_pu)04#R1;BVt1b5iPB4`d-ND5#GCWXOpO}!(c z-;Lz36KTAU`j7iHsz1LP!ta6pP9YI!Il6vaZ={p9a%<;43&6Wfx0x@8&oWj6W=gz3 z79zk{gQ;t!?w%{y-Yq^-@d)9wl#=CHP^Uu0NFjx)d|69UvGsKBKf|S=QZSO_ApkG{ zBmzTnsX0B`YfBC6wt`AeAJZ6pDYBfOvM5cqRFsViHcP9F6{pR8upv~ zbH)1|#;0(l;pSs-(-c>P#Q?`ZIKQDelQvR`$`z1NOqU}l9#`~!7yeI&$97%vaexPs z@`b^MK`=yy8yN*U^FAy7FNyHvUO)M`H+-V&SsrI&#jWx(CAnz-~TJp~V=?2@09SdJC z(_nUWlwJchSbblsSMjt*nT2Xnoe$ujYt-H}{{W<#lTf6!+z?yL0Dh3n>>xD(n)<(+ z_50c3@{VH5I|tJ`g!l9niQteV5Js`l#(Ms%FmT9F%E<%=9`8@$=d5^~9#HMCGwjdM zpGS*zVMwS3?PG0@x@oKOhf^uWRSJs{SM$|}KCl}yya(;pCxxy^?)1Ue-lWwx=|}_= zzfY)dcdw|3)38epQ?YirxuF|9%k_BDcO-(J%a)_s;fF0Wh*PlB5TYE16>v}V?--65 z<|;Z7q-FKn!lc=VA${2T@2`2y2^oP6P(51i4u?pu#9;v-rj4aVMUTCyPLZrQG66Ik zhVOso&84C$@Xk#hr%pnGo~D)7G!EOAz9_MeaO(@KCI~(r9(rk68JJS;4J<((wKP9} zSB)}RlpQ2d+#f^8-%}d-xG|N$H07qpVScewh{8KkjK#y~Z|%LdV;5<_BqXseAs&Sw zXL`!(2-9L^^~lh8H-rsj=M>DK${4tZw_T2ph9`#z2R}8B)0UnhNLV3bf z-X(~36%A3V?@PZ(+TIq1;W&Eqeg%1GsyAYF^pfA4cP6a@<*fez(4^3d7XS*ohxtoG zCP;Fm64uIeFVkDT^!=-Z#24HRg1cJwKEnY#i5iufIQ3@GVLPC>ZnlY)Xy?I>3 zkZmYzmSbd>rYSJ>!0R!FlJ^FpgE%aOF<@M(#kH;3^lda~u$3v(pZ#K%xwEhwh3$J( z!z)6jQ5B_Ab3u0j?nc6})P&6M0t=9JZR=CZk#2xMLk-(%$XX8{RDTQbJ>%ZyucVbB z39w)TMwTOCHb#+M5)%tA{zRTzrxeRUk|v}RQW~#HFu3Lge{@}1}kzfS?s5+MyA)JcEVr9)y z@lb`AH6XV$s4QQj2aR&@vX%b4<1nb*MMkG7*@$s_mTJJAgA!d-at>3Lgt1`kO;`ay zXiEt1;ckVf0Lb9xEC|dUh$gqMpOi|G zHeA3;$V;&W+}sxq7(H*w8!|H!odMEIoef;GFstZj%mv~qm=J`drL0KO!nfwzF^-XK zw*(^L{{UgAebEEgv{V8|hW;OcS6E5vmpLjb1pu)sH}lYxxEHB&ppAsKnv~6!q^U!p z9B3 zR8$F4sg#n&?$iN*7OtDt5CTCdum1omumhF>@Le%V>x@GOMFe-m5+#F}5*!+J{8x5;A^}Dbi318Asi87^ogkLG1h5C^ zeZGqz5X1sDi1RpfnV^(}g%%{63c1#eZ?sNQGX_l!t@6I`z)Ga3rAsF@Mq_eb+{1)wQ;_ zid@k!GTj7{#=BHnpa$kFVp63UsVZs_R~vz6Je;_o*I4c0@o%t#Zf!o83-lv9p#;fW zb9e-OWFH9M5+(OVDGUgG7z$m5egQ~!QjTDhs-;zZS?nr3J)%_X8qEB}kP3|$f?dt4 zTGjM@ONj}<MY`d zp0_?-HD`-CGXPKwMviL0P`@wYBPR~Eloy~CIsz`nmadc&#$f=+@AD4@4E)eI;r8&6Noj_`~wd%q%xB({P&}U^D_4PS4k6cvbOkl|g z3$yEMnqOVEi5NUL`%J|WK?bGiVsAzuP>SiiH!lG&ERr)O=X#nJI&vCmc)7yiCIl>k zrUsXDODB~Ek(I;&7i9+-D}Jcy9=VgTlOs&>_>I#GP^xYgOta#x$#N}LBv2pX)G;98 zRI;NfOj@Lx0mx`IpmKB&NW!e7%TXYk4Mjku1@w#j7673xr4mRWCXPeYAF}}4v9CSX z09$)EASC0?JnBB0oSEu%>kf3POe}&_QV1kIWgY8Q7qK6B_GS?yK362E%hmcmn_8P% zF2)o|n6>0lB)CNj2Vng+y=z$VW)vl9n6(g1asjgjK7iefF@Mb20Isb7PT@EQ0jSkg zUK(10SkMdZ4cL116njLpaKy|~<|r`ANT)ADTK&aZ=@>alk`$D?lB$9Wg2cDeUTh*N z@e@*&0FW}302zTuEcMZ=qitgq%t?TYO!ZT?p3|bCBLSzyjbP~EbSdN?A!g4 zqpJ*%l_&rb%;Zw1OfI_TNGMh}PaODAHRVTf#bQ zXG(1DYd)Mec9LdLn+veB)5`6s8biodRF?s?CvKX(TF0#-%4Qu?mK+hufuOn9+8dvM zSxX=m*0gQkTh-_rXwX~=<`Q(!Vmm1t|F97#|`fOtw14&~s8Isp+ zawYdweS<-mpp>Kl$*nzf^QrS_wOpl31SDoEqx;)yS}HIK%21%9utS}xpdU_c8kutm zKxB%Cs}kI;TJ`$JE#sEq0F8`dGKq*XDPEc3H|I!}l1OqJ<>InT@SLWGo_?Pxwc^DK3l2ISv7aeTbnBIl z^`|~PPmIGS8tQbXl9#Erkm4k$ntmy8YtNC=9>Yj8NEZgXU+gPxc8l3qRHOlvsP0@| zy-4`cCg3wx2sp<70B!v$vQ`w80_DSLNBXo{C3z);s8m(#{XD2H?Rb`)IReZLhW!cK zYBWcjfD&~i7JJ|9@Y*X^gIYq$L360TsOjWP5xOlifXK{^9=lREJd=p;)&}RV zl~qhhN|>-IB-5LZCiaNa8Ge`8)*qQFXi)?bDQb^hM_586t!l~xQ`7MlEl9Bll->h{ z*If+IhlD-!ex(Y8xj-Yk=ZQ-ZQU(u61um>_O<+f6m`j+I=wB`g>@6uH;U{%r{ue84#S3+YFGy>^Qv z%UX$aINiT!=k4li3tY64SSYr(AIt6iLC$pps@u;rpKNXU8QlGxArq7tDJ(T_LDS359!>^i#FeOu3X0Rr(Z;?(^o7m><~ohM zKPP1iMO7skm;eENzaFva!BCYgDM;Mb)&j3xeRhfG4V6klT}rcn;U|~U^|U`P1ds}* z9SZ_(p>kM@R5!dnaiIW20Vn7%H!RYCu!(A5O;}utXw=frv|A&Fx1mhVsV1Q11;IA~hJa|=^p9rn!m_E92^8@^TL<~AV(M6tAP(_B1dO4} zoeS05$Z`=I6OEEaNoO^g!v{1Jy)fZS84;$MF9Y9vRSU3LCUshfmKT@OvzWXx zrKA~3aLrE$er;AB`&J+%Edl1N2h!y9yL%tCvgOQ}wJ4}18xu=;mn1wxnZwM(m@P`o z^%VfUj=b&%n?{;#t|znU<>^(qBmo4B=m-xECJ7;Qs6}#=T~2b?ayyC>zwr_!ew{$D z4(u%CjrP5t-XYJynE-{Fmm;(w*uJCe(8e4T7fxcv_5ij0tj`RHV3=BVCUKoJ^{NQ0 zEk52`cEJ^6JR(waD1dZwE9O0cihM-Wq%l*ySX}ZudwH>m7=RSPN+m+VpbloG{p-+0 zROv;HY+Saa-uiOBkXivF@2rSjpK}^j+Ca~qjf@FCy(y`RRNvSbGhffome+{nWi?$+ z#`{&<*PhVsS%?hTQ(kJ;qi1bP4R(lREGg6!T(J6mBF995{{X1Zi9dMWs65&h<_Xdy z!PJh^Q{>A+h%*#YfTsc2sq}qAzO~k|q`~3kDV!%LViHRdbbFI`{v$VsmbVHag&FMI z^7iz2(BVN9NF_wDt(uy+bGfWVYMS&czcl$QdeCA2gS;C$Vq z8*a6bH`KOudlT`fbmCZx*=8{n=0|0YSqGv3s8?5?k)PIxgO3kuqxLr~PQkEL3mQn(3gnqAO-fSn&}`ha?Vqx7_uMd_>7olE}*K zW2f6%i+!{6rmA9{MZh!_r`yu{#;b^#)EWNDvzXfaYsCMe5M0F!F@ zbsBHh33H|;8Cck{dU@>jtu~EEXSi+~9VlXPB&ig1lUj#*jlm6Gn#KMvhww}kwN8+f zs1S1@PeQ~}{EZ0z0OK6zi)g!)vS4C6HvQ*O&^Q+n&g~YWQ6>yZ8hcx3I4>Um0F3c1 z2vK(x4huCj)9_;UfB7bKfTR7h}*1rkM$&851zOSC|i@SsJ+j03sBm#q+fEU?n zdyf$9=j+#=VNPIJk^cZ{o3pjv?YM>$+DSN+DJ5V6k^piG>*n2Gc;M%VuHj8k;A%Nv zoiu+-tPU@|04R_wRP9%@jrI?Q}^_Y`hzb=!6d>xZ0H`hF~D z%!QhhP(=vc?DXm8V%G(an52Zv1w%q>ZH=$-;~gycXmd~!b9$eQ)Qb!@A#!FQg?Lsz9EKB z65-P@)RZtcp|vrSD!sCfn}e+$|*CZX}ox4a3DkdTwc+9h^%|)_^Yoj!=cu zgVzY?b6oT;Qj!j5C5_p|i;qiJp5aV|oT_S#blfqk5v8pZ6TAEz<>7G&T&ajt0znB_ zdKB^@sjE|*sdIs1r8OHVBi6d?DQ8ADP8d=8TSe3`j$cXfg=CZqi!oN0vNDCUQJmb#3ZsT2;GjlCC zV<})|P)Z02Ae$Br_jfzFj%$nIlkn3rO+tbc?4q9tsG+v)OLJ)ZW@M=|K@+gZUS|#x zDh&y-t!Uu%aTv}q*qkmoN}GpDGM6frK&9+C4pyTIM}G(7z*g}A)8^Y4KDq=G4!rM( z{{W2U`M72DOKdM5xXQ1T{{TWlUn{oBc4w<}{`DwM2`p8W)GBD=rMis^`Luln{{Yyt zWfi3o!jQ#_X<86}mbUSf;{A}Fgh*70L@K$HmV|O2k49+jv*PT$^79E0Nd>S9F9v<- z=5c-s`$IOLBhwns*ox%?4{rdiE%l}Ok2s5p!ZSGP8TuMirEBLK8Qd=uAwx8U1h_Ah zkO|$zA8$P(1pGc{1uRV}7}MBTR{qhjI)maSxUS&=1S1kzTKay*m5o*r(t5s{d2dE$ z7laHbH7OcakqvUtqm@H0 z<51dj7Ws4q)^FzDe>L>1FX29$Jdf0UJC1pa;mc7fdNF6ED@`h2><-!axHY7mt48K& z?fH(kJBQ)alA!Kdgue9$f5qA}{6~c>0;B*))NE@|#;!%Qyl=zeg9QyRhlcJP<>_2^ z@Gcv6%wyNp*EXGlN`irOt70?RCDK~ZO?F4lo`n^1g0nH_~g3VftGg(Wev_pa}x#B zF5xng46p$#?nMcu1sD;yH|I$R!}pTTbb_E7l_V16xnfN!<%L>>qP+LOvYfGET#!dc zZLJbCwqiWQ6=HlOVppmG|v=eBE_IIkZ2#{k0gC$^jjpDr=IRycE zf z3028r188(V2j(3EKs_PAjm>#}TkROtH;*#>`ubLRa!O_?L@1~YTnf7YUEZFh;m{W_ zPy(VTh1IktXJSF>YAQ_m@@6Pi0PIpK4QhG5x(#a(DPA{If>Ok=Z8QRnPz|c_KlJFuOL>R^Ou@ko za&2mnQCbJlnB(1I0J{#lw&PR?)Oi{MC1j^Ab?9-qS>Cg9_!NeLfAPGmc^g+NI!BLOy945tN7L%B!*ni4C`$*VUv6*Cbkq^N*S zWYUx@L29wR2rfJ&oGZAOU-H{{AcsB)WgX@oQKS~2=#cv3AmzHWLI@NA^=l47-^@M` z0Ig2H$I8WQyiC%Nq}e5xnIZf{gt!4MxH~h4A*`jVF-xVv)Ea2pzmYG}IgO+&JUy|2 zIeYhoRn3jkX9K7K`|_os8VV=+p!xVOgo^=q^(iKSsqGG>EII0a-6JC2vmgD4>$W!T zjh)ARWLq2z*1G}mbKAe+#9`B-@ybZ{trTD-knmMRA(-02ggrH!9^ZS;Fa zg8P_~R1)JOaU|^2RFSVJBqfh=G19Z+gDlNXX>ON#F=l6SY9Hp&qDKeAEdVZ9%)!km zM%(fQi^Rkxf{&?fM_!-AJPh2yg92H>t898|TvMD;;@@%p+^Gzrik_NhIEu`mV_-o# zh*8pf9@SMhf+9?{87R!96HBn@29_1t(M>ytO-ZD%9DzdgP^mhNU+Ek9X4fUr`LapEq+ql-UNOVTwGWK77F zB!v-B%wOkAR`H6%&X%<$B57hsVBzWPX;WjR<7LC~3PN&%PJv3cuTRLP<}l(~Kxr-Y z#=ZW&Y5Vu`SFRw)V$d8iUEf2q63u>|QK+`-vQ+;7)*c4Bhl&#tQCS}Pf0eGn ztqu=`(f|cDuCCrf?`XbDECNW*-?X);-gIwUMlS(1D)6}}0Fr9vqhC8#ggeEWF|9PQ z0jO%^j(Sj9y7Oqx?i+ZFFt#|9^`3zWEr-!H8V_7Wo27J3euE3sJ>mDjtqX#uQ ze;f07_Xv|Yh*RbcN#=a^r(169W^*-r7Nry~iCC!0nu9n-ER_#*pgsyg5_ItJ_0p#79lqP^fl5FrP)pQ? z1@-6Y8crXD%meap_vCtOPsCBkk`%B&B$G|ee=pBlM%#tSDhNhG;h53stG0vNqsDiz z8-SU?@3&r+Hk8Sc1q|SAfWI+TIC%nFP+F`g;kEjXacM0ifHLw2uhNYZuzWsZlsqme zT5oo_{x*wQxKzkR5L89nR^MKn`o|sjTH`0z-sO5ug67dcV?86-62w&u#3=}=ur0~` z-TK~tl-tGsqQclCnT*ApLni?>Ai`tC{2$Q4I zOX(W*@vCkDnAC}3$t=Gxj`cAZj6AtT2Cnbt&u(7P9V#Ypi3#)3`7T6=N?6E^#GD zNkm2e@cj@I1CxyyMQj(0XXJ?}e3pjIO?^p1$<|u-q!QD*bpbcHD$J#HFURaeb zUPZTxV*dbfsV*&Q2YYm)B#bW|FdpPQ3J-5&RP{6FT{umUD)XYC>O;iU< zYfhGm@xiAlX=!IO&zw(-~u^pcS-qTzTEhL`@drNv!jvC@N5@4IgHirKhXip(XB?pV99 z^g8_7H1e=B5hJ~xQWPu~;VRhG_Vd$~CMnbul&>{S68`Kg=FQZbLK)p1iH+8y-f7h_ zku4Mi6aN5Z3Oju(euJ!6OqV`#@=63H*+tl!J!)FD^NkFi9X}A4N>!)>n0lHT1G`!$ zO5vZO%RX}w5A3ilRy|s}gJ`~BH7781F`d125j0agJAo!tuhe2ZDM$s}fPeCB7>ZCo zFj_sv<4{6nVbhf;xiog6I_*f4h{w&Gg-b{&lmYMn$?{+v)YYtAqcMt^G=(cJPz|*_ ztabRpBwKkTp9WzS1xVI3Yg#F(shKfEk{FkFch}!zX1yVal1#7;XI08y!ZaVBjTMW; z;!;S=NCdDH^5?7EnhQe5>eih5gLk!Bhf3-6q->)vPZjSN@eHTJN>o(2gunekr>Em< zwIW%ZLQ<3@5=8(Hx6eZq$P@F7;E~PgUPAs)8VoeGOam%FI+g{weO&V_Ai5=kj6mC> z?NkT_mc|j;4QJP2l~!Uf(`JHH0znR6K>8iI?Cr3sT$3#-30iBQI(56Y+_bg-01^|{ zl}nVB8Z`kAcRL-u^o;)i>1RuIO(i$*lJ<6|PjDgIHpu~)v>b?>GvyK1v<2!M81QY+ zPTgv?X`Jj-Sl-3yzTSW|KZnDttH#6 z44taPU{Kk542_={@ z8+5Ml+{yDm0mwDze~(dqQCTu_^Ae)qR{mVUx12j{<&s~9Fnt$#p$8-bIb9uYiv(qs6%qh_m1o)O=10m!VzFT^0>L8eZRlI+K}f2^@iRCO3bv&I8r-{j zJV4G>T*kcPrrUq^2?5jf9`&l`*b}5;6I}y}vzv?W9jaea?0N0V_N+&$s-nYdKEC}= zD1=rJ9*!%o&SI745oY3*Ul9XV6}kR4Jen+82lbfV2V^~}tuT9F{e2yNo#X!i#rzsl zmaH}wPzpK#Km@%xQJKk(eU0oE3kxujgpjnkbQGY19FkmvUP=Y5DIJnuY_KZC{+}{V zbCs4w2%~6f=kj8^k0ZT6#Y;dk)mKLB^&>*}A?qKV3%J&qy5izVI0JrxSMO%t1>k&^ zAW4C;CHM;Y=ZpUUiF+-_C8*28jvtH!p7K|LC2dtGCDN+tkWgLPDrI&Y_Im_y>XrJg z=y)e(1w|QC841bv#Bb7SxTJd59Vm(ea)JJCCSB0#e*$upg|fCTz^&f zi$4|d7OPJZ>-b?6aU|Nb2R(yZGmKBdd^N<~WtQ1-1QTc;qZ?0!aTz>acqA@ZB?UCd z%)o=CDPK#S>2dv|oT*Ben5ilb#+42<6=y9SV~%z%Ml7ms7>RQWla`e?1Tnspj$6gM zHHzV(LSi!@yQzt7%Q=50VlYlx`M;C-kcS+2SnEgJ&u&2R%#GMVazR_of zm}n58n3rHkFZ0Qpc$td9B5D~qQlVlSt9jY&&hbd3E=tdZNm5*94#lf+cjp~;^4=pd z;B*N4-0M7s)5AN!ev#AOYe^>;hyaYr1vha20BVcZN2c*A?RN5TG_;$pSbJ(ek-7G z9w@9d)QP7u39+k(sIR?+V`+$+ClYhYqEsD$atjBg+P!*OIP|PSl0yOrAidkIJ$Gxy z#{rKjN)Bp(1CvS%dR@aGBOZ6ea0fRq0CvDTLEi**(!D+h#C*JlMnUlaqoy&5=~{dm z`?;qxFjX{q)1I0}{{V(#!h=yx0AgIV@2#Jnhkj(NSXih_Q+Ew|x8^5c_>9>KK}v>G zM{_~Z>8`q$y*&Om1l$^*Lybe2)9pTo2aYT{`j{tgFAa@!jv;{IoK{zNi^CwO3QP^1 z2mZGN5cMGW1B)4R46?)*q5Ztrix>Jwq%0gu1^hHY0^mlV>D+CmmE_z_ zm-5^QAfoaTUw;H^qhY5ZX~?sbhai#Rd$ZI6dTL?$cRZXPulzqqp~GTQu$2JMRyU|` zl=XPMlA?T4z%Ns+NUr|Ch{S>qSdXu#yuGcv0ty&0g|=kmk>nLjS`ev!un_eiF=KP+ zc`>X}<8ZQO(LvKd3j$s0AIQjJ!urHpDkV&cRmseTkr9r z?2DQ`_A$H(0*{>xgz;6Q>odCo{VM z#f$8~gL=DYckbYPRmLyn>OeW)Nc_D;aB;p23E_fg1U-^Dd+1Qbahy*HChi)YgGj;lDl!V6{|qu*T|R~HlE)xejlAQf<9H}svpq7rL^_fZ;62XXRo*i*I8wya<(5KH9OXr* zO%F|}dq$kr+!Dr4#fFoeaXQx*6M#W6vO2Fo^xQ>a@fm=wVzF|!a4^a1m3u{24TkSKYA=9&>hxHk`1g8m)9)Ld5v z!e_aCGpB4;qE;ycC0?XdjUR7UZe`-yRy8U~V5R|_fkx=SzK?Bo7}-cFPy{F^GD#Mz zgIzTIJX~SkQzWfHE*w;~OZaPh)|*EM6XEOv86(7GdhRygL?%EX9OY|_fF!=)w_40R z<^jxjpABSsr3BBJUIagS`g_V3JSHH?Wi3DSfpmPxB2r}^X>o=fdRuH zogO>;HFn&@$#4LZ_WC7WFxW*tCSqjG04a+Tn1{bW<@Gdj>}VqRBnIDpaR(KJM8uV? zIg|)&t|%-ip|Q2edPA^*cg)d^>J#WmzlRQ~1o)B?3b)<|p1+)xlTtR-Th(iQ&zi-1Txx$Rq?Q6wNA-RbLpVj*49 zRKqK=d!Cj2e=z{ybkhT|hvDf#FoX@YJxSL%(_vNfCCyk!3H{FG0cR}X*fjw)s}`df z7<5nYA!!LfNPA`!a7LQjEj4{-r6Db;w;@k~;nbv_o5SaX0AKrE8D2k3DpY_C0$bAl zjOd`l@x@4O<&9J zx6e5VNhAg!Zq(>LG%Y9sru%3XnQ3AP3 zDK;$RFlKuI{dVaQWd`)WGw}T)e5A7x)Zb89z6gi!Rrero0Y;UP`eVjO#Lu~@lEV;9 ztOox88qs4dHq;gjXep=9NQWsP9W?ddU5&h=Xh|R?C6z`j;_h{OKVDE`7|5ABA{bFJ zatWnQr2v!R3Q!~m0ok`Y9(08zoTNK=ZET)ve4OLEq7 z4j_bqEGXq-o`YcebF0@#*gbWUJ>W-qbtI09831V`LcdC?v7O|}goKoW?BEJqYeS%W z)Y6dLnGqCQG}^-NY}W;68JAh8UQzG@_#2X{0q0aI{ADjJ65@_$R-cgw@e z@sbili)bkH)ywbY9${!fT1{+`TDy(tH0iWiVsNsjN(ONuIx~_DMMyQ?_Z!1EG6mE3 zNS{U1#njYkd{BUz1t5R|g}?(_IosQu8QAqMVFJok!#h7QMid(ssTJlS+45K41Q4vxb|u3KwxH^Nh zZ==%>-qu(=RMey(1_1ehJ-OR^(Xa5?r;-&`y?5)_pk*lk=<=Fm__x2TOE=ouJb^usEO*HuNUOL(x#CW6Xr`KEdW&2n7+f6yu71ot`{(puIVpMb{c#Jn$jWS zcq+&wq!Z~@`na~wNZQUNm@7?Jl=>XSV{?%L0rB#j5h=t#s+kz9h|aLdtAaH>H(1hjyXec^Z zXw<&`j-v*g-X$~L*jJe}r77^M?-%O2Xnds^)s3h_8$$Aqze9rR>jT6=DM$g{#Oun z@$56MF}a~HeTUk-#9<@?paK9lA()N7jUM~vc%+$9B&bSHjX;2UoT8$)^tgD?&I?LP zlwGV2qt^Vr<3EeVOCe5@rGw!LusfQLpjXMETg>7{uNr>3)eR1=2a@pm;BQ$JVP-8# z6Ae{jHWeTeU*||trKb)-DhpT)13M0Y5D!--y&}a4T-7N`4RQ@YYSri~^c#Z^X3GUc zAPN(iRjK8n-*VzL`+m0ecdY>s8!_7=87!{)n9`k-jGC=Na@4gAC^ey=hgXbTz*H8X zTEx{&LE#l^8tU;8GKhSrA@4>fpF^gR?3q(czy!YrZ`^JCw%7B4c8}IQJ&FjoaV3Ki zU`W<>16*qG$IX?wBzQp%1KY!0ouXuk>zd|bd*v(k=1F9VRfRe`UePK?4LF4XE>hHU z093`QXlY>H!i-3bUKfHYS`yfGD2f&zyxf=62X8K~H(h9*dJ%{+bRS<@fZwhv^7TV-rs0{1Kpu%?-B}}T$ZI=nt`r_(&6JtH-pZaN{R|41v4`e z#JGBDC}`|yVG$R>W=>EE21*k~8v#;Xi6q}&wDVe|rX9!}_x}K5m8T)DuO1mW$5&2I zk^cZ7rtf?J0pP3FzyZ&w57rtyK2{iIN>Y42H7b-%6yO6|lEYioqG+Elh05-vp;IQ1 z%25D>k{IO#f7qSfg#{WSNjThc$r4IXP1Fs`7bcBfRj`Ogb_6CVj+9? z4C-jYx+do#0$P7*W*msEP3j*0p79wHmX7sG296ReDSa51KQBET2N^xo>TrB00D#-` ze_94FSe=LL&NmW?h?y;95tSv22Mt%Zk>2{rHiG$vk~1jAr!n@b7pBPZD;h1!&uy!d zkdJ5bTTxab(}&S9{j%7V#Zm~P`h&Pdrr`OOgp?f-`H%o=xV~v{~Wi;baz4(n~o=Vr#zN8+ga! z@yk$TtbqC!EG?+(=SYH;&tHipRV-9VG~eOBSBggA^F-+3?B%48bJKW5=oGyG&KJJCUmOoPYOcW0g{B5Bo-udG=4)$d1tYS zm4#VEq$N$Q-Kbky{a!5bJXu62D2E}kyL#LceYOITl*MrwXvQBssL=+-r(?gcr0Vwz;ee8j&qVt)GC8^-Z9 zs3@Y3PyRJ<#M!m!8Rg=pD6ur?#O`+2QPw&DDd2yR)a`-gRv%}&!4sT$)yTx5A=$|< zQ>AJjeHtUq#}Z#YP&5Z?bHArE6pNgqXnOwu1b-VuS+h+6CbvINmupfTpfJP7hq!uX zs1=;)5D%c0By=FUyPL!bmQs^?4v%qXiiIqwoXV-ae$f=p(x#gV{I#K_ESpo$?;6`^ z4|6aFNYW#xYHyo2E`!6*w3j%kWkT-kXgTllkb^y)y#v?IpDhqnrHl1(VozV5(1jAA zf1CA+1(F>B894#RwtpEi|!DtmK@#9~G%IFgd31pwq_G;kWh z-i5$>vqxU+_xVvukemiFXqs~6P+0_JEX6gTaa^QZTSv%pih@$POC`fCDo}84>@L=O zQMQYmE;?kTOH!DGmQt<(y;xkDKN}Mx-3%4sj_Z(bK4=fRcCPIPMcN6q|JU%to7ScXu2J2L-s$n?xbb&Y( z5W_K{*7_ePnKo`0h|5&9p(~{U0YLu%{zCl&*73|R*tv-bIj?f>SF>o>{^L`F#`i@k zqn53~>TF)xde%6u;fqnXB7d^me;+lmuFE)_;S@vycL(3^TIU_T?9`kbiJU_VEqHYY zDkujay~RL%+zNm+js%`NIV)H*2>`JKkxgmNwl~r~<(oebjKiu{B1EauXD2MgEI4MX zRMZD&a31up%b(;P!pM=u6N%uG0wm2+yV+DuS0UPo2IrqMr?2oI7j47%xWCwcTZsfh z`AXH}%LcrE`5%M2&;DKswIA(ZV1|G&Q4^f>Q&@={SH2W399G0x+Ri$QxMwkIEQ$Lm z>`yxRd3~bihJTM{&B88bVu`sFWs_o}l0rxz-BfVelF^%+g5sPadZlA<%a#(N6ELKA zYi4C6f>>?~81*dT@UFPq!@fcYnT0S@?Tu^5zlFu&fN!+&-Twe(+Ah-6<@U>`&IBx} zAe5W7&S`tMUa=<)AyP;NVIlPv`|{uK?3`Lv%#?>AtS%OF|-b9)9=Ebr#ad0A~TW1nzyD{{T^AE@75H1;MBwwf_K-Z-R(S zN>bpGH4fwBnqQvb*;uU!4CS1=y{r7+T_Yo7X%Xw#js5hkth`!4fL2DUex5(AOuTB; zDnS-HxI5|(G4B)Q%~nv$40L*nH!e-JV<{qOQkg1hyB>No>-7<2iJ>KwrZu6UG^K6# zrK6hu2tU*TxYNt>Yo^XNIf+1xLO2k1>5StQwBfu*BE-3iHSoE!Y47CQ>(@9QEm=^J zH7iNV0!h`V8sPM|FycOTm55MLFZ*7g==zH2MMLgmW5PJn<*6ympeO--Xj-;rZG5B8 z_>YHU5Jc?r@21*%9}V#$(g4vwF24oOp#*dvKvYl$oEqyPC-} zB&~o1DTyPM?rhESk7;`^j_kh^?q>qLJlTZd=N8Jehh&oFl)$KU-aeY_{{R-wmt55g z0+L)GCp{_WNVM$-0O38T;mg6|6qLDD{Rw(-qj7g|xa>ryR2#x#N9UTvW8?&ZGH2tw;j5s$Z?MOx#qYnYQc zE2=A|o~|nKMx-AKlEpx=Yi&W+x9ND%$;FhRd6E=`CeKRwTkEV-&O!{wmKv@{r>%7t z*u$`r-UJVQI&WFtin|h6`VdE1TaMKqC<%4lyj7uppO_>B%3p-C3lc2F{QbU>9~4x? z0#ZN(IUs0xJF&ejTt&UdFxu4 za)i|9OA}XW)1cR%Q4p7bl|6MHAoO-Su_xKu*ND6>Z0SG=j?TxEIBMzEEvFo_M8W?6 zW_=5WdwjnrlI*$;FmyV{kBuNf0HXB=q9BidiqGSCQfj53vjl}Rz36Ct#mH_{lXw)F ziBVcJB)MjA3E5g}c-!I@rGk`#LpXZW+!ES++9RS|)uBle>dwShS9;f#HjORfTm%{D zLtFG6(DM}+aILxiBd>6Fu49kkDZ`|9O_fd*gFrbpg}t=^#V#KMg)E*U0buM^tNr;hy8tyxZ(Vl(*^I zrasifiSqM;qzs{gh-P=Y6Ylo5k$EEvFA$)Vu*}8AqTYe(8Tm$GSb2$4q!14-ugaf& zBJ+p$z&eR^vntlqdg;Adk(V05ZM@dpyLCVv+c?BlDBAHLxz<@dY`PLKz&_jV6*Oh;WnonUmlP|*q)b*y3ECOfH2?X%siBB zQ@PXe^@XJ`$Pb>d`ct3`H~Di5@z|dDS;S7dQAkQFx%zzmI=+-|QuJ?v7L@1%@BEm3 zC~69w`Fj2|fn%ncdm2$mN*bpB08i)I9!gz_x7YZEB@A~ub^G#(2}Pc~x&7cV{;yrU z-AO5bnu#Ytyic8bC_N1ZoqawSmWfPB4hcHB+QUnKaMDmo59BreK3Xg#2LbA>wB&ly zr>>DBd})s+G6oP6sotTITN%#tuGWuTn@&nj_r9Rso}YVb62h{jN}*;fZRgZONlQ7o z*I^7zT;LRul}I6(G*vG3Ec&p2C@rw!a4_5S9~G4FfP?O~o8g zTkjQpmXGUj1d@Z?h&f>{lZ@1oKRfBP!+j&YT*{UXo-b|w#rN7QWu!F+iJ94)o|;m} zTSPf2EC-vm&7?D`4{gGvs3^o+n7y%;$KjQ;@j!f*#wSdvaj`)#Ce?A28H zQ&zH63PN=S!8-t6)oq+_71KM_0uU5~`$;J#%;kljceQpguo!;uij2k_pld3*P-g<~b+C(Bksprt#93@ZGsdsBF^ zPZI9hQizyVq`FwL2(D+f?g7!F=63`tP{@X@Ne-G41Dd$x4j$5~PD%t_kF7X`@?K6c8s2I+9Wn5}(^Z z)zF5k`xdzn?mH7WtxQO8Qb82E5FBb9&Cf`#GUk-2N%1X#%0p9=-s4LjP3#2%OrEhI zZ}+6(=0HSXp_qd9Y@N(9vYBHd63*lgzwjGI1|3coW+5Pyn+7c4HioqZ=cdr?tOhD$ ztzZNJn>YU2*czQl(vfu{Qj~Jb8I1#wLPG&vt!LH5TT;UZKkCcZ{gZamnll0?>|Reo zt2Z|TG%%$qbyuKzG(U#JPYwVo0nf5N*j;9j*M#D+{SGY2yEg^0mjH5tEAbjV}Hh5ejl!U1@3>~XVZF>2z z(lg1!Epw8RNl_p^TRF7|4u1PbL*RG=Edg_hN=rId{{Uo>LL30wT#X}_h(G}9bQmX2 z`P&tzFhkRMUe{Aq>BA9pupF2M=XQHSm4ym%ls=@pk6+`YY3In2zx@+SkU2Be#Es9 zilfEwyu?gO9PHYY*U%km>|QfC?in^>lmw+_Hp)3LsQLEki6|eso08hmpQiMQ*m-z4 zhc|~a@^DV%kG_PIF;D~k+Si|7 z<}dkfxa<~=HYZ(%i+t2`NY&3>5!J~v(Cs*hoFOu1rAY#1D)ts;2CwVoSoUWQO4)C1 zEIhjYUM{=d^<)7+Z_rwvgI(G!@OVKvNlN8{3EJfJrMbQKizeWikUp~@`n`ukLjyae zcf;u$Zd#hef5zlOi6O50oj0}4gxh$iUJ+_jvC0Xl6eD`p&0yQsk=QXjGYv1o5*mVz zNTr*YYP0=gA;fU<)U1+_a}NqY1UNSg1kX+|>pj z4lwe})exg(fy@(IF&~jzh}f$2D++)DgAWuzO@>-pwbrt3(A30&v=}XXP;qK&{4!vTPbC$J= zIXBw8`Sl)*({Tt|kXnFTbG!7nD(`p_VAm(ssX7qa#{fO4vM=8+x2~vK(Q9~Ms zqtyifLhs(BiGY6M9+VpM9ZBdRh0YSoAs`J)f_ZI6^o#r_0mNb@m8lBNK#*CBo4K$6 z19z-iqq0-d0JTj)1k`T&8uj1)K8NIQjD86?j+1f{BB z)~x$7MFR?wPn2x9A7t@-L2~BJ9o&IXmTcNEFVxgNy2j^$_G=CbQmJJs)j=+EYRut? z0ABAJ^zeLig{SngmYG11lm7r^=u}ITfv6028VJVzC?tyr9elA1f5l~W>Idt%-}PDS zF9wx^2281GKxR=1D_tl{uwp6&OLMqmPH3y=V*urB}#OjE0M!-^Kz)9q$sg)$D5{yR*r>< znLTre2txxrPuU(Iub z_H9Z~GbI9aQkw5@;MbuZmeFwT1tLnBX-Uc-E>IE+buQXiTJfObSR6tDm?ng!CYfnL z^=qD&jI#Kk!>r5i0+fGuh&?qsRP(;BAv17-OVUmh=lnFejo2;yVjpN|l_jNG`w{xnRupZbFX{{C8YQaP-@4I&ZnD<+zb0c|1l3jF_0KZaF&>iAs!+ z5`yDm1J}~TgVHeg$j0LSvF~Fs2{VQYWEePThW=%<0RmBFpqd1%-$*U@QY1ev(>li?*wQ7yi;-=^&ou#>S9R4PE! znt(a%8OHnCDwTmU)(8$wYjLGE>UnJOJyWJ(WFHVqrJ2Ab{r9en)Ygaz0LfF8jdX>u zRYde>5C?M3_)j%=GaVvIPk6MFl-!rCPQP}vX0hF-kt;G~sAgk9Re4x+YHlMx#Bpj` z2`lT&{TuHX$@r9#tfHisF6Wu{<|^+M!{Gz{nd!DNV?8x^%{x}3Dli{a(mH)Fu{?5g z)hS6?4*rDiQC)*J?-gs}N>DCII@W_$FZ_90DipOSY5_aFdQzP_Ln&h({BF4a5f(v)tk<*YPj6F?jq z5-sZI&KHoVh6bd&x2q4Nd)+GL-8B1pMgIU9=souKsf)oA9tWrSG|RQ=RvhEk6z9w5 zE4I+Gmn01t-=5Lx+ME3b--rkR2tD7XKGj0t#1p=n13PCSl`NBUOuv(Q(RXfQ!@rlwlb=S7DJEJnW`K3IYb zm*;Q%MK~uD(@`GCsTe89 zQgSR8=YCX%S`ow~MVXNO7`_Grs+uX?2F{2sX?BVH^+-g7U0>3l_DY$?l3+h5&5z zKi%WbGl2g9l)z2HPmmV!)s(3NGD}gEK`F0Fj!}94035tI&n=b|>;pKst1)qFdBe-a zfrnhVvixk>nW*1U(#4)St>Tezy3C87aAP3MImUdrui&t4y?}_u;2=)Hj27DyUn@_+ zV|acle1V6Wq{>ksEPli&MB}JH)74-F^S@(-HCDPyu4XRG9O7o6;?dAj^U+Z5A?6Tq! zk&NI-&xXEzIwuU`(-2S*FgPGHv)Sw~<$XkSjvvK4$!YHoi$xN28;$qt&~RKnH4=&( zGLvf8&rXfYSB;kq<0B{vR!{@A91ZPutsnE`d`AJwE2eY_1$BNU!X@^X0<0Xxw7?4GO>jz1h0R;TL0y0^9Gi)DGmda%uMkpNU;SD-d&!#ZyMw~`i+PI|fVqL}ZDAIt6N2mK`8c#0L=r&&0toV{ zI`W4Qw3UV+n|hEfP3a8ww}xUnJ;de}C1(kUQJE!SJ^%?Mq=4*Gn0-2BQ^pb$>2je> zpPt_Ik6(pp;#w}X5pV}Pr-z7ddhz(Dkee?C(h4syat5I8@inK$6uN?vngIJ9_Al$K zQp?2zDPbg}15H8XPgi<*+8JLE6D6u*mK>yjR7RlFVtn~UI`J75sRWSj_pLzdx%7^% z9h{(pFHJP_n&rOah&XK?qi63uHZpOEDHH^qTIQE)H=n#(NSG%tDImBu)Qwxurzpo^ zrzo;m6qj%B^S3vR4hmvI-icPF!yQRu@{v4C00e=V>!2N0ojc7{mo(?ikq14WTvnz; zw0D^bK?3=;px2OZYrIYp0v1-3IBJG=_2p=-mpBxpf-^9wq4d;krM8PiVlyCva41JB zzume=HFVl7LkC$-ck8ExKwR-Ec|$r)!2-vfIr3s5oK6o7iAt2Dprofz9V%)Xg8Q@H zqgb7YM7fCzW;7vTfnfKemVbNF5`=_HB8BPKN{z++AjL@#khowNY979_rG#sq;&?(k zz!V@1YS}GE(J$ zm4|Y~gYWasHU2_C1hW}Egl={kPio}9h5={+qTV*wR`IP<QVM|Pm3Sy5VEw=})p<9(Wu&$y>%reV~vDMe{Y zR9Lf-TN1|GxbtZCcwZG|&=KknPoh+eL1x^))j%`6QrrtmmmNTssh_= zZAKKaseO2sU3I6D=!6M#8c1xI{0j5#Vd!H%&YoJ#b?Ky~G#3Tj|(DaPdf^3lRM|+n3rFl)Zxu zPfx5AQWB6kpO%NxhP_X;DJW_S>V8;5;Q(_zKG0D}N*<eJFO&e7EKllxjyo z`TRtLqf_bdzm*`P-@kq72}95Z8@I3r_omW~1@~|5wuuOrUCyUL)8oR@k0I`UbBPH<@*h4tBt89m_02(_dBl^coN3aM zl;}NwE!HF;Wg&%iJ$}*ZQ1+nKBq16K0k1!~`LrT^Qb_D!=YC@YO=&;hQ`g3NQ^-g^ zx76S1zh6jjVUSmxQB1{591`XIbgUAC78a&s_x>Wm2n-8?8jRlbZ%EIWxZe$h2zVsM zX;C6V(h>@s4OqLHwf-C4Eu{iLxFbzVj#ZHtg_s{@!`Zn9pMU-dV2rZy+gi>O%Bfd ztwJvra;77~#B#0O%Z+`xK_Kce^Ch4Ny$63cS)R%PK9UY);I;IylmVu@w=a}#oo35TyV>(X@K&vsYNMl#)Ml5aUAk-|=P>_2 zg{jLxBhkYoscBg7tDyIzhYwFvv(m#dfwqme!Dx_-W*sb*EIX5wF;xp%y+ho22xFT^ z;6AXu?^)bQ!|kzzFxxSqK})L)J{np80U_7|Ko!}kNBMV#aXd9kC31jr2_OLPVOJl4 zq)SA}Wg$p%6dX~g2GpQ5pf#q@@y5%RfT5UzNC8P9$fKQlZ_=<@!HnbY_AhFI1Rbjp zi0u9|7ObHO8B|r7Ln#}Qz)-tX0Q!iVh3wFhl+48xkmO}aCE43Evp5b}#Q=InvQHMm zsO3^y_avO83ljAK-({*% zqeO{HP|A`s5NT6ZcehgS^^5F26cnObWU6T-5>yEe00AvxC`o4263rC6Clp;17NDf& zDj`WPYKAOJXh^$qjpqo(N?hVqDJeh&Rc1)kfkq^dNwL>RSCeaDp}&w1zd=Zn1{`Vc z?NR>#LL|y4GSZN5;Vwn29*${Jz+J^A;dn5bQ<95QWdIfdgN?!KVBF(lD;LA&WXyyt z2MQnsGJyaQaHkH&!%9WWnOr?Y6eJ*;uv6pXQK!Mr;a?UGsGi8 z{)s-joV_Pp<^zEVDVUQe%vmX7pd2$;nqA3l2nK*gf?fy06F4veh#`O%0@XAWdN_-7 zi@{+^0?&z=DFXf<2_yyvz=Ce#?-`757hLQ@(uPO`gyk$-b9D3A=;Eer=e)r2Phky( z0}vFWK)T}?#HNRi*(CYY*_bmW8N|YeB(Pykh06;Hm*;rN&Q$fzQ#eR>p$rG@=ubPn ztYYn0{OA(NCTXQfPyvR!HFl=L9ZACXDl=AqrwSmBpgCh|Dd;t&BSC2bL(myJ20O;! znG;%D#2^x7#u&%~GBRQPg=XZ)TBfq*_(g9(DYrTRH3M5|Fw)Qx66HV&IU+}YZd(ipUimNgzj$ZrWnWy`r^^19#v_6QlN_!)+)eEGj? zmtb_h?8dJKGD@bc)Sz?NJperYweqYYO68#}ma`fkUWe`H5@h#Fm;}P55<@U5ZiG7l zdv!2_7c_C{2`xl2&z)w2dar)`sW?6j-w*%}`c=&5>0*G zg{|otUd;A?4?75%@{$Ubm5ReCSd(9_{R{OR7YLCqQV_6I5(9-Xech9l&5qk~PuGvpxfhaK%Vc z=1G>BOGyaMq`Js@od6`44)h&k=sqlkexY(?;nOBmqCuIJJ|_t!K%d$efW(Vwamu*N zwa=QMte^*BcQ2`}h^EeUg~PnOKRJ4SJp@y-_aub7%yg6AxvoDu2&tuMD(@zK+{VK0 zz%ZpjI%{aAJR)G2LS?B$8jzE6=THTR+sjVBhu|`Tg!Scb-cpnmIaL5V0ec>XHPSdP z333G7hzks8ftVzLRTc*2nAp^`bpHS_w0=;S{4X=!?&1M}P6vrXzHFVqaZ7iUq9{NK za7}GWkTheki+&y0{6<4QdIYq93Q0)@mke8_h`pn;;upiPbBv=UD^t6W2y)D6QOsCt z5)s6(labvjLR5zt6T#Q9b;z)IOhBAu z$&{slLTHowL7`#;^0}>Pev5|S!D32O5&#J*NELl(1^)n=#k8z06$>*Z6d@|Rfc(X3 zHRSgZcZU*Iw25f%3Qa;q%LWt|G$!;q7|QG3MkJj1leyAOP1jsbIeG}&*H~GoAMr?( zsa@F!mH;I=YDM0{godHf%xJLk`_hC;m*JMgtS9$WJG~jri<<|mKZchkW*{pV6NZ$M zkOK1pb`=c4s!mZ*2C>ulUk%}MWQoZ#$smxQ4?y71(X@T*etWKAka~B9P8lQX0h+?= zu^Swe;OUg}T$>fcxQyw)=t6=(2Qq+`oVR3?lm>dFR_r#T;}cE_PjfbSn>lGI%8bV; zZ`xEwjx1PEXhd~xKZsgTv|xZzvyiq(At)(TNE(U|&Pl9urSSYJ2kJ43@BmZ`2Q;Y( zDmT%{evs@fL}WnNYvqkj)LV422>~FPIMjoxJy_{f93OyVc#BNPWy&V1SYpmBO$n%R z(3Z4sXK>sP3&Nv3@D!A@DM>CKyGh2lkuw!FVp;vDNwvlQ0C5+&YlzeM@4r7N7zZcI9^+cBTd$I>8!IvfkPQ7#gnmmg?AQlg0SF z#4o#$N{J*DJA!u{tPOT9V=S3-aWhKif=bCRQ{sMZ;{O0gdrwYBGp8&93xv4c>%DXw zpFkNrW<-gA1f@amL(5R#jbmYMmfA`G0N7#V5s*xJZB2~L z4CO`1qutr9XMaNVK&nXzPFkN4Ebp`W^`u*4yGV)2C`d{Xsi7yBwQKZyMn-oNOQ}ds zV^McKMvtZTjcwua3MSsgPRyTg!hlRi(TL85KC_y&or*-XhiuxFHrgA3=IzQexb7pF z!c(1E7x49KYw4^&#ZQ?vM5#n(HY5NjYT|~P^=M@&mXK7skx)%Q)cW<&ts2|FAz({7 z?dPn&Dq`iNuA)j^ND5#NTCT+|bk!7*LrNC|t+X`c_BO9FB_Nk0>MLD3^42WplQ0mG z;jMuV^xD39#Z=@ZB;|M3<`#R=ecik|1Mj}dqfQ6_fYzm1_0o^0 z<%~ip4QfBXP|+l%G&eQ4x93=Gb^}hIIor=j&~WXBStxd#>GeBmYOT8Cqnzjmv$?3| z`2Zgn{Jc1XfWq~!-VoptNe0Z-VP3yj^-9VqbEoI=PiWBC01G8Ygr&EYSsN~=RkcVH z5h<-80dhAk?i>MIbq&8aj~1358vtt6(&Oo0ArMeOcRFbv z9UIOm(4~Oj8`aGYmbEPnDL`{3zsxjAH!rr3**Sq=c6xlbCxm_Pk*3?7D?w%%@Ajpt zVX<~SHx~X{BPnVm0Dm0Emb(4?Qgdp}9wjYOZ0%Zg^Mp{60U;i_Pp`g}cGz$ae?Y{? zU+__p$t1tewv~p|Mt}f5J-wsVtg*`a`R!_mXlGG(zaVe#>+cdS-7pFmh{krp+pTIX zx(i(ngWjFIHVVVbOvKCzKuhKX5DKYQ8lF`nZDU8n@rshpq_MCeoYjlaQ<&;wIWkd6 z0X0wVLXA@8&t9)rE+J{3IORbJ1RSKfW1y`W+g_$VSsQ>XJ$q@79HU>agUZ3_q~jUW zPaW&3@ZKfgC?=^`4jETx>NMK1zTtTJ^5&w4DN;aEd7XE6=60-bj1Det9YB<=1Q!ZP z1Rjh?E;k=&=-d~M4AS#CWdT|OX=kJJj$SVfffHH$tH`kTVj#L+PLi;8me6|?SNNX+mE7%`|m z_t-TKv>y--qt~L>Mz+sN)%VifiDS>JLvy9eo|2ryH`TPSoMvZY!AQumJnB9*zVwD= zaTOt*L3BEoA915--C(zea6~pR%<15uZHh;V2v-2Mo`{Er;e}dhJUAm~BgW^5qDmvGF=mWbSU83$>#HECbDta?13nUtsVU&YI%AF(E_)m|v!VePi0TK%60qi<8)mM-4e*tyF{{W8Ha6}jf zK(x+*ZC^g%r!Oc{)JjD|nzq0=dVg`R!D13p28P63Yh8%5^@lM(P(z5n!_QpAk)TV8+;8@)^ob)@2sj}7-n6ul1%e?FBM^FbjSi0GX-O3pv`XRF zkePuqL!y9^?VuHU8@~S0S1MwPNU341LF6BM)1BdAek71c4housOX>2Fj}pLbi2HRI z?H`)xvh+tt?jUM(>AO)~V}}_s)P-Tna**uo3+baDr&`9sUlUSNfEK|l0L<;J39r%g z+Bkj_h)KYP4znJ0+$YMwaf}F+j6|v6rHWRNNX#lmXZl{xNZ~!U>@qlFRm3=E zV}?tuQqazjZooAL!o1z1pm6RWCS*Wa0I)7e-TF9VNUdmXLfIt-Z9g$>P-3IC?!H_g6`Ee7iK+0S>i;DX$j7WfofgS zO^r3>8!Mod>$Z(o%H6~q#tO%X?UTE}jjN$y=QcnUneU+hdh6+=Xl1FA zm4zI`m3+vhqm;?Wx32ngj%~wns9DaX z4;`unN`Y&WdUCmqT#QN<04x$(fm)FFsBl|b$0rkn0m2a0pYHl%y10Bslx(^rHSZ?1 zgAgVJ=oA@)>#3z1>0Kf9B?TcQ)K@TOZhls;lxF5*6NgGlNLoPDmuGTZR*klrLt~Ch z6wV1dGcm9=H3FQu7ZHyo(u0&Y$_L-lv^-mFT*LykkXn!OPDqk#K(dr6t_Un^PJ8^? zAWssM9M$SKe=l!)7_MIvOvJcSeg6Re0IC98qr0?4R}e@5EU~Ghw^yn2rz2Qgg=4=# z_kBLN!u~CULN6T}LsZz4`=c0%bQy!x*3UrNvs?1A&ScDAe zSW1$hNg}$P2RnJ!Q-lzh|6O$p=t@J zZe$VFwdJ>`M-AH35V}e@=)8!#&BsozuAW#by0qd=L3PpxO?B9(( zoT6y(rlgh^EbXS%)0`xNsxu3_-^GR|4x@wtQ(v2F4kTve*9QJy zn?sogU!1;Q$<(3iZ3jUA0DqLM(ytH#NM^48057*#l$3%To}~b z52YJa{W@(6N=f85{6on`!)HH#t)QTv^x%8j=*1-{ZfE78^rEAE2hE{rPJlz`Lt3QY zZ=HVdR1(L1@<81{874!VGf7G+9;S>xK5-!^v()YK{{SxlNJu2;9Gw6kFASp@D?U^I z0G3yG14r45(CjICFbTkQ4n&^_N2cBUQK_jzU($`|52YK5Xe}O~0>mloG%WZCR!;dL$xWO0{;MrmVzbz@&Ggfl=W_ux10z;6=yuO<=6Tg=<&~@Nij>gQAvbj@e zKxCRW$17EflI|G1QsX#=E?^-FAk?cVEaZZ9t2r!ro~fCD#$uFmscf{NlDUa=yQrlg zRVmdj2ZX(E0O2Z;DShO{m4%mOf>9$#kS6z&Nnl;FyOKx%f*q+)E1?yPCLfP+1uSJuxrhLO zNe*?PaM?(quoXIkbA{qq$%^reswxF31mq;py=rO+=TIvL@ZD%K1P3|nGWYFMfJO-c z9dro>e|X-yW*u_HKnRv8n6P0$?r1CJLwAR!F9$djDMEx7dTXxRvsTX-ztwRwD5h9U z)l5)HOXUf$U^5Y7=9MLaW86L>X_m7%qcAE)P_PRC)ne>Ur$9)n#10t9DQsCdg3df= zM_Hw)@G+;iR@^~h6Ea9hT1SYKhH;jokp_d8IE#dwLQ0ZUg6A>RfqHU!Zto3_B`p#r zJhxh?2~Z>(6IOcFjcHeBhGb2cq&$!&B$5;ucuKBaKmtbK5w|UEw4%X4&c|Nc4z#1+ zhwsvv$F4~wik(5pXD-(|b*;Rjszix%mJ*aHN_&w+>gDWOoZiu*{SxPdk`XKb>akj@ zp%h3WwGUuhSEOLXvU2!dgs6Ypm3@S4E*9IlFR=IRQA?48632*u0R6-EpIV9yp~*88 zl@bcb%yPM*1EJ+hXyPZ~kX%cefix+GW;%dhkPT5*yWTXicrqrTIc06o@5c=YJ1g{HpPIgSih-Q>6gV+--a1E@YWbrOK3~018l~=20)|JT+%(YQX2QSkC!EK?+BB zOQ|ZUslQfYZ&%(Z8?Gcok&S|r);m%c7QxYb(RuhP(_ts@q$tZ;N=3rh61Oz~5JF1| z9&QMWc`D)4=A}4ta;cpF08LFz9FuyQ=;ksQP86j}N|7-{DcA#=`i^G0H!H@A1Hy4K z3TCA%Qi_2OOIodJ*dBF>AOiV`&_505POfPX+qi?7C!qG@Wm{EnY%IAdm{x=aNg>io zi4=DN*U)KpiQFd(!{waw6p|BSLR=F^)6U|e?OdeESn0~~%^->dlE4RHW2-%>XVxun zxC!fS`glS?1ORJyEunoX{zkbG6LB~>9Wl9_#1}JJL z?$Dr+gcb#~VW|#F3(=U99gl+5(xBmZG4d;Y9Kk zV@l~tlg>K72ja(v%gs2cC4xXI8DF3@9^gke5CTV>L15(f_lm=bX}Kq~XV3Hbrn^wN zvZhRzD=3zrq`q6e<%Jrh>&#v_{OPGg>4={5SD9Hr2Ph5$Xc!iH*xEY38sbUEB(6|F zNTQW@B#^*6wMCAu^ddR*{20VeP(;9oAQnwSsC;94y`kA~v?Ch5bld9c_*Ru6;7OnQ zfX~}G#8M?3$VY@r0000K0A7P%YSPhYWVEK1r1-8AaBrA^?n$rShAc4L0%BzWEn;-V zWn!Y>2C39Ns5E_qS;*}76q=<=LS>{fLXL3667@PU0GIHSyF3?OAsGZ9d=uVW_wQHA z3y=U=@ZA{joOI=!UklwF>SZZLjsx$pv9NY{PX^&Q{v?0ZB&9wt5wQT2f^~gOK9SWY zc2-oRmE&@dNoj>i8BWOs$qZ`LEC6v>x8Ym{UKr<Vu~_UM4O)ODMEF8N zl5+}v;#A-}ljsCTF*3;vK#h|fHOEmaY!dJiEYCz)LcO)#gZcN>r4GRRiS-G$fp*Om`)X2NL6w=gL)5g)<-} zRjarp0MyayONha7JY@NSL=v%eD5=eB;V-ABqr(8)gD5R<0`H%`)wRD1agqow0LBCW zPg>{``%NZzT(l@8EEI*17y?+5O^Y#l(^q%r{C|namXRo8jv$W-DFmf0vl4!yyOIWQ zaWtbcCKB~OxI4S~jUCH2~q;T z*mWQ)O(@jlDeDkS>5|AZKiEyHOH+2+t?1FUw-N_`6FLY;XE8OE_7I{5lQ?nG3MT~wXF^i>mPP5S)N1~95zsi?`9%u~Kz2X% zpt*lgYe?r)=ggc}CQAf@T|_nc>h*mA>m6J+L}|J~0qN3p%||hUMg+(iNWpzSbxys6bq@~`*y#9Ne zR}3Q5pjM+tcO~m*2d3ooi<#K$RPsnELR4OW4fGTn24;w%8I@A!TZ-QQ06x*U00<*U z*Uc{T-f0eEb^*UgocHdGimJuoJPeR}@^PhkR`0tQtQckH0VpKuNGuP#X&UAP6!=}* zp~-5J`(I8_)ZXn02}(gF!vWIg$epNS#pwi2XQrQDMcYxsIRZ-VV0+G(b(EWesZx?j z09b6?y)PB2kuhs2Af+I?5Y*X-uT4FpXqiE8;qeo4Gi>icqn&<{QN?9Ul`O0f0z;^P z+c2%m==XqJOh6|DsKg;1I+GP=hIwAuI%(pB=_a$&sPEuoiR&T%v4DfsVvm|2!%5<(2KT&4_&Ox<~6h!WD~YLBq`Hzqs$AEa zaU^4Jtwd6v!juYrtA z!J({Or8BOBEbG@Rzg1Q)8Ujz#4VnP8GY zs5;aWZHJ$`ydxn^0|IKIIW-@X{a`mZ1hN?q)Jcqm+8C-H9W{QWAu;yEWrlD7rO&nh z05#SdQj1iU<;>~wnnZ<=kmQ414M`@C)&8*`B-M}t3Y@V!baoWAzL5u`_xbeotpG3p z2N}a47}VjO>2Da13ztaV$Km&e0@Ril2UZ%h8XEy~7N4S>G=z{6kV6)7TsDQT)0;$r z!#5pi$kiypsjxj+sm`SNMu|8X zX-!h+P!GSK&0&>c5aEyj4p;{j^sD}3E3OhWg}B6ihPa5W#g{8dSP(#RP$OfE=nR!r zD8i_dZ5SHg?-qD|99hUL_q+2H@;7l8cn%-lC@Dyzo3OQuRBLiNMa=9vWwK?aoQF%( zoBse&mDl;L#3)*a71L)4hI7~6I?ZA~TDiGOm5_r_91R`7rk}uzDIkfVM1>(hFeHaM z{BB2A#^A9tyV;_6Q9)P|%9Ub3U<*_eyANo;ku_>tPIfdJ07U`Prsn?uXz)nTM0f4w zq{bHCsDj8P=2$rE;l6xpMIlOv4gfIRPEofGAi}wFCoj z2yv#-oWrQfC6r257!X*En&9;}){$q2Kq^v{vYTZhkJYX1ykth8g$r|s*E(rd2?!X# zI*k^f4P4B=ooj{hIk{3&vX)3HXLqp;Zgst*S2AMpGD5+oQKfew$Te?$Tn%dK*hf$^{C=R`| ziqB$YOmTN|Ih{6Vt@RfTW~3@;@Q|lTy|tmG{(0Ntkd#eR=F0RsT(J6bZdPhk`7A<% zEi^j+0D4m3?-|{0!0!qlgYFzvTYQN~5$2%mdgG-w7dI#_OB)|PSKF5Mh{a?~*^BIK z?EczEv#~xe38UGm)xHh2XzL0my$Mlr2%#d)PyiqwtYj@jv6rHQr&09!YA-op>F=+v zooKL=lo-ob?lq;2Y3r+2G}0%knb;P%r8d^5msrMNltD=%rKzzu2hHP8B}Anpq=o|e zvufWt$0raY;(pQ9O#PL0S$Fm8r*Ue3nz}QK1!jMHZr2@uG43B3l;v3$p?hu!*}3{e zRIMja;8nCAG>VLT$|L3%cnBi8=0S6FQ!5>U|2lL#q#_tKX*xS{}Qz|08W(;iIrm$TR&C4!!jheWJH zDM>j%6d8jvP`3KM@4)3@W?<(|!_6fsLdrwch`p>SxsRyA*~Yx~<>gbv zJ7K_aSS}?u7lu!JhnPvDl7i%sLP%!^O1l{Jz6atY@b9?H+HNGw1vm#|EN`DXp1?9rT+j03`|5k@p1 zj;u|8FL<=W<5H%nqfwk{&Ni#;{GL4v`GEO+Sbf}KZTPP~&<=t|>41!aQ^q>&Gm0{% z!s4|XKO?8hO_r5Q%BglWJdHn!ALKTLB5EpAyNaC5E;cqC?9lL1hlC)3Mj^)4{;g)H zj!TIuCH&o>dHGjOyTii^M5Gfw_N|8qocRI($v`&0mJ&*ZPVMuMrl7}E!^%wT7j-)< z=~EC;w9>>e^RFTcM-srzRFz9p7QI1d->K_fvCz0*7+FwClmZK|e+hasRjS=So@c~Z zST@G4GBMkIa%*R)!eSLBU{tlsm{Tz%F-o8BP50J6K)Aji3B;r-b|bqf!^>2~6L14q zxNR)lw~x-Q({WiCzSD7Ok`&TWh$up6&XAE{Ygano*XTdu{v!VXh_vwUpW?85!Wm=$ zbCEt3;D5^eHJ=S|;#ij!;;qvFk_Lbn?^*?hg01J&$*b+mq6=MEgZS;8c&9?HrR(JaM`|Dmm z@@_x`f(d6)>AH!~80k2CTF{WWb4UkA{iM{m*0kEOq~W|>K|n5MpcgbXsR7(KPPUF| zhn}`zPc}Ac51Vu`H8_P!BgD;7T}Ay^)5@{UeS+X&^g))hojhkWkHroc3gkm!#?nRs z$kz)~T|0?!l;j~ZKxPCLFt7eqZ$3@DXO+aJ0_d4{G*f_FRJk|PPDU{k@snn(lCo&b zbkj}1gr^Xo0CEkS6K`LQtYvQw+W`y}rgEFnu=TDkC&x0&1EJWl;ghD*r%b?clD88l z07C-pt-%h>%yQl>*N#Gv*`AIn06jdeAFOg2c(qGbWT}rJTJLVW;^Pg)6rtl#3|xQI zP}^U@t&C-V2ouaY6gBKeup%mK`0`-fI>|8YILA%8!L73KMQI^QBV(ZDrL=u@5nbO9 zRtY44Tb&Ms)O{k8{!}VpL$+#eDEpnOt!dIiu_+3*$If9~QSS#X1bUJGn*{?fbR zg}@ekR+<3*yTaAktG?BKj^pP)N*rZWa)XwEx!w8g%CTgrrEWzW9+tIeTjudmh*`{D z?pX5I@lUKE6Y|E0FTu=*70JcFnH|8AU)3zH_OqCP(@6H~_ur&2=YO97^oiJ%f~UKJ z)Momd#B70>Uw@xS)$)LbW`3Y)E=ZlouQL0YImvSe8h3QlJuhlP!Ve)&g4#ogNYGWA z`~1V98~T4S6%`#QYM)QcJd_h^3x7fu5XH|>IceAB;q;-4pXk&1f{IE|#3X}f0`L9# zRwN}Z+Yf$_w56Ep-(TbJ4g`cO|H^1>FBR6T7@b*Gg&!{HVu(h8npR;Nve zU^0G&7RX8|N)7k?{MsK%MVtZ7=i_}LSro*9T>+#12gZd;moabOAuI_ADK#l-YHPWt zKwzYMvUC3R{{U%W0F0nJ@9SN_=h7jZ6qK*MC`__QV21#Z31OQ|b0Rl8fPU8d0iq;_qXFpFkl7wllroY(lIRy&`QDQ&sY_8OL?^|ccZ6pwnY`h3%2z%;shTrEVX7GP*ciDj~!#Jd6*RMs!Vw_#&KE?5T@YWn+^5nGML zuL`_{loS9^BrE`Eph8%MQh`bVjmaR2uol1uFhHNg2m{Ajj$^(PM@ZLOrcNWNbW=>} zXAYFOpOj}*qEvvQ0$oLtGgXRqR!|6XB`RtWFErqu^%+4?0U<@ITozJ+8(6uk!`R8Q z3LZ?X@<;v9oRShq%;c{z3jt05bx>wtN`_O2V)4sMO2Vpiq$H5JVN(WFqr6d4rG`jK zlme7WNUCWEYN@OWA$x@04VpK!b*bs9X z2fK$PlMt1S$4zeW6)x&EwyG={+KdhMtWwF7#MYrPcty%(6|&N#l3a#PV3rw+iVCm< z2)2}|wM_DPpaK;2*2cXF0y;&O+LtLX<2!g&Ab|zpjZA<6>FKmod7MIH_a$Bu z#JP4L(1vPzf+<#b^D$VI0FgCWNhDO7T-Di&vjM*KYlz93mAt8b5RmL#e&R?h3lXhL zijCqVwaj6fS;|eoG&FPc*waRii!B3`ppKEMf_Ij>c_WAj7vdiIWAWpu;oL(LDS^Z( zfKvdc3_t`Cu`fp=v8lpiaYy}&#LP$~!OTmN&vVN4pkN~jB4SZ3Dm6*989|F&2W#7F zuz0hRkC+k?hsuyy$ZD5yK<}`9oYExN=agj}Wi7Yg#hQ~o%o7nX{y#RFLUF{{XcMwLl~> z*2C4q#+pYK5~X)N+D396MJoy*u?4IHS%7*}(mAdd6t`hu$Yknzxiyh`Zakd&Rfqg! z)sTsE7$w4#Ts@c%sV>xN2$lLtSacITdB|`Ig%nKz1kuCaUXKyejFKcM3{s@3VI(Y! zr9cX{WP(X7c3@e-q%n?`6_#TA)LFrBM(#nl4CHw+ge|+N>@$hN%f$e_eZhXdwPKSc zz<&Y%0I&sx1usBsNIb1+lCcYx>zRpKbtKU0pFijwOkiFqJq+G)WX7Xu_;WA)eF$-ZZy{NO;S}Aoy$7){@k%JmarO zTgW>0%pYhlg)-1W2oy6Gpj2)E2V$c{siAfH8H3X`u0-y>8 ztZ|Gd5Li-55HnC)R?s_izm#rxXBEbt=^08>oKcxMO9C8&^&?8_o!l}RwhJ=B61N@a zz6E4LNc9-#R$#BP%ukhx#9{F(PIWA1ZtuKNDGDr-LY%&}yF2Z9GZ`T=LS(3ki~@mC zDsggZNf!VTOP9cVMR!6njz*3SK=7X5rSX>T*<) z$#N`B$OIM-S9-XElo8DU#4(~hHD|zN8eaUr6>)=~h{jAzu!SfkKqot~B-8*D>L6C3 zhOw`ahQmvcwJa5_-APY`0+ai5kVR{8K;#IG!v_tJ6EbR)C#4US005QcIfY9oJqgvl z6OH1N)Cy!uX=O%<6;OH-@B4*F4)hI5$z-Vmear3Nzih!|p%&{4!^^joXSkLbV68zY zNX%J|X9ld`u_6BebLd5)szwD<$WRpqhd=?f>#Nh0Z7_T@7sSXy7)(x4ffj_usqW7@$$`O`#-`G z5Ig1N7XxGe0F6b?y+ach_^uy~ESUja+5shnz;fk- z@Vr)4b1C9>5zN;rSs-69K4Iv_nvoJPVszjXrKks`OOA%@G_|_L)czjIP?`+Mk6O3| z%{LV`bElNt9s+PFd1Rmvzyb*N1Og34!jus=aTlX56fT{yJJ&$A0YE&R`mKk3YHtkh zaOnk8QeCp7hfoI0Z%g`XNYl#`CkhoUs!EFiO0$}Dy>&309tJ|PC33<=24V;=r&p$} z%xkd0aKf2o)R2;=pkM=0?%}IS8fhH&UM5-3O(VI7;yZ)I@PW~59~vl0O+@PKVl;M}`C+*a|Uk@|c#7_MQIgdjM~ z2Z%8wfJ?o|8x0|RKeSvjLgr0bmqXwxAO{s-<$$$yG#vBhxa*i%+d}jCtFwi1C5ea-e+g7Mp?LL%U8jIm($sGpdvz8z?(I z+PxthXZ(TQ%Up~r1eB>KCz!gMdji)rjz7ituX~zg*@Uc@4xn3FhrZSq9ZN;m5GF{@ zJME83+TVn^vI^)CEfePR7~Z#d%tEnZTjGl4f>w}J??zw?5Cz7xpa8{wBOFtPG6eFG za;Gj?==}*KJz1T|jxmqzlCWL`D=-Qve8z-=bi0-hZgmly#&+st`DF%gbk}tTP$an2 zr6UTBMIJX)90F5PbF$yYYD+(?McOyUz zSW=EdQaOhi?fQ|M#7ct@rv#F9CCM*a`o}))2W*lgvZuSLfz3mANHrweq1o%mvE8Td z3Y6uDCCLXZcebs2X=dKe5sgyQsPR4Z#5Ny8=)*|op+RbnXcNd+hSI{>Yk!h zO8`I>G-6E%rFVxV_NNfANuIV<-DJ4yu(jHez@%|=ib?+fV+6SjS+%GHJL$jE)N#p( zQI@%?B_OdXup*4*wYKlPYy4n$>LX1fOiXE|cUi->2>=8%*=+U*7#j=@`o1F~cnVDK z69TdnZeMFLr&zthO&_KO3LxJ(Q>cL8ZcAI;_TfAmig$`YnLUsyqDwt!%=B=^kM)kZ zgU884j55)brD+5l!Td{7K>)j-2_YjeFX9QLMd2VE=V;f*T|=#H_+fJ~a2>Z8p9$Mq znyhTVr2;@NLbBE@D{|%X{dA8GCT!F?Ry+ZVfsrmKTQMZw+f?dk_?|N|%8&uge7O_~ zXbA-h@Z~8YqK@w2Am`@s97+Qr^0~}XSx(`d=|F2xTStnpdr(HB$5pVd9zVimTOZ-n zZCVU$*(E9yl$9ocsDPJn#4#!#xYW6|?ATr-i<2m+ICTO*8BKw&L*@lroHdW)c!}sJ z1SF^Tl$OlbYnOcoI+)91ClCp#CW4b0w>b#yO!}69v zJq8#8aHawsdsA54bk$}CYnHIE8izlI`{gHM3e;{uCYqg^q@Bb608{78Qp@P<%+|L( z3`UnN8S^OfJ5toE3x5&aXaEK_c+PgyO2XR#AusVxfr-TCqBOz@ERX|&MO>bGbsx(p zcdE&9zyjctqgnlFyh_DP6Hj)P5Rh`cbiLY~o{V8qQG%D1-E%`T{?S^Ry-tinMWhKn zNR39mc=M53a|W$Uo>jQ4dRIAszBG-mt(5b-8NgpBHGigo}J>?v)$w0Daf zPBKzZ3KSHk11f5wqeDVL02|tXv}G|9CgL#}n2$s{cGO!!NWpss7J< zY0a%oV(C0M0QD-ap@pi}W7ALA4 z35NwK${Xq#?%=(sWMB;n>sn|<8OPfEqQ+hk31u)~;5~phHNUM-wB!^F%o#!X)%G?5 z?mqxVn>{H7E-r7Yd$&vSjBX^9-jS?m1S9661XoSA3vxUC_s-^KYtWfV1O_AmU7Ga! zblxK^U^#KiPMs+cC(jj7QDc3nW_p42*GPz&xrS7dT)TsAU3za2L(2zI)35oBYe2CQ zvhxoZ{0_A#Qxj3U>fd{HZ2`O?1gL-oTpH4wyIAeNtUD_RRFJh04SX#B0K@wTw38($ zNFfei_YbcweJv7hw%kcM*9Zr${@rw2VKRsaH>NQW+(D}>0zxE==Cz=1UcO&=d2=L! z>QFswY}E3#b>$W2V$#V4l5f=Sqc=y^(czG(q3i|8qwDANtYCVN9=~I;`bBkG3PBkR zYKl2J9bS6ZEs|3{T0(#-bc+N6K@D?48`-sEeIYACa?O|CBT|wI!J|>dwQV{^Qx7V7 zCa3+#n1-TeCo8c9va9~wf$17aII!7PjGzz*s~%vD53$%ska{m)8vPVbSn}}0jrFTp zNl5`xvv@K9prS=Bl&szK0 z;WEofAOxvRoEsM8NgCGA5DIOP8OX*&YLW(m7yAB{q2be1luI=PR2v(H>G+PP*}O?w z6P&7*V{JqE`o}H8&O)*UB_V}Kp`*2_rl3EQ#^bZtliwvW)-oCppjqg_?hbVYWSj1l%Yr} z3n>JR8n2@tE$Y#X#?8K<3O0iNquJjcfTYe<2=6ADYXg zMEDS;?DTUr>u@fz@IO*~CtX(AtnMK)pTo5EY1)w`GD22qE9C4LRC2 zYLzNsbtNhc#1y;w^}9tDJA_L~?=Z*$&YdcLQ(bEr*?p{YFmxkaV{W=)w7Z6Mn|2UJ zzzJj5%Chrhwsp%Xsjlq%>*wjSxGChQW*I_A1^&(Jtq)k5tPH{p7_kI5;p?}*Dpkv! zhMZJ$WhKoG?PsXmS~mn;X%1Gg(;@2}bsOSGDFi=#de7pz4if$o$i_pB12Kpeqq1~xuIIxhz7 zHyOq!K51f=Awx=#tuM2?ZAjg5e$MdO%S_bEM66Or`sXABtQ`W4Nuh5y7HFazM~ZM| z5QUH$t4Sv~8tJe;caKnfRs35m{vs?WF>rXv8;@R_`G5GMhj%v--)}KS(gZP`jQ#+v z7YhFX9!^3+vDlHE5YkgZ)OQ+njY|;zVxx3Zg;`)wuCOT&h?KFwfd%5ZgQ#PAW>^brxf;l*c;zh#imHUfEpD2w4 z>fZI&!nfgW9H1LZf=q)M20g&VVb#HSijtK|!xg1faYN^J1@&uQC*gPp6-pB`y2t{7 zWg5GiwRB?6JmX}ZIfjy~qys4Qa89DPHG1CBGyY==26<{AD#I|S)x(x1x)Dm!v4!{X zkN*JE1ZYm6tfisB89P@^ye<>w{zA?X0SMJ#LNGmRn|8w&GluX?P8`ZwC*x!;LT98b zB2>j#se-BDyVQ_0X!$>Ze}s6yAC*54c%+#avxzBDGSsPRmZFi~yQTa$Ij#qTf4y;7 zo)?Y6uMdooE_xIR2$&F{bbk?{dOJO-Xv0lLABTm1$Klh5l9ZnWwrgnABb6yo){dWq z_`Wy8*>$`tO_$wuq})Kb5E6qrkVlA+MRNRK!SJ~E+kY0}e-6QL7J`U;q?pRc^rVoNxRw#<))yIBYb;&EfMD zP9G4W3i7xkF-lT`L$NLhEa1n`n0`4q7?cGjYLik%Qpp4x26IyE8H>Bp9ma9h;vQK! z`t~3M<55paH{CCFl^Idql(`Xl3Z5*J&xB!4B)x6gS6W~4u?isS%O{UwJxt?Mm zB4vd7gI_W6zQp!}vuN+QX=-_X$fedNDe^;}X1CnN#6XXx8S+8}e>N zo<7n}CPxs%uL+1sR+V^4W&lGF99HfeI4n6v+eI|JOt%yh4rypTvb#OR|t zgWpQ^AX1Y8$QLtVSkj@iTz#HW$^tX}oE8 zpg>B)sn|HS&N*^=Z3VUvA1^eIwl(@XFTUi42}|DPZKX*H?-@=2HU|FyN3X|)WCxJj zU!85|Pg2BqXe)YGtNmf%fvt9HMr28BY%+9Sh9^Z_#GLuEzQ&sg*k1ntH2OoK05jD4 zeId|;W?|3e{%Z~;Aagsyg`ke){fD95)V-(ZF|Yb_Om}s14|9T}8KJ?NOXd1)oQv9quxx?u|9M8)LQd3|BTEE;nlmSyy z^oL55mnuq#C4=Pw$>hPw>Ey;B%;F+jfB5rAtC|d{0o;NCzJ;je-GR0VVCwX!rM7=6 zb%=P$@}<1BOIalVg(U!h6jTC|UEM6FBrws*A}YWML~~*qhea_jjA2$n5}-?1JJb>d zuHdDa$*ZxCCSxR$l}w$KXAADuSd`@%veK0eP~l2C0~p+PHfA1Z66F;nD>#`n5TmLD zum)0cuyrV9Y6c09C2>(-Vdn7VOd(Rxgo5WPgHW+Z6fbj9!^kn#@Vv%snKPA`7YUkGRH-TOfNC2!WaZUC z=)fzuV%r_JTvIYYxB=Jq`=o2XU8i?>;2B?^&Cf0OA|#nIBz=(!Cr~T2Pt5 z5|xq^3VcY)qLyTnQ*a3-RJDX$b~6W#LZzWy)a0ck6%ZDtSSkrgaN*0Gq^0Z}M>XSo ze~8OYTsLtoB)|GoFcc>-%90ck#Xu5s7c6xY%l`n+@ilm+Oer8`3Ql06cOV3U^voN? z#1PEgoIixR;4TCWfh_2t33A6;1*GSun8JcbQQ&fGrZ0(OxO}Oykn2g9d@D#N#Goi! zC`P%G2vAeLQX(9VJ33<4sd82nw52La<+uP4hDfLcgK$_15H-eO`$dZ=Or@zfiDN6J zWki4hNC!{c0_sV0x}J@HE@C)@lAI!vg_b?g@Te9FQi{AelAOUMiv=X+G-0>!@_%at zr*I?z{c;hA{p&#hWHp)X&_`$2O1hmfbJd+wjvZNofF3XUh6OeW1du>ewOCM^>_#L@ zl5;s)fFWQjF(p-1YRV5$N|vLD&!fLc0f{IXk_CKDRhR=nL2^kXhcp$1s}VhF37Pwl zGL4vXatk|<9`xmQ@W3KPzz|{(9;?t&F&k*LTfXOL!orn~oRwt+ttz;)2R#4-ed0n? zwGh@LF-Qf$U`VdJ?nNEm8kVdwSyKX*vai~Z8qHdO&v5Uq;wOwmvZQx%fFu6O1bMw` z)B@458(IraV-TconAVn=@ca4!{!)=4Qv<9J2^jzc0vgSw?D3$%@X3lwR)n06GZG6p zI+p}B^r55a6aGPJKuDLJL56gIO&F0|y-OPg)n)gp*3pFnZVm8*4(<#So>f zC`k$@!luj%c>p>&U?VTX=VIp&iE2qnDGC4p5(xsV7-iH@-&zY<;Sv`tT~{Rmfnw}V zgGOrZ#xgbzV!+G*U<3{}lH7XMW)2rme*4z14ik<^OzEt&hf0V6DF6pZbtDp|P%0*X zjiP#RAqoEgLV-~Q{{ZX;&vRcoX{p7@;&Y^uN?j-R*ySTYTo8PSHMJuD00qW^)+NkP zNK&0eBasa5h#~0!&Odn1O=ECw8jMuX z00N+u5Wy}(IH4kjx4V|VK$nA)D=eXi2~%YVN^=?mP+5gqj^H~z<0r!LSbP}^mY}sP z00BM}(3fVZVBy$xBtD@NBpG62Kr>Xw#WN@sa^{%cPI_js-7_7D%h2m#TmH_~j5~RICLy}6KmiG~_lYziX%88hi_sBtCb^xhr z3WI#DLgP&YQ{%9>=~GpfU`kwtAt8gChj({6`&H{gaSBrvEX;A^FJo5UU0bLosWX`A znO*ePGv?;-njUinox2Y+Tl^OolYmfBkWN&ZwF}a$8%m15Gj5T=dqBP=B*~YBNbrH) zWiF6>Ifyi)f(fx6QOtN!Qe-An$!VD|i z$rXDQ2O-(Ukz*SAxRfo@Due<~|Zw5^8dw0K|Zj zdIuoHY4apcLNNFlOIpdwqmY6sGy_)n8 zFw!`79$3XE4umbMKpxIWBbPT})Zul>hR%c2?XUS(SXghQ>j-cDNi5eSnZV8-rc#wM zVJ9;x?%;hM=Ja@dI4Sbwl&uC?0@-{{%-wyQy(6N{#ZARdKc&H?X+a?+oPr(A0U9|Z zqzNhuF%fu&Bg&{>3Fc#MEc(fMts+)POC;qZw8fH&TIcs*mr zvJ(`E63XTh^4!*mEH6QGPdkc59NyRB5KO5{DN0RPnvEEi^&4MomuY)pnsTMGP=vbx zD9%~$;$RN$^rUj^e`%CT@-3>P;cfS!VP~M)G`7QcM~=Tp_loV|@PZt}!U)JgctZ2V zcAg{KEL!DvYn%dk7hozub4~91MoSUeX^L=XnhGQ-j_l&ER;ebU(a7g^h^YlCn(jeK zDsotjNpi#1g13r!y`e}aDuRpDW;ZuFyU_W@_V7u;GJ)I(LKev5S=*}46{AkL->=jU zI_zuhI;Be|zAVh5P7?9=^AO+!``~z5bd1V%U(iNm}p5aahH=jo@1RVrEvc~Zw;_v|pNS0{I3ahgkxD|HZ{UfLN#iRjfO%pCN zv-9w-du``r-65c1;~4|0dQv!-Xy)QeDQYPWQUyzvb6RK_>rEoHIH{PKc}l!YHAn*P zNz{VO9o(8mTNycNDhPbQgR_RK9jJB~J{O0_qrFVk zch)&dib=VkO0s~HQb+(=IJ&t10DUltY=Q*}>N6h+G;)y2HB&fuY8cdZXSCRfScJ$# z!QH5*Ji?_oDq4`ad6Aiqg((Rj4+@BwLV{D3_LCzz^&jWGE4PDvtO6K-HQAWJ2kFWyi9R-mlJ z-l-{}12J-W2WT-##b7Y_r6C#cq^(9;K$tUUDp^|8oaI44sUbw=Kne;Xx<1I_h?ywK zoU*k_lBFp#Gv-oO9ZD*cwo3vO%NYq$vk;(B&v15vbcpUAXWmY0w}tZFZ5TV{6&pb& z0Iu$E2$_coDer>NT**_Fx>6r9h$;stQh{XH<)8wBZwj21%>MvdjG_rkt1^jGrkM$H z084)H6i@C(DF zFCxeUh9r`(ra*8q)P^VoQmO)k^X@Vvj4+*sKuwdCB$}$k2YtWm;S6<-&JE>&cLB4f zx!w3ziSd690J#kbg!Fm|)U)F8&F9D}I|5A_qTBnOUWCLMlF9)-B0&HG7*(!G>tSAz zZ-|(YFqIOP17lIkpciMosT7#3Y_$?o(7Os7eR`L;)6}q=hBY{csqyx!z`P4icg$=x z-gDZatqi45HCnczZLh2Ec#b9|E=aL2mdBqkec`2Iii)z5OVkEtJx;*2D*6a!VNq}> zSP3+T(EL(1smp(8x*-I4J}Nz zp#qGng486?Ui{*rc%va~OPsl!KZRkkfNOH(n%Tu56UxqG)RJ$jyHnGv>0E>&$;ks} zyby+y^s5&F!OK7m0Rv@>?gcyJN=nNG6(j(l38U5Q9M|w+Nl;bE1=}@9CD;JNdOI*Y ztp!t-veO(T*Z>$4R%$VA;ki?aR1g%Dpc<1>E2Twl-^5=eN@ELX==80HtwSBfhd%2=wRwff*01QrqXwE50f*K-T$u9w!-`B>glp_9ZCHZUTOGW`{0EDm_ z0dKR5Z>wtzOqNm<2zrWYTD9^YjUw1%K}ZWrP&*g3{D;m=s%{=_lbK)^U<*49=*`KZ z9meC#BsH8te#V+r+9VY%p^%_q1u-$Gs)ZVs8FV9lt^C9}^U#3BY+is5se1hjyje|> zq~|1s8tTo=v3{Gz8;Bf1oS>y@zyeqY&{?^f4FzF<4hp~<94VMbPP*2YlWGBgMw(!T zbB(-eRwId`R$wYhy#7<4l}V(Xj+nWC2O&>$Q2J9(MytbfLg?h`PMm?Q6B0-Oxh}wYIrii^(j}ZnbSepUZCsyDPhFx3RJ=NFlDji^wfFK9U{Ys zl;LG&O28~!P*@i?01e;k8SEbtM5Pg!C96~9Xx!`W9ip#|@u0Mjl^&&lx2}PxIr4>Z zxB-E&&}1F)6{t3gApF}kvs;lm5W0!k@lWvgY&c|vOgull2}yF4=M)YIU~52ZmX1k^ z!{YE5xtMHPCt>GH1kFUm6sDALN!p+_X&qY&#EU>o^-yWJrH}_yxO) z>zEEUx#=?Jw8UjOb5TLfwchP`q~enVx!F=YD{>r{0J|s1FcfMg3sUj4kc=d;Ri!GR%bQ-BonNGKiJVl*TcJVHrfWSn(`~BPiMVbw zW}g{)8fLAx7ppssX?T2I1@{113F1Ve9y~uWQNs9(Z77CL50<#YBS6;m*X3g5Aq=ag zp{n&1uP?j2Tw!>OvKm>-TBl>BsYZKx>B;bz{`)V8q>3`E^`pNq!k6=n1{V^kYX#H} zyAe%D^sDS>Bh2G`I1Fb|wwfOg^_ukf9}$2IX!{LT+rrf1x~z;(cmOmzzrQ*)eRPSL z)&m0kiJ|k?)-l*#BvOQ(4@09^&^4L*v|Y%?_kahj!B_o-Jv~mb2 zXj)Jv7g9qwY8y7M_0HTMHZWf1Z`ZlS7<^eoQo!;jzF3KAMsIQSVpf2 z+ENmgXJ%>@8VU_q`MYfTWO&zOF`Pbjd@&|jrc#m!cVG*#rnGvShm6G3|4X(ae(ADkVYU~q%8LuPG-DoxSU=YSKF$@0>rWIMRt{TrD_QR zaUhTUfvdAQ+fV8czSUw;L`?99Af(qup)F3ng0aO96-q3!Lw?d)y*)*>zL2rTmZ3#8 z>6)JG@5&hX8+O|(qj1NUfY2WrLYan(GnbVbbQ@1)9k0htS_0=NBoO4>2LQV}bY^dD z)&q~>P99q3;uA0yDhEL9UqMH=tqgqHjv^+dBuxO-z+vtDX?oRZ<1-|!BfL{T{zQtM zDs|eAZdl*&BJhA9+nAfNJC428X~X#QY?4bra~4J$-Dwe=SJ;?IoFg5EOx!S)-vplV zEGjcK*|Zvl6>TF4#D)_Ik5t8u?OBqcE}1B7KzbVjJfo6u{@BgKB_d4uiBM`KSzg-F z-|Rr4F`-W!M;S?0DQQf`Au1$-z&Q6hFn8R?Fa94Bg>eMjZ7->n<~mQUbzkv(E-<&0 zS}zI)2>^QZ8yeVRc&-4YGh{TW!m4IsY8)`ABmUIstVd4}{Xi&EfpnYrf%7yUeIuP5 zQB38_Ow7!x5F8Lmv+gTcz2V|y#R8QUqg>GQQ-FeEE&xc&rTRvgaW96iQUo%2Yt9X0^YF?f70Lw^(c@Z8$PfI9Y@B zua^G+llW_`;tTBvTp2)+z_q^M?W|NZD4H75@VI3kyRY~5hofOP6$xe%A)zy$I`R<> zpG3a&l_V3j4SCVN@Y<7=s`vXt(dZ6XMT=oK-w+>=SYyVYD7b)eKc49D*a+Z>o@rP1UO&LMXQZ5S-TC)ds zLQ61>#$58IjQJsIxx-m+FP65Vp8%bRS#23Y{Hb${`803BK-2?|c6kYtT;gF~*7 zT=$p(XYEd*Awk~Uujg&yMFcUXLHnst_B$HTf)60&qCBi#WfUq>f`L90oI3}pQdk2< zIkjMHRXSNXiBwKk(LjI>#jAfK*3dx&5)h1{fkE}&M_Fd0o2h<4V*^}Ho%2abP>jR{ zEo|x+CF*I*KmZ#Ec2QEv1tlp3g$Qm$ooqt@81n`gPYzI8R525LE=UR>R1}&D5tNj% za?}OOhviO@DQcFfrA6EY0t1lj6xDViocNesReYfpB@GMHb06%WYFYC4_VKA`MJv16 z{V98U)`mR_fCjw33f_TlstNBR>7~sj}SHP1^o{mxt1lZ$b6x`HxbD0mvqmrFS|C z^r19}nEYDslETp}%p`>5N>rsfj!-~Lk^+bZlyQ3$0l0uNXsO{k3J+n_!^uN7r{%vt zNXtm#*olf6q>`D7N@bv+B$pzA$Sz!f?hO@U3|T5^mV4ufn3b1F!`YZnIxo| z1p(6_E~vA@xItYdzj*E=dMfbv5T#|#MRJRl4#I}4=HF?^z$3Tabjn zLV3oSbC*7ObE2ApaeDpxXDD9n_C zq_HYeL8AgeRZHA~p^ky@_F9NQuvymtJdx7?=|TY$3rw<5?tHq_^CqQ5Qpi?noaIYV zS#kr_hyuhVfX#O#p>n0E2~v_kW+g13qBSnYq>4UTvoLtIn?6!7@7<t)7{6SOMpv~5~^$xr6F0=xruN~0>#S~)Q|`Smkz>#qHNA6g2GZ#QkSVDtxnIVOVdCG zpa&&I+{BRBIbba{Ir{ljgDlHhmN4GzN1BSalZe2~nxvG@l%SUh%#w`BP(VopCgnlY zqDO$RdK)$Hp*YGVazI#7@Tn9OPz6E4h-WNIHD1FRE`D_tD3>$|43gl3b}Aqj+yhWS zq+H?q+3J)M7L2*l6`ZpWLDw*F8GrzjQqIwJgdz&>G62C~xHzQGTy^L@Vy*uG;pOH9 z3Ro#Ww1F_GoX~%)1eXbNLjX%G$E(4VEeSG;gACyy9InBcB#>!W+*R#1S}~bGO8dmH z3MmRn%cx}k0OG-vqNEC~ogyPmRwoQdPGguj45hYL4O$j+Yg*zY6M}a7369-Xl&W-@ z5~WHdAqaI6qc9Rp0bt;1KnH|+vvV<+c_}$k>;C}S8Qi^g9<3h9mx|&63GS4G-hS0l zBpm^fi4=4x0Z z5~9@v=mi6hQuPkS;_C{T1Olc)%hsiwkQ=C}1^I0i^7w4oWC0~f0ohDa169E{sr*p9 zN|S|AP)J$SQA~4M?ikvF{?SL2z$krL9rnRT!O}h+J;&4Pt98MaiB4ZSRFYi+v`J?K z)tr;FmKBDvSedJwQl%0Hg^3}B$N)13{kMH$vkO1;DG52IOj1EofpCtN78N!$heC!d z_)@T5?8WZpm8sF{C}S>CE;kVgck2BH{{URbl1PFc`iTYSUrbfD7HqWEbCm2=rzbq! z^|^~2AeS*pC@RcBWCG4=S->s;9JCH1kr)|(ITLb%YNU`0R2qgL0eS+|Iz_$*1BuC= zN=lUP;c#le5w4&R9q2WLRL@Mq+s9s&1${HVKgyLfttthSl>!M^(HtUI#f3H7QK#XaRK~I7wpR+_|6@7A{N1MB2uC z6do|W{c9VDCj-~;G1us+JUfVE5~KknAh1zW5kgqKNU`d9(mGcR;<%hXNv3K>P#rIN z5Zv|WxT%Z+=HgaFq{$M^D3lNjP&-)Koa`dY4Tr>;V5qEXQb7zEfaOt2Tt;_*L11VH zUhl=|r=>{{h|Y!ww&u38xZ?2>g%nen$pja*OKM)hwuv}-v!^H&AeSN7S2 za8l-^kO5PWud@F&*Yk?FDA!o793FI0HvEcB{n? z58;Ah!Je{BN=AV-q4uC2dd8m(E_NDVmm*q%U5RI@A>G}%15jIMjy@&eOVe}=j-On` zU6wwi85#w@Z!IRemkmUjSO66*DVQ7f0HRMa9qRQxDXUnlYNsw#u_Nfz0yL1f+LvmY~k@0{KX^6 zHjK_+hz;pqPw;>6UlH*fA;q*=!?gbZQ+bkM9b>Mfg$38d97i9C;uF^|4vDkYwI~39 zR9u{+LUp5PX?T^uf5rW=?M5rRUJiB=N|pj9%t<9lHOvF2D66!^3b7HO?d`9sdAT?ff_Y0K=Ry%6>13r~d%uS-O8U-GM!~ub8-p z{{T+-eiy@2h{fYd=K+>)cQGXy$O$S*%<2UAyfgs5Ye&o7xa`(1vlG=aN~TT1XDLkA z%$mFA%1CizcA(~eM!P}AFc|C<*&`4p%K~B;PNcOIhEl1Seia<4OAxOSES5hq_UDIi zd}ap^fjF6i12m~v)uB0;hfZ<~$z+8P;Up{oLvBfpJ`>{jyvvGB%%V9|Wy8d%FRfSn zhx}KH`0dBoB1;em-6v@HmkuFrXB3cl#5`dCdEDWe0>ttq9<|WJICZo{5 zYStSC=))113(pdcPU-;XM@X4ZH zA!PuhtSVwud>~aR6aW)M-kX5&lg3P)!luoUJorQ8Q=}vWlS&88SF61ls~=`|uZZwj z_{oy7OPw}!q|Fj%<`W7GvP3RlFY?TP$~ZaT(XG=G^K?!l&LbZ0P1Y<(Zcw?V{h_>%m9G4#vmW;N+FoVa&i9v z;{}56{Cl4xGFc#?jzHW(j+OF;FNt@GQAsLRXB3@>Kbs8~h9d;AO2mj&BO!@VyGCs# ziBTeEQPkF9wNzYt_sjP;Jik0o&N=seU1$|n zv0PTyGOgOBg9~XR$+VpVeyoy-1Ftd5+aliS%7EZ#-xC&f-<~=u5?O)svP%|1DHoNi zTKAG4r+Hl2g!@q1+5FjywSZ@hNB z)$u`Z>384U{ga#~k$dLt7rFL z_|Qq&-)9C21Z&{#r`x$_1E^hZmvT>y_VfnSXfiY z?%y-Pp>M|Icy+NTPtgQtI0EC&IDG%q&J~L}fJ5z2x^vvL-ENH~ShNJ8&}}=J4w)`+ zUBG1s5pX~^fbJ0+6IQ`Cgm4{vQQT?$2|op-;2`DqIB~$&EFw9e5LgXdRh{h(5S;D}GKqa1n#$1lHgm(M zCotqi>WGpc81>n(W6{))p6 zYp7*S{lLb>!S-M^UH;g-+qVcZ86_DcKUfHUmS&38;0Ly*FwuGiN;=~X1p_o8V27e~=M9Sp z(So1GaDIsf8h!9F-pRCxA6kIIdO4RXg^2BEH9dS^6&`!O`O<@k@A-S~JDDIEL1-a2 z!nJ8LSnN4*8cw_+@l#OOi;Selv+tY zDjr>zAVoBpTdvZ&Xgjt}6>z71p0jt?y^u8;%hMy1xY)=?`NwZ{uLb5je!+FR8Fi`2 zyyoSF<@0?tg^f3ti`-A7--Nbt@f%+@PYkz8_?zz_+J2x~ptrz>XRN|gYo#^x)hg=4 zW3F5eR6w!eR7k7R%x2s1J*PKL28z+}JXT}hUN+P$ptZdC=ta>*y13WK^}B8}_t81~ zRUtUL9fQ?AJKYNJL_8W5#@x^w!6`R1m{wMJq3MHvnx)@Dq}(GDB>Il%wpFq(}Xw?BGK zB3FEHQ`cwnxA|Z9l`k$0ZOs_jcYI61CiDFrxL2rS4yjkX3}>&yid)^(`m zR{;JwX6$&ooErr8Mq{<4jlNut`VD+3P3|PcmF~08pX>grV>7a>7 zm|LB`pY#4IcuC_8BlcHBhCEWDVsT>n;{`q4R`H@s!|Bf4%|C2sxo)>^Iq4+bwaese z0rJK12}NF-SA=k$2i9%o+eC?_%vNMvLm&{k`F}o;o&=nU(PzDW^|G#9jw*%RXsn6` zkX}tbIoj>nU3PQd+#IhcD68A?!OS`d>6@3Rw2dwZvt=LFc&FF|>rf7qxAjwQC0!QF zEBjWrnBl5xRl7Y7pu^vsZ9i=_lp>yTS(qbAQI>Eb7q2N`^&kvXND-FxlENvtY z4UTxCQE)C2+mvfxO&87~t3*LJ59f-$>}|umo-}m$A^AU<_|mxDIkxYGyhQU*uGzNY(VrWWR)H08;+|CC({_|6x2aNKTlcX_ypQ_chMWBc4Y zH^Qd!uGwgW|J{XzIN;< z^~44RX?unlBq)l#aC=x*F?}7QyWn7fH?EM~ym4lS7VtWQ`Ysu?&2@@YQD@?3Sa`-I zLk*2CEM-XRlPb#%FS_-_x-@5fc-nL8`?njve|46P-1~5?UgiY5J~p_TOCWGBsEB^ixmmTCT zlPllQ@sz*I{$I+Mbf_xpf-WC&i0}A zrIMDUA(Y}ibFqSE#HO8O1^=;80H<*XB}=0msY+a+>*0f4^2K=F%4)ixdn@-scBAEU z@~-4xt++=ZSpm*L5%8+->yo(Px80Ij!}0XPeXZ%{PTEtb@Hm^Dn7&Bp`d7>BYvK|F z2(x+ z&NmRy`M4UE)&&kBxW|0_?dN=<&nMF_)a1R{Be$T1g={`?!F*@iRmxyiO8K7KX{(uc?v4)!H$wl$1g>^;U-@fuJ5~yXk}zK0xWe;e zMKMYNBAiqRFG;DGAARz@2WzX03Vp$Qr~P3HYt&wkZ}agcKZ}d_Q9b@=>#5%K@j)TA zD5Y(J`l5IX;y<3sd~o$IF-sU4+MD^A zgB^*E{UVa~N(sesgm|D_-01T?!m6YzC#N(xx8b3OXUEKoIkh3X(mRqEH(;NMzmMm` z`kYHEJ={%e{NU|2D%$AjmF6 z5D`QVb$>pz;Y$20B^FHbeQ74F#QAYPyePLTsVCl}#Nxp#kHE4sCYvcr?S81zA zjqlV_w!~6!n2sY|P_dwo{in24;_blc8J&Aq=5SS$MbvaIFNW2vqxttnJ z^D1txI5v?ZzLjfVw_ZHj-^m_VUbjx4h^J`tesmpsB)-nUU34FYf1N+JR}Rz3K=`EC zX>94cy(m1|Wmo>0%Ojr7} z#QQPiE2h05WAtVCt=6lTn{q~?N74sC*_wJEe%!Xq4!O>65||WodUV$VigvSZpI|UQ zX%mI#KDs{V8s13SK*)f(#skTP0X*UkuigY*b4VB|z<~q&uZoJue-Wc}KCyWbkgq6W z)Lo)kZor~X9Qx7qV&UA1(W$L-lkgCJg+AVz%BB^8ozC#XZX!5IY{Y#qswtUj?vK6Y zn*wYzJoy=rb>_-G_8$+!4gV3RPGZ$BDd9Jf^YA=a*msw8$xW*CDpJ`j^to#HA3&M^ z_?5rFpsGgmo(!re;n%gb(cOm~<*!|ils7I0KxS~i65oM7>hE>d92l|Q6-*8l9^-pg z>b1K)yLSn0Rm2H;lUa89Rnyc5SG~mj&xd(oOV=11w{_F)T)wJKs3g;nQ~74b?u6iP z?dv20b)xXS3|r-+t+5yPo$vXItF(nFcPciUBxc=<>2V$ndk#5~9G(pl;kg%jdnCPP zraWfvZ+I%iSo#4u?SmE{mu=J9a>TY~ss=~E(d>fCf^)8ZV%>z>jeSvW-p3}pV&)r0 z#Z={ji=U4QSA>~XP#@HI?s8?Zn(*(1{{S|;-pA&-lfE)dS-1Z=8wsBZzb$8U&&^w% z3G%5NZU{O46&;=4#|m#%L&q)>_{)0@t`ioENUS2V(A*tLi#86+^Nq*g`N>O&sLB@H z7ZPLqdFr>b@^Alhsb8fSt#W)+pO5yAM=g3O9YZC*(|tTYu@C&d-k?K{zpj4gk6EJh zzlrm2q7!vysau?1T;M;nay>Oc>L7}jCd?f@tj=qp5{lJA0cB?i0rHsc?)wJu# z&CTwldX%y=dpQz97#bb~);lwttM{po5z1WFb2348ejpmZyXy1uH&Yq>gXcrP2rq+q zT3%oIXT8%dG>&++4lXGGyUi7ltlJT;;7HPLKopEvj!UZuJzJ_Tu7ks=sV`K?Nbk5> z>ETI|4SoION>-ZSI{wYM)2Eae4|1&lPZ3qF5r9FvImZcjyCd`NA*8_BZi~K8@Uvog zaMN*#n`g*E4st@e;{@IZ)f)j&IB-7L2_C{89$5eWmk+)Qo`A1W@~cIF|Mj{cTex`4 zGIhN!6%JOt!i9rfa^u%sT(}wZU}-i&a&#oGnR%Y|=89zEFh^e6=wpnix26z3neIx4 z8aq_q?3_3(Wr&$lPER`h{V6H0xWW@oLZo`ynN^tUa1mts*K+S%yGWEb zed8;@LLG@w423I7CEv-75`<_7J$5KKKUzya&?A%w@}84zKE=9@cDeQOi$5@b-3pwh zpeUcrVm>8;c%ZQr!Y7$J=q)eQ7|;nQz?o&B@=khjMY#~X1WmZ!A2{T|pBzQE4|kWQ zCBcdF2PlNK;6;PLSFj_GAlVsCJ50D{X^~)Z1>H*`VKnE%o!>u%3aE>W*mn8g00_RJ z_vJ-D*{XPWE~lLpK*=3-UjE9mlL9LeocfG>IMeR~b%Ep}67+|C6IK&&{9p`Y@r#;1 zOoLyTz6nA?AASb_d*h3?!OXr;p4fMLX1X zwMD)iIQ#axZpR0Ki4UB*;*Do(;I^|{C-a+MjI@|1ZLA^}4;i_M1NCS6qw&EW=TYG- zT++`qB(weM0`0lD84!Yy`(Q3B)2Ds)bZPSXj`9rMOUAtL2CybHq`17SPsv7>U5=gp zsVf{u;xa)gl{-3I;(On0l)b>_S=sYwl`%r^uP8 zn4Yd86jFVw0w;66keck!9Ou&E=d}6ktT&5amy$I9fQs4PJfm2*gYAdZzsq_V)>-Nk zT!?WOBIJu1_s8C5pfaMqdmo&E#b|PkV|_?m!4m!eRnSMDa-UM72$^e(#k_mDkk3lT zpC_1GKo}39(%EXz#EOdWFCKM)=c%P4nzuSn|3Up>Svw(kyd*ha6}zssL8h0QLNQDr zZ6udnIExm0)9G?8*_4)WMQyuXJ!i$tRJbay!^0S}HzfYbArDC=kTf9}b2e1+jT!hL zcdP7)mj3ssbMMI><-~8}=Fc*Ar+AkL?0^6SQK~3e4!+hG`S-yb!rHUp%OvC41~~0da`!Wi!qeWJ;&V-^3>BAlC=jM7L956}lOvRnoLuu;iJm1H&W43C z97osVWN{WDC9%Jrd1SE9FjsqMadxLLqpxG0huc_bVe+;UllXWVMQF{kX9rPk*wx3ytkv?e-^? ztw(u}r+h5$Rd;6xHlFLbvYI6CiRI*D(Ob+&+u%LdBW!UdB&X|!T3QAi-Dsrj%u-Oc?N%2+FS_0uR{U~-tVJwf8zpd{_v z$O_hmvEiXTr_=X)_Bd9Zr)RIoG@EqZCX&yiNVg_sU0L;TR^Epjq%re7hQex$y(;<( zJAmy)u)@F5udkUnWI!fsPYM%2R-!1_B0$)4x!~W1j!5s z^wXYkQ0*lRJ_Y-BA-PP|tel)-hqXZbE*$9D1{bvSrUf^5V%28~y!`04_$^mawE!UV zw2)_SW#Mi!fDX3IHWt3gCd5VPRBrj6%`TXJa-Ug&9ZtIFRN~?ln!9;{Lj8|88ygx8c2mMr>c07Age4S;00flMQ-f(02Ql zncdrbz}u^$IONk|M~3LUE@_3dVtOvAiD``Q=;QE{oW_PL!q$4%h? z`3A_dUhH#^akFw>sW>ycPw3$&j%;v9kIoB4pdI=rPro#k72z!o1dLlmy{V zhbW}2hIZaL^qFc$7|MosJxL>d4_S$)I}Pox4E=Z{OpOpkj+&ChdnlFcURM4L7?x*^ zdhZMEn!}0ex@bDAGexHY#?)`3{GzWtW+fA`EV@?2Fa775&YVu^JIB0Tu*jPx$s0u% z|1=ao5!~oZJH=#lWp;*xxRFf>onHg>aiw<*30X?hC!Z`M6G$tv?(}$&^*1>2r?hVN zwKIQxbs8Gri_rth5r5hl+#a)k+NIUtK?`|GchfopPHjM<$)9}x8V@i8x5nLHeJ`hx z_=!mqGMcbflJl6Xp##rKmzh8ZGcoh0K>{t{Y4hGIaEbQ1xRi! z`wgxC$UHL`ttqeWAE$0~-h|ln5czT72ZG!Nn)UZ5_s^a24^8AN^NJ0i;qlkxT0DGf!~K0%R$`KHrDLE=JJmf}2UC8YlT6!h+j7oSO-NA|t~& z%1^=JTsJ~=&RN(wJ@^Ai$y*-&%91gXc@WEQ)J}WL2Jy_7k%oKuK|Nd#Jf~||)Np#lz`^y-OGsT$RIs@A{Y5|YwhR={%OS9IDNlvtvpeaA( zQ&TfB5({1IVBjG3hNVCP*%qX+CGRuSHs)r3PS$q_!(d)eA)WN8yFu>D;{!kc{pROlqvrcE{7`U|$CvXegmxNgE|2P&${E@xOalG0?ljif zH%}MZJa{Gc2MajlG3A1#DS|q7Xv6zqN($8H&z@33A`}T#NeKz*k0D?MnU^d6 z(iJEt-zT5v_wT%aIq1E)7Dg|mn&WVzI3YEJS3(}40SekS#-QORj7Ji<>%2o_T%|px zh&rDINbchTf76U0O}+d-RmXOYO0)t$u#D;RScWakG(0SB`Ionby!ZIHX$GQ7k*X58 znBs!VS3=2LEB^>mICnz|RA??p@pI>&oO#tGmlS(JFeNJuFlu4mLo#J$h|L`I*b3hj z#}t;1iFVbJ3ockEBiD$of&{Q{^proHi@B|muB}BmOID09oOw;}I;N1xSo0oF8JDbz z@P&9yYfrzZ{H+N*09S<)G$lXfC)RF?uDpH;9z?sRV~1W2Qbz~t%qA%aa-A`yfe7Bh z0K=qY$>W+PI628dogLA2o$%5@t0G|vB|%W_JO*K+=!#~-zGzXmW-wr!v83?6%DE)6 za{9;2tYG;tp^2!Wi-GImiDBK+#xr_BdUx%ti!0V$mK7kerv#}Q-|}meG?S`aNa-~S z30GDjZOAGOCxSdQnjDVzYA8I>EX#H;@Cu6%NVO+)&4jVL|4Q>ECRbjeCg568Xf!jV zcmv*OE_D9NqM*FB?{qk0a$ooco$b^TZ4(7Zs*<+8QHXI!mb}Zd@z)a2sys+nC;QQ{ zehk=L?y8(D1VWm$g4Uw520D*iuaDZzN!5krzo5)-aYws{ycg>?<4jY{q5wG}H5a#{ zpBzsJ3^dQSC_vhq2=O`(yCv5so3)Q4=w6OU-88oh9KMR^Xwr8ZoUtwlk$+`fb?3f? zJ6cfV1%=+#YduiXS=3f(_fnaO@m;3r7k!!S{BcSUjc+lDP<@=VIawU5A&wgp<8Qjv5C7-TSn1vPrC9%@uXK$;VbIfc0X{UZ2S`W_n!isTH8 zm%N)O(4;8=TMA&Ls>l4~Q!p;);mY5Dx@qStzOXu9@# zRE(|(^wr1KIcWN?jVHJ^sxoP7Bs4~^IF zswWJ+MBCwsrg+O_EA@ruyWe`5&>hpqEhy<^^1-Wvo*e1CtX^vf+5QaElVPonKq=y8 zG(f(%b23W6^nFBqMqy$}UjV|26N#o|jh)963axu5xuGFBU;?L47{JZ^lZJX#fXue`!qe=Lbboa@7S7Me?^3~C zKgIfp$!y1@A}j+9)&7nM!k-f55hJUB-~dwGd6HR!o$i9B3h2unMgZ%g!8yo@eYnk3Q8 z#%jI=TGkCUjx!JZV?m(SvjO=X{}hm)KmG9OYt@aM>-UCGGU~IA{1Lj5sbS|G=jl@Z zhMB2D!0E#teyi7EZx=$guC3*Vwe|WcN95}v_qrWFeF~JW*TH=NUR1MZZ*Sy`dmC3T zzu~BbLAhda<7xIvmBv1hJUqxX4H{SZ5K`4}HXFpYg=F)0m=h9WacUg0xW|bpEu%6KjNcVO}(54NCY^(kR_ zlmiYbNNUO_btp})y~HjF{YY2vfa?7IvApXRdcD(~tvo)MErebFyMWMgr!&9c=0p)a z-4I}wz=f?Bfs=+ef1NW(8Rw5h+k1)Ya>5c->nYfqhJE^WjryIL+0VJ6Vjy z_O_dv#vg}ls#e_cSRLCuMG!AqyTx13pf{HpmIHbXAwIFM;ESN8!KA->7M?hET)bLs z9sM8Rl0j4`4ia;Zf8#NHoh@G{lRRNM3Vmo-7?-UQC8w3O?jJKg<4Uso5-e4x-TF1U z*JijWa`|I;RjP()y(07BqZZ)=V3}@e>efaA9$&SCRvK;?Dz&d~dUCcQP{(OW8DSB# zCRiCRQJmTN+Orp%1^b(8VC^(%p_+sk{SUCoop9CL@@~T=uK=(Y!|j1l8t@7#^z*aN zrg9}#gMKK~e*DAVvvDT|v?hhs@k(R1&e)+3Z+~l@s-4K}FHQIs%#$X1`^M3SwG~4b zCG%t0u6WUVo4=FD_B%tQT$~9M@cUL7hXy9uNUA_VO=h;sYrE%x&BRAVSljwcmofw?g&pdEH-}q3Z^Gx z;DCiStvPxvb$rwRmG2Uz$4@GR0`i@|pBwS`46UWUt3aU9@54cNIc~T6Fmuq0@fV6W z)%JHomIJqb8St?I>_0>vz(yYkJ-ZsH{NuVV$CY3HkMgoip~k2H#Bz#Ih{GP=-3c5^ zYbx7fQQYaJZMAwrKY;~|=5^Gqkwyi-9v3&UGnBn#HQ#5vf!`0V`Lk|1IC9z3 zLQP=n`=!{I!7b-3Ji-?V;dicjKKC!asZJ_+YrXjn?33 zaB3nb!p&UV+%%7FC^!Ys8*yuinDzL9_tCp{^U)OjO}@msv~!@CtLLmaC1knD zblt&$n}5vSrq-wWA4Yfn{o6Yqzs9t(YlZh>dj>_!^8N#OaaL?=%TId`t1b&iaXyG2 z;nA#YL)VXP5-Xv}g2v!lHpfTN4-$t|`~`3?l?6>nRMMZPa}td5Z~hfxFLZXEb@a)d zPNKqX?5KZc9MrOvBsp@Pxta(q9JOE7t*V_M0gFsy@%>5tj@O zB!tC5L;h>~_2x|ZG9pMNf#s$TugmT(A80~-04NU>Wmgevt8Rb2Cv+6*(CjilR-|D^ ze>d73+xubOUz{^f1y4DV9Ui7VySe=B=$`FNmtU2BcI@T@vBR&nt2vjhME_K)Qsy=( zGEH$lV`qH!Cx5~EJjzR&uCJqX_g~$Q&>wLR8OAy{(URLJ)x&Tv!g@+RvMf{ zuU9f7MV^2z7B*a#o3S{~^u?Hs4;Qgruf% z{}vr!+uhtXA!0-2PFJ})J7b#>ptgqMOujbO_(5pyium`{?p{x#O zCZC}$Njc)m;cALl^TFJnPZ9Q+z}4N^+oCfYos3dF6FjvqO0!0PewojCLHA5>OWn|< z2HXZAMw1vM?bJv9oSi=ox&DIkwh(!G@k)6RznSPGx%F#nZ&aR+t?QB%roP|E`)mOg z4f^;XsfZ`JbVNoa;i3Q1LpOtm8gejgt2{ODm)s=}^p9prh8B>@;a15am1PsfT+iDo zX3Auf*2pK4Dn_8UWgE+DDxMe9I-fgtiXHDgpEW!U*}C;~DogdvM}-=X4*KqhO}H?j z{EEr))DxSPr)G0SCZO+{TI?M)6GOoQYG@Gl=Gm!T`&ZY|=bNNr%PD7Xx01^&75*AF zRxJPw?YCCd8UwCFULV19;G#wQd{(nsL5W4=DzdoO-P4xOc26On<~Uz2{~dEpcaXpN zs^voQ-p>Vzuh87p?rR|(?=5;PQC#qi*$LcRDgZ-bf9ScD{`HxwOt076`@*&72Yxc< z8{Z6^KGca0!YwRGilbp*}-4u5=PWFhMRQ>@G4_H|7BS-6*;#2bq~^Y5@l*yC&1Bp4 z-pjre_`I(X>4$LgZ>prlIP6_KIEeOHbuq&HhY%-Zhwi7A&0kx-c>g4iKiyr?o;h zL-v{meH_vlZ8iX-&oAw#xL+I|d?GojG`P4-zsF5Ii(Ap>5J~qI5x@7(gsrz%&Xaod zh&ywC8N%CB4xENfX=@91m=1-)>$~l6eYkj(j5YU1(U!0$3rcq7<-gsMBsIThuDsdz zt-ubCQXG`6{sY`JUc@%}17F=~TTmz2H519!DBebsEpPA8Rd>gM7>dVr$aE+ww~t(7 zR`%@Xqr&6o;I-v6b4`r&8I77-w;lT-ytTZx{{ajtFIHoW+Df(5btKk@ON- z7qFcY3j#zAFP{Do7#YY|*GbXfC-HZssaPRPdlzTS>@si7Z-hi!d`AiyaOv?!h0MP$ zi=%yPCoc1)Fe`o8S9ijC&b2oxS})#m_>-?h2}N025pnb)BJ>Pd*l{p4A3{$Ehhig> zt;W<;C@47iNQVc?IsR%5WO8_HR#tIo|F61qd}zNuQk6xpb+5(k z4m_X|H=~AeG0o^dw6-2hk+Cf=(6a)vQsk=!BtA9CrGt@_$0l%|T}A)y+Uf$c8%%KQ zXks~Lc-^&5Q=w&d@w% z>5oyihSxcbSk_$*2Xfi*O;OHq+fc1i6Liwvy{r|lcxyhBObUKjb zmgp3@D#13iyj7{Y3zrtoV%7Q_zuM#EGr!!3wL=^I0uV_qYA`1=H8xcr&a0LFr%t5~ zVeunTD_9(vX##1n*6_3HLMssfY*{ow-&)BP?ba)%ovIdqGDFf!p{rRNB={(J?IUgu zz_5%CMaEWp{1NgR=HZ^vgfah5w&rh?tD;H@GG^6?5I!G z$)Ah6ONM=IDdb0bgdJu##$TTh=#hpJex8x9&jv;om2Ndj=sS3Q6MESgY<_w2@_zuo zQ=i&za_m0y-V6|8oUi+SI2BQIF#XpljqRRC?a#08W8OSGt;Pl4ETWo|N#tT>va!9N z9sAkfKsI!MAZ~`ATxk!8X3F+pE&wodHbk32K;gA+i3#ll<|uG;S-h3^gCZYWg8?=w zO8WWz`Q2|u8Sf>bSD(E9iM?U?dSh;mKC7Wb_f%!Tes}FuoXF_5w$A`Gl>pBYi96$B zoO+NyXXmr8y2RpK`Cw09&m4FII9~YQt1ea{Z?;VY7|MPPg+1YVzo3+tCk;&rHRFIP zoDAl2w|>$Ma-j-J1pfXHpm5hP1&$C@+T^%fT`kbQ_xe3KdPW*LInp_tEA?-oT`L^# zI*zZr!oAY8DiDD9yddz-*Pq__?3UA)0jmXZPO2s29ro^{7d^~Tn`P_`>xA2{-OGa7 zkEr9Uv7jQ)iwn_st|NP~;TV5c$B!m9tlCc^ek@5~A_8{WPZc)Akn`Qno~?Np=RH?r ztXq6?X*+jtVh%eX9^j-Y2&7RwVptGKhOASkN_xp}PF;HSvf^7+t%?^Sl6WA=?)y1Q zLgRc4(Trv9+6%>YAK&g0mKU!mDKjN3O)Y4*i{dM22>UQj5|1$I`n**u z%J(Qg-56uu&W`4?mnQx)>+T9*)3|z@npT{EHlH!tV{(w33S+iwDEDB$g3g5BdOhXz z{digrPvBJ1tod1Qv@OtfnxV1&fJ8?$jtdm9mG%BkukX@H&R`~PSQ3n7lK}mnw00O> znbw*ET3%2g;l^)({AZ$XubvT77jCxjE8u;Ak8xROZ*(K~4Ddgt*l^cQrSej>{P>ru zbI>LLztD?(gJn;?esz(~R%?2bYYh9_RotDMM3LqX?gh_I488=wJ2yoWtE`^bcg@GA*Sgw6 zWAgmNjwMPKpsmT(mvZ8MCi(S5B9QvBKPMBb^I3BWQ*X#R`6(iG-!#h&nyEGpByc#Z z)fHy+`yhx^9HoPLN-^9Z1gNP#ssKfnEn1;eDR}3@H5Kvz?lnzS9r759KV{S(L6(4GObIYNVHu+gF zh*^UNf$acU#V9P^MXk>HEmrQ-^ zJ8F!iq#7gQ!*PdjLA%9zJ22uQN80BmsTf8}+W+$)j*jR-Hh?4%4$b%aU)?DdYNO2=- zI*^P}j-Gs{`;Wk&f2x<_78HU%9pB6Bm<{wo?C!p~5|Q!Qp!{<~54rTKL?EBUqWh1d}JJ33tovY9A*Nsue!N*3ln!UeXuY z{LCG&+B`#v3T%N=+K~)npquqjR90!ZpRQAUp}GVFh8Fgbt9zg51+az%Uzm{Vcq+Hj zsq!Cy)VXZ4u;c=OaaZsQ4|05aR1;mt_;xI>lx)R4PLhWvx9~tXeOT}~0_`!u^ga5r zT*lg)&toe$2N!D@J`!sUJEhco?#L81Fj6s0- z+u+{GR88UlaMt2LPeQ@Ac>~=}VD|M;MrbEB{BYetS5ckdcg&!t_I!o3lU$M3Z7?rC z8KX7|;GE*IGdCuP-`?R^|MD}BQqR*u?-Mcs2_`0{AgwKFC(G7n4eRd;*T+Pe4dn=pdlvlWd^iY>F%n8A(BQNk}BUGM|+g_FF}gwpz=t~5N+Ee#9lB~i1o z(yWr|v%`A$&T>^!)5kQ_=h{Zy$neMJ!zOsFZoZbL{rHGX5${Ps|BuCU3LI&DR{d*g zZ|=y_@jDNp)Ic)x4>UrzOd4Tjd*uTdm*J!VLg{)pp`$qj^3I;t;7-suP|sK9#!Veo zS@{b2;UcyHYDIn(7*ji7hKZVXSSRIl@kq!oj6TYZ{k=zs=b3@fXv*Kh!)4YU0az%Z zA82<+>!1nk-e7X+&xL5=#CIr=B8!HGB8rkk4IbC;KL?)}%_t?BGha6Rt8|Rdgf1CR z1EJKz8!=!LFm(k26=gX;ykcbs^CdNp3L~0N41ZHPb3#g zGB_c;L#4NNO!a}heqq>GI*Vwu32vOzbo_BM)e+Q!?;^{4=yYGnAd(!RPsGm=R%veFl& z;sDSjAuP8RfWu1FGJOh~pJ&pi0$^`RA0|#t3fU=0OcZgtVn?mz7JO~4hxSM`f(eVh zO1aIn?II8_nD1dJgSXT-9E(-C9Ma!h+gF9A2$cfpN%CpZkcM8;FSiOT7)OGQBwhIQ z^HfRNfJ_Jm0Y;%=9yohP*P>)NlhR=ft9;EnQ0?vCc>c{ci;}SqO?c|gTj5Besd3Kb zXr(LNCr|ilLv3gR&uBsV+U{b}pzlnM*x zqb8{7_nuDmu@Scu80fwjWXc#q3@|~$swjMqF;aLOc6ikE1Di{YTa=kgh7)7}$=rzX z)ND{P-Xl#@Eq{GB0B7Fycv{(Y{_NADSuRN1J%9`=lCfGfM}Q=nofp+{kNn=Cz%NAg z_aVV)KZ8cO#v_{C9ye5_p^?}d?&PE$s)Bs1Ui3(Iu@j&{&C$aXu}+_Nz}nvFJ=t_?@zcN6Zd!eBZV=W9a9V#a5`xT%iwa)aXAzrk2OC zw(1!*j90Hyg$0fD<$_ai=e_CY?{4yWo(1XocELOC;3{r9~KUub5I_m^ZjNP_{_(svB9oL#N%UJye2O>1wbHe?ux?Ebd`F`y6uzmWC zkRDy0o_;BvT%M<-7Rvk4xV8duzU;?Up8LwV6Lui^^zq=_JX1h0GP5wCbwyn;|D+#L z5x2w%zM*c$ff&b;rMA99XXGow9hK#bqBYx9$r)KMJhy`vRJ!*Mo@<9UOYN>r39Fta2p1@kR!iVqsvTKcyZ%Y*!koSg z46t0!L}_m2`DL4mbO$`4s!`FzRH#5x<{CQiW0k1=n3AZYI1$OY4LX-5_U|yVQMrwb z(edz$>_Z!`R8@OZseoJxbD~>q-*t0Kd_`UiLZU*USGa|FEw8dSZRSvt;Z^LlC@vP; zVD9-;)l+Hw2KVLD)A>wvA0Oif6P<3J+UmI+#b0JO%8OyGmFzG9?A1-!U2cJS(G{Hw z*XzOya<4taTa?@tkG$tMNw*3` zK*0X)^7^Ak+AT9`PY;uOMLJSpUtdHdj9Bsj?fZ8jr>YYNo}Ea=!MNC;%bt1WxxDgP z%|OsZmtdKZ(4A5IjmE^(m=yHFr-|XNUE*qb=3}mqCrtt2x7f973SIiQP2hd`iwQq& z#rJ3#H~~~wlKOP=rZ;{%Rr}CrG}K=>2mOrCI=RuPh{(2^Y~IN_{X6bwoFZF0je#zz zG;WUrh^g+{wkWM{(V#TAfd7?-i$5jbi0{Gj#-D|2Pjhm-sxB+l2lGry{RXWX+@6m~ zm|1OxcS<`yI5z8x(HXhLhzK4=yHFG0O2MIR% zuGkcRCC&sbTmFo*@u#HipXZWG@kn|1L92_zk45Km#$`;C2+dtf(u+5$mb3&bT*Mk% ze$|Npe>hA@o@^SgbiNAKR~U*mlo1TzJL0Pxy&oZh4Ij*OFcqKCcnmO0=I4ZlzjC;` z@$vgcbbw_4$pb-ow*lxD-n9225cU!T7P~6J{luO7L_wHO%EU?1QdK=34xC)g+$Ey@%`I0q^bCXT+1oC0m2cvu(Ah>9g%VH4|TjN;xp)Mx6$9Cn@LZ7Qj9| zUmoOl>1O2#1S8ZfVDbEZn2P(Rj2~MAh?z*$H4#H60k;Pe>(5>7l$Y{E<7OTM-_4SV zA;J0&6jS#kDF?cdpzHcEJ-4`yzO)v7ecoDQw{-8B_b}%uPx(W@?Uii6)wtqu%U(&(b#H8&l$L2?cPx-`)PM)>vvA#9_De zn%U6mzUp3T3u6y0|0S?xSnrtoD!<>Y;F|mMrNc}KbpJr|n->OJF`t_QYlkN6(2eKc zTjkt$GruKRa0VF_QKNrPVat}hunRgJdiQ?}od;WzZ5W1e3vS$IiUta z2;<{ImA#}Bw%&gKc~w@{!|~Nf;`15TAc0G9oDZJ9Jo~=)W?gV8-V~$uu88fKqQNoq zpxWEfJR#_Xd-di~I!3g)xg>1DEu!j1!?|`HVN>p{%oqoOm!AUUqC}FzP75{tm^@4@ zI0$Y7N}1d^U1<}jb~F-MeG+iy<%5RqEwOs9ZYaf~aQ|8W_M3a5fi~Wu6mRy$jJWka z@z-P9EajgYSbPm-%;^RiwE_U%_*ing%WK>PChQ@(DTV*FAfEm8j6gtdy$|X!2Zhgp zFw1{!yg@emWnruEm69K@H&yTF%WvILHsQV(T>mK+Tb)`4)vu)!@+lQ;Z9v?LB ziU&A63rm3{M2YRPJu7RDjROum5wuFL4SfM_2u<&4lPN$AZF9qRbzQ<}Bc!o9w@UT#3ocCABY8Fe23tM3A9H8y!W{~+Ba{5C|sEVgm zl{YtoK;9bo#gNBc{V2zE=B@@7Hd2tw@-Z5?JU#8zSNn8o?{V_zP1#{Pbd)4lp71I$C`7WawaON~KKLava=1Zi!|X%n6wZX(M-HE9PMJ3x`YJtClC|{rPkHJHMSOv7F_7ysT7~h=eCl(CZ7lB@K~?2!lYF?KtmLgI&;E$#q!f8t-OLOJ=&z zLY(~-X9ZEukb0gPp`PqAlgqB2+3A#adsByY65JUgF)ID13Mp`{JU28`uv2yf+e3L2 z29@wq+Yn&Wh033~AN40a#}wgXH(M(sVk&UwW~tJwYd~O8>hQ*4vuInRa@LE0%c3&3 z4W5t0dxC)=ZovFaIg0AQ;f@Ap;oB1*(WIGcxlv=G)i`cnpX%$}cACv#KC+E7J4a%y z(U@~ylVd(q)XOG#V#fFP03(`n^wM`d4Ku#}p$s(X> zi@93j7T>Q#=ToJ3U);PJ)yNUs-lt&+0R||cs2oHmIz4_Ib4y2fh2xsy$iLG9a78bg z8j(9DK6~wnYAs;H7s~eH{MAtBBj*TVWw^Br-N@NBt92li?liuhL9lMrGe1FQMBFK{ z6!f|P`kc}7(6W6lu*CCuEFIOOzfTf<7BjCJmAW(%Sa7{r>QFN2T&yx6g~p} z_7`i(nx(0D60#tSz_u$M+13q9@nCL3)h2-K{tI3Zvxo`wIVIdQ3&_5}X~d`3bLVvI ze1oW7pjWHb3!Us)R<-9;WonPaV^Plh6XJ5bHwyrh1KPs0j~U_ij+smbGL4hl^S3hq zPGO-$1o8k(*9#KN5tH8udOQd(-ZEf_)X@X&AihNW<%Z>nj@aCgZKZnPOm+G1uxZ1X zYtHgr5wooqRa~fzFMAt>_oi%2tD(Tk-kR*dbqNR%li2Tt;G) z*Ayx@WS~p#q^-wzoN>cZ@<=es+3vtWr8Qs4y898yQ|$vhtlL$HuWd2cFRH`h8)1k8 zOA#>C-h7kV5emN%=vZT{lwEMYn!ZpJm-37`(6HB60wUC;D$k`(9f z^a0jrf%^*2-pZs>9!1H1X9SKK>xxAk{OV#L($PC9)m@qgv+`!!f{-GPqbD5OT}H)? zpRgCdNoThFPO#}{Nq#Z~F_?PK_!q#X46iI=s-HNiyP$>Tq?{aj;l$EoqHQ;!2VsLB zWBx=^C@R0&Zj2fyW!YC%Zb7>b*vK0m7hE|ivg|_Nac~ur&-sjJCtQT3aUh;Pu&MSu zxQp8||N1S?1ij1tpldJ{h1u?a0Q~&p%?2~QPF)LxV`c5)kM^GI**(!~{}(5h^$9P) zrAOkmdNL_se9{wKD$dbu4$PkW`6#IzY4h*Sb7qpl*WtSG{Y?)n!g9N+zH6we1%o2= zzAcGbJh*`-x_1fb7pTr!-7wNKy0#6@Qsb6+9jrS3Bnda)X?y$OE*)da%~%vU`tkm; zii-IYGDq{fvE-Yt5 zaFk!IWa;bhKVhUj3K)s2U0j}3uB;M~aS0i;>@wmrX9_#drWXigzF@2Nr&#*<*}eWa z`mJ@E#AHv+X?$98+u+HY&(*!b^T6CJ1#GI7-UEtyXM-dlSM*VLg9@&;gT%SxXkauKioyna7Pcp|sq%GR^PxWvN;>1~21=`7S%5V1vI`CR$zwkr{j z0*q6)rhln7^3Qt2_7^4~`V#OHVS;sSw?t2V7x`zfD(WDIr4%OFppp4Yk7eoSyM*oI zsZ>U=qXQU}sxW#jC-y6@qLN z$-Ax^P-8sD5v|yQp~ z%Ngxr&KN`aj1TjU)5W1+RsZ9Qe_(I;QHSwse`4{PO;}*xYQ+eOW&tVh{EG!whX-j| zQ(%-NdfhA^^Y$fX$l>{O4O@~YP!dlulhMcD(#{*(z~)6yiLE=JO2DJyD{QZ z`p5-kSeOO682lfAJCgkZu=jLEsI>WdqxPf&4chYfO&-iV*BOI#yV%B+EVB5WKUB8 zfpDmbUucIx6mV2rx-c%#@j;Q{WviS*9bz(FtZEBdjZ|ims(1^iHKkiDs`cRR1Iac0 zh0q()kVhV@FeXJQN=p3r{hv6FgdKUlzQgNc8SH0y&$@b3?6RRb7a7>K#n`*hEmOP? z`EjLUleP{!#i^UpM5b_1xA1Po`h)&$_3$-W1&`8H^o2pq5If6m-6C$~ zqu{R!*?2{yR+~Z+{6DUQT>MumkY#vpHRxGw)nUC+sZBpcQ*`O3iZpu^du`i$@TlJi ztti~DV?cWLk&ibj0f-{-*fcR+MB11<+S_g z;KUNubeq;yPa`6Ha_FO&C_CN2w1c*|)5CcpXA$?G-`K899ymohKa_S~o*4U&=9PO^ zoF$THGmL>UVBskqGzbF*cbx>o;<2~dJ$!A%T}n5iQ$Igxve!fBYgo@h>#)VGT-Nw$ zYKhCwU1yoTef-`dHXxvG$At;BU%e+;F= zaFc&}t39VI$MwAk4yx~mO%N5)glA>Wgd-sYn65S!P8h*{3ThdGhI)yl!e$JFN}&xx}O)w1=RXt0VqACz$tQUOIng#H8j? zI7iH>C5>X8e1qIF9_)eI(p8u|CwB1yPb_i33;&R&fUrtj1ArnQ%Li;<*@f)|Ve=;~RFMB>Z;3 zvxSXzDi~vw2(!fengX&Cv|6{y)~{w51Gu*e9Og^YFA=&SB5A0(*Sz`Y_gqM)#y2U< zE6(%6NaptQ-E8*@q5t5?q)HIgFNa=-A7*XJ5s{q33i#0tx@xDhDj&FK*n!JGZc9v1 zR_m4ICD!WrTmel-E5LIfp<>p?$zB%BBebp)+64Nb`a_i6fm)4J@&bQ?gV-Hv$V zHg=oJ()SB-%BNZm$3Gv;*y)zt`O~b6AynA3G50rg^@r8*d$-Aj_V!A-Kqs;CE8}yK6_+xA)QJs z>k;#3tSvS5uFg|Eq2oIC>PT8anRR}?Ad2Cx60g(}T$cHB=bKZ!R(1tB@(XaUKB#R` zYy5_SD_|4a3aJ0i>)}T@?{JhCjDM01rvFkvaFSb+!MB)Ilw1QOjyD1ha!m4TJWPUF zFsi6EUg<<920R{wQW}N%nESHLtwJC0M*lj|zjaljdOyb}IW^~{LlZ__T?Y?N76$W= ze`$m&wqG^4Kd2yZx|bqe#G%Pycp*x+w3<`J(+60tO~sRuA*Y%~u)?x>sX}~r_!^W+ zOmK!k8g0Qf=BZ)OrV1-Hv0s+w?8oLg>LFC@c(K&JsUr+{?t{X>q+}Qdk9srd+|-RFlhNAx zo##E7t)zTmnuvCoZ?&qb{BcaLFoSax3-2X_zYrc$a0Q*Z(p6KdArh)DjbE{p>$~7K z7#~^<_Q~f$B7isywnG6kd=d#up3s>bCkn&l7z3s!) z%pD)dV>U~!Z@e{mmNn*Iw1r6*e%2u{S8hnzAq2IP$arL^69$m1Q!J3cT;CO4cqp#v zxk1f>gGothi2Q)d04zK1RT!$@m7~5_djF($XgCrTcd!*b{Tx2xgHXXMvD^aG29@|Q zQ=!#?mDZoT=Ndmq)sM@ItOUc<9u*fg8-ia%%2=K_sWt+Br48dM3s)+AJ}GG`f$BBo zQPm2Qt^r+&@AbqnxWue=T*(_;Q@k!hztd58CrUV^sfyF{@VaXHDX!zP)P4nc9;KAV zD#qf-rg*H+Xr7WU-bwg_wu=FmK&MVxD8G}KiYtwDMD)Sp#qu*obI`1f3u};-B#=$P z5h84`@L;a*X7(eeZLyA$%%tnxjk=E;`zDp?*Nc9UNpBiiN6}ku4BX|WLnA) zF4r*Mv?@}^hM~-8B{F8Y2#*RtVS80KMSP`#Lo{=6s3etUgs}}CjpuJ2Vk%t^polSi zkp^~I2tJJ7%`CHqELHJ)lmsn)kaaIeLag*78^*pG5rUn(4eJdDjF^K@p-Rer{nm90 za|=5x*UKfM*1ex7zGF!3#Nqp-<~4nDH-B%= z$eu-t;mZTZqwM}e{Ek(=Iuhe!ki%A!IA_ZY!d^cuwSDM4Vno3?P@mPPAAWdQMV1m9RVB9SY>bSttAWfV=5FWnre={l<`$ zT-&b)h4L9qzwIENFNc#K4B8l*J=i&aMd0IG`_~@Od&0}vFGF3bb1)$;=9`@!5x}c7 z#f_P})=8Vz3?=tl>feqW7*&f55>DWPn*SGB(R$|3OOgoqcybv+zOD0WIPF=`;>RBh zZe_MKGIu}_n~G8?`#fi3=!C7Q!$BOZ!lKvS8{&~BZPw+-x~&QfNe~a%fHH;a^EHkL zXp;2Oyv03c{3o>y1Iap$_jjNg1Q3qw`e0F*jga`3`I(`oIXeqK%s|8>V5V&QaHD22 zm!@S=5>)alP+r&;#1H)f+6dLJ4v`ZK)vB;{0c6jPk101!I(u|eTcq*}t=`WCz&!C; zTCC?>+X~286)5&d7CvcLTa{rxT!<^-oz6_(4Mo)(@KPKr;aTjvlTG02a; zqgHV27ijJ6sr{qiqChO(VNi>0V8ylVgzKWjz4|tJpe^scAN%%~T>{#Kd5{zr_SnQ< z7j(|pngf!#uMNR!kV?<$gf7dlawTqDGAJeR?dlf}{LhUkY=@OWF0~A+5f?@h4?*Q| zG@n@1J)>M5LxO!7Nc?N)PH8?=w8p3?H)F7I;d$` z8o(h_bZ|F%xyW_SmkT*`eM7^n#2MkrYrZ86CQ$l#y)uq2PPN1^gt*qtNty^Cl z0tu2MV#8m;m+#^hhdMRE0FEmy%Kk3|Gj%ej|E7-W9-(9n7cp05EdIoBps|hv@ z37}bAL=CP7$o@{V%2f=IX0zF&7p@nCbBsOoWmj*My>Kck_Y#(L=Suhf%fIU;_XoMy zJBDG%bTKfUP8`psP5;Tvd63m2l70BA;IG%3pd7tRsNZRfX#p3uClrg{W-l92P6K zXt=zR;MKs}xIPKlkT`Ma+SSX!TjTsf`+>usk8bM}mwfJad>8F5Yh9f*RH9aAZoqdl zM^8{C8$V&@R$$l#EJ;|mBxrr2rE@93Kv*SBwRI*?z^`lC*lhI=n&Dw!8KK;Z$6n0W z5YuJy+6s-*U!aUkCU1UJdA#O-yX5m7&IS9g z3x^Z@?ecqtY;Zo)(Z?!CAVj+mAg%V*)+zHu@>pY0kRdC*6^o8gKjHQ@O4`_&LNtGPS>O7|X%3Q$+G3V_$@) z_I7^0a9Vf;X>y@H$oRD2yR_%s$P{kftnbr^{PReuBM8S@;QiyN{=)Azg&BM&C`8e64|%>PmX02sa(-} zx*{~}QHTHHGHX;&bQE2vjogwCKDht$t7`*krMEerFI5on7aXB0z%ak+sOVi?zmpiq={*h;_?5G?#bwhhEjA^#L{m4^?Gi6LKu{o3w8YTc7bu5)N;jY)U2!q@$q1K*=}Md?~y}} zdlJh#V(c^FbRbgS>*YvO=n1_}2nyXC`YJmxi;TV3{N4NZ=h9HQJ-s}l?(aJ`ZmU$* zTFRUHn>QZb0QP$*kE3SE4&S(jfXDWa2=~VI>fbw$UY&w4Osj{=^_-92WuIN>O5QyyoAyU7pliA< zy6^-{9uS_{dG)GmzOy4n%@P*@8%rHi(B7m{(2x@*uaAFlXT>p}YzVjHibri?zYrcz z;R2;{5IljctzB7}E6zMOkLAkWQx{G=eV3*ne5*=md;XzAGMrIpFjX*C_2a`hxzHV$ zW$ZkR&NEdR<}eDd`IGVHvuMahsiSG;?Fpmypbi@>wy-q4F*f|e<1?*S20z6k5&Rqn zi83(((@zeI`AArC3Lzci^@WdzGc~ARep?wcN~%(TkiTMI{+h{|np3hx`6Sg*d(z&F z7KNCBpTsk$Q|e;5=#?fqC7BFsSyUi}yN9Z8pT<>h$anW*sCzI8!rO_lW1 z8|RMS?VWl<@zEF>?n6#|?&{1^kgd+lkngIksOk!_Md}s~UH#y>wPUN*70@)&I zo4GsFt!!VtG=e8&)cmeL`D2U2ZmNfClM8>|fde=V3^m(ChFO5~q3Ub8lkdKNm3!nD z+0vTw=-ZdAaRlxvU#C0~-R3e9>8z}E_~YE<-Bb6}H_x6!r=G6ATRz;HHbApg8KSA` zabPn}M$Ig%Ss(cl7!*@S*VoP^c%IJ2!k%?95#PcQp7-W8$ml_jgcOOywBkmynHouP z1QxYc?`PiCqhy`DEI0qLI2(6b`|@PRu+O!p^#S3H&NrsewU8Qatd@()JxfF6YWl zLYuV5fr}ip4)A%pty5(+g1-JJm#^wQ$E*3w8v!9l)8zUu6sBbC%NV_-_-EAfH>7i_ z4K{5sI8JIoy1{;}T|;%Id8bx9K#0RqXsQu z&JjDsa4lXz??S;-9nGCc_~VKMn8hhXSSd$Zdi%be0lpH3_rpRp@P9>N*+Gyh9_8@j7OG(hc<*Mk1PpW0sYoAir$&5l3P zJ~8Vo`T#*=_v2(N3D#?-8k;qI3vMy)htX}>nj%p`cTCUhb=9U#IvYkLDMS{r&H4xM znf~@GTl}ItT^YsrxcVyW_@>Qr-LEv%VkF;)fxYhB4z^|9hhwvH8UsT(&0w%<*kD_ z=Q|*-H>TjxwT|QPwu8hxz4sIEsv6jxahD0V@^Bnc=d>D1jH#&?&OM1c{iPc%t{WGb z@Y3ON}okrA+Wab6(DrJ3g~T z=|Jv3fOGgv>E6PRRwe0kMnY!m_Yu2cz7J9MSW*N|eb#plQu>bZX&`u+2zhZ3q zpO+|B`qV|>*LkAliWcWT0d>R~@uROtkBzC%@XH-#Ey@1qA6rYY%p{^)^~7!io%^fU zz!0r|y?H?thl3Z>18>nzrj{o&Bw~v?-8WZPasat6Iov;t^x~ybs_(cS{asx-Zr*#c z{rKYOz?M_ZDIAZz);WjZ(eu{4cYi>(UShbvanHuu56cUhmIoWNZS!Iy&X#dp@6t`B zUQN;AsXUT*tzlj>rZk{povk!zZm_LME!T3 z4GKajGPr>KWyRde#*=rS7eugA#bM9?9C~5#785xoLmxyam5c|ff+gdfxE;64*iO31 zIsG>sbzG<89^7Tp0cUkPi@5(R2=7;$W0+sJ@^iMOG_I@EYJ^2m1!rBuRs-j+z2iu zZb>!^(6kZFC(WnZh9@qKq}_Yabn@nYcWu%bo8ov7_V2M?b%(Y2B;f9S)3vc%|B&fw z`-@7}v@t>&7Kg|;j~6XyH+xv1^KrLzWl>0?QlFG}+kB2QOM%x}o1})XPRCexkFB9k z=>bJ(3wuP&*TsP)?}3e$gVmiIYr+6R$7BD$oZqEv1+D*}h|pKAqvLRz-ZL+M6)T)U zX2Y9*J)`}cV}pjg!?&L6h~zylE*8Cj9t}oEKmGCnn4N_69iyouu&8{002hxH%$^PD z`LGx017*)fFaLY$NMKlPo4Gn+mO*jqwAD~@K+9B*i^m^5Lul1}qRy?PZok~|XEfq#ls>@WR zt!i9Ku_R-d3uaxX@wB!*gO!^rePG(hZa4l#aV3RR`+845N}`^IV6mBa48a#RwGKq#3sQFtA9Y@o z>s!|f$fbb__qn}k)jHJbWDP17F9B4bDpjSZ44*U~5G06aAXO0v1qd8YA)B!mZUeD< zuUR{EfHk$9+a`SQ5Bj94hj}7eI&2CSrkqp;g4Yy#8w71op%qs7Sff{8%VvjIA^HX% zOgXyko?RsK`De+j+x$}SdcGi-pTq?4Go&dS41jfCwN*ij0xbBExF(H@AuZ7a%8?NC z7M1b2dX8jiDPZXyvGgkd?u8W-$x4^h#)>1{zj4-yV!`&5sS*0FxfL0vAeO_SHVQWY zY0m|qokQ5u@kt*p{pNP^&sEJF&q>MECJ=o#P*~bBt1Seu0;8dg;rS5Xmj-P)l2UgD z$hh6CwdAOs)57au?cMF_SpLu9nd?$t0NR;KUQX>p1UYsYNZadfIo}8HSs!sAORv<7Jpk(Y8}KJQVLMPoA(RJbYrO? zUs+})1P6_y!w`RmxP042-6iwkha?UN9D~59xS&j>YqIsllk@MHZGnKWxehrWwvJWG zb1%T85YOcj(!VoYgEYw68#;9ECn7-X7ox#okP;tFb(KKf`*{UonYojEmY0#bVm;bMx42j$S~ z(+#AN@vMbuEmK`j_p=h9@PKpVw?mte?O7@wqgVKfjBFX%L_A!n<6!T`)Z%IYkKD|sowT#&_%S^+?nynCNf zs9XJ700_B4#rpEkLTSD}FAOltkT9cPMTc5rwq|qp z;IJfo!bAKf457k{%6JxiiS{5#Z2H_6?$1a*VE)Y4$3F}9Zz#T_jq_~^_gH8POZh#z znTgO5k1wd^qbfm05O&T+EZ`l6AeQye7}v`2P<573D~&m9^~EQsI(dkd05L+phag){ zp6mEm-zLS%%tS-=^BMAA2o(S^QzswJ`f|9QG||8GOBX1yszwz`tqE|L=8LCSXT(=x zQB)~LUKIrsw&Cmdu?6rp;mt~fe(GC`&|SWEZBC@R9_OcwlBIwrpZ}_noRh5C!)$%5 zbew>wwC^CN3LU%y(7IJb-4q&s0ulbtCdj!^OqRS2_+{ZTjhzSJ9m=iSi(3`cypkdL z_^IWQTm)8Bj0g;7U=f_vKbk zXO9x@4f?Zao0cbaU>6;x>DGCTg(F~^8dxx5Ocb9Dt=3^@(8Lw|Q~(WD1FFxlb6N=V zei#Cd;q=LwxS=wVz*VdgBl|;(4%4fAamE2|CATS2`7Us~U^^lP; zoiR~f1a3ILX}{@W%rXPmH&)=Q5a9d>gi(Rn&hquxeizlM(4}Xqn+~Hfz#37SZT#bJ z=Fc#?p;Wdd{}Ug9g}t9?@?T@lTY}ixzL|O?8U3gel&Z4A zdfYM_S@1ulK$}T(Vr7igBjYS$a?q_4-J9zoCZzRUdO65VKVnS!0}MPg>OhL8Dj<1z zu?|FBzryJg%V4BvwgMfiGd#;~zs?KP-hzuqdsweX!N+m#c*;G zshmmi{VsTMhk*<(CM%$Fa@0avp^b$F@Yo)LTLzJB_(U%lbNyVM4pkB#nzpSxBEHnu zArNWEmemkXdl_YIIHkiYs;0ogsME{g_TF|7ZQ{5~lEfHw)2qlaF3FmvpkIgsBvW(YN|lJ8&9oSa-FS*_|))qD*6NYeX(w`pqa4@Daxb1&qLe_Q`5-70y`d ziqFUMCmy`YgTdZ<;dDk-@YDH8qpIdj#E%}&4;{eSxjI{!;hrZWRK11T{#+{WTYJY3 z$0xeB@nK@QSd%hm7g?v0uw?JKhkolGvtT6Duo4a@L*-fJ&rK8XOmo z+&27pmcTQbXffW4`a)f6`C}!Z=-O;Rrgi(_A4Gl4uuImbezaz zjD9nxj@o?}bEN(Us4@WL2r?j5rGQeJ*w*D_C9T_5PY*k+H$`=0jC;bZfhMBqlL@MSd!zN;I5dwAiZ#MAEj zE6Ngm@z1%sSn?I8^~jSq+g~G`7pIl#UF;B8GKJzpu@ZlbP;;R1GXX#}e{Z{-@*86* zc50ad*7O_trVmRJ$A(kEW7AXo_#K!INd*X_QcH>3t@#=Gn%Y24mI@$~b$qc)pixvx zA=4VjB_bsLmTOJf#^D)N3nVK1X;hnwt{#A3vnj%O@Zu+%E+&`UI{kcF1lhI|YrIq$ zxVa`M-t*8UHYGLZ==0)pLDhc-J-di-@#I`}X?(-$YIE=gSsIXHW9yNE_AZ!tz@l3Q zAA!a7oFfd$t=y(gp7~$knmHJz{f*VCPQl1JceJ z_kib<>C9m5gm-w!gYEQG!tP+^Lc)m)WFblMh z&Z`%OJ~i5W#kk@>04y@RZE!pfO!M3|`I6(4xT4TIiBwUxE=w56x84r#tqAe1?BEQxH^~Wbmf;8Cg{{ir4KYMB0VeEV=Mt$Ym`M>E^Ii=Lp zVd@-N^-^s%#iCVnz**}KpcK1{MEA?eQ}9e+M3vh#;!-%Nge%2sInGX zDIMfnDjnoJ@b9cps^k?m6{#4G-sjQh1<#7HszrO;Sa^3%_{a0L@em;pG4adYYs2#6 zZcCkswKJoC%PYK0m~K^8quI$Ua&8y{VFwk!I@{Hp?KsW$PwH#MnLyMNRhruDV`8^) zwSj}p2#?YP+uBanZ7a$D0OU81AILki!ij;yj0fr+8mBxg>RQ!I!*j)leILU*Y!B38 zV}JL7@~rgYIZ7V>?I{0feeqC7J_S6N=Gt3f>mh8v#$Jv9dGNKm{>XHHD>uB}rh(8m zUtQ4ACfZY6@FWGxB+x_q3AEa}3-c(r%`%T~^F~AIcEZ^|XHO)Z{OKzA3nO5ed~GeL zbKIe4-5G%?jZ%23yuT^-x_Ww(VWXK0mte7xA8+a@WCUP4+;*)6m3hv10SS~%3|Ajp zsf}*K(z;5sN&tSou(}3IQoy))@P?eJr|v%}OAmIE!4qHQ zFTsgSKXl}*DD^?(-u=(oPN7|0PiK?Y&58CozK+`2G>tirN)6eFJC7ECOqP^1coJ{= zZMKVx`6!Sdf;=PMiQ*L$No-iU&et?jI`^HorJ+^2f2QW`hi%Ikkd zwK#`rDup%E0i{SJLQt+K@~)%EUW#P8iXHZfmoMP98B++-|K)<))zF@{dmY^qg-;j& zK5M+VQycDvy5MfAXv#x2{tNE!-+@EKu>) zVFL13N1_LJ`Nf{lHZCUHvYpv*`FP<1L$S7Lsl1l~?Dfk7#RJE&(-;Ai_yyP^-_qKD z0C^Hy0G67ytcer@vA2e(sNH#*iPLDQR%Uj++9tRwP$3={QtxIAx1Sa7OGX3`0O9~@ z^8)H;t01i^)9kIQjE_|wJsPO;x8mn({6mA|3wPE(Qy-OrPd?N{>a~X9_#E?o55m@+ zxomS(7z~JnMe>h&LP;u|SOefYO5)!)ph;3lmZu!AGKEZ_+Rj zr$PL$ci+dV&$~tVXcs@4yP>dm|HO5L9?`R!)=&7zR?gcvfE=pR?%u#pcX24~Q6$cd z(k+afO3e8FC-xLkgH3pzTUTa#^V8@47wN%mM9_^pjY4!w8|T%w$D36EHqPh_qt@y( zht`*^)?CC`xOUdkI(Kcve%t?K`fkt)l>t)i2J$I zoJiIo-U^+ZNYR@5p;y->mIi*7K)(iHrhkk!R{!ndlkC>RQ^nssQwGU<;}P8hkzIRO z5QKAoy_k1YoBA_;$UvzU!HQpVjF2C~)S~Fu5B>bJbl}#^SqD)sKBGiF{6woe!aw%KYnfthl*AG*#S2hFR~catH9#j6EB588xX^y8E@ob789W2+j>#O^#{PpF_85)l z@9w{SZvE%3LfG#itc$&*;AN~4$Nt8buVUG4&%1{iVq;t+N90mbvhfs;(4fya8+Zo) z4Y>U0-NL>oX*8#!=2dCahu$}~@$R#;d-H~EPNQ#mUPcP(7cR)3NVhw)6q#Ml8GI|| zyJEj{W4bMdWE-e;Qeg1SzbTNfcn1=hSW_U77BquewzF3Z%ytxK4@PpGEl=gib-Lp< z;JU^V9tr(*D=B_BX+LcUkm%0rUpT!dYH;T``ai%6dz6P6<==|kkuE0dtij1Q&`(9T zQ|Om$Ll`8i4GsVynz0|exUsj(?d;0fB8vg+Q*Yk?`2E7!YyC+kcgM7ti!lN3J{QG0 z)-dY!)o>X(OD+Gt%l$$SZgUcKYeip)Zn-?XkW>@AUCo6-T)nJy{YK~F>z))on0bjP znfv`RRfD(g5gOj|b_8tt^98AnjkB__uJj+G_#=N0Mi6ee@X>P$X5eC`k&q$S64>?g zX6_jm&pg0}^CI!PW%YjQ6bs4!rj^HRXTd)!L^vhN13)qT4^aB8Hgx9E0`j{%q0Ukk zVGVpO`r`YuhG|h9!RqU4l?;mrnVHuu{yrWfL@uDTKi|W-s`p%U~b5yZ+`Chx>QjkIIkcw!1EY z&a(C4^pz`?>x5GQ`Dd+J zIZ@oY@y}AX@T_n?8j+W)HhzV8uuT6W5?nlbk&|qC+SE4i%J!{m^U87@+O9Pt5yDpS zY>U^T_PVUwa$Uki@?(hS{$2?!P+MJ;hOD~_4Q%8(*Q=*liI-{`U$}f?!EM`r)AhRR z_$eJl%~~dm)4Bkki}Ft9KceD?_`JF$)i&!+n%!UhfX4PtJ}xESCYb+S{o$bRZnT{2J@2j+T@uzz%|tY#?p zXU(FCD6P8@ynFs!^CI7ihvd;dFa6tv=mO!s4jm;@HkiS}k)ThUdwE*qE4ZyotRy`j z<_fR#I3*O1eexP}p;vry2vFhTf^}$RAfV3+MJ1e9LPfzOC<$-t`tmJ+y;T)}$SixM zw$<}e_OvldN`-ESlvC1UTsCu(ST?d!TYXDv(H50fNG>ak_*}4mT~bO?Q-cex>P@m9 zya$?$jLWDNwH3{%i9DNZlYJc1w4m7_0`b|g?(-63Sd;1ccy=*iULJLY@%hLL@w@k~ zNG9LAA#AJfx#87zNxVeS{Qc}|s8mb_Eiqr)wd4HI^d?n|Ze#ssddrG6sKyVY{6&Z* zF!KjL;?D=lw@`Sw?k_#vo)WObUVXjH zao>qYmb$fTO*3>+GT&CPfaj}wb9Q>z=|QYF7{7}TQ~Is5G;rUEQf1M(H|q?15wK$YV!=Sth>o^H z35bH^0*N78WnUnd_=Dr7$^++!{=pU2MdTGbJ2af9UYfV+o0#;i z;PcFrHKQ^AfQ?JPGKA@sKj;1$-;N&j+yVnYx)9^m${oSdu#A9kJ|5VwyRi#fli$=H z^&$ejy(AsC>%!$GM!q}6C)(}TPwt`pN~b<5O1b4%{kzfiTD}EiCW7xxE-LyLrzPd1 zk$iApu+#B;;=%fu;T`CIfCc;n<6Q~WfSkRip?g%B+j1tGD$FHdxfIi3NaJ|*@qAZX zy*KEA#LdjCnr;_yrP&iZGovMS`ry??P^%S+eA9FE)7@(y=Gu0<&jK<-!tah(%50cm ztkcsADF6WYUla-6I<$0f)PY2`3bk7NHD;xw9Fh%&cX^fp1a^*P%)LBgvnMJ!@8hm6 z(~M4E6!v}M_c1__%U|Go?VZb?w}pwMD7AMw#hE`-Da|%d8J*#Yc>?A9R|OPZ41%L{ z+b#P>-oFeC^B;94 zn~xpJ*9371rKS=QDDE8}$N`Im~hSHAGO??X*0&$NAV7&@#mS zk=JJ)>4GWXGEWquTKU~pBlpggO3$vP@2Ahrz4J^_Ja1M!MGxj)a6Ox{b5ITX2BX2^ z?dmTtm{resd_Q?M$zunDLFACFc!q(7a5^ZP_L>KzwjuQ)S}|1)JXp3DJLy_-Nu+a? z)q0^gYqH;u1>DrVdMPlFV4(k)q;&ZT*R_|CfAj%qa&Co1+S0qVuKrh~Rh%RU_r-?f zTOs`A@FiP!&q5;Ij8stiq)`*f{zPmAo?;^bYpw4K5yv!^Kmw54wGxX5{pAqwZA1s>&F&tDSJj7|hs_JO)0e=5Gp~{y;fo|{_ zAa%qzC|qc+Zm53M{}i2zH`D(g$A=9YF*Dc1u(8d3D7wfkc0o3mkc8ZIajEF;GMBkE zv&|+6ZJ1lGMM~jl=}Ym`wu?neBS4Mc|9)=R9v9cZOH^tlX(g~r#s%w@1Jm z5v2|rAg@c<{{VrCws-^z1Jbw4OdS@3!U}V6bZ3Wi8KheX1(cs!Z==|s7!Z``@HwDl zm#dAgm2+dZgWKyi!kXF(B{{CT+?yBWlg)>}0W0{X5No%YoAQMNt{Ah5GvA*xYKhi>+?IcK80RY=~Pype;857U=Y#8(wPQC1f%fwhiXN%rzb7mMISOL zJyEe=1v}hnE&rAYNGRooS)nSR?g!1l7OX&M9tX(e@!h4)Ck(lF5L|`%ckxngVZGc! z7KPG0aE08kS0p??EX%52cz))mZvjR==XM@v?eqHX?%{hsC9FjxEV#xcZj?f< zBtjp+&5{X}#2lkuA2olvRi-U=vxsVNL?=RojN5VM#GN{TvSjk$OBeK+_s>o5pViB% z9=v53^C?)MU%Pq)Vk-K7NUDf63$>|fuL_k?-hR_OL$tL>;v=apK9j|K`oM4#Z$AZE zc5E*NzX9uQdhbI(lv0+R5a-SoKH6%$3Z$DoCY*h7`0Mzo*Fl%^0{!)nt^DU8S&P!Bu7hjwbp{wkAf)w>PC`oLQW}MC0U*F|j(p z1_p|jqS+&}8KHt`*nD;`ixeaJ=&2;~K6ws=McaNd3~7#txFYCyGU4IN#<>>PLd!cAzqk`wndb$OvAKAFm@yHM z5UW`TlAA-2!MKHI%+^Xx9m=EjWf3AI$}wAB!Q@-5UoghHe(*~q&-SH}>`dtinCPIC zyn&vVR8VzsmF1=MVkBB^^tlov%}rO*k^a?g@c!J?;J}zQ2TlB}x{@8yYe6n@#WJ|z z3}%fUS#!*{IK{~tLUES~Fd&$d2^TYSRJxXQRg#Oic34GPLQ>Jj>Ee`Pr?oCu5mP-Y zFCtfuU7EBZAx$L_gNG{t1qFNjQniJufW1Af zkDHK;Egg=a1wy#_11Dbnvox|7_+Vxx0TwN#3ASYjU;JcrMTn<=9lcHv#8gmm+J4kv zr+#Z6EubFbfw z0z5c8L{t=(*LL1IXvt5>y_OE5UyHJbCZA})f{97IH719fW7GG#t? zazt)Z7KN8fVZ*8n<;aKjPU^L-NSgjrz2PT7gQO01@{;Epk0^FRar2OF553so`j^Vv z)0wC-n{|`|{|LxRB?ss?w`|rk^pof zzY}x%vhB^oGEZ9-H&T(`Q_4sF#uVFRkBUKQ6!-ve!O|7Zf(j4Lpj@WXU@z*E3L-Zo zi&%zGSRm^UAU`6ZgSr?^5EGurQND>w{6yY)#FtOHmAbB2Yy$tuACbTck5t z254*CaF-Mx1?q5vMi3Ljmiq`r>>d(KgghwBcu&}Py4_|b*xFJK2AC;6Y#n(JAr7Pm z^$1YsA*6|8$1Lrbt9x>NLIozdC(=Zw2}xvpue{I?B}sYep`bbTia-?6#0p`|lwKfR z!MV4k%S6QO&oX7ugX82o$xI0{ML}((P*e5_DE{HKevP8L@K$+v)VEM@tgRas??pzv zFn_X^s&`I`aS!Hg=-H}#TA0)|RXG3?WRgh+LJpeNDT@mgNv#Pg!5K+if9Q~K$*2w^ zQDZq)?!U?x+s34O?eenN|c0UKb%Qq53Uj(3&I) zLou*iv7rR5zUhUhyB5PzLcnb1f_+!2gb8u18AgYDM&vr?^bm>sGM{p+cM-K5N9Cs& z;3i9OUY5dx$(B(HNu=CHb}fvs%q6`kOhteY4cSkY(DJ0{xB^@W6o)v#3ru|&OyY@( zf=2%^YEq`}s@i0Fh4Wx5$)~)nhv%dc6CVQC-A^|331;$O`4rE4lK!5g0ahk4?@u{4 z=%XtxVHfHwi;3fxV8D3L#Nla10{$a%#o$(YK!1YIru{# z#PnJ6HFIqzK?an5o7-qPbTtYKaqphNpg9da!9E?MI%?yS_hx#Whf&(fUy|Sa(j{Fi zq(2#0A1{kq&dfJX8Mb5@^b>qKgn>o|z*-76?hV3A5BJV|R}+;xEFM&?8SL`uY9+>% zyrFG)1Cqx?XQc!^Dts!G?>gh3s+^Kf^A&8`c&{;OZV*^L*&#@`tGT?3eOz=YFtOC4 zr8{Z|7p-hw>9Z(r2@7o~GZ2{=(7LliVU$$fcLi;NScshGO;0vF?@tXx2EJ$aBsCrI z2S*YYPcEnr%x~qKO5vhW;1L5X^hQ)c%Q!lps%qO8zBvWxM#V3oGZYX`-vC`Z( z^*5F9O043FZNc_1laD3%pW)Ewr*GZd`vTAE-f}sdp&$+Cy9^c=cA{v=I%&NK`s(+F z_kV9c{h6FKCnUJq-u$df3l6uzIJHd?3oQ`4{K}>|e}3(R|5M5Bv^bwf>nw?Nk5w3U zi79QsBhb(9gvi?MIjOL5|EhWEm)R&|&+1k1laa$h8(7Z#PN_9`Snx#5&V^8Fac zlx#0K4S|~8&Q-40RZ9m2SWt!Nm8MohkXQmm7GYKMr1Qqjx@BKRp@j?TG_+`Sh|x(T z!7fcE)qmSLx?PKTxT_d1BAHtoU2(5w>xOWkEhM6WW`3R6WJFElIYmh^Di^l%r%wLM z4+>B)yrF>Yb#W!Yato>GMn1uHP#G5{^`~gH^TzKB9ThrGMKCT5Zd2Gwk-r@tK^31I zby@s=?9(0L-&Y}Y@GY`zQD{0#AugOGKW_-~tA2m$omYELK>WU4{fbnb0RO@YK;;7z zN21lhg}fMjV=;b*#LC~Db;CEjc!M!X7`PXkDBP95?i`Rfbbnej@K>}&$npKB`p(_l zlGq}NbuJ9%rgY%D20=S8x!D?r)-oIgPN-}I!AR~0BJ=*4cRwpMZsb=7+sKC)fSFXj zWxBIBNBrQ(sbyaWy)=@olCHEMPt=CMPP0r`#8geZ%>JIP?Ds5iODMyT5A272#xUKB zU4)E@07o6_t2|Rj;Y8nH^v~L&9MBCxImr84WtDzms8 z?bmFdU@Ayp&0y$@2&;q#^p~2R@Y*$|Qt-mM77|dL=q2x*?eIf)Tx@}dwNv0Bo*-Rm3~D@S2N&V_^XN2(=7_9ZV)M!vuP{HtA0)HlT}(@`R^rw4rs{ z-#H+1Q;PWYpV`v!=apS;4^yvwxSQ6qh)z{jUE7B>^QtkbgG#n)h&4r~-Sa5ejyXRy z%s7bVW8KkGleU?07bYDvT$(?ic% ze7Qd`#sy&VH6dTEQfgW|U@=r!IZd~bdFCp4S#>>haSY`CxLf}FXqDjpZt8;;7b@w&2~yL`O;r}39+`Cv32BSa{Ok?UB>Zgvl)lWCNxh?`LSRio7qJFX_*L20$oMy{{8jcg}!vi zViSxlV^03HQQH}OH`Oi}FnZ(l_w?E$Hv`!ek6F~rl9{SSfZbir$E%)Kd!2lCV^AG~ z%R(^STf1W#x3w$hc|*5w0h)-4-1qvz%m&0_I;Hb0nK|Ef5ZGcDtNFc(jXW@3eeLeO zlqg{2_ow#%u760&?%F5DC=mhvFpfI*xixM1&(0L~Y%%@pE`!f~qo#$9yDU-GLs&&E zrf7bI#!24!ti3YfPiYi-%ENyDG87WF>-K;mqNfPcLG)l>%|kEh&sjrHddfKb2Z&#r z+ekpbUUz6FHXMph7mw`!u!CuV0kbKuuRKe+`iCZE-_3-9k}rfdw`$a-a+SGQ`<@0) zQiK{bl5%zZu{JN-@R=@_byVtc)yYF0@F&bu^aSZwvcQJa}`_bhTz> z8rJ1lF=Vr(CI`*8Dy&7jHuI|@2SFr&rAG0aD>kKcTt z)50&zQlo@al=q~T5~Al0Fe2-I?SEgt6*po|>GC|0o$BwXyZgBFDYsyrC@CWrg#Uaaa_n)Nq#8p}Y^3`Ac-n^b#uj6MB)DTWIm#O`6 zpa0M-e8>L=MfWqM+xzDC$-w!;>P4fst4?RRf9Kt(Yo2=cYqCB-k7khMekN4IdA9oR z<%PPffs)3CF@H|)SKjEEp+6-9q7rZeNAyp{zp;X;! zQ!hAW9t=j=(?^($H>z@z!;*J7&0WuIyI9uF*3mx8V~&R%G?8_lu1BgtX0y-FP@qqz)ccX0`!L;_db7jt|<47*UDTAG3k?7%d3j*lg@>>hJ;da>fR@r zy=RqnW5O>OYX|Oq=PWs{V5$lR6AM+Xm@j+({`jbT-cR+9$E$FEwe?x`qS=?RS~01f z`l<=}0p(Bp>LZa!u?n!oinBX4D-|m$LZkE637he_NME_5hs)}XKfn%$?-E+zxxg18 zD{@h~z+Jz-{mPgfhkm-1F7>8{=$?Xu(Io-C7Xr;tGw0M5G$E(#977a!Z-21Jilcqg zC9!K#@4i}=m&=g4Tvos^*DWM8)m^5k`a8a{s06BAyD_l7pl7EIrI#>SF$S+*l{II& z{52)JCzV79-cwi))%R_E1paMo}TiETTH~)&JNZIrXt77&gWn zA||<+_(4x_Ko)qN{{RnId*<4LS{pv9P(*>O>yvo6kbC9*O`>*gpd!~uRKW2-1+nPv zWt9}a3;=+Xy3c=Ay_mp#;U%fnK79S)_*rCv;_^Tu@PlpDKnsfrboMQU;C&c%?rLMf z^`WuOnD}y5x5cPDOuzxo$Ld2(ByDrK@{~dAyqQgaI6bx=Bq#OhE3Z zQDhR*gsefQ4{npage_j%i%!URS*x~fFxPPv=bjtUVcQ5pvp4eosbGRB9j+ zO9B2Makw${jxyCBVLDac7q|_bgG{KYx{IuujKTZOX^V>^Gu>>wA3Rmpxv@LXp6y$$XXM?eC!% zP3k`!%3M`c^)zjN-{uVIOfkIdK`s0gdbl-QB;d9q#!41?e$sM`Yl1q3eKL7?%CTRZ zOhHRz12LcBELm{;+Wk2p5&O*ZT%`G+eXA6zU~_HmmZZ}0s3tX*zg25z9-c-~s zRrB36QtPsJvrf*J*)yNCgjGcl{7aoCtr3b*NNpl*InqFA1iSorwdT&*x=iS?cSoHi z(yK=rTo292+8&))e(cRB`rEv?eChBZBUmtW)ccp!siE~nD73m5xqR>09WMq8o>X4E zx2$^4&U}Orhf@B*+7~Yf`^;Cqt-u(~=y=Df z1MAo34o1E@WA!jjuvckjJ)4*P`}{!F*&hXWKbqLA%90BFn)%8_ZS#DH*8A-}mt8Ht z{kD5N&(QB^zf0Vsbt%XF4D2cYqq`V?@XDn)Zu;$rVdo8#eOeF1_}8C4pkX-H2yC&4 z&Gjo%*Gg|aMpy={fB$#6d!R@xzQcd-*}{Lyz6)^M{VVfn&grX;nB_xP&nr8wXVja< z%)B{z9&(>?5~PvqRjx z{{Y&(!GmNGN#bNlzwCqA`zby*RHgEtT@-J*@o@U$DJh-H64&$nV%(Lj$bW2FfG@01 z@%p>wY#?lE35H}G^;6;0@k>pvbH*`WGhEs9r3K`n+W!DXZN8cwq5PpSRo_FW4%Cjp z4t8yRIS|)-yn9F`v^VKcjhXq`5Ry8)PG2OVPK@;X&uJbSSwGoZE#@|JB<5^h>n^|R z_h)r70Z$X(PR(|h+|ar-o}|5TFZoyVNyMw?zpuYp<}+#Ac)XkCT|d?pWK>_>e`?6vIt=# zrplp%fQiUyV}%Q&@;RovO$dX%9N15IG|T$m_}UMhz2hbr?Otn&NHDVO!wDH4!`6C5 zjU<-sn;H!JF73@(F4n#_S}XZt=tFBBlZ_enWk@NKQe^;0W`eWd^MMN~b%?Dqhhm#A zeqFcO6PKP=DDuv$V0^xZ8JLgr0!7AIT1#Lg&=lVg*&A<&uv0zr6iCc4k-PE%G7Qic z^`+LEpMF_V9i+2iTYB`8hXwL8AkH$oV>0b>(yEM(_34f(ql6Y|Nx?NhvzYk4%=^O; z(SJbp4h{?MGuArR5`p{eeoTmEM-~(N;K;O57)$H}nXEZ-coS&O0sM#wyq7i4h#Hb+ zi3&SRV_^lba=fsfz`JO43D-ZLj6NFg-B9O7wnoFOHHQS2v>1Tlg>OnX?RWNf2wVft zQp9rz7c51P88Cn)Ekkk0fv9^zD|$X9_(H$Uvx4RI2Tmc_%luKF#;kPDz=K4J_iGU5 zl#XksLrMZ!rwn7#MsS0Q2P!ABb7JCCgO%>q3i?YIpmVq5$DqxjKFngiJ~E-fhLQX=tVPI)VP3|O>47m5;wPtj6TxIjBrHL6AVfjsxbI8pFaYA( zmB{z|DNCAiO$OKBopC9v&Os_D;9PCt;NcT!a|CO@ZPK`nhixMiZlj|$+)J#?@VITC zvgIDZD31X^be2I7+eGPd48D4}{AjvB8XTxBdUyVrCukF;AX9TzbGTRNQ$<~3E)x9w z;i8^l#W8eAL?TDJ)eBqJ%iD(S=gaopzjc?hP-pu&E5K&#!nB?ptq+VA_4H>BRgPN= zb4>`O@E(K{)5ZXS^@=7i$B44IuB2l|U36H8ky)Mf;4CKMAwEik?25%7O|P=doDarj zpm-$^GKv63k<^W*1&lupbO6{phGApJ&Z^a=IoZYvgf(s?G$LgfAg~vz$eP~CTciqT z7EfSgmnvyb=qr!DGvYjRN;u9r?U`(^*m7I%LdNR(p30!+3fd`Q=xETvUD)mg06Kd; zmlk(79&wVDe=37)-xjry4i-YD%wJ#uLhhkw}~Lw z09*P^_r*g!87!Uzg~1OcxVS3`;F0r!znzyB#h5TT14sek=%w4^bQa^z9$|FpUmxf} zW0L(eU{%-VQ%}w<$HVeD=Q1-@lRTAtfv>VpM>RSaDIOT8l62JxQ1Rr33;R?@e1gU8 zR3h-h`KSwIKyF||tC#m2Sky;HWh%r;Jn+#}%mg)oVcYntUHuc4NWnQF=v(ceob~u7 zY6?-remtiIDJ4bxm1i3Z1^}=Sg)Be(Kzjl&aY$EqbI6ReU+_#BLK0M4%2f^vY~J z4D8dOPqS`-xh9pIR9o_+K=Vm-V3@I2c#BYYdSNVnyaj{jP*e1gBj*>vuFMttX0=3G zXvPeDM!81;&(LX5Fh8+LHW1$I2=dSnayV}6E-rvbD=6+@cyc~HzSZL&S|hCVCG?Is zEw&Rh_54&I1xX%PjndlL+%oqj!4bU+SfAL?Yfr~|YbDN@T2NffYg!JPTdQ!|a{6n1#puIbt>S)e78oMCxURHSL>NkJYS4)aUZ^A1_rcF#CI{uTw&Y~71jMMinosHb+WK#Y)* z-*b6f%b%4xxU0)Cowf{$JM5;4wG;(1c?>Oxa0z6xWLA$X4geDf(6SFpqoyK$9wcJO z!z52(KGazAmDagSnh;lQ9KiRPye{IaW0~&&7$Y2skil!iFH@k$SPot`&)%U0)_elF zUv#{bMUmH&CX#a@YYbgx#iEE|5KE<(Xkag}u3&;cx{MTm>pj*g_Z7G-TgO4MC|`6RrOai99_gpIRk= z6oi;HQBj&1t`LfXZrfmWCaHyJt7Bx0CEzFK>mu#H53f@gtO|xLaCko~1&DH~Yv%T{ z>9)u81!FhDGn)Fv9@*&K;_91%1-9raLJ^b6U=caVZ%ciaoX-o@^~GU%Z$7m~i(->& zB%_nSTzlWCSL-UZS8BXZ zm>Ps@Dcvw}CUra8VZ2%MLXnRl)GvO;Qy9#x)0O6)N1pDnB@$m*GpP%%$Y3N0SrT3Y zB7{I(C=r^p7zWE2*To-VL((}m!XN96F?eg}Gf`b_;}`0!KbV?$>vqfrE^ETsFDjVI zTa;2qB9nwm4D`C7*+%EW-*lb*N#!#2z7IoH6SYxdZ%k`^bM&Y#3I>Kj?*$nw6C8^X zCW*59Yn_th%d0^n6)9YEnXfzQx->nQMGWzY6MvX(o@@VDLo|OhL#I9sz?Z}UHc}}3`C&lf}naN^5>4O z)ZCU+BiR5K!qdb}Id~J;OFm`DVE3uC9%4g2*)ZY9(!8I32ZJ(rE4IFHU-|WRCFxl^ zJmBPyVH4@m?av>$(SEyoTlVgj?S0e~*vQx8Qb+#n94v*i=)^JGL?lySNGXN24FKHy z4>;<{=@0u*n`MOn3S2pMq8IlqSR_~*>rN?N(K&Eb&P7Q>Gyc+AvkH>vUU%fVLD;BG zP+`YIq95&iTKx8_n_sVMQj0?7f@@=>U#1X8bbJQ)V1&9GOeaZlJvM2Oh}SQbp1zbe z!s&*de|z@3OUON1K;2GCk`CcD;hOP}-t!pW5Z6JN&3I8)1A1Mp*Z@ zMn&(L=pGV)MqDe`PXbqH67W75_7gQyMAS`j3jfc3uP(kD z1dNNc=sw@Or8vtjf02grkWlfvU7<*BNILY(Eyl~{z1bsN> z@b7RoGnHeiiv?WRVvEF9m_O)I7B?TkXxQ8&eSPsI~PN1APc4%S1A2|Z%@PIsHFmjjr?yRGXl36E)JLF2Q zwqcMSwox!q3@hdhb4-H~5+FkcGW++oxpo_#f2PBxQ~OBDjLha{l*Y@e5(-o`1H_iD z3g&CgrBO=$SC+8%vO-|*Y)KFSV=3++>L@DZmR{>qVxE;hSmxCn=0xIuiy^l(tvlzJQVjDZ; zdMmZCj%_~>E1D!sd1At?rBV5AR8d^Mo7$CXv?&7kI`UNM%tdkGKk94v5e>L8m982j zV$v|GXZp|l%RTA2*IebzApb=qt3(eJA!ckjL8NgcD~RA>0$5d}@c@>_X(~HiSLjQH ziRSE~K)VLPJ}}1==F6(xeZ5yv%5B$m+($JInMyNBdJIMiT+1g08%Q=BH1j3|@AY@b z@A@h0AI}?BHRkxnT|ygxy=^}!N{V!vxmqDS)jLjWr_GPNl8LO{$3QBs%GHtsPsZJQ z{2xG3zuw0{@r`6+gzloqjh8adR=*z==?PH4*$X!LB(wg~;rEJP|Gh53)K z#ak}-oibr$BtiffAa#Z>85cPFu+Or~za>r{h9n3f0`_R80A=U-NE8w_{N|BE+fUyC zcR`|?V(RHZpC#Cy5jX)J^F_Qv{H8pu{}g8$Z+{*uHhcNI$B&uaX905l?QbZpSv$NA zRZ;b1O61vEz3!F-ALOWzZ)BU{)WuX#;{jmc%gwi&vy65k%2i&|mjBxK3acD8I))pV zxz^$=nX~)ub~m>87-!^Le1vt@;AL&d=RQ=Q{+bsx{?#_J7%C<$K)t3r_sia!HU&lr z^=T6&-L{a+-4@Ws6TamcM>heIfKT?kYoDdDrJel_;=~)ru=b^;gmu_~r=kAK!v>|b zKk8D7#@-umJF%z@T}rI%AuFoiuydqB{L8s|<>tW9K-OV|CN7D^LRtjEyc!dH{Y*Z{ zru5D~Pi2{Fp7`q98*(+l2xl`C7ji~$;{5%gv$r^wiLw=W>R$Gm-fw&M?mkm@eC&3# zE+F#H=^qEr!MmNT?HNwnCG=uZmXB4oE7tB(PmxBq4w3b4enZNT$jPXW>A;;fw_26z z@J9w%-_|PkK*_TZ@r*zp*n{|)f z@Afz4pZAgY`B*YBQBR-#^NmeS$Rpbn7dDSn&>GW^5ZFV`Di>TDiwWC)ll7IRT!g`f zXhnEv%bHqP<^*GlUy;OC`g3kgw+rh_SpmlSHXxm#I=Zr`8d~YwEBxZ?#X($A(2Jta zC=cZ4h%ZO;y}tib9jb0pX`-_mkXs*Qqs+ct$F7`fNj2<5F_h_I%Ie?mjp`o`Bjdc; z@6nLS$Ev^gya_9r-&49a+{F^&$3t7LxF&UP^Y3zXvz-m?zhwG%b}LTV9iO}%*l zwWjnN-{SSl+k}oV$zk8@umy9w@axh2(I@UYH5$4Pa4CfYsE%Rxuvz|V4Rmd9^l~_x zz$q^g7A=Xy>{%~BNuhGYuKZEF03U)uP=)~Obc_A`G6aLFi1%fO-snH z7&+bN*eHHYyRght18nXU^&r-^q@8{7<(Jv|JKSkZBTmatv*rlO`@%UeLS$I=cvzsP zu0n=ZP%p1Se~~OQHI*3A5+Zx%RAhXRsM;QISm!D~_y+W3l<|+RucfF4G5aL5?M!Aet0@R4!`i z%ek&R81@;IN+CSHc>UaUJ*&9o$&i442%*xJXrp=SyhgTs z-P_XjU_*ir-XEUpNftE1^JRMO-&YuZ{ah4s+wSk_I1?WkgtYIqDiPX>a9!q-pZrg0jPop@|B&8*^^YzBfaoA9fD$>hNiGeF@iGQrnNr zdl6`qq_J3u%Zj@tB6IHgrD_A$_H z?%L|}s)XJ-<4tCdgice)LGJqCzvs(QTir~A({Q$?Yg(yLHq6cv2s5pb?)DVsR(DnKEsJINTV!s^;^`YaC!>{&|S_P0$F|& zWb_8qy^t>mC*TEGX_wO9dy}irJR43zTz{G_E2<|$PO|%c;``=)Pram(bsg$3LCQ8k zHo|TA-OJw>vansj#a669)#+F9-K7p9${npF8U9Tv4q{rK{Pwg=J2NhsF zX|ZQ+)#R*g2=aTRr~LEdv`R*Al2>=yj=W#aj*Du(W7HfT?g!X)S^f55h1R^x6EQVT z-aii=d5oRBrb~DVZx0q-x|MV4&I#4r1lCQoK7171=<~zy_sKyuH4maI$n#M$xpDjL zs>*Jg=i8$PT=dA-HH#9rzkm7na$K$_SeRq&zs~x&Jg!(6FWh94Tf`UkKKrR2aJTSo z7E&Min!an-Nv_o$d|iHz%z1%fkN2;i8W@#ZxHej!)3x3Ri^mUC)HPpOyO@B@5p{7d zjx9Quy4UKcWlBA&*AFLdyPi`Hik8q6Nk@D(72Ek_u!ukQIUUJb7_)rTp7JxL-zE9z z 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

    `A6pHt6IR6lNF6^&(ovlbP|R$VC3 z#Kj`X&Lyxos$n5C#2uMfZZsvbj)i z+$1(n=6q63)^IOf+^1x0R%Jn?&*qGX`{G5;8i!QR3oXJfw~DcSI#S?P@6TZI#^)nO zwBfhXH&dU8oVeLDqb6r-R>&#mCM;g!tPBL&yUn8|aGk2Z;+<@plmQtZfs}+*Cs>)w zJK)hUcu#Axe^!n8SWqhu2KsCjRL7fdv|8+ohg@hb&_b}-xyXe1kWcrO41<^<<7&ZQ zz`{1CCxUin(^K(w@eEMT(^}Rul1#tbP)zHUXQs;T&4gaG6=ckgoPc(7n z*nP2UyM#N~U!%DWT-%~=m$RLWZ{BbaHA2Pw2Jkcvd9BQ+`pcKWLIsiFyNfBO1oInH zC%Gdn^(k@+F)a~?>K~};Kc#WB z^{nk2D~t~niv&TrKOd+v`FXMR=DN+SgIjGD%g1Ye+s=6>ipoV8mP1RD?mg8&DMU=q zO^zcP7!_*&@^Np)=&5r*;QialnPQcsta!aRkF70#VabT)k?5u-;YzptvmB<#WuY3R zCHt}suyr7}=u<>SA!(YcV$8U;juwU8^~d)`Oo#4yDH(yMUn7ajXIk654oRQH1d5R5 zWQl6N4<$AfH86-?|I)&>?_Yvz75C_;;V8U9u;+dh-hiJfqm(Gh|2>&!^|uw8Sf!N& z9WrD?bX<1ttD2$v^8DeVAp2*9cB(6Un`IlxfzXmt;l3tj(F!-4ZXJajoUOha-mse| zA!`x7DG7-qhC}*iY;B^j1mbc$3RLMO^k4L=lXULiXz#zsf{Fz|)4^5x2{aQ>Z*5#E z?vdX&8)WO?ucP>9E?pIzt1RwC{5rPs{h+hGPYV7P+>A3xJe?O)$@6T{rX>PzP+?q> z;;#q;(=T~?W`h>R_;Ks-_~}fi2}AdrFMFIdE1o0}W}xGQU9x@`PQY7H{;8Qo?e<{~ zpKwEX7LjJY8@J`OP0iy!ifw(LLS^?8cYRZLaU*tLUX+^zUp#OYztQ*IJJVtGpa=vt z5kUQuI#p2*!|A_c$k4oQv63yk2dbsn%h^HtD>s48SH&Fx^p!EU%dtP`gZW_eQ~lD% z=1H@F2j8g~?=|<`-+VUSqGzqu`pWji0Wn_*0&TTAnpzFDp}&mJKU@JgOf_ zb;2;7x~$&YR>MwuN4Y+=+#p^M4MJWZpFdmo<}A=FxP1T!{_NcOYnv;lm?Pr55-@Rp z_Zw(#Yp@9w*S~`|Bbq3EEti?agR{4d!p#l31aBX|JVE(dSOq@?uUcKRg4>v`Ea^WP zvScvPt5m&LU<@#dVu1HHWDd&M<}MA}MO{nFS4ALwSEZ&SkQdw*mL1lF(*{jkf#MMB zDV>%pS4?g14ZS1Mk<_u3q$@5+yn5KrVLW`$+I=o&gd}Nxq`=Yx|=X%|V^yMSA#&uGDocw=YDx0(zS#)KM1H zcoDN9KqHH7E90e0OzF(xVRN5$N2dQJSx(Pi?9tyoYdK*!kX=m5UqNr4#V%tnAXyf7 zh@#7GW^T>=a7yJ|->AUNYkTaF&Z3y^_JZa&v|Chg2WGnNI7g+Br+G{N_$LYQcblb3(QrR$@sbar5n*kBIjSafWl~O) z!}!-exeo$ZFhbe1GXl>SNQJ|K(@!Nl$wETs7nUKenZX|bynIKP@Sc+xXhW`-WP{Q# znGJRZ{n8~pVjUN|nJx6cPp1T|E}cOX`x_uF310qRZ&nkGYt=14@CQ^2_-^Syl*w#c zhTX`qiW%(KoCFMjV2^Gg)Q!t@HNpPl-)M0MK-J{85Q@g-{rMHerkBXXsBTNiu<+oQ zN_*2Wi0&X+{H=SoHscgP)2!BpnBWcAJ{dRSwjilve-qFi$_rqJz%pyu&v}Z&W{I9g zD~K=^RFMj1UI#(9fbZ0Bd`?LKmDIU1dz2C>Hn(By*(zLjIogqGttE5VO@Opqm8e|j zn|*e5+1qX1hqVBw{@|Vnx#PR}5cHP1IXLDTH7(IIU^kG^z0C}zV3r|Qg==OHDzt3N(HOX{{aG= BEO!6^ diff --git a/app/static/app/js/vendor/potree/libs/images/ui-icons_555555_256x240.png b/app/static/app/js/vendor/potree/libs/images/ui-icons_555555_256x240.png deleted file mode 100644 index e965f6d97c6e39e711dbba68889a7d1f3d95eb45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6988 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 LG}fuoLO=c=v^XOP diff --git a/app/static/app/js/vendor/potree/libs/images/ui-icons_ffffff_256x240.png b/app/static/app/js/vendor/potree/libs/images/ui-icons_ffffff_256x240.png deleted file mode 100644 index fe41d2d0fdd40f87538d2312fa537a799994e55b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6299 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 diff --git a/app/static/app/js/vendor/potree/libs/jquery-i18next.js b/app/static/app/js/vendor/potree/libs/jquery-i18next.js deleted file mode 100644 index 75eced68..00000000 --- a/app/static/app/js/vendor/potree/libs/jquery-i18next.js +++ /dev/null @@ -1,117 +0,0 @@ -'use strict'; - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var defaults = { - tName: 't', - i18nName: 'i18n', - handleName: 'localize', - selectorAttr: 'data-i18n', - targetAttr: 'i18n-target', - optionsAttr: 'i18n-options', - useOptionsAttr: false, - parseDefaultValueFromContent: true -}; - -function init(i18next, $) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - - options = _extends({}, defaults, options); - - function parse(ele, key, opts) { - if (key.length === 0) return; - - var attr = 'text'; - - if (key.indexOf('[') === 0) { - var parts = key.split(']'); - key = parts[1]; - attr = parts[0].substr(1, parts[0].length - 1); - } - - if (key.indexOf(';') === key.length - 1) { - key = key.substr(0, key.length - 2); - } - - function extendDefault(o, val) { - if (!options.parseDefaultValueFromContent) return o; - return _extends({}, o, { defaultValue: val }); - } - - if (attr === 'html') { - ele.html(i18next.t(key, extendDefault(opts, ele.html()))); - } else if (attr === 'text') { - ele.text(i18next.t(key, extendDefault(opts, ele.text()))); - } else if (attr === 'prepend') { - ele.prepend(i18next.t(key, extendDefault(opts, ele.html()))); - } else if (attr === 'append') { - ele.append(i18next.t(key, extendDefault(opts, ele.html()))); - } else if (attr.indexOf('data-') === 0) { - var dataAttr = attr.substr('data-'.length); - var translated = i18next.t(key, extendDefault(opts, ele.data(dataAttr))); - - // we change into the data cache - ele.data(dataAttr, translated); - // we change into the dom - ele.attr(attr, translated); - } else { - ele.attr(attr, i18next.t(key, extendDefault(opts, ele.attr(attr)))); - } - } - - function localize(ele, opts) { - var key = ele.attr(options.selectorAttr); - if (!key && typeof key !== 'undefined' && key !== false) key = ele.text() || ele.val(); - if (!key) return; - - var target = ele, - targetSelector = ele.data(options.targetAttr); - - if (targetSelector) target = ele.find(targetSelector) || ele; - - if (!opts && options.useOptionsAttr === true) opts = ele.data(options.optionsAttr); - - opts = opts || {}; - - if (key.indexOf(';') >= 0) { - var keys = key.split(';'); - - $.each(keys, function (m, k) { - if (k !== '') parse(target, k, opts); - }); - } else { - parse(target, key, opts); - } - - if (options.useOptionsAttr === true) { - var clone = {}; - clone = _extends({ clone: clone }, opts); - - delete clone.lng; - ele.data(options.optionsAttr, clone); - } - } - - function handle(opts) { - return this.each(function () { - // localize element itself - localize($(this), opts); - - // localize children - var elements = $(this).find('[' + options.selectorAttr + ']'); - elements.each(function () { - localize($(this), opts); - }); - }); - }; - - // $.t $.i18n shortcut - $[options.tName] = i18next.t.bind(i18next); - $[options.i18nName] = i18next; - - // selector function $(mySelector).localize(opts); - $.fn[options.handleName] = handle; -} - -module.exports = init; diff --git a/app/static/app/js/vendor/potree/libs/jquery-ui.css b/app/static/app/js/vendor/potree/libs/jquery-ui.css deleted file mode 100644 index 0e4959bd..00000000 --- a/app/static/app/js/vendor/potree/libs/jquery-ui.css +++ /dev/null @@ -1,1312 +0,0 @@ -/*! jQuery UI - v1.12.1 - 2017-04-16 -* http://jqueryui.com -* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -.ui-draggable-handle { - -ms-touch-action: none; - touch-action: none; -} -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { - display: none; -} -.ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -.ui-helper-clearfix:before, -.ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -.ui-helper-clearfix:after { - clear: both; -} -.ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); /* support: IE8 */ -} - -.ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { - cursor: default !important; - pointer-events: none; -} - - -/* Icons -----------------------------------*/ -.ui-icon { - display: inline-block; - vertical-align: middle; - margin-top: -.25em; - position: relative; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - -.ui-widget-icon-block { - left: 50%; - margin-left: -8px; - display: block; -} - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.ui-resizable { - position: relative; -} -.ui-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - -ms-touch-action: none; - touch-action: none; -} -.ui-resizable-disabled .ui-resizable-handle, -.ui-resizable-autohide .ui-resizable-handle { - display: none; -} -.ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; -} -.ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; -} -.ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; -} -.ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; -} -.ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; -} -.ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; -} -.ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; -} -.ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; -} -.ui-selectable { - -ms-touch-action: none; - touch-action: none; -} -.ui-selectable-helper { - position: absolute; - z-index: 100; - border: 1px dotted black; -} -.ui-sortable-handle { - -ms-touch-action: none; - touch-action: none; -} -.ui-accordion .ui-accordion-header { - display: block; - cursor: pointer; - position: relative; - margin: 2px 0 0 0; - padding: .5em .5em .5em .7em; - font-size: 100%; -} -.ui-accordion .ui-accordion-content { - padding: 1em 2.2em; - border-top: 0; - overflow: auto; -} -.ui-autocomplete { - position: absolute; - top: 0; - left: 0; - cursor: default; -} -.ui-menu { - list-style: none; - padding: 0; - margin: 0; - display: block; - outline: 0; -} -.ui-menu .ui-menu { - position: absolute; -} -.ui-menu .ui-menu-item { - margin: 0; - cursor: pointer; - /* support: IE10, see #8844 */ - list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); -} -.ui-menu .ui-menu-item-wrapper { - position: relative; - padding: 3px 1em 3px .4em; -} -.ui-menu .ui-menu-divider { - margin: 5px 0; - height: 0; - font-size: 0; - line-height: 0; - border-width: 1px 0 0 0; -} -.ui-menu .ui-state-focus, -.ui-menu .ui-state-active { - margin: -1px; -} - -/* icon support */ -.ui-menu-icons { - position: relative; -} -.ui-menu-icons .ui-menu-item-wrapper { - padding-left: 2em; -} - -/* left-aligned */ -.ui-menu .ui-icon { - position: absolute; - top: 0; - bottom: 0; - left: .2em; - margin: auto 0; -} - -/* right-aligned */ -.ui-menu .ui-menu-icon { - left: auto; - right: 0; -} -.ui-button { - padding: .4em 1em; - display: inline-block; - position: relative; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - - /* Support: IE <= 11 */ - overflow: visible; -} - -.ui-button, -.ui-button:link, -.ui-button:visited, -.ui-button:hover, -.ui-button:active { - text-decoration: none; -} - -/* to make room for the icon, a width needs to be set here */ -.ui-button-icon-only { - width: 2em; - box-sizing: border-box; - text-indent: -9999px; - white-space: nowrap; -} - -/* no icon support for input elements */ -input.ui-button.ui-button-icon-only { - text-indent: 0; -} - -/* button icon element(s) */ -.ui-button-icon-only .ui-icon { - position: absolute; - top: 50%; - left: 50%; - margin-top: -8px; - margin-left: -8px; -} - -.ui-button.ui-icon-notext .ui-icon { - padding: 0; - width: 2.1em; - height: 2.1em; - text-indent: -9999px; - white-space: nowrap; - -} - -input.ui-button.ui-icon-notext .ui-icon { - width: auto; - height: auto; - text-indent: 0; - white-space: normal; - padding: .4em 1em; -} - -/* workarounds */ -/* Support: Firefox 5 - 40 */ -input.ui-button::-moz-focus-inner, -button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} -.ui-controlgroup { - vertical-align: middle; - display: inline-block; -} -.ui-controlgroup > .ui-controlgroup-item { - float: left; - margin-left: 0; - margin-right: 0; -} -.ui-controlgroup > .ui-controlgroup-item:focus, -.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus { - z-index: 9999; -} -.ui-controlgroup-vertical > .ui-controlgroup-item { - display: block; - float: none; - width: 100%; - margin-top: 0; - margin-bottom: 0; - text-align: left; -} -.ui-controlgroup-vertical .ui-controlgroup-item { - box-sizing: border-box; -} -.ui-controlgroup .ui-controlgroup-label { - padding: .4em 1em; -} -.ui-controlgroup .ui-controlgroup-label span { - font-size: 80%; -} -.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item { - border-left: none; -} -.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item { - border-top: none; -} -.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content { - border-right: none; -} -.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content { - border-bottom: none; -} - -/* Spinner specific style fixes */ -.ui-controlgroup-vertical .ui-spinner-input { - - /* Support: IE8 only, Android < 4.4 only */ - width: 75%; - width: calc( 100% - 2.4em ); -} -.ui-controlgroup-vertical .ui-spinner .ui-spinner-up { - border-top-style: solid; -} - -.ui-checkboxradio-label .ui-icon-background { - box-shadow: inset 1px 1px 1px #ccc; - border-radius: .12em; - border: none; -} -.ui-checkboxradio-radio-label .ui-icon-background { - width: 16px; - height: 16px; - border-radius: 1em; - overflow: visible; - border: none; -} -.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon, -.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon { - background-image: none; - width: 8px; - height: 8px; - border-width: 4px; - border-style: solid; -} -.ui-checkboxradio-disabled { - pointer-events: none; -} -.ui-datepicker { - width: 17em; - padding: .2em .2em 0; - display: none; -} -.ui-datepicker .ui-datepicker-header { - position: relative; - padding: .2em 0; -} -.ui-datepicker .ui-datepicker-prev, -.ui-datepicker .ui-datepicker-next { - position: absolute; - top: 2px; - width: 1.8em; - height: 1.8em; -} -.ui-datepicker .ui-datepicker-prev-hover, -.ui-datepicker .ui-datepicker-next-hover { - top: 1px; -} -.ui-datepicker .ui-datepicker-prev { - left: 2px; -} -.ui-datepicker .ui-datepicker-next { - right: 2px; -} -.ui-datepicker .ui-datepicker-prev-hover { - left: 1px; -} -.ui-datepicker .ui-datepicker-next-hover { - right: 1px; -} -.ui-datepicker .ui-datepicker-prev span, -.ui-datepicker .ui-datepicker-next span { - display: block; - position: absolute; - left: 50%; - margin-left: -8px; - top: 50%; - margin-top: -8px; -} -.ui-datepicker .ui-datepicker-title { - margin: 0 2.3em; - line-height: 1.8em; - text-align: center; -} -.ui-datepicker .ui-datepicker-title select { - font-size: 1em; - margin: 1px 0; -} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { - width: 45%; -} -.ui-datepicker table { - width: 100%; - font-size: .9em; - border-collapse: collapse; - margin: 0 0 .4em; -} -.ui-datepicker th { - padding: .7em .3em; - text-align: center; - font-weight: bold; - border: 0; -} -.ui-datepicker td { - border: 0; - padding: 1px; -} -.ui-datepicker td span, -.ui-datepicker td a { - display: block; - padding: .2em; - text-align: right; - text-decoration: none; -} -.ui-datepicker .ui-datepicker-buttonpane { - background-image: none; - margin: .7em 0 0 0; - padding: 0 .2em; - border-left: 0; - border-right: 0; - border-bottom: 0; -} -.ui-datepicker .ui-datepicker-buttonpane button { - float: right; - margin: .5em .2em .4em; - cursor: pointer; - padding: .2em .6em .3em .6em; - width: auto; - overflow: visible; -} -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { - float: left; -} - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { - width: auto; -} -.ui-datepicker-multi .ui-datepicker-group { - float: left; -} -.ui-datepicker-multi .ui-datepicker-group table { - width: 95%; - margin: 0 auto .4em; -} -.ui-datepicker-multi-2 .ui-datepicker-group { - width: 50%; -} -.ui-datepicker-multi-3 .ui-datepicker-group { - width: 33.3%; -} -.ui-datepicker-multi-4 .ui-datepicker-group { - width: 25%; -} -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { - border-left-width: 0; -} -.ui-datepicker-multi .ui-datepicker-buttonpane { - clear: left; -} -.ui-datepicker-row-break { - clear: both; - width: 100%; - font-size: 0; -} - -/* RTL support */ -.ui-datepicker-rtl { - direction: rtl; -} -.ui-datepicker-rtl .ui-datepicker-prev { - right: 2px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next { - left: 2px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-prev:hover { - right: 1px; - left: auto; -} -.ui-datepicker-rtl .ui-datepicker-next:hover { - left: 1px; - right: auto; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane { - clear: right; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button { - float: left; -} -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, -.ui-datepicker-rtl .ui-datepicker-group { - float: right; -} -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { - border-right-width: 0; - border-left-width: 1px; -} - -/* Icons */ -.ui-datepicker .ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; - left: .5em; - top: .3em; -} -.ui-dialog { - position: absolute; - top: 0; - left: 0; - padding: .2em; - outline: 0; -} -.ui-dialog .ui-dialog-titlebar { - padding: .4em 1em; - position: relative; -} -.ui-dialog .ui-dialog-title { - float: left; - margin: .1em 0; - white-space: nowrap; - width: 90%; - overflow: hidden; - text-overflow: ellipsis; -} -.ui-dialog .ui-dialog-titlebar-close { - position: absolute; - right: .3em; - top: 50%; - width: 20px; - margin: -10px 0 0 0; - padding: 1px; - height: 20px; -} -.ui-dialog .ui-dialog-content { - position: relative; - border: 0; - padding: .5em 1em; - background: none; - overflow: auto; -} -.ui-dialog .ui-dialog-buttonpane { - text-align: left; - border-width: 1px 0 0 0; - background-image: none; - margin-top: .5em; - padding: .3em 1em .5em .4em; -} -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { - float: right; -} -.ui-dialog .ui-dialog-buttonpane button { - margin: .5em .4em .5em 0; - cursor: pointer; -} -.ui-dialog .ui-resizable-n { - height: 2px; - top: 0; -} -.ui-dialog .ui-resizable-e { - width: 2px; - right: 0; -} -.ui-dialog .ui-resizable-s { - height: 2px; - bottom: 0; -} -.ui-dialog .ui-resizable-w { - width: 2px; - left: 0; -} -.ui-dialog .ui-resizable-se, -.ui-dialog .ui-resizable-sw, -.ui-dialog .ui-resizable-ne, -.ui-dialog .ui-resizable-nw { - width: 7px; - height: 7px; -} -.ui-dialog .ui-resizable-se { - right: 0; - bottom: 0; -} -.ui-dialog .ui-resizable-sw { - left: 0; - bottom: 0; -} -.ui-dialog .ui-resizable-ne { - right: 0; - top: 0; -} -.ui-dialog .ui-resizable-nw { - left: 0; - top: 0; -} -.ui-draggable .ui-dialog-titlebar { - cursor: move; -} -.ui-progressbar { - height: 2em; - text-align: left; - overflow: hidden; -} -.ui-progressbar .ui-progressbar-value { - margin: -1px; - height: 100%; -} -.ui-progressbar .ui-progressbar-overlay { - background: url("data:image/gif;base64,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"); - height: 100%; - filter: alpha(opacity=25); /* support: IE8 */ - opacity: 0.25; -} -.ui-progressbar-indeterminate .ui-progressbar-value { - background-image: none; -} -.ui-selectmenu-menu { - padding: 0; - margin: 0; - position: absolute; - top: 0; - left: 0; - display: none; -} -.ui-selectmenu-menu .ui-menu { - overflow: auto; - overflow-x: hidden; - padding-bottom: 1px; -} -.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { - font-size: 1em; - font-weight: bold; - line-height: 1.5; - padding: 2px 0.4em; - margin: 0.5em 0 0 0; - height: auto; - border: 0; -} -.ui-selectmenu-open { - display: block; -} -.ui-selectmenu-text { - display: block; - margin-right: 20px; - overflow: hidden; - text-overflow: ellipsis; -} -.ui-selectmenu-button.ui-button { - text-align: left; - white-space: nowrap; - width: 14em; -} -.ui-selectmenu-icon.ui-icon { - float: right; - margin-top: 0; -} -.ui-slider { - position: relative; - text-align: left; -} -.ui-slider .ui-slider-handle { - position: absolute; - z-index: 2; - width: 1.2em; - height: 1.2em; - cursor: default; - -ms-touch-action: none; - touch-action: none; -} -.ui-slider .ui-slider-range { - position: absolute; - z-index: 1; - font-size: .7em; - display: block; - border: 0; - background-position: 0 0; -} - -/* support: IE8 - See #6727 */ -.ui-slider.ui-state-disabled .ui-slider-handle, -.ui-slider.ui-state-disabled .ui-slider-range { - filter: inherit; -} - -.ui-slider-horizontal { - height: .8em; -} -.ui-slider-horizontal .ui-slider-handle { - top: -.3em; - margin-left: -.6em; -} -.ui-slider-horizontal .ui-slider-range { - top: 0; - height: 100%; -} -.ui-slider-horizontal .ui-slider-range-min { - left: 0; -} -.ui-slider-horizontal .ui-slider-range-max { - right: 0; -} - -.ui-slider-vertical { - width: .8em; - height: 100px; -} -.ui-slider-vertical .ui-slider-handle { - left: -.3em; - margin-left: 0; - margin-bottom: -.6em; -} -.ui-slider-vertical .ui-slider-range { - left: 0; - width: 100%; -} -.ui-slider-vertical .ui-slider-range-min { - bottom: 0; -} -.ui-slider-vertical .ui-slider-range-max { - top: 0; -} -.ui-spinner { - position: relative; - display: inline-block; - overflow: hidden; - padding: 0; - vertical-align: middle; -} -.ui-spinner-input { - border: none; - background: none; - color: inherit; - padding: .222em 0; - margin: .2em 0; - vertical-align: middle; - margin-left: .4em; - margin-right: 2em; -} -.ui-spinner-button { - width: 1.6em; - height: 50%; - font-size: .5em; - padding: 0; - margin: 0; - text-align: center; - position: absolute; - cursor: default; - display: block; - overflow: hidden; - right: 0; -} -/* more specificity required here to override default borders */ -.ui-spinner a.ui-spinner-button { - border-top-style: none; - border-bottom-style: none; - border-right-style: none; -} -.ui-spinner-up { - top: 0; -} -.ui-spinner-down { - bottom: 0; -} -.ui-tabs { - position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ - padding: .2em; -} -.ui-tabs .ui-tabs-nav { - margin: 0; - padding: .2em .2em 0; -} -.ui-tabs .ui-tabs-nav li { - list-style: none; - float: left; - position: relative; - top: 0; - margin: 1px .2em 0 0; - border-bottom-width: 0; - padding: 0; - white-space: nowrap; -} -.ui-tabs .ui-tabs-nav .ui-tabs-anchor { - float: left; - padding: .5em 1em; - text-decoration: none; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active { - margin-bottom: -1px; - padding-bottom: 1px; -} -.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, -.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { - cursor: text; -} -.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { - cursor: pointer; -} -.ui-tabs .ui-tabs-panel { - display: block; - border-width: 0; - padding: 1em 1.4em; - background: none; -} -.ui-tooltip { - padding: 8px; - position: absolute; - z-index: 9999; - max-width: 300px; -} -body .ui-tooltip { - border-width: 2px; -} - -/* Component containers -----------------------------------*/ -.ui-widget { - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; -} -.ui-widget .ui-widget { - font-size: 1em; -} -.ui-widget input, -.ui-widget select, -.ui-widget textarea, -.ui-widget button { - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; -} -.ui-widget.ui-widget-content { - border: 1px solid #c5c5c5; -} -.ui-widget-content { - border: 1px solid #dddddd; - background: #ffffff; - color: #333333; -} -.ui-widget-content a { - color: #333333; -} -.ui-widget-header { - border: 1px solid #dddddd; - background: #e9e9e9; - color: #333333; - font-weight: bold; -} -.ui-widget-header a { - color: #333333; -} - -/* Interaction states -----------------------------------*/ -.ui-state-default, -.ui-widget-content .ui-state-default, -.ui-widget-header .ui-state-default, -.ui-button, - -/* We use html here because we need a greater specificity to make sure disabled -works properly when clicked or hovered */ -html .ui-button.ui-state-disabled:hover, -html .ui-button.ui-state-disabled:active { - border: 1px solid #c5c5c5; - background: #f6f6f6; - font-weight: normal; - color: #454545; -} -.ui-state-default a, -.ui-state-default a:link, -.ui-state-default a:visited, -a.ui-button, -a:link.ui-button, -a:visited.ui-button, -.ui-button { - color: #454545; - text-decoration: none; -} -.ui-state-hover, -.ui-widget-content .ui-state-hover, -.ui-widget-header .ui-state-hover, -.ui-state-focus, -.ui-widget-content .ui-state-focus, -.ui-widget-header .ui-state-focus, -.ui-button:hover, -.ui-button:focus { - border: 1px solid #cccccc; - background: #ededed; - font-weight: normal; - color: #2b2b2b; -} -.ui-state-hover a, -.ui-state-hover a:hover, -.ui-state-hover a:link, -.ui-state-hover a:visited, -.ui-state-focus a, -.ui-state-focus a:hover, -.ui-state-focus a:link, -.ui-state-focus a:visited, -a.ui-button:hover, -a.ui-button:focus { - color: #2b2b2b; - text-decoration: none; -} - -.ui-visual-focus { - box-shadow: 0 0 3px 1px rgb(94, 158, 214); -} -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active, -a.ui-button:active, -.ui-button:active, -.ui-button.ui-state-active:hover { - border: 1px solid #003eff; - background: #007fff; - font-weight: normal; - color: #ffffff; -} -.ui-icon-background, -.ui-state-active .ui-icon-background { - border: #003eff; - background-color: #ffffff; -} -.ui-state-active a, -.ui-state-active a:link, -.ui-state-active a:visited { - color: #ffffff; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, -.ui-widget-content .ui-state-highlight, -.ui-widget-header .ui-state-highlight { - border: 1px solid #dad55e; - background: #fffa90; - color: #777620; -} -.ui-state-checked { - border: 1px solid #dad55e; - background: #fffa90; -} -.ui-state-highlight a, -.ui-widget-content .ui-state-highlight a, -.ui-widget-header .ui-state-highlight a { - color: #777620; -} -.ui-state-error, -.ui-widget-content .ui-state-error, -.ui-widget-header .ui-state-error { - border: 1px solid #f1a899; - background: #fddfdf; - color: #5f3f3f; -} -.ui-state-error a, -.ui-widget-content .ui-state-error a, -.ui-widget-header .ui-state-error a { - color: #5f3f3f; -} -.ui-state-error-text, -.ui-widget-content .ui-state-error-text, -.ui-widget-header .ui-state-error-text { - color: #5f3f3f; -} -.ui-priority-primary, -.ui-widget-content .ui-priority-primary, -.ui-widget-header .ui-priority-primary { - font-weight: bold; -} -.ui-priority-secondary, -.ui-widget-content .ui-priority-secondary, -.ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); /* support: IE8 */ - font-weight: normal; -} -.ui-state-disabled, -.ui-widget-content .ui-state-disabled, -.ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); /* support: IE8 */ - background-image: none; -} -.ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { - width: 16px; - height: 16px; -} -.ui-icon, -.ui-widget-content .ui-icon { - background-image: url("images/ui-icons_444444_256x240.png"); -} -.ui-widget-header .ui-icon { - background-image: url("images/ui-icons_444444_256x240.png"); -} -.ui-state-hover .ui-icon, -.ui-state-focus .ui-icon, -.ui-button:hover .ui-icon, -.ui-button:focus .ui-icon { - background-image: url("images/ui-icons_555555_256x240.png"); -} -.ui-state-active .ui-icon, -.ui-button:active .ui-icon { - background-image: url("images/ui-icons_ffffff_256x240.png"); -} -.ui-state-highlight .ui-icon, -.ui-button .ui-state-highlight.ui-icon { - background-image: url("images/ui-icons_777620_256x240.png"); -} -.ui-state-error .ui-icon, -.ui-state-error-text .ui-icon { - background-image: url("images/ui-icons_cc0000_256x240.png"); -} -.ui-button .ui-icon { - background-image: url("images/ui-icons_777777_256x240.png"); -} - -/* positioning */ -.ui-icon-blank { background-position: 16px 16px; } -.ui-icon-caret-1-n { background-position: 0 0; } -.ui-icon-caret-1-ne { background-position: -16px 0; } -.ui-icon-caret-1-e { background-position: -32px 0; } -.ui-icon-caret-1-se { background-position: -48px 0; } -.ui-icon-caret-1-s { background-position: -65px 0; } -.ui-icon-caret-1-sw { background-position: -80px 0; } -.ui-icon-caret-1-w { background-position: -96px 0; } -.ui-icon-caret-1-nw { background-position: -112px 0; } -.ui-icon-caret-2-n-s { background-position: -128px 0; } -.ui-icon-caret-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -65px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -65px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 1px -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-on { background-position: -96px -144px; } -.ui-icon-radio-off { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, -.ui-corner-top, -.ui-corner-left, -.ui-corner-tl { - border-top-left-radius: 3px; -} -.ui-corner-all, -.ui-corner-top, -.ui-corner-right, -.ui-corner-tr { - border-top-right-radius: 3px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-left, -.ui-corner-bl { - border-bottom-left-radius: 3px; -} -.ui-corner-all, -.ui-corner-bottom, -.ui-corner-right, -.ui-corner-br { - border-bottom-right-radius: 3px; -} - -/* Overlays */ -.ui-widget-overlay { - background: #aaaaaa; - opacity: .3; - filter: Alpha(Opacity=30); /* support: IE8 */ -} -.ui-widget-shadow { - -webkit-box-shadow: 0px 0px 5px #666666; - box-shadow: 0px 0px 5px #666666; -} diff --git a/app/static/app/js/vendor/potree/libs/jquery-ui.js b/app/static/app/js/vendor/potree/libs/jquery-ui.js deleted file mode 100644 index 9bae42df..00000000 --- a/app/static/app/js/vendor/potree/libs/jquery-ui.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! jQuery UI - v1.12.1 - 2017-04-16 -* http://jqueryui.com -* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/draggable.js, widgets/droppable.js, widgets/resizable.js, widgets/selectable.js, widgets/sortable.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/selectmenu.js, widgets/slider.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js -* Copyright jQuery Foundation and other contributors; Licensed MIT */ - -(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("
    "))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(p.inline?p.dpDiv.parent()[0]:p.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.1";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.length||"instance"!==n?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):r=void 0:(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var c=!1;t(document).on("mouseup",function(){c=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!c){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),c=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,c=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blurActiveElement(e),this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("
    ").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0) -},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.lefti[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&u(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var u=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&u(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=u(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0}; -t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.selectable",t.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("
    "),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new t.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t(" ",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t(""),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons")) -},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t(""); - this.element.attr('aria-activedescendant','j' + this._id + '_loading'); - this._data.core.li_height = this.get_container_ul().children("li").first().outerHeight() || 24; - this._data.core.node = this._create_prototype_node(); - /** - * triggered after the loading text is shown and before loading starts - * @event - * @name loading.jstree - */ - this.trigger("loading"); - this.load_node($.jstree.root); - }, - /** - * destroy an instance - * @name destroy() - * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact - */ - destroy : function (keep_html) { - /** - * triggered before the tree is destroyed - * @event - * @name destroy.jstree - */ - this.trigger("destroy"); - if(this._wrk) { - try { - window.URL.revokeObjectURL(this._wrk); - this._wrk = null; - } - catch (ignore) { } - } - if(!keep_html) { this.element.empty(); } - this.teardown(); - }, - /** - * Create prototype node - */ - _create_prototype_node : function () { - var _node = document.createElement('LI'), _temp1, _temp2; - _node.setAttribute('role', 'treeitem'); - _temp1 = document.createElement('I'); - _temp1.className = 'jstree-icon jstree-ocl'; - _temp1.setAttribute('role', 'presentation'); - _node.appendChild(_temp1); - _temp1 = document.createElement('A'); - _temp1.className = 'jstree-anchor'; - _temp1.setAttribute('href','#'); - _temp1.setAttribute('tabindex','-1'); - _temp2 = document.createElement('I'); - _temp2.className = 'jstree-icon jstree-themeicon'; - _temp2.setAttribute('role', 'presentation'); - _temp1.appendChild(_temp2); - _node.appendChild(_temp1); - _temp1 = _temp2 = null; - - return _node; - }, - /** - * part of the destroying of an instance. Used internally. - * @private - * @name teardown() - */ - teardown : function () { - this.unbind(); - this.element - .removeClass('jstree') - .removeData('jstree') - .find("[class^='jstree']") - .addBack() - .attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); }); - this.element = null; - }, - /** - * bind all events. Used internally. - * @private - * @name bind() - */ - bind : function () { - var word = '', - tout = null, - was_click = 0; - this.element - .on("dblclick.jstree", function (e) { - if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } - if(document.selection && document.selection.empty) { - document.selection.empty(); - } - else { - if(window.getSelection) { - var sel = window.getSelection(); - try { - sel.removeAllRanges(); - sel.collapse(); - } catch (ignore) { } - } - } - }) - .on("mousedown.jstree", $.proxy(function (e) { - if(e.target === this.element[0]) { - e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome) - was_click = +(new Date()); // ie does not allow to prevent losing focus - } - }, this)) - .on("mousedown.jstree", ".jstree-ocl", function (e) { - e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon - }) - .on("click.jstree", ".jstree-ocl", $.proxy(function (e) { - this.toggle_node(e.target); - }, this)) - .on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) { - if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } - if(this.settings.core.dblclick_toggle) { - this.toggle_node(e.target); - } - }, this)) - .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { - e.preventDefault(); - if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); } - this.activate_node(e.currentTarget, e); - }, this)) - .on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) { - if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } - if(e.which !== 32 && e.which !== 13 && (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)) { return true; } - var o = null; - if(this._data.core.rtl) { - if(e.which === 37) { e.which = 39; } - else if(e.which === 39) { e.which = 37; } - } - switch(e.which) { - case 32: // aria defines space only with Ctrl - if(e.ctrlKey) { - e.type = "click"; - $(e.currentTarget).trigger(e); - } - break; - case 13: // enter - e.type = "click"; - $(e.currentTarget).trigger(e); - break; - case 37: // left - e.preventDefault(); - if(this.is_open(e.currentTarget)) { - this.close_node(e.currentTarget); - } - else { - o = this.get_parent(e.currentTarget); - if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); } - } - break; - case 38: // up - e.preventDefault(); - o = this.get_prev_dom(e.currentTarget); - if(o && o.length) { o.children('.jstree-anchor').focus(); } - break; - case 39: // right - e.preventDefault(); - if(this.is_closed(e.currentTarget)) { - this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); }); - } - else if (this.is_open(e.currentTarget)) { - o = this.get_node(e.currentTarget, true).children('.jstree-children')[0]; - if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); } - } - break; - case 40: // down - e.preventDefault(); - o = this.get_next_dom(e.currentTarget); - if(o && o.length) { o.children('.jstree-anchor').focus(); } - break; - case 106: // aria defines * on numpad as open_all - not very common - this.open_all(); - break; - case 36: // home - e.preventDefault(); - o = this._firstChild(this.get_container_ul()[0]); - if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); } - break; - case 35: // end - e.preventDefault(); - this.element.find('.jstree-anchor').filter(':visible').last().focus(); - break; - case 113: // f2 - safe to include - if check_callback is false it will fail - e.preventDefault(); - this.edit(e.currentTarget); - break; - default: - break; - /*! - // delete - case 46: - e.preventDefault(); - o = this.get_node(e.currentTarget); - if(o && o.id && o.id !== $.jstree.root) { - o = this.is_selected(o) ? this.get_selected() : o; - this.delete_node(o); - } - break; - - */ - } - }, this)) - .on("load_node.jstree", $.proxy(function (e, data) { - if(data.status) { - if(data.node.id === $.jstree.root && !this._data.core.loaded) { - this._data.core.loaded = true; - if(this._firstChild(this.get_container_ul()[0])) { - this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); - } - /** - * triggered after the root node is loaded for the first time - * @event - * @name loaded.jstree - */ - this.trigger("loaded"); - } - if(!this._data.core.ready) { - setTimeout($.proxy(function() { - if(this.element && !this.get_container_ul().find('.jstree-loading').length) { - this._data.core.ready = true; - if(this._data.core.selected.length) { - if(this.settings.core.expand_selected_onload) { - var tmp = [], i, j; - for(i = 0, j = this._data.core.selected.length; i < j; i++) { - tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents); - } - tmp = $.vakata.array_unique(tmp); - for(i = 0, j = tmp.length; i < j; i++) { - this.open_node(tmp[i], false, 0); - } - } - this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected }); - } - /** - * triggered after all nodes are finished loading - * @event - * @name ready.jstree - */ - this.trigger("ready"); - } - }, this), 0); - } - } - }, this)) - // quick searching when the tree is focused - .on('keypress.jstree', $.proxy(function (e) { - if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } - if(tout) { clearTimeout(tout); } - tout = setTimeout(function () { - word = ''; - }, 500); - - var chr = String.fromCharCode(e.which).toLowerCase(), - col = this.element.find('.jstree-anchor').filter(':visible'), - ind = col.index(document.activeElement) || 0, - end = false; - word += chr; - - // match for whole word from current node down (including the current node) - if(word.length > 1) { - col.slice(ind).each($.proxy(function (i, v) { - if($(v).text().toLowerCase().indexOf(word) === 0) { - $(v).focus(); - end = true; - return false; - } - }, this)); - if(end) { return; } - - // match for whole word from the beginning of the tree - col.slice(0, ind).each($.proxy(function (i, v) { - if($(v).text().toLowerCase().indexOf(word) === 0) { - $(v).focus(); - end = true; - return false; - } - }, this)); - if(end) { return; } - } - // list nodes that start with that letter (only if word consists of a single char) - if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) { - // search for the next node starting with that letter - col.slice(ind + 1).each($.proxy(function (i, v) { - if($(v).text().toLowerCase().charAt(0) === chr) { - $(v).focus(); - end = true; - return false; - } - }, this)); - if(end) { return; } - - // search from the beginning - col.slice(0, ind + 1).each($.proxy(function (i, v) { - if($(v).text().toLowerCase().charAt(0) === chr) { - $(v).focus(); - end = true; - return false; - } - }, this)); - if(end) { return; } - } - }, this)) - // THEME RELATED - .on("init.jstree", $.proxy(function () { - var s = this.settings.core.themes; - this._data.core.themes.dots = s.dots; - this._data.core.themes.stripes = s.stripes; - this._data.core.themes.icons = s.icons; - this._data.core.themes.ellipsis = s.ellipsis; - this.set_theme(s.name || "default", s.url); - this.set_theme_variant(s.variant); - }, this)) - .on("loading.jstree", $.proxy(function () { - this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ](); - this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ](); - this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ](); - this[ this._data.core.themes.ellipsis ? "show_ellipsis" : "hide_ellipsis" ](); - }, this)) - .on('blur.jstree', '.jstree-anchor', $.proxy(function (e) { - this._data.core.focused = null; - $(e.currentTarget).filter('.jstree-hovered').mouseleave(); - this.element.attr('tabindex', '0'); - }, this)) - .on('focus.jstree', '.jstree-anchor', $.proxy(function (e) { - var tmp = this.get_node(e.currentTarget); - if(tmp && tmp.id) { - this._data.core.focused = tmp.id; - } - this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave(); - $(e.currentTarget).mouseenter(); - this.element.attr('tabindex', '-1'); - }, this)) - .on('focus.jstree', $.proxy(function () { - if(+(new Date()) - was_click > 500 && !this._data.core.focused) { - was_click = 0; - var act = this.get_node(this.element.attr('aria-activedescendant'), true); - if(act) { - act.find('> .jstree-anchor').focus(); - } - } - }, this)) - .on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) { - this.hover_node(e.currentTarget); - }, this)) - .on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) { - this.dehover_node(e.currentTarget); - }, this)); - }, - /** - * part of the destroying of an instance. Used internally. - * @private - * @name unbind() - */ - unbind : function () { - this.element.off('.jstree'); - $(document).off('.jstree-' + this._id); - }, - /** - * trigger an event. Used internally. - * @private - * @name trigger(ev [, data]) - * @param {String} ev the name of the event to trigger - * @param {Object} data additional data to pass with the event - */ - trigger : function (ev, data) { - if(!data) { - data = {}; - } - data.instance = this; - this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data); - }, - /** - * returns the jQuery extended instance container - * @name get_container() - * @return {jQuery} - */ - get_container : function () { - return this.element; - }, - /** - * returns the jQuery extended main UL node inside the instance container. Used internally. - * @private - * @name get_container_ul() - * @return {jQuery} - */ - get_container_ul : function () { - return this.element.children(".jstree-children").first(); - }, - /** - * gets string replacements (localization). Used internally. - * @private - * @name get_string(key) - * @param {String} key - * @return {String} - */ - get_string : function (key) { - var a = this.settings.core.strings; - if($.isFunction(a)) { return a.call(this, key); } - if(a && a[key]) { return a[key]; } - return key; - }, - /** - * gets the first child of a DOM node. Used internally. - * @private - * @name _firstChild(dom) - * @param {DOMElement} dom - * @return {DOMElement} - */ - _firstChild : function (dom) { - dom = dom ? dom.firstChild : null; - while(dom !== null && dom.nodeType !== 1) { - dom = dom.nextSibling; - } - return dom; - }, - /** - * gets the next sibling of a DOM node. Used internally. - * @private - * @name _nextSibling(dom) - * @param {DOMElement} dom - * @return {DOMElement} - */ - _nextSibling : function (dom) { - dom = dom ? dom.nextSibling : null; - while(dom !== null && dom.nodeType !== 1) { - dom = dom.nextSibling; - } - return dom; - }, - /** - * gets the previous sibling of a DOM node. Used internally. - * @private - * @name _previousSibling(dom) - * @param {DOMElement} dom - * @return {DOMElement} - */ - _previousSibling : function (dom) { - dom = dom ? dom.previousSibling : null; - while(dom !== null && dom.nodeType !== 1) { - dom = dom.previousSibling; - } - return dom; - }, - /** - * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc) - * @name get_node(obj [, as_dom]) - * @param {mixed} obj - * @param {Boolean} as_dom - * @return {Object|jQuery} - */ - get_node : function (obj, as_dom) { - if(obj && obj.id) { - obj = obj.id; - } - var dom; - try { - if(this._model.data[obj]) { - obj = this._model.data[obj]; - } - else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) { - obj = this._model.data[obj.replace(/^#/, '')]; - } - else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { - obj = this._model.data[dom.closest('.jstree-node').attr('id')]; - } - else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { - obj = this._model.data[dom.closest('.jstree-node').attr('id')]; - } - else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) { - obj = this._model.data[$.jstree.root]; - } - else { - return false; - } - - if(as_dom) { - obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); - } - return obj; - } catch (ex) { return false; } - }, - /** - * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array) - * @name get_path(obj [, glue, ids]) - * @param {mixed} obj the node - * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned - * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used - * @return {mixed} - */ - get_path : function (obj, glue, ids) { - obj = obj.parents ? obj : this.get_node(obj); - if(!obj || obj.id === $.jstree.root || !obj.parents) { - return false; - } - var i, j, p = []; - p.push(ids ? obj.id : obj.text); - for(i = 0, j = obj.parents.length; i < j; i++) { - p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i])); - } - p = p.reverse().slice(1); - return glue ? p.join(glue) : p; - }, - /** - * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned. - * @name get_next_dom(obj [, strict]) - * @param {mixed} obj - * @param {Boolean} strict - * @return {jQuery} - */ - get_next_dom : function (obj, strict) { - var tmp; - obj = this.get_node(obj, true); - if(obj[0] === this.element[0]) { - tmp = this._firstChild(this.get_container_ul()[0]); - while (tmp && tmp.offsetHeight === 0) { - tmp = this._nextSibling(tmp); - } - return tmp ? $(tmp) : false; - } - if(!obj || !obj.length) { - return false; - } - if(strict) { - tmp = obj[0]; - do { - tmp = this._nextSibling(tmp); - } while (tmp && tmp.offsetHeight === 0); - return tmp ? $(tmp) : false; - } - if(obj.hasClass("jstree-open")) { - tmp = this._firstChild(obj.children('.jstree-children')[0]); - while (tmp && tmp.offsetHeight === 0) { - tmp = this._nextSibling(tmp); - } - if(tmp !== null) { - return $(tmp); - } - } - tmp = obj[0]; - do { - tmp = this._nextSibling(tmp); - } while (tmp && tmp.offsetHeight === 0); - if(tmp !== null) { - return $(tmp); - } - return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first(); - }, - /** - * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned. - * @name get_prev_dom(obj [, strict]) - * @param {mixed} obj - * @param {Boolean} strict - * @return {jQuery} - */ - get_prev_dom : function (obj, strict) { - var tmp; - obj = this.get_node(obj, true); - if(obj[0] === this.element[0]) { - tmp = this.get_container_ul()[0].lastChild; - while (tmp && tmp.offsetHeight === 0) { - tmp = this._previousSibling(tmp); - } - return tmp ? $(tmp) : false; - } - if(!obj || !obj.length) { - return false; - } - if(strict) { - tmp = obj[0]; - do { - tmp = this._previousSibling(tmp); - } while (tmp && tmp.offsetHeight === 0); - return tmp ? $(tmp) : false; - } - tmp = obj[0]; - do { - tmp = this._previousSibling(tmp); - } while (tmp && tmp.offsetHeight === 0); - if(tmp !== null) { - obj = $(tmp); - while(obj.hasClass("jstree-open")) { - obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last"); - } - return obj; - } - tmp = obj[0].parentNode.parentNode; - return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false; - }, - /** - * get the parent ID of a node - * @name get_parent(obj) - * @param {mixed} obj - * @return {String} - */ - get_parent : function (obj) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - return obj.parent; - }, - /** - * get a jQuery collection of all the children of a node (node must be rendered), returns false on error - * @name get_children_dom(obj) - * @param {mixed} obj - * @return {jQuery} - */ - get_children_dom : function (obj) { - obj = this.get_node(obj, true); - if(obj[0] === this.element[0]) { - return this.get_container_ul().children(".jstree-node"); - } - if(!obj || !obj.length) { - return false; - } - return obj.children(".jstree-children").children(".jstree-node"); - }, - /** - * checks if a node has children - * @name is_parent(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_parent : function (obj) { - obj = this.get_node(obj); - return obj && (obj.state.loaded === false || obj.children.length > 0); - }, - /** - * checks if a node is loaded (its children are available) - * @name is_loaded(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_loaded : function (obj) { - obj = this.get_node(obj); - return obj && obj.state.loaded; - }, - /** - * check if a node is currently loading (fetching children) - * @name is_loading(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_loading : function (obj) { - obj = this.get_node(obj); - return obj && obj.state && obj.state.loading; - }, - /** - * check if a node is opened - * @name is_open(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_open : function (obj) { - obj = this.get_node(obj); - return obj && obj.state.opened; - }, - /** - * check if a node is in a closed state - * @name is_closed(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_closed : function (obj) { - obj = this.get_node(obj); - return obj && this.is_parent(obj) && !obj.state.opened; - }, - /** - * check if a node has no children - * @name is_leaf(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_leaf : function (obj) { - return !this.is_parent(obj); - }, - /** - * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array. - * @name load_node(obj [, callback]) - * @param {mixed} obj - * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status - * @return {Boolean} - * @trigger load_node.jstree - */ - load_node : function (obj, callback) { - var k, l, i, j, c; - if($.isArray(obj)) { - this._load_nodes(obj.slice(), callback); - return true; - } - obj = this.get_node(obj); - if(!obj) { - if(callback) { callback.call(this, obj, false); } - return false; - } - // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again? - if(obj.state.loaded) { - obj.state.loaded = false; - for(i = 0, j = obj.parents.length; i < j; i++) { - this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { - return $.inArray(v, obj.children_d) === -1; - }); - } - for(k = 0, l = obj.children_d.length; k < l; k++) { - if(this._model.data[obj.children_d[k]].state.selected) { - c = true; - } - delete this._model.data[obj.children_d[k]]; - } - if (c) { - this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { - return $.inArray(v, obj.children_d) === -1; - }); - } - obj.children = []; - obj.children_d = []; - if(c) { - this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected }); - } - } - obj.state.failed = false; - obj.state.loading = true; - this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true); - this._load_node(obj, $.proxy(function (status) { - obj = this._model.data[obj.id]; - obj.state.loading = false; - obj.state.loaded = status; - obj.state.failed = !obj.state.loaded; - var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false; - for(i = 0, j = obj.children.length; i < j; i++) { - if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) { - has_children = true; - break; - } - } - if(obj.state.loaded && dom && dom.length) { - dom.removeClass('jstree-closed jstree-open jstree-leaf'); - if (!has_children) { - dom.addClass('jstree-leaf'); - } - else { - if (obj.id !== '#') { - dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed'); - } - } - } - dom.removeClass("jstree-loading").attr('aria-busy',false); - /** - * triggered after a node is loaded - * @event - * @name load_node.jstree - * @param {Object} node the node that was loading - * @param {Boolean} status was the node loaded successfully - */ - this.trigger('load_node', { "node" : obj, "status" : status }); - if(callback) { - callback.call(this, obj, status); - } - }, this)); - return true; - }, - /** - * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally. - * @private - * @name _load_nodes(nodes [, callback]) - * @param {array} nodes - * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes - */ - _load_nodes : function (nodes, callback, is_callback, force_reload) { - var r = true, - c = function () { this._load_nodes(nodes, callback, true); }, - m = this._model.data, i, j, tmp = []; - for(i = 0, j = nodes.length; i < j; i++) { - if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) { - if(!this.is_loading(nodes[i])) { - this.load_node(nodes[i], c); - } - r = false; - } - } - if(r) { - for(i = 0, j = nodes.length; i < j; i++) { - if(m[nodes[i]] && m[nodes[i]].state.loaded) { - tmp.push(nodes[i]); - } - } - if(callback && !callback.done) { - callback.call(this, tmp); - callback.done = true; - } - } - }, - /** - * loads all unloaded nodes - * @name load_all([obj, callback]) - * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree - * @param {function} callback a function to be executed once loading all the nodes is complete, - * @trigger load_all.jstree - */ - load_all : function (obj, callback) { - if(!obj) { obj = $.jstree.root; } - obj = this.get_node(obj); - if(!obj) { return false; } - var to_load = [], - m = this._model.data, - c = m[obj.id].children_d, - i, j; - if(obj.state && !obj.state.loaded) { - to_load.push(obj.id); - } - for(i = 0, j = c.length; i < j; i++) { - if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) { - to_load.push(c[i]); - } - } - if(to_load.length) { - this._load_nodes(to_load, function () { - this.load_all(obj, callback); - }); - } - else { - /** - * triggered after a load_all call completes - * @event - * @name load_all.jstree - * @param {Object} node the recursively loaded node - */ - if(callback) { callback.call(this, obj); } - this.trigger('load_all', { "node" : obj }); - } - }, - /** - * handles the actual loading of a node. Used only internally. - * @private - * @name _load_node(obj [, callback]) - * @param {mixed} obj - * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status - * @return {Boolean} - */ - _load_node : function (obj, callback) { - var s = this.settings.core.data, t; - var notTextOrCommentNode = function notTextOrCommentNode () { - return this.nodeType !== 3 && this.nodeType !== 8; - }; - // use original HTML - if(!s) { - if(obj.id === $.jstree.root) { - return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) { - callback.call(this, status); - }); - } - else { - return callback.call(this, false); - } - // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false); - } - if($.isFunction(s)) { - return s.call(this, obj, $.proxy(function (d) { - if(d === false) { - callback.call(this, false); - } - else { - this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) { - callback.call(this, status); - }); - } - // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d)); - }, this)); - } - if(typeof s === 'object') { - if(s.url) { - s = $.extend(true, {}, s); - if($.isFunction(s.url)) { - s.url = s.url.call(this, obj); - } - if($.isFunction(s.data)) { - s.data = s.data.call(this, obj); - } - return $.ajax(s) - .done($.proxy(function (d,t,x) { - var type = x.getResponseHeader('Content-Type'); - if((type && type.indexOf('json') !== -1) || typeof d === "object") { - return this._append_json_data(obj, d, function (status) { callback.call(this, status); }); - //return callback.call(this, this._append_json_data(obj, d)); - } - if((type && type.indexOf('html') !== -1) || typeof d === "string") { - return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); }); - // return callback.call(this, this._append_html_data(obj, $(d))); - } - this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) }; - this.settings.core.error.call(this, this._data.core.last_error); - return callback.call(this, false); - }, this)) - .fail($.proxy(function (f) { - this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) }; - callback.call(this, false); - this.settings.core.error.call(this, this._data.core.last_error); - }, this)); - } - if ($.isArray(s)) { - t = $.extend(true, [], s); - } else if ($.isPlainObject(s)) { - t = $.extend(true, {}, s); - } else { - t = s; - } - if(obj.id === $.jstree.root) { - return this._append_json_data(obj, t, function (status) { - callback.call(this, status); - }); - } - else { - this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; - this.settings.core.error.call(this, this._data.core.last_error); - return callback.call(this, false); - } - //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) ); - } - if(typeof s === 'string') { - if(obj.id === $.jstree.root) { - return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) { - callback.call(this, status); - }); - } - else { - this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; - this.settings.core.error.call(this, this._data.core.last_error); - return callback.call(this, false); - } - //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) ); - } - return callback.call(this, false); - }, - /** - * adds a node to the list of nodes to redraw. Used only internally. - * @private - * @name _node_changed(obj [, callback]) - * @param {mixed} obj - */ - _node_changed : function (obj) { - obj = this.get_node(obj); - if (obj && $.inArray(obj.id, this._model.changed) === -1) { - this._model.changed.push(obj.id); - } - }, - /** - * appends HTML content to the tree. Used internally. - * @private - * @name _append_html_data(obj, data) - * @param {mixed} obj the node to append to - * @param {String} data the HTML string to parse and append - * @trigger model.jstree, changed.jstree - */ - _append_html_data : function (dom, data, cb) { - dom = this.get_node(dom); - dom.children = []; - dom.children_d = []; - var dat = data.is('ul') ? data.children() : data, - par = dom.id, - chd = [], - dpc = [], - m = this._model.data, - p = m[par], - s = this._data.core.selected.length, - tmp, i, j; - dat.each($.proxy(function (i, v) { - tmp = this._parse_model_from_html($(v), par, p.parents.concat()); - if(tmp) { - chd.push(tmp); - dpc.push(tmp); - if(m[tmp].children_d.length) { - dpc = dpc.concat(m[tmp].children_d); - } - } - }, this)); - p.children = chd; - p.children_d = dpc; - for(i = 0, j = p.parents.length; i < j; i++) { - m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); - } - /** - * triggered when new data is inserted to the tree model - * @event - * @name model.jstree - * @param {Array} nodes an array of node IDs - * @param {String} parent the parent ID of the nodes - */ - this.trigger('model', { "nodes" : dpc, 'parent' : par }); - if(par !== $.jstree.root) { - this._node_changed(par); - this.redraw(); - } - else { - this.get_container_ul().children('.jstree-initial-node').remove(); - this.redraw(true); - } - if(this._data.core.selected.length !== s) { - this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); - } - cb.call(this, true); - }, - /** - * appends JSON content to the tree. Used internally. - * @private - * @name _append_json_data(obj, data) - * @param {mixed} obj the node to append to - * @param {String} data the JSON object to parse and append - * @param {Boolean} force_processing internal param - do not set - * @trigger model.jstree, changed.jstree - */ - _append_json_data : function (dom, data, cb, force_processing) { - if(this.element === null) { return; } - dom = this.get_node(dom); - dom.children = []; - dom.children_d = []; - // *%$@!!! - if(data.d) { - data = data.d; - if(typeof data === "string") { - data = JSON.parse(data); - } - } - if(!$.isArray(data)) { data = [data]; } - var w = null, - args = { - 'df' : this._model.default_state, - 'dat' : data, - 'par' : dom.id, - 'm' : this._model.data, - 't_id' : this._id, - 't_cnt' : this._cnt, - 'sel' : this._data.core.selected - }, - func = function (data, undefined) { - if(data.data) { data = data.data; } - var dat = data.dat, - par = data.par, - chd = [], - dpc = [], - add = [], - df = data.df, - t_id = data.t_id, - t_cnt = data.t_cnt, - m = data.m, - p = m[par], - sel = data.sel, - tmp, i, j, rslt, - parse_flat = function (d, p, ps) { - if(!ps) { ps = []; } - else { ps = ps.concat(); } - if(p) { ps.unshift(p); } - var tid = d.id.toString(), - i, j, c, e, - tmp = { - id : tid, - text : d.text || '', - icon : d.icon !== undefined ? d.icon : true, - parent : p, - parents : ps, - children : d.children || [], - children_d : d.children_d || [], - data : d.data, - state : { }, - li_attr : { id : false }, - a_attr : { href : '#' }, - original : false - }; - for(i in df) { - if(df.hasOwnProperty(i)) { - tmp.state[i] = df[i]; - } - } - if(d && d.data && d.data.jstree && d.data.jstree.icon) { - tmp.icon = d.data.jstree.icon; - } - if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { - tmp.icon = true; - } - if(d && d.data) { - tmp.data = d.data; - if(d.data.jstree) { - for(i in d.data.jstree) { - if(d.data.jstree.hasOwnProperty(i)) { - tmp.state[i] = d.data.jstree[i]; - } - } - } - } - if(d && typeof d.state === 'object') { - for (i in d.state) { - if(d.state.hasOwnProperty(i)) { - tmp.state[i] = d.state[i]; - } - } - } - if(d && typeof d.li_attr === 'object') { - for (i in d.li_attr) { - if(d.li_attr.hasOwnProperty(i)) { - tmp.li_attr[i] = d.li_attr[i]; - } - } - } - if(!tmp.li_attr.id) { - tmp.li_attr.id = tid; - } - if(d && typeof d.a_attr === 'object') { - for (i in d.a_attr) { - if(d.a_attr.hasOwnProperty(i)) { - tmp.a_attr[i] = d.a_attr[i]; - } - } - } - if(d && d.children && d.children === true) { - tmp.state.loaded = false; - tmp.children = []; - tmp.children_d = []; - } - m[tmp.id] = tmp; - for(i = 0, j = tmp.children.length; i < j; i++) { - c = parse_flat(m[tmp.children[i]], tmp.id, ps); - e = m[c]; - tmp.children_d.push(c); - if(e.children_d.length) { - tmp.children_d = tmp.children_d.concat(e.children_d); - } - } - delete d.data; - delete d.children; - m[tmp.id].original = d; - if(tmp.state.selected) { - add.push(tmp.id); - } - return tmp.id; - }, - parse_nest = function (d, p, ps) { - if(!ps) { ps = []; } - else { ps = ps.concat(); } - if(p) { ps.unshift(p); } - var tid = false, i, j, c, e, tmp; - do { - tid = 'j' + t_id + '_' + (++t_cnt); - } while(m[tid]); - - tmp = { - id : false, - text : typeof d === 'string' ? d : '', - icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, - parent : p, - parents : ps, - children : [], - children_d : [], - data : null, - state : { }, - li_attr : { id : false }, - a_attr : { href : '#' }, - original : false - }; - for(i in df) { - if(df.hasOwnProperty(i)) { - tmp.state[i] = df[i]; - } - } - if(d && d.id) { tmp.id = d.id.toString(); } - if(d && d.text) { tmp.text = d.text; } - if(d && d.data && d.data.jstree && d.data.jstree.icon) { - tmp.icon = d.data.jstree.icon; - } - if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { - tmp.icon = true; - } - if(d && d.data) { - tmp.data = d.data; - if(d.data.jstree) { - for(i in d.data.jstree) { - if(d.data.jstree.hasOwnProperty(i)) { - tmp.state[i] = d.data.jstree[i]; - } - } - } - } - if(d && typeof d.state === 'object') { - for (i in d.state) { - if(d.state.hasOwnProperty(i)) { - tmp.state[i] = d.state[i]; - } - } - } - if(d && typeof d.li_attr === 'object') { - for (i in d.li_attr) { - if(d.li_attr.hasOwnProperty(i)) { - tmp.li_attr[i] = d.li_attr[i]; - } - } - } - if(tmp.li_attr.id && !tmp.id) { - tmp.id = tmp.li_attr.id.toString(); - } - if(!tmp.id) { - tmp.id = tid; - } - if(!tmp.li_attr.id) { - tmp.li_attr.id = tmp.id; - } - if(d && typeof d.a_attr === 'object') { - for (i in d.a_attr) { - if(d.a_attr.hasOwnProperty(i)) { - tmp.a_attr[i] = d.a_attr[i]; - } - } - } - if(d && d.children && d.children.length) { - for(i = 0, j = d.children.length; i < j; i++) { - c = parse_nest(d.children[i], tmp.id, ps); - e = m[c]; - tmp.children.push(c); - if(e.children_d.length) { - tmp.children_d = tmp.children_d.concat(e.children_d); - } - } - tmp.children_d = tmp.children_d.concat(tmp.children); - } - if(d && d.children && d.children === true) { - tmp.state.loaded = false; - tmp.children = []; - tmp.children_d = []; - } - delete d.data; - delete d.children; - tmp.original = d; - m[tmp.id] = tmp; - if(tmp.state.selected) { - add.push(tmp.id); - } - return tmp.id; - }; - - if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) { - // Flat JSON support (for easy import from DB): - // 1) convert to object (foreach) - for(i = 0, j = dat.length; i < j; i++) { - if(!dat[i].children) { - dat[i].children = []; - } - if(!dat[i].state) { - dat[i].state = {}; - } - m[dat[i].id.toString()] = dat[i]; - } - // 2) populate children (foreach) - for(i = 0, j = dat.length; i < j; i++) { - if (!m[dat[i].parent.toString()]) { - this._data.core.last_error = { 'error' : 'parse', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Node with invalid parent', 'data' : JSON.stringify({ 'id' : dat[i].id.toString(), 'parent' : dat[i].parent.toString() }) }; - this.settings.core.error.call(this, this._data.core.last_error); - continue; - } - - m[dat[i].parent.toString()].children.push(dat[i].id.toString()); - // populate parent.children_d - p.children_d.push(dat[i].id.toString()); - } - // 3) normalize && populate parents and children_d with recursion - for(i = 0, j = p.children.length; i < j; i++) { - tmp = parse_flat(m[p.children[i]], par, p.parents.concat()); - dpc.push(tmp); - if(m[tmp].children_d.length) { - dpc = dpc.concat(m[tmp].children_d); - } - } - for(i = 0, j = p.parents.length; i < j; i++) { - m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); - } - // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true; - rslt = { - 'cnt' : t_cnt, - 'mod' : m, - 'sel' : sel, - 'par' : par, - 'dpc' : dpc, - 'add' : add - }; - } - else { - for(i = 0, j = dat.length; i < j; i++) { - tmp = parse_nest(dat[i], par, p.parents.concat()); - if(tmp) { - chd.push(tmp); - dpc.push(tmp); - if(m[tmp].children_d.length) { - dpc = dpc.concat(m[tmp].children_d); - } - } - } - p.children = chd; - p.children_d = dpc; - for(i = 0, j = p.parents.length; i < j; i++) { - m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); - } - rslt = { - 'cnt' : t_cnt, - 'mod' : m, - 'sel' : sel, - 'par' : par, - 'dpc' : dpc, - 'add' : add - }; - } - if(typeof window === 'undefined' || typeof window.document === 'undefined') { - postMessage(rslt); - } - else { - return rslt; - } - }, - rslt = function (rslt, worker) { - if(this.element === null) { return; } - this._cnt = rslt.cnt; - var i, m = this._model.data; - for (i in m) { - if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) { - rslt.mod[i].state.loading = true; - } - } - this._model.data = rslt.mod; // breaks the reference in load_node - careful - - if(worker) { - var j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(); - m = this._model.data; - // if selection was changed while calculating in worker - if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) { - // deselect nodes that are no longer selected - for(i = 0, j = r.length; i < j; i++) { - if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) { - m[r[i]].state.selected = false; - } - } - // select nodes that were selected in the mean time - for(i = 0, j = s.length; i < j; i++) { - if($.inArray(s[i], r) === -1) { - m[s[i]].state.selected = true; - } - } - } - } - if(rslt.add.length) { - this._data.core.selected = this._data.core.selected.concat(rslt.add); - } - - this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par }); - - if(rslt.par !== $.jstree.root) { - this._node_changed(rslt.par); - this.redraw(); - } - else { - // this.get_container_ul().children('.jstree-initial-node').remove(); - this.redraw(true); - } - if(rslt.add.length) { - this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); - } - cb.call(this, true); - }; - if(this.settings.core.worker && window.Blob && window.URL && window.Worker) { - try { - if(this._wrk === null) { - this._wrk = window.URL.createObjectURL( - new window.Blob( - ['self.onmessage = ' + func.toString()], - {type:"text/javascript"} - ) - ); - } - if(!this._data.core.working || force_processing) { - this._data.core.working = true; - w = new window.Worker(this._wrk); - w.onmessage = $.proxy(function (e) { - rslt.call(this, e.data, true); - try { w.terminate(); w = null; } catch(ignore) { } - if(this._data.core.worker_queue.length) { - this._append_json_data.apply(this, this._data.core.worker_queue.shift()); - } - else { - this._data.core.working = false; - } - }, this); - if(!args.par) { - if(this._data.core.worker_queue.length) { - this._append_json_data.apply(this, this._data.core.worker_queue.shift()); - } - else { - this._data.core.working = false; - } - } - else { - w.postMessage(args); - } - } - else { - this._data.core.worker_queue.push([dom, data, cb, true]); - } - } - catch(e) { - rslt.call(this, func(args), false); - if(this._data.core.worker_queue.length) { - this._append_json_data.apply(this, this._data.core.worker_queue.shift()); - } - else { - this._data.core.working = false; - } - } - } - else { - rslt.call(this, func(args), false); - } - }, - /** - * parses a node from a jQuery object and appends them to the in memory tree model. Used internally. - * @private - * @name _parse_model_from_html(d [, p, ps]) - * @param {jQuery} d the jQuery object to parse - * @param {String} p the parent ID - * @param {Array} ps list of all parents - * @return {String} the ID of the object added to the model - */ - _parse_model_from_html : function (d, p, ps) { - if(!ps) { ps = []; } - else { ps = [].concat(ps); } - if(p) { ps.unshift(p); } - var c, e, m = this._model.data, - data = { - id : false, - text : false, - icon : true, - parent : p, - parents : ps, - children : [], - children_d : [], - data : null, - state : { }, - li_attr : { id : false }, - a_attr : { href : '#' }, - original : false - }, i, tmp, tid; - for(i in this._model.default_state) { - if(this._model.default_state.hasOwnProperty(i)) { - data.state[i] = this._model.default_state[i]; - } - } - tmp = $.vakata.attributes(d, true); - $.each(tmp, function (i, v) { - v = $.trim(v); - if(!v.length) { return true; } - data.li_attr[i] = v; - if(i === 'id') { - data.id = v.toString(); - } - }); - tmp = d.children('a').first(); - if(tmp.length) { - tmp = $.vakata.attributes(tmp, true); - $.each(tmp, function (i, v) { - v = $.trim(v); - if(v.length) { - data.a_attr[i] = v; - } - }); - } - tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone(); - tmp.children("ins, i, ul").remove(); - tmp = tmp.html(); - tmp = $('
    ').html(tmp); - data.text = this.settings.core.force_text ? tmp.text() : tmp.html(); - tmp = d.data(); - data.data = tmp ? $.extend(true, {}, tmp) : null; - data.state.opened = d.hasClass('jstree-open'); - data.state.selected = d.children('a').hasClass('jstree-clicked'); - data.state.disabled = d.children('a').hasClass('jstree-disabled'); - if(data.data && data.data.jstree) { - for(i in data.data.jstree) { - if(data.data.jstree.hasOwnProperty(i)) { - data.state[i] = data.data.jstree[i]; - } - } - } - tmp = d.children("a").children(".jstree-themeicon"); - if(tmp.length) { - data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel'); - } - if(data.state.icon !== undefined) { - data.icon = data.state.icon; - } - if(data.icon === undefined || data.icon === null || data.icon === "") { - data.icon = true; - } - tmp = d.children("ul").children("li"); - do { - tid = 'j' + this._id + '_' + (++this._cnt); - } while(m[tid]); - data.id = data.li_attr.id ? data.li_attr.id.toString() : tid; - if(tmp.length) { - tmp.each($.proxy(function (i, v) { - c = this._parse_model_from_html($(v), data.id, ps); - e = this._model.data[c]; - data.children.push(c); - if(e.children_d.length) { - data.children_d = data.children_d.concat(e.children_d); - } - }, this)); - data.children_d = data.children_d.concat(data.children); - } - else { - if(d.hasClass('jstree-closed')) { - data.state.loaded = false; - } - } - if(data.li_attr['class']) { - data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open',''); - } - if(data.a_attr['class']) { - data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled',''); - } - m[data.id] = data; - if(data.state.selected) { - this._data.core.selected.push(data.id); - } - return data.id; - }, - /** - * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally. - * @private - * @name _parse_model_from_flat_json(d [, p, ps]) - * @param {Object} d the JSON object to parse - * @param {String} p the parent ID - * @param {Array} ps list of all parents - * @return {String} the ID of the object added to the model - */ - _parse_model_from_flat_json : function (d, p, ps) { - if(!ps) { ps = []; } - else { ps = ps.concat(); } - if(p) { ps.unshift(p); } - var tid = d.id.toString(), - m = this._model.data, - df = this._model.default_state, - i, j, c, e, - tmp = { - id : tid, - text : d.text || '', - icon : d.icon !== undefined ? d.icon : true, - parent : p, - parents : ps, - children : d.children || [], - children_d : d.children_d || [], - data : d.data, - state : { }, - li_attr : { id : false }, - a_attr : { href : '#' }, - original : false - }; - for(i in df) { - if(df.hasOwnProperty(i)) { - tmp.state[i] = df[i]; - } - } - if(d && d.data && d.data.jstree && d.data.jstree.icon) { - tmp.icon = d.data.jstree.icon; - } - if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { - tmp.icon = true; - } - if(d && d.data) { - tmp.data = d.data; - if(d.data.jstree) { - for(i in d.data.jstree) { - if(d.data.jstree.hasOwnProperty(i)) { - tmp.state[i] = d.data.jstree[i]; - } - } - } - } - if(d && typeof d.state === 'object') { - for (i in d.state) { - if(d.state.hasOwnProperty(i)) { - tmp.state[i] = d.state[i]; - } - } - } - if(d && typeof d.li_attr === 'object') { - for (i in d.li_attr) { - if(d.li_attr.hasOwnProperty(i)) { - tmp.li_attr[i] = d.li_attr[i]; - } - } - } - if(!tmp.li_attr.id) { - tmp.li_attr.id = tid; - } - if(d && typeof d.a_attr === 'object') { - for (i in d.a_attr) { - if(d.a_attr.hasOwnProperty(i)) { - tmp.a_attr[i] = d.a_attr[i]; - } - } - } - if(d && d.children && d.children === true) { - tmp.state.loaded = false; - tmp.children = []; - tmp.children_d = []; - } - m[tmp.id] = tmp; - for(i = 0, j = tmp.children.length; i < j; i++) { - c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps); - e = m[c]; - tmp.children_d.push(c); - if(e.children_d.length) { - tmp.children_d = tmp.children_d.concat(e.children_d); - } - } - delete d.data; - delete d.children; - m[tmp.id].original = d; - if(tmp.state.selected) { - this._data.core.selected.push(tmp.id); - } - return tmp.id; - }, - /** - * parses a node from a JSON object and appends it to the in memory tree model. Used internally. - * @private - * @name _parse_model_from_json(d [, p, ps]) - * @param {Object} d the JSON object to parse - * @param {String} p the parent ID - * @param {Array} ps list of all parents - * @return {String} the ID of the object added to the model - */ - _parse_model_from_json : function (d, p, ps) { - if(!ps) { ps = []; } - else { ps = ps.concat(); } - if(p) { ps.unshift(p); } - var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp; - do { - tid = 'j' + this._id + '_' + (++this._cnt); - } while(m[tid]); - - tmp = { - id : false, - text : typeof d === 'string' ? d : '', - icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, - parent : p, - parents : ps, - children : [], - children_d : [], - data : null, - state : { }, - li_attr : { id : false }, - a_attr : { href : '#' }, - original : false - }; - for(i in df) { - if(df.hasOwnProperty(i)) { - tmp.state[i] = df[i]; - } - } - if(d && d.id) { tmp.id = d.id.toString(); } - if(d && d.text) { tmp.text = d.text; } - if(d && d.data && d.data.jstree && d.data.jstree.icon) { - tmp.icon = d.data.jstree.icon; - } - if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { - tmp.icon = true; - } - if(d && d.data) { - tmp.data = d.data; - if(d.data.jstree) { - for(i in d.data.jstree) { - if(d.data.jstree.hasOwnProperty(i)) { - tmp.state[i] = d.data.jstree[i]; - } - } - } - } - if(d && typeof d.state === 'object') { - for (i in d.state) { - if(d.state.hasOwnProperty(i)) { - tmp.state[i] = d.state[i]; - } - } - } - if(d && typeof d.li_attr === 'object') { - for (i in d.li_attr) { - if(d.li_attr.hasOwnProperty(i)) { - tmp.li_attr[i] = d.li_attr[i]; - } - } - } - if(tmp.li_attr.id && !tmp.id) { - tmp.id = tmp.li_attr.id.toString(); - } - if(!tmp.id) { - tmp.id = tid; - } - if(!tmp.li_attr.id) { - tmp.li_attr.id = tmp.id; - } - if(d && typeof d.a_attr === 'object') { - for (i in d.a_attr) { - if(d.a_attr.hasOwnProperty(i)) { - tmp.a_attr[i] = d.a_attr[i]; - } - } - } - if(d && d.children && d.children.length) { - for(i = 0, j = d.children.length; i < j; i++) { - c = this._parse_model_from_json(d.children[i], tmp.id, ps); - e = m[c]; - tmp.children.push(c); - if(e.children_d.length) { - tmp.children_d = tmp.children_d.concat(e.children_d); - } - } - tmp.children_d = tmp.children_d.concat(tmp.children); - } - if(d && d.children && d.children === true) { - tmp.state.loaded = false; - tmp.children = []; - tmp.children_d = []; - } - delete d.data; - delete d.children; - tmp.original = d; - m[tmp.id] = tmp; - if(tmp.state.selected) { - this._data.core.selected.push(tmp.id); - } - return tmp.id; - }, - /** - * redraws all nodes that need to be redrawn. Used internally. - * @private - * @name _redraw() - * @trigger redraw.jstree - */ - _redraw : function () { - var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]), - f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused; - for(i = 0, j = nodes.length; i < j; i++) { - tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw); - if(tmp && this._model.force_full_redraw) { - f.appendChild(tmp); - } - } - if(this._model.force_full_redraw) { - f.className = this.get_container_ul()[0].className; - f.setAttribute('role','group'); - this.element.empty().append(f); - //this.get_container_ul()[0].appendChild(f); - } - if(fe !== null) { - tmp = this.get_node(fe, true); - if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) { - tmp.children('.jstree-anchor').focus(); - } - else { - this._data.core.focused = null; - } - } - this._model.force_full_redraw = false; - this._model.changed = []; - /** - * triggered after nodes are redrawn - * @event - * @name redraw.jstree - * @param {array} nodes the redrawn nodes - */ - this.trigger('redraw', { "nodes" : nodes }); - }, - /** - * redraws all nodes that need to be redrawn or optionally - the whole tree - * @name redraw([full]) - * @param {Boolean} full if set to `true` all nodes are redrawn. - */ - redraw : function (full) { - if(full) { - this._model.force_full_redraw = true; - } - //if(this._model.redraw_timeout) { - // clearTimeout(this._model.redraw_timeout); - //} - //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0); - this._redraw(); - }, - /** - * redraws a single node's children. Used internally. - * @private - * @name draw_children(node) - * @param {mixed} node the node whose children will be redrawn - */ - draw_children : function (node) { - var obj = this.get_node(node), - i = false, - j = false, - k = false, - d = document; - if(!obj) { return false; } - if(obj.id === $.jstree.root) { return this.redraw(true); } - node = this.get_node(node, true); - if(!node || !node.length) { return false; } // TODO: quick toggle - - node.children('.jstree-children').remove(); - node = node[0]; - if(obj.children.length && obj.state.loaded) { - k = d.createElement('UL'); - k.setAttribute('role', 'group'); - k.className = 'jstree-children'; - for(i = 0, j = obj.children.length; i < j; i++) { - k.appendChild(this.redraw_node(obj.children[i], true, true)); - } - node.appendChild(k); - } - }, - /** - * redraws a single node. Used internally. - * @private - * @name redraw_node(node, deep, is_callback, force_render) - * @param {mixed} node the node to redraw - * @param {Boolean} deep should child nodes be redrawn too - * @param {Boolean} is_callback is this a recursion call - * @param {Boolean} force_render should children of closed parents be drawn anyway - */ - redraw_node : function (node, deep, is_callback, force_render) { - var obj = this.get_node(node), - par = false, - ind = false, - old = false, - i = false, - j = false, - k = false, - c = '', - d = document, - m = this._model.data, - f = false, - s = false, - tmp = null, - t = 0, - l = 0, - has_children = false, - last_sibling = false; - if(!obj) { return false; } - if(obj.id === $.jstree.root) { return this.redraw(true); } - deep = deep || obj.children.length === 0; - node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element); - if(!node) { - deep = true; - //node = d.createElement('LI'); - if(!is_callback) { - par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null; - if(par !== null && (!par || !m[obj.parent].state.opened)) { - return false; - } - ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children); - } - } - else { - node = $(node); - if(!is_callback) { - par = node.parent().parent()[0]; - if(par === this.element[0]) { - par = null; - } - ind = node.index(); - } - // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage - if(!deep && obj.children.length && !node.children('.jstree-children').length) { - deep = true; - } - if(!deep) { - old = node.children('.jstree-children')[0]; - } - f = node.children('.jstree-anchor')[0] === document.activeElement; - node.remove(); - //node = d.createElement('LI'); - //node = node[0]; - } - node = this._data.core.node.cloneNode(true); - // node is DOM, deep is boolean - - c = 'jstree-node '; - for(i in obj.li_attr) { - if(obj.li_attr.hasOwnProperty(i)) { - if(i === 'id') { continue; } - if(i !== 'class') { - node.setAttribute(i, obj.li_attr[i]); - } - else { - c += obj.li_attr[i]; - } - } - } - if(!obj.a_attr.id) { - obj.a_attr.id = obj.id + '_anchor'; - } - node.setAttribute('aria-selected', !!obj.state.selected); - node.setAttribute('aria-level', obj.parents.length); - node.setAttribute('aria-labelledby', obj.a_attr.id); - if(obj.state.disabled) { - node.setAttribute('aria-disabled', true); - } - - for(i = 0, j = obj.children.length; i < j; i++) { - if(!m[obj.children[i]].state.hidden) { - has_children = true; - break; - } - } - if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) { - i = $.inArray(obj.id, m[obj.parent].children); - last_sibling = obj.id; - if(i !== -1) { - i++; - for(j = m[obj.parent].children.length; i < j; i++) { - if(!m[m[obj.parent].children[i]].state.hidden) { - last_sibling = m[obj.parent].children[i]; - } - if(last_sibling !== obj.id) { - break; - } - } - } - } - - if(obj.state.hidden) { - c += ' jstree-hidden'; - } - if (obj.state.loading) { - c += ' jstree-loading'; - } - if(obj.state.loaded && !has_children) { - c += ' jstree-leaf'; - } - else { - c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed'; - node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) ); - } - if(last_sibling === obj.id) { - c += ' jstree-last'; - } - node.id = obj.id; - node.className = c; - c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : ''); - for(j in obj.a_attr) { - if(obj.a_attr.hasOwnProperty(j)) { - if(j === 'href' && obj.a_attr[j] === '#') { continue; } - if(j !== 'class') { - node.childNodes[1].setAttribute(j, obj.a_attr[j]); - } - else { - c += ' ' + obj.a_attr[j]; - } - } - } - if(c.length) { - node.childNodes[1].className = 'jstree-anchor ' + c; - } - if((obj.icon && obj.icon !== true) || obj.icon === false) { - if(obj.icon === false) { - node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden'; - } - else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) { - node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom'; - } - else { - node.childNodes[1].childNodes[0].style.backgroundImage = 'url("'+obj.icon+'")'; - node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center'; - node.childNodes[1].childNodes[0].style.backgroundSize = 'auto'; - node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom'; - } - } - - if(this.settings.core.force_text) { - node.childNodes[1].appendChild(d.createTextNode(obj.text)); - } - else { - node.childNodes[1].innerHTML += obj.text; - } - - - if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) { - k = d.createElement('UL'); - k.setAttribute('role', 'group'); - k.className = 'jstree-children'; - for(i = 0, j = obj.children.length; i < j; i++) { - k.appendChild(this.redraw_node(obj.children[i], deep, true)); - } - node.appendChild(k); - } - if(old) { - node.appendChild(old); - } - if(!is_callback) { - // append back using par / ind - if(!par) { - par = this.element[0]; - } - for(i = 0, j = par.childNodes.length; i < j; i++) { - if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) { - tmp = par.childNodes[i]; - break; - } - } - if(!tmp) { - tmp = d.createElement('UL'); - tmp.setAttribute('role', 'group'); - tmp.className = 'jstree-children'; - par.appendChild(tmp); - } - par = tmp; - - if(ind < par.childNodes.length) { - par.insertBefore(node, par.childNodes[ind]); - } - else { - par.appendChild(node); - } - if(f) { - t = this.element[0].scrollTop; - l = this.element[0].scrollLeft; - node.childNodes[1].focus(); - this.element[0].scrollTop = t; - this.element[0].scrollLeft = l; - } - } - if(obj.state.opened && !obj.state.loaded) { - obj.state.opened = false; - setTimeout($.proxy(function () { - this.open_node(obj.id, false, 0); - }, this), 0); - } - return node; - }, - /** - * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready. - * @name open_node(obj [, callback, animation]) - * @param {mixed} obj the node to open - * @param {Function} callback a function to execute once the node is opened - * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation. - * @trigger open_node.jstree, after_open.jstree, before_open.jstree - */ - open_node : function (obj, callback, animation) { - var t1, t2, d, t; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.open_node(obj[t1], callback, animation); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - animation = animation === undefined ? this.settings.core.animation : animation; - if(!this.is_closed(obj)) { - if(callback) { - callback.call(this, obj, false); - } - return false; - } - if(!this.is_loaded(obj)) { - if(this.is_loading(obj)) { - return setTimeout($.proxy(function () { - this.open_node(obj, callback, animation); - }, this), 500); - } - this.load_node(obj, function (o, ok) { - return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false); - }); - } - else { - d = this.get_node(obj, true); - t = this; - if(d.length) { - if(animation && d.children(".jstree-children").length) { - d.children(".jstree-children").stop(true, true); - } - if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) { - this.draw_children(obj); - //d = this.get_node(obj, true); - } - if(!animation) { - this.trigger('before_open', { "node" : obj }); - d[0].className = d[0].className.replace('jstree-closed', 'jstree-open'); - d[0].setAttribute("aria-expanded", true); - } - else { - this.trigger('before_open', { "node" : obj }); - d - .children(".jstree-children").css("display","none").end() - .removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true) - .children(".jstree-children").stop(true, true) - .slideDown(animation, function () { - this.style.display = ""; - if (t.element) { - t.trigger("after_open", { "node" : obj }); - } - }); - } - } - obj.state.opened = true; - if(callback) { - callback.call(this, obj, true); - } - if(!d.length) { - /** - * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet) - * @event - * @name before_open.jstree - * @param {Object} node the opened node - */ - this.trigger('before_open', { "node" : obj }); - } - /** - * triggered when a node is opened (if there is an animation it will not be completed yet) - * @event - * @name open_node.jstree - * @param {Object} node the opened node - */ - this.trigger('open_node', { "node" : obj }); - if(!animation || !d.length) { - /** - * triggered when a node is opened and the animation is complete - * @event - * @name after_open.jstree - * @param {Object} node the opened node - */ - this.trigger("after_open", { "node" : obj }); - } - return true; - } - }, - /** - * opens every parent of a node (node should be loaded) - * @name _open_to(obj) - * @param {mixed} obj the node to reveal - * @private - */ - _open_to : function (obj) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - var i, j, p = obj.parents; - for(i = 0, j = p.length; i < j; i+=1) { - if(i !== $.jstree.root) { - this.open_node(p[i], false, 0); - } - } - return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); - }, - /** - * closes a node, hiding its children - * @name close_node(obj [, animation]) - * @param {mixed} obj the node to close - * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation. - * @trigger close_node.jstree, after_close.jstree - */ - close_node : function (obj, animation) { - var t1, t2, t, d; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.close_node(obj[t1], animation); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - if(this.is_closed(obj)) { - return false; - } - animation = animation === undefined ? this.settings.core.animation : animation; - t = this; - d = this.get_node(obj, true); - - obj.state.opened = false; - /** - * triggered when a node is closed (if there is an animation it will not be complete yet) - * @event - * @name close_node.jstree - * @param {Object} node the closed node - */ - this.trigger('close_node',{ "node" : obj }); - if(!d.length) { - /** - * triggered when a node is closed and the animation is complete - * @event - * @name after_close.jstree - * @param {Object} node the closed node - */ - this.trigger("after_close", { "node" : obj }); - } - else { - if(!animation) { - d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); - d.attr("aria-expanded", false).children('.jstree-children').remove(); - this.trigger("after_close", { "node" : obj }); - } - else { - d - .children(".jstree-children").attr("style","display:block !important").end() - .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) - .children(".jstree-children").stop(true, true).slideUp(animation, function () { - this.style.display = ""; - d.children('.jstree-children').remove(); - if (t.element) { - t.trigger("after_close", { "node" : obj }); - } - }); - } - } - }, - /** - * toggles a node - closing it if it is open, opening it if it is closed - * @name toggle_node(obj) - * @param {mixed} obj the node to toggle - */ - toggle_node : function (obj) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.toggle_node(obj[t1]); - } - return true; - } - if(this.is_closed(obj)) { - return this.open_node(obj); - } - if(this.is_open(obj)) { - return this.close_node(obj); - } - }, - /** - * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready. - * @name open_all([obj, animation, original_obj]) - * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree - * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation - * @param {jQuery} reference to the node that started the process (internal use) - * @trigger open_all.jstree - */ - open_all : function (obj, animation, original_obj) { - if(!obj) { obj = $.jstree.root; } - obj = this.get_node(obj); - if(!obj) { return false; } - var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this; - if(!dom.length) { - for(i = 0, j = obj.children_d.length; i < j; i++) { - if(this.is_closed(this._model.data[obj.children_d[i]])) { - this._model.data[obj.children_d[i]].state.opened = true; - } - } - return this.trigger('open_all', { "node" : obj }); - } - original_obj = original_obj || dom; - _this = this; - dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed'); - dom.each(function () { - _this.open_node( - this, - function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } }, - animation || 0 - ); - }); - if(original_obj.find('.jstree-closed').length === 0) { - /** - * triggered when an `open_all` call completes - * @event - * @name open_all.jstree - * @param {Object} node the opened node - */ - this.trigger('open_all', { "node" : this.get_node(original_obj) }); - } - }, - /** - * closes all nodes within a node (or the tree), revaling their children - * @name close_all([obj, animation]) - * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree - * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation - * @trigger close_all.jstree - */ - close_all : function (obj, animation) { - if(!obj) { obj = $.jstree.root; } - obj = this.get_node(obj); - if(!obj) { return false; } - var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), - _this = this, i, j; - if(dom.length) { - dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open'); - $(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); }); - } - for(i = 0, j = obj.children_d.length; i < j; i++) { - this._model.data[obj.children_d[i]].state.opened = false; - } - /** - * triggered when an `close_all` call completes - * @event - * @name close_all.jstree - * @param {Object} node the closed node - */ - this.trigger('close_all', { "node" : obj }); - }, - /** - * checks if a node is disabled (not selectable) - * @name is_disabled(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_disabled : function (obj) { - obj = this.get_node(obj); - return obj && obj.state && obj.state.disabled; - }, - /** - * enables a node - so that it can be selected - * @name enable_node(obj) - * @param {mixed} obj the node to enable - * @trigger enable_node.jstree - */ - enable_node : function (obj) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.enable_node(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - obj.state.disabled = false; - this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false); - /** - * triggered when an node is enabled - * @event - * @name enable_node.jstree - * @param {Object} node the enabled node - */ - this.trigger('enable_node', { 'node' : obj }); - }, - /** - * disables a node - so that it can not be selected - * @name disable_node(obj) - * @param {mixed} obj the node to disable - * @trigger disable_node.jstree - */ - disable_node : function (obj) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.disable_node(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - obj.state.disabled = true; - this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true); - /** - * triggered when an node is disabled - * @event - * @name disable_node.jstree - * @param {Object} node the disabled node - */ - this.trigger('disable_node', { 'node' : obj }); - }, - /** - * determines if a node is hidden - * @name is_hidden(obj) - * @param {mixed} obj the node - */ - is_hidden : function (obj) { - obj = this.get_node(obj); - return obj.state.hidden === true; - }, - /** - * hides a node - it is still in the structure but will not be visible - * @name hide_node(obj) - * @param {mixed} obj the node to hide - * @param {Boolean} skip_redraw internal parameter controlling if redraw is called - * @trigger hide_node.jstree - */ - hide_node : function (obj, skip_redraw) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.hide_node(obj[t1], true); - } - if (!skip_redraw) { - this.redraw(); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - if(!obj.state.hidden) { - obj.state.hidden = true; - this._node_changed(obj.parent); - if(!skip_redraw) { - this.redraw(); - } - /** - * triggered when an node is hidden - * @event - * @name hide_node.jstree - * @param {Object} node the hidden node - */ - this.trigger('hide_node', { 'node' : obj }); - } - }, - /** - * shows a node - * @name show_node(obj) - * @param {mixed} obj the node to show - * @param {Boolean} skip_redraw internal parameter controlling if redraw is called - * @trigger show_node.jstree - */ - show_node : function (obj, skip_redraw) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.show_node(obj[t1], true); - } - if (!skip_redraw) { - this.redraw(); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - if(obj.state.hidden) { - obj.state.hidden = false; - this._node_changed(obj.parent); - if(!skip_redraw) { - this.redraw(); - } - /** - * triggered when an node is shown - * @event - * @name show_node.jstree - * @param {Object} node the shown node - */ - this.trigger('show_node', { 'node' : obj }); - } - }, - /** - * hides all nodes - * @name hide_all() - * @trigger hide_all.jstree - */ - hide_all : function (skip_redraw) { - var i, m = this._model.data, ids = []; - for(i in m) { - if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) { - m[i].state.hidden = true; - ids.push(i); - } - } - this._model.force_full_redraw = true; - if(!skip_redraw) { - this.redraw(); - } - /** - * triggered when all nodes are hidden - * @event - * @name hide_all.jstree - * @param {Array} nodes the IDs of all hidden nodes - */ - this.trigger('hide_all', { 'nodes' : ids }); - return ids; - }, - /** - * shows all nodes - * @name show_all() - * @trigger show_all.jstree - */ - show_all : function (skip_redraw) { - var i, m = this._model.data, ids = []; - for(i in m) { - if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) { - m[i].state.hidden = false; - ids.push(i); - } - } - this._model.force_full_redraw = true; - if(!skip_redraw) { - this.redraw(); - } - /** - * triggered when all nodes are shown - * @event - * @name show_all.jstree - * @param {Array} nodes the IDs of all shown nodes - */ - this.trigger('show_all', { 'nodes' : ids }); - return ids; - }, - /** - * called when a node is selected by the user. Used internally. - * @private - * @name activate_node(obj, e) - * @param {mixed} obj the node - * @param {Object} e the related event - * @trigger activate_node.jstree, changed.jstree - */ - activate_node : function (obj, e) { - if(this.is_disabled(obj)) { - return false; - } - if(!e || typeof e !== 'object') { - e = {}; - } - - // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node - this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null; - if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; } - if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); } - - if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) { - if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) { - this.deselect_node(obj, false, e); - } - else { - this.deselect_all(true); - this.select_node(obj, false, false, e); - this._data.core.last_clicked = this.get_node(obj); - } - } - else { - if(e.shiftKey) { - var o = this.get_node(obj).id, - l = this._data.core.last_clicked.id, - p = this.get_node(this._data.core.last_clicked.parent).children, - c = false, - i, j; - for(i = 0, j = p.length; i < j; i += 1) { - // separate IFs work whem o and l are the same - if(p[i] === o) { - c = !c; - } - if(p[i] === l) { - c = !c; - } - if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) { - if (!this.is_hidden(p[i])) { - this.select_node(p[i], true, false, e); - } - } - else { - this.deselect_node(p[i], true, e); - } - } - this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e }); - } - else { - if(!this.is_selected(obj)) { - this.select_node(obj, false, false, e); - } - else { - this.deselect_node(obj, false, e); - } - } - } - /** - * triggered when an node is clicked or intercated with by the user - * @event - * @name activate_node.jstree - * @param {Object} node - * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object) - */ - this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e }); - }, - /** - * applies the hover state on a node, called when a node is hovered by the user. Used internally. - * @private - * @name hover_node(obj) - * @param {mixed} obj - * @trigger hover_node.jstree - */ - hover_node : function (obj) { - obj = this.get_node(obj, true); - if(!obj || !obj.length || obj.children('.jstree-hovered').length) { - return false; - } - var o = this.element.find('.jstree-hovered'), t = this.element; - if(o && o.length) { this.dehover_node(o); } - - obj.children('.jstree-anchor').addClass('jstree-hovered'); - /** - * triggered when an node is hovered - * @event - * @name hover_node.jstree - * @param {Object} node - */ - this.trigger('hover_node', { 'node' : this.get_node(obj) }); - setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0); - }, - /** - * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally. - * @private - * @name dehover_node(obj) - * @param {mixed} obj - * @trigger dehover_node.jstree - */ - dehover_node : function (obj) { - obj = this.get_node(obj, true); - if(!obj || !obj.length || !obj.children('.jstree-hovered').length) { - return false; - } - obj.children('.jstree-anchor').removeClass('jstree-hovered'); - /** - * triggered when an node is no longer hovered - * @event - * @name dehover_node.jstree - * @param {Object} node - */ - this.trigger('dehover_node', { 'node' : this.get_node(obj) }); - }, - /** - * select a node - * @name select_node(obj [, supress_event, prevent_open]) - * @param {mixed} obj an array can be used to select multiple nodes - * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered - * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened - * @trigger select_node.jstree, changed.jstree - */ - select_node : function (obj, supress_event, prevent_open, e) { - var dom, t1, t2, th; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.select_node(obj[t1], supress_event, prevent_open, e); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(!obj.state.selected) { - obj.state.selected = true; - this._data.core.selected.push(obj.id); - if(!prevent_open) { - dom = this._open_to(obj); - } - if(dom && dom.length) { - dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked'); - } - /** - * triggered when an node is selected - * @event - * @name select_node.jstree - * @param {Object} node - * @param {Array} selected the current selection - * @param {Object} event the event (if any) that triggered this select_node - */ - this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); - if(!supress_event) { - /** - * triggered when selection changes - * @event - * @name changed.jstree - * @param {Object} node - * @param {Object} action the action that caused the selection to change - * @param {Array} selected the current selection - * @param {Object} event the event (if any) that triggered this changed event - */ - this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); - } - } - }, - /** - * deselect a node - * @name deselect_node(obj [, supress_event]) - * @param {mixed} obj an array can be used to deselect multiple nodes - * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered - * @trigger deselect_node.jstree, changed.jstree - */ - deselect_node : function (obj, supress_event, e) { - var t1, t2, dom; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.deselect_node(obj[t1], supress_event, e); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(obj.state.selected) { - obj.state.selected = false; - this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id); - if(dom.length) { - dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked'); - } - /** - * triggered when an node is deselected - * @event - * @name deselect_node.jstree - * @param {Object} node - * @param {Array} selected the current selection - * @param {Object} event the event (if any) that triggered this deselect_node - */ - this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); - if(!supress_event) { - this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); - } - } - }, - /** - * select all nodes in the tree - * @name select_all([supress_event]) - * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered - * @trigger select_all.jstree, changed.jstree - */ - select_all : function (supress_event) { - var tmp = this._data.core.selected.concat([]), i, j; - this._data.core.selected = this._model.data[$.jstree.root].children_d.concat(); - for(i = 0, j = this._data.core.selected.length; i < j; i++) { - if(this._model.data[this._data.core.selected[i]]) { - this._model.data[this._data.core.selected[i]].state.selected = true; - } - } - this.redraw(true); - /** - * triggered when all nodes are selected - * @event - * @name select_all.jstree - * @param {Array} selected the current selection - */ - this.trigger('select_all', { 'selected' : this._data.core.selected }); - if(!supress_event) { - this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); - } - }, - /** - * deselect all selected nodes - * @name deselect_all([supress_event]) - * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered - * @trigger deselect_all.jstree, changed.jstree - */ - deselect_all : function (supress_event) { - var tmp = this._data.core.selected.concat([]), i, j; - for(i = 0, j = this._data.core.selected.length; i < j; i++) { - if(this._model.data[this._data.core.selected[i]]) { - this._model.data[this._data.core.selected[i]].state.selected = false; - } - } - this._data.core.selected = []; - this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false); - /** - * triggered when all nodes are deselected - * @event - * @name deselect_all.jstree - * @param {Object} node the previous selection - * @param {Array} selected the current selection - */ - this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp }); - if(!supress_event) { - this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); - } - }, - /** - * checks if a node is selected - * @name is_selected(obj) - * @param {mixed} obj - * @return {Boolean} - */ - is_selected : function (obj) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - return obj.state.selected; - }, - /** - * get an array of all selected nodes - * @name get_selected([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - */ - get_selected : function (full) { - return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice(); - }, - /** - * get an array of all top level selected nodes (ignoring children of selected nodes) - * @name get_top_selected([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - */ - get_top_selected : function (full) { - var tmp = this.get_selected(true), - obj = {}, i, j, k, l; - for(i = 0, j = tmp.length; i < j; i++) { - obj[tmp[i].id] = tmp[i]; - } - for(i = 0, j = tmp.length; i < j; i++) { - for(k = 0, l = tmp[i].children_d.length; k < l; k++) { - if(obj[tmp[i].children_d[k]]) { - delete obj[tmp[i].children_d[k]]; - } - } - } - tmp = []; - for(i in obj) { - if(obj.hasOwnProperty(i)) { - tmp.push(i); - } - } - return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; - }, - /** - * get an array of all bottom level selected nodes (ignoring selected parents) - * @name get_bottom_selected([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - */ - get_bottom_selected : function (full) { - var tmp = this.get_selected(true), - obj = [], i, j; - for(i = 0, j = tmp.length; i < j; i++) { - if(!tmp[i].children.length) { - obj.push(tmp[i].id); - } - } - return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; - }, - /** - * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally. - * @name get_state() - * @private - * @return {Object} - */ - get_state : function () { - var state = { - 'core' : { - 'open' : [], - 'scroll' : { - 'left' : this.element.scrollLeft(), - 'top' : this.element.scrollTop() - }, - /*! - 'themes' : { - 'name' : this.get_theme(), - 'icons' : this._data.core.themes.icons, - 'dots' : this._data.core.themes.dots - }, - */ - 'selected' : [] - } - }, i; - for(i in this._model.data) { - if(this._model.data.hasOwnProperty(i)) { - if(i !== $.jstree.root) { - if(this._model.data[i].state.opened) { - state.core.open.push(i); - } - if(this._model.data[i].state.selected) { - state.core.selected.push(i); - } - } - } - } - return state; - }, - /** - * sets the state of the tree. Used internally. - * @name set_state(state [, callback]) - * @private - * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it. - * @param {Function} callback an optional function to execute once the state is restored. - * @trigger set_state.jstree - */ - set_state : function (state, callback) { - if(state) { - if(state.core && state.core.selected && state.core.initial_selection === undefined) { - state.core.initial_selection = this._data.core.selected.concat([]).sort().join(','); - } - if(state.core) { - var res, n, t, _this, i; - if(state.core.open) { - if(!$.isArray(state.core.open) || !state.core.open.length) { - delete state.core.open; - this.set_state(state, callback); - } - else { - this._load_nodes(state.core.open, function (nodes) { - this.open_node(nodes, false, 0); - delete state.core.open; - this.set_state(state, callback); - }); - } - return false; - } - if(state.core.scroll) { - if(state.core.scroll && state.core.scroll.left !== undefined) { - this.element.scrollLeft(state.core.scroll.left); - } - if(state.core.scroll && state.core.scroll.top !== undefined) { - this.element.scrollTop(state.core.scroll.top); - } - delete state.core.scroll; - this.set_state(state, callback); - return false; - } - if(state.core.selected) { - _this = this; - if (state.core.initial_selection === undefined || - state.core.initial_selection === this._data.core.selected.concat([]).sort().join(',') - ) { - this.deselect_all(); - $.each(state.core.selected, function (i, v) { - _this.select_node(v, false, true); - }); - } - delete state.core.initial_selection; - delete state.core.selected; - this.set_state(state, callback); - return false; - } - for(i in state) { - if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) { - delete state[i]; - } - } - if($.isEmptyObject(state.core)) { - delete state.core; - this.set_state(state, callback); - return false; - } - } - if($.isEmptyObject(state)) { - state = null; - if(callback) { callback.call(this); } - /** - * triggered when a `set_state` call completes - * @event - * @name set_state.jstree - */ - this.trigger('set_state'); - return false; - } - return true; - } - return false; - }, - /** - * refreshes the tree - all nodes are reloaded with calls to `load_node`. - * @name refresh() - * @param {Boolean} skip_loading an option to skip showing the loading indicator - * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state - * @trigger refresh.jstree - */ - refresh : function (skip_loading, forget_state) { - this._data.core.state = forget_state === true ? {} : this.get_state(); - if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); } - this._cnt = 0; - this._model.data = {}; - this._model.data[$.jstree.root] = { - id : $.jstree.root, - parent : null, - parents : [], - children : [], - children_d : [], - state : { loaded : false } - }; - this._data.core.selected = []; - this._data.core.last_clicked = null; - this._data.core.focused = null; - - var c = this.get_container_ul()[0].className; - if(!skip_loading) { - this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + "
  • "); - this.element.attr('aria-activedescendant','j'+this._id+'_loading'); - } - this.load_node($.jstree.root, function (o, s) { - if(s) { - this.get_container_ul()[0].className = c; - if(this._firstChild(this.get_container_ul()[0])) { - this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); - } - this.set_state($.extend(true, {}, this._data.core.state), function () { - /** - * triggered when a `refresh` call completes - * @event - * @name refresh.jstree - */ - this.trigger('refresh'); - }); - } - this._data.core.state = null; - }); - }, - /** - * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. - * @name refresh_node(obj) - * @param {mixed} obj the node - * @trigger refresh_node.jstree - */ - refresh_node : function (obj) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - var opened = [], to_load = [], s = this._data.core.selected.concat([]); - to_load.push(obj.id); - if(obj.state.opened === true) { opened.push(obj.id); } - this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); - this._load_nodes(to_load, $.proxy(function (nodes) { - this.open_node(opened, false, 0); - this.select_node(s); - /** - * triggered when a node is refreshed - * @event - * @name refresh_node.jstree - * @param {Object} node - the refreshed node - * @param {Array} nodes - an array of the IDs of the nodes that were reloaded - */ - this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); - }, this), false, true); - }, - /** - * set (change) the ID of a node - * @name set_id(obj, id) - * @param {mixed} obj the node - * @param {String} id the new ID - * @return {Boolean} - * @trigger set_id.jstree - */ - set_id : function (obj, id) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - var i, j, m = this._model.data, old = obj.id; - id = id.toString(); - // update parents (replace current ID with new one in children and children_d) - m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; - for(i = 0, j = obj.parents.length; i < j; i++) { - m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; - } - // update children (replace current ID with new one in parent and parents) - for(i = 0, j = obj.children.length; i < j; i++) { - m[obj.children[i]].parent = id; - } - for(i = 0, j = obj.children_d.length; i < j; i++) { - m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; - } - i = $.inArray(obj.id, this._data.core.selected); - if(i !== -1) { this._data.core.selected[i] = id; } - // update model and obj itself (obj.id, this._model.data[KEY]) - i = this.get_node(obj.id, true); - if(i) { - i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); - if(this.element.attr('aria-activedescendant') === obj.id) { - this.element.attr('aria-activedescendant', id); - } - } - delete m[obj.id]; - obj.id = id; - obj.li_attr.id = id; - m[id] = obj; - /** - * triggered when a node id value is changed - * @event - * @name set_id.jstree - * @param {Object} node - * @param {String} old the old id - */ - this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); - return true; - }, - /** - * get the text value of a node - * @name get_text(obj) - * @param {mixed} obj the node - * @return {String} - */ - get_text : function (obj) { - obj = this.get_node(obj); - return (!obj || obj.id === $.jstree.root) ? false : obj.text; - }, - /** - * set the text value of a node. Used internally, please use `rename_node(obj, val)`. - * @private - * @name set_text(obj, val) - * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes - * @param {String} val the new text value - * @return {Boolean} - * @trigger set_text.jstree - */ - set_text : function (obj, val) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.set_text(obj[t1], val); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - obj.text = val; - if(this.get_node(obj, true).length) { - this.redraw_node(obj.id); - } - /** - * triggered when a node text value is changed - * @event - * @name set_text.jstree - * @param {Object} obj - * @param {String} text the new value - */ - this.trigger('set_text',{ "obj" : obj, "text" : val }); - return true; - }, - /** - * gets a JSON representation of a node (or the whole tree) - * @name get_json([obj, options]) - * @param {mixed} obj - * @param {Object} options - * @param {Boolean} options.no_state do not return state information - * @param {Boolean} options.no_id do not return ID - * @param {Boolean} options.no_children do not include children - * @param {Boolean} options.no_data do not include node data - * @param {Boolean} options.no_li_attr do not include LI attributes - * @param {Boolean} options.no_a_attr do not include A attributes - * @param {Boolean} options.flat return flat JSON instead of nested - * @return {Object} - */ - get_json : function (obj, options, flat) { - obj = this.get_node(obj || $.jstree.root); - if(!obj) { return false; } - if(options && options.flat && !flat) { flat = []; } - var tmp = { - 'id' : obj.id, - 'text' : obj.text, - 'icon' : this.get_icon(obj), - 'li_attr' : $.extend(true, {}, obj.li_attr), - 'a_attr' : $.extend(true, {}, obj.a_attr), - 'state' : {}, - 'data' : options && options.no_data ? false : $.extend(true, $.isArray(obj.data)?[]:{}, obj.data) - //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), - }, i, j; - if(options && options.flat) { - tmp.parent = obj.parent; - } - else { - tmp.children = []; - } - if(!options || !options.no_state) { - for(i in obj.state) { - if(obj.state.hasOwnProperty(i)) { - tmp.state[i] = obj.state[i]; - } - } - } else { - delete tmp.state; - } - if(options && options.no_li_attr) { - delete tmp.li_attr; - } - if(options && options.no_a_attr) { - delete tmp.a_attr; - } - if(options && options.no_id) { - delete tmp.id; - if(tmp.li_attr && tmp.li_attr.id) { - delete tmp.li_attr.id; - } - if(tmp.a_attr && tmp.a_attr.id) { - delete tmp.a_attr.id; - } - } - if(options && options.flat && obj.id !== $.jstree.root) { - flat.push(tmp); - } - if(!options || !options.no_children) { - for(i = 0, j = obj.children.length; i < j; i++) { - if(options && options.flat) { - this.get_json(obj.children[i], options, flat); - } - else { - tmp.children.push(this.get_json(obj.children[i], options)); - } - } - } - return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); - }, - /** - * create a new node (do not confuse with load_node) - * @name create_node([par, node, pos, callback, is_loaded]) - * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) - * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) - * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" - * @param {Function} callback a function to be called once the node is created - * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded - * @return {String} the ID of the newly create node - * @trigger model.jstree, create_node.jstree - */ - create_node : function (par, node, pos, callback, is_loaded) { - if(par === null) { par = $.jstree.root; } - par = this.get_node(par); - if(!par) { return false; } - pos = pos === undefined ? "last" : pos; - if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { - return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); - } - if(!node) { node = { "text" : this.get_string('New node') }; } - if(typeof node === "string") { - node = { "text" : node }; - } else { - node = $.extend(true, {}, node); - } - if(node.text === undefined) { node.text = this.get_string('New node'); } - var tmp, dpc, i, j; - - if(par.id === $.jstree.root) { - if(pos === "before") { pos = "first"; } - if(pos === "after") { pos = "last"; } - } - switch(pos) { - case "before": - tmp = this.get_node(par.parent); - pos = $.inArray(par.id, tmp.children); - par = tmp; - break; - case "after" : - tmp = this.get_node(par.parent); - pos = $.inArray(par.id, tmp.children) + 1; - par = tmp; - break; - case "inside": - case "first": - pos = 0; - break; - case "last": - pos = par.children.length; - break; - default: - if(!pos) { pos = 0; } - break; - } - if(pos > par.children.length) { pos = par.children.length; } - if(!node.id) { node.id = true; } - if(!this.check("create_node", node, par, pos)) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - if(node.id === true) { delete node.id; } - node = this._parse_model_from_json(node, par.id, par.parents.concat()); - if(!node) { return false; } - tmp = this.get_node(node); - dpc = []; - dpc.push(node); - dpc = dpc.concat(tmp.children_d); - this.trigger('model', { "nodes" : dpc, "parent" : par.id }); - - par.children_d = par.children_d.concat(dpc); - for(i = 0, j = par.parents.length; i < j; i++) { - this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); - } - node = tmp; - tmp = []; - for(i = 0, j = par.children.length; i < j; i++) { - tmp[i >= pos ? i+1 : i] = par.children[i]; - } - tmp[pos] = node.id; - par.children = tmp; - - this.redraw_node(par, true); - /** - * triggered when a node is created - * @event - * @name create_node.jstree - * @param {Object} node - * @param {String} parent the parent's ID - * @param {Number} position the position of the new node among the parent's children - */ - this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); - if(callback) { callback.call(this, this.get_node(node)); } - return node.id; - }, - /** - * set the text value of a node - * @name rename_node(obj, val) - * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name - * @param {String} val the new text value - * @return {Boolean} - * @trigger rename_node.jstree - */ - rename_node : function (obj, val) { - var t1, t2, old; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.rename_node(obj[t1], val); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - old = obj.text; - if(!this.check("rename_node", obj, this.get_parent(obj), val)) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) - /** - * triggered when a node is renamed - * @event - * @name rename_node.jstree - * @param {Object} node - * @param {String} text the new value - * @param {String} old the old value - */ - this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); - return true; - }, - /** - * remove a node - * @name delete_node(obj) - * @param {mixed} obj the node, you can pass an array to delete multiple nodes - * @return {Boolean} - * @trigger delete_node.jstree, changed.jstree - */ - delete_node : function (obj) { - var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.delete_node(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - par = this.get_node(obj.parent); - pos = $.inArray(obj.id, par.children); - c = false; - if(!this.check("delete_node", obj, par, pos)) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - if(pos !== -1) { - par.children = $.vakata.array_remove(par.children, pos); - } - tmp = obj.children_d.concat([]); - tmp.push(obj.id); - for(i = 0, j = obj.parents.length; i < j; i++) { - this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { - return $.inArray(v, tmp) === -1; - }); - } - for(k = 0, l = tmp.length; k < l; k++) { - if(this._model.data[tmp[k]].state.selected) { - c = true; - break; - } - } - if (c) { - this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { - return $.inArray(v, tmp) === -1; - }); - } - /** - * triggered when a node is deleted - * @event - * @name delete_node.jstree - * @param {Object} node - * @param {String} parent the parent's ID - */ - this.trigger('delete_node', { "node" : obj, "parent" : par.id }); - if(c) { - this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); - } - for(k = 0, l = tmp.length; k < l; k++) { - delete this._model.data[tmp[k]]; - } - if($.inArray(this._data.core.focused, tmp) !== -1) { - this._data.core.focused = null; - top = this.element[0].scrollTop; - lft = this.element[0].scrollLeft; - if(par.id === $.jstree.root) { - if (this._model.data[$.jstree.root].children[0]) { - this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); - } - } - else { - this.get_node(par, true).children('.jstree-anchor').focus(); - } - this.element[0].scrollTop = top; - this.element[0].scrollLeft = lft; - } - this.redraw_node(par, true); - return true; - }, - /** - * check if an operation is premitted on the tree. Used internally. - * @private - * @name check(chk, obj, par, pos) - * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" - * @param {mixed} obj the node - * @param {mixed} par the parent - * @param {mixed} pos the position to insert at, or if "rename_node" - the new name - * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node - * @return {Boolean} - */ - check : function (chk, obj, par, pos, more) { - obj = obj && obj.id ? obj : this.get_node(obj); - par = par && par.id ? par : this.get_node(par); - var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, - chc = this.settings.core.check_callback; - if(chk === "move_node" || chk === "copy_node") { - if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - return false; - } - } - if(tmp && tmp.data) { tmp = tmp.data; } - if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { - if(tmp.functions[chk] === false) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - } - return tmp.functions[chk]; - } - if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - return false; - } - return true; - }, - /** - * get the last error - * @name last_error() - * @return {Object} - */ - last_error : function () { - return this._data.core.last_error; - }, - /** - * move a node to a new parent - * @name move_node(obj, par [, pos, callback, is_loaded]) - * @param {mixed} obj the node to move, pass an array to move multiple nodes - * @param {mixed} par the new parent - * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` - * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position - * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded - * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn - * @param {Boolean} instance internal parameter indicating if the node comes from another instance - * @trigger move_node.jstree - */ - move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { - var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; - - par = this.get_node(par); - pos = pos === undefined ? 0 : pos; - if(!par) { return false; } - if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { - return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); - } - - if($.isArray(obj)) { - if(obj.length === 1) { - obj = obj[0]; - } - else { - //obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { - par = tmp; - pos = "after"; - } - } - this.redraw(); - return true; - } - } - obj = obj && obj.id ? obj : this.get_node(obj); - - if(!obj || obj.id === $.jstree.root) { return false; } - - old_par = (obj.parent || $.jstree.root).toString(); - new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); - old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); - is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); - old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; - if(old_ins && old_ins._id) { - obj = old_ins._model.data[obj.id]; - } - - if(is_multi) { - if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { - if(old_ins) { old_ins.delete_node(obj); } - return tmp; - } - return false; - } - //var m = this._model.data; - if(par.id === $.jstree.root) { - if(pos === "before") { pos = "first"; } - if(pos === "after") { pos = "last"; } - } - switch(pos) { - case "before": - pos = $.inArray(par.id, new_par.children); - break; - case "after" : - pos = $.inArray(par.id, new_par.children) + 1; - break; - case "inside": - case "first": - pos = 0; - break; - case "last": - pos = new_par.children.length; - break; - default: - if(!pos) { pos = 0; } - break; - } - if(pos > new_par.children.length) { pos = new_par.children.length; } - if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - if(obj.parent === new_par.id) { - dpc = new_par.children.concat(); - tmp = $.inArray(obj.id, dpc); - if(tmp !== -1) { - dpc = $.vakata.array_remove(dpc, tmp); - if(pos > tmp) { pos--; } - } - tmp = []; - for(i = 0, j = dpc.length; i < j; i++) { - tmp[i >= pos ? i+1 : i] = dpc[i]; - } - tmp[pos] = obj.id; - new_par.children = tmp; - this._node_changed(new_par.id); - this.redraw(new_par.id === $.jstree.root); - } - else { - // clean old parent and up - tmp = obj.children_d.concat(); - tmp.push(obj.id); - for(i = 0, j = obj.parents.length; i < j; i++) { - dpc = []; - p = old_ins._model.data[obj.parents[i]].children_d; - for(k = 0, l = p.length; k < l; k++) { - if($.inArray(p[k], tmp) === -1) { - dpc.push(p[k]); - } - } - old_ins._model.data[obj.parents[i]].children_d = dpc; - } - old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); - - // insert into new parent and up - for(i = 0, j = new_par.parents.length; i < j; i++) { - this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); - } - dpc = []; - for(i = 0, j = new_par.children.length; i < j; i++) { - dpc[i >= pos ? i+1 : i] = new_par.children[i]; - } - dpc[pos] = obj.id; - new_par.children = dpc; - new_par.children_d.push(obj.id); - new_par.children_d = new_par.children_d.concat(obj.children_d); - - // update object - obj.parent = new_par.id; - tmp = new_par.parents.concat(); - tmp.unshift(new_par.id); - p = obj.parents.length; - obj.parents = tmp; - - // update object children - tmp = tmp.concat(); - for(i = 0, j = obj.children_d.length; i < j; i++) { - this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); - Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); - } - - if(old_par === $.jstree.root || new_par.id === $.jstree.root) { - this._model.force_full_redraw = true; - } - if(!this._model.force_full_redraw) { - this._node_changed(old_par); - this._node_changed(new_par.id); - } - if(!skip_redraw) { - this.redraw(); - } - } - if(callback) { callback.call(this, obj, new_par, pos); } - /** - * triggered when a node is moved - * @event - * @name move_node.jstree - * @param {Object} node - * @param {String} parent the parent's ID - * @param {Number} position the position of the node among the parent's children - * @param {String} old_parent the old parent of the node - * @param {Number} old_position the old position of the node - * @param {Boolean} is_multi do the node and new parent belong to different instances - * @param {jsTree} old_instance the instance the node came from - * @param {jsTree} new_instance the instance of the new parent - */ - this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); - return obj.id; - }, - /** - * copy a node to a new parent - * @name copy_node(obj, par [, pos, callback, is_loaded]) - * @param {mixed} obj the node to copy, pass an array to copy multiple nodes - * @param {mixed} par the new parent - * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` - * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position - * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded - * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn - * @param {Boolean} instance internal parameter indicating if the node comes from another instance - * @trigger model.jstree copy_node.jstree - */ - copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { - var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; - - par = this.get_node(par); - pos = pos === undefined ? 0 : pos; - if(!par) { return false; } - if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { - return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); - } - - if($.isArray(obj)) { - if(obj.length === 1) { - obj = obj[0]; - } - else { - //obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { - par = tmp; - pos = "after"; - } - } - this.redraw(); - return true; - } - } - obj = obj && obj.id ? obj : this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - - old_par = (obj.parent || $.jstree.root).toString(); - new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); - old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); - is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); - - if(old_ins && old_ins._id) { - obj = old_ins._model.data[obj.id]; - } - - if(par.id === $.jstree.root) { - if(pos === "before") { pos = "first"; } - if(pos === "after") { pos = "last"; } - } - switch(pos) { - case "before": - pos = $.inArray(par.id, new_par.children); - break; - case "after" : - pos = $.inArray(par.id, new_par.children) + 1; - break; - case "inside": - case "first": - pos = 0; - break; - case "last": - pos = new_par.children.length; - break; - default: - if(!pos) { pos = 0; } - break; - } - if(pos > new_par.children.length) { pos = new_par.children.length; } - if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; - if(!node) { return false; } - if(node.id === true) { delete node.id; } - node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); - if(!node) { return false; } - tmp = this.get_node(node); - if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } - dpc = []; - dpc.push(node); - dpc = dpc.concat(tmp.children_d); - this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); - - // insert into new parent and up - for(i = 0, j = new_par.parents.length; i < j; i++) { - this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); - } - dpc = []; - for(i = 0, j = new_par.children.length; i < j; i++) { - dpc[i >= pos ? i+1 : i] = new_par.children[i]; - } - dpc[pos] = tmp.id; - new_par.children = dpc; - new_par.children_d.push(tmp.id); - new_par.children_d = new_par.children_d.concat(tmp.children_d); - - if(new_par.id === $.jstree.root) { - this._model.force_full_redraw = true; - } - if(!this._model.force_full_redraw) { - this._node_changed(new_par.id); - } - if(!skip_redraw) { - this.redraw(new_par.id === $.jstree.root); - } - if(callback) { callback.call(this, tmp, new_par, pos); } - /** - * triggered when a node is copied - * @event - * @name copy_node.jstree - * @param {Object} node the copied node - * @param {Object} original the original node - * @param {String} parent the parent's ID - * @param {Number} position the position of the node among the parent's children - * @param {String} old_parent the old parent of the node - * @param {Number} old_position the position of the original node - * @param {Boolean} is_multi do the node and new parent belong to different instances - * @param {jsTree} old_instance the instance the node came from - * @param {jsTree} new_instance the instance of the new parent - */ - this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); - return tmp.id; - }, - /** - * cut a node (a later call to `paste(obj)` would move the node) - * @name cut(obj) - * @param {mixed} obj multiple objects can be passed using an array - * @trigger cut.jstree - */ - cut : function (obj) { - if(!obj) { obj = this._data.core.selected.concat(); } - if(!$.isArray(obj)) { obj = [obj]; } - if(!obj.length) { return false; } - var tmp = [], o, t1, t2; - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - o = this.get_node(obj[t1]); - if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } - } - if(!tmp.length) { return false; } - ccp_node = tmp; - ccp_inst = this; - ccp_mode = 'move_node'; - /** - * triggered when nodes are added to the buffer for moving - * @event - * @name cut.jstree - * @param {Array} node - */ - this.trigger('cut', { "node" : obj }); - }, - /** - * copy a node (a later call to `paste(obj)` would copy the node) - * @name copy(obj) - * @param {mixed} obj multiple objects can be passed using an array - * @trigger copy.jstree - */ - copy : function (obj) { - if(!obj) { obj = this._data.core.selected.concat(); } - if(!$.isArray(obj)) { obj = [obj]; } - if(!obj.length) { return false; } - var tmp = [], o, t1, t2; - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - o = this.get_node(obj[t1]); - if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } - } - if(!tmp.length) { return false; } - ccp_node = tmp; - ccp_inst = this; - ccp_mode = 'copy_node'; - /** - * triggered when nodes are added to the buffer for copying - * @event - * @name copy.jstree - * @param {Array} node - */ - this.trigger('copy', { "node" : obj }); - }, - /** - * get the current buffer (any nodes that are waiting for a paste operation) - * @name get_buffer() - * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) - */ - get_buffer : function () { - return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; - }, - /** - * check if there is something in the buffer to paste - * @name can_paste() - * @return {Boolean} - */ - can_paste : function () { - return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; - }, - /** - * copy or move the previously cut or copied nodes to a new parent - * @name paste(obj [, pos]) - * @param {mixed} obj the new parent - * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` - * @trigger paste.jstree - */ - paste : function (obj, pos) { - obj = this.get_node(obj); - if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } - if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { - /** - * triggered when paste is invoked - * @event - * @name paste.jstree - * @param {String} parent the ID of the receiving node - * @param {Array} node the nodes in the buffer - * @param {String} mode the performed operation - "copy_node" or "move_node" - */ - this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); - } - ccp_node = false; - ccp_mode = false; - ccp_inst = false; - }, - /** - * clear the buffer of previously copied or cut nodes - * @name clear_buffer() - * @trigger clear_buffer.jstree - */ - clear_buffer : function () { - ccp_node = false; - ccp_mode = false; - ccp_inst = false; - /** - * triggered when the copy / cut buffer is cleared - * @event - * @name clear_buffer.jstree - */ - this.trigger('clear_buffer'); - }, - /** - * put a node in edit mode (input field to rename the node) - * @name edit(obj [, default_text, callback]) - * @param {mixed} obj - * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) - * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text - */ - edit : function (obj, default_text, callback) { - var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; - obj = this.get_node(obj); - if(!obj) { return false; } - if(!this.check("edit", obj, this.get_parent(obj))) { - this.settings.core.error.call(this, this._data.core.last_error); - return false; - } - tmp = obj; - default_text = typeof default_text === 'string' ? default_text : obj.text; - this.set_text(obj, ""); - obj = this._open_to(obj); - tmp.text = default_text; - - rtl = this._data.core.rtl; - w = this.element.width(); - this._data.core.focused = tmp.id; - a = obj.children('.jstree-anchor').focus(); - s = $(''); - /*! - oi = obj.children("i:visible"), - ai = a.children("i:visible"), - w1 = oi.width() * oi.length, - w2 = ai.width() * ai.length, - */ - t = default_text; - h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); - h2 = $("<"+"input />", { - "value" : t, - "class" : "jstree-rename-input", - // "size" : t.length, - "css" : { - "padding" : "0", - "border" : "1px solid silver", - "box-sizing" : "border-box", - "display" : "inline-block", - "height" : (this._data.core.li_height) + "px", - "lineHeight" : (this._data.core.li_height) + "px", - "width" : "150px" // will be set a bit further down - }, - "blur" : $.proxy(function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var i = s.children(".jstree-rename-input"), - v = i.val(), - f = this.settings.core.force_text, - nv; - if(v === "") { v = t; } - h1.remove(); - s.replaceWith(a); - s.remove(); - t = f ? t : $('
    ').append($.parseHTML(t)).html(); - this.set_text(obj, t); - nv = !!this.rename_node(obj, f ? $('
    ').text(v).text() : $('
    ').append($.parseHTML(v)).html()); - if(!nv) { - this.set_text(obj, t); // move this up? and fix #483 - } - this._data.core.focused = tmp.id; - setTimeout($.proxy(function () { - var node = this.get_node(tmp.id, true); - if(node.length) { - this._data.core.focused = tmp.id; - node.children('.jstree-anchor').focus(); - } - }, this), 0); - if(callback) { - callback.call(this, tmp, nv, cancel); - } - h2 = null; - }, this), - "keydown" : function (e) { - var key = e.which; - if(key === 27) { - cancel = true; - this.value = t; - } - if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { - e.stopImmediatePropagation(); - } - if(key === 27 || key === 13) { - e.preventDefault(); - this.blur(); - } - }, - "click" : function (e) { e.stopImmediatePropagation(); }, - "mousedown" : function (e) { e.stopImmediatePropagation(); }, - "keyup" : function (e) { - h2.width(Math.min(h1.text("pW" + this.value).width(),w)); - }, - "keypress" : function(e) { - if(e.which === 13) { return false; } - } - }); - fn = { - fontFamily : a.css('fontFamily') || '', - fontSize : a.css('fontSize') || '', - fontWeight : a.css('fontWeight') || '', - fontStyle : a.css('fontStyle') || '', - fontStretch : a.css('fontStretch') || '', - fontVariant : a.css('fontVariant') || '', - letterSpacing : a.css('letterSpacing') || '', - wordSpacing : a.css('wordSpacing') || '' - }; - s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); - a.replaceWith(s); - h1.css(fn); - h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); - $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { - if (h2 && e.target !== h2) { - $(h2).blur(); - } - }); - }, - - - /** - * changes the theme - * @name set_theme(theme_name [, theme_url]) - * @param {String} theme_name the name of the new theme to apply - * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. - * @trigger set_theme.jstree - */ - set_theme : function (theme_name, theme_url) { - if(!theme_name) { return false; } - if(theme_url === true) { - var dir = this.settings.core.themes.dir; - if(!dir) { dir = $.jstree.path + '/themes'; } - theme_url = dir + '/' + theme_name + '/style.css'; - } - if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { - $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); - themes_loaded.push(theme_url); - } - if(this._data.core.themes.name) { - this.element.removeClass('jstree-' + this._data.core.themes.name); - } - this._data.core.themes.name = theme_name; - this.element.addClass('jstree-' + theme_name); - this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); - /** - * triggered when a theme is set - * @event - * @name set_theme.jstree - * @param {String} theme the new theme - */ - this.trigger('set_theme', { 'theme' : theme_name }); - }, - /** - * gets the name of the currently applied theme name - * @name get_theme() - * @return {String} - */ - get_theme : function () { return this._data.core.themes.name; }, - /** - * changes the theme variant (if the theme has variants) - * @name set_theme_variant(variant_name) - * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) - */ - set_theme_variant : function (variant_name) { - if(this._data.core.themes.variant) { - this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); - } - this._data.core.themes.variant = variant_name; - if(variant_name) { - this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); - } - }, - /** - * gets the name of the currently applied theme variant - * @name get_theme() - * @return {String} - */ - get_theme_variant : function () { return this._data.core.themes.variant; }, - /** - * shows a striped background on the container (if the theme supports it) - * @name show_stripes() - */ - show_stripes : function () { - this._data.core.themes.stripes = true; - this.get_container_ul().addClass("jstree-striped"); - /** - * triggered when stripes are shown - * @event - * @name show_stripes.jstree - */ - this.trigger('show_stripes'); - }, - /** - * hides the striped background on the container - * @name hide_stripes() - */ - hide_stripes : function () { - this._data.core.themes.stripes = false; - this.get_container_ul().removeClass("jstree-striped"); - /** - * triggered when stripes are hidden - * @event - * @name hide_stripes.jstree - */ - this.trigger('hide_stripes'); - }, - /** - * toggles the striped background on the container - * @name toggle_stripes() - */ - toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, - /** - * shows the connecting dots (if the theme supports it) - * @name show_dots() - */ - show_dots : function () { - this._data.core.themes.dots = true; - this.get_container_ul().removeClass("jstree-no-dots"); - /** - * triggered when dots are shown - * @event - * @name show_dots.jstree - */ - this.trigger('show_dots'); - }, - /** - * hides the connecting dots - * @name hide_dots() - */ - hide_dots : function () { - this._data.core.themes.dots = false; - this.get_container_ul().addClass("jstree-no-dots"); - /** - * triggered when dots are hidden - * @event - * @name hide_dots.jstree - */ - this.trigger('hide_dots'); - }, - /** - * toggles the connecting dots - * @name toggle_dots() - */ - toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, - /** - * show the node icons - * @name show_icons() - */ - show_icons : function () { - this._data.core.themes.icons = true; - this.get_container_ul().removeClass("jstree-no-icons"); - /** - * triggered when icons are shown - * @event - * @name show_icons.jstree - */ - this.trigger('show_icons'); - }, - /** - * hide the node icons - * @name hide_icons() - */ - hide_icons : function () { - this._data.core.themes.icons = false; - this.get_container_ul().addClass("jstree-no-icons"); - /** - * triggered when icons are hidden - * @event - * @name hide_icons.jstree - */ - this.trigger('hide_icons'); - }, - /** - * toggle the node icons - * @name toggle_icons() - */ - toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, - /** - * show the node ellipsis - * @name show_icons() - */ - show_ellipsis : function () { - this._data.core.themes.ellipsis = true; - this.get_container_ul().addClass("jstree-ellipsis"); - /** - * triggered when ellisis is shown - * @event - * @name show_ellipsis.jstree - */ - this.trigger('show_ellipsis'); - }, - /** - * hide the node ellipsis - * @name hide_ellipsis() - */ - hide_ellipsis : function () { - this._data.core.themes.ellipsis = false; - this.get_container_ul().removeClass("jstree-ellipsis"); - /** - * triggered when ellisis is hidden - * @event - * @name hide_ellipsis.jstree - */ - this.trigger('hide_ellipsis'); - }, - /** - * toggle the node ellipsis - * @name toggle_icons() - */ - toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, - /** - * set the node icon for a node - * @name set_icon(obj, icon) - * @param {mixed} obj - * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class - */ - set_icon : function (obj, icon) { - var t1, t2, dom, old; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.set_icon(obj[t1], icon); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - old = obj.icon; - obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; - dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); - if(icon === false) { - dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); - this.hide_icon(obj); - } - else if(icon === true || icon === null || icon === undefined || icon === '') { - dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); - if(old === false) { this.show_icon(obj); } - } - else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { - dom.removeClass(old).css("background",""); - dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); - if(old === false) { this.show_icon(obj); } - } - else { - dom.removeClass(old).css("background",""); - dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); - if(old === false) { this.show_icon(obj); } - } - return true; - }, - /** - * get the node icon for a node - * @name get_icon(obj) - * @param {mixed} obj - * @return {String} - */ - get_icon : function (obj) { - obj = this.get_node(obj); - return (!obj || obj.id === $.jstree.root) ? false : obj.icon; - }, - /** - * hide the icon on an individual node - * @name hide_icon(obj) - * @param {mixed} obj - */ - hide_icon : function (obj) { - var t1, t2; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.hide_icon(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj === $.jstree.root) { return false; } - obj.icon = false; - this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); - return true; - }, - /** - * show the icon on an individual node - * @name show_icon(obj) - * @param {mixed} obj - */ - show_icon : function (obj) { - var t1, t2, dom; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.show_icon(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj === $.jstree.root) { return false; } - dom = this.get_node(obj, true); - obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; - if(!obj.icon) { obj.icon = true; } - dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); - return true; - } - }; - - // helpers - $.vakata = {}; - // collect attributes - $.vakata.attributes = function(node, with_values) { - node = $(node)[0]; - var attr = with_values ? {} : []; - if(node && node.attributes) { - $.each(node.attributes, function (i, v) { - if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } - if(v.value !== null && $.trim(v.value) !== '') { - if(with_values) { attr[v.name] = v.value; } - else { attr.push(v.name); } - } - }); - } - return attr; - }; - $.vakata.array_unique = function(array) { - var a = [], i, j, l, o = {}; - for(i = 0, l = array.length; i < l; i++) { - if(o[array[i]] === undefined) { - a.push(array[i]); - o[array[i]] = true; - } - } - return a; - }; - // remove item from array - $.vakata.array_remove = function(array, from) { - array.splice(from, 1); - return array; - //var rest = array.slice((to || from) + 1 || array.length); - //array.length = from < 0 ? array.length + from : from; - //array.push.apply(array, rest); - //return array; - }; - // remove item from array - $.vakata.array_remove_item = function(array, item) { - var tmp = $.inArray(item, array); - return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; - }; - $.vakata.array_filter = function(c,a,b,d,e) { - if (c.filter) { - return c.filter(a, b); - } - d=[]; - for (e in c) { - if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { - d.push(c[e]); - } - } - return d; - }; - - -/** - * ### Changed plugin - * - * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes. - */ - - $.jstree.plugins.changed = function (options, parent) { - var last = []; - this.trigger = function (ev, data) { - var i, j; - if(!data) { - data = {}; - } - if(ev.replace('.jstree','') === 'changed') { - data.changed = { selected : [], deselected : [] }; - var tmp = {}; - for(i = 0, j = last.length; i < j; i++) { - tmp[last[i]] = 1; - } - for(i = 0, j = data.selected.length; i < j; i++) { - if(!tmp[data.selected[i]]) { - data.changed.selected.push(data.selected[i]); - } - else { - tmp[data.selected[i]] = 2; - } - } - for(i = 0, j = last.length; i < j; i++) { - if(tmp[last[i]] === 1) { - data.changed.deselected.push(last[i]); - } - } - last = data.selected.slice(); - } - /** - * triggered when selection changes (the "changed" plugin enhances the original event with more data) - * @event - * @name changed.jstree - * @param {Object} node - * @param {Object} action the action that caused the selection to change - * @param {Array} selected the current selection - * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event - * @param {Object} event the event (if any) that triggered this changed event - * @plugin changed - */ - parent.trigger.call(this, ev, data); - }; - this.refresh = function (skip_loading, forget_state) { - last = []; - return parent.refresh.apply(this, arguments); - }; - }; - -/** - * ### Checkbox plugin - * - * This plugin renders checkbox icons in front of each node, making multiple selection much easier. - * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. - */ - - var _i = document.createElement('I'); - _i.className = 'jstree-icon jstree-checkbox'; - _i.setAttribute('role', 'presentation'); - /** - * stores all defaults for the checkbox plugin - * @name $.jstree.defaults.checkbox - * @plugin checkbox - */ - $.jstree.defaults.checkbox = { - /** - * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. - * @name $.jstree.defaults.checkbox.visible - * @plugin checkbox - */ - visible : true, - /** - * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. - * @name $.jstree.defaults.checkbox.three_state - * @plugin checkbox - */ - three_state : true, - /** - * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. - * @name $.jstree.defaults.checkbox.whole_node - * @plugin checkbox - */ - whole_node : true, - /** - * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. - * @name $.jstree.defaults.checkbox.keep_selected_style - * @plugin checkbox - */ - keep_selected_style : true, - /** - * This setting controls how cascading and undetermined nodes are applied. - * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. - * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. - * @name $.jstree.defaults.checkbox.cascade - * @plugin checkbox - */ - cascade : '', - /** - * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. - * @name $.jstree.defaults.checkbox.tie_selection - * @plugin checkbox - */ - tie_selection : true, - - /** - * This setting controls if cascading down affects disabled checkboxes - * @name $.jstree.defaults.checkbox.cascade_to_disabled - * @plugin checkbox - */ - cascade_to_disabled : true, - - /** - * This setting controls if cascading down affects hidden checkboxes - * @name $.jstree.defaults.checkbox.cascade_to_hidden - * @plugin checkbox - */ - cascade_to_hidden : true - }; - $.jstree.plugins.checkbox = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - this._data.checkbox.uto = false; - this._data.checkbox.selected = []; - if(this.settings.checkbox.three_state) { - this.settings.checkbox.cascade = 'up+down+undetermined'; - } - this.element - .on("init.jstree", $.proxy(function () { - this._data.checkbox.visible = this.settings.checkbox.visible; - if(!this.settings.checkbox.keep_selected_style) { - this.element.addClass('jstree-checkbox-no-clicked'); - } - if(this.settings.checkbox.tie_selection) { - this.element.addClass('jstree-checkbox-selection'); - } - }, this)) - .on("loading.jstree", $.proxy(function () { - this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); - }, this)); - if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { - this.element - .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { - // only if undetermined is in setting - if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } - this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); - }, this)); - } - if(!this.settings.checkbox.tie_selection) { - this.element - .on('model.jstree', $.proxy(function (e, data) { - var m = this._model.data, - p = m[data.parent], - dpc = data.nodes, - i, j; - for(i = 0, j = dpc.length; i < j; i++) { - m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); - if(m[dpc[i]].state.checked) { - this._data.checkbox.selected.push(dpc[i]); - } - } - }, this)); - } - if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { - this.element - .on('model.jstree', $.proxy(function (e, data) { - var m = this._model.data, - p = m[data.parent], - dpc = data.nodes, - chd = [], - c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; - - if(s.indexOf('down') !== -1) { - // apply down - if(p.state[ t ? 'selected' : 'checked' ]) { - for(i = 0, j = dpc.length; i < j; i++) { - m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; - } - - this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); - } - else { - for(i = 0, j = dpc.length; i < j; i++) { - if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { - for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { - m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; - } - this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); - } - } - } - } - - if(s.indexOf('up') !== -1) { - // apply up - for(i = 0, j = p.children_d.length; i < j; i++) { - if(!m[p.children_d[i]].children.length) { - chd.push(m[p.children_d[i]].parent); - } - } - chd = $.vakata.array_unique(chd); - for(k = 0, l = chd.length; k < l; k++) { - p = m[chd[k]]; - while(p && p.id !== $.jstree.root) { - c = 0; - for(i = 0, j = p.children.length; i < j; i++) { - c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; - } - if(c === j) { - p.state[ t ? 'selected' : 'checked' ] = true; - this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); - tmp = this.get_node(p, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - break; - } - p = this.get_node(p.parent); - } - } - } - - this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); - }, this)) - .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { - var self = this, - obj = data.node, - m = this._model.data, - par = this.get_node(obj.parent), - i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, - sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; - - for (i = 0, j = cur.length; i < j; i++) { - sel[cur[i]] = true; - } - - // apply down - if(s.indexOf('down') !== -1) { - //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); - var selectedIds = this._cascade_new_checked_state(obj.id, true); - var temp = obj.children_d.concat(obj.id); - for (i = 0, j = temp.length; i < j; i++) { - if (selectedIds.indexOf(temp[i]) > -1) { - sel[temp[i]] = true; - } - else { - delete sel[temp[i]]; - } - } - } - - // apply up - if(s.indexOf('up') !== -1) { - while(par && par.id !== $.jstree.root) { - c = 0; - for(i = 0, j = par.children.length; i < j; i++) { - c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; - } - if(c === j) { - par.state[ t ? 'selected' : 'checked' ] = true; - sel[par.id] = true; - //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); - tmp = this.get_node(par, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - break; - } - par = this.get_node(par.parent); - } - } - - cur = []; - for (i in sel) { - if (sel.hasOwnProperty(i)) { - cur.push(i); - } - } - this._data[ t ? 'core' : 'checkbox' ].selected = cur; - }, this)) - .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { - var obj = this.get_node($.jstree.root), - m = this._model.data, - i, j, tmp; - for(i = 0, j = obj.children_d.length; i < j; i++) { - tmp = m[obj.children_d[i]]; - if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { - tmp.original.state.undetermined = false; - } - } - }, this)) - .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { - var self = this, - obj = data.node, - dom = this.get_node(obj, true), - i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, - cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}, - stillSelectedIds = [], - allIds = obj.children_d.concat(obj.id); - - // apply down - if(s.indexOf('down') !== -1) { - var selectedIds = this._cascade_new_checked_state(obj.id, false); - - cur = cur.filter(function(id) { - return allIds.indexOf(id) === -1 || selectedIds.indexOf(id) > -1; - }); - } - - // only apply up if cascade up is enabled and if this node is not selected - // (if all child nodes are disabled and cascade_to_disabled === false then this node will till be selected). - if(s.indexOf('up') !== -1 && cur.indexOf(obj.id) === -1) { - for(i = 0, j = obj.parents.length; i < j; i++) { - tmp = this._model.data[obj.parents[i]]; - tmp.state[ t ? 'selected' : 'checked' ] = false; - if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { - tmp.original.state.undetermined = false; - } - tmp = this.get_node(obj.parents[i], true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - - cur = cur.filter(function(id) { - return obj.parents.indexOf(id) === -1; - }); - } - - this._data[ t ? 'core' : 'checkbox' ].selected = cur; - }, this)); - } - if(this.settings.checkbox.cascade.indexOf('up') !== -1) { - this.element - .on('delete_node.jstree', $.proxy(function (e, data) { - // apply up (whole handler) - var p = this.get_node(data.parent), - m = this._model.data, - i, j, c, tmp, t = this.settings.checkbox.tie_selection; - while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { - c = 0; - for(i = 0, j = p.children.length; i < j; i++) { - c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; - } - if(j > 0 && c === j) { - p.state[ t ? 'selected' : 'checked' ] = true; - this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); - tmp = this.get_node(p, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - break; - } - p = this.get_node(p.parent); - } - }, this)) - .on('move_node.jstree', $.proxy(function (e, data) { - // apply up (whole handler) - var is_multi = data.is_multi, - old_par = data.old_parent, - new_par = this.get_node(data.parent), - m = this._model.data, - p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; - if(!is_multi) { - p = this.get_node(old_par); - while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { - c = 0; - for(i = 0, j = p.children.length; i < j; i++) { - c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; - } - if(j > 0 && c === j) { - p.state[ t ? 'selected' : 'checked' ] = true; - this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); - tmp = this.get_node(p, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - break; - } - p = this.get_node(p.parent); - } - } - p = new_par; - while(p && p.id !== $.jstree.root) { - c = 0; - for(i = 0, j = p.children.length; i < j; i++) { - c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; - } - if(c === j) { - if(!p.state[ t ? 'selected' : 'checked' ]) { - p.state[ t ? 'selected' : 'checked' ] = true; - this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); - tmp = this.get_node(p, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - } - else { - if(p.state[ t ? 'selected' : 'checked' ]) { - p.state[ t ? 'selected' : 'checked' ] = false; - this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); - tmp = this.get_node(p, true); - if(tmp && tmp.length) { - tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - break; - } - } - p = this.get_node(p.parent); - } - }, this)); - } - }; - - /** - * set the undetermined state where and if necessary. Used internally. - * @private - * @name _undetermined() - * @plugin checkbox - */ - this._undetermined = function () { - if(this.element === null) { return; } - var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this; - for(i = 0, j = s.length; i < j; i++) { - if(m[s[i]] && m[s[i]].parents) { - for(k = 0, l = m[s[i]].parents.length; k < l; k++) { - if(o[m[s[i]].parents[k]] !== undefined) { - break; - } - if(m[s[i]].parents[k] !== $.jstree.root) { - o[m[s[i]].parents[k]] = true; - p.push(m[s[i]].parents[k]); - } - } - } - } - // attempt for server side undetermined state - this.element.find('.jstree-closed').not(':has(.jstree-children)') - .each(function () { - var tmp = tt.get_node(this), tmp2; - - if(!tmp) { return; } - - if(!tmp.state.loaded) { - if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { - if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { - o[tmp.id] = true; - p.push(tmp.id); - } - for(k = 0, l = tmp.parents.length; k < l; k++) { - if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { - o[tmp.parents[k]] = true; - p.push(tmp.parents[k]); - } - } - } - } - else { - for(i = 0, j = tmp.children_d.length; i < j; i++) { - tmp2 = m[tmp.children_d[i]]; - if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { - if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { - o[tmp2.id] = true; - p.push(tmp2.id); - } - for(k = 0, l = tmp2.parents.length; k < l; k++) { - if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { - o[tmp2.parents[k]] = true; - p.push(tmp2.parents[k]); - } - } - } - } - } - }); - - this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); - for(i = 0, j = p.length; i < j; i++) { - if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { - s = this.get_node(p[i], true); - if(s && s.length) { - s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); - } - } - } - }; - this.redraw_node = function(obj, deep, is_callback, force_render) { - obj = parent.redraw_node.apply(this, arguments); - if(obj) { - var i, j, tmp = null, icon = null; - for(i = 0, j = obj.childNodes.length; i < j; i++) { - if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { - tmp = obj.childNodes[i]; - break; - } - } - if(tmp) { - if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } - icon = _i.cloneNode(false); - if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } - tmp.insertBefore(icon, tmp.childNodes[0]); - } - } - if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { - if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } - this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); - } - return obj; - }; - /** - * show the node checkbox icons - * @name show_checkboxes() - * @plugin checkbox - */ - this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; - /** - * hide the node checkbox icons - * @name hide_checkboxes() - * @plugin checkbox - */ - this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; - /** - * toggle the node icons - * @name toggle_checkboxes() - * @plugin checkbox - */ - this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; - /** - * checks if a node is in an undetermined state - * @name is_undetermined(obj) - * @param {mixed} obj - * @return {Boolean} - */ - this.is_undetermined = function (obj) { - obj = this.get_node(obj); - var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; - if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { - return false; - } - if(!obj.state.loaded && obj.original.state.undetermined === true) { - return true; - } - for(i = 0, j = obj.children_d.length; i < j; i++) { - if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { - return true; - } - } - return false; - }; - /** - * disable a node's checkbox - * @name disable_checkbox(obj) - * @param {mixed} obj an array can be used too - * @trigger disable_checkbox.jstree - * @plugin checkbox - */ - this.disable_checkbox = function (obj) { - var t1, t2, dom; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.disable_checkbox(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(!obj.state.checkbox_disabled) { - obj.state.checkbox_disabled = true; - if(dom && dom.length) { - dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); - } - /** - * triggered when an node's checkbox is disabled - * @event - * @name disable_checkbox.jstree - * @param {Object} node - * @plugin checkbox - */ - this.trigger('disable_checkbox', { 'node' : obj }); - } - }; - /** - * enable a node's checkbox - * @name disable_checkbox(obj) - * @param {mixed} obj an array can be used too - * @trigger enable_checkbox.jstree - * @plugin checkbox - */ - this.enable_checkbox = function (obj) { - var t1, t2, dom; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.enable_checkbox(obj[t1]); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(obj.state.checkbox_disabled) { - obj.state.checkbox_disabled = false; - if(dom && dom.length) { - dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); - } - /** - * triggered when an node's checkbox is enabled - * @event - * @name enable_checkbox.jstree - * @param {Object} node - * @plugin checkbox - */ - this.trigger('enable_checkbox', { 'node' : obj }); - } - }; - - this.activate_node = function (obj, e) { - if($(e.target).hasClass('jstree-checkbox-disabled')) { - return false; - } - if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { - e.ctrlKey = true; - } - if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { - return parent.activate_node.call(this, obj, e); - } - if(this.is_disabled(obj)) { - return false; - } - if(this.is_checked(obj)) { - this.uncheck_node(obj, e); - } - else { - this.check_node(obj, e); - } - this.trigger('activate_node', { 'node' : this.get_node(obj) }); - }; - - /** - * Unchecks a node and all its descendants. This function does NOT affect hidden and disabled nodes (or their descendants). - * However if these unaffected nodes are already selected their ids will be included in the returned array. - * @param id - * @param checkedState - * @returns {Array} Array of all node id's (in this tree branch) that are checked. - */ - this._cascade_new_checked_state = function(id, checkedState) { - var self = this; - var t = this.settings.checkbox.tie_selection; - var node = this._model.data[id]; - var selectedNodeIds = []; - var selectedChildrenIds = [], i, j, selectedChildIds; - - if ( - (this.settings.checkbox.cascade_to_disabled || !node.state.disabled) && - (this.settings.checkbox.cascade_to_hidden || !node.state.hidden) - ) { - //First try and check/uncheck the children - if (node.children) { - for (i = 0, j = node.children.length; i < j; i++) { - var childId = node.children[i]; - selectedChildIds = self._cascade_new_checked_state(childId, checkedState); - selectedNodeIds = selectedNodeIds.concat(selectedChildIds); - if (selectedChildIds.indexOf(childId) > -1) { - selectedChildrenIds.push(childId); - } - } - } - - var dom = self.get_node(node, true); - - //A node's state is undetermined if some but not all of it's children are checked/selected . - var undetermined = selectedChildrenIds.length > 0 && selectedChildrenIds.length < node.children.length; - - if(node.original && node.original.state && node.original.state.undetermined) { - node.original.state.undetermined = undetermined; - } - - //If a node is undetermined then remove selected class - if (undetermined) { - node.state[ t ? 'selected' : 'checked' ] = false; - dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - //Otherwise, if the checkedState === true (i.e. the node is being checked now) and all of the node's children are checked (if it has any children), - //check the node and style it correctly. - else if (checkedState && selectedChildrenIds.length === node.children.length) { - node.state[ t ? 'selected' : 'checked' ] = checkedState; - selectedNodeIds.push(node.id); - - dom.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - else { - node.state[ t ? 'selected' : 'checked' ] = false; - dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); - } - } - else { - selectedChildIds = this.get_checked_descendants(id); - - if (node.state[ t ? 'selected' : 'checked' ]) { - selectedChildIds.push(node.id); - } - - selectedNodeIds = selectedNodeIds.concat(selectedChildIds); - } - - return selectedNodeIds; - }; - - /** - * Gets ids of nodes selected in branch (of tree) specified by id (does not include the node specified by id) - * @param id - */ - this.get_checked_descendants = function(id) { - var self = this; - var t = self.settings.checkbox.tie_selection; - var node = self._model.data[id]; - - return node.children_d.filter(function(_id) { - return self._model.data[_id].state[ t ? 'selected' : 'checked' ]; - }); - }; - - /** - * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) - * @name check_node(obj) - * @param {mixed} obj an array can be used to check multiple nodes - * @trigger check_node.jstree - * @plugin checkbox - */ - this.check_node = function (obj, e) { - if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } - var dom, t1, t2, th; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.check_node(obj[t1], e); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(!obj.state.checked) { - obj.state.checked = true; - this._data.checkbox.selected.push(obj.id); - if(dom && dom.length) { - dom.children('.jstree-anchor').addClass('jstree-checked'); - } - /** - * triggered when an node is checked (only if tie_selection in checkbox settings is false) - * @event - * @name check_node.jstree - * @param {Object} node - * @param {Array} selected the current selection - * @param {Object} event the event (if any) that triggered this check_node - * @plugin checkbox - */ - this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); - } - }; - /** - * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) - * @name uncheck_node(obj) - * @param {mixed} obj an array can be used to uncheck multiple nodes - * @trigger uncheck_node.jstree - * @plugin checkbox - */ - this.uncheck_node = function (obj, e) { - if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } - var t1, t2, dom; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.uncheck_node(obj[t1], e); - } - return true; - } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { - return false; - } - dom = this.get_node(obj, true); - if(obj.state.checked) { - obj.state.checked = false; - this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); - if(dom.length) { - dom.children('.jstree-anchor').removeClass('jstree-checked'); - } - /** - * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) - * @event - * @name uncheck_node.jstree - * @param {Object} node - * @param {Array} selected the current selection - * @param {Object} event the event (if any) that triggered this uncheck_node - * @plugin checkbox - */ - this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); - } - }; - - /** - * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) - * @name check_all() - * @trigger check_all.jstree, changed.jstree - * @plugin checkbox - */ - this.check_all = function () { - if(this.settings.checkbox.tie_selection) { return this.select_all(); } - var tmp = this._data.checkbox.selected.concat([]), i, j; - this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); - for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { - if(this._model.data[this._data.checkbox.selected[i]]) { - this._model.data[this._data.checkbox.selected[i]].state.checked = true; - } - } - this.redraw(true); - /** - * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) - * @event - * @name check_all.jstree - * @param {Array} selected the current selection - * @plugin checkbox - */ - this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); - }; - /** - * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) - * @name uncheck_all() - * @trigger uncheck_all.jstree - * @plugin checkbox - */ - this.uncheck_all = function () { - if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } - var tmp = this._data.checkbox.selected.concat([]), i, j; - for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { - if(this._model.data[this._data.checkbox.selected[i]]) { - this._model.data[this._data.checkbox.selected[i]].state.checked = false; - } - } - this._data.checkbox.selected = []; - this.element.find('.jstree-checked').removeClass('jstree-checked'); - /** - * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) - * @event - * @name uncheck_all.jstree - * @param {Object} node the previous selection - * @param {Array} selected the current selection - * @plugin checkbox - */ - this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); - }; - /** - * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) - * @name is_checked(obj) - * @param {mixed} obj - * @return {Boolean} - * @plugin checkbox - */ - this.is_checked = function (obj) { - if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - return obj.state.checked; - }; - /** - * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) - * @name get_checked([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - * @plugin checkbox - */ - this.get_checked = function (full) { - if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } - return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; - }; - /** - * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) - * @name get_top_checked([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - * @plugin checkbox - */ - this.get_top_checked = function (full) { - if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } - var tmp = this.get_checked(true), - obj = {}, i, j, k, l; - for(i = 0, j = tmp.length; i < j; i++) { - obj[tmp[i].id] = tmp[i]; - } - for(i = 0, j = tmp.length; i < j; i++) { - for(k = 0, l = tmp[i].children_d.length; k < l; k++) { - if(obj[tmp[i].children_d[k]]) { - delete obj[tmp[i].children_d[k]]; - } - } - } - tmp = []; - for(i in obj) { - if(obj.hasOwnProperty(i)) { - tmp.push(i); - } - } - return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; - }; - /** - * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) - * @name get_bottom_checked([full]) - * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned - * @return {Array} - * @plugin checkbox - */ - this.get_bottom_checked = function (full) { - if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } - var tmp = this.get_checked(true), - obj = [], i, j; - for(i = 0, j = tmp.length; i < j; i++) { - if(!tmp[i].children.length) { - obj.push(tmp[i].id); - } - } - return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; - }; - this.load_node = function (obj, callback) { - var k, l, i, j, c, tmp; - if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { - tmp = this.get_node(obj); - if(tmp && tmp.state.loaded) { - for(k = 0, l = tmp.children_d.length; k < l; k++) { - if(this._model.data[tmp.children_d[k]].state.checked) { - c = true; - this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); - } - } - } - } - return parent.load_node.apply(this, arguments); - }; - this.get_state = function () { - var state = parent.get_state.apply(this, arguments); - if(this.settings.checkbox.tie_selection) { return state; } - state.checkbox = this._data.checkbox.selected.slice(); - return state; - }; - this.set_state = function (state, callback) { - var res = parent.set_state.apply(this, arguments); - if(res && state.checkbox) { - if(!this.settings.checkbox.tie_selection) { - this.uncheck_all(); - var _this = this; - $.each(state.checkbox, function (i, v) { - _this.check_node(v); - }); - } - delete state.checkbox; - this.set_state(state, callback); - return false; - } - return res; - }; - this.refresh = function (skip_loading, forget_state) { - if(!this.settings.checkbox.tie_selection) { - this._data.checkbox.selected = []; - } - return parent.refresh.apply(this, arguments); - }; - }; - - // include the checkbox plugin by default - // $.jstree.defaults.plugins.push("checkbox"); - - -/** - * ### Conditionalselect plugin - * - * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). - */ - - /** - * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. - * @name $.jstree.defaults.checkbox.visible - * @plugin checkbox - */ - $.jstree.defaults.conditionalselect = function () { return true; }; - $.jstree.plugins.conditionalselect = function (options, parent) { - // own function - this.activate_node = function (obj, e) { - if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { - return parent.activate_node.call(this, obj, e); - } - }; - }; - - -/** - * ### Contextmenu plugin - * - * Shows a context menu when a node is right-clicked. - */ - - /** - * stores all defaults for the contextmenu plugin - * @name $.jstree.defaults.contextmenu - * @plugin contextmenu - */ - $.jstree.defaults.contextmenu = { - /** - * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. - * @name $.jstree.defaults.contextmenu.select_node - * @plugin contextmenu - */ - select_node : true, - /** - * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. - * @name $.jstree.defaults.contextmenu.show_at_node - * @plugin contextmenu - */ - show_at_node : true, - /** - * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). - * - * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. - * - * * `separator_before` - a boolean indicating if there should be a separator before this item - * * `separator_after` - a boolean indicating if there should be a separator after this item - * * `_disabled` - a boolean indicating if this action should be disabled - * * `label` - a string - the name of the action (could be a function returning a string) - * * `title` - a string - an optional tooltip for the item - * * `action` - a function to be executed if this item is chosen, the function will receive - * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class - * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) - * * `shortcut_label` - shortcut label (like for example `F2` for rename) - * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered - * - * @name $.jstree.defaults.contextmenu.items - * @plugin contextmenu - */ - items : function (o, cb) { // Could be an object directly - return { - "create" : { - "separator_before" : false, - "separator_after" : true, - "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), - "label" : "Create", - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - inst.create_node(obj, {}, "last", function (new_node) { - try { - inst.edit(new_node); - } catch (ex) { - setTimeout(function () { inst.edit(new_node); },0); - } - }); - } - }, - "rename" : { - "separator_before" : false, - "separator_after" : false, - "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), - "label" : "Rename", - /*! - "shortcut" : 113, - "shortcut_label" : 'F2', - "icon" : "glyphicon glyphicon-leaf", - */ - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - inst.edit(obj); - } - }, - "remove" : { - "separator_before" : false, - "icon" : false, - "separator_after" : false, - "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), - "label" : "Delete", - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - if(inst.is_selected(obj)) { - inst.delete_node(inst.get_selected()); - } - else { - inst.delete_node(obj); - } - } - }, - "ccp" : { - "separator_before" : true, - "icon" : false, - "separator_after" : false, - "label" : "Edit", - "action" : false, - "submenu" : { - "cut" : { - "separator_before" : false, - "separator_after" : false, - "label" : "Cut", - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - if(inst.is_selected(obj)) { - inst.cut(inst.get_top_selected()); - } - else { - inst.cut(obj); - } - } - }, - "copy" : { - "separator_before" : false, - "icon" : false, - "separator_after" : false, - "label" : "Copy", - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - if(inst.is_selected(obj)) { - inst.copy(inst.get_top_selected()); - } - else { - inst.copy(obj); - } - } - }, - "paste" : { - "separator_before" : false, - "icon" : false, - "_disabled" : function (data) { - return !$.jstree.reference(data.reference).can_paste(); - }, - "separator_after" : false, - "label" : "Paste", - "action" : function (data) { - var inst = $.jstree.reference(data.reference), - obj = inst.get_node(data.reference); - inst.paste(obj); - } - } - } - } - }; - } - }; - - $.jstree.plugins.contextmenu = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - - var last_ts = 0, cto = null, ex, ey; - this.element - .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { - this.get_container_ul().addClass('jstree-contextmenu'); - }, this)) - .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { - if (e.target.tagName.toLowerCase() === 'input') { - return; - } - e.preventDefault(); - last_ts = e.ctrlKey ? +new Date() : 0; - if(data || cto) { - last_ts = (+new Date()) + 10000; - } - if(cto) { - clearTimeout(cto); - } - if(!this.is_loading(e.currentTarget)) { - this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); - } - }, this)) - .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { - if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click - $.vakata.context.hide(); - } - last_ts = 0; - }, this)) - .on("touchstart.jstree", ".jstree-anchor", function (e) { - if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { - return; - } - ex = e.originalEvent.changedTouches[0].clientX; - ey = e.originalEvent.changedTouches[0].clientY; - cto = setTimeout(function () { - $(e.currentTarget).trigger('contextmenu', true); - }, 750); - }) - .on('touchmove.vakata.jstree', function (e) { - if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 10 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 10)) { - clearTimeout(cto); - $.vakata.context.hide(); - } - }) - .on('touchend.vakata.jstree', function (e) { - if(cto) { - clearTimeout(cto); - } - }); - - /*! - if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { - var el = null, tm = null; - this.element - .on("touchstart", ".jstree-anchor", function (e) { - el = e.currentTarget; - tm = +new Date(); - $(document).one("touchend", function (e) { - e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); - e.currentTarget = e.target; - tm = ((+(new Date())) - tm); - if(e.target === el && tm > 600 && tm < 1000) { - e.preventDefault(); - $(el).trigger('contextmenu', e); - } - el = null; - tm = null; - }); - }); - } - */ - $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { - this._data.contextmenu.visible = false; - $(data.reference).removeClass('jstree-context'); - }, this)); - }; - this.teardown = function () { - if(this._data.contextmenu.visible) { - $.vakata.context.hide(); - } - parent.teardown.call(this); - }; - - /** - * prepare and show the context menu for a node - * @name show_contextmenu(obj [, x, y]) - * @param {mixed} obj the node - * @param {Number} x the x-coordinate relative to the document to show the menu at - * @param {Number} y the y-coordinate relative to the document to show the menu at - * @param {Object} e the event if available that triggered the contextmenu - * @plugin contextmenu - * @trigger show_contextmenu.jstree - */ - this.show_contextmenu = function (obj, x, y, e) { - obj = this.get_node(obj); - if(!obj || obj.id === $.jstree.root) { return false; } - var s = this.settings.contextmenu, - d = this.get_node(obj, true), - a = d.children(".jstree-anchor"), - o = false, - i = false; - if(s.show_at_node || x === undefined || y === undefined) { - o = a.offset(); - x = o.left; - y = o.top + this._data.core.li_height; - } - if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { - this.activate_node(obj, e); - } - - i = s.items; - if($.isFunction(i)) { - i = i.call(this, obj, $.proxy(function (i) { - this._show_contextmenu(obj, x, y, i); - }, this)); - } - if($.isPlainObject(i)) { - this._show_contextmenu(obj, x, y, i); - } - }; - /** - * show the prepared context menu for a node - * @name _show_contextmenu(obj, x, y, i) - * @param {mixed} obj the node - * @param {Number} x the x-coordinate relative to the document to show the menu at - * @param {Number} y the y-coordinate relative to the document to show the menu at - * @param {Number} i the object of items to show - * @plugin contextmenu - * @trigger show_contextmenu.jstree - * @private - */ - this._show_contextmenu = function (obj, x, y, i) { - var d = this.get_node(obj, true), - a = d.children(".jstree-anchor"); - $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { - var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; - $(data.element).addClass(cls); - a.addClass('jstree-context'); - }, this)); - this._data.contextmenu.visible = true; - $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); - /** - * triggered when the contextmenu is shown for a node - * @event - * @name show_contextmenu.jstree - * @param {Object} node the node - * @param {Number} x the x-coordinate of the menu relative to the document - * @param {Number} y the y-coordinate of the menu relative to the document - * @plugin contextmenu - */ - this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); - }; - }; - - // contextmenu helper - (function ($) { - var right_to_left = false, - vakata_context = { - element : false, - reference : false, - position_x : 0, - position_y : 0, - items : [], - html : "", - is_visible : false - }; - - $.vakata.context = { - settings : { - hide_onmouseleave : 0, - icons : true - }, - _trigger : function (event_name) { - $(document).triggerHandler("context_" + event_name + ".vakata", { - "reference" : vakata_context.reference, - "element" : vakata_context.element, - "position" : { - "x" : vakata_context.position_x, - "y" : vakata_context.position_y - } - }); - }, - _execute : function (i) { - i = vakata_context.items[i]; - return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { - "item" : i, - "reference" : vakata_context.reference, - "element" : vakata_context.element, - "position" : { - "x" : vakata_context.position_x, - "y" : vakata_context.position_y - } - }) : false; - }, - _parse : function (o, is_callback) { - if(!o) { return false; } - if(!is_callback) { - vakata_context.html = ""; - vakata_context.items = []; - } - var str = "", - sep = false, - tmp; - - if(is_callback) { str += "<"+"ul>"; } - $.each(o, function (i, val) { - if(!val) { return true; } - vakata_context.items.push(val); - if(!sep && val.separator_before) { - str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; - } - sep = false; - str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; - str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; - if($.vakata.context.settings.icons) { - str += "<"+"i "; - if(val.icon) { - if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } - else { str += " class='" + val.icon + "' "; } - } - str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; - } - str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + "<"+"/a>"; - if(val.submenu) { - tmp = $.vakata.context._parse(val.submenu, true); - if(tmp) { str += tmp; } - } - str += "<"+"/li>"; - if(val.separator_after) { - str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; - sep = true; - } - }); - str = str.replace(/
  • <\/li\>$/,""); - if(is_callback) { str += ""; } - /** - * triggered on the document when the contextmenu is parsed (HTML is built) - * @event - * @plugin contextmenu - * @name context_parse.vakata - * @param {jQuery} reference the element that was right clicked - * @param {jQuery} element the DOM element of the menu itself - * @param {Object} position the x & y coordinates of the menu - */ - if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } - return str.length > 10 ? str : false; - }, - _show_submenu : function (o) { - o = $(o); - if(!o.length || !o.children("ul").length) { return; } - var e = o.children("ul"), - xl = o.offset().left, - x = xl + o.outerWidth(), - y = o.offset().top, - w = e.width(), - h = e.height(), - dw = $(window).width() + $(window).scrollLeft(), - dh = $(window).height() + $(window).scrollTop(); - // може да Ñе ÑпеÑти е една проверка - дали нÑма нÑкой от клаÑовете вече нагоре - if(right_to_left) { - o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); - } - else { - o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); - } - if(y + h + 10 > dh) { - e.css("bottom","-1px"); - } - - //if does not fit - stick it to the side - if (o.hasClass('vakata-context-right')) { - if (xl < w) { - e.css("margin-right", xl - w); - } - } else { - if (dw - x < w) { - e.css("margin-left", dw - x - w); - } - } - - e.show(); - }, - show : function (reference, position, data) { - var o, e, x, y, w, h, dw, dh, cond = true; - if(vakata_context.element && vakata_context.element.length) { - vakata_context.element.width(''); - } - switch(cond) { - case (!position && !reference): - return false; - case (!!position && !!reference): - vakata_context.reference = reference; - vakata_context.position_x = position.x; - vakata_context.position_y = position.y; - break; - case (!position && !!reference): - vakata_context.reference = reference; - o = reference.offset(); - vakata_context.position_x = o.left + reference.outerHeight(); - vakata_context.position_y = o.top; - break; - case (!!position && !reference): - vakata_context.position_x = position.x; - vakata_context.position_y = position.y; - break; - } - if(!!reference && !data && $(reference).data('vakata_contextmenu')) { - data = $(reference).data('vakata_contextmenu'); - } - if($.vakata.context._parse(data)) { - vakata_context.element.html(vakata_context.html); - } - if(vakata_context.items.length) { - vakata_context.element.appendTo("body"); - e = vakata_context.element; - x = vakata_context.position_x; - y = vakata_context.position_y; - w = e.width(); - h = e.height(); - dw = $(window).width() + $(window).scrollLeft(); - dh = $(window).height() + $(window).scrollTop(); - if(right_to_left) { - x -= (e.outerWidth() - $(reference).outerWidth()); - if(x < $(window).scrollLeft() + 20) { - x = $(window).scrollLeft() + 20; - } - } - if(x + w + 20 > dw) { - x = dw - (w + 20); - } - if(y + h + 20 > dh) { - y = dh - (h + 20); - } - - vakata_context.element - .css({ "left" : x, "top" : y }) - .show() - .find('a').first().focus().parent().addClass("vakata-context-hover"); - vakata_context.is_visible = true; - /** - * triggered on the document when the contextmenu is shown - * @event - * @plugin contextmenu - * @name context_show.vakata - * @param {jQuery} reference the element that was right clicked - * @param {jQuery} element the DOM element of the menu itself - * @param {Object} position the x & y coordinates of the menu - */ - $.vakata.context._trigger("show"); - } - }, - hide : function () { - if(vakata_context.is_visible) { - vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); - vakata_context.is_visible = false; - /** - * triggered on the document when the contextmenu is hidden - * @event - * @plugin contextmenu - * @name context_hide.vakata - * @param {jQuery} reference the element that was right clicked - * @param {jQuery} element the DOM element of the menu itself - * @param {Object} position the x & y coordinates of the menu - */ - $.vakata.context._trigger("hide"); - } - } - }; - $(function () { - right_to_left = $("body").css("direction") === "rtl"; - var to = false; - - vakata_context.element = $("
      "); - vakata_context.element - .on("mouseenter", "li", function (e) { - e.stopImmediatePropagation(); - - if($.contains(this, e.relatedTarget)) { - // премахнато заради delegate mouseleave по-долу - // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); - return; - } - - if(to) { clearTimeout(to); } - vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); - - $(this) - .siblings().find("ul").hide().end().end() - .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); - $.vakata.context._show_submenu(this); - }) - // теÑтово - дали не натоварва? - .on("mouseleave", "li", function (e) { - if($.contains(this, e.relatedTarget)) { return; } - $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); - }) - .on("mouseleave", function (e) { - $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); - if($.vakata.context.settings.hide_onmouseleave) { - to = setTimeout( - (function (t) { - return function () { $.vakata.context.hide(); }; - }(this)), $.vakata.context.settings.hide_onmouseleave); - } - }) - .on("click", "a", function (e) { - e.preventDefault(); - //}) - //.on("mouseup", "a", function (e) { - if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { - $.vakata.context.hide(); - } - }) - .on('keydown', 'a', function (e) { - var o = null; - switch(e.which) { - case 13: - case 32: - e.type = "click"; - e.preventDefault(); - $(e.currentTarget).trigger(e); - break; - case 37: - if(vakata_context.is_visible) { - vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); - e.stopImmediatePropagation(); - e.preventDefault(); - } - break; - case 38: - if(vakata_context.is_visible) { - o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); - if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } - o.addClass("vakata-context-hover").children('a').focus(); - e.stopImmediatePropagation(); - e.preventDefault(); - } - break; - case 39: - if(vakata_context.is_visible) { - vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); - e.stopImmediatePropagation(); - e.preventDefault(); - } - break; - case 40: - if(vakata_context.is_visible) { - o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); - if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } - o.addClass("vakata-context-hover").children('a').focus(); - e.stopImmediatePropagation(); - e.preventDefault(); - } - break; - case 27: - $.vakata.context.hide(); - e.preventDefault(); - break; - default: - //console.log(e.which); - break; - } - }) - .on('keydown', function (e) { - e.preventDefault(); - var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); - if(a.parent().not('.vakata-context-disabled')) { - a.click(); - } - }); - - $(document) - .on("mousedown.vakata.jstree", function (e) { - if(vakata_context.is_visible && vakata_context.element[0] !== e.target && !$.contains(vakata_context.element[0], e.target)) { - $.vakata.context.hide(); - } - }) - .on("context_show.vakata.jstree", function (e, data) { - vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); - if(right_to_left) { - vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); - } - // also apply a RTL class? - vakata_context.element.find("ul").hide().end(); - }); - }); - }($)); - // $.jstree.defaults.plugins.push("contextmenu"); - - -/** - * ### Drag'n'drop plugin - * - * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. - */ - - /** - * stores all defaults for the drag'n'drop plugin - * @name $.jstree.defaults.dnd - * @plugin dnd - */ - $.jstree.defaults.dnd = { - /** - * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. - * @name $.jstree.defaults.dnd.copy - * @plugin dnd - */ - copy : true, - /** - * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. - * @name $.jstree.defaults.dnd.open_timeout - * @plugin dnd - */ - open_timeout : 500, - /** - * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging - * @name $.jstree.defaults.dnd.is_draggable - * @plugin dnd - */ - is_draggable : true, - /** - * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` - * @name $.jstree.defaults.dnd.check_while_dragging - * @plugin dnd - */ - check_while_dragging : true, - /** - * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` - * @name $.jstree.defaults.dnd.always_copy - * @plugin dnd - */ - always_copy : false, - /** - * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` - * @name $.jstree.defaults.dnd.inside_pos - * @plugin dnd - */ - inside_pos : 0, - /** - * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node - * @name $.jstree.defaults.dnd.drag_selection - * @plugin dnd - */ - drag_selection : true, - /** - * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. - * @name $.jstree.defaults.dnd.touch - * @plugin dnd - */ - touch : true, - /** - * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. - * @name $.jstree.defaults.dnd.large_drop_target - * @plugin dnd - */ - large_drop_target : false, - /** - * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". - * @name $.jstree.defaults.dnd.large_drag_target - * @plugin dnd - */ - large_drag_target : false, - /** - * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. - * @reference http://caniuse.com/#feat=dragndrop - * @name $.jstree.defaults.dnd.use_html5 - * @plugin dnd - */ - use_html5: false - }; - var drg, elm; - // TODO: now check works by checking for each node individually, how about max_children, unique, etc? - $.jstree.plugins.dnd = function (options, parent) { - this.init = function (el, options) { - parent.init.call(this, el, options); - this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); - }; - this.bind = function () { - parent.bind.call(this); - - this.element - .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { - if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { - return true; - } - if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { - return true; - } - var obj = this.get_node(e.target), - mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, - txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); - if(this.settings.core.force_text) { - txt = $.vakata.html.escape(txt); - } - if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && - (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) - ) { - drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; - elm = e.currentTarget; - if (this.settings.dnd.use_html5) { - $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); - } else { - this.element.trigger('mousedown.jstree'); - return $.vakata.dnd.start(e, drg, '
      ' + txt + '
      '); - } - } - }, this)); - if (this.settings.dnd.use_html5) { - this.element - .on('dragover.jstree', function (e) { - e.preventDefault(); - $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); - return false; - }) - //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { - // e.preventDefault(); - // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); - // return false; - // }, this)) - .on('drop.jstree', $.proxy(function (e) { - e.preventDefault(); - $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); - return false; - }, this)); - } - }; - this.redraw_node = function(obj, deep, callback, force_render) { - obj = parent.redraw_node.apply(this, arguments); - if (obj && this.settings.dnd.use_html5) { - if (this.settings.dnd.large_drag_target) { - obj.setAttribute('draggable', true); - } else { - var i, j, tmp = null; - for(i = 0, j = obj.childNodes.length; i < j; i++) { - if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { - tmp = obj.childNodes[i]; - break; - } - } - if(tmp) { - tmp.setAttribute('draggable', true); - } - } - } - return obj; - }; - }; - - $(function() { - // bind only once for all instances - var lastmv = false, - laster = false, - lastev = false, - opento = false, - marker = $('
       
      ').hide(); //.appendTo('body'); - - $(document) - .on('dnd_start.vakata.jstree', function (e, data) { - lastmv = false; - lastev = false; - if(!data || !data.data || !data.data.jstree) { return; } - marker.appendTo('body'); //.show(); - }) - .on('dnd_move.vakata.jstree', function (e, data) { - var isDifferentNode = data.event.target !== lastev.target; - if(opento) { - if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { - clearTimeout(opento); - } - } - if(!data || !data.data || !data.data.jstree) { return; } - - // if we are hovering the marker image do nothing (can happen on "inside" drags) - if(data.event.target.id && data.event.target.id === 'jstree-marker') { - return; - } - lastev = data.event; - - var ins = $.jstree.reference(data.event.target), - ref = false, - off = false, - rel = false, - tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; - // if we are over an instance - if(ins && ins._data && ins._data.dnd) { - marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); - is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); - data.helper - .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) - .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); - - // if are hovering the container itself add a new root node - //console.log(data.event); - if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { - ok = true; - for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { - ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); - if(!ok) { break; } - } - if(ok) { - lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; - marker.hide(); - data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); - if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { - data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; - } - return; - } - } - else { - // if we are hovering a tree node - ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); - if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { - off = ref.offset(); - rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; - h = ref.outerHeight(); - if(rel < h / 3) { - o = ['b', 'i', 'a']; - } - else if(rel > h - h / 3) { - o = ['a', 'i', 'b']; - } - else { - o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; - } - $.each(o, function (j, v) { - switch(v) { - case 'b': - l = off.left - 6; - t = off.top; - p = ins.get_parent(ref); - i = ref.parent().index(); - break; - case 'i': - ip = ins.settings.dnd.inside_pos; - tm = ins.get_node(ref.parent()); - l = off.left - 2; - t = off.top + h / 2 + 1; - p = tm.id; - i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); - break; - case 'a': - l = off.left - 6; - t = off.top + h; - p = ins.get_parent(ref); - i = ref.parent().index() + 1; - break; - } - ok = true; - for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { - op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; - ps = i; - if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { - pr = ins.get_node(p); - if(ps > $.inArray(data.data.nodes[t1], pr.children)) { - ps -= 1; - } - } - ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); - if(!ok) { - if(ins && ins.last_error) { laster = ins.last_error(); } - break; - } - } - if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { - if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { - if (opento) { clearTimeout(opento); } - opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); - } - } - if(ok) { - pn = ins.get_node(p, true); - if (!pn.hasClass('.jstree-dnd-parent')) { - $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); - pn.addClass('jstree-dnd-parent'); - } - lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; - marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); - data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); - if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { - data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; - } - laster = {}; - o = true; - return false; - } - }); - if(o === true) { return; } - } - } - } - $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); - lastmv = false; - data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); - if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { - data.event.originalEvent.dataTransfer.dropEffect = 'none'; - } - marker.hide(); - }) - .on('dnd_scroll.vakata.jstree', function (e, data) { - if(!data || !data.data || !data.data.jstree) { return; } - marker.hide(); - lastmv = false; - lastev = false; - data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); - }) - .on('dnd_stop.vakata.jstree', function (e, data) { - $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); - if(opento) { clearTimeout(opento); } - if(!data || !data.data || !data.data.jstree) { return; } - marker.hide().detach(); - var i, j, nodes = []; - if(lastmv) { - for(i = 0, j = data.data.nodes.length; i < j; i++) { - nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; - } - lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); - } - else { - i = $(data.event.target).closest('.jstree'); - if(i.length && laster && laster.error && laster.error === 'check') { - i = i.jstree(true); - if(i) { - i.settings.core.error.call(this, laster); - } - } - } - lastev = false; - lastmv = false; - }) - .on('keyup.jstree keydown.jstree', function (e, data) { - data = $.vakata.dnd._get(); - if(data && data.data && data.data.jstree) { - if (e.type === "keyup" && e.which === 27) { - if (opento) { clearTimeout(opento); } - lastmv = false; - laster = false; - lastev = false; - opento = false; - marker.hide().detach(); - $.vakata.dnd._clean(); - } else { - data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); - if(lastev) { - lastev.metaKey = e.metaKey; - lastev.ctrlKey = e.ctrlKey; - $.vakata.dnd._trigger('move', lastev); - } - } - } - }); - }); - - // helpers - (function ($) { - $.vakata.html = { - div : $('
      '), - escape : function (str) { - return $.vakata.html.div.text(str).html(); - }, - strip : function (str) { - return $.vakata.html.div.empty().append($.parseHTML(str)).text(); - } - }; - // private variable - var vakata_dnd = { - element : false, - target : false, - is_down : false, - is_drag : false, - helper : false, - helper_w: 0, - data : false, - init_x : 0, - init_y : 0, - scroll_l: 0, - scroll_t: 0, - scroll_e: false, - scroll_i: false, - is_touch: false - }; - $.vakata.dnd = { - settings : { - scroll_speed : 10, - scroll_proximity : 20, - helper_left : 5, - helper_top : 10, - threshold : 5, - threshold_touch : 10 - }, - _trigger : function (event_name, e, data) { - if (data === undefined) { - data = $.vakata.dnd._get(); - } - data.event = e; - $(document).triggerHandler("dnd_" + event_name + ".vakata", data); - }, - _get : function () { - return { - "data" : vakata_dnd.data, - "element" : vakata_dnd.element, - "helper" : vakata_dnd.helper - }; - }, - _clean : function () { - if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } - if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } - vakata_dnd = { - element : false, - target : false, - is_down : false, - is_drag : false, - helper : false, - helper_w: 0, - data : false, - init_x : 0, - init_y : 0, - scroll_l: 0, - scroll_t: 0, - scroll_e: false, - scroll_i: false, - is_touch: false - }; - $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); - $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); - }, - _scroll : function (init_only) { - if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { - if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } - return false; - } - if(!vakata_dnd.scroll_i) { - vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); - return false; - } - if(init_only === true) { return false; } - - var i = vakata_dnd.scroll_e.scrollTop(), - j = vakata_dnd.scroll_e.scrollLeft(); - vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); - vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); - if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { - /** - * triggered on the document when a drag causes an element to scroll - * @event - * @plugin dnd - * @name dnd_scroll.vakata - * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start - * @param {DOM} element the DOM element being dragged - * @param {jQuery} helper the helper shown next to the mouse - * @param {jQuery} event the element that is scrolling - */ - $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); - } - }, - start : function (e, data, html) { - if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { - e.pageX = e.originalEvent.changedTouches[0].pageX; - e.pageY = e.originalEvent.changedTouches[0].pageY; - e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); - } - if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } - try { - e.currentTarget.unselectable = "on"; - e.currentTarget.onselectstart = function() { return false; }; - if(e.currentTarget.style) { - e.currentTarget.style.touchAction = "none"; - e.currentTarget.style.msTouchAction = "none"; - e.currentTarget.style.MozUserSelect = "none"; - } - } catch(ignore) { } - vakata_dnd.init_x = e.pageX; - vakata_dnd.init_y = e.pageY; - vakata_dnd.data = data; - vakata_dnd.is_down = true; - vakata_dnd.element = e.currentTarget; - vakata_dnd.target = e.target; - vakata_dnd.is_touch = e.type === "touchstart"; - if(html !== false) { - vakata_dnd.helper = $("
      ").html(html).css({ - "display" : "block", - "margin" : "0", - "padding" : "0", - "position" : "absolute", - "top" : "-2000px", - "lineHeight" : "16px", - "zIndex" : "10000" - }); - } - $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); - $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); - return false; - }, - drag : function (e) { - if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { - e.pageX = e.originalEvent.changedTouches[0].pageX; - e.pageY = e.originalEvent.changedTouches[0].pageY; - e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); - } - if(!vakata_dnd.is_down) { return; } - if(!vakata_dnd.is_drag) { - if( - Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || - Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) - ) { - if(vakata_dnd.helper) { - vakata_dnd.helper.appendTo("body"); - vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); - } - vakata_dnd.is_drag = true; - $(vakata_dnd.target).one('click.vakata', false); - /** - * triggered on the document when a drag starts - * @event - * @plugin dnd - * @name dnd_start.vakata - * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start - * @param {DOM} element the DOM element being dragged - * @param {jQuery} helper the helper shown next to the mouse - * @param {Object} event the event that caused the start (probably mousemove) - */ - $.vakata.dnd._trigger("start", e); - } - else { return; } - } - - var d = false, w = false, - dh = false, wh = false, - dw = false, ww = false, - dt = false, dl = false, - ht = false, hl = false; - - vakata_dnd.scroll_t = 0; - vakata_dnd.scroll_l = 0; - vakata_dnd.scroll_e = false; - $($(e.target).parentsUntil("body").addBack().get().reverse()) - .filter(function () { - return (/^auto|scroll$/).test($(this).css("overflow")) && - (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); - }) - .each(function () { - var t = $(this), o = t.offset(); - if(this.scrollHeight > this.offsetHeight) { - if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } - if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } - } - if(this.scrollWidth > this.offsetWidth) { - if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } - if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } - } - if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { - vakata_dnd.scroll_e = $(this); - return false; - } - }); - - if(!vakata_dnd.scroll_e) { - d = $(document); w = $(window); - dh = d.height(); wh = w.height(); - dw = d.width(); ww = w.width(); - dt = d.scrollTop(); dl = d.scrollLeft(); - if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } - if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } - if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } - if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } - if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { - vakata_dnd.scroll_e = d; - } - } - if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } - - if(vakata_dnd.helper) { - ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); - hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); - if(dh && ht + 25 > dh) { ht = dh - 50; } - if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } - vakata_dnd.helper.css({ - left : hl + "px", - top : ht + "px" - }); - } - /** - * triggered on the document when a drag is in progress - * @event - * @plugin dnd - * @name dnd_move.vakata - * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start - * @param {DOM} element the DOM element being dragged - * @param {jQuery} helper the helper shown next to the mouse - * @param {Object} event the event that caused this to trigger (most likely mousemove) - */ - $.vakata.dnd._trigger("move", e); - return false; - }, - stop : function (e) { - if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { - e.pageX = e.originalEvent.changedTouches[0].pageX; - e.pageY = e.originalEvent.changedTouches[0].pageY; - e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); - } - if(vakata_dnd.is_drag) { - /** - * triggered on the document when a drag stops (the dragged element is dropped) - * @event - * @plugin dnd - * @name dnd_stop.vakata - * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start - * @param {DOM} element the DOM element being dragged - * @param {jQuery} helper the helper shown next to the mouse - * @param {Object} event the event that caused the stop - */ - if (e.target !== vakata_dnd.target) { - $(vakata_dnd.target).off('click.vakata'); - } - $.vakata.dnd._trigger("stop", e); - } - else { - if(e.type === "touchend" && e.target === vakata_dnd.target) { - var to = setTimeout(function () { $(e.target).click(); }, 100); - $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); - } - } - $.vakata.dnd._clean(); - return false; - } - }; - }($)); - - // include the dnd plugin by default - // $.jstree.defaults.plugins.push("dnd"); - - -/** - * ### Massload plugin - * - * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). - */ - - /** - * massload configuration - * - * It is possible to set this to a standard jQuery-like AJAX config. - * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. - * - * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. - * - * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. - * - * { - * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], - * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] - * } - * - * @name $.jstree.defaults.massload - * @plugin massload - */ - $.jstree.defaults.massload = null; - $.jstree.plugins.massload = function (options, parent) { - this.init = function (el, options) { - this._data.massload = {}; - parent.init.call(this, el, options); - }; - this._load_nodes = function (nodes, callback, is_callback, force_reload) { - var s = this.settings.massload, - nodesString = JSON.stringify(nodes), - toLoad = [], - m = this._model.data, - i, j, dom; - if (!is_callback) { - for(i = 0, j = nodes.length; i < j; i++) { - if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { - toLoad.push(nodes[i]); - dom = this.get_node(nodes[i], true); - if (dom && dom.length) { - dom.addClass("jstree-loading").attr('aria-busy',true); - } - } - } - this._data.massload = {}; - if (toLoad.length) { - if($.isFunction(s)) { - return s.call(this, toLoad, $.proxy(function (data) { - var i, j; - if(data) { - for(i in data) { - if(data.hasOwnProperty(i)) { - this._data.massload[i] = data[i]; - } - } - } - for(i = 0, j = nodes.length; i < j; i++) { - dom = this.get_node(nodes[i], true); - if (dom && dom.length) { - dom.removeClass("jstree-loading").attr('aria-busy',false); - } - } - parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); - }, this)); - } - if(typeof s === 'object' && s && s.url) { - s = $.extend(true, {}, s); - if($.isFunction(s.url)) { - s.url = s.url.call(this, toLoad); - } - if($.isFunction(s.data)) { - s.data = s.data.call(this, toLoad); - } - return $.ajax(s) - .done($.proxy(function (data,t,x) { - var i, j; - if(data) { - for(i in data) { - if(data.hasOwnProperty(i)) { - this._data.massload[i] = data[i]; - } - } - } - for(i = 0, j = nodes.length; i < j; i++) { - dom = this.get_node(nodes[i], true); - if (dom && dom.length) { - dom.removeClass("jstree-loading").attr('aria-busy',false); - } - } - parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); - }, this)) - .fail($.proxy(function (f) { - parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); - }, this)); - } - } - } - return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); - }; - this._load_node = function (obj, callback) { - var data = this._data.massload[obj.id], - rslt = null, dom; - if(data) { - rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( - obj, - typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, - function (status) { callback.call(this, status); } - ); - dom = this.get_node(obj.id, true); - if (dom && dom.length) { - dom.removeClass("jstree-loading").attr('aria-busy',false); - } - delete this._data.massload[obj.id]; - return rslt; - } - return parent._load_node.call(this, obj, callback); - }; - }; - -/** - * ### Search plugin - * - * Adds search functionality to jsTree. - */ - - /** - * stores all defaults for the search plugin - * @name $.jstree.defaults.search - * @plugin search - */ - $.jstree.defaults.search = { - /** - * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. - * - * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. - * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to - * @name $.jstree.defaults.search.ajax - * @plugin search - */ - ajax : false, - /** - * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. - * @name $.jstree.defaults.search.fuzzy - * @plugin search - */ - fuzzy : false, - /** - * Indicates if the search should be case sensitive. Default is `false`. - * @name $.jstree.defaults.search.case_sensitive - * @plugin search - */ - case_sensitive : false, - /** - * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). - * This setting can be changed at runtime when calling the search method. Default is `false`. - * @name $.jstree.defaults.search.show_only_matches - * @plugin search - */ - show_only_matches : false, - /** - * Indicates if the children of matched element are shown (when show_only_matches is true) - * This setting can be changed at runtime when calling the search method. Default is `false`. - * @name $.jstree.defaults.search.show_only_matches_children - * @plugin search - */ - show_only_matches_children : false, - /** - * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. - * @name $.jstree.defaults.search.close_opened_onclear - * @plugin search - */ - close_opened_onclear : true, - /** - * Indicates if only leaf nodes should be included in search results. Default is `false`. - * @name $.jstree.defaults.search.search_leaves_only - * @plugin search - */ - search_leaves_only : false, - /** - * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). - * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. - * @name $.jstree.defaults.search.search_callback - * @plugin search - */ - search_callback : false - }; - - $.jstree.plugins.search = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - - this._data.search.str = ""; - this._data.search.dom = $(); - this._data.search.res = []; - this._data.search.opn = []; - this._data.search.som = false; - this._data.search.smc = false; - this._data.search.hdn = []; - - this.element - .on("search.jstree", $.proxy(function (e, data) { - if(this._data.search.som && data.res.length) { - var m = this._model.data, i, j, p = [], k, l; - for(i = 0, j = data.res.length; i < j; i++) { - if(m[data.res[i]] && !m[data.res[i]].state.hidden) { - p.push(data.res[i]); - p = p.concat(m[data.res[i]].parents); - if(this._data.search.smc) { - for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { - if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { - p.push(m[data.res[i]].children_d[k]); - } - } - } - } - } - p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); - this._data.search.hdn = this.hide_all(true); - this.show_node(p, true); - this.redraw(true); - } - }, this)) - .on("clear_search.jstree", $.proxy(function (e, data) { - if(this._data.search.som && data.res.length) { - this.show_node(this._data.search.hdn, true); - this.redraw(true); - } - }, this)); - }; - /** - * used to search the tree nodes for a given string - * @name search(str [, skip_async]) - * @param {String} str the search string - * @param {Boolean} skip_async if set to true server will not be queried even if configured - * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) - * @param {mixed} inside an optional node to whose children to limit the search - * @param {Boolean} append if set to true the results of this search are appended to the previous search - * @plugin search - * @trigger search.jstree - */ - this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { - if(str === false || $.trim(str.toString()) === "") { - return this.clear_search(); - } - inside = this.get_node(inside); - inside = inside && inside.id ? inside.id : null; - str = str.toString(); - var s = this.settings.search, - a = s.ajax ? s.ajax : false, - m = this._model.data, - f = null, - r = [], - p = [], i, j; - if(this._data.search.res.length && !append) { - this.clear_search(); - } - if(show_only_matches === undefined) { - show_only_matches = s.show_only_matches; - } - if(show_only_matches_children === undefined) { - show_only_matches_children = s.show_only_matches_children; - } - if(!skip_async && a !== false) { - if($.isFunction(a)) { - return a.call(this, str, $.proxy(function (d) { - if(d && d.d) { d = d.d; } - this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { - this.search(str, true, show_only_matches, inside, append, show_only_matches_children); - }); - }, this), inside); - } - else { - a = $.extend({}, a); - if(!a.data) { a.data = {}; } - a.data.str = str; - if(inside) { - a.data.inside = inside; - } - if (this._data.search.lastRequest) { - this._data.search.lastRequest.abort(); - } - this._data.search.lastRequest = $.ajax(a) - .fail($.proxy(function () { - this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; - this.settings.core.error.call(this, this._data.core.last_error); - }, this)) - .done($.proxy(function (d) { - if(d && d.d) { d = d.d; } - this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { - this.search(str, true, show_only_matches, inside, append, show_only_matches_children); - }); - }, this)); - return this._data.search.lastRequest; - } - } - if(!append) { - this._data.search.str = str; - this._data.search.dom = $(); - this._data.search.res = []; - this._data.search.opn = []; - this._data.search.som = show_only_matches; - this._data.search.smc = show_only_matches_children; - } - - f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); - $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { - var v = m[i]; - if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { - r.push(i); - p = p.concat(v.parents); - } - }); - if(r.length) { - p = $.vakata.array_unique(p); - for(i = 0, j = p.length; i < j; i++) { - if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { - this._data.search.opn.push(p[i]); - } - } - if(!append) { - this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); - this._data.search.res = r; - } - else { - this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); - this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); - } - this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); - } - /** - * triggered after search is complete - * @event - * @name search.jstree - * @param {jQuery} nodes a jQuery collection of matching nodes - * @param {String} str the search string - * @param {Array} res a collection of objects represeing the matching nodes - * @plugin search - */ - this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); - }; - /** - * used to clear the last search (removes classes and shows all nodes if filtering is on) - * @name clear_search() - * @plugin search - * @trigger clear_search.jstree - */ - this.clear_search = function () { - if(this.settings.search.close_opened_onclear) { - this.close_node(this._data.search.opn, 0); - } - /** - * triggered after search is complete - * @event - * @name clear_search.jstree - * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) - * @param {String} str the search string (the last search string) - * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) - * @plugin search - */ - this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); - if(this._data.search.res.length) { - this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { - return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); - }).join(', #'))); - this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); - } - this._data.search.str = ""; - this._data.search.res = []; - this._data.search.opn = []; - this._data.search.dom = $(); - }; - - this.redraw_node = function(obj, deep, callback, force_render) { - obj = parent.redraw_node.apply(this, arguments); - if(obj) { - if($.inArray(obj.id, this._data.search.res) !== -1) { - var i, j, tmp = null; - for(i = 0, j = obj.childNodes.length; i < j; i++) { - if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { - tmp = obj.childNodes[i]; - break; - } - } - if(tmp) { - tmp.className += ' jstree-search'; - } - } - } - return obj; - }; - }; - - // helpers - (function ($) { - // from http://kiro.me/projects/fuse.html - $.vakata.search = function(pattern, txt, options) { - options = options || {}; - options = $.extend({}, $.vakata.search.defaults, options); - if(options.fuzzy !== false) { - options.fuzzy = true; - } - pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); - var MATCH_LOCATION = options.location, - MATCH_DISTANCE = options.distance, - MATCH_THRESHOLD = options.threshold, - patternLen = pattern.length, - matchmask, pattern_alphabet, match_bitapScore, search; - if(patternLen > 32) { - options.fuzzy = false; - } - if(options.fuzzy) { - matchmask = 1 << (patternLen - 1); - pattern_alphabet = (function () { - var mask = {}, - i = 0; - for (i = 0; i < patternLen; i++) { - mask[pattern.charAt(i)] = 0; - } - for (i = 0; i < patternLen; i++) { - mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); - } - return mask; - }()); - match_bitapScore = function (e, x) { - var accuracy = e / patternLen, - proximity = Math.abs(MATCH_LOCATION - x); - if(!MATCH_DISTANCE) { - return proximity ? 1.0 : accuracy; - } - return accuracy + (proximity / MATCH_DISTANCE); - }; - } - search = function (text) { - text = options.caseSensitive ? text : text.toLowerCase(); - if(pattern === text || text.indexOf(pattern) !== -1) { - return { - isMatch: true, - score: 0 - }; - } - if(!options.fuzzy) { - return { - isMatch: false, - score: 1 - }; - } - var i, j, - textLen = text.length, - scoreThreshold = MATCH_THRESHOLD, - bestLoc = text.indexOf(pattern, MATCH_LOCATION), - binMin, binMid, - binMax = patternLen + textLen, - lastRd, start, finish, rd, charMatch, - score = 1, - locations = []; - if (bestLoc !== -1) { - scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); - bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); - if (bestLoc !== -1) { - scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); - } - } - bestLoc = -1; - for (i = 0; i < patternLen; i++) { - binMin = 0; - binMid = binMax; - while (binMin < binMid) { - if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { - binMin = binMid; - } else { - binMax = binMid; - } - binMid = Math.floor((binMax - binMin) / 2 + binMin); - } - binMax = binMid; - start = Math.max(1, MATCH_LOCATION - binMid + 1); - finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; - rd = new Array(finish + 2); - rd[finish + 1] = (1 << i) - 1; - for (j = finish; j >= start; j--) { - charMatch = pattern_alphabet[text.charAt(j - 1)]; - if (i === 0) { - rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; - } else { - rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; - } - if (rd[j] & matchmask) { - score = match_bitapScore(i, j - 1); - if (score <= scoreThreshold) { - scoreThreshold = score; - bestLoc = j - 1; - locations.push(bestLoc); - if (bestLoc > MATCH_LOCATION) { - start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); - } else { - break; - } - } - } - } - if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { - break; - } - lastRd = rd; - } - return { - isMatch: bestLoc >= 0, - score: score - }; - }; - return txt === true ? { 'search' : search } : search(txt); - }; - $.vakata.search.defaults = { - location : 0, - distance : 100, - threshold : 0.6, - fuzzy : false, - caseSensitive : false - }; - }($)); - - // include the search plugin by default - // $.jstree.defaults.plugins.push("search"); - - -/** - * ### Sort plugin - * - * Automatically sorts all siblings in the tree according to a sorting function. - */ - - /** - * the settings function used to sort the nodes. - * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. - * @name $.jstree.defaults.sort - * @plugin sort - */ - $.jstree.defaults.sort = function (a, b) { - //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b); - return this.get_text(a) > this.get_text(b) ? 1 : -1; - }; - $.jstree.plugins.sort = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - this.element - .on("model.jstree", $.proxy(function (e, data) { - this.sort(data.parent, true); - }, this)) - .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { - this.sort(data.parent || data.node.parent, false); - this.redraw_node(data.parent || data.node.parent, true); - }, this)) - .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { - this.sort(data.parent, false); - this.redraw_node(data.parent, true); - }, this)); - }; - /** - * used to sort a node's children - * @private - * @name sort(obj [, deep]) - * @param {mixed} obj the node - * @param {Boolean} deep if set to `true` nodes are sorted recursively. - * @plugin sort - * @trigger search.jstree - */ - this.sort = function (obj, deep) { - var i, j; - obj = this.get_node(obj); - if(obj && obj.children && obj.children.length) { - obj.children.sort($.proxy(this.settings.sort, this)); - if(deep) { - for(i = 0, j = obj.children_d.length; i < j; i++) { - this.sort(obj.children_d[i], false); - } - } - } - }; - }; - - // include the sort plugin by default - // $.jstree.defaults.plugins.push("sort"); - -/** - * ### State plugin - * - * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) - */ - - var to = false; - /** - * stores all defaults for the state plugin - * @name $.jstree.defaults.state - * @plugin state - */ - $.jstree.defaults.state = { - /** - * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. - * @name $.jstree.defaults.state.key - * @plugin state - */ - key : 'jstree', - /** - * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. - * @name $.jstree.defaults.state.events - * @plugin state - */ - events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', - /** - * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. - * @name $.jstree.defaults.state.ttl - * @plugin state - */ - ttl : false, - /** - * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. - * @name $.jstree.defaults.state.filter - * @plugin state - */ - filter : false - }; - $.jstree.plugins.state = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - var bind = $.proxy(function () { - this.element.on(this.settings.state.events, $.proxy(function () { - if(to) { clearTimeout(to); } - to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); - }, this)); - /** - * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). - * @event - * @name state_ready.jstree - * @plugin state - */ - this.trigger('state_ready'); - }, this); - this.element - .on("ready.jstree", $.proxy(function (e, data) { - this.element.one("restore_state.jstree", bind); - if(!this.restore_state()) { bind(); } - }, this)); - }; - /** - * save the state - * @name save_state() - * @plugin state - */ - this.save_state = function () { - var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; - $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); - }; - /** - * restore the state from the user's computer - * @name restore_state() - * @plugin state - */ - this.restore_state = function () { - var k = $.vakata.storage.get(this.settings.state.key); - if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } - if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } - if(!!k && k.state) { k = k.state; } - if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } - if(!!k) { - this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); - this.set_state(k); - return true; - } - return false; - }; - /** - * clear the state on the user's computer - * @name clear_state() - * @plugin state - */ - this.clear_state = function () { - return $.vakata.storage.del(this.settings.state.key); - }; - }; - - (function ($, undefined) { - $.vakata.storage = { - // simply specifying the functions in FF throws an error - set : function (key, val) { return window.localStorage.setItem(key, val); }, - get : function (key) { return window.localStorage.getItem(key); }, - del : function (key) { return window.localStorage.removeItem(key); } - }; - }($)); - - // include the state plugin by default - // $.jstree.defaults.plugins.push("state"); - -/** - * ### Types plugin - * - * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. - */ - - /** - * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). - * - * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. - * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. - * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. - * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. - * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) - * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) - * - * There are two predefined types: - * - * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. - * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. - * - * @name $.jstree.defaults.types - * @plugin types - */ - $.jstree.defaults.types = { - 'default' : {} - }; - $.jstree.defaults.types[$.jstree.root] = {}; - - $.jstree.plugins.types = function (options, parent) { - this.init = function (el, options) { - var i, j; - if(options && options.types && options.types['default']) { - for(i in options.types) { - if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { - for(j in options.types['default']) { - if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { - options.types[i][j] = options.types['default'][j]; - } - } - } - } - } - parent.init.call(this, el, options); - this._model.data[$.jstree.root].type = $.jstree.root; - }; - this.refresh = function (skip_loading, forget_state) { - parent.refresh.call(this, skip_loading, forget_state); - this._model.data[$.jstree.root].type = $.jstree.root; - }; - this.bind = function () { - this.element - .on('model.jstree', $.proxy(function (e, data) { - var m = this._model.data, - dpc = data.nodes, - t = this.settings.types, - i, j, c = 'default', k; - for(i = 0, j = dpc.length; i < j; i++) { - c = 'default'; - if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { - c = m[dpc[i]].original.type; - } - if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { - c = m[dpc[i]].data.jstree.type; - } - m[dpc[i]].type = c; - if(m[dpc[i]].icon === true && t[c].icon !== undefined) { - m[dpc[i]].icon = t[c].icon; - } - if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { - for (k in t[c].li_attr) { - if (t[c].li_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (m[dpc[i]].li_attr[k] === undefined) { - m[dpc[i]].li_attr[k] = t[c].li_attr[k]; - } - else if (k === 'class') { - m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; - } - } - } - } - if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { - for (k in t[c].a_attr) { - if (t[c].a_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (m[dpc[i]].a_attr[k] === undefined) { - m[dpc[i]].a_attr[k] = t[c].a_attr[k]; - } - else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { - m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; - } - else if (k === 'class') { - m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; - } - } - } - } - } - m[$.jstree.root].type = $.jstree.root; - }, this)); - parent.bind.call(this); - }; - this.get_json = function (obj, options, flat) { - var i, j, - m = this._model.data, - opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, - tmp = parent.get_json.call(this, obj, opt, flat); - if(tmp === false) { return false; } - if($.isArray(tmp)) { - for(i = 0, j = tmp.length; i < j; i++) { - tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; - if(options && options.no_id) { - delete tmp[i].id; - if(tmp[i].li_attr && tmp[i].li_attr.id) { - delete tmp[i].li_attr.id; - } - if(tmp[i].a_attr && tmp[i].a_attr.id) { - delete tmp[i].a_attr.id; - } - } - } - } - else { - tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; - if(options && options.no_id) { - tmp = this._delete_ids(tmp); - } - } - return tmp; - }; - this._delete_ids = function (tmp) { - if($.isArray(tmp)) { - for(var i = 0, j = tmp.length; i < j; i++) { - tmp[i] = this._delete_ids(tmp[i]); - } - return tmp; - } - delete tmp.id; - if(tmp.li_attr && tmp.li_attr.id) { - delete tmp.li_attr.id; - } - if(tmp.a_attr && tmp.a_attr.id) { - delete tmp.a_attr.id; - } - if(tmp.children && $.isArray(tmp.children)) { - tmp.children = this._delete_ids(tmp.children); - } - return tmp; - }; - this.check = function (chk, obj, par, pos, more) { - if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } - obj = obj && obj.id ? obj : this.get_node(obj); - par = par && par.id ? par : this.get_node(par); - var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; - m = m && m._model && m._model.data ? m._model.data : null; - switch(chk) { - case "create_node": - case "move_node": - case "copy_node": - if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { - tmp = this.get_rules(par); - if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - return false; - } - if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - return false; - } - if(m && obj.children_d && obj.parents) { - d = 0; - for(i = 0, j = obj.children_d.length; i < j; i++) { - d = Math.max(d, m[obj.children_d[i]].parents.length); - } - d = d - obj.parents.length + 1; - } - if(d <= 0 || d === undefined) { d = 1; } - do { - if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - return false; - } - par = this.get_node(par.parent); - tmp = this.get_rules(par); - d++; - } while(par); - } - break; - } - return true; - }; - /** - * used to retrieve the type settings object for a node - * @name get_rules(obj) - * @param {mixed} obj the node to find the rules for - * @return {Object} - * @plugin types - */ - this.get_rules = function (obj) { - obj = this.get_node(obj); - if(!obj) { return false; } - var tmp = this.get_type(obj, true); - if(tmp.max_depth === undefined) { tmp.max_depth = -1; } - if(tmp.max_children === undefined) { tmp.max_children = -1; } - if(tmp.valid_children === undefined) { tmp.valid_children = -1; } - return tmp; - }; - /** - * used to retrieve the type string or settings object for a node - * @name get_type(obj [, rules]) - * @param {mixed} obj the node to find the rules for - * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned - * @return {String|Object} - * @plugin types - */ - this.get_type = function (obj, rules) { - obj = this.get_node(obj); - return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); - }; - /** - * used to change a node's type - * @name set_type(obj, type) - * @param {mixed} obj the node to change - * @param {String} type the new type - * @plugin types - */ - this.set_type = function (obj, type) { - var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; - if($.isArray(obj)) { - obj = obj.slice(); - for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { - this.set_type(obj[t1], type); - } - return true; - } - t = this.settings.types; - obj = this.get_node(obj); - if(!t[type] || !obj) { return false; } - d = this.get_node(obj, true); - if (d && d.length) { - a = d.children('.jstree-anchor'); - } - old_type = obj.type; - old_icon = this.get_icon(obj); - obj.type = type; - if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { - this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); - } - - // remove old type props - if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { - for (k in t[old_type].li_attr) { - if (t[old_type].li_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (k === 'class') { - m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); - if (d) { d.removeClass(t[old_type].li_attr[k]); } - } - else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { - m[obj.id].li_attr[k] = null; - if (d) { d.removeAttr(k); } - } - } - } - } - if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { - for (k in t[old_type].a_attr) { - if (t[old_type].a_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (k === 'class') { - m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); - if (a) { a.removeClass(t[old_type].a_attr[k]); } - } - else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { - if (k === 'href') { - m[obj.id].a_attr[k] = '#'; - if (a) { a.attr('href', '#'); } - } - else { - delete m[obj.id].a_attr[k]; - if (a) { a.removeAttr(k); } - } - } - } - } - } - - // add new props - if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { - for (k in t[type].li_attr) { - if (t[type].li_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (m[obj.id].li_attr[k] === undefined) { - m[obj.id].li_attr[k] = t[type].li_attr[k]; - if (d) { - if (k === 'class') { - d.addClass(t[type].li_attr[k]); - } - else { - d.attr(k, t[type].li_attr[k]); - } - } - } - else if (k === 'class') { - m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; - if (d) { d.addClass(t[type].li_attr[k]); } - } - } - } - } - if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { - for (k in t[type].a_attr) { - if (t[type].a_attr.hasOwnProperty(k)) { - if (k === 'id') { - continue; - } - else if (m[obj.id].a_attr[k] === undefined) { - m[obj.id].a_attr[k] = t[type].a_attr[k]; - if (a) { - if (k === 'class') { - a.addClass(t[type].a_attr[k]); - } - else { - a.attr(k, t[type].a_attr[k]); - } - } - } - else if (k === 'href' && m[obj.id].a_attr[k] === '#') { - m[obj.id].a_attr['href'] = t[type].a_attr['href']; - if (a) { a.attr('href', t[type].a_attr['href']); } - } - else if (k === 'class') { - m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; - if (a) { a.addClass(t[type].a_attr[k]); } - } - } - } - } - - return true; - }; - }; - // include the types plugin by default - // $.jstree.defaults.plugins.push("types"); - - -/** - * ### Unique plugin - * - * Enforces that no nodes with the same name can coexist as siblings. - */ - - /** - * stores all defaults for the unique plugin - * @name $.jstree.defaults.unique - * @plugin unique - */ - $.jstree.defaults.unique = { - /** - * Indicates if the comparison should be case sensitive. Default is `false`. - * @name $.jstree.defaults.unique.case_sensitive - * @plugin unique - */ - case_sensitive : false, - /** - * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. - * @name $.jstree.defaults.unique.duplicate - * @plugin unique - */ - duplicate : function (name, counter) { - return name + ' (' + counter + ')'; - } - }; - - $.jstree.plugins.unique = function (options, parent) { - this.check = function (chk, obj, par, pos, more) { - if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } - obj = obj && obj.id ? obj : this.get_node(obj); - par = par && par.id ? par : this.get_node(par); - if(!par || !par.children) { return true; } - var n = chk === "rename_node" ? pos : obj.text, - c = [], - s = this.settings.unique.case_sensitive, - m = this._model.data, i, j; - for(i = 0, j = par.children.length; i < j; i++) { - c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); - } - if(!s) { n = n.toLowerCase(); } - switch(chk) { - case "delete_node": - return true; - case "rename_node": - i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n)); - if(!i) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - } - return i; - case "create_node": - i = ($.inArray(n, c) === -1); - if(!i) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - } - return i; - case "copy_node": - i = ($.inArray(n, c) === -1); - if(!i) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - } - return i; - case "move_node": - i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); - if(!i) { - this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; - } - return i; - } - return true; - }; - this.create_node = function (par, node, pos, callback, is_loaded) { - if(!node || node.text === undefined) { - if(par === null) { - par = $.jstree.root; - } - par = this.get_node(par); - if(!par) { - return parent.create_node.call(this, par, node, pos, callback, is_loaded); - } - pos = pos === undefined ? "last" : pos; - if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { - return parent.create_node.call(this, par, node, pos, callback, is_loaded); - } - if(!node) { node = {}; } - var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate; - n = tmp = this.get_string('New node'); - dpc = []; - for(i = 0, j = par.children.length; i < j; i++) { - dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); - } - i = 1; - while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) { - n = cb.call(this, tmp, (++i)).toString(); - } - node.text = n; - } - return parent.create_node.call(this, par, node, pos, callback, is_loaded); - }; - }; - - // include the unique plugin by default - // $.jstree.defaults.plugins.push("unique"); - - -/** - * ### Wholerow plugin - * - * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. - */ - - var div = document.createElement('DIV'); - div.setAttribute('unselectable','on'); - div.setAttribute('role','presentation'); - div.className = 'jstree-wholerow'; - div.innerHTML = ' '; - $.jstree.plugins.wholerow = function (options, parent) { - this.bind = function () { - parent.bind.call(this); - - this.element - .on('ready.jstree set_state.jstree', $.proxy(function () { - this.hide_dots(); - }, this)) - .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { - //div.style.height = this._data.core.li_height + 'px'; - this.get_container_ul().addClass('jstree-wholerow-ul'); - }, this)) - .on("deselect_all.jstree", $.proxy(function (e, data) { - this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); - }, this)) - .on("changed.jstree", $.proxy(function (e, data) { - this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); - var tmp = false, i, j; - for(i = 0, j = data.selected.length; i < j; i++) { - tmp = this.get_node(data.selected[i], true); - if(tmp && tmp.length) { - tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); - } - } - }, this)) - .on("open_node.jstree", $.proxy(function (e, data) { - this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); - }, this)) - .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { - if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } - this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); - }, this)) - .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { - if (this._data.contextmenu) { - e.preventDefault(); - var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); - $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); - } - }, this)) - /*! - .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { - if(e.target === e.currentTarget) { - var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); - e.target = a[0]; - a.trigger(e); - } - }) - */ - .on("click.jstree", ".jstree-wholerow", function (e) { - e.stopImmediatePropagation(); - var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); - $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); - }) - .on("dblclick.jstree", ".jstree-wholerow", function (e) { - e.stopImmediatePropagation(); - var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); - $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); - }) - .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { - e.stopImmediatePropagation(); - var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); - $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); - }, this)) - .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { - e.stopImmediatePropagation(); - if(!this.is_disabled(e.currentTarget)) { - this.hover_node(e.currentTarget); - } - return false; - }, this)) - .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { - this.dehover_node(e.currentTarget); - }, this)); - }; - this.teardown = function () { - if(this.settings.wholerow) { - this.element.find(".jstree-wholerow").remove(); - } - parent.teardown.call(this); - }; - this.redraw_node = function(obj, deep, callback, force_render) { - obj = parent.redraw_node.apply(this, arguments); - if(obj) { - var tmp = div.cloneNode(true); - //tmp.style.height = this._data.core.li_height + 'px'; - if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } - if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } - obj.insertBefore(tmp, obj.childNodes[0]); - } - return obj; - }; - }; - // include the wholerow plugin by default - // $.jstree.defaults.plugins.push("wholerow"); - if(document.registerElement && Object && Object.create) { - var proto = Object.create(HTMLElement.prototype); - proto.createdCallback = function () { - var c = { core : {}, plugins : [] }, i; - for(i in $.jstree.plugins) { - if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { - c.plugins.push(i); - if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { - c[i] = JSON.parse(this.getAttribute(i)); - } - } - } - for(i in $.jstree.defaults.core) { - if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { - c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); - } - } - $(this).jstree(c); - }; - // proto.attributeChangedCallback = function (name, previous, value) { }; - try { - document.registerElement("vakata-jstree", { prototype: proto }); - } catch(ignore) { } - } - -})); \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/libs/laslaz.js b/app/static/app/js/vendor/potree/libs/laslaz.js deleted file mode 100644 index ea67f2aa..00000000 --- a/app/static/app/js/vendor/potree/libs/laslaz.js +++ /dev/null @@ -1,398 +0,0 @@ -// laslaz.js -// LAS/LAZ loading -// - -//var common = require("./common"), -// Promise = require("bluebird"); - -(function(scope) { - "use strict"; - - var pointFormatReaders = { - 0: function(dv) { - return { - "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], - "intensity": dv.getUint16(12, true), - "classification": dv.getUint8(16, true) - }; - }, - 1: function(dv) { - return { - "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], - "intensity": dv.getUint16(12, true), - "classification": dv.getUint8(16, true) - }; - }, - 2: function(dv) { - return { - "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], - "intensity": dv.getUint16(12, true), - "classification": dv.getUint8(16, true), - "color": [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)] - }; - }, - 3: function(dv) { - return { - "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], - "intensity": dv.getUint16(12, true), - "classification": dv.getUint8(16, true), - "color": [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)] - }; - } - }; - - function readAs(buf, Type, offset, count) { - count = (count === undefined || count === 0 ? 1 : count); - var sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count); - - var r = new Type(sub); - if (count === undefined || count === 1) - return r[0]; - - var ret = []; - for (var i = 0 ; i < count ; i ++) { - ret.push(r[i]); - } - - return ret; - } - - function parseLASHeader(arraybuffer) { - var o = {}; - - o.pointsOffset = readAs(arraybuffer, Uint32Array, 32*3); - o.pointsFormatId = readAs(arraybuffer, Uint8Array, 32*3+8); - o.pointsStructSize = readAs(arraybuffer, Uint16Array, 32*3+8+1); - o.pointsCount = readAs(arraybuffer, Uint32Array, 32*3 + 11); - - - var start = 32*3 + 35; - o.scale = readAs(arraybuffer, Float64Array, start, 3); start += 24; // 8*3 - o.offset = readAs(arraybuffer, Float64Array, start, 3); start += 24; - - - - var bounds = readAs(arraybuffer, Float64Array, start, 6); start += 48; // 8*6; - o.maxs = [bounds[0], bounds[2], bounds[4]]; - o.mins = [bounds[1], bounds[3], bounds[5]]; - - return o; - } - - var msgIndex = 0; - var waitHandlers = {}; - - // This method is scope-wide since the nacl module uses this fuction to notify - // us of events - scope.handleMessage = function(message_event) { - var msg = message_event.data; - var resolver = waitHandlers[msg.id]; - delete waitHandlers[msg.id]; - - // call the callback in a separate context, make sure we've cleaned our - // state out before the callback is invoked since it may queue more doExchanges - setTimeout(function() { - if (msg.error) - return resolver.reject(new Error(msg.message || "Unknown Error")); - - if (msg.hasOwnProperty('count') && msg.hasOwnProperty('hasMoreData')) { - return resolver.resolve({ - buffer: msg.result, - count: msg.count, - hasMoreData: msg.hasMoreData}); - } - - resolver.resolve(msg.result); - }, 0); - }; - - var doDataExchange = function(cmd, callback) { - cmd.id = msgIndex.toString(); - msgIndex ++; - - var resolver = Promise.defer(); - waitHandlers[cmd.id] = resolver; - - nacl_module.postMessage(cmd); - - return resolver.promise.cancellable(); - }; - - // LAS Loader - // Loads uncompressed files - // - var LASLoader = function(arraybuffer) { - this.arraybuffer = arraybuffer; - }; - - LASLoader.prototype.open = function() { - // nothing needs to be done to open this file - // - this.readOffset = 0; - return new Promise(function(res, rej) { - setTimeout(res, 0); - }); - }; - - LASLoader.prototype.getHeader = function() { - var o = this; - - return new Promise(function(res, rej) { - setTimeout(function() { - o.header = parseLASHeader(o.arraybuffer); - res(o.header); - }, 0); - }); - }; - - LASLoader.prototype.readData = function(count, offset, skip) { - var o = this; - - return new Promise(function(res, rej) { - setTimeout(function() { - if (!o.header) - return rej(new Error("Cannot start reading data till a header request is issued")); - - var start; - if (skip <= 1) { - count = Math.min(count, o.header.pointsCount - o.readOffset); - start = o.header.pointsOffset + o.readOffset * o.header.pointsStructSize; - var end = start + count * o.header.pointsStructSize; - res({ - buffer: o.arraybuffer.slice(start, end), - count: count, - hasMoreData: o.readOffset + count < o.header.pointsCount}); - o.readOffset += count; - } - else { - var pointsToRead = Math.min(count * skip, o.header.pointsCount - o.readOffset); - var bufferSize = Math.ceil(pointsToRead / skip); - var pointsRead = 0; - - var buf = new Uint8Array(bufferSize * o.header.pointsStructSize); - for (var i = 0 ; i < pointsToRead ; i ++) { - if (i % skip === 0) { - start = o.header.pointsOffset + o.readOffset * o.header.pointsStructSize; - var src = new Uint8Array(o.arraybuffer, start, o.header.pointsStructSize); - - buf.set(src, pointsRead * o.header.pointsStructSize); - pointsRead ++; - } - - o.readOffset ++; - } - - res({ - buffer: buf.buffer, - count: pointsRead, - hasMoreData: o.readOffset < o.header.pointsCount - }); - } - }, 0); - }); - }; - - LASLoader.prototype.close = function() { - var o = this; - return new Promise(function(res, rej) { - o.arraybuffer = null; - setTimeout(res, 0); - }); - }; - - // LAZ Loader - // Uses NaCL module to load LAZ files - // - var LAZLoader = function(arraybuffer) { - this.arraybuffer = arraybuffer; - - let workerPath = Potree.scriptPath + "/workers/LASLAZWorker.js"; - this.ww = Potree.workerPool.getWorker(workerPath); - - this.nextCB = null; - var o = this; - - this.ww.onmessage = function(e) { - if (o.nextCB !== null) { - o.nextCB(e.data); - o.nextCB = null; - } - }; - - this.dorr = function(req, cb) { - o.nextCB = cb; - o.ww.postMessage(req); - }; - }; - - LAZLoader.prototype.open = function() { - - // nothing needs to be done to open this file - // - var o = this; - return new Promise(function(res, rej) { - o.dorr({type:"open", arraybuffer: o.arraybuffer}, function(r) { - if (r.status !== 1) - return rej(new Error("Failed to open file")); - - res(true); - }); - }); - }; - - LAZLoader.prototype.getHeader = function() { - var o = this; - - return new Promise(function(res, rej) { - o.dorr({type:'header'}, function(r) { - if (r.status !== 1) - return rej(new Error("Failed to get header")); - - res(r.header); - }); - }); - }; - - LAZLoader.prototype.readData = function(count, offset, skip) { - var o = this; - - return new Promise(function(res, rej) { - o.dorr({type:'read', count: count, offset: offset, skip: skip}, function(r) { - if (r.status !== 1) - return rej(new Error("Failed to read data")); - res({ - buffer: r.buffer, - count: r.count, - hasMoreData: r.hasMoreData - }); - }); - }); - }; - - LAZLoader.prototype.close = function() { - var o = this; - - return new Promise(function(res, rej) { - o.dorr({type:'close'}, function(r) { - let workerPath = Potree.scriptPath + "/workers/LASLAZWorker.js"; - Potree.workerPool.returnWorker(workerPath, o.ww); - - if (r.status !== 1) - return rej(new Error("Failed to close file")); - - res(true); - }); - }); - }; - - // A single consistent interface for loading LAS/LAZ files - var LASFile = function(arraybuffer) { - this.arraybuffer = arraybuffer; - - this.determineVersion(); - if (this.version > 12) - throw new Error("Only file versions <= 1.2 are supported at this time"); - - this.determineFormat(); - if (pointFormatReaders[this.formatId] === undefined) - throw new Error("The point format ID is not supported"); - - this.loader = this.isCompressed ? - new LAZLoader(this.arraybuffer) : - new LASLoader(this.arraybuffer); - }; - - LASFile.prototype.determineFormat = function() { - var formatId = readAs(this.arraybuffer, Uint8Array, 32*3+8); - var bit_7 = (formatId & 0x80) >> 7; - var bit_6 = (formatId & 0x40) >> 6; - - if (bit_7 === 1 && bit_6 === 1) - throw new Error("Old style compression not supported"); - - this.formatId = formatId & 0x3f; - this.isCompressed = (bit_7 === 1 || bit_6 === 1); - }; - - LASFile.prototype.determineVersion = function() { - var ver = new Int8Array(this.arraybuffer, 24, 2); - this.version = ver[0] * 10 + ver[1]; - this.versionAsString = ver[0] + "." + ver[1]; - }; - - LASFile.prototype.open = function() { - return this.loader.open(); - }; - - LASFile.prototype.getHeader = function() { - return this.loader.getHeader(); - }; - - LASFile.prototype.readData = function(count, start, skip) { - return this.loader.readData(count, start, skip); - }; - - LASFile.prototype.close = function() { - return this.loader.close(); - }; - - // Decodes LAS records into points - // - var LASDecoder = function(buffer, pointFormatID, pointSize, pointsCount, scale, offset, mins, maxs) { - this.arrayb = buffer; - this.decoder = pointFormatReaders[pointFormatID]; - this.pointsCount = pointsCount; - this.pointSize = pointSize; - this.scale = scale; - this.offset = offset; - this.mins = mins; - this.maxs = maxs; - }; - - LASDecoder.prototype.getPoint = function(index) { - if (index < 0 || index >= this.pointsCount) - throw new Error("Point index out of range"); - - var dv = new DataView(this.arrayb, index * this.pointSize, this.pointSize); - return this.decoder(dv); - }; - - // NACL Module support - // Called by the common.js module. - // - //window.startNaCl = function(name, tc, config, width, height) { - // // check browser support for nacl - // // - // if(!common.browserSupportsNaCl()) { - // return $.event.trigger({ - // type: "plasio.nacl.error", - // message: "NaCl support is not available" - // }); - // } - - // navigator.webkitPersistentStorage.requestQuota(2048 * 2048, function(bytes) { - // common.updateStatus( - // 'Allocated ' + bytes + ' bytes of persistant storage.'); - // common.attachDefaultListeners(); - // common.createNaClModule(name, tc, config, width, height); - // }, - // function(e) { - // $.event.trigger({ - // type: "plasio.nacl.error", - // message: "Could not allocate persistant storage" - // }); - // }); - - // $(document).on("plasio.nacl.available", function() { - // scope.LASModuleWasLoaded = true; - // }); - //}; - - scope.LAZLoader = LAZLoader; - scope.LASLoader = LASLoader; - scope.LASFile = LASFile; - scope.LASDecoder = LASDecoder; - scope.LASModuleWasLoaded = false; -})(module.exports); -// })(this); - diff --git a/app/static/app/js/vendor/potree/libs/spectrum.css b/app/static/app/js/vendor/potree/libs/spectrum.css deleted file mode 100644 index a8ad9e4f..00000000 --- a/app/static/app/js/vendor/potree/libs/spectrum.css +++ /dev/null @@ -1,507 +0,0 @@ -/*** -Spectrum Colorpicker v1.8.0 -https://github.com/bgrins/spectrum -Author: Brian Grinstead -License: MIT -***/ - -.sp-container { - position:absolute; - top:0; - left:0; - display:inline-block; - *display: inline; - *zoom: 1; - /* https://github.com/bgrins/spectrum/issues/40 */ - z-index: 9999994; - overflow: hidden; -} -.sp-container.sp-flat { - position: relative; -} - -/* Fix for * { box-sizing: border-box; } */ -.sp-container, -.sp-container * { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */ -.sp-top { - position:relative; - width: 100%; - display:inline-block; -} -.sp-top-inner { - position:absolute; - top:0; - left:0; - bottom:0; - right:0; -} -.sp-color { - position: absolute; - top:0; - left:0; - bottom:0; - right:20%; -} -.sp-hue { - position: absolute; - top:0; - right:0; - bottom:0; - left:84%; - height: 100%; -} - -.sp-clear-enabled .sp-hue { - top:33px; - height: 77.5%; -} - -.sp-fill { - padding-top: 80%; -} -.sp-sat, .sp-val { - position: absolute; - top:0; - left:0; - right:0; - bottom:0; -} - -.sp-alpha-enabled .sp-top { - margin-bottom: 18px; -} -.sp-alpha-enabled .sp-alpha { - display: block; -} -.sp-alpha-handle { - position:absolute; - top:-4px; - bottom: -4px; - width: 6px; - left: 50%; - cursor: pointer; - border: 1px solid black; - background: white; - opacity: .8; -} -.sp-alpha { - display: none; - position: absolute; - bottom: -14px; - right: 0; - left: 0; - height: 8px; -} -.sp-alpha-inner { - border: solid 1px #333; -} - -.sp-clear { - display: none; -} - -.sp-clear.sp-clear-display { - background-position: center; -} - -.sp-clear-enabled .sp-clear { - display: block; - position:absolute; - top:0px; - right:0; - bottom:0; - left:84%; - height: 28px; -} - -/* Don't allow text selection */ -.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button { - -webkit-user-select:none; - -moz-user-select: -moz-none; - -o-user-select:none; - user-select: none; -} - -.sp-container.sp-input-disabled .sp-input-container { - display: none; -} -.sp-container.sp-buttons-disabled .sp-button-container { - display: none; -} -.sp-container.sp-palette-buttons-disabled .sp-palette-button-container { - display: none; -} -.sp-palette-only .sp-picker-container { - display: none; -} -.sp-palette-disabled .sp-palette-container { - display: none; -} - -.sp-initial-disabled .sp-initial { - display: none; -} - - -/* Gradients for hue, saturation and value instead of images. Not pretty... but it works */ -.sp-sat { - background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; - filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81'); -} -.sp-val { - background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; - filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000'); -} - -.sp-hue { - background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); - background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); - background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); - background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000)); - background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); - background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); -} - -/* IE filters do not support multiple color stops. - Generate 6 divs, line them up, and do two color gradients for each. - Yes, really. - */ -.sp-1 { - height:17%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00'); -} -.sp-2 { - height:16%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00'); -} -.sp-3 { - height:17%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff'); -} -.sp-4 { - height:17%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff'); -} -.sp-5 { - height:16%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff'); -} -.sp-6 { - height:17%; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000'); -} - -.sp-hidden { - display: none !important; -} - -/* Clearfix hack */ -.sp-cf:before, .sp-cf:after { content: ""; display: table; } -.sp-cf:after { clear: both; } -.sp-cf { *zoom: 1; } - -/* Mobile devices, make hue slider bigger so it is easier to slide */ -@media (max-device-width: 480px) { - .sp-color { right: 40%; } - .sp-hue { left: 63%; } - .sp-fill { padding-top: 60%; } -} -.sp-dragger { - border-radius: 5px; - height: 5px; - width: 5px; - border: 1px solid #fff; - background: #000; - cursor: pointer; - position:absolute; - top:0; - left: 0; -} -.sp-slider { - position: absolute; - top:0; - cursor:pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid #000; - background: white; - opacity: .8; -} - -/* -Theme authors: -Here are the basic themeable display options (colors, fonts, global widths). -See http://bgrins.github.io/spectrum/themes/ for instructions. -*/ - -.sp-container { - border-radius: 0; - background-color: #ECECEC; - border: solid 1px #f0c49B; - padding: 0; -} -.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear { - font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; -} -.sp-top { - margin-bottom: 3px; -} -.sp-color, .sp-hue, .sp-clear { - border: solid 1px #666; -} - -/* Input */ -.sp-input-container { - float:right; - width: 100px; - margin-bottom: 4px; -} -.sp-initial-disabled .sp-input-container { - width: 100%; -} -.sp-input { - font-size: 12px !important; - border: 1px inset; - padding: 4px 5px; - margin: 0; - width: 100%; - background:transparent; - border-radius: 3px; - color: #222; -} -.sp-input:focus { - border: 1px solid orange; -} -.sp-input.sp-validation-error { - border: 1px solid red; - background: #fdd; -} -.sp-picker-container , .sp-palette-container { - float:left; - position: relative; - padding: 10px; - padding-bottom: 300px; - margin-bottom: -290px; -} -.sp-picker-container { - width: 172px; - border-left: solid 1px #fff; -} - -/* Palettes */ -.sp-palette-container { - border-right: solid 1px #ccc; -} - -.sp-palette-only .sp-palette-container { - border: 0; -} - -.sp-palette .sp-thumb-el { - display: block; - position:relative; - float:left; - width: 24px; - height: 15px; - margin: 3px; - cursor: pointer; - border:solid 2px transparent; -} -.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active { - border-color: orange; -} -.sp-thumb-el { - position:relative; -} - -/* Initial */ -.sp-initial { - float: left; - border: solid 1px #333; -} -.sp-initial span { - width: 30px; - height: 25px; - border:none; - display:block; - float:left; - margin:0; -} - -.sp-initial .sp-clear-display { - background-position: center; -} - -/* Buttons */ -.sp-palette-button-container, -.sp-button-container { - float: right; -} - -/* Replacer (the little preview div that shows up instead of the ) */ -.sp-replacer { - margin:0; - overflow:hidden; - cursor:pointer; - padding: 4px; - display:inline-block; - *zoom: 1; - *display: inline; - border: solid 1px #91765d; - background: #eee; - color: #333; - vertical-align: middle; -} -.sp-replacer:hover, .sp-replacer.sp-active { - border-color: #F0C49B; - color: #111; -} -.sp-replacer.sp-disabled { - cursor:default; - border-color: silver; - color: silver; -} -.sp-dd { - padding: 2px 0; - height: 16px; - line-height: 16px; - float:left; - font-size:10px; -} -.sp-preview { - position:relative; - width:25px; - height: 20px; - border: solid 1px #222; - margin-right: 5px; - float:left; - z-index: 0; -} - -.sp-palette { - *width: 220px; - max-width: 220px; -} -.sp-palette .sp-thumb-el { - width:16px; - height: 16px; - margin:2px 1px; - border: solid 1px #d0d0d0; -} - -.sp-container { - padding-bottom:0; -} - - -/* Buttons: http://hellohappy.org/css3-buttons/ */ -.sp-container button { - background-color: #eeeeee; - background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc); - background-image: -moz-linear-gradient(top, #eeeeee, #cccccc); - background-image: -ms-linear-gradient(top, #eeeeee, #cccccc); - background-image: -o-linear-gradient(top, #eeeeee, #cccccc); - background-image: linear-gradient(to bottom, #eeeeee, #cccccc); - border: 1px solid #ccc; - border-bottom: 1px solid #bbb; - border-radius: 3px; - color: #333; - font-size: 14px; - line-height: 1; - padding: 5px 4px; - text-align: center; - text-shadow: 0 1px 0 #eee; - vertical-align: middle; -} -.sp-container button:hover { - background-color: #dddddd; - background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb); - background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb); - background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb); - background-image: -o-linear-gradient(top, #dddddd, #bbbbbb); - background-image: linear-gradient(to bottom, #dddddd, #bbbbbb); - border: 1px solid #bbb; - border-bottom: 1px solid #999; - cursor: pointer; - text-shadow: 0 1px 0 #ddd; -} -.sp-container button:active { - border: 1px solid #aaa; - border-bottom: 1px solid #888; - -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; -} -.sp-cancel { - font-size: 11px; - color: #d93f3f !important; - margin:0; - padding:2px; - margin-right: 5px; - vertical-align: middle; - text-decoration:none; - -} -.sp-cancel:hover { - color: #d93f3f !important; - text-decoration: underline; -} - - -.sp-palette span:hover, .sp-palette span.sp-thumb-active { - border-color: #000; -} - -.sp-preview, .sp-alpha, .sp-thumb-el { - position:relative; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); -} -.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner { - display:block; - position:absolute; - top:0;left:0;bottom:0;right:0; -} - -.sp-palette .sp-thumb-inner { - background-position: 50% 50%; - background-repeat: no-repeat; -} - -.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=); -} - -.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=); -} - -.sp-clear-display { - background-repeat:no-repeat; - background-position: center; - background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==); -} diff --git a/app/static/app/js/vendor/potree/libs/spectrum.js b/app/static/app/js/vendor/potree/libs/spectrum.js deleted file mode 100644 index e129e184..00000000 --- a/app/static/app/js/vendor/potree/libs/spectrum.js +++ /dev/null @@ -1,2341 +0,0 @@ -// Spectrum Colorpicker v1.8.0 -// https://github.com/bgrins/spectrum -// Author: Brian Grinstead -// License: MIT - -(function (factory) { - "use strict"; - - if (typeof define === 'function' && define.amd) { // AMD - define(['jquery'], factory); - } - else if (typeof exports == "object" && typeof module == "object") { // CommonJS - module.exports = factory(require('jquery')); - } - else { // Browser - factory(jQuery); - } -})(function($, undefined) { - "use strict"; - - var defaultOpts = { - - // Callbacks - beforeShow: noop, - move: noop, - change: noop, - show: noop, - hide: noop, - - // Options - color: false, - flat: false, - showInput: false, - allowEmpty: false, - showButtons: true, - clickoutFiresChange: true, - showInitial: false, - showPalette: false, - showPaletteOnly: false, - hideAfterPaletteSelect: false, - togglePaletteOnly: false, - showSelectionPalette: true, - localStorageKey: false, - appendTo: "body", - maxSelectionSize: 7, - cancelText: "cancel", - chooseText: "choose", - togglePaletteMoreText: "more", - togglePaletteLessText: "less", - clearText: "Clear Color Selection", - noColorSelectedText: "No Color Selected", - preferredFormat: false, - className: "", // Deprecated - use containerClassName and replacerClassName instead. - containerClassName: "", - replacerClassName: "", - showAlpha: false, - theme: "sp-light", - palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]], - selectionPalette: [], - disabled: false, - offset: null - }, - spectrums = [], - IE = !!/msie/i.exec( window.navigator.userAgent ), - rgbaSupport = (function() { - function contains( str, substr ) { - return !!~('' + str).indexOf(substr); - } - - var elem = document.createElement('div'); - var style = elem.style; - style.cssText = 'background-color:rgba(0,0,0,.5)'; - return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla'); - })(), - replaceInput = [ - "
      ", - "
      ", - "
      ", - "
      " - ].join(''), - markup = (function () { - - // IE does not support gradients with multiple stops, so we need to simulate - // that for the rainbow slider with 8 divs that each have a single gradient - var gradientFix = ""; - if (IE) { - for (var i = 1; i <= 6; i++) { - gradientFix += "
      "; - } - } - - return [ - "
      ", - "
      ", - "
      ", - "
      ", - "", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - gradientFix, - "
      ", - "
      ", - "
      ", - "
      ", - "
      ", - "", - "
      ", - "
      ", - "
      ", - "", - "", - "
      ", - "
      ", - "
      " - ].join(""); - })(); - - function paletteTemplate (p, color, className, opts) { - var html = []; - for (var i = 0; i < p.length; i++) { - var current = p[i]; - if(current) { - var tiny = tinycolor(current); - var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light"; - c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : ""; - var formattedString = tiny.toString(opts.preferredFormat || "rgb"); - var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter(); - html.push(''); - } else { - var cls = 'sp-clear-display'; - html.push($('
      ') - .append($('') - .attr('title', opts.noColorSelectedText) - ) - .html() - ); - } - } - return "
      " + html.join('') + "
      "; - } - - function hideAll() { - for (var i = 0; i < spectrums.length; i++) { - if (spectrums[i]) { - spectrums[i].hide(); - } - } - } - - function instanceOptions(o, callbackContext) { - var opts = $.extend({}, defaultOpts, o); - opts.callbacks = { - 'move': bind(opts.move, callbackContext), - 'change': bind(opts.change, callbackContext), - 'show': bind(opts.show, callbackContext), - 'hide': bind(opts.hide, callbackContext), - 'beforeShow': bind(opts.beforeShow, callbackContext) - }; - - return opts; - } - - function spectrum(element, o) { - - var opts = instanceOptions(o, element), - flat = opts.flat, - showSelectionPalette = opts.showSelectionPalette, - localStorageKey = opts.localStorageKey, - theme = opts.theme, - callbacks = opts.callbacks, - resize = throttle(reflow, 10), - visible = false, - isDragging = false, - dragWidth = 0, - dragHeight = 0, - dragHelperHeight = 0, - slideHeight = 0, - slideWidth = 0, - alphaWidth = 0, - alphaSlideHelperWidth = 0, - slideHelperHeight = 0, - currentHue = 0, - currentSaturation = 0, - currentValue = 0, - currentAlpha = 1, - palette = [], - paletteArray = [], - paletteLookup = {}, - selectionPalette = opts.selectionPalette.slice(0), - maxSelectionSize = opts.maxSelectionSize, - draggingClass = "sp-dragging", - shiftMovementDirection = null; - - var doc = element.ownerDocument, - body = doc.body, - boundElement = $(element), - disabled = false, - container = $(markup, doc).addClass(theme), - pickerContainer = container.find(".sp-picker-container"), - dragger = container.find(".sp-color"), - dragHelper = container.find(".sp-dragger"), - slider = container.find(".sp-hue"), - slideHelper = container.find(".sp-slider"), - alphaSliderInner = container.find(".sp-alpha-inner"), - alphaSlider = container.find(".sp-alpha"), - alphaSlideHelper = container.find(".sp-alpha-handle"), - textInput = container.find(".sp-input"), - paletteContainer = container.find(".sp-palette"), - initialColorContainer = container.find(".sp-initial"), - cancelButton = container.find(".sp-cancel"), - clearButton = container.find(".sp-clear"), - chooseButton = container.find(".sp-choose"), - toggleButton = container.find(".sp-palette-toggle"), - isInput = boundElement.is("input"), - isInputTypeColor = isInput && boundElement.attr("type") === "color" && inputTypeColorSupport(), - shouldReplace = isInput && !flat, - replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]), - offsetElement = (shouldReplace) ? replacer : boundElement, - previewElement = replacer.find(".sp-preview-inner"), - initialColor = opts.color || (isInput && boundElement.val()), - colorOnShow = false, - currentPreferredFormat = opts.preferredFormat, - clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange, - isEmpty = !initialColor, - allowEmpty = opts.allowEmpty && !isInputTypeColor; - - function applyOptions() { - - if (opts.showPaletteOnly) { - opts.showPalette = true; - } - - toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); - - if (opts.palette) { - palette = opts.palette.slice(0); - paletteArray = $.isArray(palette[0]) ? palette : [palette]; - paletteLookup = {}; - for (var i = 0; i < paletteArray.length; i++) { - for (var j = 0; j < paletteArray[i].length; j++) { - var rgb = tinycolor(paletteArray[i][j]).toRgbString(); - paletteLookup[rgb] = true; - } - } - } - - container.toggleClass("sp-flat", flat); - container.toggleClass("sp-input-disabled", !opts.showInput); - container.toggleClass("sp-alpha-enabled", opts.showAlpha); - container.toggleClass("sp-clear-enabled", allowEmpty); - container.toggleClass("sp-buttons-disabled", !opts.showButtons); - container.toggleClass("sp-palette-buttons-disabled", !opts.togglePaletteOnly); - container.toggleClass("sp-palette-disabled", !opts.showPalette); - container.toggleClass("sp-palette-only", opts.showPaletteOnly); - container.toggleClass("sp-initial-disabled", !opts.showInitial); - container.addClass(opts.className).addClass(opts.containerClassName); - - reflow(); - } - - function initialize() { - - if (IE) { - container.find("*:not(input)").attr("unselectable", "on"); - } - - applyOptions(); - - if (shouldReplace) { - boundElement.after(replacer).hide(); - } - - if (!allowEmpty) { - clearButton.hide(); - } - - if (flat) { - boundElement.after(container).hide(); - } - else { - - var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo); - if (appendTo.length !== 1) { - appendTo = $("body"); - } - - appendTo.append(container); - } - - updateSelectionPaletteFromStorage(); - - offsetElement.on("click.spectrum touchstart.spectrum", function (e) { - if (!disabled) { - toggle(); - } - - e.stopPropagation(); - - if (!$(e.target).is("input")) { - e.preventDefault(); - } - }); - - if(boundElement.is(":disabled") || (opts.disabled === true)) { - disable(); - } - - // Prevent clicks from bubbling up to document. This would cause it to be hidden. - container.click(stopPropagation); - - // Handle user typed input - textInput.change(setFromTextInput); - textInput.on("paste", function () { - setTimeout(setFromTextInput, 1); - }); - textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } }); - - cancelButton.text(opts.cancelText); - cancelButton.on("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - revert(); - hide(); - }); - - clearButton.attr("title", opts.clearText); - clearButton.on("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - isEmpty = true; - move(); - - if(flat) { - //for the flat style, this is a change event - updateOriginalInput(true); - } - }); - - chooseButton.text(opts.chooseText); - chooseButton.on("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - - if (IE && textInput.is(":focus")) { - textInput.trigger('change'); - } - - if (isValid()) { - updateOriginalInput(true); - hide(); - } - }); - - toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText); - toggleButton.on("click.spectrum", function (e) { - e.stopPropagation(); - e.preventDefault(); - - opts.showPaletteOnly = !opts.showPaletteOnly; - - // To make sure the Picker area is drawn on the right, next to the - // Palette area (and not below the palette), first move the Palette - // to the left to make space for the picker, plus 5px extra. - // The 'applyOptions' function puts the whole container back into place - // and takes care of the button-text and the sp-palette-only CSS class. - if (!opts.showPaletteOnly && !flat) { - container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5)); - } - applyOptions(); - }); - - draggable(alphaSlider, function (dragX, dragY, e) { - currentAlpha = (dragX / alphaWidth); - isEmpty = false; - if (e.shiftKey) { - currentAlpha = Math.round(currentAlpha * 10) / 10; - } - - move(); - }, dragStart, dragStop); - - draggable(slider, function (dragX, dragY) { - currentHue = parseFloat(dragY / slideHeight); - isEmpty = false; - if (!opts.showAlpha) { - currentAlpha = 1; - } - move(); - }, dragStart, dragStop); - - draggable(dragger, function (dragX, dragY, e) { - - // shift+drag should snap the movement to either the x or y axis. - if (!e.shiftKey) { - shiftMovementDirection = null; - } - else if (!shiftMovementDirection) { - var oldDragX = currentSaturation * dragWidth; - var oldDragY = dragHeight - (currentValue * dragHeight); - var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY); - - shiftMovementDirection = furtherFromX ? "x" : "y"; - } - - var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x"; - var setValue = !shiftMovementDirection || shiftMovementDirection === "y"; - - if (setSaturation) { - currentSaturation = parseFloat(dragX / dragWidth); - } - if (setValue) { - currentValue = parseFloat((dragHeight - dragY) / dragHeight); - } - - isEmpty = false; - if (!opts.showAlpha) { - currentAlpha = 1; - } - - move(); - - }, dragStart, dragStop); - - if (!!initialColor) { - set(initialColor); - - // In case color was black - update the preview UI and set the format - // since the set function will not run (default color is black). - updateUI(); - currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format; - - addColorToSelectionPalette(initialColor); - } - else { - updateUI(); - } - - if (flat) { - show(); - } - - function paletteElementClick(e) { - if (e.data && e.data.ignore) { - set($(e.target).closest(".sp-thumb-el").data("color")); - move(); - } - else { - set($(e.target).closest(".sp-thumb-el").data("color")); - move(); - - // If the picker is going to close immediately, a palette selection - // is a change. Otherwise, it's a move only. - if (opts.hideAfterPaletteSelect) { - updateOriginalInput(true); - hide(); - } else { - updateOriginalInput(); - } - } - - return false; - } - - var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum"; - paletteContainer.on(paletteEvent, ".sp-thumb-el", paletteElementClick); - initialColorContainer.on(paletteEvent, ".sp-thumb-el:nth-child(1)", { ignore: true }, paletteElementClick); - } - - function updateSelectionPaletteFromStorage() { - - if (localStorageKey && window.localStorage) { - - // Migrate old palettes over to new format. May want to remove this eventually. - try { - var oldPalette = window.localStorage[localStorageKey].split(",#"); - if (oldPalette.length > 1) { - delete window.localStorage[localStorageKey]; - $.each(oldPalette, function(i, c) { - addColorToSelectionPalette(c); - }); - } - } - catch(e) { } - - try { - selectionPalette = window.localStorage[localStorageKey].split(";"); - } - catch (e) { } - } - } - - function addColorToSelectionPalette(color) { - if (showSelectionPalette) { - var rgb = tinycolor(color).toRgbString(); - if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) { - selectionPalette.push(rgb); - while(selectionPalette.length > maxSelectionSize) { - selectionPalette.shift(); - } - } - - if (localStorageKey && window.localStorage) { - try { - window.localStorage[localStorageKey] = selectionPalette.join(";"); - } - catch(e) { } - } - } - } - - function getUniqueSelectionPalette() { - var unique = []; - if (opts.showPalette) { - for (var i = 0; i < selectionPalette.length; i++) { - var rgb = tinycolor(selectionPalette[i]).toRgbString(); - - if (!paletteLookup[rgb]) { - unique.push(selectionPalette[i]); - } - } - } - - return unique.reverse().slice(0, opts.maxSelectionSize); - } - - function drawPalette() { - - var currentColor = get(); - - var html = $.map(paletteArray, function (palette, i) { - return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts); - }); - - updateSelectionPaletteFromStorage(); - - if (selectionPalette) { - html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts)); - } - - paletteContainer.html(html.join("")); - } - - function drawInitial() { - if (opts.showInitial) { - var initial = colorOnShow; - var current = get(); - initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts)); - } - } - - function dragStart() { - if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) { - reflow(); - } - isDragging = true; - container.addClass(draggingClass); - shiftMovementDirection = null; - boundElement.trigger('dragstart.spectrum', [ get() ]); - } - - function dragStop() { - isDragging = false; - container.removeClass(draggingClass); - boundElement.trigger('dragstop.spectrum', [ get() ]); - } - - function setFromTextInput() { - - var value = textInput.val(); - - if ((value === null || value === "") && allowEmpty) { - set(null); - move(); - updateOriginalInput(); - } - else { - var tiny = tinycolor(value); - if (tiny.isValid()) { - set(tiny); - move(); - updateOriginalInput(); - } - else { - textInput.addClass("sp-validation-error"); - } - } - } - - function toggle() { - if (visible) { - hide(); - } - else { - show(); - } - } - - function show() { - var event = $.Event('beforeShow.spectrum'); - - if (visible) { - reflow(); - return; - } - - boundElement.trigger(event, [ get() ]); - - if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) { - return; - } - - hideAll(); - visible = true; - - $(doc).on("keydown.spectrum", onkeydown); - $(doc).on("click.spectrum", clickout); - $(window).on("resize.spectrum", resize); - replacer.addClass("sp-active"); - container.removeClass("sp-hidden"); - - reflow(); - updateUI(); - - colorOnShow = get(); - - drawInitial(); - callbacks.show(colorOnShow); - boundElement.trigger('show.spectrum', [ colorOnShow ]); - } - - function onkeydown(e) { - // Close on ESC - if (e.keyCode === 27) { - hide(); - } - } - - function clickout(e) { - // Return on right click. - if (e.button == 2) { return; } - - // If a drag event was happening during the mouseup, don't hide - // on click. - if (isDragging) { return; } - - if (clickoutFiresChange) { - updateOriginalInput(true); - } - else { - revert(); - } - hide(); - } - - function hide() { - // Return if hiding is unnecessary - if (!visible || flat) { return; } - visible = false; - - $(doc).off("keydown.spectrum", onkeydown); - $(doc).off("click.spectrum", clickout); - $(window).off("resize.spectrum", resize); - - replacer.removeClass("sp-active"); - container.addClass("sp-hidden"); - - callbacks.hide(get()); - boundElement.trigger('hide.spectrum', [ get() ]); - } - - function revert() { - set(colorOnShow, true); - updateOriginalInput(true); - } - - function set(color, ignoreFormatChange) { - if (tinycolor.equals(color, get())) { - // Update UI just in case a validation error needs - // to be cleared. - updateUI(); - return; - } - - var newColor, newHsv; - if (!color && allowEmpty) { - isEmpty = true; - } else { - isEmpty = false; - newColor = tinycolor(color); - newHsv = newColor.toHsv(); - - currentHue = (newHsv.h % 360) / 360; - currentSaturation = newHsv.s; - currentValue = newHsv.v; - currentAlpha = newHsv.a; - } - updateUI(); - - if (newColor && newColor.isValid() && !ignoreFormatChange) { - currentPreferredFormat = opts.preferredFormat || newColor.getFormat(); - } - } - - function get(opts) { - opts = opts || { }; - - if (allowEmpty && isEmpty) { - return null; - } - - return tinycolor.fromRatio({ - h: currentHue, - s: currentSaturation, - v: currentValue, - a: Math.round(currentAlpha * 1000) / 1000 - }, { format: opts.format || currentPreferredFormat }); - } - - function isValid() { - return !textInput.hasClass("sp-validation-error"); - } - - function move() { - updateUI(); - - callbacks.move(get()); - boundElement.trigger('move.spectrum', [ get() ]); - } - - function updateUI() { - - textInput.removeClass("sp-validation-error"); - - updateHelperLocations(); - - // Update dragger background color (gradients take care of saturation and value). - var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 }); - dragger.css("background-color", flatColor.toHexString()); - - // Get a format that alpha will be included in (hex and names ignore alpha) - var format = currentPreferredFormat; - if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) { - if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") { - format = "rgb"; - } - } - - var realColor = get({ format: format }), - displayColor = ''; - - //reset background info for preview element - previewElement.removeClass("sp-clear-display"); - previewElement.css('background-color', 'transparent'); - - if (!realColor && allowEmpty) { - // Update the replaced elements background with icon indicating no color selection - previewElement.addClass("sp-clear-display"); - } - else { - var realHex = realColor.toHexString(), - realRgb = realColor.toRgbString(); - - // Update the replaced elements background color (with actual selected color) - if (rgbaSupport || realColor.alpha === 1) { - previewElement.css("background-color", realRgb); - } - else { - previewElement.css("background-color", "transparent"); - previewElement.css("filter", realColor.toFilter()); - } - - if (opts.showAlpha) { - var rgb = realColor.toRgb(); - rgb.a = 0; - var realAlpha = tinycolor(rgb).toRgbString(); - var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")"; - - if (IE) { - alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex)); - } - else { - alphaSliderInner.css("background", "-webkit-" + gradient); - alphaSliderInner.css("background", "-moz-" + gradient); - alphaSliderInner.css("background", "-ms-" + gradient); - // Use current syntax gradient on unprefixed property. - alphaSliderInner.css("background", - "linear-gradient(to right, " + realAlpha + ", " + realHex + ")"); - } - } - - displayColor = realColor.toString(format); - } - - // Update the text entry input as it changes happen - if (opts.showInput) { - textInput.val(displayColor); - } - - if (opts.showPalette) { - drawPalette(); - } - - drawInitial(); - } - - function updateHelperLocations() { - var s = currentSaturation; - var v = currentValue; - - if(allowEmpty && isEmpty) { - //if selected color is empty, hide the helpers - alphaSlideHelper.hide(); - slideHelper.hide(); - dragHelper.hide(); - } - else { - //make sure helpers are visible - alphaSlideHelper.show(); - slideHelper.show(); - dragHelper.show(); - - // Where to show the little circle in that displays your current selected color - var dragX = s * dragWidth; - var dragY = dragHeight - (v * dragHeight); - dragX = Math.max( - -dragHelperHeight, - Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight) - ); - dragY = Math.max( - -dragHelperHeight, - Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight) - ); - dragHelper.css({ - "top": dragY + "px", - "left": dragX + "px" - }); - - var alphaX = currentAlpha * alphaWidth; - alphaSlideHelper.css({ - "left": (alphaX - (alphaSlideHelperWidth / 2)) + "px" - }); - - // Where to show the bar that displays your current selected hue - var slideY = (currentHue) * slideHeight; - slideHelper.css({ - "top": (slideY - slideHelperHeight) + "px" - }); - } - } - - function updateOriginalInput(fireCallback) { - var color = get(), - displayColor = '', - hasChanged = !tinycolor.equals(color, colorOnShow); - - if (color) { - displayColor = color.toString(currentPreferredFormat); - // Update the selection palette with the current color - addColorToSelectionPalette(color); - } - - if (isInput) { - boundElement.val(displayColor); - } - - if (fireCallback && hasChanged) { - callbacks.change(color); - boundElement.trigger('change', [ color ]); - } - } - - function reflow() { - if (!visible) { - return; // Calculations would be useless and wouldn't be reliable anyways - } - dragWidth = dragger.width(); - dragHeight = dragger.height(); - dragHelperHeight = dragHelper.height(); - slideWidth = slider.width(); - slideHeight = slider.height(); - slideHelperHeight = slideHelper.height(); - alphaWidth = alphaSlider.width(); - alphaSlideHelperWidth = alphaSlideHelper.width(); - - if (!flat) { - container.css("position", "absolute"); - if (opts.offset) { - container.offset(opts.offset); - } else { - container.offset(getOffset(container, offsetElement)); - } - } - - updateHelperLocations(); - - if (opts.showPalette) { - drawPalette(); - } - - boundElement.trigger('reflow.spectrum'); - } - - function destroy() { - boundElement.show(); - offsetElement.off("click.spectrum touchstart.spectrum"); - container.remove(); - replacer.remove(); - spectrums[spect.id] = null; - } - - function option(optionName, optionValue) { - if (optionName === undefined) { - return $.extend({}, opts); - } - if (optionValue === undefined) { - return opts[optionName]; - } - - opts[optionName] = optionValue; - - if (optionName === "preferredFormat") { - currentPreferredFormat = opts.preferredFormat; - } - applyOptions(); - } - - function enable() { - disabled = false; - boundElement.attr("disabled", false); - offsetElement.removeClass("sp-disabled"); - } - - function disable() { - hide(); - disabled = true; - boundElement.attr("disabled", true); - offsetElement.addClass("sp-disabled"); - } - - function setOffset(coord) { - opts.offset = coord; - reflow(); - } - - initialize(); - - var spect = { - show: show, - hide: hide, - toggle: toggle, - reflow: reflow, - option: option, - enable: enable, - disable: disable, - offset: setOffset, - set: function (c) { - set(c); - updateOriginalInput(); - }, - get: get, - destroy: destroy, - container: container - }; - - spect.id = spectrums.push(spect) - 1; - - return spect; - } - - /** - * checkOffset - get the offset below/above and left/right element depending on screen position - * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js - */ - function getOffset(picker, input) { - var extraY = 0; - var dpWidth = picker.outerWidth(); - var dpHeight = picker.outerHeight(); - var inputHeight = input.outerHeight(); - var doc = picker[0].ownerDocument; - var docElem = doc.documentElement; - var viewWidth = docElem.clientWidth + $(doc).scrollLeft(); - var viewHeight = docElem.clientHeight + $(doc).scrollTop(); - var offset = input.offset(); - var offsetLeft = offset.left; - var offsetTop = offset.top; - - offsetTop += inputHeight; - - offsetLeft -= - Math.min(offsetLeft, (offsetLeft + dpWidth > viewWidth && viewWidth > dpWidth) ? - Math.abs(offsetLeft + dpWidth - viewWidth) : 0); - - offsetTop -= - Math.min(offsetTop, ((offsetTop + dpHeight > viewHeight && viewHeight > dpHeight) ? - Math.abs(dpHeight + inputHeight - extraY) : extraY)); - - return { - top: offsetTop, - bottom: offset.bottom, - left: offsetLeft, - right: offset.right, - width: offset.width, - height: offset.height - }; - } - - /** - * noop - do nothing - */ - function noop() { - - } - - /** - * stopPropagation - makes the code only doing this a little easier to read in line - */ - function stopPropagation(e) { - e.stopPropagation(); - } - - /** - * Create a function bound to a given object - * Thanks to underscore.js - */ - function bind(func, obj) { - var slice = Array.prototype.slice; - var args = slice.call(arguments, 2); - return function () { - return func.apply(obj, args.concat(slice.call(arguments))); - }; - } - - /** - * Lightweight drag helper. Handles containment within the element, so that - * when dragging, the x is within [0,element.width] and y is within [0,element.height] - */ - function draggable(element, onmove, onstart, onstop) { - onmove = onmove || function () { }; - onstart = onstart || function () { }; - onstop = onstop || function () { }; - var doc = document; - var dragging = false; - var offset = {}; - var maxHeight = 0; - var maxWidth = 0; - var hasTouch = ('ontouchstart' in window); - - var duringDragEvents = {}; - duringDragEvents["selectstart"] = prevent; - duringDragEvents["dragstart"] = prevent; - duringDragEvents["touchmove mousemove"] = move; - duringDragEvents["touchend mouseup"] = stop; - - function prevent(e) { - if (e.stopPropagation) { - e.stopPropagation(); - } - if (e.preventDefault) { - e.preventDefault(); - } - e.returnValue = false; - } - - function move(e) { - if (dragging) { - // Mouseup happened outside of window - if (IE && doc.documentMode < 9 && !e.button) { - return stop(); - } - - var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0]; - var pageX = t0 && t0.pageX || e.pageX; - var pageY = t0 && t0.pageY || e.pageY; - - var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth)); - var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight)); - - if (hasTouch) { - // Stop scrolling in iOS - prevent(e); - } - - onmove.apply(element, [dragX, dragY, e]); - } - } - - function start(e) { - var rightclick = (e.which) ? (e.which == 3) : (e.button == 2); - - if (!rightclick && !dragging) { - if (onstart.apply(element, arguments) !== false) { - dragging = true; - maxHeight = $(element).height(); - maxWidth = $(element).width(); - offset = $(element).offset(); - - $(doc).on(duringDragEvents); - $(doc.body).addClass("sp-dragging"); - - move(e); - - prevent(e); - } - } - } - - function stop() { - if (dragging) { - $(doc).off(duringDragEvents); - $(doc.body).removeClass("sp-dragging"); - - // Wait a tick before notifying observers to allow the click event - // to fire in Chrome. - setTimeout(function() { - onstop.apply(element, arguments); - }, 0); - } - dragging = false; - } - - $(element).on("touchstart mousedown", start); - } - - function throttle(func, wait, debounce) { - var timeout; - return function () { - var context = this, args = arguments; - var throttler = function () { - timeout = null; - func.apply(context, args); - }; - if (debounce) clearTimeout(timeout); - if (debounce || !timeout) timeout = setTimeout(throttler, wait); - }; - } - - function inputTypeColorSupport() { - return $.fn.spectrum.inputTypeColorSupport(); - } - - /** - * Define a jQuery plugin - */ - var dataID = "spectrum.id"; - $.fn.spectrum = function (opts, extra) { - - if (typeof opts == "string") { - - var returnValue = this; - var args = Array.prototype.slice.call( arguments, 1 ); - - this.each(function () { - var spect = spectrums[$(this).data(dataID)]; - if (spect) { - var method = spect[opts]; - if (!method) { - throw new Error( "Spectrum: no such method: '" + opts + "'" ); - } - - if (opts == "get") { - returnValue = spect.get(); - } - else if (opts == "container") { - returnValue = spect.container; - } - else if (opts == "option") { - returnValue = spect.option.apply(spect, args); - } - else if (opts == "destroy") { - spect.destroy(); - $(this).removeData(dataID); - } - else { - method.apply(spect, args); - } - } - }); - - return returnValue; - } - - // Initializing a new instance of spectrum - return this.spectrum("destroy").each(function () { - var options = $.extend({}, $(this).data(), opts); - var spect = spectrum(this, options); - $(this).data(dataID, spect.id); - }); - }; - - $.fn.spectrum.load = true; - $.fn.spectrum.loadOpts = {}; - $.fn.spectrum.draggable = draggable; - $.fn.spectrum.defaults = defaultOpts; - $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() { - if (typeof inputTypeColorSupport._cachedResult === "undefined") { - var colorInput = $("")[0]; // if color element is supported, value will default to not null - inputTypeColorSupport._cachedResult = colorInput.type === "color" && colorInput.value !== ""; - } - return inputTypeColorSupport._cachedResult; - }; - - $.spectrum = { }; - $.spectrum.localization = { }; - $.spectrum.palettes = { }; - - $.fn.spectrum.processNativeColorInputs = function () { - var colorInputs = $("input[type=color]"); - if (colorInputs.length && !inputTypeColorSupport()) { - colorInputs.spectrum({ - preferredFormat: "hex6" - }); - } - }; - - // TinyColor v1.1.2 - // https://github.com/bgrins/TinyColor - // Brian Grinstead, MIT License - - (function() { - - var trimLeft = /^[\s,#]+/, - trimRight = /\s+$/, - tinyCounter = 0, - math = Math, - mathRound = math.round, - mathMin = math.min, - mathMax = math.max, - mathRandom = math.random; - - var tinycolor = function(color, opts) { - - color = (color) ? color : ''; - opts = opts || { }; - - // If input is already a tinycolor, return itself - if (color instanceof tinycolor) { - return color; - } - // If we are called as a function, call using new instead - if (!(this instanceof tinycolor)) { - return new tinycolor(color, opts); - } - - var rgb = inputToRGB(color); - this._originalInput = color, - this._r = rgb.r, - this._g = rgb.g, - this._b = rgb.b, - this._a = rgb.a, - this._roundA = mathRound(1000 * this._a) / 1000, - this._format = opts.format || rgb.format; - this._gradientType = opts.gradientType; - - // Don't let the range of [0,255] come back in [0,1]. - // Potentially lose a little bit of precision here, but will fix issues where - // .5 gets interpreted as half of the total, instead of half of 1 - // If it was supposed to be 128, this was already taken care of by `inputToRgb` - if (this._r < 1) { this._r = mathRound(this._r); } - if (this._g < 1) { this._g = mathRound(this._g); } - if (this._b < 1) { this._b = mathRound(this._b); } - - this._ok = rgb.ok; - this._tc_id = tinyCounter++; - }; - - tinycolor.prototype = { - isDark: function() { - return this.getBrightness() < 128; - }, - isLight: function() { - return !this.isDark(); - }, - isValid: function() { - return this._ok; - }, - getOriginalInput: function() { - return this._originalInput; - }, - getFormat: function() { - return this._format; - }, - getAlpha: function() { - return this._a; - }, - getBrightness: function() { - var rgb = this.toRgb(); - return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; - }, - setAlpha: function(value) { - this._a = boundAlpha(value); - this._roundA = mathRound(1000 * this._a) / 1000; - return this; - }, - toHsv: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; - }, - toHsvString: function() { - var hsv = rgbToHsv(this._r, this._g, this._b); - var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); - return (this._a == 1) ? - "hsv(" + h + ", " + s + "%, " + v + "%)" : - "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; - }, - toHsl: function() { - var hsl = rgbToHsl(this._r, this._g, this._b); - return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; - }, - toHslString: function() { - var hsl = rgbToHsl(this._r, this._g, this._b); - var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); - return (this._a == 1) ? - "hsl(" + h + ", " + s + "%, " + l + "%)" : - "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; - }, - toHex: function(allow3Char) { - return rgbToHex(this._r, this._g, this._b, allow3Char); - }, - toHexString: function(allow3Char) { - return '#' + this.toHex(allow3Char); - }, - toHex8: function() { - return rgbaToHex(this._r, this._g, this._b, this._a); - }, - toHex8String: function() { - return '#' + this.toHex8(); - }, - toRgb: function() { - return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; - }, - toRgbString: function() { - return (this._a == 1) ? - "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : - "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; - }, - toPercentageRgb: function() { - return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; - }, - toPercentageRgbString: function() { - return (this._a == 1) ? - "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : - "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; - }, - toName: function() { - if (this._a === 0) { - return "transparent"; - } - - if (this._a < 1) { - return false; - } - - return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; - }, - toFilter: function(secondColor) { - var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a); - var secondHex8String = hex8String; - var gradientType = this._gradientType ? "GradientType = 1, " : ""; - - if (secondColor) { - var s = tinycolor(secondColor); - secondHex8String = s.toHex8String(); - } - - return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; - }, - toString: function(format) { - var formatSet = !!format; - format = format || this._format; - - var formattedString = false; - var hasAlpha = this._a < 1 && this._a >= 0; - var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "name"); - - if (needsAlphaFormat) { - // Special case for "transparent", all other non-alpha formats - // will return rgba when there is transparency. - if (format === "name" && this._a === 0) { - return this.toName(); - } - return this.toRgbString(); - } - if (format === "rgb") { - formattedString = this.toRgbString(); - } - if (format === "prgb") { - formattedString = this.toPercentageRgbString(); - } - if (format === "hex" || format === "hex6") { - formattedString = this.toHexString(); - } - if (format === "hex3") { - formattedString = this.toHexString(true); - } - if (format === "hex8") { - formattedString = this.toHex8String(); - } - if (format === "name") { - formattedString = this.toName(); - } - if (format === "hsl") { - formattedString = this.toHslString(); - } - if (format === "hsv") { - formattedString = this.toHsvString(); - } - - return formattedString || this.toHexString(); - }, - - _applyModification: function(fn, args) { - var color = fn.apply(null, [this].concat([].slice.call(args))); - this._r = color._r; - this._g = color._g; - this._b = color._b; - this.setAlpha(color._a); - return this; - }, - lighten: function() { - return this._applyModification(lighten, arguments); - }, - brighten: function() { - return this._applyModification(brighten, arguments); - }, - darken: function() { - return this._applyModification(darken, arguments); - }, - desaturate: function() { - return this._applyModification(desaturate, arguments); - }, - saturate: function() { - return this._applyModification(saturate, arguments); - }, - greyscale: function() { - return this._applyModification(greyscale, arguments); - }, - spin: function() { - return this._applyModification(spin, arguments); - }, - - _applyCombination: function(fn, args) { - return fn.apply(null, [this].concat([].slice.call(args))); - }, - analogous: function() { - return this._applyCombination(analogous, arguments); - }, - complement: function() { - return this._applyCombination(complement, arguments); - }, - monochromatic: function() { - return this._applyCombination(monochromatic, arguments); - }, - splitcomplement: function() { - return this._applyCombination(splitcomplement, arguments); - }, - triad: function() { - return this._applyCombination(triad, arguments); - }, - tetrad: function() { - return this._applyCombination(tetrad, arguments); - } - }; - - // If input is an object, force 1 into "1.0" to handle ratios properly - // String input requires "1.0" as input, so 1 will be treated as 1 - tinycolor.fromRatio = function(color, opts) { - if (typeof color == "object") { - var newColor = {}; - for (var i in color) { - if (color.hasOwnProperty(i)) { - if (i === "a") { - newColor[i] = color[i]; - } - else { - newColor[i] = convertToPercentage(color[i]); - } - } - } - color = newColor; - } - - return tinycolor(color, opts); - }; - - // Given a string or object, convert that input to RGB - // Possible string inputs: - // - // "red" - // "#f00" or "f00" - // "#ff0000" or "ff0000" - // "#ff000000" or "ff000000" - // "rgb 255 0 0" or "rgb (255, 0, 0)" - // "rgb 1.0 0 0" or "rgb (1, 0, 0)" - // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" - // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" - // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" - // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" - // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" - // - function inputToRGB(color) { - - var rgb = { r: 0, g: 0, b: 0 }; - var a = 1; - var ok = false; - var format = false; - - if (typeof color == "string") { - color = stringInputToObject(color); - } - - if (typeof color == "object") { - if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) { - rgb = rgbToRgb(color.r, color.g, color.b); - ok = true; - format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; - } - else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) { - color.s = convertToPercentage(color.s); - color.v = convertToPercentage(color.v); - rgb = hsvToRgb(color.h, color.s, color.v); - ok = true; - format = "hsv"; - } - else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) { - color.s = convertToPercentage(color.s); - color.l = convertToPercentage(color.l); - rgb = hslToRgb(color.h, color.s, color.l); - ok = true; - format = "hsl"; - } - - if (color.hasOwnProperty("a")) { - a = color.a; - } - } - - a = boundAlpha(a); - - return { - ok: ok, - format: color.format || format, - r: mathMin(255, mathMax(rgb.r, 0)), - g: mathMin(255, mathMax(rgb.g, 0)), - b: mathMin(255, mathMax(rgb.b, 0)), - a: a - }; - } - - - // Conversion Functions - // -------------------- - - // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: - // - - // `rgbToRgb` - // Handle bounds / percentage checking to conform to CSS color spec - // - // *Assumes:* r, g, b in [0, 255] or [0, 1] - // *Returns:* { r, g, b } in [0, 255] - function rgbToRgb(r, g, b){ - return { - r: bound01(r, 255) * 255, - g: bound01(g, 255) * 255, - b: bound01(b, 255) * 255 - }; - } - - // `rgbToHsl` - // Converts an RGB color value to HSL. - // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] - // *Returns:* { h, s, l } in [0,1] - function rgbToHsl(r, g, b) { - - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); - - var max = mathMax(r, g, b), min = mathMin(r, g, b); - var h, s, l = (max + min) / 2; - - if(max == min) { - h = s = 0; // achromatic - } - else { - var d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch(max) { - case r: h = (g - b) / d + (g < b ? 6 : 0); break; - case g: h = (b - r) / d + 2; break; - case b: h = (r - g) / d + 4; break; - } - - h /= 6; - } - - return { h: h, s: s, l: l }; - } - - // `hslToRgb` - // Converts an HSL color value to RGB. - // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] - // *Returns:* { r, g, b } in the set [0, 255] - function hslToRgb(h, s, l) { - var r, g, b; - - h = bound01(h, 360); - s = bound01(s, 100); - l = bound01(l, 100); - - function hue2rgb(p, q, t) { - if(t < 0) t += 1; - if(t > 1) t -= 1; - if(t < 1/6) return p + (q - p) * 6 * t; - if(t < 1/2) return q; - if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; - return p; - } - - if(s === 0) { - r = g = b = l; // achromatic - } - else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1/3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1/3); - } - - return { r: r * 255, g: g * 255, b: b * 255 }; - } - - // `rgbToHsv` - // Converts an RGB color value to HSV - // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] - // *Returns:* { h, s, v } in [0,1] - function rgbToHsv(r, g, b) { - - r = bound01(r, 255); - g = bound01(g, 255); - b = bound01(b, 255); - - var max = mathMax(r, g, b), min = mathMin(r, g, b); - var h, s, v = max; - - var d = max - min; - s = max === 0 ? 0 : d / max; - - if(max == min) { - h = 0; // achromatic - } - else { - switch(max) { - case r: h = (g - b) / d + (g < b ? 6 : 0); break; - case g: h = (b - r) / d + 2; break; - case b: h = (r - g) / d + 4; break; - } - h /= 6; - } - return { h: h, s: s, v: v }; - } - - // `hsvToRgb` - // Converts an HSV color value to RGB. - // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] - // *Returns:* { r, g, b } in the set [0, 255] - function hsvToRgb(h, s, v) { - - h = bound01(h, 360) * 6; - s = bound01(s, 100); - v = bound01(v, 100); - - var i = math.floor(h), - f = h - i, - p = v * (1 - s), - q = v * (1 - f * s), - t = v * (1 - (1 - f) * s), - mod = i % 6, - r = [v, q, p, p, t, v][mod], - g = [t, v, v, q, p, p][mod], - b = [p, p, t, v, v, q][mod]; - - return { r: r * 255, g: g * 255, b: b * 255 }; - } - - // `rgbToHex` - // Converts an RGB color to hex - // Assumes r, g, and b are contained in the set [0, 255] - // Returns a 3 or 6 character hex - function rgbToHex(r, g, b, allow3Char) { - - var hex = [ - pad2(mathRound(r).toString(16)), - pad2(mathRound(g).toString(16)), - pad2(mathRound(b).toString(16)) - ]; - - // Return a 3 character hex if possible - if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { - return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); - } - - return hex.join(""); - } - // `rgbaToHex` - // Converts an RGBA color plus alpha transparency to hex - // Assumes r, g, b and a are contained in the set [0, 255] - // Returns an 8 character hex - function rgbaToHex(r, g, b, a) { - - var hex = [ - pad2(convertDecimalToHex(a)), - pad2(mathRound(r).toString(16)), - pad2(mathRound(g).toString(16)), - pad2(mathRound(b).toString(16)) - ]; - - return hex.join(""); - } - - // `equals` - // Can be called with any tinycolor input - tinycolor.equals = function (color1, color2) { - if (!color1 || !color2) { return false; } - return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); - }; - tinycolor.random = function() { - return tinycolor.fromRatio({ - r: mathRandom(), - g: mathRandom(), - b: mathRandom() - }); - }; - - - // Modification Functions - // ---------------------- - // Thanks to less.js for some of the basics here - // - - function desaturate(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.s -= amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); - } - - function saturate(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.s += amount / 100; - hsl.s = clamp01(hsl.s); - return tinycolor(hsl); - } - - function greyscale(color) { - return tinycolor(color).desaturate(100); - } - - function lighten (color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.l += amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); - } - - function brighten(color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var rgb = tinycolor(color).toRgb(); - rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); - rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); - rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); - return tinycolor(rgb); - } - - function darken (color, amount) { - amount = (amount === 0) ? 0 : (amount || 10); - var hsl = tinycolor(color).toHsl(); - hsl.l -= amount / 100; - hsl.l = clamp01(hsl.l); - return tinycolor(hsl); - } - - // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. - // Values outside of this range will be wrapped into this range. - function spin(color, amount) { - var hsl = tinycolor(color).toHsl(); - var hue = (mathRound(hsl.h) + amount) % 360; - hsl.h = hue < 0 ? 360 + hue : hue; - return tinycolor(hsl); - } - - // Combination Functions - // --------------------- - // Thanks to jQuery xColor for some of the ideas behind these - // - - function complement(color) { - var hsl = tinycolor(color).toHsl(); - hsl.h = (hsl.h + 180) % 360; - return tinycolor(hsl); - } - - function triad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) - ]; - } - - function tetrad(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), - tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) - ]; - } - - function splitcomplement(color) { - var hsl = tinycolor(color).toHsl(); - var h = hsl.h; - return [ - tinycolor(color), - tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), - tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) - ]; - } - - function analogous(color, results, slices) { - results = results || 6; - slices = slices || 30; - - var hsl = tinycolor(color).toHsl(); - var part = 360 / slices; - var ret = [tinycolor(color)]; - - for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { - hsl.h = (hsl.h + part) % 360; - ret.push(tinycolor(hsl)); - } - return ret; - } - - function monochromatic(color, results) { - results = results || 6; - var hsv = tinycolor(color).toHsv(); - var h = hsv.h, s = hsv.s, v = hsv.v; - var ret = []; - var modification = 1 / results; - - while (results--) { - ret.push(tinycolor({ h: h, s: s, v: v})); - v = (v + modification) % 1; - } - - return ret; - } - - // Utility Functions - // --------------------- - - tinycolor.mix = function(color1, color2, amount) { - amount = (amount === 0) ? 0 : (amount || 50); - - var rgb1 = tinycolor(color1).toRgb(); - var rgb2 = tinycolor(color2).toRgb(); - - var p = amount / 100; - var w = p * 2 - 1; - var a = rgb2.a - rgb1.a; - - var w1; - - if (w * a == -1) { - w1 = w; - } else { - w1 = (w + a) / (1 + w * a); - } - - w1 = (w1 + 1) / 2; - - var w2 = 1 - w1; - - var rgba = { - r: rgb2.r * w1 + rgb1.r * w2, - g: rgb2.g * w1 + rgb1.g * w2, - b: rgb2.b * w1 + rgb1.b * w2, - a: rgb2.a * p + rgb1.a * (1 - p) - }; - - return tinycolor(rgba); - }; - - - // Readability Functions - // --------------------- - // - - // `readability` - // Analyze the 2 colors and returns an object with the following properties: - // `brightness`: difference in brightness between the two colors - // `color`: difference in color/hue between the two colors - tinycolor.readability = function(color1, color2) { - var c1 = tinycolor(color1); - var c2 = tinycolor(color2); - var rgb1 = c1.toRgb(); - var rgb2 = c2.toRgb(); - var brightnessA = c1.getBrightness(); - var brightnessB = c2.getBrightness(); - var colorDiff = ( - Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) + - Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) + - Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b) - ); - - return { - brightness: Math.abs(brightnessA - brightnessB), - color: colorDiff - }; - }; - - // `readable` - // http://www.w3.org/TR/AERT#color-contrast - // Ensure that foreground and background color combinations provide sufficient contrast. - // *Example* - // tinycolor.isReadable("#000", "#111") => false - tinycolor.isReadable = function(color1, color2) { - var readability = tinycolor.readability(color1, color2); - return readability.brightness > 125 && readability.color > 500; - }; - - // `mostReadable` - // Given a base color and a list of possible foreground or background - // colors for that base, returns the most readable color. - // *Example* - // tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000" - tinycolor.mostReadable = function(baseColor, colorList) { - var bestColor = null; - var bestScore = 0; - var bestIsReadable = false; - for (var i=0; i < colorList.length; i++) { - - // We normalize both around the "acceptable" breaking point, - // but rank brightness constrast higher than hue. - - var readability = tinycolor.readability(baseColor, colorList[i]); - var readable = readability.brightness > 125 && readability.color > 500; - var score = 3 * (readability.brightness / 125) + (readability.color / 500); - - if ((readable && ! bestIsReadable) || - (readable && bestIsReadable && score > bestScore) || - ((! readable) && (! bestIsReadable) && score > bestScore)) { - bestIsReadable = readable; - bestScore = score; - bestColor = tinycolor(colorList[i]); - } - } - return bestColor; - }; - - - // Big List of Colors - // ------------------ - // - var names = tinycolor.names = { - aliceblue: "f0f8ff", - antiquewhite: "faebd7", - aqua: "0ff", - aquamarine: "7fffd4", - azure: "f0ffff", - beige: "f5f5dc", - bisque: "ffe4c4", - black: "000", - blanchedalmond: "ffebcd", - blue: "00f", - blueviolet: "8a2be2", - brown: "a52a2a", - burlywood: "deb887", - burntsienna: "ea7e5d", - cadetblue: "5f9ea0", - chartreuse: "7fff00", - chocolate: "d2691e", - coral: "ff7f50", - cornflowerblue: "6495ed", - cornsilk: "fff8dc", - crimson: "dc143c", - cyan: "0ff", - darkblue: "00008b", - darkcyan: "008b8b", - darkgoldenrod: "b8860b", - darkgray: "a9a9a9", - darkgreen: "006400", - darkgrey: "a9a9a9", - darkkhaki: "bdb76b", - darkmagenta: "8b008b", - darkolivegreen: "556b2f", - darkorange: "ff8c00", - darkorchid: "9932cc", - darkred: "8b0000", - darksalmon: "e9967a", - darkseagreen: "8fbc8f", - darkslateblue: "483d8b", - darkslategray: "2f4f4f", - darkslategrey: "2f4f4f", - darkturquoise: "00ced1", - darkviolet: "9400d3", - deeppink: "ff1493", - deepskyblue: "00bfff", - dimgray: "696969", - dimgrey: "696969", - dodgerblue: "1e90ff", - firebrick: "b22222", - floralwhite: "fffaf0", - forestgreen: "228b22", - fuchsia: "f0f", - gainsboro: "dcdcdc", - ghostwhite: "f8f8ff", - gold: "ffd700", - goldenrod: "daa520", - gray: "808080", - green: "008000", - greenyellow: "adff2f", - grey: "808080", - honeydew: "f0fff0", - hotpink: "ff69b4", - indianred: "cd5c5c", - indigo: "4b0082", - ivory: "fffff0", - khaki: "f0e68c", - lavender: "e6e6fa", - lavenderblush: "fff0f5", - lawngreen: "7cfc00", - lemonchiffon: "fffacd", - lightblue: "add8e6", - lightcoral: "f08080", - lightcyan: "e0ffff", - lightgoldenrodyellow: "fafad2", - lightgray: "d3d3d3", - lightgreen: "90ee90", - lightgrey: "d3d3d3", - lightpink: "ffb6c1", - lightsalmon: "ffa07a", - lightseagreen: "20b2aa", - lightskyblue: "87cefa", - lightslategray: "789", - lightslategrey: "789", - lightsteelblue: "b0c4de", - lightyellow: "ffffe0", - lime: "0f0", - limegreen: "32cd32", - linen: "faf0e6", - magenta: "f0f", - maroon: "800000", - mediumaquamarine: "66cdaa", - mediumblue: "0000cd", - mediumorchid: "ba55d3", - mediumpurple: "9370db", - mediumseagreen: "3cb371", - mediumslateblue: "7b68ee", - mediumspringgreen: "00fa9a", - mediumturquoise: "48d1cc", - mediumvioletred: "c71585", - midnightblue: "191970", - mintcream: "f5fffa", - mistyrose: "ffe4e1", - moccasin: "ffe4b5", - navajowhite: "ffdead", - navy: "000080", - oldlace: "fdf5e6", - olive: "808000", - olivedrab: "6b8e23", - orange: "ffa500", - orangered: "ff4500", - orchid: "da70d6", - palegoldenrod: "eee8aa", - palegreen: "98fb98", - paleturquoise: "afeeee", - palevioletred: "db7093", - papayawhip: "ffefd5", - peachpuff: "ffdab9", - peru: "cd853f", - pink: "ffc0cb", - plum: "dda0dd", - powderblue: "b0e0e6", - purple: "800080", - rebeccapurple: "663399", - red: "f00", - rosybrown: "bc8f8f", - royalblue: "4169e1", - saddlebrown: "8b4513", - salmon: "fa8072", - sandybrown: "f4a460", - seagreen: "2e8b57", - seashell: "fff5ee", - sienna: "a0522d", - silver: "c0c0c0", - skyblue: "87ceeb", - slateblue: "6a5acd", - slategray: "708090", - slategrey: "708090", - snow: "fffafa", - springgreen: "00ff7f", - steelblue: "4682b4", - tan: "d2b48c", - teal: "008080", - thistle: "d8bfd8", - tomato: "ff6347", - turquoise: "40e0d0", - violet: "ee82ee", - wheat: "f5deb3", - white: "fff", - whitesmoke: "f5f5f5", - yellow: "ff0", - yellowgreen: "9acd32" - }; - - // Make it easy to access colors via `hexNames[hex]` - var hexNames = tinycolor.hexNames = flip(names); - - - // Utilities - // --------- - - // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` - function flip(o) { - var flipped = { }; - for (var i in o) { - if (o.hasOwnProperty(i)) { - flipped[o[i]] = i; - } - } - return flipped; - } - - // Return a valid alpha value [0,1] with all invalid values being set to 1 - function boundAlpha(a) { - a = parseFloat(a); - - if (isNaN(a) || a < 0 || a > 1) { - a = 1; - } - - return a; - } - - // Take input from [0, n] and return it as [0, 1] - function bound01(n, max) { - if (isOnePointZero(n)) { n = "100%"; } - - var processPercent = isPercentage(n); - n = mathMin(max, mathMax(0, parseFloat(n))); - - // Automatically convert percentage into number - if (processPercent) { - n = parseInt(n * max, 10) / 100; - } - - // Handle floating point rounding errors - if ((math.abs(n - max) < 0.000001)) { - return 1; - } - - // Convert into [0, 1] range if it isn't already - return (n % max) / parseFloat(max); - } - - // Force a number between 0 and 1 - function clamp01(val) { - return mathMin(1, mathMax(0, val)); - } - - // Parse a base-16 hex value into a base-10 integer - function parseIntFromHex(val) { - return parseInt(val, 16); - } - - // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 - // - function isOnePointZero(n) { - return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; - } - - // Check to see if string passed in is a percentage - function isPercentage(n) { - return typeof n === "string" && n.indexOf('%') != -1; - } - - // Force a hex value to have 2 characters - function pad2(c) { - return c.length == 1 ? '0' + c : '' + c; - } - - // Replace a decimal with it's percentage value - function convertToPercentage(n) { - if (n <= 1) { - n = (n * 100) + "%"; - } - - return n; - } - - // Converts a decimal to a hex value - function convertDecimalToHex(d) { - return Math.round(parseFloat(d) * 255).toString(16); - } - // Converts a hex value to a decimal - function convertHexToDecimal(h) { - return (parseIntFromHex(h) / 255); - } - - var matchers = (function() { - - // - var CSS_INTEGER = "[-\\+]?\\d+%?"; - - // - var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; - - // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. - var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; - - // Actual matching. - // Parentheses and commas are optional, but not required. - // Whitespace can take the place of commas or opening paren - var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; - - return { - rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), - rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), - hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), - hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), - hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), - hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), - hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, - hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, - hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ - }; - })(); - - // `stringInputToObject` - // Permissive string parsing. Take in a number of formats, and output an object - // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` - function stringInputToObject(color) { - - color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase(); - var named = false; - if (names[color]) { - color = names[color]; - named = true; - } - else if (color == 'transparent') { - return { r: 0, g: 0, b: 0, a: 0, format: "name" }; - } - - // Try to match string input using regular expressions. - // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] - // Just return an object and let the conversion functions handle that. - // This way the result will be the same whether the tinycolor is initialized with string or object. - var match; - if ((match = matchers.rgb.exec(color))) { - return { r: match[1], g: match[2], b: match[3] }; - } - if ((match = matchers.rgba.exec(color))) { - return { r: match[1], g: match[2], b: match[3], a: match[4] }; - } - if ((match = matchers.hsl.exec(color))) { - return { h: match[1], s: match[2], l: match[3] }; - } - if ((match = matchers.hsla.exec(color))) { - return { h: match[1], s: match[2], l: match[3], a: match[4] }; - } - if ((match = matchers.hsv.exec(color))) { - return { h: match[1], s: match[2], v: match[3] }; - } - if ((match = matchers.hsva.exec(color))) { - return { h: match[1], s: match[2], v: match[3], a: match[4] }; - } - if ((match = matchers.hex8.exec(color))) { - return { - a: convertHexToDecimal(match[1]), - r: parseIntFromHex(match[2]), - g: parseIntFromHex(match[3]), - b: parseIntFromHex(match[4]), - format: named ? "name" : "hex8" - }; - } - if ((match = matchers.hex6.exec(color))) { - return { - r: parseIntFromHex(match[1]), - g: parseIntFromHex(match[2]), - b: parseIntFromHex(match[3]), - format: named ? "name" : "hex" - }; - } - if ((match = matchers.hex3.exec(color))) { - return { - r: parseIntFromHex(match[1] + '' + match[1]), - g: parseIntFromHex(match[2] + '' + match[2]), - b: parseIntFromHex(match[3] + '' + match[3]), - format: named ? "name" : "hex" - }; - } - - return false; - } - - window.tinycolor = tinycolor; - })(); - - $(function () { - if ($.fn.spectrum.load) { - $.fn.spectrum.processNativeColorInputs(); - } - }); - -}); diff --git a/app/static/app/js/vendor/potree/libs/themes/mixed/32px.png b/app/static/app/js/vendor/potree/libs/themes/mixed/32px.png deleted file mode 100644 index d6fd72114f8205ace7579894ec50cc37739b1471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1562 zcmZ8heKga182_1NL)y?Sx!97DWU52*G8;`HFB3{gC^fx#KelDfGF0oNTV6Y2ZdXn( zW?q&;2$$7yGo_jk?dL78m$BH`?oapJf9~_g^E}_rdCuo~&i8zt=LXs5u#T3Y761S` z9`2;00H8*M@^GX&H~F9M=;#m#1Z8Dq5Z>6> z$mjF#-n~0GIQa47M*@KWf$i<>91aJI#ZoAgjEs!d)>f5DH9kIGP*5;GKd(?ICMG77 zO6APVj7%n*nwnZ#T3T3GSX^A}>+6GfKoAs(L}IbHv$Inu6lP^*QK{7Q%Q;&hYLmpH zKK_8EZ-l{ijlJvfy6TRlf7~;9DPVu?BhfnV*dK~6$QQ=l0)TZW50Xm&^~-c2Cs^XJ zG2LRnx7N-)T||;kWH254-Gre^cGMJXz zIbn5~l}bdTk#HD`I8|A;99ehHfebTtaNb7o zGG3K;76(qcr3!~V^z!nRWo5aU&-H`AEDPT1G+30PS2S8u73QQ}EU)%_Ff^AV5?k+1 zM3Q=9yvY~Cu9z1rB_q)cA94?xD+WqIPvh>Y8jTwk4}SYJ7x;XDhSF61*rcj;P;F3? zbajJrz<1dK)~3=%Pol3!i&})y(x5z|zRCoajmUH&{JC+)Al#Bw6USa2^+xu{>`<{g zZZj?y70(;=YP0^@W~My$HkHU=N`a0Rxu=|Co@%A%{y4<3F|mV|yI(&@SvJpn`gpT) z_K5>-7wk&=XZjzOO-tYaC5tql=~NO7^5aWhm>& z!4?-=;8r!;7Ub&*w-E2Xfb`NE9F6<}appJs<#6A7k^%`KZWa^Yl*@~Qp%q;UGKbjq zZ1mjlEW1>2d3+(XqXhf6Z60<{k178{uvivcKZB&TzDojSp_`?u7tA*T!p(<3C~8F@ zA6v1*i_$dccr+Y-jYz~Ik#NQwj$Su)a{Zc2*4}E6S}NYsnL{GYny;7xiLmk?2-%|y zJ6v5uS+{2phdBUVf{;Vu{;E@XO6L&ebA|d9Fy@o!cv|$8YgYBw8)}!Dz9T3-7_mO9 z#hGHn-I^xp`ZOjZ|t$Dy3Z|I!w0K2DLvO(#^PglepW~D z%&$Y&;~KOuKfeGA?F|g(g2keH+{T#iQ!1HV{WqGwpV{ljSYKjSAe?+r(Eu_i}J)&5spU+}>Ib+a~+cBQ~@br7nUmR?V}= z%^6Mofa6H*FYNwfUj?QK9`DXKjZ08) zosVpzCY<*Tv8StD?y@1m2E6M)zqV>a<)h&U<8y`5lMOwdXhihh^bg^waQeGlk+;$( z>kXAxpC$Xn_nYZvYWn~ zCkqiYlbw2Jl2$xi$2{Vju$1jrDY^!gky_Q1d`sO*G1W}xe!WufFfQOq8 JiRT)A?H?ng_znO7 diff --git a/app/static/app/js/vendor/potree/libs/themes/mixed/40px.png b/app/static/app/js/vendor/potree/libs/themes/mixed/40px.png deleted file mode 100644 index 4fc88e41e66508e4657b3ec6e5ec185a6084b7a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5717 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 .jstree-ocl { - cursor: default; -} -.jstree .jstree-open > .jstree-children { - display: block; -} -.jstree .jstree-closed > .jstree-children, -.jstree .jstree-leaf > .jstree-children { - display: none; -} -.jstree-anchor > .jstree-themeicon { - margin-right: 2px; -} -.jstree-no-icons .jstree-themeicon, -.jstree-anchor > .jstree-themeicon-hidden { - display: none; -} -.jstree-hidden, -.jstree-node.jstree-hidden { - display: none; -} -.jstree-rtl .jstree-anchor { - padding: 0 1px 0 4px; -} -.jstree-rtl .jstree-anchor > .jstree-themeicon { - margin-left: 2px; - margin-right: 0; -} -.jstree-rtl .jstree-node { - margin-left: 0; -} -.jstree-rtl .jstree-container-ul > .jstree-node { - margin-right: 0; -} -.jstree-wholerow-ul { - position: relative; - display: inline-block; - min-width: 100%; -} -.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { - cursor: pointer; -} -.jstree-wholerow-ul .jstree-anchor, -.jstree-wholerow-ul .jstree-icon { - position: relative; -} -.jstree-wholerow-ul .jstree-wholerow { - width: 100%; - cursor: pointer; - position: absolute; - left: 0; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.jstree-contextmenu .jstree-anchor { - -webkit-user-select: none; - /* disable selection/Copy of UIWebView */ - -webkit-touch-callout: none; - /* disable the IOS popup when long-press on a link */ -} -.vakata-context { - display: none; -} -.vakata-context, -.vakata-context ul { - margin: 0; - padding: 2px; - position: absolute; - background: #f5f5f5; - border: 1px solid #979797; - box-shadow: 2px 2px 2px #999999; -} -.vakata-context ul { - list-style: none; - left: 100%; - margin-top: -2.7em; - margin-left: -4px; -} -.vakata-context .vakata-context-right ul { - left: auto; - right: 100%; - margin-left: auto; - margin-right: -4px; -} -.vakata-context li { - list-style: none; -} -.vakata-context li > a { - display: block; - padding: 0 2em 0 2em; - text-decoration: none; - width: auto; - color: black; - white-space: nowrap; - line-height: 2.4em; - text-shadow: 1px 1px 0 white; - border-radius: 1px; -} -.vakata-context li > a:hover { - position: relative; - background-color: #e8eff7; - box-shadow: 0 0 2px #0a6aa1; -} -.vakata-context li > a.vakata-context-parent { - background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); - background-position: right center; - background-repeat: no-repeat; -} -.vakata-context li > a:focus { - outline: 0; -} -.vakata-context .vakata-context-hover > a { - position: relative; - background-color: #e8eff7; - box-shadow: 0 0 2px #0a6aa1; -} -.vakata-context .vakata-context-separator > a, -.vakata-context .vakata-context-separator > a:hover { - background: white; - border: 0; - border-top: 1px solid #e2e3e3; - height: 1px; - min-height: 1px; - max-height: 1px; - padding: 0; - margin: 0 0 0 2.4em; - border-left: 1px solid #e0e0e0; - text-shadow: 0 0 0 transparent; - box-shadow: 0 0 0 transparent; - border-radius: 0; -} -.vakata-context .vakata-contextmenu-disabled a, -.vakata-context .vakata-contextmenu-disabled a:hover { - color: silver; - background-color: transparent; - border: 0; - box-shadow: 0 0 0; -} -.vakata-context li > a > i { - text-decoration: none; - display: inline-block; - width: 2.4em; - height: 2.4em; - background: transparent; - margin: 0 0 0 -2em; - vertical-align: top; - text-align: center; - line-height: 2.4em; -} -.vakata-context li > a > i:empty { - width: 2.4em; - line-height: 2.4em; -} -.vakata-context li > a .vakata-contextmenu-sep { - display: inline-block; - width: 1px; - height: 2.4em; - background: white; - margin: 0 0.5em 0 0; - border-left: 1px solid #e2e3e3; -} -.vakata-context .vakata-contextmenu-shortcut { - font-size: 0.8em; - color: silver; - opacity: 0.5; - display: none; -} -.vakata-context-rtl ul { - left: auto; - right: 100%; - margin-left: auto; - margin-right: -4px; -} -.vakata-context-rtl li > a.vakata-context-parent { - background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); - background-position: left center; - background-repeat: no-repeat; -} -.vakata-context-rtl .vakata-context-separator > a { - margin: 0 2.4em 0 0; - border-left: 0; - border-right: 1px solid #e2e3e3; -} -.vakata-context-rtl .vakata-context-left ul { - right: auto; - left: 100%; - margin-left: -4px; - margin-right: auto; -} -.vakata-context-rtl li > a > i { - margin: 0 -2em 0 0; -} -.vakata-context-rtl li > a .vakata-contextmenu-sep { - margin: 0 0 0 0.5em; - border-left-color: white; - background: #e2e3e3; -} -#jstree-marker { - position: absolute; - top: 0; - left: 0; - margin: -5px 0 0 0; - padding: 0; - border-right: 0; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid; - width: 0; - height: 0; - font-size: 0; - line-height: 0; -} -#jstree-dnd { - line-height: 16px; - margin: 0; - padding: 4px; -} -#jstree-dnd .jstree-icon, -#jstree-dnd .jstree-copy { - display: inline-block; - text-decoration: none; - margin: 0 2px 0 0; - padding: 0; - width: 16px; - height: 16px; -} -#jstree-dnd .jstree-ok { - background: green; -} -#jstree-dnd .jstree-er { - background: red; -} -#jstree-dnd .jstree-copy { - margin: 0 2px 0 2px; -} -.jstree-default .jstree-node, -.jstree-default .jstree-icon { - background-repeat: no-repeat; - background-color: transparent; -} -.jstree-default .jstree-anchor, -.jstree-default .jstree-animated, -.jstree-default .jstree-wholerow { - transition: background-color 0.15s, box-shadow 0.15s; -} -.jstree-default .jstree-hovered { - background: #e7f4f9; - border-radius: 2px; - box-shadow: inset 0 0 1px #cccccc; -} -.jstree-default .jstree-context { - background: #e7f4f9; - border-radius: 2px; - box-shadow: inset 0 0 1px #cccccc; -} -.jstree-default .jstree-clicked { - background: #beebff; - border-radius: 2px; - box-shadow: inset 0 0 1px #999999; -} -.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { - display: none; -} -.jstree-default .jstree-disabled { - background: transparent; - color: #666666; -} -.jstree-default .jstree-disabled.jstree-hovered { - background: transparent; - box-shadow: none; -} -.jstree-default .jstree-disabled.jstree-clicked { - background: #efefef; -} -.jstree-default .jstree-disabled > .jstree-icon { - opacity: 0.8; - filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); - /* Firefox 10+ */ - filter: gray; - /* IE6-9 */ - -webkit-filter: grayscale(100%); - /* Chrome 19+ & Safari 6+ */ -} -.jstree-default .jstree-search { - font-style: italic; - color: #8b0000; - font-weight: bold; -} -.jstree-default .jstree-no-checkboxes .jstree-checkbox { - display: none !important; -} -.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { - background: transparent; - box-shadow: none; -} -.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { - background: #e7f4f9; -} -.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { - background: transparent; -} -.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { - background: #e7f4f9; -} -.jstree-default > .jstree-striped { - min-width: 100%; - display: inline-block; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; -} -.jstree-default > .jstree-wholerow-ul .jstree-hovered, -.jstree-default > .jstree-wholerow-ul .jstree-clicked { - background: transparent; - box-shadow: none; - border-radius: 0; -} -.jstree-default .jstree-wholerow { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -.jstree-default .jstree-wholerow-hovered { - background: #e7f4f9; -} -.jstree-default .jstree-wholerow-clicked { - background: #beebff; - background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); - background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); -} -.jstree-default .jstree-node { - min-height: 24px; - line-height: 24px; - margin-left: 24px; - min-width: 24px; -} -.jstree-default .jstree-anchor { - line-height: 24px; - height: 24px; -} -.jstree-default .jstree-icon { - width: 24px; - height: 24px; - line-height: 24px; -} -.jstree-default .jstree-icon:empty { - width: 24px; - height: 24px; - line-height: 24px; -} -.jstree-default.jstree-rtl .jstree-node { - margin-right: 24px; -} -.jstree-default .jstree-wholerow { - height: 24px; -} -.jstree-default .jstree-node, -.jstree-default .jstree-icon { - background-image: url("32px.png"); -} -.jstree-default .jstree-node { - background-position: -292px -4px; - background-repeat: repeat-y; -} -.jstree-default .jstree-last { - background: transparent; -} -.jstree-default .jstree-open > .jstree-ocl { - background-position: -132px -4px; -} -.jstree-default .jstree-closed > .jstree-ocl { - background-position: -100px -4px; -} -.jstree-default .jstree-leaf > .jstree-ocl { - background-position: -68px -4px; -} -.jstree-default .jstree-themeicon { - background-position: -260px -4px; -} -.jstree-default > .jstree-no-dots .jstree-node, -.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -36px -4px; -} -.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: -4px -4px; -} -.jstree-default .jstree-disabled { - background: transparent; -} -.jstree-default .jstree-disabled.jstree-hovered { - background: transparent; -} -.jstree-default .jstree-disabled.jstree-clicked { - background: #efefef; -} -.jstree-default .jstree-checkbox { - background-position: -164px -4px; -} -.jstree-default .jstree-checkbox:hover { - background-position: -164px -36px; -} -.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, -.jstree-default .jstree-checked > .jstree-checkbox { - background-position: -228px -4px; -} -.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, -.jstree-default .jstree-checked > .jstree-checkbox:hover { - background-position: -228px -36px; -} -.jstree-default .jstree-anchor > .jstree-undetermined { - background-position: -196px -4px; -} -.jstree-default .jstree-anchor > .jstree-undetermined:hover { - background-position: -196px -36px; -} -.jstree-default .jstree-checkbox-disabled { - opacity: 0.8; - filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); - /* Firefox 10+ */ - filter: gray; - /* IE6-9 */ - -webkit-filter: grayscale(100%); - /* Chrome 19+ & Safari 6+ */ -} -.jstree-default > .jstree-striped { - background-size: auto 48px; -} -.jstree-default.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); - background-position: 100% 1px; - background-repeat: repeat-y; -} -.jstree-default.jstree-rtl .jstree-last { - background: transparent; -} -.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { - background-position: -132px -36px; -} -.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { - background-position: -100px -36px; -} -.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { - background-position: -68px -36px; -} -.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, -.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -36px -36px; -} -.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: -4px -36px; -} -.jstree-default .jstree-themeicon-custom { - background-color: transparent; - background-image: none; - background-position: 0 0; -} -.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl {} -.jstree-default .jstree-file { - background: url("32px.png") -100px -68px no-repeat; -} -.jstree-default .jstree-folder { - background: url("32px.png") -260px -4px no-repeat; -} -.jstree-default > .jstree-container-ul > .jstree-node { - margin-left: 0; - margin-right: 0; -} -#jstree-dnd.jstree-default { - line-height: 24px; - padding: 0 4px; -} -#jstree-dnd.jstree-default .jstree-ok, -#jstree-dnd.jstree-default .jstree-er { - background-image: url("32px.png"); - background-repeat: no-repeat; - background-color: transparent; -} -#jstree-dnd.jstree-default i { - background: transparent; - width: 24px; - height: 24px; - line-height: 24px; -} -#jstree-dnd.jstree-default .jstree-ok { - background-position: -4px -68px; -} -#jstree-dnd.jstree-default .jstree-er { - background-position: -36px -68px; -} -.jstree-default .jstree-ellipsis { - overflow: hidden; -} -.jstree-default .jstree-ellipsis .jstree-anchor { - width: calc(100% - 29px); - text-overflow: ellipsis; - overflow: hidden; -} -.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor { - width: calc(100% - 5px); -} -.jstree-default.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); -} -.jstree-default.jstree-rtl .jstree-last { - background: transparent; -} -.jstree-default-small .jstree-node { - min-height: 18px; - line-height: 18px; - margin-left: 18px; - min-width: 18px; -} -.jstree-default-small .jstree-anchor { - line-height: 18px; - height: 18px; -} -.jstree-default-small .jstree-icon { - width: 18px; - height: 18px; - line-height: 18px; -} -.jstree-default-small .jstree-icon:empty { - width: 18px; - height: 18px; - line-height: 18px; -} -.jstree-default-small.jstree-rtl .jstree-node { - margin-right: 18px; -} -.jstree-default-small .jstree-wholerow { - height: 18px; -} -.jstree-default-small .jstree-node, -.jstree-default-small .jstree-icon { - background-image: url("32px.png"); -} -.jstree-default-small .jstree-node { - background-position: -295px -7px; - background-repeat: repeat-y; -} -.jstree-default-small .jstree-last { - background: transparent; -} -.jstree-default-small .jstree-open > .jstree-ocl { - background-position: -135px -7px; -} -.jstree-default-small .jstree-closed > .jstree-ocl { - background-position: -103px -7px; -} -.jstree-default-small .jstree-leaf > .jstree-ocl { - background-position: -71px -7px; -} -.jstree-default-small .jstree-themeicon { - background-position: -263px -7px; -} -.jstree-default-small > .jstree-no-dots .jstree-node, -.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -39px -7px; -} -.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: -7px -7px; -} -.jstree-default-small .jstree-disabled { - background: transparent; -} -.jstree-default-small .jstree-disabled.jstree-hovered { - background: transparent; -} -.jstree-default-small .jstree-disabled.jstree-clicked { - background: #efefef; -} -.jstree-default-small .jstree-checkbox { - background-position: -167px -7px; -} -.jstree-default-small .jstree-checkbox:hover { - background-position: -167px -39px; -} -.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, -.jstree-default-small .jstree-checked > .jstree-checkbox { - background-position: -231px -7px; -} -.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, -.jstree-default-small .jstree-checked > .jstree-checkbox:hover { - background-position: -231px -39px; -} -.jstree-default-small .jstree-anchor > .jstree-undetermined { - background-position: -199px -7px; -} -.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { - background-position: -199px -39px; -} -.jstree-default-small .jstree-checkbox-disabled { - opacity: 0.8; - filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); - /* Firefox 10+ */ - filter: gray; - /* IE6-9 */ - -webkit-filter: grayscale(100%); - /* Chrome 19+ & Safari 6+ */ -} -.jstree-default-small > .jstree-striped { - background-size: auto 36px; -} -.jstree-default-small.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); - background-position: 100% 1px; - background-repeat: repeat-y; -} -.jstree-default-small.jstree-rtl .jstree-last { - background: transparent; -} -.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { - background-position: -135px -39px; -} -.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { - background-position: -103px -39px; -} -.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { - background-position: -71px -39px; -} -.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, -.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -39px -39px; -} -.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: -7px -39px; -} -.jstree-default-small .jstree-themeicon-custom { - background-color: transparent; - background-image: none; - background-position: 0 0; -} -.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { -} -.jstree-default-small .jstree-file { - background: url("32px.png") -103px -71px no-repeat; -} -.jstree-default-small .jstree-folder { - background: url("32px.png") -263px -7px no-repeat; -} -.jstree-default-small > .jstree-container-ul > .jstree-node { - margin-left: 0; - margin-right: 0; -} -#jstree-dnd.jstree-default-small { - line-height: 18px; - padding: 0 4px; -} -#jstree-dnd.jstree-default-small .jstree-ok, -#jstree-dnd.jstree-default-small .jstree-er { - background-image: url("32px.png"); - background-repeat: no-repeat; - background-color: transparent; -} -#jstree-dnd.jstree-default-small i { - background: transparent; - width: 18px; - height: 18px; - line-height: 18px; -} -#jstree-dnd.jstree-default-small .jstree-ok { - background-position: -7px -71px; -} -#jstree-dnd.jstree-default-small .jstree-er { - background-position: -39px -71px; -} -.jstree-default-small .jstree-ellipsis { - overflow: hidden; -} -.jstree-default-small .jstree-ellipsis .jstree-anchor { - width: calc(100% - 23px); - text-overflow: ellipsis; - overflow: hidden; -} -.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { - width: calc(100% - 5px); -} -.jstree-default-small.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); -} -.jstree-default-small.jstree-rtl .jstree-last { - background: transparent; -} -.jstree-default-large .jstree-node { - min-height: 32px; - line-height: 32px; - margin-left: 32px; - min-width: 32px; -} -.jstree-default-large .jstree-anchor { - line-height: 32px; - height: 32px; -} -.jstree-default-large .jstree-icon { - width: 32px; - height: 32px; - line-height: 32px; -} -.jstree-default-large .jstree-icon:empty { - width: 32px; - height: 32px; - line-height: 32px; -} -.jstree-default-large.jstree-rtl .jstree-node { - margin-right: 32px; -} -.jstree-default-large .jstree-wholerow { - height: 32px; -} -.jstree-default-large .jstree-node, -.jstree-default-large .jstree-icon { - background-image: url("32px.png"); -} -.jstree-default-large .jstree-node { - background-position: -288px 0px; - background-repeat: repeat-y; -} -.jstree-default-large .jstree-last { - background: transparent; -} -.jstree-default-large .jstree-open > .jstree-ocl { - background-position: -128px 0px; -} -.jstree-default-large .jstree-closed > .jstree-ocl { - background-position: -96px 0px; -} -.jstree-default-large .jstree-leaf > .jstree-ocl { - background-position: -64px 0px; -} -.jstree-default-large .jstree-themeicon { - background-position: -256px 0px; -} -.jstree-default-large > .jstree-no-dots .jstree-node, -.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -32px 0px; -} -.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: 0px 0px; -} -.jstree-default-large .jstree-disabled { - background: transparent; -} -.jstree-default-large .jstree-disabled.jstree-hovered { - background: transparent; -} -.jstree-default-large .jstree-disabled.jstree-clicked { - background: #efefef; -} -.jstree-default-large .jstree-checkbox { - background-position: -160px 0px; -} -.jstree-default-large .jstree-checkbox:hover { - background-position: -160px -32px; -} -.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, -.jstree-default-large .jstree-checked > .jstree-checkbox { - background-position: -224px 0px; -} -.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, -.jstree-default-large .jstree-checked > .jstree-checkbox:hover { - background-position: -224px -32px; -} -.jstree-default-large .jstree-anchor > .jstree-undetermined { - background-position: -192px 0px; -} -.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { - background-position: -192px -32px; -} -.jstree-default-large .jstree-checkbox-disabled { - opacity: 0.8; - filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); - /* Firefox 10+ */ - filter: gray; - /* IE6-9 */ - -webkit-filter: grayscale(100%); - /* Chrome 19+ & Safari 6+ */ -} -.jstree-default-large > .jstree-striped { - background-size: auto 64px; -} -.jstree-default-large.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); - background-position: 100% 1px; - background-repeat: repeat-y; -} -.jstree-default-large.jstree-rtl .jstree-last { - background: transparent; -} -.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { - background-position: -128px -32px; -} -.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { - background-position: -96px -32px; -} -.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { - background-position: -64px -32px; -} -.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, -.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { - background: transparent; -} -.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { - background-position: -32px -32px; -} -.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { - background-position: 0px -32px; -} -.jstree-default-large .jstree-themeicon-custom { - background-color: transparent; - background-image: none; - background-position: 0 0; -} -.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { -} -.jstree-default-large .jstree-file { - background: url("32px.png") -96px -64px no-repeat; -} -.jstree-default-large .jstree-folder { - background: url("32px.png") -256px 0px no-repeat; -} -.jstree-default-large > .jstree-container-ul > .jstree-node { - margin-left: 0; - margin-right: 0; -} -#jstree-dnd.jstree-default-large { - line-height: 32px; - padding: 0 4px; -} -#jstree-dnd.jstree-default-large .jstree-ok, -#jstree-dnd.jstree-default-large .jstree-er { - background-image: url("32px.png"); - background-repeat: no-repeat; - background-color: transparent; -} -#jstree-dnd.jstree-default-large i { - background: transparent; - width: 32px; - height: 32px; - line-height: 32px; -} -#jstree-dnd.jstree-default-large .jstree-ok { - background-position: 0px -64px; -} -#jstree-dnd.jstree-default-large .jstree-er { - background-position: -32px -64px; -} -.jstree-default-large .jstree-ellipsis { - overflow: hidden; -} -.jstree-default-large .jstree-ellipsis .jstree-anchor { - width: calc(100% - 37px); - text-overflow: ellipsis; - overflow: hidden; -} -.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { - width: calc(100% - 5px); -} -.jstree-default-large.jstree-rtl .jstree-node { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); -} -.jstree-default-large.jstree-rtl .jstree-last { - background: transparent; -} -@media (max-width: 768px) { - #jstree-dnd.jstree-dnd-responsive { - line-height: 40px; - font-weight: bold; - font-size: 1.1em; - text-shadow: 1px 1px white; - } - #jstree-dnd.jstree-dnd-responsive > i { - background: transparent; - width: 40px; - height: 40px; - } - #jstree-dnd.jstree-dnd-responsive > .jstree-ok { - background-image: url("40px.png"); - background-position: 0 -200px; - background-size: 120px 240px; - } - #jstree-dnd.jstree-dnd-responsive > .jstree-er { - background-image: url("40px.png"); - background-position: -40px -200px; - background-size: 120px 240px; - } - #jstree-marker.jstree-dnd-responsive { - border-left-width: 10px; - border-top-width: 10px; - border-bottom-width: 10px; - margin-top: -10px; - } -} -@media (max-width: 768px) { - .jstree-default-responsive { - /* - .jstree-open > .jstree-ocl, - .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } - */ - } - .jstree-default-responsive .jstree-icon { - background-image: url("40px.png"); - } - .jstree-default-responsive .jstree-node, - .jstree-default-responsive .jstree-leaf > .jstree-ocl { - background: transparent; - } - .jstree-default-responsive .jstree-node { - min-height: 40px; - line-height: 40px; - margin-left: 40px; - min-width: 40px; - white-space: nowrap; - } - .jstree-default-responsive .jstree-anchor { - line-height: 40px; - height: 40px; - } - .jstree-default-responsive .jstree-icon, - .jstree-default-responsive .jstree-icon:empty { - width: 40px; - height: 40px; - line-height: 40px; - } - .jstree-default-responsive > .jstree-container-ul > .jstree-node { - margin-left: 0; - } - .jstree-default-responsive.jstree-rtl .jstree-node { - margin-left: 0; - margin-right: 40px; - background: transparent; - } - .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { - margin-right: 0; - } - .jstree-default-responsive .jstree-ocl, - .jstree-default-responsive .jstree-themeicon, - .jstree-default-responsive .jstree-checkbox { - background-size: 120px 240px; - } - .jstree-default-responsive .jstree-leaf > .jstree-ocl, - .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { - background: transparent; - } - .jstree-default-responsive .jstree-open > .jstree-ocl { - background-position: 0 0px !important; - } - .jstree-default-responsive .jstree-closed > .jstree-ocl { - background-position: 0 -40px !important; - } - .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { - background-position: -40px 0px !important; - } - .jstree-default-responsive .jstree-themeicon { - background-position: -40px -40px; - } - .jstree-default-responsive .jstree-checkbox, - .jstree-default-responsive .jstree-checkbox:hover { - background-position: -40px -80px; - } - .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, - .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, - .jstree-default-responsive .jstree-checked > .jstree-checkbox, - .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { - background-position: 0 -80px; - } - .jstree-default-responsive .jstree-anchor > .jstree-undetermined, - .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { - background-position: 0 -120px; - } - .jstree-default-responsive .jstree-anchor { - font-weight: bold; - font-size: 1.1em; - text-shadow: 1px 1px white; - } - .jstree-default-responsive > .jstree-striped { - background: transparent; - } - .jstree-default-responsive .jstree-wholerow { - border-top: 1px solid rgba(255, 255, 255, 0.7); - border-bottom: 1px solid rgba(64, 64, 64, 0.2); - background: #ebebeb; - height: 40px; - } - .jstree-default-responsive .jstree-wholerow-hovered { - background: #e7f4f9; - } - .jstree-default-responsive .jstree-wholerow-clicked { - background: #beebff; - } - .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { - box-shadow: inset 0 -6px 3px -5px #666666; - } - .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { - box-shadow: inset 0 6px 3px -5px #666666; - border-top: 0; - } - .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { - box-shadow: none; - } - .jstree-default-responsive .jstree-node, - .jstree-default-responsive .jstree-icon, - .jstree-default-responsive .jstree-node > .jstree-ocl, - .jstree-default-responsive .jstree-themeicon, - .jstree-default-responsive .jstree-checkbox { - background-image: url("40px.png"); - background-size: 120px 240px; - } - .jstree-default-responsive .jstree-node { - background-position: -80px 0; - background-repeat: repeat-y; - } - .jstree-default-responsive .jstree-last { - background: transparent; - } - .jstree-default-responsive .jstree-leaf > .jstree-ocl { - background-position: -40px -120px; - } - .jstree-default-responsive .jstree-last > .jstree-ocl { - background-position: -40px -160px; - } - .jstree-default-responsive .jstree-themeicon-custom { - background-color: transparent; - background-image: none; - background-position: 0 0; - } - .jstree-default-responsive .jstree-file { - background: url("40px.png") 0 -160px no-repeat; - background-size: 120px 240px; - } - .jstree-default-responsive .jstree-folder { - background: url("40px.png") -40px -40px no-repeat; - background-size: 120px 240px; - } - .jstree-default-responsive > .jstree-container-ul > .jstree-node { - margin-left: 0; - margin-right: 0; - } -} diff --git a/app/static/app/js/vendor/potree/src/Actions.js b/app/static/app/js/vendor/potree/src/Actions.js deleted file mode 100644 index cd88262c..00000000 --- a/app/static/app/js/vendor/potree/src/Actions.js +++ /dev/null @@ -1,83 +0,0 @@ - - -import {EventDispatcher} from "./EventDispatcher.js"; - -export class Action extends EventDispatcher { - constructor (args = {}) { - super(); - - this.icon = args.icon || ''; - this.tooltip = args.tooltip; - - if (args.onclick !== undefined) { - this.onclick = args.onclick; - } - } - - onclick (event) { - - } - - pairWith (object) { - - } - - setIcon (newIcon) { - let oldIcon = this.icon; - - if (newIcon === oldIcon) { - return; - } - - this.icon = newIcon; - - this.dispatchEvent({ - type: 'icon_changed', - action: this, - icon: newIcon, - oldIcon: oldIcon - }); - } -}; - -//Potree.Actions = {}; -// -//Potree.Actions.ToggleAnnotationVisibility = class ToggleAnnotationVisibility extends Potree.Action { -// constructor (args = {}) { -// super(args); -// -// this.icon = Potree.resourcePath + '/icons/eye.svg'; -// this.showIn = 'sidebar'; -// this.tooltip = 'toggle visibility'; -// } -// -// pairWith (annotation) { -// if (annotation.visible) { -// this.setIcon(Potree.resourcePath + '/icons/eye.svg'); -// } else { -// this.setIcon(Potree.resourcePath + '/icons/eye_crossed.svg'); -// } -// -// annotation.addEventListener('visibility_changed', e => { -// let annotation = e.annotation; -// -// if (annotation.visible) { -// this.setIcon(Potree.resourcePath + '/icons/eye.svg'); -// } else { -// this.setIcon(Potree.resourcePath + '/icons/eye_crossed.svg'); -// } -// }); -// } -// -// onclick (event) { -// let annotation = event.annotation; -// -// annotation.visible = !annotation.visible; -// -// if (annotation.visible) { -// this.setIcon(Potree.resourcePath + '/icons/eye.svg'); -// } else { -// this.setIcon(Potree.resourcePath + '/icons/eye_crossed.svg'); -// } -// } -//}; diff --git a/app/static/app/js/vendor/potree/src/AnimationPath.js b/app/static/app/js/vendor/potree/src/AnimationPath.js deleted file mode 100644 index bf3a12cf..00000000 --- a/app/static/app/js/vendor/potree/src/AnimationPath.js +++ /dev/null @@ -1,168 +0,0 @@ -import TWEEN from 'tween.js'; - -export class PathAnimation{ - - constructor(path, start, end, speed, callback){ - this.path = path; - this.length = this.path.spline.getLength(); - this.speed = speed; - this.callback = callback; - this.tween = null; - this.startPoint = Math.max(start, 0); - this.endPoint = Math.min(end, this.length); - this.t = 0.0; - } - - start(resume = false){ - if(this.tween){ - this.tween.stop(); - this.tween = null; - } - - let tStart; - if(resume){ - tStart = this.t; - }else{ - tStart = this.startPoint / this.length; - } - let tEnd = this.endPoint / this.length; - let animationDuration = (tEnd - tStart) * this.length * 1000 / this.speed; - - let progress = {t: tStart}; - this.tween = new TWEEN.Tween(progress).to({t: tEnd}, animationDuration); - this.tween.easing(TWEEN.Easing.Linear.None); - this.tween.onUpdate((e) => { - this.t = progress.t; - this.callback(progress.t); - }); - this.tween.onComplete(() => { - if(this.repeat){ - this.start(); - } - }); - - setTimeout(() => { - this.tween.start(); - }, 0); - } - - stop(){ - if(!this.tween){ - return; - } - this.tween.stop(); - this.tween = null; - this.t = 0; - } - - pause(){ - if(!this.tween){ - return; - } - - this.tween.stop(); - TWEEN.remove(this.tween); - this.tween = null; - } - - resume(){ - this.start(true); - } - - getPoint(t){ - return this.path.spline.getPoint(t); - } - -} - -export class AnimationPath{ - constructor (points = []) { - this.points = points; - this.spline = new THREE.CatmullRomCurve3(points); - //this.spline.reparametrizeByArcLength(1 / this.spline.getLength().total); - } - - get (t) { - return this.spline.getPoint(t); - } - - getLength () { - return this.spline.getLength(); - } - - animate (start, end, speed, callback) { - let animation = new PathAnimation(this, start, end, speed, callback); - animation.start(); - - return animation; - } - - pause () { - if (this.tween) { - this.tween.stop(); - } - } - - resume () { - if (this.tween) { - this.tween.start(); - } - } - - getGeometry () { - let geometry = new THREE.Geometry(); - - let samples = 500; - let i = 0; - for (let u = 0; u <= 1; u += 1 / samples) { - let position = this.spline.getPoint(u); - geometry.vertices[i] = new THREE.Vector3(position.x, position.y, position.z); - - i++; - } - - if(this.closed){ - let position = this.spline.getPoint(0); - geometry.vertices[i] = new THREE.Vector3(position.x, position.y, position.z); - } - - return geometry; - } - - get closed(){ - return this.spline.closed; - } - - set closed(value){ - this.spline.closed = value; - } - -} - - /* - { - let target = new THREE.Vector3(589854.34, 231411.19, 692.77); - let points = [ - new THREE.Vector3(589815.52, 231738.31, 959.48 ), - new THREE.Vector3(589604.73, 231615.00, 968.10 ), - new THREE.Vector3(589579.11, 231354.41, 1010.06), - new THREE.Vector3(589723.00, 231169.95, 1015.57), - new THREE.Vector3(589960.76, 231116.87, 978.60 ), - new THREE.Vector3(590139.29, 231268.71, 972.33 ) - ]; - - let path = new Potree.AnimationPath(points); - - let geometry = path.getGeometry(); - let material = new THREE.LineBasicMaterial(); - let line = new THREE.Line(geometry, material); - viewer.scene.scene.add(line); - - let [start, end, speed] = [0, path.getLength(), 10]; - path.animate(start, end, speed, t => { - viewer.scene.view.position.copy(path.spline.getPoint(t)); - }); - - } - */ - \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/Annotation.js b/app/static/app/js/vendor/potree/src/Annotation.js deleted file mode 100644 index 4c0e6f0f..00000000 --- a/app/static/app/js/vendor/potree/src/Annotation.js +++ /dev/null @@ -1,594 +0,0 @@ -import TWEEN from 'tween.js'; - -import {Action} from "./Actions.js"; -import {Utils} from "./utils.js"; -import {EventDispatcher} from "./EventDispatcher.js"; - -export class Annotation extends EventDispatcher { - constructor (args = {}) { - super(); - - let valueOrDefault = (a, b) => { - if(a === null || a === undefined){ - return b; - }else{ - return a; - } - }; - - this.scene = null; - this._title = args.title || 'No Title'; - this._description = args.description || ''; - this.offset = new THREE.Vector3(); - - if (!args.position) { - this.position = null; - } else if (args.position instanceof THREE.Vector3) { - this.position = args.position; - } else { - this.position = new THREE.Vector3(...args.position); - } - - this.cameraPosition = (args.cameraPosition instanceof Array) - ? new THREE.Vector3().fromArray(args.cameraPosition) : args.cameraPosition; - this.cameraTarget = (args.cameraTarget instanceof Array) - ? new THREE.Vector3().fromArray(args.cameraTarget) : args.cameraTarget; - this.radius = args.radius; - this.view = args.view || null; - this.keepOpen = false; - this.descriptionVisible = false; - this.showDescription = true; - this.actions = args.actions || []; - this.isHighlighted = false; - this._visible = true; - this.__visible = true; - this._display = true; - this._expand = false; - this.collapseThreshold = [args.collapseThreshold, 100].find(e => e !== undefined); - - this.children = []; - this.parent = null; - this.boundingBox = new THREE.Box3(); - - let iconClose = PotreeExports.resourcePath + '/icons/close.svg'; - - this.domElement = $(` -
      -
      - -
      -
      - - - - ${this._description} -
      -
      - `); - - this.elTitlebar = this.domElement.find('.annotation-titlebar'); - this.elTitle = this.elTitlebar.find('.annotation-label'); - this.elTitle.append(this._title); - this.elDescription = this.domElement.find('.annotation-description'); - this.elDescriptionClose = this.elDescription.find('.annotation-description-close'); - // this.elDescriptionContent = this.elDescription.find(".annotation-description-content"); - - this.clickTitle = () => { - if(this.hasView()){ - this.moveHere(this.scene.getActiveCamera()); - } - this.dispatchEvent({type: 'click', target: this}); - }; - - this.elTitle.click(this.clickTitle); - - this.actions = this.actions.map(a => { - if (a instanceof Action) { - return a; - } else { - return new Action(a); - } - }); - - for (let action of this.actions) { - action.pairWith(this); - } - - let actions = this.actions.filter( - a => a.showIn === undefined || a.showIn.includes('scene')); - - for (let action of actions) { - let elButton = $(``); - this.elTitlebar.append(elButton); - elButton.click(() => action.onclick({annotation: this})); - } - - this.elDescriptionClose.hover( - e => this.elDescriptionClose.css('opacity', '1'), - e => this.elDescriptionClose.css('opacity', '0.5') - ); - this.elDescriptionClose.click(e => this.setHighlighted(false)); - // this.elDescriptionContent.html(this._description); - - this.domElement.mouseenter(e => this.setHighlighted(true)); - this.domElement.mouseleave(e => this.setHighlighted(false)); - - this.domElement.on('touchstart', e => { - this.setHighlighted(!this.isHighlighted); - }); - - this.display = false; - //this.display = true; - - } - - installHandles(viewer){ - if(this.handles !== undefined){ - return; - } - - let domElement = $(` -
      - - - - - -
      - `); - - let svg = domElement.find("svg")[0]; - let elLine = domElement.find("line")[0]; - let elStart = domElement.find("circle")[0]; - let elEnd = domElement.find("circle")[1]; - - let setCoordinates = (start, end) => { - elStart.setAttribute("cx", `${start.x}`); - elStart.setAttribute("cy", `${start.y}`); - - elEnd.setAttribute("cx", `${end.x}`); - elEnd.setAttribute("cy", `${end.y}`); - - elLine.setAttribute("x1", start.x); - elLine.setAttribute("y1", start.y); - elLine.setAttribute("x2", end.x); - elLine.setAttribute("y2", end.y); - - let box = svg.getBBox(); - svg.setAttribute("width", `${box.width}`); - svg.setAttribute("height", `${box.height}`); - svg.setAttribute("viewBox", `${box.x} ${box.y} ${box.width} ${box.height}`); - - let ya = start.y - end.y; - let xa = start.x - end.x; - - if(ya > 0){ - start.y = start.y - ya; - } - if(xa > 0){ - start.x = start.x - xa; - } - - domElement.css("left", `${start.x}px`); - domElement.css("top", `${start.y}px`); - - }; - - $(viewer.renderArea).append(domElement); - - - let annotationStartPos = this.position.clone(); - let annotationStartOffset = this.offset.clone(); - - $(this.domElement).draggable({ - start: (event, ui) => { - annotationStartPos = this.position.clone(); - annotationStartOffset = this.offset.clone(); - $(this.domElement).find(".annotation-titlebar").css("pointer-events", "none"); - - console.log($(this.domElement).find(".annotation-titlebar")); - }, - stop: () => { - $(this.domElement).find(".annotation-titlebar").css("pointer-events", ""); - }, - drag: (event, ui ) => { - let renderAreaWidth = viewer.renderer.getSize().width; - let renderAreaHeight = viewer.renderer.getSize().height; - - let diff = { - x: ui.originalPosition.left - ui.position.left, - y: ui.originalPosition.top - ui.position.top - }; - - let nDiff = { - x: -(diff.x / renderAreaWidth) * 2, - y: (diff.y / renderAreaWidth) * 2 - }; - - let camera = viewer.scene.getActiveCamera(); - let oldScreenPos = new THREE.Vector3() - .addVectors(annotationStartPos, annotationStartOffset) - .project(camera); - - let newScreenPos = oldScreenPos.clone(); - newScreenPos.x += nDiff.x; - newScreenPos.y += nDiff.y; - - let newPos = newScreenPos.clone(); - newPos.unproject(camera); - - let newOffset = new THREE.Vector3().subVectors(newPos, this.position); - this.offset.copy(newOffset); - } - }); - - let updateCallback = () => { - let position = this.position; - let scene = viewer.scene; - - let renderAreaWidth = viewer.renderer.getSize().width; - let renderAreaHeight = viewer.renderer.getSize().height; - - let start = this.position.clone(); - let end = new THREE.Vector3().addVectors(this.position, this.offset); - - let toScreen = (position) => { - let camera = scene.getActiveCamera(); - let screenPos = new THREE.Vector3(); - - let worldView = new THREE.Matrix4().multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse); - let ndc = new THREE.Vector4(position.x, position.y, position.z, 1.0).applyMatrix4(worldView); - // limit w to small positive value, in case position is behind the camera - ndc.w = Math.max(ndc.w, 0.1); - ndc.divideScalar(ndc.w); - - screenPos.copy(ndc); - screenPos.x = renderAreaWidth * (screenPos.x + 1) / 2; - screenPos.y = renderAreaHeight * (1 - (screenPos.y + 1) / 2); - - return screenPos; - }; - - start = toScreen(start); - end = toScreen(end); - - setCoordinates(start, end); - - }; - - viewer.addEventListener("update", updateCallback); - - this.handles = { - domElement: domElement, - setCoordinates: setCoordinates, - updateCallback: updateCallback - }; - } - - removeHandles(viewer){ - if(this.handles === undefined){ - return; - } - - //$(viewer.renderArea).remove(this.handles.domElement); - this.handles.domElement.remove(); - viewer.removeEventListener("update", this.handles.updateCallback); - - delete this.handles; - } - - get visible () { - return this._visible; - } - - set visible (value) { - if (this._visible === value) { - return; - } - - this._visible = value; - - //this.traverse(node => { - // node.display = value; - //}); - - this.dispatchEvent({ - type: 'visibility_changed', - annotation: this - }); - } - - get display () { - return this._display; - } - - set display (display) { - if (this._display === display) { - return; - } - - this._display = display; - - if (display) { - // this.domElement.fadeIn(200); - this.domElement.show(); - } else { - // this.domElement.fadeOut(200); - this.domElement.hide(); - } - } - - get expand () { - return this._expand; - } - - set expand (expand) { - if (this._expand === expand) { - return; - } - - if (expand) { - this.display = false; - } else { - this.display = true; - this.traverseDescendants(node => { - node.display = false; - }); - } - - this._expand = expand; - } - - get title () { - return this._title; - } - - set title (title) { - if (this._title === title) { - return; - } - - this._title = title; - this.elTitle.empty(); - this.elTitle.append(this._title); - } - - get description () { - return this._description; - } - - set description (description) { - if (this._description === description) { - return; - } - - this._description = description; - - const elDescriptionContent = this.elDescription.find(".annotation-description-content"); - elDescriptionContent.empty(); - elDescriptionContent.append(this._description); - } - - add (annotation) { - if (!this.children.includes(annotation)) { - this.children.push(annotation); - annotation.parent = this; - - let descendants = []; - annotation.traverse(a => { descendants.push(a); }); - - for (let descendant of descendants) { - let c = this; - while (c !== null) { - c.dispatchEvent({ - 'type': 'annotation_added', - 'annotation': descendant - }); - c = c.parent; - } - } - } - } - - level () { - if (this.parent === null) { - return 0; - } else { - return this.parent.level() + 1; - } - } - - hasChild(annotation) { - return this.children.includes(annotation); - } - - remove (annotation) { - if (this.hasChild(annotation)) { - annotation.removeAllChildren(); - annotation.dispose(); - this.children = this.children.filter(e => e !== annotation); - annotation.parent = null; - } - } - - removeAllChildren() { - this.children.forEach((child) => { - if (child.children.length > 0) { - child.removeAllChildren(); - } - - this.remove(child); - }); - } - - updateBounds () { - let box = new THREE.Box3(); - - if (this.position) { - box.expandByPoint(this.position); - } - - for (let child of this.children) { - child.updateBounds(); - - box.union(child.boundingBox); - } - - this.boundingBox.copy(box); - } - - traverse (handler) { - let expand = handler(this); - - if (expand === undefined || expand === true) { - for (let child of this.children) { - child.traverse(handler); - } - } - } - - traverseDescendants (handler) { - for (let child of this.children) { - child.traverse(handler); - } - } - - flatten () { - let annotations = []; - - this.traverse(annotation => { - annotations.push(annotation); - }); - - return annotations; - } - - descendants () { - let annotations = []; - - this.traverse(annotation => { - if (annotation !== this) { - annotations.push(annotation); - } - }); - - return annotations; - } - - setHighlighted (highlighted) { - if (highlighted) { - this.domElement.css('opacity', '0.8'); - this.elTitlebar.css('box-shadow', '0 0 5px #fff'); - this.domElement.css('z-index', '1000'); - - if (this._description) { - this.descriptionVisible = true; - this.elDescription.fadeIn(200); - this.elDescription.css('position', 'relative'); - } - } else { - this.domElement.css('opacity', '0.5'); - this.elTitlebar.css('box-shadow', ''); - this.domElement.css('z-index', '100'); - this.descriptionVisible = false; - this.elDescription.css('display', 'none'); - } - - this.isHighlighted = highlighted; - } - - hasView () { - let hasPosTargetView = this.cameraTarget instanceof THREE.Vector3; - hasPosTargetView = hasPosTargetView && this.cameraPosition instanceof THREE.Vector3; - - let hasRadiusView = this.radius !== undefined; - - let hasView = hasPosTargetView || hasRadiusView; - - return hasView; - }; - - moveHere (camera) { - if (!this.hasView()) { - return; - } - - let view = this.scene.view; - let animationDuration = 500; - let easing = TWEEN.Easing.Quartic.Out; - - let endTarget; - if (this.cameraTarget) { - endTarget = this.cameraTarget; - } else if (this.position) { - endTarget = this.position; - } else { - endTarget = this.boundingBox.getCenter(new THREE.Vector3()); - } - - if (this.cameraPosition) { - let endPosition = this.cameraPosition; - - Utils.moveTo(this.scene, endPosition, endTarget); - - //{ // animate camera position - // let tween = new TWEEN.Tween(view.position).to(endPosition, animationDuration); - // tween.easing(easing); - // tween.start(); - //} - - //{ // animate camera target - // let camTargetDistance = camera.position.distanceTo(endTarget); - // let target = new THREE.Vector3().addVectors( - // camera.position, - // camera.getWorldDirection().clone().multiplyScalar(camTargetDistance) - // ); - // let tween = new TWEEN.Tween(target).to(endTarget, animationDuration); - // tween.easing(easing); - // tween.onUpdate(() => { - // view.lookAt(target); - // }); - // tween.onComplete(() => { - // view.lookAt(target); - // this.dispatchEvent({type: 'focusing_finished', target: this}); - // }); - - // this.dispatchEvent({type: 'focusing_started', target: this}); - // tween.start(); - //} - } else if (this.radius) { - let direction = view.direction; - let endPosition = endTarget.clone().add(direction.multiplyScalar(-this.radius)); - let startRadius = view.radius; - let endRadius = this.radius; - - { // animate camera position - let tween = new TWEEN.Tween(view.position).to(endPosition, animationDuration); - tween.easing(easing); - tween.start(); - } - - { // animate radius - let t = {x: 0}; - - let tween = new TWEEN.Tween(t) - .to({x: 1}, animationDuration) - .onUpdate(function () { - view.radius = this.x * endRadius + (1 - this.x) * startRadius; - }); - tween.easing(easing); - tween.start(); - } - } - }; - - dispose () { - if (this.domElement.parentElement) { - this.domElement.parentElement.removeChild(this.domElement); - } - }; - - toString () { - return 'Annotation: ' + this._title; - } -}; diff --git a/app/static/app/js/vendor/potree/src/BitReader.js b/app/static/app/js/vendor/potree/src/BitReader.js deleted file mode 100644 index 5ebb8426..00000000 --- a/app/static/app/js/vendor/potree/src/BitReader.js +++ /dev/null @@ -1,50 +0,0 @@ -/* globals BitReader:true */ -/* exported BitReader */ -/** - * Reads unsigned integers encoded in a variable amount of bits from the buffer. - * Bits are aligned into 32bit unsigned integers. - * for example, given 3 integers: - * x: 123 encoded in 11 bits, binary: 00001111011 - * y: 7945 encoded in 17 bits, binary: 00001111100001001 - * z: 12 encoded in 6 bits, binary: 001100 - * - * | --- 32 bits --- || --- 32 bits --- | - * |................................||................................| - * |00001111011000011111000010010011||00 - * | x || y || z | - * - * z does not fit fully into the first 32 bit integer. - * The first 4 bits of z are stored at the end of the first 32 bit integer - * and the remaining 2 bits at the next 32 bit integer. - * - */ -BitReader = function (buf) { - let buffer = new Uint32Array(buf); - let bitOffset = 0; - - this.read = function (bits) { - let result; - - // TODO val & leftGap seem to be duplicate code? Move out of if-block - if ((bitOffset % 32) + bits <= 32) { - let val = buffer[Math.floor(bitOffset / 32)]; - let leftGap = bitOffset % 32; - let rightGap = 32 - (leftGap + bits); - - result = (val << leftGap) >>> (leftGap + rightGap); - } else { - let val = buffer[Math.floor(bitOffset / 32)]; - let leftGap = bitOffset % 32; - let rightGap = (leftGap + bits) - 32; - - result = (val << leftGap) >>> (leftGap - rightGap); - - val = buffer[Math.floor(bitOffset / 32) + 1]; - result = result | val >>> (32 - rightGap); - } - - bitOffset += bits; - - return result; - }; -}; diff --git a/app/static/app/js/vendor/potree/src/Enum.js b/app/static/app/js/vendor/potree/src/Enum.js deleted file mode 100644 index 16498517..00000000 --- a/app/static/app/js/vendor/potree/src/Enum.js +++ /dev/null @@ -1,44 +0,0 @@ - -class EnumItem{ - constructor(object){ - for(let key of Object.keys(object)){ - this[key] = object[key]; - } - } - - inspect(){ - return `Enum(${this.name}: ${this.value})`; - } -}; - -class Enum{ - - constructor(object){ - this.object = object; - - for(let key of Object.keys(object)){ - let value = object[key]; - - if(typeof value === "object"){ - value.name = key; - }else{ - value = {name: key, value: value}; - } - - this[key] = new EnumItem(value); - } - } - - fromValue(value){ - for(let key of Object.keys(this.object)){ - if(this[key].value === value){ - return this[key]; - } - } - - throw new Error(`No enum for value: ${value}`); - } - -}; - -export {Enum, EnumItem}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/EventDispatcher.js b/app/static/app/js/vendor/potree/src/EventDispatcher.js deleted file mode 100644 index e302fb2c..00000000 --- a/app/static/app/js/vendor/potree/src/EventDispatcher.js +++ /dev/null @@ -1,99 +0,0 @@ - -/** - * @author mrdoob / http://mrdoob.com/ https://github.com/mrdoob/eventdispatcher.js - * - * with slight modifications by mschuetz, http://potree.org - * - */ - -// The MIT License -// -// Copyright (c) 2011 Mr.doob -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - - - - - -export class EventDispatcher{ - - constructor(){ - this._listeners = {}; - } - - addEventListener(type, listener){ - - const listeners = this._listeners; - - if(listeners[type] === undefined){ - listeners[type] = []; - } - - if(listeners[type].indexOf(listener) === - 1){ - listeners[type].push( listener ); - } - - } - - hasEventListener(type, listener){ - - const listeners = this._listeners; - - return listeners[type] !== undefined && listeners[type].indexOf(listener) !== - 1; - } - - removeEventListener(type, listener){ - - let listeners = this._listeners; - let listenerArray = listeners[type]; - - if (listenerArray !== undefined){ - - let index = listenerArray.indexOf(listener); - - if(index !== - 1){ - listenerArray.splice(index, 1); - } - } - - } - - removeEventListeners(type){ - if(this._listeners[type] !== undefined){ - delete this._listeners[type]; - } - }; - - dispatchEvent(event){ - - let listeners = this._listeners; - let listenerArray = listeners[event.type]; - - if ( listenerArray !== undefined ) { - event.target = this; - - for(let listener of listenerArray.slice(0)){ - listener.call(this, event); - } - } - - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/Features.js b/app/static/app/js/vendor/potree/src/Features.js deleted file mode 100644 index ebba0134..00000000 --- a/app/static/app/js/vendor/potree/src/Features.js +++ /dev/null @@ -1,75 +0,0 @@ -const Features = (function () { - let ftCanvas = document.createElement('canvas'); - let gl = ftCanvas.getContext('webgl2') || ftCanvas.getContext('webgl') || ftCanvas.getContext('experimental-webgl'); - if (gl === null) { return null; } - - // -- code taken from THREE.WebGLRenderer -- - let _vertexShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT); - let _vertexShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT); - // Unused: let _vertexShaderPrecisionLowpFloat = gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.LOW_FLOAT); - - let _fragmentShaderPrecisionHighpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT); - let _fragmentShaderPrecisionMediumpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT); - // Unused: let _fragmentShaderPrecisionLowpFloat = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.LOW_FLOAT); - - let highpAvailable = _vertexShaderPrecisionHighpFloat.precision > 0 && _fragmentShaderPrecisionHighpFloat.precision > 0; - let mediumpAvailable = _vertexShaderPrecisionMediumpFloat.precision > 0 && _fragmentShaderPrecisionMediumpFloat.precision > 0; - // ----------------------------------------- - - let precision; - if (highpAvailable) { - precision = 'highp'; - } else if (mediumpAvailable) { - precision = 'mediump'; - } else { - precision = 'lowp'; - } - - return { - SHADER_INTERPOLATION: { - isSupported: function () { - let supported = true; - - supported = supported && gl.getExtension('EXT_frag_depth'); - supported = supported && gl.getParameter(gl.MAX_VARYING_VECTORS) >= 8; - - return supported; - } - }, - SHADER_SPLATS: { - isSupported: function () { - let supported = true; - - supported = supported && gl.getExtension('EXT_frag_depth'); - supported = supported && gl.getExtension('OES_texture_float'); - supported = supported && gl.getParameter(gl.MAX_VARYING_VECTORS) >= 8; - - return supported; - } - - }, - SHADER_EDL: { - isSupported: function () { - let supported = true; - - //supported = supported && gl.getExtension('EXT_frag_depth'); - supported = supported && gl.getExtension('OES_texture_float'); - supported = supported && gl.getParameter(gl.MAX_VARYING_VECTORS) >= 8; - - supported = supported || (gl instanceof WebGL2RenderingContext); - - return supported; - } - - }, - WEBGL2: { - isSupported: function(){ - return gl instanceof WebGL2RenderingContext; - } - }, - precision: precision - }; -}()); - - -export {Features}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/InterleavedBuffer.js b/app/static/app/js/vendor/potree/src/InterleavedBuffer.js deleted file mode 100644 index 42758809..00000000 --- a/app/static/app/js/vendor/potree/src/InterleavedBuffer.js +++ /dev/null @@ -1,40 +0,0 @@ - - - -export class InterleavedBufferAttribute{ - - constructor(name, bytes, numElements, type, normalized){ - this.name = name; - this.bytes = bytes; - this.numElements = numElements; - this.normalized = normalized; - this.type = type; // gl type without prefix, e.g. "FLOAT", "UNSIGNED_INT" - } - -}; - -export class InterleavedBuffer{ - - constructor(data, attributes, numElements){ - this.data = data; - this.attributes = attributes; - this.stride = attributes.reduce( (a, att) => a + att.bytes, 0); - this.stride = Math.ceil(this.stride / 4) * 4; - this.numElements = numElements; - } - - offset(name){ - let offset = 0; - - for(let att of this.attributes){ - if(att.name === name){ - return offset; - } - - offset += att.bytes; - } - - return null; - } - -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/KeyCodes.js b/app/static/app/js/vendor/potree/src/KeyCodes.js deleted file mode 100644 index bf4aeb5d..00000000 --- a/app/static/app/js/vendor/potree/src/KeyCodes.js +++ /dev/null @@ -1,20 +0,0 @@ - - -export const KeyCodes = { - - LEFT: 37, - UP: 38, - RIGHT: 39, - BOTTOM: 40, - DELETE: 46, - - A: 'A'.charCodeAt(0), - S: 'S'.charCodeAt(0), - D: 'D'.charCodeAt(0), - W: 'W'.charCodeAt(0), - Q: 'Q'.charCodeAt(0), - E: 'E'.charCodeAt(0), - R: 'R'.charCodeAt(0), - F: 'F'.charCodeAt(0) - -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/LRU.js b/app/static/app/js/vendor/potree/src/LRU.js deleted file mode 100644 index 52133cb6..00000000 --- a/app/static/app/js/vendor/potree/src/LRU.js +++ /dev/null @@ -1,174 +0,0 @@ - - -class LRUItem{ - - constructor(node){ - this.previous = null; - this.next = null; - this.node = node; - } - -} - -/** - * - * @class A doubly-linked-list of the least recently used elements. - */ -class LRU{ - - constructor(){ - // the least recently used item - this.first = null; - // the most recently used item - this.last = null; - // a list of all items in the lru list - this.items = {}; - this.elements = 0; - this.numPoints = 0; - } - - size(){ - return this.elements; - } - - contains(node){ - return this.items[node.id] == null; - } - - touch(node){ - if (!node.loaded) { - return; - } - - let item; - if (this.items[node.id] == null) { - // add to list - item = new LRUItem(node); - item.previous = this.last; - this.last = item; - if (item.previous !== null) { - item.previous.next = item; - } - - this.items[node.id] = item; - this.elements++; - - if (this.first === null) { - this.first = item; - } - this.numPoints += node.numPoints; - } else { - // update in list - item = this.items[node.id]; - if (item.previous === null) { - // handle touch on first element - if (item.next !== null) { - this.first = item.next; - this.first.previous = null; - item.previous = this.last; - item.next = null; - this.last = item; - item.previous.next = item; - } - } else if (item.next === null) { - // handle touch on last element - } else { - // handle touch on any other element - item.previous.next = item.next; - item.next.previous = item.previous; - item.previous = this.last; - item.next = null; - this.last = item; - item.previous.next = item; - } - } - } - - remove(node){ - let lruItem = this.items[node.id]; - if (lruItem) { - if (this.elements === 1) { - this.first = null; - this.last = null; - } else { - if (!lruItem.previous) { - this.first = lruItem.next; - this.first.previous = null; - } - if (!lruItem.next) { - this.last = lruItem.previous; - this.last.next = null; - } - if (lruItem.previous && lruItem.next) { - lruItem.previous.next = lruItem.next; - lruItem.next.previous = lruItem.previous; - } - } - - delete this.items[node.id]; - this.elements--; - this.numPoints -= node.numPoints; - } - } - - getLRUItem(){ - if (this.first === null) { - return null; - } - let lru = this.first; - - return lru.node; - } - - toString(){ - let string = '{ '; - let curr = this.first; - while (curr !== null) { - string += curr.node.id; - if (curr.next !== null) { - string += ', '; - } - curr = curr.next; - } - string += '}'; - string += '(' + this.size() + ')'; - return string; - } - - freeMemory(){ - if (this.elements <= 1) { - return; - } - - while (this.numPoints > PotreeExports.pointLoadLimit) { - let element = this.first; - let node = element.node; - this.disposeDescendants(node); - } - } - - disposeDescendants(node){ - let stack = []; - stack.push(node); - while (stack.length > 0) { - let current = stack.pop(); - - // console.log(current); - - current.dispose(); - this.remove(current); - - for (let key in current.children) { - if (current.children.hasOwnProperty(key)) { - let child = current.children[key]; - if (child.loaded) { - stack.push(current.children[key]); - } - } - } - } - } - -} - -export {LRU, LRUItem}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/PointCloudEptGeometry.js b/app/static/app/js/vendor/potree/src/PointCloudEptGeometry.js deleted file mode 100644 index dd3af7f4..00000000 --- a/app/static/app/js/vendor/potree/src/PointCloudEptGeometry.js +++ /dev/null @@ -1,313 +0,0 @@ -import {PointCloudTreeNode} from "./PointCloudTree.js"; - -class U { - static toVector3(v, offset) { - return new THREE.Vector3().fromArray(v, offset || 0); - } - - static toBox3(b) { - return new THREE.Box3(U.toVector3(b), U.toVector3(b, 3)); - }; - - static findDim(schema, name) { - var dim = schema.find((dim) => dim.name == name); - if (!dim) throw new Error('Failed to find ' + name + ' in schema'); - return dim; - } - - static sphereFrom(b) { - return b.getBoundingSphere(new THREE.Sphere()); - } -}; - -export class PointCloudEptGeometry { - constructor(url, info) { - let version = info.version; - let schema = info.schema; - let bounds = info.bounds; - let boundsConforming = info.boundsConforming; - - let xyz = [ - U.findDim(schema, 'X'), - U.findDim(schema, 'Y'), - U.findDim(schema, 'Z') - ]; - let scale = xyz.map((d) => d.scale || 1); - let offset = xyz.map((d) => d.offset || 0); - this.eptScale = U.toVector3(scale); - this.eptOffset = U.toVector3(offset); - - this.url = url; - this.info = info; - this.type = 'ept'; - - this.schema = schema; - this.span = info.span || info.ticks; - this.boundingBox = U.toBox3(bounds); - this.tightBoundingBox = U.toBox3(boundsConforming); - this.offset = U.toVector3([0, 0, 0]); - this.boundingSphere = U.sphereFrom(this.boundingBox); - this.tightBoundingSphere = U.sphereFrom(this.tightBoundingBox); - this.version = new Potree.Version('1.6'); - - this.projection = null; - this.fallbackProjection = null; - - if (info.srs && info.srs.horizontal) { - this.projection = info.srs.authority + ':' + info.srs.horizontal; - } - - if (info.srs.wkt) { - if (!this.projection) this.projection = info.srs.wkt; - else this.fallbackProjection = info.srs.wkt; - } - - this.pointAttributes = 'LAZ'; - this.spacing = - (this.boundingBox.max.x - this.boundingBox.min.x) / this.span; - - let hierarchyType = info.hierarchyType || 'json'; - - const dataType = info.dataType; - if (dataType == 'laszip') { - this.loader = new Potree.EptLaszipLoader(); - } - else if (dataType == 'binary') { - this.loader = new Potree.EptBinaryLoader(); - } - else if (dataType == 'zstandard') { - this.loader = new Potree.EptZstandardLoader(); - } - else { - throw new Error('Could not read data type: ' + dataType); - } - } -}; - -export class EptKey { - constructor(ept, b, d, x, y, z) { - this.ept = ept; - this.b = b; - this.d = d; - this.x = x || 0; - this.y = y || 0; - this.z = z || 0; - } - - name() { - return this.d + '-' + this.x + '-' + this.y + '-' + this.z; - } - - step(a, b, c) { - let min = this.b.min.clone(); - let max = this.b.max.clone(); - let dst = new THREE.Vector3().subVectors(max, min); - - if (a) min.x += dst.x / 2; - else max.x -= dst.x / 2; - - if (b) min.y += dst.y / 2; - else max.y -= dst.y / 2; - - if (c) min.z += dst.z / 2; - else max.z -= dst.z / 2; - - return new Potree.EptKey( - this.ept, - new THREE.Box3(min, max), - this.d + 1, - this.x * 2 + a, - this.y * 2 + b, - this.z * 2 + c); - } - - children() { - var result = []; - for (var a = 0; a < 2; ++a) { - for (var b = 0; b < 2; ++b) { - for (var c = 0; c < 2; ++c) { - var add = this.step(a, b, c).name(); - if (!result.includes(add)) result = result.concat(add); - } - } - } - return result; - } -} - -export class PointCloudEptGeometryNode extends PointCloudTreeNode { - constructor(ept, b, d, x, y, z) { - super(); - - this.ept = ept; - this.key = new Potree.EptKey( - this.ept, - b || this.ept.boundingBox, - d || 0, - x, - y, - z); - - this.id = PointCloudEptGeometryNode.IDCount++; - this.geometry = null; - this.boundingBox = this.key.b; - this.tightBoundingBox = this.boundingBox; - this.spacing = this.ept.spacing / Math.pow(2, this.key.d); - this.boundingSphere = U.sphereFrom(this.boundingBox); - - // These are set during hierarchy loading. - this.hasChildren = false; - this.children = { }; - this.numPoints = -1; - - this.level = this.key.d; - this.loaded = false; - this.loading = false; - this.oneTimeDisposeHandlers = []; - - let k = this.key; - this.name = this.toPotreeName(k.d, k.x, k.y, k.z); - this.index = parseInt(this.name.charAt(this.name.length - 1)); - } - - isGeometryNode() { return true; } - getLevel() { return this.level; } - isTreeNode() { return false; } - isLoaded() { return this.loaded; } - getBoundingSphere() { return this.boundingSphere; } - getBoundingBox() { return this.boundingBox; } - url() { return this.ept.url + 'ept-data/' + this.filename(); } - getNumPoints() { return this.numPoints; } - - filename() { return this.key.name(); } - - getChildren() { - let children = []; - - for (let i = 0; i < 8; i++) { - if (this.children[i]) { - children.push(this.children[i]); - } - } - - return children; - } - - addChild(child) { - this.children[child.index] = child; - child.parent = this; - } - - load() { - if (this.loaded || this.loading) return; - if (PotreeExports.numNodesLoading >= PotreeExports.maxNodesLoading) return; - - this.loading = true; - ++PotreeExports.numNodesLoading; - - if (this.numPoints == -1) this.loadHierarchy(); - this.loadPoints(); - } - - loadPoints(){ - this.ept.loader.load(this); - } - - async loadHierarchy() { - let nodes = { }; - nodes[this.filename()] = this; - this.hasChildren = false; - - let eptHierarchyFile = - `${this.ept.url}ept-hierarchy/${this.filename()}.json`; - - let response = await fetch(eptHierarchyFile); - let hier = await response.json(); - - // Since we want to traverse top-down, and 10 comes - // lexicographically before 9 (for example), do a deep sort. - var keys = Object.keys(hier).sort((a, b) => { - let [da, xa, ya, za] = a.split('-').map((n) => parseInt(n, 10)); - let [db, xb, yb, zb] = b.split('-').map((n) => parseInt(n, 10)); - if (da < db) return -1; if (da > db) return 1; - if (xa < xb) return -1; if (xa > xb) return 1; - if (ya < yb) return -1; if (ya > yb) return 1; - if (za < zb) return -1; if (za > zb) return 1; - return 0; - }); - - keys.forEach((v) => { - let [d, x, y, z] = v.split('-').map((n) => parseInt(n, 10)); - let a = x & 1, b = y & 1, c = z & 1; - let parentName = - (d - 1) + '-' + (x >> 1) + '-' + (y >> 1) + '-' + (z >> 1); - - let parentNode = nodes[parentName]; - if (!parentNode) return; - parentNode.hasChildren = true; - - let key = parentNode.key.step(a, b, c); - - let node = new Potree.PointCloudEptGeometryNode( - this.ept, - key.b, - key.d, - key.x, - key.y, - key.z); - - node.level = d; - node.numPoints = hier[v]; - - parentNode.addChild(node); - nodes[key.name()] = node; - }); - } - - doneLoading(bufferGeometry, tightBoundingBox, np, mean) { - bufferGeometry.boundingBox = this.boundingBox; - this.geometry = bufferGeometry; - this.tightBoundingBox = tightBoundingBox; - this.numPoints = np; - this.mean = mean; - this.loaded = true; - this.loading = false; - --PotreeExports.numNodesLoading; - } - - toPotreeName(d, x, y, z) { - var name = 'r'; - - for (var i = 0; i < d; ++i) { - var shift = d - i - 1; - var mask = 1 << shift; - var step = 0; - - if (x & mask) step += 4; - if (y & mask) step += 2; - if (z & mask) step += 1; - - name += step; - } - - return name; - } - - dispose() { - if (this.geometry && this.parent != null) { - this.geometry.dispose(); - this.geometry = null; - this.loaded = false; - - // this.dispatchEvent( { type: 'dispose' } ); - for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) { - let handler = this.oneTimeDisposeHandlers[i]; - handler(); - } - this.oneTimeDisposeHandlers = []; - } - } -} - -PointCloudEptGeometryNode.IDCount = 0; - diff --git a/app/static/app/js/vendor/potree/src/PointCloudGreyhoundGeometry.js b/app/static/app/js/vendor/potree/src/PointCloudGreyhoundGeometry.js deleted file mode 100644 index a5f35a8d..00000000 --- a/app/static/app/js/vendor/potree/src/PointCloudGreyhoundGeometry.js +++ /dev/null @@ -1,315 +0,0 @@ -import {PointCloudTreeNode} from "./PointCloudTree.js"; - -export class PointCloudGreyhoundGeometry{ - - constructor(){ - this.spacing = 0; - this.boundingBox = null; - this.root = null; - this.nodes = null; - this.pointAttributes = {}; - this.hierarchyStepSize = -1; - this.loader = null; - this.schema = null; - - this.baseDepth = null; - this.offset = null; - this.projection = null; - - this.boundingSphere = null; - - // the serverURL will contain the base URL of the greyhound server. f.e. http://dev.greyhound.io/resource/autzen/ - this.serverURL = null; - - this.normalize = { color: false, intensity: false }; - } - -}; - -export class PointCloudGreyhoundGeometryNode extends PointCloudTreeNode { - constructor(name, pcoGeometry, boundingBox, scale, offset) { - super(); - - this.id = Potree.PointCloudGreyhoundGeometryNode.IDCount++; - this.name = name; - this.index = parseInt(name.charAt(name.length - 1)); - this.pcoGeometry = pcoGeometry; - this.geometry = null; - this.boundingBox = boundingBox; - this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere()); - this.scale = scale; - this.offset = offset; - this.children = {}; - this.numPoints = 0; - this.level = null; - this.loaded = false; - this.oneTimeDisposeHandlers = []; - this.baseLoaded = false; - - let bounds = this.boundingBox.clone(); - bounds.min.sub(this.pcoGeometry.boundingBox.getCenter()); - bounds.max.sub(this.pcoGeometry.boundingBox.getCenter()); - - if (this.scale) { - bounds.min.multiplyScalar(1 / this.scale); - bounds.max.multiplyScalar(1 / this.scale); - } - - // This represents the bounds for this node in the reference frame of the - // global bounds from `info`, centered around the origin, and then scaled - // by our selected scale. - this.greyhoundBounds = bounds; - - // This represents the offset between the coordinate system described above - // and our pcoGeometry bounds. - this.greyhoundOffset = this.pcoGeometry.offset.clone().add( - this.pcoGeometry.boundingBox.getSize().multiplyScalar(0.5) - ); - } - - - isGeometryNode() { return true; } - isTreeNode() { return false; } - isLoaded() { return this.loaded; } - getBoundingSphere() { return this.boundingSphere; } - getBoundingBox() { return this.boundingBox; } - getLevel() { return this.level; }; - getChildren() { - let children = []; - - for (let i = 0; i < 8; ++i) { - if (this.children[i]) { - children.push(this.children[i]); - } - } - - return children; - } - - getURL() { - let schema = this.pcoGeometry.schema; - let bounds = this.greyhoundBounds; - - let boundsString = - bounds.min.x + ',' + bounds.min.y + ',' + bounds.min.z + ',' + - bounds.max.x + ',' + bounds.max.y + ',' + bounds.max.z; - - let url = '' + this.pcoGeometry.serverURL + - 'read?depthBegin=' + - (this.baseLoaded ? - (this.level + this.pcoGeometry.baseDepth) : 0) + - '&depthEnd=' + (this.level + this.pcoGeometry.baseDepth + 1) + - '&bounds=[' + boundsString + ']' + - '&schema=' + JSON.stringify(schema) + - '&compress=true'; - - if (this.scale) { - url += '&scale=' + this.scale; - } - - if (this.greyhoundOffset) { - let offset = this.greyhoundOffset; - url += '&offset=[' + offset.x + ',' + offset.y + ',' + offset.z + ']'; - } - - if (!this.baseLoaded) this.baseLoaded = true; - - return url; - }; - - addChild(child) { - this.children[child.index] = child; - child.parent = this; - }; - - load() { - if ( - this.loading === true || - this.loaded === true || - PotreeExports.numNodesLoading >= PotreeExports.maxNodesLoading) { - return; - } - - this.loading = true; - PotreeExports.numNodesLoading++; - - if ( - this.level % this.pcoGeometry.hierarchyStepSize === 0 && - this.hasChildren) { - this.loadHierarchyThenPoints(); - } else { - this.loadPoints(); - } - } - - loadPoints() { this.pcoGeometry.loader.load(this); }; - - loadHierarchyThenPoints() { - // From Greyhound (Cartesian) ordering for the octree to Potree-default - let transform = [0, 2, 1, 3, 4, 6, 5, 7]; - - let makeBitMask = function (node) { - let mask = 0; - Object.keys(node).forEach(function (key) { - if (key === 'swd') mask += 1 << transform[0]; - else if (key === 'nwd') mask += 1 << transform[1]; - else if (key === 'swu') mask += 1 << transform[2]; - else if (key === 'nwu') mask += 1 << transform[3]; - else if (key === 'sed') mask += 1 << transform[4]; - else if (key === 'ned') mask += 1 << transform[5]; - else if (key === 'seu') mask += 1 << transform[6]; - else if (key === 'neu') mask += 1 << transform[7]; - }); - return mask; - }; - - let parseChildrenCounts = function (base, parentName, stack) { - let keys = Object.keys(base); - let child; - let childName; - - keys.forEach(function (key) { - if (key === 'n') return; - switch (key) { - case 'swd': - child = base.swd; childName = parentName + transform[0]; - break; - case 'nwd': - child = base.nwd; childName = parentName + transform[1]; - break; - case 'swu': - child = base.swu; childName = parentName + transform[2]; - break; - case 'nwu': - child = base.nwu; childName = parentName + transform[3]; - break; - case 'sed': - child = base.sed; childName = parentName + transform[4]; - break; - case 'ned': - child = base.ned; childName = parentName + transform[5]; - break; - case 'seu': - child = base.seu; childName = parentName + transform[6]; - break; - case 'neu': - child = base.neu; childName = parentName + transform[7]; - break; - default: - break; - } - - stack.push({ - children: makeBitMask(child), - numPoints: child.n, - name: childName - }); - - parseChildrenCounts(child, childName, stack); - }); - }; - - // Load hierarchy. - let callback = function (node, greyhoundHierarchy) { - let decoded = []; - node.numPoints = greyhoundHierarchy.n; - parseChildrenCounts(greyhoundHierarchy, node.name, decoded); - - let nodes = {}; - nodes[node.name] = node; - let pgg = node.pcoGeometry; - - for (let i = 0; i < decoded.length; i++) { - let name = decoded[i].name; - let numPoints = decoded[i].numPoints; - let index = parseInt(name.charAt(name.length - 1)); - let parentName = name.substring(0, name.length - 1); - let parentNode = nodes[parentName]; - let level = name.length - 1; - let boundingBox = Potree.GreyhoundLoader.createChildAABB( - parentNode.boundingBox, index); - - let currentNode = new Potree.PointCloudGreyhoundGeometryNode( - name, pgg, boundingBox, node.scale, node.offset); - - currentNode.level = level; - currentNode.numPoints = numPoints; - currentNode.hasChildren = decoded[i].children > 0; - currentNode.spacing = pgg.spacing / Math.pow(2, level); - parentNode.addChild(currentNode); - nodes[name] = currentNode; - } - - node.loadPoints(); - }; - - if (this.level % this.pcoGeometry.hierarchyStepSize === 0) { - let depthBegin = this.level + this.pcoGeometry.baseDepth; - let depthEnd = depthBegin + this.pcoGeometry.hierarchyStepSize + 2; - - let bounds = this.greyhoundBounds; - - let boundsString = - bounds.min.x + ',' + bounds.min.y + ',' + bounds.min.z + ',' + - bounds.max.x + ',' + bounds.max.y + ',' + bounds.max.z; - - let hurl = '' + this.pcoGeometry.serverURL + - 'hierarchy?bounds=[' + boundsString + ']' + - '&depthBegin=' + depthBegin + - '&depthEnd=' + depthEnd; - - if (this.scale) { - hurl += '&scale=' + this.scale; - } - - if (this.greyhoundOffset) { - let offset = this.greyhoundOffset; - hurl += '&offset=[' + offset.x + ',' + offset.y + ',' + offset.z + ']'; - } - - let xhr = Potree.XHRFactory.createXMLHttpRequest(); - xhr.open('GET', hurl, true); - - let that = this; - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - let greyhoundHierarchy = JSON.parse(xhr.responseText) || { }; - callback(that, greyhoundHierarchy); - } else { - console.log( - 'Failed to load file! HTTP status:', xhr.status, - 'file:', hurl - ); - } - } - }; - - try { - xhr.send(null); - } catch (e) { - console.log('fehler beim laden der punktwolke: ' + e); - } - } - } - - getNumPoints() { return this.numPoints; }; - - dispose() { - if (this.geometry && this.parent != null) { - this.geometry.dispose(); - this.geometry = null; - this.loaded = false; - - // this.dispatchEvent( { type: 'dispose' } ); - for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) { - let handler = this.oneTimeDisposeHandlers[i]; - handler(); - } - this.oneTimeDisposeHandlers = []; - } - } -}; - -PointCloudGreyhoundGeometryNode.IDCount = 0; - diff --git a/app/static/app/js/vendor/potree/src/PointCloudOctree.js b/app/static/app/js/vendor/potree/src/PointCloudOctree.js deleted file mode 100644 index 425a82f5..00000000 --- a/app/static/app/js/vendor/potree/src/PointCloudOctree.js +++ /dev/null @@ -1,1020 +0,0 @@ -import {PointCloudTree, PointCloudTreeNode} from "./PointCloudTree.js"; -import {PointCloudOctreeGeometryNode} from "./PointCloudOctreeGeometry.js"; -import {Utils} from "./utils.js"; -import {PointCloudMaterial} from "./materials/PointCloudMaterial.js"; - - -export class PointCloudOctreeNode extends PointCloudTreeNode { - constructor () { - super(); - - //this.children = {}; - this.children = []; - this.sceneNode = null; - this.octree = null; - } - - getNumPoints () { - return this.geometryNode.numPoints; - } - - isLoaded () { - return true; - } - - isTreeNode () { - return true; - } - - isGeometryNode () { - return false; - } - - getLevel () { - return this.geometryNode.level; - } - - getBoundingSphere () { - return this.geometryNode.boundingSphere; - } - - getBoundingBox () { - return this.geometryNode.boundingBox; - } - - getChildren () { - let children = []; - - for (let i = 0; i < 8; i++) { - if (this.children[i]) { - children.push(this.children[i]); - } - } - - return children; - } - - getPointsInBox(boxNode){ - - if(!this.sceneNode){ - return null; - } - - let buffer = this.geometryNode.buffer; - - let posOffset = buffer.offset("position"); - let stride = buffer.stride; - let view = new DataView(buffer.data); - - let worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld); - let objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, this.sceneNode.matrixWorld); - - let inBox = []; - - let pos = new THREE.Vector4(); - for(let i = 0; i < buffer.numElements; i++){ - let x = view.getFloat32(i * stride + posOffset + 0, true); - let y = view.getFloat32(i * stride + posOffset + 4, true); - let z = view.getFloat32(i * stride + posOffset + 8, true); - - pos.set(x, y, z, 1); - pos.applyMatrix4(objectToBox); - - if(-0.5 < pos.x && pos.x < 0.5){ - if(-0.5 < pos.y && pos.y < 0.5){ - if(-0.5 < pos.z && pos.z < 0.5){ - pos.set(x, y, z, 1).applyMatrix4(this.sceneNode.matrixWorld); - inBox.push(new THREE.Vector3(pos.x, pos.y, pos.z)); - } - } - } - } - - return inBox; - } - - get name () { - return this.geometryNode.name; - } -}; - -export class PointCloudOctree extends PointCloudTree { - constructor (geometry, material) { - super(); - - this.pointBudget = Infinity; - this.pcoGeometry = geometry; - this.boundingBox = this.pcoGeometry.boundingBox; - this.boundingSphere = this.boundingBox.getBoundingSphere(new THREE.Sphere()); - this.material = material || new PointCloudMaterial(); - this.visiblePointsTarget = 2 * 1000 * 1000; - this.minimumNodePixelSize = 150; - this.level = 0; - this.position.copy(geometry.offset); - this.updateMatrix(); - - this.showBoundingBox = false; - this.boundingBoxNodes = []; - this.loadQueue = []; - this.visibleBounds = new THREE.Box3(); - this.visibleNodes = []; - this.visibleGeometry = []; - this.generateDEM = false; - this.profileRequests = []; - this.name = ''; - this._visible = true; - - { - let box = [this.pcoGeometry.tightBoundingBox, this.getBoundingBoxWorld()] - .find(v => v !== undefined); - - this.updateMatrixWorld(true); - box = Utils.computeTransformedBoundingBox(box, this.matrixWorld); - - let bMin = box.min.z; - let bMax = box.max.z; - this.material.heightMin = bMin; - this.material.heightMax = bMax; - } - - // TODO read projection from file instead - this.projection = geometry.projection; - this.fallbackProjection = geometry.fallbackProjection; - - this.root = this.pcoGeometry.root; - } - - setName (name) { - if (this.name !== name) { - this.name = name; - this.dispatchEvent({type: 'name_changed', name: name, pointcloud: this}); - } - } - - getName () { - return this.name; - } - - toTreeNode (geometryNode, parent) { - let node = new PointCloudOctreeNode(); - - // if(geometryNode.name === "r40206"){ - // console.log("creating node for r40206"); - // } - let sceneNode = new THREE.Points(geometryNode.geometry, this.material); - sceneNode.name = geometryNode.name; - sceneNode.position.copy(geometryNode.boundingBox.min); - sceneNode.frustumCulled = false; - sceneNode.onBeforeRender = (_this, scene, camera, geometry, material, group) => { - if (material.program) { - _this.getContext().useProgram(material.program.program); - - if (material.program.getUniforms().map.level) { - let level = geometryNode.getLevel(); - material.uniforms.level.value = level; - material.program.getUniforms().map.level.setValue(_this.getContext(), level); - } - - if (this.visibleNodeTextureOffsets && material.program.getUniforms().map.vnStart) { - let vnStart = this.visibleNodeTextureOffsets.get(node); - material.uniforms.vnStart.value = vnStart; - material.program.getUniforms().map.vnStart.setValue(_this.getContext(), vnStart); - } - - if (material.program.getUniforms().map.pcIndex) { - let i = node.pcIndex ? node.pcIndex : this.visibleNodes.indexOf(node); - material.uniforms.pcIndex.value = i; - material.program.getUniforms().map.pcIndex.setValue(_this.getContext(), i); - } - } - }; - - // { // DEBUG - // let sg = new THREE.SphereGeometry(1, 16, 16); - // let sm = new THREE.MeshNormalMaterial(); - // let s = new THREE.Mesh(sg, sm); - // s.scale.set(5, 5, 5); - // s.position.copy(geometryNode.mean) - // .add(this.position) - // .add(geometryNode.boundingBox.min); - // - // viewer.scene.scene.add(s); - // } - - node.geometryNode = geometryNode; - node.sceneNode = sceneNode; - node.pointcloud = this; - node.children = []; - //for (let key in geometryNode.children) { - // node.children[key] = geometryNode.children[key]; - //} - for(let i = 0; i < 8; i++){ - node.children[i] = geometryNode.children[i]; - } - - if (!parent) { - this.root = node; - this.add(sceneNode); - } else { - let childIndex = parseInt(geometryNode.name[geometryNode.name.length - 1]); - parent.sceneNode.add(sceneNode); - parent.children[childIndex] = node; - } - - let disposeListener = function () { - let childIndex = parseInt(geometryNode.name[geometryNode.name.length - 1]); - parent.sceneNode.remove(node.sceneNode); - parent.children[childIndex] = geometryNode; - }; - geometryNode.oneTimeDisposeHandlers.push(disposeListener); - - return node; - } - - updateVisibleBounds () { - let leafNodes = []; - for (let i = 0; i < this.visibleNodes.length; i++) { - let node = this.visibleNodes[i]; - let isLeaf = true; - - for (let j = 0; j < node.children.length; j++) { - let child = node.children[j]; - if (child instanceof PointCloudOctreeNode) { - isLeaf = isLeaf && !child.sceneNode.visible; - } else if (child instanceof PointCloudOctreeGeometryNode) { - isLeaf = true; - } - } - - if (isLeaf) { - leafNodes.push(node); - } - } - - this.visibleBounds.min = new THREE.Vector3(Infinity, Infinity, Infinity); - this.visibleBounds.max = new THREE.Vector3(-Infinity, -Infinity, -Infinity); - for (let i = 0; i < leafNodes.length; i++) { - let node = leafNodes[i]; - - this.visibleBounds.expandByPoint(node.getBoundingBox().min); - this.visibleBounds.expandByPoint(node.getBoundingBox().max); - } - } - - updateMaterial (material, visibleNodes, camera, renderer) { - material.fov = camera.fov * (Math.PI / 180); - material.screenWidth = renderer.domElement.clientWidth; - material.screenHeight = renderer.domElement.clientHeight; - material.spacing = this.pcoGeometry.spacing * Math.max(this.scale.x, this.scale.y, this.scale.z); - material.near = camera.near; - material.far = camera.far; - material.uniforms.octreeSize.value = this.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x; - } - - computeVisibilityTextureData(nodes, camera){ - - if(Potree.measureTimings) performance.mark("computeVisibilityTextureData-start"); - - let data = new Uint8Array(nodes.length * 4); - let visibleNodeTextureOffsets = new Map(); - - // copy array - nodes = nodes.slice(); - - // sort by level and index, e.g. r, r0, r3, r4, r01, r07, r30, ... - let sort = function (a, b) { - let na = a.geometryNode.name; - let nb = b.geometryNode.name; - if (na.length !== nb.length) return na.length - nb.length; - if (na < nb) return -1; - if (na > nb) return 1; - return 0; - }; - nodes.sort(sort); - - // code sample taken from three.js src/math/Ray.js - let v1 = new THREE.Vector3(); - let intersectSphereBack = (ray, sphere) => { - v1.subVectors( sphere.center, ray.origin ); - let tca = v1.dot( ray.direction ); - let d2 = v1.dot( v1 ) - tca * tca; - let radius2 = sphere.radius * sphere.radius; - - if(d2 > radius2){ - return null; - } - - let thc = Math.sqrt( radius2 - d2 ); - - // t1 = second intersect point - exit point on back of sphere - let t1 = tca + thc; - - if(t1 < 0 ){ - return null; - } - - return t1; - }; - - let lodRanges = new Map(); - let leafNodeLodRanges = new Map(); - - let bBox = new THREE.Box3(); - let bSphere = new THREE.Sphere(); - let worldDir = new THREE.Vector3(); - let cameraRay = new THREE.Ray(camera.position, camera.getWorldDirection(worldDir)); - - let nodeMap = new Map(); - let offsetsToChild = new Array(nodes.length).fill(Infinity); - - for(let i = 0; i < nodes.length; i++){ - let node = nodes[i]; - - nodeMap.set(node.name, node); - visibleNodeTextureOffsets.set(node, i); - - if(i > 0){ - let index = parseInt(node.name.slice(-1)); - let parentName = node.name.slice(0, -1); - let parent = nodeMap.get(parentName); - let parentOffset = visibleNodeTextureOffsets.get(parent); - - let parentOffsetToChild = (i - parentOffset); - - offsetsToChild[parentOffset] = Math.min(offsetsToChild[parentOffset], parentOffsetToChild); - - data[parentOffset * 4 + 0] = data[parentOffset * 4 + 0] | (1 << index); - data[parentOffset * 4 + 1] = (offsetsToChild[parentOffset] >> 8); - data[parentOffset * 4 + 2] = (offsetsToChild[parentOffset] % 256); - } - - data[i * 4 + 3] = node.name.length - 1; - } - - var a = 10; - - if(Potree.measureTimings){ - performance.mark("computeVisibilityTextureData-end"); - performance.measure("render.computeVisibilityTextureData", "computeVisibilityTextureData-start", "computeVisibilityTextureData-end"); - } - - return { - data: data, - offsets: visibleNodeTextureOffsets - }; - } - - nodeIntersectsProfile (node, profile) { - let bbWorld = node.boundingBox.clone().applyMatrix4(this.matrixWorld); - let bsWorld = bbWorld.getBoundingSphere(new THREE.Sphere()); - - let intersects = false; - - for (let i = 0; i < profile.points.length - 1; i++) { - - let start = new THREE.Vector3(profile.points[i + 0].x, profile.points[i + 0].y, bsWorld.center.z); - let end = new THREE.Vector3(profile.points[i + 1].x, profile.points[i + 1].y, bsWorld.center.z); - - let closest = new THREE.Line3(start, end).closestPointToPoint(bsWorld.center, true, new THREE.Vector3()); - let distance = closest.distanceTo(bsWorld.center); - - intersects = intersects || (distance < (bsWorld.radius + profile.width)); - } - - //console.log(`${node.name}: ${intersects}`); - - return intersects; - } - - nodesOnRay (nodes, ray) { - let nodesOnRay = []; - - let _ray = ray.clone(); - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i]; - // let inverseWorld = new THREE.Matrix4().getInverse(node.matrixWorld); - // let sphere = node.getBoundingSphere().clone().applyMatrix4(node.sceneNode.matrixWorld); - let sphere = node.getBoundingSphere().clone().applyMatrix4(this.matrixWorld); - - if (_ray.intersectsSphere(sphere)) { - nodesOnRay.push(node); - } - } - - return nodesOnRay; - } - - updateMatrixWorld (force) { - if (this.matrixAutoUpdate === true) this.updateMatrix(); - - if (this.matrixWorldNeedsUpdate === true || force === true) { - if (!this.parent) { - this.matrixWorld.copy(this.matrix); - } else { - this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); - } - - this.matrixWorldNeedsUpdate = false; - - force = true; - } - } - - hideDescendants (object) { - let stack = []; - for (let i = 0; i < object.children.length; i++) { - let child = object.children[i]; - if (child.visible) { - stack.push(child); - } - } - - while (stack.length > 0) { - let object = stack.shift(); - - object.visible = false; - - for (let i = 0; i < object.children.length; i++) { - let child = object.children[i]; - if (child.visible) { - stack.push(child); - } - } - } - } - - moveToOrigin () { - this.position.set(0, 0, 0); - this.updateMatrixWorld(true); - let box = this.boundingBox; - let transform = this.matrixWorld; - let tBox = Utils.computeTransformedBoundingBox(box, transform); - this.position.set(0, 0, 0).sub(tBox.getCenter(new THREE.Vector3())); - }; - - moveToGroundPlane () { - this.updateMatrixWorld(true); - let box = this.boundingBox; - let transform = this.matrixWorld; - let tBox = Utils.computeTransformedBoundingBox(box, transform); - this.position.y += -tBox.min.y; - }; - - getBoundingBoxWorld () { - this.updateMatrixWorld(true); - let box = this.boundingBox; - let transform = this.matrixWorld; - let tBox = Utils.computeTransformedBoundingBox(box, transform); - - return tBox; - }; - - /** - * returns points inside the profile points - * - * maxDepth: search points up to the given octree depth - * - * - * The return value is an array with all segments of the profile path - * let segment = { - * start: THREE.Vector3, - * end: THREE.Vector3, - * points: {} - * project: function() - * }; - * - * The project() function inside each segment can be used to transform - * that segments point coordinates to line up along the x-axis. - * - * - */ - getPointsInProfile (profile, maxDepth, callback) { - if (callback) { - let request = new Potree.ProfileRequest(this, profile, maxDepth, callback); - this.profileRequests.push(request); - - return request; - } - - let points = { - segments: [], - boundingBox: new THREE.Box3(), - projectedBoundingBox: new THREE.Box2() - }; - - // evaluate segments - for (let i = 0; i < profile.points.length - 1; i++) { - let start = profile.points[i]; - let end = profile.points[i + 1]; - let ps = this.getProfile(start, end, profile.width, maxDepth); - - let segment = { - start: start, - end: end, - points: ps, - project: null - }; - - points.segments.push(segment); - - points.boundingBox.expandByPoint(ps.boundingBox.min); - points.boundingBox.expandByPoint(ps.boundingBox.max); - } - - // add projection functions to the segments - let mileage = new THREE.Vector3(); - for (let i = 0; i < points.segments.length; i++) { - let segment = points.segments[i]; - let start = segment.start; - let end = segment.end; - - let project = (function (_start, _end, _mileage, _boundingBox) { - let start = _start; - let end = _end; - let mileage = _mileage; - let boundingBox = _boundingBox; - - let xAxis = new THREE.Vector3(1, 0, 0); - let dir = new THREE.Vector3().subVectors(end, start); - dir.y = 0; - dir.normalize(); - let alpha = Math.acos(xAxis.dot(dir)); - if (dir.z > 0) { - alpha = -alpha; - } - - return function (position) { - let toOrigin = new THREE.Matrix4().makeTranslation(-start.x, -boundingBox.min.y, -start.z); - let alignWithX = new THREE.Matrix4().makeRotationY(-alpha); - let applyMileage = new THREE.Matrix4().makeTranslation(mileage.x, 0, 0); - - let pos = position.clone(); - pos.applyMatrix4(toOrigin); - pos.applyMatrix4(alignWithX); - pos.applyMatrix4(applyMileage); - - return pos; - }; - }(start, end, mileage.clone(), points.boundingBox.clone())); - - segment.project = project; - - mileage.x += new THREE.Vector3(start.x, 0, start.z).distanceTo(new THREE.Vector3(end.x, 0, end.z)); - mileage.y += end.y - start.y; - } - - points.projectedBoundingBox.min.x = 0; - points.projectedBoundingBox.min.y = points.boundingBox.min.y; - points.projectedBoundingBox.max.x = mileage.x; - points.projectedBoundingBox.max.y = points.boundingBox.max.y; - - return points; - } - - /** - * returns points inside the given profile bounds. - * - * start: - * end: - * width: - * depth: search points up to the given octree depth - * callback: if specified, points are loaded before searching - * - * - */ - getProfile (start, end, width, depth, callback) { - let request = new Potree.ProfileRequest(start, end, width, depth, callback); - this.profileRequests.push(request); - }; - - getVisibleExtent () { - return this.visibleBounds.applyMatrix4(this.matrixWorld); - }; - - /** - * - * - * - * params.pickWindowSize: Look for points inside a pixel window of this size. - * Use odd values: 1, 3, 5, ... - * - * - * TODO: only draw pixels that are actually read with readPixels(). - * - */ - pick(viewer, camera, ray, params = {}){ - - let renderer = viewer.renderer; - let pRenderer = viewer.pRenderer; - - performance.mark("pick-start"); - - let getVal = (a, b) => a !== undefined ? a : b; - - let pickWindowSize = getVal(params.pickWindowSize, 17); - let pickOutsideClipRegion = getVal(params.pickOutsideClipRegion, false); - - pickWindowSize = 65; - - let size = renderer.getSize(); - - let width = Math.ceil(getVal(params.width, size.width)); - let height = Math.ceil(getVal(params.height, size.height)); - - let pointSizeType = getVal(params.pointSizeType, this.material.pointSizeType); - let pointSize = getVal(params.pointSize, this.material.size); - - let nodes = this.nodesOnRay(this.visibleNodes, ray); - - if (nodes.length === 0) { - return null; - } - - if (!this.pickState) { - let scene = new THREE.Scene(); - - let material = new Potree.PointCloudMaterial(); - material.pointColorType = Potree.PointColorType.POINT_INDEX; - - let renderTarget = new THREE.WebGLRenderTarget( - 1, 1, - { minFilter: THREE.LinearFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat } - ); - - this.pickState = { - renderTarget: renderTarget, - material: material, - scene: scene - }; - }; - - let pickState = this.pickState; - let pickMaterial = pickState.material; - - { // update pick material - pickMaterial.pointSizeType = pointSizeType; - pickMaterial.shape = this.material.shape; - - pickMaterial.uniforms.uFilterReturnNumberRange.value = this.material.uniforms.uFilterReturnNumberRange.value; - pickMaterial.uniforms.uFilterNumberOfReturnsRange.value = this.material.uniforms.uFilterNumberOfReturnsRange.value; - pickMaterial.uniforms.uFilterGPSTimeClipRange.value = this.material.uniforms.uFilterGPSTimeClipRange.value; - - pickMaterial.size = pointSize; - pickMaterial.uniforms.minSize.value = this.material.uniforms.minSize.value; - pickMaterial.uniforms.maxSize.value = this.material.uniforms.maxSize.value; - pickMaterial.classification = this.material.classification; - if(params.pickClipped){ - pickMaterial.clipBoxes = this.material.clipBoxes; - pickMaterial.uniforms.clipBoxes = this.material.uniforms.clipBoxes; - if(this.material.clipTask === Potree.ClipTask.HIGHLIGHT){ - pickMaterial.clipTask = Potree.ClipTask.NONE; - }else{ - pickMaterial.clipTask = this.material.clipTask; - } - pickMaterial.clipMethod = this.material.clipMethod; - }else{ - pickMaterial.clipBoxes = []; - } - - this.updateMaterial(pickMaterial, nodes, camera, renderer); - } - - //pickMaterial.pointColorType = Potree.PointColorType.LOD; - - pickState.renderTarget.setSize(width, height); - - let pixelPos = new THREE.Vector2(params.x, params.y); - - let gl = renderer.getContext(); - gl.enable(gl.SCISSOR_TEST); - gl.scissor( - parseInt(pixelPos.x - (pickWindowSize - 1) / 2), - parseInt(pixelPos.y - (pickWindowSize - 1) / 2), - parseInt(pickWindowSize), parseInt(pickWindowSize)); - - - renderer.state.buffers.depth.setTest(pickMaterial.depthTest); - renderer.state.buffers.depth.setMask(pickMaterial.depthWrite); - renderer.state.setBlending(THREE.NoBlending); - - { // RENDER - renderer.setRenderTarget(pickState.renderTarget); - gl.clearColor(0, 0, 0, 0); - renderer.clearTarget( pickState.renderTarget, true, true, true ); - - let tmp = this.material; - this.material = pickMaterial; - - pRenderer.renderOctree(this, nodes, camera, pickState.renderTarget); - - this.material = tmp; - } - - let clamp = (number, min, max) => Math.min(Math.max(min, number), max); - - let x = parseInt(clamp(pixelPos.x - (pickWindowSize - 1) / 2, 0, width)); - let y = parseInt(clamp(pixelPos.y - (pickWindowSize - 1) / 2, 0, height)); - let w = parseInt(Math.min(x + pickWindowSize, width) - x); - let h = parseInt(Math.min(y + pickWindowSize, height) - y); - - let pixelCount = w * h; - let buffer = new Uint8Array(4 * pixelCount); - - gl.readPixels(x, y, pickWindowSize, pickWindowSize, gl.RGBA, gl.UNSIGNED_BYTE, buffer); - - renderer.setRenderTarget(null); - renderer.state.reset(); - renderer.setScissorTest(false); - gl.disable(gl.SCISSOR_TEST); - - let pixels = buffer; - let ibuffer = new Uint32Array(buffer.buffer); - - // find closest hit inside pixelWindow boundaries - let min = Number.MAX_VALUE; - let hits = []; - for (let u = 0; u < pickWindowSize; u++) { - for (let v = 0; v < pickWindowSize; v++) { - let offset = (u + v * pickWindowSize); - let distance = Math.pow(u - (pickWindowSize - 1) / 2, 2) + Math.pow(v - (pickWindowSize - 1) / 2, 2); - - let pcIndex = pixels[4 * offset + 3]; - pixels[4 * offset + 3] = 0; - let pIndex = ibuffer[offset]; - - if(!(pcIndex === 0 && pIndex === 0) && (pcIndex !== undefined) && (pIndex !== undefined)){ - let hit = { - pIndex: pIndex, - pcIndex: pcIndex, - distanceToCenter: distance - }; - - if(params.all){ - hits.push(hit); - }else{ - if(hits.length > 0){ - if(distance < hits[0].distanceToCenter){ - hits[0] = hit; - } - }else{ - hits.push(hit); - } - } - - - } - } - } - - // DEBUG: show panel with pick image - //{ - // let img = Utils.pixelsArrayToImage(buffer, w, h); - // let screenshot = img.src; - // - // if(!this.debugDIV){ - // this.debugDIV = $(` - //
      `); - // $(document.body).append(this.debugDIV); - // } - // - // this.debugDIV.empty(); - // this.debugDIV.append($(``)); - // //$(this.debugWindow.document).append($(``)); - // //this.debugWindow.document.write(''); - //} - - - for(let hit of hits){ - let point = {}; - - if (!nodes[hit.pcIndex]) { - return null; - } - - let node = nodes[hit.pcIndex]; - let pc = node.sceneNode; - let geometry = node.geometryNode.geometry; - - for(let attributeName in geometry.attributes){ - let attribute = geometry.attributes[attributeName]; - - if (attributeName === 'position') { - let x = attribute.array[3 * hit.pIndex + 0]; - let y = attribute.array[3 * hit.pIndex + 1]; - let z = attribute.array[3 * hit.pIndex + 2]; - - let position = new THREE.Vector3(x, y, z); - position.applyMatrix4(pc.matrixWorld); - - point[attributeName] = position; - } else if (attributeName === 'indices') { - - } else if (attributeName === 'gpsTime') { - let values = attribute.array.slice(attribute.itemSize * hit.pIndex, attribute.itemSize * (hit.pIndex + 1)) ; - - values[0] += node.geometryNode.gpsTime.offset; - - point[attributeName] = values; - } else { - - let values = attribute.array.slice(attribute.itemSize * hit.pIndex, attribute.itemSize * (hit.pIndex + 1)) ; - point[attributeName] = values; - - //debugger; - //if (values.itemSize === 1) { - // point[attribute.name] = values.array[hit.pIndex]; - //} else { - // let value = []; - // for (let j = 0; j < values.itemSize; j++) { - // value.push(values.array[values.itemSize * hit.pIndex + j]); - // } - // point[attribute.name] = value; - //} - } - - } - - hit.point = point; - } - - performance.mark("pick-end"); - performance.measure("pick", "pick-start", "pick-end"); - - if(params.all){ - return hits.map(hit => hit.point); - }else{ - if(hits.length === 0){ - return null; - }else{ - return hits[0].point; - //let sorted = hits.sort( (a, b) => a.distanceToCenter - b.distanceToCenter); - - //return sorted[0].point; - } - } - - }; - - * getFittedBoxGen(boxNode){ - let start = performance.now(); - - let shrinkedLocalBounds = new THREE.Box3(); - let worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld); - - for(let node of this.visibleNodes){ - if(!node.sceneNode){ - continue; - } - - let buffer = node.geometryNode.buffer; - - let posOffset = buffer.offset("position"); - let stride = buffer.stride; - let view = new DataView(buffer.data); - - let objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, node.sceneNode.matrixWorld); - - let pos = new THREE.Vector4(); - for(let i = 0; i < buffer.numElements; i++){ - let x = view.getFloat32(i * stride + posOffset + 0, true); - let y = view.getFloat32(i * stride + posOffset + 4, true); - let z = view.getFloat32(i * stride + posOffset + 8, true); - - pos.set(x, y, z, 1); - pos.applyMatrix4(objectToBox); - - if(-0.5 < pos.x && pos.x < 0.5){ - if(-0.5 < pos.y && pos.y < 0.5){ - if(-0.5 < pos.z && pos.z < 0.5){ - shrinkedLocalBounds.expandByPoint(pos); - } - } - } - } - - yield; - } - - let fittedPosition = shrinkedLocalBounds.getCenter(new THREE.Vector3()).applyMatrix4(boxNode.matrixWorld); - - let fitted = new THREE.Object3D(); - fitted.position.copy(fittedPosition); - fitted.scale.copy(boxNode.scale); - fitted.rotation.copy(boxNode.rotation); - - let ds = new THREE.Vector3().subVectors(shrinkedLocalBounds.max, shrinkedLocalBounds.min); - fitted.scale.multiply(ds); - - let duration = performance.now() - start; - console.log("duration: ", duration); - - yield fitted; - } - - getFittedBox(boxNode, maxLevel = Infinity){ - - maxLevel = Infinity; - - let start = performance.now(); - - let shrinkedLocalBounds = new THREE.Box3(); - let worldToBox = new THREE.Matrix4().getInverse(boxNode.matrixWorld); - - for(let node of this.visibleNodes){ - if(!node.sceneNode || node.getLevel() > maxLevel){ - continue; - } - - let buffer = node.geometryNode.buffer; - - let posOffset = buffer.offset("position"); - let stride = buffer.stride; - let view = new DataView(buffer.data); - - let objectToBox = new THREE.Matrix4().multiplyMatrices(worldToBox, node.sceneNode.matrixWorld); - - let pos = new THREE.Vector4(); - for(let i = 0; i < buffer.numElements; i++){ - let x = view.getFloat32(i * stride + posOffset + 0, true); - let y = view.getFloat32(i * stride + posOffset + 4, true); - let z = view.getFloat32(i * stride + posOffset + 8, true); - - pos.set(x, y, z, 1); - pos.applyMatrix4(objectToBox); - - if(-0.5 < pos.x && pos.x < 0.5){ - if(-0.5 < pos.y && pos.y < 0.5){ - if(-0.5 < pos.z && pos.z < 0.5){ - shrinkedLocalBounds.expandByPoint(pos); - } - } - } - } - } - - let fittedPosition = shrinkedLocalBounds.getCenter(new THREE.Vector3()).applyMatrix4(boxNode.matrixWorld); - - let fitted = new THREE.Object3D(); - fitted.position.copy(fittedPosition); - fitted.scale.copy(boxNode.scale); - fitted.rotation.copy(boxNode.rotation); - - let ds = new THREE.Vector3().subVectors(shrinkedLocalBounds.max, shrinkedLocalBounds.min); - fitted.scale.multiply(ds); - - let duration = performance.now() - start; - console.log("duration: ", duration); - - return fitted; - } - - get progress () { - return this.visibleNodes.length / this.visibleGeometry.length; - } - - find(name){ - let node = null; - for(let char of name){ - if(char === "r"){ - node = this.root; - }else{ - node = node.children[char]; - } - } - - return node; - } - - get visible(){ - return this._visible; - } - - set visible(value){ - - if(value !== this._visible){ - this._visible = value; - - this.dispatchEvent({type: 'visibility_changed', pointcloud: this}); - } - - } - -} - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/src/PointCloudOctreeGeometry.js b/app/static/app/js/vendor/potree/src/PointCloudOctreeGeometry.js deleted file mode 100644 index c1a4ce52..00000000 --- a/app/static/app/js/vendor/potree/src/PointCloudOctreeGeometry.js +++ /dev/null @@ -1,256 +0,0 @@ -import {PointCloudTreeNode} from "./PointCloudTree.js"; -import {XHRFactory} from "./XHRFactory.js"; -import {Utils} from "./utils.js"; - -export class PointCloudOctreeGeometry{ - - constructor(){ - this.url = null; - this.octreeDir = null; - this.spacing = 0; - this.boundingBox = null; - this.root = null; - this.nodes = null; - this.pointAttributes = null; - this.hierarchyStepSize = -1; - this.loader = null; - } - -} - -export class PointCloudOctreeGeometryNode extends PointCloudTreeNode{ - - constructor(name, pcoGeometry, boundingBox){ - super(); - - this.id = PointCloudOctreeGeometryNode.IDCount++; - this.name = name; - this.index = parseInt(name.charAt(name.length - 1)); - this.pcoGeometry = pcoGeometry; - this.geometry = null; - this.boundingBox = boundingBox; - this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere()); - this.children = {}; - this.numPoints = 0; - this.level = null; - this.loaded = false; - this.oneTimeDisposeHandlers = []; - } - - isGeometryNode(){ - return true; - } - - getLevel(){ - return this.level; - } - - isTreeNode(){ - return false; - } - - isLoaded(){ - return this.loaded; - } - - getBoundingSphere(){ - return this.boundingSphere; - } - - getBoundingBox(){ - return this.boundingBox; - } - - getChildren(){ - let children = []; - - for (let i = 0; i < 8; i++) { - if (this.children[i]) { - children.push(this.children[i]); - } - } - - return children; - } - - getBoundingBox(){ - return this.boundingBox; - } - - getURL(){ - let url = ''; - - let version = this.pcoGeometry.loader.version; - - if (version.equalOrHigher('1.5')) { - url = this.pcoGeometry.octreeDir + '/' + this.getHierarchyPath() + '/' + this.name; - } else if (version.equalOrHigher('1.4')) { - url = this.pcoGeometry.octreeDir + '/' + this.name; - } else if (version.upTo('1.3')) { - url = this.pcoGeometry.octreeDir + '/' + this.name; - } - - return url; - } - - getHierarchyPath(){ - let path = 'r/'; - - let hierarchyStepSize = this.pcoGeometry.hierarchyStepSize; - let indices = this.name.substr(1); - - let numParts = Math.floor(indices.length / hierarchyStepSize); - for (let i = 0; i < numParts; i++) { - path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/'; - } - - path = path.slice(0, -1); - - return path; - } - - addChild(child) { - this.children[child.index] = child; - child.parent = this; - } - - load(){ - if (this.loading === true || this.loaded === true || PotreeExports.numNodesLoading >= PotreeExports.maxNodesLoading) { - return; - } - - this.loading = true; - - PotreeExports.numNodesLoading++; - - if (this.pcoGeometry.loader.version.equalOrHigher('1.5')) { - if ((this.level % this.pcoGeometry.hierarchyStepSize) === 0 && this.hasChildren) { - this.loadHierachyThenPoints(); - } else { - this.loadPoints(); - } - } else { - this.loadPoints(); - } - } - - loadPoints(){ - this.pcoGeometry.loader.load(this); - } - - loadHierachyThenPoints(){ - let node = this; - - // load hierarchy - let callback = function (node, hbuffer) { - let view = new DataView(hbuffer); - - let stack = []; - let children = view.getUint8(0); - let numPoints = view.getUint32(1, true); - node.numPoints = numPoints; - stack.push({children: children, numPoints: numPoints, name: node.name}); - - let decoded = []; - - let offset = 5; - while (stack.length > 0) { - let snode = stack.shift(); - let mask = 1; - for (let i = 0; i < 8; i++) { - if ((snode.children & mask) !== 0) { - let childName = snode.name + i; - - let childChildren = view.getUint8(offset); - let childNumPoints = view.getUint32(offset + 1, true); - - stack.push({children: childChildren, numPoints: childNumPoints, name: childName}); - - decoded.push({children: childChildren, numPoints: childNumPoints, name: childName}); - - offset += 5; - } - - mask = mask * 2; - } - - if (offset === hbuffer.byteLength) { - break; - } - } - - // console.log(decoded); - - let nodes = {}; - nodes[node.name] = node; - let pco = node.pcoGeometry; - - for (let i = 0; i < decoded.length; i++) { - let name = decoded[i].name; - let decodedNumPoints = decoded[i].numPoints; - let index = parseInt(name.charAt(name.length - 1)); - let parentName = name.substring(0, name.length - 1); - let parentNode = nodes[parentName]; - let level = name.length - 1; - let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index); - - let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox); - currentNode.level = level; - currentNode.numPoints = decodedNumPoints; - currentNode.hasChildren = decoded[i].children > 0; - currentNode.spacing = pco.spacing / Math.pow(2, level); - parentNode.addChild(currentNode); - nodes[name] = currentNode; - } - - node.loadPoints(); - }; - if ((node.level % node.pcoGeometry.hierarchyStepSize) === 0) { - // let hurl = node.pcoGeometry.octreeDir + "/../hierarchy/" + node.name + ".hrc"; - let hurl = node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc'; - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', hurl, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - let hbuffer = xhr.response; - callback(node, hbuffer); - } else { - console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl); - PotreeExports.numNodesLoading--; - } - } - }; - try { - xhr.send(null); - } catch (e) { - console.log('fehler beim laden der punktwolke: ' + e); - } - } - } - - getNumPoints(){ - return this.numPoints; - } - - dispose(){ - if (this.geometry && this.parent != null) { - this.geometry.dispose(); - this.geometry = null; - this.loaded = false; - - // this.dispatchEvent( { type: 'dispose' } ); - for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) { - let handler = this.oneTimeDisposeHandlers[i]; - handler(); - } - this.oneTimeDisposeHandlers = []; - } - } - -} - -PointCloudOctreeGeometryNode.IDCount = 0; diff --git a/app/static/app/js/vendor/potree/src/PointCloudTree.js b/app/static/app/js/vendor/potree/src/PointCloudTree.js deleted file mode 100644 index 9482ae6c..00000000 --- a/app/static/app/js/vendor/potree/src/PointCloudTree.js +++ /dev/null @@ -1,48 +0,0 @@ -import { EventDispatcher } from "./EventDispatcher"; - - -export class PointCloudTreeNode extends EventDispatcher{ - - constructor(){ - super(); - this.needsTransformUpdate = true; - } - - getChildren () { - throw new Error('override function'); - } - - getBoundingBox () { - throw new Error('override function'); - } - - isLoaded () { - throw new Error('override function'); - } - - isGeometryNode () { - throw new Error('override function'); - } - - isTreeNode () { - throw new Error('override function'); - } - - getLevel () { - throw new Error('override function'); - } - - getBoundingSphere () { - throw new Error('override function'); - } -}; - -export class PointCloudTree extends THREE.Object3D { - constructor () { - super(); - } - - initialized () { - return this.root !== null; - } -}; diff --git a/app/static/app/js/vendor/potree/src/Points.js b/app/static/app/js/vendor/potree/src/Points.js deleted file mode 100644 index 553df53d..00000000 --- a/app/static/app/js/vendor/potree/src/Points.js +++ /dev/null @@ -1,47 +0,0 @@ -export class Points { - - constructor () { - this.boundingBox = new THREE.Box3(); - this.numPoints = 0; - this.data = {}; - } - - add (points) { - let currentSize = this.numPoints; - let additionalSize = points.numPoints; - let newSize = currentSize + additionalSize; - - let thisAttributes = Object.keys(this.data); - let otherAttributes = Object.keys(points.data); - let attributes = new Set([...thisAttributes, ...otherAttributes]); - - for (let attribute of attributes) { - if (thisAttributes.includes(attribute) && otherAttributes.includes(attribute)) { - // attribute in both, merge - let Type = this.data[attribute].constructor; - let merged = new Type(this.data[attribute].length + points.data[attribute].length); - merged.set(this.data[attribute], 0); - merged.set(points.data[attribute], this.data[attribute].length); - this.data[attribute] = merged; - } else if (thisAttributes.includes(attribute) && !otherAttributes.includes(attribute)) { - // attribute only in this; take over this and expand to new size - let elementsPerPoint = this.data[attribute].length / this.numPoints; - let Type = this.data[attribute].constructor; - let expanded = new Type(elementsPerPoint * newSize); - expanded.set(this.data[attribute], 0); - this.data[attribute] = expanded; - } else if (!thisAttributes.includes(attribute) && otherAttributes.includes(attribute)) { - // attribute only in points to be added; take over new points and expand to new size - let elementsPerPoint = points.data[attribute].length / points.numPoints; - let Type = points.data[attribute].constructor; - let expanded = new Type(elementsPerPoint * newSize); - expanded.set(points.data[attribute], elementsPerPoint * currentSize); - this.data[attribute] = expanded; - } - } - - this.numPoints = newSize; - - this.boundingBox.union(points.boundingBox); - } -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/Potree.js b/app/static/app/js/vendor/potree/src/Potree.js deleted file mode 100644 index 48191719..00000000 --- a/app/static/app/js/vendor/potree/src/Potree.js +++ /dev/null @@ -1,241 +0,0 @@ -import '@babel/runtime/regenerator'; -import BinaryHeap from '../libs/BinaryHeap'; -import TWEEN from 'tween.js'; -import $ from 'jquery'; -import '../libs/jquery-ui'; - -export * from "./Actions.js"; -export * from "./AnimationPath.js"; -export * from "./Annotation.js"; -export * from "./defines.js"; -export * from "./Enum.js"; -export * from "./EventDispatcher.js"; -export * from "./Features.js"; -export * from "./KeyCodes.js"; -export * from "./LRU.js"; -export * from "./PointCloudEptGeometry.js"; -export * from "./PointCloudGreyhoundGeometry.js"; -export * from "./PointCloudOctree.js"; -export * from "./PointCloudOctreeGeometry.js"; -export * from "./PointCloudTree.js"; -export * from "./Points.js"; -export * from "./Potree_update_visibility.js"; -export * from "./PotreeRenderer.js"; -export * from "./ProfileRequest.js"; -export * from "./TextSprite.js"; -export * from "./utils.js"; -export * from "./Version.js"; -export * from "./WorkerPool.js"; -export * from "./XHRFactory.js"; - -export * from "./materials/ClassificationScheme.js"; -export * from "./materials/EyeDomeLightingMaterial.js"; -export * from "./materials/Gradients.js"; -export * from "./materials/NormalizationEDLMaterial.js"; -export * from "./materials/NormalizationMaterial.js"; -export * from "./materials/PointCloudMaterial.js"; - -export * from "./loader/POCLoader.js"; -export * from "./loader/EptLoader.js"; -export * from "./loader/ept/BinaryLoader.js"; -export * from "./loader/ept/LaszipLoader.js"; -export * from "./loader/ept/ZstandardLoader.js"; -export * from "./loader/GreyhoundBinaryLoader.js"; -export * from "./loader/GreyhoundLoader.js"; -export * from "./loader/PointAttributes.js"; - -export * from "./utils/Box3Helper.js"; -export * from "./utils/ClippingTool.js"; -export * from "./utils/ClipVolume.js"; -export * from "./utils/GeoTIFF.js"; -export * from "./utils/Measure.js"; -export * from "./utils/MeasuringTool.js"; -export * from "./utils/Message.js"; -export * from "./utils/PointCloudSM.js"; -export * from "./utils/PolygonClipVolume.js"; -export * from "./utils/Profile.js"; -export * from "./utils/ProfileTool.js"; -export * from "./utils/ScreenBoxSelectTool.js"; -export * from "./utils/SpotLightHelper.js"; -export * from "./utils/toInterleavedBufferAttribute.js"; -export * from "./utils/TransformationTool.js"; -export * from "./utils/Volume.js"; -export * from "./utils/VolumeTool.js"; - -export * from "./viewer/viewer.js"; -export * from "./viewer/Scene.js"; - -import "./extensions/OrthographicCamera.js"; -import "./extensions/PerspectiveCamera.js"; -import "./extensions/Ray.js"; - -import {PointColorType} from "./defines"; -import {Enum} from "./Enum"; -import {LRU} from "./LRU"; -import {POCLoader} from "./loader/POCLoader"; -import {GreyhoundLoader} from "./loader/GreyhoundLoader"; -import {EptLoader} from "./loader/EptLoader"; -import {PointCloudOctree} from "./PointCloudOctree"; -import {WorkerPool} from "./WorkerPool"; - -export const workerPool = new WorkerPool(); - -export const version = { - major: 1, - minor: 6, - suffix: '' -}; - -let getUrl = window.location; -let baseUrl = getUrl.protocol + "//" + getUrl.host; - -let scriptPath = baseUrl + "/static/app/js/vendor/potree/build"; -let resourcePath = scriptPath + '/resources'; - -window.PotreeExports = { - lru: new LRU(), - pointBudget: 1 * 1000 * 1000, - framenumber: 0, - numNodesLoading: 0, - maxNodesLoading: 4, - debug: {}, - resourcePath -} - -console.log('Potree ' + version.major + '.' + version.minor + version.suffix); - -export {scriptPath, resourcePath}; - -export function loadPointCloud(path, name, callback){ - let loaded = function(pointcloud){ - pointcloud.name = name; - callback({type: 'pointcloud_loaded', pointcloud: pointcloud}); - }; - - // load pointcloud - if (!path){ - // TODO: callback? comment? Hello? Bueller? Anyone? - } else if (path.indexOf('ept.json') > 0) { - Potree.EptLoader.load(path, function(geometry) { - if (!geometry) { - callback({type: 'loading_failed'}); - console.error(new Error(`failed to load point cloud from URL: ${path}`)); - } - else { - let pointcloud = new PointCloudOctree(geometry); - loaded(pointcloud); - } - }); - } else if (path.indexOf('greyhound://') === 0){ - // We check if the path string starts with 'greyhound:', if so we assume it's a greyhound server URL. - GreyhoundLoader.load(path, function (geometry) { - if (!geometry) { - callback({type: 'loading_failed'}); - console.error(new Error(`failed to load point cloud from URL: ${path}`)); - } else { - let pointcloud = new PointCloudOctree(geometry); - loaded(pointcloud); - } - }); - } else if (path.indexOf('cloud.js') > 0) { - POCLoader.load(path, function (geometry) { - if (!geometry) { - callback({type: 'loading_failed'}); - console.error(new Error(`failed to load point cloud from URL: ${path}`)); - } else { - let pointcloud = new PointCloudOctree(geometry); - loaded(pointcloud); - } - }); - } else if (path.indexOf('.vpc') > 0) { - PointCloudArena4DGeometry.load(path, function (geometry) { - if (!geometry) { - callback({type: 'loading_failed'}); - console.error(new Error(`failed to load point cloud from URL: ${path}`)); - } else { - let pointcloud = new PointCloudArena4D(geometry); - loaded(pointcloud); - } - }); - } else { - callback({'type': 'loading_failed'}); - console.error(new Error(`failed to load point cloud from URL: ${path}`)); - } -}; - - -// add selectgroup -(function($){ - $.fn.extend({ - selectgroup: function(args = {}){ - - let elGroup = $(this); - let rootID = elGroup.prop("id"); - let groupID = `${rootID}`; - let groupTitle = (args.title !== undefined) ? args.title : ""; - - let elButtons = []; - elGroup.find("option").each((index, value) => { - let buttonID = $(value).prop("id"); - let label = $(value).html(); - let optionValue = $(value).prop("value"); - - let elButton = $(` - - - - - `); - let elLabel = elButton.find("label"); - let elInput = elButton.find("input"); - - elInput.change( () => { - elGroup.find("label").removeClass("ui-state-active"); - elGroup.find("label").addClass("ui-state-default"); - if(elInput.is(":checked")){ - elLabel.addClass("ui-state-active"); - }else{ - //elLabel.addClass("ui-state-default"); - } - }); - - elButtons.push(elButton); - }); - - let elFieldset = $(` -
      - ${groupTitle} - - - -
      - `); - - let elButtonContainer = elFieldset.find("span"); - for(let elButton of elButtons){ - elButtonContainer.append(elButton); - } - - elButtonContainer.find("label").each( (index, value) => { - $(value).css("margin", "0px"); - $(value).css("border-radius", "0px"); - $(value).css("border", "1px solid black"); - $(value).css("border-left", "none"); - }); - elButtonContainer.find("label:first").each( (index, value) => { - $(value).css("border-radius", "4px 0px 0px 4px"); - - }); - elButtonContainer.find("label:last").each( (index, value) => { - $(value).css("border-radius", "0px 4px 4px 0px"); - $(value).css("border-left", "none"); - }); - - elGroup.empty(); - elGroup.append(elFieldset); - - - - } - }); -})(jQuery); diff --git a/app/static/app/js/vendor/potree/src/PotreeRenderer.js b/app/static/app/js/vendor/potree/src/PotreeRenderer.js deleted file mode 100644 index fbb2ba80..00000000 --- a/app/static/app/js/vendor/potree/src/PotreeRenderer.js +++ /dev/null @@ -1,1320 +0,0 @@ -import {PointCloudTree} from "./PointCloudTree.js"; -import {PointCloudOctreeNode} from "./PointCloudOctree.js"; -import {PointCloudArena4DNode} from "./arena4d/PointCloudArena4D.js"; -import {PointSizeType, PointColorType, ClipTask} from "./defines.js"; - -// Copied from three.js: WebGLRenderer.js -function paramThreeToGL(_gl, p) { - - let extension; - - if (p === THREE.RepeatWrapping) return _gl.REPEAT; - if (p === THREE.ClampToEdgeWrapping) return _gl.CLAMP_TO_EDGE; - if (p === THREE.MirroredRepeatWrapping) return _gl.MIRRORED_REPEAT; - - if (p === THREE.NearestFilter) return _gl.NEAREST; - if (p === THREE.NearestMipMapNearestFilter) return _gl.NEAREST_MIPMAP_NEAREST; - if (p === THREE.NearestMipMapLinearFilter) return _gl.NEAREST_MIPMAP_LINEAR; - - if (p === THREE.LinearFilter) return _gl.LINEAR; - if (p === THREE.LinearMipMapNearestFilter) return _gl.LINEAR_MIPMAP_NEAREST; - if (p === THREE.LinearMipMapLinearFilter) return _gl.LINEAR_MIPMAP_LINEAR; - - if (p === THREE.UnsignedByteType) return _gl.UNSIGNED_BYTE; - if (p === THREE.UnsignedShort4444Type) return _gl.UNSIGNED_SHORT_4_4_4_4; - if (p === THREE.UnsignedShort5551Type) return _gl.UNSIGNED_SHORT_5_5_5_1; - if (p === THREE.UnsignedShort565Type) return _gl.UNSIGNED_SHORT_5_6_5; - - if (p === THREE.ByteType) return _gl.BYTE; - if (p === THREE.ShortType) return _gl.SHORT; - if (p === THREE.UnsignedShortType) return _gl.UNSIGNED_SHORT; - if (p === THREE.IntType) return _gl.INT; - if (p === THREE.UnsignedIntType) return _gl.UNSIGNED_INT; - if (p === THREE.FloatType) return _gl.FLOAT; - - if (p === THREE.HalfFloatType) { - - extension = extensions.get('OES_texture_half_float'); - - if (extension !== null) return extension.HALF_FLOAT_OES; - - } - - if (p === THREE.AlphaFormat) return _gl.ALPHA; - if (p === THREE.RGBFormat) return _gl.RGB; - if (p === THREE.RGBAFormat) return _gl.RGBA; - if (p === THREE.LuminanceFormat) return _gl.LUMINANCE; - if (p === THREE.LuminanceAlphaFormat) return _gl.LUMINANCE_ALPHA; - if (p === THREE.DepthFormat) return _gl.DEPTH_COMPONENT; - if (p === THREE.DepthStencilFormat) return _gl.DEPTH_STENCIL; - - if (p === THREE.AddEquation) return _gl.FUNC_ADD; - if (p === THREE.SubtractEquation) return _gl.FUNC_SUBTRACT; - if (p === THREE.ReverseSubtractEquation) return _gl.FUNC_REVERSE_SUBTRACT; - - if (p === THREE.ZeroFactor) return _gl.ZERO; - if (p === THREE.OneFactor) return _gl.ONE; - if (p === THREE.SrcColorFactor) return _gl.SRC_COLOR; - if (p === THREE.OneMinusSrcColorFactor) return _gl.ONE_MINUS_SRC_COLOR; - if (p === THREE.SrcAlphaFactor) return _gl.SRC_ALPHA; - if (p === THREE.OneMinusSrcAlphaFactor) return _gl.ONE_MINUS_SRC_ALPHA; - if (p === THREE.DstAlphaFactor) return _gl.DST_ALPHA; - if (p === THREE.OneMinusDstAlphaFactor) return _gl.ONE_MINUS_DST_ALPHA; - - if (p === THREE.DstColorFactor) return _gl.DST_COLOR; - if (p === THREE.OneMinusDstColorFactor) return _gl.ONE_MINUS_DST_COLOR; - if (p === THREE.SrcAlphaSaturateFactor) return _gl.SRC_ALPHA_SATURATE; - - if (p === THREE.RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || - p === THREE.RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) { - - extension = extensions.get('WEBGL_compressed_texture_s3tc'); - - if (extension !== null) { - - if (p === THREE.RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT; - if (p === THREE.RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT; - if (p === THREE.RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT; - if (p === THREE.RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT; - - } - - } - - if (p === THREE.RGB_PVRTC_4BPPV1_Format || p === THREE.RGB_PVRTC_2BPPV1_Format || - p === THREE.RGBA_PVRTC_4BPPV1_Format || p === THREE.RGBA_PVRTC_2BPPV1_Format) { - - extension = extensions.get('WEBGL_compressed_texture_pvrtc'); - - if (extension !== null) { - - if (p === THREE.RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; - if (p === THREE.RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; - if (p === THREE.RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; - if (p === THREE.RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; - - } - - } - - if (p === THREE.RGB_ETC1_Format) { - - extension = extensions.get('WEBGL_compressed_texture_etc1'); - - if (extension !== null) return extension.COMPRESSED_RGB_ETC1_WEBGL; - - } - - if (p === THREE.MinEquation || p === THREE.MaxEquation) { - - extension = extensions.get('EXT_blend_minmax'); - - if (extension !== null) { - - if (p === THREE.MinEquation) return extension.MIN_EXT; - if (p === THREE.MaxEquation) return extension.MAX_EXT; - - } - - } - - if (p === UnsignedInt248Type) { - - extension = extensions.get('WEBGL_depth_texture'); - - if (extension !== null) return extension.UNSIGNED_INT_24_8_WEBGL; - - } - - return 0; - -}; - -let attributeLocations = { - "position": 0, - "color": 1, - "intensity": 2, - "classification": 3, - "returnNumber": 4, - "numberOfReturns": 5, - "pointSourceID": 6, - "indices": 7, - "normal": 8, - "spacing": 9, - "gpsTime": 10, -}; - -class Shader { - - constructor(gl, name, vsSource, fsSource) { - this.gl = gl; - this.name = name; - this.vsSource = vsSource; - this.fsSource = fsSource; - - this.cache = new Map(); - - this.vs = null; - this.fs = null; - this.program = null; - - this.uniformLocations = {}; - this.attributeLocations = {}; - this.uniformBlockIndices = {}; - this.uniformBlocks = {}; - this.uniforms = {}; - - this.update(vsSource, fsSource); - } - - update(vsSource, fsSource) { - this.vsSource = vsSource; - this.fsSource = fsSource; - - this.linkProgram(); - } - - compileShader(shader, source){ - let gl = this.gl; - - gl.shaderSource(shader, source); - - gl.compileShader(shader); - - let success = gl.getShaderParameter(shader, gl.COMPILE_STATUS); - if (!success) { - let info = gl.getShaderInfoLog(shader); - let numberedSource = source.split("\n").map((a, i) => `${i + 1}`.padEnd(5) + a).join("\n"); - throw `could not compile shader ${this.name}: ${info}, \n${numberedSource}`; - } - } - - linkProgram() { - - let gl = this.gl; - - this.uniformLocations = {}; - this.attributeLocations = {}; - this.uniforms = {}; - - gl.useProgram(null); - - let cached = this.cache.get(`${this.vsSource}, ${this.fsSource}`); - if (cached) { - this.program = cached.program; - this.vs = cached.vs; - this.fs = cached.fs; - this.attributeLocations = cached.attributeLocations; - this.uniformLocations = cached.uniformLocations; - this.uniformBlocks = cached.uniformBlocks; - this.uniforms = cached.uniforms; - - return; - } else { - - this.vs = gl.createShader(gl.VERTEX_SHADER); - this.fs = gl.createShader(gl.FRAGMENT_SHADER); - this.program = gl.createProgram(); - - for(let name of Object.keys(attributeLocations)){ - let location = attributeLocations[name]; - gl.bindAttribLocation(this.program, location, name); - } - - this.compileShader(this.vs, this.vsSource); - this.compileShader(this.fs, this.fsSource); - - let program = this.program; - - gl.attachShader(program, this.vs); - gl.attachShader(program, this.fs); - - gl.linkProgram(program); - - gl.detachShader(program, this.vs); - gl.detachShader(program, this.fs); - - let success = gl.getProgramParameter(program, gl.LINK_STATUS); - if (!success) { - let info = gl.getProgramInfoLog(program); - throw `could not link program ${this.name}: ${info}`; - } - - { // attribute locations - let numAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES); - - for (let i = 0; i < numAttributes; i++) { - let attribute = gl.getActiveAttrib(program, i); - - let location = gl.getAttribLocation(program, attribute.name); - - this.attributeLocations[attribute.name] = location; - } - } - - { // uniform locations - let numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS); - - for (let i = 0; i < numUniforms; i++) { - let uniform = gl.getActiveUniform(program, i); - - let location = gl.getUniformLocation(program, uniform.name); - - this.uniformLocations[uniform.name] = location; - this.uniforms[uniform.name] = { - location: location, - value: null, - }; - } - } - - // uniform blocks - if(gl instanceof WebGL2RenderingContext){ - let numBlocks = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS); - - for (let i = 0; i < numBlocks; i++) { - let blockName = gl.getActiveUniformBlockName(program, i); - - let blockIndex = gl.getUniformBlockIndex(program, blockName); - - this.uniformBlockIndices[blockName] = blockIndex; - - gl.uniformBlockBinding(program, blockIndex, blockIndex); - let dataSize = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE); - - let uBuffer = gl.createBuffer(); - gl.bindBuffer(gl.UNIFORM_BUFFER, uBuffer); - gl.bufferData(gl.UNIFORM_BUFFER, dataSize, gl.DYNAMIC_READ); - - gl.bindBufferBase(gl.UNIFORM_BUFFER, blockIndex, uBuffer); - - gl.bindBuffer(gl.UNIFORM_BUFFER, null); - - this.uniformBlocks[blockName] = { - name: blockName, - index: blockIndex, - dataSize: dataSize, - buffer: uBuffer - }; - - } - } - - let cached = { - program: this.program, - vs: this.vs, - fs: this.fs, - attributeLocations: this.attributeLocations, - uniformLocations: this.uniformLocations, - uniforms: this.uniforms, - uniformBlocks: this.uniformBlocks, - }; - - this.cache.set(`${this.vsSource}, ${this.fsSource}`, cached); - } - - - - - } - - setUniformMatrix4(name, value) { - const gl = this.gl; - const location = this.uniformLocations[name]; - - if (location == null) { - return; - } - - let tmp = new Float32Array(value.elements); - gl.uniformMatrix4fv(location, false, tmp); - } - - setUniform1f(name, value) { - const gl = this.gl; - const uniform = this.uniforms[name]; - - if (uniform === undefined) { - return; - } - - if(uniform.value === value){ - return; - } - - uniform.value = value; - - gl.uniform1f(uniform.location, value); - - //const location = this.uniformLocations[name]; - - //if (location == null) { - // return; - //} - - //gl.uniform1f(location, value); - } - - setUniformBoolean(name, value) { - const gl = this.gl; - const uniform = this.uniforms[name]; - - if (uniform === undefined) { - return; - } - - if(uniform.value === value){ - return; - } - - uniform.value = value; - - gl.uniform1i(uniform.location, value); - } - - setUniformTexture(name, value) { - const gl = this.gl; - const location = this.uniformLocations[name]; - - if (location == null) { - return; - } - - gl.uniform1i(location, value); - } - - setUniform2f(name, value) { - const gl = this.gl; - const location = this.uniformLocations[name]; - - if (location == null) { - return; - } - - gl.uniform2f(location, value[0], value[1]); - } - - setUniform3f(name, value) { - const gl = this.gl; - const location = this.uniformLocations[name]; - - if (location == null) { - return; - } - - gl.uniform3f(location, value[0], value[1], value[2]); - } - - setUniform(name, value) { - - if (value.constructor === THREE.Matrix4) { - this.setUniformMatrix4(name, value); - } else if (typeof value === "number") { - this.setUniform1f(name, value); - } else if (typeof value === "boolean") { - this.setUniformBoolean(name, value); - } else if (value instanceof WebGLTexture) { - this.setUniformTexture(name, value); - } else if (value instanceof Array) { - - if (value.length === 2) { - this.setUniform2f(name, value); - } else if (value.length === 3) { - this.setUniform3f(name, value); - } - - } else { - console.error("unhandled uniform type: ", name, value); - } - - } - - - setUniform1i(name, value) { - let gl = this.gl; - let location = this.uniformLocations[name]; - - if (location == null) { - return; - } - - gl.uniform1i(location, value); - } - -}; - -class WebGLTexture { - - constructor(gl, texture) { - this.gl = gl; - - this.texture = texture; - this.id = gl.createTexture(); - - this.target = gl.TEXTURE_2D; - this.version = -1; - - this.update(texture); - } - - update() { - - if (!this.texture.image) { - this.version = this.texture.version; - - return; - } - - let gl = this.gl; - let texture = this.texture; - - if (this.version === texture.version) { - return; - } - - this.target = gl.TEXTURE_2D; - - gl.bindTexture(this.target, this.id); - - let level = 0; - let internalFormat = paramThreeToGL(gl, texture.format); - let width = texture.image.width; - let height = texture.image.height; - let border = 0; - let srcFormat = internalFormat; - let srcType = paramThreeToGL(gl, texture.type); - let data; - - gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, texture.flipY); - gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha); - gl.pixelStorei(gl.UNPACK_ALIGNMENT, texture.unpackAlignment); - - if (texture instanceof THREE.DataTexture) { - data = texture.image.data; - - gl.texParameteri(this.target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(this.target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - - gl.texParameteri(this.target, gl.TEXTURE_MAG_FILTER, paramThreeToGL(gl, texture.magFilter)); - gl.texParameteri(this.target, gl.TEXTURE_MIN_FILTER, paramThreeToGL(gl, texture.minFilter)); - - gl.texImage2D(this.target, level, internalFormat, - width, height, border, srcFormat, srcType, - data); - } else if (texture instanceof THREE.CanvasTexture) { - data = texture.image; - - gl.texParameteri(this.target, gl.TEXTURE_WRAP_S, paramThreeToGL(gl, texture.wrapS)); - gl.texParameteri(this.target, gl.TEXTURE_WRAP_T, paramThreeToGL(gl, texture.wrapT)); - - gl.texParameteri(this.target, gl.TEXTURE_MAG_FILTER, paramThreeToGL(gl, texture.magFilter)); - gl.texParameteri(this.target, gl.TEXTURE_MIN_FILTER, paramThreeToGL(gl, texture.minFilter)); - - gl.texImage2D(this.target, level, internalFormat, - internalFormat, srcType, data); - } - - gl.bindTexture(this.target, null); - - this.version = texture.version; - } - -}; - -class WebGLBuffer { - - constructor() { - this.numElements = 0; - this.vao = null; - this.vbos = new Map(); - } - -}; - -export class Renderer { - - constructor(threeRenderer) { - this.threeRenderer = threeRenderer; - this.gl = this.threeRenderer.context; - - this.buffers = new Map(); - this.shaders = new Map(); - this.textures = new Map(); - - this.glTypeMapping = new Map(); - this.glTypeMapping.set(Float32Array, this.gl.FLOAT); - this.glTypeMapping.set(Uint8Array, this.gl.UNSIGNED_BYTE); - this.glTypeMapping.set(Uint16Array, this.gl.UNSIGNED_SHORT); - - this.toggle = 0; - } - - createBuffer(geometry){ - let gl = this.gl; - let webglBuffer = new WebGLBuffer(); - webglBuffer.vao = gl.createVertexArray(); - webglBuffer.numElements = geometry.attributes.position.count; - - gl.bindVertexArray(webglBuffer.vao); - - for(let attributeName in geometry.attributes){ - let bufferAttribute = geometry.attributes[attributeName]; - - let vbo = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, vbo); - gl.bufferData(gl.ARRAY_BUFFER, bufferAttribute.array, gl.STATIC_DRAW); - - let attributeLocation = attributeLocations[attributeName]; - let normalized = bufferAttribute.normalized; - let type = this.glTypeMapping.get(bufferAttribute.array.constructor); - - gl.vertexAttribPointer(attributeLocation, bufferAttribute.itemSize, type, normalized, 0, 0); - gl.enableVertexAttribArray(attributeLocation); - - webglBuffer.vbos.set(attributeName, { - handle: vbo, - name: attributeName, - count: bufferAttribute.count, - itemSize: bufferAttribute.itemSize, - type: geometry.attributes.position.array.constructor, - version: 0 - }); - } - - gl.bindBuffer(gl.ARRAY_BUFFER, null); - gl.bindVertexArray(null); - - return webglBuffer; - } - - updateBuffer(geometry){ - let gl = this.gl; - - let webglBuffer = this.buffers.get(geometry); - - gl.bindVertexArray(webglBuffer.vao); - - for(let attributeName in geometry.attributes){ - let bufferAttribute = geometry.attributes[attributeName]; - - let attributeLocation = attributeLocations[attributeName]; - let normalized = bufferAttribute.normalized; - let type = this.glTypeMapping.get(bufferAttribute.array.constructor); - - let vbo = null; - if(!webglBuffer.vbos.has(attributeName)){ - vbo = gl.createBuffer(); - - webglBuffer.vbos.set(attributeName, { - handle: vbo, - name: attributeName, - count: bufferAttribute.count, - itemSize: bufferAttribute.itemSize, - type: geometry.attributes.position.array.constructor, - version: bufferAttribute.version - }); - }else{ - vbo = webglBuffer.vbos.get(attributeName).handle; - webglBuffer.vbos.get(attributeName).version = bufferAttribute.version; - } - - gl.bindBuffer(gl.ARRAY_BUFFER, vbo); - gl.bufferData(gl.ARRAY_BUFFER, bufferAttribute.array, gl.STATIC_DRAW); - gl.vertexAttribPointer(attributeLocation, bufferAttribute.itemSize, type, normalized, 0, 0); - gl.enableVertexAttribArray(attributeLocation); - } - - gl.bindBuffer(gl.ARRAY_BUFFER, null); - gl.bindVertexArray(null); - } - - traverse(scene) { - - let octrees = []; - - let stack = [scene]; - while (stack.length > 0) { - - let node = stack.pop(); - - if (node instanceof PointCloudTree) { - octrees.push(node); - continue; - } - - let visibleChildren = node.children.filter(c => c.visible); - stack.push(...visibleChildren); - - } - - let result = { - octrees: octrees - }; - - return result; - } - - - - renderNodes(octree, nodes, visibilityTextureData, camera, target, shader, params) { - - if (Potree.measureTimings) performance.mark("renderNodes-start"); - - let gl = this.gl; - - let material = params.material ? params.material : octree.material; - let shadowMaps = params.shadowMaps == null ? [] : params.shadowMaps; - let view = camera.matrixWorldInverse; - let worldView = new THREE.Matrix4(); - - let mat4holder = new Float32Array(16); - - let gpsMin = Infinity; - let gpsMax = -Infinity - for (let node of nodes) { - - if(node instanceof PointCloudOctreeNode){ - let geometryNode = node.geometryNode; - - if(geometryNode.gpsTime){ - let {offset, range} = geometryNode.gpsTime; - let nodeMin = offset; - let nodeMax = offset + range; - - gpsMin = Math.min(gpsMin, nodeMin); - gpsMax = Math.max(gpsMax, nodeMax); - } - } - - break; - - } - - let i = 0; - for (let node of nodes) { - - if(PotreeExports.debug.allowedNodes !== undefined){ - if(!PotreeExports.debug.allowedNodes.includes(node.name)){ - continue; - } - } - - //if(![ - // "r42006420226", - // ] - // .includes(node.name)){ - // continue; - //} - - let world = node.sceneNode.matrixWorld; - worldView.multiplyMatrices(view, world); - //this.multiplyViewWithScaleTrans(view, world, worldView); - - if (visibilityTextureData) { - let vnStart = visibilityTextureData.offsets.get(node); - shader.setUniform1f("uVNStart", vnStart); - } - - - let level = node.getLevel(); - - if(node.debug){ - shader.setUniform("uDebug", true); - }else{ - shader.setUniform("uDebug", false); - } - - let isLeaf; - if(node instanceof PointCloudOctreeNode){ - isLeaf = Object.keys(node.children).length === 0; - }else if(node instanceof PointCloudArena4DNode){ - isLeaf = node.geometryNode.isLeaf; - } - shader.setUniform("uIsLeafNode", isLeaf); - - - // TODO consider passing matrices in an array to avoid uniformMatrix4fv overhead - const lModel = shader.uniformLocations["modelMatrix"]; - if (lModel) { - mat4holder.set(world.elements); - gl.uniformMatrix4fv(lModel, false, mat4holder); - } - - const lModelView = shader.uniformLocations["modelViewMatrix"]; - //mat4holder.set(worldView.elements); - // faster then set in chrome 63 - for(let j = 0; j < 16; j++){ - mat4holder[j] = worldView.elements[j]; - } - gl.uniformMatrix4fv(lModelView, false, mat4holder); - - { // Clip Polygons - if(material.clipPolygons && material.clipPolygons.length > 0){ - - let clipPolygonVCount = []; - let worldViewProjMatrices = []; - - for(let clipPolygon of material.clipPolygons){ - - let view = clipPolygon.viewMatrix; - let proj = clipPolygon.projMatrix; - - let worldViewProj = proj.clone().multiply(view).multiply(world); - - clipPolygonVCount.push(clipPolygon.markers.length); - worldViewProjMatrices.push(worldViewProj); - } - - let flattenedMatrices = [].concat(...worldViewProjMatrices.map(m => m.elements)); - - let flattenedVertices = new Array(8 * 3 * material.clipPolygons.length); - for(let i = 0; i < material.clipPolygons.length; i++){ - let clipPolygon = material.clipPolygons[i]; - for(let j = 0; j < clipPolygon.markers.length; j++){ - flattenedVertices[i * 24 + (j * 3 + 0)] = clipPolygon.markers[j].position.x; - flattenedVertices[i * 24 + (j * 3 + 1)] = clipPolygon.markers[j].position.y; - flattenedVertices[i * 24 + (j * 3 + 2)] = clipPolygon.markers[j].position.z; - } - } - - const lClipPolygonVCount = shader.uniformLocations["uClipPolygonVCount[0]"]; - gl.uniform1iv(lClipPolygonVCount, clipPolygonVCount); - - const lClipPolygonVP = shader.uniformLocations["uClipPolygonWVP[0]"]; - gl.uniformMatrix4fv(lClipPolygonVP, false, flattenedMatrices); - - const lClipPolygons = shader.uniformLocations["uClipPolygonVertices[0]"]; - gl.uniform3fv(lClipPolygons, flattenedVertices); - - } - } - - - //shader.setUniformMatrix4("modelMatrix", world); - //shader.setUniformMatrix4("modelViewMatrix", worldView); - shader.setUniform1f("uLevel", level); - shader.setUniform1f("uNodeSpacing", node.geometryNode.estimatedSpacing); - - shader.setUniform1f("uPCIndex", i); - // uBBSize - - if (shadowMaps.length > 0) { - - const lShadowMap = shader.uniformLocations["uShadowMap[0]"]; - - shader.setUniform3f("uShadowColor", material.uniforms.uShadowColor.value); - - let bindingStart = 5; - let bindingPoints = new Array(shadowMaps.length).fill(bindingStart).map((a, i) => (a + i)); - gl.uniform1iv(lShadowMap, bindingPoints); - - for (let i = 0; i < shadowMaps.length; i++) { - let shadowMap = shadowMaps[i]; - let bindingPoint = bindingPoints[i]; - let glTexture = this.threeRenderer.properties.get(shadowMap.target.texture).__webglTexture; - - gl.activeTexture(gl[`TEXTURE${bindingPoint}`]); - gl.bindTexture(gl.TEXTURE_2D, glTexture); - } - - { - - let worldViewMatrices = shadowMaps - .map(sm => sm.camera.matrixWorldInverse) - .map(view => new THREE.Matrix4().multiplyMatrices(view, world)) - - let flattenedMatrices = [].concat(...worldViewMatrices.map(c => c.elements)); - const lWorldView = shader.uniformLocations["uShadowWorldView[0]"]; - gl.uniformMatrix4fv(lWorldView, false, flattenedMatrices); - } - - { - let flattenedMatrices = [].concat(...shadowMaps.map(sm => sm.camera.projectionMatrix.elements)); - const lProj = shader.uniformLocations["uShadowProj[0]"]; - gl.uniformMatrix4fv(lProj, false, flattenedMatrices); - } - } - - let geometry = node.geometryNode.geometry; - - if(node.geometryNode.gpsTime){ - let nodeMin = node.geometryNode.gpsTime.offset; - let nodeMax = nodeMin + node.geometryNode.gpsTime.range; - - let gpsOffset = (+nodeMin - gpsMin); - let gpsRange = (gpsMax - gpsMin); - - shader.setUniform1f("uGPSOffset", gpsOffset); - shader.setUniform1f("uGPSRange", gpsRange); - } - - { - let uFilterReturnNumberRange = material.uniforms.uFilterReturnNumberRange.value; - let uFilterNumberOfReturnsRange = material.uniforms.uFilterNumberOfReturnsRange.value; - let uFilterGPSTimeClipRange = material.uniforms.uFilterGPSTimeClipRange.value; - - let gpsCliPRangeMin = uFilterGPSTimeClipRange[0] - gpsMin; - let gpsCliPRangeMax = uFilterGPSTimeClipRange[1] - gpsMin; - - shader.setUniform2f("uFilterReturnNumberRange", uFilterReturnNumberRange); - shader.setUniform2f("uFilterNumberOfReturnsRange", uFilterNumberOfReturnsRange); - shader.setUniform2f("uFilterGPSTimeClipRange", [gpsCliPRangeMin, gpsCliPRangeMax]); - } - - let webglBuffer = null; - if(!this.buffers.has(geometry)){ - webglBuffer = this.createBuffer(geometry); - this.buffers.set(geometry, webglBuffer); - }else{ - webglBuffer = this.buffers.get(geometry); - for(let attributeName in geometry.attributes){ - let attribute = geometry.attributes[attributeName]; - - if(attribute.version > webglBuffer.vbos.get(attributeName).version){ - this.updateBuffer(geometry); - } - } - } - - gl.bindVertexArray(webglBuffer.vao); - - let numPoints = webglBuffer.numElements; - gl.drawArrays(gl.POINTS, 0, numPoints); - - i++; - } - - gl.bindVertexArray(null); - - if (Potree.measureTimings) { - performance.mark("renderNodes-end"); - performance.measure("render.renderNodes", "renderNodes-start", "renderNodes-end"); - } - } - - renderOctree(octree, nodes, camera, target, params = {}){ - - let gl = this.gl; - - let material = params.material ? params.material : octree.material; - let shadowMaps = params.shadowMaps == null ? [] : params.shadowMaps; - let view = camera.matrixWorldInverse; - let viewInv = camera.matrixWorld; - let proj = camera.projectionMatrix; - let projInv = new THREE.Matrix4().getInverse(proj); - let worldView = new THREE.Matrix4(); - - let shader = null; - let visibilityTextureData = null; - - let currentTextureBindingPoint = 0; - - if (material.pointSizeType >= 0) { - if (material.pointSizeType === PointSizeType.ADAPTIVE || - material.pointColorType === PointColorType.LOD) { - - let vnNodes = (params.vnTextureNodes != null) ? params.vnTextureNodes : nodes; - visibilityTextureData = octree.computeVisibilityTextureData(vnNodes, camera); - - const vnt = material.visibleNodesTexture; - const data = vnt.image.data; - data.set(visibilityTextureData.data); - vnt.needsUpdate = true; - - } - } - - { // UPDATE SHADER AND TEXTURES - if (!this.shaders.has(material)) { - let [vs, fs] = [material.vertexShader, material.fragmentShader]; - let shader = new Shader(gl, "pointcloud", vs, fs); - - this.shaders.set(material, shader); - } - - shader = this.shaders.get(material); - - //if(material.needsUpdate){ - { - let [vs, fs] = [material.vertexShader, material.fragmentShader]; - - let numSnapshots = material.snapEnabled ? material.numSnapshots : 0; - let numClipBoxes = (material.clipBoxes && material.clipBoxes.length) ? material.clipBoxes.length : 0; - let numClipSpheres = (params.clipSpheres && params.clipSpheres.length) ? params.clipSpheres.length : 0; - let numClipPolygons = (material.clipPolygons && material.clipPolygons.length) ? material.clipPolygons.length : 0; - - //debugger; - - - - let defines = [ - `#define num_shadowmaps ${shadowMaps.length}`, - `#define num_snapshots ${numSnapshots}`, - `#define num_clipboxes ${numClipBoxes}`, - `#define num_clipspheres ${numClipSpheres}`, - `#define num_clippolygons ${numClipPolygons}`, - ]; - - - if(octree.pcoGeometry.root.isLoaded()){ - let attributes = octree.pcoGeometry.root.geometry.attributes; - - if(attributes.gpsTime){ - defines.push("#define clip_gps_enabled"); - } - - if(attributes.returnNumber){ - defines.push("#define clip_return_number_enabled"); - } - - if(attributes.numberOfReturns){ - defines.push("#define clip_number_of_returns_enabled"); - } - - } - - //vs = `#define num_shadowmaps ${shadowMaps.length}\n` + vs; - //fs = `#define num_shadowmaps ${shadowMaps.length}\n` + fs; - - let definesString = defines.join("\n"); - - let vsVersionIndex = vs.indexOf("#version "); - let fsVersionIndex = fs.indexOf("#version "); - - if(vsVersionIndex >= 0){ - vs = vs.replace(/(#version .*)/, `$1\n${definesString}`) - }else{ - vs = `${definesString}\n${vs}`; - } - - if(fsVersionIndex >= 0){ - fs = fs.replace(/(#version .*)/, `$1\n${definesString}`) - }else{ - fs = `${definesString}\n${fs}`; - } - - - shader.update(vs, fs); - - material.needsUpdate = false; - } - - for (let uniformName of Object.keys(material.uniforms)) { - let uniform = material.uniforms[uniformName]; - - if (uniform.type == "t") { - - let texture = uniform.value; - - if (!texture) { - continue; - } - - if (!this.textures.has(texture)) { - let webglTexture = new WebGLTexture(gl, texture); - - this.textures.set(texture, webglTexture); - } - - let webGLTexture = this.textures.get(texture); - webGLTexture.update(); - - - } - } - } - - gl.useProgram(shader.program); - - let transparent = false; - if(params.transparent !== undefined){ - transparent = params.transparent && material.opacity < 1; - }else{ - transparent = material.opacity < 1; - } - - if (transparent){ - gl.enable(gl.BLEND); - gl.blendFunc(gl.SRC_ALPHA, gl.ONE); - gl.depthMask(false); - gl.disable(gl.DEPTH_TEST); - } else { - gl.disable(gl.BLEND); - gl.depthMask(true); - gl.enable(gl.DEPTH_TEST); - } - - if(params.blendFunc !== undefined){ - gl.enable(gl.BLEND); - gl.blendFunc(...params.blendFunc); - } - - if(params.depthTest !== undefined){ - if(params.depthTest === true){ - gl.enable(gl.DEPTH_TEST); - }else{ - gl.disable(gl.DEPTH_TEST); - } - } - - if(params.depthWrite !== undefined){ - if(params.depthWrite === true){ - gl.depthMask(true); - }else{ - gl.depthMask(false); - } - - } - - - { // UPDATE UNIFORMS - shader.setUniformMatrix4("projectionMatrix", proj); - shader.setUniformMatrix4("viewMatrix", view); - shader.setUniformMatrix4("uViewInv", viewInv); - shader.setUniformMatrix4("uProjInv", projInv); - - let screenWidth = target ? target.width : material.screenWidth; - let screenHeight = target ? target.height : material.screenHeight; - - shader.setUniform1f("uScreenWidth", screenWidth); - shader.setUniform1f("uScreenHeight", screenHeight); - shader.setUniform1f("fov", Math.PI * camera.fov / 180); - shader.setUniform1f("near", camera.near); - shader.setUniform1f("far", camera.far); - - if(camera instanceof THREE.OrthographicCamera){ - shader.setUniform("uUseOrthographicCamera", true); - shader.setUniform("uOrthoWidth", camera.right - camera.left); - shader.setUniform("uOrthoHeight", camera.top - camera.bottom); - }else{ - shader.setUniform("uUseOrthographicCamera", false); - } - - if(material.clipBoxes.length + material.clipPolygons.length === 0){ - shader.setUniform1i("clipTask", ClipTask.NONE); - }else{ - shader.setUniform1i("clipTask", material.clipTask); - } - - shader.setUniform1i("clipMethod", material.clipMethod); - - if (material.clipBoxes && material.clipBoxes.length > 0) { - //let flattenedMatrices = [].concat(...material.clipBoxes.map(c => c.inverse.elements)); - - //const lClipBoxes = shader.uniformLocations["clipBoxes[0]"]; - //gl.uniformMatrix4fv(lClipBoxes, false, flattenedMatrices); - - const lClipBoxes = shader.uniformLocations["clipBoxes[0]"]; - gl.uniformMatrix4fv(lClipBoxes, false, material.uniforms.clipBoxes.value); - } - - // TODO CLIPSPHERES - if(params.clipSpheres && params.clipSpheres.length > 0){ - - let clipSpheres = params.clipSpheres; - - let matrices = []; - for(let clipSphere of clipSpheres){ - //let mScale = new THREE.Matrix4().makeScale(...clipSphere.scale.toArray()); - //let mTranslate = new THREE.Matrix4().makeTranslation(...clipSphere.position.toArray()); - - //let clipToWorld = new THREE.Matrix4().multiplyMatrices(mTranslate, mScale); - let clipToWorld = clipSphere.matrixWorld; - let viewToWorld = camera.matrixWorld - let worldToClip = new THREE.Matrix4().getInverse(clipToWorld); - - let viewToClip = new THREE.Matrix4().multiplyMatrices(worldToClip, viewToWorld); - - matrices.push(viewToClip); - } - - let flattenedMatrices = [].concat(...matrices.map(matrix => matrix.elements)); - - const lClipSpheres = shader.uniformLocations["uClipSpheres[0]"]; - gl.uniformMatrix4fv(lClipSpheres, false, flattenedMatrices); - - //const lClipSpheres = shader.uniformLocations["uClipSpheres[0]"]; - //gl.uniformMatrix4fv(lClipSpheres, false, material.uniforms.clipSpheres.value); - } - - if(Potree.Features.WEBGL2.isSupported()){ - let buffer = new ArrayBuffer(12); - let bufferf32 = new Float32Array(buffer); - bufferf32[0] = material.size; - bufferf32[1] = material.uniforms.minSize.value; - bufferf32[2] = material.uniforms.maxSize.value; - - let block = shader.uniformBlocks["ubo_point"]; - - gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, block.buffer); - - gl.bindBuffer(gl.UNIFORM_BUFFER, block.buffer); - gl.bufferSubData(gl.UNIFORM_BUFFER, 0, buffer); - gl.bindBuffer(gl.UNIFORM_BUFFER, null); - - }else{ - shader.setUniform1f("size", material.size); - shader.setUniform1f("maxSize", material.uniforms.maxSize.value); - shader.setUniform1f("minSize", material.uniforms.minSize.value); - } - - - - - // uniform float uPCIndex - shader.setUniform1f("uOctreeSpacing", material.spacing); - shader.setUniform("uOctreeSize", material.uniforms.octreeSize.value); - - - //uniform vec3 uColor; - shader.setUniform3f("uColor", material.color.toArray()); - //uniform float opacity; - shader.setUniform1f("uOpacity", material.opacity); - - shader.setUniform2f("elevationRange", material.elevationRange); - shader.setUniform2f("intensityRange", material.intensityRange); - //uniform float intensityGamma; - //uniform float intensityContrast; - //uniform float intensityBrightness; - shader.setUniform1f("intensityGamma", material.intensityGamma); - shader.setUniform1f("intensityContrast", material.intensityContrast); - shader.setUniform1f("intensityBrightness", material.intensityBrightness); - - shader.setUniform1f("rgbGamma", material.rgbGamma); - shader.setUniform1f("rgbContrast", material.rgbContrast); - shader.setUniform1f("rgbBrightness", material.rgbBrightness); - shader.setUniform1f("uTransition", material.transition); - shader.setUniform1f("wRGB", material.weightRGB); - shader.setUniform1f("wIntensity", material.weightIntensity); - shader.setUniform1f("wElevation", material.weightElevation); - shader.setUniform1f("wClassification", material.weightClassification); - shader.setUniform1f("wReturnNumber", material.weightReturnNumber); - shader.setUniform1f("wSourceID", material.weightSourceID); - - let vnWebGLTexture = this.textures.get(material.visibleNodesTexture); - shader.setUniform1i("visibleNodesTexture", currentTextureBindingPoint); - gl.activeTexture(gl.TEXTURE0 + currentTextureBindingPoint); - gl.bindTexture(vnWebGLTexture.target, vnWebGLTexture.id); - currentTextureBindingPoint++; - - let gradientTexture = this.textures.get(material.gradientTexture); - shader.setUniform1i("gradient", currentTextureBindingPoint); - gl.activeTexture(gl.TEXTURE0 + currentTextureBindingPoint); - gl.bindTexture(gradientTexture.target, gradientTexture.id); - currentTextureBindingPoint++; - - let classificationTexture = this.textures.get(material.classificationTexture); - shader.setUniform1i("classificationLUT", currentTextureBindingPoint); - gl.activeTexture(gl.TEXTURE0 + currentTextureBindingPoint); - gl.bindTexture(classificationTexture.target, classificationTexture.id); - currentTextureBindingPoint++; - - - if (material.snapEnabled === true) { - - { - const lSnapshot = shader.uniformLocations["uSnapshot[0]"]; - const lSnapshotDepth = shader.uniformLocations["uSnapshotDepth[0]"]; - - let bindingStart = currentTextureBindingPoint; - let lSnapshotBindingPoints = new Array(5).fill(bindingStart).map((a, i) => (a + i)); - let lSnapshotDepthBindingPoints = new Array(5) - .fill(1 + Math.max(...lSnapshotBindingPoints)) - .map((a, i) => (a + i)); - currentTextureBindingPoint = 1 + Math.max(...lSnapshotDepthBindingPoints); - - gl.uniform1iv(lSnapshot, lSnapshotBindingPoints); - gl.uniform1iv(lSnapshotDepth, lSnapshotDepthBindingPoints); - - for (let i = 0; i < 5; i++) { - let texture = material.uniforms[`uSnapshot`].value[i]; - let textureDepth = material.uniforms[`uSnapshotDepth`].value[i]; - - if (!texture) { - break; - } - - let snapTexture = this.threeRenderer.properties.get(texture).__webglTexture; - let snapTextureDepth = this.threeRenderer.properties.get(textureDepth).__webglTexture; - - let bindingPoint = lSnapshotBindingPoints[i]; - let depthBindingPoint = lSnapshotDepthBindingPoints[i]; - - gl.activeTexture(gl[`TEXTURE${bindingPoint}`]); - gl.bindTexture(gl.TEXTURE_2D, snapTexture); - - gl.activeTexture(gl[`TEXTURE${depthBindingPoint}`]); - gl.bindTexture(gl.TEXTURE_2D, snapTextureDepth); - } - } - - { - let flattenedMatrices = [].concat(...material.uniforms.uSnapView.value.map(c => c.elements)); - const lSnapView = shader.uniformLocations["uSnapView[0]"]; - gl.uniformMatrix4fv(lSnapView, false, flattenedMatrices); - } - { - let flattenedMatrices = [].concat(...material.uniforms.uSnapProj.value.map(c => c.elements)); - const lSnapProj = shader.uniformLocations["uSnapProj[0]"]; - gl.uniformMatrix4fv(lSnapProj, false, flattenedMatrices); - } - { - let flattenedMatrices = [].concat(...material.uniforms.uSnapProjInv.value.map(c => c.elements)); - const lSnapProjInv = shader.uniformLocations["uSnapProjInv[0]"]; - gl.uniformMatrix4fv(lSnapProjInv, false, flattenedMatrices); - } - { - let flattenedMatrices = [].concat(...material.uniforms.uSnapViewInv.value.map(c => c.elements)); - const lSnapViewInv = shader.uniformLocations["uSnapViewInv[0]"]; - gl.uniformMatrix4fv(lSnapViewInv, false, flattenedMatrices); - } - - } - } - - this.renderNodes(octree, nodes, visibilityTextureData, camera, target, shader, params); - - gl.activeTexture(gl.TEXTURE2); - gl.bindTexture(gl.TEXTURE_2D, null); - gl.activeTexture(gl.TEXTURE0); - } - - render(scene, camera, target = null, params = {}) { - - const gl = this.gl; - - // PREPARE - if (target != null) { - this.threeRenderer.setRenderTarget(target); - } - - camera.updateProjectionMatrix(); - - const traversalResult = this.traverse(scene); - - - // RENDER - for (const octree of traversalResult.octrees) { - let nodes = octree.visibleNodes; - this.renderOctree(octree, nodes, camera, target, params); - } - - - // CLEANUP - gl.activeTexture(gl.TEXTURE1); - gl.bindTexture(gl.TEXTURE_2D, null) - - this.threeRenderer.state.reset(); - } - - - -}; - - - - - - - - diff --git a/app/static/app/js/vendor/potree/src/Potree_update_visibility.js b/app/static/app/js/vendor/potree/src/Potree_update_visibility.js deleted file mode 100644 index b4ef2ad2..00000000 --- a/app/static/app/js/vendor/potree/src/Potree_update_visibility.js +++ /dev/null @@ -1,418 +0,0 @@ -import BinaryHeap from '../libs/BinaryHeap'; - -import {ClipTask, ClipMethod} from "./defines"; -import {Box3Helper} from "./utils/Box3Helper"; - -export function updatePointClouds(pointclouds, camera, renderer){ - - for (let pointcloud of pointclouds) { - let start = performance.now(); - - for (let profileRequest of pointcloud.profileRequests) { - profileRequest.update(); - - let duration = performance.now() - start; - if(duration > 5){ - break; - } - } - - let duration = performance.now() - start; - } - - let result = updateVisibility(pointclouds, camera, renderer); - - for (let pointcloud of pointclouds) { - pointcloud.updateMaterial(pointcloud.material, pointcloud.visibleNodes, camera, renderer); - pointcloud.updateVisibleBounds(); - } - - PotreeExports.lru.freeMemory(); - - return result; -}; - - - -export function updateVisibilityStructures(pointclouds, camera, renderer) { - let frustums = []; - let camObjPositions = []; - let priorityQueue = new BinaryHeap(function (x) { return 1 / x.weight; }); - - for (let i = 0; i < pointclouds.length; i++) { - let pointcloud = pointclouds[i]; - - if (!pointcloud.initialized()) { - continue; - } - - pointcloud.numVisibleNodes = 0; - pointcloud.numVisiblePoints = 0; - pointcloud.deepestVisibleLevel = 0; - pointcloud.visibleNodes = []; - pointcloud.visibleGeometry = []; - - // frustum in object space - camera.updateMatrixWorld(); - let frustum = new THREE.Frustum(); - let viewI = camera.matrixWorldInverse; - let world = pointcloud.matrixWorld; - - // use close near plane for frustum intersection - let frustumCam = camera.clone(); - frustumCam.near = Math.min(camera.near, 0.1); - frustumCam.updateProjectionMatrix(); - let proj = camera.projectionMatrix; - - let fm = new THREE.Matrix4().multiply(proj).multiply(viewI).multiply(world); - frustum.setFromMatrix(fm); - frustums.push(frustum); - - // camera position in object space - let view = camera.matrixWorld; - let worldI = new THREE.Matrix4().getInverse(world); - let camMatrixObject = new THREE.Matrix4().multiply(worldI).multiply(view); - let camObjPos = new THREE.Vector3().setFromMatrixPosition(camMatrixObject); - camObjPositions.push(camObjPos); - - if (pointcloud.visible && pointcloud.root !== null) { - priorityQueue.push({pointcloud: i, node: pointcloud.root, weight: Number.MAX_VALUE}); - } - - // hide all previously visible nodes - // if(pointcloud.root instanceof PointCloudOctreeNode){ - // pointcloud.hideDescendants(pointcloud.root.sceneNode); - // } - if (pointcloud.root.isTreeNode()) { - pointcloud.hideDescendants(pointcloud.root.sceneNode); - } - - for (let j = 0; j < pointcloud.boundingBoxNodes.length; j++) { - pointcloud.boundingBoxNodes[j].visible = false; - } - } - - return { - 'frustums': frustums, - 'camObjPositions': camObjPositions, - 'priorityQueue': priorityQueue - }; -}; - - -export function updateVisibility(pointclouds, camera, renderer){ - - let numVisibleNodes = 0; - let numVisiblePoints = 0; - - let numVisiblePointsInPointclouds = new Map(pointclouds.map(pc => [pc, 0])); - - let visibleNodes = []; - let visibleGeometry = []; - let unloadedGeometry = []; - - let lowestSpacing = Infinity; - - // calculate object space frustum and cam pos and setup priority queue - let s = updateVisibilityStructures(pointclouds, camera, renderer); - let frustums = s.frustums; - let camObjPositions = s.camObjPositions; - let priorityQueue = s.priorityQueue; - - let loadedToGPUThisFrame = 0; - - let domWidth = renderer.domElement.clientWidth; - let domHeight = renderer.domElement.clientHeight; - - // check if pointcloud has been transformed - // some code will only be executed if changes have been detected - if(!Potree._pointcloudTransformVersion){ - Potree._pointcloudTransformVersion = new Map(); - } - let pointcloudTransformVersion = Potree._pointcloudTransformVersion; - for(let pointcloud of pointclouds){ - - if(!pointcloud.visible){ - continue; - } - - pointcloud.updateMatrixWorld(); - - if(!pointcloudTransformVersion.has(pointcloud)){ - pointcloudTransformVersion.set(pointcloud, {number: 0, transform: pointcloud.matrixWorld.clone()}); - }else{ - let version = pointcloudTransformVersion.get(pointcloud); - - if(!version.transform.equals(pointcloud.matrixWorld)){ - version.number++; - version.transform.copy(pointcloud.matrixWorld); - - pointcloud.dispatchEvent({ - type: "transformation_changed", - target: pointcloud - }); - } - } - } - - while (priorityQueue.size() > 0) { - let element = priorityQueue.pop(); - let node = element.node; - let parent = element.parent; - let pointcloud = pointclouds[element.pointcloud]; - - // { // restrict to certain nodes for debugging - // let allowedNodes = ["r", "r0", "r4"]; - // if(!allowedNodes.includes(node.name)){ - // continue; - // } - // } - - let box = node.getBoundingBox(); - let frustum = frustums[element.pointcloud]; - let camObjPos = camObjPositions[element.pointcloud]; - - let insideFrustum = frustum.intersectsBox(box); - let maxLevel = pointcloud.maxLevel || Infinity; - let level = node.getLevel(); - let visible = insideFrustum; - visible = visible && !(numVisiblePoints + node.getNumPoints() > PotreeExports.pointBudget); - visible = visible && !(numVisiblePointsInPointclouds.get(pointcloud) + node.getNumPoints() > pointcloud.pointBudget); - visible = visible && level < maxLevel; - //visible = visible && node.name !== "r613"; - - - - - if(!window.warned125){ - console.log("TODO"); - window.warned125 = true; - } - - let clipBoxes = pointcloud.material.clipBoxes; - if(true && clipBoxes.length > 0){ - - //node.debug = false; - - let numIntersecting = 0; - let numIntersectionVolumes = 0; - - //if(node.name === "r60"){ - // var a = 10; - //} - - for(let clipBox of clipBoxes){ - - let pcWorldInverse = new THREE.Matrix4().getInverse(pointcloud.matrixWorld); - let toPCObject = pcWorldInverse.multiply(clipBox.box.matrixWorld); - - let px = new THREE.Vector3(+0.5, 0, 0).applyMatrix4(pcWorldInverse); - let nx = new THREE.Vector3(-0.5, 0, 0).applyMatrix4(pcWorldInverse); - let py = new THREE.Vector3(0, +0.5, 0).applyMatrix4(pcWorldInverse); - let ny = new THREE.Vector3(0, -0.5, 0).applyMatrix4(pcWorldInverse); - let pz = new THREE.Vector3(0, 0, +0.5).applyMatrix4(pcWorldInverse); - let nz = new THREE.Vector3(0, 0, -0.5).applyMatrix4(pcWorldInverse); - - let pxN = new THREE.Vector3().subVectors(nx, px).normalize(); - let nxN = pxN.clone().multiplyScalar(-1); - let pyN = new THREE.Vector3().subVectors(ny, py).normalize(); - let nyN = pyN.clone().multiplyScalar(-1); - let pzN = new THREE.Vector3().subVectors(nz, pz).normalize(); - let nzN = pzN.clone().multiplyScalar(-1); - - let pxPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(pxN, px); - let nxPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(nxN, nx); - let pyPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(pyN, py); - let nyPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(nyN, ny); - let pzPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(pzN, pz); - let nzPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(nzN, nz); - - //if(window.debugdraw !== undefined && window.debugdraw === true && node.name === "r60"){ - - // Potree.utils.debugPlane(viewer.scene.scene, pxPlane, 1, 0xFF0000); - // Potree.utils.debugPlane(viewer.scene.scene, nxPlane, 1, 0x990000); - // Potree.utils.debugPlane(viewer.scene.scene, pyPlane, 1, 0x00FF00); - // Potree.utils.debugPlane(viewer.scene.scene, nyPlane, 1, 0x009900); - // Potree.utils.debugPlane(viewer.scene.scene, pzPlane, 1, 0x0000FF); - // Potree.utils.debugPlane(viewer.scene.scene, nzPlane, 1, 0x000099); - - // Potree.utils.debugBox(viewer.scene.scene, box, new THREE.Matrix4(), 0x00FF00); - // Potree.utils.debugBox(viewer.scene.scene, box, pointcloud.matrixWorld, 0xFF0000); - // Potree.utils.debugBox(viewer.scene.scene, clipBox.box.boundingBox, clipBox.box.matrixWorld, 0xFF0000); - - // window.debugdraw = false; - //} - - let frustum = new THREE.Frustum(pxPlane, nxPlane, pyPlane, nyPlane, pzPlane, nzPlane); - let intersects = frustum.intersectsBox(box); - - if(intersects){ - numIntersecting++; - } - numIntersectionVolumes++; - } - - let insideAny = numIntersecting > 0; - let insideAll = numIntersecting === numIntersectionVolumes; - - if(pointcloud.material.clipTask === ClipTask.SHOW_INSIDE){ - if(pointcloud.material.clipMethod === ClipMethod.INSIDE_ANY && insideAny){ - //node.debug = true - }else if(pointcloud.material.clipMethod === ClipMethod.INSIDE_ALL && insideAll){ - //node.debug = true; - }else{ - visible = false; - } - } else if(pointcloud.material.clipTask === ClipTask.SHOW_OUTSIDE){ - //if(pointcloud.material.clipMethod === ClipMethod.INSIDE_ANY && !insideAny){ - // //visible = true; - // let a = 10; - //}else if(pointcloud.material.clipMethod === ClipMethod.INSIDE_ALL && !insideAll){ - // //visible = true; - // let a = 20; - //}else{ - // visible = false; - //} - } - - - } - - // visible = ["r", "r0", "r06", "r060"].includes(node.name); - // visible = ["r"].includes(node.name); - - if (node.spacing) { - lowestSpacing = Math.min(lowestSpacing, node.spacing); - } else if (node.geometryNode && node.geometryNode.spacing) { - lowestSpacing = Math.min(lowestSpacing, node.geometryNode.spacing); - } - - if (numVisiblePoints + node.getNumPoints() > PotreeExports.pointBudget) { - break; - } - - if (!visible) { - continue; - } - - // TODO: not used, same as the declaration? - // numVisibleNodes++; - numVisiblePoints += node.getNumPoints(); - let numVisiblePointsInPointcloud = numVisiblePointsInPointclouds.get(pointcloud); - numVisiblePointsInPointclouds.set(pointcloud, numVisiblePointsInPointcloud + node.getNumPoints()); - - pointcloud.numVisibleNodes++; - pointcloud.numVisiblePoints += node.getNumPoints(); - - if (node.isGeometryNode() && (!parent || parent.isTreeNode())) { - if (node.isLoaded() && loadedToGPUThisFrame < 2) { - node = pointcloud.toTreeNode(node, parent); - loadedToGPUThisFrame++; - } else { - unloadedGeometry.push(node); - visibleGeometry.push(node); - } - } - - if (node.isTreeNode()) { - PotreeExports.lru.touch(node.geometryNode); - node.sceneNode.visible = true; - node.sceneNode.material = pointcloud.material; - - visibleNodes.push(node); - pointcloud.visibleNodes.push(node); - - if(node._transformVersion === undefined){ - node._transformVersion = -1; - } - let transformVersion = pointcloudTransformVersion.get(pointcloud); - if(node._transformVersion !== transformVersion.number){ - node.sceneNode.updateMatrix(); - node.sceneNode.matrixWorld.multiplyMatrices(pointcloud.matrixWorld, node.sceneNode.matrix); - node._transformVersion = transformVersion.number; - } - - if (pointcloud.showBoundingBox && !node.boundingBoxNode && node.getBoundingBox) { - let boxHelper = new Box3Helper(node.getBoundingBox()); - boxHelper.matrixAutoUpdate = false; - pointcloud.boundingBoxNodes.push(boxHelper); - node.boundingBoxNode = boxHelper; - node.boundingBoxNode.matrix.copy(pointcloud.matrixWorld); - } else if (pointcloud.showBoundingBox) { - node.boundingBoxNode.visible = true; - node.boundingBoxNode.matrix.copy(pointcloud.matrixWorld); - } else if (!pointcloud.showBoundingBox && node.boundingBoxNode) { - node.boundingBoxNode.visible = false; - } - } - - // add child nodes to priorityQueue - let children = node.getChildren(); - for (let i = 0; i < children.length; i++) { - let child = children[i]; - - let weight = 0; - if(camera.isPerspectiveCamera){ - let sphere = child.getBoundingSphere(); - let center = sphere.center; - //let distance = sphere.center.distanceTo(camObjPos); - - let dx = camObjPos.x - center.x; - let dy = camObjPos.y - center.y; - let dz = camObjPos.z - center.z; - - let dd = dx * dx + dy * dy + dz * dz; - let distance = Math.sqrt(dd); - - - let radius = sphere.radius; - - let fov = (camera.fov * Math.PI) / 180; - let slope = Math.tan(fov / 2); - let projFactor = (0.5 * domHeight) / (slope * distance); - let screenPixelRadius = radius * projFactor; - - if(screenPixelRadius < pointcloud.minimumNodePixelSize){ - continue; - } - - weight = screenPixelRadius; - - if(distance - radius < 0){ - weight = Number.MAX_VALUE; - } - } else { - // TODO ortho visibility - let bb = child.getBoundingBox(); - let distance = child.getBoundingSphere().center.distanceTo(camObjPos); - let diagonal = bb.max.clone().sub(bb.min).length(); - //weight = diagonal / distance; - - weight = diagonal; - } - - priorityQueue.push({pointcloud: element.pointcloud, node: child, parent: node, weight: weight}); - } - }// end priority queue loop - - { // update DEM - let maxDEMLevel = 4; - let candidates = pointclouds - .filter(p => (p.generateDEM && p.dem instanceof Potree.DEM)); - for (let pointcloud of candidates) { - let updatingNodes = pointcloud.visibleNodes.filter(n => n.getLevel() <= maxDEMLevel); - pointcloud.dem.update(updatingNodes); - } - } - - for (let i = 0; i < Math.min(PotreeExports.maxNodesLoading, unloadedGeometry.length); i++) { - unloadedGeometry[i].load(); - } - - return { - visibleNodes: visibleNodes, - numVisiblePoints: numVisiblePoints, - lowestSpacing: lowestSpacing - }; -}; - diff --git a/app/static/app/js/vendor/potree/src/ProfileRequest.js b/app/static/app/js/vendor/potree/src/ProfileRequest.js deleted file mode 100644 index a55635b4..00000000 --- a/app/static/app/js/vendor/potree/src/ProfileRequest.js +++ /dev/null @@ -1,390 +0,0 @@ -import BinaryHeap from '../libs/BinaryHeap'; - -import {Points} from "./Points"; - -export class ProfileData { - constructor (profile) { - this.profile = profile; - - this.segments = []; - this.boundingBox = new THREE.Box3(); - - for (let i = 0; i < profile.points.length - 1; i++) { - let start = profile.points[i]; - let end = profile.points[i + 1]; - - let startGround = new THREE.Vector3(start.x, start.y, 0); - let endGround = new THREE.Vector3(end.x, end.y, 0); - - let center = new THREE.Vector3().addVectors(endGround, startGround).multiplyScalar(0.5); - let length = startGround.distanceTo(endGround); - let side = new THREE.Vector3().subVectors(endGround, startGround).normalize(); - let up = new THREE.Vector3(0, 0, 1); - let forward = new THREE.Vector3().crossVectors(side, up).normalize(); - let N = forward; - let cutPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(N, startGround); - let halfPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(side, center); - - let segment = { - start: start, - end: end, - cutPlane: cutPlane, - halfPlane: halfPlane, - length: length, - points: new Points() - }; - - this.segments.push(segment); - } - } - - size () { - let size = 0; - for (let segment of this.segments) { - size += segment.points.numPoints; - } - - return size; - } -}; - -export class ProfileRequest { - constructor (pointcloud, profile, maxDepth, callback) { - this.pointcloud = pointcloud; - this.profile = profile; - this.maxDepth = maxDepth || Number.MAX_VALUE; - this.callback = callback; - this.temporaryResult = new ProfileData(this.profile); - this.pointsServed = 0; - this.highestLevelServed = 0; - - this.priorityQueue = new BinaryHeap(function (x) { return 1 / x.weight; }); - - this.initialize(); - } - - initialize () { - this.priorityQueue.push({node: this.pointcloud.pcoGeometry.root, weight: Infinity}); - }; - - // traverse the node and add intersecting descendants to queue - traverse (node) { - let stack = []; - for (let i = 0; i < 8; i++) { - let child = node.children[i]; - if (child && this.pointcloud.nodeIntersectsProfile(child, this.profile)) { - stack.push(child); - } - } - - while (stack.length > 0) { - let node = stack.pop(); - let weight = node.boundingSphere.radius; - - this.priorityQueue.push({node: node, weight: weight}); - - // add children that intersect the cutting plane - if (node.level < this.maxDepth) { - for (let i = 0; i < 8; i++) { - let child = node.children[i]; - if (child && this.pointcloud.nodeIntersectsProfile(child, this.profile)) { - stack.push(child); - } - } - } - } - } - - update(){ - if(!this.updateGeneratorInstance){ - this.updateGeneratorInstance = this.updateGenerator(); - } - - let result = this.updateGeneratorInstance.next(); - if(result.done){ - this.updateGeneratorInstance = null; - } - } - - * updateGenerator(){ - // load nodes in queue - // if hierarchy expands, also load nodes from expanded hierarchy - // once loaded, add data to this.points and remove node from queue - // only evaluate 1-50 nodes per frame to maintain responsiveness - - let start = performance.now(); - - let maxNodesPerUpdate = 1; - let intersectedNodes = []; - - for (let i = 0; i < Math.min(maxNodesPerUpdate, this.priorityQueue.size()); i++) { - let element = this.priorityQueue.pop(); - let node = element.node; - - if(node.level > this.maxDepth){ - continue; - } - - if (node.loaded) { - // add points to result - intersectedNodes.push(node); - PotreeExports.lru.touch(node); - this.highestLevelServed = Math.max(node.getLevel(), this.highestLevelServed); - - var geom = node.pcoGeometry; - var hierarchyStepSize = geom ? geom.hierarchyStepSize : 1; - - var doTraverse = node.getLevel() === 0 || - (node.level % hierarchyStepSize === 0 && node.hasChildren); - - if (doTraverse) { - this.traverse(node); - } - } else { - node.load(); - this.priorityQueue.push(element); - } - } - - if (intersectedNodes.length > 0) { - - for(let done of this.getPointsInsideProfile(intersectedNodes, this.temporaryResult)){ - if(!done){ - //console.log("updateGenerator yields"); - yield false; - } - } - if (this.temporaryResult.size() > 100) { - this.pointsServed += this.temporaryResult.size(); - this.callback.onProgress({request: this, points: this.temporaryResult}); - this.temporaryResult = new ProfileData(this.profile); - } - } - - if (this.priorityQueue.size() === 0) { - // we're done! inform callback and remove from pending requests - - if (this.temporaryResult.size() > 0) { - this.pointsServed += this.temporaryResult.size(); - this.callback.onProgress({request: this, points: this.temporaryResult}); - this.temporaryResult = new ProfileData(this.profile); - } - - this.callback.onFinish({request: this}); - - let index = this.pointcloud.profileRequests.indexOf(this); - if (index >= 0) { - this.pointcloud.profileRequests.splice(index, 1); - } - } - - yield true; - }; - - * getAccepted(numPoints, node, matrix, segment, segmentDir, points, totalMileage){ - let checkpoint = performance.now(); - - let accepted = new Uint32Array(numPoints); - let mileage = new Float64Array(numPoints); - let acceptedPositions = new Float32Array(numPoints * 3); - let numAccepted = 0; - - let pos = new THREE.Vector3(); - let svp = new THREE.Vector3(); - - let view = new Float32Array(node.geometry.attributes.position.array); - - for (let i = 0; i < numPoints; i++) { - - pos.set( - view[i * 3 + 0], - view[i * 3 + 1], - view[i * 3 + 2]); - - pos.applyMatrix4(matrix); - let distance = Math.abs(segment.cutPlane.distanceToPoint(pos)); - let centerDistance = Math.abs(segment.halfPlane.distanceToPoint(pos)); - - if (distance < this.profile.width / 2 && centerDistance < segment.length / 2) { - svp.subVectors(pos, segment.start); - let localMileage = segmentDir.dot(svp); - - accepted[numAccepted] = i; - mileage[numAccepted] = localMileage + totalMileage; - points.boundingBox.expandByPoint(pos); - - acceptedPositions[3 * numAccepted + 0] = pos.x; - acceptedPositions[3 * numAccepted + 1] = pos.y; - acceptedPositions[3 * numAccepted + 2] = pos.z; - - numAccepted++; - } - - if((i % 1000) === 0){ - let duration = performance.now() - checkpoint; - if(duration > 4){ - //console.log(`getAccepted yield after ${duration}ms`); - yield false; - checkpoint = performance.now(); - } - } - } - - accepted = accepted.subarray(0, numAccepted); - mileage = mileage.subarray(0, numAccepted); - acceptedPositions = acceptedPositions.subarray(0, numAccepted * 3); - - //let end = performance.now(); - //let duration = end - start; - //console.log("accepted duration ", duration) - - //console.log(`getAccepted finished`); - - yield [accepted, mileage, acceptedPositions]; - } - - * getPointsInsideProfile(nodes, target){ - let checkpoint = performance.now(); - let totalMileage = 0; - - let pointsProcessed = 0; - - for (let segment of target.segments) { - for (let node of nodes) { - let numPoints = node.numPoints; - let geometry = node.geometry; - - if(!numPoints){ - continue; - } - - { // skip if current node doesn't intersect current segment - let bbWorld = node.boundingBox.clone().applyMatrix4(this.pointcloud.matrixWorld); - let bsWorld = bbWorld.getBoundingSphere(new THREE.Sphere()); - - let start = new THREE.Vector3(segment.start.x, segment.start.y, bsWorld.center.z); - let end = new THREE.Vector3(segment.end.x, segment.end.y, bsWorld.center.z); - - let closest = new THREE.Line3(start, end).closestPointToPoint(bsWorld.center, true, new THREE.Vector3()); - let distance = closest.distanceTo(bsWorld.center); - - let intersects = (distance < (bsWorld.radius + target.profile.width)); - - if(!intersects){ - continue; - } - } - - //{// DEBUG - // console.log(node.name); - // let boxHelper = new Potree.Box3Helper(node.getBoundingBox()); - // boxHelper.matrixAutoUpdate = false; - // boxHelper.matrix.copy(viewer.scene.pointclouds[0].matrixWorld); - // viewer.scene.scene.add(boxHelper); - //} - - let sv = new THREE.Vector3().subVectors(segment.end, segment.start).setZ(0); - let segmentDir = sv.clone().normalize(); - - let points = new Points(); - - let nodeMatrix = new THREE.Matrix4().makeTranslation(...node.boundingBox.min.toArray()); - - let matrix = new THREE.Matrix4().multiplyMatrices( - this.pointcloud.matrixWorld, nodeMatrix); - - pointsProcessed = pointsProcessed + numPoints; - - let accepted = null; - let mileage = null; - let acceptedPositions = null; - for(let result of this.getAccepted(numPoints, node, matrix, segment, segmentDir, points,totalMileage)){ - if(!result){ - let duration = performance.now() - checkpoint; - //console.log(`getPointsInsideProfile yield after ${duration}ms`); - yield false; - checkpoint = performance.now(); - }else{ - [accepted, mileage, acceptedPositions] = result; - } - } - - let duration = performance.now() - checkpoint; - if(duration > 4){ - //console.log(`getPointsInsideProfile yield after ${duration}ms`); - yield false; - checkpoint = performance.now(); - } - - points.data.position = acceptedPositions; - - let relevantAttributes = Object.keys(geometry.attributes).filter(a => !["position", "indices"].includes(a)); - for(let attributeName of relevantAttributes){ - - let attribute = geometry.attributes[attributeName]; - let numElements = attribute.array.length / numPoints; - - if(numElements !== parseInt(numElements)){ - debugger; - } - - let Type = attribute.array.constructor; - - let filteredBuffer = new Type(numElements * accepted.length); - - let source = attribute.array; - let target = filteredBuffer; - - for(let i = 0; i < accepted.length; i++){ - - let index = accepted[i]; - - let start = index * numElements; - let end = start + numElements; - let sub = source.subarray(start, end); - - target.set(sub, i * numElements); - } - - points.data[attributeName] = filteredBuffer; - } - - points.data['mileage'] = mileage; - points.numPoints = accepted.length; - - segment.points.add(points); - } - - totalMileage += segment.length; - } - - for (let segment of target.segments) { - target.boundingBox.union(segment.points.boundingBox); - } - - //console.log(`getPointsInsideProfile finished`); - yield true; - }; - - finishLevelThenCancel () { - if (this.cancelRequested) { - return; - } - - this.maxDepth = this.highestLevelServed; - this.cancelRequested = true; - - //console.log(`maxDepth: ${this.maxDepth}`); - }; - - cancel () { - this.callback.onCancel(); - - this.priorityQueue = new BinaryHeap(function (x) { return 1 / x.weight; }); - - let index = this.pointcloud.profileRequests.indexOf(this); - if (index >= 0) { - this.pointcloud.profileRequests.splice(index, 1); - } - }; -} diff --git a/app/static/app/js/vendor/potree/src/TextSprite.js b/app/static/app/js/vendor/potree/src/TextSprite.js deleted file mode 100644 index 8a8e2d13..00000000 --- a/app/static/app/js/vendor/potree/src/TextSprite.js +++ /dev/null @@ -1,122 +0,0 @@ -/** - * adapted from http://stemkoski.github.io/Three.js/Sprite-Text-Labels.html - */ - -export class TextSprite extends THREE.Object3D{ - - constructor(text){ - super(); - - let texture = new THREE.Texture(); - texture.minFilter = THREE.LinearFilter; - texture.magFilter = THREE.LinearFilter; - let spriteMaterial = new THREE.SpriteMaterial({ - map: texture, - depthTest: false, - depthWrite: false}); - - this.material = spriteMaterial; - this.sprite = new THREE.Sprite(spriteMaterial); - this.add(this.sprite); - - this.borderThickness = 4; - this.fontface = 'Arial'; - this.fontsize = 28; - this.borderColor = { r: 0, g: 0, b: 0, a: 1.0 }; - this.backgroundColor = { r: 255, g: 255, b: 255, a: 1.0 }; - this.textColor = {r: 255, g: 255, b: 255, a: 1.0}; - this.text = ''; - - this.setText(text); - } - - setText(text){ - if (this.text !== text){ - this.text = text; - - this.update(); - } - } - - setTextColor(color){ - this.textColor = color; - - this.update(); - } - - setBorderColor(color){ - this.borderColor = color; - - this.update(); - } - - setBackgroundColor(color){ - this.backgroundColor = color; - - this.update(); - } - - update(){ - let canvas = document.createElement('canvas'); - let context = canvas.getContext('2d'); - context.font = 'Bold ' + this.fontsize + 'px ' + this.fontface; - - // get size data (height depends only on font size) - let metrics = context.measureText(this.text); - let textWidth = metrics.width; - let margin = 5; - let spriteWidth = 2 * margin + textWidth + 2 * this.borderThickness; - let spriteHeight = this.fontsize * 1.4 + 2 * this.borderThickness; - - context.canvas.width = spriteWidth; - context.canvas.height = spriteHeight; - context.font = 'Bold ' + this.fontsize + 'px ' + this.fontface; - - // background color - context.fillStyle = 'rgba(' + this.backgroundColor.r + ',' + this.backgroundColor.g + ',' + - this.backgroundColor.b + ',' + this.backgroundColor.a + ')'; - // border color - context.strokeStyle = 'rgba(' + this.borderColor.r + ',' + this.borderColor.g + ',' + - this.borderColor.b + ',' + this.borderColor.a + ')'; - - context.lineWidth = this.borderThickness; - this.roundRect(context, this.borderThickness / 2, this.borderThickness / 2, - textWidth + this.borderThickness + 2 * margin, this.fontsize * 1.4 + this.borderThickness, 6); - - // text color - context.strokeStyle = 'rgba(0, 0, 0, 1.0)'; - context.strokeText(this.text, this.borderThickness + margin, this.fontsize + this.borderThickness); - - context.fillStyle = 'rgba(' + this.textColor.r + ',' + this.textColor.g + ',' + - this.textColor.b + ',' + this.textColor.a + ')'; - context.fillText(this.text, this.borderThickness + margin, this.fontsize + this.borderThickness); - - let texture = new THREE.Texture(canvas); - texture.minFilter = THREE.LinearFilter; - texture.magFilter = THREE.LinearFilter; - texture.needsUpdate = true; - - this.sprite.material.map = texture; - - this.sprite.scale.set(spriteWidth * 0.01, spriteHeight * 0.01, 1.0); - } - - roundRect(ctx, x, y, w, h, r){ - ctx.beginPath(); - ctx.moveTo(x + r, y); - ctx.lineTo(x + w - r, y); - ctx.quadraticCurveTo(x + w, y, x + w, y + r); - ctx.lineTo(x + w, y + h - r); - ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h); - ctx.lineTo(x + r, y + h); - ctx.quadraticCurveTo(x, y + h, x, y + h - r); - ctx.lineTo(x, y + r); - ctx.quadraticCurveTo(x, y, x + r, y); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - } - -} - - diff --git a/app/static/app/js/vendor/potree/src/Version.js b/app/static/app/js/vendor/potree/src/Version.js deleted file mode 100644 index 02a916ed..00000000 --- a/app/static/app/js/vendor/potree/src/Version.js +++ /dev/null @@ -1,44 +0,0 @@ - -export class Version{ - - constructor(version){ - this.version = version; - let vmLength = (version.indexOf('.') === -1) ? version.length : version.indexOf('.'); - this.versionMajor = parseInt(version.substr(0, vmLength)); - this.versionMinor = parseInt(version.substr(vmLength + 1)); - if (this.versionMinor.length === 0) { - this.versionMinor = 0; - } - } - - newerThan(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor > v.versionMinor) { - return true; - } else { - return false; - } - } - - equalOrHigher(version){ - let v = new Version(version); - - if (this.versionMajor > v.versionMajor) { - return true; - } else if (this.versionMajor === v.versionMajor && this.versionMinor >= v.versionMinor) { - return true; - } else { - return false; - } - } - - upTo(version){ - return !this.newerThan(version); - } - -} - - diff --git a/app/static/app/js/vendor/potree/src/WorkerPool.js b/app/static/app/js/vendor/potree/src/WorkerPool.js deleted file mode 100644 index ebecc019..00000000 --- a/app/static/app/js/vendor/potree/src/WorkerPool.js +++ /dev/null @@ -1,27 +0,0 @@ - -export class WorkerPool{ - constructor(){ - this.workers = {}; - } - - getWorker(url){ - if (!this.workers[url]){ - this.workers[url] = []; - } - - if (this.workers[url].length === 0){ - let worker = new Worker(url); - this.workers[url].push(worker); - } - - let worker = this.workers[url].pop(); - - return worker; - } - - returnWorker(url, worker){ - this.workers[url].push(worker); - } -}; - -//Potree.workerPool = new Potree.WorkerPool(); diff --git a/app/static/app/js/vendor/potree/src/XHRFactory.js b/app/static/app/js/vendor/potree/src/XHRFactory.js deleted file mode 100644 index 3e9fb1fa..00000000 --- a/app/static/app/js/vendor/potree/src/XHRFactory.js +++ /dev/null @@ -1,32 +0,0 @@ - -const XHRFactory = { - config: { - withCredentials: false, - customHeaders: [ - { header: null, value: null } - ] - }, - - createXMLHttpRequest: function () { - let xhr = new XMLHttpRequest(); - - if (this.config.customHeaders && - Array.isArray(this.config.customHeaders) && - this.config.customHeaders.length > 0) { - let baseOpen = xhr.open; - let customHeaders = this.config.customHeaders; - xhr.open = function () { - baseOpen.apply(this, [].slice.call(arguments)); - customHeaders.forEach(function (customHeader) { - if (!!customHeader.header && !!customHeader.value) { - xhr.setRequestHeader(customHeader.header, customHeader.value); - } - }); - }; - } - - return xhr; - } -}; - -export {XHRFactory}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4D.js b/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4D.js deleted file mode 100644 index c1b8d1e1..00000000 --- a/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4D.js +++ /dev/null @@ -1,587 +0,0 @@ -import {PointCloudTree, PointCloudTreeNode} from "../PointCloudTree.js"; -import {PointCloudMaterial} from "../materials/PointCloudMaterial.js"; -import {PointSizeType, PointColorType, ClipTask, TreeType} from "../defines.js"; -import {Utils} from "../utils.js"; - - - -export class PointCloudArena4DNode extends PointCloudTreeNode { - constructor () { - super(); - - this.left = null; - this.right = null; - this.sceneNode = null; - this.kdtree = null; - } - - getNumPoints () { - return this.geometryNode.numPoints; - } - - isLoaded () { - return true; - } - - isTreeNode () { - return true; - } - - isGeometryNode () { - return false; - } - - getLevel () { - return this.geometryNode.level; - } - - getBoundingSphere () { - return this.geometryNode.boundingSphere; - } - - getBoundingBox () { - return this.geometryNode.boundingBox; - } - - toTreeNode (child) { - let geometryNode = null; - - if (this.left === child) { - geometryNode = this.left; - } else if (this.right === child) { - geometryNode = this.right; - } - - if (!geometryNode.loaded) { - return; - } - - let node = new PointCloudArena4DNode(); - let sceneNode = THREE.PointCloud(geometryNode.geometry, this.kdtree.material); - sceneNode.visible = false; - - node.kdtree = this.kdtree; - node.geometryNode = geometryNode; - node.sceneNode = sceneNode; - node.parent = this; - node.left = this.geometryNode.left; - node.right = this.geometryNode.right; - } - - getChildren () { - let children = []; - - if (this.left) { - children.push(this.left); - } - - if (this.right) { - children.push(this.right); - } - - return children; - } -}; - -export class PointCloudArena4D extends PointCloudTree{ - constructor (geometry) { - super(); - - this.root = null; - if (geometry.root) { - this.root = geometry.root; - } else { - geometry.addEventListener('hierarchy_loaded', () => { - this.root = geometry.root; - }); - } - - this.visiblePointsTarget = 2 * 1000 * 1000; - this.minimumNodePixelSize = 150; - - this.position.sub(geometry.offset); - this.updateMatrix(); - - this.numVisibleNodes = 0; - this.numVisiblePoints = 0; - - this.boundingBoxNodes = []; - this.loadQueue = []; - this.visibleNodes = []; - - this.pcoGeometry = geometry; - this.boundingBox = this.pcoGeometry.boundingBox; - this.boundingSphere = this.pcoGeometry.boundingSphere; - this.material = new PointCloudMaterial({vertexColors: THREE.VertexColors, size: 0.05, treeType: TreeType.KDTREE}); - this.material.sizeType = PointSizeType.ATTENUATED; - this.material.size = 0.05; - this.profileRequests = []; - this.name = ''; - } - - getBoundingBoxWorld () { - this.updateMatrixWorld(true); - let box = this.boundingBox; - let transform = this.matrixWorld; - let tBox = Utils.computeTransformedBoundingBox(box, transform); - - return tBox; - }; - - setName (name) { - if (this.name !== name) { - this.name = name; - this.dispatchEvent({type: 'name_changed', name: name, pointcloud: this}); - } - } - - getName () { - return this.name; - } - - getLevel () { - return this.level; - } - - toTreeNode (geometryNode, parent) { - let node = new PointCloudArena4DNode(); - let sceneNode = new THREE.Points(geometryNode.geometry, this.material); - - sceneNode.frustumCulled = false; - sceneNode.onBeforeRender = (_this, scene, camera, geometry, material, group) => { - if (material.program) { - _this.getContext().useProgram(material.program.program); - - if (material.program.getUniforms().map.level) { - let level = geometryNode.getLevel(); - material.uniforms.level.value = level; - material.program.getUniforms().map.level.setValue(_this.getContext(), level); - } - - if (this.visibleNodeTextureOffsets && material.program.getUniforms().map.vnStart) { - let vnStart = this.visibleNodeTextureOffsets.get(node); - material.uniforms.vnStart.value = vnStart; - material.program.getUniforms().map.vnStart.setValue(_this.getContext(), vnStart); - } - - if (material.program.getUniforms().map.pcIndex) { - let i = node.pcIndex ? node.pcIndex : this.visibleNodes.indexOf(node); - material.uniforms.pcIndex.value = i; - material.program.getUniforms().map.pcIndex.setValue(_this.getContext(), i); - } - } - }; - - node.geometryNode = geometryNode; - node.sceneNode = sceneNode; - node.pointcloud = this; - node.left = geometryNode.left; - node.right = geometryNode.right; - - if (!parent) { - this.root = node; - this.add(sceneNode); - } else { - parent.sceneNode.add(sceneNode); - - if (parent.left === geometryNode) { - parent.left = node; - } else if (parent.right === geometryNode) { - parent.right = node; - } - } - - let disposeListener = function () { - parent.sceneNode.remove(node.sceneNode); - - if (parent.left === node) { - parent.left = geometryNode; - } else if (parent.right === node) { - parent.right = geometryNode; - } - }; - geometryNode.oneTimeDisposeHandlers.push(disposeListener); - - return node; - } - - updateMaterial (material, visibleNodes, camera, renderer) { - material.fov = camera.fov * (Math.PI / 180); - material.screenWidth = renderer.domElement.clientWidth; - material.screenHeight = renderer.domElement.clientHeight; - material.spacing = this.pcoGeometry.spacing; - material.near = camera.near; - material.far = camera.far; - - // reduce shader source updates by setting maxLevel slightly higher than actually necessary - if (this.maxLevel > material.levels) { - material.levels = this.maxLevel + 2; - } - - // material.uniforms.octreeSize.value = this.boundingBox.size().x; - let bbSize = this.boundingBox.getSize(new THREE.Vector3()); - material.bbSize = [bbSize.x, bbSize.y, bbSize.z]; - } - - updateVisibleBounds () { - - } - - hideDescendants (object) { - let stack = []; - for (let i = 0; i < object.children.length; i++) { - let child = object.children[i]; - if (child.visible) { - stack.push(child); - } - } - - while (stack.length > 0) { - let child = stack.shift(); - - child.visible = false; - if (child.boundingBoxNode) { - child.boundingBoxNode.visible = false; - } - - for (let i = 0; i < child.children.length; i++) { - let childOfChild = child.children[i]; - if (childOfChild.visible) { - stack.push(childOfChild); - } - } - } - } - - updateMatrixWorld (force) { - // node.matrixWorld.multiplyMatrices( node.parent.matrixWorld, node.matrix ); - - if (this.matrixAutoUpdate === true) this.updateMatrix(); - - if (this.matrixWorldNeedsUpdate === true || force === true) { - if (this.parent === undefined) { - this.matrixWorld.copy(this.matrix); - } else { - this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); - } - - this.matrixWorldNeedsUpdate = false; - - force = true; - } - } - - nodesOnRay (nodes, ray) { - let nodesOnRay = []; - - let _ray = ray.clone(); - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i]; - let sphere = node.getBoundingSphere().clone().applyMatrix4(node.sceneNode.matrixWorld); - // TODO Unused: let box = node.getBoundingBox().clone().applyMatrix4(node.sceneNode.matrixWorld); - - if (_ray.intersectsSphere(sphere)) { - nodesOnRay.push(node); - } - // if(_ray.isIntersectionBox(box)){ - // nodesOnRay.push(node); - // } - } - - return nodesOnRay; - } - - pick(viewer, camera, ray, params = {}){ - - let renderer = viewer.renderer; - let pRenderer = viewer.pRenderer; - - performance.mark("pick-start"); - - let getVal = (a, b) => a !== undefined ? a : b; - - let pickWindowSize = getVal(params.pickWindowSize, 17); - let pickOutsideClipRegion = getVal(params.pickOutsideClipRegion, false); - - let size = renderer.getSize(); - - let width = Math.ceil(getVal(params.width, size.width)); - let height = Math.ceil(getVal(params.height, size.height)); - - let pointSizeType = getVal(params.pointSizeType, this.material.pointSizeType); - let pointSize = getVal(params.pointSize, this.material.size); - - let nodes = this.nodesOnRay(this.visibleNodes, ray); - - if (nodes.length === 0) { - return null; - } - - if (!this.pickState) { - let scene = new THREE.Scene(); - - let material = new PointCloudMaterial(); - material.pointColorType = PointColorType.POINT_INDEX; - - let renderTarget = new THREE.WebGLRenderTarget( - 1, 1, - { minFilter: THREE.LinearFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat } - ); - - this.pickState = { - renderTarget: renderTarget, - material: material, - scene: scene - }; - }; - - let pickState = this.pickState; - let pickMaterial = pickState.material; - - { // update pick material - pickMaterial.pointSizeType = pointSizeType; - pickMaterial.shape = this.material.shape; - - pickMaterial.size = pointSize; - pickMaterial.uniforms.minSize.value = this.material.uniforms.minSize.value; - pickMaterial.uniforms.maxSize.value = this.material.uniforms.maxSize.value; - pickMaterial.classification = this.material.classification; - if(params.pickClipped){ - pickMaterial.clipBoxes = this.material.clipBoxes; - if(this.material.clipTask === ClipTask.HIGHLIGHT){ - pickMaterial.clipTask = ClipTask.NONE; - }else{ - pickMaterial.clipTask = this.material.clipTask; - } - }else{ - pickMaterial.clipBoxes = []; - } - - this.updateMaterial(pickMaterial, nodes, camera, renderer); - } - - pickState.renderTarget.setSize(width, height); - - let pixelPos = new THREE.Vector2(params.x, params.y); - - let gl = renderer.getContext(); - gl.enable(gl.SCISSOR_TEST); - gl.scissor( - parseInt(pixelPos.x - (pickWindowSize - 1) / 2), - parseInt(pixelPos.y - (pickWindowSize - 1) / 2), - parseInt(pickWindowSize), parseInt(pickWindowSize)); - - - renderer.state.buffers.depth.setTest(pickMaterial.depthTest); - renderer.state.buffers.depth.setMask(pickMaterial.depthWrite); - renderer.state.setBlending(THREE.NoBlending); - - renderer.clearTarget(pickState.renderTarget, true, true, true); - - { // RENDER - renderer.setRenderTarget(pickState.renderTarget); - gl.clearColor(0, 0, 0, 0); - renderer.clearTarget( pickState.renderTarget, true, true, true ); - - let tmp = this.material; - this.material = pickMaterial; - - pRenderer.renderOctree(this, nodes, camera, pickState.renderTarget); - - this.material = tmp; - } - - let clamp = (number, min, max) => Math.min(Math.max(min, number), max); - - let x = parseInt(clamp(pixelPos.x - (pickWindowSize - 1) / 2, 0, width)); - let y = parseInt(clamp(pixelPos.y - (pickWindowSize - 1) / 2, 0, height)); - let w = parseInt(Math.min(x + pickWindowSize, width) - x); - let h = parseInt(Math.min(y + pickWindowSize, height) - y); - - let pixelCount = w * h; - let buffer = new Uint8Array(4 * pixelCount); - - gl.readPixels(x, y, pickWindowSize, pickWindowSize, gl.RGBA, gl.UNSIGNED_BYTE, buffer); - - renderer.setRenderTarget(null); - renderer.state.reset(); - renderer.setScissorTest(false); - gl.disable(gl.SCISSOR_TEST); - - let pixels = buffer; - let ibuffer = new Uint32Array(buffer.buffer); - - // find closest hit inside pixelWindow boundaries - let min = Number.MAX_VALUE; - let hits = []; - for (let u = 0; u < pickWindowSize; u++) { - for (let v = 0; v < pickWindowSize; v++) { - let offset = (u + v * pickWindowSize); - let distance = Math.pow(u - (pickWindowSize - 1) / 2, 2) + Math.pow(v - (pickWindowSize - 1) / 2, 2); - - let pcIndex = pixels[4 * offset + 3]; - pixels[4 * offset + 3] = 0; - let pIndex = ibuffer[offset]; - - if(!(pcIndex === 0 && pIndex === 0) && (pcIndex !== undefined) && (pIndex !== undefined)){ - let hit = { - pIndex: pIndex, - pcIndex: pcIndex, - distanceToCenter: distance - }; - - if(params.all){ - hits.push(hit); - }else{ - if(hits.length > 0){ - if(distance < hits[0].distanceToCenter){ - hits[0] = hit; - } - }else{ - hits.push(hit); - } - } - - - } - } - } - - - - for(let hit of hits){ - let point = {}; - - if (!nodes[hit.pcIndex]) { - return null; - } - - let node = nodes[hit.pcIndex]; - let pc = node.sceneNode; - let geometry = node.geometryNode.geometry; - - for(let attributeName in geometry.attributes){ - let attribute = geometry.attributes[attributeName]; - - if (attributeName === 'position') { - let x = attribute.array[3 * hit.pIndex + 0]; - let y = attribute.array[3 * hit.pIndex + 1]; - let z = attribute.array[3 * hit.pIndex + 2]; - - let position = new THREE.Vector3(x, y, z); - position.applyMatrix4(pc.matrixWorld); - - point[attributeName] = position; - } else if (attributeName === 'indices') { - - } else { - //if (values.itemSize === 1) { - // point[attribute.name] = values.array[hit.pIndex]; - //} else { - // let value = []; - // for (let j = 0; j < values.itemSize; j++) { - // value.push(values.array[values.itemSize * hit.pIndex + j]); - // } - // point[attribute.name] = value; - //} - } - - } - - hit.point = point; - } - - performance.mark("pick-end"); - performance.measure("pick", "pick-start", "pick-end"); - - if(params.all){ - return hits.map(hit => hit.point); - }else{ - if(hits.length === 0){ - return null; - }else{ - return hits[0].point; - } - } - } - - computeVisibilityTextureData(nodes){ - - if(Potree.measureTimings) performance.mark("computeVisibilityTextureData-start"); - - let data = new Uint8Array(nodes.length * 3); - let visibleNodeTextureOffsets = new Map(); - - // copy array - nodes = nodes.slice(); - - // sort by level and number - let sort = function (a, b) { - let la = a.geometryNode.level; - let lb = b.geometryNode.level; - let na = a.geometryNode.number; - let nb = b.geometryNode.number; - if (la !== lb) return la - lb; - if (na < nb) return -1; - if (na > nb) return 1; - return 0; - }; - nodes.sort(sort); - - let visibleNodeNames = []; - for (let i = 0; i < nodes.length; i++) { - visibleNodeNames.push(nodes[i].geometryNode.number); - } - - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i]; - - visibleNodeTextureOffsets.set(node, i); - - let b1 = 0; // children - let b2 = 0; // offset to first child - let b3 = 0; // split - - if (node.geometryNode.left && visibleNodeNames.indexOf(node.geometryNode.left.number) > 0) { - b1 += 1; - b2 = visibleNodeNames.indexOf(node.geometryNode.left.number) - i; - } - if (node.geometryNode.right && visibleNodeNames.indexOf(node.geometryNode.right.number) > 0) { - b1 += 2; - b2 = (b2 === 0) ? visibleNodeNames.indexOf(node.geometryNode.right.number) - i : b2; - } - - if (node.geometryNode.split === 'X') { - b3 = 1; - } else if (node.geometryNode.split === 'Y') { - b3 = 2; - } else if (node.geometryNode.split === 'Z') { - b3 = 4; - } - - data[i * 3 + 0] = b1; - data[i * 3 + 1] = b2; - data[i * 3 + 2] = b3; - } - - if(Potree.measureTimings){ - performance.mark("computeVisibilityTextureData-end"); - performance.measure("render.computeVisibilityTextureData", "computeVisibilityTextureData-start", "computeVisibilityTextureData-end"); - } - - return { - data: data, - offsets: visibleNodeTextureOffsets - }; - } - - get progress () { - if (this.pcoGeometry.root) { - return PotreeExports.numNodesLoading > 0 ? 0 : 1; - } else { - return 0; - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4DGeometry.js b/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4DGeometry.js deleted file mode 100644 index 3b1f292f..00000000 --- a/app/static/app/js/vendor/potree/src/arena4d/PointCloudArena4DGeometry.js +++ /dev/null @@ -1,399 +0,0 @@ -import {EventDispatcher} from "../EventDispatcher.js"; - -Potree.PointCloudArena4DGeometryNode = class PointCloudArena4DGeometryNode{ - - constructor(){ - this.left = null; - this.right = null; - this.boundingBox = null; - this.number = null; - this.pcoGeometry = null; - this.loaded = false; - this.numPoints = 0; - this.level = 0; - this.children = []; - this.oneTimeDisposeHandlers = []; - } - - isGeometryNode(){ - return true; - } - - isTreeNode(){ - return false; - } - - isLoaded(){ - return this.loaded; - } - - getBoundingSphere(){ - return this.boundingSphere; - } - - getBoundingBox(){ - return this.boundingBox; - } - - getChildren(){ - let children = []; - - if (this.left) { - children.push(this.left); - } - - if (this.right) { - children.push(this.right); - } - - return children; - } - - getBoundingBox(){ - return this.boundingBox; - } - - getLevel(){ - return this.level; - } - - load(){ - if (this.loaded || this.loading) { - return; - } - - if (PotreeExports.numNodesLoading >= PotreeExports.maxNodesLoading) { - return; - } - - this.loading = true; - - PotreeExports.numNodesLoading++; - - let url = this.pcoGeometry.url + '?node=' + this.number; - let xhr = Potree.XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - - let node = this; - - xhr.onreadystatechange = function () { - if (!(xhr.readyState === 4 && xhr.status === 200)) { - return; - } - - let buffer = xhr.response; - let sourceView = new DataView(buffer); - let numPoints = buffer.byteLength / 17; - let bytesPerPoint = 28; - - let data = new ArrayBuffer(numPoints * bytesPerPoint); - let targetView = new DataView(data); - - let attributes = [ - Potree.PointAttribute.POSITION_CARTESIAN, - Potree.PointAttribute.RGBA_PACKED, - Potree.PointAttribute.INTENSITY, - Potree.PointAttribute.CLASSIFICATION, - ]; - - - let position = new Float32Array(numPoints * 3); - let color = new Uint8Array(numPoints * 4); - let intensities = new Float32Array(numPoints); - let classifications = new Uint8Array(numPoints); - let indices = new ArrayBuffer(numPoints * 4); - let u32Indices = new Uint32Array(indices); - - let tightBoundingBox = new THREE.Box3(); - - for (let i = 0; i < numPoints; i++) { - let x = sourceView.getFloat32(i * 17 + 0, true) + node.boundingBox.min.x; - let y = sourceView.getFloat32(i * 17 + 4, true) + node.boundingBox.min.y; - let z = sourceView.getFloat32(i * 17 + 8, true) + node.boundingBox.min.z; - - let r = sourceView.getUint8(i * 17 + 12, true); - let g = sourceView.getUint8(i * 17 + 13, true); - let b = sourceView.getUint8(i * 17 + 14, true); - - let intensity = sourceView.getUint8(i * 17 + 15, true); - - let classification = sourceView.getUint8(i * 17 + 16, true); - - tightBoundingBox.expandByPoint(new THREE.Vector3(x, y, z)); - - position[i * 3 + 0] = x; - position[i * 3 + 1] = y; - position[i * 3 + 2] = z; - - color[i * 4 + 0] = r; - color[i * 4 + 1] = g; - color[i * 4 + 2] = b; - color[i * 4 + 3] = 255; - - intensities[i] = intensity; - classifications[i] = classification; - - u32Indices[i] = i; - } - - let geometry = new THREE.BufferGeometry(); - - geometry.addAttribute('position', new THREE.BufferAttribute(position, 3)); - geometry.addAttribute('color', new THREE.BufferAttribute(color, 4, true)); - geometry.addAttribute('intensity', new THREE.BufferAttribute(intensities, 1)); - geometry.addAttribute('classification', new THREE.BufferAttribute(classifications, 1)); - { - let bufferAttribute = new THREE.BufferAttribute(new Uint8Array(indices), 4, true); - //bufferAttribute.normalized = true; - geometry.addAttribute('indices', bufferAttribute); - } - - node.geometry = geometry; - node.numPoints = numPoints; - node.loaded = true; - node.loading = false; - PotreeExports.numNodesLoading--; - }; - - xhr.send(null); - } - - dispose(){ - if (this.geometry && this.parent != null) { - this.geometry.dispose(); - this.geometry = null; - this.loaded = false; - - // this.dispatchEvent( { type: 'dispose' } ); - for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) { - let handler = this.oneTimeDisposeHandlers[i]; - handler(); - } - this.oneTimeDisposeHandlers = []; - } - } - - getNumPoints(){ - return this.numPoints; - } -}; - - - - - -Potree.PointCloudArena4DGeometry = class PointCloudArena4DGeometry extends EventDispatcher{ - - constructor(){ - super(); - - this.numPoints = 0; - this.version = 0; - this.boundingBox = null; - this.numNodes = 0; - this.name = null; - this.provider = null; - this.url = null; - this.root = null; - this.levels = 0; - this._spacing = null; - this.pointAttributes = new Potree.PointAttributes([ - 'POSITION_CARTESIAN', - 'COLOR_PACKED' - ]); - } - - static load(url, callback) { - let xhr = Potree.XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url + '?info', true); - - xhr.onreadystatechange = function () { - try { - if (xhr.readyState === 4 && xhr.status === 200) { - let response = JSON.parse(xhr.responseText); - - let geometry = new Potree.PointCloudArena4DGeometry(); - geometry.url = url; - geometry.name = response.Name; - geometry.provider = response.Provider; - geometry.numNodes = response.Nodes; - geometry.numPoints = response.Points; - geometry.version = response.Version; - geometry.boundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(response.BoundingBox.slice(0, 3)), - new THREE.Vector3().fromArray(response.BoundingBox.slice(3, 6)) - ); - if (response.Spacing) { - geometry.spacing = response.Spacing; - } - - let offset = geometry.boundingBox.min.clone().multiplyScalar(-1); - - geometry.boundingBox.min.add(offset); - geometry.boundingBox.max.add(offset); - geometry.offset = offset; - - let center = geometry.boundingBox.getCenter(new THREE.Vector3()); - let radius = geometry.boundingBox.getSize(new THREE.Vector3()).length() / 2; - geometry.boundingSphere = new THREE.Sphere(center, radius); - - geometry.loadHierarchy(); - - callback(geometry); - } else if (xhr.readyState === 4) { - callback(null); - } - } catch (e) { - console.error(e.message); - callback(null); - } - }; - - xhr.send(null); - }; - - loadHierarchy(){ - let url = this.url + '?tree'; - let xhr = Potree.XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - - xhr.onreadystatechange = () => { - if (!(xhr.readyState === 4 && xhr.status === 200)) { - return; - } - - let buffer = xhr.response; - let numNodes = buffer.byteLength / 3; - let view = new DataView(buffer); - let stack = []; - let root = null; - - let levels = 0; - - // TODO Debug: let start = new Date().getTime(); - // read hierarchy - for (let i = 0; i < numNodes; i++) { - let mask = view.getUint8(i * 3 + 0, true); - // TODO Unused: let numPoints = view.getUint16(i * 3 + 1, true); - - let hasLeft = (mask & 1) > 0; - let hasRight = (mask & 2) > 0; - let splitX = (mask & 4) > 0; - let splitY = (mask & 8) > 0; - let splitZ = (mask & 16) > 0; - let split = null; - if (splitX) { - split = 'X'; - } else if (splitY) { - split = 'Y'; - } if (splitZ) { - split = 'Z'; - } - - let node = new Potree.PointCloudArena4DGeometryNode(); - node.hasLeft = hasLeft; - node.hasRight = hasRight; - node.split = split; - node.isLeaf = !hasLeft && !hasRight; - node.number = i; - node.left = null; - node.right = null; - node.pcoGeometry = this; - node.level = stack.length; - levels = Math.max(levels, node.level); - - if (stack.length > 0) { - let parent = stack[stack.length - 1]; - node.boundingBox = parent.boundingBox.clone(); - let parentBBSize = parent.boundingBox.getSize(new THREE.Vector3()); - - if (parent.hasLeft && !parent.left) { - parent.left = node; - parent.children.push(node); - - if (parent.split === 'X') { - node.boundingBox.max.x = node.boundingBox.min.x + parentBBSize.x / 2; - } else if (parent.split === 'Y') { - node.boundingBox.max.y = node.boundingBox.min.y + parentBBSize.y / 2; - } else if (parent.split === 'Z') { - node.boundingBox.max.z = node.boundingBox.min.z + parentBBSize.z / 2; - } - - let center = node.boundingBox.getCenter(new THREE.Vector3()); - let radius = node.boundingBox.getSize(new THREE.Vector3()).length() / 2; - node.boundingSphere = new THREE.Sphere(center, radius); - } else { - parent.right = node; - parent.children.push(node); - - if (parent.split === 'X') { - node.boundingBox.min.x = node.boundingBox.min.x + parentBBSize.x / 2; - } else if (parent.split === 'Y') { - node.boundingBox.min.y = node.boundingBox.min.y + parentBBSize.y / 2; - } else if (parent.split === 'Z') { - node.boundingBox.min.z = node.boundingBox.min.z + parentBBSize.z / 2; - } - - let center = node.boundingBox.getCenter(new THREE.Vector3()); - let radius = node.boundingBox.getSize(new THREE.Vector3()).length() / 2; - node.boundingSphere = new THREE.Sphere(center, radius); - } - } else { - root = node; - root.boundingBox = this.boundingBox.clone(); - let center = root.boundingBox.getCenter(new THREE.Vector3()); - let radius = root.boundingBox.getSize(new THREE.Vector3()).length() / 2; - root.boundingSphere = new THREE.Sphere(center, radius); - } - - let bbSize = node.boundingBox.getSize(new THREE.Vector3()); - node.spacing = ((bbSize.x + bbSize.y + bbSize.z) / 3) / 75; - node.estimatedSpacing = node.spacing; - - stack.push(node); - - if (node.isLeaf) { - let done = false; - while (!done && stack.length > 0) { - stack.pop(); - - let top = stack[stack.length - 1]; - - done = stack.length > 0 && top.hasRight && top.right == null; - } - } - } - // TODO Debug: - // let end = new Date().getTime(); - // let parseDuration = end - start; - // let msg = parseDuration; - // document.getElementById("lblDebug").innerHTML = msg; - - this.root = root; - this.levels = levels; - // console.log(this.root); - - this.dispatchEvent({type: 'hierarchy_loaded'}); - }; - - xhr.send(null); - }; - - get spacing(){ - if (this._spacing) { - return this._spacing; - } else if (this.root) { - return this.root.spacing; - } else { - // TODO ???: null; - } - } - - set spacing(value){ - this._spacing = value; - } - -}; - diff --git a/app/static/app/js/vendor/potree/src/defines.js b/app/static/app/js/vendor/potree/src/defines.js deleted file mode 100644 index cc99d489..00000000 --- a/app/static/app/js/vendor/potree/src/defines.js +++ /dev/null @@ -1,64 +0,0 @@ - -import {Enum} from "./Enum.js"; - - -export const CameraMode = { - ORTHOGRAPHIC: 0, - PERSPECTIVE: 1 -}; - -export const ClipTask = { - NONE: 0, - HIGHLIGHT: 1, - SHOW_INSIDE: 2, - SHOW_OUTSIDE: 3 -}; - -export const ClipMethod = { - INSIDE_ANY: 0, - INSIDE_ALL: 1 -}; - -export const MOUSE = { - LEFT: 0b0001, - RIGHT: 0b0010, - MIDDLE: 0b0100 -}; - -export const PointSizeType = { - FIXED: 0, - ATTENUATED: 1, - ADAPTIVE: 2 -}; - -export const PointShape = { - SQUARE: 0, - CIRCLE: 1, - PARABOLOID: 2 -}; - -export const PointColorType = { - RGB: 0, - COLOR: 1, - DEPTH: 2, - HEIGHT: 3, - ELEVATION: 3, - INTENSITY: 4, - INTENSITY_GRADIENT: 5, - LOD: 6, - LEVEL_OF_DETAIL: 6, - POINT_INDEX: 7, - CLASSIFICATION: 8, - RETURN_NUMBER: 9, - SOURCE: 10, - NORMAL: 11, - PHONG: 12, - RGB_HEIGHT: 13, - GPS_TIME: 14, - COMPOSITE: 50 -}; - -export const TreeType = { - OCTREE: 0, - KDTREE: 1 -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/exporter/CSVExporter.js b/app/static/app/js/vendor/potree/src/exporter/CSVExporter.js deleted file mode 100644 index 948ee62d..00000000 --- a/app/static/app/js/vendor/potree/src/exporter/CSVExporter.js +++ /dev/null @@ -1,49 +0,0 @@ - -export class CSVExporter { - static toString (points) { - let string = ''; - - let attributes = Object.keys(points.data) - .filter(a => a !== 'normal') - .sort((a, b) => { - if (a === 'position') return -1; - if (b === 'position') return 1; - if (a === 'color') return -1; - if (b === 'color') return 1; - }); - - let headerValues = []; - for (let attribute of attributes) { - let itemSize = points.data[attribute].length / points.numPoints; - - if (attribute === 'position') { - headerValues = headerValues.concat(['x', 'y', 'z']); - } else if (attribute === 'color') { - headerValues = headerValues.concat(['r', 'g', 'b', 'a']); - } else if (itemSize > 1) { - for (let i = 0; i < itemSize; i++) { - headerValues.push(`${attribute}_${i}`); - } - } else { - headerValues.push(attribute); - } - } - string = headerValues.join(', ') + '\n'; - - for (let i = 0; i < points.numPoints; i++) { - let values = []; - - for (let attribute of attributes) { - let itemSize = points.data[attribute].length / points.numPoints; - let value = points.data[attribute] - .subarray(itemSize * i, itemSize * i + itemSize) - .join(', '); - values.push(value); - } - - string += values.join(', ') + '\n'; - } - - return string; - } -}; diff --git a/app/static/app/js/vendor/potree/src/exporter/DXFExporter.js b/app/static/app/js/vendor/potree/src/exporter/DXFExporter.js deleted file mode 100644 index 50d1b20e..00000000 --- a/app/static/app/js/vendor/potree/src/exporter/DXFExporter.js +++ /dev/null @@ -1,182 +0,0 @@ -/** - * - * @author sigeom sa / http://sigeom.ch - * @author Ioda-Net Sàrl / https://www.ioda-net.ch/ - * @author Markus Schuetz / http://potree.org - * - */ - -import {Measure} from "../utils/Measure.js"; - -export class DXFExporter { - - static measurementPointSection (measurement) { - let position = measurement.points[0].position; - - if (!position) { - return ''; - } - - let dxfSection = `0 -CIRCLE -8 -layer_point -10 -${position.x} -20 -${position.y} -30 -${position.z} -40 -1.0 -`; - - return dxfSection; - } - - static measurementPolylineSection (measurement) { - // bit code for polygons/polylines: - // https://www.autodesk.com/techpubs/autocad/acad2000/dxf/polyline_dxf_06.htm - let geomCode = 8; - if (measurement.closed) { - geomCode += 1; - } - - let dxfSection = `0 -POLYLINE -8 -layer_polyline -62 -1 -66 -1 -10 -0.0 -20 -0.0 -30 -0.0 -70 -${geomCode} -`; - - let xMax = 0.0; - let yMax = 0.0; - let zMax = 0.0; - for (let point of measurement.points) { - point = point.position; - xMax = Math.max(xMax, point.x); - yMax = Math.max(yMax, point.y); - zMax = Math.max(zMax, point.z); - - dxfSection += `0 -VERTEX -8 -0 -10 -${point.x} -20 -${point.y} -30 -${point.z} -70 -32 -`; - } - dxfSection += `0 -SEQEND -`; - - return dxfSection; - } - - static measurementSection (measurement) { - // if(measurement.points.length <= 1){ - // return ""; - // } - - if (measurement.points.length === 0) { - return ''; - } else if (measurement.points.length === 1) { - return DXFExporter.measurementPointSection(measurement); - } else if (measurement.points.length >= 2) { - return DXFExporter.measurementPolylineSection(measurement); - } - } - - static toString(measurements){ - if (!(measurements instanceof Array)) { - measurements = [measurements]; - } - measurements = measurements.filter(m => m instanceof Measure); - - let points = measurements.filter(m => (m instanceof Measure)) - .map(m => m.points) - .reduce((a, v) => a.concat(v)) - .map(p => p.position); - - let min = new THREE.Vector3(Infinity, Infinity, Infinity); - let max = new THREE.Vector3(-Infinity, -Infinity, -Infinity); - for (let point of points) { - min.min(point); - max.max(point); - } - - let dxfHeader = `999 -DXF created from potree -0 -SECTION -2 -HEADER -9 -$ACADVER -1 -AC1006 -9 -$INSBASE -10 -0.0 -20 -0.0 -30 -0.0 -9 -$EXTMIN -10 -${min.x} -20 -${min.y} -30 -${min.z} -9 -$EXTMAX -10 -${max.x} -20 -${max.y} -30 -${max.z} -0 -ENDSEC -`; - - let dxfBody = `0 -SECTION -2 -ENTITIES -`; - - for (let measurement of measurements) { - dxfBody += DXFExporter.measurementSection(measurement); - } - - dxfBody += `0 -ENDSEC -`; - - let dxf = dxfHeader + dxfBody + '0\nEOF'; - - return dxf; - } - -} diff --git a/app/static/app/js/vendor/potree/src/exporter/GeoJSONExporter.js b/app/static/app/js/vendor/potree/src/exporter/GeoJSONExporter.js deleted file mode 100644 index 74532503..00000000 --- a/app/static/app/js/vendor/potree/src/exporter/GeoJSONExporter.js +++ /dev/null @@ -1,113 +0,0 @@ -/** - * - * @author sigeom sa / http://sigeom.ch - * @author Ioda-Net Sàrl / https://www.ioda-net.ch/ - * @author Markus Schütz / http://potree.org - * - */ - -import {Measure} from "../utils/Measure.js"; - -export class GeoJSONExporter{ - - static measurementToFeatures (measurement) { - let coords = measurement.points.map(e => e.position.toArray()); - - let features = []; - - if (coords.length === 1) { - let feature = { - type: 'Feature', - geometry: { - type: 'Point', - coordinates: coords[0] - }, - properties: { - name: measurement.name - } - }; - features.push(feature); - } else if (coords.length > 1 && !measurement.closed) { - let object = { - 'type': 'Feature', - 'geometry': { - 'type': 'LineString', - 'coordinates': coords - }, - 'properties': { - name: measurement.name - } - }; - - features.push(object); - } else if (coords.length > 1 && measurement.closed) { - let object = { - 'type': 'Feature', - 'geometry': { - 'type': 'Polygon', - 'coordinates': [[...coords, coords[0]]] - }, - 'properties': { - name: measurement.name - } - }; - features.push(object); - } - - if (measurement.showDistances) { - measurement.edgeLabels.forEach((label) => { - let labelPoint = { - type: 'Feature', - geometry: { - type: 'Point', - coordinates: label.position.toArray() - }, - properties: { - distance: label.text - } - }; - features.push(labelPoint); - }); - } - - if (measurement.showArea) { - let point = measurement.areaLabel.position; - let labelArea = { - type: 'Feature', - geometry: { - type: 'Point', - coordinates: point.toArray() - }, - properties: { - area: measurement.areaLabel.text - } - }; - features.push(labelArea); - } - - return features; - } - - static toString (measurements) { - if (!(measurements instanceof Array)) { - measurements = [measurements]; - } - - measurements = measurements.filter(m => m instanceof Measure); - - let features = []; - for (let measure of measurements) { - let f = GeoJSONExporter.measurementToFeatures(measure); - - features = features.concat(f); - } - - let geojson = { - 'type': 'FeatureCollection', - 'features': features - }; - - return JSON.stringify(geojson, null, '\t'); - } - -} diff --git a/app/static/app/js/vendor/potree/src/exporter/LASExporter.js b/app/static/app/js/vendor/potree/src/exporter/LASExporter.js deleted file mode 100644 index 252473ad..00000000 --- a/app/static/app/js/vendor/potree/src/exporter/LASExporter.js +++ /dev/null @@ -1,146 +0,0 @@ -export class LASExporter { - static toLAS (points) { - // TODO Unused: let string = ''; - - let boundingBox = points.boundingBox; - let offset = boundingBox.min.clone(); - let diagonal = boundingBox.min.distanceTo(boundingBox.max); - let scale = new THREE.Vector3(0.001, 0.001, 0.001); - if (diagonal > 1000 * 1000) { - scale = new THREE.Vector3(0.01, 0.01, 0.01); - } else { - scale = new THREE.Vector3(0.001, 0.001, 0.001); - } - - let setString = function (string, offset, buffer) { - let view = new Uint8Array(buffer); - - for (let i = 0; i < string.length; i++) { - let charCode = string.charCodeAt(i); - view[offset + i] = charCode; - } - }; - - let buffer = new ArrayBuffer(227 + 28 * points.numPoints); - let view = new DataView(buffer); - let u8View = new Uint8Array(buffer); - // let u16View = new Uint16Array(buffer); - - setString('LASF', 0, buffer); - u8View[24] = 1; - u8View[25] = 2; - - // system identifier o:26 l:32 - - // generating software o:58 l:32 - setString('Potree 1.6', 58, buffer); - - // file creation day of year o:90 l:2 - // file creation year o:92 l:2 - - // header size o:94 l:2 - view.setUint16(94, 227, true); - - // offset to point data o:96 l:4 - view.setUint32(96, 227, true); - - // number of letiable length records o:100 l:4 - - // point data record format 104 1 - u8View[104] = 2; - - // point data record length 105 2 - view.setUint16(105, 28, true); - - // number of point records 107 4 - view.setUint32(107, points.numPoints, true); - - // number of points by return 111 20 - - // x scale factor 131 8 - view.setFloat64(131, scale.x, true); - - // y scale factor 139 8 - view.setFloat64(139, scale.y, true); - - // z scale factor 147 8 - view.setFloat64(147, scale.z, true); - - // x offset 155 8 - view.setFloat64(155, offset.x, true); - - // y offset 163 8 - view.setFloat64(163, offset.y, true); - - // z offset 171 8 - view.setFloat64(171, offset.z, true); - - // max x 179 8 - view.setFloat64(179, boundingBox.max.x, true); - - // min x 187 8 - view.setFloat64(187, boundingBox.min.x, true); - - // max y 195 8 - view.setFloat64(195, boundingBox.max.y, true); - - // min y 203 8 - view.setFloat64(203, boundingBox.min.y, true); - - // max z 211 8 - view.setFloat64(211, boundingBox.max.z, true); - - // min z 219 8 - view.setFloat64(219, boundingBox.min.z, true); - - let boffset = 227; - for (let i = 0; i < points.numPoints; i++) { - - let px = points.data.position[3 * i + 0]; - let py = points.data.position[3 * i + 1]; - let pz = points.data.position[3 * i + 2]; - - let ux = parseInt((px - offset.x) / scale.x); - let uy = parseInt((py - offset.y) / scale.y); - let uz = parseInt((pz - offset.z) / scale.z); - - view.setUint32(boffset + 0, ux, true); - view.setUint32(boffset + 4, uy, true); - view.setUint32(boffset + 8, uz, true); - - if (points.data.intensity) { - view.setUint16(boffset + 12, (points.data.intensity[i]), true); - } - - let rt = 0; - if (points.data.returnNumber) { - rt += points.data.returnNumber[i]; - } - if (points.data.numberOfReturns) { - rt += (points.data.numberOfReturns[i] << 3); - } - view.setUint8(boffset + 14, rt); - - if (points.data.classification) { - view.setUint8(boffset + 15, points.data.classification[i]); - } - // scan angle rank - // user data - // point source id - if (points.data.pointSourceID) { - view.setUint16(boffset + 18, points.data.pointSourceID[i]); - } - - if (points.data.color) { - view.setUint16(boffset + 20, (points.data.color[4 * i + 0] * 255), true); - view.setUint16(boffset + 22, (points.data.color[4 * i + 1] * 255), true); - view.setUint16(boffset + 24, (points.data.color[4 * i + 2] * 255), true); - } - - boffset += 28; - } - - return buffer; - } - -} diff --git a/app/static/app/js/vendor/potree/src/extensions/OrthographicCamera.js b/app/static/app/js/vendor/potree/src/extensions/OrthographicCamera.js deleted file mode 100644 index 27e0ed71..00000000 --- a/app/static/app/js/vendor/potree/src/extensions/OrthographicCamera.js +++ /dev/null @@ -1,17 +0,0 @@ -THREE.OrthographicCamera.prototype.zoomTo = function( node, factor = 1){ - - if ( !node.geometry && !node.boundingBox) { - return; - } - - // TODO - - //let minWS = new THREE.Vector4(node.boundingBox.min.x, node.boundingBox.min.y, node.boundingBox.min.z, 1); - //let minVS = minWS.applyMatrix4(this.matrixWorldInverse); - - //let right = node.boundingBox.max.x; - //let bottom = node.boundingBox.min.y; - //let top = node.boundingBox.max.y; - - this.updateProjectionMatrix(); -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/extensions/PerspectiveCamera.js b/app/static/app/js/vendor/potree/src/extensions/PerspectiveCamera.js deleted file mode 100644 index bac65945..00000000 --- a/app/static/app/js/vendor/potree/src/extensions/PerspectiveCamera.js +++ /dev/null @@ -1,36 +0,0 @@ -THREE.PerspectiveCamera.prototype.zoomTo = function (node, factor) { - if (!node.geometry && !node.boundingSphere && !node.boundingBox) { - return; - } - - if (node.geometry && node.geometry.boundingSphere === null) { - node.geometry.computeBoundingSphere(); - } - - node.updateMatrixWorld(); - - let bs; - - if (node.boundingSphere) { - bs = node.boundingSphere; - } else if (node.geometry && node.geometry.boundingSphere) { - bs = node.geometry.boundingSphere; - } else { - bs = node.boundingBox.getBoundingSphere(new THREE.Sphere()); - } - - let _factor = factor || 1; - - bs = bs.clone().applyMatrix4(node.matrixWorld); - let radius = bs.radius; - let fovr = this.fov * Math.PI / 180; - - if (this.aspect < 1) { - fovr = fovr * this.aspect; - } - - let distanceFactor = Math.abs(radius / Math.sin(fovr / 2)) * _factor; - - let offset = this.getWorldDirection(new THREE.Vector3()).multiplyScalar(-distanceFactor); - this.position.copy(bs.center.clone().add(offset)); -}; diff --git a/app/static/app/js/vendor/potree/src/extensions/Ray.js b/app/static/app/js/vendor/potree/src/extensions/Ray.js deleted file mode 100644 index de1fb113..00000000 --- a/app/static/app/js/vendor/potree/src/extensions/Ray.js +++ /dev/null @@ -1,15 +0,0 @@ -THREE.Ray.prototype.distanceToPlaneWithNegative = function (plane) { - let denominator = plane.normal.dot(this.direction); - if (denominator === 0) { - // line is coplanar, return origin - if (plane.distanceToPoint(this.origin) === 0) { - return 0; - } - - // Null is preferable to undefined since undefined means.... it is undefined - return null; - } - let t = -(this.origin.dot(plane.normal) + plane.constant) / denominator; - - return t; -}; diff --git a/app/static/app/js/vendor/potree/src/loader/BinaryLoader.js b/app/static/app/js/vendor/potree/src/loader/BinaryLoader.js deleted file mode 100644 index ca432e92..00000000 --- a/app/static/app/js/vendor/potree/src/loader/BinaryLoader.js +++ /dev/null @@ -1,149 +0,0 @@ -import {PointAttributeNames} from "./PointAttributes.js"; -import {Version} from "../Version.js"; -import {XHRFactory} from "../XHRFactory.js"; - - -export class BinaryLoader{ - - constructor(version, boundingBox, scale){ - if (typeof (version) === 'string') { - this.version = new Version(version); - } else { - this.version = version; - } - - this.boundingBox = boundingBox; - this.scale = scale; - } - - load(node){ - if (node.loaded) { - return; - } - - let url = node.getURL(); - - if (this.version.equalOrHigher('1.4')) { - url += '.bin'; - } - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4) { - if((xhr.status === 200 || xhr.status === 0) && xhr.response !== null){ - let buffer = xhr.response; - this.parse(node, buffer); - } else { - throw new Error(`Failed to load file! HTTP status: ${xhr.status}, file: ${url}`); - } - } - }; - - try { - xhr.send(null); - } catch (e) { - console.log('fehler beim laden der punktwolke: ' + e); - } - }; - - parse(node, buffer){ - let pointAttributes = node.pcoGeometry.pointAttributes; - let numPoints = buffer.byteLength / node.pcoGeometry.pointAttributes.byteSize; - - if (this.version.upTo('1.5')) { - node.numPoints = numPoints; - } - - let workerPath = Potree.scriptPath + '/workers/BinaryDecoderWorker.js'; - let worker = Potree.workerPool.getWorker(workerPath); - - worker.onmessage = function (e) { - - let data = e.data; - let buffers = data.attributeBuffers; - let tightBoundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(data.tightBoundingBox.min), - new THREE.Vector3().fromArray(data.tightBoundingBox.max) - ); - - Potree.workerPool.returnWorker(workerPath, worker); - - let geometry = new THREE.BufferGeometry(); - - for(let property in buffers){ - let buffer = buffers[property].buffer; - - if (parseInt(property) === PointAttributeNames.POSITION_CARTESIAN) { - geometry.addAttribute('position', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.COLOR_PACKED) { - geometry.addAttribute('color', new THREE.BufferAttribute(new Uint8Array(buffer), 4, true)); - } else if (parseInt(property) === PointAttributeNames.INTENSITY) { - geometry.addAttribute('intensity', new THREE.BufferAttribute(new Float32Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.CLASSIFICATION) { - geometry.addAttribute('classification', new THREE.BufferAttribute(new Uint8Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.RETURN_NUMBER) { - geometry.addAttribute('returnNumber', new THREE.BufferAttribute(new Uint8Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.NUMBER_OF_RETURNS) { - geometry.addAttribute('numberOfReturns', new THREE.BufferAttribute(new Uint8Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.SOURCE_ID) { - geometry.addAttribute('pointSourceID', new THREE.BufferAttribute(new Uint16Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.NORMAL_SPHEREMAPPED) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.NORMAL_OCT16) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.NORMAL) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.INDICES) { - let bufferAttribute = new THREE.BufferAttribute(new Uint8Array(buffer), 4); - bufferAttribute.normalized = true; - geometry.addAttribute('indices', bufferAttribute); - } else if (parseInt(property) === PointAttributeNames.SPACING) { - let bufferAttribute = new THREE.BufferAttribute(new Float32Array(buffer), 1); - geometry.addAttribute('spacing', bufferAttribute); - } else if (parseInt(property) === PointAttributeNames.GPS_TIME) { - let bufferAttribute = new THREE.BufferAttribute(new Float32Array(buffer), 1); - geometry.addAttribute('gpsTime', bufferAttribute); - - node.gpsTime = { - offset: buffers[property].offset, - range: buffers[property].range, - }; - } - } - - - tightBoundingBox.max.sub(tightBoundingBox.min); - tightBoundingBox.min.set(0, 0, 0); - - let numPoints = e.data.buffer.byteLength / pointAttributes.byteSize; - - node.numPoints = numPoints; - node.geometry = geometry; - node.mean = new THREE.Vector3(...data.mean); - node.tightBoundingBox = tightBoundingBox; - node.loaded = true; - node.loading = false; - node.estimatedSpacing = data.estimatedSpacing; - PotreeExports.numNodesLoading--; - }; - - let message = { - buffer: buffer, - pointAttributes: pointAttributes, - version: this.version.version, - min: [ node.boundingBox.min.x, node.boundingBox.min.y, node.boundingBox.min.z ], - offset: [node.pcoGeometry.offset.x, node.pcoGeometry.offset.y, node.pcoGeometry.offset.z], - scale: this.scale, - spacing: node.spacing, - hasChildren: node.hasChildren, - name: node.name - }; - worker.postMessage(message, [message.buffer]); - }; - - -} - diff --git a/app/static/app/js/vendor/potree/src/loader/EptLoader.js b/app/static/app/js/vendor/potree/src/loader/EptLoader.js deleted file mode 100644 index e282e301..00000000 --- a/app/static/app/js/vendor/potree/src/loader/EptLoader.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * @author Connor Manning - */ - -export class EptLoader { - static async load(file, callback) { - - let response = await fetch(file); - let json = await response.json(); - - let url = file.substr(0, file.lastIndexOf('ept.json')); - let geometry = new Potree.PointCloudEptGeometry(url, json); - let root = new Potree.PointCloudEptGeometryNode(geometry); - - geometry.root = root; - geometry.root.load(); - - callback(geometry); - } -}; - diff --git a/app/static/app/js/vendor/potree/src/loader/GreyhoundBinaryLoader.js b/app/static/app/js/vendor/potree/src/loader/GreyhoundBinaryLoader.js deleted file mode 100644 index 328c6a0f..00000000 --- a/app/static/app/js/vendor/potree/src/loader/GreyhoundBinaryLoader.js +++ /dev/null @@ -1,133 +0,0 @@ -import {Version} from "../Version"; -import {XHRFactory} from "../XHRFactory"; -import {PointAttributeNames} from "./PointAttributes"; - - -export class GreyhoundBinaryLoader{ - - constructor(version, boundingBox, scale){ - if (typeof (version) === 'string') { - this.version = new Version(version); - } else { - this.version = version; - } - - this.boundingBox = boundingBox; - this.scale = scale; - } - - load(node){ - if (node.loaded) return; - - let scope = this; - let url = node.getURL(); - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - let buffer = xhr.response; - scope.parse(node, buffer); - } else { - console.log( - 'Failed to load file! HTTP status:', xhr.status, - 'file:', url); - } - } - }; - - try { - xhr.send(null); - } catch (e) { - console.log('error loading point cloud: ' + e); - } - } - - parse(node, buffer){ - let NUM_POINTS_BYTES = 4; - - let view = new DataView( - buffer, buffer.byteLength - NUM_POINTS_BYTES, NUM_POINTS_BYTES); - let numPoints = view.getUint32(0, true); - let pointAttributes = node.pcoGeometry.pointAttributes; - - node.numPoints = numPoints; - - let workerPath = Potree.scriptPath + '/workers/GreyhoundBinaryDecoderWorker.js'; - let worker = Potree.workerPool.getWorker(workerPath); - - worker.onmessage = function (e) { - - let data = e.data; - let buffers = data.attributeBuffers; - let tightBoundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(data.tightBoundingBox.min), - new THREE.Vector3().fromArray(data.tightBoundingBox.max) - ); - - Potree.workerPool.returnWorker(workerPath, worker); - - let geometry = new THREE.BufferGeometry(); - - for(let property in buffers){ - let buffer = buffers[property].buffer; - - if (parseInt(property) === PointAttributeNames.POSITION_CARTESIAN) { - geometry.addAttribute('position', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.COLOR_PACKED) { - geometry.addAttribute('color', new THREE.BufferAttribute(new Uint8Array(buffer), 4, true)); - } else if (parseInt(property) === PointAttributeNames.INTENSITY) { - geometry.addAttribute('intensity', new THREE.BufferAttribute(new Float32Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.CLASSIFICATION) { - geometry.addAttribute('classification', new THREE.BufferAttribute(new Uint8Array(buffer), 1)); - } else if (parseInt(property) === PointAttributeNames.NORMAL_SPHEREMAPPED) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.NORMAL_OCT16) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.NORMAL) { - geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(buffer), 3)); - } else if (parseInt(property) === PointAttributeNames.INDICES) { - let bufferAttribute = new THREE.BufferAttribute(new Uint8Array(buffer), 4); - bufferAttribute.normalized = true; - geometry.addAttribute('indices', bufferAttribute); - } else if (parseInt(property) === PointAttributeNames.SPACING) { - let bufferAttribute = new THREE.BufferAttribute(new Float32Array(buffer), 1); - geometry.addAttribute('spacing', bufferAttribute); - } - } - - tightBoundingBox.max.sub(tightBoundingBox.min); - tightBoundingBox.min.set(0, 0, 0); - - node.numPoints = data.numPoints; - node.geometry = geometry; - node.mean = new THREE.Vector3(...data.mean); - node.tightBoundingBox = tightBoundingBox; - node.loaded = true; - node.loading = false; - PotreeExports.numNodesLoading--; - }; - - let bb = node.boundingBox; - let nodeOffset = node.pcoGeometry.boundingBox.getCenter(new THREE.Vector3()).sub(node.boundingBox.min); - - let message = { - buffer: buffer, - pointAttributes: pointAttributes, - version: this.version.version, - schema: node.pcoGeometry.schema, - min: [bb.min.x, bb.min.y, bb.min.z], - max: [bb.max.x, bb.max.y, bb.max.z], - offset: nodeOffset.toArray(), - scale: this.scale, - normalize: node.pcoGeometry.normalize - }; - - worker.postMessage(message, [message.buffer]); - } - -} diff --git a/app/static/app/js/vendor/potree/src/loader/GreyhoundLoader.js b/app/static/app/js/vendor/potree/src/loader/GreyhoundLoader.js deleted file mode 100644 index 1277f6bf..00000000 --- a/app/static/app/js/vendor/potree/src/loader/GreyhoundLoader.js +++ /dev/null @@ -1,367 +0,0 @@ -import {Version} from "../Version"; -import {XHRFactory} from "../XHRFactory"; -import {PointAttributes, PointAttribute} from "./PointAttributes"; -import {PointCloudGreyhoundGeometry} from "../PointCloudGreyhoundGeometry"; -import {GreyhoundBinaryLoader} from "./GreyhoundBinaryLoader"; - -/** - * @class Loads greyhound metadata and returns a PointcloudOctree - * - * @author Maarten van Meersbergen - * @author Oscar Martinez Rubi - * @author Connor Manning - */ - -class GreyhoundUtils { - static getQueryParam (name) { - name = name.replace(/[[\]]/g, '\\$&'); - let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'); - let results = regex.exec(window.location.href); - if (!results) return null; - if (!results[2]) return ''; - return decodeURIComponent(results[2].replace(/\+/g, ' ')); - } - - static createSchema (attributes) { - let schema = [ - { 'name': 'X', 'size': 4, 'type': 'signed' }, - { 'name': 'Y', 'size': 4, 'type': 'signed' }, - { 'name': 'Z', 'size': 4, 'type': 'signed' } - ]; - - // Once we include options in the UI to load a dynamic list of available - // attributes for visualization (f.e. Classification, Intensity etc.) - // we will be able to ask for that specific attribute from the server, - // where we are now requesting all attributes for all points all the time. - // If we do that though, we also need to tell Potree to redraw the points - // that are already loaded (with different attributes). - // This is not default behaviour. - attributes.forEach(function (item) { - if (item === 'COLOR_PACKED') { - schema.push({ 'name': 'Red', 'size': 2, 'type': 'unsigned' }); - schema.push({ 'name': 'Green', 'size': 2, 'type': 'unsigned' }); - schema.push({ 'name': 'Blue', 'size': 2, 'type': 'unsigned' }); - } else if (item === 'INTENSITY') { - schema.push({ 'name': 'Intensity', 'size': 2, 'type': 'unsigned' }); - } else if (item === 'CLASSIFICATION') { - schema.push({ 'name': 'Classification', 'size': 1, 'type': 'unsigned' }); - } - }); - - return schema; - } - - static fetch (url, cb) { - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - cb(null, xhr.responseText); - } else { - cb(xhr.responseText); - } - } - }; - xhr.send(null); - }; - - static fetchBinary (url, cb) { - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - cb(null, xhr.response); - } else { - cb(xhr.responseText); - } - } - }; - xhr.send(null); - }; - - static pointSizeFrom (schema) { - return schema.reduce((p, c) => p + c.size, 0); - }; - - static getNormalization (serverURL, baseDepth, cb) { - let s = [ - { 'name': 'X', 'size': 4, 'type': 'floating' }, - { 'name': 'Y', 'size': 4, 'type': 'floating' }, - { 'name': 'Z', 'size': 4, 'type': 'floating' }, - { 'name': 'Red', 'size': 2, 'type': 'unsigned' }, - { 'name': 'Green', 'size': 2, 'type': 'unsigned' }, - { 'name': 'Blue', 'size': 2, 'type': 'unsigned' }, - { 'name': 'Intensity', 'size': 2, 'type': 'unsigned' } - ]; - - let url = serverURL + 'read?depth=' + baseDepth + - '&schema=' + JSON.stringify(s); - - GreyhoundUtils.fetchBinary(url, function (err, buffer) { - if (err) throw new Error(err); - - let view = new DataView(buffer); - let numBytes = buffer.byteLength - 4; - // TODO Unused: let numPoints = view.getUint32(numBytes, true); - let pointSize = GreyhoundUtils.pointSizeFrom(s); - - let colorNorm = false; - let intensityNorm = false; - - for (let offset = 0; offset < numBytes; offset += pointSize) { - if (view.getUint16(offset + 12, true) > 255 || - view.getUint16(offset + 14, true) > 255 || - view.getUint16(offset + 16, true) > 255) { - colorNorm = true; - } - - if (view.getUint16(offset + 18, true) > 255) { - intensityNorm = true; - } - - if (colorNorm && intensityNorm) break; - } - - if (colorNorm) console.log('Normalizing color'); - if (intensityNorm) console.log('Normalizing intensity'); - - cb(null, { color: colorNorm, intensity: intensityNorm }); - }); - }; -}; - - -export class GreyhoundLoader{ - - constructor(){ - - } - - //loadInfoJSON(url, callback) { - //} - - /** - * @return a point cloud octree with the root node data loaded. - * loading of descendants happens asynchronously when they're needed - * - * @param url - * @param loadingFinishedListener executed after loading the binary has been - * finished - */ - static load(url, callback){ - let HIERARCHY_STEP_SIZE = 5; - - try { - // We assume everything ater the string 'greyhound://' is the server url - let serverURL = url.split('greyhound://')[1]; - if (serverURL.split('http://').length === 1 && serverURL.split('https://').length === 1) { - serverURL = 'http://' + serverURL; - } - - GreyhoundUtils.fetch(serverURL + 'info', function (err, data) { - if (err) throw new Error(err); - - /* We parse the result of the info query, which should be a JSON - * datastructure somewhat like: - { - "bounds": [635577, 848882, -1000, 639004, 853538, 2000], - "numPoints": 10653336, - "schema": [ - { "name": "X", "size": 8, "type": "floating" }, - { "name": "Y", "size": 8, "type": "floating" }, - { "name": "Z", "size": 8, "type": "floating" }, - { "name": "Intensity", "size": 2, "type": "unsigned" }, - { "name": "OriginId", "size": 4, "type": "unsigned" }, - { "name": "Red", "size": 2, "type": "unsigned" }, - { "name": "Green", "size": 2, "type": "unsigned" }, - { "name": "Blue", "size": 2, "type": "unsigned" } - ], - "srs": "", - "type": "octree" - } - */ - let greyhoundInfo = JSON.parse(data); - let version = new Version('1.4'); - - let bounds = greyhoundInfo.bounds; - // TODO Unused: let boundsConforming = greyhoundInfo.boundsConforming; - - // TODO Unused: let width = bounds[3] - bounds[0]; - // TODO Unused: let depth = bounds[4] - bounds[1]; - // TODO Unused: let height = bounds[5] - bounds[2]; - // TODO Unused: let radius = width / 2; - let scale = greyhoundInfo.scale || 0.01; - if (Array.isArray(scale)) { - scale = Math.min(scale[0], scale[1], scale[2]); - } - - if (GreyhoundUtils.getQueryParam('scale')) { - scale = parseFloat(GreyhoundUtils.getQueryParam('scale')); - } - - let baseDepth = Math.max(8, greyhoundInfo.baseDepth); - - // Ideally we want to change this bit completely, since - // greyhound's options are wider than the default options for - // visualizing pointclouds. If someone ever has time to build a - // custom ui element for greyhound, the schema options from - // this info request should be given to the UI, so the user can - // choose between them. The selected option can then be - // directly requested from the server in the - // PointCloudGreyhoundGeometryNode without asking for - // attributes that we are not currently visualizing. We assume - // XYZ are always available. - let attributes = ['POSITION_CARTESIAN']; - - // To be careful, we only add COLOR_PACKED as an option if all - // colors are actually found. - let red = false; - let green = false; - let blue = false; - - greyhoundInfo.schema.forEach(function (entry) { - // Intensity and Classification are optional. - if (entry.name === 'Intensity') { - attributes.push('INTENSITY'); - } - if (entry.name === 'Classification') { - attributes.push('CLASSIFICATION'); - } - - if (entry.name === 'Red') red = true; - else if (entry.name === 'Green') green = true; - else if (entry.name === 'Blue') blue = true; - }); - - if (red && green && blue) attributes.push('COLOR_PACKED'); - - // Fill in geometry fields. - let pgg = new PointCloudGreyhoundGeometry(); - pgg.serverURL = serverURL; - pgg.spacing = (bounds[3] - bounds[0]) / Math.pow(2, baseDepth); - pgg.baseDepth = baseDepth; - pgg.hierarchyStepSize = HIERARCHY_STEP_SIZE; - - pgg.schema = GreyhoundUtils.createSchema(attributes); - let pointSize = GreyhoundUtils.pointSizeFrom(pgg.schema); - - pgg.pointAttributes = new PointAttributes(attributes); - pgg.pointAttributes.byteSize = pointSize; - - let boundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(bounds, 0), - new THREE.Vector3().fromArray(bounds, 3) - ); - - let offset = boundingBox.min.clone(); - - boundingBox.max.sub(boundingBox.min); - boundingBox.min.set(0, 0, 0); - - pgg.projection = greyhoundInfo.srs; - pgg.boundingBox = boundingBox; - pgg.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere()); - - pgg.scale = scale; - pgg.offset = offset; - - console.log('Scale:', scale); - console.log('Offset:', offset); - console.log('Bounds:', boundingBox); - - pgg.loader = new GreyhoundBinaryLoader(version, boundingBox, pgg.scale); - - let nodes = {}; - - { // load root - let name = 'r'; - - let root = new PointCloudGreyhoundGeometryNode( - name, pgg, boundingBox, - scale, offset - ); - - root.level = 0; - root.hasChildren = true; - root.numPoints = greyhoundInfo.numPoints; - root.spacing = pgg.spacing; - pgg.root = root; - pgg.root.load(); - nodes[name] = root; - } - - pgg.nodes = nodes; - - GreyhoundUtils.getNormalization(serverURL, greyhoundInfo.baseDepth, - function (_, normalize) { - if (normalize.color) pgg.normalize.color = true; - if (normalize.intensity) pgg.normalize.intensity = true; - - callback(pgg); - } - ); - }); - } catch (e) { - console.log("loading failed: '" + url + "'"); - console.log(e); - - callback(); - } - } - - loadPointAttributes(mno){ - let fpa = mno.pointAttributes; - let pa = new PointAttributes(); - - for (let i = 0; i < fpa.length; i++) { - let pointAttribute = PointAttribute[fpa[i]]; - pa.add(pointAttribute); - } - - return pa; - } - - createChildAABB(aabb, childIndex){ - let min = aabb.min; - let max = aabb.max; - let dHalfLength = new THREE.Vector3().copy(max).sub(min).multiplyScalar(0.5); - let xHalfLength = new THREE.Vector3(dHalfLength.x, 0, 0); - let yHalfLength = new THREE.Vector3(0, dHalfLength.y, 0); - let zHalfLength = new THREE.Vector3(0, 0, dHalfLength.z); - - let cmin = min; - let cmax = new THREE.Vector3().add(min).add(dHalfLength); - - if (childIndex === 1) { - min = new THREE.Vector3().copy(cmin).add(zHalfLength); - max = new THREE.Vector3().copy(cmax).add(zHalfLength); - } else if (childIndex === 3) { - min = new THREE.Vector3().copy(cmin).add(zHalfLength).add(yHalfLength); - max = new THREE.Vector3().copy(cmax).add(zHalfLength).add(yHalfLength); - } else if (childIndex === 0) { - min = cmin; - max = cmax; - } else if (childIndex === 2) { - min = new THREE.Vector3().copy(cmin).add(yHalfLength); - max = new THREE.Vector3().copy(cmax).add(yHalfLength); - } else if (childIndex === 5) { - min = new THREE.Vector3().copy(cmin).add(zHalfLength).add(xHalfLength); - max = new THREE.Vector3().copy(cmax).add(zHalfLength).add(xHalfLength); - } else if (childIndex === 7) { - min = new THREE.Vector3().copy(cmin).add(dHalfLength); - max = new THREE.Vector3().copy(cmax).add(dHalfLength); - } else if (childIndex === 4) { - min = new THREE.Vector3().copy(cmin).add(xHalfLength); - max = new THREE.Vector3().copy(cmax).add(xHalfLength); - } else if (childIndex === 6) { - min = new THREE.Vector3().copy(cmin).add(xHalfLength).add(yHalfLength); - max = new THREE.Vector3().copy(cmax).add(xHalfLength).add(yHalfLength); - } - - return new THREE.Box3(min, max); - } - -} diff --git a/app/static/app/js/vendor/potree/src/loader/LasLazLoader.js b/app/static/app/js/vendor/potree/src/loader/LasLazLoader.js deleted file mode 100644 index d6cf1983..00000000 --- a/app/static/app/js/vendor/potree/src/loader/LasLazLoader.js +++ /dev/null @@ -1,237 +0,0 @@ -import {Version} from "../Version.js"; -import {XHRFactory} from "../XHRFactory.js"; - -/** - * laslaz code taken and adapted from plas.io js-laslaz - * http://plas.io/ - * https://github.com/verma/plasio - * - * Thanks to Uday Verma and Howard Butler - * - */ - -export class LasLazLoader { - - constructor (version) { - if (typeof (version) === 'string') { - this.version = new Version(version); - } else { - this.version = version; - } - } - - static progressCB () { - - } - - load (node) { - if (node.loaded) { - return; - } - - let pointAttributes = node.pcoGeometry.pointAttributes; - - let url = node.getURL(); - - if (this.version.equalOrHigher('1.4')) { - url += '.' + pointAttributes.toLowerCase(); - } - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - let buffer = xhr.response; - this.parse(node, buffer); - } else { - console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + url); - } - } - }; - - xhr.send(null); - } - - parse(node, buffer){ - let lf = new LASFile(buffer); - let handler = new LasLazBatcher(node); - - - // - // DEBUG - // - // invoke the laz decompress worker thousands of times to check for memory leaks - // until 2018/03/05, it tended to run out of memory at ~6230 invocations - // - // - //lf.open() - //.then( msg => { - // lf.isOpen = true; - // return lf; - //}).catch( msg => { - // console.log("failed to open file. :("); - //}).then( lf => { - // return lf.getHeader().then(function (h) { - // return [lf, h]; - // }); - //}).then( v => { - // let lf = v[0]; - // let header = v[1]; - - // lf.readData(1000000, 0, 1) - // .then( v => { - // console.log("read"); - - // this.parse(node, buffer); - // }).then (v => { - // lf.close(); - // }); - - //}) - - - - lf.open() - .then( msg => { - lf.isOpen = true; - return lf; - }).catch( msg => { - console.log("failed to open file. :("); - }).then( lf => { - return lf.getHeader().then(function (h) { - return [lf, h]; - }); - }).then( v => { - let lf = v[0]; - let header = v[1]; - - let skip = 1; - let totalRead = 0; - let totalToRead = (skip <= 1 ? header.pointsCount : header.pointsCount / skip); - let reader = function () { - let p = lf.readData(1000000, 0, skip); - return p.then(function (data) { - handler.push(new LASDecoder(data.buffer, - header.pointsFormatId, - header.pointsStructSize, - data.count, - header.scale, - header.offset, - header.mins, header.maxs)); - - totalRead += data.count; - LasLazLoader.progressCB(totalRead / totalToRead); - - if (data.hasMoreData) { - return reader(); - } else { - header.totalRead = totalRead; - header.versionAsString = lf.versionAsString; - header.isCompressed = lf.isCompressed; - return [lf, header, handler]; - } - }); - }; - - return reader(); - }).then( v => { - let lf = v[0]; - // we're done loading this file - // - LasLazLoader.progressCB(1); - - // Close it - return lf.close().then(function () { - lf.isOpen = false; - - return v.slice(1); - }).catch(e => { - // If there was a cancellation, make sure the file is closed, if the file is open - // close and then fail - if (lf.isOpen) { - return lf.close().then(function () { - lf.isOpen = false; - throw e; - }); - } - throw e; - }); - }); - } - - handle (node, url) { - - } -}; - -export class LasLazBatcher{ - - constructor (node) { - this.node = node; - } - - push (lasBuffer) { - let workerPath = Potree.scriptPath + '/workers/LASDecoderWorker.js'; - let worker = Potree.workerPool.getWorker(workerPath); - let node = this.node; - - worker.onmessage = (e) => { - let geometry = new THREE.BufferGeometry(); - let numPoints = lasBuffer.pointsCount; - - let positions = new Float32Array(e.data.position); - let colors = new Uint8Array(e.data.color); - let intensities = new Float32Array(e.data.intensity); - let classifications = new Uint8Array(e.data.classification); - let returnNumbers = new Uint8Array(e.data.returnNumber); - let numberOfReturns = new Uint8Array(e.data.numberOfReturns); - let pointSourceIDs = new Uint16Array(e.data.pointSourceID); - let indices = new Uint8Array(e.data.indices); - - geometry.addAttribute('position', new THREE.BufferAttribute(positions, 3)); - geometry.addAttribute('color', new THREE.BufferAttribute(colors, 4, true)); - geometry.addAttribute('intensity', new THREE.BufferAttribute(intensities, 1)); - geometry.addAttribute('classification', new THREE.BufferAttribute(classifications, 1)); - geometry.addAttribute('returnNumber', new THREE.BufferAttribute(returnNumbers, 1)); - geometry.addAttribute('numberOfReturns', new THREE.BufferAttribute(numberOfReturns, 1)); - geometry.addAttribute('pointSourceID', new THREE.BufferAttribute(pointSourceIDs, 1)); - //geometry.addAttribute('normal', new THREE.BufferAttribute(new Float32Array(numPoints * 3), 3)); - geometry.addAttribute('indices', new THREE.BufferAttribute(indices, 4)); - geometry.attributes.indices.normalized = true; - - let tightBoundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(e.data.tightBoundingBox.min), - new THREE.Vector3().fromArray(e.data.tightBoundingBox.max) - ); - - geometry.boundingBox = this.node.boundingBox; - this.node.tightBoundingBox = tightBoundingBox; - - this.node.geometry = geometry; - this.node.numPoints = numPoints; - this.node.loaded = true; - this.node.loading = false; - PotreeExports.numNodesLoading--; - this.node.mean = new THREE.Vector3(...e.data.mean); - - //debugger; - - Potree.workerPool.returnWorker(workerPath, worker); - }; - - let message = { - buffer: lasBuffer.arrayb, - numPoints: lasBuffer.pointsCount, - pointSize: lasBuffer.pointSize, - pointFormatID: 2, - scale: lasBuffer.scale, - offset: lasBuffer.offset, - mins: lasBuffer.mins, - maxs: lasBuffer.maxs - }; - worker.postMessage(message, [message.buffer]); - }; -} diff --git a/app/static/app/js/vendor/potree/src/loader/POCLoader.js b/app/static/app/js/vendor/potree/src/loader/POCLoader.js deleted file mode 100644 index 7ff6499c..00000000 --- a/app/static/app/js/vendor/potree/src/loader/POCLoader.js +++ /dev/null @@ -1,164 +0,0 @@ -import {PointCloudOctreeGeometry, PointCloudOctreeGeometryNode} from "../PointCloudOctreeGeometry.js"; -import {Version} from "../Version.js"; -import {XHRFactory} from "../XHRFactory.js"; -import {LasLazLoader} from "./LasLazLoader.js"; -import {BinaryLoader} from "./BinaryLoader.js"; -import {Utils} from "../utils.js"; -import {PointAttribute, PointAttributes} from "./PointAttributes.js"; - -export class POCLoader { - - static load(url, callback){ - try { - let pco = new PointCloudOctreeGeometry(); - pco.url = url; - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 0)) { - let fMno = JSON.parse(xhr.responseText); - - let version = new Version(fMno.version); - - // assume octreeDir is absolute if it starts with http - if (fMno.octreeDir.indexOf('http') === 0) { - pco.octreeDir = fMno.octreeDir; - } else { - pco.octreeDir = url + '/../' + fMno.octreeDir; - } - - pco.spacing = fMno.spacing; - pco.hierarchyStepSize = fMno.hierarchyStepSize; - - pco.pointAttributes = fMno.pointAttributes; - - let min = new THREE.Vector3(fMno.boundingBox.lx, fMno.boundingBox.ly, fMno.boundingBox.lz); - let max = new THREE.Vector3(fMno.boundingBox.ux, fMno.boundingBox.uy, fMno.boundingBox.uz); - let boundingBox = new THREE.Box3(min, max); - let tightBoundingBox = boundingBox.clone(); - - if (fMno.tightBoundingBox) { - tightBoundingBox.min.copy(new THREE.Vector3(fMno.tightBoundingBox.lx, fMno.tightBoundingBox.ly, fMno.tightBoundingBox.lz)); - tightBoundingBox.max.copy(new THREE.Vector3(fMno.tightBoundingBox.ux, fMno.tightBoundingBox.uy, fMno.tightBoundingBox.uz)); - } - - let offset = min.clone(); - - boundingBox.min.sub(offset); - boundingBox.max.sub(offset); - - tightBoundingBox.min.sub(offset); - tightBoundingBox.max.sub(offset); - - pco.projection = fMno.projection; - pco.boundingBox = boundingBox; - pco.tightBoundingBox = tightBoundingBox; - pco.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere()); - pco.tightBoundingSphere = tightBoundingBox.getBoundingSphere(new THREE.Sphere()); - pco.offset = offset; - if (fMno.pointAttributes === 'LAS') { - pco.loader = new LasLazLoader(fMno.version); - } else if (fMno.pointAttributes === 'LAZ') { - pco.loader = new LasLazLoader(fMno.version); - } else { - pco.loader = new BinaryLoader(fMno.version, boundingBox, fMno.scale); - pco.pointAttributes = new PointAttributes(pco.pointAttributes); - } - - let nodes = {}; - - { // load root - let name = 'r'; - - let root = new PointCloudOctreeGeometryNode(name, pco, boundingBox); - root.level = 0; - root.hasChildren = true; - root.spacing = pco.spacing; - if (version.upTo('1.5')) { - root.numPoints = fMno.hierarchy[0][1]; - } else { - root.numPoints = 0; - } - pco.root = root; - pco.root.load(); - nodes[name] = root; - } - - // load remaining hierarchy - if (version.upTo('1.4')) { - for (let i = 1; i < fMno.hierarchy.length; i++) { - let name = fMno.hierarchy[i][0]; - let numPoints = fMno.hierarchy[i][1]; - let index = parseInt(name.charAt(name.length - 1)); - let parentName = name.substring(0, name.length - 1); - let parentNode = nodes[parentName]; - let level = name.length - 1; - //let boundingBox = POCLoader.createChildAABB(parentNode.boundingBox, index); - let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index); - - let node = new PointCloudOctreeGeometryNode(name, pco, boundingBox); - node.level = level; - node.numPoints = numPoints; - node.spacing = pco.spacing / Math.pow(2, level); - parentNode.addChild(node); - nodes[name] = node; - } - } - - pco.nodes = nodes; - - callback(pco); - }else if (xhr.status === 404){ - callback(); - } - }; - - xhr.send(null); - } catch (e) { - console.log("loading failed: '" + url + "'"); - console.log(e); - - callback(); - } - } - - loadPointAttributes(mno){ - let fpa = mno.pointAttributes; - let pa = new PointAttributes(); - - for (let i = 0; i < fpa.length; i++) { - let pointAttribute = PointAttribute[fpa[i]]; - pa.add(pointAttribute); - } - - return pa; - } - - createChildAABB(aabb, index){ - let min = aabb.min.clone(); - let max = aabb.max.clone(); - let size = new THREE.Vector3().subVectors(max, min); - - if ((index & 0b0001) > 0) { - min.z += size.z / 2; - } else { - max.z -= size.z / 2; - } - - if ((index & 0b0010) > 0) { - min.y += size.y / 2; - } else { - max.y -= size.y / 2; - } - - if ((index & 0b0100) > 0) { - min.x += size.x / 2; - } else { - max.x -= size.x / 2; - } - - return new THREE.Box3(min, max); - } -} - diff --git a/app/static/app/js/vendor/potree/src/loader/PointAttributes.js b/app/static/app/js/vendor/potree/src/loader/PointAttributes.js deleted file mode 100644 index e12a0fd4..00000000 --- a/app/static/app/js/vendor/potree/src/loader/PointAttributes.js +++ /dev/null @@ -1,181 +0,0 @@ - - -export const PointAttributeNames = { - POSITION_CARTESIAN: 0, // float x, y, z; - COLOR_PACKED: 1, // byte r, g, b, a; I: [0,1] - COLOR_FLOATS_1: 2, // float r, g, b; I: [0,1] - COLOR_FLOATS_255: 3, // float r, g, b; I: [0,255] - NORMAL_FLOATS: 4, // float x, y, z; - FILLER: 5, - INTENSITY: 6, - CLASSIFICATION: 7, - NORMAL_SPHEREMAPPED: 8, - NORMAL_OCT16: 9, - NORMAL: 10, - RETURN_NUMBER: 11, - NUMBER_OF_RETURNS: 12, - SOURCE_ID: 13, - INDICES: 14, - SPACING: 15, - GPS_TIME: 16, -}; - - -/** - * Some types of possible point attribute data formats - * - * @class - */ -const PointAttributeTypes = { - DATA_TYPE_DOUBLE: {ordinal: 0, size: 8}, - DATA_TYPE_FLOAT: {ordinal: 1, size: 4}, - DATA_TYPE_INT8: {ordinal: 2, size: 1}, - DATA_TYPE_UINT8: {ordinal: 3, size: 1}, - DATA_TYPE_INT16: {ordinal: 4, size: 2}, - DATA_TYPE_UINT16: {ordinal: 5, size: 2}, - DATA_TYPE_INT32: {ordinal: 6, size: 4}, - DATA_TYPE_UINT32: {ordinal: 7, size: 4}, - DATA_TYPE_INT64: {ordinal: 8, size: 8}, - DATA_TYPE_UINT64: {ordinal: 9, size: 8} -}; - -let i = 0; -for (let obj in PointAttributeTypes) { - PointAttributeTypes[i] = PointAttributeTypes[obj]; - i++; -} - -export {PointAttributeTypes}; - - -class PointAttribute{ - - constructor(name, type, numElements){ - this.name = name; - this.type = type; - this.numElements = numElements; - this.byteSize = this.numElements * this.type.size; - } - -}; - -PointAttribute.POSITION_CARTESIAN = new PointAttribute( - PointAttributeNames.POSITION_CARTESIAN, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RGBA_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 4); - -PointAttribute.COLOR_PACKED = PointAttribute.RGBA_PACKED; - -PointAttribute.RGB_PACKED = new PointAttribute( - PointAttributeNames.COLOR_PACKED, - PointAttributeTypes.DATA_TYPE_INT8, 3); - -PointAttribute.NORMAL_FLOATS = new PointAttribute( - PointAttributeNames.NORMAL_FLOATS, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.FILLER_1B = new PointAttribute( - PointAttributeNames.FILLER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.INTENSITY = new PointAttribute( - PointAttributeNames.INTENSITY, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.CLASSIFICATION = new PointAttribute( - PointAttributeNames.CLASSIFICATION, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NORMAL_SPHEREMAPPED = new PointAttribute( - PointAttributeNames.NORMAL_SPHEREMAPPED, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL_OCT16 = new PointAttribute( - PointAttributeNames.NORMAL_OCT16, - PointAttributeTypes.DATA_TYPE_UINT8, 2); - -PointAttribute.NORMAL = new PointAttribute( - PointAttributeNames.NORMAL, - PointAttributeTypes.DATA_TYPE_FLOAT, 3); - -PointAttribute.RETURN_NUMBER = new PointAttribute( - PointAttributeNames.RETURN_NUMBER, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.NUMBER_OF_RETURNS = new PointAttribute( - PointAttributeNames.NUMBER_OF_RETURNS, - PointAttributeTypes.DATA_TYPE_UINT8, 1); - -PointAttribute.SOURCE_ID = new PointAttribute( - PointAttributeNames.SOURCE_ID, - PointAttributeTypes.DATA_TYPE_UINT16, 1); - -PointAttribute.INDICES = new PointAttribute( - PointAttributeNames.INDICES, - PointAttributeTypes.DATA_TYPE_UINT32, 1); - -PointAttribute.SPACING = new PointAttribute( - PointAttributeNames.SPACING, - PointAttributeTypes.DATA_TYPE_FLOAT, 1); - -PointAttribute.GPS_TIME = new PointAttribute( - PointAttributeNames.GPS_TIME, - PointAttributeTypes.DATA_TYPE_DOUBLE, 1); - -export {PointAttribute}; - -export class PointAttributes{ - - constructor(pointAttributes){ - this.attributes = []; - this.byteSize = 0; - this.size = 0; - - if (pointAttributes != null) { - for (let i = 0; i < pointAttributes.length; i++) { - let pointAttributeName = pointAttributes[i]; - let pointAttribute = PointAttribute[pointAttributeName]; - this.attributes.push(pointAttribute); - this.byteSize += pointAttribute.byteSize; - this.size++; - } - } - } - - - add(pointAttribute){ - this.attributes.push(pointAttribute); - this.byteSize += pointAttribute.byteSize; - this.size++; - }; - - hasColors(){ - for (let name in this.attributes) { - let pointAttribute = this.attributes[name]; - if (pointAttribute.name === PointAttributeNames.COLOR_PACKED) { - return true; - } - } - - return false; - }; - - hasNormals(){ - for (let name in this.attributes) { - let pointAttribute = this.attributes[name]; - if ( - pointAttribute === PointAttribute.NORMAL_SPHEREMAPPED || - pointAttribute === PointAttribute.NORMAL_FLOATS || - pointAttribute === PointAttribute.NORMAL || - pointAttribute === PointAttribute.NORMAL_OCT16) { - return true; - } - } - - return false; - }; - -} diff --git a/app/static/app/js/vendor/potree/src/loader/ept/BinaryLoader.js b/app/static/app/js/vendor/potree/src/loader/ept/BinaryLoader.js deleted file mode 100644 index 0e6aa12c..00000000 --- a/app/static/app/js/vendor/potree/src/loader/ept/BinaryLoader.js +++ /dev/null @@ -1,113 +0,0 @@ -import {XHRFactory} from "../../XHRFactory.js"; - -export class EptBinaryLoader { - extension() { - return '.bin'; - } - - workerPath() { - return Potree.scriptPath + '/workers/EptBinaryDecoderWorker.js'; - } - - load(node) { - if (node.loaded) return; - - let url = node.url() + this.extension(); - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4) { - if (xhr.status === 200) { - let buffer = xhr.response; - this.parse(node, buffer); - } else { - console.log('Failed ' + url + ': ' + xhr.status); - } - } - }; - - try { - xhr.send(null); - } - catch (e) { - console.log('Failed request: ' + e); - } - } - - parse(node, buffer) { - let workerPath = this.workerPath(); - let worker = Potree.workerPool.getWorker(workerPath); - - worker.onmessage = function(e) { - let g = new THREE.BufferGeometry(); - let numPoints = e.data.numPoints; - - let position = new Float32Array(e.data.position); - g.addAttribute('position', new THREE.BufferAttribute(position, 3)); - - let indices = new Uint8Array(e.data.indices); - g.addAttribute('indices', new THREE.BufferAttribute(indices, 4)); - - if (e.data.color) { - let color = new Uint8Array(e.data.color); - g.addAttribute('color', - new THREE.BufferAttribute(color, 4, true)); - } - if (e.data.intensity) { - let intensity = new Float32Array(e.data.intensity); - g.addAttribute('intensity', - new THREE.BufferAttribute(intensity, 1)); - } - if (e.data.classification) { - let classification = new Uint8Array(e.data.classification); - g.addAttribute('classification', - new THREE.BufferAttribute(classification, 1)); - } - if (e.data.returnNumber) { - let returnNumber = new Uint8Array(e.data.returnNumber); - g.addAttribute('returnNumber', - new THREE.BufferAttribute(returnNumber, 1)); - } - if (e.data.numberOfReturns) { - let numberOfReturns = new Uint8Array(e.data.numberOfReturns); - g.addAttribute('numberOfReturns', - new THREE.BufferAttribute(numberOfReturns, 1)); - } - if (e.data.pointSourceId) { - let pointSourceId = new Uint16Array(e.data.pointSourceId); - g.addAttribute('pointSourceID', - new THREE.BufferAttribute(pointSourceId, 1)); - } - - g.attributes.indices.normalized = true; - - let tightBoundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(e.data.tightBoundingBox.min), - new THREE.Vector3().fromArray(e.data.tightBoundingBox.max) - ); - - node.doneLoading( - g, - tightBoundingBox, - numPoints, - new THREE.Vector3(...e.data.mean)); - - Potree.workerPool.returnWorker(workerPath, worker); - }; - - let toArray = (v) => [v.x, v.y, v.z]; - let message = { - buffer: buffer, - schema: node.ept.schema, - scale: node.ept.eptScale, - offset: node.ept.eptOffset, - mins: toArray(node.key.b.min) - }; - - worker.postMessage(message, [message.buffer]); - } -}; - diff --git a/app/static/app/js/vendor/potree/src/loader/ept/LaszipLoader.js b/app/static/app/js/vendor/potree/src/loader/ept/LaszipLoader.js deleted file mode 100644 index 7a1ab4e7..00000000 --- a/app/static/app/js/vendor/potree/src/loader/ept/LaszipLoader.js +++ /dev/null @@ -1,170 +0,0 @@ -import {XHRFactory} from "../../XHRFactory.js"; -import { LASFile, LASDecoder } from "../../../libs/laslaz"; - -/** - * laslaz code taken and adapted from plas.io js-laslaz - * http://plas.io/ - * https://github.com/verma/plasio - * - * Thanks to Uday Verma and Howard Butler - * - */ - -export class EptLaszipLoader { - load(node) { - if (node.loaded) return; - - let url = node.url() + '.laz'; - - let xhr = XHRFactory.createXMLHttpRequest(); - xhr.open('GET', url, true); - xhr.responseType = 'arraybuffer'; - xhr.overrideMimeType('text/plain; charset=x-user-defined'); - xhr.onreadystatechange = () => { - if (xhr.readyState === 4) { - if (xhr.status === 200) { - let buffer = xhr.response; - this.parse(node, buffer); - } else { - console.log('Failed ' + url + ': ' + xhr.status); - } - } - }; - - xhr.send(null); - } - - parse(node, buffer){ - let lf = new LASFile(buffer); - let handler = new EptLazBatcher(node); - - lf.open() - .then(() => { - lf.isOpen = true; - return lf.getHeader(); - }) - .then((header) => { - let i = 0; - let np = header.pointsCount; - - let toArray = (v) => [v.x, v.y, v.z]; - let mins = toArray(node.key.b.min); - let maxs = toArray(node.key.b.max); - - let read = () => { - let p = lf.readData(1000000, 0, 1); - return p.then(function (data) { - let d = new LASDecoder( - data.buffer, - header.pointsFormatId, - header.pointsStructSize, - data.count, - header.scale, - header.offset, - mins, - maxs); - d.extraBytes = header.extraBytes; - d.pointsFormatId = header.pointsFormatId; - handler.push(d); - - i += data.count; - - if (data.hasMoreData) { - return read(); - } - else { - header.totalRead = i; - header.versionAsString = lf.versionAsString; - header.isCompressed = lf.isCompressed; - return null; - } - }); - }; - - return read(); - }) - .then(() => lf.close()) - .then(() => lf.isOpen = false) - .catch((err) => { - console.log('Error reading LAZ:', err); - if (lf.isOpen) { - lf.close().then(() => { - lf.isOpen = false; - throw err; - }); - } - else throw err; - }); - } -}; - -export class EptLazBatcher { - constructor(node) { this.node = node; } - - push(las) { - let workerPath = Potree.scriptPath + - '/workers/EptLaszipDecoderWorker.js'; - let worker = Potree.workerPool.getWorker(workerPath); - - worker.onmessage = (e) => { - let g = new THREE.BufferGeometry(); - let numPoints = las.pointsCount; - - let positions = new Float32Array(e.data.position); - let colors = new Uint8Array(e.data.color); - - let intensities = new Float32Array(e.data.intensity); - let classifications = new Uint8Array(e.data.classification); - let returnNumbers = new Uint8Array(e.data.returnNumber); - let numberOfReturns = new Uint8Array(e.data.numberOfReturns); - let pointSourceIDs = new Uint16Array(e.data.pointSourceID); - let indices = new Uint8Array(e.data.indices); - - g.addAttribute('position', - new THREE.BufferAttribute(positions, 3)); - g.addAttribute('color', - new THREE.BufferAttribute(colors, 4, true)); - g.addAttribute('intensity', - new THREE.BufferAttribute(intensities, 1)); - g.addAttribute('classification', - new THREE.BufferAttribute(classifications, 1)); - g.addAttribute('returnNumber', - new THREE.BufferAttribute(returnNumbers, 1)); - g.addAttribute('numberOfReturns', - new THREE.BufferAttribute(numberOfReturns, 1)); - g.addAttribute('pointSourceID', - new THREE.BufferAttribute(pointSourceIDs, 1)); - g.addAttribute('indices', - new THREE.BufferAttribute(indices, 4)); - - g.attributes.indices.normalized = true; - - let tightBoundingBox = new THREE.Box3( - new THREE.Vector3().fromArray(e.data.tightBoundingBox.min), - new THREE.Vector3().fromArray(e.data.tightBoundingBox.max) - ); - - this.node.doneLoading( - g, - tightBoundingBox, - numPoints, - new THREE.Vector3(...e.data.mean)); - - Potree.workerPool.returnWorker(workerPath, worker); - }; - - let message = { - buffer: las.arrayb, - numPoints: las.pointsCount, - pointSize: las.pointSize, - pointFormatID: las.pointsFormatId, - scale: las.scale, - offset: las.offset, - mins: las.mins, - maxs: las.maxs - }; - - worker.postMessage(message, [message.buffer]); - }; -}; - diff --git a/app/static/app/js/vendor/potree/src/loader/ept/ZstandardLoader.js b/app/static/app/js/vendor/potree/src/loader/ept/ZstandardLoader.js deleted file mode 100644 index ac7a687b..00000000 --- a/app/static/app/js/vendor/potree/src/loader/ept/ZstandardLoader.js +++ /dev/null @@ -1,12 +0,0 @@ -import {EptBinaryLoader} from "./BinaryLoader.js"; - -export class EptZstandardLoader extends EptBinaryLoader { - extension() { - return '.zst'; - } - - workerPath() { - return Potree.scriptPath + '/workers/EptZstandardDecoderWorker.js'; - } -}; - diff --git a/app/static/app/js/vendor/potree/src/materials/BlurMaterial.js b/app/static/app/js/vendor/potree/src/materials/BlurMaterial.js deleted file mode 100644 index 6e169e25..00000000 --- a/app/static/app/js/vendor/potree/src/materials/BlurMaterial.js +++ /dev/null @@ -1,23 +0,0 @@ -// see http://john-chapman-graphics.blogspot.co.at/2013/01/ssao-tutorial.html - -Potree.BlurMaterial = class BlurMaterial extends THREE.ShaderMaterial{ - - constructor(parameters = {}){ - super(); - - let uniforms = { - near: { type: 'f', value: 0 }, - far: { type: 'f', value: 0 }, - screenWidth: { type: 'f', value: 0 }, - screenHeight: { type: 'f', value: 0 }, - map: { type: 't', value: null } - }; - - this.setValues({ - uniforms: uniforms, - vertexShader: Potree.Shaders['blur.vs'], - fragmentShader: Potree.Shaders['blur.fs'] - }); - } -}; - diff --git a/app/static/app/js/vendor/potree/src/materials/ClassificationScheme.js b/app/static/app/js/vendor/potree/src/materials/ClassificationScheme.js deleted file mode 100644 index 4b91e0de..00000000 --- a/app/static/app/js/vendor/potree/src/materials/ClassificationScheme.js +++ /dev/null @@ -1,55 +0,0 @@ -export const ClassificationScheme = { - - DEFAULT: { - // never classified - 0: new THREE.Vector4(0.5, 0.5, 0.5, 1.0), - - // unclassified - 1: new THREE.Vector4(0.5, 0.5, 0.5, 1.0), - - // ground - 2: new THREE.Vector4(0.63, 0.32, 0.18, 1.0), - - // low vegetation - 3: new THREE.Vector4(0.0, 1.0, 0.0, 1.0), - - // med vegetation - 4: new THREE.Vector4(0.0, 0.8, 0.0, 1.0), - - // high vegetation - 5: new THREE.Vector4(0.0, 0.6, 0.0, 1.0), - - // building - 6: new THREE.Vector4(1.0, 0.66, 0.0, 1.0), - - // noise - 7: new THREE.Vector4(1.0, 0, 1.0, 1.0), - - // key point - 8: new THREE.Vector4(1.0, 0, 0.0, 1.0), - - // water - 9: new THREE.Vector4(0.0, 0.0, 1.0, 1.0), - - // overlap - 12: new THREE.Vector4(1.0, 1.0, 0.0, 1.0), - - // everything else - 'DEFAULT': new THREE.Vector4(0.3, 0.6, 0.6, 0.5) - } -}; - -Object.defineProperty(ClassificationScheme, 'RANDOM', { - get: function() { - - let scheme = {}; - - for(let i = 0; i <= 255; i++){ - scheme[i] = new THREE.Vector4(Math.random(), Math.random(), Math.random()); - } - - scheme["DEFAULT"] = new THREE.Vector4(Math.random(), Math.random(), Math.random()); - - return scheme; - } -}); \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/EyeDomeLightingMaterial.js b/app/static/app/js/vendor/potree/src/materials/EyeDomeLightingMaterial.js deleted file mode 100644 index c4f14828..00000000 --- a/app/static/app/js/vendor/potree/src/materials/EyeDomeLightingMaterial.js +++ /dev/null @@ -1,87 +0,0 @@ -import {Shaders} from "../../build/shaders/shaders.js"; - -// -// Algorithm by Christian Boucheny -// shader code taken and adapted from CloudCompare -// -// see -// https://github.com/cloudcompare/trunk/tree/master/plugins/qEDL/shaders/EDL -// http://www.kitware.com/source/home/post/9 -// https://tel.archives-ouvertes.fr/tel-00438464/document p. 115+ (french) - -export class EyeDomeLightingMaterial extends THREE.ShaderMaterial{ - - constructor(parameters = {}){ - super(); - - let uniforms = { - screenWidth: { type: 'f', value: 0 }, - screenHeight: { type: 'f', value: 0 }, - edlStrength: { type: 'f', value: 1.0 }, - uNear: { type: 'f', value: 1.0 }, - uFar: { type: 'f', value: 1.0 }, - radius: { type: 'f', value: 1.0 }, - neighbours: { type: '2fv', value: [] }, - depthMap: { type: 't', value: null }, - //colorMap: { type: 't', value: null }, - //uRegularColor: { type: 't', value: null }, - //uRegularDepth: { type: 't', value: null }, - uEDLColor: { type: 't', value: null }, - uEDLDepth: { type: 't', value: null }, - opacity: { type: 'f', value: 1.0 }, - uProj: { type: "Matrix4fv", value: [] }, - }; - - this.setValues({ - uniforms: uniforms, - vertexShader: this.getDefines() + Shaders['edl.vs'], - fragmentShader: this.getDefines() + Shaders['edl.fs'], - lights: false - }); - - this.neighbourCount = 8; - } - - getDefines() { - let defines = ''; - - defines += '#define NEIGHBOUR_COUNT ' + this.neighbourCount + '\n'; - - return defines; - } - - updateShaderSource() { - - let vs = this.getDefines() + Shaders['edl.vs']; - let fs = this.getDefines() + Shaders['edl.fs']; - - this.setValues({ - vertexShader: vs, - fragmentShader: fs - }); - - this.uniforms.neighbours.value = this.neighbours; - - this.needsUpdate = true; - } - - get neighbourCount(){ - return this._neighbourCount; - } - - set neighbourCount(value){ - if (this._neighbourCount !== value) { - this._neighbourCount = value; - this.neighbours = new Float32Array(this._neighbourCount * 2); - for (let c = 0; c < this._neighbourCount; c++) { - this.neighbours[2 * c + 0] = Math.cos(2 * c * Math.PI / this._neighbourCount); - this.neighbours[2 * c + 1] = Math.sin(2 * c * Math.PI / this._neighbourCount); - } - - this.updateShaderSource(); - } - } - - -} - diff --git a/app/static/app/js/vendor/potree/src/materials/Gradients.js b/app/static/app/js/vendor/potree/src/materials/Gradients.js deleted file mode 100644 index a3119610..00000000 --- a/app/static/app/js/vendor/potree/src/materials/Gradients.js +++ /dev/null @@ -1,120 +0,0 @@ -// ------------------------------------------- -// to get a ready to use gradient array from a chroma.js gradient: -// http://gka.github.io/chroma.js/ -// ------------------------------------------- -// -// let stops = []; -// for(let i = 0; i <= 10; i++){ -// let range = chroma.scale(['yellow', 'navy']).mode('lch').domain([10,0])(i)._rgb -// .slice(0, 3) -// .map(v => (v / 255).toFixed(4)) -// .join(", "); -// -// let line = `[${i / 10}, new THREE.Color(${range})],`; -// -// stops.push(line); -// } -// stops.join("\n"); -// -// -// -// ------------------------------------------- -// to get a ready to use gradient array from matplotlib: -// ------------------------------------------- -// import matplotlib.pyplot as plt -// import matplotlib.colors as colors -// -// norm = colors.Normalize(vmin=0,vmax=1) -// cmap = plt.cm.viridis -// -// for i in range(0,11): -// u = i / 10 -// rgb = cmap(norm(u))[0:3] -// rgb = ["{0:.3f}".format(v) for v in rgb] -// rgb = "[" + str(u) + ", new THREE.Color(" + ", ".join(rgb) + ")]," -// print(rgb) - -let Gradients = { - RAINBOW: [ - [0, new THREE.Color(0.278, 0, 0.714)], - [1 / 6, new THREE.Color(0, 0, 1)], - [2 / 6, new THREE.Color(0, 1, 1)], - [3 / 6, new THREE.Color(0, 1, 0)], - [4 / 6, new THREE.Color(1, 1, 0)], - [5 / 6, new THREE.Color(1, 0.64, 0)], - [1, new THREE.Color(1, 0, 0)] - ], - // From chroma spectral http://gka.github.io/chroma.js/ - SPECTRAL: [ - [0, new THREE.Color(0.3686, 0.3098, 0.6353)], - [0.1, new THREE.Color(0.1961, 0.5333, 0.7412)], - [0.2, new THREE.Color(0.4000, 0.7608, 0.6471)], - [0.3, new THREE.Color(0.6706, 0.8667, 0.6431)], - [0.4, new THREE.Color(0.9020, 0.9608, 0.5961)], - [0.5, new THREE.Color(1.0000, 1.0000, 0.7490)], - [0.6, new THREE.Color(0.9961, 0.8784, 0.5451)], - [0.7, new THREE.Color(0.9922, 0.6824, 0.3804)], - [0.8, new THREE.Color(0.9569, 0.4275, 0.2627)], - [0.9, new THREE.Color(0.8353, 0.2431, 0.3098)], - [1, new THREE.Color(0.6196, 0.0039, 0.2588)] - ], - PLASMA: [ - [0.0, new THREE.Color(0.241, 0.015, 0.610)], - [0.1, new THREE.Color(0.387, 0.001, 0.654)], - [0.2, new THREE.Color(0.524, 0.025, 0.653)], - [0.3, new THREE.Color(0.651, 0.125, 0.596)], - [0.4, new THREE.Color(0.752, 0.227, 0.513)], - [0.5, new THREE.Color(0.837, 0.329, 0.431)], - [0.6, new THREE.Color(0.907, 0.435, 0.353)], - [0.7, new THREE.Color(0.963, 0.554, 0.272)], - [0.8, new THREE.Color(0.992, 0.681, 0.195)], - [0.9, new THREE.Color(0.987, 0.822, 0.144)], - [1.0, new THREE.Color(0.940, 0.975, 0.131)] - ], - YELLOW_GREEN: [ - [0, new THREE.Color(0.1647, 0.2824, 0.3451)], - [0.1, new THREE.Color(0.1338, 0.3555, 0.4227)], - [0.2, new THREE.Color(0.0610, 0.4319, 0.4864)], - [0.3, new THREE.Color(0.0000, 0.5099, 0.5319)], - [0.4, new THREE.Color(0.0000, 0.5881, 0.5569)], - [0.5, new THREE.Color(0.1370, 0.6650, 0.5614)], - [0.6, new THREE.Color(0.2906, 0.7395, 0.5477)], - [0.7, new THREE.Color(0.4453, 0.8099, 0.5201)], - [0.8, new THREE.Color(0.6102, 0.8748, 0.4850)], - [0.9, new THREE.Color(0.7883, 0.9323, 0.4514)], - [1, new THREE.Color(0.9804, 0.9804, 0.4314)] - ], - VIRIDIS: [ - [0.0, new THREE.Color(0.267, 0.005, 0.329)], - [0.1, new THREE.Color(0.283, 0.141, 0.458)], - [0.2, new THREE.Color(0.254, 0.265, 0.530)], - [0.3, new THREE.Color(0.207, 0.372, 0.553)], - [0.4, new THREE.Color(0.164, 0.471, 0.558)], - [0.5, new THREE.Color(0.128, 0.567, 0.551)], - [0.6, new THREE.Color(0.135, 0.659, 0.518)], - [0.7, new THREE.Color(0.267, 0.749, 0.441)], - [0.8, new THREE.Color(0.478, 0.821, 0.318)], - [0.9, new THREE.Color(0.741, 0.873, 0.150)], - [1.0, new THREE.Color(0.993, 0.906, 0.144)] - ], - INFERNO: [ - [0.0, new THREE.Color(0.077, 0.042, 0.206)], - [0.1, new THREE.Color(0.225, 0.036, 0.388)], - [0.2, new THREE.Color(0.373, 0.074, 0.432)], - [0.3, new THREE.Color(0.522, 0.128, 0.420)], - [0.4, new THREE.Color(0.665, 0.182, 0.370)], - [0.5, new THREE.Color(0.797, 0.255, 0.287)], - [0.6, new THREE.Color(0.902, 0.364, 0.184)], - [0.7, new THREE.Color(0.969, 0.516, 0.063)], - [0.8, new THREE.Color(0.988, 0.683, 0.072)], - [0.9, new THREE.Color(0.961, 0.859, 0.298)], - [1.0, new THREE.Color(0.988, 0.998, 0.645)] - ], - GRAYSCALE: [ - [0, new THREE.Color(0, 0, 0)], - [1, new THREE.Color(1, 1, 1)] - ] -}; - - -export {Gradients}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/NormalizationEDLMaterial.js b/app/static/app/js/vendor/potree/src/materials/NormalizationEDLMaterial.js deleted file mode 100644 index 5689992e..00000000 --- a/app/static/app/js/vendor/potree/src/materials/NormalizationEDLMaterial.js +++ /dev/null @@ -1,70 +0,0 @@ -import {Shaders} from "../../build/shaders/shaders.js"; - - -export class NormalizationEDLMaterial extends THREE.RawShaderMaterial{ - - constructor(parameters = {}){ - super(); - - let uniforms = { - screenWidth: { type: 'f', value: 0 }, - screenHeight: { type: 'f', value: 0 }, - edlStrength: { type: 'f', value: 1.0 }, - radius: { type: 'f', value: 1.0 }, - neighbours: { type: '2fv', value: [] }, - uEDLMap: { type: 't', value: null }, - uDepthMap: { type: 't', value: null }, - uWeightMap: { type: 't', value: null }, - }; - - this.setValues({ - uniforms: uniforms, - vertexShader: this.getDefines() + Shaders['normalize.vs'], - fragmentShader: this.getDefines() + Shaders['normalize_and_edl.fs'], - }); - - this.neighbourCount = 8; - } - - getDefines() { - let defines = ''; - - defines += '#define NEIGHBOUR_COUNT ' + this.neighbourCount + '\n'; - - return defines; - } - - updateShaderSource() { - - let vs = this.getDefines() + Shaders['normalize.vs']; - let fs = this.getDefines() + Shaders['normalize_and_edl.fs']; - - this.setValues({ - vertexShader: vs, - fragmentShader: fs - }); - - this.uniforms.neighbours.value = this.neighbours; - - this.needsUpdate = true; - } - - get neighbourCount(){ - return this._neighbourCount; - } - - set neighbourCount(value){ - if (this._neighbourCount !== value) { - this._neighbourCount = value; - this.neighbours = new Float32Array(this._neighbourCount * 2); - for (let c = 0; c < this._neighbourCount; c++) { - this.neighbours[2 * c + 0] = Math.cos(2 * c * Math.PI / this._neighbourCount); - this.neighbours[2 * c + 1] = Math.sin(2 * c * Math.PI / this._neighbourCount); - } - - this.updateShaderSource(); - } - } - -} - diff --git a/app/static/app/js/vendor/potree/src/materials/NormalizationMaterial.js b/app/static/app/js/vendor/potree/src/materials/NormalizationMaterial.js deleted file mode 100644 index bcf0797d..00000000 --- a/app/static/app/js/vendor/potree/src/materials/NormalizationMaterial.js +++ /dev/null @@ -1,40 +0,0 @@ -import {Shaders} from "../../build/shaders/shaders.js"; - -export class NormalizationMaterial extends THREE.RawShaderMaterial{ - - constructor(parameters = {}){ - super(); - - let uniforms = { - uDepthMap: { type: 't', value: null }, - uWeightMap: { type: 't', value: null }, - }; - - this.setValues({ - uniforms: uniforms, - vertexShader: this.getDefines() + Shaders['normalize.vs'], - fragmentShader: this.getDefines() + Shaders['normalize.fs'], - }); - } - - getDefines() { - let defines = ''; - - return defines; - } - - updateShaderSource() { - - let vs = this.getDefines() + Shaders['normalize.vs']; - let fs = this.getDefines() + Shaders['normalize.fs']; - - this.setValues({ - vertexShader: vs, - fragmentShader: fs - }); - - this.needsUpdate = true; - } - -} - diff --git a/app/static/app/js/vendor/potree/src/materials/PointCloudMaterial.js b/app/static/app/js/vendor/potree/src/materials/PointCloudMaterial.js deleted file mode 100644 index 773ff233..00000000 --- a/app/static/app/js/vendor/potree/src/materials/PointCloudMaterial.js +++ /dev/null @@ -1,1022 +0,0 @@ -import {Utils} from "../utils.js"; -import {Gradients} from "./Gradients.js"; -import {Shaders} from "../../build/shaders/shaders.js"; -import {ClassificationScheme} from "./ClassificationScheme.js"; -import {PointSizeType, PointColorType, PointShape, TreeType} from "../defines.js"; - -// -// -// -// how to calculate the radius of a projected sphere in screen space -// http://stackoverflow.com/questions/21648630/radius-of-projected-sphere-in-screen-space -// http://stackoverflow.com/questions/3717226/radius-of-projected-sphere -// - - -export class PointCloudMaterial extends THREE.RawShaderMaterial { - constructor (parameters = {}) { - super(); - - this.visibleNodesTexture = Utils.generateDataTexture(2048, 1, new THREE.Color(0xffffff)); - this.visibleNodesTexture.minFilter = THREE.NearestFilter; - this.visibleNodesTexture.magFilter = THREE.NearestFilter; - - let getValid = (a, b) => { - if(a !== undefined){ - return a; - }else{ - return b; - } - } - - let pointSize = getValid(parameters.size, 1.0); - let minSize = getValid(parameters.minSize, 2.0); - let maxSize = getValid(parameters.maxSize, 50.0); - let treeType = getValid(parameters.treeType, TreeType.OCTREE); - - this._pointSizeType = PointSizeType.FIXED; - this._shape = PointShape.SQUARE; - this._pointColorType = PointColorType.RGB; - this._useClipBox = false; - this.clipBoxes = []; - //this.clipSpheres = []; - this.clipPolygons = []; - this._weighted = false; - this._gradient = Gradients.SPECTRAL; - this.gradientTexture = PointCloudMaterial.generateGradientTexture(this._gradient); - this.lights = false; - this.fog = false; - this._treeType = treeType; - this._useEDL = false; - this._snapEnabled = false; - this._numSnapshots = 0; - this.defines = new Map(); - - this._defaultIntensityRangeChanged = false; - this._defaultElevationRangeChanged = false; - - this.attributes = { - position: { type: 'fv', value: [] }, - color: { type: 'fv', value: [] }, - normal: { type: 'fv', value: [] }, - intensity: { type: 'f', value: [] }, - classification: { type: 'f', value: [] }, - returnNumber: { type: 'f', value: [] }, - numberOfReturns: { type: 'f', value: [] }, - pointSourceID: { type: 'f', value: [] }, - indices: { type: 'fv', value: [] } - }; - - this.uniforms = { - level: { type: "f", value: 0.0 }, - vnStart: { type: "f", value: 0.0 }, - spacing: { type: "f", value: 1.0 }, - blendHardness: { type: "f", value: 2.0 }, - blendDepthSupplement: { type: "f", value: 0.0 }, - fov: { type: "f", value: 1.0 }, - screenWidth: { type: "f", value: 1.0 }, - screenHeight: { type: "f", value: 1.0 }, - near: { type: "f", value: 0.1 }, - far: { type: "f", value: 1.0 }, - uColor: { type: "c", value: new THREE.Color( 0xffffff ) }, - uOpacity: { type: "f", value: 1.0 }, - size: { type: "f", value: pointSize }, - minSize: { type: "f", value: minSize }, - maxSize: { type: "f", value: maxSize }, - octreeSize: { type: "f", value: 0 }, - bbSize: { type: "fv", value: [0, 0, 0] }, - elevationRange: { type: "2fv", value: [0, 0] }, - - clipBoxCount: { type: "f", value: 0 }, - //clipSphereCount: { type: "f", value: 0 }, - clipPolygonCount: { type: "i", value: 0 }, - clipBoxes: { type: "Matrix4fv", value: [] }, - //clipSpheres: { type: "Matrix4fv", value: [] }, - clipPolygons: { type: "3fv", value: [] }, - clipPolygonVCount: { type: "iv", value: [] }, - clipPolygonVP: { type: "Matrix4fv", value: [] }, - - visibleNodes: { type: "t", value: this.visibleNodesTexture }, - pcIndex: { type: "f", value: 0 }, - gradient: { type: "t", value: this.gradientTexture }, - classificationLUT: { type: "t", value: this.classificationTexture }, - uHQDepthMap: { type: "t", value: null }, - toModel: { type: "Matrix4f", value: [] }, - diffuse: { type: "fv", value: [1, 1, 1] }, - transition: { type: "f", value: 0.5 }, - intensityRange: { type: "fv", value: [0, 65000] }, - intensityGamma: { type: "f", value: 1 }, - intensityContrast: { type: "f", value: 0 }, - intensityBrightness:{ type: "f", value: 0 }, - rgbGamma: { type: "f", value: 1 }, - rgbContrast: { type: "f", value: 0 }, - rgbBrightness: { type: "f", value: 0 }, - wRGB: { type: "f", value: 1 }, - wIntensity: { type: "f", value: 0 }, - wElevation: { type: "f", value: 0 }, - wClassification: { type: "f", value: 0 }, - wReturnNumber: { type: "f", value: 0 }, - wSourceID: { type: "f", value: 0 }, - useOrthographicCamera: { type: "b", value: false }, - clipTask: { type: "i", value: 1 }, - clipMethod: { type: "i", value: 1 }, - uSnapshot: { type: "tv", value: [] }, - uSnapshotDepth: { type: "tv", value: [] }, - uSnapView: { type: "Matrix4fv", value: [] }, - uSnapProj: { type: "Matrix4fv", value: [] }, - uSnapProjInv: { type: "Matrix4fv", value: [] }, - uSnapViewInv: { type: "Matrix4fv", value: [] }, - uShadowColor: { type: "3fv", value: [0, 0, 0] }, - - uFilterReturnNumberRange: { type: "fv", value: [0, 7]}, - uFilterNumberOfReturnsRange: { type: "fv", value: [0, 7]}, - uFilterGPSTimeClipRange: { type: "fv", value: [0, 7]}, - }; - - this.classification = ClassificationScheme.DEFAULT; - - this.defaultAttributeValues.normal = [0, 0, 0]; - this.defaultAttributeValues.classification = [0, 0, 0]; - this.defaultAttributeValues.indices = [0, 0, 0, 0]; - - //if(Potree.Features.WEBGL2.isSupported()){ - // this.vertexShader = this.getDefines() + Shaders['pointcloud.gl2.vs']; - // this.fragmentShader = this.getDefines() + Shaders['pointcloud.fs']; - //}else{ - // this.vertexShader = this.getDefines() + Shaders['pointcloud.vs']; - // this.fragmentShader = this.getDefines() + Shaders['pointcloud.fs']; - //} - - this.vertexShader = Shaders['pointcloud.vs']; - this.fragmentShader = Shaders['pointcloud.fs']; - - - this.vertexColors = THREE.VertexColors; - } - - setDefine(key, value){ - if(value !== undefined && value !== null){ - if(this.defines.get(key) !== value){ - this.defines.set(key, value); - this.updateShaderSource(); - } - }else{ - this.removeDefine(key); - } - } - - removeDefine(key){ - this.defines.delete(key); - } - - updateShaderSource () { - - let vs = Potree.Features.WEBGL2.isSupported() ? - Shaders['pointcloud.gl2.vs'] : Shaders['pointcloud.vs']; - let fs = Potree.Features.WEBGL2.isSupported() ? - Shaders['pointcloud.gl2.fs'] : Shaders['pointcloud.fs']; - let definesString = this.getDefines(); - - let vsVersionIndex = vs.indexOf("#version "); - let fsVersionIndex = fs.indexOf("#version "); - - if(vsVersionIndex >= 0){ - vs = vs.replace(/(#version .*)/, `$1\n${definesString}`) - }else{ - vs = `${definesString}\n${vs}`; - } - - if(fsVersionIndex >= 0){ - fs = fs.replace(/(#version .*)/, `$1\n${definesString}`) - }else{ - fs = `${definesString}\n${fs}`; - } - - this.vertexShader = vs; - this.fragmentShader = fs; - - if (this.opacity === 1.0) { - this.blending = THREE.NoBlending; - this.transparent = false; - this.depthTest = true; - this.depthWrite = true; - this.depthFunc = THREE.LessEqualDepth; - } else if (this.opacity < 1.0 && !this.useEDL) { - this.blending = THREE.AdditiveBlending; - this.transparent = true; - this.depthTest = false; - this.depthWrite = true; - this.depthFunc = THREE.AlwaysDepth; - } - - if (this.weighted) { - this.blending = THREE.AdditiveBlending; - this.transparent = true; - this.depthTest = true; - this.depthWrite = false; - } - - this.needsUpdate = true; - } - - getDefines () { - let defines = []; - - if (this.pointSizeType === PointSizeType.FIXED) { - defines.push('#define fixed_point_size'); - } else if (this.pointSizeType === PointSizeType.ATTENUATED) { - defines.push('#define attenuated_point_size'); - } else if (this.pointSizeType === PointSizeType.ADAPTIVE) { - defines.push('#define adaptive_point_size'); - } - - if (this.shape === PointShape.SQUARE) { - defines.push('#define square_point_shape'); - } else if (this.shape === PointShape.CIRCLE) { - defines.push('#define circle_point_shape'); - } else if (this.shape === PointShape.PARABOLOID) { - defines.push('#define paraboloid_point_shape'); - } - - if (this._useEDL) { - defines.push('#define use_edl'); - } - - if (this._snapEnabled) { - defines.push('#define snap_enabled'); - } - - if (this._pointColorType === PointColorType.RGB) { - defines.push('#define color_type_rgb'); - } else if (this._pointColorType === PointColorType.COLOR) { - defines.push('#define color_type_color'); - } else if (this._pointColorType === PointColorType.DEPTH) { - defines.push('#define color_type_depth'); - } else if (this._pointColorType === PointColorType.HEIGHT) { - defines.push('#define color_type_height'); - } else if (this._pointColorType === PointColorType.INTENSITY) { - defines.push('#define color_type_intensity'); - } else if (this._pointColorType === PointColorType.INTENSITY_GRADIENT) { - defines.push('#define color_type_intensity_gradient'); - } else if (this._pointColorType === PointColorType.LOD) { - defines.push('#define color_type_lod'); - } else if (this._pointColorType === PointColorType.POINT_INDEX) { - defines.push('#define color_type_point_index'); - } else if (this._pointColorType === PointColorType.CLASSIFICATION) { - defines.push('#define color_type_classification'); - } else if (this._pointColorType === PointColorType.RETURN_NUMBER) { - defines.push('#define color_type_return_number'); - } else if (this._pointColorType === PointColorType.SOURCE) { - defines.push('#define color_type_source'); - } else if (this._pointColorType === PointColorType.NORMAL) { - defines.push('#define color_type_normal'); - } else if (this._pointColorType === PointColorType.PHONG) { - defines.push('#define color_type_phong'); - } else if (this._pointColorType === PointColorType.RGB_HEIGHT) { - defines.push('#define color_type_rgb_height'); - } else if (this._pointColorType === PointColorType.GPS_TIME) { - defines.push('#define color_type_gpstime'); - } else if (this._pointColorType === PointColorType.COMPOSITE) { - defines.push('#define color_type_composite'); - } - - if(this._treeType === TreeType.OCTREE){ - defines.push('#define tree_type_octree'); - }else if(this._treeType === TreeType.KDTREE){ - defines.push('#define tree_type_kdtree'); - } - - if (this.weighted) { - defines.push('#define weighted_splats'); - } - - for(let [key, value] of this.defines){ - defines.push(value); - } - - return defines.join("\n"); - } - - setClipBoxes (clipBoxes) { - if (!clipBoxes) { - return; - } - - let doUpdate = (this.clipBoxes.length !== clipBoxes.length) && (clipBoxes.length === 0 || this.clipBoxes.length === 0); - - this.uniforms.clipBoxCount.value = this.clipBoxes.length; - this.clipBoxes = clipBoxes; - - if (doUpdate) { - this.updateShaderSource(); - } - - this.uniforms.clipBoxes.value = new Float32Array(this.clipBoxes.length * 16); - - for (let i = 0; i < this.clipBoxes.length; i++) { - let box = clipBoxes[i]; - - this.uniforms.clipBoxes.value.set(box.inverse.elements, 16 * i); - } - - for (let i = 0; i < this.uniforms.clipBoxes.value.length; i++) { - if (Number.isNaN(this.uniforms.clipBoxes.value[i])) { - this.uniforms.clipBoxes.value[i] = Infinity; - } - } - } - - //setClipSpheres(clipSpheres){ - // if (!clipSpheres) { - // return; - // } - - // let doUpdate = (this.clipSpheres.length !== clipSpheres.length) && (clipSpheres.length === 0 || this.clipSpheres.length === 0); - - // this.uniforms.clipSphereCount.value = this.clipSpheres.length; - // this.clipSpheres = clipSpheres; - - // if (doUpdate) { - // this.updateShaderSource(); - // } - - // this.uniforms.clipSpheres.value = new Float32Array(this.clipSpheres.length * 16); - - // for (let i = 0; i < this.clipSpheres.length; i++) { - // let sphere = clipSpheres[i]; - - // this.uniforms.clipSpheres.value.set(sphere.matrixWorld.elements, 16 * i); - // } - - // for (let i = 0; i < this.uniforms.clipSpheres.value.length; i++) { - // if (Number.isNaN(this.uniforms.clipSpheres.value[i])) { - // this.uniforms.clipSpheres.value[i] = Infinity; - // } - // } - //} - - setClipPolygons(clipPolygons, maxPolygonVertices) { - if(!clipPolygons){ - return; - } - - this.clipPolygons = clipPolygons; - - let doUpdate = (this.clipPolygons.length !== clipPolygons.length); - - if(doUpdate){ - this.updateShaderSource(); - } - } - - get gradient(){ - return this._gradient; - } - - set gradient (value) { - if (this._gradient !== value) { - this._gradient = value; - this.gradientTexture = PointCloudMaterial.generateGradientTexture(this._gradient); - this.uniforms.gradient.value = this.gradientTexture; - } - } - - get useOrthographicCamera() { - return this.uniforms.useOrthographicCamera.value; - } - - set useOrthographicCamera(value) { - if(this.uniforms.useOrthographicCamera.value !== value){ - this.uniforms.useOrthographicCamera.value = value; - } - } - - - get classification () { - return this._classification; - } - - set classification (value) { - - let copy = {}; - for(let key of Object.keys(value)){ - copy[key] = value[key].clone(); - } - - let isEqual = false; - if(this._classification === undefined){ - isEqual = false; - }else{ - isEqual = Object.keys(copy).length === Object.keys(this._classification).length; - - for(let key of Object.keys(copy)){ - isEqual = isEqual && this._classification[key] !== undefined; - isEqual = isEqual && copy[key].equals(this._classification[key]); - } - } - - if (!isEqual) { - this._classification = copy; - this.recomputeClassification(); - } - } - - recomputeClassification () { - this.classificationTexture = PointCloudMaterial.generateClassificationTexture(this._classification); - this.uniforms.classificationLUT.value = this.classificationTexture; - - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - - get numSnapshots(){ - return this._numSnapshots; - } - - set numSnapshots(value){ - this._numSnapshots = value; - } - - get snapEnabled(){ - return this._snapEnabled; - } - - set snapEnabled(value){ - if(this._snapEnabled !== value){ - this._snapEnabled = value; - //this.uniforms.snapEnabled.value = value; - this.updateShaderSource(); - } - } - - get spacing () { - return this.uniforms.spacing.value; - } - - set spacing (value) { - if (this.uniforms.spacing.value !== value) { - this.uniforms.spacing.value = value; - } - } - - get useClipBox () { - return this._useClipBox; - } - - set useClipBox (value) { - if (this._useClipBox !== value) { - this._useClipBox = value; - this.updateShaderSource(); - } - } - - get clipTask(){ - return this.uniforms.clipTask.value; - } - - set clipTask(mode){ - this.uniforms.clipTask.value = mode; - } - - get clipMethod(){ - return this.uniforms.clipMethod.value; - } - - set clipMethod(mode){ - this.uniforms.clipMethod.value = mode; - } - - get weighted(){ - return this._weighted; - } - - set weighted (value) { - if (this._weighted !== value) { - this._weighted = value; - this.updateShaderSource(); - } - } - - get fov () { - return this.uniforms.fov.value; - } - - set fov (value) { - if (this.uniforms.fov.value !== value) { - this.uniforms.fov.value = value; - // this.updateShaderSource(); - } - } - - get screenWidth () { - return this.uniforms.screenWidth.value; - } - - set screenWidth (value) { - if (this.uniforms.screenWidth.value !== value) { - this.uniforms.screenWidth.value = value; - // this.updateShaderSource(); - } - } - - get screenHeight () { - return this.uniforms.screenHeight.value; - } - - set screenHeight (value) { - if (this.uniforms.screenHeight.value !== value) { - this.uniforms.screenHeight.value = value; - // this.updateShaderSource(); - } - } - - get near () { - return this.uniforms.near.value; - } - - set near (value) { - if (this.uniforms.near.value !== value) { - this.uniforms.near.value = value; - } - } - - get far () { - return this.uniforms.far.value; - } - - set far (value) { - if (this.uniforms.far.value !== value) { - this.uniforms.far.value = value; - } - } - - get opacity(){ - return this.uniforms.uOpacity.value; - } - - set opacity (value) { - if (this.uniforms && this.uniforms.uOpacity) { - if (this.uniforms.uOpacity.value !== value) { - this.uniforms.uOpacity.value = value; - this.updateShaderSource(); - this.dispatchEvent({ - type: 'opacity_changed', - target: this - }); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - } - - get pointColorType () { - return this._pointColorType; - } - - set pointColorType (value) { - if (this._pointColorType !== value) { - this._pointColorType = value; - this.updateShaderSource(); - this.dispatchEvent({ - type: 'point_color_type_changed', - target: this - }); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get pointSizeType () { - return this._pointSizeType; - } - - set pointSizeType (value) { - if (this._pointSizeType !== value) { - this._pointSizeType = value; - this.updateShaderSource(); - this.dispatchEvent({ - type: 'point_size_type_changed', - target: this - }); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get useEDL(){ - return this._useEDL; - } - - set useEDL (value) { - if (this._useEDL !== value) { - this._useEDL = value; - this.updateShaderSource(); - } - } - - get color () { - return this.uniforms.uColor.value; - } - - set color (value) { - if (!this.uniforms.uColor.value.equals(value)) { - this.uniforms.uColor.value.copy(value); - - this.dispatchEvent({ - type: 'color_changed', - target: this - }); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get shape () { - return this._shape; - } - - set shape (value) { - if (this._shape !== value) { - this._shape = value; - this.updateShaderSource(); - this.dispatchEvent({type: 'point_shape_changed', target: this}); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get treeType () { - return this._treeType; - } - - set treeType (value) { - if (this._treeType !== value) { - this._treeType = value; - this.updateShaderSource(); - } - } - - get bbSize () { - return this.uniforms.bbSize.value; - } - - set bbSize (value) { - this.uniforms.bbSize.value = value; - } - - get size () { - return this.uniforms.size.value; - } - - set size (value) { - if (this.uniforms.size.value !== value) { - this.uniforms.size.value = value; - - this.dispatchEvent({ - type: 'point_size_changed', - target: this - }); - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get elevationRange () { - return this.uniforms.elevationRange.value; - } - - set elevationRange (value) { - let changed = this.uniforms.elevationRange.value[0] !== value[0] - || this.uniforms.elevationRange.value[1] !== value[1]; - - if(changed){ - this.uniforms.elevationRange.value = value; - - this._defaultElevationRangeChanged = true; - - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get heightMin () { - return this.uniforms.elevationRange.value[0]; - } - - set heightMin (value) { - this.elevationRange = [value, this.elevationRange[1]]; - } - - get heightMax () { - return this.uniforms.elevationRange.value[1]; - } - - set heightMax (value) { - this.elevationRange = [this.elevationRange[0], value]; - } - - get transition () { - return this.uniforms.transition.value; - } - - set transition (value) { - this.uniforms.transition.value = value; - } - - get intensityRange () { - return this.uniforms.intensityRange.value; - } - - set intensityRange (value) { - if (!(value instanceof Array && value.length === 2)) { - return; - } - - if (value[0] === this.uniforms.intensityRange.value[0] && - value[1] === this.uniforms.intensityRange.value[1]) { - return; - } - - this.uniforms.intensityRange.value = value; - - this._defaultIntensityRangeChanged = true; - - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - - get intensityGamma () { - return this.uniforms.intensityGamma.value; - } - - set intensityGamma (value) { - if (this.uniforms.intensityGamma.value !== value) { - this.uniforms.intensityGamma.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get intensityContrast () { - return this.uniforms.intensityContrast.value; - } - - set intensityContrast (value) { - if (this.uniforms.intensityContrast.value !== value) { - this.uniforms.intensityContrast.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get intensityBrightness () { - return this.uniforms.intensityBrightness.value; - } - - set intensityBrightness (value) { - if (this.uniforms.intensityBrightness.value !== value) { - this.uniforms.intensityBrightness.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get rgbGamma () { - return this.uniforms.rgbGamma.value; - } - - set rgbGamma (value) { - if (this.uniforms.rgbGamma.value !== value) { - this.uniforms.rgbGamma.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get rgbContrast () { - return this.uniforms.rgbContrast.value; - } - - set rgbContrast (value) { - if (this.uniforms.rgbContrast.value !== value) { - this.uniforms.rgbContrast.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get rgbBrightness () { - return this.uniforms.rgbBrightness.value; - } - - set rgbBrightness (value) { - if (this.uniforms.rgbBrightness.value !== value) { - this.uniforms.rgbBrightness.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightRGB () { - return this.uniforms.wRGB.value; - } - - set weightRGB (value) { - if(this.uniforms.wRGB.value !== value){ - this.uniforms.wRGB.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightIntensity () { - return this.uniforms.wIntensity.value; - } - - set weightIntensity (value) { - if(this.uniforms.wIntensity.value !== value){ - this.uniforms.wIntensity.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightElevation () { - return this.uniforms.wElevation.value; - } - - set weightElevation (value) { - if(this.uniforms.wElevation.value !== value){ - this.uniforms.wElevation.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightClassification () { - return this.uniforms.wClassification.value; - } - - set weightClassification (value) { - if(this.uniforms.wClassification.value !== value){ - this.uniforms.wClassification.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightReturnNumber () { - return this.uniforms.wReturnNumber.value; - } - - set weightReturnNumber (value) { - if(this.uniforms.wReturnNumber.value !== value){ - this.uniforms.wReturnNumber.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - get weightSourceID () { - return this.uniforms.wSourceID.value; - } - - set weightSourceID (value) { - if(this.uniforms.wSourceID.value !== value){ - this.uniforms.wSourceID.value = value; - this.dispatchEvent({ - type: 'material_property_changed', - target: this - }); - } - } - - static generateGradientTexture (gradient) { - let size = 64; - - // create canvas - let canvas = document.createElement('canvas'); - canvas.width = size; - canvas.height = size; - - // get context - let context = canvas.getContext('2d'); - - // draw gradient - context.rect(0, 0, size, size); - let ctxGradient = context.createLinearGradient(0, 0, size, size); - - for (let i = 0; i < gradient.length; i++) { - let step = gradient[i]; - - ctxGradient.addColorStop(step[0], '#' + step[1].getHexString()); - } - - context.fillStyle = ctxGradient; - context.fill(); - - //let texture = new THREE.Texture(canvas); - let texture = new THREE.CanvasTexture(canvas); - texture.needsUpdate = true; - - texture.minFilter = THREE.LinearFilter; - // textureImage = texture.image; - - return texture; - } - - static generateClassificationTexture (classification) { - let width = 256; - let height = 256; - let size = width * height; - - let data = new Uint8Array(4 * size); - - for (let x = 0; x < width; x++) { - for (let y = 0; y < height; y++) { - let i = x + width * y; - - let color; - if (classification[x]) { - color = classification[x]; - } else if (classification[x % 32]) { - color = classification[x % 32]; - } else { - color = classification.DEFAULT; - } - - data[4 * i + 0] = 255 * color.x; - data[4 * i + 1] = 255 * color.y; - data[4 * i + 2] = 255 * color.z; - data[4 * i + 3] = 255 * color.w; - } - } - - let texture = new THREE.DataTexture(data, width, height, THREE.RGBAFormat); - texture.magFilter = THREE.NearestFilter; - texture.needsUpdate = true; - - return texture; - } - - disableEvents(){ - if(this._hiddenListeners === undefined){ - this._hiddenListeners = this._listeners; - this._listeners = {}; - } - }; - - enableEvents(){ - this._listeners = this._hiddenListeners; - this._hiddenListeners = undefined; - }; - - copyFrom(from){ - - for(let name of this.uniforms){ - this.uniforms[name].value = from.uniforms[name].value; - } - - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/blur.fs b/app/static/app/js/vendor/potree/src/materials/shaders/blur.fs deleted file mode 100644 index fcf29927..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/blur.fs +++ /dev/null @@ -1,32 +0,0 @@ - -uniform mat4 projectionMatrix; - -uniform float screenWidth; -uniform float screenHeight; -uniform float near; -uniform float far; - -uniform sampler2D map; - -varying vec2 vUv; - -void main() { - - float dx = 1.0 / screenWidth; - float dy = 1.0 / screenHeight; - - vec3 color = vec3(0.0, 0.0, 0.0); - color += texture2D(map, vUv + vec2(-dx, -dy)).rgb; - color += texture2D(map, vUv + vec2( 0, -dy)).rgb; - color += texture2D(map, vUv + vec2(+dx, -dy)).rgb; - color += texture2D(map, vUv + vec2(-dx, 0)).rgb; - color += texture2D(map, vUv + vec2( 0, 0)).rgb; - color += texture2D(map, vUv + vec2(+dx, 0)).rgb; - color += texture2D(map, vUv + vec2(-dx, dy)).rgb; - color += texture2D(map, vUv + vec2( 0, dy)).rgb; - color += texture2D(map, vUv + vec2(+dx, dy)).rgb; - - color = color / 9.0; - - gl_FragColor = vec4(color, 1.0); -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/blur.vs b/app/static/app/js/vendor/potree/src/materials/shaders/blur.vs deleted file mode 100644 index 858585b3..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/blur.vs +++ /dev/null @@ -1,8 +0,0 @@ - -varying vec2 vUv; - -void main() { - vUv = uv; - - gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/edl.fs b/app/static/app/js/vendor/potree/src/materials/shaders/edl.fs deleted file mode 100644 index 5ba9ef2e..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/edl.fs +++ /dev/null @@ -1,72 +0,0 @@ -// -// adapted from the EDL shader code from Christian Boucheny in cloud compare: -// https://github.com/cloudcompare/trunk/tree/master/plugins/qEDL/shaders/EDL -// - -#extension GL_EXT_frag_depth : enable - -uniform float screenWidth; -uniform float screenHeight; -uniform vec2 neighbours[NEIGHBOUR_COUNT]; -uniform float edlStrength; -uniform float radius; -uniform float opacity; - -uniform float uNear; -uniform float uFar; - -uniform mat4 uProj; - -uniform sampler2D uEDLColor; -uniform sampler2D uEDLDepth; - -varying vec2 vUv; - -float response(float depth){ - vec2 uvRadius = radius / vec2(screenWidth, screenHeight); - - float sum = 0.0; - - for(int i = 0; i < NEIGHBOUR_COUNT; i++){ - vec2 uvNeighbor = vUv + uvRadius * neighbours[i]; - - float neighbourDepth = texture2D(uEDLColor, uvNeighbor).a; - neighbourDepth = (neighbourDepth == 1.0) ? 0.0 : neighbourDepth; - - if(neighbourDepth != 0.0){ - if(depth == 0.0){ - sum += 100.0; - }else{ - sum += max(0.0, depth - neighbourDepth); - } - } - } - - return sum / float(NEIGHBOUR_COUNT); -} - -void main(){ - vec4 cEDL = texture2D(uEDLColor, vUv); - - float depth = cEDL.a; - depth = (depth == 1.0) ? 0.0 : depth; - float res = response(depth); - float shade = exp(-res * 300.0 * edlStrength); - - gl_FragColor = vec4(cEDL.rgb * shade, opacity); - - { // write regular hyperbolic depth values to depth buffer - float dl = pow(2.0, depth); - - vec4 dp = uProj * vec4(0.0, 0.0, -dl, 1.0); - float pz = dp.z / dp.w; - float fragDepth = (pz + 1.0) / 2.0; - - gl_FragDepthEXT = fragDepth; - } - - if(depth == 0.0){ - discard; - } - -} diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/edl.vs b/app/static/app/js/vendor/potree/src/materials/shaders/edl.vs deleted file mode 100644 index e2734a65..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/edl.vs +++ /dev/null @@ -1,11 +0,0 @@ - - -varying vec2 vUv; - -void main() { - vUv = uv; - - vec4 mvPosition = modelViewMatrix * vec4(position,1.0); - - gl_Position = projectionMatrix * mvPosition; -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/normalize.fs b/app/static/app/js/vendor/potree/src/materials/shaders/normalize.fs deleted file mode 100644 index 58036a44..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/normalize.fs +++ /dev/null @@ -1,29 +0,0 @@ - -#extension GL_EXT_frag_depth : enable - -precision mediump float; -precision mediump int; - -uniform sampler2D uWeightMap; -uniform sampler2D uDepthMap; - -varying vec2 vUv; - -void main() { - float depth = texture2D(uDepthMap, vUv).r; - - if(depth >= 1.0){ - discard; - } - - gl_FragColor = vec4(depth, 1.0, 0.0, 1.0); - - vec4 color = texture2D(uWeightMap, vUv); - color = color / color.w; - - gl_FragColor = vec4(color.xyz, 1.0); - - gl_FragDepthEXT = depth; - - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/normalize.vs b/app/static/app/js/vendor/potree/src/materials/shaders/normalize.vs deleted file mode 100644 index bb381c8a..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/normalize.vs +++ /dev/null @@ -1,16 +0,0 @@ - -precision mediump float; -precision mediump int; - -attribute vec3 position; -attribute vec2 uv; - -uniform mat4 projectionMatrix; -uniform mat4 modelViewMatrix; - -varying vec2 vUv; - -void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0); -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/normalize_and_edl.fs b/app/static/app/js/vendor/potree/src/materials/shaders/normalize_and_edl.fs deleted file mode 100644 index 2ab8f0e3..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/normalize_and_edl.fs +++ /dev/null @@ -1,59 +0,0 @@ - -#extension GL_EXT_frag_depth : enable - -precision mediump float; -precision mediump int; - -uniform sampler2D uWeightMap; -uniform sampler2D uEDLMap; -uniform sampler2D uDepthMap; - -uniform float screenWidth; -uniform float screenHeight; -uniform vec2 neighbours[NEIGHBOUR_COUNT]; -uniform float edlStrength; -uniform float radius; - -varying vec2 vUv; - -float response(float depth){ - vec2 uvRadius = radius / vec2(screenWidth, screenHeight); - - float sum = 0.0; - - for(int i = 0; i < NEIGHBOUR_COUNT; i++){ - vec2 uvNeighbor = vUv + uvRadius * neighbours[i]; - - float neighbourDepth = texture2D(uEDLMap, uvNeighbor).a; - - if(neighbourDepth != 0.0){ - if(depth == 0.0){ - sum += 100.0; - }else{ - sum += max(0.0, depth - neighbourDepth); - } - } - } - - return sum / float(NEIGHBOUR_COUNT); -} - -void main() { - - float edlDepth = texture2D(uEDLMap, vUv).a; - float res = response(edlDepth); - float shade = exp(-res * 300.0 * edlStrength); - - float depth = texture2D(uDepthMap, vUv).r; - if(depth >= 1.0 && res == 0.0){ - discard; - } - - vec4 color = texture2D(uWeightMap, vUv); - color = color / color.w; - color = color * shade; - - gl_FragColor = vec4(color.xyz, 1.0); - - gl_FragDepthEXT = depth; -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.fs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.fs deleted file mode 100644 index 2509d54c..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.fs +++ /dev/null @@ -1,98 +0,0 @@ - -#if defined paraboloid_point_shape - #extension GL_EXT_frag_depth : enable -#endif - -precision highp float; -precision highp int; - -uniform mat4 viewMatrix; -uniform mat4 uViewInv; -uniform mat4 uProjInv; -uniform vec3 cameraPosition; - - -uniform mat4 projectionMatrix; -uniform float uOpacity; - -uniform float blendHardness; -uniform float blendDepthSupplement; -uniform float fov; -uniform float uSpacing; -uniform float near; -uniform float far; -uniform float uPCIndex; -uniform float uScreenWidth; -uniform float uScreenHeight; - -varying vec3 vColor; -varying float vLogDepth; -varying vec3 vViewPosition; -varying float vRadius; -varying float vPointSize; -varying vec3 vPosition; - - -float specularStrength = 1.0; - -void main() { - - vec3 color = vColor; - float depth = gl_FragCoord.z; - - #if defined(circle_point_shape) || defined(paraboloid_point_shape) - float u = 2.0 * gl_PointCoord.x - 1.0; - float v = 2.0 * gl_PointCoord.y - 1.0; - #endif - - #if defined(circle_point_shape) - float cc = u*u + v*v; - if(cc > 1.0){ - discard; - } - #endif - - #if defined color_type_point_index - gl_FragColor = vec4(color, uPCIndex / 255.0); - #else - gl_FragColor = vec4(color, uOpacity); - #endif - - #if defined paraboloid_point_shape - float wi = 0.0 - ( u*u + v*v); - vec4 pos = vec4(vViewPosition, 1.0); - pos.z += wi * vRadius; - float linearDepth = -pos.z; - pos = projectionMatrix * pos; - pos = pos / pos.w; - float expDepth = pos.z; - depth = (pos.z + 1.0) / 2.0; - gl_FragDepthEXT = depth; - - #if defined(color_type_depth) - color.r = linearDepth; - color.g = expDepth; - #endif - - #if defined(use_edl) - gl_FragColor.a = log2(linearDepth); - #endif - - #else - #if defined(use_edl) - gl_FragColor.a = vLogDepth; - #endif - #endif - - #if defined(weighted_splats) - float distance = 2.0 * length(gl_PointCoord.xy - 0.5); - float weight = max(0.0, 1.0 - distance); - weight = pow(weight, 1.5); - - gl_FragColor.a = weight; - gl_FragColor.xyz = gl_FragColor.xyz * weight; - #endif - -} - - diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.fs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.fs deleted file mode 100644 index 243af993..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.fs +++ /dev/null @@ -1,101 +0,0 @@ -#version 300 es - -#if defined paraboloid_point_shape - #extension GL_EXT_frag_depth : enable -#endif - -precision highp float; -precision highp int; - -uniform mat4 viewMatrix; -uniform mat4 uViewInv; -uniform mat4 uProjInv; -uniform vec3 cameraPosition; - - -uniform mat4 projectionMatrix; -uniform float uOpacity; - -uniform float blendHardness; -uniform float blendDepthSupplement; -uniform float fov; -uniform float uSpacing; -uniform float near; -uniform float far; -uniform float uPCIndex; -uniform float uScreenWidth; -uniform float uScreenHeight; - -in vec3 vColor; -in float vLogDepth; -in vec3 vViewPosition; -in float vRadius; -in float vPointSize; -in vec3 vPosition; - -out vec4 out_color; - - -float specularStrength = 1.0; - -void main() { - - vec3 color = vColor; - float depth = gl_FragCoord.z; - - #if defined(circle_point_shape) || defined(paraboloid_point_shape) - float u = 2.0 * gl_PointCoord.x - 1.0; - float v = 2.0 * gl_PointCoord.y - 1.0; - #endif - - #if defined(circle_point_shape) - float cc = u*u + v*v; - if(cc > 1.0){ - discard; - } - #endif - - #if defined color_type_point_index - out_color = vec4(color, uPCIndex / 255.0); - #else - out_color = vec4(color, uOpacity); - #endif - - #if defined paraboloid_point_shape - float wi = 0.0 - ( u*u + v*v); - vec4 pos = vec4(vViewPosition, 1.0); - pos.z += wi * vRadius; - float linearDepth = -pos.z; - pos = projectionMatrix * pos; - pos = pos / pos.w; - float expDepth = pos.z; - depth = (pos.z + 1.0) / 2.0; - gl_FragDepthEXT = depth; - - #if defined(color_type_depth) - color.r = linearDepth; - color.g = expDepth; - #endif - - #if defined(use_edl) - out_color.a = log2(linearDepth); - #endif - - #else - #if defined(use_edl) - out_color.a = vLogDepth; - #endif - #endif - - #if defined(weighted_splats) - float distance = 2.0 * length(gl_PointCoord.xy - 0.5); - float weight = max(0.0, 1.0 - distance); - weight = pow(weight, 1.5); - - out_color.a = weight; - out_color.xyz = out_color.xyz * weight; - #endif - -} - - diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.vs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.vs deleted file mode 100644 index 1b55841e..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.gl2.vs +++ /dev/null @@ -1,836 +0,0 @@ -#version 300 es - -precision highp float; -precision highp int; - -#define max_clip_polygons 8 -#define PI 3.141592653589793 - -in vec3 position; -in vec3 color; -in float intensity; -in float classification; -in float returnNumber; -in float numberOfReturns; -in float pointSourceID; -in vec4 indices; -in float spacing; -in float gpsTime; - -uniform mat4 modelMatrix; -uniform mat4 modelViewMatrix; -uniform mat4 projectionMatrix; -uniform mat4 viewMatrix; -uniform mat4 uViewInv; - -uniform float uScreenWidth; -uniform float uScreenHeight; -uniform float fov; -uniform float near; -uniform float far; - -uniform bool uDebug; - -uniform bool uUseOrthographicCamera; -uniform float uOrthoWidth; -uniform float uOrthoHeight; - - -#define CLIPTASK_NONE 0 -#define CLIPTASK_HIGHLIGHT 1 -#define CLIPTASK_SHOW_INSIDE 2 -#define CLIPTASK_SHOW_OUTSIDE 3 - -#define CLIPMETHOD_INSIDE_ANY 0 -#define CLIPMETHOD_INSIDE_ALL 1 - -uniform int clipTask; -uniform int clipMethod; -#if defined(num_clipboxes) && num_clipboxes > 0 - uniform mat4 clipBoxes[num_clipboxes]; -#endif - -#if defined(num_clipspheres) && num_clipspheres > 0 - uniform mat4 uClipSpheres[num_clipspheres]; -#endif - -#if defined(num_clippolygons) && num_clippolygons > 0 - uniform int uClipPolygonVCount[num_clippolygons]; - uniform vec3 uClipPolygonVertices[num_clippolygons * 8]; - uniform mat4 uClipPolygonWVP[num_clippolygons]; -#endif - -layout(std140) uniform ubo_point{ - float size; - float minSize; - float maxSize; -} pointData; - -struct Node{ - float level; - float vnStart; -}; - -uniform float uPCIndex; -uniform float uOctreeSpacing; -uniform float uNodeSpacing; -uniform float uOctreeSize; -uniform vec3 uBBSize; -uniform float uLevel; -uniform float uVNStart; -uniform bool uIsLeafNode; - -uniform vec3 uColor; -uniform float uOpacity; - -uniform vec2 elevationRange; -uniform vec2 intensityRange; - -uniform vec2 uFilterReturnNumberRange; -uniform vec2 uFilterNumberOfReturnsRange; -uniform vec2 uFilterGPSTimeClipRange; - -uniform float uGPSOffset; -uniform float uGPSRange; -uniform float intensityGamma; -uniform float intensityContrast; -uniform float intensityBrightness; -uniform float rgbGamma; -uniform float rgbContrast; -uniform float rgbBrightness; -uniform float uTransition; -uniform float wRGB; -uniform float wIntensity; -uniform float wElevation; -uniform float wClassification; -uniform float wReturnNumber; -uniform float wSourceID; - -uniform vec3 uShadowColor; - -uniform sampler2D visibleNodes; -uniform sampler2D gradient; -uniform sampler2D classificationLUT; - -#if defined(num_shadowmaps) && num_shadowmaps > 0 -uniform sampler2D uShadowMap[num_shadowmaps]; -uniform mat4 uShadowWorldView[num_shadowmaps]; -uniform mat4 uShadowProj[num_shadowmaps]; -#endif - -out vec3 vColor; -out float vLogDepth; -out vec3 vViewPosition; -out float vRadius; -out float vPointSize; - - -//float round(float number){ -// return floor(number + 0.5); -//} - -// -// ### ######## ### ######## ######## #### ## ## ######## ###### #### ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ######## ## ## ## ## ###### ###### ## ## ###### ###### -// ######### ## ## ######### ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ######## ## ## ## ## #### ### ######## ###### #### ######## ######## ###### -// - - -// --------------------- -// OCTREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_octree) -/** - * number of 1-bits up to inclusive index position - * number is treated as if it were an integer in the range 0-255 - * - */ -int numberOfOnes(int number, int index){ - int numOnes = 0; - int tmp = 128; - for(int i = 7; i >= 0; i--){ - - if(number >= tmp){ - number = number - tmp; - - if(i <= index){ - numOnes++; - } - } - - tmp = tmp / 2; - } - - return numOnes; -} - - -/** - * checks whether the bit at index is 1 - * number is treated as if it were an integer in the range 0-255 - * - */ -bool isBitSet(int number, int index){ - - // weird multi else if due to lack of proper array, int and bitwise support in WebGL 1.0 - int powi = 1; - if(index == 0){ - powi = 1; - }else if(index == 1){ - powi = 2; - }else if(index == 2){ - powi = 4; - }else if(index == 3){ - powi = 8; - }else if(index == 4){ - powi = 16; - }else if(index == 5){ - powi = 32; - }else if(index == 6){ - powi = 64; - }else if(index == 7){ - powi = 128; - }else{ - return false; - } - - int ndp = number / powi; - - return mod(float(ndp), 2.0) != 0.0; -} - - -/** - * find the LOD at the point position - */ -float getLOD(){ - - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - depth++; - }else{ - // no more visible child nodes at this position - return value.a * 255.0; - //return depth; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return depth; -} - -float getSpacing(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - float spacing = uNodeSpacing; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - float spacingFactor = value.a; - - if(i > 0.0){ - spacing = spacing / (255.0 * spacingFactor); - } - - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - //spacing = spacing / (255.0 * spacingFactor); - //spacing = spacing / 3.0; - - depth++; - }else{ - // no more visible child nodes at this position - return spacing; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return spacing; -} - -float getPointSizeAttenuation(){ - return pow(2.0, getLOD()); -} - - -#endif - - -// --------------------- -// KD-TREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_kdtree) - -float getLOD(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - float iOffset = 0.0; - float depth = 0.0; - - - vec3 size = uBBSize; - vec3 pos = position; - - for(float i = 0.0; i <= 1000.0; i++){ - - vec4 value = texture(visibleNodes, vec2(iOffset / 2048.0, 0.0)); - - int children = int(value.r * 255.0); - float next = value.g * 255.0; - int split = int(value.b * 255.0); - - if(next == 0.0){ - return depth; - } - - vec3 splitv = vec3(0.0, 0.0, 0.0); - if(split == 1){ - splitv.x = 1.0; - }else if(split == 2){ - splitv.y = 1.0; - }else if(split == 4){ - splitv.z = 1.0; - } - - iOffset = iOffset + next; - - float factor = length(pos * splitv / size); - if(factor < 0.5){ - // left - if(children == 0 || children == 2){ - return depth; - } - }else{ - // right - pos = pos - size * splitv * 0.5; - if(children == 0 || children == 1){ - return depth; - } - if(children == 3){ - iOffset = iOffset + 1.0; - } - } - size = size * ((1.0 - (splitv + 1.0) / 2.0) + 0.5); - - depth++; - } - - - return depth; -} - -float getPointSizeAttenuation(){ - return 0.5 * pow(1.3, getLOD()); -} - -#endif - - - -// -// ### ######## ######## ######## #### ######## ## ## ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ######## ## ######## ## ## ## ###### ###### -// ######### ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## #### ######## ####### ## ######## ###### -// - - - -// formula adapted from: http://www.dfstudios.co.uk/articles/programming/image-programming-algorithms/image-processing-algorithms-part-5-contrast-adjustment/ -float getContrastFactor(float contrast){ - return (1.0158730158730156 * (contrast + 1.0)) / (1.0158730158730156 - contrast); -} - -vec3 getRGB(){ - vec3 rgb = color; - - rgb = pow(rgb, vec3(rgbGamma)); - rgb = rgb + rgbBrightness; - //rgb = (rgb - 0.5) * getContrastFactor(rgbContrast) + 0.5; - rgb = clamp(rgb, 0.0, 1.0); - - //rgb = indices.rgb; - //rgb.b = pcIndex / 255.0; - - - return rgb; -} - -float getIntensity(){ - float w = (intensity - intensityRange.x) / (intensityRange.y - intensityRange.x); - w = pow(w, intensityGamma); - w = w + intensityBrightness; - w = (w - 0.5) * getContrastFactor(intensityContrast) + 0.5; - w = clamp(w, 0.0, 1.0); - - return w; -} - -float getGpsTime(){ - float w = (gpsTime + uGPSOffset) / uGPSRange; - w = clamp(w, 0.0, 1.0); - - return w; -} - -vec3 getElevation(){ - vec4 world = modelMatrix * vec4( position, 1.0 ); - float w = (world.z - elevationRange.x) / (elevationRange.y - elevationRange.x); - vec3 cElevation = texture(gradient, vec2(w,1.0-w)).rgb; - - return cElevation; -} - -vec4 getClassification(){ - vec2 uv = vec2(classification / 255.0, 0.5); - vec4 classColor = texture(classificationLUT, uv); - - return classColor; -} - -vec3 getReturnNumber(){ - if(numberOfReturns == 1.0){ - return vec3(1.0, 1.0, 0.0); - }else{ - if(returnNumber == 1.0){ - return vec3(1.0, 0.0, 0.0); - }else if(returnNumber == numberOfReturns){ - return vec3(0.0, 0.0, 1.0); - }else{ - return vec3(0.0, 1.0, 0.0); - } - } -} - -vec3 getSourceID(){ - float w = mod(pointSourceID, 10.0) / 10.0; - return texture(gradient, vec2(w,1.0 - w)).rgb; -} - -vec3 getCompositeColor(){ - vec3 c; - float w; - - c += wRGB * getRGB(); - w += wRGB; - - c += wIntensity * getIntensity() * vec3(1.0, 1.0, 1.0); - w += wIntensity; - - c += wElevation * getElevation(); - w += wElevation; - - c += wReturnNumber * getReturnNumber(); - w += wReturnNumber; - - c += wSourceID * getSourceID(); - w += wSourceID; - - vec4 cl = wClassification * getClassification(); - c += cl.a * cl.rgb; - w += wClassification * cl.a; - - c = c / w; - - if(w == 0.0){ - //c = color; - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - } - - return c; -} - - -// -// ###### ## #### ######## ######## #### ## ## ###### -// ## ## ## ## ## ## ## ## ## ### ## ## ## -// ## ## ## ## ## ## ## ## #### ## ## -// ## ## ## ######## ######## ## ## ## ## ## #### -// ## ## ## ## ## ## ## #### ## ## -// ## ## ## ## ## ## ## ## ### ## ## -// ###### ######## #### ## ## #### ## ## ###### -// - - - -vec3 getColor(){ - vec3 color; - - #ifdef color_type_rgb - color = getRGB(); - #elif defined color_type_height - color = getElevation(); - #elif defined color_type_rgb_height - vec3 cHeight = getElevation(); - color = (1.0 - uTransition) * getRGB() + uTransition * cHeight; - #elif defined color_type_depth - float linearDepth = gl_Position.w; - float expDepth = (gl_Position.z / gl_Position.w) * 0.5 + 0.5; - color = vec3(linearDepth, expDepth, 0.0); - #elif defined color_type_intensity - float w = getIntensity(); - color = vec3(w, w, w); - #elif defined color_type_gpstime - float w = getGpsTime(); - color = vec3(w, w, w); - #elif defined color_type_intensity_gradient - float w = getIntensity(); - color = texture(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_color - color = uColor; - #elif defined color_type_lod - float depth = getLOD(); - float w = depth / 10.0; - color = texture(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_point_index - color = indices.rgb; - #elif defined color_type_classification - vec4 cl = getClassification(); - color = cl.rgb; - #elif defined color_type_return_number - color = getReturnNumber(); - #elif defined color_type_source - color = getSourceID(); - #elif defined color_type_normal - color = (modelMatrix * vec4(normal, 0.0)).xyz; - #elif defined color_type_phong - color = color; - #elif defined color_type_composite - color = getCompositeColor(); - #endif - - return color; -} - -float getPointSize(){ - float pointSize = 1.0; - - float slope = tan(fov / 2.0); - float projFactor = -0.5 * uScreenHeight / (slope * vViewPosition.z); - - float r = uOctreeSpacing * 1.7; - vRadius = r; - #if defined fixed_point_size - pointSize = pointData.size; - #elif defined attenuated_point_size - if(uUseOrthographicCamera){ - pointSize = pointData.size; - }else{ - pointSize = pointData.size * spacing * projFactor; - //pointSize = pointSize * projFactor; - } - #elif defined adaptive_point_size - if(uUseOrthographicCamera) { - float worldSpaceSize = 1.0 * pointData.size * r / getPointSizeAttenuation(); - pointSize = (worldSpaceSize / uOrthoWidth) * uScreenWidth; - } else { - - if(uIsLeafNode && false){ - pointSize = pointData.size * spacing * projFactor; - }else{ - float worldSpaceSize = 1.0 * pointData.size * r / getPointSizeAttenuation(); - pointSize = worldSpaceSize * projFactor; - } - } - #endif - - pointSize = max(pointData.minSize, pointSize); - pointSize = min(pointData.maxSize, pointSize); - - vRadius = pointSize / projFactor; - - return pointSize; -} - -#if defined(num_clippolygons) && num_clippolygons > 0 -bool pointInClipPolygon(vec3 point, int polyIdx) { - - mat4 wvp = uClipPolygonWVP[polyIdx]; - //vec4 screenClipPos = uClipPolygonVP[polyIdx] * modelMatrix * vec4(point, 1.0); - //screenClipPos.xy = screenClipPos.xy / screenClipPos.w * 0.5 + 0.5; - - vec4 pointNDC = wvp * vec4(point, 1.0); - pointNDC.xy = pointNDC.xy / pointNDC.w; - - int j = uClipPolygonVCount[polyIdx] - 1; - bool c = false; - for(int i = 0; i < 8; i++) { - if(i == uClipPolygonVCount[polyIdx]) { - break; - } - - //vec4 verti = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + i], 1); - //vec4 vertj = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + j], 1); - - //verti.xy = verti.xy / verti.w; - //vertj.xy = vertj.xy / vertj.w; - - //verti.xy = verti.xy / verti.w * 0.5 + 0.5; - //vertj.xy = vertj.xy / vertj.w * 0.5 + 0.5; - - vec3 verti = uClipPolygonVertices[polyIdx * 8 + i]; - vec3 vertj = uClipPolygonVertices[polyIdx * 8 + j]; - - if( ((verti.y > pointNDC.y) != (vertj.y > pointNDC.y)) && - (pointNDC.x < (vertj.x-verti.x) * (pointNDC.y-verti.y) / (vertj.y-verti.y) + verti.x) ) { - c = !c; - } - j = i; - } - - return c; -} -#endif - -void doClipping(){ - - #if !defined color_type_composite - vec4 cl = getClassification(); - if(cl.a == 0.0){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - #endif - - #if defined(clip_return_number_enabled) - { // return number filter - vec2 range = uFilterReturnNumberRange; - if(returnNumber < range.x || returnNumber > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_number_of_returns_enabled) - { // number of return filter - vec2 range = uFilterNumberOfReturnsRange; - if(numberOfReturns < range.x || numberOfReturns > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_gps_enabled) - { // GPS time filter - float time = gpsTime + uGPSOffset; - vec2 range = uFilterGPSTimeClipRange; - - if(time < range.x || time > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - int clipVolumesCount = 0; - int insideCount = 0; - - #if defined(num_clipboxes) && num_clipboxes > 0 - for(int i = 0; i < num_clipboxes; i++){ - vec4 clipPosition = clipBoxes[i] * modelMatrix * vec4( position, 1.0 ); - bool inside = -0.5 <= clipPosition.x && clipPosition.x <= 0.5; - inside = inside && -0.5 <= clipPosition.y && clipPosition.y <= 0.5; - inside = inside && -0.5 <= clipPosition.z && clipPosition.z <= 0.5; - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - #if defined(num_clippolygons) && num_clippolygons > 0 - for(int i = 0; i < num_clippolygons; i++) { - bool inside = pointInClipPolygon(position, i); - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - bool insideAny = insideCount > 0; - bool insideAll = (clipVolumesCount > 0) && (clipVolumesCount == insideCount); - - if(clipMethod == CLIPMETHOD_INSIDE_ANY){ - if(insideAny && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAny && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAny && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - }else if(clipMethod == CLIPMETHOD_INSIDE_ALL){ - if(insideAll && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAll && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAll && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - } -} - - - -// -// ## ## ### #### ## ## -// ### ### ## ## ## ### ## -// #### #### ## ## ## #### ## -// ## ### ## ## ## ## ## ## ## -// ## ## ######### ## ## #### -// ## ## ## ## ## ## ### -// ## ## ## ## #### ## ## -// - -void main() { - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); - vViewPosition = mvPosition.xyz; - gl_Position = projectionMatrix * mvPosition; - vLogDepth = log2(-mvPosition.z); - - // POINT SIZE - float pointSize = getPointSize(); - gl_PointSize = pointSize; - vPointSize = pointSize; - - // COLOR - vColor = getColor(); - - - #if defined hq_depth_pass - float originalDepth = gl_Position.w; - float adjustedDepth = originalDepth + 2.0 * vRadius; - float adjust = adjustedDepth / originalDepth; - - mvPosition.xyz = mvPosition.xyz * adjust; - gl_Position = projectionMatrix * mvPosition; - #endif - - - // CLIPPING - doClipping(); - - #if defined(num_clipspheres) && num_clipspheres > 0 - for(int i = 0; i < num_clipspheres; i++){ - vec4 sphereLocal = uClipSpheres[i] * mvPosition; - - float distance = length(sphereLocal.xyz); - - if(distance < 1.0){ - float w = distance; - vec3 cGradient = texture(gradient, vec2(w, 1.0 - w)).rgb; - - vColor = cGradient; - //vColor = cGradient * 0.7 + vColor * 0.3; - } - } - #endif - - #if defined(num_shadowmaps) && num_shadowmaps > 0 - - const float sm_near = 0.1; - const float sm_far = 10000.0; - - for(int i = 0; i < num_shadowmaps; i++){ - vec3 viewPos = (uShadowWorldView[i] * vec4(position, 1.0)).xyz; - float distanceToLight = abs(viewPos.z); - - vec4 projPos = uShadowProj[i] * uShadowWorldView[i] * vec4(position, 1); - vec3 nc = projPos.xyz / projPos.w; - - float u = nc.x * 0.5 + 0.5; - float v = nc.y * 0.5 + 0.5; - - vec2 sampleStep = vec2(1.0 / (2.0*1024.0), 1.0 / (2.0*1024.0)) * 1.5; - vec2 sampleLocations[9]; - sampleLocations[0] = vec2(0.0, 0.0); - sampleLocations[1] = sampleStep; - sampleLocations[2] = -sampleStep; - sampleLocations[3] = vec2(sampleStep.x, -sampleStep.y); - sampleLocations[4] = vec2(-sampleStep.x, sampleStep.y); - - sampleLocations[5] = vec2(0.0, sampleStep.y); - sampleLocations[6] = vec2(0.0, -sampleStep.y); - sampleLocations[7] = vec2(sampleStep.x, 0.0); - sampleLocations[8] = vec2(-sampleStep.x, 0.0); - - float visibleSamples = 0.0; - float numSamples = 0.0; - - float bias = vRadius * 2.0; - - for(int j = 0; j < 9; j++){ - vec4 depthMapValue = texture(uShadowMap[i], vec2(u, v) + sampleLocations[j]); - - float linearDepthFromSM = depthMapValue.x + bias; - float linearDepthFromViewer = distanceToLight; - - if(linearDepthFromSM > linearDepthFromViewer){ - visibleSamples += 1.0; - } - - numSamples += 1.0; - } - - float visibility = visibleSamples / numSamples; - - if(u < 0.0 || u > 1.0 || v < 0.0 || v > 1.0 || nc.x < -1.0 || nc.x > 1.0 || nc.y < -1.0 || nc.y > 1.0 || nc.z < -1.0 || nc.z > 1.0){ - //vColor = vec3(0.0, 0.0, 0.2); - }else{ - //vColor = vec3(1.0, 1.0, 1.0) * visibility + vec3(1.0, 1.0, 1.0) * vec3(0.5, 0.0, 0.0) * (1.0 - visibility); - vColor = vColor * visibility + vColor * uShadowColor * (1.0 - visibility); - } - } - - #endif - -} diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.vs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.vs deleted file mode 100644 index f59af24c..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud.vs +++ /dev/null @@ -1,837 +0,0 @@ - -precision highp float; -precision highp int; - -#define max_clip_polygons 8 -#define PI 3.141592653589793 - -attribute vec3 position; -attribute vec3 color; -attribute float intensity; -attribute float classification; -attribute float returnNumber; -attribute float numberOfReturns; -attribute float pointSourceID; -attribute vec4 indices; -attribute float spacing; -attribute float gpsTime; - -uniform mat4 modelMatrix; -uniform mat4 modelViewMatrix; -uniform mat4 projectionMatrix; -uniform mat4 viewMatrix; -uniform mat4 uViewInv; - -uniform float uScreenWidth; -uniform float uScreenHeight; -uniform float fov; -uniform float near; -uniform float far; - -uniform bool uDebug; - -uniform bool uUseOrthographicCamera; -uniform float uOrthoWidth; -uniform float uOrthoHeight; - - -#define CLIPTASK_NONE 0 -#define CLIPTASK_HIGHLIGHT 1 -#define CLIPTASK_SHOW_INSIDE 2 -#define CLIPTASK_SHOW_OUTSIDE 3 - -#define CLIPMETHOD_INSIDE_ANY 0 -#define CLIPMETHOD_INSIDE_ALL 1 - -uniform int clipTask; -uniform int clipMethod; -#if defined(num_clipboxes) && num_clipboxes > 0 - uniform mat4 clipBoxes[num_clipboxes]; -#endif - -#if defined(num_clipspheres) && num_clipspheres > 0 - uniform mat4 uClipSpheres[num_clipspheres]; -#endif - -#if defined(num_clippolygons) && num_clippolygons > 0 - uniform int uClipPolygonVCount[num_clippolygons]; - uniform vec3 uClipPolygonVertices[num_clippolygons * 8]; - uniform mat4 uClipPolygonWVP[num_clippolygons]; -#endif - - -uniform float size; -uniform float minSize; -uniform float maxSize; - -uniform float uPCIndex; -uniform float uOctreeSpacing; -uniform float uNodeSpacing; -uniform float uOctreeSize; -uniform vec3 uBBSize; -uniform float uLevel; -uniform float uVNStart; -uniform bool uIsLeafNode; - -uniform vec3 uColor; -uniform float uOpacity; - -uniform vec2 elevationRange; -uniform vec2 intensityRange; - -uniform vec2 uFilterReturnNumberRange; -uniform vec2 uFilterNumberOfReturnsRange; -uniform vec2 uFilterGPSTimeClipRange; - -uniform float uGPSOffset; -uniform float uGPSRange; -uniform float intensityGamma; -uniform float intensityContrast; -uniform float intensityBrightness; -uniform float rgbGamma; -uniform float rgbContrast; -uniform float rgbBrightness; -uniform float uTransition; -uniform float wRGB; -uniform float wIntensity; -uniform float wElevation; -uniform float wClassification; -uniform float wReturnNumber; -uniform float wSourceID; - -uniform vec3 uShadowColor; - -uniform sampler2D visibleNodes; -uniform sampler2D gradient; -uniform sampler2D classificationLUT; - -#if defined(num_shadowmaps) && num_shadowmaps > 0 -uniform sampler2D uShadowMap[num_shadowmaps]; -uniform mat4 uShadowWorldView[num_shadowmaps]; -uniform mat4 uShadowProj[num_shadowmaps]; -#endif - -varying vec3 vColor; -varying float vLogDepth; -varying vec3 vViewPosition; -varying float vRadius; -varying float vPointSize; - - -float round(float number){ - return floor(number + 0.5); -} - -// -// ### ######## ### ######## ######## #### ## ## ######## ###### #### ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ######## ## ## ## ## ###### ###### ## ## ###### ###### -// ######### ## ## ######### ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ######## ## ## ## ## #### ### ######## ###### #### ######## ######## ###### -// - - -// --------------------- -// OCTREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_octree) -/** - * number of 1-bits up to inclusive index position - * number is treated as if it were an integer in the range 0-255 - * - */ -int numberOfOnes(int number, int index){ - int numOnes = 0; - int tmp = 128; - for(int i = 7; i >= 0; i--){ - - if(number >= tmp){ - number = number - tmp; - - if(i <= index){ - numOnes++; - } - } - - tmp = tmp / 2; - } - - return numOnes; -} - - -/** - * checks whether the bit at index is 1 - * number is treated as if it were an integer in the range 0-255 - * - */ -bool isBitSet(int number, int index){ - - // weird multi else if due to lack of proper array, int and bitwise support in WebGL 1.0 - int powi = 1; - if(index == 0){ - powi = 1; - }else if(index == 1){ - powi = 2; - }else if(index == 2){ - powi = 4; - }else if(index == 3){ - powi = 8; - }else if(index == 4){ - powi = 16; - }else if(index == 5){ - powi = 32; - }else if(index == 6){ - powi = 64; - }else if(index == 7){ - powi = 128; - }else{ - return false; - } - - int ndp = number / powi; - - return mod(float(ndp), 2.0) != 0.0; -} - - -/** - * find the LOD at the point position - */ -float getLOD(){ - - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture2D(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - depth++; - }else{ - // no more visible child nodes at this position - return value.a * 255.0; - //return depth; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return depth; -} - -float getSpacing(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - int iOffset = int(uVNStart); - float depth = uLevel; - float spacing = uNodeSpacing; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - int index = int(round(4.0 * index3d.x + 2.0 * index3d.y + index3d.z)); - - vec4 value = texture2D(visibleNodes, vec2(float(iOffset) / 2048.0, 0.0)); - int mask = int(round(value.r * 255.0)); - float spacingFactor = value.a; - - if(i > 0.0){ - spacing = spacing / (255.0 * spacingFactor); - } - - - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - int advanceG = int(round(value.g * 255.0)) * 256; - int advanceB = int(round(value.b * 255.0)); - int advanceChild = numberOfOnes(mask, index - 1); - int advance = advanceG + advanceB + advanceChild; - - iOffset = iOffset + advance; - - //spacing = spacing / (255.0 * spacingFactor); - //spacing = spacing / 3.0; - - depth++; - }else{ - // no more visible child nodes at this position - return spacing; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return spacing; -} - -float getPointSizeAttenuation(){ - return pow(2.0, getLOD()); -} - - -#endif - - -// --------------------- -// KD-TREE -// --------------------- - -#if (defined(adaptive_point_size) || defined(color_type_lod)) && defined(tree_type_kdtree) - -float getLOD(){ - vec3 offset = vec3(0.0, 0.0, 0.0); - float iOffset = 0.0; - float depth = 0.0; - - - vec3 size = uBBSize; - vec3 pos = position; - - for(float i = 0.0; i <= 1000.0; i++){ - - vec4 value = texture2D(visibleNodes, vec2(iOffset / 2048.0, 0.0)); - - int children = int(value.r * 255.0); - float next = value.g * 255.0; - int split = int(value.b * 255.0); - - if(next == 0.0){ - return depth; - } - - vec3 splitv = vec3(0.0, 0.0, 0.0); - if(split == 1){ - splitv.x = 1.0; - }else if(split == 2){ - splitv.y = 1.0; - }else if(split == 4){ - splitv.z = 1.0; - } - - iOffset = iOffset + next; - - float factor = length(pos * splitv / size); - if(factor < 0.5){ - // left - if(children == 0 || children == 2){ - return depth; - } - }else{ - // right - pos = pos - size * splitv * 0.5; - if(children == 0 || children == 1){ - return depth; - } - if(children == 3){ - iOffset = iOffset + 1.0; - } - } - size = size * ((1.0 - (splitv + 1.0) / 2.0) + 0.5); - - depth++; - } - - - return depth; -} - -float getPointSizeAttenuation(){ - return 0.5 * pow(1.3, getLOD()); -} - -#endif - - - -// -// ### ######## ######## ######## #### ######## ## ## ######## ######## ###### -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ######## ## ######## ## ## ## ###### ###### -// ######### ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## -// ## ## ## ## ## ## #### ######## ####### ## ######## ###### -// - - - -// formula adapted from: http://www.dfstudios.co.uk/articles/programming/image-programming-algorithms/image-processing-algorithms-part-5-contrast-adjustment/ -float getContrastFactor(float contrast){ - return (1.0158730158730156 * (contrast + 1.0)) / (1.0158730158730156 - contrast); -} - -vec3 getRGB(){ - vec3 rgb = color; - - rgb = pow(rgb, vec3(rgbGamma)); - rgb = rgb + rgbBrightness; - //rgb = (rgb - 0.5) * getContrastFactor(rgbContrast) + 0.5; - rgb = clamp(rgb, 0.0, 1.0); - - //rgb = indices.rgb; - //rgb.b = pcIndex / 255.0; - - - return rgb; -} - -float getIntensity(){ - float w = (intensity - intensityRange.x) / (intensityRange.y - intensityRange.x); - w = pow(w, intensityGamma); - w = w + intensityBrightness; - w = (w - 0.5) * getContrastFactor(intensityContrast) + 0.5; - w = clamp(w, 0.0, 1.0); - - return w; -} - -float getGpsTime(){ - float w = (gpsTime + uGPSOffset) / uGPSRange; - w = clamp(w, 0.0, 1.0); - - return w; -} - -vec3 getElevation(){ - vec4 world = modelMatrix * vec4( position, 1.0 ); - float w = (world.z - elevationRange.x) / (elevationRange.y - elevationRange.x); - vec3 cElevation = texture2D(gradient, vec2(w,1.0-w)).rgb; - - return cElevation; -} - -vec4 getClassification(){ - vec2 uv = vec2(classification / 255.0, 0.5); - vec4 classColor = texture2D(classificationLUT, uv); - - return classColor; -} - -vec3 getReturnNumber(){ - if(numberOfReturns == 1.0){ - return vec3(1.0, 1.0, 0.0); - }else{ - if(returnNumber == 1.0){ - return vec3(1.0, 0.0, 0.0); - }else if(returnNumber == numberOfReturns){ - return vec3(0.0, 0.0, 1.0); - }else{ - return vec3(0.0, 1.0, 0.0); - } - } -} - -vec3 getSourceID(){ - float w = mod(pointSourceID, 10.0) / 10.0; - return texture2D(gradient, vec2(w,1.0 - w)).rgb; -} - -vec3 getCompositeColor(){ - vec3 c; - float w; - - c += wRGB * getRGB(); - w += wRGB; - - c += wIntensity * getIntensity() * vec3(1.0, 1.0, 1.0); - w += wIntensity; - - c += wElevation * getElevation(); - w += wElevation; - - c += wReturnNumber * getReturnNumber(); - w += wReturnNumber; - - c += wSourceID * getSourceID(); - w += wSourceID; - - vec4 cl = wClassification * getClassification(); - c += cl.a * cl.rgb; - w += wClassification * cl.a; - - c = c / w; - - if(w == 0.0){ - //c = color; - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - } - - return c; -} - - -// -// ###### ## #### ######## ######## #### ## ## ###### -// ## ## ## ## ## ## ## ## ## ### ## ## ## -// ## ## ## ## ## ## ## ## #### ## ## -// ## ## ## ######## ######## ## ## ## ## ## #### -// ## ## ## ## ## ## ## #### ## ## -// ## ## ## ## ## ## ## ## ### ## ## -// ###### ######## #### ## ## #### ## ## ###### -// - - - -vec3 getColor(){ - vec3 color; - - #ifdef color_type_rgb - color = getRGB(); - #elif defined color_type_height - color = getElevation(); - #elif defined color_type_rgb_height - vec3 cHeight = getElevation(); - color = (1.0 - uTransition) * getRGB() + uTransition * cHeight; - #elif defined color_type_depth - float linearDepth = gl_Position.w; - float expDepth = (gl_Position.z / gl_Position.w) * 0.5 + 0.5; - color = vec3(linearDepth, expDepth, 0.0); - #elif defined color_type_intensity - float w = getIntensity(); - color = vec3(w, w, w); - #elif defined color_type_gpstime - float w = getGpsTime(); - color = vec3(w, w, w); - #elif defined color_type_intensity_gradient - float w = getIntensity(); - color = texture2D(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_color - color = uColor; - #elif defined color_type_lod - float depth = getLOD(); - float w = depth / 10.0; - color = texture2D(gradient, vec2(w,1.0-w)).rgb; - #elif defined color_type_point_index - color = indices.rgb; - #elif defined color_type_classification - vec4 cl = getClassification(); - color = cl.rgb; - #elif defined color_type_return_number - color = getReturnNumber(); - #elif defined color_type_source - color = getSourceID(); - #elif defined color_type_normal - color = (modelMatrix * vec4(normal, 0.0)).xyz; - #elif defined color_type_phong - color = color; - #elif defined color_type_composite - color = getCompositeColor(); - #endif - - return color; -} - -float getPointSize(){ - float pointSize = 1.0; - - float slope = tan(fov / 2.0); - float projFactor = -0.5 * uScreenHeight / (slope * vViewPosition.z); - - float r = uOctreeSpacing * 1.7; - vRadius = r; - #if defined fixed_point_size - pointSize = size; - #elif defined attenuated_point_size - if(uUseOrthographicCamera){ - pointSize = size; - }else{ - pointSize = size * spacing * projFactor; - //pointSize = pointSize * projFactor; - } - #elif defined adaptive_point_size - if(uUseOrthographicCamera) { - float worldSpaceSize = 1.0 * size * r / getPointSizeAttenuation(); - pointSize = (worldSpaceSize / uOrthoWidth) * uScreenWidth; - } else { - - if(uIsLeafNode && false){ - pointSize = size * spacing * projFactor; - }else{ - float worldSpaceSize = 1.0 * size * r / getPointSizeAttenuation(); - pointSize = worldSpaceSize * projFactor; - } - } - #endif - - pointSize = max(minSize, pointSize); - pointSize = min(maxSize, pointSize); - - vRadius = pointSize / projFactor; - - return pointSize; -} - -#if defined(num_clippolygons) && num_clippolygons > 0 -bool pointInClipPolygon(vec3 point, int polyIdx) { - - mat4 wvp = uClipPolygonWVP[polyIdx]; - //vec4 screenClipPos = uClipPolygonVP[polyIdx] * modelMatrix * vec4(point, 1.0); - //screenClipPos.xy = screenClipPos.xy / screenClipPos.w * 0.5 + 0.5; - - vec4 pointNDC = wvp * vec4(point, 1.0); - pointNDC.xy = pointNDC.xy / pointNDC.w; - - int j = uClipPolygonVCount[polyIdx] - 1; - bool c = false; - for(int i = 0; i < 8; i++) { - if(i == uClipPolygonVCount[polyIdx]) { - break; - } - - //vec4 verti = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + i], 1); - //vec4 vertj = wvp * vec4(uClipPolygonVertices[polyIdx * 8 + j], 1); - - //verti.xy = verti.xy / verti.w; - //vertj.xy = vertj.xy / vertj.w; - - //verti.xy = verti.xy / verti.w * 0.5 + 0.5; - //vertj.xy = vertj.xy / vertj.w * 0.5 + 0.5; - - vec3 verti = uClipPolygonVertices[polyIdx * 8 + i]; - vec3 vertj = uClipPolygonVertices[polyIdx * 8 + j]; - - if( ((verti.y > pointNDC.y) != (vertj.y > pointNDC.y)) && - (pointNDC.x < (vertj.x-verti.x) * (pointNDC.y-verti.y) / (vertj.y-verti.y) + verti.x) ) { - c = !c; - } - j = i; - } - - return c; -} -#endif - -void doClipping(){ - - #if !defined color_type_composite - vec4 cl = getClassification(); - if(cl.a == 0.0){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - #endif - - #if defined(clip_return_number_enabled) - { // return number filter - vec2 range = uFilterReturnNumberRange; - if(returnNumber < range.x || returnNumber > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_number_of_returns_enabled) - { // number of return filter - vec2 range = uFilterNumberOfReturnsRange; - if(numberOfReturns < range.x || numberOfReturns > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - #if defined(clip_gps_enabled) - { // GPS time filter - float time = gpsTime + uGPSOffset; - vec2 range = uFilterGPSTimeClipRange; - - if(time < range.x || time > range.y){ - gl_Position = vec4(100.0, 100.0, 100.0, 0.0); - - return; - } - } - #endif - - int clipVolumesCount = 0; - int insideCount = 0; - - #if defined(num_clipboxes) && num_clipboxes > 0 - for(int i = 0; i < num_clipboxes; i++){ - vec4 clipPosition = clipBoxes[i] * modelMatrix * vec4( position, 1.0 ); - bool inside = -0.5 <= clipPosition.x && clipPosition.x <= 0.5; - inside = inside && -0.5 <= clipPosition.y && clipPosition.y <= 0.5; - inside = inside && -0.5 <= clipPosition.z && clipPosition.z <= 0.5; - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - #if defined(num_clippolygons) && num_clippolygons > 0 - for(int i = 0; i < num_clippolygons; i++) { - bool inside = pointInClipPolygon(position, i); - - insideCount = insideCount + (inside ? 1 : 0); - clipVolumesCount++; - } - #endif - - bool insideAny = insideCount > 0; - bool insideAll = (clipVolumesCount > 0) && (clipVolumesCount == insideCount); - - if(clipMethod == CLIPMETHOD_INSIDE_ANY){ - if(insideAny && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAny && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAny && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - }else if(clipMethod == CLIPMETHOD_INSIDE_ALL){ - if(insideAll && clipTask == CLIPTASK_HIGHLIGHT){ - vColor.r += 0.5; - }else if(!insideAll && clipTask == CLIPTASK_SHOW_INSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - }else if(insideAll && clipTask == CLIPTASK_SHOW_OUTSIDE){ - gl_Position = vec4(100.0, 100.0, 100.0, 1.0); - } - } -} - - - -// -// ## ## ### #### ## ## -// ### ### ## ## ## ### ## -// #### #### ## ## ## #### ## -// ## ### ## ## ## ## ## ## ## -// ## ## ######### ## ## #### -// ## ## ## ## ## ## ### -// ## ## ## ## #### ## ## -// - -void main() { - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); - vViewPosition = mvPosition.xyz; - gl_Position = projectionMatrix * mvPosition; - vLogDepth = log2(-mvPosition.z); - - // POINT SIZE - float pointSize = getPointSize(); - gl_PointSize = pointSize; - vPointSize = pointSize; - - // COLOR - vColor = getColor(); - - - #if defined hq_depth_pass - float originalDepth = gl_Position.w; - float adjustedDepth = originalDepth + 2.0 * vRadius; - float adjust = adjustedDepth / originalDepth; - - mvPosition.xyz = mvPosition.xyz * adjust; - gl_Position = projectionMatrix * mvPosition; - #endif - - - // CLIPPING - doClipping(); - - #if defined(num_clipspheres) && num_clipspheres > 0 - for(int i = 0; i < num_clipspheres; i++){ - vec4 sphereLocal = uClipSpheres[i] * mvPosition; - - float distance = length(sphereLocal.xyz); - - if(distance < 1.0){ - float w = distance; - vec3 cGradient = texture2D(gradient, vec2(w, 1.0 - w)).rgb; - - vColor = cGradient; - //vColor = cGradient * 0.7 + vColor * 0.3; - } - } - #endif - - #if defined(num_shadowmaps) && num_shadowmaps > 0 - - const float sm_near = 0.1; - const float sm_far = 10000.0; - - for(int i = 0; i < num_shadowmaps; i++){ - vec3 viewPos = (uShadowWorldView[i] * vec4(position, 1.0)).xyz; - float distanceToLight = abs(viewPos.z); - - vec4 projPos = uShadowProj[i] * uShadowWorldView[i] * vec4(position, 1); - vec3 nc = projPos.xyz / projPos.w; - - float u = nc.x * 0.5 + 0.5; - float v = nc.y * 0.5 + 0.5; - - vec2 sampleStep = vec2(1.0 / (2.0*1024.0), 1.0 / (2.0*1024.0)) * 1.5; - vec2 sampleLocations[9]; - sampleLocations[0] = vec2(0.0, 0.0); - sampleLocations[1] = sampleStep; - sampleLocations[2] = -sampleStep; - sampleLocations[3] = vec2(sampleStep.x, -sampleStep.y); - sampleLocations[4] = vec2(-sampleStep.x, sampleStep.y); - - sampleLocations[5] = vec2(0.0, sampleStep.y); - sampleLocations[6] = vec2(0.0, -sampleStep.y); - sampleLocations[7] = vec2(sampleStep.x, 0.0); - sampleLocations[8] = vec2(-sampleStep.x, 0.0); - - float visibleSamples = 0.0; - float numSamples = 0.0; - - float bias = vRadius * 2.0; - - for(int j = 0; j < 9; j++){ - vec4 depthMapValue = texture2D(uShadowMap[i], vec2(u, v) + sampleLocations[j]); - - float linearDepthFromSM = depthMapValue.x + bias; - float linearDepthFromViewer = distanceToLight; - - if(linearDepthFromSM > linearDepthFromViewer){ - visibleSamples += 1.0; - } - - numSamples += 1.0; - } - - float visibility = visibleSamples / numSamples; - - if(u < 0.0 || u > 1.0 || v < 0.0 || v > 1.0 || nc.x < -1.0 || nc.x > 1.0 || nc.y < -1.0 || nc.y > 1.0 || nc.z < -1.0 || nc.z > 1.0){ - //vColor = vec3(0.0, 0.0, 0.2); - }else{ - //vColor = vec3(1.0, 1.0, 1.0) * visibility + vec3(1.0, 1.0, 1.0) * vec3(0.5, 0.0, 0.0) * (1.0 - visibility); - vColor = vColor * visibility + vColor * uShadowColor * (1.0 - visibility); - } - } - - #endif - - //vColor = vec3(1.0, 0.0, 0.0); - - //if(uDebug){ - // vColor.b = (vColor.r + vColor.g + vColor.b) / 3.0; - // vColor.r = 1.0; - // vColor.g = 1.0; - //} - -} diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.fs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.fs deleted file mode 100644 index 36d1f9a5..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.fs +++ /dev/null @@ -1,17 +0,0 @@ - -precision mediump float; -precision mediump int; - -varying vec3 vColor; -varying float vLinearDepth; - -void main() { - - //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); - //gl_FragColor = vec4(vColor, 1.0); - //gl_FragColor = vec4(vLinearDepth, pow(vLinearDepth, 2.0), 0.0, 1.0); - gl_FragColor = vec4(vLinearDepth, vLinearDepth / 30.0, vLinearDepth / 30.0, 1.0); - -} - - diff --git a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.vs b/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.vs deleted file mode 100644 index 927f4925..00000000 --- a/app/static/app/js/vendor/potree/src/materials/shaders/pointcloud_sm.vs +++ /dev/null @@ -1,142 +0,0 @@ - -precision mediump float; -precision mediump int; - -attribute vec3 position; -attribute vec3 color; - -uniform mat4 modelMatrix; -uniform mat4 modelViewMatrix; -uniform mat4 projectionMatrix; -uniform mat4 viewMatrix; - -uniform float uScreenWidth; -uniform float uScreenHeight; -uniform float near; -uniform float far; - -uniform float uSpacing; -uniform float uOctreeSize; -uniform float uLevel; -uniform float uVNStart; - -uniform sampler2D visibleNodes; - -varying float vLinearDepth; -varying vec3 vColor; - -#define PI 3.141592653589793 - - - -// --------------------- -// OCTREE -// --------------------- - -#if defined(adaptive_point_size) -/** - * number of 1-bits up to inclusive index position - * number is treated as if it were an integer in the range 0-255 - * - */ -float numberOfOnes(float number, float index){ - float tmp = mod(number, pow(2.0, index + 1.0)); - float numOnes = 0.0; - for(float i = 0.0; i < 8.0; i++){ - if(mod(tmp, 2.0) != 0.0){ - numOnes++; - } - tmp = floor(tmp / 2.0); - } - return numOnes; -} - - -/** - * checks whether the bit at index is 1 - * number is treated as if it were an integer in the range 0-255 - * - */ -bool isBitSet(float number, float index){ - return mod(floor(number / pow(2.0, index)), 2.0) != 0.0; -} - - -/** - * find the LOD at the point position - */ -float getLOD(){ - - vec3 offset = vec3(0.0, 0.0, 0.0); - float iOffset = uVNStart; - float depth = uLevel; - for(float i = 0.0; i <= 30.0; i++){ - float nodeSizeAtLevel = uOctreeSize / pow(2.0, i + uLevel + 0.0); - - vec3 index3d = (position-offset) / nodeSizeAtLevel; - index3d = floor(index3d + 0.5); - float index = 4.0 * index3d.x + 2.0 * index3d.y + index3d.z; - - vec4 value = texture2D(visibleNodes, vec2(iOffset / 2048.0, 0.0)); - float mask = value.r * 255.0; - if(isBitSet(mask, index)){ - // there are more visible child nodes at this position - iOffset = iOffset + value.g * 255.0 * 256.0 + value.b * 255.0 + numberOfOnes(mask, index - 1.0); - depth++; - }else{ - // no more visible child nodes at this position - return depth; - } - - offset = offset + (vec3(1.0, 1.0, 1.0) * nodeSizeAtLevel * 0.5) * index3d; - } - - return depth; -} - -#endif - -float getPointSize(){ - float pointSize = 1.0; - - float slope = tan(fov / 2.0); - float projFactor = -0.5 * uScreenHeight / (slope * vViewPosition.z); - - float r = uOctreeSpacing * 1.5; - vRadius = r; - #if defined fixed_point_size - pointSize = size; - #elif defined attenuated_point_size - if(uUseOrthographicCamera){ - pointSize = size; - }else{ - pointSize = pointSize * projFactor; - } - #elif defined adaptive_point_size - if(uUseOrthographicCamera) { - float worldSpaceSize = 1.5 * size * r / getPointSizeAttenuation(); - pointSize = (worldSpaceSize / uOrthoWidth) * uScreenWidth; - } else { - float worldSpaceSize = 1.5 * size * r / getPointSizeAttenuation(); - pointSize = worldSpaceSize * projFactor; - } - #endif - - pointSize = max(minSize, pointSize); - pointSize = min(maxSize, pointSize); - - vRadius = pointSize / projFactor; - - return pointSize; -} - - -void main() { - - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); - vLinearDepth = gl_Position.w; - - float pointSize = getPointSize(); - gl_PointSize = pointSize; - -} diff --git a/app/static/app/js/vendor/potree/src/navigation/DeviceOrientationControls.js b/app/static/app/js/vendor/potree/src/navigation/DeviceOrientationControls.js deleted file mode 100644 index de4b7875..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/DeviceOrientationControls.js +++ /dev/null @@ -1,79 +0,0 @@ -/** - * @author chrisl / Geodan - * - * adapted from Potree.FirstPersonControls by - * - * @author mschuetz / http://mschuetz.at - * - * and THREE.DeviceOrientationControls by - * - * @author richt / http://richt.me - * @author WestLangley / http://github.com/WestLangley - * - * - * - */ - -import {EventDispatcher} from "../EventDispatcher.js"; - -export class DeviceOrientationControls extends EventDispatcher{ - constructor(viewer){ - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.scene = null; - this.sceneControls = new THREE.Scene(); - - this.screenOrientation = window.orientation || 0; - - let deviceOrientationChange = e => { - this.deviceOrientation = e; - }; - - let screenOrientationChange = e => { - this.screenOrientation = window.orientation || 0; - }; - - if ('ondeviceorientationabsolute' in window) { - window.addEventListener('deviceorientationabsolute', deviceOrientationChange); - } else if ('ondeviceorientation' in window) { - window.addEventListener('deviceorientation', deviceOrientationChange); - } else { - console.warn("No device orientation found."); - } - // window.addEventListener('deviceorientation', deviceOrientationChange); - window.addEventListener('orientationchange', screenOrientationChange); - } - - setScene (scene) { - this.scene = scene; - } - - update (delta) { - let computeQuaternion = function (alpha, beta, gamma, orient) { - let quaternion = new THREE.Quaternion(); - - let zee = new THREE.Vector3(0, 0, 1); - let euler = new THREE.Euler(); - let q0 = new THREE.Quaternion(); - - euler.set(beta, gamma, alpha, 'ZXY'); - quaternion.setFromEuler(euler); - quaternion.multiply(q0.setFromAxisAngle(zee, -orient)); - - return quaternion; - }; - - if (typeof this.deviceOrientation !== 'undefined') { - let alpha = this.deviceOrientation.alpha ? THREE.Math.degToRad(this.deviceOrientation.alpha) : 0; - let beta = this.deviceOrientation.beta ? THREE.Math.degToRad(this.deviceOrientation.beta) : 0; - let gamma = this.deviceOrientation.gamma ? THREE.Math.degToRad(this.deviceOrientation.gamma) : 0; - let orient = this.screenOrientation ? THREE.Math.degToRad(this.screenOrientation) : 0; - - let quaternion = computeQuaternion(alpha, beta, gamma, orient); - viewer.scene.cameraP.quaternion.set(quaternion.x, quaternion.y, quaternion.z, quaternion.w); - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/navigation/EarthControls.js b/app/static/app/js/vendor/potree/src/navigation/EarthControls.js deleted file mode 100644 index 0dd10408..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/EarthControls.js +++ /dev/null @@ -1,287 +0,0 @@ -import TWEEN from 'tween.js'; - -import {MOUSE} from "../defines.js"; -import {Utils} from "../utils.js"; -import {EventDispatcher} from "../EventDispatcher.js"; - -export class EarthControls extends EventDispatcher { - constructor (viewer) { - super(viewer); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.scene = null; - this.sceneControls = new THREE.Scene(); - - this.rotationSpeed = 10; - - this.fadeFactor = 20; - this.wheelDelta = 0; - this.zoomDelta = new THREE.Vector3(); - this.camStart = null; - - this.tweens = []; - - { - let sg = new THREE.SphereGeometry(1, 16, 16); - let sm = new THREE.MeshNormalMaterial(); - this.pivotIndicator = new THREE.Mesh(sg, sm); - this.pivotIndicator.visible = false; - this.sceneControls.add(this.pivotIndicator); - } - - let drag = (e) => { - if (e.drag.object !== null) { - return; - } - - if (!this.pivot) { - return; - } - - if (e.drag.startHandled === undefined) { - e.drag.startHandled = true; - - this.dispatchEvent({type: 'start'}); - } - - let camStart = this.camStart; - let view = this.viewer.scene.view; - - // let camera = this.viewer.scene.camera; - let mouse = e.drag.end; - let domElement = this.viewer.renderer.domElement; - - if (e.drag.mouse === MOUSE.LEFT) { - - let ray = Utils.mouseToRay(mouse, camStart, domElement.clientWidth, domElement.clientHeight); - let plane = new THREE.Plane().setFromNormalAndCoplanarPoint( - new THREE.Vector3(0, 0, 1), - this.pivot); - - let distanceToPlane = ray.distanceToPlane(plane); - - if (distanceToPlane > 0) { - let I = new THREE.Vector3().addVectors( - camStart.position, - ray.direction.clone().multiplyScalar(distanceToPlane)); - - let movedBy = new THREE.Vector3().subVectors( - I, this.pivot); - - let newCamPos = camStart.position.clone().sub(movedBy); - - view.position.copy(newCamPos); - - { - let distance = newCamPos.distanceTo(this.pivot); - view.radius = distance; - let speed = view.radius / 2.5; - this.viewer.setMoveSpeed(speed); - } - } - } else if (e.drag.mouse === MOUSE.RIGHT) { - let ndrag = { - x: e.drag.lastDrag.x / this.renderer.domElement.clientWidth, - y: e.drag.lastDrag.y / this.renderer.domElement.clientHeight - }; - - let yawDelta = -ndrag.x * this.rotationSpeed * 0.5; - let pitchDelta = -ndrag.y * this.rotationSpeed * 0.2; - - let originalPitch = view.pitch; - let tmpView = view.clone(); - tmpView.pitch = tmpView.pitch + pitchDelta; - pitchDelta = tmpView.pitch - originalPitch; - - let pivotToCam = new THREE.Vector3().subVectors(view.position, this.pivot); - let pivotToCamTarget = new THREE.Vector3().subVectors(view.getPivot(), this.pivot); - let side = view.getSide(); - - pivotToCam.applyAxisAngle(side, pitchDelta); - pivotToCamTarget.applyAxisAngle(side, pitchDelta); - - pivotToCam.applyAxisAngle(new THREE.Vector3(0, 0, 1), yawDelta); - pivotToCamTarget.applyAxisAngle(new THREE.Vector3(0, 0, 1), yawDelta); - - let newCam = new THREE.Vector3().addVectors(this.pivot, pivotToCam); - // TODO: Unused: let newCamTarget = new THREE.Vector3().addVectors(this.pivot, pivotToCamTarget); - - view.position.copy(newCam); - view.yaw += yawDelta; - view.pitch += pitchDelta; - } - }; - - let onMouseDown = e => { - let I = Utils.getMousePointCloudIntersection( - e.mouse, - this.scene.getActiveCamera(), - this.viewer, - this.scene.pointclouds, - {pickClipped: false}); - - if (I) { - this.pivot = I.location; - this.camStart = this.scene.getActiveCamera().clone(); - this.pivotIndicator.visible = true; - this.pivotIndicator.position.copy(I.location); - } - }; - - let drop = e => { - this.dispatchEvent({type: 'end'}); - }; - - let onMouseUp = e => { - this.camStart = null; - this.pivot = null; - this.pivotIndicator.visible = false; - }; - - let scroll = (e) => { - this.wheelDelta += e.delta; - }; - - let dblclick = (e) => { - this.zoomToLocation(e.mouse); - }; - - this.addEventListener('drag', drag); - this.addEventListener('drop', drop); - this.addEventListener('mousewheel', scroll); - this.addEventListener('mousedown', onMouseDown); - this.addEventListener('mouseup', onMouseUp); - this.addEventListener('dblclick', dblclick); - } - - setScene (scene) { - this.scene = scene; - } - - stop(){ - this.wheelDelta = 0; - this.zoomDelta.set(0, 0, 0); - } - - zoomToLocation(mouse){ - let camera = this.scene.getActiveCamera(); - - let I = Utils.getMousePointCloudIntersection( - mouse, - camera, - this.viewer, - this.scene.pointclouds); - - if (I === null) { - return; - } - - let targetRadius = 0; - { - let minimumJumpDistance = 0.2; - - let domElement = this.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - - let nodes = I.pointcloud.nodesOnRay(I.pointcloud.visibleNodes, ray); - let lastNode = nodes[nodes.length - 1]; - let radius = lastNode.getBoundingSphere(new THREE.Sphere()).radius; - targetRadius = Math.min(this.scene.view.radius, radius); - targetRadius = Math.max(minimumJumpDistance, targetRadius); - } - - let d = this.scene.view.direction.multiplyScalar(-1); - let cameraTargetPosition = new THREE.Vector3().addVectors(I.location, d.multiplyScalar(targetRadius)); - // TODO Unused: let controlsTargetPosition = I.location; - - let animationDuration = 600; - let easing = TWEEN.Easing.Quartic.Out; - - { // animate - let value = {x: 0}; - let tween = new TWEEN.Tween(value).to({x: 1}, animationDuration); - tween.easing(easing); - this.tweens.push(tween); - - let startPos = this.scene.view.position.clone(); - let targetPos = cameraTargetPosition.clone(); - let startRadius = this.scene.view.radius; - let targetRadius = cameraTargetPosition.distanceTo(I.location); - - tween.onUpdate(() => { - let t = value.x; - this.scene.view.position.x = (1 - t) * startPos.x + t * targetPos.x; - this.scene.view.position.y = (1 - t) * startPos.y + t * targetPos.y; - this.scene.view.position.z = (1 - t) * startPos.z + t * targetPos.z; - - this.scene.view.radius = (1 - t) * startRadius + t * targetRadius; - this.viewer.setMoveSpeed(this.scene.view.radius / 2.5); - }); - - tween.onComplete(() => { - this.tweens = this.tweens.filter(e => e !== tween); - }); - - tween.start(); - } - } - - update (delta) { - let view = this.scene.view; - let fade = Math.pow(0.5, this.fadeFactor * delta); - let progression = 1 - fade; - let camera = this.scene.getActiveCamera(); - - // compute zoom - if (this.wheelDelta !== 0) { - let I = Utils.getMousePointCloudIntersection( - this.viewer.inputHandler.mouse, - this.scene.getActiveCamera(), - this.viewer, - this.scene.pointclouds); - - if (I) { - let resolvedPos = new THREE.Vector3().addVectors(view.position, this.zoomDelta); - let distance = I.location.distanceTo(resolvedPos); - let jumpDistance = distance * 0.2 * this.wheelDelta; - let targetDir = new THREE.Vector3().subVectors(I.location, view.position); - targetDir.normalize(); - - resolvedPos.add(targetDir.multiplyScalar(jumpDistance)); - this.zoomDelta.subVectors(resolvedPos, view.position); - - { - let distance = resolvedPos.distanceTo(I.location); - view.radius = distance; - let speed = view.radius / 2.5; - this.viewer.setMoveSpeed(speed); - } - } - } - - // apply zoom - if (this.zoomDelta.length() !== 0) { - let p = this.zoomDelta.clone().multiplyScalar(progression); - - let newPos = new THREE.Vector3().addVectors(view.position, p); - view.position.copy(newPos); - } - - if (this.pivotIndicator.visible) { - let distance = this.pivotIndicator.position.distanceTo(view.position); - let pixelwidth = this.renderer.domElement.clientwidth; - let pixelHeight = this.renderer.domElement.clientHeight; - let pr = Utils.projectedRadius(1, camera, distance, pixelwidth, pixelHeight); - let scale = (10 / pr); - this.pivotIndicator.scale.set(scale, scale, scale); - } - - // decelerate over time - { - this.zoomDelta.multiplyScalar(fade); - this.wheelDelta = 0; - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/navigation/FirstPersonControls.js b/app/static/app/js/vendor/potree/src/navigation/FirstPersonControls.js deleted file mode 100644 index 1a1a38c2..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/FirstPersonControls.js +++ /dev/null @@ -1,284 +0,0 @@ -import TWEEN from 'tween.js'; - -/** - * @author mschuetz / http://mschuetz.at - * - * adapted from THREE.OrbitControls by - * - * @author qiao / https://github.com/qiao - * @author mrdoob / http://mrdoob.com - * @author alteredq / http://alteredqualia.com/ - * @author WestLangley / http://github.com/WestLangley - * @author erich666 / http://erichaines.com - * - * - * - */ - - -import {MOUSE} from "../defines.js"; -import {Utils} from "../utils.js"; -import {EventDispatcher} from "../EventDispatcher.js"; - - -export class FirstPersonControls extends EventDispatcher { - constructor (viewer) { - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.scene = null; - this.sceneControls = new THREE.Scene(); - - this.rotationSpeed = 200; - this.moveSpeed = 10; - this.lockElevation = false; - - this.keys = { - FORWARD: ['W'.charCodeAt(0), 38], - BACKWARD: ['S'.charCodeAt(0), 40], - LEFT: ['A'.charCodeAt(0), 37], - RIGHT: ['D'.charCodeAt(0), 39], - UP: ['R'.charCodeAt(0), 33], - DOWN: ['F'.charCodeAt(0), 34] - }; - - this.fadeFactor = 50; - this.yawDelta = 0; - this.pitchDelta = 0; - this.translationDelta = new THREE.Vector3(0, 0, 0); - this.translationWorldDelta = new THREE.Vector3(0, 0, 0); - - this.tweens = []; - - let drag = (e) => { - if (e.drag.object !== null) { - return; - } - - if (e.drag.startHandled === undefined) { - e.drag.startHandled = true; - - this.dispatchEvent({type: 'start'}); - } - - let moveSpeed = this.viewer.getMoveSpeed(); - - let ndrag = { - x: e.drag.lastDrag.x / this.renderer.domElement.clientWidth, - y: e.drag.lastDrag.y / this.renderer.domElement.clientHeight - }; - - if (e.drag.mouse === MOUSE.LEFT) { - this.yawDelta += ndrag.x * this.rotationSpeed; - this.pitchDelta += ndrag.y * this.rotationSpeed; - } else if (e.drag.mouse === MOUSE.RIGHT) { - this.translationDelta.x -= ndrag.x * moveSpeed * 100; - this.translationDelta.z += ndrag.y * moveSpeed * 100; - } - }; - - let drop = e => { - this.dispatchEvent({type: 'end'}); - }; - - let scroll = (e) => { - let speed = this.viewer.getMoveSpeed(); - - if (e.delta < 0) { - speed = speed * 0.9; - } else if (e.delta > 0) { - speed = speed / 0.9; - } - - speed = Math.max(speed, 0.1); - - this.viewer.setMoveSpeed(speed); - }; - - let dblclick = (e) => { - this.zoomToLocation(e.mouse); - }; - - this.addEventListener('drag', drag); - this.addEventListener('drop', drop); - this.addEventListener('mousewheel', scroll); - this.addEventListener('dblclick', dblclick); - } - - setScene (scene) { - this.scene = scene; - } - - stop(){ - this.yawDelta = 0; - this.pitchDelta = 0; - this.translationDelta.set(0, 0, 0); - } - - zoomToLocation(mouse){ - let camera = this.scene.getActiveCamera(); - - let I = Utils.getMousePointCloudIntersection( - mouse, - camera, - this.viewer, - this.scene.pointclouds); - - if (I === null) { - return; - } - - let targetRadius = 0; - { - let minimumJumpDistance = 0.2; - - let domElement = this.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - - let nodes = I.pointcloud.nodesOnRay(I.pointcloud.visibleNodes, ray); - let lastNode = nodes[nodes.length - 1]; - let radius = lastNode.getBoundingSphere(new THREE.Sphere()).radius; - targetRadius = Math.min(this.scene.view.radius, radius); - targetRadius = Math.max(minimumJumpDistance, targetRadius); - } - - let d = this.scene.view.direction.multiplyScalar(-1); - let cameraTargetPosition = new THREE.Vector3().addVectors(I.location, d.multiplyScalar(targetRadius)); - // TODO Unused: let controlsTargetPosition = I.location; - - let animationDuration = 600; - let easing = TWEEN.Easing.Quartic.Out; - - { // animate - let value = {x: 0}; - let tween = new TWEEN.Tween(value).to({x: 1}, animationDuration); - tween.easing(easing); - this.tweens.push(tween); - - let startPos = this.scene.view.position.clone(); - let targetPos = cameraTargetPosition.clone(); - let startRadius = this.scene.view.radius; - let targetRadius = cameraTargetPosition.distanceTo(I.location); - - tween.onUpdate(() => { - let t = value.x; - this.scene.view.position.x = (1 - t) * startPos.x + t * targetPos.x; - this.scene.view.position.y = (1 - t) * startPos.y + t * targetPos.y; - this.scene.view.position.z = (1 - t) * startPos.z + t * targetPos.z; - - this.scene.view.radius = (1 - t) * startRadius + t * targetRadius; - this.viewer.setMoveSpeed(this.scene.view.radius / 2.5); - }); - - tween.onComplete(() => { - this.tweens = this.tweens.filter(e => e !== tween); - }); - - tween.start(); - } - } - - update (delta) { - let view = this.scene.view; - - { // cancel move animations on user input - let changes = [ this.yawDelta, - this.pitchDelta, - this.translationDelta.length(), - this.translationWorldDelta.length() ]; - let changeHappens = changes.some(e => Math.abs(e) > 0.001); - if (changeHappens && this.tweens.length > 0) { - this.tweens.forEach(e => e.stop()); - this.tweens = []; - } - } - - { // accelerate while input is given - let ih = this.viewer.inputHandler; - - let moveForward = this.keys.FORWARD.some(e => ih.pressedKeys[e]); - let moveBackward = this.keys.BACKWARD.some(e => ih.pressedKeys[e]); - let moveLeft = this.keys.LEFT.some(e => ih.pressedKeys[e]); - let moveRight = this.keys.RIGHT.some(e => ih.pressedKeys[e]); - let moveUp = this.keys.UP.some(e => ih.pressedKeys[e]); - let moveDown = this.keys.DOWN.some(e => ih.pressedKeys[e]); - - if(this.lockElevation){ - let dir = view.direction; - dir.z = 0; - dir.normalize(); - - if (moveForward && moveBackward) { - this.translationWorldDelta.set(0, 0, 0); - } else if (moveForward) { - this.translationWorldDelta.copy(dir.multiplyScalar(this.viewer.getMoveSpeed())); - } else if (moveBackward) { - this.translationWorldDelta.copy(dir.multiplyScalar(-this.viewer.getMoveSpeed())); - } - }else{ - if (moveForward && moveBackward) { - this.translationDelta.y = 0; - } else if (moveForward) { - this.translationDelta.y = this.viewer.getMoveSpeed(); - } else if (moveBackward) { - this.translationDelta.y = -this.viewer.getMoveSpeed(); - } - } - - if (moveLeft && moveRight) { - this.translationDelta.x = 0; - } else if (moveLeft) { - this.translationDelta.x = -this.viewer.getMoveSpeed(); - } else if (moveRight) { - this.translationDelta.x = this.viewer.getMoveSpeed(); - } - - if (moveUp && moveDown) { - this.translationWorldDelta.z = 0; - } else if (moveUp) { - this.translationWorldDelta.z = this.viewer.getMoveSpeed(); - } else if (moveDown) { - this.translationWorldDelta.z = -this.viewer.getMoveSpeed(); - } - } - - { // apply rotation - let yaw = view.yaw; - let pitch = view.pitch; - - yaw -= this.yawDelta * delta; - pitch -= this.pitchDelta * delta; - - view.yaw = yaw; - view.pitch = pitch; - } - - { // apply translation - view.translate( - this.translationDelta.x * delta, - this.translationDelta.y * delta, - this.translationDelta.z * delta - ); - - view.translateWorld( - this.translationWorldDelta.x * delta, - this.translationWorldDelta.y * delta, - this.translationWorldDelta.z * delta - ); - } - - { // set view target according to speed - view.radius = 3 * this.viewer.getMoveSpeed(); - } - - { // decelerate over time - let attenuation = Math.max(0, 1 - this.fadeFactor * delta); - this.yawDelta *= attenuation; - this.pitchDelta *= attenuation; - this.translationDelta.multiplyScalar(attenuation); - this.translationWorldDelta.multiplyScalar(attenuation); - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/navigation/GeoControls.js b/app/static/app/js/vendor/potree/src/navigation/GeoControls.js deleted file mode 100644 index 2b0fabf0..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/GeoControls.js +++ /dev/null @@ -1,488 +0,0 @@ -/** - * @author mschuetz / http://mschuetz.at - * - * adapted from THREE.OrbitControls by - * - * @author qiao / https://github.com/qiao - * @author mrdoob / http://mrdoob.com - * @author alteredq / http://alteredqualia.com/ - * @author WestLangley / http://github.com/WestLangley - * @author erich666 / http://erichaines.com - * - * This set of controls performs first person navigation without mouse lock. - * Instead, rotating the camera is done by dragging with the left mouse button. - * - * move: a/s/d/w or up/down/left/right - * rotate: left mouse - * pan: right mouse - * change speed: mouse wheel - * - * - */ - -import {EventDispatcher} from "../EventDispatcher.js"; -import {KeyCodes} from "../KeyCodes.js"; - -export class GeoControls extends EventDispatcher{ - - constructor(object, domElement){ - super(); - - console.log("deprecated?"); - - this.object = object; - this.domElement = (domElement !== undefined) ? domElement : document; - - // Set to false to disable this control - this.enabled = true; - - // Set this to a THREE.SplineCurve3 instance - this.track = null; - // position on track in intervall [0,1] - this.trackPos = 0; - - this.rotateSpeed = 1.0; - this.moveSpeed = 10.0; - - let rotateStart = new THREE.Vector2(); - let rotateEnd = new THREE.Vector2(); - let rotateDelta = new THREE.Vector2(); - - let panStart = new THREE.Vector2(); - let panEnd = new THREE.Vector2(); - let panDelta = new THREE.Vector2(); - let panOffset = new THREE.Vector3(); - - // TODO Unused: let offset = new THREE.Vector3(); - - let phiDelta = 0; - let thetaDelta = 0; - let pan = new THREE.Vector3(); - - this.shiftDown = false; - - let lastPosition = new THREE.Vector3(); - - let STATE = { NONE: -1, ROTATE: 0, SPEEDCHANGE: 1, PAN: 2 }; - - let state = STATE.NONE; - - // for reset - this.position0 = this.object.position.clone(); - - // events - - let changeEvent = { type: 'change' }; - let startEvent = { type: 'start' }; - let endEvent = { type: 'end' }; - - this.domElement.addEventListener('contextmenu', (event) => { event.preventDefault(); }, false); - this.domElement.addEventListener('mousedown', this.onMouseDown.bind(this), false); - this.domElement.addEventListener('mousewheel', this.onMouseWheel.bind(this), false); - this.domElement.addEventListener('DOMMouseScroll', this.onMouseWheel.bind(this), false); // firefox - - this.domElement.addEventListener('mousemove', this.onMouseMove.bind(this), false); - this.domElement.addEventListener('mouseup', this.onMouseUp.bind(this), false); - - if (this.domElement.tabIndex === -1) { - this.domElement.tabIndex = 2222; - } - this.domElement.addEventListener('keydown', this.onKeyDown.bind(this), false); - this.domElement.addEventListener('keyup', this.onKeyUp.bind(this), false); - - } - - setTrack(track) { - if (this.track !== track) { - this.track = track; - this.trackPos = null; - } - }; - - setTrackPos(trackPos, _preserveRelativeRotation){ - // TODO Unused: let preserveRelativeRotation = _preserveRelativeRotation || false; - - let newTrackPos = Math.max(0, Math.min(1, trackPos)); - let oldTrackPos = this.trackPos || newTrackPos; - - let newTangent = this.track.getTangentAt(newTrackPos); - let oldTangent = this.track.getTangentAt(oldTrackPos); - - if (newTangent.equals(oldTangent)) { - // no change in direction - } else { - let tangentDiffNormal = new THREE.Vector3().crossVectors(oldTangent, newTangent).normalize(); - let angle = oldTangent.angleTo(newTangent); - let rot = new THREE.Matrix4().makeRotationAxis(tangentDiffNormal, angle); - let dir = this.object.getWorldDirection(new THREE.Vector3()).clone(); - dir = dir.applyMatrix4(rot); - let target = new THREE.Vector3().addVectors(this.object.position, dir); - this.object.lookAt(target); - this.object.updateMatrixWorld(); - - let event = { - type: 'path_relative_rotation', - angle: angle, - axis: tangentDiffNormal, - controls: this - }; - this.dispatchEvent(event); - } - - if (this.trackPos === null) { - let target = new THREE.Vector3().addVectors(this.object.position, newTangent); - this.object.lookAt(target); - } - - this.trackPos = newTrackPos; - - // let pStart = this.track.getPointAt(oldTrackPos); - // let pEnd = this.track.getPointAt(newTrackPos); - // let pDiff = pEnd.sub(pStart); - - if (newTrackPos !== oldTrackPos) { - let event = { - type: 'move', - translation: pan.clone() - }; - this.dispatchEvent(event); - } - } - - stop(){ - - } - - getTrackPos(){ - return this.trackPos; - } - - rotateLeft(angle){ - thetaDelta -= angle; - } - - rotateUp(angle){ - phiDelta -= angle; - } - - // pass in distance in world space to move left - panLeft(distance){ - let te = this.object.matrix.elements; - - // get X column of matrix - panOffset.set(te[ 0 ], te[ 1 ], te[ 2 ]); - panOffset.multiplyScalar(-distance); - - pan.add(panOffset); - } - - // pass in distance in world space to move up - panUp(distance){ - let te = this.object.matrix.elements; - - // get Y column of matrix - panOffset.set(te[ 4 ], te[ 5 ], te[ 6 ]); - panOffset.multiplyScalar(distance); - - pan.add(panOffset); - } - - // pass in distance in world space to move forward - panForward(distance){ - if (this.track) { - this.setTrackPos(this.getTrackPos() - distance / this.track.getLength()); - } else { - let te = this.object.matrix.elements; - - // get Y column of matrix - panOffset.set(te[ 8 ], te[ 9 ], te[ 10 ]); - // panOffset.set( te[ 8 ], 0, te[ 10 ] ); - panOffset.multiplyScalar(distance); - - pan.add(panOffset); - } - } - - pan(deltaX, deltaY){ - let element = this.domElement === document ? this.domElement.body : this.domElement; - - if (this.object.fov !== undefined) { - // perspective - let position = this.object.position; - let offset = position.clone(); - let targetDistance = offset.length(); - - // half of the fov is center to top of screen - targetDistance *= Math.tan((this.object.fov / 2) * Math.PI / 180.0); - - // we actually don't use screenWidth, since perspective camera is fixed to screen height - this.panLeft(2 * deltaX * targetDistance / element.clientHeight); - this.panUp(2 * deltaY * targetDistance / element.clientHeight); - } else if (this.object.top !== undefined) { - // orthographic - this.panLeft(deltaX * (this.object.right - this.object.left) / element.clientWidth); - this.panUp(deltaY * (this.object.top - this.object.bottom) / element.clientHeight); - } else { - // camera neither orthographic or perspective - console.warn('WARNING: GeoControls.js encountered an unknown camera type - pan disabled.'); - } - } - - update(delta){ - this.object.rotation.order = 'ZYX'; - - let object = this.object; - - this.object = new THREE.Object3D(); - this.object.position.copy(object.position); - this.object.rotation.copy(object.rotation); - this.object.updateMatrix(); - this.object.updateMatrixWorld(); - - let position = this.object.position; - - if (delta !== undefined) { - let multiplier = this.shiftDown ? 4 : 1; - if (this.moveRight) { - this.panLeft(-delta * this.moveSpeed * multiplier); - } - if (this.moveLeft) { - this.panLeft(delta * this.moveSpeed * multiplier); - } - if (this.moveForward || this.moveForwardMouse) { - this.panForward(-delta * this.moveSpeed * multiplier); - } - if (this.moveBackward) { - this.panForward(delta * this.moveSpeed * multiplier); - } - if (this.rotLeft) { - this.rotateLeft(-0.5 * Math.PI * delta / this.rotateSpeed); - } - if (this.rotRight) { - this.rotateLeft(0.5 * Math.PI * delta / this.rotateSpeed); - } - if (this.raiseCamera) { - // this.rotateUp( -0.5 * Math.PI * delta / this.rotateSpeed ); - this.panUp(delta * this.moveSpeed * multiplier); - } - if (this.lowerCamera) { - // this.rotateUp( 0.5 * Math.PI * delta / this.rotateSpeed ); - this.panUp(-delta * this.moveSpeed * multiplier); - } - } - - if (!pan.equals(new THREE.Vector3(0, 0, 0))) { - let event = { - type: 'move', - translation: pan.clone() - }; - this.dispatchEvent(event); - } - - position.add(pan); - - if (!(thetaDelta === 0.0 && phiDelta === 0.0)) { - let event = { - type: 'rotate', - thetaDelta: thetaDelta, - phiDelta: phiDelta - }; - this.dispatchEvent(event); - } - - this.object.updateMatrix(); - let rot = new THREE.Matrix4().makeRotationY(thetaDelta); - let res = new THREE.Matrix4().multiplyMatrices(rot, this.object.matrix); - this.object.quaternion.setFromRotationMatrix(res); - - this.object.rotation.x += phiDelta; - this.object.updateMatrixWorld(); - - // send transformation proposal to listeners - let proposeTransformEvent = { - type: 'proposeTransform', - oldPosition: object.position, - newPosition: this.object.position, - objections: 0, - counterProposals: [] - }; - this.dispatchEvent(proposeTransformEvent); - - // check some counter proposals if transformation wasn't accepted - if (proposeTransformEvent.objections > 0) { - if (proposeTransformEvent.counterProposals.length > 0) { - let cp = proposeTransformEvent.counterProposals; - this.object.position.copy(cp[0]); - - proposeTransformEvent.objections = 0; - proposeTransformEvent.counterProposals = []; - } - } - - // apply transformation, if accepted - if (proposeTransformEvent.objections > 0) { - - } else { - object.position.copy(this.object.position); - } - - object.rotation.copy(this.object.rotation); - - this.object = object; - - thetaDelta = 0; - phiDelta = 0; - pan.set(0, 0, 0); - - if (lastPosition.distanceTo(this.object.position) > 0) { - this.dispatchEvent(changeEvent); - - lastPosition.copy(this.object.position); - } - - if (this.track) { - let pos = this.track.getPointAt(this.trackPos); - object.position.copy(pos); - } - } - - reset(){ - state = STATE.NONE; - - this.object.position.copy(this.position0); - } - - onMouseDown(){ - if (this.enabled === false) return; - event.preventDefault(); - - if (event.button === 0) { - state = STATE.ROTATE; - - rotateStart.set(event.clientX, event.clientY); - } else if (event.button === 1) { - state = STATE.PAN; - - panStart.set(event.clientX, event.clientY); - } else if (event.button === 2) { - // state = STATE.PAN; - // panStart.set( event.clientX, event.clientY ); - this.moveForwardMouse = true; - } - - // this.domElement.addEventListener( 'mousemove', onMouseMove, false ); - // this.domElement.addEventListener( 'mouseup', onMouseUp, false ); - this.dispatchEvent(startEvent); - } - - onMouseMove(event){ - if (this.enabled === false) return; - - event.preventDefault(); - - let element = this.domElement === document ? this.domElement.body : this.domElement; - - if (state === STATE.ROTATE) { - rotateEnd.set(event.clientX, event.clientY); - rotateDelta.subVectors(rotateEnd, rotateStart); - - // rotating across whole screen goes 360 degrees around - this.rotateLeft(2 * Math.PI * rotateDelta.x / element.clientWidth * this.rotateSpeed); - - // rotating up and down along whole screen attempts to go 360, but limited to 180 - this.rotateUp(2 * Math.PI * rotateDelta.y / element.clientHeight * this.rotateSpeed); - - rotateStart.copy(rotateEnd); - } else if (state === STATE.PAN) { - panEnd.set(event.clientX, event.clientY); - panDelta.subVectors(panEnd, panStart); - // panDelta.multiplyScalar(this.moveSpeed).multiplyScalar(0.0001); - panDelta.multiplyScalar(0.002).multiplyScalar(this.moveSpeed); - - this.pan(panDelta.x, panDelta.y); - - panStart.copy(panEnd); - } - } - - onMouseUp(event){ - if (this.enabled === false) return; - - // console.log(event.which); - - if (event.button === 2) { - this.moveForwardMouse = false; - } else { - // this.domElement.removeEventListener( 'mousemove', onMouseMove, false ); - // this.domElement.removeEventListener( 'mouseup', onMouseUp, false ); - this.dispatchEvent(endEvent); - state = STATE.NONE; - } - } - - onMouseWheel(event){ - if (this.enabled === false || this.noZoom === true) return; - - event.preventDefault(); - - let direction = (event.detail < 0 || event.wheelDelta > 0) ? 1 : -1; - let moveSpeed = this.moveSpeed + this.moveSpeed * 0.1 * direction; - moveSpeed = Math.max(0.1, moveSpeed); - - this.setMoveSpeed(moveSpeed); - - this.dispatchEvent(startEvent); - this.dispatchEvent(endEvent); - } - - setMoveSpeed(value){ - if (this.moveSpeed !== value) { - this.moveSpeed = value; - this.dispatchEvent({ - type: 'move_speed_changed', - controls: this - }); - } - } - - onKeyDown(event){ - if (this.enabled === false) return; - - this.shiftDown = event.shiftKey; - - switch (event.keyCode) { - case KeyCodes.UP: this.moveForward = true; break; - case KeyCodes.BOTTOM: this.moveBackward = true; break; - case KeyCodes.LEFT: this.moveLeft = true; break; - case KeyCodes.RIGHT: this.moveRight = true; break; - case KeyCodes.W: this.moveForward = true; break; - case KeyCodes.S: this.moveBackward = true; break; - case KeyCodes.A: this.moveLeft = true; break; - case KeyCodes.D: this.moveRight = true; break; - case KeyCodes.Q: this.rotLeft = true; break; - case KeyCodes.E: this.rotRight = true; break; - case KeyCodes.R: this.raiseCamera = true; break; - case KeyCodes.F: this.lowerCamera = true; break; - } - } - - onKeyUp(event){ - this.shiftDown = event.shiftKey; - - switch (event.keyCode) { - case KeyCodes.W: this.moveForward = false; break; - case KeyCodes.S: this.moveBackward = false; break; - case KeyCodes.A: this.moveLeft = false; break; - case KeyCodes.D: this.moveRight = false; break; - case KeyCodes.UP: this.moveForward = false; break; - case KeyCodes.BOTTOM: this.moveBackward = false; break; - case KeyCodes.LEFT: this.moveLeft = false; break; - case KeyCodes.RIGHT: this.moveRight = false; break; - case KeyCodes.Q: this.rotLeft = false; break; - case KeyCodes.E: this.rotRight = false; break; - case KeyCodes.R: this.raiseCamera = false; break; - case KeyCodes.F: this.lowerCamera = false; break; - } - } -} - diff --git a/app/static/app/js/vendor/potree/src/navigation/InputHandler.js b/app/static/app/js/vendor/potree/src/navigation/InputHandler.js deleted file mode 100644 index 67eb3698..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/InputHandler.js +++ /dev/null @@ -1,718 +0,0 @@ -/** - * @author mschuetz / http://mschuetz.at - * - * - */ - - -import {KeyCodes} from "../KeyCodes"; -import {Utils} from "../utils"; -import {EventDispatcher} from "../EventDispatcher.js"; - -export class InputHandler extends EventDispatcher { - constructor (viewer) { - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - this.domElement = this.renderer.domElement; - this.enabled = true; - - this.scene = null; - this.interactiveScenes = []; - this.interactiveObjects = new Set(); - this.inputListeners = []; - this.blacklist = new Set(); - - this.drag = null; - this.mouse = new THREE.Vector2(0, 0); - - this.selection = []; - - this.hoveredElements = []; - this.pressedKeys = {}; - - this.wheelDelta = 0; - - this.speed = 1; - - this.logMessages = false; - - if (this.domElement.tabIndex === -1) { - this.domElement.tabIndex = 2222; - } - - this.domElement.addEventListener('contextmenu', (event) => { event.preventDefault(); }, false); - this.domElement.addEventListener('click', this.onMouseClick.bind(this), false); - this.domElement.addEventListener('mousedown', this.onMouseDown.bind(this), false); - this.domElement.addEventListener('mouseup', this.onMouseUp.bind(this), false); - this.domElement.addEventListener('mousemove', this.onMouseMove.bind(this), false); - this.domElement.addEventListener('mousewheel', this.onMouseWheel.bind(this), false); - this.domElement.addEventListener('DOMMouseScroll', this.onMouseWheel.bind(this), false); // Firefox - this.domElement.addEventListener('dblclick', this.onDoubleClick.bind(this)); - this.domElement.addEventListener('keydown', this.onKeyDown.bind(this)); - this.domElement.addEventListener('keyup', this.onKeyUp.bind(this)); - this.domElement.addEventListener('touchstart', this.onTouchStart.bind(this)); - this.domElement.addEventListener('touchend', this.onTouchEnd.bind(this)); - this.domElement.addEventListener('touchmove', this.onTouchMove.bind(this)); - } - - addInputListener (listener) { - this.inputListeners.push(listener); - } - - removeInputListener (listener) { - this.inputListeners = this.inputListeners.filter(e => e !== listener); - } - - getSortedListeners(){ - return this.inputListeners.sort( (a, b) => { - let ia = (a.importance !== undefined) ? a.importance : 0; - let ib = (b.importance !== undefined) ? b.importance : 0; - - return ib - ia; - }); - } - - onTouchStart (e) { - if (this.logMessages) console.log(this.constructor.name + ': onTouchStart'); - - e.preventDefault(); - - if (e.touches.length === 1) { - let rect = this.domElement.getBoundingClientRect(); - let x = e.touches[0].pageX - rect.left; - let y = e.touches[0].pageY - rect.top; - this.mouse.set(x, y); - - this.startDragging(null); - } - - - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: e.type, - touches: e.touches, - changedTouches: e.changedTouches - }); - } - } - - onTouchEnd (e) { - if (this.logMessages) console.log(this.constructor.name + ': onTouchEnd'); - - e.preventDefault(); - - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'drop', - drag: this.drag, - viewer: this.viewer - }); - } - - this.drag = null; - - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: e.type, - touches: e.touches, - changedTouches: e.changedTouches - }); - } - } - - onTouchMove (e) { - if (this.logMessages) console.log(this.constructor.name + ': onTouchMove'); - - e.preventDefault(); - - if (e.touches.length === 1) { - let rect = this.domElement.getBoundingClientRect(); - let x = e.touches[0].pageX - rect.left; - let y = e.touches[0].pageY - rect.top; - this.mouse.set(x, y); - - if (this.drag) { - this.drag.mouse = 1; - - this.drag.lastDrag.x = x - this.drag.end.x; - this.drag.lastDrag.y = y - this.drag.end.y; - - this.drag.end.set(x, y); - - if (this.logMessages) console.log(this.constructor.name + ': drag: '); - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'drag', - drag: this.drag, - viewer: this.viewer - }); - } - } - } - - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: e.type, - touches: e.touches, - changedTouches: e.changedTouches - }); - } - - // DEBUG CODE - // let debugTouches = [...e.touches, { - // pageX: this.domElement.clientWidth / 2, - // pageY: this.domElement.clientHeight / 2}]; - // for(let inputListener of this.getSortedListeners()){ - // inputListener.dispatchEvent({ - // type: e.type, - // touches: debugTouches, - // changedTouches: e.changedTouches - // }); - // } - } - - onKeyDown (e) { - if (this.logMessages) console.log(this.constructor.name + ': onKeyDown'); - - // DELETE - if (e.keyCode === KeyCodes.DELETE && this.selection.length > 0) { - this.dispatchEvent({ - type: 'delete', - selection: this.selection - }); - - this.deselectAll(); - } - - this.dispatchEvent({ - type: 'keydown', - keyCode: e.keyCode, - event: e - }); - - // for(let l of this.getSortedListeners()){ - // l.dispatchEvent({ - // type: "keydown", - // keyCode: e.keyCode, - // event: e - // }); - // } - - this.pressedKeys[e.keyCode] = true; - - // e.preventDefault(); - } - - onKeyUp (e) { - if (this.logMessages) console.log(this.constructor.name + ': onKeyUp'); - - delete this.pressedKeys[e.keyCode]; - - e.preventDefault(); - } - - onDoubleClick (e) { - if (this.logMessages) console.log(this.constructor.name + ': onDoubleClick'); - - let consumed = false; - for (let hovered of this.hoveredElements) { - if (hovered._listeners && hovered._listeners['dblclick']) { - hovered.object.dispatchEvent({ - type: 'dblclick', - mouse: this.mouse, - object: hovered.object - }); - consumed = true; - break; - } - } - - if (!consumed) { - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'dblclick', - mouse: this.mouse, - object: null - }); - } - } - - e.preventDefault(); - } - - onMouseClick (e) { - if (this.logMessages) console.log(this.constructor.name + ': onMouseClick'); - - e.preventDefault(); - } - - onMouseDown (e) { - if (this.logMessages) console.log(this.constructor.name + ': onMouseDown'); - - e.preventDefault(); - - let consumed = false; - let consume = () => { return consumed = true; }; - if (this.hoveredElements.length === 0) { - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'mousedown', - viewer: this.viewer, - mouse: this.mouse - }); - } - }else{ - for(let hovered of this.hoveredElements){ - let object = hovered.object; - object.dispatchEvent({ - type: 'mousedown', - viewer: this.viewer, - consume: consume - }); - - if(consumed){ - break; - } - } - } - - if (!this.drag) { - let target = this.hoveredElements - .find(el => ( - el.object._listeners && - el.object._listeners['drag'] && - el.object._listeners['drag'].length > 0)); - - if (target) { - this.startDragging(target.object, {location: target.point}); - } else { - this.startDragging(null); - } - } - - if (this.scene) { - this.viewStart = this.scene.view.clone(); - } - } - - onMouseUp (e) { - if (this.logMessages) console.log(this.constructor.name + ': onMouseUp'); - - e.preventDefault(); - - let noMovement = this.getNormalizedDrag().length() === 0; - - - let consumed = false; - let consume = () => { return consumed = true; }; - if (this.hoveredElements.length === 0) { - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'mouseup', - viewer: this.viewer, - mouse: this.mouse, - consume: consume - }); - - if(consumed){ - break; - } - } - }else{ - let hovered = this.hoveredElements - .map(e => e.object) - .find(e => (e._listeners && e._listeners['mouseup'])); - if(hovered){ - hovered.dispatchEvent({ - type: 'mouseup', - viewer: this.viewer, - consume: consume - }); - } - } - - if (this.drag) { - if (this.drag.object) { - if (this.logMessages) console.log(`${this.constructor.name}: drop ${this.drag.object.name}`); - this.drag.object.dispatchEvent({ - type: 'drop', - drag: this.drag, - viewer: this.viewer - - }); - } else { - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'drop', - drag: this.drag, - viewer: this.viewer - }); - } - } - - // check for a click - let clicked = this.hoveredElements.map(h => h.object).find(v => v === this.drag.object) !== undefined; - if(clicked){ - if (this.logMessages) console.log(`${this.constructor.name}: click ${this.drag.object.name}`); - this.drag.object.dispatchEvent({ - type: 'click', - viewer: this.viewer, - consume: consume, - }); - } - - this.drag = null; - } - - if(!consumed){ - if (e.button === THREE.MOUSE.LEFT) { - if (noMovement) { - let selectable = this.hoveredElements - .find(el => el.object._listeners && el.object._listeners['select']); - - if (selectable) { - selectable = selectable.object; - - if (this.isSelected(selectable)) { - this.selection - .filter(e => e !== selectable) - .forEach(e => this.toggleSelection(e)); - } else { - this.deselectAll(); - this.toggleSelection(selectable); - } - } else { - this.deselectAll(); - } - } - } else if ((e.button === THREE.MOUSE.RIGHT) && noMovement) { - this.deselectAll(); - } - } - } - - onMouseMove (e) { - e.preventDefault(); - - let rect = this.domElement.getBoundingClientRect(); - let x = e.clientX - rect.left; - let y = e.clientY - rect.top; - this.mouse.set(x, y); - - let hoveredElements = this.getHoveredElements(); - if(hoveredElements.length > 0){ - let names = hoveredElements.map(h => h.object.name).join(", "); - if (this.logMessages) console.log(`${this.constructor.name}: onMouseMove; hovered: '${names}'`); - } - - if (this.drag) { - this.drag.mouse = e.buttons; - - this.drag.lastDrag.x = x - this.drag.end.x; - this.drag.lastDrag.y = y - this.drag.end.y; - - this.drag.end.set(x, y); - - if (this.drag.object) { - if (this.logMessages) console.log(this.constructor.name + ': drag: ' + this.drag.object.name); - this.drag.object.dispatchEvent({ - type: 'drag', - drag: this.drag, - viewer: this.viewer - }); - } else { - if (this.logMessages) console.log(this.constructor.name + ': drag: '); - - let dragConsumed = false; - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'drag', - drag: this.drag, - viewer: this.viewer, - consume: () => {dragConsumed = true;} - }); - - if(dragConsumed){ - break; - } - } - } - }else{ - let curr = hoveredElements.map(a => a.object).find(a => true); - let prev = this.hoveredElements.map(a => a.object).find(a => true); - - if(curr !== prev){ - if(curr){ - if (this.logMessages) console.log(`${this.constructor.name}: mouseover: ${curr.name}`); - curr.dispatchEvent({ - type: 'mouseover', - object: curr, - }); - } - if(prev){ - if (this.logMessages) console.log(`${this.constructor.name}: mouseleave: ${prev.name}`); - prev.dispatchEvent({ - type: 'mouseleave', - object: prev, - }); - } - } - - if(hoveredElements.length > 0){ - let object = hoveredElements - .map(e => e.object) - .find(e => (e._listeners && e._listeners['mousemove'])); - - if(object){ - object.dispatchEvent({ - type: 'mousemove', - object: object - }); - } - } - - } - - - - this.hoveredElements = hoveredElements; - } - - onMouseWheel(e){ - if(!this.enabled) return; - - if(this.logMessages) console.log(this.constructor.name + ": onMouseWheel"); - - e.preventDefault(); - - let delta = 0; - if (e.wheelDelta !== undefined) { // WebKit / Opera / Explorer 9 - delta = e.wheelDelta; - } else if (e.detail !== undefined) { // Firefox - delta = -e.detail; - } - - let ndelta = Math.sign(delta); - - // this.wheelDelta += Math.sign(delta); - - if (this.hoveredElement) { - this.hoveredElement.object.dispatchEvent({ - type: 'mousewheel', - delta: ndelta, - object: this.hoveredElement.object - }); - } else { - for (let inputListener of this.getSortedListeners()) { - inputListener.dispatchEvent({ - type: 'mousewheel', - delta: ndelta, - object: null - }); - } - } - } - - startDragging (object, args = null) { - - let name = object ? object.name : "no name"; - if (this.logMessages) console.log(`${this.constructor.name}: startDragging: '${name}'`); - - this.drag = { - start: this.mouse.clone(), - end: this.mouse.clone(), - lastDrag: new THREE.Vector2(0, 0), - startView: this.scene.view.clone(), - object: object - }; - - if (args) { - for (let key of Object.keys(args)) { - this.drag[key] = args[key]; - } - } - } - - getMousePointCloudIntersection (mouse) { - return Utils.getMousePointCloudIntersection( - this.mouse, - this.scene.getActiveCamera(), - this.viewer, - this.scene.pointclouds); - } - - toggleSelection (object) { - let oldSelection = this.selection; - - let index = this.selection.indexOf(object); - - if (index === -1) { - this.selection.push(object); - object.dispatchEvent({ - type: 'select' - }); - } else { - this.selection.splice(index, 1); - object.dispatchEvent({ - type: 'deselect' - }); - } - - this.dispatchEvent({ - type: 'selection_changed', - oldSelection: oldSelection, - selection: this.selection - }); - } - - deselect(object){ - - let oldSelection = this.selection; - - let index = this.selection.indexOf(object); - - if(index >= 0){ - this.selection.splice(index, 1); - object.dispatchEvent({ - type: 'deselect' - }); - - this.dispatchEvent({ - type: 'selection_changed', - oldSelection: oldSelection, - selection: this.selection - }); - } - } - - deselectAll () { - for (let object of this.selection) { - object.dispatchEvent({ - type: 'deselect' - }); - } - - let oldSelection = this.selection; - - if (this.selection.length > 0) { - this.selection = []; - this.dispatchEvent({ - type: 'selection_changed', - oldSelection: oldSelection, - selection: this.selection - }); - } - } - - isSelected (object) { - let index = this.selection.indexOf(object); - - return index !== -1; - } - - registerInteractiveObject(object){ - this.interactiveObjects.add(object); - } - - removeInteractiveObject(object){ - this.interactiveObjects.delete(object); - } - - registerInteractiveScene (scene) { - let index = this.interactiveScenes.indexOf(scene); - if (index === -1) { - this.interactiveScenes.push(scene); - } - } - - unregisterInteractiveScene (scene) { - let index = this.interactiveScenes.indexOf(scene); - if (index > -1) { - this.interactiveScenes.splice(index, 1); - } - } - - getHoveredElement () { - let hoveredElements = this.getHoveredElements(); - if (hoveredElements.length > 0) { - return hoveredElements[0]; - } else { - return null; - } - } - - getHoveredElements () { - let scenes = this.interactiveScenes.concat(this.scene.scene); - - let interactableListeners = ['mouseup', 'mousemove', 'mouseover', 'mouseleave', 'drag', 'drop', 'click', 'select', 'deselect']; - let interactables = []; - for (let scene of scenes) { - scene.traverseVisible(node => { - if (node._listeners && node.visible && !this.blacklist.has(node)) { - let hasInteractableListener = interactableListeners.filter((e) => { - return node._listeners[e] !== undefined; - }).length > 0; - - if (hasInteractableListener) { - interactables.push(node); - } - } - }); - } - - let camera = this.scene.getActiveCamera(); - let ray = Utils.mouseToRay(this.mouse, camera, this.domElement.clientWidth, this.domElement.clientHeight); - - let raycaster = new THREE.Raycaster(); - raycaster.ray.set(ray.origin, ray.direction); - raycaster.linePrecision = 0.2; - - let intersections = raycaster.intersectObjects(interactables.filter(o => o.visible), false); - - return intersections; - - // if(intersections.length > 0){ - // return intersections[0]; - // }else{ - // return null; - // } - } - - setScene (scene) { - this.deselectAll(); - - this.scene = scene; - } - - update (delta) { - - } - - getNormalizedDrag () { - if (!this.drag) { - return new THREE.Vector2(0, 0); - } - - let diff = new THREE.Vector2().subVectors(this.drag.end, this.drag.start); - - diff.x = diff.x / this.domElement.clientWidth; - diff.y = diff.y / this.domElement.clientHeight; - - return diff; - } - - getNormalizedLastDrag () { - if (!this.drag) { - return new THREE.Vector2(0, 0); - } - - let lastDrag = this.drag.lastDrag.clone(); - - lastDrag.x = lastDrag.x / this.domElement.clientWidth; - lastDrag.y = lastDrag.y / this.domElement.clientHeight; - - return lastDrag; - } -} diff --git a/app/static/app/js/vendor/potree/src/navigation/OrbitControls.js b/app/static/app/js/vendor/potree/src/navigation/OrbitControls.js deleted file mode 100644 index f8649e11..00000000 --- a/app/static/app/js/vendor/potree/src/navigation/OrbitControls.js +++ /dev/null @@ -1,292 +0,0 @@ -import TWEEN from 'tween.js'; - -/** - * @author mschuetz / http://mschuetz.at - * - * adapted from THREE.OrbitControls by - * - * @author qiao / https://github.com/qiao - * @author mrdoob / http://mrdoob.com - * @author alteredq / http://alteredqualia.com/ - * @author WestLangley / http://github.com/WestLangley - * @author erich666 / http://erichaines.com - * - * - * - */ - - -import {MOUSE} from "../defines.js"; -import {Utils} from "../utils.js"; -import {EventDispatcher} from "../EventDispatcher.js"; - - -export class OrbitControls extends EventDispatcher{ - - constructor(viewer){ - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.scene = null; - this.sceneControls = new THREE.Scene(); - - this.rotationSpeed = 5; - - this.fadeFactor = 10; - this.yawDelta = 0; - this.pitchDelta = 0; - this.panDelta = new THREE.Vector2(0, 0); - this.radiusDelta = 0; - - this.tweens = []; - - let drag = (e) => { - if (e.drag.object !== null) { - return; - } - - if (e.drag.startHandled === undefined) { - e.drag.startHandled = true; - - this.dispatchEvent({type: 'start'}); - } - - let ndrag = { - x: e.drag.lastDrag.x / this.renderer.domElement.clientWidth, - y: e.drag.lastDrag.y / this.renderer.domElement.clientHeight - }; - - if (e.drag.mouse === MOUSE.LEFT) { - this.yawDelta += ndrag.x * this.rotationSpeed; - this.pitchDelta += ndrag.y * this.rotationSpeed; - - this.stopTweens(); - } else if (e.drag.mouse === MOUSE.RIGHT) { - this.panDelta.x += ndrag.x; - this.panDelta.y += ndrag.y; - - this.stopTweens(); - } - }; - - let drop = e => { - this.dispatchEvent({type: 'end'}); - }; - - let scroll = (e) => { - let resolvedRadius = this.scene.view.radius + this.radiusDelta; - - this.radiusDelta += -e.delta * resolvedRadius * 0.1; - - this.stopTweens(); - }; - - let dblclick = (e) => { - this.zoomToLocation(e.mouse); - }; - - let previousTouch = null; - let touchStart = e => { - previousTouch = e; - }; - - let touchEnd = e => { - previousTouch = e; - }; - - let touchMove = e => { - if (e.touches.length === 2 && previousTouch.touches.length === 2){ - let prev = previousTouch; - let curr = e; - - let prevDX = prev.touches[0].pageX - prev.touches[1].pageX; - let prevDY = prev.touches[0].pageY - prev.touches[1].pageY; - let prevDist = Math.sqrt(prevDX * prevDX + prevDY * prevDY); - - let currDX = curr.touches[0].pageX - curr.touches[1].pageX; - let currDY = curr.touches[0].pageY - curr.touches[1].pageY; - let currDist = Math.sqrt(currDX * currDX + currDY * currDY); - - let delta = currDist / prevDist; - let resolvedRadius = this.scene.view.radius + this.radiusDelta; - let newRadius = resolvedRadius / delta; - this.radiusDelta = newRadius - resolvedRadius; - - this.stopTweens(); - }else if(e.touches.length === 3 && previousTouch.touches.length === 3){ - let prev = previousTouch; - let curr = e; - - let prevMeanX = (prev.touches[0].pageX + prev.touches[1].pageX + prev.touches[2].pageX) / 3; - let prevMeanY = (prev.touches[0].pageY + prev.touches[1].pageY + prev.touches[2].pageY) / 3; - - let currMeanX = (curr.touches[0].pageX + curr.touches[1].pageX + curr.touches[2].pageX) / 3; - let currMeanY = (curr.touches[0].pageY + curr.touches[1].pageY + curr.touches[2].pageY) / 3; - - let delta = { - x: (currMeanX - prevMeanX) / this.renderer.domElement.clientWidth, - y: (currMeanY - prevMeanY) / this.renderer.domElement.clientHeight - }; - - this.panDelta.x += delta.x; - this.panDelta.y += delta.y; - - this.stopTweens(); - } - - previousTouch = e; - }; - - this.addEventListener('touchstart', touchStart); - this.addEventListener('touchend', touchEnd); - this.addEventListener('touchmove', touchMove); - this.addEventListener('drag', drag); - this.addEventListener('drop', drop); - this.addEventListener('mousewheel', scroll); - this.addEventListener('dblclick', dblclick); - } - - setScene (scene) { - this.scene = scene; - } - - stop(){ - this.yawDelta = 0; - this.pitchDelta = 0; - this.radiusDelta = 0; - this.panDelta.set(0, 0); - } - - zoomToLocation(mouse){ - let camera = this.scene.getActiveCamera(); - - let I = Utils.getMousePointCloudIntersection( - mouse, - camera, - this.viewer, - this.scene.pointclouds, - {pickClipped: true}); - - if (I === null) { - return; - } - - let targetRadius = 0; - { - let minimumJumpDistance = 0.2; - - let domElement = this.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - - let nodes = I.pointcloud.nodesOnRay(I.pointcloud.visibleNodes, ray); - let lastNode = nodes[nodes.length - 1]; - let radius = lastNode.getBoundingSphere(new THREE.Sphere()).radius; - targetRadius = Math.min(this.scene.view.radius, radius); - targetRadius = Math.max(minimumJumpDistance, targetRadius); - } - - let d = this.scene.view.direction.multiplyScalar(-1); - let cameraTargetPosition = new THREE.Vector3().addVectors(I.location, d.multiplyScalar(targetRadius)); - // TODO Unused: let controlsTargetPosition = I.location; - - let animationDuration = 600; - let easing = TWEEN.Easing.Quartic.Out; - - { // animate - let value = {x: 0}; - let tween = new TWEEN.Tween(value).to({x: 1}, animationDuration); - tween.easing(easing); - this.tweens.push(tween); - - let startPos = this.scene.view.position.clone(); - let targetPos = cameraTargetPosition.clone(); - let startRadius = this.scene.view.radius; - let targetRadius = cameraTargetPosition.distanceTo(I.location); - - tween.onUpdate(() => { - let t = value.x; - this.scene.view.position.x = (1 - t) * startPos.x + t * targetPos.x; - this.scene.view.position.y = (1 - t) * startPos.y + t * targetPos.y; - this.scene.view.position.z = (1 - t) * startPos.z + t * targetPos.z; - - this.scene.view.radius = (1 - t) * startRadius + t * targetRadius; - this.viewer.setMoveSpeed(this.scene.view.radius / 2.5); - }); - - tween.onComplete(() => { - this.tweens = this.tweens.filter(e => e !== tween); - }); - - tween.start(); - } - } - - stopTweens () { - this.tweens.forEach(e => e.stop()); - this.tweens = []; - } - - update (delta) { - let view = this.scene.view; - - { // apply rotation - let progression = Math.min(1, this.fadeFactor * delta); - - let yaw = view.yaw; - let pitch = view.pitch; - let pivot = view.getPivot(); - - yaw -= progression * this.yawDelta; - pitch -= progression * this.pitchDelta; - - view.yaw = yaw; - view.pitch = pitch; - - let V = this.scene.view.direction.multiplyScalar(-view.radius); - let position = new THREE.Vector3().addVectors(pivot, V); - - view.position.copy(position); - } - - { // apply pan - let progression = Math.min(1, this.fadeFactor * delta); - let panDistance = progression * view.radius * 3; - - let px = -this.panDelta.x * panDistance; - let py = this.panDelta.y * panDistance; - - view.pan(px, py); - } - - { // apply zoom - let progression = Math.min(1, this.fadeFactor * delta); - - // let radius = view.radius + progression * this.radiusDelta * view.radius * 0.1; - let radius = view.radius + progression * this.radiusDelta; - - let V = view.direction.multiplyScalar(-radius); - let position = new THREE.Vector3().addVectors(view.getPivot(), V); - view.radius = radius; - - view.position.copy(position); - } - - { - let speed = view.radius / 2.5; - this.viewer.setMoveSpeed(speed); - } - - { // decelerate over time - let progression = Math.min(1, this.fadeFactor * delta); - let attenuation = Math.max(0, 1 - this.fadeFactor * delta); - - this.yawDelta *= attenuation; - this.pitchDelta *= attenuation; - this.panDelta.multiplyScalar(attenuation); - // this.radiusDelta *= attenuation; - this.radiusDelta -= progression * this.radiusDelta; - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/utils.js b/app/static/app/js/vendor/potree/src/utils.js deleted file mode 100644 index f1f69192..00000000 --- a/app/static/app/js/vendor/potree/src/utils.js +++ /dev/null @@ -1,820 +0,0 @@ -import TWEEN from 'tween.js'; - -import {XHRFactory} from "./XHRFactory.js"; -import {Volume} from "./utils/Volume.js"; -import {Profile} from "./utils/Profile.js"; -import {Measure} from "./utils/Measure.js"; -import {PolygonClipVolume} from "./utils/PolygonClipVolume.js"; -import {PointColorType} from "./defines.js"; - - -export class Utils { - static async loadShapefileFeatures (file, callback) { - let features = []; - - let handleFinish = () => { - callback(features); - }; - - let source = await shapefile.open(file); - - while(true){ - let result = await source.read(); - - if (result.done) { - handleFinish(); - break; - } - - if (result.value && result.value.type === 'Feature' && result.value.geometry !== undefined) { - features.push(result.value); - } - } - - } - - static toString (value) { - if (value instanceof THREE.Vector3) { - return value.x.toFixed(2) + ', ' + value.y.toFixed(2) + ', ' + value.z.toFixed(2); - } else { - return '' + value + ''; - } - } - - static normalizeURL (url) { - let u = new URL(url); - - return u.protocol + '//' + u.hostname + u.pathname.replace(/\/+/g, '/'); - }; - - static pathExists (url) { - let req = XHRFactory.createXMLHttpRequest(); - req.open('GET', url, false); - req.send(null); - if (req.status !== 200) { - return false; - } - return true; - }; - - static debugSphere(parent, position, scale, color){ - let geometry = new THREE.SphereGeometry(1, 8, 8); - let material; - - if(color !== undefined){ - material = new THREE.MeshBasicMaterial({color: color}); - }else{ - material = new THREE.MeshNormalMaterial(); - } - let sphere = new THREE.Mesh(geometry, material); - sphere.position.copy(position); - sphere.scale.set(scale, scale, scale); - parent.add(sphere); - } - - static debugLine(parent, start, end, color){ - let material = new THREE.LineBasicMaterial({ color: color }); - let geometry = new THREE.Geometry(); - geometry.vertices.push( start, end); - let tl = new THREE.Line( geometry, material ); - parent.add(tl); - } - - static debugBox(parent, box, transform = new THREE.Matrix4(), color = 0xFFFF00){ - - let vertices = [ - [box.min.x, box.min.y, box.min.z], - [box.min.x, box.min.y, box.max.z], - [box.min.x, box.max.y, box.min.z], - [box.min.x, box.max.y, box.max.z], - - [box.max.x, box.min.y, box.min.z], - [box.max.x, box.min.y, box.max.z], - [box.max.x, box.max.y, box.min.z], - [box.max.x, box.max.y, box.max.z], - ].map(v => new THREE.Vector3(...v)); - - let edges = [ - [0, 4], [4, 5], [5, 1], [1, 0], - [2, 6], [6, 7], [7, 3], [3, 2], - [0, 2], [4, 6], [5, 7], [1, 3] - ]; - - let center = box.getCenter(new THREE.Vector3()); - - let centroids = [ - {position: [box.min.x, center.y, center.z], color: 0xFF0000}, - {position: [box.max.x, center.y, center.z], color: 0x880000}, - - {position: [center.x, box.min.y, center.z], color: 0x00FF00}, - {position: [center.x, box.max.y, center.z], color: 0x008800}, - - {position: [center.x, center.y, box.min.z], color: 0x0000FF}, - {position: [center.x, center.y, box.max.z], color: 0x000088}, - ]; - - for(let vertex of vertices){ - let pos = vertex.clone().applyMatrix4(transform); - - Utils.debugSphere(parent, pos, 0.1, 0xFF0000); - } - - for(let edge of edges){ - let start = vertices[edge[0]].clone().applyMatrix4(transform); - let end = vertices[edge[1]].clone().applyMatrix4(transform); - - Utils.debugLine(parent, start, end, color); - } - - for(let centroid of centroids){ - let pos = new THREE.Vector3(...centroid.position).applyMatrix4(transform); - - Utils.debugSphere(parent, pos, 0.1, centroid.color); - } - } - - static debugPlane(parent, plane, size = 1, color = 0x0000FF){ - - let planehelper = new THREE.PlaneHelper(plane, size, color); - - parent.add(planehelper); - - } - - /** - * adapted from mhluska at https://github.com/mrdoob/three.js/issues/1561 - */ - static computeTransformedBoundingBox (box, transform) { - let vertices = [ - new THREE.Vector3(box.min.x, box.min.y, box.min.z).applyMatrix4(transform), - new THREE.Vector3(box.min.x, box.min.y, box.min.z).applyMatrix4(transform), - new THREE.Vector3(box.max.x, box.min.y, box.min.z).applyMatrix4(transform), - new THREE.Vector3(box.min.x, box.max.y, box.min.z).applyMatrix4(transform), - new THREE.Vector3(box.min.x, box.min.y, box.max.z).applyMatrix4(transform), - new THREE.Vector3(box.min.x, box.max.y, box.max.z).applyMatrix4(transform), - new THREE.Vector3(box.max.x, box.max.y, box.min.z).applyMatrix4(transform), - new THREE.Vector3(box.max.x, box.min.y, box.max.z).applyMatrix4(transform), - new THREE.Vector3(box.max.x, box.max.y, box.max.z).applyMatrix4(transform) - ]; - - let boundingBox = new THREE.Box3(); - boundingBox.setFromPoints(vertices); - - return boundingBox; - }; - - /** - * add separators to large numbers - * - * @param nStr - * @returns - */ - static addCommas (nStr) { - nStr += ''; - let x = nStr.split('.'); - let x1 = x[0]; - let x2 = x.length > 1 ? '.' + x[1] : ''; - let rgx = /(\d+)(\d{3})/; - while (rgx.test(x1)) { - x1 = x1.replace(rgx, '$1' + ',' + '$2'); - } - return x1 + x2; - }; - - static removeCommas (str) { - return str.replace(/,/g, ''); - } - - /** - * create worker from a string - * - * code from http://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string - */ - static createWorker (code) { - let blob = new Blob([code], {type: 'application/javascript'}); - let worker = new Worker(URL.createObjectURL(blob)); - - return worker; - }; - - static moveTo(scene, endPosition, endTarget){ - - let view = scene.view; - let camera = scene.getActiveCamera(); - let animationDuration = 500; - let easing = TWEEN.Easing.Quartic.Out; - - { // animate camera position - let tween = new TWEEN.Tween(view.position).to(endPosition, animationDuration); - tween.easing(easing); - tween.start(); - } - - { // animate camera target - let camTargetDistance = camera.position.distanceTo(endTarget); - let target = new THREE.Vector3().addVectors( - camera.position, - camera.getWorldDirection(new THREE.Vector3()).clone().multiplyScalar(camTargetDistance) - ); - let tween = new TWEEN.Tween(target).to(endTarget, animationDuration); - tween.easing(easing); - tween.onUpdate(() => { - view.lookAt(target); - }); - tween.onComplete(() => { - view.lookAt(target); - }); - tween.start(); - } - - } - - static loadSkybox (path) { - let camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 100000); - camera.up.set(0, 0, 1); - let scene = new THREE.Scene(); - - let format = '.jpg'; - let urls = [ - path + 'px' + format, path + 'nx' + format, - path + 'py' + format, path + 'ny' + format, - path + 'pz' + format, path + 'nz' + format - ]; - - let materialArray = []; - { - for (let i = 0; i < 6; i++) { - let material = new THREE.MeshBasicMaterial({ - map: null, - side: THREE.BackSide, - depthTest: false, - depthWrite: false, - color: 0x424556 - }); - - materialArray.push(material); - - let loader = new THREE.TextureLoader(); - loader.load(urls[i], - function loaded (texture) { - material.map = texture; - material.needsUpdate = true; - material.color.setHex(0xffffff); - }, function progress (xhr) { - // console.log( (xhr.loaded / xhr.total * 100) + '% loaded' ); - }, function error (xhr) { - console.log('An error happened', xhr); - } - ); - } - } - - let skyGeometry = new THREE.CubeGeometry(5000, 5000, 5000); - let skybox = new THREE.Mesh(skyGeometry, materialArray); - - scene.add(skybox); - - // z up - scene.rotation.x = Math.PI / 2; - - return {'camera': camera, 'scene': scene}; - }; - - static createGrid (width, length, spacing, color) { - let material = new THREE.LineBasicMaterial({ - color: color || 0x888888 - }); - - let geometry = new THREE.Geometry(); - for (let i = 0; i <= length; i++) { - geometry.vertices.push(new THREE.Vector3(-(spacing * width) / 2, i * spacing - (spacing * length) / 2, 0)); - geometry.vertices.push(new THREE.Vector3(+(spacing * width) / 2, i * spacing - (spacing * length) / 2, 0)); - } - - for (let i = 0; i <= width; i++) { - geometry.vertices.push(new THREE.Vector3(i * spacing - (spacing * width) / 2, -(spacing * length) / 2, 0)); - geometry.vertices.push(new THREE.Vector3(i * spacing - (spacing * width) / 2, +(spacing * length) / 2, 0)); - } - - let line = new THREE.LineSegments(geometry, material, THREE.LinePieces); - line.receiveShadow = true; - return line; - } - - static createBackgroundTexture (width, height) { - function gauss (x, y) { - return (1 / (2 * Math.PI)) * Math.exp(-(x * x + y * y) / 2); - }; - - // map.magFilter = THREE.NearestFilter; - let size = width * height; - let data = new Uint8Array(3 * size); - - let chroma = [1, 1.5, 1.7]; - let max = gauss(0, 0); - - for (let x = 0; x < width; x++) { - for (let y = 0; y < height; y++) { - let u = 2 * (x / width) - 1; - let v = 2 * (y / height) - 1; - - let i = x + width * y; - let d = gauss(2 * u, 2 * v) / max; - let r = (Math.random() + Math.random() + Math.random()) / 3; - r = (d * 0.5 + 0.5) * r * 0.03; - r = r * 0.4; - - // d = Math.pow(d, 0.6); - - data[3 * i + 0] = 255 * (d / 15 + 0.05 + r) * chroma[0]; - data[3 * i + 1] = 255 * (d / 15 + 0.05 + r) * chroma[1]; - data[3 * i + 2] = 255 * (d / 15 + 0.05 + r) * chroma[2]; - } - } - - let texture = new THREE.DataTexture(data, width, height, THREE.RGBFormat); - texture.needsUpdate = true; - - return texture; - } - - static getMousePointCloudIntersection (mouse, camera, viewer, pointclouds, params = {}) { - - let renderer = viewer.renderer; - - let nmouse = { - x: (mouse.x / renderer.domElement.clientWidth) * 2 - 1, - y: -(mouse.y / renderer.domElement.clientHeight) * 2 + 1 - }; - - let pickParams = {}; - - if(params.pickClipped){ - pickParams.pickClipped = params.pickClipped; - } - - pickParams.x = mouse.x; - pickParams.y = renderer.domElement.clientHeight - mouse.y; - - let raycaster = new THREE.Raycaster(); - raycaster.setFromCamera(nmouse, camera); - let ray = raycaster.ray; - - let selectedPointcloud = null; - let closestDistance = Infinity; - let closestIntersection = null; - let closestPoint = null; - - for(let pointcloud of pointclouds){ - let point = pointcloud.pick(viewer, camera, ray, pickParams); - - if(!point){ - continue; - } - - let distance = camera.position.distanceTo(point.position); - - if (distance < closestDistance) { - closestDistance = distance; - selectedPointcloud = pointcloud; - closestIntersection = point.position; - closestPoint = point; - } - } - - if (selectedPointcloud) { - return { - location: closestIntersection, - distance: closestDistance, - pointcloud: selectedPointcloud, - point: closestPoint - }; - } else { - return null; - } - } - - static pixelsArrayToImage (pixels, width, height) { - let canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - - let context = canvas.getContext('2d'); - - pixels = new pixels.constructor(pixels); - - for (let i = 0; i < pixels.length; i++) { - pixels[i * 4 + 3] = 255; - } - - let imageData = context.createImageData(width, height); - imageData.data.set(pixels); - context.putImageData(imageData, 0, 0); - - let img = new Image(); - img.src = canvas.toDataURL(); - // img.style.transform = "scaleY(-1)"; - - return img; - } - - static pixelsArrayToDataUrl(pixels, width, height) { - let canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - - let context = canvas.getContext('2d'); - - pixels = new pixels.constructor(pixels); - - for (let i = 0; i < pixels.length; i++) { - pixels[i * 4 + 3] = 255; - } - - let imageData = context.createImageData(width, height); - imageData.data.set(pixels); - context.putImageData(imageData, 0, 0); - - let dataURL = canvas.toDataURL(); - - return dataURL; - } - - static pixelsArrayToCanvas(pixels, width, height){ - let canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - - let context = canvas.getContext('2d'); - - pixels = new pixels.constructor(pixels); - - //for (let i = 0; i < pixels.length; i++) { - // pixels[i * 4 + 3] = 255; - //} - - // flip vertically - let bytesPerLine = width * 4; - for(let i = 0; i < parseInt(height / 2); i++){ - let j = height - i - 1; - - let lineI = pixels.slice(i * bytesPerLine, i * bytesPerLine + bytesPerLine); - let lineJ = pixels.slice(j * bytesPerLine, j * bytesPerLine + bytesPerLine); - pixels.set(lineJ, i * bytesPerLine); - pixels.set(lineI, j * bytesPerLine); - } - - let imageData = context.createImageData(width, height); - imageData.data.set(pixels); - context.putImageData(imageData, 0, 0); - - return canvas; - } - - static removeListeners(dispatcher, type){ - if (dispatcher._listeners === undefined) { - return; - } - - if (dispatcher._listeners[ type ]) { - delete dispatcher._listeners[ type ]; - } - } - - static mouseToRay(mouse, camera, width, height){ - - let normalizedMouse = { - x: (mouse.x / width) * 2 - 1, - y: -(mouse.y / height) * 2 + 1 - }; - - let vector = new THREE.Vector3(normalizedMouse.x, normalizedMouse.y, 0.5); - let origin = new THREE.Vector3(normalizedMouse.x, normalizedMouse.y, 0); - vector.unproject(camera); - origin.unproject(camera); - let direction = new THREE.Vector3().subVectors(vector, origin).normalize(); - - let ray = new THREE.Ray(origin, direction); - - return ray; - } - - static projectedRadius(radius, camera, distance, screenWidth, screenHeight){ - if(camera instanceof THREE.OrthographicCamera){ - return Utils.projectedRadiusOrtho(radius, camera.projectionMatrix, screenWidth, screenHeight); - }else if(camera instanceof THREE.PerspectiveCamera){ - return Utils.projectedRadiusPerspective(radius, camera.fov * Math.PI / 180, distance, screenHeight); - }else{ - throw new Error("invalid parameters"); - } - } - - static projectedRadiusPerspective(radius, fov, distance, screenHeight) { - let projFactor = (1 / Math.tan(fov / 2)) / distance; - projFactor = projFactor * screenHeight / 2; - - return radius * projFactor; - } - - static projectedRadiusOrtho(radius, proj, screenWidth, screenHeight) { - let p1 = new THREE.Vector4(0); - let p2 = new THREE.Vector4(radius); - - p1.applyMatrix4(proj); - p2.applyMatrix4(proj); - p1 = new THREE.Vector3(p1.x, p1.y, p1.z); - p2 = new THREE.Vector3(p2.x, p2.y, p2.z); - p1.x = (p1.x + 1.0) * 0.5 * screenWidth; - p1.y = (p1.y + 1.0) * 0.5 * screenHeight; - p2.x = (p2.x + 1.0) * 0.5 * screenWidth; - p2.y = (p2.y + 1.0) * 0.5 * screenHeight; - return p1.distanceTo(p2); - } - - - static topView(camera, node){ - camera.position.set(0, 1, 0); - camera.rotation.set(-Math.PI / 2, 0, 0); - camera.zoomTo(node, 1); - } - - static frontView (camera, node) { - camera.position.set(0, 0, 1); - camera.rotation.set(0, 0, 0); - camera.zoomTo(node, 1); - } - - static leftView (camera, node) { - camera.position.set(-1, 0, 0); - camera.rotation.set(0, -Math.PI / 2, 0); - camera.zoomTo(node, 1); - } - - static rightView (camera, node) { - camera.position.set(1, 0, 0); - camera.rotation.set(0, Math.PI / 2, 0); - camera.zoomTo(node, 1); - } - - /** - * - * 0: no intersection - * 1: intersection - * 2: fully inside - */ - static frustumSphereIntersection (frustum, sphere) { - let planes = frustum.planes; - let center = sphere.center; - let negRadius = -sphere.radius; - - let minDistance = Number.MAX_VALUE; - - for (let i = 0; i < 6; i++) { - let distance = planes[ i ].distanceToPoint(center); - - if (distance < negRadius) { - return 0; - } - - minDistance = Math.min(minDistance, distance); - } - - return (minDistance >= sphere.radius) ? 2 : 1; - } - - // code taken from three.js - // ImageUtils - generateDataTexture() - static generateDataTexture (width, height, color) { - let size = width * height; - let data = new Uint8Array(4 * width * height); - - let r = Math.floor(color.r * 255); - let g = Math.floor(color.g * 255); - let b = Math.floor(color.b * 255); - - for (let i = 0; i < size; i++) { - data[ i * 3 ] = r; - data[ i * 3 + 1 ] = g; - data[ i * 3 + 2 ] = b; - } - - let texture = new THREE.DataTexture(data, width, height, THREE.RGBAFormat); - texture.needsUpdate = true; - texture.magFilter = THREE.NearestFilter; - - return texture; - } - - // from http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript - static getParameterByName (name) { - name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]'); - let regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); - let results = regex.exec(document.location.search); - return results === null ? null : decodeURIComponent(results[1].replace(/\+/g, ' ')); - } - - static setParameter (name, value) { - // value = encodeURIComponent(value); - - name = name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]'); - let regex = new RegExp('([\\?&])(' + name + '=([^&#]*))'); - let results = regex.exec(document.location.search); - - let url = window.location.href; - if (results === null) { - if (window.location.search.length === 0) { - url = url + '?'; - } else { - url = url + '&'; - } - - url = url + name + '=' + value; - } else { - let newValue = name + '=' + value; - url = url.replace(results[2], newValue); - } - window.history.replaceState({}, '', url); - } - - static createChildAABB(aabb, index){ - let min = aabb.min.clone(); - let max = aabb.max.clone(); - let size = new THREE.Vector3().subVectors(max, min); - - if ((index & 0b0001) > 0) { - min.z += size.z / 2; - } else { - max.z -= size.z / 2; - } - - if ((index & 0b0010) > 0) { - min.y += size.y / 2; - } else { - max.y -= size.y / 2; - } - - if ((index & 0b0100) > 0) { - min.x += size.x / 2; - } else { - max.x -= size.x / 2; - } - - return new THREE.Box3(min, max); - } - - // see https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript - static clipboardCopy(text){ - let textArea = document.createElement("textarea"); - - textArea.style.position = 'fixed'; - textArea.style.top = 0; - textArea.style.left = 0; - - textArea.style.width = '2em'; - textArea.style.height = '2em'; - - textArea.style.padding = 0; - - textArea.style.border = 'none'; - textArea.style.outline = 'none'; - textArea.style.boxShadow = 'none'; - - textArea.style.background = 'transparent'; - - textArea.value = text; - - document.body.appendChild(textArea); - - textArea.select(); - - try { - let success = document.execCommand('copy'); - if(success){ - console.log("copied text to clipboard"); - }else{ - console.log("copy to clipboard failed"); - } - } catch (err) { - console.log("error while trying to copy to clipboard"); - } - - document.body.removeChild(textArea); - - } - - static getMeasurementIcon(measurement){ - if (measurement instanceof Measure) { - if (measurement.showDistances && !measurement.showArea && !measurement.showAngles) { - return `${Potree.resourcePath}/icons/distance.svg`; - } else if (measurement.showDistances && measurement.showArea && !measurement.showAngles) { - return `${Potree.resourcePath}/icons/area.svg`; - } else if (measurement.maxMarkers === 1) { - return `${Potree.resourcePath}/icons/point.svg`; - } else if (!measurement.showDistances && !measurement.showArea && measurement.showAngles) { - return `${Potree.resourcePath}/icons/angle.png`; - } else if (measurement.showHeight) { - return `${Potree.resourcePath}/icons/height.svg`; - } else { - return `${Potree.resourcePath}/icons/distance.svg`; - } - } else if (measurement instanceof Profile) { - return `${Potree.resourcePath}/icons/profile.svg`; - } else if (measurement instanceof Volume) { - return `${Potree.resourcePath}/icons/volume.svg`; - } else if (measurement instanceof PolygonClipVolume) { - return `${Potree.resourcePath}/icons/clip-polygon.svg`; - } - } - - static toMaterialID(materialName){ - if (materialName === 'RGB'){ - return PointColorType.RGB; - } else if (materialName === 'Color') { - return PointColorType.COLOR; - } else if (materialName === 'Elevation') { - return PointColorType.HEIGHT; - } else if (materialName === 'Intensity') { - return PointColorType.INTENSITY; - } else if (materialName === 'Intensity Gradient') { - return PointColorType.INTENSITY_GRADIENT; - } else if (materialName === 'Classification') { - return PointColorType.CLASSIFICATION; - } else if (materialName === 'Return Number') { - return PointColorType.RETURN_NUMBER; - } else if (materialName === 'Source') { - return PointColorType.SOURCE; - } else if (materialName === 'Level of Detail') { - return PointColorType.LOD; - } else if (materialName === 'Point Index') { - return PointColorType.POINT_INDEX; - } else if (materialName === 'Normal') { - return PointColorType.NORMAL; - } else if (materialName === 'Phong') { - return PointColorType.PHONG; - } else if (materialName === 'Index') { - return PointColorType.POINT_INDEX; - } else if (materialName === 'RGB and Elevation') { - return PointColorType.RGB_HEIGHT; - } else if (materialName === 'Composite') { - return PointColorType.COMPOSITE; - } else if (materialName === 'GPS Time') { - return PointColorType.GPS_TIME; - } - }; - - - static toMaterialName(materialID) { - if (materialID === PointColorType.RGB) { - return 'RGB'; - } else if (materialID === PointColorType.COLOR) { - return 'Color'; - } else if (materialID === PointColorType.HEIGHT) { - return 'Elevation'; - } else if (materialID === PointColorType.INTENSITY) { - return 'Intensity'; - } else if (materialID === PointColorType.INTENSITY_GRADIENT) { - return 'Intensity Gradient'; - } else if (materialID === PointColorType.CLASSIFICATION) { - return 'Classification'; - } else if (materialID === PointColorType.RETURN_NUMBER) { - return 'Return Number'; - } else if (materialID === PointColorType.SOURCE) { - return 'Source'; - } else if (materialID === PointColorType.LOD) { - return 'Level of Detail'; - } else if (materialID === PointColorType.NORMAL) { - return 'Normal'; - } else if (materialID === PointColorType.PHONG) { - return 'Phong'; - } else if (materialID === PointColorType.POINT_INDEX) { - return 'Index'; - } else if (materialID === PointColorType.RGB_HEIGHT) { - return 'RGB and Elevation'; - } else if (materialID === PointColorType.COMPOSITE) { - return 'Composite'; - } else if (materialID === PointColorType.GPS_TIME) { - return 'GPS Time'; - } - }; - -} - -Utils.screenPass = new function () { - this.screenScene = new THREE.Scene(); - this.screenQuad = new THREE.Mesh(new THREE.PlaneBufferGeometry(2, 2, 0)); - this.screenQuad.material.depthTest = true; - this.screenQuad.material.depthWrite = true; - this.screenQuad.material.transparent = true; - this.screenScene.add(this.screenQuad); - this.camera = new THREE.Camera(); - - this.render = function (renderer, material, target) { - this.screenQuad.material = material; - - if (typeof target === 'undefined') { - renderer.render(this.screenScene, this.camera); - } else { - renderer.render(this.screenScene, this.camera, target); - } - }; -}(); diff --git a/app/static/app/js/vendor/potree/src/utils/Box3Helper.js b/app/static/app/js/vendor/potree/src/utils/Box3Helper.js deleted file mode 100644 index c8e59c7a..00000000 --- a/app/static/app/js/vendor/potree/src/utils/Box3Helper.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * - * code adapted from three.js BoxHelper.js - * https://github.com/mrdoob/three.js/blob/dev/src/helpers/BoxHelper.js - * - * @author mrdoob / http://mrdoob.com/ - * @author Mugen87 / http://github.com/Mugen87 - * @author mschuetz / http://potree.org - */ - -export class Box3Helper extends THREE.LineSegments { - constructor (box, color) { - if (color === undefined) color = 0xffff00; - - let indices = new Uint16Array([ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ]); - let positions = new Float32Array([ - box.min.x, box.min.y, box.min.z, - box.max.x, box.min.y, box.min.z, - box.max.x, box.min.y, box.max.z, - box.min.x, box.min.y, box.max.z, - box.min.x, box.max.y, box.min.z, - box.max.x, box.max.y, box.min.z, - box.max.x, box.max.y, box.max.z, - box.min.x, box.max.y, box.max.z - ]); - - let geometry = new THREE.BufferGeometry(); - geometry.setIndex(new THREE.BufferAttribute(indices, 1)); - geometry.addAttribute('position', new THREE.BufferAttribute(positions, 3)); - - let material = new THREE.LineBasicMaterial({ color: color }); - - super(geometry, material); - } -} diff --git a/app/static/app/js/vendor/potree/src/utils/ClipVolume.js b/app/static/app/js/vendor/potree/src/utils/ClipVolume.js deleted file mode 100644 index 26c7a6b5..00000000 --- a/app/static/app/js/vendor/potree/src/utils/ClipVolume.js +++ /dev/null @@ -1,288 +0,0 @@ - -export class ClipVolume extends THREE.Object3D{ - - constructor(args){ - super(); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - this.name = "clip_volume_" + this.constructor.counter; - - let alpha = args.alpha || 0; - let beta = args.beta || 0; - let gamma = args.gamma || 0; - - this.rotation.x = alpha; - this.rotation.y = beta; - this.rotation.z = gamma; - - this.clipOffset = 0.001; - this.clipRotOffset = 1; - - let boxGeometry = new THREE.BoxGeometry(1, 1, 1); - boxGeometry.computeBoundingBox(); - - let boxFrameGeometry = new THREE.Geometry(); - { - // bottom - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - // top - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - // sides - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - - boxFrameGeometry.colors.push(new THREE.Vector3(1, 1, 1)); - } - - let planeFrameGeometry = new THREE.Geometry(); - { - // middle line - planeFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.0)); - planeFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.0)); - } - - this.dimension = new THREE.Vector3(1, 1, 1); - this.material = new THREE.MeshBasicMaterial( { - color: 0x00ff00, - transparent: true, - opacity: 0.3, - depthTest: true, - depthWrite: false} ); - this.box = new THREE.Mesh(boxGeometry, this.material); - this.box.geometry.computeBoundingBox(); - this.boundingBox = this.box.geometry.boundingBox; - this.add(this.box); - - this.frame = new THREE.LineSegments( boxFrameGeometry, new THREE.LineBasicMaterial({color: 0x000000})); - this.add(this.frame); - this.planeFrame = new THREE.LineSegments( planeFrameGeometry, new THREE.LineBasicMaterial({color: 0xff0000})); - this.add(this.planeFrame); - - // set default thickness - this.setScaleZ(0.1); - - // create local coordinate system - let createArrow = (name, direction, color) => { - let material = new THREE.MeshBasicMaterial({ - color: color, - depthTest: false, - depthWrite: false}); - - let shaftGeometry = new THREE.Geometry(); - shaftGeometry.vertices.push(new THREE.Vector3(0, 0, 0)); - shaftGeometry.vertices.push(new THREE.Vector3(0, 1, 0)); - - let shaftMaterial = new THREE.LineBasicMaterial({ - color: color, - depthTest: false, - depthWrite: false, - transparent: true - }); - let shaft = new THREE.Line(shaftGeometry, shaftMaterial); - shaft.name = name + "_shaft"; - - let headGeometry = new THREE.CylinderGeometry(0, 0.04, 0.1, 10, 1, false); - let headMaterial = material; - let head = new THREE.Mesh(headGeometry, headMaterial); - head.name = name + "_head"; - head.position.y = 1; - - let arrow = new THREE.Object3D(); - arrow.name = name; - arrow.add(shaft); - arrow.add(head); - - return arrow; - }; - - this.arrowX = createArrow("arrow_x", new THREE.Vector3(1, 0, 0), 0xFF0000); - this.arrowY = createArrow("arrow_y", new THREE.Vector3(0, 1, 0), 0x00FF00); - this.arrowZ = createArrow("arrow_z", new THREE.Vector3(0, 0, 1), 0x0000FF); - - this.arrowX.rotation.z = -Math.PI / 2; - this.arrowZ.rotation.x = Math.PI / 2; - - this.arrowX.visible = false; - this.arrowY.visible = false; - this.arrowZ.visible = false; - - this.add(this.arrowX); - this.add(this.arrowY); - this.add(this.arrowZ); - - { // event listeners - this.addEventListener("ui_select", e => { - this.arrowX.visible = true; - this.arrowY.visible = true; - this.arrowZ.visible = true; - }); - this.addEventListener("ui_deselect", e => { - this.arrowX.visible = false; - this.arrowY.visible = false; - this.arrowZ.visible = false; - }); - this.addEventListener("select", e => { - let scene_header = $("#" + this.name + " .scene_header"); - if(!scene_header.next().is(":visible")) { - scene_header.click(); - } - }); - this.addEventListener("deselect", e => { - let scene_header = $("#" + this.name + " .scene_header"); - if(scene_header.next().is(":visible")) { - scene_header.click(); - } - }); - } - - this.update(); - }; - - setClipOffset(offset) { - this.clipOffset = offset; - } - - setClipRotOffset(offset) { - this.clipRotOffset = offset; - } - - setScaleX(x) { - this.box.scale.x = x; - this.frame.scale.x = x; - this.planeFrame.scale.x = x; - } - - setScaleY(y) { - this.box.scale.y = y; - this.frame.scale.y = y; - this.planeFrame.scale.y = y; - } - - setScaleZ(z) { - this.box.scale.z = z; - this.frame.scale.z = z; - this.planeFrame.scale.z = z; - } - - offset(args) { - let cs = args.cs || null; - let axis = args.axis || null; - let dir = args.dir || null; - - if(!cs || !axis || !dir) return; - - if(axis === "x") { - if(cs === "local") { - this.position.add(this.localX.clone().multiplyScalar(dir * this.clipOffset)); - } else if(cs === "global") { - this.position.x = this.position.x + dir * this.clipOffset; - } - }else if(axis === "y") { - if(cs === "local") { - this.position.add(this.localY.clone().multiplyScalar(dir * this.clipOffset)); - } else if(cs === "global") { - this.position.y = this.position.y + dir * this.clipOffset; - } - }else if(axis === "z") { - if(cs === "local") { - this.position.add(this.localZ.clone().multiplyScalar(dir * this.clipOffset)); - } else if(cs === "global") { - this.position.z = this.position.z + dir * this.clipOffset; - } - } - - this.dispatchEvent({"type": "clip_volume_changed", "viewer": viewer, "volume": this}); - } - - rotate(args) { - let cs = args.cs || null; - let axis = args.axis || null; - let dir = args.dir || null; - - if(!cs || !axis || !dir) return; - - if(cs === "local") { - if(axis === "x") { - this.rotateOnAxis(new THREE.Vector3(1, 0, 0), dir * this.clipRotOffset * Math.PI / 180); - } else if(axis === "y") { - this.rotateOnAxis(new THREE.Vector3(0, 1, 0), dir * this.clipRotOffset * Math.PI / 180); - } else if(axis === "z") { - this.rotateOnAxis(new THREE.Vector3(0, 0, 1), dir * this.clipRotOffset * Math.PI / 180); - } - } else if(cs === "global") { - let rotaxis = new THREE.Vector4(1, 0, 0, 0); - if(axis === "y") { - rotaxis = new THREE.Vector4(0, 1, 0, 0); - } else if(axis === "z") { - rotaxis = new THREE.Vector4(0, 0, 1, 0); - } - this.updateMatrixWorld(); - let invM = new THREE.Matrix4().getInverse(this.matrixWorld); - rotaxis = rotaxis.applyMatrix4(invM).normalize(); - rotaxis = new THREE.Vector3(rotaxis.x, rotaxis.y, rotaxis.z); - this.rotateOnAxis(rotaxis, dir * this.clipRotOffset * Math.PI / 180); - } - - this.updateLocalSystem(); - - this.dispatchEvent({"type": "clip_volume_changed", "viewer": viewer, "volume": this}); - } - - update(){ - this.boundingBox = this.box.geometry.boundingBox; - this.boundingSphere = this.boundingBox.getBoundingSphere(new THREE.Sphere()); - - this.box.visible = false; - - this.updateLocalSystem(); - }; - - updateLocalSystem() { - // extract local coordinate axes - let rotQuat = this.getWorldQuaternion(); - this.localX = new THREE.Vector3(1, 0, 0).applyQuaternion(rotQuat).normalize(); - this.localY = new THREE.Vector3(0, 1, 0).applyQuaternion(rotQuat).normalize(); - this.localZ = new THREE.Vector3(0, 0, 1).applyQuaternion(rotQuat).normalize(); - } - - raycast(raycaster, intersects){ - - let is = []; - this.box.raycast(raycaster, is); - - if(is.length > 0){ - let I = is[0]; - intersects.push({ - distance: I.distance, - object: this, - point: I.point.clone() - }); - } - }; -}; diff --git a/app/static/app/js/vendor/potree/src/utils/ClippingTool.js b/app/static/app/js/vendor/potree/src/utils/ClippingTool.js deleted file mode 100644 index d907f2dc..00000000 --- a/app/static/app/js/vendor/potree/src/utils/ClippingTool.js +++ /dev/null @@ -1,170 +0,0 @@ -import {ClipVolume} from "./ClipVolume.js"; -import {PolygonClipVolume} from "./PolygonClipVolume.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - -export class ClippingTool extends EventDispatcher{ - - constructor(viewer){ - super(); - - this.viewer = viewer; - - this.maxPolygonVertices = 8; - - this.addEventListener("start_inserting_clipping_volume", e => { - this.viewer.dispatchEvent({ - type: "cancel_insertions" - }); - }); - - this.sceneMarker = new THREE.Scene(); - this.sceneVolume = new THREE.Scene(); - this.sceneVolume.name = "scene_clip_volume"; - this.viewer.inputHandler.registerInteractiveScene(this.sceneVolume); - - this.onRemove = e => { - this.sceneVolume.remove(e.volume); - }; - - this.onAdd = e => { - this.sceneVolume.add(e.volume); - }; - - this.viewer.inputHandler.addEventListener("delete", e => { - let volumes = e.selection.filter(e => (e instanceof ClipVolume)); - volumes.forEach(e => this.viewer.scene.removeClipVolume(e)); - let polyVolumes = e.selection.filter(e => (e instanceof PolygonClipVolume)); - polyVolumes.forEach(e => this.viewer.scene.removePolygonClipVolume(e)); - }); - } - - setScene(scene){ - if(this.scene === scene){ - return; - } - - if(this.scene){ - this.scene.removeEventListeners("clip_volume_added", this.onAdd); - this.scene.removeEventListeners("clip_volume_removed", this.onRemove); - this.scene.removeEventListeners("polygon_clip_volume_added", this.onAdd); - this.scene.removeEventListeners("polygon_clip_volume_removed", this.onRemove); - } - - this.scene = scene; - - this.scene.addEventListener("clip_volume_added", this.onAdd); - this.scene.addEventListener("clip_volume_removed", this.onRemove); - this.scene.addEventListener("polygon_clip_volume_added", this.onAdd); - this.scene.addEventListener("polygon_clip_volume_removed", this.onRemove); - } - - startInsertion(args = {}) { - let type = args.type || null; - - if(!type) return null; - - let domElement = this.viewer.renderer.domElement; - let canvasSize = this.viewer.renderer.getSize(); - - let svg = $(` - - - - - - - - - - - - `); - $(domElement.parentElement).append(svg); - - let polyClipVol = new PolygonClipVolume(this.viewer.scene.getActiveCamera().clone()); - - this.dispatchEvent({"type": "start_inserting_clipping_volume"}); - - this.viewer.scene.addPolygonClipVolume(polyClipVol); - this.sceneMarker.add(polyClipVol); - - let cancel = { - callback: null - }; - - let insertionCallback = (e) => { - if(e.button === THREE.MOUSE.LEFT){ - - polyClipVol.addMarker(); - - // SVC Screen Line - svg.find("polyline").each((index, target) => { - let newPoint = svg[0].createSVGPoint(); - newPoint.x = e.offsetX; - newPoint.y = e.offsetY; - let polyline = target.points.appendItem(newPoint); - }); - - - if(polyClipVol.markers.length > this.maxPolygonVertices){ - cancel.callback(); - } - - this.viewer.inputHandler.startDragging( - polyClipVol.markers[polyClipVol.markers.length - 1]); - }else if(e.button === THREE.MOUSE.RIGHT){ - cancel.callback(e); - } - }; - - cancel.callback = e => { - - //let first = svg.find("polyline")[0].points[0]; - //svg.find("polyline").each((index, target) => { - // let newPoint = svg[0].createSVGPoint(); - // newPoint.x = first.x; - // newPoint.y = first.y; - // let polyline = target.points.appendItem(newPoint); - //}); - svg.remove(); - - if(polyClipVol.markers.length > 3) { - polyClipVol.removeLastMarker(); - polyClipVol.initialized = true; - } else { - this.viewer.scene.removePolygonClipVolume(polyClipVol); - } - - this.viewer.renderer.domElement.removeEventListener("mouseup", insertionCallback, true); - this.viewer.removeEventListener("cancel_insertions", cancel.callback); - this.viewer.inputHandler.enabled = true; - }; - - this.viewer.addEventListener("cancel_insertions", cancel.callback); - this.viewer.renderer.domElement.addEventListener("mouseup", insertionCallback , true); - this.viewer.inputHandler.enabled = false; - - polyClipVol.addMarker(); - this.viewer.inputHandler.startDragging( - polyClipVol.markers[polyClipVol.markers.length - 1]); - - return polyClipVol; - } - - update() { - - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/GeoTIFF.js b/app/static/app/js/vendor/potree/src/utils/GeoTIFF.js deleted file mode 100644 index b18f7b01..00000000 --- a/app/static/app/js/vendor/potree/src/utils/GeoTIFF.js +++ /dev/null @@ -1,366 +0,0 @@ - -import {Enum} from "../Enum"; - -var GeoTIFF = (function (exports) { -'use strict'; - -const Endianness = new Enum({ - LITTLE: "II", - BIG: "MM", -}); - -const Type = new Enum({ - BYTE: {value: 1, bytes: 1}, - ASCII: {value: 2, bytes: 1}, - SHORT: {value: 3, bytes: 2}, - LONG: {value: 4, bytes: 4}, - RATIONAL: {value: 5, bytes: 8}, - SBYTE: {value: 6, bytes: 1}, - UNDEFINED: {value: 7, bytes: 1}, - SSHORT: {value: 8, bytes: 2}, - SLONG: {value: 9, bytes: 4}, - SRATIONAL: {value: 10, bytes: 8}, - FLOAT: {value: 11, bytes: 4}, - DOUBLE: {value: 12, bytes: 8}, -}); - -const Tag = new Enum({ - IMAGE_WIDTH: 256, - IMAGE_HEIGHT: 257, - BITS_PER_SAMPLE: 258, - COMPRESSION: 259, - PHOTOMETRIC_INTERPRETATION: 262, - STRIP_OFFSETS: 273, - ORIENTATION: 274, - SAMPLES_PER_PIXEL: 277, - ROWS_PER_STRIP: 278, - STRIP_BYTE_COUNTS: 279, - X_RESOLUTION: 282, - Y_RESOLUTION: 283, - PLANAR_CONFIGURATION: 284, - RESOLUTION_UNIT: 296, - SOFTWARE: 305, - COLOR_MAP: 320, - SAMPLE_FORMAT: 339, - MODEL_PIXEL_SCALE: 33550, // [GeoTIFF] TYPE: double N: 3 - MODEL_TIEPOINT: 33922, // [GeoTIFF] TYPE: double N: 6 * NUM_TIEPOINTS - GEO_KEY_DIRECTORY: 34735, // [GeoTIFF] TYPE: short N: >= 4 - GEO_DOUBLE_PARAMS: 34736, // [GeoTIFF] TYPE: short N: variable - GEO_ASCII_PARAMS: 34737, // [GeoTIFF] TYPE: ascii N: variable -}); - -const typeMapping = new Map([ - [Type.BYTE, Uint8Array], - [Type.ASCII, Uint8Array], - [Type.SHORT, Uint16Array], - [Type.LONG, Uint32Array], - [Type.RATIONAL, Uint32Array], - [Type.SBYTE, Int8Array], - [Type.UNDEFINED, Uint8Array], - [Type.SSHORT, Int16Array], - [Type.SLONG, Int32Array], - [Type.SRATIONAL, Int32Array], - [Type.FLOAT, Float32Array], - [Type.DOUBLE, Float64Array], -]); - -class IFDEntry{ - - constructor(tag, type, count, offset, value){ - this.tag = tag; - this.type = type; - this.count = count; - this.offset = offset; - this.value = value; - } - -} - -class Image{ - - constructor(){ - this.width = 0; - this.height = 0; - this.buffer = null; - this.metadata = []; - } - -} - -class Reader{ - - constructor(){ - - } - - static read(data){ - - let endiannessTag = String.fromCharCode(...Array.from(data.slice(0, 2))); - let endianness = Endianness.fromValue(endiannessTag); - - let tiffCheckTag = data.readUInt8(2); - - if(tiffCheckTag !== 42){ - throw new Error("not a valid tiff file"); - } - - let offsetToFirstIFD = data.readUInt32LE(4); - - console.log("offsetToFirstIFD", offsetToFirstIFD); - - let ifds = []; - let IFDsRead = false; - let currentIFDOffset = offsetToFirstIFD; - let i = 0; - while(IFDsRead || i < 100){ - - console.log("currentIFDOffset", currentIFDOffset); - let numEntries = data.readUInt16LE(currentIFDOffset); - let nextIFDOffset = data.readUInt32LE(currentIFDOffset + 2 + numEntries * 12); - - console.log("next offset: ", currentIFDOffset + 2 + numEntries * 12); - - let entryBuffer = data.slice(currentIFDOffset + 2, currentIFDOffset + 2 + 12 * numEntries); - - for(let i = 0; i < numEntries; i++){ - let tag = Tag.fromValue(entryBuffer.readUInt16LE(i * 12)); - let type = Type.fromValue(entryBuffer.readUInt16LE(i * 12 + 2)); - let count = entryBuffer.readUInt32LE(i * 12 + 4); - let offsetOrValue = entryBuffer.readUInt32LE(i * 12 + 8); - let valueBytes = type.bytes * count; - - let value; - if(valueBytes <= 4){ - value = offsetOrValue; - }else{ - let valueBuffer = new Uint8Array(valueBytes); - valueBuffer.set(data.slice(offsetOrValue, offsetOrValue + valueBytes)); - - let ArrayType = typeMapping.get(type); - - value = new ArrayType(valueBuffer.buffer); - - if(type === Type.ASCII){ - value = String.fromCharCode(...value); - } - } - - let ifd = new IFDEntry(tag, type, count, offsetOrValue, value); - - ifds.push(ifd); - } - - console.log("nextIFDOffset", nextIFDOffset); - - if(nextIFDOffset === 0){ - break; - } - - currentIFDOffset = nextIFDOffset; - i++; - } - - let ifdForTag = (tag) => { - for(let entry of ifds){ - if(entry.tag === tag){ - return entry; - } - } - - return null; - }; - - let width = ifdForTag(Tag.IMAGE_WIDTH, ifds).value; - let height = ifdForTag(Tag.IMAGE_HEIGHT, ifds).value; - let compression = ifdForTag(Tag.COMPRESSION, ifds).value; - let rowsPerStrip = ifdForTag(Tag.ROWS_PER_STRIP, ifds).value; - let ifdStripOffsets = ifdForTag(Tag.STRIP_OFFSETS, ifds); - let ifdStripByteCounts = ifdForTag(Tag.STRIP_BYTE_COUNTS, ifds); - - let numStrips = Math.ceil(height / rowsPerStrip); - - let stripByteCounts = []; - for(let i = 0; i < ifdStripByteCounts.count; i++){ - let type = ifdStripByteCounts.type; - let offset = ifdStripByteCounts.offset + i * type.bytes; - - let value; - if(type === Type.SHORT){ - value = data.readUInt16LE(offset); - }else if(type === Type.LONG){ - value = data.readUInt32LE(offset); - } - - stripByteCounts.push(value); - } - - let stripOffsets = []; - for(let i = 0; i < ifdStripOffsets.count; i++){ - let type = ifdStripOffsets.type; - let offset = ifdStripOffsets.offset + i * type.bytes; - - let value; - if(type === Type.SHORT){ - value = data.readUInt16LE(offset); - }else if(type === Type.LONG){ - value = data.readUInt32LE(offset); - } - - stripOffsets.push(value); - } - - let imageBuffer = new Uint8Array(width * height * 3); - - let linesProcessed = 0; - for(let i = 0; i < numStrips; i++){ - let stripOffset = stripOffsets[i]; - let stripBytes = stripByteCounts[i]; - let stripData = data.slice(stripOffset, stripOffset + stripBytes); - let lineBytes = width * 3; - for(let y = 0; y < rowsPerStrip; y++){ - let line = stripData.slice(y * lineBytes, y * lineBytes + lineBytes); - imageBuffer.set(line, linesProcessed * lineBytes); - - if(line.length === lineBytes){ - linesProcessed++; - }else{ - break; - } - } - } - - console.log(`width: ${width}`); - console.log(`height: ${height}`); - console.log(`numStrips: ${numStrips}`); - console.log("stripByteCounts", stripByteCounts.join(", ")); - console.log("stripOffsets", stripOffsets.join(", ")); - - let image = new Image(); - image.width = width; - image.height = height; - image.buffer = imageBuffer; - image.metadata = ifds; - - return image; - } - -} - - -class Exporter{ - - constructor(){ - - } - - static toTiffBuffer(image, params = {}){ - - let offsetToFirstIFD = 8; - - let headerBuffer = new Uint8Array([0x49, 0x49, 42, 0, offsetToFirstIFD, 0, 0, 0]); - - let [width, height] = [image.width, image.height]; - - let ifds = [ - new IFDEntry(Tag.IMAGE_WIDTH, Type.SHORT, 1, null, width), - new IFDEntry(Tag.IMAGE_HEIGHT, Type.SHORT, 1, null, height), - new IFDEntry(Tag.BITS_PER_SAMPLE, Type.SHORT, 4, null, new Uint16Array([8, 8, 8, 8])), - new IFDEntry(Tag.COMPRESSION, Type.SHORT, 1, null, 1), - new IFDEntry(Tag.PHOTOMETRIC_INTERPRETATION, Type.SHORT, 1, null, 2), - new IFDEntry(Tag.ORIENTATION, Type.SHORT, 1, null, 1), - new IFDEntry(Tag.SAMPLES_PER_PIXEL, Type.SHORT, 1, null, 4), - new IFDEntry(Tag.ROWS_PER_STRIP, Type.LONG, 1, null, height), - new IFDEntry(Tag.STRIP_BYTE_COUNTS, Type.LONG, 1, null, width * height * 3), - new IFDEntry(Tag.PLANAR_CONFIGURATION, Type.SHORT, 1, null, 1), - new IFDEntry(Tag.RESOLUTION_UNIT, Type.SHORT, 1, null, 1), - new IFDEntry(Tag.SOFTWARE, Type.ASCII, 6, null, "......"), - new IFDEntry(Tag.STRIP_OFFSETS, Type.LONG, 1, null, null), - new IFDEntry(Tag.X_RESOLUTION, Type.RATIONAL, 1, null, new Uint32Array([1, 1])), - new IFDEntry(Tag.Y_RESOLUTION, Type.RATIONAL, 1, null, new Uint32Array([1, 1])), - ]; - - if(params.ifdEntries){ - ifds.push(...params.ifdEntries); - } - - let valueOffset = offsetToFirstIFD + 2 + ifds.length * 12 + 4; - - // create 12 byte buffer for each ifd and variable length buffers for ifd values - let ifdEntryBuffers = new Map(); - let ifdValueBuffers = new Map(); - for(let ifd of ifds){ - let entryBuffer = new ArrayBuffer(12); - let entryView = new DataView(entryBuffer); - - let valueBytes = ifd.type.bytes * ifd.count; - - entryView.setUint16(0, ifd.tag.value, true); - entryView.setUint16(2, ifd.type.value, true); - entryView.setUint32(4, ifd.count, true); - - if(ifd.count === 1 && ifd.type.bytes <= 4){ - entryView.setUint32(8, ifd.value, true); - }else{ - entryView.setUint32(8, valueOffset, true); - - let valueBuffer = new Uint8Array(ifd.count * ifd.type.bytes); - if(ifd.type === Type.ASCII){ - valueBuffer.set(new Uint8Array(ifd.value.split("").map(c => c.charCodeAt(0)))); - }else{ - valueBuffer.set(new Uint8Array(ifd.value.buffer)); - } - ifdValueBuffers.set(ifd.tag, valueBuffer); - - valueOffset = valueOffset + valueBuffer.byteLength; - } - - ifdEntryBuffers.set(ifd.tag, entryBuffer); - } - - let imageBufferOffset = valueOffset; - - new DataView(ifdEntryBuffers.get(Tag.STRIP_OFFSETS)).setUint32(8, imageBufferOffset, true); - - let concatBuffers = (buffers) => { - - let totalLength = buffers.reduce( (sum, buffer) => (sum + buffer.byteLength), 0); - let merged = new Uint8Array(totalLength); - - let offset = 0; - for(let buffer of buffers){ - merged.set(new Uint8Array(buffer), offset); - offset += buffer.byteLength; - } - - return merged; - }; - - let ifdBuffer = concatBuffers([ - new Uint16Array([ifds.length]), - ...ifdEntryBuffers.values(), - new Uint32Array([0])]); - let ifdValueBuffer = concatBuffers([...ifdValueBuffers.values()]); - - let tiffBuffer = concatBuffers([ - headerBuffer, - ifdBuffer, - ifdValueBuffer, - image.buffer - ]); - - return {width: width, height: height, buffer: tiffBuffer}; - } - -} - -const exp = {}; -exp.Tag = Tag; -exp.Type = Type; -exp.IFDEntry = IFDEntry; -exp.Image = Image; -exp.Reader = Reader; -exp.Exporter = Exporter; - -return exp; - -}({})); diff --git a/app/static/app/js/vendor/potree/src/utils/Measure.js b/app/static/app/js/vendor/potree/src/utils/Measure.js deleted file mode 100644 index f428796b..00000000 --- a/app/static/app/js/vendor/potree/src/utils/Measure.js +++ /dev/null @@ -1,522 +0,0 @@ -import {TextSprite} from "../TextSprite.js"; -import {Utils} from "../utils.js"; - - -export class Measure extends THREE.Object3D { - constructor () { - super(); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - - this.name = 'Measure_' + this.constructor.counter; - this.points = []; - this._showDistances = true; - this._showCoordinates = false; - this._showArea = false; - this._closed = true; - this._showAngles = false; - this._showHeight = false; - this.maxMarkers = Number.MAX_SAFE_INTEGER; - - this.sphereGeometry = new THREE.SphereGeometry(0.4, 10, 10); - this.color = new THREE.Color(0xff0000); - - this.lengthUnit = {code: 'm'}; - - this.spheres = []; - this.edges = []; - this.sphereLabels = []; - this.edgeLabels = []; - this.angleLabels = []; - this.coordinateLabels = []; - - // this.heightEdge; - // this.heightLabel; - { // height stuff - { // height line - let lineGeometry = new THREE.Geometry(); - lineGeometry.vertices.push( - new THREE.Vector3(), - new THREE.Vector3(), - new THREE.Vector3(), - new THREE.Vector3()); - lineGeometry.colors.push(this.color, this.color, this.color); - let lineMaterial = new THREE.LineDashedMaterial( - { color: 0xff0000, dashSize: 5, gapSize: 2 }); - - lineMaterial.depthTest = false; - this.heightEdge = new THREE.Line(lineGeometry, lineMaterial); - this.heightEdge.visible = false; - - this.add(this.heightEdge); - } - - { // height label - this.heightLabel = new TextSprite(''); - this.heightLabel.setBorderColor({r: 0, g: 0, b: 0, a: 0.8}); - this.heightLabel.setBackgroundColor({r: 0, g: 0, b: 0, a: 0.3}); - this.heightLabel.setTextColor({r: 180, g: 220, b: 180, a: 1.0}); - this.heightLabel.material.depthTest = false; - this.heightLabel.material.opacity = 1; - this.heightLabel.visible = false; ; - this.add(this.heightLabel); - } - } - - this.areaLabel = new TextSprite(''); - this.areaLabel.setBorderColor({r: 0, g: 0, b: 0, a: 0.8}); - this.areaLabel.setBackgroundColor({r: 0, g: 0, b: 0, a: 0.3}); - this.areaLabel.setTextColor({r: 180, g: 220, b: 180, a: 1.0}); - this.areaLabel.material.depthTest = false; - this.areaLabel.material.opacity = 1; - this.areaLabel.visible = false; ; - this.add(this.areaLabel); - } - - createSphereMaterial () { - let sphereMaterial = new THREE.MeshLambertMaterial({ - //shading: THREE.SmoothShading, - color: this.color, - depthTest: false, - depthWrite: false} - ); - - return sphereMaterial; - }; - - addMarker (point) { - if (point instanceof THREE.Vector3) { - point = {position: point}; - }else if(point instanceof Array){ - point = {position: new THREE.Vector3(...point)}; - } - this.points.push(point); - - // sphere - let sphere = new THREE.Mesh(this.sphereGeometry, this.createSphereMaterial()); - - this.add(sphere); - this.spheres.push(sphere); - - { // edges - let lineGeometry = new THREE.Geometry(); - lineGeometry.vertices.push(new THREE.Vector3(), new THREE.Vector3()); - lineGeometry.colors.push(this.color, this.color, this.color); - let lineMaterial = new THREE.LineBasicMaterial({ - linewidth: 1 - }); - lineMaterial.depthTest = false; - let edge = new THREE.Line(lineGeometry, lineMaterial); - edge.visible = true; - - this.add(edge); - this.edges.push(edge); - } - - { // edge labels - let edgeLabel = new TextSprite(); - edgeLabel.setBorderColor({r: 0, g: 0, b: 0, a: 0.8}); - edgeLabel.setBackgroundColor({r: 0, g: 0, b: 0, a: 0.3}); - edgeLabel.material.depthTest = false; - edgeLabel.visible = false; - this.edgeLabels.push(edgeLabel); - this.add(edgeLabel); - } - - { // angle labels - let angleLabel = new TextSprite(); - angleLabel.setBorderColor({r: 0, g: 0, b: 0, a: 0.8}); - angleLabel.setBackgroundColor({r: 0, g: 0, b: 0, a: 0.3}); - angleLabel.material.depthTest = false; - angleLabel.material.opacity = 1; - angleLabel.visible = false; - this.angleLabels.push(angleLabel); - this.add(angleLabel); - } - - { // coordinate labels - let coordinateLabel = new TextSprite(); - coordinateLabel.setBorderColor({r: 0, g: 0, b: 0, a: 0.8}); - coordinateLabel.setBackgroundColor({r: 0, g: 0, b: 0, a: 0.3}); - coordinateLabel.material.depthTest = false; - coordinateLabel.material.opacity = 1; - coordinateLabel.visible = false; - this.coordinateLabels.push(coordinateLabel); - this.add(coordinateLabel); - } - - { // Event Listeners - let drag = (e) => { - let I = Utils.getMousePointCloudIntersection( - e.drag.end, - e.viewer.scene.getActiveCamera(), - e.viewer, - e.viewer.scene.pointclouds, - {pickClipped: true}); - - if (I) { - let i = this.spheres.indexOf(e.drag.object); - if (i !== -1) { - let point = this.points[i]; - for (let key of Object.keys(I.point).filter(e => e !== 'position')) { - point[key] = I.point[key]; - } - - this.setPosition(i, I.location); - } - } - }; - - let drop = e => { - let i = this.spheres.indexOf(e.drag.object); - if (i !== -1) { - this.dispatchEvent({ - 'type': 'marker_dropped', - 'measurement': this, - 'index': i - }); - } - }; - - let mouseover = (e) => e.object.material.emissive.setHex(0x888888); - let mouseleave = (e) => e.object.material.emissive.setHex(0x000000); - - sphere.addEventListener('drag', drag); - sphere.addEventListener('drop', drop); - sphere.addEventListener('mouseover', mouseover); - sphere.addEventListener('mouseleave', mouseleave); - } - - let event = { - type: 'marker_added', - measurement: this, - sphere: sphere - }; - this.dispatchEvent(event); - - this.setMarker(this.points.length - 1, point); - }; - - removeMarker (index) { - this.points.splice(index, 1); - - this.remove(this.spheres[index]); - - let edgeIndex = (index === 0) ? 0 : (index - 1); - this.remove(this.edges[edgeIndex]); - this.edges.splice(edgeIndex, 1); - - this.remove(this.edgeLabels[edgeIndex]); - this.edgeLabels.splice(edgeIndex, 1); - this.coordinateLabels.splice(index, 1); - - this.spheres.splice(index, 1); - - this.update(); - - this.dispatchEvent({type: 'marker_removed', measurement: this}); - }; - - setMarker (index, point) { - this.points[index] = point; - - let event = { - type: 'marker_moved', - measure: this, - index: index, - position: point.position.clone() - }; - this.dispatchEvent(event); - - this.update(); - } - - setPosition (index, position) { - let point = this.points[index]; - point.position.copy(position); - - let event = { - type: 'marker_moved', - measure: this, - index: index, - position: position.clone() - }; - this.dispatchEvent(event); - - this.update(); - }; - - getArea () { - let area = 0; - let j = this.points.length - 1; - - for (let i = 0; i < this.points.length; i++) { - let p1 = this.points[i].position; - let p2 = this.points[j].position; - area += (p2.x + p1.x) * (p1.y - p2.y); - j = i; - } - - return Math.abs(area / 2); - }; - - getTotalDistance () { - if (this.points.length === 0) { - return 0; - } - - let distance = 0; - - for (let i = 1; i < this.points.length; i++) { - let prev = this.points[i - 1].position; - let curr = this.points[i].position; - let d = prev.distanceTo(curr); - - distance += d; - } - - if (this.closed && this.points.length > 1) { - let first = this.points[0].position; - let last = this.points[this.points.length - 1].position; - let d = last.distanceTo(first); - - distance += d; - } - - return distance; - } - - getAngleBetweenLines (cornerPoint, point1, point2) { - let v1 = new THREE.Vector3().subVectors(point1.position, cornerPoint.position); - let v2 = new THREE.Vector3().subVectors(point2.position, cornerPoint.position); - return v1.angleTo(v2); - }; - - getAngle (index) { - if (this.points.length < 3 || index >= this.points.length) { - return 0; - } - - let previous = (index === 0) ? this.points[this.points.length - 1] : this.points[index - 1]; - let point = this.points[index]; - let next = this.points[(index + 1) % (this.points.length)]; - - return this.getAngleBetweenLines(point, previous, next); - }; - - update () { - if (this.points.length === 0) { - return; - } else if (this.points.length === 1) { - let point = this.points[0]; - let position = point.position; - this.spheres[0].position.copy(position); - - { // coordinate labels - let coordinateLabel = this.coordinateLabels[0]; - - let msg = position.toArray().map(p => Utils.addCommas(p.toFixed(2))).join(" / "); - coordinateLabel.setText(msg); - - coordinateLabel.visible = this.showCoordinates; - } - - return; - } - - let lastIndex = this.points.length - 1; - - let centroid = new THREE.Vector3(); - for (let i = 0; i <= lastIndex; i++) { - let point = this.points[i]; - centroid.add(point.position); - } - centroid.divideScalar(this.points.length); - - for (let i = 0; i <= lastIndex; i++) { - let index = i; - let nextIndex = (i + 1 > lastIndex) ? 0 : i + 1; - let previousIndex = (i === 0) ? lastIndex : i - 1; - - let point = this.points[index]; - let nextPoint = this.points[nextIndex]; - let previousPoint = this.points[previousIndex]; - - let sphere = this.spheres[index]; - - // spheres - sphere.position.copy(point.position); - sphere.material.color = this.color; - - { // edges - let edge = this.edges[index]; - - edge.material.color = this.color; - - edge.position.copy(point.position); - - edge.geometry.vertices[0].set(0, 0, 0); - edge.geometry.vertices[1].copy(nextPoint.position).sub(point.position); - - edge.geometry.verticesNeedUpdate = true; - edge.geometry.computeBoundingSphere(); - edge.visible = index < lastIndex || this.closed; - } - - { // edge labels - let edgeLabel = this.edgeLabels[i]; - - let center = new THREE.Vector3().add(point.position); - center.add(nextPoint.position); - center = center.multiplyScalar(0.5); - let distance = point.position.distanceTo(nextPoint.position); - - edgeLabel.position.copy(center); - distance = distance / this.lengthUnit.unitspermeter * this.lengthUnitDisplay.unitspermeter; //convert to meters then to the display unit - edgeLabel.setText(Utils.addCommas(distance.toFixed(2)) + ' ' + this.lengthUnitDisplay.code); - edgeLabel.visible = this.showDistances && (index < lastIndex || this.closed) && this.points.length >= 2 && distance > 0; - } - - { // angle labels - let angleLabel = this.angleLabels[i]; - let angle = this.getAngleBetweenLines(point, previousPoint, nextPoint); - - let dir = nextPoint.position.clone().sub(previousPoint.position); - dir.multiplyScalar(0.5); - dir = previousPoint.position.clone().add(dir).sub(point.position).normalize(); - - let dist = Math.min(point.position.distanceTo(previousPoint.position), point.position.distanceTo(nextPoint.position)); - dist = dist / 9; - - let labelPos = point.position.clone().add(dir.multiplyScalar(dist)); - angleLabel.position.copy(labelPos); - - let msg = Utils.addCommas((angle * (180.0 / Math.PI)).toFixed(1)) + '\u00B0'; - angleLabel.setText(msg); - - angleLabel.visible = this.showAngles && (index < lastIndex || this.closed) && this.points.length >= 3 && angle > 0; - } - } - - { // update height stuff - let heightEdge = this.heightEdge; - heightEdge.visible = this.showHeight; - this.heightLabel.visible = this.showHeight; - - if (this.showHeight) { - let sorted = this.points.slice().sort((a, b) => a.position.z - b.position.z); - let lowPoint = sorted[0].position.clone(); - let highPoint = sorted[sorted.length - 1].position.clone(); - let min = lowPoint.z; - let max = highPoint.z; - let height = max - min; - - let start = new THREE.Vector3(highPoint.x, highPoint.y, min); - let end = new THREE.Vector3(highPoint.x, highPoint.y, max); - - heightEdge.position.copy(lowPoint); - - heightEdge.geometry.vertices[0].set(0, 0, 0); - heightEdge.geometry.vertices[1].copy(start).sub(lowPoint); - heightEdge.geometry.vertices[2].copy(start).sub(lowPoint); - heightEdge.geometry.vertices[3].copy(end).sub(lowPoint); - - heightEdge.geometry.verticesNeedUpdate = true; - // heightEdge.geometry.computeLineDistances(); - // heightEdge.geometry.lineDistancesNeedUpdate = true; - heightEdge.geometry.computeBoundingSphere(); - - // heightEdge.material.dashSize = height / 40; - // heightEdge.material.gapSize = height / 40; - - let heightLabelPosition = start.clone().add(end).multiplyScalar(0.5); - this.heightLabel.position.copy(heightLabelPosition); - height = height / this.lengthUnit.unitspermeter * this.lengthUnitDisplay.unitspermeter; //convert to meters then to the display unit - let msg = Utils.addCommas(height.toFixed(2)) + ' ' + this.lengthUnitDisplay.code; - this.heightLabel.setText(msg); - } - } - - { // update area label - this.areaLabel.position.copy(centroid); - this.areaLabel.visible = this.showArea && this.points.length >= 3; - let area = this.getArea(); - area = area / Math.pow(this.lengthUnit.unitspermeter, 2) * Math.pow(this.lengthUnitDisplay.unitspermeter, 2); //convert to square meters then to the square display unit - let msg = Utils.addCommas(area.toFixed(1)) + ' ' + this.lengthUnitDisplay.code + '\u00B2'; - this.areaLabel.setText(msg); - } - }; - - raycast (raycaster, intersects) { - for (let i = 0; i < this.points.length; i++) { - let sphere = this.spheres[i]; - - sphere.raycast(raycaster, intersects); - } - - // recalculate distances because they are not necessarely correct - // for scaled objects. - // see https://github.com/mrdoob/three.js/issues/5827 - // TODO: remove this once the bug has been fixed - for (let i = 0; i < intersects.length; i++) { - let I = intersects[i]; - I.distance = raycaster.ray.origin.distanceTo(I.point); - } - intersects.sort(function (a, b) { return a.distance - b.distance; }); - }; - - get showCoordinates () { - return this._showCoordinates; - } - - set showCoordinates (value) { - this._showCoordinates = value; - this.update(); - } - - get showAngles () { - return this._showAngles; - } - - set showAngles (value) { - this._showAngles = value; - this.update(); - } - - get showHeight () { - return this._showHeight; - } - - set showHeight (value) { - this._showHeight = value; - this.update(); - } - - get showArea () { - return this._showArea; - } - - set showArea (value) { - this._showArea = value; - this.update(); - } - - get closed () { - return this._closed; - } - - set closed (value) { - this._closed = value; - this.update(); - } - - get showDistances () { - return this._showDistances; - } - - set showDistances (value) { - this._showDistances = value; - this.update(); - } - -} diff --git a/app/static/app/js/vendor/potree/src/utils/MeasuringTool.js b/app/static/app/js/vendor/potree/src/utils/MeasuringTool.js deleted file mode 100644 index 11e669ca..00000000 --- a/app/static/app/js/vendor/potree/src/utils/MeasuringTool.js +++ /dev/null @@ -1,237 +0,0 @@ -import {Measure} from "./Measure.js"; -import {Utils} from "../utils.js"; -import {CameraMode} from "../defines.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - -export class MeasuringTool extends EventDispatcher{ - constructor (viewer) { - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.addEventListener('start_inserting_measurement', e => { - this.viewer.dispatchEvent({ - type: 'cancel_insertions' - }); - }); - - this.scene = new THREE.Scene(); - this.scene.name = 'scene_measurement'; - this.light = new THREE.PointLight(0xffffff, 1.0); - this.scene.add(this.light); - - this.viewer.inputHandler.registerInteractiveScene(this.scene); - - this.onRemove = (e) => { this.scene.remove(e.measurement);}; - this.onAdd = e => {this.scene.add(e.measurement);}; - - for(let measurement of viewer.scene.measurements){ - this.onAdd({measurement: measurement}); - } - - viewer.addEventListener("update", this.update.bind(this)); - viewer.addEventListener("render.pass.perspective_overlay", this.render.bind(this)); - viewer.addEventListener("scene_changed", this.onSceneChange.bind(this)); - - viewer.scene.addEventListener('measurement_added', this.onAdd); - viewer.scene.addEventListener('measurement_removed', this.onRemove); - } - - onSceneChange(e){ - if(e.oldScene){ - e.oldScene.removeEventListener('measurement_added', this.onAdd); - e.oldScene.removeEventListener('measurement_removed', this.onRemove); - } - - e.scene.addEventListener('measurement_added', this.onAdd); - e.scene.addEventListener('measurement_removed', this.onRemove); - } - - startInsertion (args = {}) { - let domElement = this.viewer.renderer.domElement; - - let measure = new Measure(); - - this.dispatchEvent({ - type: 'start_inserting_measurement', - measure: measure - }); - - measure.showDistances = (args.showDistances === null) ? true : args.showDistances; - measure.showArea = args.showArea || false; - measure.showAngles = args.showAngles || false; - measure.showCoordinates = args.showCoordinates || false; - measure.showHeight = args.showHeight || false; - measure.closed = args.closed || false; - measure.maxMarkers = args.maxMarkers || Infinity; - measure.name = args.name || 'Measurement'; - - this.scene.add(measure); - - let cancel = { - removeLastMarker: measure.maxMarkers > 3, - callback: null - }; - - let insertionCallback = (e) => { - if (e.button === THREE.MOUSE.LEFT) { - measure.addMarker(measure.points[measure.points.length - 1].position.clone()); - - if (measure.points.length >= measure.maxMarkers) { - cancel.callback(); - } - - this.viewer.inputHandler.startDragging( - measure.spheres[measure.spheres.length - 1]); - } else if (e.button === THREE.MOUSE.RIGHT) { - cancel.callback(); - } - }; - - cancel.callback = e => { - if (cancel.removeLastMarker) { - measure.removeMarker(measure.points.length - 1); - } - domElement.removeEventListener('mouseup', insertionCallback, true); - this.viewer.removeEventListener('cancel_insertions', cancel.callback); - }; - - if (measure.maxMarkers > 1) { - this.viewer.addEventListener('cancel_insertions', cancel.callback); - domElement.addEventListener('mouseup', insertionCallback, true); - } - - measure.addMarker(new THREE.Vector3(0, 0, 0)); - this.viewer.inputHandler.startDragging( - measure.spheres[measure.spheres.length - 1]); - - this.viewer.scene.addMeasurement(measure); - - return measure; - } - - update(){ - let camera = this.viewer.scene.getActiveCamera(); - let domElement = this.renderer.domElement; - let measurements = this.viewer.scene.measurements; - - let clientWidth = this.renderer.getSize().width; - let clientHeight = this.renderer.getSize().height; - - this.light.position.copy(camera.position); - - // make size independant of distance - for (let measure of measurements) { - measure.lengthUnit = this.viewer.lengthUnit; - measure.lengthUnitDisplay = this.viewer.lengthUnitDisplay; - measure.update(); - - // spheres - for(let sphere of measure.spheres){ - let distance = camera.position.distanceTo(sphere.getWorldPosition(new THREE.Vector3())); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - let scale = (15 / pr); - sphere.scale.set(scale, scale, scale); - } - - // labels - let labels = measure.edgeLabels.concat(measure.angleLabels); - for(let label of labels){ - let distance = camera.position.distanceTo(label.getWorldPosition(new THREE.Vector3())); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - let scale = (70 / pr); - label.scale.set(scale, scale, scale); - } - - // coordinate labels - for (let j = 0; j < measure.coordinateLabels.length; j++) { - let label = measure.coordinateLabels[j]; - let sphere = measure.spheres[j]; - // measure.points[j] - - let distance = camera.position.distanceTo(sphere.getWorldPosition(new THREE.Vector3())); - - let screenPos = sphere.getWorldPosition(new THREE.Vector3()).clone().project(camera); - screenPos.x = Math.round((screenPos.x + 1) * clientWidth / 2); - screenPos.y = Math.round((-screenPos.y + 1) * clientHeight / 2); - screenPos.z = 0; - screenPos.y -= 30; - - let labelPos = new THREE.Vector3( - (screenPos.x / clientWidth) * 2 - 1, - -(screenPos.y / clientHeight) * 2 + 1, - 0.5 ); - labelPos.unproject(camera); - if(this.viewer.scene.cameraMode == CameraMode.PERSPECTIVE) { - let direction = labelPos.sub(camera.position).normalize(); - labelPos = new THREE.Vector3().addVectors( - camera.position, direction.multiplyScalar(distance)); - - } - label.position.copy(labelPos); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - let scale = (70 / pr); - label.scale.set(scale, scale, scale); - } - - // height label - if (measure.showHeight) { - let label = measure.heightLabel; - - { - let distance = label.position.distanceTo(camera.position); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - let scale = (70 / pr); - label.scale.set(scale, scale, scale); - } - - { // height edge - let edge = measure.heightEdge; - let lowpoint = edge.geometry.vertices[0].clone().add(edge.position); - let start = edge.geometry.vertices[2].clone().add(edge.position); - let end = edge.geometry.vertices[3].clone().add(edge.position); - - let lowScreen = lowpoint.clone().project(camera); - let startScreen = start.clone().project(camera); - let endScreen = end.clone().project(camera); - - let toPixelCoordinates = v => { - let r = v.clone().addScalar(1).divideScalar(2); - r.x = r.x * clientWidth; - r.y = r.y * clientHeight; - r.z = 0; - - return r; - }; - - let lowEL = toPixelCoordinates(lowScreen); - let startEL = toPixelCoordinates(startScreen); - let endEL = toPixelCoordinates(endScreen); - - let lToS = lowEL.distanceTo(startEL); - let sToE = startEL.distanceTo(endEL); - - edge.geometry.lineDistances = [0, lToS, lToS, lToS + sToE]; - edge.geometry.lineDistancesNeedUpdate = true; - - edge.material.dashSize = 10; - edge.material.gapSize = 10; - } - } - - { // area label - let label = measure.areaLabel; - let distance = label.position.distanceTo(camera.position); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - - let scale = (70 / pr); - label.scale.set(scale, scale, scale); - } - } - } - - render(){ - this.viewer.renderer.render(this.scene, this.viewer.scene.getActiveCamera()); - } -}; diff --git a/app/static/app/js/vendor/potree/src/utils/Message.js b/app/static/app/js/vendor/potree/src/utils/Message.js deleted file mode 100644 index fffa73f9..00000000 --- a/app/static/app/js/vendor/potree/src/utils/Message.js +++ /dev/null @@ -1,36 +0,0 @@ - -export class Message{ - - constructor(content){ - this.content = content; - - let closeIcon = `${PotreeExports.resourcePath}/icons/close.svg`; - - this.element = $(` -
      - - -
      `); - - this.elClose = this.element.find("img[name=close]"); - - this.elContainer = this.element.find("span[name=content_container]"); - - if(typeof content === "string"){ - this.elContainer.append($(`${content}`)); - }else{ - this.elContainer.append(content); - } - - } - - setMessage(content){ - this.elContainer.empty(); - if(typeof content === "string"){ - this.elContainer.append($(`${content}`)); - }else{ - this.elContainer.append(content); - } - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/PointCloudSM.js b/app/static/app/js/vendor/potree/src/utils/PointCloudSM.js deleted file mode 100644 index c75ae5e9..00000000 --- a/app/static/app/js/vendor/potree/src/utils/PointCloudSM.js +++ /dev/null @@ -1,64 +0,0 @@ -export class PointCloudSM{ - - constructor(potreeRenderer){ - - this.potreeRenderer = potreeRenderer; - this.threeRenderer = this.potreeRenderer.threeRenderer; - - this.target = new THREE.WebGLRenderTarget(2 * 1024, 2 * 1024, { - minFilter: THREE.LinearFilter, - magFilter: THREE.LinearFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType - }); - this.target.depthTexture = new THREE.DepthTexture(); - this.target.depthTexture.type = THREE.UnsignedIntType; - - //this.target = new THREE.WebGLRenderTarget(1024, 1024, { - // minFilter: THREE.NearestFilter, - // magFilter: THREE.NearestFilter, - // format: THREE.RGBAFormat, - // type: THREE.FloatType, - // depthTexture: new THREE.DepthTexture(undefined, undefined, THREE.UnsignedIntType) - //}); - - this.threeRenderer.setClearColor(0x000000, 1); - this.threeRenderer.clearTarget(this.target, true, true, true); - } - - setLight(light){ - this.light = light; - - let fov = (180 * light.angle) / Math.PI; - let aspect = light.shadow.mapSize.width / light.shadow.mapSize.height; - let near = 0.1; - let far = light.distance === 0 ? 10000 : light.distance; - this.camera = new THREE.PerspectiveCamera(fov, aspect, near, far); - this.camera.up.set(0, 0, 1); - this.camera.position.copy(light.position); - - let target = new THREE.Vector3().addVectors(light.position, light.getWorldDirection(new THREE.Vector3())); - this.camera.lookAt(target); - - this.camera.updateProjectionMatrix(); - this.camera.updateMatrix(); - this.camera.updateMatrixWorld(); - this.camera.matrixWorldInverse.getInverse(this.camera.matrixWorld); - } - - setSize(width, height){ - if(this.target.width !== width || this.target.height !== height){ - this.target.dispose(); - } - this.target.setSize(width, height); - } - - render(scene, camera){ - //this.threeRenderer.setClearColor(0x00ff00, 1); - - this.threeRenderer.clearTarget( this.target, true, true, true ); - this.potreeRenderer.render(scene, this.camera, this.target, {}); - } - - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/PolygonClipVolume.js b/app/static/app/js/vendor/potree/src/utils/PolygonClipVolume.js deleted file mode 100644 index be8a0a39..00000000 --- a/app/static/app/js/vendor/potree/src/utils/PolygonClipVolume.js +++ /dev/null @@ -1,62 +0,0 @@ -export class PolygonClipVolume extends THREE.Object3D{ - - constructor(camera){ - super(); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - this.name = "polygon_clip_volume_" + this.constructor.counter; - - this.camera = camera.clone(); - this.camera.rotation.set(...camera.rotation.toArray()); // [r85] workaround because camera.clone() doesn't work on rotation - this.camera.updateMatrixWorld(); - this.camera.updateProjectionMatrix(); - this.camera.matrixWorldInverse.getInverse(this.camera.matrixWorld); - - this.viewMatrix = this.camera.matrixWorldInverse.clone(); - this.projMatrix = this.camera.projectionMatrix.clone(); - - // projected markers - this.markers = []; - this.initialized = false; - } - - addMarker() { - - let marker = new THREE.Mesh(); - - let cancel; - - let drag = e => { - let size = e.viewer.renderer.getSize(); - let projectedPos = new THREE.Vector3( - 2.0 * (e.drag.end.x / size.width) - 1.0, - -2.0 * (e.drag.end.y / size.height) + 1.0, - 0 - ); - - marker.position.copy(projectedPos); - }; - - let drop = e => { - cancel(); - }; - - cancel = e => { - marker.removeEventListener("drag", drag); - marker.removeEventListener("drop", drop); - }; - - marker.addEventListener("drag", drag); - marker.addEventListener("drop", drop); - - - this.markers.push(marker); - } - - removeLastMarker() { - if(this.markers.length > 0) { - this.markers.splice(this.markers.length - 1, 1); - } - } - -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/Profile.js b/app/static/app/js/vendor/potree/src/utils/Profile.js deleted file mode 100644 index b76f3714..00000000 --- a/app/static/app/js/vendor/potree/src/utils/Profile.js +++ /dev/null @@ -1,321 +0,0 @@ -import {Utils} from "../utils.js"; - -export class Profile extends THREE.Object3D{ - - constructor () { - super(); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - - this.name = 'Profile_' + this.constructor.counter; - this.points = []; - this.spheres = []; - this.edges = []; - this.boxes = []; - this.width = 1; - this.height = 20; - this._modifiable = true; - - this.sphereGeometry = new THREE.SphereGeometry(0.4, 10, 10); - this.color = new THREE.Color(0xff0000); - this.lineColor = new THREE.Color(0xff0000); - } - - createSphereMaterial () { - let sphereMaterial = new THREE.MeshLambertMaterial({ - //shading: THREE.SmoothShading, - color: 0xff0000, - depthTest: false, - depthWrite: false} - ); - - return sphereMaterial; - }; - - getSegments () { - let segments = []; - - for (let i = 0; i < this.points.length - 1; i++) { - let start = this.points[i].clone(); - let end = this.points[i + 1].clone(); - segments.push({start: start, end: end}); - } - - return segments; - } - - getSegmentMatrices () { - let segments = this.getSegments(); - let matrices = []; - - for (let segment of segments) { - let {start, end} = segment; - - let box = new THREE.Object3D(); - - let length = start.clone().setZ(0).distanceTo(end.clone().setZ(0)); - box.scale.set(length, 10000, this.width); - box.up.set(0, 0, 1); - - let center = new THREE.Vector3().addVectors(start, end).multiplyScalar(0.5); - let diff = new THREE.Vector3().subVectors(end, start); - let target = new THREE.Vector3(diff.y, -diff.x, 0); - - box.position.set(0, 0, 0); - box.lookAt(target); - box.position.copy(center); - - box.updateMatrixWorld(); - matrices.push(box.matrixWorld); - } - - return matrices; - } - - addMarker (point) { - this.points.push(point); - - let sphere = new THREE.Mesh(this.sphereGeometry, this.createSphereMaterial()); - - this.add(sphere); - this.spheres.push(sphere); - - // edges & boxes - if (this.points.length > 1) { - let lineGeometry = new THREE.Geometry(); - lineGeometry.vertices.push(new THREE.Vector3(), new THREE.Vector3()); - lineGeometry.colors.push(this.lineColor, this.lineColor, this.lineColor); - let lineMaterial = new THREE.LineBasicMaterial({ - vertexColors: THREE.VertexColors, - linewidth: 2, - transparent: true, - opacity: 0.4 - }); - lineMaterial.depthTest = false; - let edge = new THREE.Line(lineGeometry, lineMaterial); - edge.visible = false; - - this.add(edge); - this.edges.push(edge); - - let boxGeometry = new THREE.BoxGeometry(1, 1, 1); - let boxMaterial = new THREE.MeshBasicMaterial({color: 0xff0000, transparent: true, opacity: 0.2}); - let box = new THREE.Mesh(boxGeometry, boxMaterial); - box.visible = false; - - this.add(box); - this.boxes.push(box); - } - - { // event listeners - let drag = (e) => { - let I = Utils.getMousePointCloudIntersection( - e.drag.end, - e.viewer.scene.getActiveCamera(), - e.viewer, - e.viewer.scene.pointclouds); - - if (I) { - let i = this.spheres.indexOf(e.drag.object); - if (i !== -1) { - this.setPosition(i, I.location); - //this.dispatchEvent({ - // 'type': 'marker_moved', - // 'profile': this, - // 'index': i - //}); - } - } - }; - - let drop = e => { - let i = this.spheres.indexOf(e.drag.object); - if (i !== -1) { - this.dispatchEvent({ - 'type': 'marker_dropped', - 'profile': this, - 'index': i - }); - } - }; - - let mouseover = (e) => e.object.material.emissive.setHex(0x888888); - let mouseleave = (e) => e.object.material.emissive.setHex(0x000000); - - sphere.addEventListener('drag', drag); - sphere.addEventListener('drop', drop); - sphere.addEventListener('mouseover', mouseover); - sphere.addEventListener('mouseleave', mouseleave); - } - - let event = { - type: 'marker_added', - profile: this, - sphere: sphere - }; - this.dispatchEvent(event); - - this.setPosition(this.points.length - 1, point); - } - - removeMarker (index) { - this.points.splice(index, 1); - - this.remove(this.spheres[index]); - - let edgeIndex = (index === 0) ? 0 : (index - 1); - this.remove(this.edges[edgeIndex]); - this.edges.splice(edgeIndex, 1); - this.remove(this.boxes[edgeIndex]); - this.boxes.splice(edgeIndex, 1); - - this.spheres.splice(index, 1); - - this.update(); - - this.dispatchEvent({ - 'type': 'marker_removed', - 'profile': this - }); - } - - setPosition (index, position) { - let point = this.points[index]; - point.copy(position); - - let event = { - type: 'marker_moved', - profile: this, - index: index, - position: point.clone() - }; - this.dispatchEvent(event); - - this.update(); - } - - setWidth (width) { - this.width = width; - - let event = { - type: 'width_changed', - profile: this, - width: width - }; - this.dispatchEvent(event); - - this.update(); - } - - getWidth () { - return this.width; - } - - update () { - if (this.points.length === 0) { - return; - } else if (this.points.length === 1) { - let point = this.points[0]; - this.spheres[0].position.copy(point); - - return; - } - - let min = this.points[0].clone(); - let max = this.points[0].clone(); - let centroid = new THREE.Vector3(); - let lastIndex = this.points.length - 1; - for (let i = 0; i <= lastIndex; i++) { - let point = this.points[i]; - let sphere = this.spheres[i]; - let leftIndex = (i === 0) ? lastIndex : i - 1; - // let rightIndex = (i === lastIndex) ? 0 : i + 1; - let leftVertex = this.points[leftIndex]; - // let rightVertex = this.points[rightIndex]; - let leftEdge = this.edges[leftIndex]; - let rightEdge = this.edges[i]; - let leftBox = this.boxes[leftIndex]; - // rightBox = this.boxes[i]; - - // let leftEdgeLength = point.distanceTo(leftVertex); - // let rightEdgeLength = point.distanceTo(rightVertex); - // let leftEdgeCenter = new THREE.Vector3().addVectors(leftVertex, point).multiplyScalar(0.5); - // let rightEdgeCenter = new THREE.Vector3().addVectors(point, rightVertex).multiplyScalar(0.5); - - sphere.position.copy(point); - - if (this._modifiable) { - sphere.visible = true; - } else { - sphere.visible = false; - } - - if (leftEdge) { - leftEdge.geometry.vertices[1].copy(point); - leftEdge.geometry.verticesNeedUpdate = true; - leftEdge.geometry.computeBoundingSphere(); - } - - if (rightEdge) { - rightEdge.geometry.vertices[0].copy(point); - rightEdge.geometry.verticesNeedUpdate = true; - rightEdge.geometry.computeBoundingSphere(); - } - - if (leftBox) { - let start = leftVertex; - let end = point; - let length = start.clone().setZ(0).distanceTo(end.clone().setZ(0)); - leftBox.scale.set(length, 1000000, this.width); - leftBox.up.set(0, 0, 1); - - let center = new THREE.Vector3().addVectors(start, end).multiplyScalar(0.5); - let diff = new THREE.Vector3().subVectors(end, start); - let target = new THREE.Vector3(diff.y, -diff.x, 0); - - leftBox.position.set(0, 0, 0); - leftBox.lookAt(target); - leftBox.position.copy(center); - } - - centroid.add(point); - min.min(point); - max.max(point); - } - centroid.multiplyScalar(1 / this.points.length); - - for (let i = 0; i < this.boxes.length; i++) { - let box = this.boxes[i]; - - box.position.z = min.z + (max.z - min.z) / 2; - } - } - - raycast (raycaster, intersects) { - for (let i = 0; i < this.points.length; i++) { - let sphere = this.spheres[i]; - - sphere.raycast(raycaster, intersects); - } - - // recalculate distances because they are not necessarely correct - // for scaled objects. - // see https://github.com/mrdoob/three.js/issues/5827 - // TODO: remove this once the bug has been fixed - for (let i = 0; i < intersects.length; i++) { - let I = intersects[i]; - I.distance = raycaster.ray.origin.distanceTo(I.point); - } - intersects.sort(function (a, b) { return a.distance - b.distance; }); - }; - - get modifiable () { - return this._modifiable; - } - - set modifiable (value) { - this._modifiable = value; - this.update(); - } - -} diff --git a/app/static/app/js/vendor/potree/src/utils/ProfileTool.js b/app/static/app/js/vendor/potree/src/utils/ProfileTool.js deleted file mode 100644 index c955f947..00000000 --- a/app/static/app/js/vendor/potree/src/utils/ProfileTool.js +++ /dev/null @@ -1,130 +0,0 @@ -import {Profile} from "./Profile.js"; -import {Utils} from "../utils.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - - -export class ProfileTool extends EventDispatcher { - constructor (viewer) { - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.addEventListener('start_inserting_profile', e => { - this.viewer.dispatchEvent({ - type: 'cancel_insertions' - }); - }); - - this.scene = new THREE.Scene(); - this.scene.name = 'scene_profile'; - this.light = new THREE.PointLight(0xffffff, 1.0); - this.scene.add(this.light); - - this.viewer.inputHandler.registerInteractiveScene(this.scene); - - this.onRemove = e => this.scene.remove(e.profile); - this.onAdd = e => this.scene.add(e.profile); - - for(let profile of viewer.scene.profiles){ - this.onAdd({profile: profile}); - } - - viewer.addEventListener("update", this.update.bind(this)); - viewer.addEventListener("render.pass.perspective_overlay", this.render.bind(this)); - viewer.addEventListener("scene_changed", this.onSceneChange.bind(this)); - - viewer.scene.addEventListener('profile_added', this.onAdd); - viewer.scene.addEventListener('profile_removed', this.onRemove); - } - - onSceneChange(e){ - if(e.oldScene){ - e.oldScene.removeEventListeners('profile_added', this.onAdd); - e.oldScene.removeEventListeners('profile_removed', this.onRemove); - } - - e.scene.addEventListener('profile_added', this.onAdd); - e.scene.addEventListener('profile_removed', this.onRemove); - } - - startInsertion (args = {}) { - let domElement = this.viewer.renderer.domElement; - - let profile = new Profile(); - profile.name = args.name || 'Profile'; - - this.dispatchEvent({ - type: 'start_inserting_profile', - profile: profile - }); - - this.scene.add(profile); - - let cancel = { - callback: null - }; - - let insertionCallback = (e) => { - if(e.button === THREE.MOUSE.LEFT){ - if(profile.points.length <= 1){ - let camera = this.viewer.scene.getActiveCamera(); - let distance = camera.position.distanceTo(profile.points[0]); - let clientSize = this.viewer.renderer.getSize(); - let pr = Utils.projectedRadius(1, camera, distance, clientSize.width, clientSize.height); - let width = (10 / pr); - - profile.setWidth(width); - } - - profile.addMarker(profile.points[profile.points.length - 1].clone()); - - this.viewer.inputHandler.startDragging( - profile.spheres[profile.spheres.length - 1]); - } else if (e.button === THREE.MOUSE.RIGHT) { - cancel.callback(); - } - }; - - cancel.callback = e => { - profile.removeMarker(profile.points.length - 1); - domElement.removeEventListener('mouseup', insertionCallback, true); - this.viewer.removeEventListener('cancel_insertions', cancel.callback); - }; - - this.viewer.addEventListener('cancel_insertions', cancel.callback); - domElement.addEventListener('mouseup', insertionCallback, true); - - profile.addMarker(new THREE.Vector3(0, 0, 0)); - this.viewer.inputHandler.startDragging( - profile.spheres[profile.spheres.length - 1]); - - this.viewer.scene.addProfile(profile); - - return profile; - } - - update(){ - let camera = this.viewer.scene.getActiveCamera(); - let profiles = this.viewer.scene.profiles; - let clientWidth = this.renderer.getSize().width; - let clientHeight = this.renderer.getSize().height; - - this.light.position.copy(camera.position); - - // make size independant of distance - for(let profile of profiles){ - for(let sphere of profile.spheres){ - let distance = camera.position.distanceTo(sphere.getWorldPosition(new THREE.Vector3())); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - let scale = (15 / pr); - sphere.scale.set(scale, scale, scale); - } - } - } - - render(){ - this.viewer.renderer.render(this.scene, this.viewer.scene.getActiveCamera()); - } - -} diff --git a/app/static/app/js/vendor/potree/src/utils/ScreenBoxSelectTool.js b/app/static/app/js/vendor/potree/src/utils/ScreenBoxSelectTool.js deleted file mode 100644 index b29cd1b9..00000000 --- a/app/static/app/js/vendor/potree/src/utils/ScreenBoxSelectTool.js +++ /dev/null @@ -1,184 +0,0 @@ -import {BoxVolume} from "./Volume.js"; -import {Utils} from "../utils.js"; -import {PointSizeType} from "../defines.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - - -export class ScreenBoxSelectTool extends EventDispatcher{ - - constructor(viewer){ - super(); - - this.viewer = viewer; - this.scene = new THREE.Scene(); - - viewer.addEventListener("update", this.update.bind(this)); - viewer.addEventListener("render.pass.perspective_overlay", this.render.bind(this)); - viewer.addEventListener("scene_changed", this.onSceneChange.bind(this)); - } - - onSceneChange(scene){ - console.log("scene changed"); - } - - startInsertion(){ - let domElement = this.viewer.renderer.domElement; - - let volume = new BoxVolume(); - volume.position.set(12345, 12345, 12345); - volume.showVolumeLabel = false; - volume.visible = false; - volume.update(); - this.viewer.scene.addVolume(volume); - - this.importance = 10; - - let selectionBox = $(`
      `); - $(domElement.parentElement).append(selectionBox); - selectionBox.css("right", "10px"); - selectionBox.css("bottom", "10px"); - - let drag = e =>{ - - volume.visible = true; - - let mStart = e.drag.start; - let mEnd = e.drag.end; - - let box2D = new THREE.Box2(); - box2D.expandByPoint(mStart); - box2D.expandByPoint(mEnd); - - selectionBox.css("left", `${box2D.min.x}px`); - selectionBox.css("top", `${box2D.min.y}px`); - selectionBox.css("width", `${box2D.max.x - box2D.min.x}px`); - selectionBox.css("height", `${box2D.max.y - box2D.min.y}px`); - - let camera = e.viewer.scene.getActiveCamera(); - let size = new THREE.Vector2( - e.viewer.renderer.getSize().width, - e.viewer.renderer.getSize().height); - let frustumSize = new THREE.Vector2( - camera.right - camera.left, - camera.top - camera.bottom); - - let screenCentroid = new THREE.Vector2().addVectors(e.drag.end, e.drag.start).multiplyScalar(0.5); - let ray = Utils.mouseToRay(screenCentroid, camera, size.width, size.height); - - let diff = new THREE.Vector2().subVectors(e.drag.end, e.drag.start); - diff.divide(size).multiply(frustumSize); - - volume.position.copy(ray.origin); - volume.up.copy(camera.up); - volume.rotation.copy(camera.rotation); - volume.scale.set(diff.x, diff.y, 1000 * 100); - - e.consume(); - }; - - let drop = e => { - this.importance = 0; - - $(selectionBox).remove(); - - this.viewer.inputHandler.deselectAll(); - this.viewer.inputHandler.toggleSelection(volume); - - let camera = e.viewer.scene.getActiveCamera(); - let size = new THREE.Vector2( - e.viewer.renderer.getSize().width, - e.viewer.renderer.getSize().height); - let screenCentroid = new THREE.Vector2().addVectors(e.drag.end, e.drag.start).multiplyScalar(0.5); - let ray = Utils.mouseToRay(screenCentroid, camera, size.width, size.height); - - let line = new THREE.Line3(ray.origin, new THREE.Vector3().addVectors(ray.origin, ray.direction)); - - this.removeEventListener("drag", drag); - this.removeEventListener("drop", drop); - - let allPointsNear = []; - let allPointsFar = []; - - // TODO support more than one point cloud - for(let pointcloud of this.viewer.scene.pointclouds){ - - if(!pointcloud.visible){ - continue; - } - - let volCam = camera.clone(); - volCam.left = -volume.scale.x / 2; - volCam.right = +volume.scale.x / 2; - volCam.top = +volume.scale.y / 2; - volCam.bottom = -volume.scale.y / 2; - volCam.near = -volume.scale.z / 2; - volCam.far = +volume.scale.z / 2; - volCam.rotation.copy(volume.rotation); - volCam.position.copy(volume.position); - - volCam.updateMatrix(); - volCam.updateMatrixWorld(); - volCam.updateProjectionMatrix(); - volCam.matrixWorldInverse.getInverse(volCam.matrixWorld); - - let ray = new THREE.Ray(volCam.getWorldPosition(new THREE.Vector3()), volCam.getWorldDirection(new THREE.Vector3())); - let rayInverse = new THREE.Ray( - ray.origin.clone().add(ray.direction.clone().multiplyScalar(volume.scale.z)), - ray.direction.clone().multiplyScalar(-1)); - - let pickerSettings = { - width: 8, - height: 8, - pickWindowSize: 8, - all: true, - pickClipped: true, - pointSizeType: PointSizeType.FIXED, - pointSize: 1}; - let pointsNear = pointcloud.pick(viewer, volCam, ray, pickerSettings); - - volCam.rotateX(Math.PI); - volCam.updateMatrix(); - volCam.updateMatrixWorld(); - volCam.updateProjectionMatrix(); - volCam.matrixWorldInverse.getInverse(volCam.matrixWorld); - let pointsFar = pointcloud.pick(viewer, volCam, rayInverse, pickerSettings); - - allPointsNear.push(...pointsNear); - allPointsFar.push(...pointsFar); - } - - if(allPointsNear.length > 0 && allPointsFar.length > 0){ - let viewLine = new THREE.Line3(ray.origin, new THREE.Vector3().addVectors(ray.origin, ray.direction)); - - let closestOnLine = allPointsNear.map(p => viewLine.closestPointToPoint(p.position, false, new THREE.Vector3())); - let closest = closestOnLine.sort( (a, b) => ray.origin.distanceTo(a) - ray.origin.distanceTo(b))[0]; - - let farthestOnLine = allPointsFar.map(p => viewLine.closestPointToPoint(p.position, false, new THREE.Vector3())); - let farthest = farthestOnLine.sort( (a, b) => ray.origin.distanceTo(b) - ray.origin.distanceTo(a))[0]; - - let distance = closest.distanceTo(farthest); - let centroid = new THREE.Vector3().addVectors(closest, farthest).multiplyScalar(0.5); - volume.scale.z = distance * 1.1; - volume.position.copy(centroid); - } - - volume.clip = true; - }; - - this.addEventListener("drag", drag); - this.addEventListener("drop", drop); - - viewer.inputHandler.addInputListener(this); - - return volume; - } - - update(e){ - //console.log(e.delta) - } - - render(){ - this.viewer.renderer.render(this.scene, this.viewer.scene.getActiveCamera()); - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/SpotLightHelper.js b/app/static/app/js/vendor/potree/src/utils/SpotLightHelper.js deleted file mode 100644 index b9456401..00000000 --- a/app/static/app/js/vendor/potree/src/utils/SpotLightHelper.js +++ /dev/null @@ -1,99 +0,0 @@ - -export class SpotLightHelper extends THREE.Object3D{ - - constructor(light, color){ - super(); - - this.light = light; - this.color = color; - - //this.up.set(0, 0, 1); - this.updateMatrix(); - this.updateMatrixWorld(); - - { // SPHERE - let sg = new THREE.SphereGeometry(1, 32, 32); - let sm = new THREE.MeshNormalMaterial(); - this.sphere = new THREE.Mesh(sg, sm); - this.sphere.scale.set(0.5, 0.5, 0.5); - this.add(this.sphere); - } - - { // LINES - - - let positions = new Float32Array([ - +0, +0, +0, +0, +0, +1, - - +0, +0, +0, -1, -1, +1, - +0, +0, +0, +1, -1, +1, - +0, +0, +0, +1, +1, +1, - +0, +0, +0, -1, +1, +1, - - -1, -1, +1, +1, -1, +1, - +1, -1, +1, +1, +1, +1, - +1, +1, +1, -1, +1, +1, - -1, +1, +1, -1, -1, +1, - ]); - - let geometry = new THREE.BufferGeometry(); - geometry.addAttribute("position", new THREE.BufferAttribute(positions, 3)); - - let material = new THREE.LineBasicMaterial(); - - this.frustum = new THREE.LineSegments(geometry, material); - this.add(this.frustum); - - } - - this.update(); - } - - update(){ - - this.light.updateMatrix(); - this.light.updateMatrixWorld(); - - let position = this.light.position; - //let target = new THREE.Vector3().addVectors( - // light.position, - // new THREE.Vector3().subVectors(light.position, this.light.getWorldDirection(new THREE.Vector3()))); - let target = new THREE.Vector3().addVectors( - light.position, this.light.getWorldDirection(new THREE.Vector3()).multiplyScalar(-1)); - - let quat = new THREE.Quaternion().setFromRotationMatrix( - new THREE.Matrix4().lookAt( position, target, new THREE.Vector3( 0, 0, 1 ) ) - ); - - this.setRotationFromQuaternion(quat); - this.position.copy(position); - - - let coneLength = (this.light.distance > 0) ? this.light.distance : 1000; - let coneWidth = coneLength * Math.tan( this.light.angle * 0.5 ); - - this.frustum.scale.set(coneWidth, coneWidth, coneLength); - - - - //{ - // let fov = (180 * light.angle) / Math.PI; - // let aspect = light.shadow.mapSize.width / light.shadow.mapSize.height; - // let near = 0.1; - // let far = light.distance === 0 ? 10000 : light.distance; - // this.camera = new THREE.PerspectiveCamera(fov, aspect, near, far); - // this.camera.up.set(0, 0, 1); - // this.camera.position.copy(light.position); - - // let target = new THREE.Vector3().addVectors(light.position, light.getWorldDirection(new THREE.Vector3())); - // this.camera.lookAt(target); - - // this.camera.updateProjectionMatrix(); - // this.camera.updateMatrix(); - // this.camera.updateMatrixWorld(); - // this.camera.matrixWorldInverse.getInverse(this.camera.matrixWorld); - //} - - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/TransformationTool.js b/app/static/app/js/vendor/potree/src/utils/TransformationTool.js deleted file mode 100644 index 6649bb1a..00000000 --- a/app/static/app/js/vendor/potree/src/utils/TransformationTool.js +++ /dev/null @@ -1,888 +0,0 @@ -import TWEEN from 'tween.js'; - -import {Utils} from "../utils.js"; - -export class TransformationTool { - constructor(viewer) { - this.viewer = viewer; - - this.scene = new THREE.Scene(); - - this.selection = []; - this.pivot = new THREE.Vector3(); - this.dragging = false; - this.showPickVolumes = false; - - this.viewer.inputHandler.registerInteractiveScene(this.scene); - this.viewer.inputHandler.addEventListener('selection_changed', (e) => { - for(let selected of this.selection){ - this.viewer.inputHandler.blacklist.delete(selected); - } - - this.selection = e.selection; - - for(let selected of this.selection){ - this.viewer.inputHandler.blacklist.add(selected); - } - - }); - - let red = 0xE73100; - let green = 0x44A24A; - let blue = 0x2669E7; - - this.activeHandle = null; - this.scaleHandles = { - "scale.x+": {name: "scale.x+", node: new THREE.Object3D(), color: red, alignment: [+1, +0, +0]}, - "scale.x-": {name: "scale.x-", node: new THREE.Object3D(), color: red, alignment: [-1, +0, +0]}, - "scale.y+": {name: "scale.y+", node: new THREE.Object3D(), color: green, alignment: [+0, +1, +0]}, - "scale.y-": {name: "scale.y-", node: new THREE.Object3D(), color: green, alignment: [+0, -1, +0]}, - "scale.z+": {name: "scale.z+", node: new THREE.Object3D(), color: blue, alignment: [+0, +0, +1]}, - "scale.z-": {name: "scale.z-", node: new THREE.Object3D(), color: blue, alignment: [+0, +0, -1]}, - }; - this.focusHandles = { - "focus.x+": {name: "focus.x+", node: new THREE.Object3D(), color: red, alignment: [+1, +0, +0]}, - "focus.x-": {name: "focus.x-", node: new THREE.Object3D(), color: red, alignment: [-1, +0, +0]}, - "focus.y+": {name: "focus.y+", node: new THREE.Object3D(), color: green, alignment: [+0, +1, +0]}, - "focus.y-": {name: "focus.y-", node: new THREE.Object3D(), color: green, alignment: [+0, -1, +0]}, - "focus.z+": {name: "focus.z+", node: new THREE.Object3D(), color: blue, alignment: [+0, +0, +1]}, - "focus.z-": {name: "focus.z-", node: new THREE.Object3D(), color: blue, alignment: [+0, +0, -1]}, - }; - this.translationHandles = { - "translation.x": {name: "translation.x", node: new THREE.Object3D(), color: red, alignment: [1, 0, 0]}, - "translation.y": {name: "translation.y", node: new THREE.Object3D(), color: green, alignment: [0, 1, 0]}, - "translation.z": {name: "translation.z", node: new THREE.Object3D(), color: blue, alignment: [0, 0, 1]}, - }; - this.rotationHandles = { - "rotation.x": {name: "rotation.x", node: new THREE.Object3D(), color: red, alignment: [1, 0, 0]}, - "rotation.y": {name: "rotation.y", node: new THREE.Object3D(), color: green, alignment: [0, 1, 0]}, - "rotation.z": {name: "rotation.z", node: new THREE.Object3D(), color: blue, alignment: [0, 0, 1]}, - }; - this.handles = Object.assign({}, this.scaleHandles, this.focusHandles, this.translationHandles, this.rotationHandles); - this.pickVolumes = []; - - this.initializeScaleHandles(); - this.initializeFocusHandles(); - this.initializeTranslationHandles(); - this.initializeRotationHandles(); - - - let boxFrameGeometry = new THREE.Geometry(); - { - // bottom - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - // top - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - // sides - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - } - this.frame = new THREE.LineSegments(boxFrameGeometry, new THREE.LineBasicMaterial({color: 0xffff00})); - this.scene.add(this.frame); - - - } - - initializeScaleHandles(){ - let sgSphere = new THREE.SphereGeometry(1, 32, 32); - let sgLowPolySphere = new THREE.SphereGeometry(1, 16, 16); - - for(let handleName of Object.keys(this.scaleHandles)){ - let handle = this.scaleHandles[handleName]; - let node = handle.node; - this.scene.add(node); - node.position.set(...handle.alignment).multiplyScalar(0.5); - - let material = new THREE.MeshBasicMaterial({ - color: handle.color, - opacity: 0.4, - transparent: true - }); - - let outlineMaterial = new THREE.MeshBasicMaterial({ - color: 0x000000, - side: THREE.BackSide, - opacity: 0.4, - transparent: true}); - - let pickMaterial = new THREE.MeshNormalMaterial({ - opacity: 0.2, - transparent: true, - visible: this.showPickVolumes}); - - let sphere = new THREE.Mesh(sgSphere, material); - sphere.scale.set(1.3, 1.3, 1.3); - sphere.name = `${handleName}.handle`; - node.add(sphere); - - let outline = new THREE.Mesh(sgSphere, outlineMaterial); - outline.scale.set(1.4, 1.4, 1.4); - outline.name = `${handleName}.outline`; - sphere.add(outline); - - let pickSphere = new THREE.Mesh(sgLowPolySphere, pickMaterial); - pickSphere.name = `${handleName}.pick_volume`; - pickSphere.scale.set(3, 3, 3); - sphere.add(pickSphere); - pickSphere.handle = handleName; - this.pickVolumes.push(pickSphere); - - node.setOpacity = (target) => { - let opacity = {x: material.opacity}; - let t = new TWEEN.Tween(opacity).to({x: target}, 100); - t.onUpdate(() => { - sphere.visible = opacity.x > 0; - pickSphere.visible = opacity.x > 0; - material.opacity = opacity.x; - outlineMaterial.opacity = opacity.x; - pickSphere.material.opacity = opacity.x * 0.5; - }); - t.start(); - }; - - pickSphere.addEventListener("drag", (e) => this.dragScaleHandle(e)); - pickSphere.addEventListener("drop", (e) => this.dropScaleHandle(e)); - - pickSphere.addEventListener("mouseover", e => { - //node.setOpacity(1); - }); - - pickSphere.addEventListener("click", e => { - e.consume(); - }); - - pickSphere.addEventListener("mouseleave", e => { - //node.setOpacity(0.4); - }); - } - } - - initializeFocusHandles(){ - //let sgBox = new THREE.BoxGeometry(1, 1, 1); - let sgPlane = new THREE.PlaneGeometry(4, 4, 1, 1); - let sgLowPolySphere = new THREE.SphereGeometry(1, 16, 16); - - let texture = new THREE.TextureLoader().load(`${PotreeExports.resourcePath}/icons/eye_2.png`); - - for(let handleName of Object.keys(this.focusHandles)){ - let handle = this.focusHandles[handleName]; - let node = handle.node; - this.scene.add(node); - let align = handle.alignment; - - //node.lookAt(new THREE.Vector3().addVectors(node.position, new THREE.Vector3(...align))); - node.lookAt(new THREE.Vector3(...align)); - - let off = 0.8; - if(align[0] === 1){ - node.position.set(1, off, -off).multiplyScalar(0.5); - node.rotation.z = Math.PI / 2; - }else if(align[0] === -1){ - node.position.set(-1, -off, -off).multiplyScalar(0.5); - node.rotation.z = Math.PI / 2; - }else if(align[1] === 1){ - node.position.set(-off, 1, -off).multiplyScalar(0.5); - node.rotation.set(Math.PI / 2, Math.PI, 0.0); - }else if(align[1] === -1){ - node.position.set(off, -1, -off).multiplyScalar(0.5); - node.rotation.set(Math.PI / 2, 0.0, 0.0); - }else if(align[2] === 1){ - node.position.set(off, off, 1).multiplyScalar(0.5); - }else if(align[2] === -1){ - node.position.set(-off, off, -1).multiplyScalar(0.5); - } - - let material = new THREE.MeshBasicMaterial({ - color: handle.color, - opacity: 0, - transparent: true, - map: texture - }); - - //let outlineMaterial = new THREE.MeshBasicMaterial({ - // color: 0x000000, - // side: THREE.BackSide, - // opacity: 0, - // transparent: true}); - - let pickMaterial = new THREE.MeshNormalMaterial({ - //opacity: 0, - transparent: true, - visible: this.showPickVolumes}); - - let box = new THREE.Mesh(sgPlane, material); - box.name = `${handleName}.handle`; - box.scale.set(1.5, 1.5, 1.5); - box.position.set(0, 0, 0); - box.visible = false; - node.add(box); - //handle.focusNode = box; - - //let outline = new THREE.Mesh(sgPlane, outlineMaterial); - //outline.scale.set(1.4, 1.4, 1.4); - //outline.name = `${handleName}.outline`; - //box.add(outline); - - let pickSphere = new THREE.Mesh(sgLowPolySphere, pickMaterial); - pickSphere.name = `${handleName}.pick_volume`; - pickSphere.scale.set(3, 3, 3); - box.add(pickSphere); - pickSphere.handle = handleName; - this.pickVolumes.push(pickSphere); - - node.setOpacity = (target) => { - let opacity = {x: material.opacity}; - let t = new TWEEN.Tween(opacity).to({x: target}, 100); - t.onUpdate(() => { - pickSphere.visible = opacity.x > 0; - box.visible = opacity.x > 0; - material.opacity = opacity.x; - //outlineMaterial.opacity = opacity.x; - pickSphere.material.opacity = opacity.x * 0.5; - }); - t.start(); - }; - - pickSphere.addEventListener("drag", e => {}); - - pickSphere.addEventListener("mouseup", e => { - e.consume(); - }); - - pickSphere.addEventListener("mousedown", e => { - e.consume(); - }); - - pickSphere.addEventListener("click", e => { - e.consume(); - - let selected = this.selection[0]; - let maxScale = Math.max(...selected.scale.toArray()); - let minScale = Math.min(...selected.scale.toArray()); - let handleLength = Math.abs(selected.scale.dot(new THREE.Vector3(...handle.alignment))); - let alignment = new THREE.Vector3(...handle.alignment).multiplyScalar(2 * maxScale / handleLength); - alignment.applyMatrix4(selected.matrixWorld); - let newCamPos = alignment; - let newCamTarget = selected.getWorldPosition(new THREE.Vector3()); - - Utils.moveTo(this.viewer.scene, newCamPos, newCamTarget); - }); - - pickSphere.addEventListener("mouseover", e => { - //box.setOpacity(1); - }); - - pickSphere.addEventListener("mouseleave", e => { - //box.setOpacity(0.4); - }); - } - } - - initializeTranslationHandles(){ - let boxGeometry = new THREE.BoxGeometry(1, 1, 1); - - for(let handleName of Object.keys(this.translationHandles)){ - let handle = this.handles[handleName]; - let node = handle.node; - this.scene.add(node); - - let material = new THREE.MeshBasicMaterial({ - color: handle.color, - opacity: 0.4, - transparent: true}); - - let outlineMaterial = new THREE.MeshBasicMaterial({ - color: 0x000000, - side: THREE.BackSide, - opacity: 0.4, - transparent: true}); - - let pickMaterial = new THREE.MeshNormalMaterial({ - opacity: 0.2, - transparent: true, - visible: this.showPickVolumes - }); - - let box = new THREE.Mesh(boxGeometry, material); - box.name = `${handleName}.handle`; - box.scale.set(0.2, 0.2, 40); - box.lookAt(new THREE.Vector3(...handle.alignment)); - box.renderOrder = 10; - node.add(box); - handle.translateNode = box; - - let outline = new THREE.Mesh(boxGeometry, outlineMaterial); - outline.name = `${handleName}.outline`; - outline.scale.set(3, 3, 1.03); - outline.renderOrder = 0; - box.add(outline); - - let pickVolume = new THREE.Mesh(boxGeometry, pickMaterial); - pickVolume.name = `${handleName}.pick_volume`; - pickVolume.scale.set(12, 12, 1.1); - pickVolume.handle = handleName; - box.add(pickVolume); - this.pickVolumes.push(pickVolume); - - node.setOpacity = (target) => { - let opacity = {x: material.opacity}; - let t = new TWEEN.Tween(opacity).to({x: target}, 100); - t.onUpdate(() => { - box.visible = opacity.x > 0; - pickVolume.visible = opacity.x > 0; - material.opacity = opacity.x; - outlineMaterial.opacity = opacity.x; - pickMaterial.opacity = opacity.x * 0.5; - }); - t.start(); - }; - - pickVolume.addEventListener("drag", (e) => {this.dragTranslationHandle(e)}); - pickVolume.addEventListener("drop", (e) => {this.dropTranslationHandle(e)}); - } - } - - initializeRotationHandles(){ - let adjust = 0.5; - let torusGeometry = new THREE.TorusGeometry(1, adjust * 0.015, 8, 64, Math.PI / 2); - let outlineGeometry = new THREE.TorusGeometry(1, adjust * 0.04, 8, 64, Math.PI / 2); - let pickGeometry = new THREE.TorusGeometry(1, adjust * 0.1, 6, 4, Math.PI / 2); - - for(let handleName of Object.keys(this.rotationHandles)){ - let handle = this.handles[handleName]; - let node = handle.node; - this.scene.add(node); - - let material = new THREE.MeshBasicMaterial({ - color: handle.color, - opacity: 0.4, - transparent: true}); - - let outlineMaterial = new THREE.MeshBasicMaterial({ - color: 0x000000, - side: THREE.BackSide, - opacity: 0.4, - transparent: true}); - - let pickMaterial = new THREE.MeshNormalMaterial({ - opacity: 0.2, - transparent: true, - visible: this.showPickVolumes - }); - - let box = new THREE.Mesh(torusGeometry, material); - box.name = `${handleName}.handle`; - box.scale.set(20, 20, 20); - box.lookAt(new THREE.Vector3(...handle.alignment)); - node.add(box); - handle.translateNode = box; - - let outline = new THREE.Mesh(outlineGeometry, outlineMaterial); - outline.name = `${handleName}.outline`; - outline.scale.set(1, 1, 1); - outline.renderOrder = 0; - box.add(outline); - - let pickVolume = new THREE.Mesh(pickGeometry, pickMaterial); - pickVolume.name = `${handleName}.pick_volume`; - pickVolume.scale.set(1, 1, 1); - pickVolume.handle = handleName; - box.add(pickVolume); - this.pickVolumes.push(pickVolume); - - node.setOpacity = (target) => { - let opacity = {x: material.opacity}; - let t = new TWEEN.Tween(opacity).to({x: target}, 100); - t.onUpdate(() => { - box.visible = opacity.x > 0; - pickVolume.visible = opacity.x > 0; - material.opacity = opacity.x; - outlineMaterial.opacity = opacity.x; - pickMaterial.opacity = opacity.x * 0.5; - }); - t.start(); - }; - - - //pickVolume.addEventListener("mouseover", (e) => { - // //let a = this.viewer.scene.getActiveCamera().getWorldDirection(new THREE.Vector3()).dot(pickVolume.getWorldDirection(new THREE.Vector3())); - // console.log(pickVolume.getWorldDirection(new THREE.Vector3())); - //}); - - pickVolume.addEventListener("drag", (e) => {this.dragRotationHandle(e)}); - pickVolume.addEventListener("drop", (e) => {this.dropRotationHandle(e)}); - } - } - - dragRotationHandle(e){ - let drag = e.drag; - let handle = this.activeHandle; - let camera = this.viewer.scene.getActiveCamera(); - - if(!handle){ - return - }; - - let localNormal = new THREE.Vector3(...handle.alignment); - let n = new THREE.Vector3(); - n.copy(new THREE.Vector4(...localNormal.toArray(), 0).applyMatrix4(handle.node.matrixWorld)); - n.normalize(); - - if (!drag.intersectionStart){ - - //this.viewer.scene.scene.remove(this.debug); - //this.debug = new THREE.Object3D(); - //this.viewer.scene.scene.add(this.debug); - //Utils.debugSphere(this.debug, drag.location, 3, 0xaaaaaa); - //let debugEnd = drag.location.clone().add(n.clone().multiplyScalar(20)); - //Utils.debugLine(this.debug, drag.location, debugEnd, 0xff0000); - - drag.intersectionStart = drag.location; - drag.objectStart = drag.object.getWorldPosition(new THREE.Vector3()); - drag.handle = handle; - - let plane = new THREE.Plane().setFromNormalAndCoplanarPoint(n, drag.intersectionStart); - - drag.dragPlane = plane; - drag.pivot = drag.intersectionStart; - }else{ - handle = drag.handle; - } - - this.dragging = true; - - let mouse = drag.end; - let domElement = this.viewer.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - - let I = ray.intersectPlane(drag.dragPlane, new THREE.Vector3()); - - if (I) { - let center = this.scene.getWorldPosition(new THREE.Vector3()); - let from = drag.pivot; - let to = I; - - let v1 = from.clone().sub(center).normalize(); - let v2 = to.clone().sub(center).normalize(); - - let angle = Math.acos(v1.dot(v2)); - let sign = Math.sign(v1.cross(v2).dot(n)); - angle = angle * sign; - if (Number.isNaN(angle)) { - return; - } - - let normal = new THREE.Vector3(...handle.alignment); - for (let selection of this.selection) { - selection.rotateOnAxis(normal, angle); - selection.dispatchEvent({ - type: "orientation_changed", - object: selection - }); - } - - drag.pivot = I; - } - } - - dropRotationHandle(e){ - this.dragging = false; - this.setActiveHandle(null); - } - - dragTranslationHandle(e){ - let drag = e.drag; - let handle = this.activeHandle; - let camera = this.viewer.scene.getActiveCamera(); - - if(!drag.intersectionStart && handle){ - drag.intersectionStart = drag.location; - drag.objectStart = drag.object.getWorldPosition(new THREE.Vector3()); - - let start = drag.intersectionStart; - let dir = new THREE.Vector4(...handle.alignment, 0).applyMatrix4(this.scene.matrixWorld); - let end = new THREE.Vector3().addVectors(start, dir); - let line = new THREE.Line3(start.clone(), end.clone()); - drag.line = line; - - let camOnLine = line.closestPointToPoint(camera.position, false, new THREE.Vector3()); - let normal = new THREE.Vector3().subVectors(camera.position, camOnLine); - let plane = new THREE.Plane().setFromNormalAndCoplanarPoint(normal, drag.intersectionStart); - drag.dragPlane = plane; - drag.pivot = drag.intersectionStart; - }else{ - handle = drag.handle; - } - - this.dragging = true; - - { - let mouse = drag.end; - let domElement = this.viewer.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - let I = ray.intersectPlane(drag.dragPlane, new THREE.Vector3()); - - if (I) { - let iOnLine = drag.line.closestPointToPoint(I, false, new THREE.Vector3()); - - let diff = new THREE.Vector3().subVectors(iOnLine, drag.pivot); - - for (let selection of this.selection) { - selection.position.add(diff); - selection.dispatchEvent({ - type: "position_changed", - object: selection - }); - } - - drag.pivot = drag.pivot.add(diff); - } - } - } - - dropTranslationHandle(e){ - this.dragging = false; - this.setActiveHandle(null); - } - - dropScaleHandle(e){ - this.dragging = false; - this.setActiveHandle(null); - } - - dragScaleHandle(e){ - let drag = e.drag; - let handle = this.activeHandle; - let camera = this.viewer.scene.getActiveCamera(); - - if(!drag.intersectionStart){ - drag.intersectionStart = drag.location; - drag.objectStart = drag.object.getWorldPosition(new THREE.Vector3()); - drag.handle = handle; - - let start = drag.intersectionStart; - let dir = new THREE.Vector4(...handle.alignment, 0).applyMatrix4(this.scene.matrixWorld); - let end = new THREE.Vector3().addVectors(start, dir); - let line = new THREE.Line3(start.clone(), end.clone()); - drag.line = line; - - let camOnLine = line.closestPointToPoint(camera.position, false, new THREE.Vector3()); - let normal = new THREE.Vector3().subVectors(camera.position, camOnLine); - let plane = new THREE.Plane().setFromNormalAndCoplanarPoint(normal, drag.intersectionStart); - drag.dragPlane = plane; - drag.pivot = drag.intersectionStart; - - //Utils.debugSphere(viewer.scene.scene, drag.pivot, 0.05); - }else{ - handle = drag.handle; - } - - this.dragging = true; - - { - let mouse = drag.end; - let domElement = this.viewer.renderer.domElement; - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - let I = ray.intersectPlane(drag.dragPlane, new THREE.Vector3()); - - if (I) { - let iOnLine = drag.line.closestPointToPoint(I, false, new THREE.Vector3()); - let direction = handle.alignment.reduce( (a, v) => a + v, 0); - - let toObjectSpace = new THREE.Matrix4().getInverse( this.selection[0].matrixWorld); - let iOnLineOS = iOnLine.clone().applyMatrix4(toObjectSpace); - let pivotOS = drag.pivot.clone().applyMatrix4(toObjectSpace); - let diffOS = new THREE.Vector3().subVectors(iOnLineOS, pivotOS); - let dragDirectionOS = diffOS.clone().normalize(); - if(iOnLine.distanceTo(drag.pivot) === 0){ - dragDirectionOS.set(0, 0, 0); - } - let dragDirection = dragDirectionOS.dot(new THREE.Vector3(...handle.alignment)); - - let diff = new THREE.Vector3().subVectors(iOnLine, drag.pivot); - let diffScale = new THREE.Vector3(...handle.alignment).multiplyScalar(diff.length() * direction * dragDirection); - let diffPosition = diff.clone().multiplyScalar(0.5); - - for (let selection of this.selection) { - selection.scale.add(diffScale); - selection.scale.x = Math.max(0.1, selection.scale.x); - selection.scale.y = Math.max(0.1, selection.scale.y); - selection.scale.z = Math.max(0.1, selection.scale.z); - selection.position.add(diffPosition); - selection.dispatchEvent({ - type: "position_changed", - object: selection - }); - selection.dispatchEvent({ - type: "scale_changed", - object: selection - }); - } - - drag.pivot.copy(iOnLine); - //Utils.debugSphere(viewer.scene.scene, drag.pivot, 0.05); - } - } - } - - setActiveHandle(handle){ - if(this.dragging){ - return; - } - - if(this.activeHandle === handle){ - return; - } - - this.activeHandle = handle; - - if(handle === null){ - for(let handleName of Object.keys(this.handles)){ - let handle = this.handles[handleName]; - handle.node.setOpacity(0); - } - } - - for(let handleName of Object.keys(this.focusHandles)){ - let handle = this.focusHandles[handleName]; - - if(this.activeHandle === handle){ - handle.node.setOpacity(1.0); - }else{ - handle.node.setOpacity(0.4) - } - } - - for(let handleName of Object.keys(this.translationHandles)){ - let handle = this.translationHandles[handleName]; - - if(this.activeHandle === handle){ - handle.node.setOpacity(1.0); - }else{ - handle.node.setOpacity(0.4) - } - } - - for(let handleName of Object.keys(this.rotationHandles)){ - let handle = this.rotationHandles[handleName]; - - //if(this.activeHandle === handle){ - // handle.node.setOpacity(1.0); - //}else{ - // handle.node.setOpacity(0.4) - //} - - handle.node.setOpacity(0.4); - } - - for(let handleName of Object.keys(this.scaleHandles)){ - let handle = this.scaleHandles[handleName]; - - if(this.activeHandle === handle){ - handle.node.setOpacity(1.0); - - let relatedFocusHandle = this.focusHandles[handle.name.replace("scale", "focus")]; - let relatedFocusNode = relatedFocusHandle.node; - relatedFocusNode.setOpacity(0.4); - - for(let translationHandleName of Object.keys(this.translationHandles)){ - let translationHandle = this.translationHandles[translationHandleName]; - translationHandle.node.setOpacity(0.4); - } - - //let relatedTranslationHandle = this.translationHandles[ - // handle.name.replace("scale", "translation").replace(/[+-]/g, "")]; - //let relatedTranslationNode = relatedTranslationHandle.node; - //relatedTranslationNode.setOpacity(0.4); - - - }else{ - handle.node.setOpacity(0.4) - } - } - - - - - - if(handle){ - handle.node.setOpacity(1.0); - } - - - } - - update () { - - if(this.selection.length === 1){ - - this.scene.visible = true; - - this.scene.updateMatrix(); - this.scene.updateMatrixWorld(); - - let selected = this.selection[0]; - let world = selected.matrixWorld; - let camera = this.viewer.scene.getActiveCamera(); - let domElement = this.viewer.renderer.domElement; - let mouse = this.viewer.inputHandler.mouse; - - let center = selected.boundingBox.getCenter(new THREE.Vector3()).clone().applyMatrix4(selected.matrixWorld); - - this.scene.scale.copy(selected.boundingBox.getSize(new THREE.Vector3()).multiply(selected.scale)); - this.scene.position.copy(center); - this.scene.rotation.copy(selected.rotation); - - this.scene.updateMatrixWorld(); - - { - // adjust scale of components - for(let handleName of Object.keys(this.handles)){ - let handle = this.handles[handleName]; - let node = handle.node; - - let handlePos = node.getWorldPosition(new THREE.Vector3()); - let distance = handlePos.distanceTo(camera.position); - let pr = Utils.projectedRadius(1, camera, distance, domElement.clientWidth, domElement.clientHeight); - - let ws = node.parent.getWorldScale(new THREE.Vector3()); - - let s = (7 / pr); - let scale = new THREE.Vector3(s, s, s).divide(ws); - - let rot = new THREE.Matrix4().makeRotationFromEuler(node.rotation); - let rotInv = new THREE.Matrix4().getInverse(rot); - - scale.applyMatrix4(rotInv); - scale.x = Math.abs(scale.x); - scale.y = Math.abs(scale.y); - scale.z = Math.abs(scale.z); - - node.scale.copy(scale); - } - - // adjust rotation handles - if(!this.dragging){ - let tWorld = this.scene.matrixWorld; - let tObject = new THREE.Matrix4().getInverse(tWorld) - let camObjectPos = camera.getWorldPosition(new THREE.Vector3()).applyMatrix4(tObject); - - let x = this.rotationHandles["rotation.x"].node.rotation; - let y = this.rotationHandles["rotation.y"].node.rotation; - let z = this.rotationHandles["rotation.z"].node.rotation; - - x.order = "ZYX"; - y.order = "ZYX"; - - let above = camObjectPos.z > 0; - let below = !above; - let PI_HALF = Math.PI / 2; - - if(above){ - if(camObjectPos.x > 0 && camObjectPos.y > 0){ - x.x = 1 * PI_HALF; - y.y = 3 * PI_HALF; - z.z = 0 * PI_HALF; - }else if(camObjectPos.x < 0 && camObjectPos.y > 0){ - x.x = 1 * PI_HALF; - y.y = 2 * PI_HALF; - z.z = 1 * PI_HALF; - }else if(camObjectPos.x < 0 && camObjectPos.y < 0){ - x.x = 2 * PI_HALF; - y.y = 2 * PI_HALF; - z.z = 2 * PI_HALF; - }else if(camObjectPos.x > 0 && camObjectPos.y < 0){ - x.x = 2 * PI_HALF; - y.y = 3 * PI_HALF; - z.z = 3 * PI_HALF; - } - }else if(below){ - if(camObjectPos.x > 0 && camObjectPos.y > 0){ - x.x = 0 * PI_HALF; - y.y = 0 * PI_HALF; - z.z = 0 * PI_HALF; - }else if(camObjectPos.x < 0 && camObjectPos.y > 0){ - x.x = 0 * PI_HALF; - y.y = 1 * PI_HALF; - z.z = 1 * PI_HALF; - }else if(camObjectPos.x < 0 && camObjectPos.y < 0){ - x.x = 3 * PI_HALF; - y.y = 1 * PI_HALF; - z.z = 2 * PI_HALF; - }else if(camObjectPos.x > 0 && camObjectPos.y < 0){ - x.x = 3 * PI_HALF; - y.y = 0 * PI_HALF; - z.z = 3 * PI_HALF; - } - } - } - - { - let ray = Utils.mouseToRay(mouse, camera, domElement.clientWidth, domElement.clientHeight); - let raycaster = new THREE.Raycaster(ray.origin, ray.direction); - let intersects = raycaster.intersectObjects(this.pickVolumes.filter(v => v.visible), true); - - if(intersects.length > 0){ - let I = intersects[0]; - let handleName = I.object.handle; - this.setActiveHandle(this.handles[handleName]); - }else{ - this.setActiveHandle(null); - } - } - - // - for(let handleName of Object.keys(this.scaleHandles)){ - let handle = this.handles[handleName]; - let node = handle.node; - let alignment = handle.alignment; - - - - } - } - - - { - let axisScale = (alignment) => { - let transformed = new THREE.Vector3(...alignment).applyMatrix4(selected.matrixWorld); - let distance = transformed.distanceTo(selected.getWorldPosition(new THREE.Vector3())); - - return distance; - }; - - let scale = new THREE.Vector3( - axisScale([1, 0, 0]), - axisScale([0, 1, 0]), - axisScale([0, 0, 1]), - ); - - } - - }else{ - this.scene.visible = false; - } - - } - -}; diff --git a/app/static/app/js/vendor/potree/src/utils/Volume.js b/app/static/app/js/vendor/potree/src/utils/Volume.js deleted file mode 100644 index fc81c3ba..00000000 --- a/app/static/app/js/vendor/potree/src/utils/Volume.js +++ /dev/null @@ -1,331 +0,0 @@ -import {TextSprite} from "../TextSprite.js"; - -export class Volume extends THREE.Object3D { - constructor (args = {}) { - super(); - - if(this.constructor.name === "Volume"){ - console.warn("Can't create object of class Volume directly. Use classes BoxVolume or SphereVolume instead."); - } - - //console.log(this); - //console.log(this.constructor); - //console.log(this.constructor.name); - - this._clip = args.clip || false; - this._visible = true; - this.showVolumeLabel = true; - this._modifiable = args.modifiable || true; - - this.label = new TextSprite('0'); - this.label.setBorderColor({r: 0, g: 255, b: 0, a: 0.0}); - this.label.setBackgroundColor({r: 0, g: 255, b: 0, a: 0.0}); - this.label.material.depthTest = false; - this.label.material.depthWrite = false; - this.label.material.transparent = true; - this.label.position.y -= 0.5; - this.add(this.label); - - this.label.updateMatrixWorld = () => { - let volumeWorldPos = new THREE.Vector3(); - volumeWorldPos.setFromMatrixPosition(this.matrixWorld); - this.label.position.copy(volumeWorldPos); - this.label.updateMatrix(); - this.label.matrixWorld.copy(this.label.matrix); - this.label.matrixWorldNeedsUpdate = false; - - for (let i = 0, l = this.label.children.length; i < l; i++) { - this.label.children[ i ].updateMatrixWorld(true); - } - }; - - { // event listeners - this.addEventListener('select', e => {}); - this.addEventListener('deselect', e => {}); - } - - } - - get visible(){ - return this._visible; - } - - set visible(value){ - if(this._visible !== value){ - this._visible = value; - - this.dispatchEvent({type: "visibility_changed", object: this}); - } - } - - getVolume () { - console.warn("override this in subclass"); - } - - update () { - - }; - - raycast (raycaster, intersects) { - - } - - get clip () { - return this._clip; - } - - set clip (value) { - - if(this._clip !== value){ - this._clip = value; - - this.update(); - - this.dispatchEvent({ - type: "clip_changed", - object: this - }); - } - - } - - get modifieable () { - return this._modifiable; - } - - set modifieable (value) { - this._modifiable = value; - - this.update(); - } -}; - - -export class BoxVolume extends Volume{ - - constructor(args = {}){ - super(args); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - this.name = 'box_' + this.constructor.counter; - - let boxGeometry = new THREE.BoxGeometry(1, 1, 1); - boxGeometry.computeBoundingBox(); - - let boxFrameGeometry = new THREE.Geometry(); - { - // bottom - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - // top - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - // sides - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, 0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(0.5, 0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, -0.5, -0.5)); - boxFrameGeometry.vertices.push(new THREE.Vector3(-0.5, 0.5, -0.5)); - } - - this.material = new THREE.MeshBasicMaterial({ - color: 0x00ff00, - transparent: true, - opacity: 0.3, - depthTest: true, - depthWrite: false}); - this.box = new THREE.Mesh(boxGeometry, this.material); - this.box.geometry.computeBoundingBox(); - this.boundingBox = this.box.geometry.boundingBox; - this.add(this.box); - - this.frame = new THREE.LineSegments(boxFrameGeometry, new THREE.LineBasicMaterial({color: 0x000000})); - // this.frame.mode = THREE.Lines; - this.add(this.frame); - - this.update(); - } - - update(){ - this.boundingBox = this.box.geometry.boundingBox; - this.boundingSphere = this.boundingBox.getBoundingSphere(new THREE.Sphere()); - - if (this._clip) { - this.box.visible = false; - this.label.visible = false; - } else { - this.box.visible = true; - this.label.visible = this.showVolumeLabel; - } - } - - raycast (raycaster, intersects) { - let is = []; - this.box.raycast(raycaster, is); - - if (is.length > 0) { - let I = is[0]; - intersects.push({ - distance: I.distance, - object: this, - point: I.point.clone() - }); - } - } - - getVolume(){ - return Math.abs(this.scale.x * this.scale.y * this.scale.z); - } - -}; - -export class SphereVolume extends Volume{ - - constructor(args = {}){ - super(args); - - this.constructor.counter = (this.constructor.counter === undefined) ? 0 : this.constructor.counter + 1; - this.name = 'sphere_' + this.constructor.counter; - - let sphereGeometry = new THREE.SphereGeometry(1, 32, 32); - sphereGeometry.computeBoundingBox(); - - this.material = new THREE.MeshBasicMaterial({ - color: 0x00ff00, - transparent: true, - opacity: 0.3, - depthTest: true, - depthWrite: false}); - this.sphere = new THREE.Mesh(sphereGeometry, this.material); - this.sphere.visible = false; - this.sphere.geometry.computeBoundingBox(); - this.boundingBox = this.sphere.geometry.boundingBox; - this.add(this.sphere); - - this.label.visible = false; - - - let frameGeometry = new THREE.Geometry(); - { - let steps = 64; - let uSegments = 8; - let vSegments = 5; - let r = 1; - - for(let uSegment = 0; uSegment < uSegments; uSegment++){ - - let alpha = (uSegment / uSegments) * Math.PI * 2; - let dirx = Math.cos(alpha); - let diry = Math.sin(alpha); - - for(let i = 0; i <= steps; i++){ - let v = (i / steps) * Math.PI * 2; - let vNext = v + 2 * Math.PI / steps; - - let height = Math.sin(v); - let xyAmount = Math.cos(v); - - let heightNext = Math.sin(vNext); - let xyAmountNext = Math.cos(vNext); - - let vertex = new THREE.Vector3(dirx * xyAmount, diry * xyAmount, height); - frameGeometry.vertices.push(vertex); - - let vertexNext = new THREE.Vector3(dirx * xyAmountNext, diry * xyAmountNext, heightNext); - frameGeometry.vertices.push(vertexNext); - } - } - - // creates rings at poles, just because it's easier to implement - for(let vSegment = 0; vSegment <= vSegments + 1; vSegment++){ - - //let height = (vSegment / (vSegments + 1)) * 2 - 1; // -1 to 1 - let uh = (vSegment / (vSegments + 1)); // -1 to 1 - uh = (1 - uh) * (-Math.PI / 2) + uh *(Math.PI / 2); - let height = Math.sin(uh); - - console.log(uh, height); - - for(let i = 0; i <= steps; i++){ - let u = (i / steps) * Math.PI * 2; - let uNext = u + 2 * Math.PI / steps; - - let dirx = Math.cos(u); - let diry = Math.sin(u); - - let dirxNext = Math.cos(uNext); - let diryNext = Math.sin(uNext); - - let xyAmount = Math.sqrt(1 - height * height); - - let vertex = new THREE.Vector3(dirx * xyAmount, diry * xyAmount, height); - frameGeometry.vertices.push(vertex); - - let vertexNext = new THREE.Vector3(dirxNext * xyAmount, diryNext * xyAmount, height); - frameGeometry.vertices.push(vertexNext); - } - } - } - - this.frame = new THREE.LineSegments(frameGeometry, new THREE.LineBasicMaterial({color: 0x000000})); - this.add(this.frame); - - let frameMaterial = new THREE.MeshBasicMaterial({wireframe: true, color: 0x000000}); - this.frame = new THREE.Mesh(sphereGeometry, frameMaterial); - //this.add(this.frame); - - //this.frame = new THREE.LineSegments(boxFrameGeometry, new THREE.LineBasicMaterial({color: 0x000000})); - // this.frame.mode = THREE.Lines; - //this.add(this.frame); - - this.update(); - } - - update(){ - this.boundingBox = this.sphere.geometry.boundingBox; - this.boundingSphere = this.boundingBox.getBoundingSphere(new THREE.Sphere()); - - //if (this._clip) { - // this.sphere.visible = false; - // this.label.visible = false; - //} else { - // this.sphere.visible = true; - // this.label.visible = this.showVolumeLabel; - //} - } - - raycast (raycaster, intersects) { - let is = []; - this.sphere.raycast(raycaster, is); - - if (is.length > 0) { - let I = is[0]; - intersects.push({ - distance: I.distance, - object: this, - point: I.point.clone() - }); - } - } - - // see https://en.wikipedia.org/wiki/Ellipsoid#Volume - getVolume(){ - return (4 / 3) * Math.PI * this.scale.x * this.scale.y * this.scale.z; - } - -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/utils/VolumeTool.js b/app/static/app/js/vendor/potree/src/utils/VolumeTool.js deleted file mode 100644 index 23d232e5..00000000 --- a/app/static/app/js/vendor/potree/src/utils/VolumeTool.js +++ /dev/null @@ -1,156 +0,0 @@ -import {Volume, BoxVolume} from "./Volume.js"; -import {Utils} from "../utils.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - -export class VolumeTool extends EventDispatcher{ - constructor (viewer) { - super(); - - this.viewer = viewer; - this.renderer = viewer.renderer; - - this.addEventListener('start_inserting_volume', e => { - this.viewer.dispatchEvent({ - type: 'cancel_insertions' - }); - }); - - this.scene = new THREE.Scene(); - this.scene.name = 'scene_volume'; - - this.viewer.inputHandler.registerInteractiveScene(this.scene); - - this.onRemove = e => { - this.scene.remove(e.volume); - }; - - this.onAdd = e => { - this.scene.add(e.volume); - }; - - for(let volume of viewer.scene.volumes){ - this.onAdd({volume: volume}); - } - - this.viewer.inputHandler.addEventListener('delete', e => { - let volumes = e.selection.filter(e => (e instanceof Volume)); - volumes.forEach(e => this.viewer.scene.removeVolume(e)); - }); - - viewer.addEventListener("update", this.update.bind(this)); - viewer.addEventListener("render.pass.scene", e => this.render(e)); - viewer.addEventListener("scene_changed", this.onSceneChange.bind(this)); - - viewer.scene.addEventListener('volume_added', this.onAdd); - viewer.scene.addEventListener('volume_removed', this.onRemove); - } - - onSceneChange(e){ - if(e.oldScene){ - e.oldScene.removeEventListeners('volume_added', this.onAdd); - e.oldScene.removeEventListeners('volume_removed', this.onRemove); - } - - e.scene.addEventListener('volume_added', this.onAdd); - e.scene.addEventListener('volume_removed', this.onRemove); - } - - startInsertion (args = {}) { - let volume; - if(args.type){ - volume = new args.type(); - }else{ - volume = new BoxVolume(); - } - - volume.clip = args.clip || false; - volume.name = args.name || 'Volume'; - - this.dispatchEvent({ - type: 'start_inserting_volume', - volume: volume - }); - - this.viewer.scene.addVolume(volume); - this.scene.add(volume); - - let cancel = { - callback: null - }; - - let drag = e => { - let camera = this.viewer.scene.getActiveCamera(); - - let I = Utils.getMousePointCloudIntersection( - e.drag.end, - this.viewer.scene.getActiveCamera(), - this.viewer, - this.viewer.scene.pointclouds, - {pickClipped: false}); - - if (I) { - volume.position.copy(I.location); - - let wp = volume.getWorldPosition(new THREE.Vector3()).applyMatrix4(camera.matrixWorldInverse); - // let pp = new THREE.Vector4(wp.x, wp.y, wp.z).applyMatrix4(camera.projectionMatrix); - let w = Math.abs((wp.z / 5)); - volume.scale.set(w, w, w); - } - }; - - let drop = e => { - volume.removeEventListener('drag', drag); - volume.removeEventListener('drop', drop); - - cancel.callback(); - }; - - cancel.callback = e => { - volume.removeEventListener('drag', drag); - volume.removeEventListener('drop', drop); - this.viewer.removeEventListener('cancel_insertions', cancel.callback); - }; - - volume.addEventListener('drag', drag); - volume.addEventListener('drop', drop); - this.viewer.addEventListener('cancel_insertions', cancel.callback); - - this.viewer.inputHandler.startDragging(volume); - - return volume; - } - - update(){ - if (!this.viewer.scene) { - return; - } - - let camera = this.viewer.scene.getActiveCamera(); - let clientWidth = this.viewer.renderer.getSize().width; - let clientHeight = this.viewer.renderer.getSize().height; - - let volumes = this.viewer.scene.volumes; - for (let volume of volumes) { - let label = volume.label; - - { - - let distance = label.position.distanceTo(camera.position); - let pr = Utils.projectedRadius(1, camera, distance, clientWidth, clientHeight); - - let scale = (70 / pr); - label.scale.set(scale, scale, scale); - } - - let calculatedVolume = volume.getVolume(); - calculatedVolume = calculatedVolume / Math.pow(this.viewer.lengthUnit.unitspermeter, 3) * Math.pow(this.viewer.lengthUnitDisplay.unitspermeter, 3); //convert to cubic meters then to the cubic display unit - let text = Utils.addCommas(calculatedVolume.toFixed(3)) + ' ' + this.viewer.lengthUnitDisplay.code + '\u00B3'; - label.setText(text); - } - } - - render(params){ - this.viewer.renderer.render(this.scene, this.viewer.scene.getActiveCamera(), params.renderTarget); - } - -} diff --git a/app/static/app/js/vendor/potree/src/utils/toInterleavedBufferAttribute.js b/app/static/app/js/vendor/potree/src/utils/toInterleavedBufferAttribute.js deleted file mode 100644 index 6f48a5cb..00000000 --- a/app/static/app/js/vendor/potree/src/utils/toInterleavedBufferAttribute.js +++ /dev/null @@ -1,31 +0,0 @@ - - -import {PointAttribute} from "../loader/PointAttributes.js"; - -export function toInterleavedBufferAttribute(pointAttribute){ - let att = null; - - if (pointAttribute.name === PointAttribute.POSITION_CARTESIAN.name) { - att = new Potree.InterleavedBufferAttribute("position", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.COLOR_PACKED.name) { - att = new Potree.InterleavedBufferAttribute("color", 4, 4, "UNSIGNED_BYTE", true); - } else if (pointAttribute.name === PointAttribute.INTENSITY.name) { - att = new Potree.InterleavedBufferAttribute("intensity", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.CLASSIFICATION.name) { - att = new Potree.InterleavedBufferAttribute("classification", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.RETURN_NUMBER.name) { - att = new Potree.InterleavedBufferAttribute("returnNumber", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NUMBER_OF_RETURNS.name) { - att = new Potree.InterleavedBufferAttribute("numberOfReturns", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.SOURCE_ID.name) { - att = new Potree.InterleavedBufferAttribute("pointSourceID", 4, 1, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL_SPHEREMAPPED.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL_OCT16.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } else if (pointAttribute.name === PointAttribute.NORMAL.name) { - att = new Potree.InterleavedBufferAttribute("normal", 12, 3, "FLOAT", false); - } - - return att; -}; diff --git a/app/static/app/js/vendor/potree/src/viewer/EDLRenderer.js b/app/static/app/js/vendor/potree/src/viewer/EDLRenderer.js deleted file mode 100644 index 5cc50682..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/EDLRenderer.js +++ /dev/null @@ -1,298 +0,0 @@ -import {PointCloudSM} from "../utils/PointCloudSM.js"; -import {EyeDomeLightingMaterial} from "../materials/EyeDomeLightingMaterial.js"; -import {PointColorType} from "../defines.js"; -import {SphereVolume} from "../utils/Volume.js"; -import {Utils} from "../utils.js"; - -export class EDLRenderer{ - constructor(viewer){ - this.viewer = viewer; - - this.edlMaterial = null; - - this.rtRegular; - this.rtEDL; - - this.gl = viewer.renderer.context; - - this.shadowMap = new PointCloudSM(this.viewer.pRenderer); - } - - initEDL(){ - if (this.edlMaterial != null) { - return; - } - - this.edlMaterial = new EyeDomeLightingMaterial(); - this.edlMaterial.depthTest = true; - this.edlMaterial.depthWrite = true; - this.edlMaterial.transparent = true; - - this.rtEDL = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType, - depthTexture: new THREE.DepthTexture(undefined, undefined, THREE.UnsignedIntType) - }); - - this.rtRegular = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - depthTexture: new THREE.DepthTexture(undefined, undefined, THREE.UnsignedIntType) - }); - - //{ - // let geometry = new THREE.PlaneBufferGeometry( 1, 1, 32, 32); - // let material = new THREE.MeshBasicMaterial( {side: THREE.DoubleSide, map: this.shadowMap.target.texture} ); - // let plane = new THREE.Mesh( geometry, material ); - // plane.scale.set(0.5, 0.5, 1.0); - // plane.position.set(plane.scale.x / 2, plane.scale.y / 2, 0); - // this.viewer.overlay.add(plane); - //} - }; - - resize(){ - const viewer = this.viewer; - - let pixelRatio = viewer.renderer.getPixelRatio(); - let {width, height} = viewer.renderer.getSize(); - - if(this.screenshot){ - width = this.screenshot.target.width; - height = this.screenshot.target.height; - } - - this.rtEDL.setSize(width * pixelRatio , height * pixelRatio); - this.rtRegular.setSize(width * pixelRatio , height * pixelRatio); - } - - makeScreenshot(camera, size, callback){ - - if(camera === undefined || camera === null){ - camera = this.viewer.scene.getActiveCamera(); - } - - if(size === undefined || size === null){ - size = this.viewer.renderer.getSize(); - } - - let {width, height} = size; - - //let maxTextureSize = viewer.renderer.capabilities.maxTextureSize; - //if(width * 4 < - width = 2 * width; - height = 2 * height; - - let target = new THREE.WebGLRenderTarget(width, height, { - format: THREE.RGBAFormat, - }); - - this.screenshot = { - target: target - }; - - this.viewer.renderer.clearTarget(target, true, true, true); - - this.render(); - - let pixelCount = width * height; - let buffer = new Uint8Array(4 * pixelCount); - - this.viewer.renderer.readRenderTargetPixels(target, 0, 0, width, height, buffer); - - // flip vertically - let bytesPerLine = width * 4; - for(let i = 0; i < parseInt(height / 2); i++){ - let j = height - i - 1; - - let lineI = buffer.slice(i * bytesPerLine, i * bytesPerLine + bytesPerLine); - let lineJ = buffer.slice(j * bytesPerLine, j * bytesPerLine + bytesPerLine); - buffer.set(lineJ, i * bytesPerLine); - buffer.set(lineI, j * bytesPerLine); - } - - this.screenshot.target.dispose(); - delete this.screenshot; - - return { - width: width, - height: height, - buffer: buffer - }; - } - - render(){ - this.initEDL(); - const viewer = this.viewer; - - viewer.dispatchEvent({type: "render.pass.begin",viewer: viewer}); - - this.resize(); - - if(this.screenshot){ - let oldBudget = PotreeExports.pointBudget; - PotreeExports.pointBudget = Math.max(10 * 1000 * 1000, 2 * oldBudget); - let result = Potree.updatePointClouds( - viewer.scene.pointclouds, - viewer.scene.getActiveCamera(), - viewer.renderer); - PotreeExports.pointBudget = oldBudget; - } - - let camera = viewer.scene.getActiveCamera(); - - let lights = []; - viewer.scene.scene.traverse(node => { - if(node instanceof THREE.SpotLight){ - lights.push(node); - } - }); - - if(viewer.background === "skybox"){ - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.skybox.camera.rotation.copy(viewer.scene.cameraP.rotation); - viewer.skybox.camera.fov = viewer.scene.cameraP.fov; - viewer.skybox.camera.aspect = viewer.scene.cameraP.aspect; - viewer.skybox.camera.updateProjectionMatrix(); - viewer.renderer.render(viewer.skybox.scene, viewer.skybox.camera); - } else if (viewer.background === 'gradient') { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.renderer.render(viewer.scene.sceneBG, viewer.scene.cameraBG); - } else if (viewer.background === 'black') { - viewer.renderer.setClearColor(0x000000, 1); - viewer.renderer.clear(); - } else if (viewer.background === 'white') { - viewer.renderer.setClearColor(0xFFFFFF, 1); - viewer.renderer.clear(); - } else { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - } - - // TODO adapt to multiple lights - if(lights.length > 0 && !(lights[0].disableShadowUpdates)){ - let light = lights[0]; - - this.shadowMap.setLight(light); - - let originalAttributes = new Map(); - for(let pointcloud of viewer.scene.pointclouds){ - originalAttributes.set(pointcloud, pointcloud.material.pointColorType); - pointcloud.material.disableEvents(); - pointcloud.material.pointColorType = PointColorType.DEPTH; - } - - this.shadowMap.render(viewer.scene.scenePointCloud, camera); - - for(let pointcloud of viewer.scene.pointclouds){ - let originalAttribute = originalAttributes.get(pointcloud); - pointcloud.material.pointColorType = originalAttribute; - pointcloud.material.enableEvents(); - } - - viewer.shadowTestCam.updateMatrixWorld(); - viewer.shadowTestCam.matrixWorldInverse.getInverse(viewer.shadowTestCam.matrixWorld); - viewer.shadowTestCam.updateProjectionMatrix(); - - } - - //viewer.renderer.render(viewer.scene.scene, camera); - - //viewer.renderer.clearTarget( this.rtColor, true, true, true ); - viewer.renderer.clearTarget(this.rtEDL, true, true, true); - viewer.renderer.clearTarget(this.rtRegular, true, true, false); - - let width = viewer.renderer.getSize().width; - let height = viewer.renderer.getSize().height; - - // COLOR & DEPTH PASS - for (let pointcloud of viewer.scene.pointclouds) { - let octreeSize = pointcloud.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x; - - let material = pointcloud.material; - material.weighted = false; - material.useLogarithmicDepthBuffer = false; - material.useEDL = true; - - material.screenWidth = width; - material.screenHeight = height; - material.uniforms.visibleNodes.value = pointcloud.material.visibleNodesTexture; - material.uniforms.octreeSize.value = octreeSize; - material.spacing = pointcloud.pcoGeometry.spacing * Math.max(pointcloud.scale.x, pointcloud.scale.y, pointcloud.scale.z); - } - - // TODO adapt to multiple lights - if(lights.length > 0){ - viewer.pRenderer.render(viewer.scene.scenePointCloud, camera, this.rtEDL, { - clipSpheres: viewer.scene.volumes.filter(v => (v instanceof SphereVolume)), - shadowMaps: [this.shadowMap], - transparent: false, - }); - }else{ - viewer.pRenderer.render(viewer.scene.scenePointCloud, camera, this.rtEDL, { - clipSpheres: viewer.scene.volumes.filter(v => (v instanceof SphereVolume)), - transparent: false, - }); - } - - //viewer.renderer.render(viewer.scene.scene, camera, this.rtRegular); - viewer.renderer.render(viewer.scene.scene, camera); - - //viewer.renderer.setRenderTarget(this.rtColor); - //viewer.dispatchEvent({type: "render.pass.scene", viewer: viewer, renderTarget: this.rtRegular}); - - { // EDL OCCLUSION PASS - this.edlMaterial.uniforms.screenWidth.value = width; - this.edlMaterial.uniforms.screenHeight.value = height; - - //this.edlMaterial.uniforms.colorMap.value = this.rtColor.texture; - - let proj = camera.projectionMatrix; - let projArray = new Float32Array(16); - projArray.set(proj.elements); - - this.edlMaterial.uniforms.uNear.value = camera.near; - this.edlMaterial.uniforms.uFar.value = camera.far; - //this.edlMaterial.uniforms.uRegularColor.value = this.rtRegular.texture; - this.edlMaterial.uniforms.uEDLColor.value = this.rtEDL.texture; - //this.edlMaterial.uniforms.uRegularDepth.value = this.rtRegular.depthTexture; - this.edlMaterial.uniforms.uEDLDepth.value = this.rtEDL.depthTexture; - this.edlMaterial.uniforms.uProj.value = projArray; - - this.edlMaterial.uniforms.edlStrength.value = viewer.edlStrength; - this.edlMaterial.uniforms.radius.value = viewer.edlRadius; - this.edlMaterial.uniforms.opacity.value = 1; - - Utils.screenPass.render(viewer.renderer, this.edlMaterial); - - if(this.screenshot){ - Utils.screenPass.render(viewer.renderer, this.edlMaterial, this.screenshot.target); - } - - } - - viewer.renderer.clearDepth(); - - viewer.transformationTool.update(); - - viewer.dispatchEvent({type: "render.pass.perspective_overlay",viewer: viewer}); - - viewer.renderer.render(viewer.controls.sceneControls, camera); - viewer.renderer.render(viewer.clippingTool.sceneVolume, camera); - viewer.renderer.render(viewer.transformationTool.scene, camera); - - viewer.renderer.setViewport(width - viewer.navigationCube.width, - height - viewer.navigationCube.width, - viewer.navigationCube.width, viewer.navigationCube.width); - viewer.renderer.render(viewer.navigationCube, viewer.navigationCube.camera); - viewer.renderer.setViewport(0, 0, width, height); - - viewer.dispatchEvent({type: "render.pass.end",viewer: viewer}); - - } -} - diff --git a/app/static/app/js/vendor/potree/src/viewer/HQSplatRenderer.js b/app/static/app/js/vendor/potree/src/viewer/HQSplatRenderer.js deleted file mode 100644 index 70941622..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/HQSplatRenderer.js +++ /dev/null @@ -1,299 +0,0 @@ -import {NormalizationMaterial} from "../materials/NormalizationMaterial.js"; -import {NormalizationEDLMaterial} from "../materials/NormalizationEDLMaterial.js"; -import {PointCloudMaterial} from "../materials/PointCloudMaterial.js"; -import {PointShape} from "../defines.js"; -import {SphereVolume} from "../utils/Volume.js"; -import {Utils} from "../utils.js"; - - -export class HQSplatRenderer{ - - constructor(viewer){ - this.viewer = viewer; - - this.depthMaterials = new Map(); - this.attributeMaterials = new Map(); - this.normalizationMaterial = null; - - this.rtDepth = null; - this.rtAttribute = null; - this.gl = viewer.renderer.context; - - this.initialized = false; - } - - init(){ - if (this.initialized) { - return; - } - - this.normalizationMaterial = new NormalizationMaterial(); - this.normalizationMaterial.depthTest = true; - this.normalizationMaterial.depthWrite = true; - this.normalizationMaterial.transparent = true; - - this.normalizationEDLMaterial = new NormalizationEDLMaterial(); - this.normalizationEDLMaterial.depthTest = true; - this.normalizationEDLMaterial.depthWrite = true; - this.normalizationEDLMaterial.transparent = true; - - this.rtDepth = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType, - depthTexture: new THREE.DepthTexture(undefined, undefined, THREE.UnsignedIntType) - }); - - this.rtAttribute = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType, - depthTexture: this.rtDepth.depthTexture, - //depthTexture: new THREE.DepthTexture(undefined, undefined, THREE.UnsignedIntType) - }); - - //{ - // let geometry = new THREE.PlaneBufferGeometry( 1, 1, 32, 32); - // let material = new THREE.MeshBasicMaterial( {side: THREE.DoubleSide, map: this.rtDepth.texture} ); - // let plane = new THREE.Mesh( geometry, material ); - // plane.scale.set(0.3, 0.3, 1.0); - // plane.position.set(plane.scale.x / 2, plane.scale.y / 2, 0); - // this.viewer.overlay.add(plane); - //} - - this.initialized = true; - }; - - resize () { - const viewer = this.viewer; - - let pixelRatio = viewer.renderer.getPixelRatio(); - let width = viewer.renderer.getSize().width; - let height = viewer.renderer.getSize().height; - this.rtDepth.setSize(width * pixelRatio , height * pixelRatio); - this.rtAttribute.setSize(width * pixelRatio , height * pixelRatio); - } - - render () { - this.init(); - const viewer = this.viewer; - - viewer.dispatchEvent({type: "render.pass.begin",viewer: viewer}); - - this.resize(); - - let camera = viewer.scene.getActiveCamera(); - - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clearTarget( this.rtDepth, true, true, true ); - viewer.renderer.clearTarget( this.rtAttribute, true, true, true ); - - let width = viewer.renderer.getSize().width; - let height = viewer.renderer.getSize().height; - - let visiblePointClouds = viewer.scene.pointclouds.filter(pc => pc.visible); - let originalMaterials = new Map(); - - for(let pointcloud of visiblePointClouds){ - originalMaterials.set(pointcloud, pointcloud.material); - - if(!this.attributeMaterials.has(pointcloud)){ - let attributeMaterial = new PointCloudMaterial(); - this.attributeMaterials.set(pointcloud, attributeMaterial); - } - - if(!this.depthMaterials.has(pointcloud)){ - let depthMaterial = new PointCloudMaterial(); - - depthMaterial.setDefine("depth_pass", "#define hq_depth_pass"); - depthMaterial.setDefine("use_edl", "#define use_edl"); - - this.depthMaterials.set(pointcloud, depthMaterial); - } - } - - { // DEPTH PASS - for (let pointcloud of visiblePointClouds) { - let octreeSize = pointcloud.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x; - - let material = originalMaterials.get(pointcloud); - let depthMaterial = this.depthMaterials.get(pointcloud); - - depthMaterial.size = material.size; - depthMaterial.minSize = material.minSize; - depthMaterial.maxSize = material.maxSize; - - depthMaterial.pointSizeType = material.pointSizeType; - depthMaterial.visibleNodesTexture = material.visibleNodesTexture; - depthMaterial.weighted = false; - depthMaterial.screenWidth = width; - depthMaterial.shape = PointShape.CIRCLE; - depthMaterial.screenHeight = height; - depthMaterial.uniforms.visibleNodes.value = material.visibleNodesTexture; - depthMaterial.uniforms.octreeSize.value = octreeSize; - depthMaterial.spacing = pointcloud.pcoGeometry.spacing * Math.max(...pointcloud.scale.toArray()); - depthMaterial.classification = material.classification; - - depthMaterial.uniforms.uFilterReturnNumberRange.value = material.uniforms.uFilterReturnNumberRange.value; - depthMaterial.uniforms.uFilterNumberOfReturnsRange.value = material.uniforms.uFilterNumberOfReturnsRange.value; - depthMaterial.uniforms.uFilterGPSTimeClipRange.value = material.uniforms.uFilterGPSTimeClipRange.value; - - //depthMaterial.uniforms.uGPSOffset.value = material.uniforms.uGPSOffset.value; - //depthMaterial.uniforms.uGPSRange.value = material.uniforms.uGPSRange.value; - - depthMaterial.clipTask = material.clipTask; - depthMaterial.clipMethod = material.clipMethod; - depthMaterial.setClipBoxes(material.clipBoxes); - depthMaterial.setClipPolygons(material.clipPolygons); - - pointcloud.material = depthMaterial; - } - - viewer.pRenderer.render(viewer.scene.scenePointCloud, camera, this.rtDepth, { - clipSpheres: viewer.scene.volumes.filter(v => (v instanceof SphereVolume)), - //material: this.depthMaterial - }); - } - - { // ATTRIBUTE PASS - for (let pointcloud of visiblePointClouds) { - let octreeSize = pointcloud.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x; - - let material = originalMaterials.get(pointcloud); - let attributeMaterial = this.attributeMaterials.get(pointcloud); - - attributeMaterial.size = material.size; - attributeMaterial.minSize = material.minSize; - attributeMaterial.maxSize = material.maxSize; - - attributeMaterial.pointSizeType = material.pointSizeType; - attributeMaterial.pointColorType = material.pointColorType; - attributeMaterial.visibleNodesTexture = material.visibleNodesTexture; - attributeMaterial.weighted = true; - attributeMaterial.screenWidth = width; - attributeMaterial.screenHeight = height; - attributeMaterial.shape = PointShape.CIRCLE; - attributeMaterial.uniforms.visibleNodes.value = material.visibleNodesTexture; - attributeMaterial.uniforms.octreeSize.value = octreeSize; - attributeMaterial.spacing = pointcloud.pcoGeometry.spacing * Math.max(...pointcloud.scale.toArray()); - attributeMaterial.classification = material.classification; - - attributeMaterial.uniforms.uFilterReturnNumberRange.value = material.uniforms.uFilterReturnNumberRange.value; - attributeMaterial.uniforms.uFilterNumberOfReturnsRange.value = material.uniforms.uFilterNumberOfReturnsRange.value; - attributeMaterial.uniforms.uFilterGPSTimeClipRange.value = material.uniforms.uFilterGPSTimeClipRange.value; - - attributeMaterial.elevationRange = material.elevationRange; - attributeMaterial.gradient = material.gradient; - - attributeMaterial.intensityRange = material.intensityRange; - attributeMaterial.intensityGamma = material.intensityGamma; - attributeMaterial.intensityContrast = material.intensityContrast; - attributeMaterial.intensityBrightness = material.intensityBrightness; - - attributeMaterial.rgbGamma = material.rgbGamma; - attributeMaterial.rgbContrast = material.rgbContrast; - attributeMaterial.rgbBrightness = material.rgbBrightness; - - attributeMaterial.weightRGB = material.weightRGB; - attributeMaterial.weightIntensity = material.weightIntensity; - attributeMaterial.weightElevation = material.weightElevation; - attributeMaterial.weightRGB = material.weightRGB; - attributeMaterial.weightClassification = material.weightClassification; - attributeMaterial.weightReturnNumber = material.weightReturnNumber; - attributeMaterial.weightSourceID = material.weightSourceID; - - attributeMaterial.color = material.color; - - attributeMaterial.clipTask = material.clipTask; - attributeMaterial.clipMethod = material.clipMethod; - attributeMaterial.setClipBoxes(material.clipBoxes); - attributeMaterial.setClipPolygons(material.clipPolygons); - - pointcloud.material = attributeMaterial; - } - - let gl = this.gl; - - viewer.renderer.setRenderTarget(null); - viewer.pRenderer.render(viewer.scene.scenePointCloud, camera, this.rtAttribute, { - clipSpheres: viewer.scene.volumes.filter(v => (v instanceof SphereVolume)), - //material: this.attributeMaterial, - blendFunc: [gl.SRC_ALPHA, gl.ONE], - //depthTest: false, - depthWrite: false - }); - } - - for(let [pointcloud, material] of originalMaterials){ - pointcloud.material = material; - } - - viewer.renderer.setRenderTarget(null); - if(viewer.background === "skybox"){ - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.skybox.camera.rotation.copy(viewer.scene.cameraP.rotation); - viewer.skybox.camera.fov = viewer.scene.cameraP.fov; - viewer.skybox.camera.aspect = viewer.scene.cameraP.aspect; - viewer.skybox.camera.updateProjectionMatrix(); - viewer.renderer.render(viewer.skybox.scene, viewer.skybox.camera); - } else if (viewer.background === 'gradient') { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.renderer.render(viewer.scene.sceneBG, viewer.scene.cameraBG); - } else if (viewer.background === 'black') { - viewer.renderer.setClearColor(0x000000, 1); - viewer.renderer.clear(); - } else if (viewer.background === 'white') { - viewer.renderer.setClearColor(0xFFFFFF, 1); - viewer.renderer.clear(); - } else { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - } - - { // NORMALIZATION PASS - let normalizationMaterial = this.useEDL ? this.normalizationEDLMaterial : this.normalizationMaterial; - - if(this.useEDL){ - normalizationMaterial.uniforms.edlStrength.value = viewer.edlStrength; - normalizationMaterial.uniforms.radius.value = viewer.edlRadius; - normalizationMaterial.uniforms.screenWidth.value = width; - normalizationMaterial.uniforms.screenHeight.value = height; - normalizationMaterial.uniforms.uEDLMap.value = this.rtDepth.texture; - } - - normalizationMaterial.uniforms.uWeightMap.value = this.rtAttribute.texture; - normalizationMaterial.uniforms.uDepthMap.value = this.rtAttribute.depthTexture; - - Utils.screenPass.render(viewer.renderer, normalizationMaterial); - } - - viewer.renderer.render(viewer.scene.scene, camera); - - viewer.dispatchEvent({type: "render.pass.scene", viewer: viewer}); - - viewer.renderer.clearDepth(); - - viewer.transformationTool.update(); - - viewer.dispatchEvent({type: "render.pass.perspective_overlay",viewer: viewer}); - - viewer.renderer.render(viewer.controls.sceneControls, camera); - viewer.renderer.render(viewer.clippingTool.sceneVolume, camera); - viewer.renderer.render(viewer.transformationTool.scene, camera); - - viewer.renderer.setViewport(width - viewer.navigationCube.width, - height - viewer.navigationCube.width, - viewer.navigationCube.width, viewer.navigationCube.width); - viewer.renderer.render(viewer.navigationCube, viewer.navigationCube.camera); - viewer.renderer.setViewport(0, 0, width, height); - - viewer.dispatchEvent({type: "render.pass.end",viewer: viewer}); - - } - -} - diff --git a/app/static/app/js/vendor/potree/src/viewer/NavigationCube.js b/app/static/app/js/vendor/potree/src/viewer/NavigationCube.js deleted file mode 100644 index 92536af4..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/NavigationCube.js +++ /dev/null @@ -1,111 +0,0 @@ -export class NavigationCube extends THREE.Object3D { - - constructor(viewer){ - super(); - - this.viewer = viewer; - - let createPlaneMaterial = (img) => { - let material = new THREE.MeshBasicMaterial( { - depthTest: true, - depthWrite: true, - side: THREE.DoubleSide - }); - new THREE.TextureLoader().load( - PotreeExports.resourcePath + '/textures/navigation/' + img, - function(texture) { - texture.anisotropy = viewer.renderer.capabilities.getMaxAnisotropy(); - material.map = texture; - material.needsUpdate = true; - }); - return material; - }; - - let planeGeometry = new THREE.PlaneGeometry(1, 1); - - this.front = new THREE.Mesh(planeGeometry, createPlaneMaterial('F.png')); - this.front.position.y = -0.5; - this.front.rotation.x = Math.PI / 2.0; - this.front.updateMatrixWorld(); - this.front.name = "F"; - this.add(this.front); - - this.back = new THREE.Mesh(planeGeometry, createPlaneMaterial('B.png')); - this.back.position.y = 0.5; - this.back.rotation.x = Math.PI / 2.0; - this.back.updateMatrixWorld(); - this.back.name = "B"; - this.add(this.back); - - this.left = new THREE.Mesh(planeGeometry, createPlaneMaterial('L.png')); - this.left.position.x = -0.5; - this.left.rotation.y = Math.PI / 2.0; - this.left.updateMatrixWorld(); - this.left.name = "L"; - this.add(this.left); - - this.right = new THREE.Mesh(planeGeometry, createPlaneMaterial('R.png')); - this.right.position.x = 0.5; - this.right.rotation.y = Math.PI / 2.0; - this.right.updateMatrixWorld(); - this.right.name = "R"; - this.add(this.right); - - this.bottom = new THREE.Mesh(planeGeometry, createPlaneMaterial('D.png')); - this.bottom.position.z = -0.5; - this.bottom.updateMatrixWorld(); - this.bottom.name = "D"; - this.add(this.bottom); - - this.top = new THREE.Mesh(planeGeometry, createPlaneMaterial('U.png')); - this.top.position.z = 0.5; - this.top.updateMatrixWorld(); - this.top.name = "U"; - this.add(this.top); - - this.width = 150; // in px - - this.camera = new THREE.OrthographicCamera(-1, 1, 1, -1, -1, 1); - this.camera.position.copy(new THREE.Vector3(0, 0, 0)); - this.camera.lookAt(new THREE.Vector3(0, 1, 0)); - this.camera.updateMatrixWorld(); - this.camera.rotation.order = "ZXY"; - - let onMouseDown = (event) => { - this.pickedFace = null; - let mouse = new THREE.Vector2(); - mouse.x = event.clientX - (window.innerWidth - this.width); - mouse.y = event.clientY; - - if(mouse.x < 0 || mouse.y > this.width) return; - - mouse.x = (mouse.x / this.width) * 2 - 1; - mouse.y = -(mouse.y / this.width) * 2 + 1; - - let raycaster = new THREE.Raycaster(); - raycaster.setFromCamera(mouse, this.camera); - raycaster.ray.origin.sub(this.camera.getWorldDirection(new THREE.Vector3())); - - let intersects = raycaster.intersectObjects(this.children); - - let minDistance = 1000; - for (let i = 0; i < intersects.length; i++) { - if(intersects[i].distance < minDistance) { - this.pickedFace = intersects[i].object.name; - minDistance = intersects[i].distance; - } - } - if(this.pickedFace) { - this.viewer.setView(this.pickedFace); - } - }; - - this.viewer.renderer.domElement.addEventListener('mousedown', onMouseDown, false); - } - - update(rotation) { - this.camera.rotation.copy(rotation); - this.camera.updateMatrixWorld(); - } - -} \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PotreeRenderer.js b/app/static/app/js/vendor/potree/src/viewer/PotreeRenderer.js deleted file mode 100644 index c0b01886..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PotreeRenderer.js +++ /dev/null @@ -1,74 +0,0 @@ - -export class PotreeRenderer { - - constructor (viewer) { - this.viewer = viewer; - } - - render(){ - const viewer = this.viewer; - - viewer.dispatchEvent({type: "render.pass.begin",viewer: viewer}); - - // render skybox - if(viewer.background === "skybox"){ - viewer.renderer.clear(true, true, false); - viewer.skybox.camera.rotation.copy(viewer.scene.cameraP.rotation); - viewer.skybox.camera.fov = viewer.scene.cameraP.fov; - viewer.skybox.camera.aspect = viewer.scene.cameraP.aspect; - viewer.skybox.camera.updateProjectionMatrix(); - viewer.renderer.render(viewer.skybox.scene, viewer.skybox.camera); - }else if(viewer.background === "gradient"){ - viewer.renderer.clear(true, true, false); - viewer.renderer.render(viewer.scene.sceneBG, viewer.scene.cameraBG); - }else if(viewer.background === "black"){ - viewer.renderer.setClearColor(0x000000, 1); - viewer.renderer.clear(true, true, false); - }else if(viewer.background === "white"){ - viewer.renderer.setClearColor(0xFFFFFF, 1); - viewer.renderer.clear(true, true, false); - }else{ - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(true, true, false); - } - - for(let pointcloud of this.viewer.scene.pointclouds){ - pointcloud.material.useEDL = false; - } - - let activeCam = viewer.scene.getActiveCamera(); - //viewer.renderer.render(viewer.scene.scenePointCloud, activeCam); - - viewer.pRenderer.render(viewer.scene.scenePointCloud, activeCam, null, { - clipSpheres: viewer.scene.volumes.filter(v => (v instanceof Potree.SphereVolume)), - }); - - // render scene - viewer.renderer.render(viewer.scene.scene, activeCam); - - viewer.dispatchEvent({type: "render.pass.scene",viewer: viewer}); - - viewer.clippingTool.update(); - viewer.renderer.render(viewer.clippingTool.sceneMarker, viewer.scene.cameraScreenSpace); //viewer.scene.cameraScreenSpace); - viewer.renderer.render(viewer.clippingTool.sceneVolume, activeCam); - - viewer.renderer.render(viewer.controls.sceneControls, activeCam); - - viewer.renderer.clearDepth(); - - viewer.transformationTool.update(); - - viewer.dispatchEvent({type: "render.pass.perspective_overlay",viewer: viewer}); - - viewer.renderer.render(viewer.transformationTool.scene, activeCam); - - viewer.renderer.setViewport(viewer.renderer.domElement.clientWidth - viewer.navigationCube.width, - viewer.renderer.domElement.clientHeight - viewer.navigationCube.width, - viewer.navigationCube.width, viewer.navigationCube.width); - viewer.renderer.render(viewer.navigationCube, viewer.navigationCube.camera); - viewer.renderer.setViewport(0, 0, viewer.renderer.domElement.clientWidth, viewer.renderer.domElement.clientHeight); - - viewer.dispatchEvent({type: "render.pass.end",viewer: viewer}); - } - -} diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AnglePanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AnglePanel.js deleted file mode 100644 index c98cbf38..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AnglePanel.js +++ /dev/null @@ -1,67 +0,0 @@ - - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class AnglePanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      - - - - - - - - - - - -
      \u03b1\u03b2\u03b3
      - - -
      - - - -
      -
      - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeMeasurement(measurement); - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points.map(p => p.position))); - - let angles = []; - for(let i = 0; i < this.measurement.points.length; i++){ - angles.push(this.measurement.getAngle(i) * (180.0 / Math.PI)); - } - angles = angles.map(a => a.toFixed(1) + '\u00B0'); - - let elAlpha = this.elContent.find(`#angle_cell_alpha`); - let elBetta = this.elContent.find(`#angle_cell_betta`); - let elGamma = this.elContent.find(`#angle_cell_gamma`); - - elAlpha.html(angles[0]); - elBetta.html(angles[1]); - elGamma.html(angles[2]); - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AreaPanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AreaPanel.js deleted file mode 100644 index 36f03c55..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/AreaPanel.js +++ /dev/null @@ -1,46 +0,0 @@ - - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class AreaPanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      - Area: - - - -
      - - - -
      -
      - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeMeasurement(measurement); - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points.map(p => p.position))); - - let elArea = this.elContent.find(`#measurement_area`); - elArea.html(this.measurement.getArea().toFixed(3)); - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/CameraPanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/CameraPanel.js deleted file mode 100644 index dec81366..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/CameraPanel.js +++ /dev/null @@ -1,86 +0,0 @@ - -import {Utils} from "../../utils.js"; - -export class CameraPanel{ - constructor(viewer, propertiesPanel){ - this.viewer = viewer; - this.propertiesPanel = propertiesPanel; - - this._update = () => { this.update(); }; - - let copyIconPath = Potree.resourcePath + '/icons/copy.svg'; - this.elContent = $(` -
      - - - - - - - - - - - - - - - - - - - - - -
      position
      - -
      target
      - -
      -
      - `); - - this.elCopyPosition = this.elContent.find("img[name=copyPosition]"); - this.elCopyPosition.click( () => { - let pos = this.viewer.scene.getActiveCamera().position.toArray(); - let msg = pos.map(c => c.toFixed(3)).join(", "); - Utils.clipboardCopy(msg); - - this.viewer.postMessage( - `Copied value to clipboard:
      '${msg}'`, - {duration: 3000}); - }); - - this.elCopyTarget = this.elContent.find("img[name=copyTarget]"); - this.elCopyTarget.click( () => { - let pos = this.viewer.scene.view.getPivot().toArray(); - let msg = pos.map(c => c.toFixed(3)).join(", "); - Utils.clipboardCopy(msg); - - this.viewer.postMessage( - `Copied value to clipboard:
      '${msg}'`, - {duration: 3000}); - }); - - this.propertiesPanel.addVolatileListener(viewer, "camera_changed", this._update); - - this.update(); - } - - update(){ - console.log("updating camera panel"); - - let camera = this.viewer.scene.getActiveCamera(); - let view = this.viewer.scene.view; - - let pos = camera.position.toArray().map(c => Utils.addCommas(c.toFixed(3))); - this.elContent.find("#camera_position_x").html(pos[0]); - this.elContent.find("#camera_position_y").html(pos[1]); - this.elContent.find("#camera_position_z").html(pos[2]); - - let target = view.getPivot().toArray().map(c => Utils.addCommas(c.toFixed(3))); - this.elContent.find("#camera_target_x").html(target[0]); - this.elContent.find("#camera_target_y").html(target[1]); - this.elContent.find("#camera_target_z").html(target[2]); - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/DistancePanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/DistancePanel.js deleted file mode 100644 index 946c0721..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/DistancePanel.js +++ /dev/null @@ -1,70 +0,0 @@ - - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class DistancePanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      -
      - - -
      - - - -
      -
      - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeMeasurement(measurement); - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points.map(p => p.position))); - - let positions = this.measurement.points.map(p => p.position); - let distances = []; - for (let i = 0; i < positions.length - 1; i++) { - let d = positions[i].distanceTo(positions[i + 1]); - distances.push(d.toFixed(3)); - } - - let totalDistance = this.measurement.getTotalDistance().toFixed(3); - let elDistanceTable = this.elContent.find(`#distances_table`); - elDistanceTable.empty(); - - for (let i = 0; i < distances.length; i++) { - let label = (i === 0) ? 'Distances: ' : ''; - let distance = distances[i]; - let elDistance = $(` - - ${label} - ${distance} - `); - elDistanceTable.append(elDistance); - } - - let elTotal = $(` - - Total: ${totalDistance} - `); - elDistanceTable.append(elTotal); - } -}; diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/HeightPanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/HeightPanel.js deleted file mode 100644 index 0f4ae898..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/HeightPanel.js +++ /dev/null @@ -1,57 +0,0 @@ - - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class HeightPanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      - Height:
      - - -
      - - - -
      -
      - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeMeasurement(measurement); - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points.map(p => p.position))); - - { - let points = this.measurement.points; - - let sorted = points.slice().sort((a, b) => a.position.z - b.position.z); - let lowPoint = sorted[0].position.clone(); - let highPoint = sorted[sorted.length - 1].position.clone(); - let min = lowPoint.z; - let max = highPoint.z; - let height = max - min; - height = height.toFixed(3); - - this.elHeightLabel = this.elContent.find(`#height_label`); - this.elHeightLabel.html(`Height: ${height}`); - } - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/MeasurePanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/MeasurePanel.js deleted file mode 100644 index 661d7bd6..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/MeasurePanel.js +++ /dev/null @@ -1,98 +0,0 @@ - - -import {Utils} from "../../utils.js"; - -export class MeasurePanel{ - - constructor(viewer, measurement, propertiesPanel){ - this.viewer = viewer; - this.measurement = measurement; - this.propertiesPanel = propertiesPanel; - - this._update = () => { this.update(); }; - } - - createCoordinatesTable(points){ - let table = $(` - - - - - - - -
      xyz
      - `); - - let copyIconPath = Potree.resourcePath + '/icons/copy.svg'; - - for (let point of points) { - let x = Utils.addCommas(point.x.toFixed(3)); - let y = Utils.addCommas(point.y.toFixed(3)); - let z = Utils.addCommas(point.z.toFixed(3)); - - let row = $(` - - ${x} - ${y} - ${z} - - - - - `); - - this.elCopy = row.find("img[name=copy]"); - this.elCopy.click( () => { - let msg = point.toArray().map(c => c.toFixed(3)).join(", "); - Utils.clipboardCopy(msg); - - this.viewer.postMessage( - `Copied value to clipboard:
      '${msg}'`, - {duration: 3000}); - }); - - table.append(row); - } - - return table; - }; - - createAttributesTable(){ - let elTable = $('
      '); - - let point = this.measurement.points[0]; - - for(let attributeName of Object.keys(point)){ - if(attributeName === "position"){ - - }else if(attributeName === "color"){ - let color = point.color; - let text = color.join(', '); - - elTable.append($(` - - rgb - ${text} - - `)); - }else{ - let value = point[attributeName]; - let text = value.join(', '); - - elTable.append($(` - - ${attributeName} - ${text} - - `)); - } - } - - return elTable; - } - - update(){ - - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PointPanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PointPanel.js deleted file mode 100644 index ee133e29..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PointPanel.js +++ /dev/null @@ -1,46 +0,0 @@ - - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class PointPanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      - - - -
      - - - -
      -
      - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeMeasurement(measurement); - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points.map(p => p.position))); - - let elAttributesContainer = this.elContent.find('.attributes_table_container'); - elAttributesContainer.empty(); - elAttributesContainer.append(this.createAttributesTable()); - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/ProfilePanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/ProfilePanel.js deleted file mode 100644 index b681c96b..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/ProfilePanel.js +++ /dev/null @@ -1,293 +0,0 @@ -import {MeasurePanel} from "./MeasurePanel.js"; - -export class ProfilePanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - this.elContent = $(` -
      - -
      - - Width: - - -
      - -
    • - -
      -
    • - -
      - - - - -
      - - - -
      - - `); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeProfile(measurement); - }); - - { // download - this.elDownloadButton = this.elContent.find(`input[name=download_profile]`); - - if(this.propertiesPanel.viewer.server){ - this.elDownloadButton.click(() => this.download()); - } else { - this.elDownloadButton.hide(); - } - } - - { // width spinner - let elWidthSlider = this.elContent.find(`#sldProfileWidth`); - - elWidthSlider.spinner({ - min: 0, max: 10 * 1000 * 1000, step: 0.01, - numberFormat: 'n', - start: () => {}, - spin: (event, ui) => { - let value = elWidthSlider.spinner('value'); - measurement.setWidth(value); - }, - change: (event, ui) => { - let value = elWidthSlider.spinner('value'); - measurement.setWidth(value); - }, - stop: (event, ui) => { - let value = elWidthSlider.spinner('value'); - measurement.setWidth(value); - }, - incremental: (count) => { - let value = elWidthSlider.spinner('value'); - let step = elWidthSlider.spinner('option', 'step'); - - let delta = value * 0.05; - let increments = Math.max(1, parseInt(delta / step)); - - return increments; - } - }); - elWidthSlider.spinner('value', measurement.getWidth()); - elWidthSlider.spinner('widget').css('width', '100%'); - - let widthListener = (event) => { - let value = elWidthSlider.spinner('value'); - if (value !== measurement.getWidth()) { - elWidthSlider.spinner('value', measurement.getWidth()); - } - }; - this.propertiesPanel.addVolatileListener(measurement, "width_changed", widthListener); - } - - let elShow2DProfile = this.elContent.find(`#show_2d_profile`); - elShow2DProfile.click(() => { - this.propertiesPanel.viewer.profileWindow.show(); - this.propertiesPanel.viewer.profileWindowController.setProfile(measurement); - for(let pointcloud of this.viewer.scene.pointclouds){ - let material = pointcloud.material; - let pointColorType = material.pointColorType; - material.pointColorType = Potree.PointColorType.RGB_HEIGHT; - setTimeout(() => { - material.pointColorType = pointColorType; - }, 2000); - } - }); - - this.propertiesPanel.addVolatileListener(measurement, "marker_added", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_removed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "marker_moved", this._update); - - this.update(); - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable(this.measurement.points)); - } - - async download(){ - - let profile = this.measurement; - - let regions = []; - { - let segments = profile.getSegments(); - let width = profile.width; - - for(let segment of segments){ - let start = segment.start.clone().multiply(new THREE.Vector3(1, 1, 0)); - let end = segment.end.clone().multiply(new THREE.Vector3(1, 1, 0)); - let center = new THREE.Vector3().addVectors(start, end).multiplyScalar(0.5); - - let startEndDir = new THREE.Vector3().subVectors(end, start).normalize(); - let endStartDir = new THREE.Vector3().subVectors(start, end).normalize(); - let upDir = new THREE.Vector3(0, 0, 1); - let rightDir = new THREE.Vector3().crossVectors(startEndDir, upDir); - let leftDir = new THREE.Vector3().crossVectors(endStartDir, upDir); - - console.log(leftDir); - - let right = rightDir.clone().multiplyScalar(width * 0.5).add(center); - let left = leftDir.clone().multiplyScalar(width * 0.5).add(center); - - let planes = [ - new THREE.Plane().setFromNormalAndCoplanarPoint(startEndDir, start), - new THREE.Plane().setFromNormalAndCoplanarPoint(endStartDir, end), - new THREE.Plane().setFromNormalAndCoplanarPoint(leftDir, right), - new THREE.Plane().setFromNormalAndCoplanarPoint(rightDir, left), - ]; - - let planeQueryParts = []; - for(let plane of planes){ - let part = [plane.normal.toArray(), plane.constant].join(","); - part = `[${part}]`; - planeQueryParts.push(part); - } - let region = "[" + planeQueryParts.join(",") + "]"; - regions.push(region); - } - } - - let regionsArg = regions.join(","); - - let pointcloudArgs = []; - for(let pointcloud of this.viewer.scene.pointclouds){ - if(!pointcloud.visible){ - continue; - } - - let offset = pointcloud.pcoGeometry.offset.clone(); - let negateOffset = new THREE.Matrix4().makeTranslation(...offset.multiplyScalar(-1).toArray()); - let matrixWorld = pointcloud.matrixWorld; - - let transform = new THREE.Matrix4().multiplyMatrices(matrixWorld, negateOffset); - - let path = `${window.location.pathname}/../${pointcloud.pcoGeometry.url}`; - - let arg = { - path: path, - transform: transform.elements, - }; - let argString = JSON.stringify(arg); - - pointcloudArgs.push(argString); - } - let pointcloudsArg = pointcloudArgs.join(","); - - let elMessage = this.elContent.find("div[name=download_message]"); - - let error = (message) => { - elMessage.html(`
      ERROR: ${message}
      `); - }; - - let info = (message) => { - elMessage.html(`${message}`); - }; - - let handle = null; - { // START FILTER - let url = `${viewer.server}/create_regions_filter?pointclouds=[${pointcloudsArg}]®ions=[${regionsArg}]`; - - //console.log(url); - - info("estimating results ..."); - - let response = await fetch(url); - let jsResponse = await response.json(); - //console.log(jsResponse); - - if(!jsResponse.handle){ - error(jsResponse.message); - return; - }else{ - handle = jsResponse.handle; - } - } - - { // WAIT, CHECK PROGRESS, HANDLE FINISH - let url = `${viewer.server}/check_regions_filter?handle=${handle}`; - - let sleep = (function(duration){ - return new Promise( (res, rej) => { - setTimeout(() => { - res(); - }, duration); - }); - }); - - let handleFiltering = (jsResponse) => { - let {progress, estimate} = jsResponse; - - let progressFract = progress["processed points"] / estimate.points; - let progressPercents = parseInt(progressFract * 100); - - info(`progress: ${progressPercents}%`); - }; - - let handleFinish = (jsResponse) => { - let message = "downloads ready:
      "; - message += "
        "; - - for(let i = 0; i < jsResponse.pointclouds.length; i++){ - let url = `${viewer.server}/download_regions_filter_result?handle=${handle}&index=${i}`; - - message += `
      • result_${i}.las
      • \n`; - } - - let reportURL = `${viewer.server}/download_regions_filter_report?handle=${handle}`; - message += `
      • report.json
      • \n`; - message += "
      "; - - info(message); - }; - - let handleUnexpected = (jsResponse) => { - let message = `Unexpected Response.
      status: ${jsResponse.status}
      message: ${jsResponse.message}`; - info(message); - }; - - let handleError = (jsResponse) => { - let message = `ERROR: ${jsResponse.message}`; - error(message); - - throw new Error(message); - }; - - let start = Date.now(); - - while(true){ - let response = await fetch(url); - let jsResponse = await response.json(); - - if(jsResponse.status === "ERROR"){ - handleError(jsResponse); - }else if(jsResponse.status === "FILTERING"){ - handleFiltering(jsResponse); - }else if(jsResponse.status === "FINISHED"){ - handleFinish(jsResponse); - - break; - }else{ - handleUnexpected(jsResponse); - } - - let durationS = (Date.now() - start) / 1000; - let sleepAmountMS = durationS < 10 ? 100 : 1000; - - await sleep(sleepAmountMS); - } - } - - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PropertiesPanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PropertiesPanel.js deleted file mode 100644 index a004ba27..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/PropertiesPanel.js +++ /dev/null @@ -1,648 +0,0 @@ -import '../../../libs/spectrum'; -import '../../../libs/spectrum.css'; - -import {Utils} from "../../utils.js"; -import {PointCloudTree} from "../../PointCloudTree.js"; -import {Measure} from "../../utils/Measure.js"; -import {Profile} from "../../utils/Profile.js"; -import {Volume, BoxVolume, SphereVolume} from "../../utils/Volume.js"; -import {PointSizeType, PointShape} from "../../defines.js"; -import {Gradients} from "../../materials/Gradients.js"; - -import {MeasurePanel} from "./MeasurePanel.js"; -import {DistancePanel} from "./DistancePanel.js"; -import {PointPanel} from "./PointPanel.js"; -import {AreaPanel} from "./AreaPanel.js"; -import {AnglePanel} from "./AnglePanel.js"; -import {HeightPanel} from "./HeightPanel.js"; -import {VolumePanel} from "./VolumePanel.js"; -import {ProfilePanel} from "./ProfilePanel.js"; -import {CameraPanel} from "./CameraPanel.js"; - -export class PropertiesPanel{ - - constructor(container, viewer){ - this.container = container; - this.viewer = viewer; - this.object = null; - this.cleanupTasks = []; - this.scene = null; - } - - setScene(scene){ - this.scene = scene; - } - - set(object){ - if(this.object === object){ - return; - } - - this.object = object; - - for(let task of this.cleanupTasks){ - task(); - } - this.cleanupTasks = []; - this.container.empty(); - - if(object instanceof PointCloudTree){ - this.setPointCloud(object); - }else if(object instanceof Measure || object instanceof Profile || object instanceof Volume){ - this.setMeasurement(object); - }else if(object instanceof THREE.Camera){ - this.setCamera(object); - } - - } - - // - // Used for events that should be removed when the property object changes. - // This is for listening to materials, scene, point clouds, etc. - // not required for DOM listeners, since they are automatically cleared by removing the DOM subtree. - // - addVolatileListener(target, type, callback){ - target.addEventListener(type, callback); - this.cleanupTasks.push(() => { - target.removeEventListener(type, callback); - }); - } - - setPointCloud(pointcloud){ - - let material = pointcloud.material; - - let panel = $(` -
      -
        - -
      • - :
        -
      • - - -
      • - - -
      • - - -
      • -
        - -
      • - - -
      • :
      • - -
        - Attribute -
        - -
      • - - -
      • - -
        -
        - Attribute Weights -
        - -
      • RGB:
      • -
      • Intensity:
      • -
      • Elevation:
      • -
      • Classification:
      • -
      • Return Number:
      • -
      • Source ID:
      • -
        - -
        -
        - RGB -
        - -
      • Gamma:
      • -
      • Brightness:
      • -
      • Contrast:
      • -
        - -
        -
        - Color -
        - - -
        - - -
        -
        - Elevation -
        - -
      • :
      • -
      • - Gradient Scheme: -
        - -
        -
      • -
        - -
        -
        - Transition -
        - -
      • transition:
      • -
        - -
        -
        - Intensity -
        - -
      • Range:
      • -
      • Gamma:
      • -
      • Brightness:
      • -
      • Contrast:
      • -
        - -
        -
        - GPS Time -
        - -
        - -
        -
        - Indices -
        -
        - - -
      -
      - `); - - panel.i18n(); - this.container.append(panel); - - { // POINT SIZE - let sldPointSize = panel.find(`#sldPointSize`); - let lblPointSize = panel.find(`#lblPointSize`); - - sldPointSize.slider({ - value: material.size, - min: 0, - max: 3, - step: 0.01, - slide: function (event, ui) { material.size = ui.value; } - }); - - let update = (e) => { - lblPointSize.html(material.size.toFixed(2)); - sldPointSize.slider({value: material.size}); - }; - this.addVolatileListener(material, "point_size_changed", update); - - update(); - } - - { // POINT SIZING - let strSizeType = Object.keys(PointSizeType)[material.pointSizeType]; - - let opt = panel.find(`#optPointSizing`); - opt.selectmenu(); - opt.val(strSizeType).selectmenu('refresh'); - - opt.selectmenu({ - change: (event, ui) => { - material.pointSizeType = PointSizeType[ui.item.value]; - } - }); - } - - { // SHAPE - let opt = panel.find(`#optShape`); - - opt.selectmenu({ - change: (event, ui) => { - let value = ui.item.value; - - material.shape = PointShape[value]; - } - }); - - let update = () => { - let typename = Object.keys(PointShape)[material.shape]; - - opt.selectmenu().val(typename).selectmenu('refresh'); - }; - this.addVolatileListener(material, "point_shape_changed", update); - - update(); - } - - { // OPACITY - let sldOpacity = panel.find(`#sldOpacity`); - let lblOpacity = panel.find(`#lblOpacity`); - - sldOpacity.slider({ - value: material.opacity, - min: 0, - max: 1, - step: 0.001, - slide: function (event, ui) { - material.opacity = ui.value; - } - }); - - let update = (e) => { - lblOpacity.html(material.opacity.toFixed(2)); - sldOpacity.slider({value: material.opacity}); - }; - this.addVolatileListener(material, "opacity_changed", update); - - update(); - } - - { - let options = [ - 'RGB', - 'RGB and Elevation', - 'Color', - 'Elevation', - 'Intensity', - 'Intensity Gradient', - 'Classification', - 'Return Number', - 'Source', - 'GPS Time', - 'Index', - 'Level of Detail', - 'Composite' - ]; - - let attributeSelection = panel.find('#optMaterial'); - for(let option of options){ - let elOption = $(``); - attributeSelection.append(elOption); - } - - let updateMaterialPanel = (event, ui) => { - let selectedValue = attributeSelection.selectmenu().val(); - material.pointColorType = Utils.toMaterialID(selectedValue); - - let blockWeights = $('#materials\\.composite_weight_container'); - let blockElevation = $('#materials\\.elevation_container'); - let blockRGB = $('#materials\\.rgb_container'); - let blockColor = $('#materials\\.color_container'); - let blockIntensity = $('#materials\\.intensity_container'); - let blockIndex = $('#materials\\.index_container'); - let blockTransition = $('#materials\\.transition_container'); - - blockIndex.css('display', 'none'); - blockIntensity.css('display', 'none'); - blockElevation.css('display', 'none'); - blockRGB.css('display', 'none'); - blockColor.css('display', 'none'); - blockWeights.css('display', 'none'); - blockTransition.css('display', 'none'); - - if (selectedValue === 'Composite') { - blockWeights.css('display', 'block'); - blockElevation.css('display', 'block'); - blockRGB.css('display', 'block'); - blockIntensity.css('display', 'block'); - } else if (selectedValue === 'Elevation') { - blockElevation.css('display', 'block'); - } else if (selectedValue === 'RGB and Elevation') { - blockRGB.css('display', 'block'); - blockElevation.css('display', 'block'); - } else if (selectedValue === 'RGB') { - blockRGB.css('display', 'block'); - } else if (selectedValue === 'Color') { - blockColor.css('display', 'block'); - } else if (selectedValue === 'Intensity') { - blockIntensity.css('display', 'block'); - } else if (selectedValue === 'Intensity Gradient') { - blockIntensity.css('display', 'block'); - } else if (selectedValue === "Index" ){ - blockIndex.css('display', 'block'); - } - }; - - attributeSelection.selectmenu({change: updateMaterialPanel}); - - let update = () => { - attributeSelection.val(Utils.toMaterialName(material.pointColorType)).selectmenu('refresh'); - }; - this.addVolatileListener(material, "point_color_type_changed", update); - - update(); - updateMaterialPanel(); - } - - { - let schemes = [ - {name: "SPECTRAL", icon: `${Potree.resourcePath}/icons/gradients_spectral.png`}, - {name: "YELLOW_GREEN", icon: `${Potree.resourcePath}/icons/gradients_yellow_green.png`}, - {name: "PLASMA", icon: `${Potree.resourcePath}/icons/gradients_plasma.png`}, - {name: "GRAYSCALE", icon: `${Potree.resourcePath}/icons/gradients_grayscale.png`}, - {name: "RAINBOW", icon: `${Potree.resourcePath}/icons/gradients_rainbow.png`}, - ]; - - let elSchemeContainer = panel.find("#elevation_gradient_scheme_selection"); - - for(let scheme of schemes){ - let elScheme = $(` - - - - `); - - elScheme.click( () => { - material.gradient = Gradients[scheme.name]; - }); - - elSchemeContainer.append(elScheme); - } - - //panel.find("#gradient_spectral").click( () => { - // pointcloud.material.gradient = Potree.Gradients.SPECTRAL; - //}); - - //panel.find("#gradient_yellow_green").click( () => { - // pointcloud.material.gradient = Potree.Gradients.YELLOW_GREEN; - //}); - } - - { - panel.find('#sldRGBGamma').slider({ - value: material.rgbGamma, - min: 0, max: 4, step: 0.01, - slide: (event, ui) => {material.rgbGamma = ui.value} - }); - - panel.find('#sldRGBContrast').slider({ - value: material.rgbContrast, - min: -1, max: 1, step: 0.01, - slide: (event, ui) => {material.rgbContrast = ui.value} - }); - - panel.find('#sldRGBBrightness').slider({ - value: material.rgbBrightness, - min: -1, max: 1, step: 0.01, - slide: (event, ui) => {material.rgbBrightness = ui.value} - }); - - panel.find('#sldHeightRange').slider({ - range: true, - min: 0, max: 1000, step: 0.01, - values: [0, 1000], - slide: (event, ui) => { - material.heightMin = ui.values[0]; - material.heightMax = ui.values[1]; - } - }); - - panel.find('#sldIntensityRange').slider({ - range: true, - min: 0, max: 1, step: 0.01, - values: [0, 1], - slide: (event, ui) => { - let min = (Number(ui.values[0]) === 0) ? 0 : parseInt(Math.pow(2, 16 * ui.values[0])); - let max = parseInt(Math.pow(2, 16 * ui.values[1])); - material.intensityRange = [min, max]; - } - }); - - panel.find('#sldIntensityGamma').slider({ - value: material.intensityGamma, - min: 0, max: 4, step: 0.01, - slide: (event, ui) => {material.intensityGamma = ui.value} - }); - - panel.find('#sldIntensityContrast').slider({ - value: material.intensityContrast, - min: -1, max: 1, step: 0.01, - slide: (event, ui) => {material.intensityContrast = ui.value} - }); - - panel.find('#sldIntensityBrightness').slider({ - value: material.intensityBrightness, - min: -1, max: 1, step: 0.01, - slide: (event, ui) => {material.intensityBrightness = ui.value} - }); - - panel.find('#sldWeightRGB').slider({ - value: material.weightRGB, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightRGB = ui.value} - }); - - panel.find('#sldWeightIntensity').slider({ - value: material.weightIntensity, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightIntensity = ui.value} - }); - - panel.find('#sldWeightElevation').slider({ - value: material.weightElevation, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightElevation = ui.value} - }); - - panel.find('#sldWeightClassification').slider({ - value: material.weightClassification, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightClassification = ui.value} - }); - - panel.find('#sldWeightReturnNumber').slider({ - value: material.weightReturnNumber, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightReturnNumber = ui.value} - }); - - panel.find('#sldWeightSourceID').slider({ - value: material.weightSourceID, - min: 0, max: 1, step: 0.01, - slide: (event, ui) => {material.weightSourceID = ui.value} - }); - - panel.find(`#materials\\.color\\.picker`).spectrum({ - flat: true, - showInput: true, - preferredFormat: 'rgb', - cancelText: '', - chooseText: 'Apply', - color: `#${material.color.getHexString()}`, - move: color => { - let cRGB = color.toRgb(); - let tc = new THREE.Color().setRGB(cRGB.r / 255, cRGB.g / 255, cRGB.b / 255); - material.color = tc; - }, - change: color => { - let cRGB = color.toRgb(); - let tc = new THREE.Color().setRGB(cRGB.r / 255, cRGB.g / 255, cRGB.b / 255); - material.color = tc; - } - }); - - this.addVolatileListener(material, "color_changed", () => { - panel.find(`#materials\\.color\\.picker`) - .spectrum('set', `#${material.color.getHexString()}`); - }); - - let updateHeightRange = function () { - let box = [pointcloud.pcoGeometry.tightBoundingBox, pointcloud.getBoundingBoxWorld()] - .find(v => v !== undefined); - - pointcloud.updateMatrixWorld(true); - box = Utils.computeTransformedBoundingBox(box, pointcloud.matrixWorld); - - let bWidth = box.max.z - box.min.z; - let bMin = box.min.z - 0.2 * bWidth; - let bMax = box.max.z + 0.2 * bWidth; - - let range = material.elevationRange; - - panel.find('#lblHeightRange').html(`${range[0].toFixed(2)} to ${range[1].toFixed(2)}`); - panel.find('#sldHeightRange').slider({min: bMin, max: bMax, values: range}); - }; - - let updateIntensityRange = function () { - let range = material.intensityRange; - let [min, max] = range.map(v => Math.log2(v) / 16); - - panel.find('#lblIntensityRange').html(`${parseInt(range[0])} to ${parseInt(range[1])}`); - panel.find('#sldIntensityRange').slider({values: [min, max]}); - }; - - { - updateHeightRange(); - panel.find(`#sldHeightRange`).slider('option', 'min'); - panel.find(`#sldHeightRange`).slider('option', 'max'); - } - - let onIntensityChange = () => { - let gamma = material.intensityGamma; - let contrast = material.intensityContrast; - let brightness = material.intensityBrightness; - - updateIntensityRange(); - - panel.find('#lblIntensityGamma').html(gamma.toFixed(2)); - panel.find('#lblIntensityContrast').html(contrast.toFixed(2)); - panel.find('#lblIntensityBrightness').html(brightness.toFixed(2)); - - panel.find('#sldIntensityGamma').slider({value: gamma}); - panel.find('#sldIntensityContrast').slider({value: contrast}); - panel.find('#sldIntensityBrightness').slider({value: brightness}); - }; - - let onRGBChange = () => { - let gamma = material.rgbGamma; - let contrast = material.rgbContrast; - let brightness = material.rgbBrightness; - - panel.find('#lblRGBGamma').html(gamma.toFixed(2)); - panel.find('#lblRGBContrast').html(contrast.toFixed(2)); - panel.find('#lblRGBBrightness').html(brightness.toFixed(2)); - - panel.find('#sldRGBGamma').slider({value: gamma}); - panel.find('#sldRGBContrast').slider({value: contrast}); - panel.find('#sldRGBBrightness').slider({value: brightness}); - }; - - this.addVolatileListener(material, "material_property_changed", updateHeightRange); - this.addVolatileListener(material, "material_property_changed", onIntensityChange); - this.addVolatileListener(material, "material_property_changed", onRGBChange); - - updateHeightRange(); - onIntensityChange(); - onRGBChange(); - } - - } - - - - setMeasurement(object){ - - let TYPE = { - DISTANCE: {panel: DistancePanel}, - AREA: {panel: AreaPanel}, - POINT: {panel: PointPanel}, - ANGLE: {panel: AnglePanel}, - HEIGHT: {panel: HeightPanel}, - PROFILE: {panel: ProfilePanel}, - VOLUME: {panel: VolumePanel} - }; - - let getType = (measurement) => { - if (measurement instanceof Measure) { - if (measurement.showDistances && !measurement.showArea && !measurement.showAngles) { - return TYPE.DISTANCE; - } else if (measurement.showDistances && measurement.showArea && !measurement.showAngles) { - return TYPE.AREA; - } else if (measurement.maxMarkers === 1) { - return TYPE.POINT; - } else if (!measurement.showDistances && !measurement.showArea && measurement.showAngles) { - return TYPE.ANGLE; - } else if (measurement.showHeight) { - return TYPE.HEIGHT; - } else { - return TYPE.OTHER; - } - } else if (measurement instanceof Profile) { - return TYPE.PROFILE; - } else if (measurement instanceof Volume) { - return TYPE.VOLUME; - } - }; - - //this.container.html("measurement"); - - let type = getType(object); - let Panel = type.panel; - - let panel = new Panel(this.viewer, object, this); - this.container.append(panel.elContent); - } - - setCamera(camera){ - let panel = new CameraPanel(this.viewer, this); - this.container.append(panel.elContent); - } - -} diff --git a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/VolumePanel.js b/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/VolumePanel.js deleted file mode 100644 index 2856ee1a..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/PropertyPanels/VolumePanel.js +++ /dev/null @@ -1,387 +0,0 @@ - -import {Utils} from "../../utils.js"; -import {Volume, BoxVolume, SphereVolume} from "../../utils/Volume.js"; - -import {MeasurePanel} from "./MeasurePanel.js"; - -export class VolumePanel extends MeasurePanel{ - constructor(viewer, measurement, propertiesPanel){ - super(viewer, measurement, propertiesPanel); - - let copyIconPath = Potree.resourcePath + '/icons/copy.svg'; - let removeIconPath = Potree.resourcePath + '/icons/remove.svg'; - - let lblLengthText = new Map([ - [BoxVolume, "length"], - [SphereVolume, "rx"], - ]).get(measurement.constructor); - - let lblWidthText = new Map([ - [BoxVolume, "width"], - [SphereVolume, "ry"], - ]).get(measurement.constructor); - - let lblHeightText = new Map([ - [BoxVolume, "height"], - [SphereVolume, "rz"], - ]).get(measurement.constructor); - - this.elContent = $(` -
      - - - - - - - - - - - - - - - -
      \u03b1\u03b2\u03b3
      - -
      - - - - - - - - - - - - - - -
      ${lblLengthText}${lblWidthText}${lblHeightText}
      - -
      - -
      - Volume: - - - - -
    • - -
    • - -
    • - -
      -
    • - - - -
    • - - -
    • -
      - - - -
      -
      - `); - - { // download - this.elDownloadButton = this.elContent.find("input[name=download_volume]"); - - if(this.propertiesPanel.viewer.server){ - this.elDownloadButton.click(() => this.download()); - } else { - this.elDownloadButton.hide(); - } - } - - this.elCopyRotation = this.elContent.find("img[name=copyRotation]"); - this.elCopyRotation.click( () => { - let rotation = this.measurement.rotation.toArray().slice(0, 3); - let msg = rotation.map(c => c.toFixed(3)).join(", "); - Utils.clipboardCopy(msg); - - this.viewer.postMessage( - `Copied value to clipboard:
      '${msg}'`, - {duration: 3000}); - }); - - this.elCopyScale = this.elContent.find("img[name=copyScale]"); - this.elCopyScale.click( () => { - let scale = this.measurement.scale.toArray(); - let msg = scale.map(c => c.toFixed(3)).join(", "); - Utils.clipboardCopy(msg); - - this.viewer.postMessage( - `Copied value to clipboard:
      '${msg}'`, - {duration: 3000}); - }); - - this.elRemove = this.elContent.find("img[name=remove]"); - this.elRemove.click( () => { - this.viewer.scene.removeVolume(measurement); - }); - - this.elContent.find("#volume_reset_orientation").click(() => { - measurement.rotation.set(0, 0, 0); - }); - - this.elContent.find("#volume_make_uniform").click(() => { - let mean = (measurement.scale.x + measurement.scale.y + measurement.scale.z) / 3; - measurement.scale.set(mean, mean, mean); - }); - - this.elCheckClip = this.elContent.find('#volume_clip'); - this.elCheckClip.click(event => { - this.measurement.clip = event.target.checked; - }); - - this.elCheckShow = this.elContent.find('#volume_show'); - this.elCheckShow.click(event => { - this.measurement.visible = event.target.checked; - }); - - this.propertiesPanel.addVolatileListener(measurement, "position_changed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "orientation_changed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "scale_changed", this._update); - this.propertiesPanel.addVolatileListener(measurement, "clip_changed", this._update); - - this.update(); - } - - async download(){ - - let clipBox = this.measurement; - - let regions = []; - //for(let clipBox of boxes){ - { - let toClip = clipBox.matrixWorld; - - let px = new THREE.Vector3(+0.5, 0, 0).applyMatrix4(toClip); - let nx = new THREE.Vector3(-0.5, 0, 0).applyMatrix4(toClip); - let py = new THREE.Vector3(0, +0.5, 0).applyMatrix4(toClip); - let ny = new THREE.Vector3(0, -0.5, 0).applyMatrix4(toClip); - let pz = new THREE.Vector3(0, 0, +0.5).applyMatrix4(toClip); - let nz = new THREE.Vector3(0, 0, -0.5).applyMatrix4(toClip); - - let pxN = new THREE.Vector3().subVectors(nx, px).normalize(); - let nxN = pxN.clone().multiplyScalar(-1); - let pyN = new THREE.Vector3().subVectors(ny, py).normalize(); - let nyN = pyN.clone().multiplyScalar(-1); - let pzN = new THREE.Vector3().subVectors(nz, pz).normalize(); - let nzN = pzN.clone().multiplyScalar(-1); - - let planes = [ - new THREE.Plane().setFromNormalAndCoplanarPoint(pxN, px), - new THREE.Plane().setFromNormalAndCoplanarPoint(nxN, nx), - new THREE.Plane().setFromNormalAndCoplanarPoint(pyN, py), - new THREE.Plane().setFromNormalAndCoplanarPoint(nyN, ny), - new THREE.Plane().setFromNormalAndCoplanarPoint(pzN, pz), - new THREE.Plane().setFromNormalAndCoplanarPoint(nzN, nz), - ]; - - let planeQueryParts = []; - for(let plane of planes){ - let part = [plane.normal.toArray(), plane.constant].join(","); - part = `[${part}]`; - planeQueryParts.push(part); - } - let region = "[" + planeQueryParts.join(",") + "]"; - regions.push(region); - } - - let regionsArg = regions.join(","); - - let pointcloudArgs = []; - for(let pointcloud of this.viewer.scene.pointclouds){ - if(!pointcloud.visible){ - continue; - } - - let offset = pointcloud.pcoGeometry.offset.clone(); - let negateOffset = new THREE.Matrix4().makeTranslation(...offset.multiplyScalar(-1).toArray()); - let matrixWorld = pointcloud.matrixWorld; - - let transform = new THREE.Matrix4().multiplyMatrices(matrixWorld, negateOffset); - - let path = `${window.location.pathname}/../${pointcloud.pcoGeometry.url}`; - - let arg = { - path: path, - transform: transform.elements, - }; - let argString = JSON.stringify(arg); - - pointcloudArgs.push(argString); - } - let pointcloudsArg = pointcloudArgs.join(","); - - let elMessage = this.elContent.find("div[name=download_message]"); - - let error = (message) => { - elMessage.html(`
      ERROR: ${message}
      `); - }; - - let info = (message) => { - elMessage.html(`${message}`); - }; - - let handle = null; - { // START FILTER - let url = `${viewer.server}/create_regions_filter?pointclouds=[${pointcloudsArg}]®ions=[${regionsArg}]`; - - //console.log(url); - - info("estimating results ..."); - - let response = await fetch(url); - let jsResponse = await response.json(); - //console.log(jsResponse); - - if(!jsResponse.handle){ - error(jsResponse.message); - return; - }else{ - handle = jsResponse.handle; - } - } - - { // WAIT, CHECK PROGRESS, HANDLE FINISH - let url = `${viewer.server}/check_regions_filter?handle=${handle}`; - - let sleep = (function(duration){ - return new Promise( (res, rej) => { - setTimeout(() => { - res(); - }, duration); - }); - }); - - let handleFiltering = (jsResponse) => { - let {progress, estimate} = jsResponse; - - let progressFract = progress["processed points"] / estimate.points; - let progressPercents = parseInt(progressFract * 100); - - info(`progress: ${progressPercents}%`); - }; - - let handleFinish = (jsResponse) => { - let message = "downloads ready:
      "; - message += "
        "; - - for(let i = 0; i < jsResponse.pointclouds.length; i++){ - let url = `${viewer.server}/download_regions_filter_result?handle=${handle}&index=${i}`; - - message += `
      • result_${i}.las
      • \n`; - } - - let reportURL = `${viewer.server}/download_regions_filter_report?handle=${handle}`; - message += `
      • report.json
      • \n`; - message += "
      "; - - info(message); - }; - - let handleUnexpected = (jsResponse) => { - let message = `Unexpected Response.
      status: ${jsResponse.status}
      message: ${jsResponse.message}`; - info(message); - }; - - let handleError = (jsResponse) => { - let message = `ERROR: ${jsResponse.message}`; - error(message); - - throw new Error(message); - }; - - let start = Date.now(); - - while(true){ - let response = await fetch(url); - let jsResponse = await response.json(); - - if(jsResponse.status === "ERROR"){ - handleError(jsResponse); - }else if(jsResponse.status === "FILTERING"){ - handleFiltering(jsResponse); - }else if(jsResponse.status === "FINISHED"){ - handleFinish(jsResponse); - - break; - }else{ - handleUnexpected(jsResponse); - } - - let durationS = (Date.now() - start) / 1000; - let sleepAmountMS = durationS < 10 ? 100 : 1000; - - await sleep(sleepAmountMS); - } - } - - } - - update(){ - let elCoordiantesContainer = this.elContent.find('.coordinates_table_container'); - elCoordiantesContainer.empty(); - elCoordiantesContainer.append(this.createCoordinatesTable([this.measurement.position])); - - { - let angles = this.measurement.rotation.toVector3(); - angles = angles.toArray(); - //angles = [angles.z, angles.x, angles.y]; - angles = angles.map(v => 180 * v / Math.PI); - angles = angles.map(a => a.toFixed(1) + '\u00B0'); - - let elAlpha = this.elContent.find(`#angle_cell_alpha`); - let elBetta = this.elContent.find(`#angle_cell_betta`); - let elGamma = this.elContent.find(`#angle_cell_gamma`); - - elAlpha.html(angles[0]); - elBetta.html(angles[1]); - elGamma.html(angles[2]); - } - - { - let dimensions = this.measurement.scale.toArray(); - dimensions = dimensions.map(v => Utils.addCommas(v.toFixed(2))); - - let elLength = this.elContent.find(`#cell_length`); - let elWidth = this.elContent.find(`#cell_width`); - let elHeight = this.elContent.find(`#cell_height`); - - elLength.html(dimensions[0]); - elWidth.html(dimensions[1]); - elHeight.html(dimensions[2]); - } - - { - let elVolume = this.elContent.find(`#measurement_volume`); - let volume = this.measurement.getVolume(); - elVolume.html(Utils.addCommas(volume.toFixed(2))); - } - - this.elCheckClip.prop("checked", this.measurement.clip); - this.elCheckShow.prop("checked", this.measurement.visible); - - } -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/RepRenderer.js b/app/static/app/js/vendor/potree/src/viewer/RepRenderer.js deleted file mode 100644 index 5e8c6995..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/RepRenderer.js +++ /dev/null @@ -1,334 +0,0 @@ -class RepSnapshot{ - - constructor(){ - this.target = null; - this.camera = null; - } - -}; - -class RepRenderer { - constructor (viewer) { - this.viewer = viewer; - - this.edlMaterial = null; - this.attributeMaterials = []; - - this.rtColor = null; - this.gl = viewer.renderer.context; - - this.initEDL = this.initEDL.bind(this); - this.resize = this.resize.bind(this); - this.render = this.render.bind(this); - - this.snapshotRequested = false; - this.disableSnapshots = false; - - this.snap = { - target: null, - matrix: null - }; - - this.history = { - maxSnapshots: 10, - snapshots: [], - version: 0 - }; - - } - - initEDL () { - if (this.edlMaterial != null) { - return; - } - - // let depthTextureExt = gl.getExtension("WEBGL_depth_texture"); - - this.edlMaterial = new Potree.EyeDomeLightingMaterial(); - - this.rtColor = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType - }); - this.rtColor.depthTexture = new THREE.DepthTexture(); - this.rtColor.depthTexture.type = THREE.UnsignedIntType; - - - this.rtShadow = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - type: THREE.FloatType - }); - this.rtShadow.depthTexture = new THREE.DepthTexture(); - this.rtShadow.depthTexture.type = THREE.UnsignedIntType; - - //{ - // let geometry = new THREE.PlaneBufferGeometry( 20, 20, 32 ); - // let material = new THREE.MeshBasicMaterial( {side: THREE.DoubleSide, map: this.snap.target.texture} ); - // let plane = new THREE.Mesh( geometry, material ); - // plane.position.z = 0.2; - // plane.position.y = -1; - // this.viewer.scene.scene.add( plane ); - // this.debugPlane = plane; - //} - }; - - resize () { - let width = this.viewer.scaleFactor * this.viewer.renderArea.clientWidth; - let height = this.viewer.scaleFactor * this.viewer.renderArea.clientHeight; - let aspect = width / height; - - let needsResize = (this.rtColor.width !== width || this.rtColor.height !== height); - - // disposal will be unnecessary once this fix made it into three.js master: - // https://github.com/mrdoob/three.js/pull/6355 - if (needsResize) { - this.rtColor.dispose(); - } - - viewer.scene.cameraP.aspect = aspect; - viewer.scene.cameraP.updateProjectionMatrix(); - - let frustumScale = viewer.moveSpeed * 2.0; - viewer.scene.cameraO.left = -frustumScale; - viewer.scene.cameraO.right = frustumScale; - viewer.scene.cameraO.top = frustumScale * 1/aspect; - viewer.scene.cameraO.bottom = -frustumScale * 1/aspect; - viewer.scene.cameraO.updateProjectionMatrix(); - - viewer.scene.cameraScreenSpace.top = 1/aspect; - viewer.scene.cameraScreenSpace.bottom = -1/aspect; - viewer.scene.cameraScreenSpace.updateProjectionMatrix(); - - viewer.renderer.setSize(width, height); - this.rtColor.setSize(width, height); - } - - makeSnapshot(){ - this.snapshotRequested = true; - } - - render () { - this.initEDL(); - const viewer = this.viewer; - - this.resize(); - - let camera = viewer.scene.getActiveCamera(); - - let query = Potree.startQuery('stuff', viewer.renderer.getContext()); - - if(viewer.background === "skybox"){ - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.skybox.camera.rotation.copy(viewer.scene.cameraP.rotation); - viewer.skybox.camera.fov = viewer.scene.cameraP.fov; - viewer.skybox.camera.aspect = viewer.scene.cameraP.aspect; - viewer.skybox.camera.updateProjectionMatrix(); - viewer.renderer.render(viewer.skybox.scene, viewer.skybox.camera); - } else if (viewer.background === 'gradient') { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - viewer.renderer.render(viewer.scene.sceneBG, viewer.scene.cameraBG); - } else if (viewer.background === 'black') { - viewer.renderer.setClearColor(0x000000, 0); - viewer.renderer.clear(); - } else if (viewer.background === 'white') { - viewer.renderer.setClearColor(0xFFFFFF, 0); - viewer.renderer.clear(); - } - - viewer.transformationTool.update(); - - viewer.renderer.render(viewer.scene.scene, camera); - - viewer.renderer.clearTarget( this.rtShadow, true, true, true ); - viewer.renderer.clearTarget( this.rtColor, true, true, true ); - - let width = viewer.renderArea.clientWidth; - let height = viewer.renderArea.clientHeight; - - // COLOR & DEPTH PASS - for (let pointcloud of viewer.scene.pointclouds) { - let octreeSize = pointcloud.pcoGeometry.boundingBox.getSize(new THREE.Vector3()).x; - - let material = pointcloud.material; - material.weighted = false; - material.useLogarithmicDepthBuffer = false; - material.useEDL = true; - - material.screenWidth = width; - material.screenHeight = height; - material.uniforms.visibleNodes.value = pointcloud.material.visibleNodesTexture; - material.uniforms.octreeSize.value = octreeSize; - material.spacing = pointcloud.pcoGeometry.spacing * Math.max(pointcloud.scale.x, pointcloud.scale.y, pointcloud.scale.z); - } - - viewer.shadowTestCam.updateMatrixWorld(); - viewer.shadowTestCam.matrixWorldInverse.getInverse(viewer.shadowTestCam.matrixWorld); - viewer.shadowTestCam.updateProjectionMatrix(); - - - Potree.endQuery(query, viewer.renderer.getContext()); - - //viewer.pRenderer.render(viewer.scene.scenePointCloud, viewer.shadowTestCam, this.rtShadow); - - if(!this.disableSnapshots){ - this.snapshotRequested = false; - - let query = Potree.startQuery('create snapshot', viewer.renderer.getContext()); - - let snap; - if(this.history.snapshots.length < this.history.maxSnapshots){ - snap = new RepSnapshot(); - snap.target = new THREE.WebGLRenderTarget(1024, 1024, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - format: THREE.RGBAFormat, - //type: THREE.FloatType - }); - snap.target.depthTexture = new THREE.DepthTexture(); - snap.target.depthTexture.type = THREE.UnsignedIntType; - }else{ - snap = this.history.snapshots.pop(); - } - - { // resize - let width = viewer.scaleFactor * viewer.renderArea.clientWidth; - let height = viewer.scaleFactor * viewer.renderArea.clientHeight; - let aspect = width / height; - - let needsResize = (snap.target.width !== width || snap.target.height !== height); - - if (needsResize) { - snap.target.dispose(); - } - - snap.target.setSize(width, height); - } - - viewer.renderer.clearTarget(snap.target, true, true, true); - viewer.renderer.setRenderTarget(snap.target); - - - for(const octree of viewer.scene.pointclouds){ - - octree.material.snapEnabled = false; - octree.material.needsUpdate = true; - - - - let from = this.history.version * (octree.visibleNodes.length / this.history.maxSnapshots); - let to = (this.history.version + 1) * (octree.visibleNodes.length / this.history.maxSnapshots); - - // DEBUG!!! - //let from = 0; - //let to = 20; - let nodes = octree.visibleNodes.slice(from, to); - - viewer.pRenderer.renderOctree(octree, nodes, camera, snap.target, {vnTextureNodes: nodes}); - } - - snap.camera = camera.clone(); - this.history.version = (this.history.version + 1) % this.history.maxSnapshots; - - if(this.debugPlane){ - this.debugPlane.material.map = snap.target.texture; - } - - this.history.snapshots.unshift(snap); - - Potree.endQuery(query, viewer.renderer.getContext()); - } - - - { - - let query = Potree.startQuery('render snapshots', viewer.renderer.getContext()); - - viewer.renderer.clearTarget(this.rtColor, true, true, true); - viewer.renderer.setRenderTarget(this.rtColor); - for(const octree of viewer.scene.pointclouds){ - - if(!this.disableSnapshots){ - octree.material.snapEnabled = true; - octree.material.numSnapshots = this.history.maxSnapshots; - octree.material.needsUpdate = true; - - let uniforms = octree.material.uniforms; - if(this.history.snapshots.length === this.history.maxSnapshots){ - uniforms[`uSnapshot`].value = this.history.snapshots.map(s => s.target.texture); - uniforms[`uSnapshotDepth`].value = this.history.snapshots.map(s => s.target.depthTexture); - uniforms[`uSnapView`].value = this.history.snapshots.map(s => s.camera.matrixWorldInverse); - uniforms[`uSnapProj`].value = this.history.snapshots.map(s => s.camera.projectionMatrix); - uniforms[`uSnapProjInv`].value = this.history.snapshots.map(s => new THREE.Matrix4().getInverse(s.camera.projectionMatrix)); - uniforms[`uSnapViewInv`].value = this.history.snapshots.map(s => new THREE.Matrix4().getInverse(s.camera.matrixWorld)); - } - }else{ - octree.material.snapEnabled = false; - octree.material.needsUpdate = true; - } - - let nodes = octree.visibleNodes.slice(0, 50); - //let nodes = octree.visibleNodes; - viewer.pRenderer.renderOctree(octree, nodes, camera, this.rtColor, {vnTextureNodes: nodes}); - - if(!this.disableSnapshots){ - octree.material.snapEnabled = false; - octree.material.needsUpdate = false; - } - } - - Potree.endQuery(query, viewer.renderer.getContext()); - } - - - //viewer.pRenderer.render(viewer.scene.scenePointCloud, camera, this.rtColor, { - // shadowMaps: [{map: this.rtShadow, camera: viewer.shadowTestCam}] - //}); - - //viewer.renderer.render(viewer.scene.scene, camera, this.rtColor); - - - - - { // EDL OCCLUSION PASS - - let query = Potree.startQuery('EDL', viewer.renderer.getContext()); - this.edlMaterial.uniforms.screenWidth.value = width; - this.edlMaterial.uniforms.screenHeight.value = height; - this.edlMaterial.uniforms.colorMap.value = this.rtColor.texture; - this.edlMaterial.uniforms.edlStrength.value = viewer.edlStrength; - this.edlMaterial.uniforms.radius.value = viewer.edlRadius; - this.edlMaterial.uniforms.opacity.value = 1; - this.edlMaterial.depthTest = true; - this.edlMaterial.depthWrite = true; - this.edlMaterial.transparent = true; - - Potree.utils.screenPass.render(viewer.renderer, this.edlMaterial); - - Potree.endQuery(query, viewer.renderer.getContext()); - } - - - - viewer.renderer.clearDepth(); - viewer.renderer.render(viewer.controls.sceneControls, camera); - - viewer.renderer.render(viewer.clippingTool.sceneVolume, camera); - viewer.renderer.render(viewer.transformationTool.scene, camera); - - viewer.renderer.setViewport(viewer.renderer.domElement.clientWidth - viewer.navigationCube.width, - viewer.renderer.domElement.clientHeight - viewer.navigationCube.width, - viewer.navigationCube.width, viewer.navigationCube.width); - viewer.renderer.render(viewer.navigationCube, viewer.navigationCube.camera); - viewer.renderer.setViewport(0, 0, viewer.renderer.domElement.clientWidth, viewer.renderer.domElement.clientHeight); - - // - - } -}; - diff --git a/app/static/app/js/vendor/potree/src/viewer/Scene.js b/app/static/app/js/vendor/potree/src/viewer/Scene.js deleted file mode 100644 index 05c33b76..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/Scene.js +++ /dev/null @@ -1,322 +0,0 @@ - -import {Annotation} from "../Annotation.js"; -import {CameraMode} from "../defines.js"; -import {View} from "./View.js"; -import {Utils} from "../utils.js"; -import {EventDispatcher} from "../EventDispatcher.js"; - - -export class Scene extends EventDispatcher{ - - constructor(){ - super(); - - this.annotations = new Annotation(); - - this.scene = new THREE.Scene(); - this.sceneBG = new THREE.Scene(); - this.scenePointCloud = new THREE.Scene(); - - this.cameraP = new THREE.PerspectiveCamera(this.fov, 1, 0.1, 1000*1000); - this.cameraO = new THREE.OrthographicCamera(-1, 1, 1, -1, 0.1, 1000*1000); - this.cameraBG = new THREE.Camera(); - this.cameraScreenSpace = new THREE.OrthographicCamera(-1, 1, 1, -1, 0.1, 10); - this.cameraMode = CameraMode.PERSPECTIVE; - this.pointclouds = []; - - this.measurements = []; - this.profiles = []; - this.volumes = []; - this.polygonClipVolumes = []; - - this.fpControls = null; - this.orbitControls = null; - this.earthControls = null; - this.geoControls = null; - this.deviceControls = null; - this.inputHandler = null; - - this.view = new View(); - - this.directionalLight = null; - - this.initialize(); - } - - estimateHeightAt (position) { - let height = null; - let fromSpacing = Infinity; - - for (let pointcloud of this.pointclouds) { - if (pointcloud.root.geometryNode === undefined) { - continue; - } - - let pHeight = null; - let pFromSpacing = Infinity; - - let lpos = position.clone().sub(pointcloud.position); - lpos.z = 0; - let ray = new THREE.Ray(lpos, new THREE.Vector3(0, 0, 1)); - - let stack = [pointcloud.root]; - while (stack.length > 0) { - let node = stack.pop(); - let box = node.getBoundingBox(); - - let inside = ray.intersectBox(box); - - if (!inside) { - continue; - } - - let h = node.geometryNode.mean.z + - pointcloud.position.z + - node.geometryNode.boundingBox.min.z; - - if (node.geometryNode.spacing <= pFromSpacing) { - pHeight = h; - pFromSpacing = node.geometryNode.spacing; - } - - for (let index of Object.keys(node.children)) { - let child = node.children[index]; - if (child.geometryNode) { - stack.push(node.children[index]); - } - } - } - - if (height === null || pFromSpacing < fromSpacing) { - height = pHeight; - fromSpacing = pFromSpacing; - } - } - - return height; - } - - getBoundingBox(pointclouds = this.pointclouds){ - let box = new THREE.Box3(); - - this.scenePointCloud.updateMatrixWorld(true); - this.referenceFrame.updateMatrixWorld(true); - - for (let pointcloud of pointclouds) { - pointcloud.updateMatrixWorld(true); - - let pointcloudBox = pointcloud.pcoGeometry.tightBoundingBox ? pointcloud.pcoGeometry.tightBoundingBox : pointcloud.boundingBox; - let boxWorld = Utils.computeTransformedBoundingBox(pointcloudBox, pointcloud.matrixWorld); - box.union(boxWorld); - } - - return box; - } - - addPointCloud (pointcloud) { - this.pointclouds.push(pointcloud); - this.scenePointCloud.add(pointcloud); - - this.dispatchEvent({ - type: 'pointcloud_added', - pointcloud: pointcloud - }); - }; - - addVolume (volume) { - this.volumes.push(volume); - this.dispatchEvent({ - 'type': 'volume_added', - 'scene': this, - 'volume': volume - }); - }; - - removeVolume (volume) { - let index = this.volumes.indexOf(volume); - if (index > -1) { - this.volumes.splice(index, 1); - - this.dispatchEvent({ - 'type': 'volume_removed', - 'scene': this, - 'volume': volume - }); - } - }; - - addPolygonClipVolume(volume){ - this.polygonClipVolumes.push(volume); - this.dispatchEvent({ - "type": "polygon_clip_volume_added", - "scene": this, - "volume": volume - }); - }; - - removePolygonClipVolume(volume){ - let index = this.polygonClipVolumes.indexOf(volume); - if (index > -1) { - this.polygonClipVolumes.splice(index, 1); - this.dispatchEvent({ - "type": "polygon_clip_volume_removed", - "scene": this, - "volume": volume - }); - } - }; - - addMeasurement(measurement){ - measurement.lengthUnit = this.lengthUnit; - this.measurements.push(measurement); - this.dispatchEvent({ - 'type': 'measurement_added', - 'scene': this, - 'measurement': measurement - }); - }; - - removeMeasurement (measurement) { - let index = this.measurements.indexOf(measurement); - if (index > -1) { - this.measurements.splice(index, 1); - this.dispatchEvent({ - 'type': 'measurement_removed', - 'scene': this, - 'measurement': measurement - }); - } - } - - addProfile (profile) { - this.profiles.push(profile); - this.dispatchEvent({ - 'type': 'profile_added', - 'scene': this, - 'profile': profile - }); - } - - removeProfile (profile) { - let index = this.profiles.indexOf(profile); - if (index > -1) { - this.profiles.splice(index, 1); - this.dispatchEvent({ - 'type': 'profile_removed', - 'scene': this, - 'profile': profile - }); - } - } - - removeAllMeasurements () { - while (this.measurements.length > 0) { - this.removeMeasurement(this.measurements[0]); - } - - while (this.profiles.length > 0) { - this.removeProfile(this.profiles[0]); - } - - while (this.volumes.length > 0) { - this.removeVolume(this.volumes[0]); - } - } - - removeAllClipVolumes(){ - let clipVolumes = this.volumes.filter(volume => volume.clip === true); - for(let clipVolume of clipVolumes){ - this.removeVolume(clipVolume); - } - - while(this.polygonClipVolumes.length > 0){ - this.removePolygonClipVolume(this.polygonClipVolumes[0]); - } - } - - getActiveCamera() { - return this.cameraMode == CameraMode.PERSPECTIVE ? this.cameraP : this.cameraO; - } - - initialize(){ - - this.referenceFrame = new THREE.Object3D(); - this.referenceFrame.matrixAutoUpdate = false; - this.scenePointCloud.add(this.referenceFrame); - - this.cameraP.up.set(0, 0, 1); - this.cameraP.position.set(1000, 1000, 1000); - this.cameraO.up.set(0, 0, 1); - this.cameraO.position.set(1000, 1000, 1000); - //this.camera.rotation.y = -Math.PI / 4; - //this.camera.rotation.x = -Math.PI / 6; - this.cameraScreenSpace.lookAt(new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, -1), new THREE.Vector3(0, 1, 0)); - - this.directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 ); - this.directionalLight.position.set( 10, 10, 10 ); - this.directionalLight.lookAt( new THREE.Vector3(0, 0, 0)); - this.scenePointCloud.add( this.directionalLight ); - - let light = new THREE.AmbientLight( 0x555555 ); // soft white light - this.scenePointCloud.add( light ); - - { // background - let texture = Utils.createBackgroundTexture(512, 512); - - texture.minFilter = texture.magFilter = THREE.NearestFilter; - texture.minFilter = texture.magFilter = THREE.LinearFilter; - let bg = new THREE.Mesh( - new THREE.PlaneBufferGeometry(2, 2, 0), - new THREE.MeshBasicMaterial({ - map: texture - }) - ); - bg.material.depthTest = false; - bg.material.depthWrite = false; - this.sceneBG.add(bg); - } - - { // lights - { - let light = new THREE.DirectionalLight(0xffffff); - light.position.set(10, 10, 1); - light.target.position.set(0, 0, 0); - this.scene.add(light); - } - - { - let light = new THREE.DirectionalLight(0xffffff); - light.position.set(-10, 10, 1); - light.target.position.set(0, 0, 0); - this.scene.add(light); - } - - { - let light = new THREE.DirectionalLight(0xffffff); - light.position.set(0, -10, 20); - light.target.position.set(0, 0, 0); - this.scene.add(light); - } - } - } - - addAnnotation(position, args = {}){ - if(position instanceof Array){ - args.position = new THREE.Vector3().fromArray(position); - } else if (position instanceof THREE.Vector3) { - args.position = position; - } - let annotation = new Annotation(args); - this.annotations.add(annotation); - - return annotation; - } - - getAnnotations () { - return this.annotations; - }; - - removeAnnotation(annotationToRemove) { - this.annotations.remove(annotationToRemove); - } -}; diff --git a/app/static/app/js/vendor/potree/src/viewer/View.js b/app/static/app/js/vendor/potree/src/viewer/View.js deleted file mode 100644 index bae9f730..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/View.js +++ /dev/null @@ -1,128 +0,0 @@ - -import {OrbitControls} from "../navigation/OrbitControls.js"; - -export class View{ - constructor () { - this.position = new THREE.Vector3(0, 0, 0); - - this.yaw = Math.PI / 4; - this._pitch = -Math.PI / 4; - this.radius = 1; - - this.maxPitch = Math.PI / 2; - this.minPitch = -Math.PI / 2; - - this.navigationMode = OrbitControls; - } - - clone () { - let c = new View(); - c.yaw = this.yaw; - c._pitch = this.pitch; - c.radius = this.radius; - c.maxPitch = this.maxPitch; - c.minPitch = this.minPitch; - c.navigationMode = this.navigationMode; - - return c; - } - - get pitch () { - return this._pitch; - } - - set pitch (angle) { - this._pitch = Math.max(Math.min(angle, this.maxPitch), this.minPitch); - } - - get direction () { - let dir = new THREE.Vector3(0, 1, 0); - - dir.applyAxisAngle(new THREE.Vector3(1, 0, 0), this.pitch); - dir.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - return dir; - } - - set direction (dir) { - - //if(dir.x === dir.y){ - if(dir.x === 0 && dir.y === 0){ - this.pitch = Math.PI / 2 * Math.sign(dir.z); - }else{ - let yaw = Math.atan2(dir.y, dir.x) - Math.PI / 2; - let pitch = Math.atan2(dir.z, Math.sqrt(dir.x * dir.x + dir.y * dir.y)); - - this.yaw = yaw; - this.pitch = pitch; - } - - } - - lookAt(t){ - let V; - if(arguments.length === 1){ - V = new THREE.Vector3().subVectors(t, this.position); - }else if(arguments.length === 3){ - V = new THREE.Vector3().subVectors(new THREE.Vector3(...arguments), this.position); - } - - let radius = V.length(); - let dir = V.normalize(); - - this.radius = radius; - this.direction = dir; - } - - getPivot () { - return new THREE.Vector3().addVectors(this.position, this.direction.multiplyScalar(this.radius)); - } - - getSide () { - let side = new THREE.Vector3(1, 0, 0); - side.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - return side; - } - - pan (x, y) { - let dir = new THREE.Vector3(0, 1, 0); - dir.applyAxisAngle(new THREE.Vector3(1, 0, 0), this.pitch); - dir.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - // let side = new THREE.Vector3(1, 0, 0); - // side.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - let side = this.getSide(); - - let up = side.clone().cross(dir); - - let pan = side.multiplyScalar(x).add(up.multiplyScalar(y)); - - this.position = this.position.add(pan); - // this.target = this.target.add(pan); - } - - translate (x, y, z) { - let dir = new THREE.Vector3(0, 1, 0); - dir.applyAxisAngle(new THREE.Vector3(1, 0, 0), this.pitch); - dir.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - let side = new THREE.Vector3(1, 0, 0); - side.applyAxisAngle(new THREE.Vector3(0, 0, 1), this.yaw); - - let up = side.clone().cross(dir); - - let t = side.multiplyScalar(x) - .add(dir.multiplyScalar(y)) - .add(up.multiplyScalar(z)); - - this.position = this.position.add(t); - } - - translateWorld (x, y, z) { - this.position.x += x; - this.position.y += y; - this.position.z += z; - } -}; diff --git a/app/static/app/js/vendor/potree/src/viewer/ZoomableSlider.js b/app/static/app/js/vendor/potree/src/viewer/ZoomableSlider.js deleted file mode 100644 index ca3ae851..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/ZoomableSlider.js +++ /dev/null @@ -1,227 +0,0 @@ - -export class ZoomableSlider{ - - constructor(){ - this.visibleRange = [0, 10]; - this.chosenRange = [2, 7]; - this.step = 0.001; - - this.clipDragToVisible = true; - - this.changeCallbacks = []; - - this.element = document.createElement("div"); - this.element.innerHTML = ` - -
      -
      - - -   -   -   -   - - - -
      -
      - `; - - this.elCore = this.element.querySelector('[name=core]'); - this.elLeft = this.element.querySelector('[name=left]'); - this.elRight = this.element.querySelector('[name=right]'); - this.elStretch = this.element.querySelector('[name=stretch]'); - this.elInside = this.element.querySelector('[name=inside]'); - this.elOutside = this.element.querySelector('[name=outside]'); - - this.elLabelVisibleLeft = this.element.querySelector('[name=label_visible_left]'); - this.elLabelVisibleRight = this.element.querySelector('[name=label_visible_right]'); - - this.elLabelChosenLeft = this.element.querySelector('[name=label_chosen_left]'); - this.elLabelChosenRight = this.element.querySelector('[name=label_chosen_right]'); - - this.elRight.style.left = "100px"; - - - let dragStart = null; - let onMouseDown = (e) => { - e.preventDefault(); - - let value = (e.target === this.elLeft) ? - this.chosenRange[0] : - this.chosenRange[1]; - - dragStart = { - x: e.clientX, - y: e.clientY, - handle: e.target, - value: value, - }; - - document.onmouseup = onMouseUp; - document.onmousemove = onMouseMove; - }; - - let onMouseUp = (e) => { - document.onmouseup = null; - document.onmousemove = null; - }; - - let onMouseMove = (e) => { - let dx = e.clientX - dragStart.x; - let dy = e.clientY - dragStart.y; - - - let normalizedDelta = dx / this.elCore.clientWidth; - let valueDelta = (this.visibleRange[1] - this.visibleRange[0]) * normalizedDelta; - - let newValue = dragStart.value + valueDelta; - newValue = Math.round(newValue / this.step) * this.step; - - let newRange; - if(dragStart.handle === this.elLeft){ - newRange = [newValue, this.chosenRange[1]]; - }else{ - newRange = [this.chosenRange[0], newValue]; - } - - if(this.clipDragToVisible){ - if(dragStart.handle === this.elLeft){ - newRange[0] = Math.max(newRange[0], this.visibleRange[0]); - }else{ - newRange[1] = Math.min(newRange[1], this.visibleRange[1]); - } - } - - this.setRange(newRange); - }; - - for(let handle of [this.elLeft, this.elRight]){ - handle.onmousedown = onMouseDown; - } - - - - let onWheel = (e) => { - - e.preventDefault(); - - let delta = Math.sign(e.deltaY); - - let zoom = 1; - if(delta < 0){ - zoom = 0.8; - }else if(delta > 0){ - zoom = 1.2; - } - - let oldRangeWidth = this.visibleRange[1] - this.visibleRange[0]; - - if(oldRangeWidth <= 3 * this.step && zoom < 1){ - return; - } - - let rect = this.elCore.getBoundingClientRect(); - let pivotPixels = e.clientX - rect.left; - let pivotNormalized = (pivotPixels / this.elCore.clientWidth); - let pivot = (oldRangeWidth * pivotNormalized) + this.visibleRange[0]; - - let leftRatio = (pivot - this.visibleRange[0]) / oldRangeWidth; - let rightRatio = (this.visibleRange[1] - pivot) / oldRangeWidth; - - let newRangeWidth = oldRangeWidth * zoom; - let newVisibleRange = [ - pivot - (newRangeWidth * leftRatio), - pivot + (newRangeWidth * rightRatio), - ]; - - this.setVisibleRange(newVisibleRange); - - - }; - this.elCore.onmousewheel = onWheel; - - this.elStretch.onclick = () => { - let choosenRangeWidth = this.chosenRange[1] - this.chosenRange[0]; - let visibleRange = [ - this.chosenRange[0] - choosenRangeWidth * 0.1, - this.chosenRange[1] + choosenRangeWidth * 0.1, - ]; - - this.setVisibleRange(visibleRange); - }; - - this.update(); - } - - setRange(range){ - - if(this.chosenRange[0] === range[0] && this.chosenRange[1] === range[1]){ - return; - } - - this.chosenRange = range; - - for(let callback of this.changeCallbacks){ - callback(); - } - - this.update(); - } - - setVisibleRange(range){ - this.visibleRange = range; - - this.update(); - } - - update(){ - let {elLeft, elRight, elStretch, elInside, visibleRange, chosenRange} = this; - - let pixelWidth = this.elCore.clientWidth; - - let normalizedLeft = (chosenRange[0] - visibleRange[0]) / (visibleRange[1] - visibleRange[0]); - let normalizedRight = (chosenRange[1] - visibleRange[0]) / (visibleRange[1] - visibleRange[0]); - let pixelLeft = Math.round(normalizedLeft * pixelWidth) - elLeft.clientWidth / 2; - let pixelRight = Math.round(normalizedRight * pixelWidth) - elRight.clientWidth / 2; - - elLeft.style.left = `${pixelLeft}px`; - elRight.style.left = `${pixelRight}px`; - elStretch.style.left = `${(pixelRight + pixelLeft) / 2}px`; - - elInside.style.left = `${pixelLeft}px`; - elInside.style.width = `${pixelRight - pixelLeft}px`; - - - let precision = Math.ceil(Math.log(1 / this.step) / Math.log(10)); - - // from: https://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript - let addThousandsSeparatorsToString = (str) => { - let parts = str.split("."); - parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ","); - return parts.join("."); - } - - this.elLabelVisibleLeft.style.left = "0px"; - let visibleLeftString = addThousandsSeparatorsToString(visibleRange[0].toFixed(precision)); - this.elLabelVisibleLeft.innerHTML = `${visibleLeftString}`; - - this.elLabelVisibleRight.style.right = "0px"; - let visibleRightString = addThousandsSeparatorsToString(visibleRange[1].toFixed(precision)); - this.elLabelVisibleRight.innerHTML = `${visibleRightString}`; - - this.elLabelChosenLeft.style.left = `${pixelLeft}px`; - let chosenLeftString = addThousandsSeparatorsToString(chosenRange[0].toFixed(precision)); - this.elLabelChosenLeft.innerHTML = `${chosenLeftString}`; - - this.elLabelChosenRight.style.left = `${pixelRight}px`; - let chosenRightString = addThousandsSeparatorsToString(chosenRange[1].toFixed(precision)); - this.elLabelChosenRight.innerHTML = `${chosenRightString}`; - } - - change(callback){ - this.changeCallbacks.push(callback); - } - -}; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/map.js b/app/static/app/js/vendor/potree/src/viewer/map.js deleted file mode 100644 index a1e4ec08..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/map.js +++ /dev/null @@ -1,722 +0,0 @@ -import proj4 from 'proj4'; - -// http://epsg.io/ -proj4.defs('UTM10N', '+proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs'); - -export class MapView{ - - constructor (viewer) { - this.viewer = viewer; - - this.webMapService = 'WMTS'; - this.mapProjectionName = 'EPSG:3857'; - this.mapProjection = proj4.defs(this.mapProjectionName); - this.sceneProjection = null; - - this.extentsLayer = null; - this.cameraLayer = null; - this.toolLayer = null; - this.sourcesLayer = null; - this.sourcesLabelLayer = null; - this.enabled = false; - - this.createAnnotationStyle = (text) => { - return [ - new ol.style.Style({ - image: new ol.style.Circle({ - radius: 10, - stroke: new ol.style.Stroke({ - color: [255, 255, 255, 0.5], - width: 2 - }), - fill: new ol.style.Fill({ - color: [0, 0, 0, 0.5] - }) - }) - })/*, - new ol.style.Style({ - text: new ol.style.Text({ - font: '12px helvetica,sans-serif', - text: text, - fill: new ol.style.Fill({ - color: '#000' - }), - stroke: new ol.style.Stroke({ - color: '#fff', - width: 2 - }) - }) - }) */ - ]; - }; - - this.createLabelStyle = (text) => { - let style = new ol.style.Style({ - image: new ol.style.Circle({ - radius: 6, - stroke: new ol.style.Stroke({ - color: 'white', - width: 2 - }), - fill: new ol.style.Fill({ - color: 'green' - }) - }), - text: new ol.style.Text({ - font: '12px helvetica,sans-serif', - text: text, - fill: new ol.style.Fill({ - color: '#000' - }), - stroke: new ol.style.Stroke({ - color: '#fff', - width: 2 - }) - }) - }); - - return style; - }; - } - - showSources (show) { - this.sourcesLayer.setVisible(show); - this.sourcesLabelLayer.setVisible(show); - } - - init () { - this.elMap = $('#potree_map'); - this.elMap.draggable({ handle: $('#potree_map_header') }); - this.elMap.resizable(); - - this.elTooltip = $(`
      `); - this.elMap.append(this.elTooltip); - - let extentsLayer = this.getExtentsLayer(); - let cameraLayer = this.getCameraLayer(); - this.getToolLayer(); - let sourcesLayer = this.getSourcesLayer(); - this.getSourcesLabelLayer(); - this.getAnnotationsLayer(); - - let mousePositionControl = new ol.control.MousePosition({ - coordinateFormat: ol.coordinate.createStringXY(5), - projection: 'EPSG:4326', - undefinedHTML: ' ' - }); - - let _this = this; - let DownloadSelectionControl = function (optOptions) { - let options = optOptions || {}; - - // TOGGLE TILES - let btToggleTiles = document.createElement('button'); - btToggleTiles.innerHTML = 'T'; - btToggleTiles.addEventListener('click', () => { - let visible = sourcesLayer.getVisible(); - _this.showSources(!visible); - }, false); - btToggleTiles.style.float = 'left'; - btToggleTiles.title = 'show / hide tiles'; - - // DOWNLOAD SELECTED TILES - let link = document.createElement('a'); - link.href = '#'; - link.download = 'list.txt'; - link.style.float = 'left'; - - let button = document.createElement('button'); - button.innerHTML = 'D'; - link.appendChild(button); - - let handleDownload = (e) => { - let features = selectedFeatures.getArray(); - - let url = [document.location.protocol, '//', document.location.host, document.location.pathname].join(''); - - if (features.length === 0) { - alert('No tiles were selected. Select area with ctrl + left mouse button!'); - e.preventDefault(); - e.stopImmediatePropagation(); - return false; - } else if (features.length === 1) { - let feature = features[0]; - - if (feature.source) { - let cloudjsurl = feature.pointcloud.pcoGeometry.url; - let sourceurl = new URL(url + '/../' + cloudjsurl + '/../source/' + feature.source.name); - link.href = sourceurl.href; - link.download = feature.source.name; - } - } else { - let content = ''; - for (let i = 0; i < features.length; i++) { - let feature = features[i]; - - if (feature.source) { - let cloudjsurl = feature.pointcloud.pcoGeometry.url; - let sourceurl = new URL(url + '/../' + cloudjsurl + '/../source/' + feature.source.name); - content += sourceurl.href + '\n'; - } - } - - let uri = 'data:application/octet-stream;base64,' + btoa(content); - link.href = uri; - link.download = 'list_of_files.txt'; - } - }; - - button.addEventListener('click', handleDownload, false); - - // assemble container - let element = document.createElement('div'); - element.className = 'ol-unselectable ol-control'; - element.appendChild(link); - element.appendChild(btToggleTiles); - element.style.bottom = '0.5em'; - element.style.left = '0.5em'; - element.title = 'Download file or list of selected tiles. Select tile with left mouse button or area using ctrl + left mouse.'; - - ol.control.Control.call(this, { - element: element, - target: options.target - }); - }; - ol.inherits(DownloadSelectionControl, ol.control.Control); - - this.map = new ol.Map({ - controls: ol.control.defaults({ - attributionOptions: ({ - collapsible: false - }) - }).extend([ - // this.controls.zoomToExtent, - new DownloadSelectionControl(), - mousePositionControl - ]), - layers: [ - new ol.layer.Tile({source: new ol.source.OSM()}), - this.toolLayer, - this.annotationsLayer, - this.sourcesLayer, - this.sourcesLabelLayer, - extentsLayer, - cameraLayer - ], - target: 'potree_map_content', - view: new ol.View({ - center: this.olCenter, - zoom: 9 - }) - }); - - // DRAGBOX / SELECTION - this.dragBoxLayer = new ol.layer.Vector({ - source: new ol.source.Vector({}), - style: new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: 'rgba(0, 0, 255, 1)', - width: 2 - }) - }) - }); - this.map.addLayer(this.dragBoxLayer); - - let select = new ol.interaction.Select(); - this.map.addInteraction(select); - - let selectedFeatures = select.getFeatures(); - - let dragBox = new ol.interaction.DragBox({ - condition: ol.events.condition.platformModifierKeyOnly - }); - - this.map.addInteraction(dragBox); - - this.map.on('pointermove', evt => { - let pixel = evt.pixel; - let feature = this.map.forEachFeatureAtPixel(pixel, function (feature) { - return feature; - }); - - // console.log(feature); - // this.elTooltip.css("display", feature ? '' : 'none'); - this.elTooltip.css('display', 'none'); - if (feature && feature.onHover) { - feature.onHover(evt); - // overlay.setPosition(evt.coordinate); - // tooltip.innerHTML = feature.get('name'); - } - }); - - this.map.on('click', evt => { - let pixel = evt.pixel; - let feature = this.map.forEachFeatureAtPixel(pixel, function (feature) { - return feature; - }); - - if (feature && feature.onHover) { - feature.onClick(evt); - } - }); - - dragBox.on('boxend', (e) => { - // features that intersect the box are added to the collection of - // selected features, and their names are displayed in the "info" - // div - let extent = dragBox.getGeometry().getExtent(); - this.getSourcesLayer().getSource().forEachFeatureIntersectingExtent(extent, (feature) => { - selectedFeatures.push(feature); - }); - }); - - // clear selection when drawing a new box and when clicking on the map - dragBox.on('boxstart', (e) => { - selectedFeatures.clear(); - }); - this.map.on('click', () => { - selectedFeatures.clear(); - }); - - this.viewer.addEventListener('scene_changed', e => { - this.setScene(e.scene); - }); - - this.onPointcloudAdded = e => { - this.load(e.pointcloud); - }; - - this.onAnnotationAdded = e => { - if (!this.sceneProjection) { - return; - } - - let annotation = e.annotation; - let position = annotation.position; - let mapPos = this.toMap.forward([position.x, position.y]); - let feature = new ol.Feature({ - geometry: new ol.geom.Point(mapPos), - name: annotation.title - }); - feature.setStyle(this.createAnnotationStyle(annotation.title)); - - feature.onHover = evt => { - let coordinates = feature.getGeometry().getCoordinates(); - let p = this.map.getPixelFromCoordinate(coordinates); - - this.elTooltip.html(annotation.title); - this.elTooltip.css('display', ''); - this.elTooltip.css('left', `${p[0]}px`); - this.elTooltip.css('top', `${p[1]}px`); - }; - - feature.onClick = evt => { - annotation.clickTitle(); - }; - - this.getAnnotationsLayer().getSource().addFeature(feature); - }; - - this.setScene(this.viewer.scene); - } - - setScene (scene) { - if (this.scene === scene) { - return; - }; - - if (this.scene) { - this.scene.removeEventListener('pointcloud_added', this.onPointcloudAdded); - this.scene.annotations.removeEventListener('annotation_added', this.onAnnotationAdded); - } - - this.scene = scene; - - this.scene.addEventListener('pointcloud_added', this.onPointcloudAdded); - this.scene.annotations.addEventListener('annotation_added', this.onAnnotationAdded); - - for (let pointcloud of this.viewer.scene.pointclouds) { - this.load(pointcloud); - } - - this.viewer.scene.annotations.traverseDescendants(annotation => { - this.onAnnotationAdded({annotation: annotation}); - }); - } - - getExtentsLayer () { - if (this.extentsLayer) { - return this.extentsLayer; - } - - this.gExtent = new ol.geom.LineString([[0, 0], [0, 0]]); - - let feature = new ol.Feature(this.gExtent); - let featureVector = new ol.source.Vector({ - features: [feature] - }); - - this.extentsLayer = new ol.layer.Vector({ - source: featureVector, - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 255, 255, 0.2)' - }), - stroke: new ol.style.Stroke({ - color: '#0000ff', - width: 2 - }), - image: new ol.style.Circle({ - radius: 3, - fill: new ol.style.Fill({ - color: '#0000ff' - }) - }) - }) - }); - - return this.extentsLayer; - } - - getAnnotationsLayer () { - if (this.annotationsLayer) { - return this.annotationsLayer; - } - - this.annotationsLayer = new ol.layer.Vector({ - source: new ol.source.Vector({ - }), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 0, 0, 1)' - }), - stroke: new ol.style.Stroke({ - color: 'rgba(255, 0, 0, 1)', - width: 2 - }) - }) - }); - - return this.annotationsLayer; - } - - getCameraLayer () { - if (this.cameraLayer) { - return this.cameraLayer; - } - - // CAMERA LAYER - this.gCamera = new ol.geom.LineString([[0, 0], [0, 0], [0, 0], [0, 0]]); - let feature = new ol.Feature(this.gCamera); - let featureVector = new ol.source.Vector({ - features: [feature] - }); - - this.cameraLayer = new ol.layer.Vector({ - source: featureVector, - style: new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: '#0000ff', - width: 2 - }) - }) - }); - - return this.cameraLayer; - } - - getToolLayer () { - if (this.toolLayer) { - return this.toolLayer; - } - - this.toolLayer = new ol.layer.Vector({ - source: new ol.source.Vector({ - }), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 0, 0, 1)' - }), - stroke: new ol.style.Stroke({ - color: 'rgba(255, 0, 0, 1)', - width: 2 - }) - }) - }); - - return this.toolLayer; - } - - getSourcesLayer () { - if (this.sourcesLayer) { - return this.sourcesLayer; - } - - this.sourcesLayer = new ol.layer.Vector({ - source: new ol.source.Vector({}), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(0, 0, 150, 0.1)' - }), - stroke: new ol.style.Stroke({ - color: 'rgba(0, 0, 150, 1)', - width: 1 - }) - }) - }); - - return this.sourcesLayer; - } - - getSourcesLabelLayer () { - if (this.sourcesLabelLayer) { - return this.sourcesLabelLayer; - } - - this.sourcesLabelLayer = new ol.layer.Vector({ - source: new ol.source.Vector({ - }), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 0, 0, 0.1)' - }), - stroke: new ol.style.Stroke({ - color: 'rgba(255, 0, 0, 1)', - width: 2 - }) - }), - minResolution: 0.01, - maxResolution: 20 - }); - - return this.sourcesLabelLayer; - } - - setSceneProjection (sceneProjection) { - this.sceneProjection = sceneProjection; - this.toMap = proj4(this.sceneProjection, this.mapProjection); - this.toScene = proj4(this.mapProjection, this.sceneProjection); - }; - - getMapExtent () { - let bb = this.viewer.getBoundingBox(); - - let bottomLeft = this.toMap.forward([bb.min.x, bb.min.y]); - let bottomRight = this.toMap.forward([bb.max.x, bb.min.y]); - let topRight = this.toMap.forward([bb.max.x, bb.max.y]); - let topLeft = this.toMap.forward([bb.min.x, bb.max.y]); - - let extent = { - bottomLeft: bottomLeft, - bottomRight: bottomRight, - topRight: topRight, - topLeft: topLeft - }; - - return extent; - }; - - getMapCenter () { - let mapExtent = this.getMapExtent(); - - let mapCenter = [ - (mapExtent.bottomLeft[0] + mapExtent.topRight[0]) / 2, - (mapExtent.bottomLeft[1] + mapExtent.topRight[1]) / 2 - ]; - - return mapCenter; - }; - - updateToolDrawings () { - this.toolLayer.getSource().clear(); - - let profiles = this.viewer.profileTool.profiles; - for (let i = 0; i < profiles.length; i++) { - let profile = profiles[i]; - let coordinates = []; - - for (let j = 0; j < profile.points.length; j++) { - let point = profile.points[j]; - let pointMap = this.toMap.forward([point.x, point.y]); - coordinates.push(pointMap); - } - - let line = new ol.geom.LineString(coordinates); - let feature = new ol.Feature(line); - this.toolLayer.getSource().addFeature(feature); - } - - let measurements = this.viewer.measuringTool.measurements; - for (let i = 0; i < measurements.length; i++) { - let measurement = measurements[i]; - let coordinates = []; - - for (let j = 0; j < measurement.points.length; j++) { - let point = measurement.points[j].position; - let pointMap = this.toMap.forward([point.x, point.y]); - coordinates.push(pointMap); - } - - if (measurement.closed && measurement.points.length > 0) { - coordinates.push(coordinates[0]); - } - - let line = new ol.geom.LineString(coordinates); - let feature = new ol.Feature(line); - this.toolLayer.getSource().addFeature(feature); - } - } - - load (pointcloud) { - if (!pointcloud) { - return; - } - - if (!pointcloud.projection) { - return; - } - - if (!this.sceneProjection) { - try { - this.setSceneProjection(pointcloud.projection); - }catch (e) { - console.log('Failed projection:', e); - - if (pointcloud.fallbackProjection) { - try { - console.log('Trying fallback projection...'); - this.setSceneProjection(pointcloud.fallbackProjection); - console.log('Set projection from fallback'); - }catch (e) { - console.log('Failed fallback projection:', e); - return; - } - }else{ - return; - }; - } - } - - let mapExtent = this.getMapExtent(); - let mapCenter = this.getMapCenter(); - - let view = this.map.getView(); - view.setCenter(mapCenter); - - this.gExtent.setCoordinates([ - mapExtent.bottomLeft, - mapExtent.bottomRight, - mapExtent.topRight, - mapExtent.topLeft, - mapExtent.bottomLeft - ]); - - view.fit(this.gExtent, [300, 300], { - constrainResolution: false - }); - - if (pointcloud.pcoGeometry.type == 'ept') return; - let url = pointcloud.pcoGeometry.url + '/../sources.json'; - $.getJSON(url, (data) => { - let sources = data.sources; - - for (let i = 0; i < sources.length; i++) { - let source = sources[i]; - let name = source.name; - let bounds = source.bounds; - - let mapBounds = { - min: this.toMap.forward([bounds.min[0], bounds.min[1]]), - max: this.toMap.forward([bounds.max[0], bounds.max[1]]) - }; - let mapCenter = [ - (mapBounds.min[0] + mapBounds.max[0]) / 2, - (mapBounds.min[1] + mapBounds.max[1]) / 2 - ]; - - let p1 = this.toMap.forward([bounds.min[0], bounds.min[1]]); - let p2 = this.toMap.forward([bounds.max[0], bounds.min[1]]); - let p3 = this.toMap.forward([bounds.max[0], bounds.max[1]]); - let p4 = this.toMap.forward([bounds.min[0], bounds.max[1]]); - - // let feature = new ol.Feature({ - // 'geometry': new ol.geom.LineString([p1, p2, p3, p4, p1]) - // }); - let feature = new ol.Feature({ - 'geometry': new ol.geom.Polygon([[p1, p2, p3, p4, p1]]) - }); - feature.source = source; - feature.pointcloud = pointcloud; - this.getSourcesLayer().getSource().addFeature(feature); - - feature = new ol.Feature({ - geometry: new ol.geom.Point(mapCenter), - name: name - }); - feature.setStyle(this.createLabelStyle(name)); - this.sourcesLabelLayer.getSource().addFeature(feature); - } - }); - } - - toggle () { - if (this.elMap.is(':visible')) { - this.elMap.css('display', 'none'); - this.enabled = false; - } else { - this.elMap.css('display', 'block'); - this.enabled = true; - } - } - - update (delta) { - if (!this.sceneProjection) { - return; - } - - let pm = $('#potree_map'); - - if (!this.enabled) { - return; - } - - // resize - let mapSize = this.map.getSize(); - let resized = (pm.width() !== mapSize[0] || pm.height() !== mapSize[1]); - if (resized) { - this.map.updateSize(); - } - - // - let camera = this.viewer.scene.getActiveCamera(); - - let scale = this.map.getView().getResolution(); - let campos = camera.position; - let camdir = camera.getWorldDirection(new THREE.Vector3()); - let sceneLookAt = camdir.clone().multiplyScalar(30 * scale).add(campos); - let geoPos = camera.position; - let geoLookAt = sceneLookAt; - let mapPos = new THREE.Vector2().fromArray(this.toMap.forward([geoPos.x, geoPos.y])); - let mapLookAt = new THREE.Vector2().fromArray(this.toMap.forward([geoLookAt.x, geoLookAt.y])); - let mapDir = new THREE.Vector2().subVectors(mapLookAt, mapPos).normalize(); - - mapLookAt = mapPos.clone().add(mapDir.clone().multiplyScalar(30 * scale)); - let mapLength = mapPos.distanceTo(mapLookAt); - let mapSide = new THREE.Vector2(-mapDir.y, mapDir.x); - - let p1 = mapPos.toArray(); - let p2 = mapLookAt.clone().sub(mapSide.clone().multiplyScalar(0.3 * mapLength)).toArray(); - let p3 = mapLookAt.clone().add(mapSide.clone().multiplyScalar(0.3 * mapLength)).toArray(); - - this.gCamera.setCoordinates([p1, p2, p3, p1]); - } - - get sourcesVisible () { - return this.getSourcesLayer().getVisible(); - } - - set sourcesVisible (value) { - this.getSourcesLayer().setVisible(value); - } - -} diff --git a/app/static/app/js/vendor/potree/src/viewer/potree.css b/app/static/app/js/vendor/potree/src/viewer/potree.css deleted file mode 100644 index 038d164d..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/potree.css +++ /dev/null @@ -1,771 +0,0 @@ - -/* CSS - Cascading Style Sheet */ -/* Palette color codes */ -/* Palette URL: http://paletton.com/#uid=13p0u0kex8W2uqu8af7lEqaulDE */ - -/* Feel free to copy&paste color codes to your application */ - -/* As hex codes */ -.color-primary-0 { color: #19282C } /* Main Primary color */ -.color-primary-1 { color: #7A8184 } -.color-primary-2 { color: #39474B } -.color-primary-3 { color: #2D6D82 } -.color-primary-4 { color: #108FB9 } - -/* As RGBa codes */ -.rgba-primary-0 { color: rgba( 25, 40, 44,1) } /* Main Primary color */ -.rgba-primary-1 { color: rgba(122,129,132,1) } -.rgba-primary-2 { color: rgba( 57, 71, 75,1) } -.rgba-primary-3 { color: rgba( 45,109,130,1) } -.rgba-primary-4 { color: rgba( 16,143,185,1) } - -/* Generated by Paletton.com © 2002-2014 */ -/* http://paletton.com */ - - - - -:root{ - - --color-0: rgba( 25, 40, 44, 1); - --color-1: rgba(122,129,132, 1); - --color-2: rgba( 57, 71, 75, 1); - --color-3: rgba( 45,109,130, 1); - --color-4: rgba( 16,143,185, 1); - - --bg-color: var(--color-0); - --bg-color-2: rgb(60, 80, 85); - --bg-light-color: rgba( 48, 61, 65, 1); - --bg-dark-color: rgba( 24, 31, 33, 1); - --bg-hover-color: var(--color-2); - - --font-color: #9AA1A4; - --font-color-2: #ddd; - --font-color: #cccccc; - --border-color: black; - - --measurement-detail-node-bg-light: var(--color-1); - --measurement-detail-node-bg-dark: var(--color-2); - --measurement-detail-area-bg-color: #eee; - - -} - - -#sidebar_root{ - color: var(--font-color); - background-color: var(--bg-color); - font-family: Arial,Helvetica,sans-serif; - font-size: 1em; -} - -.potree_failpage{ - width: 100%; - height: 100%; - background-color: white; - position: absolute; - margin: 15px; -} - -.potree_failpage a{ - color: initial !important; - text-decoration: underline !important; -} - -.potree_info_text{ - color: white; - font-weight: bold; - text-shadow: 1px 1px 1px black, - 1px -1px 1px black, - -1px 1px 1px black, - -1px -1px 1px black; -} - -.potree_message{ - width: 500px; - background-color: var(--bg-color); - padding: 5px; - margin: 5px; - border-radius: 4px; - color: var(--font-color); - font-family: Arial; - opacity: 0.8; - border: 1px solid black; - display: flex; - overflow: auto; -} - -.potree_message_error{ - background-color: red; -} - -#potree_description{ - position: absolute; - top: 10px; - left: 50%; - transform: translateX(-50%); - text-align: center; - z-index: 1000; -} - -#potree_sidebar_container{ - position: absolute; - z-index: 0; - width: 350px; - height: 100%; - overflow-y: auto; - font-size: 85%; - overflow: hidden; - border-right: 1px solid black; -} - -.potree_sidebar_brand{ - margin: 1px 20px; - line-height: 2em; - font-size: 100%; - font-weight: bold; - position: relative; -} - -#potree_sidebar_container a{ - color: #8Aa1c4; -} - -.potree_menu_toggle{ - position: absolute; - float: left; - margin: 8px 8px; - background: none; - width: 2.5em; - height: 2.5em; - z-index: 100; - cursor: pointer; -} - -#potree_map_toggle{ - position: absolute; - float: left; - margin: 8px 8px; - background: none; - width: 2.5em; - height: 2.5em; - z-index: 100; - top: calc(2.5em + 8px); - cursor: pointer; -} - -#potree_render_area{ - position: absolute; - /*background: linear-gradient(-90deg, red, yellow);*/ - top: 0px; - bottom: 0px; - left: 0px; - right: 0px; - overflow: hidden; - z-index: 1; - -webkit-transition: left .35s; - transition: left .35s; -} - -.potree-panel { - border: 1px solid black; - border-radius: 0.4em; - padding: 0px; - background-color: var(--bg-light-color); -} - -.potree-panel-heading{ - background-color: var(--bg-dark-color); -} - -a:hover, a:visited, a:link, a:active{ - color: #ccccff; - text-decoration: none; -} - -.annotation{ - position: absolute; - padding: 10px; - opacity: 0.5; - transform: translate(-50%, -30px); - will-change: left, top; -} - -.annotation-titlebar{ - color: white; - background-color: black; - border-radius: 1.5em; - border: 1px solid rgba(255, 255, 255, 0.7); - font-size: 1em; - opacity: 1; - margin: auto; - display: table; - padding: 1px 8px; - cursor: pointer; -} - -.annotation-expand{ - color: white; - font-size: 0.6em; - opacity: 1; -} - -.annotation-action-icon{ - width: 20px; - height: 20px; - display: inline-block; - vertical-align: middle; - line-height: 1.5em; - text-align: center; - font-family: Arial; - font-weight: bold; - cursor: pointer; -} - -.annotation-action-icon:hover{ - filter: drop-shadow(0px 0px 1px white); - width: 24px; - height: 24px; - cursor: pointer; - -} - -.annotation-item { - color: white; - background-color: black; - opacity: 0.5; - border-radius: 1.5em; - font-size: 1em; - line-height: 1.5em; - padding: 1px 8px 0px 8px; - font-weight: bold; - display: flex; - cursor: default; -} - -.annotation-item:hover { - opacity: 1.0; - box-shadow: 0 0 5px #ffffff; -} - -.annotation-main{ - display: flex; - flex-grow: 1; -} - -.annotation-label{ - display: inline-block; - height: 100%; - flex-grow: 1; - user-select: none; - -moz-user-select: none; - z-index: 100; - vertical-align: middle; - line-height: 1.5em; - font-family: Arial; - font-weight: bold; - cursor: pointer; - white-space: nowrap; -} - -.annotation-description{ - position: relative; - color: white; - background-color: black; - padding: 10px; - margin: 5px 0px 0px 0px; - border-radius: 4px; - display: none; - max-width: 500px; - width: 500px; -} - -.annotation-description-close{ - filter: invert(100%); - float: right; - opacity: 0.5; - margin: 0px 0px 8px 8px; -} - - -.annotation-description-content{ - color: white; -} - -.annotation-icon{ - width: 20px; - height: 20px; - filter: invert(100%); - margin: 2px 2px; - opacity: 0.5; -} - - -canvas { - width: 100%; - height: 100% -} - -body{ - margin: 0; - padding: 0; - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; -} - -.axis { - font: 10px sans-serif; - color: var(--font-color); -} - -.axis path{ - fill: rgba(255, 255, 255, 0.5); - stroke: var(--font-color); - shape-rendering: crispEdges; - opacity: 0.7; -} - -.axis line { - fill: rgba(255, 255, 255, 0.5); - stroke: var(--font-color); - shape-rendering: crispEdges; - opacity: 0.1; -} - -.tick text{ - font-size: 12px; -} - -.scene_header{ - display:flex; - cursor: pointer; - padding: 2px; -} - -.scene_content{ - padding: 5px 0px 5px 0px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.measurement_content{ - padding: 5px 15px 5px 10px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.propertypanel_content{ - padding: 5px 15px 5px 10px; - /*background-color: rgba(0, 0, 0, 0.4);*/ -} - -.measurement_value_table{ - width: 100%; -} - -.coordinates_table_container table td { - width: 33%; - text-align: center; -} - -#scene_object_properties{ - margin: 0px; -} - - - - -.pv-panel-heading{ - padding: 4px !important; - display: flex; - flex-direction: row -} - -.pv-menu-list{ - list-style-type: none; - padding: 0; - margin: 15px 0px; - overflow: hidden; -} - -.pv-menu-list > *{ - margin: 4px 20px; -} - -.ui-slider { - margin-top: 5px; - margin-bottom: 10px; - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.ui-selectmenu-button.ui-button{ - width: 100% !important; -} - -.pv-menu-list > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.pv-menu-list .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black !important; -} - -.ui-slider-handle{ - border: 1px solid black !important; -} - -.ui-widget{ - box-sizing:border-box -} - -.panel-body > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.panel-body > div > li > .ui-slider{ - background-color: var(--color-1) !important; - background: none; - border: 1px solid black; -} - -.pv-select-label{ - margin: 1px; - font-size: 90%; - font-weight: 100; -} - -.button-icon:hover{ - /*background-color: #09181C;*/ - filter: drop-shadow(0px 0px 4px white); -} - -.ui-widget-content{ - /*color: var(--font-color) !important;*/ -} - -.accordion > h3{ - background-color: var(--bg-color-2) !important; - background: #f6f6f6 50% 50% repeat-x; - border: 1px solid black; - color: var(--font-color-2); - cursor: pointer; - margin: 2px 0 0 0; - padding: 4px 10px 4px 30px; - box-shadow: 0px 3px 3px #111; - text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; - font-size: 1em; -} - -.accordion > h3:hover{ - filter: brightness(125%); -} - -.accordion-content{ - padding: 0px 0px !important; - border: none !important; -} - -.icon-bar{ - height: 4px !important; - border: 1px solid black; - background-color: white; - border-radius: 2px; -} - -.canvas{ - -webkit-transition: top .35s, left .35s, bottom .35s, right .35s, width .35s; - transition: top .35s, left .35s, bottom .35s, right .35s, width .35s; -} - -#profile_window{ - background-color: var(--bg-color); -} - -#profile_titlebar{ - background-color: var(--bg-color-2); - color: var(--font-color-2); - text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; - font-size: 1em; - font-weight: bold; -} - -#profile_window_title{ - position: absolute; - margin: 5px; -} - -.profile-container-button{ - cursor: pointer; -} - -.profile-button:hover{ - background-color: #0000CC; -} - -.unselectable{ - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.selectable{ - -webkit-touch-callout: text; - -webkit-user-select: text; - -khtml-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - - - -.divider { - display: block; - text-align: center; - overflow: hidden; - white-space: nowrap; - font-weight: bold; - font-size: 90%; - letter-spacing: 1px; - margin-left: 0px; - margin-right: 0px; - margin-top: 1px; - margin-bottom: 1px; - padding: 1px !important; -} - -.divider > span { - position: relative; - display: inline-block; -} - -.divider > span:before, -.divider > span:after { - content: ""; - position: absolute; - top: 50%; - width: 9999px; - height: 1px; - background: #b2b2b2; -} - -.divider > span:before { - right: 100%; - margin-right: 5px; -} - -.divider > span:after { - left: 100%; - margin-left: 5px; -} - - - - - - - - - - - -.ol-dragbox { - background-color: rgba(255,255,255,0.4); - border-color: rgba(100,150,0,1); - border: 1px solid red; -} - -.text-icon{ - opacity: 0.5; - height: 24px; -} - -.text-icon:hover{ - opacity: 1.0; -} - -.input-grid-cell{ - flex-grow: 1; margin: 0px 3px 0px 3px; -} - -.input-grid-label{ - flex-grow: 1; - margin: 0px 3px 0px 3px; - text-align:center; - font-weight: bold; -} - -.input-grid-cell > input{ - width: 100% -} - -.invalid_value{ - color: #e05e5e; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/** - * OVERRIDES - */ - - -.ui-spinner-input{ - color: black; -} - -.jstree-themeicon-custom{ - background-size: 16px !important; -} - -.jstree-default .jstree-clicked{ - /*background-color: #ffffff !important;*/ - background-color: #34494f !important; -} - -.jstree-default .jstree-hovered{ - background-color: #34494f !important; -} - -.jstree-anchor{ - width: 100% !important; -} - -.ui-state-default{ - background: #a6a9aa !important; - border: 1px solid black; - color: black; -} - -.ui-state-active{ - background: #c6c9ca !important; - color: black !important; -} - -.cesium-viewer .cesium-viewer-cesiumWidgetContainer{ - position: absolute; - height: 100%; - width: 100%; -} - - - - -.zs_widget{ - padding: 2px; - height: 4em; - user-select: none; -} -.zs_core{ - overflow: hidden; - position: relative; - height: 100%; -} -.zs_handle{ - position: absolute; - top: 0px; - bottom: 0px; - border: 1px solid black; - border-radius: 3px; - background-color: rgb(166, 169, 170); - width: 8px; - user-select: none; - width: 1.2em; - height: 1.2em; - top: calc(50% - 0.6em); -} -.zs_stretch{ - position: absolute; - top: 0px; - bottom: 0px; - border: 1px solid black; - border-radius: 3px; - background-color: rgb(166, 169, 170); - width: 8px; - user-select: none; - width: 1.2em; - height: 1.2em; - top: calc(50% - 0.6em); - color: black; - font-weight: bold; - font-size: 1.2em; - font-family: arial; -} -.zs_handle:hover{ - background-color: lightgreen; -} -.zs_inside{ - position: absolute !important; - width: 100%; - border: 1px solid black; - background-color: white; - top: calc(50% - 0.326em); - height: 0.652em; - cursor: zoom-in; -} -.zs_outside{ - position: absolute !important; - width: 100%; - background-color: var(--color-1) !important; - top: calc(50% - 0.326em); - height: 0.652em; - cursor: zoom-in; -} -.zs_visible_range_label{ - position: absolute; - bottom: 0px; - pointer-events:none; -} -.zs_visible_range_label_left{ - left: 0px; -} -.zs_visible_range_label_right{ - right: 0px; -} -.zs_chosen_range_label{ - position: absolute; - pointer-events:none; -} - diff --git a/app/static/app/js/vendor/potree/src/viewer/profile.html b/app/static/app/js/vendor/potree/src/viewer/profile.html deleted file mode 100644 index 855216fc..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/profile.html +++ /dev/null @@ -1,95 +0,0 @@ -
      - -
      - - - - - - - -
      - -
      - - -
      - : - - - - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -
      - position: asdsadf asdf
      - rgb: 123 423 123 -
      - -
      -
      -
      - -
      \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/viewer/profile.js b/app/static/app/js/vendor/potree/src/viewer/profile.js deleted file mode 100644 index b61d023c..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/profile.js +++ /dev/null @@ -1,941 +0,0 @@ -import d3 from 'd3'; - -import {PointColorType} from "../defines.js"; -import {PointCloudMaterial} from "../materials/PointCloudMaterial.js"; -import {Utils} from "../utils.js"; -import {Points} from "../Points.js"; -import {CSVExporter} from "../exporter/CSVExporter.js"; -import {LASExporter} from "../exporter/LASExporter.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - -class ProfilePointCloudEntry{ - - constructor(){ - - this.points = []; - - //let geometry = new THREE.BufferGeometry(); - let material = ProfilePointCloudEntry.getMaterialInstance(); - material.uniforms.minSize.value = 2; - material.uniforms.maxSize.value = 2; - material.pointColorType = PointColorType.RGB; - material.opacity = 1.0; - - this.material = material; - - this.sceneNode = new THREE.Object3D(); - //this.sceneNode = new THREE.Points(geometry, material); - } - - static releaseMaterialInstance(instance){ - ProfilePointCloudEntry.materialPool.add(instance); - } - - static getMaterialInstance(){ - - let instance = ProfilePointCloudEntry.materialPool.values().next().value; - if(!instance){ - instance = new PointCloudMaterial(); - }else{ - ProfilePointCloudEntry.materialPool.delete(instance); - } - - return instance; - } - - dispose(){ - - for(let child of this.sceneNode.children){ - ProfilePointCloudEntry.releaseMaterialInstance(child.material); - child.geometry.dispose(); - } - - this.sceneNode.children = []; - } - - addPoints(data){ - - this.points.push(data); - - let batchSize = 10*1000; - - let createNewBatch = () => { - let geometry = new THREE.BufferGeometry(); - - let buffers = { - position: new Float32Array(3 * batchSize), - color: new Uint8Array(4 * batchSize), - intensity: new Uint16Array(batchSize), - classification: new Uint8Array(batchSize), - returnNumber: new Uint8Array(batchSize), - numberOfReturns: new Uint8Array(batchSize), - pointSourceID: new Uint16Array(batchSize) - }; - - geometry.addAttribute('position', new THREE.BufferAttribute(buffers.position, 3)); - geometry.addAttribute('color', new THREE.BufferAttribute(buffers.color, 4, true)); - geometry.addAttribute('intensity', new THREE.BufferAttribute(buffers.intensity, 1, false)); - geometry.addAttribute('classification', new THREE.BufferAttribute(buffers.classification, 1, false)); - geometry.addAttribute('returnNumber', new THREE.BufferAttribute(buffers.returnNumber, 1, false)); - geometry.addAttribute('numberOfReturns', new THREE.BufferAttribute(buffers.numberOfReturns, 1, false)); - geometry.addAttribute('pointSourceID', new THREE.BufferAttribute(buffers.pointSourceID, 1, false)); - - geometry.drawRange.start = 0; - geometry.drawRange.count = 0; - - this.currentBatch = new THREE.Points(geometry, this.material); - this.sceneNode.add(this.currentBatch); - } - - if(!this.currentBatch){ - createNewBatch(); - } - - { // REBUILD MODEL - - let pointsProcessed = 0; - let updateRange = { - start: this.currentBatch.geometry.drawRange.count, - count: 0 - }; - - let projectedBox = new THREE.Box3(); - - for(let i = 0; i < data.numPoints; i++){ - - if(updateRange.start + updateRange.count >= batchSize){ - // finalize current batch, start new batch - - for(let key of Object.keys(this.currentBatch.geometry.attributes)){ - let attribute = this.currentBatch.geometry.attributes[key]; - attribute.updateRange.offset = updateRange.start; - attribute.updateRange.count = updateRange.count; - attribute.needsUpdate = true; - } - this.currentBatch.geometry.computeBoundingBox(); - this.currentBatch.geometry.computeBoundingSphere(); - - createNewBatch(); - updateRange = { - start: 0, - count: 0 - }; - } - - - let x = data.data.mileage[i]; - let y = 0; - let z = data.data.position[3 * i + 2]; - - projectedBox.expandByPoint(new THREE.Vector3(x, y, z)); - - let currentIndex = updateRange.start + updateRange.count; - - let attributes = this.currentBatch.geometry.attributes; - - { - attributes.position.array[3 * currentIndex + 0] = x; - attributes.position.array[3 * currentIndex + 1] = y; - attributes.position.array[3 * currentIndex + 2] = z; - } - - if(data.data.color){ - attributes.color.array[4 * currentIndex + 0] = data.data.color[4 * i + 0]; - attributes.color.array[4 * currentIndex + 1] = data.data.color[4 * i + 1]; - attributes.color.array[4 * currentIndex + 2] = data.data.color[4 * i + 2]; - attributes.color.array[4 * currentIndex + 3] = 255; - } - - if(data.data.intensity){ - attributes.intensity.array[currentIndex] = data.data.intensity[i]; - } - - if(data.data.classification){ - attributes.classification.array[currentIndex] = data.data.classification[i]; - } - - if(data.data.returnNumber){ - attributes.returnNumber.array[currentIndex] = data.data.returnNumber[i]; - } - - if(data.data.numberOfReturns){ - attributes.numberOfReturns.array[currentIndex] = data.data.numberOfReturns[i]; - } - - if(data.data.pointSourceID){ - attributes.pointSourceID.array[currentIndex] = data.data.pointSourceID[i]; - } - - updateRange.count++; - this.currentBatch.geometry.drawRange.count++; - } - - //for(let attribute of Object.values(this.currentBatch.geometry.attributes)){ - for(let key of Object.keys(this.currentBatch.geometry.attributes)){ - let attribute = this.currentBatch.geometry.attributes[key]; - attribute.updateRange.offset = updateRange.start; - attribute.updateRange.count = updateRange.count; - attribute.needsUpdate = true; - } - - data.projectedBox = projectedBox; - - this.projectedBox = this.points.reduce( (a, i) => a.union(i.projectedBox), new THREE.Box3()); - } - - - } - -}; - -ProfilePointCloudEntry.materialPool = new Set(); - -export class ProfileWindow extends EventDispatcher { - constructor (viewer) { - super(); - - this.viewer = viewer; - this.elRoot = $('#profile_window'); - this.renderArea = this.elRoot.find('#profileCanvasContainer'); - this.svg = d3.select('svg#profileSVG'); - this.mouseIsDown = false; - - this.projectedBox = new THREE.Box3(); - this.pointclouds = new Map(); - this.numPoints = 0; - this.lastAddPointsTimestamp = undefined; - - this.mouse = new THREE.Vector2(0, 0); - this.scale = new THREE.Vector3(1, 1, 1); - - let csvIcon = `${PotreeExports.resourcePath}/icons/file_csv_2d.svg`; - $('#potree_download_csv_icon').attr('src', csvIcon); - - let lasIcon = `${PotreeExports.resourcePath}/icons/file_las_3d.svg`; - $('#potree_download_las_icon').attr('src', lasIcon); - - let closeIcon = `${PotreeExports.resourcePath}/icons/close.svg`; - $('#closeProfileContainer').attr("src", closeIcon); - - this.initTHREE(); - this.initSVG(); - this.initListeners(); - - this.elRoot.i18n(); - } - - initListeners () { - $(window).resize(() => { - this.render(); - }); - - this.renderArea.mousedown(e => { - this.mouseIsDown = true; - }); - - this.renderArea.mouseup(e => { - this.mouseIsDown = false; - }); - - let viewerPickSphereSizeHandler = () => { - let camera = this.viewer.scene.getActiveCamera(); - let domElement = this.viewer.renderer.domElement; - let distance = this.viewerPickSphere.position.distanceTo(camera.position); - let pr = Utils.projectedRadius(1, camera, distance, domElement.clientWidth, domElement.clientHeight); - let scale = (10 / pr); - this.viewerPickSphere.scale.set(scale, scale, scale); - }; - - this.renderArea.mousemove(e => { - if (this.pointclouds.size === 0) { - return; - } - - let rect = this.renderArea[0].getBoundingClientRect(); - let x = e.clientX - rect.left; - let y = e.clientY - rect.top; - - let newMouse = new THREE.Vector2(x, y); - - if (this.mouseIsDown) { - // DRAG - this.autoFit = false; - this.lastDrag = new Date().getTime(); - - let cPos = [this.scaleX.invert(this.mouse.x), this.scaleY.invert(this.mouse.y)]; - let ncPos = [this.scaleX.invert(newMouse.x), this.scaleY.invert(newMouse.y)]; - - this.camera.position.x -= ncPos[0] - cPos[0]; - this.camera.position.z -= ncPos[1] - cPos[1]; - - this.render(); - } else if (this.pointclouds.size > 0) { - // FIND HOVERED POINT - let radius = Math.abs(this.scaleX.invert(0) - this.scaleX.invert(40)); - let mileage = this.scaleX.invert(newMouse.x); - let elevation = this.scaleY.invert(newMouse.y); - - let point = this.selectPoint(mileage, elevation, radius); - - if (point) { - this.elRoot.find('#profileSelectionProperties').fadeIn(200); - this.pickSphere.visible = true; - this.pickSphere.scale.set(0.5 * radius, 0.5 * radius, 0.5 * radius); - this.pickSphere.position.set(point.mileage, 0, point.position[2]); - - this.viewerPickSphere.position.set(...point.position); - - if(!this.viewer.scene.scene.children.includes(this.viewerPickSphere)){ - this.viewer.scene.scene.add(this.viewerPickSphere); - if(!this.viewer.hasEventListener("update", viewerPickSphereSizeHandler)){ - this.viewer.addEventListener("update", viewerPickSphereSizeHandler); - } - } - - - let info = this.elRoot.find('#profileSelectionProperties'); - let html = ''; - for (let attribute of Object.keys(point)) { - let value = point[attribute]; - if (attribute === 'position') { - let values = [...value].map(v => Utils.addCommas(v.toFixed(3))); - html += ` - - - - - - - - - - - - `; - } else if (attribute === 'color') { - html += ` - - - - `; - } else if (attribute === 'normal') { - continue; - } else if (attribute === 'mileage') { - html += ` - - - - `; - } else { - html += ` - - - - `; - } - } - html += '
      x${values[0]}
      y${values[1]}
      z${values[2]}
      ${attribute}${value.join(', ')}
      ${attribute}${value.toFixed(3)}
      ${attribute}${value}
      '; - info.html(html); - - this.selectedPoint = point; - } else { - // this.pickSphere.visible = false; - // this.selectedPoint = null; - - this.viewer.scene.scene.add(this.viewerPickSphere); - - let index = this.viewer.scene.scene.children.indexOf(this.viewerPickSphere); - if(index >= 0){ - this.viewer.scene.scene.children.splice(index, 1); - } - this.viewer.removeEventListener("update", viewerPickSphereSizeHandler); - - - } - this.render(); - } - - this.mouse.copy(newMouse); - }); - - let onWheel = e => { - this.autoFit = false; - let delta = 0; - if (e.wheelDelta !== undefined) { // WebKit / Opera / Explorer 9 - delta = e.wheelDelta; - } else if (e.detail !== undefined) { // Firefox - delta = -e.detail; - } - - let ndelta = Math.sign(delta); - - let cPos = [this.scaleX.invert(this.mouse.x), this.scaleY.invert(this.mouse.y)]; - - if (ndelta > 0) { - // + 10% - this.scale.multiplyScalar(1.1); - } else { - // - 10% - this.scale.multiplyScalar(100 / 110); - } - - this.updateScales(); - let ncPos = [this.scaleX.invert(this.mouse.x), this.scaleY.invert(this.mouse.y)]; - - this.camera.position.x -= ncPos[0] - cPos[0]; - this.camera.position.z -= ncPos[1] - cPos[1]; - - this.render(); - this.updateScales(); - }; - $(this.renderArea)[0].addEventListener('mousewheel', onWheel, false); - $(this.renderArea)[0].addEventListener('DOMMouseScroll', onWheel, false); // Firefox - - $('#closeProfileContainer').click(() => { - this.hide(); - }); - - $('#potree_download_csv_icon').click(() => { - let points = new Points(); - - for(let [pointcloud, entry] of this.pointclouds){ - for(let pointSet of entry.points){ - points.add(pointSet); - } - } - - let string = CSVExporter.toString(points); - - let blob = new Blob([string], {type: "text/string"}); - $('#potree_download_profile_ortho_link').attr('href', URL.createObjectURL(blob)); - - //let uri = 'data:application/octet-stream;base64,' + btoa(string); - //$('#potree_download_profile_ortho_link').attr('href', uri); - }); - - $('#potree_download_las_icon').click(() => { - - let points = new Points(); - - for(let [pointcloud, entry] of this.pointclouds){ - for(let pointSet of entry.points){ - points.add(pointSet); - } - } - - let buffer = LASExporter.toLAS(points); - - let blob = new Blob([buffer], {type: "application/octet-binary"}); - $('#potree_download_profile_link').attr('href', URL.createObjectURL(blob)); - - //let u8view = new Uint8Array(buffer); - //let binString = ''; - //for (let i = 0; i < u8view.length; i++) { - // binString += String.fromCharCode(u8view[i]); - //} - // - //let uri = 'data:application/octet-stream;base64,' + btoa(binString); - //$('#potree_download_profile_link').attr('href', uri); - }); - } - - selectPoint (mileage, elevation, radius) { - let closest = { - distance: Infinity, - pointcloud: null, - points: null, - index: null - }; - - let pointBox = new THREE.Box2( - new THREE.Vector2(mileage - radius, elevation - radius), - new THREE.Vector2(mileage + radius, elevation + radius)); - - //let debugNode = this.scene.getObjectByName("select_debug_node"); - //if(!debugNode){ - // debugNode = new THREE.Object3D(); - // debugNode.name = "select_debug_node"; - // this.scene.add(debugNode); - //} - //debugNode.children = []; - //let debugPointBox = new THREE.Box3( - // new THREE.Vector3(...pointBox.min.toArray(), -1), - // new THREE.Vector3(...pointBox.max.toArray(), +1) - //); - //debugNode.add(new Box3Helper(debugPointBox, 0xff0000)); - - let numTested = 0; - let numSkipped = 0; - let numTestedPoints = 0; - let numSkippedPoints = 0; - - for (let [pointcloud, entry] of this.pointclouds) { - for(let points of entry.points){ - - let collisionBox = new THREE.Box2( - new THREE.Vector2(points.projectedBox.min.x, points.projectedBox.min.z), - new THREE.Vector2(points.projectedBox.max.x, points.projectedBox.max.z) - ); - - let intersects = collisionBox.intersectsBox(pointBox); - - if(!intersects){ - numSkipped++; - numSkippedPoints += points.numPoints; - continue; - } - - //let debugCollisionBox = new THREE.Box3( - // new THREE.Vector3(...collisionBox.min.toArray(), -1), - // new THREE.Vector3(...collisionBox.max.toArray(), +1) - //); - //debugNode.add(new Box3Helper(debugCollisionBox)); - - numTested++; - numTestedPoints += points.numPoints - - for (let i = 0; i < points.numPoints; i++) { - - let m = points.data.mileage[i] - mileage; - let e = points.data.position[3 * i + 2] - elevation; - - let r = Math.sqrt(m * m + e * e); - - if (r < radius && r < closest.distance) { - closest = { - distance: r, - pointcloud: pointcloud, - points: points, - index: i - }; - } - } - } - } - - - //console.log(`nodes: ${numTested}, ${numSkipped} || points: ${numTestedPoints}, ${numSkippedPoints}`); - - if (closest.distance < Infinity) { - let points = closest.points; - - let point = {}; - - let attributes = Object.keys(points.data); - for (let attribute of attributes) { - let attributeData = points.data[attribute]; - let itemSize = attributeData.length / points.numPoints; - let value = attributeData.subarray(itemSize * closest.index, itemSize * closest.index + itemSize); - - if (value.length === 1) { - point[attribute] = value[0]; - } else { - point[attribute] = value; - } - } - - return point; - } else { - return null; - } - } - - initTHREE () { - this.renderer = new THREE.WebGLRenderer({alpha: true, premultipliedAlpha: false}); - this.renderer.setClearColor(0x000000, 0); - this.renderer.setSize(10, 10); - this.renderer.autoClear = true; - this.renderArea.append($(this.renderer.domElement)); - this.renderer.domElement.tabIndex = '2222'; - this.renderer.context.getExtension('EXT_frag_depth'); - $(this.renderer.domElement).css('width', '100%'); - $(this.renderer.domElement).css('height', '100%'); - - this.camera = new THREE.OrthographicCamera(-1000, 1000, 1000, -1000, -1000, 1000); - this.camera.up.set(0, 0, 1); - this.camera.rotation.order = "ZXY"; - this.camera.rotation.x = Math.PI / 2.0; - - - - this.scene = new THREE.Scene(); - - let sg = new THREE.SphereGeometry(1, 16, 16); - let sm = new THREE.MeshNormalMaterial(); - this.pickSphere = new THREE.Mesh(sg, sm); - //this.pickSphere.visible = false; - this.scene.add(this.pickSphere); - - this.viewerPickSphere = new THREE.Mesh(sg, sm); - - this.pointCloudRoot = new THREE.Object3D(); - this.scene.add(this.pointCloudRoot); - } - - initSVG () { - let width = this.renderArea[0].clientWidth; - let height = this.renderArea[0].clientHeight; - let marginLeft = this.renderArea[0].offsetLeft; - - this.svg.selectAll('*').remove(); - - this.scaleX = d3.scale.linear() - .domain([this.camera.left + this.camera.position.x, this.camera.right + this.camera.position.x]) - .range([0, width]); - this.scaleY = d3.scale.linear() - .domain([this.camera.bottom + this.camera.position.z, this.camera.top + this.camera.position.z]) - .range([height, 0]); - - this.xAxis = d3.svg.axis() - .scale(this.scaleX) - .orient('bottom') - .innerTickSize(-height) - .outerTickSize(1) - .tickPadding(10) - .ticks(width / 50); - - this.yAxis = d3.svg.axis() - .scale(this.scaleY) - .orient('left') - .innerTickSize(-width) - .outerTickSize(1) - .tickPadding(10) - .ticks(height / 20); - - this.elXAxis = this.svg.append('g') - .attr('class', 'x axis') - .attr('transform', `translate(${marginLeft}, ${height})`) - .call(this.xAxis); - - this.elYAxis = this.svg.append('g') - .attr('class', 'y axis') - .attr('transform', `translate(${marginLeft}, 0)`) - .call(this.yAxis); - } - - setProfile (profile) { - this.render(); - } - - addPoints (pointcloud, points) { - //this.lastAddPointsTimestamp = new Date().getTime(); - - let entry = this.pointclouds.get(pointcloud); - if(!entry){ - entry = new ProfilePointCloudEntry(); - this.pointclouds.set(pointcloud, entry); - - let materialChanged = () => this.render(); - pointcloud.material.addEventListener('material_property_changed', materialChanged); - this.addEventListener("on_reset_once", () => { - pointcloud.material.removeEventListener('material_property_changed', materialChanged); - }); - } - - entry.addPoints(points); - this.pointCloudRoot.add(entry.sceneNode); - this.projectedBox.union(entry.projectedBox); - //console.log(this.projectedBox.min.toArray().map(v => v.toFixed(2)).join(", ")); - //console.log(this.projectedBox.getSize().toArray().map(v => v.toFixed(2)).join(", ")); - - if (this.autoFit) { - let width = this.renderArea[0].clientWidth; - let height = this.renderArea[0].clientHeight; - - let size = this.projectedBox.getSize(new THREE.Vector3()); - - let sx = width / size.x; - let sy = height / size.z; - let scale = Math.min(sx, sy); - - let center = this.projectedBox.getCenter(new THREE.Vector3()); - this.scale.set(scale, scale, 1); - this.camera.position.copy(center); - - //console.log("camera: ", this.camera.position.toArray().join(", ")); - } - - //console.log(entry); - - this.render(); - - let numPoints = 0; - for (let [key, value] of this.pointclouds.entries()) { - numPoints += value.points.reduce( (a, i) => a + i.numPoints, 0); - } - $(`#profile_num_points`).html(Utils.addCommas(numPoints)); - - } - - reset () { - this.lastReset = new Date().getTime(); - - this.dispatchEvent({type: "on_reset_once"}); - this.removeEventListeners("on_reset_once"); - - this.autoFit = true; - this.projectedBox = new THREE.Box3(); - - for(let [key, entry] of this.pointclouds){ - entry.dispose(); - } - - this.pointclouds.clear(); - this.mouseIsDown = false; - this.mouse.set(0, 0); - this.scale.set(1, 1, 1); - this.pickSphere.visible = false; - - this.pointCloudRoot.children = []; - - this.elRoot.find('#profileSelectionProperties').hide(); - - this.render(); - } - - show () { - this.elRoot.fadeIn(); - this.enabled = true; - } - - hide () { - this.elRoot.fadeOut(); - this.enabled = false; - } - - updateScales () { - let width = this.renderArea[0].clientWidth; - let height = this.renderArea[0].clientHeight; - - let left = (-width / 2) / this.scale.x; - let right = (+width / 2) / this.scale.x; - let top = (+height / 2) / this.scale.y; - let bottom = (-height / 2) / this.scale.y; - - this.camera.left = left; - this.camera.right = right; - this.camera.top = top; - this.camera.bottom = bottom; - this.camera.updateProjectionMatrix(); - - this.scaleX.domain([this.camera.left + this.camera.position.x, this.camera.right + this.camera.position.x]) - .range([0, width]); - this.scaleY.domain([this.camera.bottom + this.camera.position.z, this.camera.top + this.camera.position.z]) - .range([height, 0]); - - let marginLeft = this.renderArea[0].offsetLeft; - - this.xAxis.scale(this.scaleX) - .orient('bottom') - .innerTickSize(-height) - .outerTickSize(1) - .tickPadding(10) - .ticks(width / 50); - this.yAxis.scale(this.scaleY) - .orient('left') - .innerTickSize(-width) - .outerTickSize(1) - .tickPadding(10) - .ticks(height / 20); - - - this.elXAxis - .attr('transform', `translate(${marginLeft}, ${height})`) - .call(this.xAxis); - this.elYAxis - .attr('transform', `translate(${marginLeft}, 0)`) - .call(this.yAxis); - } - - requestScaleUpdate(){ - - let threshold = 100; - let allowUpdate = ((this.lastReset === undefined) || (this.lastScaleUpdate === undefined)) - || ((new Date().getTime() - this.lastReset) > threshold && (new Date().getTime() - this.lastScaleUpdate) > threshold); - - if(allowUpdate){ - - this.updateScales(); - - this.lastScaleUpdate = new Date().getTime(); - - - - this.scaleUpdatePending = false; - }else if(!this.scaleUpdatePending) { - setTimeout(this.requestScaleUpdate.bind(this), 100); - this.scaleUpdatePending = true; - } - - } - - render () { - let width = this.renderArea[0].clientWidth; - let height = this.renderArea[0].clientHeight; - - //this.updateScales(); - - { // THREEJS - let radius = Math.abs(this.scaleX.invert(0) - this.scaleX.invert(5)); - this.pickSphere.scale.set(radius, radius, radius); - //this.pickSphere.position.z = this.camera.far - radius; - //this.pickSphere.position.y = 0; - - for (let [pointcloud, entry] of this.pointclouds) { - let material = entry.material; - - material.pointColorType = pointcloud.material.pointColorType; - material.uniforms.uColor = pointcloud.material.uniforms.uColor; - material.uniforms.intensityRange.value = pointcloud.material.uniforms.intensityRange.value; - material.elevationRange = pointcloud.material.elevationRange; - - material.rgbGamma = pointcloud.material.rgbGamma; - material.rgbContrast = pointcloud.material.rgbContrast; - material.rgbBrightness = pointcloud.material.rgbBrightness; - - material.intensityRange = pointcloud.material.intensityRange; - material.intensityGamma = pointcloud.material.intensityGamma; - material.intensityContrast = pointcloud.material.intensityContrast; - material.intensityBrightness = pointcloud.material.intensityBrightness; - - material.uniforms.wRGB.value = pointcloud.material.uniforms.wRGB.value; - material.uniforms.wIntensity.value = pointcloud.material.uniforms.wIntensity.value; - material.uniforms.wElevation.value = pointcloud.material.uniforms.wElevation.value; - material.uniforms.wClassification.value = pointcloud.material.uniforms.wClassification.value; - material.uniforms.wReturnNumber.value = pointcloud.material.uniforms.wReturnNumber.value; - material.uniforms.wSourceID.value = pointcloud.material.uniforms.wSourceID.value; - - } - - this.pickSphere.visible = true; - - this.renderer.setSize(width, height); - - this.renderer.render(this.scene, this.camera); - } - - this.requestScaleUpdate(); - } -}; - -export class ProfileWindowController { - constructor (viewer) { - this.viewer = viewer; - this.profileWindow = viewer.profileWindow; - this.profile = null; - this.numPoints = 0; - this.threshold = 60 * 1000; - this.scheduledRecomputeTime = null; - - this.enabled = true; - - this.requests = []; - - this._recompute = () => { this.recompute(); }; - - this.viewer.addEventListener("scene_changed", e => { - e.oldScene.removeEventListener("pointcloud_added", this._recompute); - e.scene.addEventListener("pointcloud_added", this._recompute); - }); - this.viewer.scene.addEventListener("pointcloud_added", this._recompute); - } - - setProfile (profile) { - if (this.profile !== null && this.profile !== profile) { - this.profile.removeEventListener('marker_moved', this._recompute); - this.profile.removeEventListener('marker_added', this._recompute); - this.profile.removeEventListener('marker_removed', this._recompute); - this.profile.removeEventListener('width_changed', this._recompute); - } - - this.profile = profile; - - { - this.profile.addEventListener('marker_moved', this._recompute); - this.profile.addEventListener('marker_added', this._recompute); - this.profile.addEventListener('marker_removed', this._recompute); - this.profile.addEventListener('width_changed', this._recompute); - } - - this.recompute(); - } - - reset () { - this.profileWindow.reset(); - - this.numPoints = 0; - - if (this.profile) { - for (let request of this.requests) { - request.cancel(); - } - } - } - - progressHandler (pointcloud, progress) { - for (let segment of progress.segments) { - this.profileWindow.addPoints(pointcloud, segment.points); - this.numPoints += segment.points.numPoints; - } - } - - cancel () { - for (let request of this.requests) { - request.cancel(); - // request.finishLevelThenCancel(); - } - - this.requests = []; - }; - - finishLevelThenCancel(){ - for (let request of this.requests) { - request.finishLevelThenCancel(); - } - - this.requests = []; - } - - recompute () { - if (!this.profile) { - return; - } - - if (this.scheduledRecomputeTime !== null && this.scheduledRecomputeTime > new Date().getTime()) { - return; - } else { - this.scheduledRecomputeTime = new Date().getTime() + 100; - } - this.scheduledRecomputeTime = null; - - this.reset(); - - for (let pointcloud of this.viewer.scene.pointclouds.filter(p => p.visible)) { - let request = pointcloud.getPointsInProfile(this.profile, null, { - 'onProgress': (event) => { - if (!this.enabled) { - return; - } - - this.progressHandler(pointcloud, event.points); - - if (this.numPoints > this.threshold) { - this.finishLevelThenCancel(); - } - }, - 'onFinish': (event) => { - if (!this.enabled) { - - } - }, - 'onCancel': () => { - if (!this.enabled) { - - } - } - }); - - this.requests.push(request); - } - } -}; diff --git a/app/static/app/js/vendor/potree/src/viewer/sidebar.html b/app/static/app/js/vendor/potree/src/viewer/sidebar.html deleted file mode 100644 index 333fc1da..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/sidebar.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - diff --git a/app/static/app/js/vendor/potree/src/viewer/sidebar.js b/app/static/app/js/vendor/potree/src/viewer/sidebar.js deleted file mode 100644 index 14a4ce17..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/sidebar.js +++ /dev/null @@ -1,1120 +0,0 @@ - -import {MeasuringTool} from "../utils/MeasuringTool.js"; -import {ProfileTool} from "../utils/ProfileTool.js"; -import {VolumeTool} from "../utils/VolumeTool.js"; - -import {GeoJSONExporter} from "../exporter/GeoJSONExporter.js" -import {DXFExporter} from "../exporter/DXFExporter.js" -import {Volume, SphereVolume} from "../utils/Volume.js" -import {PolygonClipVolume} from "../utils/PolygonClipVolume.js" -import {PropertiesPanel} from "./PropertyPanels/PropertiesPanel.js" -import {PointCloudTree} from "../PointCloudTree.js" -import {Profile} from "../utils/Profile.js" -import {Measure} from "../utils/Measure.js" -import {Annotation} from "../Annotation.js" -import {CameraMode, ClipTask, ClipMethod} from "../defines.js" -import {ScreenBoxSelectTool} from "../utils/ScreenBoxSelectTool.js" -import {Utils} from "../utils.js" - -import {EarthControls} from "../navigation/EarthControls.js" -import {FirstPersonControls} from "../navigation/FirstPersonControls.js" -import {OrbitControls} from "../navigation/OrbitControls.js" - -import {ZoomableSlider} from "./ZoomableSlider.js" - -export class Sidebar{ - - constructor(viewer){ - this.viewer = viewer; - - this.measuringTool = new MeasuringTool(this.viewer); - this.profileTool = new ProfileTool(this.viewer); - this.volumeTool = new VolumeTool(this.viewer); - - } - - createToolIcon(icon, title, callback){ - let element = $(` - - `); - - element.click(callback); - - return element; - } - - init(){ - - this.initAccordion(); - this.initAppearance(); - this.initToolbar(); - this.initScene(); - this.initNavigation(); - this.initFilters(); - this.initClippingTool(); - this.initSettings(); - - $('#potree_version_number').html(Potree.version.major + "." + Potree.version.minor + Potree.version.suffix); - // $('.perfect_scrollbar').perfectScrollbar(); - } - - - - initToolbar(){ - - // ANGLE - let elToolbar = $('#tools'); - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/angle.png', - '[title]tt.angle_measurement', - () => { - $('#menu_measurements').next().slideDown(); - let measurement = this.measuringTool.startInsertion({ - showDistances: false, - showAngles: true, - showArea: false, - closed: true, - maxMarkers: 3, - name: 'Angle'}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === measurement.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // POINT - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/point.svg', - '[title]tt.point_measurement', - () => { - $('#menu_measurements').next().slideDown(); - let measurement = this.measuringTool.startInsertion({ - showDistances: false, - showAngles: false, - showCoordinates: true, - showArea: false, - closed: true, - maxMarkers: 1, - name: 'Point'}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === measurement.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // DISTANCE - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/distance.svg', - '[title]tt.distance_measurement', - () => { - $('#menu_measurements').next().slideDown(); - let measurement = this.measuringTool.startInsertion({ - showDistances: true, - showArea: false, - closed: false, - name: 'Distance'}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === measurement.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // HEIGHT - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/height.svg', - '[title]tt.height_measurement', - () => { - $('#menu_measurements').next().slideDown(); - let measurement = this.measuringTool.startInsertion({ - showDistances: false, - showHeight: true, - showArea: false, - closed: false, - maxMarkers: 2, - name: 'Height'}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === measurement.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // AREA - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/area.svg', - '[title]tt.area_measurement', - () => { - $('#menu_measurements').next().slideDown(); - let measurement = this.measuringTool.startInsertion({ - showDistances: true, - showArea: true, - closed: true, - name: 'Area'}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === measurement.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // VOLUME - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/volume.svg', - '[title]tt.volume_measurement', - () => { - let volume = this.volumeTool.startInsertion(); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === volume.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // SPHERE VOLUME - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/sphere_distances.svg', - '[title]tt.volume_measurement', - () => { - let volume = this.volumeTool.startInsertion({type: SphereVolume}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === volume.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // PROFILE - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/profile.svg', - '[title]tt.height_profile', - () => { - $('#menu_measurements').next().slideDown(); ; - let profile = this.profileTool.startInsertion(); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === profile.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // REMOVE ALL - elToolbar.append(this.createToolIcon( - Potree.resourcePath + '/icons/reset_tools.svg', - '[title]tt.remove_all_measurement', - () => { - this.viewer.scene.removeAllMeasurements(); - } - )); - } - - initScene(){ - - let elScene = $("#menu_scene"); - let elObjects = elScene.next().find("#scene_objects"); - let elProperties = elScene.next().find("#scene_object_properties"); - - - { - let elExport = elScene.next().find("#scene_export"); - - let geoJSONIcon = `${Potree.resourcePath}/icons/file_geojson.svg`; - let dxfIcon = `${Potree.resourcePath}/icons/file_dxf.svg`; - - elExport.append(` - Export:
      - - - `); - - let elDownloadJSON = elExport.find("img[name=geojson_export_button]").parent(); - elDownloadJSON.click( (event) => { - let scene = this.viewer.scene; - let measurements = [...scene.measurements, ...scene.profiles, ...scene.volumes]; - - if(measurements.length > 0){ - let geoJson = GeoJSONExporter.toString(measurements); - - let url = window.URL.createObjectURL(new Blob([geoJson], {type: 'data:application/octet-stream'})); - elDownloadJSON.attr('href', url); - }else{ - this.viewer.postError("no measurements to export"); - event.preventDefault(); - } - }); - - let elDownloadDXF = elExport.find("img[name=dxf_export_button]").parent(); - elDownloadDXF.click( (event) => { - let scene = this.viewer.scene; - let measurements = [...scene.measurements, ...scene.profiles, ...scene.volumes]; - - if(measurements.length > 0){ - let dxf = DXFExporter.toString(measurements); - - let url = window.URL.createObjectURL(new Blob([dxf], {type: 'data:application/octet-stream'})); - elDownloadDXF.attr('href', url); - }else{ - this.viewer.postError("no measurements to export"); - event.preventDefault(); - } - }); - } - - let propertiesPanel = new PropertiesPanel(elProperties, this.viewer); - propertiesPanel.setScene(this.viewer.scene); - - localStorage.removeItem('jstree'); - - let tree = $(`
      `); - elObjects.append(tree); - - tree.jstree({ - 'plugins': ["checkbox", "state"], - 'core': { - "dblclick_toggle": false, - "state": { - "checked" : true - }, - 'check_callback': true, - "expand_selected_onload": true - }, - "checkbox" : { - "keep_selected_style": true, - "three_state": false, - "whole_node": false, - "tie_selection": false, - }, - }); - - let createNode = (parent, text, icon, object) => { - let nodeID = tree.jstree('create_node', parent, { - "text": text, - "icon": icon, - "data": object - }, - "last", false, false); - - if(object.visible){ - tree.jstree('check_node', nodeID); - }else{ - tree.jstree('uncheck_node', nodeID); - } - - return nodeID; - } - - let pcID = tree.jstree('create_node', "#", { "text": "Point Clouds", "id": "pointclouds"}, "last", false, false); - let measurementID = tree.jstree('create_node', "#", { "text": "Measurements", "id": "measurements" }, "last", false, false); - let annotationsID = tree.jstree('create_node', "#", { "text": "Annotations", "id": "annotations" }, "last", false, false); - let otherID = tree.jstree('create_node', "#", { "text": "Other", "id": "other" }, "last", false, false); - - tree.jstree("check_node", pcID); - tree.jstree("check_node", measurementID); - tree.jstree("check_node", annotationsID); - tree.jstree("check_node", otherID); - - tree.on('create_node.jstree', (e, data) => { - tree.jstree("open_all"); - }); - - tree.on("select_node.jstree", (e, data) => { - let object = data.node.data; - propertiesPanel.set(object); - - this.viewer.inputHandler.deselectAll(); - - if(object instanceof Volume){ - this.viewer.inputHandler.toggleSelection(object); - } - - $(this.viewer.renderer.domElement).focus(); - }); - - tree.on("deselect_node.jstree", (e, data) => { - propertiesPanel.set(null); - }); - - tree.on("delete_node.jstree", (e, data) => { - propertiesPanel.set(null); - }); - - tree.on('dblclick','.jstree-anchor', (e) => { - - let instance = $.jstree.reference(e.target); - let node = instance.get_node(e.target); - let object = node.data; - - // ignore double click on checkbox - if(e.target.classList.contains("jstree-checkbox")){ - return; - } - - if(object instanceof PointCloudTree){ - let box = this.viewer.getBoundingBox([object]); - let node = new THREE.Object3D(); - node.boundingBox = box; - this.viewer.zoomTo(node, 1, 500); - }else if(object instanceof Measure){ - let points = object.points.map(p => p.position); - let box = new THREE.Box3().setFromPoints(points); - if(box.getSize(new THREE.Vector3()).length() > 0){ - let node = new THREE.Object3D(); - node.boundingBox = box; - this.viewer.zoomTo(node, 2, 500); - } - }else if(object instanceof Profile){ - let points = object.points; - let box = new THREE.Box3().setFromPoints(points); - if(box.getSize(new THREE.Vector3()).length() > 0){ - let node = new THREE.Object3D(); - node.boundingBox = box; - this.viewer.zoomTo(node, 1, 500); - } - }else if(object instanceof Volume){ - - let box = object.boundingBox.clone().applyMatrix4(object.matrixWorld); - - if(box.getSize(new THREE.Vector3()).length() > 0){ - let node = new THREE.Object3D(); - node.boundingBox = box; - this.viewer.zoomTo(node, 1, 500); - } - }else if(object instanceof Annotation){ - object.moveHere(this.viewer.scene.getActiveCamera()); - }else if(object instanceof PolygonClipVolume){ - let dir = object.camera.getWorldDirection(new THREE.Vector3()); - let target; - - if(object.camera instanceof THREE.OrthographicCamera){ - dir.multiplyScalar(object.camera.right) - target = new THREE.Vector3().addVectors(object.camera.position, dir); - this.viewer.setCameraMode(CameraMode.ORTHOGRAPHIC); - }else if(object.camera instanceof THREE.PerspectiveCamera){ - dir.multiplyScalar(this.viewer.scene.view.radius); - target = new THREE.Vector3().addVectors(object.camera.position, dir); - this.viewer.setCameraMode(CameraMode.PERSPECTIVE); - } - - this.viewer.scene.view.position.copy(object.camera.position); - this.viewer.scene.view.lookAt(target); - }else if(object instanceof THREE.SpotLight){ - let distance = (object.distance > 0) ? object.distance / 4 : 5 * 1000; - let position = object.position; - let target = new THREE.Vector3().addVectors( - position, - object.getWorldDirection(new THREE.Vector3()).multiplyScalar(distance)); - - this.viewer.scene.view.position.copy(object.position); - this.viewer.scene.view.lookAt(target); - }else if(object instanceof THREE.Object3D){ - let box = new THREE.Box3().setFromObject(object); - - if(box.getSize(new THREE.Vector3()).length() > 0){ - let node = new THREE.Object3D(); - node.boundingBox = box; - this.viewer.zoomTo(node, 1, 500); - } - } - }); - - tree.on("uncheck_node.jstree", (e, data) => { - let object = data.node.data; - - if(object){ - object.visible = false; - } - }); - - tree.on("check_node.jstree", (e, data) => { - let object = data.node.data; - - if(object){ - object.visible = true; - } - }); - - - let onPointCloudAdded = (e) => { - let pointcloud = e.pointcloud; - let cloudIcon = `${Potree.resourcePath}/icons/cloud.svg`; - let node = createNode(pcID, pointcloud.name, cloudIcon, pointcloud); - - pointcloud.addEventListener("visibility_changed", () => { - if(pointcloud.visible){ - tree.jstree('check_node', node); - }else{ - tree.jstree('uncheck_node', node); - } - }); - }; - - let onMeasurementAdded = (e) => { - let measurement = e.measurement; - let icon = Utils.getMeasurementIcon(measurement); - createNode(measurementID, measurement.name, icon, measurement); - }; - - let onVolumeAdded = (e) => { - let volume = e.volume; - let icon = Utils.getMeasurementIcon(volume); - let node = createNode(measurementID, volume.name, icon, volume); - - volume.addEventListener("visibility_changed", () => { - if(volume.visible){ - tree.jstree('check_node', node); - }else{ - tree.jstree('uncheck_node', node); - } - }); - }; - - let onProfileAdded = (e) => { - let profile = e.profile; - let icon = Utils.getMeasurementIcon(profile); - createNode(measurementID, profile.name, icon, profile); - }; - - let onAnnotationAdded = (e) => { - let annotation = e.annotation; - - let annotationIcon = `${Potree.resourcePath}/icons/annotation.svg`; - let parentID = this.annotationMapping.get(annotation.parent); - let annotationID = createNode(parentID, annotation.title, annotationIcon, annotation); - this.annotationMapping.set(annotation, annotationID); - - //let node = createNode(annotationsID, annotation.name, icon, volume); - //oldScene.annotations.removeEventListener('annotation_added', this.onAnnotationAdded); - }; - - this.viewer.scene.addEventListener("pointcloud_added", onPointCloudAdded); - this.viewer.scene.addEventListener("measurement_added", onMeasurementAdded); - this.viewer.scene.addEventListener("profile_added", onProfileAdded); - this.viewer.scene.addEventListener("volume_added", onVolumeAdded); - this.viewer.scene.addEventListener("polygon_clip_volume_added", onVolumeAdded); - this.viewer.scene.annotations.addEventListener("annotation_added", onAnnotationAdded); - - let onMeasurementRemoved = (e) => { - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === e.measurement.uuid); - - tree.jstree("delete_node", jsonNode.id); - }; - - let onVolumeRemoved = (e) => { - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === e.volume.uuid); - - tree.jstree("delete_node", jsonNode.id); - }; - - let onProfileRemoved = (e) => { - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === e.profile.uuid); - - tree.jstree("delete_node", jsonNode.id); - }; - - this.viewer.scene.addEventListener("measurement_removed", onMeasurementRemoved); - this.viewer.scene.addEventListener("volume_removed", onVolumeRemoved); - this.viewer.scene.addEventListener("profile_removed", onProfileRemoved); - - { - let annotationIcon = `${Potree.resourcePath}/icons/annotation.svg`; - this.annotationMapping = new Map(); - this.annotationMapping.set(this.viewer.scene.annotations, annotationsID); - this.viewer.scene.annotations.traverseDescendants(annotation => { - let parentID = this.annotationMapping.get(annotation.parent); - let annotationID = createNode(parentID, annotation.title, annotationIcon, annotation); - this.annotationMapping.set(annotation, annotationID); - }); - } - - for(let pointcloud of this.viewer.scene.pointclouds){ - onPointCloudAdded({pointcloud: pointcloud}); - } - - for(let measurement of this.viewer.scene.measurements){ - onMeasurementAdded({measurement: measurement}); - } - - for(let volume of [...this.viewer.scene.volumes, ...this.viewer.scene.polygonClipVolumes]){ - onVolumeAdded({volume: volume}); - } - - - for(let profile of this.viewer.scene.profiles){ - onProfileAdded({profile: profile}); - } - - { - createNode(otherID, "Camera", null, new THREE.Camera()); - } - - this.viewer.addEventListener("scene_changed", (e) => { - propertiesPanel.setScene(e.scene); - - e.oldScene.removeEventListener("pointcloud_added", onPointCloudAdded); - e.oldScene.removeEventListener("measurement_added", onMeasurementAdded); - e.oldScene.removeEventListener("profile_added", onProfileAdded); - e.oldScene.removeEventListener("volume_added", onVolumeAdded); - e.oldScene.removeEventListener("polygon_clip_volume_added", onVolumeAdded); - e.oldScene.removeEventListener("measurement_removed", onMeasurementRemoved); - - e.scene.addEventListener("pointcloud_added", onPointCloudAdded); - e.scene.addEventListener("measurement_added", onMeasurementAdded); - e.scene.addEventListener("profile_added", onProfileAdded); - e.scene.addEventListener("volume_added", onVolumeAdded); - e.scene.addEventListener("polygon_clip_volume_added", onVolumeAdded); - e.scene.addEventListener("measurement_removed", onMeasurementRemoved); - }); - - } - - initClippingTool(){ - - - this.viewer.addEventListener("cliptask_changed", (event) => { - console.log("TODO"); - }); - - this.viewer.addEventListener("clipmethod_changed", (event) => { - console.log("TODO"); - }); - - { - let elClipTask = $("#cliptask_options"); - elClipTask.selectgroup({title: "Clip Task"}); - - elClipTask.find("input").click( (e) => { - this.viewer.setClipTask(ClipTask[e.target.value]); - }); - - let currentClipTask = Object.keys(ClipTask) - .filter(key => ClipTask[key] === this.viewer.clipTask); - elClipTask.find(`input[value=${currentClipTask}]`).trigger("click"); - } - - { - let elClipMethod = $("#clipmethod_options"); - elClipMethod.selectgroup({title: "Clip Method"}); - - elClipMethod.find("input").click( (e) => { - this.viewer.setClipMethod(ClipMethod[e.target.value]); - }); - - let currentClipMethod = Object.keys(ClipMethod) - .filter(key => ClipMethod[key] === this.viewer.clipMethod); - elClipMethod.find(`input[value=${currentClipMethod}]`).trigger("click"); - } - - let clippingToolBar = $("#clipping_tools"); - - // CLIP VOLUME - clippingToolBar.append(this.createToolIcon( - Potree.resourcePath + '/icons/clip_volume.svg', - '[title]tt.clip_volume', - () => { - let item = this.volumeTool.startInsertion({clip: true}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === item.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - // CLIP POLYGON - clippingToolBar.append(this.createToolIcon( - Potree.resourcePath + "/icons/clip-polygon.svg", - "[title]tt.clip_polygon", - () => { - let item = this.viewer.clippingTool.startInsertion({type: "polygon"}); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === item.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - - {// SCREEN BOX SELECT - let boxSelectTool = new ScreenBoxSelectTool(this.viewer); - - clippingToolBar.append(this.createToolIcon( - Potree.resourcePath + "/icons/clip-screen.svg", - "[title]tt.screen_clip_box", - () => { - if(!(this.viewer.scene.getActiveCamera() instanceof THREE.OrthographicCamera)){ - this.viewer.postMessage(`Switch to Orthographic Camera Mode before using the Screen-Box-Select tool.`, - {duration: 2000}); - return; - } - - let item = boxSelectTool.startInsertion(); - - let measurementsRoot = $("#jstree_scene").jstree().get_json("measurements"); - let jsonNode = measurementsRoot.children.find(child => child.data.uuid === item.uuid); - $.jstree.reference(jsonNode.id).deselect_all(); - $.jstree.reference(jsonNode.id).select_node(jsonNode.id); - } - )); - } - - { // REMOVE CLIPPING TOOLS - clippingToolBar.append(this.createToolIcon( - Potree.resourcePath + "/icons/remove.svg", - "[title]tt.remove_all_measurement", - () => { - - this.viewer.scene.removeAllClipVolumes(); - } - )); - } - - } - - initFilters(){ - this.initClassificationList(); - this.initReturnFilters(); - this.initGPSTimeFilters(); - - } - - initReturnFilters(){ - let elReturnFilterPanel = $('#return_filter_panel'); - - { // RETURN NUMBER - let sldReturnNumber = elReturnFilterPanel.find('#sldReturnNumber'); - let lblReturnNumber = elReturnFilterPanel.find('#lblReturnNumber'); - - sldReturnNumber.slider({ - range: true, - min: 0, max: 7, step: 1, - values: [0, 7], - slide: (event, ui) => { - this.viewer.setFilterReturnNumberRange(ui.values[0], ui.values[1]) - } - }); - - let onReturnNumberChanged = (event) => { - let [from, to] = this.viewer.filterReturnNumberRange; - - lblReturnNumber[0].innerHTML = `${from} to ${to}`; - sldReturnNumber.slider({values: [from, to]}); - }; - - this.viewer.addEventListener('filter_return_number_range_changed', onReturnNumberChanged); - - onReturnNumberChanged(); - } - - { // NUMBER OF RETURNS - let sldNumberOfReturns = elReturnFilterPanel.find('#sldNumberOfReturns'); - let lblNumberOfReturns = elReturnFilterPanel.find('#lblNumberOfReturns'); - - sldNumberOfReturns.slider({ - range: true, - min: 0, max: 7, step: 1, - values: [0, 7], - slide: (event, ui) => { - this.viewer.setFilterNumberOfReturnsRange(ui.values[0], ui.values[1]) - } - }); - - let onNumberOfReturnsChanged = (event) => { - let [from, to] = this.viewer.filterNumberOfReturnsRange; - - lblNumberOfReturns[0].innerHTML = `${from} to ${to}`; - sldNumberOfReturns.slider({values: [from, to]}); - }; - - this.viewer.addEventListener('filter_number_of_returns_range_changed', onNumberOfReturnsChanged); - - onNumberOfReturnsChanged(); - } - } - - initGPSTimeFilters(){ - let elGPSTimeFilterPanel = $('#gpstime_filter_panel'); - - let lblGPSTime = elGPSTimeFilterPanel.find("#lblGPSTime"); - let elGPS = elGPSTimeFilterPanel.find("#spnGPSTime"); - - let slider = new ZoomableSlider(); - elGPS[0].appendChild(slider.element); - slider.update(); - - slider.change( () => { - let range = slider.chosenRange; - this.viewer.setFilterGPSTimeRange(range[0], range[1]); - }); - - let onGPSTimeExtentChanged = (event) => { - let range = this.viewer.filterGPSTimeExtent; - slider.setVisibleRange(range); - }; - - let onGPSTimeChanged = (event) => { - let range = this.viewer.filterGPSTimeRange; - - let precision = 1; - let from = `${Utils.addCommas(range[0].toFixed(precision))}`; - let to = `${Utils.addCommas(range[1].toFixed(precision))}`; - lblGPSTime[0].innerHTML = `${from} to ${to}`; - - slider.setRange(range); - }; - - this.viewer.addEventListener('filter_gps_time_range_changed', onGPSTimeChanged); - this.viewer.addEventListener('filter_gps_time_extent_changed', onGPSTimeExtentChanged); - - } - - initClassificationList(){ - let elClassificationList = $('#classificationList'); - - let addClassificationItem = (code, name) => { - let inputID = 'chkClassification_' + code; - - let element = $(` -
    • - -
    • - `); - - let elInput = element.find('input'); - - elInput.click(event => { - this.viewer.setClassificationVisibility(code, event.target.checked); - }); - - elClassificationList.append(element); - }; - - for (var classID in viewer.classifications) { - addClassificationItem(classID, viewer.classifications[classID].name); - } - } - - initAccordion(){ - $('.accordion > h3').each(function(){ - let header = $(this); - let content = $(this).next(); - - //header.addClass('accordion-header ui-widget'); - //content.addClass('accordion-content ui-widget'); - - content.hide(); - - header.click(() => { - content.slideToggle(); - }); - }); - - let languages = [ - ["EN", "en"], - ["FR", "fr"], - ["DE", "de"], - ["JP", "jp"] - ]; - - let elLanguages = $('#potree_languages'); - for(let i = 0; i < languages.length; i++){ - let [key, value] = languages[i]; - let element = $(`${key}`); - element.click(() => this.viewer.setLanguage(value)); - - if(i === 0){ - element.css("margin-left", "30px"); - } - - elLanguages.append(element); - - if(i < languages.length - 1){ - elLanguages.append($(document.createTextNode(' - '))); - } - } - - - // to close all, call - // $(".accordion > div").hide() - - // to open the, for example, tool menu, call: - // $("#menu_tools").next().show() - } - - initAppearance(){ - - $('#sldPointBudget').slider({ - value: this.viewer.getPointBudget(), - min: 100 * 1000, - max: 10 * 1000 * 1000, - step: 1000, - slide: (event, ui) => { this.viewer.setPointBudget(ui.value); } - }); - - $('#sldFOV').slider({ - value: this.viewer.getFOV(), - min: 20, - max: 100, - step: 1, - slide: (event, ui) => { this.viewer.setFOV(ui.value); } - }); - - $('#sldEDLRadius').slider({ - value: this.viewer.getEDLRadius(), - min: 1, - max: 4, - step: 0.01, - slide: (event, ui) => { this.viewer.setEDLRadius(ui.value); } - }); - - $('#sldEDLStrength').slider({ - value: this.viewer.getEDLStrength(), - min: 0, - max: 5, - step: 0.01, - slide: (event, ui) => { this.viewer.setEDLStrength(ui.value); } - }); - - this.viewer.addEventListener('point_budget_changed', (event) => { - $('#lblPointBudget')[0].innerHTML = Utils.addCommas(this.viewer.getPointBudget()); - $('#sldPointBudget').slider({value: this.viewer.getPointBudget()}); - }); - - this.viewer.addEventListener('fov_changed', (event) => { - $('#lblFOV')[0].innerHTML = parseInt(this.viewer.getFOV()); - $('#sldFOV').slider({value: this.viewer.getFOV()}); - }); - - this.viewer.addEventListener('edl_radius_changed', (event) => { - $('#lblEDLRadius')[0].innerHTML = this.viewer.getEDLRadius().toFixed(1); - $('#sldEDLRadius').slider({value: this.viewer.getEDLRadius()}); - }); - - this.viewer.addEventListener('edl_strength_changed', (event) => { - $('#lblEDLStrength')[0].innerHTML = this.viewer.getEDLStrength().toFixed(1); - $('#sldEDLStrength').slider({value: this.viewer.getEDLStrength()}); - }); - - this.viewer.addEventListener('background_changed', (event) => { - $("input[name=background][value='" + this.viewer.getBackground() + "']").prop('checked', true); - }); - - $('#lblPointBudget')[0].innerHTML = Utils.addCommas(this.viewer.getPointBudget()); - $('#lblFOV')[0].innerHTML = parseInt(this.viewer.getFOV()); - $('#lblEDLRadius')[0].innerHTML = this.viewer.getEDLRadius().toFixed(1); - $('#lblEDLStrength')[0].innerHTML = this.viewer.getEDLStrength().toFixed(1); - $('#chkEDLEnabled')[0].checked = this.viewer.getEDLEnabled(); - - { - let elBackground = $(`#background_options`); - elBackground.selectgroup(); - - elBackground.find("input").click( (e) => { - this.viewer.setBackground(e.target.value); - }); - - let currentBackground = this.viewer.getBackground(); - $(`input[name=background_options][value=${currentBackground}]`).trigger("click"); - } - - $('#chkEDLEnabled').click( () => { - this.viewer.setEDLEnabled($('#chkEDLEnabled').prop("checked")); - }); - } - - initNavigation(){ - let elNavigation = $('#navigation'); - let sldMoveSpeed = $('#sldMoveSpeed'); - let lblMoveSpeed = $('#lblMoveSpeed'); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + '/icons/earth_controls_1.png', - '[title]tt.earth_control', - () => { this.viewer.setNavigationMode(EarthControls); } - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + '/icons/fps_controls.svg', - '[title]tt.flight_control', - () => { - this.viewer.setNavigationMode(FirstPersonControls); - this.viewer.fpControls.lockElevation = false; - } - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + '/icons/helicopter_controls.svg', - '[title]tt.heli_control', - () => { - this.viewer.setNavigationMode(FirstPersonControls); - this.viewer.fpControls.lockElevation = true; - } - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + '/icons/orbit_controls.svg', - '[title]tt.orbit_control', - () => { this.viewer.setNavigationMode(OrbitControls); } - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + '/icons/focus.svg', - '[title]tt.focus_control', - () => { this.viewer.fitToScreen(); } - )); - - - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/navigation_cube.svg", - "[title]tt.navigation_cube_control", - () => {this.viewer.toggleNavigationCube()} - )); - - elNavigation.append("
      "); - - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/left.svg", - "[title]tt.left_view_control", - () => {this.viewer.setLeftView()} - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/right.svg", - "[title]tt.right_view_control", - () => {this.viewer.setRightView()} - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/front.svg", - "[title]tt.front_view_control", - () => {this.viewer.setFrontView()} - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/back.svg", - "[title]tt.back_view_control", - () => {this.viewer.setBackView()} - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/top.svg", - "[title]tt.top_view_control", - () => {this.viewer.setTopView()} - )); - - elNavigation.append(this.createToolIcon( - Potree.resourcePath + "/icons/bottom.svg", - "[title]tt.bottom_view_control", - () => {this.viewer.setBottomView()} - )); - - - - - - let elCameraProjection = $(` - - - - - `); - elNavigation.append(elCameraProjection); - elCameraProjection.selectgroup({title: "Camera Projection"}); - elCameraProjection.find("input").click( (e) => { - this.viewer.setCameraMode(CameraMode[e.target.value]); - }); - let cameraMode = Object.keys(CameraMode) - .filter(key => CameraMode[key] === this.viewer.scene.cameraMode); - elCameraProjection.find(`input[value=${cameraMode}]`).trigger("click"); - - let speedRange = new THREE.Vector2(1, 10 * 1000); - - let toLinearSpeed = (value) => { - return Math.pow(value, 4) * speedRange.y + speedRange.x; - }; - - let toExpSpeed = (value) => { - return Math.pow((value - speedRange.x) / speedRange.y, 1 / 4); - }; - - sldMoveSpeed.slider({ - value: toExpSpeed(this.viewer.getMoveSpeed()), - min: 0, - max: 1, - step: 0.01, - slide: (event, ui) => { this.viewer.setMoveSpeed(toLinearSpeed(ui.value)); } - }); - - this.viewer.addEventListener('move_speed_changed', (event) => { - lblMoveSpeed.html(this.viewer.getMoveSpeed().toFixed(1)); - sldMoveSpeed.slider({value: toExpSpeed(this.viewer.getMoveSpeed())}); - }); - - lblMoveSpeed.html(this.viewer.getMoveSpeed().toFixed(1)); - } - - - initSettings(){ - - { - $('#sldMinNodeSize').slider({ - value: this.viewer.getMinNodeSize(), - min: 0, - max: 1000, - step: 0.01, - slide: (event, ui) => { this.viewer.setMinNodeSize(ui.value); } - }); - - this.viewer.addEventListener('minnodesize_changed', (event) => { - $('#lblMinNodeSize').html(parseInt(this.viewer.getMinNodeSize())); - $('#sldMinNodeSize').slider({value: this.viewer.getMinNodeSize()}); - }); - $('#lblMinNodeSize').html(parseInt(this.viewer.getMinNodeSize())); - } - - { - let elSplatQuality = $("#splat_quality_options"); - elSplatQuality.selectgroup({title: "Splat Quality"}); - - elSplatQuality.find("input").click( (e) => { - if(e.target.value === "standard"){ - this.viewer.useHQ = false; - }else if(e.target.value === "hq"){ - this.viewer.useHQ = true; - } - }); - - let currentQuality = this.viewer.useHQ ? "hq" : "standard"; - elSplatQuality.find(`input[value=${currentQuality}]`).trigger("click"); - } - - $('#show_bounding_box').click(() => { - this.viewer.setShowBoundingBox($('#show_bounding_box').prop("checked")); - }); - - $('#set_freeze').click(() => { - this.viewer.setFreeze($('#set_freeze').prop("checked")); - }); - } - -} diff --git a/app/static/app/js/vendor/potree/src/viewer/viewer.js b/app/static/app/js/vendor/potree/src/viewer/viewer.js deleted file mode 100644 index de46ff5c..00000000 --- a/app/static/app/js/vendor/potree/src/viewer/viewer.js +++ /dev/null @@ -1,1858 +0,0 @@ -import TWEEN from 'tween.js'; -import i18n from '../../libs/i18next'; -import jqueryi18n from '../../libs/jquery-i18next'; -import $ from 'jquery'; -import jstree from '../../libs/jstree'; - -jqueryi18n(i18n, $, { - tName: 't', // --> appends $.t = i18next.t - i18nName: 'i18n', // --> appends $.i18n = i18next - handleName: 'i18n', // --> appends $(selector).localize(opts); - selectorAttr: 'data-i18n', // selector for translating elements - targetAttr: 'i18n-target', // data-() attribute to grab target element to translate (if diffrent then itself) - optionsAttr: 'i18n-options', // data-() attribute that contains options, will load/set if useOptionsAttr = true - useOptionsAttr: false, // see optionsAttr - parseDefaultValueFromContent: false // parses default values from content ele.val or ele.text -}); - -import {ClipTask, ClipMethod, CameraMode} from "../defines.js"; -import {Renderer} from "../PotreeRenderer.js"; -import {PotreeRenderer} from "./PotreeRenderer.js"; -import {EDLRenderer} from "./EDLRenderer.js"; -import {HQSplatRenderer} from "./HQSplatRenderer.js"; -import {Scene} from "./Scene.js"; -import {ClippingTool} from "../utils/ClippingTool.js"; -import {TransformationTool} from "../utils/TransformationTool.js"; -import {Utils} from "../utils.js"; -// import {MapView} from "./map.js"; -import {ProfileWindow, ProfileWindowController} from "./profile.js"; -import {BoxVolume} from "../utils/Volume.js"; -import {Features} from "../Features.js"; -import {Message} from "../utils/Message.js"; -import {Sidebar} from "./sidebar.js"; - -import {InputHandler} from "../navigation/InputHandler.js"; -import {NavigationCube} from "./NavigationCube.js"; -import {OrbitControls} from "../navigation/OrbitControls.js"; -import {FirstPersonControls} from "../navigation/FirstPersonControls.js"; -import {EarthControls} from "../navigation/EarthControls.js"; -import {DeviceOrientationControls} from "../navigation/DeviceOrientationControls.js"; -import { EventDispatcher } from "../EventDispatcher.js"; - - - -export class Viewer extends EventDispatcher{ - - constructor(domElement, args = {}){ - super(); - - this.renderArea = domElement; - this.guiLoaded = false; - this.guiLoadTasks = []; - - this.messages = []; - this.elMessages = $(` -
      -
      `); - $(domElement).append(this.elMessages); - - try{ - - { // generate missing dom hierarchy - if ($(domElement).find('#potree_map').length === 0) { - let potreeMap = $(` - - `); - $(domElement).append(potreeMap); - } - - if ($(domElement).find('#potree_description').length === 0) { - let potreeDescription = $(`
      `); - $(domElement).append(potreeDescription); - } - - if ($(domElement).find('#potree_annotations').length === 0) { - let potreeAnnotationContainer = $(` -
      `); - $(domElement).append(potreeAnnotationContainer); - } - } - - this.pointCloudLoadedCallback = args.onPointCloudLoaded || function () {}; - - // if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { - // defaultSettings.navigation = "Orbit"; - // } - - this.server = null; - - this.fov = 60; - this.isFlipYZ = false; - this.useDEMCollisions = false; - this.generateDEM = false; - this.minNodeSize = 30; - this.edlStrength = 1.0; - this.edlRadius = 1.4; - this.useEDL = false; - this.classifications = { - 0: { visible: true, name: 'never classified' }, - 1: { visible: true, name: 'unclassified' }, - 2: { visible: true, name: 'ground' }, - 3: { visible: true, name: 'low vegetation' }, - 4: { visible: true, name: 'medium vegetation' }, - 5: { visible: true, name: 'high vegetation' }, - 6: { visible: true, name: 'building' }, - 7: { visible: true, name: 'low point(noise)' }, - 8: { visible: true, name: 'key-point' }, - 9: { visible: true, name: 'water' }, - 12: { visible: true, name: 'overlap' } - }; - - this.moveSpeed = 10; - - this.LENGTH_UNITS = { - METER: {code: 'm', unitspermeter: 1.0}, - FEET: {code: 'ft', unitspermeter: 3.28084}, - INCH: {code: '\u2033', unitspermeter: 39.3701} - }; - this.lengthUnit = this.LENGTH_UNITS.METER; - this.lengthUnitDisplay = this.LENGTH_UNITS.METER; - - this.showBoundingBox = false; - this.showAnnotations = true; - this.freeze = false; - this.clipTask = ClipTask.HIGHLIGHT; - this.clipMethod = ClipMethod.INSIDE_ANY; - - this.filterReturnNumberRange = [0, 7]; - this.filterNumberOfReturnsRange = [0, 7]; - this.filterGPSTimeRange = [0, Infinity]; - this.filterGPSTimeExtent = [0, 1]; - - this.potreeRenderer = null; - this.edlRenderer = null; - this.renderer = null; - this.pRenderer = null; - - this.scene = null; - this.overlay = null; - this.overlayCamera = null; - - this.inputHandler = null; - - this.clippingTool = null; - this.transformationTool = null; - this.navigationCube = null; - - this.skybox = null; - this.clock = new THREE.Clock(); - this.background = null; - this.defaultGPSTimeChanged = false; - - this.initThree(); - - { - let canvas = this.renderer.domElement; - canvas.addEventListener("webglcontextlost", (e) => { - console.log(e); - this.postMessage("WebGL context lost. \u2639"); - - let gl = this.renderer.getContext(); - let error = gl.getError(); - console.log(error); - }, false); - } - - { - this.overlay = new THREE.Scene(); - this.overlayCamera = new THREE.OrthographicCamera( - 0, 1, - 1, 0, - -1000, 1000 - ); - } - - this.pRenderer = new Renderer(this.renderer); - - { - let near = 2.5; - let far = 10.0; - let fov = 90; - - this.shadowTestCam = new THREE.PerspectiveCamera(90, 1, near, far); - this.shadowTestCam.position.set(3.50, -2.80, 8.561); - this.shadowTestCam.lookAt(new THREE.Vector3(0, 0, 4.87)); - } - - - let scene = new Scene(this.renderer); - this.setScene(scene); - - { - this.inputHandler = new InputHandler(this); - this.inputHandler.setScene(this.scene); - - this.clippingTool = new ClippingTool(this); - this.transformationTool = new TransformationTool(this); - this.navigationCube = new NavigationCube(this); - this.navigationCube.visible = false; - - this.createControls(); - - this.clippingTool.setScene(this.scene); - - let onPointcloudAdded = (e) => { - if (this.scene.pointclouds.length === 1) { - let speed = e.pointcloud.boundingBox.getSize(new THREE.Vector3()).length(); - speed = speed / 5; - this.setMoveSpeed(speed); - } - }; - - let onVolumeRemoved = (e) => { - this.inputHandler.deselect(e.volume); - }; - - this.addEventListener('scene_changed', (e) => { - this.inputHandler.setScene(e.scene); - this.clippingTool.setScene(this.scene); - - if(!e.scene.hasEventListener("pointcloud_added", onPointcloudAdded)){ - e.scene.addEventListener("pointcloud_added", onPointcloudAdded); - } - - if(!e.scene.hasEventListener("volume_removed", onPointcloudAdded)){ - e.scene.addEventListener("volume_removed", onVolumeRemoved); - } - - }); - - this.scene.addEventListener("volume_removed", onVolumeRemoved); - this.scene.addEventListener('pointcloud_added', onPointcloudAdded); - } - - { // set defaults - this.setFOV(60); - this.setEDLEnabled(false); - this.setEDLRadius(1.4); - this.setEDLStrength(0.4); - this.setClipTask(ClipTask.HIGHLIGHT); - this.setClipMethod(ClipMethod.INSIDE_ANY); - this.setPointBudget(1*1000*1000); - this.setShowBoundingBox(false); - this.setFreeze(false); - this.setNavigationMode(OrbitControls); - this.setBackground('gradient'); - - this.scaleFactor = 1; - - this.loadSettingsFromURL(); - } - - // start rendering! - if(args.useDefaultRenderLoop === undefined || args.useDefaultRenderLoop === true){ - requestAnimationFrame(this.loop.bind(this)); - } - - this.loadGUI = this.loadGUI.bind(this); - - }catch(e){ - this.onCrash(e); - } - } - - onCrash(error){ - - $(this.renderArea).empty(); - - if ($(this.renderArea).find('#potree_failpage').length === 0) { - let elFailPage = $(` -
      - -

      Potree Encountered An Error

      - -

      - This may happen if your browser or graphics card is not supported. -
      - We recommend to use - Chrome - or - Firefox. -

      - -

      - Please also visit webglreport.com and - check whether your system supports WebGL. -

      -

      - If you are already using one of the recommended browsers and WebGL is enabled, - consider filing an issue report at github,
      - including your operating system, graphics card, browser and browser version, as well as the - error message below.
      - Please do not report errors on unsupported browsers. -

      - -
      
      -				
      -			
      `); - - let elErrorMessage = elFailPage.find('#potree_error_console'); - elErrorMessage.html(error.stack); - - $(this.renderArea).append(elFailPage); - } - - throw error; - } - - // ------------------------------------------------------------------------------------ - // Viewer API - // ------------------------------------------------------------------------------------ - - setScene (scene) { - if (scene === this.scene) { - return; - } - - let oldScene = this.scene; - this.scene = scene; - - this.dispatchEvent({ - type: 'scene_changed', - oldScene: oldScene, - scene: scene - }); - - { // Annotations - $('.annotation').detach(); - - // for(let annotation of this.scene.annotations){ - // this.renderArea.appendChild(annotation.domElement[0]); - // } - - this.scene.annotations.traverse(annotation => { - this.renderArea.appendChild(annotation.domElement[0]); - }); - - if (!this.onAnnotationAdded) { - this.onAnnotationAdded = e => { - // console.log("annotation added: " + e.annotation.title); - - e.annotation.traverse(node => { - - $("#potree_annotation_container").append(node.domElement); - //this.renderArea.appendChild(node.domElement[0]); - node.scene = this.scene; - }); - }; - } - - if (oldScene) { - oldScene.annotations.removeEventListener('annotation_added', this.onAnnotationAdded); - } - this.scene.annotations.addEventListener('annotation_added', this.onAnnotationAdded); - } - }; - - getControls (navigationMode) { - if (navigationMode === OrbitControls) { - return this.orbitControls; - } else if (navigationMode === FirstPersonControls) { - return this.fpControls; - } else if (navigationMode === EarthControls) { - return this.earthControls; - } else if (navigationMode === DeviceOrientationControls) { - return this.deviceControls; - } else { - return null; - } - } - - getMinNodeSize () { - return this.minNodeSize; - }; - - setMinNodeSize (value) { - if (this.minNodeSize !== value) { - this.minNodeSize = value; - this.dispatchEvent({'type': 'minnodesize_changed', 'viewer': this}); - } - }; - - getBackground () { - return this.background; - }; - - setBackground(bg){ - if (this.background === bg) { - return; - } - - if(bg === "skybox"){ - this.skybox = Utils.loadSkybox(new URL(Potree.resourcePath + '/textures/skybox2/').href); - } - - this.background = bg; - this.dispatchEvent({'type': 'background_changed', 'viewer': this}); - } - - setDescription (value) { - $('#potree_description')[0].innerHTML = value; - }; - - setNavigationMode (value) { - this.scene.view.navigationMode = value; - }; - - setShowBoundingBox (value) { - if (this.showBoundingBox !== value) { - this.showBoundingBox = value; - this.dispatchEvent({'type': 'show_boundingbox_changed', 'viewer': this}); - } - }; - - getShowBoundingBox () { - return this.showBoundingBox; - }; - - setMoveSpeed (value) { - if (this.moveSpeed !== value) { - this.moveSpeed = value; - this.dispatchEvent({'type': 'move_speed_changed', 'viewer': this, 'speed': value}); - } - }; - - getMoveSpeed () { - return this.moveSpeed; - }; - - setWeightClassification (w) { - for (let i = 0; i < this.scene.pointclouds.length; i++) { - this.scene.pointclouds[i].material.weightClassification = w; - this.dispatchEvent({'type': 'attribute_weights_changed' + i, 'viewer': this}); - } - }; - - setFreeze (value) { - value = Boolean(value); - if (this.freeze !== value) { - this.freeze = value; - this.dispatchEvent({'type': 'freeze_changed', 'viewer': this}); - } - }; - - getFreeze () { - return this.freeze; - }; - - getClipTask(){ - return this.clipTask; - } - - getClipMethod(){ - return this.clipMethod; - } - - setClipTask(value){ - if(this.clipTask !== value){ - - this.clipTask = value; - - this.dispatchEvent({ - type: "cliptask_changed", - viewer: this}); - } - } - - setClipMethod(value){ - if(this.clipMethod !== value){ - - this.clipMethod = value; - - this.dispatchEvent({ - type: "clipmethod_changed", - viewer: this}); - } - } - - setPointBudget (value) { - if (PotreeExports.pointBudget !== value) { - PotreeExports.pointBudget = parseInt(value); - this.dispatchEvent({'type': 'point_budget_changed', 'viewer': this}); - } - }; - - getPointBudget () { - return PotreeExports.pointBudget; - }; - - setShowAnnotations (value) { - if (this.showAnnotations !== value) { - this.showAnnotations = value; - this.dispatchEvent({'type': 'show_annotations_changed', 'viewer': this}); - } - } - - getShowAnnotations () { - return this.showAnnotations; - } - - setDEMCollisionsEnabled(value){ - if(this.useDEMCollisions !== value){ - this.useDEMCollisions = value; - this.dispatchEvent({'type': 'use_demcollisions_changed', 'viewer': this}); - }; - }; - - getDEMCollisionsEnabled () { - return this.useDEMCollisions; - }; - - setEDLEnabled (value) { - value = Boolean(value); - if (this.useEDL !== value) { - this.useEDL = value; - this.dispatchEvent({'type': 'use_edl_changed', 'viewer': this}); - } - }; - - getEDLEnabled () { - return this.useEDL; - }; - - setEDLRadius (value) { - if (this.edlRadius !== value) { - this.edlRadius = value; - this.dispatchEvent({'type': 'edl_radius_changed', 'viewer': this}); - } - }; - - getEDLRadius () { - return this.edlRadius; - }; - - setEDLStrength (value) { - if (this.edlStrength !== value) { - this.edlStrength = value; - this.dispatchEvent({'type': 'edl_strength_changed', 'viewer': this}); - } - }; - - getEDLStrength () { - return this.edlStrength; - }; - - setFOV (value) { - if (this.fov !== value) { - this.fov = value; - this.dispatchEvent({'type': 'fov_changed', 'viewer': this}); - } - }; - - getFOV () { - return this.fov; - }; - - disableAnnotations () { - this.scene.annotations.traverse(annotation => { - annotation.domElement.css('pointer-events', 'none'); - - // return annotation.visible; - }); - }; - - enableAnnotations () { - this.scene.annotations.traverse(annotation => { - annotation.domElement.css('pointer-events', 'auto'); - - // return annotation.visible; - }); - }; - - setClassificationVisibility (key, value) { - if (!this.classifications[key]) { - this.classifications[key] = {visible: value, name: 'no name'}; - this.dispatchEvent({'type': 'classification_visibility_changed', 'viewer': this}); - } else if (this.classifications[key].visible !== value) { - this.classifications[key].visible = value; - this.dispatchEvent({'type': 'classification_visibility_changed', 'viewer': this}); - } - }; - - setFilterReturnNumberRange(from, to){ - this.filterReturnNumberRange = [from, to]; - this.dispatchEvent({'type': 'filter_return_number_range_changed', 'viewer': this}); - } - - setFilterNumberOfReturnsRange(from, to){ - this.filterNumberOfReturnsRange = [from, to]; - this.dispatchEvent({'type': 'filter_number_of_returns_range_changed', 'viewer': this}); - } - - setFilterGPSTimeRange(from, to){ - this.filterGPSTimeRange = [from, to]; - this.dispatchEvent({'type': 'filter_gps_time_range_changed', 'viewer': this}); - } - - setFilterGPSTimeExtent(from, to){ - this.filterGPSTimeExtent = [from, to]; - this.dispatchEvent({'type': 'filter_gps_time_extent_changed', 'viewer': this}); - } - - setLengthUnit (value) { - switch (value) { - case 'm': - this.lengthUnit = this.LENGTH_UNITS.METER; - this.lengthUnitDisplay = this.LENGTH_UNITS.METER; - break; - case 'ft': - this.lengthUnit = this.LENGTH_UNITS.FEET; - this.lengthUnitDisplay = this.LENGTH_UNITS.FEET; - break; - case 'in': - this.lengthUnit = this.LENGTH_UNITS.INCH; - this.lengthUnitDisplay = this.LENGTH_UNITS.INCH; - break; - } - - this.dispatchEvent({ 'type': 'length_unit_changed', 'viewer': this, value: value}); - }; - - setLengthUnitAndDisplayUnit(lengthUnitValue, lengthUnitDisplayValue) { - switch (lengthUnitValue) { - case 'm': - this.lengthUnit = this.LENGTH_UNITS.METER; - break; - case 'ft': - this.lengthUnit = this.LENGTH_UNITS.FEET; - break; - case 'in': - this.lengthUnit = this.LENGTH_UNITS.INCH; - break; - } - - switch (lengthUnitDisplayValue) { - case 'm': - this.lengthUnitDisplay = this.LENGTH_UNITS.METER; - break; - case 'ft': - this.lengthUnitDisplay = this.LENGTH_UNITS.FEET; - break; - case 'in': - this.lengthUnitDisplay = this.LENGTH_UNITS.INCH; - break; - } - - this.dispatchEvent({ 'type': 'length_unit_changed', 'viewer': this, value: lengthUnitValue }); - }; - - zoomTo(node, factor, animationDuration = 0){ - let view = this.scene.view; - - let camera = this.scene.cameraP.clone(); - camera.rotation.copy(this.scene.cameraP.rotation); - camera.rotation.order = "ZXY"; - camera.rotation.x = Math.PI / 2 + view.pitch; - camera.rotation.z = view.yaw; - camera.updateMatrix(); - camera.updateMatrixWorld(); - camera.zoomTo(node, factor); - - let bs; - if (node.boundingSphere) { - bs = node.boundingSphere; - } else if (node.geometry && node.geometry.boundingSphere) { - bs = node.geometry.boundingSphere; - } else { - bs = node.boundingBox.getBoundingSphere(new THREE.Sphere()); - } - bs = bs.clone().applyMatrix4(node.matrixWorld); - - let startPosition = view.position.clone(); - let endPosition = camera.position.clone(); - let startTarget = view.getPivot(); - let endTarget = bs.center; - let startRadius = view.radius; - let endRadius = endPosition.distanceTo(endTarget); - - let easing = TWEEN.Easing.Quartic.Out; - - { // animate camera position - let pos = startPosition.clone(); - let tween = new TWEEN.Tween(pos).to(endPosition, animationDuration); - tween.easing(easing); - - tween.onUpdate(() => { - view.position.copy(pos); - }); - - tween.start(); - } - - { // animate camera target - let target = startTarget.clone(); - let tween = new TWEEN.Tween(target).to(endTarget, animationDuration); - tween.easing(easing); - tween.onUpdate(() => { - view.lookAt(target); - }); - tween.onComplete(() => { - view.lookAt(target); - this.dispatchEvent({type: 'focusing_finished', target: this}); - }); - - this.dispatchEvent({type: 'focusing_started', target: this}); - tween.start(); - } - }; - - showAbout () { - $(function () { - $('#about-panel').dialog(); - }); - }; - - getBoundingBox (pointclouds) { - return this.scene.getBoundingBox(pointclouds); - }; - - fitToScreen (factor = 1, animationDuration = 0) { - let box = this.getBoundingBox(this.scene.pointclouds); - - let node = new THREE.Object3D(); - node.boundingBox = box; - - this.zoomTo(node, factor, animationDuration); - if (this.controls) this.controls.stop(); - }; - - toggleNavigationCube() { - this.navigationCube.visible = !this.navigationCube.visible; - } - - setView(view) { - if(!view) return; - - switch(view) { - case "F": - this.setFrontView(); - break; - case "B": - this.setBackView(); - break; - case "L": - this.setLeftView(); - break; - case "R": - this.setRightView(); - break; - case "U": - this.setTopView(); - break; - case "D": - this.setBottomView(); - break; - } - } - - setTopView(){ - this.scene.view.yaw = 0; - this.scene.view.pitch = -Math.PI / 2; - - this.fitToScreen(); - }; - - setBottomView(){ - this.scene.view.yaw = -Math.PI; - this.scene.view.pitch = Math.PI / 2; - - this.fitToScreen(); - }; - - setFrontView(){ - this.scene.view.yaw = 0; - this.scene.view.pitch = 0; - - this.fitToScreen(); - }; - - setBackView(){ - this.scene.view.yaw = Math.PI; - this.scene.view.pitch = 0; - - this.fitToScreen(); - }; - - setLeftView(){ - this.scene.view.yaw = -Math.PI / 2; - this.scene.view.pitch = 0; - - this.fitToScreen(); - }; - - setRightView () { - this.scene.view.yaw = Math.PI / 2; - this.scene.view.pitch = 0; - - this.fitToScreen(); - }; - - flipYZ () { - this.isFlipYZ = !this.isFlipYZ; - - // TODO flipyz - console.log('TODO'); - } - - setCameraMode(mode){ - this.scene.cameraMode = mode; - - for(let pointcloud of this.scene.pointclouds) { - pointcloud.material.useOrthographicCamera = mode == CameraMode.ORTHOGRAPHIC; - } - } - - loadSettingsFromURL(){ - if(Utils.getParameterByName("pointSize")){ - this.setPointSize(parseFloat(Utils.getParameterByName("pointSize"))); - } - - if(Utils.getParameterByName("FOV")){ - this.setFOV(parseFloat(Utils.getParameterByName("FOV"))); - } - - if(Utils.getParameterByName("opacity")){ - this.setOpacity(parseFloat(Utils.getParameterByName("opacity"))); - } - - if(Utils.getParameterByName("edlEnabled")){ - let enabled = Utils.getParameterByName("edlEnabled") === "true"; - this.setEDLEnabled(enabled); - } - - if (Utils.getParameterByName('edlRadius')) { - this.setEDLRadius(parseFloat(Utils.getParameterByName('edlRadius'))); - } - - if (Utils.getParameterByName('edlStrength')) { - this.setEDLStrength(parseFloat(Utils.getParameterByName('edlStrength'))); - } - - if (Utils.getParameterByName('pointBudget')) { - this.setPointBudget(parseFloat(Utils.getParameterByName('pointBudget'))); - } - - if (Utils.getParameterByName('showBoundingBox')) { - let enabled = Utils.getParameterByName('showBoundingBox') === 'true'; - if (enabled) { - this.setShowBoundingBox(true); - } else { - this.setShowBoundingBox(false); - } - } - - if (Utils.getParameterByName('material')) { - let material = Utils.getParameterByName('material'); - this.setMaterial(material); - } - - if (Utils.getParameterByName('pointSizing')) { - let sizing = Utils.getParameterByName('pointSizing'); - this.setPointSizing(sizing); - } - - if (Utils.getParameterByName('quality')) { - let quality = Utils.getParameterByName('quality'); - this.setQuality(quality); - } - - if (Utils.getParameterByName('position')) { - let value = Utils.getParameterByName('position'); - value = value.replace('[', '').replace(']', ''); - let tokens = value.split(';'); - let x = parseFloat(tokens[0]); - let y = parseFloat(tokens[1]); - let z = parseFloat(tokens[2]); - - this.scene.view.position.set(x, y, z); - } - - if (Utils.getParameterByName('target')) { - let value = Utils.getParameterByName('target'); - value = value.replace('[', '').replace(']', ''); - let tokens = value.split(';'); - let x = parseFloat(tokens[0]); - let y = parseFloat(tokens[1]); - let z = parseFloat(tokens[2]); - - this.scene.view.lookAt(new THREE.Vector3(x, y, z)); - } - - if (Utils.getParameterByName('background')) { - let value = Utils.getParameterByName('background'); - this.setBackground(value); - } - - // if(Utils.getParameterByName("elevationRange")){ - // let value = Utils.getParameterByName("elevationRange"); - // value = value.replace("[", "").replace("]", ""); - // let tokens = value.split(";"); - // let x = parseFloat(tokens[0]); - // let y = parseFloat(tokens[1]); - // - // this.setElevationRange(x, y); - // //this.scene.view.target.set(x, y, z); - // } - }; - - // ------------------------------------------------------------------------------------ - // Viewer Internals - // ------------------------------------------------------------------------------------ - - createControls () { - { // create FIRST PERSON CONTROLS - this.fpControls = new FirstPersonControls(this); - this.fpControls.enabled = false; - this.fpControls.addEventListener('start', this.disableAnnotations.bind(this)); - this.fpControls.addEventListener('end', this.enableAnnotations.bind(this)); - // this.fpControls.addEventListener("double_click_move", (event) => { - // let distance = event.targetLocation.distanceTo(event.position); - // this.setMoveSpeed(Math.pow(distance, 0.4)); - // }); - // this.fpControls.addEventListener("move_speed_changed", (event) => { - // this.setMoveSpeed(this.fpControls.moveSpeed); - // }); - } - - // { // create GEO CONTROLS - // this.geoControls = new GeoControls(this.scene.camera, this.renderer.domElement); - // this.geoControls.enabled = false; - // this.geoControls.addEventListener("start", this.disableAnnotations.bind(this)); - // this.geoControls.addEventListener("end", this.enableAnnotations.bind(this)); - // this.geoControls.addEventListener("move_speed_changed", (event) => { - // this.setMoveSpeed(this.geoControls.moveSpeed); - // }); - // } - - { // create ORBIT CONTROLS - this.orbitControls = new OrbitControls(this); - this.orbitControls.enabled = false; - this.orbitControls.addEventListener('start', this.disableAnnotations.bind(this)); - this.orbitControls.addEventListener('end', this.enableAnnotations.bind(this)); - } - - { // create EARTH CONTROLS - this.earthControls = new EarthControls(this); - this.earthControls.enabled = false; - this.earthControls.addEventListener('start', this.disableAnnotations.bind(this)); - this.earthControls.addEventListener('end', this.enableAnnotations.bind(this)); - } - - { // create DEVICE ORIENTATION CONTROLS - this.deviceControls = new DeviceOrientationControls(this); - this.deviceControls.enabled = false; - this.deviceControls.addEventListener('start', this.disableAnnotations.bind(this)); - this.deviceControls.addEventListener('end', this.enableAnnotations.bind(this)); - } - }; - - toggleSidebar () { - let renderArea = $('#potree_render_area'); - let isVisible = renderArea.css('left') !== '0px'; - - if (isVisible) { - renderArea.css('left', '0px'); - } else { - renderArea.css('left', '300px'); - } - }; - - toggleMap () { - // let map = $('#potree_map'); - // map.toggle(100); - - if (this.mapView) { - this.mapView.toggle(); - } - }; - - onGUILoaded(callback){ - if(this.guiLoaded){ - callback(); - }else{ - this.guiLoadTasks.push(callback); - } - } - - loadGUI(callback){ - - this.onGUILoaded(callback); - - let viewer = this; - let sidebarContainer = $('#potree_sidebar_container'); - sidebarContainer.load(new URL(Potree.scriptPath + '/sidebar.html').href, () => { - sidebarContainer.css('width', '300px'); - sidebarContainer.css('height', '100%'); - - let imgMenuToggle = document.createElement('img'); - imgMenuToggle.src = new URL(Potree.resourcePath + '/icons/menu_button.svg').href; - imgMenuToggle.onclick = this.toggleSidebar; - imgMenuToggle.classList.add('potree_menu_toggle'); - - let imgMapToggle = document.createElement('img'); - imgMapToggle.src = new URL(Potree.resourcePath + '/icons/map_icon.png').href; - imgMapToggle.style.display = 'none'; - imgMapToggle.onclick = e => { this.toggleMap(); }; - imgMapToggle.id = 'potree_map_toggle'; - - viewer.renderArea.insertBefore(imgMapToggle, viewer.renderArea.children[0]); - viewer.renderArea.insertBefore(imgMenuToggle, viewer.renderArea.children[0]); - - // this.mapView = new MapView(this); - // this.mapView.init(); - - i18n.init({ - lng: 'en', - resGetPath: Potree.resourcePath + '/lang/__lng__/__ns__.json', - preload: ['en'], - getAsync: true, - debug: false - }, function (t) { - // Start translation once everything is loaded - $('body').i18n(); - }); - - $(() => { - //initSidebar(this); - let sidebar = new Sidebar(this); - sidebar.init(); - - //if (callback) { - // $(callback); - //} - - let elProfile = $('
      ').load(new URL(Potree.scriptPath + '/profile.html').href, () => { - $(document.body).append(elProfile.children()); - this.profileWindow = new ProfileWindow(this); - this.profileWindowController = new ProfileWindowController(this); - - $('#profile_window').draggable({ - handle: $('#profile_titlebar'), - containment: $(document.body) - }); - $('#profile_window').resizable({ - containment: $(document.body), - handles: 'n, e, s, w' - }); - - $(() => { - this.guiLoaded = true; - for(let task of this.guiLoadTasks){ - task(); - } - - }); - }); - - - - }); - - - }); - } - - setLanguage (lang) { - i18n.setLng(lang); - $('body').i18n(); - } - - setServer (server) { - this.server = server; - } - - initThree () { - let width = this.renderArea.clientWidth; - let height = this.renderArea.clientHeight; - - let contextAttributes = { - alpha: true, - depth: true, - stencil: false, - antialias: false, - //premultipliedAlpha: _premultipliedAlpha, - preserveDrawingBuffer: true, - powerPreference: "high-performance", - }; - - let canvas = document.createElement("canvas"); - - //let context = canvas.getContext('webgl2', contextAttributes ); - //if(!context){ - let context = canvas.getContext('webgl', contextAttributes ); - Potree.Features.WEBGL2.isSupported = () => { - return false; - }; - //} - - - this.renderer = new THREE.WebGLRenderer({ - alpha: true, - premultipliedAlpha: false, - canvas: canvas, - context: context}); - this.renderer.sortObjects = false; - this.renderer.setSize(width, height); - this.renderer.autoClear = false; - this.renderArea.appendChild(this.renderer.domElement); - this.renderer.domElement.tabIndex = '2222'; - this.renderer.domElement.style.position = 'absolute'; - this.renderer.domElement.addEventListener('mousedown', () => { - this.renderer.domElement.focus(); - }); - //this.renderer.domElement.focus(); - - // enable frag_depth extension for the interpolation shader, if available - let gl = this.renderer.context; - gl.getExtension('EXT_frag_depth'); - gl.getExtension('WEBGL_depth_texture'); - - if(gl instanceof WebGLRenderingContext){ - let extVAO = gl.getExtension('OES_vertex_array_object'); - - if(!extVAO){ - throw new Error("OES_vertex_array_object extension not supported"); - } - - gl.createVertexArray = extVAO.createVertexArrayOES.bind(extVAO); - gl.bindVertexArray = extVAO.bindVertexArrayOES.bind(extVAO); - }else if(gl instanceof WebGL2RenderingContext){ - gl.getExtension("EXT_color_buffer_float"); - } - - } - - updateAnnotations () { - - if(!this.visibleAnnotations){ - this.visibleAnnotations = new Set(); - } - - this.scene.annotations.updateBounds(); - this.scene.cameraP.updateMatrixWorld(); - this.scene.cameraO.updateMatrixWorld(); - - let distances = []; - - let renderAreaWidth = this.renderer.getSize().width; - let renderAreaHeight = this.renderer.getSize().height; - - let viewer = this; - - let visibleNow = []; - this.scene.annotations.traverse(annotation => { - - if (annotation === this.scene.annotations) { - return true; - } - - if (!annotation.visible) { - return false; - } - - annotation.scene = this.scene; - - let element = annotation.domElement; - - let position = annotation.position.clone(); - position.add(annotation.offset); - if (!position) { - position = annotation.boundingBox.getCenter(new THREE.Vector3()); - } - - let distance = viewer.scene.cameraP.position.distanceTo(position); - let radius = annotation.boundingBox.getBoundingSphere(new THREE.Sphere()).radius; - - let screenPos = new THREE.Vector3(); - let screenSize = 0; - - { - // SCREEN POS - screenPos.copy(position).project(this.scene.getActiveCamera()); - screenPos.x = renderAreaWidth * (screenPos.x + 1) / 2; - screenPos.y = renderAreaHeight * (1 - (screenPos.y + 1) / 2); - - - // SCREEN SIZE - if(viewer.scene.cameraMode == CameraMode.PERSPECTIVE) { - let fov = Math.PI * viewer.scene.cameraP.fov / 180; - let slope = Math.tan(fov / 2.0); - let projFactor = 0.5 * renderAreaHeight / (slope * distance); - screenSize = radius * projFactor; - } else { - screenSize = Utils.projectedRadiusOrtho(radius, viewer.scene.cameraO.projectionMatrix, renderAreaWidth, renderAreaHeight); - } - } - - element.css("left", screenPos.x + "px"); - element.css("top", screenPos.y + "px"); - //element.css("display", "block"); - - let zIndex = 10000000 - distance * (10000000 / this.scene.cameraP.far); - if(annotation.descriptionVisible){ - zIndex += 10000000; - } - element.css("z-index", parseInt(zIndex)); - - if(annotation.children.length > 0){ - let expand = screenSize > annotation.collapseThreshold || annotation.boundingBox.containsPoint(this.scene.getActiveCamera().position); - annotation.expand = expand; - - if (!expand) { - //annotation.display = (screenPos.z >= -1 && screenPos.z <= 1); - let inFrustum = (screenPos.z >= -1 && screenPos.z <= 1); - if(inFrustum){ - visibleNow.push(annotation); - } - } - - return expand; - } else { - //annotation.display = (screenPos.z >= -1 && screenPos.z <= 1); - let inFrustum = (screenPos.z >= -1 && screenPos.z <= 1); - if(inFrustum){ - visibleNow.push(annotation); - } - } - - }); - - let notVisibleAnymore = new Set(this.visibleAnnotations); - for(let annotation of visibleNow){ - annotation.display = true; - - notVisibleAnymore.delete(annotation); - } - this.visibleAnnotations = visibleNow; - - for(let annotation of notVisibleAnymore){ - annotation.display = false; - } - - } - - update(delta, timestamp){ - - if(Potree.measureTimings) performance.mark("update-start"); - - // if(window.urlToggle === undefined){ - // window.urlToggle = 0; - // }else{ - // - // if(window.urlToggle > 1){ - // { - // - // let currentValue = Utils.getParameterByName("position"); - // let strPosition = "[" - // + this.scene.view.position.x.toFixed(3) + ";" - // + this.scene.view.position.y.toFixed(3) + ";" - // + this.scene.view.position.z.toFixed(3) + "]"; - // if(currentValue !== strPosition){ - // Utils.setParameter("position", strPosition); - // } - // - // } - // - // { - // let currentValue = Utils.getParameterByName("target"); - // let pivot = this.scene.view.getPivot(); - // let strTarget = "[" - // + pivot.x.toFixed(3) + ";" - // + pivot.y.toFixed(3) + ";" - // + pivot.z.toFixed(3) + "]"; - // if(currentValue !== strTarget){ - // Utils.setParameter("target", strTarget); - // } - // } - // - // window.urlToggle = 0; - // } - // - // window.urlToggle += delta; - //} - - { - let u = Math.sin(0.0005 * timestamp) * 0.5 - 0.4; - - let x = Math.cos(u); - let y = Math.sin(u); - - this.shadowTestCam.position.set(7 * x, 7 * y, 8.561); - this.shadowTestCam.lookAt(new THREE.Vector3(0, 0, 0)); - } - - - let scene = this.scene; - let camera = scene.getActiveCamera(); - - PotreeExports.pointLoadLimit = PotreeExports.pointBudget * 2; - - this.scene.directionalLight.position.copy(camera.position); - this.scene.directionalLight.lookAt(new THREE.Vector3().addVectors(camera.position, camera.getWorldDirection(new THREE.Vector3()))); - - for (let pointcloud of this.scene.pointclouds) { - if (!pointcloud.material._defaultIntensityRangeChanged) { - let root = pointcloud.pcoGeometry.root; - if (root != null && root.loaded) { - let attributes = pointcloud.pcoGeometry.root.geometry.attributes; - if (attributes.intensity) { - let array = attributes.intensity.array; - - // chose max value from the 0.75 percentile - let ordered = []; - for (let j = 0; j < array.length; j++) { - ordered.push(array[j]); - } - ordered.sort(); - let capIndex = parseInt((ordered.length - 1) * 0.75); - let cap = ordered[capIndex]; - - if (cap <= 1) { - pointcloud.material.intensityRange = [0, 1]; - } else if (cap <= 256) { - pointcloud.material.intensityRange = [0, 255]; - } else { - pointcloud.material.intensityRange = [0, cap]; - } - - } - // pointcloud._intensityMaxEvaluated = true; - } - } - - if(this.defaultGPSTimeChanged === false){ - - let root = pointcloud.pcoGeometry.root; - if (root != null && root.loaded) { - if(root.gpsTime){ - - let gpsTime = root.gpsTime; - let min = gpsTime.offset; - let max = gpsTime.offset + gpsTime.range; - let border = (max - min) * 0.1; - - this.setFilterGPSTimeExtent(min - border, max + border); - //this.setFilterGPSTimeRange(0, 1000 * 1000 * 1000); - this.setFilterGPSTimeRange(min, max); - - this.defaultGPSTimeChanged = true; - } - } - - } - - pointcloud.showBoundingBox = this.showBoundingBox; - pointcloud.generateDEM = this.generateDEM; - pointcloud.minimumNodePixelSize = this.minNodeSize; - } - - // update classification visibility - for (let pointcloud of this.scene.pointclouds) { - let classification = pointcloud.material.classification; - let somethingChanged = false; - for (let key of Object.keys(this.classifications)) { - let w = this.classifications[key].visible ? 1 : 0; - - if (classification[key]) { - if (classification[key].w !== w) { - classification[key].w = w; - somethingChanged = true; - } - } else if (classification.DEFAULT) { - classification[key] = classification.DEFAULT; - somethingChanged = true; - } else { - classification[key] = new THREE.Vector4(0.3, 0.6, 0.6, 0.5); - somethingChanged = true; - } - } - - if (somethingChanged) { - pointcloud.material.recomputeClassification(); - } - } - - for (let pointcloud of this.scene.pointclouds) { - if(!pointcloud.visible){ - continue; - } - - let material = pointcloud.material; - - material.uniforms.uFilterReturnNumberRange.value = this.filterReturnNumberRange; - material.uniforms.uFilterNumberOfReturnsRange.value = this.filterNumberOfReturnsRange; - material.uniforms.uFilterGPSTimeClipRange.value = this.filterGPSTimeRange; - } - - { - if(this.showBoundingBox){ - let bbRoot = this.scene.scene.getObjectByName("potree_bounding_box_root"); - if(!bbRoot){ - let node = new THREE.Object3D(); - node.name = "potree_bounding_box_root"; - this.scene.scene.add(node); - bbRoot = node; - } - - let visibleBoxes = []; - for(let pointcloud of this.scene.pointclouds){ - for(let node of pointcloud.visibleNodes.filter(vn => vn.boundingBoxNode !== undefined)){ - let box = node.boundingBoxNode; - visibleBoxes.push(box); - } - } - - bbRoot.children = visibleBoxes; - } - } - - if (!this.freeze) { - let result = Potree.updatePointClouds(scene.pointclouds, camera, this.renderer); - - - // DEBUG - ONLY DISPLAY NODES THAT INTERSECT MOUSE - //if(false){ - - // let renderer = viewer.renderer; - // let mouse = viewer.inputHandler.mouse; - - // let nmouse = { - // x: (mouse.x / renderer.domElement.clientWidth) * 2 - 1, - // y: -(mouse.y / renderer.domElement.clientHeight) * 2 + 1 - // }; - - // let pickParams = {}; - - // //if(params.pickClipped){ - // // pickParams.pickClipped = params.pickClipped; - // //} - - // pickParams.x = mouse.x; - // pickParams.y = renderer.domElement.clientHeight - mouse.y; - - // let raycaster = new THREE.Raycaster(); - // raycaster.setFromCamera(nmouse, camera); - // let ray = raycaster.ray; - - // for(let pointcloud of scene.pointclouds){ - // let nodes = pointcloud.nodesOnRay(pointcloud.visibleNodes, ray); - // pointcloud.visibleNodes = nodes; - - // } - //} - - if(result.lowestSpacing !== Infinity){ - let near = result.lowestSpacing * 10.0; - let far = -this.getBoundingBox().applyMatrix4(camera.matrixWorldInverse).min.z; - - far = Math.max(far * 1.5, 1000); - near = Math.min(100.0, Math.max(0.01, near)); - far = Math.max(far, near + 1000); - - if(near === Infinity){ - near = 0.1; - } - - camera.near = near; - camera.far = far; - }else{ - // don't change near and far in this case - } - - if(this.scene.cameraMode == CameraMode.ORTHOGRAPHIC) { - camera.near = -camera.far; - } - } - - this.scene.cameraP.fov = this.fov; - - // Navigation mode changed? - if (this.getControls(scene.view.navigationMode) !== this.controls) { - if (this.controls) { - this.controls.enabled = false; - this.inputHandler.removeInputListener(this.controls); - } - - this.controls = this.getControls(scene.view.navigationMode); - this.controls.enabled = true; - this.inputHandler.addInputListener(this.controls); - } - - if (this.getControls(scene.view.navigationMode) === this.deviceControls) { - this.controls.setScene(scene); - this.controls.update(delta); - - this.scene.cameraP.position.copy(scene.view.position); - this.scene.cameraO.position.copy(scene.view.position); - } else if (this.controls !== null) { - this.controls.setScene(scene); - this.controls.update(delta); - - this.scene.cameraP.position.copy(scene.view.position); - this.scene.cameraP.rotation.order = "ZXY"; - this.scene.cameraP.rotation.x = Math.PI / 2 + this.scene.view.pitch; - this.scene.cameraP.rotation.z = this.scene.view.yaw; - - this.scene.cameraO.position.copy(scene.view.position); - this.scene.cameraO.rotation.order = "ZXY"; - this.scene.cameraO.rotation.x = Math.PI / 2 + this.scene.view.pitch; - this.scene.cameraO.rotation.z = this.scene.view.yaw; - } - - camera.updateMatrix(); - camera.updateMatrixWorld(); - camera.matrixWorldInverse.getInverse(camera.matrixWorld); - - { - if(this._previousCamera === undefined){ - this._previousCamera = this.scene.getActiveCamera().clone(); - this._previousCamera.rotation.copy(this.scene.getActiveCamera()); - } - - if(!this._previousCamera.matrixWorld.equals(camera.matrixWorld)){ - this.dispatchEvent({ - type: "camera_changed", - previous: this._previousCamera, - camera: camera - }); - }else if(!this._previousCamera.projectionMatrix.equals(camera.projectionMatrix)){ - this.dispatchEvent({ - type: "camera_changed", - previous: this._previousCamera, - camera: camera - }); - } - - this._previousCamera = this.scene.getActiveCamera().clone(); - this._previousCamera.rotation.copy(this.scene.getActiveCamera()); - - } - - { // update clip boxes - let boxes = []; - - // volumes with clipping enabled - //boxes.push(...this.scene.volumes.filter(v => (v.clip))); - boxes.push(...this.scene.volumes.filter(v => (v.clip && v instanceof BoxVolume))); - - // profile segments - for(let profile of this.scene.profiles){ - boxes.push(...profile.boxes); - } - - let clipBoxes = boxes.map( box => { - box.updateMatrixWorld(); - let boxInverse = new THREE.Matrix4().getInverse(box.matrixWorld); - let boxPosition = box.getWorldPosition(new THREE.Vector3()); - return {box: box, inverse: boxInverse, position: boxPosition}; - }); - - let clipPolygons = this.scene.polygonClipVolumes.filter(vol => vol.initialized); - - // set clip volumes in material - for(let pointcloud of this.scene.pointclouds.filter(pc => pc.visible)){ - pointcloud.material.setClipBoxes(clipBoxes); - pointcloud.material.setClipPolygons(clipPolygons, this.clippingTool.maxPolygonVertices); - pointcloud.material.clipTask = this.clipTask; - pointcloud.material.clipMethod = this.clipMethod; - } - } - - { // update navigation cube - this.navigationCube.update(camera.rotation); - } - - this.updateAnnotations(); - - if(this.mapView){ - this.mapView.update(delta); - if(this.mapView.sceneProjection){ - $( "#potree_map_toggle" ).css("display", "block"); - - } - } - - TWEEN.update(timestamp); - - this.dispatchEvent({ - type: 'update', - delta: delta, - timestamp: timestamp}); - - if(Potree.measureTimings) { - performance.mark("update-end"); - performance.measure("update", "update-start", "update-end"); - } - } - - render(){ - if(Potree.measureTimings) performance.mark("render-start"); - - { // resize - let width = this.scaleFactor * this.renderArea.clientWidth; - let height = this.scaleFactor * this.renderArea.clientHeight; - let pixelRatio = this.renderer.getPixelRatio(); - let aspect = width / height; - - this.scene.cameraP.aspect = aspect; - this.scene.cameraP.updateProjectionMatrix(); - - //let frustumScale = viewer.moveSpeed * 2.0; - let frustumScale = this.scene.view.radius; - this.scene.cameraO.left = -frustumScale; - this.scene.cameraO.right = frustumScale; - this.scene.cameraO.top = frustumScale * 1 / aspect; - this.scene.cameraO.bottom = -frustumScale * 1 / aspect; - this.scene.cameraO.updateProjectionMatrix(); - - this.scene.cameraScreenSpace.top = 1/aspect; - this.scene.cameraScreenSpace.bottom = -1/aspect; - this.scene.cameraScreenSpace.updateProjectionMatrix(); - - this.renderer.setSize(width, height); - } - - try{ - - - if(this.useRep){ - if (!this.repRenderer) { - this.repRenderer = new RepRenderer(this); - } - this.repRenderer.render(this.renderer); - }else if(this.useHQ){ - if (!this.hqRenderer) { - this.hqRenderer = new HQSplatRenderer(this); - } - this.hqRenderer.useEDL = this.useEDL; - this.hqRenderer.render(this.renderer); - }else{ - if (this.useEDL && Features.SHADER_EDL.isSupported()) { - if (!this.edlRenderer) { - this.edlRenderer = new EDLRenderer(this); - } - this.edlRenderer.render(this.renderer); - } else { - if (!this.potreeRenderer) { - this.potreeRenderer = new PotreeRenderer(this); - } - this.potreeRenderer.render(); - } - } - - //if(this.useRep){ - // if (!this.repRenderer) { - // this.repRenderer = new RepRenderer(this); - // } - // this.repRenderer.render(this.renderer); - //} else if (this.useHQ && Features.SHADER_SPLATS.isSupported()) { - // if (!this.hqRenderer) { - // this.hqRenderer = new HQSplatRenderer(this); - // } - // this.hqRenderer.render(this.renderer); - //} else if (this.useEDL && Features.SHADER_EDL.isSupported()) { - // if (!this.edlRenderer) { - // this.edlRenderer = new EDLRenderer(this); - // } - // this.edlRenderer.render(this.renderer); - //} else { - // if (!this.potreeRenderer) { - // this.potreeRenderer = new PotreeRenderer(this); - // } - - // this.potreeRenderer.render(); - //} - - this.renderer.render(this.overlay, this.overlayCamera); - - }catch(e){ - this.onCrash(e); - } - - if(Potree.measureTimings){ - performance.mark("render-end"); - performance.measure("render", "render-start", "render-end"); - } - } - - resolveTimings(timestamp){ - if(Potree.measureTimings){ - if(!this.toggle){ - this.toggle = timestamp; - } - let duration = timestamp - this.toggle; - if(duration > 1000.0){ - - let measures = performance.getEntriesByType("measure"); - - let names = new Set(); - for(let measure of measures){ - names.add(measure.name); - } - - let groups = new Map(); - for(let name of names){ - groups.set(name, { - measures: [], - sum: 0, - n: 0, - min: Infinity, - max: -Infinity - }); - } - - for(let measure of measures){ - let group = groups.get(measure.name); - group.measures.push(measure); - group.sum += measure.duration; - group.n++; - group.min = Math.min(group.min, measure.duration); - group.max = Math.max(group.max, measure.duration); - } - - let glQueries = Potree.resolveQueries(this.renderer.getContext()); - for(let [key, value] of glQueries){ - - let group = { - measures: value.map(v => {return {duration: v}}), - sum: value.reduce( (a, i) => a + i, 0), - n: value.length, - min: Math.min(...value), - max: Math.max(...value) - }; - - let groupname = `[tq] ${key}`; - groups.set(groupname, group); - names.add(groupname); - } - - for(let [name, group] of groups){ - group.mean = group.sum / group.n; - group.measures.sort( (a, b) => a.duration - b.duration ); - - if(group.n === 1){ - group.median = group.measures[0].duration; - }else if(group.n > 1){ - group.median = group.measures[parseInt(group.n / 2)].duration; - } - - } - - let cn = Array.from(names).reduce( (a, i) => Math.max(a, i.length), 0) + 5; - let cmin = 10; - let cmed = 10; - let cmax = 10; - let csam = 6; - - let message = ` ${"NAME".padEnd(cn)} |` - + ` ${"MIN".padStart(cmin)} |` - + ` ${"MEDIAN".padStart(cmed)} |` - + ` ${"MAX".padStart(cmax)} |` - + ` ${"SAMPLES".padStart(csam)} \n`; - message += ` ${"-".repeat(message.length) }\n`; - - names = Array.from(names).sort(); - for(let name of names){ - let group = groups.get(name); - let min = group.min.toFixed(3); - let median = group.median.toFixed(3); - let max = group.max.toFixed(3); - let n = group.n; - - message += ` ${name.padEnd(cn)} |` - + ` ${min.padStart(cmin)} |` - + ` ${median.padStart(cmed)} |` - + ` ${max.padStart(cmax)} |` - + ` ${n.toString().padStart(csam)}\n`; - } - message += `\n`; - console.log(message); - - performance.clearMarks(); - performance.clearMeasures(); - this.toggle = timestamp; - } - } - } - - loop(timestamp){ - requestAnimationFrame(this.loop.bind(this)); - - let queryAll; - if(Potree.measureTimings){ - performance.mark("loop-start"); - } - - this.update(this.clock.getDelta(), timestamp); - - this.render(); - - if(Potree.measureTimings){ - performance.mark("loop-end"); - performance.measure("loop", "loop-start", "loop-end"); - } - - this.resolveTimings(timestamp); - - PotreeExports.framenumber++; - } - - postError(content, params = {}){ - let message = this.postMessage(content, params); - - message.element.addClass("potree_message_error"); - - return message; - } - - postMessage(content, params = {}){ - let message = new Message(content); - - let animationDuration = 100; - - message.element.css("display", "none"); - message.elClose.click( () => { - message.element.slideToggle(animationDuration); - - let index = this.messages.indexOf(message); - if(index >= 0){ - this.messages.splice(index, 1); - } - }); - - this.elMessages.prepend(message.element); - - message.element.slideToggle(animationDuration); - - this.messages.push(message); - - if(params.duration !== undefined){ - let fadeDuration = 500; - let slideOutDuration = 200; - setTimeout(() => { - message.element.animate({ - opacity: 0 - }, fadeDuration); - message.element.slideToggle(slideOutDuration); - }, params.duration) - } - - return message; - } -}; diff --git a/app/static/app/js/vendor/potree/src/workers/BinaryDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/BinaryDecoderWorker.js deleted file mode 100644 index 99b890f6..00000000 --- a/app/static/app/js/vendor/potree/src/workers/BinaryDecoderWorker.js +++ /dev/null @@ -1,477 +0,0 @@ - - -import {Version} from "../Version.js"; -import {PointAttributes, PointAttribute} from "../loader/PointAttributes.js"; -import {InterleavedBuffer} from "../InterleavedBuffer.js"; -import {toInterleavedBufferAttribute} from "../utils/toInterleavedBufferAttribute.js"; - - - -/* global onmessage:true postMessage:false */ -/* exported onmessage */ -// http://jsperf.com/uint8array-vs-dataview3/3 -function CustomView (buffer) { - this.buffer = buffer; - this.u8 = new Uint8Array(buffer); - - let tmp = new ArrayBuffer(8); - let tmpf = new Float32Array(tmp); - let tmpd = new Float64Array(tmp); - let tmpu8 = new Uint8Array(tmp); - - this.getUint32 = function (i) { - return (this.u8[i + 3] << 24) | (this.u8[i + 2] << 16) | (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getUint16 = function (i) { - return (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getFloat32 = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - - return tmpf[0]; - }; - - this.getFloat64 = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - tmpu8[4] = this.u8[i + 4]; - tmpu8[5] = this.u8[i + 5]; - tmpu8[6] = this.u8[i + 6]; - tmpu8[7] = this.u8[i + 7]; - - return tmpd[0]; - }; - - this.getUint8 = function (i) { - return this.u8[i]; - }; -} - -Potree = {}; - -onmessage = function (event) { - - performance.mark("binary-decoder-start"); - - let buffer = event.data.buffer; - let pointAttributes = event.data.pointAttributes; - let numPoints = buffer.byteLength / pointAttributes.byteSize; - let cv = new CustomView(buffer); - let version = new Version(event.data.version); - let nodeOffset = event.data.offset; - let scale = event.data.scale; - let spacing = event.data.spacing; - let hasChildren = event.data.hasChildren; - let name = event.data.name; - - let tightBoxMin = [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ]; - let tightBoxMax = [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ]; - let mean = [0, 0, 0]; - - - let attributeBuffers = {}; - let inOffset = 0; - for (let pointAttribute of pointAttributes.attributes) { - - if (pointAttribute.name === PointAttribute.POSITION_CARTESIAN.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let positions = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let x, y, z; - - if (version.newerThan('1.3')) { - x = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 0, true) * scale); - y = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 4, true) * scale); - z = (cv.getUint32(inOffset + j * pointAttributes.byteSize + 8, true) * scale); - } else { - x = cv.getFloat32(j * pointAttributes.byteSize + 0, true) + nodeOffset[0]; - y = cv.getFloat32(j * pointAttributes.byteSize + 4, true) + nodeOffset[1]; - z = cv.getFloat32(j * pointAttributes.byteSize + 8, true) + nodeOffset[2]; - } - - positions[3 * j + 0] = x; - positions[3 * j + 1] = y; - positions[3 * j + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoxMin[0] = Math.min(tightBoxMin[0], x); - tightBoxMin[1] = Math.min(tightBoxMin[1], y); - tightBoxMin[2] = Math.min(tightBoxMin[2], z); - - tightBoxMax[0] = Math.max(tightBoxMax[0], x); - tightBoxMax[1] = Math.max(tightBoxMax[1], y); - tightBoxMax[2] = Math.max(tightBoxMax[2], z); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.COLOR_PACKED.name) { - let buff = new ArrayBuffer(numPoints * 4); - let colors = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - colors[4 * j + 0] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - colors[4 * j + 1] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - colors[4 * j + 2] = cv.getUint8(inOffset + j * pointAttributes.byteSize + 2); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.INTENSITY.name) { - let buff = new ArrayBuffer(numPoints * 4); - let intensities = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let intensity = cv.getUint16(inOffset + j * pointAttributes.byteSize, true); - intensities[j] = intensity; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.CLASSIFICATION.name) { - let buff = new ArrayBuffer(numPoints); - let classifications = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let classification = cv.getUint8(inOffset + j * pointAttributes.byteSize); - classifications[j] = classification; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.RETURN_NUMBER.name) { - let buff = new ArrayBuffer(numPoints); - let returnNumbers = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let returnNumber = cv.getUint8(inOffset + j * pointAttributes.byteSize); - returnNumbers[j] = returnNumber; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NUMBER_OF_RETURNS.name) { - let buff = new ArrayBuffer(numPoints); - let numberOfReturns = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let numberOfReturn = cv.getUint8(inOffset + j * pointAttributes.byteSize); - numberOfReturns[j] = numberOfReturn; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.SOURCE_ID.name) { - let buff = new ArrayBuffer(numPoints * 2); - let sourceIDs = new Uint16Array(buff); - - for (let j = 0; j < numPoints; j++) { - let sourceID = cv.getUint16(inOffset + j * pointAttributes.byteSize); - sourceIDs[j] = sourceID; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL_SPHEREMAPPED.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let bx = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - let by = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - - let ex = bx / 255; - let ey = by / 255; - - let nx = ex * 2 - 1; - let ny = ey * 2 - 1; - let nz = 1; - let nw = -1; - - let l = (nx * (-nx)) + (ny * (-ny)) + (nz * (-nw)); - nz = l; - nx = nx * Math.sqrt(l); - ny = ny * Math.sqrt(l); - - nx = nx * 2; - ny = ny * 2; - nz = nz * 2 - 1; - - normals[3 * j + 0] = nx; - normals[3 * j + 1] = ny; - normals[3 * j + 2] = nz; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL_OCT16.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let bx = cv.getUint8(inOffset + j * pointAttributes.byteSize + 0); - let by = cv.getUint8(inOffset + j * pointAttributes.byteSize + 1); - - let u = (bx / 255) * 2 - 1; - let v = (by / 255) * 2 - 1; - - let z = 1 - Math.abs(u) - Math.abs(v); - - let x = 0; - let y = 0; - if (z >= 0) { - x = u; - y = v; - } else { - x = -(v / Math.sign(v) - 1) / Math.sign(u); - y = -(u / Math.sign(u) - 1) / Math.sign(v); - } - - let length = Math.sqrt(x * x + y * y + z * z); - x = x / length; - y = y / length; - z = z / length; - - normals[3 * j + 0] = x; - normals[3 * j + 1] = y; - normals[3 * j + 2] = z; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.NORMAL.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let normals = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let x = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 0, true); - let y = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 4, true); - let z = cv.getFloat32(inOffset + j * pointAttributes.byteSize + 8, true); - - normals[3 * j + 0] = x; - normals[3 * j + 1] = y; - normals[3 * j + 2] = z; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === PointAttribute.GPS_TIME.name) { - let buff = new ArrayBuffer(numPoints * 8); - let gpstimes = new Float64Array(buff); - - for(let j = 0; j < numPoints; j++){ - let gpstime = cv.getFloat64(inOffset + j * pointAttributes.byteSize, true); - gpstimes[j] = gpstime; - } - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } - - inOffset += pointAttribute.byteSize; - } - - // Convert GPS time from double (unsupported by WebGL) to origin-aligned floats - if(attributeBuffers[PointAttribute.GPS_TIME.name]){ - let attribute = attributeBuffers[PointAttribute.GPS_TIME.name]; - let sourceF64 = new Float64Array(attribute.buffer); - let target = new ArrayBuffer(numPoints * 4); - let targetF32 = new Float32Array(target); - - let min = Infinity; - let max = -Infinity; - for(let i = 0; i < numPoints; i++){ - let gpstime = sourceF64[i]; - - min = Math.min(min, gpstime); - max = Math.max(max, gpstime); - } - - for(let i = 0; i < numPoints; i++){ - let gpstime = sourceF64[i]; - targetF32[i] = gpstime - min; - } - - attributeBuffers[PointAttribute.GPS_TIME.name] = { - buffer: target, - attribute: PointAttribute.GPS_TIME, - offset: min, - range: max - min}; - } - - //let debugNodes = ["r026", "r0226","r02274"]; - //if(debugNodes.includes(name)){ - if(false){ - console.log("estimate spacing!"); - - - let sparseGrid = new Map(); - let gridSize = 16; - - let tightBoxSize = tightBoxMax.map( (a, i) => a - tightBoxMin[i]); - let cubeLength = Math.max(...tightBoxSize); - let cube = { - min: tightBoxMin, - max: tightBoxMin.map(v => v + cubeLength) - }; - - let positions = new Float32Array(attributeBuffers[PointAttribute.POSITION_CARTESIAN.name].buffer); - for(let i = 0; i < numPoints; i++){ - let x = positions[3 * i + 0]; - let y = positions[3 * i + 1]; - let z = positions[3 * i + 2]; - - let ix = Math.max(0, Math.min(gridSize * (x - cube.min[0]) / cubeLength, gridSize - 1)); - let iy = Math.max(0, Math.min(gridSize * (y - cube.min[1]) / cubeLength, gridSize - 1)); - let iz = Math.max(0, Math.min(gridSize * (z - cube.min[2]) / cubeLength, gridSize - 1)); - - ix = Math.floor(ix); - iy = Math.floor(iy); - iz = Math.floor(iz); - - let cellIndex = ix | (iy << 8) | (iz << 16); - - if(!sparseGrid.has(cellIndex)){ - sparseGrid.set(cellIndex, []); - } - - sparseGrid.get(cellIndex).push(i); - } - - let kNearest = (pointIndex, candidates, numNearest) => { - - let x = positions[3 * pointIndex + 0]; - let y = positions[3 * pointIndex + 1]; - let z = positions[3 * pointIndex + 2]; - - let candidateDistances = []; - - for(let candidateIndex of candidates){ - if(candidateIndex === pointIndex){ - continue; - } - - let cx = positions[3 * candidateIndex + 0]; - let cy = positions[3 * candidateIndex + 1]; - let cz = positions[3 * candidateIndex + 2]; - - let squaredDistance = (cx - x) ** 2 + (cy - y) ** 2 + (cz - z) ** 2; - - candidateDistances.push({candidateInde: candidateIndex, squaredDistance: squaredDistance}); - } - - candidateDistances.sort( (a, b) => a.squaredDistance - b.squaredDistance); - let nearest = candidateDistances.slice(0, numNearest); - - return nearest; - }; - - let meansBuffer = new ArrayBuffer(numPoints * 4); - let means = new Float32Array(meansBuffer); - - for(let [key, value] of sparseGrid){ - - for(let pointIndex of value){ - - if(value.length === 1){ - means[pointIndex] = 0; - continue; - } - - let [ix, iy, iz] = [(key & 255), ((key >> 8) & 255), ((key >> 16) & 255)]; - - //let candidates = value; - let candidates = []; - for(let i of [-1, 0, 1]){ - for(let j of [-1, 0, 1]){ - for(let k of [-1, 0, 1]){ - let cellIndex = (ix + i) | ((iy + j) << 8) | ((iz + k) << 16); - - if(sparseGrid.has(cellIndex)){ - candidates.push(...sparseGrid.get(cellIndex)); - } - } - } - } - - - let nearestNeighbors = kNearest(pointIndex, candidates, 10); - - let sum = 0; - for(let neighbor of nearestNeighbors){ - sum += Math.sqrt(neighbor.squaredDistance); - } - - //let mean = sum / nearestNeighbors.length; - let mean = Math.sqrt(Math.max(...nearestNeighbors.map(n => n.squaredDistance))); - - if(Number.isNaN(mean)){ - debugger; - } - - - means[pointIndex] = mean; - - } - - } - - - let maxMean = Math.max(...means); - let minMean = Math.min(...means); - - //let colors = new Uint8Array(attributeBuffers[PointAttribute.COLOR_PACKED.name].buffer); - //for(let i = 0; i < numPoints; i++){ - // let v = means[i] / 0.05; - - // colors[4 * i + 0] = 255 * v; - // colors[4 * i + 1] = 255 * v; - // colors[4 * i + 2] = 255 * v; - //} - - attributeBuffers[PointAttribute.SPACING.name] = { buffer: meansBuffer, attribute: PointAttribute.SPACING }; - - - } - - - { // add indices - let buff = new ArrayBuffer(numPoints * 4); - let indices = new Uint32Array(buff); - - for (let i = 0; i < numPoints; i++) { - indices[i] = i; - } - - attributeBuffers[PointAttribute.INDICES.name] = { buffer: buff, attribute: PointAttribute.INDICES }; - } - - performance.mark("binary-decoder-end"); - - //{ // print timings - // //performance.measure("spacing", "spacing-start", "spacing-end"); - // performance.measure("binary-decoder", "binary-decoder-start", "binary-decoder-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - buffer: buffer, - mean: mean, - attributeBuffers: attributeBuffers, - tightBoundingBox: { min: tightBoxMin, max: tightBoxMax }, - //estimatedSpacing: estimatedSpacing, - }; - - let transferables = []; - for (let property in message.attributeBuffers) { - transferables.push(message.attributeBuffers[property].buffer); - } - transferables.push(buffer); - - postMessage(message, transferables); -}; diff --git a/app/static/app/js/vendor/potree/src/workers/DEMWorker.js b/app/static/app/js/vendor/potree/src/workers/DEMWorker.js deleted file mode 100644 index ce3ccfed..00000000 --- a/app/static/app/js/vendor/potree/src/workers/DEMWorker.js +++ /dev/null @@ -1,42 +0,0 @@ -/* global onmessage:true postMessage:false */ -/* exported onmessage */ -onmessage = function (event) { - let boundingBox = event.data.boundingBox; - let position = new Float32Array(event.data.position); - let width = 64; - let height = 64; - let numPoints = position.length / 3; - - let boxSize = { - x: boundingBox.max[0] - boundingBox.min[0], - y: boundingBox.max[1] - boundingBox.min[1], - z: boundingBox.max[2] - boundingBox.min[2] - }; - - let dem = new Float32Array(width * height); - dem.fill(-Infinity); - for (let i = 0; i < numPoints; i++) { - let x = position[3 * i + 0]; - let y = position[3 * i + 1]; - let z = position[3 * i + 2]; - - let dx = x / boxSize.x; - let dy = y / boxSize.y; - - let ix = parseInt(Math.min(width * dx, width - 1)); - let iy = parseInt(Math.min(height * dy, height - 1)); - - let index = ix + width * iy; - dem[index] = z; - } - - let message = { - dem: { - width: width, - height: height, - data: dem.buffer - } - }; - - postMessage(message, [message.dem.data]); -}; diff --git a/app/static/app/js/vendor/potree/src/workers/EptBinaryDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/EptBinaryDecoderWorker.js deleted file mode 100644 index 1b79af17..00000000 --- a/app/static/app/js/vendor/potree/src/workers/EptBinaryDecoderWorker.js +++ /dev/null @@ -1,5 +0,0 @@ -importScripts('/libs/ept/ParseBuffer.js'); -onmessage = function(event) { - parseEpt(event); -} - diff --git a/app/static/app/js/vendor/potree/src/workers/EptLaszipDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/EptLaszipDecoderWorker.js deleted file mode 100644 index 47c2ac68..00000000 --- a/app/static/app/js/vendor/potree/src/workers/EptLaszipDecoderWorker.js +++ /dev/null @@ -1,176 +0,0 @@ -function readUsingDataView(event) { - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let pointSize = event.data.pointSize; - let pointFormat = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let tightBoundingBox = { - min: [ - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY, - Number.POSITIVE_INFINITY - ], - max: [ - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY, - Number.NEGATIVE_INFINITY - ] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - // Point format 3 contains an 8-byte GpsTime before RGB values, so make - // sure we have the correct color offset. - let hasColor = pointFormat == 2 || pointFormat == 3; - let co = pointFormat == 2 ? 20 : 28; - - // TODO This should be cached per-resource since this is an expensive check. - let twoByteColor = false; - if (hasColor) { - let r, g, b, pos; - for (let i = 0; i < numPoints && !twoByteColor; ++i) { - pos = i * pointSize; - r = sourceView.getUint16(pos + co, true) - g = sourceView.getUint16(pos + co + 2, true) - b = sourceView.getUint16(pos + co + 4, true) - if (r > 255 || g > 255 || b > 255) twoByteColor = true; - } - } - - for (let i = 0; i < numPoints; i++) { - // POSITION - let ux = sourceView.getInt32(i * pointSize + 0, true); - let uy = sourceView.getInt32(i * pointSize + 4, true); - let uz = sourceView.getInt32(i * pointSize + 8, true); - - x = ux * scale[0] + offset[0] - event.data.mins[0]; - y = uy * scale[1] + offset[1] - event.data.mins[1]; - z = uz * scale[2] + offset[2] - event.data.mins[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - let intensity = sourceView.getUint16(i * pointSize + 12, true); - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - // number of returns stored in next 3 bits - 00111000 - let returnNumberAndNumberOfReturns = sourceView.getUint8(i * pointSize + 14, true); - let returnNumber = returnNumberAndNumberOfReturns & 0b0111; - let numberOfReturn = (returnNumberAndNumberOfReturns & 0b00111000) >> 3; - returnNumbers[i] = returnNumber; - numberOfReturns[i] = numberOfReturn; - - // CLASSIFICATION - let classification = sourceView.getUint8(i * pointSize + 15, true); - classifications[i] = classification; - - // POINT SOURCE ID - let pointSourceID = sourceView.getUint16(i * pointSize + 18, true); - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (hasColor) { - let r = sourceView.getUint16(i * pointSize + co, true) - let g = sourceView.getUint16(i * pointSize + co + 2, true) - let b = sourceView.getUint16(i * pointSize + co + 4, true) - - if (twoByteColor) { - r /= 256; - g /= 256; - b /= 256; - } - - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - colors[4 * i + 3] = 255; - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - - //{ // print timings - // performance.measure("laslaz", "laslaz-start", "laslaz-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices - ]; - - postMessage(message, transferables); -}; - - - -onmessage = readUsingDataView; - diff --git a/app/static/app/js/vendor/potree/src/workers/EptZstandardDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/EptZstandardDecoderWorker.js deleted file mode 100644 index 911ccab8..00000000 --- a/app/static/app/js/vendor/potree/src/workers/EptZstandardDecoderWorker.js +++ /dev/null @@ -1,16 +0,0 @@ -window = { }; -document = { }; -importScripts('/libs/zstd-codec/bundle.js', '/libs/ept/ParseBuffer.js'); - -onmessage = function(event) { - new Promise(resolve => window.ZstdCodec.run(resolve)) - .then(zstd => { - let streaming = new zstd.Streaming(); - let arr = new Uint8Array(event.data.buffer); - const decompressed = streaming.decompress(arr); - - event.data.buffer = decompressed.buffer - parseEpt(event); - }) -} - diff --git a/app/static/app/js/vendor/potree/src/workers/GreyhoundBinaryDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/GreyhoundBinaryDecoderWorker.js deleted file mode 100644 index 08573570..00000000 --- a/app/static/app/js/vendor/potree/src/workers/GreyhoundBinaryDecoderWorker.js +++ /dev/null @@ -1,190 +0,0 @@ -/* global onmessage:true postMessage:false Module */ -/* exported onmessage */ -// http://jsperf.com/uint8array-vs-dataview3/3 -function CustomView (buffer) { - this.buffer = buffer; - this.u8 = new Uint8Array(buffer); - - let tmp = new ArrayBuffer(4); - let tmpf = new Float32Array(tmp); - let tmpu8 = new Uint8Array(tmp); - - this.getUint32 = function (i) { - return (this.u8[i + 3] << 24) | (this.u8[i + 2] << 16) | (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getUint16 = function (i) { - return (this.u8[i + 1] << 8) | this.u8[i]; - }; - - this.getFloat = function (i) { - tmpu8[0] = this.u8[i + 0]; - tmpu8[1] = this.u8[i + 1]; - tmpu8[2] = this.u8[i + 2]; - tmpu8[3] = this.u8[i + 3]; - - return tmpf[0]; - }; - - this.getUint8 = function (i) { - return this.u8[i]; - }; -} - -let decompress = function (schema, input, numPoints) { - let x = new Module.DynamicLASZip(); - - let abInt = new Uint8Array(input); - let buf = Module._malloc(input.byteLength); - - Module.HEAPU8.set(abInt, buf); - x.open(buf, input.byteLength); - - let pointSize = 0; - - schema.forEach(function (f) { - pointSize += f.size; - if (f.type === 'floating') x.addFieldFloating(f.size); - else if (f.type === 'unsigned') x.addFieldUnsigned(f.size); - else if (f.type === 'signed') x.addFieldSigned(f.size); - else throw new Error('Unrecognized field desc:', f); - }); - - let out = Module._malloc(numPoints * pointSize); - - for (let i = 0; i < numPoints; i++) { - x.getPoint(out + i * pointSize); - } - - let ret = new Uint8Array(numPoints * pointSize); - ret.set(Module.HEAPU8.subarray(out, out + numPoints * pointSize)); - - Module._free(out); - Module._free(buf); - - return ret.buffer; -}; - -Potree = {}; - -onmessage = function (event) { - let NUM_POINTS_BYTES = 4; - - let buffer = event.data.buffer; - let numPoints = new DataView(buffer, buffer.byteLength - NUM_POINTS_BYTES, NUM_POINTS_BYTES).getUint32(0, true); - buffer = buffer.slice(0, buffer.byteLength - NUM_POINTS_BYTES); - buffer = decompress(event.data.schema, buffer, numPoints); - - let pointAttributes = event.data.pointAttributes; - let cv = new CustomView(buffer); - let version = new Potree.Version(event.data.version); - let nodeOffset = event.data.offset; - let scale = event.data.scale; - - let tightBoxMin = [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ]; - let tightBoxMax = [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ]; - let mean = [0, 0, 0]; - - - let attributeBuffers = {}; - let inOffset = 0; - for (let pointAttribute of pointAttributes.attributes) { - - if (pointAttribute.name === Potree.PointAttribute.POSITION_CARTESIAN.name) { - let buff = new ArrayBuffer(numPoints * 4 * 3); - let positions = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let ux = cv.getUint32(inOffset + j * pointAttributes.byteSize + 0); - let uy = cv.getUint32(inOffset + j * pointAttributes.byteSize + 4); - let uz = cv.getUint32(inOffset + j * pointAttributes.byteSize + 8); - - let x = (scale * ux) + nodeOffset[0]; - let y = (scale * uy) + nodeOffset[1]; - let z = (scale * uz) + nodeOffset[2]; - - positions[3 * j + 0] = x; - positions[3 * j + 1] = y; - positions[3 * j + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoxMin[0] = Math.min(tightBoxMin[0], x); - tightBoxMin[1] = Math.min(tightBoxMin[1], y); - tightBoxMin[2] = Math.min(tightBoxMin[2], z); - - tightBoxMax[0] = Math.max(tightBoxMax[0], x); - tightBoxMax[1] = Math.max(tightBoxMax[1], y); - tightBoxMax[2] = Math.max(tightBoxMax[2], z); - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.COLOR_PACKED.name) { - let buff = new ArrayBuffer(numPoints * 4); - let colors = new Uint8Array(buff); - let div = event.data.normalize.color ? 256 : 1; - - for (let j = 0; j < numPoints; j++) { - let r = cv.getUint16(inOffset + j * pointAttributes.byteSize + 0) / div; - let g = cv.getUint16(inOffset + j * pointAttributes.byteSize + 2) / div; - let b = cv.getUint16(inOffset + j * pointAttributes.byteSize + 4) / div; - - colors[4 * j + 0] = r; - colors[4 * j + 1] = g; - colors[4 * j + 2] = b; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.INTENSITY.name) { - let buff = new ArrayBuffer(numPoints * 4); - let intensities = new Float32Array(buff); - - for (let j = 0; j < numPoints; j++) { - let intensity = cv.getUint16(inOffset + j * pointAttributes.byteSize, true); - intensities[j] = intensity; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } else if (pointAttribute.name === Potree.PointAttribute.CLASSIFICATION.name) { - let buff = new ArrayBuffer(numPoints); - let classifications = new Uint8Array(buff); - - for (let j = 0; j < numPoints; j++) { - let classification = cv.getUint8(inOffset + j * pointAttributes.byteSize); - classifications[j] = classification; - } - - attributeBuffers[pointAttribute.name] = { buffer: buff, attribute: pointAttribute }; - } - - inOffset += pointAttribute.byteSize; - } - - { // add indices - let buff = new ArrayBuffer(numPoints * 4); - let indices = new Uint32Array(buff); - - for (let i = 0; i < numPoints; i++) { - indices[i] = i; - } - - attributeBuffers[Potree.PointAttribute.INDICES.name] = { buffer: buff, attribute: Potree.PointAttribute.INDICES }; - } - - let message = { - numPoints: numPoints, - mean: mean, - attributeBuffers: attributeBuffers, - tightBoundingBox: { min: tightBoxMin, max: tightBoxMax }, - }; - - let transferables = []; - for (let property in message.attributeBuffers) { - transferables.push(message.attributeBuffers[property].buffer); - } - transferables.push(buffer); - - postMessage(message, transferables); -}; diff --git a/app/static/app/js/vendor/potree/src/workers/LASDecoderWorker.js b/app/static/app/js/vendor/potree/src/workers/LASDecoderWorker.js deleted file mode 100644 index f91fb2db..00000000 --- a/app/static/app/js/vendor/potree/src/workers/LASDecoderWorker.js +++ /dev/null @@ -1,368 +0,0 @@ -// let pointFormatReaders = { -// 0: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true) -// }; -// }, -// 1: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true) -// }; -// }, -// 2: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true), -// "color": [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)] -// }; -// }, -// 3: function(dv) { -// return { -// "position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)], -// "intensity": dv.getUint16(12, true), -// "classification": dv.getUint8(16, true), -// "color": [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)] -// }; -// } -// }; -// -// - - -function readUsingTempArrays(event) { - - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let sourcePointSize = event.data.pointSize; - let pointFormatID = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let temp = new ArrayBuffer(4); - let tempUint8 = new Uint8Array(temp); - let tempUint16 = new Uint16Array(temp); - let tempInt32 = new Int32Array(temp); - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let targetPointSize = 20; - let targetBuffer = new ArrayBuffer(numPoints * targetPointSize); - let targetView = new DataView(targetBuffer); - - let tightBoundingBox = { - min: [ Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY ], - max: [ Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY ] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - for (let i = 0; i < numPoints; i++) { - // POSITION - tempUint8[0] = sourceUint8[i * sourcePointSize + 0]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 1]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 2]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 3]; - let x = tempInt32[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 4]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 5]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 6]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 7]; - let y = tempInt32[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 8]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 9]; - tempUint8[2] = sourceUint8[i * sourcePointSize + 10]; - tempUint8[3] = sourceUint8[i * sourcePointSize + 11]; - let z = tempInt32[0]; - - x = x * scale[0] + offset[0] - event.data.mins[0]; - y = y * scale[1] + offset[1] - event.data.mins[1]; - z = z * scale[2] + offset[2] - event.data.mins[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - tempUint8[0] = sourceUint8[i * sourcePointSize + 12]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 13]; - let intensity = tempUint16[0]; - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - let returnNumber = sourceUint8[i * sourcePointSize + 14] & 0b111; - returnNumbers[i] = returnNumber; - - // NUMBER OF RETURNS, stored in 00111000 - numberOfReturns[i] = (sourceUint8[i * pointSize + 14] & 0b111000) >> 3; - - debugger; - - // CLASSIFICATION - let classification = sourceUint8[i * sourcePointSize + 15]; - classifications[i] = classification; - - // POINT SOURCE ID - tempUint8[0] = sourceUint8[i * sourcePointSize + 18]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 19]; - let pointSourceID = tempUint16[0]; - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (pointFormatID === 2) { - tempUint8[0] = sourceUint8[i * sourcePointSize + 20]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 21]; - let r = tempUint16[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 22]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 23]; - let g = tempUint16[0]; - - tempUint8[0] = sourceUint8[i * sourcePointSize + 24]; - tempUint8[1] = sourceUint8[i * sourcePointSize + 25]; - let b = tempUint16[0]; - - r = r / 256; - g = g / 256; - b = b / 256; - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - performance.measure("laslaz", "laslaz-start", "laslaz-end"); - - let measure = performance.getEntriesByType("measure")[0]; - let dpp = 1000 * measure.duration / numPoints; - let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} micros / point`; - console.log(debugMessage); - - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices]; - - debugger; - - postMessage(message, transferables); -}; - - -function readUsingDataView(event) { - - performance.mark("laslaz-start"); - - let buffer = event.data.buffer; - let numPoints = event.data.numPoints; - let sourcePointSize = event.data.pointSize; - let pointFormatID = event.data.pointFormatID; - let scale = event.data.scale; - let offset = event.data.offset; - - let sourceUint8 = new Uint8Array(buffer); - let sourceView = new DataView(buffer); - - let targetPointSize = 40; - let targetBuffer = new ArrayBuffer(numPoints * targetPointSize); - let targetView = new DataView(targetBuffer); - - let tightBoundingBox = { - min: [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE], - max: [-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE] - }; - - let mean = [0, 0, 0]; - - let pBuff = new ArrayBuffer(numPoints * 3 * 4); - let cBuff = new ArrayBuffer(numPoints * 4); - let iBuff = new ArrayBuffer(numPoints * 4); - let clBuff = new ArrayBuffer(numPoints); - let rnBuff = new ArrayBuffer(numPoints); - let nrBuff = new ArrayBuffer(numPoints); - let psBuff = new ArrayBuffer(numPoints * 2); - - let positions = new Float32Array(pBuff); - let colors = new Uint8Array(cBuff); - let intensities = new Float32Array(iBuff); - let classifications = new Uint8Array(clBuff); - let returnNumbers = new Uint8Array(rnBuff); - let numberOfReturns = new Uint8Array(nrBuff); - let pointSourceIDs = new Uint16Array(psBuff); - - for (let i = 0; i < numPoints; i++) { - // POSITION - let ux = sourceView.getInt32(i * sourcePointSize + 0, true); - let uy = sourceView.getInt32(i * sourcePointSize + 4, true); - let uz = sourceView.getInt32(i * sourcePointSize + 8, true); - - x = ux * scale[0] + offset[0] - event.data.mins[0]; - y = uy * scale[1] + offset[1] - event.data.mins[1]; - z = uz * scale[2] + offset[2] - event.data.mins[2]; - - //x = ux * scale[0]; - //y = uy * scale[1]; - //z = uz * scale[2]; - - positions[3 * i + 0] = x; - positions[3 * i + 1] = y; - positions[3 * i + 2] = z; - - mean[0] += x / numPoints; - mean[1] += y / numPoints; - mean[2] += z / numPoints; - - tightBoundingBox.min[0] = Math.min(tightBoundingBox.min[0], x); - tightBoundingBox.min[1] = Math.min(tightBoundingBox.min[1], y); - tightBoundingBox.min[2] = Math.min(tightBoundingBox.min[2], z); - - tightBoundingBox.max[0] = Math.max(tightBoundingBox.max[0], x); - tightBoundingBox.max[1] = Math.max(tightBoundingBox.max[1], y); - tightBoundingBox.max[2] = Math.max(tightBoundingBox.max[2], z); - - // INTENSITY - let intensity = sourceView.getUint16(i * sourcePointSize + 12, true); - intensities[i] = intensity; - - // RETURN NUMBER, stored in the first 3 bits - 00000111 - // number of returns stored in next 3 bits - 00111000 - let returnNumberAndNumberOfReturns = sourceView.getUint8(i * sourcePointSize + 14, true); - let returnNumber = returnNumberAndNumberOfReturns & 0b0111; - let numberOfReturn = (returnNumberAndNumberOfReturns & 0b00111000) >> 3; - returnNumbers[i] = returnNumber; - numberOfReturns[i] = numberOfReturn; - - // CLASSIFICATION - let classification = sourceView.getUint8(i * sourcePointSize + 15, true); - classifications[i] = classification; - - // POINT SOURCE ID - let pointSourceID = sourceView.getUint16(i * sourcePointSize + 18, true); - pointSourceIDs[i] = pointSourceID; - - // COLOR, if available - if (pointFormatID === 2) { - let r = sourceView.getUint16(i * sourcePointSize + 20, true) / 256; - let g = sourceView.getUint16(i * sourcePointSize + 22, true) / 256; - let b = sourceView.getUint16(i * sourcePointSize + 24, true) / 256; - - colors[4 * i + 0] = r; - colors[4 * i + 1] = g; - colors[4 * i + 2] = b; - colors[4 * i + 3] = 255; - } - } - - let indices = new ArrayBuffer(numPoints * 4); - let iIndices = new Uint32Array(indices); - for (let i = 0; i < numPoints; i++) { - iIndices[i] = i; - } - - performance.mark("laslaz-end"); - - //{ // print timings - // performance.measure("laslaz", "laslaz-start", "laslaz-end"); - // let measure = performance.getEntriesByType("measure")[0]; - // let dpp = 1000 * measure.duration / numPoints; - // let debugMessage = `${measure.duration.toFixed(3)} ms, ${numPoints} points, ${dpp.toFixed(3)} µs / point`; - // console.log(debugMessage); - //} - performance.clearMarks(); - performance.clearMeasures(); - - let message = { - mean: mean, - position: pBuff, - color: cBuff, - intensity: iBuff, - classification: clBuff, - returnNumber: rnBuff, - numberOfReturns: nrBuff, - pointSourceID: psBuff, - tightBoundingBox: tightBoundingBox, - indices: indices - }; - - let transferables = [ - message.position, - message.color, - message.intensity, - message.classification, - message.returnNumber, - message.numberOfReturns, - message.pointSourceID, - message.indices]; - - postMessage(message, transferables); -}; - - - -onmessage = readUsingDataView; -//onmessage = readUsingTempArrays; diff --git a/app/static/app/js/vendor/potree/src/workers/LASLAZWorker.js b/app/static/app/js/vendor/potree/src/workers/LASLAZWorker.js deleted file mode 100644 index aff8a81b..00000000 --- a/app/static/app/js/vendor/potree/src/workers/LASLAZWorker.js +++ /dev/null @@ -1,4 +0,0 @@ - - -//import "../../libs/plasio/workers/laz-perf.js"; -import {Module} from "../../libs/plasio/workers/laz-loader-worker.js"; \ No newline at end of file diff --git a/app/static/app/js/vendor/potree/src/workers/LazLoaderWorker.js b/app/static/app/js/vendor/potree/src/workers/LazLoaderWorker.js deleted file mode 100644 index 387970f8..00000000 --- a/app/static/app/js/vendor/potree/src/workers/LazLoaderWorker.js +++ /dev/null @@ -1,128 +0,0 @@ -/* global onmessage:true postMessage:false Module */ -/* exported onmessage */ -// laz-loader-worker.js -// - -// importScripts('laz-perf.js'); - -let instance = null; // laz-perf instance - -function readAs (buf, Type, offset, count) { - count = (count === undefined || count === 0 ? 1 : count); - let sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count); - - let r = new Type(sub); - if (count === undefined || count === 1) { return r[0]; } - - let ret = []; - for (let i = 0; i < count; i++) { - ret.push(r[i]); - } - - return ret; -} - -function parseLASHeader (arraybuffer) { - let o = {}; - - o.pointsOffset = readAs(arraybuffer, Uint32Array, 32 * 3); - o.pointsFormatId = readAs(arraybuffer, Uint8Array, 32 * 3 + 8); - o.pointsStructSize = readAs(arraybuffer, Uint16Array, 32 * 3 + 8 + 1); - o.pointsCount = readAs(arraybuffer, Uint32Array, 32 * 3 + 11); - - let start = 32 * 3 + 35; - o.scale = readAs(arraybuffer, Float64Array, start, 3); start += 24; // 8*3 - o.offset = readAs(arraybuffer, Float64Array, start, 3); start += 24; - - let bounds = readAs(arraybuffer, Float64Array, start, 6); start += 48; // 8*6; - o.maxs = [bounds[0], bounds[2], bounds[4]]; - o.mins = [bounds[1], bounds[3], bounds[5]]; - - return o; -} - -function handleEvent (msg) { - switch (msg.type) { - case 'open': - try { - instance = new Module.LASZip(); - let abInt = new Uint8Array(msg.arraybuffer); - let buf = Module._malloc(msg.arraybuffer.byteLength); - - instance.arraybuffer = msg.arraybuffer; - instance.buf = buf; - Module.HEAPU8.set(abInt, buf); - instance.open(buf, msg.arraybuffer.byteLength); - - instance.readOffset = 0; - - postMessage({ type: 'open', status: 1 }); - } catch (e) { - postMessage({ type: 'open', status: 0, details: e }); - } - break; - - case 'header': - if (!instance) { throw new Error('You need to open the file before trying to read header'); } - - let header = parseLASHeader(instance.arraybuffer); - header.pointsFormatId &= 0x3f; - instance.header = header; - postMessage({ type: 'header', status: 1, header: header }); - break; - - case 'read': - if (!instance) { throw new Error('You need to open the file before trying to read stuff'); } - - // msg.start - let count = msg.count; - let skip = msg.skip; - let o = instance; - - if (!o.header) { throw new Error('You need to query header before reading, I maintain state that way, sorry :('); } - - let pointsToRead = Math.min(count * skip, o.header.pointsCount - o.readOffset); - let bufferSize = Math.ceil(pointsToRead / skip); - let pointsRead = 0; - - let thisBuf = new Uint8Array(bufferSize * o.header.pointsStructSize); - let bufRead = Module._malloc(o.header.pointsStructSize); - for (let i = 0; i < pointsToRead; i++) { - o.getPoint(bufRead); - - if (i % skip === 0) { - let a = new Uint8Array(Module.HEAPU8.buffer, bufRead, o.header.pointsStructSize); - thisBuf.set(a, pointsRead * o.header.pointsStructSize, o.header.pointsStructSize); - pointsRead++; - } - - o.readOffset++; - } - - postMessage({ - type: 'header', - status: 1, - buffer: thisBuf.buffer, - count: pointsRead, - hasMoreData: o.readOffset < o.header.pointsCount - }); - - break; - - case 'close': - if (instance !== null) { - instance.delete(); - instance = null; - } - postMessage({ type: 'close', status: 1 }); - break; - } -} - -onmessage = function (event) { - try { - handleEvent(event.data); - } catch (e) { - postMessage({type: event.data.type, status: 0, details: e}); - } -}; diff --git a/app/static/app/js/vendor/potree/three.js b/app/static/app/js/vendor/potree/three.js deleted file mode 100644 index c67a7e40..00000000 --- a/app/static/app/js/vendor/potree/three.js +++ /dev/null @@ -1,949 +0,0 @@ -// threejs.org/license -(function(l,ya){"object"===typeof exports&&"undefined"!==typeof module?ya(exports):"function"===typeof define&&define.amd?define(["exports"],ya):ya(l.THREE={})})(this,function(l){function ya(){}function z(a,b){this.x=a||0;this.y=b||0}function I(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0b&&(b=a[c]);return b}function C(){Object.defineProperty(this,"id",{value:If+=2});this.uuid=H.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};this.userData={}}function Ib(a,b,c,d,e,f){R.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e, -depthSegments:f};this.fromBufferGeometry(new kb(a,b,c,d,e,f));this.mergeVertices()}function kb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,l,N,O,Jf){var r=f/N,v=g/O,P=f/2,y=g/2,w=l/2;g=N+1;var E=O+1,x=f=0,B,z,A=new p;for(z=0;zm;m++){if(n=d[m])if(h=n[0],k=n[1]){q&&e.addAttribute("morphTarget"+m,q[h]);f&&e.addAttribute("morphNormal"+ -m,f[h]);c[m]=k;continue}c[m]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Vf(a,b){var c={};return{update:function(d){var e=b.render.frame,f=d.geometry,g=a.get(d,f);c[g.id]!==e&&(f.isGeometry&&g.updateFromObject(d),a.update(g),c[g.id]=e);return g},dispose:function(){c={}}}}function Ua(a,b,c,d,e,f,g,h,k,m){a=void 0!==a?a:[];T.call(this,a,void 0!==b?b:301,c,d,e,f,g,h,k,m);this.flipY=!1}function Jb(a,b,c){var d=a[0];if(0>=d||0/gm, -function(a,c){a=S[c];if(void 0===a)throw Error("Can not resolve #include <"+c+">");return Xd(a)})}function Xe(a){return a.replace(/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(a,c,d,e){a="";for(c=parseInt(c);cb||a.height>b){if("data"in a){console.warn("THREE.WebGLRenderer: image in DataTexture is too big ("+a.width+"x"+a.height+")."); -return}b/=Math.max(a.width,a.height);var c=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");c.width=Math.floor(a.width*b);c.height=Math.floor(a.height*b);c.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,c.width,c.height);console.warn("THREE.WebGLRenderer: image is too big ("+a.width+"x"+a.height+"). Resized to "+c.width+"x"+c.height);return c}return a}function k(a){return H.isPowerOfTwo(a.width)&&H.isPowerOfTwo(a.height)}function m(a,b){return a.generateMipmaps&&b&&1003!== -a.minFilter&&1006!==a.minFilter}function q(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function n(b,c){if(!e.isWebGL2)return b;if(b===a.RGB){if(c===a.FLOAT)return a.RGB32F;if(c===a.HALF_FLOAT)return a.RGB16F;if(c===a.UNSIGNED_BYTE)return a.RGB8}if(b===a.RGBA){if(c===a.FLOAT)return a.RGBA32F;if(c===a.HALF_FLOAT)return a.RGBA16F;if(c===a.UNSIGNED_BYTE)return a.RGBA8}return b}function t(b){return 1003===b||1004===b||1005===b?a.NEAREST:a.LINEAR}function u(b){b= -b.target;b.removeEventListener("dispose",u);a:{var c=d.get(b);if(b.image&&c.__image__webglTextureCube)a.deleteTexture(c.__image__webglTextureCube);else{if(void 0===c.__webglInit)break a;a.deleteTexture(c.__webglTexture)}d.remove(b)}b.isVideoTexture&&delete B[b.id];g.memory.textures--}function r(b){b=b.target;b.removeEventListener("dispose",r);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e= -0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function l(b,t){var r=d.get(b);if(b.isVideoTexture){var l=b.id,v=g.render.frame;B[l]!==v&&(B[l]=v,b.update())}if(0w;w++)v[w]=t||l?l?b.image[w].image:b.image[w]:h(b.image[w],e.maxCubemapSize);var y=v[0],E=k(y),P=f.convert(b.format),x=f.convert(b.type),N=n(P,x);p(a.TEXTURE_CUBE_MAP,b,E);for(w=0;6>w;w++)if(t)for(var B,z=v[w].mipmaps,A=0,D=z.length;At;t++)e.__webglFramebuffer[t]=a.createFramebuffer()}else e.__webglFramebuffer= -a.createFramebuffer();if(h){c.bindTexture(a.TEXTURE_CUBE_MAP,f.__webglTexture);p(a.TEXTURE_CUBE_MAP,b.texture,n);for(t=0;6>t;t++)x(e.__webglFramebuffer[t],b,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+t);m(b.texture,n)&&q(a.TEXTURE_CUBE_MAP,b.texture,b.width,b.height);c.bindTexture(a.TEXTURE_CUBE_MAP,null)}else c.bindTexture(a.TEXTURE_2D,f.__webglTexture),p(a.TEXTURE_2D,b.texture,n),x(e.__webglFramebuffer,b,a.COLOR_ATTACHMENT0,a.TEXTURE_2D),m(b.texture,n)&&q(a.TEXTURE_2D,b.texture,b.width,b.height), -c.bindTexture(a.TEXTURE_2D,null);if(b.depthBuffer){e=d.get(b);f=!0===b.isWebGLRenderTargetCube;if(b.depthTexture){if(f)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&& -b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);l(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_ATTACHMENT,a.TEXTURE_2D,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.TEXTURE_2D,e,0);else throw Error("Unknown depthTexture format"); -}else if(f)for(e.__webglDepthbuffer=[],f=0;6>f;f++)a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer[f]),e.__webglDepthbuffer[f]=a.createRenderbuffer(),w(e.__webglDepthbuffer[f],b);else a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),w(e.__webglDepthbuffer,b);a.bindFramebuffer(a.FRAMEBUFFER,null)}};this.updateRenderTargetMipmap=function(b){var e=b.texture,f=k(b);if(m(e,f)){f=b.isWebGLRenderTargetCube?a.TEXTURE_CUBE_MAP:a.TEXTURE_2D;var g=d.get(e).__webglTexture; -c.bindTexture(f,g);q(f,e,b.width,b.height);c.bindTexture(f,null)}}}function $e(a,b,c){return{convert:function(d){if(1E3===d)return a.REPEAT;if(1001===d)return a.CLAMP_TO_EDGE;if(1002===d)return a.MIRRORED_REPEAT;if(1003===d)return a.NEAREST;if(1004===d)return a.NEAREST_MIPMAP_NEAREST;if(1005===d)return a.NEAREST_MIPMAP_LINEAR;if(1006===d)return a.LINEAR;if(1007===d)return a.LINEAR_MIPMAP_NEAREST;if(1008===d)return a.LINEAR_MIPMAP_LINEAR;if(1009===d)return a.UNSIGNED_BYTE;if(1017===d)return a.UNSIGNED_SHORT_4_4_4_4; -if(1018===d)return a.UNSIGNED_SHORT_5_5_5_1;if(1019===d)return a.UNSIGNED_SHORT_5_6_5;if(1010===d)return a.BYTE;if(1011===d)return a.SHORT;if(1012===d)return a.UNSIGNED_SHORT;if(1013===d)return a.INT;if(1014===d)return a.UNSIGNED_INT;if(1015===d)return a.FLOAT;if(1016===d){if(c.isWebGL2)return a.HALF_FLOAT;var e=b.get("OES_texture_half_float");if(null!==e)return e.HALF_FLOAT_OES}if(1021===d)return a.ALPHA;if(1022===d)return a.RGB;if(1023===d)return a.RGBA;if(1024===d)return a.LUMINANCE;if(1025=== -d)return a.LUMINANCE_ALPHA;if(1026===d)return a.DEPTH_COMPONENT;if(1027===d)return a.DEPTH_STENCIL;if(100===d)return a.FUNC_ADD;if(101===d)return a.FUNC_SUBTRACT;if(102===d)return a.FUNC_REVERSE_SUBTRACT;if(200===d)return a.ZERO;if(201===d)return a.ONE;if(202===d)return a.SRC_COLOR;if(203===d)return a.ONE_MINUS_SRC_COLOR;if(204===d)return a.SRC_ALPHA;if(205===d)return a.ONE_MINUS_SRC_ALPHA;if(206===d)return a.DST_ALPHA;if(207===d)return a.ONE_MINUS_DST_ALPHA;if(208===d)return a.DST_COLOR;if(209=== -d)return a.ONE_MINUS_DST_COLOR;if(210===d)return a.SRC_ALPHA_SATURATE;if(33776===d||33777===d||33778===d||33779===d)if(e=b.get("WEBGL_compressed_texture_s3tc"),null!==e){if(33776===d)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===d)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===d)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===d)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===d||35841===d||35842===d||35843===d)if(e=b.get("WEBGL_compressed_texture_pvrtc"),null!==e){if(35840===d)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; -if(35841===d)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===d)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===d)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===d&&(e=b.get("WEBGL_compressed_texture_etc1"),null!==e))return e.COMPRESSED_RGB_ETC1_WEBGL;if(37808===d||37809===d||37810===d||37811===d||37812===d||37813===d||37814===d||37815===d||37816===d||37817===d||37818===d||37819===d||37820===d||37821===d)if(e=b.get("WEBGL_compressed_texture_astc"),null!==e)return d;if(103===d||104=== -d){if(c.isWebGL2){if(103===d)return a.MIN;if(104===d)return a.MAX}e=b.get("EXT_blend_minmax");if(null!==e){if(103===d)return e.MIN_EXT;if(104===d)return e.MAX_EXT}}if(1020===d){if(c.isWebGL2)return a.UNSIGNED_INT_24_8;e=b.get("WEBGL_depth_texture");if(null!==e)return e.UNSIGNED_INT_24_8_WEBGL}return 0}}}function Kb(){D.call(this);this.type="Group"}function Z(a,b,c,d){Na.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3; -this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function yc(a){Z.call(this);this.cameras=a||[]}function af(a){function b(){return null!==e&&!0===e.isPresenting}function c(){if(b()){var c=e.getEyeParameters("left"),f=c.renderWidth;c=c.renderHeight;x=a.getPixelRatio();y=a.getSize();a.setDrawingBufferSize(2*f,c,1);B.start()}else d.enabled&&(a.setDrawingBufferSize(y.width,y.height,x),B.stop())}var d=this,e=null,f=null,g=null,h= -[],k=new I,m=new I;"undefined"!==typeof window&&"VRFrameData"in window&&(f=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var q=new I,n=new fa,t=new p,u=new Z;u.bounds=new V(0,0,.5,1);u.layers.enable(1);var r=new Z;r.bounds=new V(.5,0,.5,1);r.layers.enable(2);var l=new yc([u,r]);l.layers.enable(1);l.layers.enable(2);var y,x,w=[];this.enabled=!1;this.userHeight=1.6;this.getController=function(a){var b=h[a];void 0===b&&(b=new Kb,b.matrixAutoUpdate=!1,b.visible=!1,h[a]= -b);return b};this.getDevice=function(){return e};this.setDevice=function(a){void 0!==a&&(e=a);B.setContext(a)};this.setPoseTarget=function(a){void 0!==a&&(g=a)};this.getCamera=function(a){if(null===e)return a.position.set(0,d.userHeight,0),a;e.depthNear=a.near;e.depthFar=a.far;e.getFrameData(f);var b=e.stageParameters;b?k.fromArray(b.sittingToStandingTransform):k.makeTranslation(0,d.userHeight,0);b=f.pose;var c=null!==g?g:a;c.matrix.copy(k);c.matrix.decompose(c.position,c.quaternion,c.scale);null!== -b.orientation&&(n.fromArray(b.orientation),c.quaternion.multiply(n));null!==b.position&&(n.setFromRotationMatrix(k),t.fromArray(b.position),t.applyQuaternion(n),c.position.add(t));c.updateMatrixWorld();if(!1===e.isPresenting)return a;u.near=a.near;r.near=a.near;u.far=a.far;r.far=a.far;l.matrixWorld.copy(a.matrixWorld);l.matrixWorldInverse.copy(a.matrixWorldInverse);u.matrixWorldInverse.fromArray(f.leftViewMatrix);r.matrixWorldInverse.fromArray(f.rightViewMatrix);m.getInverse(k);u.matrixWorldInverse.multiply(m); -r.matrixWorldInverse.multiply(m);a=c.parent;null!==a&&(q.getInverse(a.matrixWorld),u.matrixWorldInverse.multiply(q),r.matrixWorldInverse.multiply(q));u.matrixWorld.getInverse(u.matrixWorldInverse);r.matrixWorld.getInverse(r.matrixWorldInverse);u.projectionMatrix.fromArray(f.leftProjectionMatrix);r.projectionMatrix.fromArray(f.rightProjectionMatrix);l.projectionMatrix.copy(u.projectionMatrix);a=e.getLayers();a.length&&(a=a[0],null!==a.leftBounds&&4===a.leftBounds.length&&u.bounds.fromArray(a.leftBounds), -null!==a.rightBounds&&4===a.rightBounds.length&&r.bounds.fromArray(a.rightBounds));a:for(a=0;af.normalMatrix.determinant();ba.setMaterial(e,h);var k=t(a,c,e,f),m=!1;if(b!==d.id||S!==k.id||nd!==(!0===e.wireframe))b=d.id,S=k.id,nd=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(va.update(f,d,e,k),m=!0);h=d.index;var q=d.attributes.position;c=1;!0===e.wireframe&& -(h=ra.getWireframeAttribute(d),c=2);a=xa;if(null!==h){var n=pa.get(h);a=ya;a.setIndex(n)}if(m){if(d&&d.isInstancedBufferGeometry&!ua.isWebGL2&&null===ha.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{ba.initAttributes();m=d.attributes;k=k.getAttributes();var u=e.defaultAttributeValues;for(N in k){var l=k[N];if(0<=l){var r=m[N];if(void 0!==r){var v=r.normalized, -p=r.itemSize,w=pa.get(r);if(void 0!==w){var y=w.buffer,E=w.type;w=w.bytesPerElement;if(r.isInterleavedBufferAttribute){var x=r.data,B=x.stride;r=r.offset;x&&x.isInstancedInterleavedBuffer?(ba.enableAttributeAndDivisor(l,x.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=x.meshPerAttribute*x.count)):ba.enableAttribute(l);F.bindBuffer(F.ARRAY_BUFFER,y);F.vertexAttribPointer(l,p,E,v,B*w,r*w)}else r.isInstancedBufferAttribute?(ba.enableAttributeAndDivisor(l,r.meshPerAttribute),void 0=== -d.maxInstancedCount&&(d.maxInstancedCount=r.meshPerAttribute*r.count)):ba.enableAttribute(l),F.bindBuffer(F.ARRAY_BUFFER,y),F.vertexAttribPointer(l,p,E,v,0,0)}}else if(void 0!==u&&(v=u[N],void 0!==v))switch(v.length){case 2:F.vertexAttrib2fv(l,v);break;case 3:F.vertexAttrib3fv(l,v);break;case 4:F.vertexAttrib4fv(l,v);break;default:F.vertexAttrib1fv(l,v)}}}ba.disableUnusedAttributes()}null!==h&&F.bindBuffer(F.ELEMENT_ARRAY_BUFFER,n.buffer)}n=Infinity;null!==h?n=h.count:void 0!==q&&(n=q.count);h=d.drawRange.start* -c;q=null!==g?g.start*c:0;var N=Math.max(h,q);g=Math.max(0,Math.min(n,h+d.drawRange.count*c,q+(null!==g?g.count*c:Infinity))-1-N+1);if(0!==g){if(f.isMesh)if(!0===e.wireframe)ba.setLineWidth(e.wireframeLinewidth*(null===R?U:1)),a.setMode(F.LINES);else switch(f.drawMode){case 0:a.setMode(F.TRIANGLES);break;case 1:a.setMode(F.TRIANGLE_STRIP);break;case 2:a.setMode(F.TRIANGLE_FAN)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),ba.setLineWidth(e*(null===R?U:1)),f.isLineSegments?a.setMode(F.LINES):f.isLineLoop? -a.setMode(F.LINE_LOOP):a.setMode(F.LINE_STRIP)):f.isPoints?a.setMode(F.POINTS):f.isSprite&&a.setMode(F.TRIANGLES);d&&d.isInstancedBufferGeometry?0=ua.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+a+" texture units while this GPU supports only "+ua.maxTextures);X+=1;return a}; -this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);ia.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),a=!0);ia.setTexture2D(b,c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&& -b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?ia.setTextureCube(b,c):ia.setTextureCubeDynamic(b,c)}}();this.setFramebuffer=function(a){L=a};this.getRenderTarget=function(){return R};this.setRenderTarget=function(a){(R=a)&&void 0===Ba.get(a).__webglFramebuffer&&ia.setupRenderTarget(a);var b=L,c=!1;a?(b= -Ba.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),T.copy(a.viewport),wc.copy(a.scissor),ea=a.scissorTest):(T.copy(od).multiplyScalar(U),wc.copy(fa).multiplyScalar(U),ea=qa);Q!==b&&(F.bindFramebuffer(F.FRAMEBUFFER,b),Q=b);ba.viewport(T);ba.scissor(wc);ba.setScissorTest(ea);c&&(c=Ba.get(a.texture),F.framebufferTexture2D(F.FRAMEBUFFER,F.COLOR_ATTACHMENT0,F.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels= -function(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var g=Ba.get(a).__webglFramebuffer;if(g){var h=!1;g!==Q&&(F.bindFramebuffer(F.FRAMEBUFFER,g),h=!0);try{var k=a.texture,m=k.format,q=k.type;1023!==m&&da.convert(m)!==F.getParameter(F.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===q||da.convert(q)===F.getParameter(F.IMPLEMENTATION_COLOR_READ_TYPE)||1015===q&&(ua.isWebGL2||ha.get("OES_texture_float")|| -ha.get("WEBGL_color_buffer_float"))||1016===q&&(ua.isWebGL2?ha.get("EXT_color_buffer_float"):ha.get("EXT_color_buffer_half_float"))?F.checkFramebufferStatus(F.FRAMEBUFFER)===F.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&F.readPixels(b,c,d,e,da.convert(m),da.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&& -F.bindFramebuffer(F.FRAMEBUFFER,Q)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,e=b.image.height,f=da.convert(b.format);this.setTexture2D(b,0);F.copyTexImage2D(F.TEXTURE_2D,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=da.convert(c.format),h=da.convert(c.type);this.setTexture2D(c,0);b.isDataTexture?F.texSubImage2D(F.TEXTURE_2D, -d||0,a.x,a.y,e,f,g,h,b.image.data):F.texSubImage2D(F.TEXTURE_2D,d||0,a.x,a.y,g,h,b.image)}}function Lb(a,b){this.name="";this.color=new G(a);this.density=void 0!==b?b:2.5E-4}function Mb(a,b,c){this.name="";this.color=new G(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function qd(){D.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ob(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange= -{offset:0,count:-1};this.version=0}function zc(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function cb(a){J.call(this);this.type="SpriteMaterial";this.color=new G(16777215);this.map=null;this.rotation=0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Ac(a){D.call(this);this.type="Sprite";if(void 0===Nb){Nb=new C;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new ob(b,5);Nb.setIndex([0,1,2,0,2,3]);Nb.addAttribute("position", -new zc(b,3,0,!1));Nb.addAttribute("uv",new zc(b,2,3,!1))}this.geometry=Nb;this.material=void 0!==a?a:new cb;this.center=new z(.5,.5)}function Bc(){D.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Cc(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."), -this.boneInverses=[],a=0,b=this.bones.length;ac;c++){var n=q[h[c]];var t=q[h[(c+1)%3]];f[0]=Math.min(n,t);f[1]=Math.max(n,t);n=f[0]+","+f[1];void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]})}}for(n in g)m=g[n],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new p,null!==a.index){k=a.attributes.position;q=a.index;var u=a.groups;0===u.length&&(u=[{start:0, -count:q.count,materialIndex:0}]);a=0;for(e=u.length;ac;c++)n=q.getX(m+c),t=q.getX(m+(c+1)%3),f[0]=Math.min(n,t),f[1]=Math.max(n,t),n=f[0]+","+f[1],void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]});for(n in g)m=g[n],h.fromBufferAttribute(k,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,m.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position,m=0,d=k.count/3;mc;c++)g=3*m+c,h.fromBufferAttribute(k,g),b.push(h.x, -h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z);this.addAttribute("position",new A(b,3))}function Fc(a,b,c){R.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Rb(a,b,c));this.mergeVertices()}function Rb(a,b,c){C.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new p,k=new p,m=new p,q=new p,n=new p,t,u;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter."); -var r=b+1;for(t=0;t<=c;t++){var l=t/c;for(u=0;u<=b;u++){var y=u/b;a(y,l,k);e.push(k.x,k.y,k.z);0<=y-1E-5?(a(y-1E-5,l,m),q.subVectors(k,m)):(a(y+1E-5,l,m),q.subVectors(m,k));0<=l-1E-5?(a(y,l-1E-5,m),n.subVectors(k,m)):(a(y,l+1E-5,m),n.subVectors(m,k));h.crossVectors(q,n).normalize();f.push(h.x,h.y,h.z);g.push(y,l)}}for(t=0;td&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}C.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a, -indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new p,d=new p,g=new p,h=0;he&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new A(h,3));this.addAttribute("normal",new A(h.slice(),3));this.addAttribute("uv",new A(k,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Hc(a, -b){R.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Sb(a,b));this.mergeVertices()}function Sb(a,b){na.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ic(a,b){R.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new pb(a,b));this.mergeVertices()}function pb(a,b){na.call(this,[1,0,0, --1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Jc(a,b){R.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Tb(a,b));this.mergeVertices()}function Tb(a,b){var c=(1+Math.sqrt(5))/2;na.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5, -11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Kc(a,b){R.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Ub(a,b));this.mergeVertices()}function Ub(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;na.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c, -0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Lc(a,b,c,d,e,f){R.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d, -closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Vb(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Vb(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(t=0;t<=d;t++){var m=t/d*Math.PI*2,n=Math.sin(m);m=-Math.cos(m);k.x=m*f.x+n*e.x;k.y=m*f.y+n*e.y;k.z=m*f.z+n*e.z;k.normalize();r.push(k.x,k.y,k.z);h.x=q.x+c*k.x;h.y=q.y+c*k.y;h.z= -q.z+c*k.z;l.push(h.x,h.y,h.z)}}C.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new p,k=new p,m=new z,q=new p,n,t,l=[],r=[],v=[],y=[];for(n=0;n=b;e-=d)f=cf(e,a[e],a[e+1],f);f&&qb(f,f.next)&&(Oc(f),f=f.next);return f}function Pc(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!qb(a,a.next)&&0!==ma(a.prev,a,a.next))a=a.next;else{Oc(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b} -function Qc(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,k=h;do null===k.z&&(k.z=ae(k.x,k.y,d,e,f)),k.prevZ=k.prev,k=k.nextZ=k.next;while(k!==h);k.prevZ.nextZ=null;k.prevZ=null;h=k;var m,q,n,t,l=1;do{k=h;var r=h=null;for(q=0;k;){q++;var v=k;for(m=n=0;mn.x?q.x>l.x?q.x:l.x:n.x>l.x?n.x:l.x,B=q.y>n.y?q.y>l.y?q.y:l.y:n.y>l.y?n.y:l.y;m=ae(q.x=m;){if(p!==r.prev&&p!==r.next&&ud(q.x,q.y,n.x,n.y,l.x,l.y,p.x,p.y)&&0<=ma(p.prev,p,p.next)){r=!1;break a}p= -p.prevZ}r=!0}}else a:if(r=a,q=r.prev,n=r,l=r.next,0<=ma(q,n,l))r=!1;else{for(m=r.next.next;m!==r.prev;){if(ud(q.x,q.y,n.x,n.y,l.x,l.y,m.x,m.y)&&0<=ma(m.prev,m,m.next)){r=!1;break a}m=m.next}r=!0}if(r)b.push(k.i/c),b.push(a.i/c),b.push(v.i/c),Oc(a),h=a=v.next;else if(a=v,a===h){if(!g)Qc(Pc(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;k=a;do v=k.prev,r=k.next.next,!qb(v,r)&&df(v,k,k.next,r)&&Rc(v,r)&&Rc(r,v)&&(g.push(v.i/h),g.push(k.i/h),g.push(r.i/h),Oc(k),Oc(k.next),k=a=r),k=k.next;while(k!==a);a=k;Qc(a, -b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(k=g.i!==h.i){k=g;v=h;if(r=k.next.i!==v.i&&k.prev.i!==v.i){b:{r=k;do{if(r.i!==k.i&&r.next.i!==k.i&&r.i!==v.i&&r.next.i!==v.i&&df(r,r.next,k,v)){r=!0;break b}r=r.next}while(r!==k);r=!1}r=!r}if(r=r&&Rc(k,v)&&Rc(v,k)){r=k;q=!1;n=(k.x+v.x)/2;v=(k.y+v.y)/2;do r.y>v!==r.next.y>v&&r.next.y!==r.y&&n<(r.next.x-r.x)*(v-r.y)/(r.next.y-r.y)+r.x&&(q=!q),r=r.next;while(r!==k);r=q}k=r}if(k){a=ef(g,h);g=Pc(g,g.next);a=Pc(a,a.next);Qc(g,b,c,d,e, -f);Qc(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Ng(a,b){return a.x-b.x}function Og(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x=c.x&&c.x>=g&&d!==c.x&&ud(eh.x)&&Rc(c,a)&&(h=c,m=q)}c=c.next}return h}function ae(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Pg(a){var b=a,c=a;do b.xma(a.prev,a,a.next)?0<=ma(a,b,a.next)&&0<=ma(a,a.prev,b):0>ma(a,b,a.prev)||0>ma(a,a.next,b)}function ef(a,b){var c=new be(a.i,a.x,a.y),d=new be(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev= -c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function cf(a,b,c,d){a=new be(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);return a}function Oc(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function be(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function ff(a){var b=a.length;2Number.EPSILON){var k=Math.sqrt(h),m=Math.sqrt(f*f+g*g);h=b.x-e/k;b=b.y+d/k; -g=((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new z(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new z(f/e,d/e)}function h(a,b){for(M=a.length;0<=--M;){var c=M;var f=M-1;0>f&&(f=a.length-1);var g,h=w+2*O;for(g=0;gq;q++){var n=m[f[q]];var l=m[f[(q+1)%3]];d[0]=Math.min(n,l);d[1]=Math.max(n,l);n=d[0]+","+d[1];void 0===e[n]?e[n]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[n].face2=h}for(n in e)if(d=e[n],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2], -c.push(f.x,f.y,f.z);this.addAttribute("position",new A(c,3))}function vb(a,b,c,d,e,f,g,h){R.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new Wa(a,b,c,d,e,f,g,h));this.mergeVertices()}function Wa(a,b,c,d,e,f,g,h){function k(c){var e,f=new z,k=new p,t=0,v=!0===c?a:b,w=!0===c?1:-1;var A=r;for(e=1;e<=d;e++)n.push(0,y*w,0),l.push(0,w,0),u.push(.5,.5),r++;var C= -r;for(e=0;e<=d;e++){var D=e/d*h+g,H=Math.cos(D);D=Math.sin(D);k.x=v*D;k.y=y*w;k.z=v*H;n.push(k.x,k.y,k.z);l.push(0,w,0);f.x=.5*H+.5;f.y=.5*D*w+.5;u.push(f.x,f.y);r++}for(e=0;ethis.duration&&this.resetDuration()}function Rg(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return ec;case "vector":case "vector2":case "vector3":case "vector4":return fc; -case "color":return Hd;case "quaternion":return cd;case "bool":case "boolean":return Gd;case "string":return Jd}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Sg(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Rg(a.type);if(void 0===a.times){var c=[],d=[];ia.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function Kd(a){this.manager=void 0!== -a?a:ka;this.textures={}}function ge(a){this.manager=void 0!==a?a:ka}function gc(){}function he(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),a=void 0);this.manager=void 0!==a?a:ka;this.withCredentials=!1}function mf(a){this.manager=void 0!==a?a:ka;this.texturePath=""}function ie(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."); -this.manager=void 0!==a?a:ka;this.options=void 0}function je(){this.type="ShapePath";this.color=new G;this.subPaths=[];this.currentPath=null}function ke(a){this.type="Font";this.data=a}function nf(a){this.manager=void 0!==a?a:ka}function le(a){this.manager=void 0!==a?a:ka}function of(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Z;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Z;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate= -!1}function dd(a,b,c){D.call(this);this.type="CubeCamera";var d=new Z(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new Z(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);var f=new Z(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new Z(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new Z(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var k=new Z(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new p(0,0,-1));this.add(k); -this.renderTarget=new Gb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,m=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=m;c.activeCubeFace=5;a.render(b, -k,c);a.setRenderTarget(null)};this.clear=function(a,b,c,d){for(var e=this.renderTarget,f=0;6>f;f++)e.activeCubeFace=f,a.setRenderTarget(e),a.clear(b,c,d);a.setRenderTarget(null)}}function me(){D.call(this);this.type="AudioListener";this.context=ne.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function hc(a){D.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay= -!1;this.buffer=null;this.loop=!1;this.offset=this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function oe(a){hc.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function pe(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function qe(a,b,c){this.binding=a;this.valueSize= -c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function pf(a,b,c){c=c||pa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function pa(a,b,c){this.path=b;this.parsedPath=c||pa.parseTrackName(b);this.node=pa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function qf(){this.uuid= -H.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function rf(a,b,c){this._mixer=a;this._clip=b;this._localRoot= -c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity; -this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function re(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Ld(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function se(){C.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function te(a,b,c){ob.call(this,a,b);this.meshPerAttribute=c||1}function ue(a,b,c){Q.call(this, -a,b);this.meshPerAttribute=c||1}function sf(a,b,c,d){this.ray=new mb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function tf(a,b){return a.distance-b.distance}function ve(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;dc;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new A(b,3));b=new Y({fog:!1});this.cone=new W(a,b);this.add(this.cone);this.update()}function xf(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;ca?-1:0b;b++)a[b]=(16>b?"0":"")+b.toString(16);return function(){var b=4294967295*Math.random()|0,d=4294967295*Math.random()|0,e=4294967295*Math.random()|0,f=4294967295*Math.random()|0;return(a[b&255]+a[b>>8&255]+a[b>>16&255]+a[b>>24&255]+"-"+a[d&255]+a[d>>8&255]+"-"+a[d>> -16&15|64]+a[d>>24&255]+"-"+a[e&63|128]+a[e>>8&255]+"-"+a[e>>16&255]+a[e>>24&255]+a[f&255]+a[f>>8&255]+a[f>>16&255]+a[f>>24&255]).toUpperCase()}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1; -a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*H.DEG2RAD},radToDeg:function(a){return a*H.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/ -Math.LN2))}};Object.defineProperties(z.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(z.prototype,{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+ -a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this}, -addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*= -a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var b=this.x,c=this.y;a=a.elements;this.x=a[0]*b+a[3]*c+a[6];this.y=a[1]*b+a[4]*c+a[7];return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a, -b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new z,b=new z;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x= -Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+ -Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+= -(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b); -return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});Object.assign(I.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,k,m,q,n,l,u,r,p){var t=this.elements;t[0]=a;t[4]=b;t[8]=c;t[12]=d;t[1]=e;t[5]=f;t[9]=g;t[13]=h;t[2]=k;t[6]=m;t[10]=q;t[14]=n;t[3]=l;t[7]=u;t[11]=r;t[15]=p;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new I).fromArray(this.elements)}, -copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x, -b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var a=new p;return function(b){var c=this.elements,d=b.elements,e=1/a.setFromMatrixColumn(b,0).length(),f=1/a.setFromMatrixColumn(b,1).length();b=1/a.setFromMatrixColumn(b,2).length();c[0]=d[0]*e;c[1]=d[1]*e;c[2]=d[2]*e;c[3]=0;c[4]=d[4]*f;c[5]=d[5]*f;c[6]=d[6]*f;c[7]=0;c[8]=d[8]*b;c[9]=d[9]*b;c[10]=d[10]*b;c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return this}}(),makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order."); -var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=Math.sin(e);if("XYZ"===a.order){a=f*h;var k=f*e,m=c*h,q=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=k+m*d;b[5]=a-q*d;b[9]=-c*g;b[2]=q-a*d;b[6]=m+k*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,k=g*e,m=d*h,q=d*e,b[0]=a+q*c,b[4]=m*c-k,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=k*c-m,b[6]=q+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,k=g*e,m=d*h,q=d*e,b[0]=a-q*c,b[4]=-f*e,b[8]=m+k*c,b[1]=k+m*c,b[5]=f*h,b[9]= -q-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,k=f*e,m=c*h,q=c*e,b[0]=g*h,b[4]=m*d-k,b[8]=a*d+q,b[1]=g*e,b[5]=q*d+a,b[9]=k*d-m,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,k=f*d,m=c*g,q=c*d,b[0]=g*h,b[4]=q-a*e,b[8]=m*e+k,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=k*e+m,b[10]=a-q*e):"XZY"===a.order&&(a=f*g,k=f*d,m=c*g,q=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+q,b[5]=f*h,b[9]=k*e-m,b[2]=m*e-k,b[6]=c*h,b[10]=q*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(){var a= -new p(0,0,0),b=new p(1,1,1);return function(c){return this.compose(a,c,b)}}(),lookAt:function(){var a=new p,b=new p,c=new p;return function(d,e,f){var g=this.elements;c.subVectors(d,e);0===c.lengthSq()&&(c.z=1);c.normalize();a.crossVectors(f,c);0===a.lengthSq()&&(1===Math.abs(f.z)?c.x+=1E-4:c.z+=1E-4,c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,a);g[0]=a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!== -b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],k=c[5],m=c[9],q=c[13],n=c[2],l=c[6],u=c[10],r=c[14],p=c[3],y=c[7],x=c[11];c=c[15];var w=d[0],B=d[4],E=d[8],P=d[12],N=d[1],z=d[5],A=d[9],D=d[13],C=d[2], -H=d[6],G=d[10],K=d[14],L=d[3],I=d[7],J=d[11];d=d[15];b[0]=a*w+e*N+f*C+g*L;b[4]=a*B+e*z+f*H+g*I;b[8]=a*E+e*A+f*G+g*J;b[12]=a*P+e*D+f*K+g*d;b[1]=h*w+k*N+m*C+q*L;b[5]=h*B+k*z+m*H+q*I;b[9]=h*E+k*A+m*G+q*J;b[13]=h*P+k*D+m*K+q*d;b[2]=n*w+l*N+u*C+r*L;b[6]=n*B+l*z+u*H+r*I;b[10]=n*E+l*A+u*G+r*J;b[14]=n*P+l*D+u*K+r*d;b[3]=p*w+y*N+x*C+c*L;b[7]=p*B+y*z+x*H+c*I;b[11]=p*E+y*A+x*G+c*J;b[15]=p*P+y*D+x*K+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*= -a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;cthis.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.copy(this);c=1/g;f=1/h;var m=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=m;b.elements[9]*=m;b.elements[10]*=m;d.setFromRotationMatrix(b); -e.x=g;e.y=h;e.z=k;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),k=1/(c-d),m=1/(f-e);g[0]= -2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*k;g[9]=0;g[13]=-((c+d)*k);g[2]=0;g[6]=0;g[10]=-2*m;g[14]=-((f+e)*m);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4]; -a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});Object.assign(fa,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var h=c[d+0],k=c[d+1],m=c[d+2];c=c[d+3];d=e[f+0];var q=e[f+1],l=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==q||m!==l){f=1-g;var t=h*d+k*q+m*l+c*e,u=0<=t?1:-1,r=1-t*t;r>Number.EPSILON&&(r=Math.sqrt(r),t=Math.atan2(r,t*u),f=Math.sin(f*t)/r,g=Math.sin(g* -t)/r);u*=g;h=h*f+d*u;k=k*f+q*u;m=m*f+l*u;c=c*f+e*u;f===1-g&&(g=1/Math.sqrt(h*h+k*k+m*m+c*c),h*=g,k*=g,m*=g,c*=g)}a[b]=h;a[b+1]=k;a[b+2]=m;a[b+3]=c}});Object.defineProperties(fa.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w= -a;this.onChangeCallback()}}});Object.assign(fa.prototype,{set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c= -a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),k=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);"XYZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"YXZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"ZXY"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"ZYX"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"YZX"===a?(this._x=c*k*f+ -h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f-c*d*e):"XZY"===a&&(this._x=c*k*f-h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6];b=b[10];var m=c+f+b;0f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0, -Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;return this.normalize()}}(),angleTo:function(a){return 2*Math.acos(Math.abs(H.clamp(this.dot(a),-1,1)))},rotateTowards:function(a,b){var c=this.angleTo(a);if(0===c)return this;this.slerp(a,Math.min(1,b/c));return this},inverse:function(){return this.conjugate()},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},dot:function(a){return this._x* -a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."), -this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this.onChangeCallback();return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z; -0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;a=1-g*g;if(a<=Number.EPSILON)return g=1-b,this._w=g*f+b*this._w,this._x=g*c+b*this._x,this._y=g*d+b*this._y,this._z=g*e+b*this._z,this.normalize();a=Math.sqrt(a);var h=Math.atan2(a,g);g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this.onChangeCallback();return this},equals:function(a){return a._x=== -this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a,b){void 0===b&&(b=0);this._x=a[b];this._y=a[b+1];this._z=a[b+2];this._w=a[b+3];this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._w;return a},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(p.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this}, -setScalar:function(a){this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x, -this.y,this.z)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+= -a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."), -this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a=new fa;return function(b){b&&b.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var a=new fa;return function(b, -c){return this.applyQuaternion(a.setFromAxisAngle(b,c))}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x, -c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,m=a*d+e*c-f*b;b=-e*b-f*c-g*d;this.x=h*a+b*-e+k*-g-m*-f;this.y=k*a+b*-f+m*-e-h*-g;this.z=m*a+b*-g+h*-f-k*-e;return this},project:function(){var a=new I;return function(b){a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyMatrix4(a)}}(),unproject:function(){var a=new I;return function(b){a.multiplyMatrices(b.matrixWorld,a.getInverse(b.projectionMatrix));return this.applyMatrix4(a)}}(),transformDirection:function(a){var b= -this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);return this},clamp:function(a, -b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(){var a=new p,b=new p;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x= -Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y* -a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},lerpVectors:function(a, -b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b)):this.crossVectors(this,a)},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var a= -new p;return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a=new p;return function(b){return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(H.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x- -a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){var b=Math.sin(a.phi)*a.radius;this.x=b*Math.sin(a.theta);this.y=Math.cos(a.phi)*a.radius;this.z=b*Math.cos(a.theta);return this},setFromCylindrical:function(a){this.x=a.radius*Math.sin(a.theta);this.y=a.y;this.z=a.radius*Math.cos(a.theta);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(), -c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!== -c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});Object.assign(ra.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,k){var m=this.elements;m[0]=a;m[1]=d;m[2]=g;m[3]=b;m[4]=e;m[5]=h;m[6]=c;m[7]=f;m[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements; -b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;cc;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1]; -a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a}});var eb={getDataURL:function(a){if(a instanceof HTMLCanvasElement)var b=a;else{"undefined"!==typeof OffscreenCanvas?b=new OffscreenCanvas(a.width,a.height):(b=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),b.width=a.width,b.height=a.height);var c=b.getContext("2d");a instanceof ImageData?c.putImageData(a,0,0):c.drawImage(a,0,0,a.width,a.height)}return 2048a.x||1a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y)}}});Object.defineProperty(T.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(V.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y= -b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y; -case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+= -a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-= -a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/ -a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var k=a[6];var m=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-k)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+k)&&.1>Math.abs(b+f+m-3))return this.set(1,0,0,0),this;a=Math.PI; -b=(b+1)/2;f=(f+1)/2;m=(m+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+k)/4;b>f&&b>m?.01>b?(k=0,c=h=.707106781):(k=Math.sqrt(b),h=c/k,c=d/k):f>m?.01>f?(k=.707106781,h=0,c=.707106781):(h=Math.sqrt(f),k=c/h,c=g/h):.01>m?(h=k=.707106781,c=0):(c=Math.sqrt(m),k=d/c,h=g/c);this.set(k,h,c,a);return this}a=Math.sqrt((k-g)*(k-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(k-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;this.w=Math.acos((b+f+m-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y, -a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new V,b=new V);a.set(c, -c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y); -this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x* -this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a, -b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."); -this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});fb.prototype=Object.assign(Object.create(ya.prototype),{constructor:fb,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone(); -this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Gb.prototype=Object.create(fb.prototype);Gb.prototype.constructor=Gb;Gb.prototype.isWebGLRenderTargetCube=!0;gb.prototype=Object.create(T.prototype);gb.prototype.constructor=gb;gb.prototype.isDataTexture=!0;Object.assign(Sa.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b= -Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,k=a.length;he&&(e=m);q>f&&(f=q);l>g&&(g=l)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,k=a.count;he&&(e=m);l>f&&(f=l);n>g&&(g=n)}this.min.set(b,c,d); -this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;bthis.max.x||a.ythis.max.y||a.zthis.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&& -a.max.z<=this.max.z},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box3: .getParameter() target is now required"),b=new p);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z?!1:!0},intersectsSphere:function(){var a=new p;return function(b){this.clampPoint(b.center, -a);return a.distanceToSquared(b.center)<=b.radius*b.radius}}(),intersectsPlane:function(a){if(0=a.constant},intersectsTriangle:function(){function a(a){var e; -var f=0;for(e=a.length-3;f<=e;f+=3){h.fromArray(a,f);var g=m.x*Math.abs(h.x)+m.y*Math.abs(h.y)+m.z*Math.abs(h.z),k=b.dot(h),l=c.dot(h),q=d.dot(h);if(Math.max(-Math.max(k,l,q),Math.min(k,l,q))>g)return!1}return!0}var b=new p,c=new p,d=new p,e=new p,f=new p,g=new p,h=new p,k=new p,m=new p,l=new p;return function(h){if(this.isEmpty())return!1;this.getCenter(k);m.subVectors(this.max,k);b.subVectors(h.a,k);c.subVectors(h.b,k);d.subVectors(h.c,k);e.subVectors(c,b);f.subVectors(d,c);g.subVectors(b,d);h= -[0,-e.z,e.y,0,-f.z,f.y,0,-g.z,g.y,e.z,0,-e.x,f.z,0,-f.x,g.z,0,-g.x,-e.y,e.x,0,-f.y,f.x,0,-g.y,g.x,0];if(!a(h))return!1;h=[1,0,0,0,1,0,0,0,1];if(!a(h))return!1;l.crossVectors(e,f);h=[l.x,l.y,l.z];return a(h)}}(),clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),b=new p);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new p;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var a= -new p;return function(b){void 0===b&&(console.warn("THREE.Box3: .getBoundingSphere() target is now required"),b=new Da);this.getCenter(b.center);b.radius=.5*this.getSize(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(a){if(this.isEmpty())return this;a=a.elements;var b=a[0]*this.min.x,c=a[1]*this.min.x,d=a[2]*this.min.x,e= -a[0]*this.max.x,f=a[1]*this.max.x,g=a[2]*this.max.x,h=a[4]*this.min.y,k=a[5]*this.min.y,m=a[6]*this.min.y,l=a[4]*this.max.y,n=a[5]*this.max.y,t=a[6]*this.max.y,u=a[8]*this.min.z,r=a[9]*this.min.z,p=a[10]*this.min.z,y=a[8]*this.max.z,x=a[9]*this.max.z,w=a[10]*this.max.z;this.min.x=Math.min(b,e)+Math.min(h,l)+Math.min(u,y)+a[12];this.min.y=Math.min(c,f)+Math.min(k,n)+Math.min(r,x)+a[13];this.min.z=Math.min(d,g)+Math.min(m,t)+Math.min(p,w)+a[14];this.max.x=Math.max(b,e)+Math.max(h,l)+Math.max(u,y)+a[12]; -this.max.y=Math.max(c,f)+Math.max(k,n)+Math.max(r,x)+a[13];this.max.z=Math.max(d,g)+Math.max(m,t)+Math.max(p,w)+a[14];return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Da.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Sa;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e= -c=0,f=b.length;e=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius; -return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);void 0===b&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),b=new p);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){void 0=== -a&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),a=new Sa);a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius}});Object.assign(Ma.prototype,{set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a, -b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new p,b=new p;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a= -1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){void 0===b&&(console.warn("THREE.Plane: .projectPoint() target is now required"),b=new p);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var a= -new p;return function(b,c){void 0===c&&(console.warn("THREE.Plane: .intersectLine() target is now required"),c=new p);var d=b.delta(a),e=this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(b.start))return c.copy(b.start)}else if(e=-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1b&&0a&&0c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4], -h=c[5],k=c[6],m=c[7],l=c[8],n=c[9],t=c[10],p=c[11],r=c[12],v=c[13],y=c[14];c=c[15];b[0].setComponents(f-a,m-g,p-l,c-r).normalize();b[1].setComponents(f+a,m+g,p+l,c+r).normalize();b[2].setComponents(f+d,m+h,p+n,c+v).normalize();b[3].setComponents(f-d,m-h,p-n,c-v).normalize();b[4].setComponents(f-e,m-k,p-t,c-y).normalize();b[5].setComponents(f+e,m+k,p+t,c+y).normalize();return this},intersectsObject:function(){var a=new Da;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere(); -a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Da;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)d;d++){var e=c[d]; -a.x=0e.distanceToPoint(a))return!1}return!0}}(),containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var S={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n", -aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif", -begin_vertex:"\nvec3 transformed = vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal = vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tif( decayExponent > 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n", -bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n", -clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif\n", -clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n", -color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n", -cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n", -defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n", -emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:" gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract(Le);\n\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max(vRGB, 0.0), 1.0 );\n}\n", -envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n", -envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n", -envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent ));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n", -envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n", -fog_vertex:"\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n", -gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n", -lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n", -lights_pars_begin:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n", -lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n", -lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n", -lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n", -lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearCoatRadiance = vec3( 0.0 );\n#endif\n", -lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), maxMipLevel );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance += getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), maxMipLevel );\n\t#endif\n#endif\n", -lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n", -logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n", -map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n", -metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif", -morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n", -normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n",normal_fragment_maps:"#ifdef USE_NORMALMAP\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t#ifdef FLIP_SIDED\n\t\t\tnormal = - normal;\n\t\t#endif\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tnormal = normalize( normalMatrix * normal );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n", -normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tuniform mat3 normalMatrix;\n\t#else\n\t\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\t\tvec2 st0 = dFdx( vUv.st );\n\t\t\tvec2 st1 = dFdy( vUv.st );\n\t\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\t\tvec3 N = normalize( surf_norm );\n\t\t\tmat3 tsn = mat3( S, T, N );\n\t\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy *= normalScale;\n\t\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\treturn normalize( tsn * mapN );\n\t\t}\n\t#endif\n#endif\n", -packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n", -premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n", -roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n", -shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n", -shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n", -shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n", -skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n", -skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n", -specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n", -uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n", -uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif", -uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n", -cube_vert:"varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n", -depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n", -distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}\n", -equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include \nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}\n", -linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}\n", -meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}\n", -normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n", -normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n", -points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n}\n",shadow_vert:"#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}\n", -sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}\n", -sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tvec4 mvPosition;\n\tmvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}\n"}, -Aa={merge:function(a){for(var b={},c=0;c>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(){function a(a,c,d){0>d&&(d+=1);1d?c:d<2/3?a+6*(c-a)*(2/3-d):a}return function(b, -c,d){b=H.euclideanModulo(b,1);c=H.clamp(c,0,1);d=H.clamp(d,0,1);0===c?this.r=this.g=this.b=d:(c=.5>=d?d*(1+c):d+c-d*c,d=2*d-c,this.r=a(d,c,b+1/3),this.g=a(d,c,b),this.b=a(d,c,b-1/3));return this}}(),setStyle:function(a){function b(b){void 0!==b&&1>parseFloat(b)&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}var c;if(c=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(a)){var d=c[2];switch(c[1]){case "rgb":case "rgba":if(c=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r= -Math.min(255,parseInt(c[1],10))/255,this.g=Math.min(255,parseInt(c[2],10))/255,this.b=Math.min(255,parseInt(c[3],10))/255,b(c[5]),this;if(c=/^(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(100,parseInt(c[1],10))/100,this.g=Math.min(100,parseInt(c[2],10))/100,this.b=Math.min(100,parseInt(c[3],10))/100,b(c[5]),this;break;case "hsl":case "hsla":if(c=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d)){d=parseFloat(c[1])/ -360;var e=parseInt(c[2],10)/100,f=parseInt(c[3],10)/100;b(c[5]);return this.setHSL(d,e,f)}}}else if(c=/^#([A-Fa-f0-9]+)$/.exec(a)){c=c[1];d=c.length;if(3===d)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===d)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}a&&0a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}return function(b){this.r=a(b.r);this.g=a(b.g);this.b=a(b.b);return this}}(),copyLinearToSRGB:function(){function a(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}return function(b){this.r=a(b.r);this.g=a(b.g);this.b=a(b.b);return this}}(),convertSRGBToLinear:function(){this.copySRGBToLinear(this); -return this},convertLinearToSRGB:function(){this.copyLinearToSRGB(this);return this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(a){void 0===a&&(console.warn("THREE.Color: .getHSL() target is now required"),a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var k=e-f;f=.5>=h?k/(e+f):k/(2-e-f);switch(e){case b:g=(c- -d)/k+(cMath.abs(g)?(this._x=Math.atan2(-m,e),this._z= -Math.atan2(-f,a)):(this._x=Math.atan2(n,k),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(m,-1,1)),.99999>Math.abs(m)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,k)):(this._y=Math.atan2(-l,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(n,-1,1)),.99999>Math.abs(n)?(this._y=Math.atan2(-l,e),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(l,-1,1)),.99999>Math.abs(l)?(this._x=Math.atan2(n,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"=== -b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-m,k),this._y=Math.atan2(-l,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(n,k),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-m,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a=new I;return function(b,c,d){a.makeRotationFromQuaternion(b); -return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new fa;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]); -void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new p(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(Rd.prototype,{set:function(a){this.mask=1<g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e= -this.faceVertexUvs.length;cthis.opacity&&(d.opacity=this.opacity); -!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;0!==this.rotation&&(d.rotation=this.rotation);1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=this.dashSize);void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var a=new p;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var a=new p,b=new p,c=new p;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5); -b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),k=-this.direction.dot(b),m=c.dot(this.direction),l=-c.dot(b),n=c.lengthSq(),t=Math.abs(1-k*k);if(0=-p?e<=p?(h=1/t,d*=h,e*=h,k=d*(d+k*e+2*m)+e*(k*d+e+2*l)+n):(e=h,d=Math.max(0,-(k*e+m)),k=-d*d+e*(e+2*l)+n):(e=-h,d=Math.max(0,-(k*e+m)),k=-d*d+e*(e+2*l)+n):e<=-p?(d=Math.max(0,-(-k*h+m)),e=0b)return null;b=Math.sqrt(b-e);e=d-b;d+=b;return 0>e&&0>d?null:0>e?this.at(d, -c):this.at(e,c)}}(),intersectsSphere:function(a){return this.distanceToPoint(a.center)<=a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a, -b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(da||h>c)return null;if(h>g||g!==g)g=h;if(ac?null:this.at(0<=g?g:c,b)},intersectsBox:function(){var a= -new p;return function(b){return null!==this.intersectBox(b,a)}}(),intersectTriangle:function(){var a=new p,b=new p,c=new p,d=new p;return function(e,f,g,h,k){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);f=this.direction.dot(d);if(0f)h=-1,f=-f;else return null;a.subVectors(this.origin,e);e=h*this.direction.dot(c.crossVectors(a,c));if(0>e)return null;g=h*this.direction.dot(b.cross(a));if(0>g||e+g>f)return null;e=-h*a.dot(d);return 0>e?null:this.at(e/f,k)}}(), -applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});Object.assign(ja,{getNormal:function(){var a=new p;return function(b,c,d,e){void 0===e&&(console.warn("THREE.Triangle: .getNormal() target is now required"),e=new p);e.subVectors(d,c);a.subVectors(b,c);e.cross(a);b=e.lengthSq();return 0=a.x+a.y}}()});Object.assign(ja.prototype, -{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){var a=new p,b=new p;return function(){a.subVectors(this.c,this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),getMidpoint:function(a){void 0=== -a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new p);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return ja.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new p);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return ja.getBarycoord(a,this.a,this.b,this.c,b)},containsPoint:function(a){return ja.containsPoint(a, -this.a,this.b,this.c)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(){var a=new p,b=new p,c=new p,d=new p,e=new p,f=new p;return function(g,h){void 0===h&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),h=new p);var k=this.a,m=this.b,l=this.c;a.subVectors(m,k);b.subVectors(l,k);d.subVectors(g,k);var n=a.dot(d),t=b.dot(d);if(0>=n&&0>=t)return h.copy(k);e.subVectors(g,m);var u=a.dot(e),r=b.dot(e);if(0<=u&&r<=u)return h.copy(m); -var v=n*r-u*t;if(0>=v&&0<=n&&0>=u)return m=n/(n-u),h.copy(k).addScaledVector(a,m);f.subVectors(g,l);g=a.dot(f);var y=b.dot(f);if(0<=y&&g<=y)return h.copy(l);n=g*t-n*y;if(0>=n&&0<=t&&0>=y)return v=t/(t-y),h.copy(k).addScaledVector(b,v);t=u*y-g*r;if(0>=t&&0<=r-u&&0<=g-y)return c.subVectors(l,m),v=(r-u)/(r-u+(g-y)),h.copy(m).addScaledVector(c,v);l=1/(t+n+v);m=n*l;v*=l;return h.copy(k).addScaledVector(a,m).addScaledVector(b,v)}}(),equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}}); -la.prototype=Object.assign(Object.create(D.prototype),{constructor:la,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){D.prototype.copy.call(this,a);this.drawMode=a.drawMode;void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b= -Object.keys(a);if(0c.far?null:{distance:b,point:x.clone(),object:a}}function c(c,d,e,f,m,l,n,q,p){g.fromBufferAttribute(m,n);h.fromBufferAttribute(m,q);k.fromBufferAttribute(m, -p);if(c=b(c,d,e,f,g,h,k,y))l&&(t.fromBufferAttribute(l,n),u.fromBufferAttribute(l,q),r.fromBufferAttribute(l,p),c.uv=a(y,g,h,k,t,u,r)),l=new Ta(n,q,p),ja.getNormal(g,h,k,l.normal),c.face=l;return c}var d=new I,e=new mb,f=new Da,g=new p,h=new p,k=new p,m=new p,l=new p,n=new p,t=new z,u=new z,r=new z,v=new p,y=new p,x=new p;return function(q,p){var v=this.geometry,w=this.material,x=this.matrixWorld;if(void 0!==w&&(null===v.boundingSphere&&v.computeBoundingSphere(),f.copy(v.boundingSphere),f.applyMatrix4(x), -!1!==q.ray.intersectsSphere(f)&&(d.getInverse(x),e.copy(q.ray).applyMatrix4(d),null===v.boundingBox||!1!==e.intersectsBox(v.boundingBox))))if(v.isBufferGeometry){var z=v.index,B=v.attributes.position,A=v.attributes.uv,D=v.groups;v=v.drawRange;var C;if(null!==z)if(Array.isArray(w)){var H=0;for(C=D.length;He.far||f.push({distance:q,point:b.clone(),face:null,object:this})}}(),clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){D.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);return this}}); -Bc.prototype=Object.assign(Object.create(D.prototype),{constructor:Bc,copy:function(a){D.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break; -for(;ef||(l.applyMatrix4(this.matrixWorld),v=d.ray.origin.distanceTo(l),vd.far||e.push({distance:v,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}else for(g=0,r=u.length/3-1;gf||(l.applyMatrix4(this.matrixWorld),v=d.ray.origin.distanceTo(l),vd.far||e.push({distance:v,point:h.clone().applyMatrix4(this.matrixWorld), -index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(k=g.vertices,m=k.length,g=0;gf||(l.applyMatrix4(this.matrixWorld),v=d.ray.origin.distanceTo(l),vd.far||e.push({distance:v,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});W.prototype=Object.assign(Object.create(sa.prototype), -{constructor:W,isLineSegments:!0,computeLineDistances:function(){var a=new p,b=new p;return function(){var c=this.geometry;if(c.isBufferGeometry)if(null===c.index){for(var d=c.attributes.position,e=[],f=0,g=d.count;fd.far||e.push({distance:a,distanceToRay:Math.sqrt(f),point:n.clone(),index:c,face:null,object:g}))}var g=this,h=this.geometry,k=this.matrixWorld,m=d.params.Points.threshold;null===h.boundingSphere&& -h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(k);c.radius+=m;if(!1!==d.ray.intersectsSphere(c)){a.getInverse(k);b.copy(d.ray).applyMatrix4(a);m/=(this.scale.x+this.scale.y+this.scale.z)/3;var l=m*m;m=new p;var n=new p;if(h.isBufferGeometry){var t=h.index;h=h.attributes.position.array;if(null!==t){var u=t.array;t=0;for(var r=u.length;t=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Pb.prototype=Object.create(T.prototype);Pb.prototype.constructor=Pb;Pb.prototype.isCompressedTexture=!0;Dc.prototype=Object.create(T.prototype);Dc.prototype.constructor=Dc;Dc.prototype.isCanvasTexture=!0;Ec.prototype= -Object.create(T.prototype);Ec.prototype.constructor=Ec;Ec.prototype.isDepthTexture=!0;Qb.prototype=Object.create(C.prototype);Qb.prototype.constructor=Qb;Fc.prototype=Object.create(R.prototype);Fc.prototype.constructor=Fc;Rb.prototype=Object.create(C.prototype);Rb.prototype.constructor=Rb;Gc.prototype=Object.create(R.prototype);Gc.prototype.constructor=Gc;na.prototype=Object.create(C.prototype);na.prototype.constructor=na;Hc.prototype=Object.create(R.prototype);Hc.prototype.constructor=Hc;Sb.prototype= -Object.create(na.prototype);Sb.prototype.constructor=Sb;Ic.prototype=Object.create(R.prototype);Ic.prototype.constructor=Ic;pb.prototype=Object.create(na.prototype);pb.prototype.constructor=pb;Jc.prototype=Object.create(R.prototype);Jc.prototype.constructor=Jc;Tb.prototype=Object.create(na.prototype);Tb.prototype.constructor=Tb;Kc.prototype=Object.create(R.prototype);Kc.prototype.constructor=Kc;Ub.prototype=Object.create(na.prototype);Ub.prototype.constructor=Ub;Lc.prototype=Object.create(R.prototype); -Lc.prototype.constructor=Lc;Vb.prototype=Object.create(C.prototype);Vb.prototype.constructor=Vb;Mc.prototype=Object.create(R.prototype);Mc.prototype.constructor=Mc;Wb.prototype=Object.create(C.prototype);Wb.prototype.constructor=Wb;Nc.prototype=Object.create(R.prototype);Nc.prototype.constructor=Nc;Xb.prototype=Object.create(C.prototype);Xb.prototype.constructor=Xb;var Ug={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=bf(a,0,e,c,!0),g=[];if(!f)return g;var h;if(d){var k= -c;d=[];var m;var l=0;for(m=b.length;l80*c){var p=h=a[0];var r=d=a[1];for(k=c;kh&&(h=l),b>d&&(d=b);h=Math.max(h-p,d-r);h=0!==h?1/h:0}Qc(f,g,c,p,r,h);return g}},Va={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;eVa.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];ff(a);gf(c,a);var f=a.length;b.forEach(ff);for(a=0;aMath.abs(g-k)?[new z(a,1-c),new z(h,1-d),new z(m,1-e),new z(n,1-b)]:[new z(g,1-c),new z(k,1-d),new z(l,1-e),new z(t,1-b)]}};Sc.prototype=Object.create(R.prototype);Sc.prototype.constructor=Sc;Yb.prototype=Object.create(Oa.prototype);Yb.prototype.constructor=Yb;Tc.prototype=Object.create(R.prototype);Tc.prototype.constructor=Tc;sb.prototype=Object.create(C.prototype);sb.prototype.constructor=sb;Uc.prototype=Object.create(R.prototype);Uc.prototype.constructor=Uc;Zb.prototype=Object.create(C.prototype); -Zb.prototype.constructor=Zb;Vc.prototype=Object.create(R.prototype);Vc.prototype.constructor=Vc;$b.prototype=Object.create(C.prototype);$b.prototype.constructor=$b;tb.prototype=Object.create(R.prototype);tb.prototype.constructor=tb;tb.prototype.toJSON=function(){var a=R.prototype.toJSON.call(this);return jf(this.parameters.shapes,a)};ub.prototype=Object.create(C.prototype);ub.prototype.constructor=ub;ub.prototype.toJSON=function(){var a=C.prototype.toJSON.call(this);return jf(this.parameters.shapes, -a)};ac.prototype=Object.create(C.prototype);ac.prototype.constructor=ac;vb.prototype=Object.create(R.prototype);vb.prototype.constructor=vb;Wa.prototype=Object.create(C.prototype);Wa.prototype.constructor=Wa;Wc.prototype=Object.create(vb.prototype);Wc.prototype.constructor=Wc;Xc.prototype=Object.create(Wa.prototype);Xc.prototype.constructor=Xc;Yc.prototype=Object.create(R.prototype);Yc.prototype.constructor=Yc;bc.prototype=Object.create(C.prototype);bc.prototype.constructor=bc;var xa=Object.freeze({WireframeGeometry:Qb, -ParametricGeometry:Fc,ParametricBufferGeometry:Rb,TetrahedronGeometry:Hc,TetrahedronBufferGeometry:Sb,OctahedronGeometry:Ic,OctahedronBufferGeometry:pb,IcosahedronGeometry:Jc,IcosahedronBufferGeometry:Tb,DodecahedronGeometry:Kc,DodecahedronBufferGeometry:Ub,PolyhedronGeometry:Gc,PolyhedronBufferGeometry:na,TubeGeometry:Lc,TubeBufferGeometry:Vb,TorusKnotGeometry:Mc,TorusKnotBufferGeometry:Wb,TorusGeometry:Nc,TorusBufferGeometry:Xb,TextGeometry:Sc,TextBufferGeometry:Yb,SphereGeometry:Tc,SphereBufferGeometry:sb, -RingGeometry:Uc,RingBufferGeometry:Zb,PlaneGeometry:uc,PlaneBufferGeometry:lb,LatheGeometry:Vc,LatheBufferGeometry:$b,ShapeGeometry:tb,ShapeBufferGeometry:ub,ExtrudeGeometry:rb,ExtrudeBufferGeometry:Oa,EdgesGeometry:ac,ConeGeometry:Wc,ConeBufferGeometry:Xc,CylinderGeometry:vb,CylinderBufferGeometry:Wa,CircleGeometry:Yc,CircleBufferGeometry:bc,BoxGeometry:Ib,BoxBufferGeometry:kb});wb.prototype=Object.create(J.prototype);wb.prototype.constructor=wb;wb.prototype.isShadowMaterial=!0;wb.prototype.copy= -function(a){J.prototype.copy.call(this,a);this.color.copy(a.color);return this};cc.prototype=Object.create(ta.prototype);cc.prototype.constructor=cc;cc.prototype.isRawShaderMaterial=!0;Pa.prototype=Object.create(J.prototype);Pa.prototype.constructor=Pa;Pa.prototype.isMeshStandardMaterial=!0;Pa.prototype.copy=function(a){J.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity= -a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap= -a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};xb.prototype=Object.create(Pa.prototype);xb.prototype.constructor=xb;xb.prototype.isMeshPhysicalMaterial= -!0;xb.prototype.copy=function(a){Pa.prototype.copy.call(this,a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Fa.prototype=Object.create(J.prototype);Fa.prototype.constructor=Fa;Fa.prototype.isMeshPhongMaterial=!0;Fa.prototype.copy=function(a){J.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity= -a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap; -this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};yb.prototype=Object.create(Fa.prototype);yb.prototype.constructor=yb;yb.prototype.isMeshToonMaterial=!0;yb.prototype.copy=function(a){Fa.prototype.copy.call(this, -a);this.gradientMap=a.gradientMap;return this};zb.prototype=Object.create(J.prototype);zb.prototype.constructor=zb;zb.prototype.isMeshNormalMaterial=!0;zb.prototype.copy=function(a){J.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe; -this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};Ab.prototype=Object.create(J.prototype);Ab.prototype.constructor=Ab;Ab.prototype.isMeshLambertMaterial=!0;Ab.prototype.copy=function(a){J.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive); -this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this}; -Bb.prototype=Object.create(Y.prototype);Bb.prototype.constructor=Bb;Bb.prototype.isLineDashedMaterial=!0;Bb.prototype.copy=function(a){Y.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Vg=Object.freeze({ShadowMaterial:wb,SpriteMaterial:cb,RawShaderMaterial:cc,ShaderMaterial:ta,PointsMaterial:Ea,MeshPhysicalMaterial:xb,MeshStandardMaterial:Pa,MeshPhongMaterial:Fa,MeshToonMaterial:yb,MeshNormalMaterial:zb,MeshLambertMaterial:Ab,MeshDepthMaterial:$a, -MeshDistanceMaterial:ab,MeshBasicMaterial:da,LineDashedMaterial:Bb,LineBasicMaterial:Y,Material:J}),Fb={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},ka=new ce,Ya={};Object.assign(Ga.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=Fb.get(a);if(void 0!==f)return e.manager.itemStart(a), -setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;if(void 0!==Ya[a])Ya[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2];g=g[3];g=window.decodeURIComponent(g);h&&(g=window.atob(g));try{var k=(this.responseType||"").toLowerCase();switch(k){case "arraybuffer":case "blob":var m=new Uint8Array(g.length);for(h=0;hg)e=a+1;else if(0b&&(b=0);1Number.EPSILON&&(g.normalize(),c=Math.acos(H.clamp(d[k-1].dot(d[k]),-1,1)),e[k].applyMatrix4(h.makeRotationAxis(g,c))),f[k].crossVectors(d[k],e[k]);if(!0===b)for(c=Math.acos(H.clamp(e[0].dot(e[a]),-1,1)),c/=a,0d;)d+=c;for(;d>c;)d-=c;de&&(e=1);1E-4>d&&(d=e);1E-4>k&&(k=e);Ae.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,k);Be.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,k);Ce.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,k)}else"catmullrom"===this.curveType&&(Ae.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),Be.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),Ce.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(Ae.calc(a), -Be.calc(a),Ce.calc(a));return b};ca.prototype.copy=function(a){L.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;bc.length-2?c.length-1:a+1];c=c[a>c.length-3?c.length-1:a+2];b.set(lf(d,e.x,f.x,g.x,c.x),lf(d,e.y,f.y,g.y,c.y));return b};Ka.prototype.copy=function(a){L.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths(); -return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],b=0,c=0,d=this.curves.length;c=e)break a;else{f=b[1];a=e)break b}d=c;c= -0}}for(;c>>1,ab;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),a=this.getValueSize(),this.times=ia.arraySlice(c,e,f),this.values=ia.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a= -!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);var c=this.times;b=this.values;var d=c.length;0===d&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,g,e);a=!1;break}e= -g}if(void 0!==b&&ia.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,f,d);a=!1;break}return a},optimize:function(){for(var a=this.times,b=this.values,c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;gm.opacity&&(m.transparent=!0);d.setTextures(k);return d.parse(m)}}()});var De={decodeText:function(a){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;cf;f++){var E=h[u++];var A=B[2*E];E=B[2*E+1];A=new z(A,E);2!==f&&c.faceVertexUvs[e][v].push(A);0!==f&&c.faceVertexUvs[e][v+1].push(A)}}y&&(y=3*h[u++],r.normal.set(m[y++],m[y++],m[y]),w.normal.copy(r.normal));if(x)for(e=0;4>e;e++)y=3*h[u++],x=new p(m[y++], -m[y++],m[y]),2!==e&&r.vertexNormals.push(x),0!==e&&w.vertexNormals.push(x);n&&(n=h[u++],n=l[n],r.color.setHex(n),w.color.setHex(n));if(k)for(e=0;4>e;e++)n=h[u++],n=l[n],2!==e&&r.vertexColors.push(new G(n)),0!==e&&w.vertexColors.push(new G(n));c.faces.push(r);c.faces.push(w)}else{r=new Ta;r.a=h[u++];r.b=h[u++];r.c=h[u++];v&&(v=h[u++],r.materialIndex=v);v=c.faces.length;if(e)for(e=0;ef;f++)E=h[u++],A=B[2*E],E=B[2*E+1],A=new z(A,E),c.faceVertexUvs[e][v].push(A); -y&&(y=3*h[u++],r.normal.set(m[y++],m[y++],m[y]));if(x)for(e=0;3>e;e++)y=3*h[u++],x=new p(m[y++],m[y++],m[y]),r.vertexNormals.push(x);n&&(n=h[u++],r.color.setHex(l[n]));if(k)for(e=0;3>e;e++)n=h[u++],r.vertexColors.push(new G(l[n]));c.faces.push(r)}}d=a;u=void 0!==d.influencesPerVertex?d.influencesPerVertex:2;if(d.skinWeights)for(g=0,h=d.skinWeights.length;g -Number.EPSILON){if(0>m&&(g=b[f],k=-k,h=b[e],m=-m),!(a.yh.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=m*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=Va.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new db;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints());k=a?!k:k;h=[];var m=[],l=[],n=0;m[n]=void 0;l[n]=[];for(var p= -0,u=f.length;pd&&this._mixBufferRegion(c,a,3*b,1-d,b);d=b;for(var f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a, -c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){fa.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}});Object.assign(pf.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a, -b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(pa,{Composite:pf,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new pa.Composite(a,b,c):new pa(a,b,c)},sanitizeNodeName:function(){var a= -/[\[\]\.:\/]/g;return function(b){return b.replace(/\s/g,"_").replace(a,"")}}(),parseTrackName:function(){var a="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",b=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]");a=/(WCOD+)?/.source.replace("WCOD",a);var c=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),d=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),e=new RegExp("^"+b+a+c+d+"$"),f=["material","materials","bones"];return function(a){var b=e.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+ -a);b={nodeName:b[2],objectName:b[3],objectIndex:b[4],propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==f.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+a);return b}}(),findNode:function(a,b){if(!b||""===b||"root"===b||"."===b||-1===b||b===a.name||b===a.uuid)return a; -if(a.skeleton){var c=a.skeleton.getBoneByName(b);if(void 0!==c)return c}if(a.children){var d=function(a){for(var c=0;c=b){var p=b++,n=a[p];c[n.uuid]=l;a[l]=n;c[k]=p;a[p]=h;h=0;for(k=e;h!==k;++h){n=d[h];var t=n[l];n[l]=n[p];n[p]=t}}}this.nCachedObjects_=b},uncache:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._bindings,f=e.length,g=0,h=arguments.length;g!==h;++g){var k= -arguments[g].uuid,l=d[k];if(void 0!==l)if(delete d[k],lb||0===c)return;this._startTime=null;b*=c}b*=this._updateTimeScale(a);c=this._updateTime(b);a=this._updateWeight(a);if(0c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){b=this.timeScale;var c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0];b*=d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a,c=this._clip.duration,d=this.loop,e=this._loopCount,f=2202===d;if(0===a)return-1=== -e?b:f&&1===(e&1)?c-b:b;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{-1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,f)):this._setEndings(0===this.repetitions,!0,f));if(b>=c||0>b){d=Math.floor(b/c);b-=c*d;e+=Math.abs(d);var g=this.repetitions-e;0>=g?(this.clampWhenFinished?this.paused=!0: -this.enabled=!1,b=0a,this._setEndings(a,!a,f)):this._setEndings(!1,!1,f),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:d}))}if(f&&1===(e&1))return this.time=b,c-b}return this.time=b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?2401: -2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});re.prototype=Object.assign(Object.create(ya.prototype),{constructor:re,_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0=== -k&&(k={},h[g]=k);for(h=0;h!==e;++h){var l=d[h],p=l.name,n=k[p];if(void 0===n){n=f[h];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,g,p));continue}n=new qe(pa.create(c,p,b&&b._propertyBindings[h].binding.parsedPath),l.ValueTypeName,l.getValueSize());++n.referenceCount;this._addInactiveBinding(n,g,p)}f[h]=n;a[h].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid, -d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions= -[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}}, -_isActiveAction:function(a){a=a._cacheIndex;return null!==a&&athis.max.x||a.ythis.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y},getParameter:function(a, -b){void 0===b&&(console.warn("THREE.Box2: .getParameter() target is now required"),b=new z);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y?!1:!0},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box2: .clampPoint() target is now required"),b=new z);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new z; -return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(xe.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)}, -copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0===a&&(console.warn("THREE.Line3: .getCenter() target is now required"),a=new p);return a.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){void 0===a&&(console.warn("THREE.Line3: .delta() target is now required"),a=new p);return a.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)}, -at:function(a,b){void 0===b&&(console.warn("THREE.Line3: .at() target is now required"),b=new p);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new p,b=new p;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);c=b.dot(b);c=b.dot(a)/c;d&&(c=H.clamp(c,0,1));return c}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"), -c=new p);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});ed.prototype=Object.create(D.prototype);ed.prototype.constructor=ed;ed.prototype.isImmediateRenderObject=!0;fd.prototype=Object.create(W.prototype);fd.prototype.constructor=fd;fd.prototype.update=function(){var a=new p,b=new p,c=new ra;return function(){var d=["a","b", -"c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var e=this.object.matrixWorld,f=this.geometry.attributes.position,g=this.object.geometry;if(g&&g.isGeometry)for(var h=g.vertices,k=g.faces,l=g=0,p=k.length;lMath.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=0>b?1:0;this.lookAt(this.plane.normal);D.prototype.updateMatrixWorld.call(this,a)};var Nd,ye;Eb.prototype=Object.create(D.prototype);Eb.prototype.constructor=Eb;Eb.prototype.setDirection=function(){var a=new p,b;return function(c){.99999c.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();Eb.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(0,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};Eb.prototype.setColor=function(a){this.line.material.color.copy(a);this.cone.material.color.copy(a)};ld.prototype=Object.create(W.prototype); -ld.prototype.constructor=ld;L.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(L.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(Xa.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getPoints(a);return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."); -a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new R,c=0,d=a.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

      yF;076S=sKRn<{}1qQ_#AEP{?4|#uHRNCdTqc| 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 O_6Pf^KVHlcp`CSZHmL)~AxBNlJokQ_~a*f?N^g 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%0A|W^Sr(Rh6-2Hl?;) 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 z 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 User Blender 2.82.7 commit date:2020-03-12, commit time:05:06, hash:375c7dc4caf4 - 2020-05-18T11:44:35 - 2020-05-18T11:44:35 + 2020-05-18T18:07:39 + 2020-05-18T18:07:39 Z_UP @@ -79,7 +79,7 @@ - -3.522017 -0.3962215 -0.9342709 -3.522017 -0.3962216 1.065729 3.522017 -0.3962216 -0.9342709 3.522017 -0.3962218 1.065729 -3.522017 0.1716349 -0.9342709 -3.522017 0.1716348 1.065729 3.522017 0.1716348 -0.9342709 3.522017 0.1716347 1.065729 -2.681462 -0.4093654 -0.6956137 -2.681462 -0.4093655 0.8270719 2.681463 -0.4093655 -0.6956137 2.681463 -0.4093656 0.8270719 -1.761008 0.4093654 0.06572914 -1.761008 0.09017676 0.06572914 -1.24522 0.4093656 0.5616512 -1.24522 0.0901767 0.5616513 1.78814e-7 0.4093655 0.7670688 1.78814e-7 0.0901767 0.7670688 1.245221 0.4093656 0.5616512 1.245221 0.0901767 0.5616513 1.761008 0.4093653 0.06572914 1.761008 0.0901767 0.06572914 1.245221 0.4093654 -0.430193 1.245221 0.09017676 -0.4301928 1.78814e-7 0.4093654 -0.6356105 1.78814e-7 0.09017676 -0.6356105 -1.24522 0.4093654 -0.430193 -1.24522 0.09017676 -0.4301928 -3.332928 0.0437591 -0.9213658 -2.216018 0.0437591 -0.9213658 -3.332929 -0.2702348 -0.9213658 -2.216018 -0.2702348 -0.9213658 -3.332928 0.0437591 -1.065729 -2.216018 0.0437591 -1.065729 -3.332929 -0.2702348 -1.065729 -2.216018 -0.2702348 -1.065729 -2.681462 -0.2697662 -0.6956137 -2.681462 -0.2697663 0.8270719 2.681463 -0.2697662 -0.6956137 2.681463 -0.2697663 0.8270719 + 1 0.6660618 0.3962215 1 -0.7597808 0.3962216 -1 0.6660615 0.3962216 -1 -0.759781 0.3962218 1 0.6660618 -0.1716349 1 -0.7597808 -0.1716347 -1 0.6660615 -0.1716348 -1 -0.759781 -0.1716346 0.7613428 0.4959179 0.4093654 0.7613428 -0.5896371 0.4093655 -0.761343 0.4959178 0.4093654 -0.761343 -0.5896373 0.4093656 0.4999998 -0.04685968 -0.4093654 0.4999998 -0.04685962 -0.09017676 0.3535532 -0.400413 -0.4093655 0.3535532 -0.4004131 -0.0901767 0 -0.5468597 -0.4093655 0 -0.5468597 -0.0901767 -0.3535533 -0.4004132 -0.4093655 -0.3535533 -0.4004132 -0.0901767 -0.5 -0.04685974 -0.4093653 -0.5 -0.04685974 -0.0901767 -0.3535532 0.3066936 -0.4093654 -0.3535532 0.3066936 -0.09017676 0 0.4531403 -0.4093654 0 0.4531403 -0.09017682 0.3535531 0.3066937 -0.4093654 0.3535531 0.3066937 -0.09017676 0.9463124 0.6568614 -0.04375916 0.62919 0.6568613 -0.04375916 0.9463125 0.6568614 0.2702348 0.6291901 0.6568613 0.2702348 0.9463123 0.759781 -0.04375916 0.6291899 0.7597809 -0.04375916 0.9463124 0.759781 0.2702348 0.62919 0.7597809 0.2702348 0.7613428 0.4959179 0.2697661 0.7613428 -0.5896371 0.2697663 -0.761343 0.4959177 0.2697661 -0.761343 -0.5896373 0.2697663 @@ -89,9 +89,9 @@ - 0 -1 0 -1 1.31493e-6 0 0 0 -1 0 -1 0 0 1 1.38624e-7 1 -1.31493e-6 0 0 1 0 0 0 -1 -1 0 0 0 0 1 1 0 0 0 -1 0 -1 2.62986e-6 0 0 1 0 0 0 1 0 0 -1 0 1 0 0 0 1 0 -1 0 0 1 0 0 0 1 -0.6930888 2.6597e-7 0.7208522 -0.162765 0 0.9866649 0.162765 0 0.9866649 0.6930888 5.21961e-7 0.7208523 0.6930887 -2.6597e-7 -0.7208523 0.1627649 -2.21946e-7 -0.986665 0 -1 0 -0.1627649 -1.47964e-7 -0.986665 -0.6930887 -5.21961e-7 -0.7208523 0 1 0 -0.6930888 5.21961e-7 0.7208523 -0.1627649 3.6991e-7 0.986665 0.1627649 3.67081e-7 0.986665 0.693089 0 0.7208521 0.6930888 0 -0.7208523 0.1627649 -3.6991e-7 -0.9866649 0 -1 0 0 -1 -1.36501e-7 0 -1 0 0 -1 0 0 -1 0 -0.1627649 -3.67081e-7 -0.9866649 -0.6930886 5.21961e-7 -0.7208525 0 1 0 0 1 -3.86083e-7 0 1 -5.46003e-7 0 1 1.93041e-7 + 0 1.64721e-7 1 1 1.84442e-6 -3.79655e-7 -3.75909e-7 1 0 0 0 1 0 -1.80981e-7 -1 -1 -1.64752e-6 1.89827e-7 0 -1.64721e-7 -1 0 1 0 1 0 0 1.56578e-7 -1 0 -1 0 0 0 1.64721e-7 1 -3.7591e-7 1 0 0 0 1 0 -1.80981e-7 -1 -1 0 1.89827e-7 0 -1.64721e-7 -1 0 1 -5.60811e-7 1 0 0 1.56578e-7 -1 0 -1 0 0 -1.19209e-7 1 0 -1 -1.47231e-7 0 0 -1.25409e-7 -1 1.19209e-7 -1 0 0 1.25409e-7 1 1 1.47231e-7 0 -1 0 0 0 -1.25409e-7 -1 0 1.25409e-7 1 0.9238796 -0.3826833 0 0.3826836 -0.9238795 0 -0.3826833 -0.9238797 0 -0.9238796 -0.3826836 0 -0.9238795 0.3826836 0 -0.3826836 0.9238795 0 0 0 1 0.3826833 0.9238796 0 0.9238796 0.3826835 0 0 -2.03503e-7 -1 0.9238796 -0.3826833 -1.82989e-7 0.3826835 -0.9238796 0 -0.3826831 -0.9238797 0 -0.9238795 -0.3826835 0 -0.9238795 0.3826839 0 -0.3826838 0.9238794 4.8797e-7 0 -1.52627e-7 1 0 1.86045e-7 1 0 0 1 0 2.54379e-7 1 0 1.86045e-7 1 0.3826835 0.9238795 4.8797e-7 0.9238794 0.3826838 -1.67725e-7 0 0 -1 0 5.90056e-7 -1 0 -4.07006e-7 -1 -1.30133e-7 7.33954e-7 -1 0 -1.68587e-7 -1 - + @@ -114,19 +114,19 @@ -

      8 0 0 11 0 1 9 0 2 28 1 3 34 1 4 30 1 5 32 2 6 35 2 7 34 2 8 30 3 9 35 3 10 31 3 11 29 4 12 32 4 13 28 4 14 31 5 15 33 5 16 29 5 17 39 6 18 36 6 19 37 6 20 36 7 21 10 7 22 8 7 23 37 8 24 8 8 25 9 8 26 39 9 27 9 9 28 11 9 29 38 10 30 11 10 31 10 10 32 8 11 33 10 11 34 11 11 35 28 12 36 32 12 37 34 12 38 32 2 39 33 2 40 35 2 41 30 3 42 34 3 43 35 3 44 29 13 45 33 13 46 32 13 47 31 10 48 35 10 49 33 10 50 39 6 51 38 6 52 36 6 53 36 2 54 38 2 55 10 2 56 37 8 57 36 8 58 8 8 59 39 14 60 37 14 61 9 14 62 38 10 63 39 10 64 11 10 65

      +

      8 0 0 11 0 1 9 0 2 28 1 3 34 1 4 30 1 5 32 2 6 35 2 7 34 2 8 30 3 9 35 3 10 31 3 11 29 4 12 32 4 13 28 4 14 31 5 15 33 5 16 29 5 17 39 6 18 36 6 19 37 6 20 36 7 21 10 7 22 8 7 23 37 8 24 8 8 25 9 8 26 39 9 27 9 9 28 11 9 29 38 10 30 11 10 31 10 10 32 8 11 33 10 11 34 11 11 35 28 1 36 32 1 37 34 1 38 32 12 39 33 12 40 35 12 41 30 13 42 34 13 43 35 13 44 29 14 45 33 14 46 32 14 47 31 15 48 35 15 49 33 15 50 39 16 51 38 16 52 36 16 53 36 17 54 38 17 55 10 17 56 37 18 57 36 18 58 8 18 59 39 19 60 37 19 61 9 19 62 38 20 63 39 20 64 11 20 65

      -

      4 15 66 2 15 67 0 15 68 2 10 69 7 10 70 3 10 71 6 16 72 5 16 73 7 16 74 1 17 75 7 17 76 5 17 77 0 18 78 3 18 79 1 18 80 4 8 81 1 8 82 5 8 83 4 2 84 6 2 85 2 2 86 2 10 87 6 10 88 7 10 89 6 19 90 4 19 91 5 19 92 1 20 93 3 20 94 7 20 95 0 18 96 2 18 97 3 18 98 4 8 99 0 8 100 1 8 101

      +

      4 21 66 2 21 67 0 21 68 2 22 69 7 22 70 3 22 71 6 23 72 5 23 73 7 23 74 1 24 75 7 24 76 5 24 77 0 25 78 3 25 79 1 25 80 4 26 81 1 26 82 5 26 83 4 21 84 6 21 85 2 21 86 2 27 87 6 27 88 7 27 89 6 28 90 4 28 91 5 28 92 1 24 93 3 24 94 7 24 95 0 29 96 2 29 97 3 29 98 4 18 99 0 18 100 1 18 101

      -

      12 21 102 15 21 103 14 21 104 14 22 105 17 22 106 16 22 107 17 23 108 18 23 109 16 23 110 19 24 111 20 24 112 18 24 113 20 25 114 23 25 115 22 25 116 22 26 117 25 26 118 24 26 119 21 27 120 19 27 121 15 27 122 25 28 123 26 28 124 24 28 125 27 29 126 12 29 127 26 29 128 22 30 129 24 30 130 26 30 131 12 31 132 13 31 133 15 31 134 14 32 135 15 32 136 17 32 137 17 33 138 19 33 139 18 33 140 19 34 141 21 34 142 20 34 143 20 35 144 21 35 145 23 35 146 22 36 147 23 36 148 25 36 149 17 37 150 15 37 151 19 37 152 15 38 153 13 38 154 21 38 155 13 39 156 27 39 157 23 39 158 27 40 159 25 40 160 23 40 161 23 41 162 21 41 163 13 41 164 25 42 165 27 42 166 26 42 167 27 43 168 13 43 169 12 43 170 26 44 171 12 44 172 20 44 173 12 45 174 14 45 175 18 45 176 14 30 177 16 30 178 18 30 179 18 46 180 20 46 181 12 46 182 20 47 183 22 47 184 26 47 185

      +

      12 30 102 15 30 103 14 30 104 14 31 105 17 31 106 16 31 107 17 32 108 18 32 109 16 32 110 19 33 111 20 33 112 18 33 113 20 34 114 23 34 115 22 34 116 22 35 117 25 35 118 24 35 119 21 36 120 19 36 121 15 36 122 25 37 123 26 37 124 24 37 125 27 38 126 12 38 127 26 38 128 22 39 129 24 39 130 26 39 131 12 40 132 13 40 133 15 40 134 14 41 135 15 41 136 17 41 137 17 42 138 19 42 139 18 42 140 19 43 141 21 43 142 20 43 143 20 44 144 21 44 145 23 44 146 22 45 147 23 45 148 25 45 149 17 46 150 15 46 151 19 46 152 15 47 153 13 47 154 21 47 155 13 48 156 27 48 157 23 48 158 27 49 159 25 49 160 23 49 161 23 50 162 21 50 163 13 50 164 25 51 165 27 51 166 26 51 167 27 52 168 13 52 169 12 52 170 26 53 171 12 53 172 20 53 173 12 54 174 14 54 175 18 54 176 14 55 177 16 55 178 18 55 179 18 56 180 20 56 181 12 56 182 20 57 183 22 57 184 26 57 185

      @@ -134,7 +134,7 @@ - -0.2839282 0 -2.32299e-7 -1.49012e-8 0 1 0 0 9.25156e-8 0 -0.7129213 7.45058e-9 0 0 0 1 + 1 0 0 -1.49012e-8 0 1 0 0 0 0 1 7.45058e-9 0 0 0 1 diff --git a/app/templates/app/3d_model_display.html b/app/templates/app/3d_model_display.html index 5e42073d..719741c5 100644 --- a/app/templates/app/3d_model_display.html +++ b/app/templates/app/3d_model_display.html @@ -6,7 +6,28 @@ {% render_bundle 'ModelView' attrs='async' %}

      {{title}}

      - + + + + + + + + + + + + + + + + + + + + + +

      !mGmB- z5FnaL;TE?t$+t4)T!x169>b*d20mYfhB=q+VQReQCQA`q&%m`Uu?Ddn_!Nb!5z|z5 zIL}E5Q!mO-$#>P?84Xh7xMyksV<7kZBQ;((9ampML@Q0(UjQSgZJUKaRZM#wBc7X( zBFcFVv|d_R<{PIx3Z{9EXSYys>shX)#>;MXouL8@@mlt@Z{r{WDJe>RIy7IOE^sOMbQN<9v7Y20c0O-&e&LfUR>ze|n3 zroht;X7LV$ucfYsC9>PJr)S(3K+9;&HNBEbo0`#7Mv2?rGgE?gZN65f2?$GzY#S;q zb-yU0Z%t{tn0_}G{?fqXsVLmZ5&jBq^zqe*=Z8|b5;dckWC@i^x%`!tMJ6IAQA76q zcw44E@Y^^YhqtNy8s%?3qQk-G$Wq4E6p@EgF6D9r7m@fILFmj3ysgv|IIg6|YiSO` z)T*TXU1a2*dR$`%e#nvXxwLXAm!=dBy0igPaP*2JX8%C>JNw(kc2csGpJiN$01-!3 zm+_x}rsi4KT`uKvC^U#f%<2`v{}VM#b`EnqlQlkQh4GU(F_JSimX-OTT>jb%Pujjf z4f85``%_yv>NN*GN^2by&>T{sI82|@D+VhfG)>$+dItdS?dA61mu65rG2Krdt zpXYk;X3*bM7jJ;$ew8}MdmoK8s>p^JIgB=v8gI@fg(C-?x;-C}2Hvspcy*m~tav-m zG-=Hl1BWekgD@_<8g3#rtQXOU@ThT;AT#YCO8!8Oem~EeKTY}TzB3UpCjFP)QH}>L z&N7VZMLZ)5wRnBWaSj-4a-e5m@FHNBcl7~0k}~o#g}HH+G4F~R2VR=c1;?W)Op=VE zGdo^U_>bySQgOERHn>F=t*^lUx%l6e!aZi=h}PyeX@v3=zodgRbG)fIShnz#&lj{# zA+-xBI@@-oBDT0PAIwCQK7M~c;O|*N6G688zqx=hVf&lEhw;f~Fj>w8JR|U**O+{} z$hIy8{$)`ar~1rmMsv$^FnxyHD-iP}CEIA<0b;j9O7Oy+lOUD)L;X!q40AOcdp`Fe zUc|9vPIEX95r7#WdM><=6R%0;{Gngt94C@}50ZTa-npNWH(wYCb;&cMyzdm}HH}yI zGlTIyw8w(UC9jB+*2dtMVgEc3ayt6RY1YdjfzJZ$+?O{TF!16a&OQ1wq;(Bo*Cq&S z!p~tGxvgn9&*>OLDclJASTMrt7(>owx*pH3qVQ7;!mRxNRE#G_YYw14m%+iDhklC5 zFo?n}KBp<1TnPLMT$jNXpR4S5&S%>MoUNn$&ns}b8$yR+{;V>avgixvJGBG7a6a5p z2->5ed8)zCKS$MD8MTL2KE}|}37~OesVE!B;jUv#vT#55HDD#g0^H;O3!Erwjcr9RAWZuinybA@j1!@8bFC2@E3t#{gbY^A9Q0X0##{e$S8azb^!V52BI&{SVrZWvZ8h2oHcc zS{N1Fhr%>+dF~bT`CGVFMd1=$*;(=H`2T4Llq`kc0~vw;eG$9o`)*MZ+HTSJ(+e~4`E#G$u&W}}NcoOA*or~Y|Qwq0m>I}`! zv(|&bAUENi?V;f|q96AtA?!heZ$rCJ}`(>_$k#=V7w=kiMq?QIEm-eM*J! zHh}9VBRsergSAv?plUdFGjZ=s#RwULpy#3fA4S_s@$Q!B!w;Z-SHq#}Na0TOGJ{%W zLX@o(F4+ZX3=mQ7Y~om?PIhx;z8lr4Fj~1^65nqn%M8lpSD-mSCt} zKpflcKL!!@#$ZF5)`a}9{R63j9d_#6g&J_{WF8sj_&<2(^UU?()(+kin#$no&Y z_EWf{|3nDc9%y?!HSa>WBfi)#tX5OG{C~&g5nnPfGpkYOGBGocc56r1L`~FxqWIm+ z?LwRm5irK}DNXxH2uylk8aU#{Fz#AfVoL)@+$_46fa7A0HNJBN(q^Ur+?BNa1@9gm U473fx761SM07*qoM6N<$g2-~OQUCw| diff --git a/app/static/app/js/vendor/potree/build/resources/textures/LICENSE b/app/static/app/js/vendor/potree/build/resources/textures/LICENSE deleted file mode 100644 index a73899ea..00000000 --- a/app/static/app/js/vendor/potree/build/resources/textures/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - - - -brick_pavement.jpg: -http://www.wildtextures.com/terms-of-use/ -============================== -All textures at wildtextures.com are completely free for both, personal and commercial use, however you can’t: - -host textures for download on any other website or server, -direct link to texture file from any other website ( however you can link to texture page ), -sell them as a stock materials, -============================== - - - - - - - - - - - diff --git a/app/static/app/js/vendor/potree/build/resources/textures/brick_pavement.jpg b/app/static/app/js/vendor/potree/build/resources/textures/brick_pavement.jpg deleted file mode 100644 index 69808eda1350cbf751239ce1e2b091365e022f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97095 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 diff --git a/app/static/app/js/vendor/potree/build/resources/textures/navigation/D.png b/app/static/app/js/vendor/potree/build/resources/textures/navigation/D.png deleted file mode 100644 index 2d3a51f0b700ba64274072c10c8c85443aa7ce4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmV+{1k?M8P)5N`kg1Gz~= zK~#9!?b}ai(@-1-@b638B-@g0UD;e`J2ntRCe!NFgG?%-IQ8OH6vV?2Ja|xq;h%}a zqZbc?cu+iu9y}?CqMOPX4qB&fRvZ@HYBx7)t6jQvO_O*~4_W3Pw3DUpy<5HyLh>o^ z<@a7v(%x1fC2+YU@O%YC(E~y7pssE+yxvy( z0VI=yc=hTMMn-NyQQrOac@$;DUI5e669|P)VR-m5bY1=TNsHs{GX&!C2YB@802F1E zzDY0|y@8&deLwxxWw{YvZxA&#>mkdH;Q4Y8!a>*b(6lU6HG^dGIYOb+0Cal+#A0{R z-Mtrvk+<}DJOKm(9q{{iz~w6Y<#{}wRe1We3%YJ207Z%6;lus&-h3c%9BbEhg5z9& zbgmyy23rk*{{CZ_nfYMJTU#$;#ftXgt^~)&A0ryQZpm9(x)$Zl7aU+{=)5JXtJ{n< zYfcpZS|FW%i&*ULoRpxYrHhWmP&|Gg`MhGvmM-0b+S-kD0E~@wTe4-#_Rz5$)^!!h zTS;w**NyNM2fY&L;RCT_|ksR5EyPY1xv%txrIdHk1`H~w+KV|xHqOhHUX%DEH{|4si}9C+MuXQ;p*yjrsI4*gNcbgdH{UBZI&z=y+IFv*SiU2Wqwl@ zi`_vY@r(`tp0BX1{&ZbMD0Gqz003xeIs~3~o3hc-+j#Nf9323X^FJE3Scs03T?*=8wk6pXE(bsnv!^2lB{kon*GC643O0)eCFh3g05e#0&_U*S( zQ?p@FPJ;jC1Bv?jo$&kH5RX5=n>W`mHrDg~mHFT785s5h_%S*9d|To3ZH1~T`26`b zQmL0nr=ysj9!D~)y}jR$$x(pqL;n9c zMGrl8aG1F@H#&K73vXN7H@Y=k+PW`lIF_n}sE7q{c9vU*g{iSAb(g;} zzbk5e^nF>ndam<7#N{U#kQ{#OFr2g{8P%8dUbwrr|^-p z5_50!O$mF-AYt2MP$!eG6aRKg+c)3a+zr!}7koFLeeHtEUpNpsLG8?Sd-Hzon`(e?`iEOq6+N`od1OOX3X+CyFQQH@;)Pc!}9V zZ@-Uw6uIf2Zv!1=`XKB!vz}_^5-8jj+uni!Nj0{i+!dTm76ezUNo*r)idng};)A1qi z|L#0J?{nVgcb@aS@AFnt>*`cCu?%c-2>=3s03ZMe00MvjAOHve0)PM@00;mAfB+x> z2ml*F1Hm94c|4qIY}D<`l# z9^jD6MZ@vqIMdT-ZQpcvGaiX>rm1P(;BB(Z+Z7eGojAb{M~|jFcwHHAeQ;27U1qoQ z=^}*lwLt}e~*c3I~8!-u(CQ}f7!Uon7CG|E5Y;~LwMBsU{gS*B)zRJNK- z{8U@Zi^aw3yB8Rpnj$bcIeVRBu~1~QB|W|>J9}RHmj@1TFfVWYH$!1X(QHW_W;3=V z(tk$znVAW;gH9)JY~Q{yy1|&LqNu87nKBuYca=W9_Q$KPynN%d!;&OnkR%O|<&K}b z+*sjmxwL6S5B6;(xv#a29tBAX3YM#jbgV3Z_`aVZ~(#faztke896@we^)$OZ#) z+=Ro5LTs7iOEFk>3Bs|SHA`rBnihFezz%UX7rA?uM+?h(I~2pELd?n{AyVlMK+tJ7_PQr zs!FCTC)I_fvox`00aO5KmZT`1ONd*01yBK00BS%5C8-K0YCr{05+Na1^5M1 U5@>&VO#lD@07*qoM6N<$f+d1400000 diff --git a/app/static/app/js/vendor/potree/build/resources/textures/navigation/U.png b/app/static/app/js/vendor/potree/build/resources/textures/navigation/U.png deleted file mode 100644 index 9a9c37730639ab730f9b0c08a9431c51306a79fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 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 diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox/ny.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox/ny.jpg deleted file mode 100644 index 729b03cde38efada0485001ee3fd1640b4e5507a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6431 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 Sfn@}i5m-jx|AD|_|GxqJfUw8_ diff --git a/app/static/app/js/vendor/potree/build/resources/textures/skybox/px.jpg b/app/static/app/js/vendor/potree/build/resources/textures/skybox/px.jpg deleted file mode 100644 index c6e77ae0d070dfe976205070ed5919fd1b936acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40406 zcmb5VcT^MW+WsHeSWpoG0Yw2fRk{M9N!cnrgls}D0TmDe2Bd@%iXJN$;!$HT>%b=(3TXp&sbe zsZ$^W;0N?;6!ZY}2Mf!|FR-x!zo*ZgKF!K{`uy3mXU<(bfAQjl^A|3#U*fvVeu?wa zg$tK?FLQEV;o;%A$ia7&_sUhSD?C?DPIBrG;D1<8vzoab0U zte`(m34>TTPyNAp>Q@U$0CWl%_`QMtyPaYIKI56Q=h%S5T9-k8fKL6va+>AzA1r^I zW&HyLI>o~I2P@Z~cTRKPGktW$`;4%{zvAx0vw1{#6-&-Oc-+*tz9DMn6R+bm1^hq% ze@+d28~?lg=k&laan6%(3HV-qKmBp?C#N`Bxc>O_&OK9ZR^ZgYnMHn$fGz@ufcNAC zX@hB`{r6+aJ@iP$D}#}$oob%bp;s4S#`gTz${a5Uj9 zSMgr)yaxULQm)ToAwR=ybC8bG%~@)$5YCk94aRE<`}sM&?w?Md)!4^%;B=o zV?A!w{U+X@w%xf8(k)og7dJnEK)1iVz=}?>Yf8U0VPmD4 z+yec@`XlMju*<5+ZJ<*h?tI7&Rf%NOT#geJI1FvE6i;@zosz40x&jkvnW5U=NSs1W zvKx|J6Bd-UBna8n)H-!&Uatl|1bpK<`O+Y*pOlX(Uc?4Fre6u2+l9eel&(BDTAaVO z^b6FqnLhrCMv#(ZxRNOMpUpQ)cRE33GnQ8HenV1izOS;(n!O4l3XAvEL-;Jq18&^S zrERcVWy{V!NxlJWa3?bTBMCAsTWccC| zU|rZ$KK%A#*J@-EcTAz!%RqX~KR2m^uJ+?-#TZe}H|K{m%wAwx$XAjNUiE1OpZ@2?A^%I3PNNz&U$4zur6b@b|doX zBUux$h6llH0K+Y@rmBhusK_^ltjOI{GGQhdEGxo z{KhM=`MrG32bmb(KEInZn4zdgE2k!>i`q>Yxptk3n78M(F3d-+d{9>!32m+`&b)~K z1yZ=bMrzX6!VNeUI4t1vCiz;oJ^CAp%eyOUb6=UYs96d1*GGc;X0|sc=boh5Vm|iz zZY8{9AnWqmdA=t($doTi{k+^V6jnJ-my7Em)MC_oEFN!IoCE_epfX`rD!wQ&Qb zDZrOMc{Mbp`dLNgFHp-qqWjVPpM|?>U@(|`Kf^r;DYLU05)ixB-Bw;{5ev+-f)HKWPzJdi6AFwLNAN_ln8OLotRuvu4G_yx_YCeDsR2q-xbb#XuR2p_bdM6tv`H zYlL@=NB4#H9uGw^+)yEz8jq6&t{7F0S`kP_yb8y54($m