>2]=o,0}};(function(){function t(t,e){z.asm=t.exports,nt=z.asm.i,_(nt.buffer),at=z.asm.k,yt.unshift(z.asm.j),mt--,z.monitorRunDependencies&&z.monitorRunDependencies(mt),0==mt&&(null!==dt&&(clearInterval(dt),dt=null),bt&&(t=bt,bt=null,t()))}function e(e){t(e.instance)}function r(t){return a().then((function(t){return WebAssembly.instantiate(t,n)})).then((function(t){return t})).then(t,(function(t){rt("failed to asynchronously prepare wasm: "+t),i(t)}))}var n={a:Dt};if(mt++,z.monitorRunDependencies&&z.monitorRunDependencies(mt),z.instantiateWasm)try{return z.instantiateWasm(n,t)}catch(o){return rt("Module.instantiateWasm callback failed with error: "+o),!1}(function(){return tt||"function"!==typeof WebAssembly.instantiateStreaming||ht.startsWith("data:application/octet-stream;base64,")||ht.startsWith("file://")||"function"!==typeof fetch?r(e):fetch(ht,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,n).then(e,(function(t){return rt("wasm streaming compile failed: "+t),rt("falling back to ArrayBuffer instantiation"),r(e)}))}))})().catch(w)})(),z.___wasm_call_ctors=function(){return(z.___wasm_call_ctors=z.asm.j).apply(null,arguments)};var It,jt=z._emscripten_bind_VoidPtr___destroy___0=function(){return(jt=z._emscripten_bind_VoidPtr___destroy___0=z.asm.l).apply(null,arguments)},Et=z._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Et=z._emscripten_bind_DecoderBuffer_DecoderBuffer_0=z.asm.m).apply(null,arguments)},Gt=z._emscripten_bind_DecoderBuffer_Init_2=function(){return(Gt=z._emscripten_bind_DecoderBuffer_Init_2=z.asm.n).apply(null,arguments)},vt=z._emscripten_bind_DecoderBuffer___destroy___0=function(){return(vt=z._emscripten_bind_DecoderBuffer___destroy___0=z.asm.o).apply(null,arguments)},Ot=z._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ot=z._emscripten_bind_AttributeTransformData_AttributeTransformData_0=z.asm.p).apply(null,arguments)},Pt=z._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(Pt=z._emscripten_bind_AttributeTransformData_transform_type_0=z.asm.q).apply(null,arguments)},Rt=z._emscripten_bind_AttributeTransformData___destroy___0=function(){return(Rt=z._emscripten_bind_AttributeTransformData___destroy___0=z.asm.r).apply(null,arguments)},St=z._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(St=z._emscripten_bind_GeometryAttribute_GeometryAttribute_0=z.asm.s).apply(null,arguments)},gt=z._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gt=z._emscripten_bind_GeometryAttribute___destroy___0=z.asm.t).apply(null,arguments)},Mt=z._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Mt=z._emscripten_bind_PointAttribute_PointAttribute_0=z.asm.u).apply(null,arguments)},Nt=z._emscripten_bind_PointAttribute_size_0=function(){return(Nt=z._emscripten_bind_PointAttribute_size_0=z.asm.v).apply(null,arguments)},Ut=z._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(Ut=z._emscripten_bind_PointAttribute_GetAttributeTransformData_0=z.asm.w).apply(null,arguments)},Ft=z._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ft=z._emscripten_bind_PointAttribute_attribute_type_0=z.asm.x).apply(null,arguments)},Ct=z._emscripten_bind_PointAttribute_data_type_0=function(){return(Ct=z._emscripten_bind_PointAttribute_data_type_0=z.asm.y).apply(null,arguments)},Lt=z._emscripten_bind_PointAttribute_num_components_0=function(){return(Lt=z._emscripten_bind_PointAttribute_num_components_0=z.asm.z).apply(null,arguments)},$t=z._emscripten_bind_PointAttribute_normalized_0=function(){return($t=z._emscripten_bind_PointAttribute_normalized_0=z.asm.A).apply(null,arguments)},wt=z._emscripten_bind_PointAttribute_byte_stride_0=function(){return(wt=z._emscripten_bind_PointAttribute_byte_stride_0=z.asm.B).apply(null,arguments)},zt=z._emscripten_bind_PointAttribute_byte_offset_0=function(){return(zt=z._emscripten_bind_PointAttribute_byte_offset_0=z.asm.C).apply(null,arguments)},Vt=z._emscripten_bind_PointAttribute_unique_id_0=function(){return(Vt=z._emscripten_bind_PointAttribute_unique_id_0=z.asm.D).apply(null,arguments)},Bt=z._emscripten_bind_PointAttribute___destroy___0=function(){return(Bt=z._emscripten_bind_PointAttribute___destroy___0=z.asm.E).apply(null,arguments)},Wt=z._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Wt=z._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=z.asm.F).apply(null,arguments)},kt=z._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(kt=z._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=z.asm.G).apply(null,arguments)},Qt=z._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(Qt=z._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=z.asm.H).apply(null,arguments)},xt=z._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(xt=z._emscripten_bind_AttributeQuantizationTransform_min_value_1=z.asm.I).apply(null,arguments)},Yt=z._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Yt=z._emscripten_bind_AttributeQuantizationTransform_range_0=z.asm.J).apply(null,arguments)},Ht=z._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Ht=z._emscripten_bind_AttributeQuantizationTransform___destroy___0=z.asm.K).apply(null,arguments)},qt=z._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(qt=z._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=z.asm.L).apply(null,arguments)},Xt=z._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Xt=z._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=z.asm.M).apply(null,arguments)},Kt=z._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(Kt=z._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=z.asm.N).apply(null,arguments)},Jt=z._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Jt=z._emscripten_bind_AttributeOctahedronTransform___destroy___0=z.asm.O).apply(null,arguments)},Zt=z._emscripten_bind_PointCloud_PointCloud_0=function(){return(Zt=z._emscripten_bind_PointCloud_PointCloud_0=z.asm.P).apply(null,arguments)},te=z._emscripten_bind_PointCloud_num_attributes_0=function(){return(te=z._emscripten_bind_PointCloud_num_attributes_0=z.asm.Q).apply(null,arguments)},ee=z._emscripten_bind_PointCloud_num_points_0=function(){return(ee=z._emscripten_bind_PointCloud_num_points_0=z.asm.R).apply(null,arguments)},re=z._emscripten_bind_PointCloud___destroy___0=function(){return(re=z._emscripten_bind_PointCloud___destroy___0=z.asm.S).apply(null,arguments)},ne=z._emscripten_bind_Mesh_Mesh_0=function(){return(ne=z._emscripten_bind_Mesh_Mesh_0=z.asm.T).apply(null,arguments)},oe=z._emscripten_bind_Mesh_num_faces_0=function(){return(oe=z._emscripten_bind_Mesh_num_faces_0=z.asm.U).apply(null,arguments)},_e=z._emscripten_bind_Mesh_num_attributes_0=function(){return(_e=z._emscripten_bind_Mesh_num_attributes_0=z.asm.V).apply(null,arguments)},ie=z._emscripten_bind_Mesh_num_points_0=function(){return(ie=z._emscripten_bind_Mesh_num_points_0=z.asm.W).apply(null,arguments)},pe=z._emscripten_bind_Mesh___destroy___0=function(){return(pe=z._emscripten_bind_Mesh___destroy___0=z.asm.X).apply(null,arguments)},ae=z._emscripten_bind_Metadata_Metadata_0=function(){return(ae=z._emscripten_bind_Metadata_Metadata_0=z.asm.Y).apply(null,arguments)},ce=z._emscripten_bind_Metadata___destroy___0=function(){return(ce=z._emscripten_bind_Metadata___destroy___0=z.asm.Z).apply(null,arguments)},se=z._emscripten_bind_Status_code_0=function(){return(se=z._emscripten_bind_Status_code_0=z.asm._).apply(null,arguments)},ue=z._emscripten_bind_Status_ok_0=function(){return(ue=z._emscripten_bind_Status_ok_0=z.asm.$).apply(null,arguments)},ye=z._emscripten_bind_Status_error_msg_0=function(){return(ye=z._emscripten_bind_Status_error_msg_0=z.asm.aa).apply(null,arguments)},le=z._emscripten_bind_Status___destroy___0=function(){return(le=z._emscripten_bind_Status___destroy___0=z.asm.ba).apply(null,arguments)},fe=z._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(fe=z._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=z.asm.ca).apply(null,arguments)},me=z._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(me=z._emscripten_bind_DracoFloat32Array_GetValue_1=z.asm.da).apply(null,arguments)},de=z._emscripten_bind_DracoFloat32Array_size_0=function(){return(de=z._emscripten_bind_DracoFloat32Array_size_0=z.asm.ea).apply(null,arguments)},be=z._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(be=z._emscripten_bind_DracoFloat32Array___destroy___0=z.asm.fa).apply(null,arguments)},he=z._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(he=z._emscripten_bind_DracoInt8Array_DracoInt8Array_0=z.asm.ga).apply(null,arguments)},Ae=z._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ae=z._emscripten_bind_DracoInt8Array_GetValue_1=z.asm.ha).apply(null,arguments)},Te=z._emscripten_bind_DracoInt8Array_size_0=function(){return(Te=z._emscripten_bind_DracoInt8Array_size_0=z.asm.ia).apply(null,arguments)},De=z._emscripten_bind_DracoInt8Array___destroy___0=function(){return(De=z._emscripten_bind_DracoInt8Array___destroy___0=z.asm.ja).apply(null,arguments)},Ie=z._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ie=z._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=z.asm.ka).apply(null,arguments)},je=z._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(je=z._emscripten_bind_DracoUInt8Array_GetValue_1=z.asm.la).apply(null,arguments)},Ee=z._emscripten_bind_DracoUInt8Array_size_0=function(){return(Ee=z._emscripten_bind_DracoUInt8Array_size_0=z.asm.ma).apply(null,arguments)},Ge=z._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ge=z._emscripten_bind_DracoUInt8Array___destroy___0=z.asm.na).apply(null,arguments)},ve=z._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(ve=z._emscripten_bind_DracoInt16Array_DracoInt16Array_0=z.asm.oa).apply(null,arguments)},Oe=z._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Oe=z._emscripten_bind_DracoInt16Array_GetValue_1=z.asm.pa).apply(null,arguments)},Pe=z._emscripten_bind_DracoInt16Array_size_0=function(){return(Pe=z._emscripten_bind_DracoInt16Array_size_0=z.asm.qa).apply(null,arguments)},Re=z._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Re=z._emscripten_bind_DracoInt16Array___destroy___0=z.asm.ra).apply(null,arguments)},Se=z._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Se=z._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=z.asm.sa).apply(null,arguments)},ge=z._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(ge=z._emscripten_bind_DracoUInt16Array_GetValue_1=z.asm.ta).apply(null,arguments)},Me=z._emscripten_bind_DracoUInt16Array_size_0=function(){return(Me=z._emscripten_bind_DracoUInt16Array_size_0=z.asm.ua).apply(null,arguments)},Ne=z._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ne=z._emscripten_bind_DracoUInt16Array___destroy___0=z.asm.va).apply(null,arguments)},Ue=z._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ue=z._emscripten_bind_DracoInt32Array_DracoInt32Array_0=z.asm.wa).apply(null,arguments)},Fe=z._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Fe=z._emscripten_bind_DracoInt32Array_GetValue_1=z.asm.xa).apply(null,arguments)},Ce=z._emscripten_bind_DracoInt32Array_size_0=function(){return(Ce=z._emscripten_bind_DracoInt32Array_size_0=z.asm.ya).apply(null,arguments)},Le=z._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Le=z._emscripten_bind_DracoInt32Array___destroy___0=z.asm.za).apply(null,arguments)},$e=z._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return($e=z._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=z.asm.Aa).apply(null,arguments)},we=z._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(we=z._emscripten_bind_DracoUInt32Array_GetValue_1=z.asm.Ba).apply(null,arguments)},ze=z._emscripten_bind_DracoUInt32Array_size_0=function(){return(ze=z._emscripten_bind_DracoUInt32Array_size_0=z.asm.Ca).apply(null,arguments)},Ve=z._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(Ve=z._emscripten_bind_DracoUInt32Array___destroy___0=z.asm.Da).apply(null,arguments)},Be=z._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Be=z._emscripten_bind_MetadataQuerier_MetadataQuerier_0=z.asm.Ea).apply(null,arguments)},We=z._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(We=z._emscripten_bind_MetadataQuerier_HasEntry_2=z.asm.Fa).apply(null,arguments)},ke=z._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ke=z._emscripten_bind_MetadataQuerier_GetIntEntry_2=z.asm.Ga).apply(null,arguments)},Qe=z._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(Qe=z._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=z.asm.Ha).apply(null,arguments)},xe=z._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(xe=z._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=z.asm.Ia).apply(null,arguments)},Ye=z._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(Ye=z._emscripten_bind_MetadataQuerier_GetStringEntry_2=z.asm.Ja).apply(null,arguments)},He=z._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(He=z._emscripten_bind_MetadataQuerier_NumEntries_1=z.asm.Ka).apply(null,arguments)},qe=z._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(qe=z._emscripten_bind_MetadataQuerier_GetEntryName_2=z.asm.La).apply(null,arguments)},Xe=z._emscripten_bind_MetadataQuerier___destroy___0=function(){return(Xe=z._emscripten_bind_MetadataQuerier___destroy___0=z.asm.Ma).apply(null,arguments)},Ke=z._emscripten_bind_Decoder_Decoder_0=function(){return(Ke=z._emscripten_bind_Decoder_Decoder_0=z.asm.Na).apply(null,arguments)},Je=z._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(Je=z._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=z.asm.Oa).apply(null,arguments)},Ze=z._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(Ze=z._emscripten_bind_Decoder_DecodeArrayToMesh_3=z.asm.Pa).apply(null,arguments)},tr=z._emscripten_bind_Decoder_GetAttributeId_2=function(){return(tr=z._emscripten_bind_Decoder_GetAttributeId_2=z.asm.Qa).apply(null,arguments)},er=z._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(er=z._emscripten_bind_Decoder_GetAttributeIdByName_2=z.asm.Ra).apply(null,arguments)},rr=z._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rr=z._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=z.asm.Sa).apply(null,arguments)},nr=z._emscripten_bind_Decoder_GetAttribute_2=function(){return(nr=z._emscripten_bind_Decoder_GetAttribute_2=z.asm.Ta).apply(null,arguments)},or=z._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(or=z._emscripten_bind_Decoder_GetAttributeByUniqueId_2=z.asm.Ua).apply(null,arguments)},_r=z._emscripten_bind_Decoder_GetMetadata_1=function(){return(_r=z._emscripten_bind_Decoder_GetMetadata_1=z.asm.Va).apply(null,arguments)},ir=z._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(ir=z._emscripten_bind_Decoder_GetAttributeMetadata_2=z.asm.Wa).apply(null,arguments)},pr=z._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(pr=z._emscripten_bind_Decoder_GetFaceFromMesh_3=z.asm.Xa).apply(null,arguments)},ar=z._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(ar=z._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=z.asm.Ya).apply(null,arguments)},cr=z._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(cr=z._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=z.asm.Za).apply(null,arguments)},sr=z._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(sr=z._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=z.asm._a).apply(null,arguments)},ur=z._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(ur=z._emscripten_bind_Decoder_GetAttributeFloat_3=z.asm.$a).apply(null,arguments)},yr=z._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(yr=z._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=z.asm.ab).apply(null,arguments)},lr=z._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(lr=z._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=z.asm.bb).apply(null,arguments)},fr=z._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(fr=z._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=z.asm.cb).apply(null,arguments)},mr=z._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(mr=z._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=z.asm.db).apply(null,arguments)},dr=z._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(dr=z._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=z.asm.eb).apply(null,arguments)},br=z._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(br=z._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=z.asm.fb).apply(null,arguments)},hr=z._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(hr=z._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=z.asm.gb).apply(null,arguments)},Ar=z._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ar=z._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=z.asm.hb).apply(null,arguments)},Tr=z._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Tr=z._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=z.asm.ib).apply(null,arguments)},Dr=z._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Dr=z._emscripten_bind_Decoder_SkipAttributeTransform_1=z.asm.jb).apply(null,arguments)},Ir=z._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Ir=z._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=z.asm.kb).apply(null,arguments)},jr=z._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(jr=z._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=z.asm.lb).apply(null,arguments)},Er=z._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Er=z._emscripten_bind_Decoder_DecodeBufferToMesh_2=z.asm.mb).apply(null,arguments)},Gr=z._emscripten_bind_Decoder___destroy___0=function(){return(Gr=z._emscripten_bind_Decoder___destroy___0=z.asm.nb).apply(null,arguments)},vr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(vr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=z.asm.ob).apply(null,arguments)},Or=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Or=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=z.asm.pb).apply(null,arguments)},Pr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Pr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=z.asm.qb).apply(null,arguments)},Rr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Rr=z._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=z.asm.rb).apply(null,arguments)},Sr=z._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Sr=z._emscripten_enum_draco_GeometryAttribute_Type_INVALID=z.asm.sb).apply(null,arguments)},gr=z._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(gr=z._emscripten_enum_draco_GeometryAttribute_Type_POSITION=z.asm.tb).apply(null,arguments)},Mr=z._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Mr=z._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=z.asm.ub).apply(null,arguments)},Nr=z._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Nr=z._emscripten_enum_draco_GeometryAttribute_Type_COLOR=z.asm.vb).apply(null,arguments)},Ur=z._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Ur=z._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=z.asm.wb).apply(null,arguments)},Fr=z._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Fr=z._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=z.asm.xb).apply(null,arguments)},Cr=z._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Cr=z._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=z.asm.yb).apply(null,arguments)},Lr=z._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Lr=z._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=z.asm.zb).apply(null,arguments)},$r=z._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return($r=z._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=z.asm.Ab).apply(null,arguments)},wr=z._emscripten_enum_draco_DataType_DT_INVALID=function(){return(wr=z._emscripten_enum_draco_DataType_DT_INVALID=z.asm.Bb).apply(null,arguments)},zr=z._emscripten_enum_draco_DataType_DT_INT8=function(){return(zr=z._emscripten_enum_draco_DataType_DT_INT8=z.asm.Cb).apply(null,arguments)},Vr=z._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Vr=z._emscripten_enum_draco_DataType_DT_UINT8=z.asm.Db).apply(null,arguments)},Br=z._emscripten_enum_draco_DataType_DT_INT16=function(){return(Br=z._emscripten_enum_draco_DataType_DT_INT16=z.asm.Eb).apply(null,arguments)},Wr=z._emscripten_enum_draco_DataType_DT_UINT16=function(){return(Wr=z._emscripten_enum_draco_DataType_DT_UINT16=z.asm.Fb).apply(null,arguments)},kr=z._emscripten_enum_draco_DataType_DT_INT32=function(){return(kr=z._emscripten_enum_draco_DataType_DT_INT32=z.asm.Gb).apply(null,arguments)},Qr=z._emscripten_enum_draco_DataType_DT_UINT32=function(){return(Qr=z._emscripten_enum_draco_DataType_DT_UINT32=z.asm.Hb).apply(null,arguments)},xr=z._emscripten_enum_draco_DataType_DT_INT64=function(){return(xr=z._emscripten_enum_draco_DataType_DT_INT64=z.asm.Ib).apply(null,arguments)},Yr=z._emscripten_enum_draco_DataType_DT_UINT64=function(){return(Yr=z._emscripten_enum_draco_DataType_DT_UINT64=z.asm.Jb).apply(null,arguments)},Hr=z._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(Hr=z._emscripten_enum_draco_DataType_DT_FLOAT32=z.asm.Kb).apply(null,arguments)},qr=z._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(qr=z._emscripten_enum_draco_DataType_DT_FLOAT64=z.asm.Lb).apply(null,arguments)},Xr=z._emscripten_enum_draco_DataType_DT_BOOL=function(){return(Xr=z._emscripten_enum_draco_DataType_DT_BOOL=z.asm.Mb).apply(null,arguments)},Kr=z._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(Kr=z._emscripten_enum_draco_DataType_DT_TYPES_COUNT=z.asm.Nb).apply(null,arguments)},Jr=z._emscripten_enum_draco_StatusCode_OK=function(){return(Jr=z._emscripten_enum_draco_StatusCode_OK=z.asm.Ob).apply(null,arguments)},Zr=z._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(Zr=z._emscripten_enum_draco_StatusCode_DRACO_ERROR=z.asm.Pb).apply(null,arguments)},tn=z._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(tn=z._emscripten_enum_draco_StatusCode_IO_ERROR=z.asm.Qb).apply(null,arguments)},en=z._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(en=z._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=z.asm.Rb).apply(null,arguments)},rn=z._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(rn=z._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=z.asm.Sb).apply(null,arguments)},nn=z._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(nn=z._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=z.asm.Tb).apply(null,arguments)},on=z._malloc=function(){return(on=z._malloc=z.asm.Ub).apply(null,arguments)};if(z._free=function(){return(z._free=z.asm.Vb).apply(null,arguments)},bt=function t(){It||y(),It||(bt=t)},z.run=y,z.preInit)for("function"==typeof z.preInit&&(z.preInit=[z.preInit]);0 >>8&255,H[2]=v>>>16&255,H[3]=v>>>24&255,i.check=r(i.check,H,4,0)),p=v=0,i.mode=4;case 4:for(;p<16;){if(0===_)break e;_--,v+=h[w++]< >8),512&i.flags&&(H[0]=255&v,H[1]=v>>>8&255,i.check=r(i.check,H,2,0)),p=v=0,i.mode=5;case 5:if(1024&i.flags){for(;p<16;){if(0===_)break e;_--,v+=h[w++]< >>8&255,i.check=r(i.check,H,2,0)),p=v=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(_<(Z=i.length)&&(Z=_),Z&&(i.head&&(D=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),n.arraySet(i.head.extra,h,w,Z,D)),512&i.flags&&(i.check=r(i.check,h,Z,w)),_-=Z,w+=Z,i.length-=Z),i.length))break e;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===_)break e;for(Z=0;D=h[w+Z++],i.head&&D&&i.length<65536&&(i.head.name+=String.fromCharCode(D)),D&&Z<_;);if(512&i.flags&&(i.check=r(i.check,h,Z,w)),_-=Z,w+=Z,D)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=8;case 8:if(4096&i.flags){if(0===_)break e;for(Z=0;D=h[w+Z++],i.head&&D&&i.length<65536&&(i.head.comment+=String.fromCharCode(D)),D&&Z<_;);if(512&i.flags&&(i.check=r(i.check,h,Z,w)),_-=Z,w+=Z,D)break e}else i.head&&(i.head.comment=null);i.mode=9;case 9:if(512&i.flags){for(;p<16;){if(0===_)break e;_--,v+=h[w++]< >9&1,i.head.done=!0),e.adler=i.check=0,i.mode=12;break;case 10:for(;p<32;){if(0===_)break e;_--,v+=h[w++]< >>=7&p,p-=7&p,i.mode=27;break}for(;p<3;){if(0===_)break e;_--,v+=h[w++]< >>=1)){case 0:i.mode=14;break;case 1:if(S(i),i.mode=20,6!==t)break;v>>>=2,p-=2;break e;case 2:i.mode=17;break;case 3:e.msg="invalid block type",i.mode=30}v>>>=2,p-=2;break;case 14:for(v>>>=7&p,p-=7&p;p<32;){if(0===_)break e;_--,v+=h[w++]< >>16^65535)){e.msg="invalid stored block lengths",i.mode=30;break}if(i.length=65535&v,p=v=0,i.mode=15,6===t)break e;case 15:i.mode=16;case 16:if(Z=i.length){if(_ >>=z,p-=z,i.lens[i.have++]=N;else{if(16===N){for(F=z+2;p >O)])>>>16&255,N=65535&L,!(O+(z=L>>>24)<=p);){if(0===_)break e;_--,v+=h[w++]< >>=O,p-=O,i.back+=O}if(v>>>=z,p-=z,i.back+=z,i.length=N,0===R){i.mode=26;break}if(32&R){i.back=-1,i.mode=12;break}if(64&R){e.msg="invalid literal/length code",i.mode=30;break}i.extra=15&R,i.mode=22;case 22:if(i.extra){for(F=i.extra;p >O)])>>>16&255,N=65535&L,!(O+(z=L>>>24)<=p);){if(0===_)break e;_--,v+=h[w++]< >>=O,p-=O,i.back+=O}if(v>>>=z,p-=z,i.back+=z,64&R){e.msg="invalid distance code",i.mode=30;break}i.offset=N,i.extra=15&R,i.mode=24;case 24:if(i.extra){for(F=i.extra;p ${t} 4)throw new r.DeveloperError("options.componentsPerAttribute must be between 1 and 4.");if(!n.defined(t.values))throw new r.DeveloperError("options.values is required.");this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=n.defaultValue(t.normalize,!1),this.values=t.values}I._textureCoordinateRotationPoints=function(t,r,n,i){let o;const s=e.Rectangle.center(i,p),u=e.Cartographic.toCartesian(s,n,l),c=a.Transforms.eastNorthUpToFixedFrame(u,n,N),I=e.Matrix4.inverse(c,N),d=m,y=f;y[0].longitude=i.west,y[0].latitude=i.south,y[1].longitude=i.west,y[1].latitude=i.north,y[2].longitude=i.east,y[2].latitude=i.south;let A=b;for(o=0;o<3;o++)e.Cartographic.toCartesian(y[o],n,A),A=e.Matrix4.multiplyByPointAsVector(I,A,A),d[o].x=A.x,d[o].y=A.y;const C=a.Quaternion.fromAxisAngle(e.Cartesian3.UNIT_Z,-r,E),P=e.Matrix3.fromQuaternion(C,L),w=t.length;let x=Number.POSITIVE_INFINITY,S=Number.POSITIVE_INFINITY,G=Number.NEGATIVE_INFINITY,R=Number.NEGATIVE_INFINITY;for(o=0;o a&&(g.timeStamp=C,++C),++c}v=u(t,a,b,m,C,w,p)}return E}},v={};function C(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function b(e){const t=e.length,r=t/3*6,n=l.IndexDatatype.createTypedArray(t,r);let i=0;for(let a=0;a =a.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new u.Geometry({attributes:s,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),r=[],n=[],o=0,s=T(e.attributes))}0!==n.length&&t.push(new u.Geometry({attributes:s,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};const E=new r.Cartesian3,D=new r.Cartographic;v.projectTo2D=function(e,t,s,l,p){if(!i.defined(e))throw new n.DeveloperError("geometry is required.");if(!i.defined(t))throw new n.DeveloperError("attributeName is required.");if(!i.defined(s))throw new n.DeveloperError("attributeName3D is required.");if(!i.defined(l))throw new n.DeveloperError("attributeName2D is required.");if(!i.defined(e.attributes[t]))throw new n.DeveloperError(`geometry must have attribute matching the attributeName argument: ${t}.`);if(e.attributes[t].componentDatatype!==a.ComponentDatatype.DOUBLE)throw new n.DeveloperError("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");const c=e.attributes[t];p=i.defined(p)?p:new o.GeographicProjection;const d=p.ellipsoid,f=c.values,m=new Float64Array(f.length);let y=0;for(let a=0;a =v[0]&&y[1]<=v[1]?[v[0],y[0],y[1],v[1]]:v[0]>=y[0]&&v[1]<=y[1]?[y[0],v[0],v[1],y[1]]:y[0]>v[0]&&y[0] n.x||r.x===n.x&&b(n,r)))&&(n=r,h=o)),r=r.next}while(r!==x);return n}function b(e,t){return z(e.prev,e,t.prev)<0&&z(t.next,e,e.next)<0}function A(e,t,n,r){var a=e;do{null===a.z&&(a.z=S(a.x,a.y,t,n,r)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next}while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,E(a)}function E(e){var t,n,r,a,i,s,u,o,x=1;do{n=e,e=null,i=null,s=0;while(n){for(s++,r=n,u=0,t=0;t x(c/h)&&O("overflow"),s*=h}t=v.length+1,_=P(C-i,t,0==i),x(C/t)>c-b&&O("overflow"),b+=x(C/t),C%=t,v.splice(C++,0,b)}return k(v)}function T(e){var t,n,r,o,i,s,a,u,p,h,v,w,C,b,_,S=[];for(e=q(e),w=e.length,t=g,n=0,i=m,s=0;s>>8^i[255&(t^e[h])];return-1^t}},{}],5:[function(t,e,a){"use strict";var n,r=t("../utils/common"),i=t("./trees"),s=t("./adler32"),h=t("./crc32"),l=t("./messages"),o=0,_=4,d=0,u=-2,f=-1,c=4,p=2,g=8,m=9,b=286,v=30,w=19,y=2*b+1,k=15,z=3,x=258,B=x+z+1,A=42,C=113,S=1,j=2,E=3,U=4;function D(t,e){return t.msg=l[e],e}function I(t){return(t<<1)-(4';return s+=`
",t||(s+='',s+=`
",s+='',s+=`
",s+='',s+=`
",s+='',s+=`
",s+='',s+=`
"),s}function getResourceCacheStatistics(){const e=ResourceCache.statistics;return`\n \n
\n `}const colorBlendModes=[{text:"Highlight",value:Cesium3DTileColorBlendMode.HIGHLIGHT},{text:"Replace",value:Cesium3DTileColorBlendMode.REPLACE},{text:"Mix",value:Cesium3DTileColorBlendMode.MIX}],highlightColor=new Color(1,1,0,.4),scratchColor=new Color,oldColor=new Color;function Cesium3DTilesInspectorViewModel(e,t){Check.typeOf.object("scene",e),Check.typeOf.object("performanceContainer",t);const i=this,s=e.canvas;this._eventHandler=new ScreenSpaceEventHandler(s),this._scene=e,this._performanceContainer=t,this._canvas=s,this._performanceDisplay=new PerformanceDisplay({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this._tileset=void 0,this._feature=void 0,this._tile=void 0,knockout.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile"]),this._properties=knockout.observable({}),this.properties=[],knockout.defineProperty(this,"properties",(function(){const e=[],t=i._properties();for(const i in t)t.hasOwnProperty(i)&&e.push(i);return e}));const o=knockout.observable();knockout.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(e){o(e),defined(i._tileset)&&(i._tileset.dynamicScreenSpaceError=e)}}),this.dynamicScreenSpaceError=!1;const n=knockout.observable();knockout.defineProperty(this,"colorBlendMode",{get:function(){return n()},set:function(e){n(e),defined(i._tileset)&&(i._tileset.colorBlendMode=e,i._scene.requestRender())}}),this.colorBlendMode=Cesium3DTileColorBlendMode.HIGHLIGHT;const r=knockout.observable(),c=knockout.observable();knockout.defineProperty(this,"picking",{get:function(){return c()},set:function(t){c(t),t?i._eventHandler.setInputAction((function(t){const s=e.pick(t.endPosition);if(s instanceof Cesium3DTileFeature?(i.feature=s,i.tile=s.content.tile):defined(s)&&defined(s.content)?(i.feature=void 0,i.tile=s.content.tile):(i.feature=void 0,i.tile=void 0),defined(i._tileset)){if(r&&defined(s)&&defined(s.content)){let o;e.pickPositionSupported&&(o=e.pickPosition(t.endPosition),defined(o)&&(i._tileset.debugPickPosition=o)),i._tileset.debugPickedTile=s.content.tile}else i._tileset.debugPickedTile=void 0;i._scene.requestRender()}}),ScreenSpaceEventType.MOUSE_MOVE):(i.feature=void 0,i.tile=void 0,i._eventHandler.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE))}}),this.picking=!0;const l=knockout.observable();knockout.defineProperty(this,"colorize",{get:function(){return l()},set:function(e){l(e),defined(i._tileset)&&(i._tileset.debugColorizeTiles=e,i._scene.requestRender())}}),this.colorize=!1;const u=knockout.observable();knockout.defineProperty(this,"wireframe",{get:function(){return u()},set:function(e){u(e),defined(i._tileset)&&(i._tileset.debugWireframe=e,i._scene.requestRender())}}),this.wireframe=!1;const a=knockout.observable();knockout.defineProperty(this,"showBoundingVolumes",{get:function(){return a()},set:function(e){a(e),defined(i._tileset)&&(i._tileset.debugShowBoundingVolume=e,i._scene.requestRender())}}),this.showBoundingVolumes=!1;const d=knockout.observable();knockout.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(e){d(e),defined(i._tileset)&&(i._tileset.debugShowContentBoundingVolume=e,i._scene.requestRender())}}),this.showContentBoundingVolumes=!1;const h=knockout.observable();knockout.defineProperty(this,"showRequestVolumes",{get:function(){return h()},set:function(e){h(e),defined(i._tileset)&&(i._tileset.debugShowViewerRequestVolume=e,i._scene.requestRender())}}),this.showRequestVolumes=!1;const f=knockout.observable();knockout.defineProperty(this,"freezeFrame",{get:function(){return f()},set:function(e){f(e),defined(i._tileset)&&(i._tileset.debugFreezeFrame=e,i._scene.debugShowFrustumPlanes=e,i._scene.requestRender())}}),this.freezeFrame=!1,knockout.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return r()},set:function(e){r(e),defined(i._tileset)&&(i._tileset.debugPickedTileLabelOnly=e,i._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;const g=knockout.observable();knockout.defineProperty(this,"showGeometricError",{get:function(){return g()},set:function(e){g(e),defined(i._tileset)&&(i._tileset.debugShowGeometricError=e,i._scene.requestRender())}}),this.showGeometricError=!1;const p=knockout.observable();knockout.defineProperty(this,"showRenderingStatistics",{get:function(){return p()},set:function(e){p(e),defined(i._tileset)&&(i._tileset.debugShowRenderingStatistics=e,i._scene.requestRender())}}),this.showRenderingStatistics=!1;const m=knockout.observable();knockout.defineProperty(this,"showMemoryUsage",{get:function(){return m()},set:function(e){m(e),defined(i._tileset)&&(i._tileset.debugShowMemoryUsage=e,i._scene.requestRender())}}),this.showMemoryUsage=!1;const S=knockout.observable();knockout.defineProperty(this,"showUrl",{get:function(){return S()},set:function(e){S(e),defined(i._tileset)&&(i._tileset.debugShowUrl=e,i._scene.requestRender())}}),this.showUrl=!1;const y=knockout.observable();knockout.defineProperty(this,"maximumScreenSpaceError",{get:function(){return y()},set:function(e){e=Number(e),isNaN(e)||(y(e),defined(i._tileset)&&(i._tileset.maximumScreenSpaceError=e))}}),this.maximumScreenSpaceError=16;const k=knockout.observable();knockout.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return k()},set:function(e){e=Number(e),isNaN(e)||(k(e),defined(i._tileset)&&(i._tileset.dynamicScreenSpaceErrorDensity=e))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,knockout.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(k(),1/6)},set:function(e){k(Math.pow(e,6))}});const b=knockout.observable();knockout.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return b()},set:function(e){e=Number(e),isNaN(e)||(b(e),defined(i._tileset)&&(i._tileset.dynamicScreenSpaceErrorFactor=e))}}),this.dynamicScreenSpaceErrorFactor=4;const _=getPickTileset(this),C=knockout.observable();knockout.defineProperty(this,"pickActive",{get:function(){return C()},set:function(e){C(e),e?i._eventHandler.setInputAction(_,ScreenSpaceEventType.LEFT_CLICK):i._eventHandler.removeInputAction(ScreenSpaceEventType.LEFT_CLICK)}});const v=knockout.observable();knockout.defineProperty(this,"pointCloudShading",{get:function(){return v()},set:function(e){v(e),defined(i._tileset)&&(i._tileset.pointCloudShading.attenuation=e)}}),this.pointCloudShading=!1;const D=knockout.observable();knockout.defineProperty(this,"geometricErrorScale",{get:function(){return D()},set:function(e){e=Number(e),isNaN(e)||(D(e),defined(i._tileset)&&(i._tileset.pointCloudShading.geometricErrorScale=e))}}),this.geometricErrorScale=1;const T=knockout.observable();knockout.defineProperty(this,"maximumAttenuation",{get:function(){return T()},set:function(e){e=Number(e),isNaN(e)||(T(e),defined(i._tileset)&&(i._tileset.pointCloudShading.maximumAttenuation=0===e?void 0:e))}}),this.maximumAttenuation=0;const L=knockout.observable();knockout.defineProperty(this,"baseResolution",{get:function(){return L()},set:function(e){e=Number(e),isNaN(e)||(L(e),defined(i._tileset)&&(i._tileset.pointCloudShading.baseResolution=0===e?void 0:e))}}),this.baseResolution=0;const E=knockout.observable();knockout.defineProperty(this,"eyeDomeLighting",{get:function(){return E()},set:function(e){E(e),defined(i._tileset)&&(i._tileset.pointCloudShading.eyeDomeLighting=e)}}),this.eyeDomeLighting=!1;const P=knockout.observable();knockout.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return P()},set:function(e){e=Number(e),isNaN(e)||(P(e),defined(i._tileset)&&(i._tileset.pointCloudShading.eyeDomeLightingStrength=e))}}),this.eyeDomeLightingStrength=1;const w=knockout.observable();knockout.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(e){e=Number(e),isNaN(e)||(w(e),defined(i._tileset)&&(i._tileset.pointCloudShading.eyeDomeLightingRadius=e))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;const V=knockout.observable();knockout.defineProperty(this,"skipLevelOfDetail",{get:function(){return V()},set:function(e){V(e),defined(i._tileset)&&(i._tileset.skipLevelOfDetail=e)}}),this.skipLevelOfDetail=!0;const M=knockout.observable();knockout.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return M()},set:function(e){e=Number(e),isNaN(e)||(M(e),defined(i._tileset)&&(i._tileset.skipScreenSpaceErrorFactor=e))}}),this.skipScreenSpaceErrorFactor=16;const R=knockout.observable();knockout.defineProperty(this,"baseScreenSpaceError",{get:function(){return R()},set:function(e){e=Number(e),isNaN(e)||(R(e),defined(i._tileset)&&(i._tileset.baseScreenSpaceError=e))}}),this.baseScreenSpaceError=1024;const O=knockout.observable();knockout.defineProperty(this,"skipLevels",{get:function(){return O()},set:function(e){e=Number(e),isNaN(e)||(O(e),defined(i._tileset)&&(i._tileset.skipLevels=e))}}),this.skipLevels=1;const I=knockout.observable();knockout.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return I()},set:function(e){I(e),defined(i._tileset)&&(i._tileset.immediatelyLoadDesiredLevelOfDetail=e)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;const x=knockout.observable();knockout.defineProperty(this,"loadSiblings",{get:function(){return x()},set:function(e){x(e),defined(i._tileset)&&(i._tileset.loadSiblings=e)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener((function(){i._update()})),defined(this._tileset)||selectTilesetOnHover(this,!0)}function hasFeatures(e){if(!defined(e))return!1;if(e.featuresLength>0)return!0;const t=e.innerContents;if(defined(t)){const e=t.length;for(let i=0;i
${t[e]} in frustum ${r}`}i+=`
Total: ${e.totalCommands}`}return i}function boundDepthFrustum(e,i,t){let r=Math.min(t,i);return r=Math.max(r,e),r}const scratchPickRay=new Ray,scratchPickCartesian=new Cartesian3;function CesiumInspectorViewModel(e,i){if(!defined(e))throw new DeveloperError("scene is required");if(!defined(i))throw new DeveloperError("performanceContainer is required");const t=this,r=e.canvas,n=new ScreenSpaceEventHandler(r);this._eventHandler=n,this._scene=e,this._canvas=r,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=i;const s=this._scene.globe;let o;function c(e){const i=t._scene.pick({x:e.position.x,y:e.position.y});defined(i)&&(t.primitive=defined(i.collection)?i.collection:i.primitive),t._scene.requestRender(),t.pickPrimitiveActive=!1}function u(e){let i;const r=s.ellipsoid,n=t._scene.camera.getPickRay(e.position,scratchPickRay),o=s.pick(n,t._scene,scratchPickCartesian);if(defined(o)){const e=r.cartesianToCartographic(o),t=s._surface.tileProvider._tilesToRenderByTextureCount;for(let r=0;!i&&r
NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;const i=e.data;defined(i)&&defined(i.tileBoundingRegion)?this.tileText+=`
Min: ${i.tileBoundingRegion.minimumHeight} Max: ${i.tileBoundingRegion.maximumHeight}`:this.tileText+="
(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}}),CesiumInspectorViewModel.prototype._update=function(){this.frustums&&(this.frustumStatisticText=frustumStatisticsToString(this._scene.debugFrustumStatistics));const e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=boundDepthFrustum(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`},CesiumInspectorViewModel.prototype.isDestroyed=function(){return!1},CesiumInspectorViewModel.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),destroyObject(this)};export default CesiumInspectorViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.css b/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.css
new file mode 100644
index 0000000000000000000000000000000000000000..4f62c31fd5837dfbce58264bbae33559a62bee01
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.css
@@ -0,0 +1 @@
+.cesium-widget{position:relative}.cesium-widget,.cesium-widget canvas{width:100%;height:100%;touch-action:none}.cesium-widget-credits{display:block;position:absolute;bottom:0;left:0;color:#fff;font-size:10px;text-shadow:0 0 2px #000;padding-right:5px}.cesium-widget-credits a,.cesium-widget-credits a:visited{color:#fff}.cesium-widget-errorPanel{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;background:rgba(0,0,0,.7);z-index:99999}.cesium-widget-errorPanel:before{display:inline-block;vertical-align:middle;height:100%;content:""}.cesium-widget-errorPanel-content{width:75%;max-width:500px;display:inline-block;text-align:left;vertical-align:middle;border:1px solid #510c00;border-radius:7px;background-color:#f0d9d5;font-size:14px;color:#510c00}.cesium-widget-errorPanel-content.expanded{max-width:75%}.cesium-widget-errorPanel-header{font-size:18px;font-family:Open Sans,Verdana,Geneva,sans-serif;background:#d69d93;border-bottom:2px solid #510c00;padding-bottom:10px;border-radius:3px 3px 0 0;padding:15px}.cesium-widget-errorPanel-scroll{overflow:auto;font-family:Open Sans,Verdana,Geneva,sans-serif;white-space:pre-wrap;padding:0 15px;margin:10px 0 20px 0}.cesium-widget-errorPanel-buttonPanel{padding:0 15px;margin:10px 0 20px 0;text-align:right}.cesium-widget-errorPanel-buttonPanel button{border-color:#510c00;background:#d69d93;color:#202020;margin:0}.cesium-widget-errorPanel-buttonPanel button:focus,.cesium-widget-errorPanel-buttonPanel button:hover{border-color:#510c00;background:#f0d9d5;color:#510c00}.cesium-widget-errorPanel-buttonPanel button:active{border-color:#510c00;background:#b17b72;color:#510c00}.cesium-widget-errorPanel-more-details{text-decoration:underline;cursor:pointer}.cesium-widget-errorPanel-more-details:hover{color:#2b0700}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.js b/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.js
new file mode 100644
index 0000000000000000000000000000000000000000..a36761656fd0dd276f472fafbb10d2496c5be18e
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/CesiumWidget/CesiumWidget.js
@@ -0,0 +1 @@
+import buildModuleUrl from"../../Core/buildModuleUrl.js";import Cartesian3 from"../../Core/Cartesian3.js";import Clock from"../../Core/Clock.js";import defaultValue from"../../Core/defaultValue.js";import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import Ellipsoid from"../../Core/Ellipsoid.js";import FeatureDetection from"../../Core/FeatureDetection.js";import formatError from"../../Core/formatError.js";import requestAnimationFrame from"../../Core/requestAnimationFrame.js";import ScreenSpaceEventHandler from"../../Core/ScreenSpaceEventHandler.js";import createWorldImagery from"../../Scene/createWorldImagery.js";import Globe from"../../Scene/Globe.js";import Moon from"../../Scene/Moon.js";import Scene from"../../Scene/Scene.js";import SceneMode from"../../Scene/SceneMode.js";import ShadowMode from"../../Scene/ShadowMode.js";import SkyAtmosphere from"../../Scene/SkyAtmosphere.js";import SkyBox from"../../Scene/SkyBox.js";import Sun from"../../Scene/Sun.js";import getElement from"../getElement.js";function getDefaultSkyBoxUrl(e){return buildModuleUrl(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function startRenderLoop(e){e._renderLoopRunning=!0;let t=0;function r(n){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{const o=e._targetFrameRate;if(defined(o)){const i=1e3/o,s=n-t;s>i&&(e.resize(),e.render(),t=n-s%i),requestAnimationFrame(r)}else e.resize(),e.render(),requestAnimationFrame(r)}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){const t="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(t,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(r)}function configurePixelRatio(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,defined(e._scene)&&(e._scene.pixelRatio=t),t}function configureCanvasSize(e){const t=e._canvas;let r=t.clientWidth,n=t.clientHeight;const o=configurePixelRatio(e);e._canvasClientWidth=r,e._canvasClientHeight=n,r*=o,n*=o,t.width=r,t.height=n,e._canRender=0!==r&&0!==n,e._lastDevicePixelRatio=window.devicePixelRatio}function configureCameraFrustum(e){const t=e._canvas,r=t.width,n=t.height;if(0!==r&&0!==n){const t=e._scene.camera.frustum;defined(t.aspectRatio)?t.aspectRatio=r/n:(t.top=t.right*(n/r),t.bottom=-t.top)}}function CesiumWidget(e,t){if(!defined(e))throw new DeveloperError("container is required.");e=getElement(e),t=defaultValue(t,defaultValue.EMPTY_OBJECT);const r=document.createElement("div");r.className="cesium-widget",e.appendChild(r);const n=document.createElement("canvas"),o=FeatureDetection.supportsImageRenderingPixelated();function i(){n!==n.ownerDocument.activeElement&&n.ownerDocument.activeElement.blur()}this._supportsImageRenderingPixelated=o,o&&(n.style.imageRendering=FeatureDetection.imageRenderingValue()),n.oncontextmenu=function(){return!1},n.onselectstart=function(){return!1},n.addEventListener("mousedown",i),n.addEventListener("pointerdown",i),r.appendChild(n);const s=document.createElement("div");s.className="cesium-widget-credits";const a=defined(t.creditContainer)?getElement(t.creditContainer):r;a.appendChild(s);const d=defined(t.creditViewport)?getElement(t.creditViewport):r,c=defaultValue(t.showRenderLoopErrors,!0),l=defaultValue(t.useBrowserRecommendedResolution,!0);this._element=r,this._container=e,this._canvas=n,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=d,this._creditContainer=a,this._innerCreditContainer=s,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=c,this._resolutionScale=1,this._useBrowserRecommendedResolution=l,this._forceResize=!1,this._clock=defined(t.clock)?t.clock:new Clock,configureCanvasSize(this);try{const e=new Scene({canvas:n,contextOptions:t.contextOptions,creditContainer:s,creditViewport:d,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:defaultValue(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=e,e.camera.constrainedAxis=Cartesian3.UNIT_Z,configurePixelRatio(this),configureCameraFrustum(this);const r=defaultValue(e.mapProjection.ellipsoid,Ellipsoid.WGS84);let o=t.globe;defined(o)||(o=new Globe(r)),!1!==o&&(e.globe=o,e.globe.shadows=defaultValue(t.terrainShadows,ShadowMode.RECEIVE_ONLY));let i=t.skyBox;defined(i)||(i=new SkyBox({sources:{positiveX:getDefaultSkyBoxUrl("px"),negativeX:getDefaultSkyBoxUrl("mx"),positiveY:getDefaultSkyBoxUrl("py"),negativeY:getDefaultSkyBoxUrl("my"),positiveZ:getDefaultSkyBoxUrl("pz"),negativeZ:getDefaultSkyBoxUrl("mz")}})),!1!==i&&(e.skyBox=i,e.sun=new Sun,e.moon=new Moon);let a=t.skyAtmosphere;defined(a)||(a=new SkyAtmosphere(r)),!1!==a&&(e.skyAtmosphere=a);let c=!1!==t.globe&&t.imageryProvider;defined(c)||(c=createWorldImagery()),!1!==c&&e.imageryLayers.addImageryProvider(c),defined(t.terrainProvider)&&!1!==t.globe&&(e.terrainProvider=t.terrainProvider),this._screenSpaceEventHandler=new ScreenSpaceEventHandler(n),defined(t.sceneMode)&&(t.sceneMode===SceneMode.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===SceneMode.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=defaultValue(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;const l=this;this._onRenderError=function(e,t){if(l._useDefaultRenderLoop=!1,l._renderLoopRunning=!1,l._showRenderLoopErrors){const e="An error occurred while rendering. Rendering has stopped.";l.showErrorPanel(e,void 0,t)}},e.renderError.addEventListener(this._onRenderError)}catch(u){if(c){const e="Error constructing CesiumWidget.",t='Visit http://get.webgl.org to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(e,t,u)}throw u}}Object.defineProperties(CesiumWidget.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){if(e<=0)throw new DeveloperError("targetFrameRate must be greater than 0, or undefined.");this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&startRenderLoop(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){if(e<=0)throw new DeveloperError("resolutionScale must be greater than 0.");this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}}),CesiumWidget.prototype.showErrorPanel=function(e,t,r){const n=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";const i=document.createElement("div");i.className="cesium-widget-errorPanel-content",o.appendChild(i);const s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),i.appendChild(s);const a=document.createElement("div");function d(){a.style.maxHeight=`${Math.max(Math.round(.9*n.clientHeight-100),30)}px`}a.className="cesium-widget-errorPanel-scroll",i.appendChild(a),d(),defined(window.addEventListener)&&window.addEventListener("resize",d,!1);const c=defined(t),l=defined(r);if(c||l){const n=document.createElement("div");if(n.className="cesium-widget-errorPanel-message",a.appendChild(n),l){let n=formatError(r);c||("string"===typeof r&&(r=new Error(r)),t=formatError({name:r.name,message:r.message}),n=r.stack),"undefined"!==typeof console&&console.error(`${e}\n${t}\n${n}`);const o=document.createElement("div");o.className="cesium-widget-errorPanel-message-details collapsed";const s=document.createElement("span");s.className="cesium-widget-errorPanel-more-details",s.appendChild(document.createTextNode("See more...")),o.appendChild(s),o.onclick=function(e){o.removeChild(s),o.appendChild(document.createTextNode(n)),o.className="cesium-widget-errorPanel-message-details",i.className="cesium-widget-errorPanel-content expanded",o.onclick=void 0},a.appendChild(o)}n.innerHTML=`
`,a.appendChild(u);const v=document.createElement("div");v.className="cesium-touch-navigation-help cesium-navigation-help-instructions",v.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),v.innerHTML=`
`,a.appendChild(v),knockout.applyBindings(i,n),this._container=e,this._viewModel=i,this._wrapper=n,this._closeInstructions=function(t){n.contains(t.target)||(i.showInstructions=!1)},FeatureDetection.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(NavigationHelpButton.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),NavigationHelpButton.prototype.isDestroyed=function(){return!1},NavigationHelpButton.prototype.destroy=function(){return FeatureDetection.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),knockout.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),destroyObject(this)};export default NavigationHelpButton;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/NavigationHelpButton/NavigationHelpButtonViewModel.js b/app/src/main/assets/dist/Widgets/NavigationHelpButton/NavigationHelpButtonViewModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..db5c232d72a456156bc140a62ca0306a647cec03
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/NavigationHelpButton/NavigationHelpButtonViewModel.js
@@ -0,0 +1 @@
+import knockout from"../../ThirdParty/knockout.js";import createCommand from"../createCommand.js";function NavigationHelpButtonViewModel(){this.showInstructions=!1;const t=this;this._command=createCommand((function(){t.showInstructions=!t.showInstructions})),this._showClick=createCommand((function(){t._touch=!1})),this._showTouch=createCommand((function(){t._touch=!0})),this._touch=!1,this.tooltip="Navigation Instructions",knockout.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(NavigationHelpButtonViewModel.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});export default NavigationHelpButtonViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/NavigationHelpButton/lighter.css b/app/src/main/assets/dist/Widgets/NavigationHelpButton/lighter.css
new file mode 100644
index 0000000000000000000000000000000000000000..6e0c12b6a6c53ac8a09ea53f12ffe438adfd5361
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/NavigationHelpButton/lighter.css
@@ -0,0 +1 @@
+.cesium-lighter .cesium-navigation-help-instructions{border:1px solid #759dc0;background-color:hsla(0,0%,100%,.9)}.cesium-lighter .cesium-navigation-help-pan{color:#6ce;font-weight:700}.cesium-lighter .cesium-navigation-help-zoom{color:#65ec00;font-weight:700}.cesium-lighter .cesium-navigation-help-rotate{color:#eec722;font-weight:700}.cesium-lighter .cesium-navigation-help-tilt{color:#d800d8;font-weight:700}.cesium-lighter .cesium-navigation-help-details{color:#222}.cesium-lighter .cesium-navigation-button{color:#222;border-top:1px solid #759dc0;border-right:1px solid #759dc0}.cesium-lighter .cesium-navigation-button-selected{background-color:rgba(196,225,255,.9)}.cesium-lighter .cesium-navigation-button-unselected{background-color:rgba(226,240,255,.9)}.cesium-lighter .cesium-navigation-button-unselected:hover{background-color:rgba(166,210,255,.9)}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.css b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.css
new file mode 100644
index 0000000000000000000000000000000000000000..4893be2d710f82148db3278a560b267825893368
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.css
@@ -0,0 +1 @@
+.cesium-performance-watchdog-message-area{position:relative;background-color:#ff0;color:#000;padding:10px}.cesium-performance-watchdog-message{margin-right:30px}.cesium-performance-watchdog-message-dismiss{position:absolute;right:0;margin:0 10px 0 0}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.js b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5bbd23835599696476833ba3fe9446d1f305ab7
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdog.js
@@ -0,0 +1 @@
+import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import knockout from"../../ThirdParty/knockout.js";import getElement from"../getElement.js";import PerformanceWatchdogViewModel from"./PerformanceWatchdogViewModel.js";function PerformanceWatchdog(e){if(!defined(e)||!defined(e.container))throw new DeveloperError("options.container is required.");if(!defined(e.scene))throw new DeveloperError("options.scene is required.");const t=getElement(e.container),o=new PerformanceWatchdogViewModel(e),r=document.createElement("div");r.className="cesium-performance-watchdog-message-area",r.setAttribute("data-bind","visible: showingLowFrameRateMessage");const n=document.createElement("button");n.setAttribute("type","button"),n.className="cesium-performance-watchdog-message-dismiss",n.innerHTML="×",n.setAttribute("data-bind","click: dismissMessage"),r.appendChild(n);const i=document.createElement("div");i.className="cesium-performance-watchdog-message",i.setAttribute("data-bind","html: lowFrameRateMessage"),r.appendChild(i),t.appendChild(r),knockout.applyBindings(o,r),this._container=t,this._viewModel=o,this._element=r}Object.defineProperties(PerformanceWatchdog.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),PerformanceWatchdog.prototype.isDestroyed=function(){return!1},PerformanceWatchdog.prototype.destroy=function(){return this._viewModel.destroy(),knockout.cleanNode(this._element),this._container.removeChild(this._element),destroyObject(this)};export default PerformanceWatchdog;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel.js b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..bcbc4d1d226850b0bf2b3a5a16911f2cce7037d4
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel.js
@@ -0,0 +1 @@
+import defaultValue from"../../Core/defaultValue.js";import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import FrameRateMonitor from"../../Scene/FrameRateMonitor.js";import knockout from"../../ThirdParty/knockout.js";import createCommand from"../createCommand.js";function PerformanceWatchdogViewModel(e){if(!defined(e)||!defined(e.scene))throw new DeveloperError("options.scene is required.");this._scene=e.scene,this.lowFrameRateMessage=defaultValue(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,knockout.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);const s=this;this._dismissMessage=createCommand((function(){s.showingLowFrameRateMessage=!1,s.lowFrameRateMessageDismissed=!0}));const o=FrameRateMonitor.fromScene(e.scene);this._unsubscribeLowFrameRate=o.lowFrameRate.addEventListener((function(){s.lowFrameRateMessageDismissed||(s.showingLowFrameRateMessage=!0)})),this._unsubscribeNominalFrameRate=o.nominalFrameRate.addEventListener((function(){s.showingLowFrameRateMessage=!1}))}Object.defineProperties(PerformanceWatchdogViewModel.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}}),PerformanceWatchdogViewModel.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),destroyObject(this)};export default PerformanceWatchdogViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.css b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.css
new file mode 100644
index 0000000000000000000000000000000000000000..f04f318dff4cc0b7e0d833aae6f6fc51d8e23127
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.css
@@ -0,0 +1 @@
+span.cesium-projectionPicker-wrapper{display:inline-block;position:relative;margin:0 3px}.cesium-projectionPicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-projectionPicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-projectionPicker-wrapper .cesium-projectionPicker-none{display:none}.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic,.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective{margin:0 0 3px 0}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic{left:100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective{left:-100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.js b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cdf28d2ed9e830e67189544a1225ad34f742aae
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPicker.js
@@ -0,0 +1 @@
+import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import FeatureDetection from"../../Core/FeatureDetection.js";import knockout from"../../ThirdParty/knockout.js";import getElement from"../getElement.js";import ProjectionPickerViewModel from"./ProjectionPickerViewModel.js";const perspectivePath="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",orthographicPath="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function ProjectionPicker(e,t){if(!defined(e))throw new DeveloperError("container is required.");if(!defined(t))throw new DeveloperError("scene is required.");e=getElement(e);const o=new ProjectionPickerViewModel(t);o._perspectivePath=perspectivePath,o._orthographicPath=orthographicPath;const i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);const r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='\x3c!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --\x3e\x3c!-- /ko --\x3e',i.appendChild(r);const c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(c);const n=document.createElement("button");n.type="button",n.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",n.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(n),knockout.applyBindings(o,i),this._viewModel=o,this._container=e,this._wrapper=i,this._closeDropDown=function(e){i.contains(e.target)||(o.dropDownVisible=!1)},FeatureDetection.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(ProjectionPicker.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),ProjectionPicker.prototype.isDestroyed=function(){return!1},ProjectionPicker.prototype.destroy=function(){return this._viewModel.destroy(),FeatureDetection.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),knockout.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),destroyObject(this)};export default ProjectionPicker;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPickerViewModel.js b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPickerViewModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..5397ef4e43d35c2dd34b9a4c4851989d414b46c7
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/ProjectionPicker/ProjectionPickerViewModel.js
@@ -0,0 +1 @@
+import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import EventHelper from"../../Core/EventHelper.js";import OrthographicFrustum from"../../Core/OrthographicFrustum.js";import SceneMode from"../../Scene/SceneMode.js";import knockout from"../../ThirdParty/knockout.js";import createCommand from"../createCommand.js";function ProjectionPickerViewModel(e){if(!defined(e))throw new DeveloperError("scene is required.");this._scene=e,this._orthographic=e.camera.frustum instanceof OrthographicFrustum,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,knockout.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);const o=this;knockout.defineProperty(this,"selectedTooltip",(function(){return o._orthographic?o.tooltipOrthographic:o.tooltipPerspective})),this._toggleDropDown=createCommand((function(){o.sceneMode===SceneMode.SCENE2D||o._flightInProgress||(o.dropDownVisible=!o.dropDownVisible)})),this._eventHelper=new EventHelper,this._eventHelper.add(e.morphComplete,(function(e,t,r,i){o.sceneMode=r,o._orthographic=r===SceneMode.SCENE2D||o._scene.camera.frustum instanceof OrthographicFrustum})),this._eventHelper.add(e.preRender,(function(){o._flightInProgress=defined(e.camera._currentFlight)})),this._switchToPerspective=createCommand((function(){o.sceneMode!==SceneMode.SCENE2D&&(o._scene.camera.switchToPerspectiveFrustum(),o._orthographic=!1,o.dropDownVisible=!1)})),this._switchToOrthographic=createCommand((function(){o.sceneMode!==SceneMode.SCENE2D&&(o._scene.camera.switchToOrthographicFrustum(),o._orthographic=!0,o.dropDownVisible=!1)})),this._sceneMode=SceneMode}Object.defineProperties(ProjectionPickerViewModel.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}}),ProjectionPickerViewModel.prototype.isDestroyed=function(){return!1},ProjectionPickerViewModel.prototype.destroy=function(){this._eventHelper.removeAll(),destroyObject(this)};export default ProjectionPickerViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.css b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.css
new file mode 100644
index 0000000000000000000000000000000000000000..73da3360bf9ef5f1f53dbbd2164769125f01bd04
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.css
@@ -0,0 +1 @@
+span.cesium-sceneModePicker-wrapper{display:inline-block;position:relative;margin:0 3px}.cesium-sceneModePicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-sceneModePicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none{display:none}.cesium-sceneModePicker-slide-svg{transition:left 2s;top:0;left:0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView{margin:0 0 3px 0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView{left:200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D{left:-200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D{left:-100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.js b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.js
new file mode 100644
index 0000000000000000000000000000000000000000..d6a2c6ada056ae1ed6ed6b53be6a27dd0fda834f
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePicker.js
@@ -0,0 +1 @@
+import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import FeatureDetection from"../../Core/FeatureDetection.js";import knockout from"../../ThirdParty/knockout.js";import getElement from"../getElement.js";import SceneModePickerViewModel from"./SceneModePickerViewModel.js";const globePath="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",flatMapPath="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",columbusViewPath="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function SceneModePicker(e,o,t){if(!defined(e))throw new DeveloperError("container is required.");if(!defined(o))throw new DeveloperError("scene is required.");e=getElement(e);const c=new SceneModePickerViewModel(o,t);c._globePath=globePath,c._flatMapPath=flatMapPath,c._columbusViewPath=columbusViewPath;const i=document.createElement("span");i.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(i);const n=document.createElement("button");n.type="button",n.className="cesium-button cesium-toolbar-button",n.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),n.innerHTML='\x3c!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --\x3e\x3c!-- /ko --\x3e',i.appendChild(n);const s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),i.appendChild(s);const r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),i.appendChild(r);const d=document.createElement("button");d.type="button",d.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",d.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),i.appendChild(d),knockout.applyBindings(c,i),this._viewModel=c,this._container=e,this._wrapper=i,this._closeDropDown=function(e){i.contains(e.target)||(c.dropDownVisible=!1)},FeatureDetection.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(SceneModePicker.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),SceneModePicker.prototype.isDestroyed=function(){return!1},SceneModePicker.prototype.destroy=function(){return this._viewModel.destroy(),FeatureDetection.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),knockout.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),destroyObject(this)};export default SceneModePicker;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePickerViewModel.js b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePickerViewModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..d485c1a1141f73b34e7ebf442de56ea21639d671
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SceneModePicker/SceneModePickerViewModel.js
@@ -0,0 +1 @@
+import defaultValue from"../../Core/defaultValue.js";import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import EventHelper from"../../Core/EventHelper.js";import SceneMode from"../../Scene/SceneMode.js";import knockout from"../../ThirdParty/knockout.js";import createCommand from"../createCommand.js";function SceneModePickerViewModel(e,o){if(!defined(e))throw new DeveloperError("scene is required.");this._scene=e;const t=this,r=function(e,o,r,i){t.sceneMode=r,t.dropDownVisible=!1};this._eventHelper=new EventHelper,this._eventHelper.add(e.morphStart,r),this._duration=defaultValue(o,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",knockout.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,knockout.defineProperty(this,"selectedTooltip",(function(){const e=t.sceneMode;return e===SceneMode.SCENE2D?t.tooltip2D:e===SceneMode.SCENE3D?t.tooltip3D:t.tooltipColumbusView})),this._toggleDropDown=createCommand((function(){t.dropDownVisible=!t.dropDownVisible})),this._morphTo2D=createCommand((function(){e.morphTo2D(t._duration)})),this._morphTo3D=createCommand((function(){e.morphTo3D(t._duration)})),this._morphToColumbusView=createCommand((function(){e.morphToColumbusView(t._duration)})),this._sceneMode=SceneMode}Object.defineProperties(SceneModePickerViewModel.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){if(e<0)throw new DeveloperError("duration value must be positive.");this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}}),SceneModePickerViewModel.prototype.isDestroyed=function(){return!1},SceneModePickerViewModel.prototype.destroy=function(){this._eventHelper.removeAll(),destroyObject(this)};export default SceneModePickerViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.css b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.css
new file mode 100644
index 0000000000000000000000000000000000000000..896c1d798a25e306beb149e54b221dde9a167c7e
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.css
@@ -0,0 +1 @@
+.cesium-selection-wrapper{position:absolute;width:160px;height:160px;pointer-events:none;visibility:hidden;opacity:0;transition:visibility 0s .2s,opacity .2s ease-in}.cesium-selection-wrapper-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out}.cesium-selection-wrapper svg{fill:#2e2;stroke:#000;stroke-width:1.1px}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.js b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.js
new file mode 100644
index 0000000000000000000000000000000000000000..78928bed4f4063f9fcaa6f7201dcb7762057b609
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicator.js
@@ -0,0 +1 @@
+import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import knockout from"../../ThirdParty/knockout.js";import getElement from"../getElement.js";import SelectionIndicatorViewModel from"./SelectionIndicatorViewModel.js";function SelectionIndicator(e,t){if(!defined(e))throw new DeveloperError("container is required.");e=getElement(e),this._container=e;const o=document.createElement("div");o.className="cesium-selection-wrapper",o.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(o),this._element=o;const i="http://www.w3.org/2000/svg",n="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");const s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);const c=document.createElementNS(i,"path");c.setAttribute("data-bind","attr: { transform: _transform }"),c.setAttribute("d",n),s.appendChild(c),o.appendChild(r);const d=new SelectionIndicatorViewModel(t,this._element,this._container);this._viewModel=d,knockout.applyBindings(this._viewModel,this._element)}Object.defineProperties(SelectionIndicator.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),SelectionIndicator.prototype.isDestroyed=function(){return!1},SelectionIndicator.prototype.destroy=function(){const e=this._container;return knockout.cleanNode(this._element),e.removeChild(this._element),destroyObject(this)};export default SelectionIndicator;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicatorViewModel.js b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicatorViewModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..9dd8b4693c51d73b9876b4147835f4933da7d5ec
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SelectionIndicator/SelectionIndicatorViewModel.js
@@ -0,0 +1 @@
+import Cartesian2 from"../../Core/Cartesian2.js";import defaultValue from"../../Core/defaultValue.js";import defined from"../../Core/defined.js";import DeveloperError from"../../Core/DeveloperError.js";import EasingFunction from"../../Core/EasingFunction.js";import SceneTransforms from"../../Scene/SceneTransforms.js";import knockout from"../../ThirdParty/knockout.js";const screenSpacePos=new Cartesian2,offScreen="-1000px";function SelectionIndicatorViewModel(e,t,o){if(!defined(e))throw new DeveloperError("scene is required.");if(!defined(t))throw new DeveloperError("selectionIndicatorElement is required.");if(!defined(o))throw new DeveloperError("container is required.");this._scene=e,this._screenPositionX=offScreen,this._screenPositionY=offScreen,this._tweens=e.tweens,this._container=defaultValue(o,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,knockout.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,knockout.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&defined(this.position)}}),knockout.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(t,o){return SceneTransforms.wgs84ToWindowCoordinates(e,t,o)}}SelectionIndicatorViewModel.prototype.update=function(){if(this.showSelection&&defined(this.position)){const e=this.computeScreenSpacePosition(this.position,screenSpacePos);if(defined(e)){const t=this._container,o=t.parentNode.clientWidth,i=t.parentNode.clientHeight,n=this._selectionIndicatorElement.clientWidth,r=.5*n;e.x=Math.min(Math.max(e.x,-n),o+n)-r,e.y=Math.min(Math.max(e.y,-n),i+n)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}else this._screenPositionX=offScreen,this._screenPositionY=offScreen}},SelectionIndicatorViewModel.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:EasingFunction.EXPONENTIAL_OUT})},SelectionIndicatorViewModel.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:EasingFunction.EXPONENTIAL_OUT})},Object.defineProperties(SelectionIndicatorViewModel.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});export default SelectionIndicatorViewModel;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/SvgPathBindingHandler.js b/app/src/main/assets/dist/Widgets/SvgPathBindingHandler.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab09c6bfb9a2d60e5f02136b1ef76e3fc1b92fd4
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/SvgPathBindingHandler.js
@@ -0,0 +1 @@
+const svgNS="http://www.w3.org/2000/svg",svgClassName="cesium-svgPath-svg",SvgPathBindingHandler={register:function(t){t.bindingHandlers.cesiumSvgPath={init:function(e,s){const n=document.createElementNS(svgNS,"svg:svg");n.setAttribute("class",svgClassName);const i=document.createElementNS(svgNS,"path");return n.appendChild(i),t.virtualElements.setDomNodeChildren(e,[n]),t.computed({read:function(){const e=t.unwrap(s());i.setAttribute("d",t.unwrap(e.path));const a=t.unwrap(e.width),r=t.unwrap(e.height);n.setAttribute("width",a),n.setAttribute("height",r),n.setAttribute("viewBox",`0 0 ${a} ${r}`),e.css&&n.setAttribute("class",`${svgClassName} ${t.unwrap(e.css)}`)},disposeWhenNodeIsRemoved:e}),{controlsDescendantBindings:!0}}},t.virtualElements.allowedBindings.cesiumSvgPath=!0}};export default SvgPathBindingHandler;
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/Timeline/Timeline.css b/app/src/main/assets/dist/Widgets/Timeline/Timeline.css
new file mode 100644
index 0000000000000000000000000000000000000000..337787f00feb9314ecc6ed84a783cd2686683d6c
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/Timeline/Timeline.css
@@ -0,0 +1 @@
+.cesium-timeline-main{position:relative;left:0;bottom:0;overflow:hidden;border:1px solid #888;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cesium-timeline-trackContainer{width:100%;overflow:auto;border-top:1px solid #888;position:relative;top:0;left:0}.cesium-timeline-tracks{position:absolute;top:0;left:0;width:100%}.cesium-timeline-needle{position:absolute;left:0;top:1.7em;bottom:0;width:1px;background:red}.cesium-timeline-bar{position:relative;left:0;top:0;overflow:hidden;cursor:pointer;width:100%;height:1.7em;background:linear-gradient(180deg,hsla(220,1%,46%,.8) 0,rgba(58,68,82,.8) 11%,rgba(46,50,56,.8) 46%,rgba(53,53,53,.8) 81%,rgba(53,53,53,.8))}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;font-size:80%;z-index:-200}.cesium-timeline-highlight{position:absolute;bottom:0;left:0;background:#08f}.cesium-timeline-ticLabel{position:absolute;top:0;left:0;white-space:nowrap;font-size:80%;color:#eee}.cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#eee}.cesium-timeline-ticSub{position:absolute;bottom:0;left:0;width:1px;height:33%;background:#aaa}.cesium-timeline-ticTiny{position:absolute;bottom:0;left:0;width:1px;height:25%;background:#888}.cesium-timeline-icon16{display:block;position:absolute;width:16px;height:16px;background-image:url(../Images/TimelineIcons.png);background-repeat:no-repeat}
\ No newline at end of file
diff --git a/app/src/main/assets/dist/Widgets/Timeline/Timeline.js b/app/src/main/assets/dist/Widgets/Timeline/Timeline.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b60610c03b751eb5c9047abceaa17da3ccf48e9
--- /dev/null
+++ b/app/src/main/assets/dist/Widgets/Timeline/Timeline.js
@@ -0,0 +1 @@
+import ClockRange from"../../Core/ClockRange.js";import defined from"../../Core/defined.js";import destroyObject from"../../Core/destroyObject.js";import DeveloperError from"../../Core/DeveloperError.js";import JulianDate from"../../Core/JulianDate.js";import getElement from"../getElement.js";import TimelineHighlightRange from"./TimelineHighlightRange.js";import TimelineTrack from"./TimelineTrack.js";let timelineWheelDelta=1e12;const timelineMouseMode={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},timelineTouchMode={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},timelineTicScales=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],timelineMonthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Timeline(e,t){if(!defined(e))throw new DeveloperError("container is required.");if(!defined(t))throw new DeveloperError("clock is required.");e=getElement(e);const i=e.ownerDocument;this.container=e;const n=i.createElement("div");n.className="cesium-timeline-main",e.appendChild(n),this._topDiv=n,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=timelineMouseMode.none,this._touchMode=timelineTouchMode.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=createMouseDownCallback(this),this._onMouseUp=createMouseUpCallback(this),this._onMouseMove=createMouseMoveCallback(this),this._onMouseWheel=createMouseWheelCallback(this),this._onTouchStart=createTouchStartCallback(this),this._onTouchMove=createTouchMoveCallback(this),this._onTouchEnd=createTouchEndCallback(this);const o=this._timeBarEle;i.addEventListener("mouseup",this._onMouseUp,!1),i.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}function twoDigits(e){return e<10?`0${e.toString()}`:e.toString()}function createMouseDownCallback(e){return function(t){e._mouseMode!==timelineMouseMode.touchOnly&&(0===t.button?(e._mouseMode=timelineMouseMode.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,2===t.button?e._mouseMode=timelineMouseMode.zoom:e._mouseMode=timelineMouseMode.slide)),t.preventDefault()}}function createMouseUpCallback(e){return function(t){e._mouseMode=timelineMouseMode.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function createMouseMoveCallback(e){return function(t){let i;if(e._mouseMode===timelineMouseMode.scrub){t.preventDefault();const i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===timelineMouseMode.slide){if(i=e._mouseX-t.clientX,e._mouseX=t.clientX,0!==i){const t=i*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(JulianDate.addSeconds(e._startJulian,t,new JulianDate),JulianDate.addSeconds(e._endJulian,t,new JulianDate))}}else e._mouseMode===timelineMouseMode.zoom&&(i=e._mouseX-t.clientX,e._mouseX=t.clientX,0!==i&&e.zoomFrom(Math.pow(1.01,i)))}}function createMouseWheelCallback(e){return function(t){let i=t.wheelDeltaY||t.wheelDelta||-t.detail;timelineWheelDelta=Math.max(Math.min(Math.abs(i),timelineWheelDelta),1),i/=timelineWheelDelta,e.zoomFrom(Math.pow(1.05,-i))}}function createTouchStartCallback(e){return function(t){const i=t.touches.length;let n,o;const s=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=timelineMouseMode.touchOnly,1===i?(n=JulianDate.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(n*e._topDiv.clientWidth/e._timeBarSecondsSpan+s),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=timelineTouchMode.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=1===i?"-16px 0":"0 0")):(e._touchMode=timelineTouchMode.singleTap,e._touchState.centerX=t.touches[0].clientX-s)):2===i?(e._touchMode=timelineTouchMode.slideZoom,e._touchState.centerX=.5*(t.touches[0].clientX+t.touches[1].clientX)-s,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=timelineTouchMode.ignore}}function createTouchEndCallback(e){return function(t){const i=t.touches.length,n=e._topDiv.getBoundingClientRect().left;e._touchMode===timelineTouchMode.singleTap?(e._touchMode=timelineTouchMode.scrub,e._onTouchMove(t)):e._touchMode===timelineTouchMode.scrub&&e._onTouchMove(t),e._mouseMode=timelineMouseMode.touchOnly,1!==i?e._touchMode=i>0?timelineTouchMode.ignore:timelineTouchMode.none:e._touchMode===timelineTouchMode.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-n),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function createTouchMoveCallback(e){return function(t){let i,n,o,s,a,l,c=1;const h=e._topDiv.getBoundingClientRect().left;e._touchMode===timelineTouchMode.singleTap&&(e._touchMode=timelineTouchMode.slideZoom),e._mouseMode=timelineMouseMode.touchOnly,e._touchMode===timelineTouchMode.scrub?(t.preventDefault(),1===t.changedTouches.length&&(n=t.changedTouches[0].clientX-h,n>=0&&n<=e._topDiv.clientWidth&&e._setTimeBarTime(n,n*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===timelineTouchMode.slideZoom&&(o=t.touches.length,2===o?(s=.5*(t.touches[0].clientX+t.touches[1].clientX)-h,a=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):1===o&&(s=t.touches[0].clientX-h,a=0),defined(s)&&(a>0&&e._touchState.spanX>0?(c=e._touchState.spanX/a,l=JulianDate.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-s*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new JulianDate)):(i=e._touchState.centerX-s,l=JulianDate.addSeconds(e._startJulian,i*e._timeBarSecondsSpan/e._topDiv.clientWidth,new JulianDate)),e.zoomTo(l,JulianDate.addSeconds(l,e._timeBarSecondsSpan*c,new JulianDate)),e._touchState.centerX=s,e._touchState.spanX=a))}}Timeline.prototype.addEventListener=function(e,t,i){this._topDiv.addEventListener(e,t,i)},Timeline.prototype.removeEventListener=function(e,t,i){this._topDiv.removeEventListener(e,t,i)},Timeline.prototype.isDestroyed=function(){return!1},Timeline.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);const e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);const t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),destroyObject(this)},Timeline.prototype.addHighlightRange=function(e,t,i){const n=new TimelineHighlightRange(e,t,i);return this._highlightRanges.push(n),this.resize(),n},Timeline.prototype.addTrack=function(e,t,i,n){const o=new TimelineTrack(e,t,i,n);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o},Timeline.prototype.zoomTo=function(e,t){if(!defined(e))throw new DeveloperError("startTime is required.");if(!defined(t))throw new DeveloperError("stopTime is required");if(JulianDate.lessThanOrEquals(t,e))throw new DeveloperError("Start time must come before end time.");if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=JulianDate.secondsDifference(t,e),this._clock&&this._clock.clockRange!==ClockRange.UNBOUNDED){const e=this._clock.startTime,t=this._clock.stopTime,i=JulianDate.secondsDifference(t,e),n=JulianDate.secondsDifference(e,this._startJulian),o=JulianDate.secondsDifference(t,this._endJulian);this._timeBarSecondsSpan>=i?(this._timeBarSecondsSpan=i,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):n>0?(this._endJulian=JulianDate.addSeconds(this._endJulian,n,new JulianDate),this._startJulian=e,this._timeBarSecondsSpan=JulianDate.secondsDifference(this._endJulian,this._startJulian)):o<0&&(this._startJulian=JulianDate.addSeconds(this._startJulian,o,new JulianDate),this._endJulian=t,this._timeBarSecondsSpan=JulianDate.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();const i=document.createEvent("Event");i.initEvent("setzoom",!0,!0),i.startJulian=this._startJulian,i.endJulian=this._endJulian,i.epochJulian=this._epochJulian,i.totalSpan=this._timeBarSecondsSpan,i.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(i)},Timeline.prototype.zoomFrom=function(e){let t=JulianDate.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=.5*this._timeBarSecondsSpan:t+=t-.5*this._timeBarSecondsSpan;const i=this._timeBarSecondsSpan-t;this.zoomTo(JulianDate.addSeconds(this._startJulian,t-t*e,new JulianDate),JulianDate.addSeconds(this._endJulian,i*e-i,new JulianDate))},Timeline.prototype.makeLabel=function(e){const t=JulianDate.toGregorianDate(e),i=t.millisecond;let n=" UTC";if(i>0&&this._timeBarSecondsSpan<3600){n=Math.floor(i).toString();while(n.length<3)n=`0${n}`;n=`.${n}`}return`${timelineMonthNames[t.month-1]} ${t.day} ${t.year} ${twoDigits(t.hour)}:${twoDigits(t.minute)}:${twoDigits(t.second)}${n}`},Timeline.prototype.smallestTicInPixels=7,Timeline.prototype._makeTics=function(){const e=this._timeBarEle,t=JulianDate.secondsDifference(this._scrubJulian,this._startJulian),i=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),n=i-8;let o;const s=this;this._needleEle.style.left=`${i.toString()}px`;let a="";const l=.01,c=31536e6,h=1e-10;let r=0,u=this._timeBarSecondsSpan;u ${t} ${o} `)})),i.length>0&&(i=`${i}
`),i}function getCesium3DTileFeatureName(e){let t;const i=[],o=e.getPropertyIds();for(t=0;tr.Cartesian3.distance(e,i)))return t.defined(c)||(c=new r.Cartesian3),r.Cartesian3.multiplyByScalar(d.direction,l,c),r.Cartesian3.add(d.origin,c,c)};const E={root0:0,root1:0};function y(e,n,a){t.defined(a)||(a=new i.Interval);const o=e.origin,s=e.direction,u=n.center,c=n.radius*n.radius,d=r.Cartesian3.subtract(o,u,w),l=r.Cartesian3.dot(s,s),f=2*r.Cartesian3.dot(s,d),h=r.Cartesian3.magnitudeSquared(d)-c,m=q(l,f,h,E);if(t.defined(m))return a.start=m.root0,a.stop=m.root1,a}m.raySphere=function(e,r,i){if(!t.defined(e))throw new n.DeveloperError("ray is required.");if(!t.defined(r))throw new n.DeveloperError("sphere is required.");if(i=y(e,r,i),t.defined(i)&&!(i.stop<0))return i.start=Math.max(i.start,0),i};const v=new h;m.lineSegmentSphere=function(e,i,a,o){if(!t.defined(e))throw new n.DeveloperError("p0 is required.");if(!t.defined(i))throw new n.DeveloperError("p1 is required.");if(!t.defined(a))throw new n.DeveloperError("sphere is required.");const s=v;r.Cartesian3.clone(e,s.origin);const u=r.Cartesian3.subtract(i,e,s.direction),c=r.Cartesian3.magnitude(u);if(r.Cartesian3.normalize(u,u),o=y(s,a,o),!(!t.defined(o)||o.stop<0||o.start>c))return o.start=Math.max(o.start,0),o.stop=Math.min(o.stop,c),o};const D=new r.Cartesian3,R=new r.Cartesian3;function S(e,r,t){const n=e+r;return a.CesiumMath.sign(e)!==a.CesiumMath.sign(r)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(r)))0&&(u+=r.CesiumMath.TWO_PI),o=y?void 0:n.defined(c)?(c.west=f,c.south=l,c.east=h,c.north=y,c):new Ce(f,l,h,y)},Ce.simpleIntersection=function(e,r,a){t.Check.typeOf.object("rectangle",e),t.Check.typeOf.object("otherRectangle",r);const c=Math.max(e.west,r.west),o=Math.max(e.south,r.south),i=Math.min(e.east,r.east),u=Math.min(e.north,r.north);if(!(o>=u||c>=i))return n.defined(a)?(a.west=c,a.south=o,a.east=i,a.north=u,a):new Ce(c,o,i,u)},Ce.union=function(e,a,c){t.Check.typeOf.object("rectangle",e),t.Check.typeOf.object("otherRectangle",a),n.defined(c)||(c=new Ce);let o=e.east,i=e.west,u=a.east,s=a.west;o0?o+=r.CesiumMath.TWO_PI:u0&&(u+=r.CesiumMath.TWO_PI),oo||r.CesiumMath.equalsEpsilon(a,o,r.CesiumMath.EPSILON14))&&(a=e.south&&c<=e.north};const be=new m;function ke(e,t){this.x=n.defaultValue(e,0),this.y=n.defaultValue(t,0)}Ce.subsample=function(e,a,c,o){t.Check.typeOf.object("rectangle",e),a=n.defaultValue(a,w.WGS84),c=n.defaultValue(c,0),n.defined(o)||(o=[]);let i=0;const u=e.north,s=e.south,f=e.east,h=e.west,l=be;l.height=c,l.longitude=h,l.latitude=u,o[i]=a.cartographicToCartesian(l,o[i]),i++,l.longitude=f,o[i]=a.cartographicToCartesian(l,o[i]),i++,l.latitude=s,o[i]=a.cartographicToCartesian(l,o[i]),i++,l.longitude=h,o[i]=a.cartographicToCartesian(l,o[i]),i++,l.latitude=u<0?u:s>0?s:0;for(let t=1;t<8;++t)l.longitude=-Math.PI+t*r.CesiumMath.PI_OVER_TWO,Ce.contains(e,l)&&(o[i]=a.cartographicToCartesian(l,o[i]),i++);return 0===l.latitude&&(l.longitude=h,o[i]=a.cartographicToCartesian(l,o[i]),i++,l.longitude=f,o[i]=a.cartographicToCartesian(l,o[i]),i++),o.length=i,o},Ce.subsection=function(e,a,c,o,i,u){if(t.Check.typeOf.object("rectangle",e),t.Check.typeOf.number.greaterThanOrEquals("westLerp",a,0),t.Check.typeOf.number.lessThanOrEquals("westLerp",a,1),t.Check.typeOf.number.greaterThanOrEquals("southLerp",c,0),t.Check.typeOf.number.lessThanOrEquals("southLerp",c,1),t.Check.typeOf.number.greaterThanOrEquals("eastLerp",o,0),t.Check.typeOf.number.lessThanOrEquals("eastLerp",o,1),t.Check.typeOf.number.greaterThanOrEquals("northLerp",i,0),t.Check.typeOf.number.lessThanOrEquals("northLerp",i,1),t.Check.typeOf.number.lessThanOrEquals("westLerp",a,o),t.Check.typeOf.number.lessThanOrEquals("southLerp",c,i),n.defined(u)||(u=new Ce),e.west<=e.east){const t=e.east-e.west;u.west=e.west+a*t,u.east=e.west+o*t}else{const t=r.CesiumMath.TWO_PI+e.east-e.west;u.west=r.CesiumMath.negativePiToPi(e.west+a*t),u.east=r.CesiumMath.negativePiToPi(e.west+o*t)}const s=e.north-e.south;return u.south=e.south+c*s,u.north=e.south+i*s,1===a&&(u.west=e.east),1===o&&(u.east=e.east),1===c&&(u.south=e.north),1===i&&(u.north=e.north),u},Ce.MAX_VALUE=Object.freeze(new Ce(-Math.PI,-r.CesiumMath.PI_OVER_TWO,Math.PI,r.CesiumMath.PI_OVER_TWO)),ke.fromElements=function(e,t,r){return n.defined(r)?(r.x=e,r.y=t,r):new ke(e,t)},ke.clone=function(e,t){if(n.defined(e))return n.defined(t)?(t.x=e.x,t.y=e.y,t):new ke(e.x,e.y)},ke.fromCartesian3=ke.clone,ke.fromCartesian4=ke.clone,ke.packedLength=2,ke.pack=function(e,r,a){return t.Check.typeOf.object("value",e),t.Check.defined("array",r),a=n.defaultValue(a,0),r[a++]=e.x,r[a]=e.y,r},ke.unpack=function(e,r,a){return t.Check.defined("array",e),r=n.defaultValue(r,0),n.defined(a)||(a=new ke),a.x=e[r++],a.y=e[r],a},ke.packArray=function(e,r){t.Check.defined("array",e);const a=e.length,c=2*a;if(n.defined(r)){if(!Array.isArray(r)&&r.length!==c)throw new t.DeveloperError("If result is a typed array, it must have exactly array.length * 2 elements");r.length!==c&&(r.length=c)}else r=new Array(c);for(let t=0;ts.CesiumMath.TWO_PI)throw new n.DeveloperError("Rectangle width must be between 0 and 2*pi");if(a.height<0||a.height>s.CesiumMath.PI)throw new n.DeveloperError("Rectangle height must be between 0 and pi");if(r.defined(C)&&!s.CesiumMath.equalsEpsilon(C.radii.x,C.radii.y,s.CesiumMath.EPSILON15))throw new n.DeveloperError("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");let u,l,h,f,m,x,p;if(e=r.defaultValue(e,0),c=r.defaultValue(c,0),C=r.defaultValue(C,t.Ellipsoid.WGS84),a.width<=s.CesiumMath.PI){const n=t.Rectangle.center(a,g),r=C.cartographicToCartesian(n,b),s=new i.EllipsoidTangentPlane(r,C);p=s.plane;const M=n.longitude,z=a.south<0&&a.north>0?0:n.latitude,B=t.Cartographic.fromRadians(M,a.north,c,y),V=t.Cartographic.fromRadians(a.west,a.north,c,O),_=t.Cartographic.fromRadians(a.west,z,c,E),k=t.Cartographic.fromRadians(a.west,a.south,c,N),W=t.Cartographic.fromRadians(M,a.south,c,T),X=C.cartographicToCartesian(B,P);let j=C.cartographicToCartesian(V,A);const Z=C.cartographicToCartesian(_,I);let Y=C.cartographicToCartesian(k,R);const G=C.cartographicToCartesian(W,S),F=s.projectPointToNearestOnPlane(X,U),H=s.projectPointToNearestOnPlane(j,D),J=s.projectPointToNearestOnPlane(Z,L),K=s.projectPointToNearestOnPlane(Y,q),Q=s.projectPointToNearestOnPlane(G,v);return u=Math.min(H.x,J.x,K.x),l=-u,f=Math.max(H.y,F.y),h=Math.min(K.y,Q.y),V.height=k.height=e,j=C.cartographicToCartesian(V,A),Y=C.cartographicToCartesian(k,R),m=Math.min(o.Plane.getPointDistance(p,j),o.Plane.getPointDistance(p,Y)),x=c,w(s.origin,s.xAxis,s.yAxis,s.zAxis,u,l,h,f,m,x,d)}const M=a.south>0,Y=a.north<0,G=M?a.south:Y?a.north:0,F=t.Rectangle.center(a,g).longitude,H=t.Cartesian3.fromRadians(F,G,c,C,z);H.z=0;const J=Math.abs(H.x)=0){const e=r[a];i=e.offset+e.count,c=e.index,s=n[c].indices.length}else i=0,c=0,s=n[c].indices.length;const d=e.length;for(let p=0;p0&&(r.set(n.indices,a),a+=m)}return n.push(r.buffer),{stringTable:i,packedData:r}},b.unpackCreateGeometryResults=function(e){const o=e.stringTable,r=e.packedData;let i;const a=new Array(r[0]);let p=0,f=1;while(f0))return o;a=o-1}return~(a+1)}function pt(e,t,n,r,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=o}function ht(e,t,n,r,o,i,s,a){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=o,this.second=i,this.millisecond=s,this.isLeapSecond=a}function mt(e){if(null===e||isNaN(e))throw new n.DeveloperError("year is required and must be a number.");return e%4===0&&e%100!==0||e%400===0}function gt(e,t){this.julianDate=e,this.offset=t}ut[7]=at/136,ct[7]=8*at/17,Fe.fastSlerp=function(e,t,r,o){n.Check.typeOf.object("start",e),n.Check.typeOf.object("end",t),n.Check.typeOf.number("t",r),n.Check.typeOf.object("result",o);let i,s=Fe.dot(e,t);s>=0?i=1:(i=-1,s=-s);const a=s-1,u=1-r,c=r*r,l=u*u;for(let n=7;n>=0;--n)lt[n]=(ut[n]*c-ct[n])*a,dt[n]=(ut[n]*l-ct[n])*a;const d=i*r*(1+lt[0]*(1+lt[1]*(1+lt[2]*(1+lt[3]*(1+lt[4]*(1+lt[5]*(1+lt[6]*(1+lt[7])))))))),f=u*(1+dt[0]*(1+dt[1]*(1+dt[2]*(1+dt[3]*(1+dt[4]*(1+dt[5]*(1+dt[6]*(1+dt[7])))))))),p=Fe.multiplyByScalar(e,f,st);return Fe.multiplyByScalar(t,d,o),Fe.add(p,o,o)},Fe.fastSquad=function(e,t,r,o,i,s){n.Check.typeOf.object("q0",e),n.Check.typeOf.object("q1",t),n.Check.typeOf.object("s0",r),n.Check.typeOf.object("s1",o),n.Check.typeOf.number("t",i),n.Check.typeOf.object("result",s);const a=Fe.fastSlerp(e,t,i,ot),u=Fe.fastSlerp(r,o,i,it);return Fe.fastSlerp(a,u,2*i*(1-i),s)},Fe.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},Fe.equalsEpsilon=function(e,t,n){return n=r.defaultValue(n,0),e===t||r.defined(e)&&r.defined(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},Fe.ZERO=Object.freeze(new Fe(0,0,0,0)),Fe.IDENTITY=Object.freeze(new Fe(0,0,0,1)),Fe.prototype.clone=function(e){return Fe.clone(this,e)},Fe.prototype.equals=function(e){return Fe.equals(this,e)},Fe.prototype.equalsEpsilon=function(e,t){return Fe.equalsEpsilon(this,e,t)},Fe.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};const yt={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5};var vt=Object.freeze(yt);const wt={UTC:0,TAI:1};var Ct=Object.freeze(wt);const bt=new ht,_t=[31,28,31,30,31,30,31,31,30,31,30,31],xt=29;function Et(e,t){return Nt.compare(e.julianDate,t.julianDate)}const Ot=new gt;function St(e){Ot.julianDate=e;const t=Nt.leapSeconds;let n=ft(t,Ot,Et);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let r=t[n].offset;if(n>0){const o=Nt.secondsDifference(t[n].julianDate,e);o>r&&(n--,r=t[n].offset)}Nt.addSeconds(e,r,e)}function At(e,t){Ot.julianDate=e;const n=Nt.leapSeconds;let r=ft(n,Ot,Et);if(r<0&&(r=~r),0===r)return Nt.addSeconds(e,-n[0].offset,t);if(r>=n.length)return Nt.addSeconds(e,-n[r-1].offset,t);const o=Nt.secondsDifference(n[r].julianDate,e);return 0===o?Nt.addSeconds(e,-n[r].offset,t):o<=1?void 0:Nt.addSeconds(e,-n[--r].offset,t)}function qt(e,t,n){const r=t/vt.SECONDS_PER_DAY|0;return e+=r,t-=vt.SECONDS_PER_DAY*r,t<0&&(e--,t+=vt.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function kt(e,t,n,r,o,i,s){const a=(t-14)/12|0,u=e+4800+a;let c=(1461*u/4|0)+(367*(t-2-12*a)/12|0)-(3*((u+100)/100|0)/4|0)+n-32075;r-=12,r<0&&(r+=24);const l=i+(r*vt.SECONDS_PER_HOUR+o*vt.SECONDS_PER_MINUTE+s*vt.SECONDS_PER_MILLISECOND);return l>=43200&&(c-=1),[c,l]}const Dt=/^(\d{4})$/,It=/^(\d{4})-(\d{2})$/,Pt=/^(\d{4})-?(\d{3})$/,Rt=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,Tt=/^(\d{4})-?(\d{2})-?(\d{2})$/,zt=/([Z+\-])?(\d{2})?:?(\d{2})?$/,Mt=/^(\d{2})(\.\d+)?/.source+zt.source,Ut=/^(\d{2}):?(\d{2})(\.\d+)?/.source+zt.source,jt=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+zt.source,Ft="Invalid ISO 8601 date.";function Nt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r.defaultValue(e,0),t=r.defaultValue(t,0),n=r.defaultValue(n,Ct.UTC);const o=0|e;t+=(e-o)*vt.SECONDS_PER_DAY,qt(o,t,this),n===Ct.UTC&&St(this)}Nt.fromGregorianDate=function(e,t){if(!(e instanceof ht))throw new n.DeveloperError("date must be a valid GregorianDate.");const o=kt(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r.defined(t)?(qt(o[0],o[1],t),St(t),t):new Nt(o[0],o[1],Ct.UTC)},Nt.fromDate=function(e,t){if(!(e instanceof Date)||isNaN(e.getTime()))throw new n.DeveloperError("date must be a valid JavaScript Date.");const o=kt(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r.defined(t)?(qt(o[0],o[1],t),St(t),t):new Nt(o[0],o[1],Ct.UTC)},Nt.fromIso8601=function(e,t){if("string"!==typeof e)throw new n.DeveloperError(Ft);e=e.replace(",",".");let o,i=e.split("T"),s=1,a=1,u=0,c=0,l=0,d=0;const f=i[0],p=i[1];let h,m,g,y;if(!r.defined(f))throw new n.DeveloperError(Ft);if(i=f.match(Tt),null!==i){if(g=f.split("-").length-1,g>0&&2!==g)throw new n.DeveloperError(Ft);o=+i[1],s=+i[2],a=+i[3]}else if(i=f.match(It),null!==i)o=+i[1],s=+i[2];else if(i=f.match(Dt),null!==i)o=+i[1];else{let e;if(i=f.match(Pt),null!==i){if(o=+i[1],e=+i[2],m=mt(o),e<1||m&&e>366||!m&&e>365)throw new n.DeveloperError(Ft)}else{if(i=f.match(Rt),null===i)throw new n.DeveloperError(Ft);{o=+i[1];const t=+i[2],s=+i[3]||0;if(g=f.split("-").length-1,g>0&&(!r.defined(i[3])&&1!==g||r.defined(i[3])&&2!==g))throw new n.DeveloperError(Ft);const a=new Date(Date.UTC(o,0,4));e=7*t+s-a.getUTCDay()-3}}h=new Date(Date.UTC(o,0,1)),h.setUTCDate(e),s=h.getUTCMonth()+1,a=h.getUTCDate()}if(m=mt(o),s<1||s>12||a<1||(2!==s||!m)&&a>_t[s-1]||m&&2===s&&a>xt)throw new n.DeveloperError(Ft);if(r.defined(p)){if(i=p.match(jt),null!==i){if(g=p.split(":").length-1,g>0&&2!==g&&3!==g)throw new n.DeveloperError(Ft);u=+i[1],c=+i[2],l=+i[3],d=1e3*+(i[4]||0),y=5}else if(i=p.match(Ut),null!==i){if(g=p.split(":").length-1,g>2)throw new n.DeveloperError(Ft);u=+i[1],c=+i[2],l=60*+(i[3]||0),y=4}else{if(i=p.match(Mt),null===i)throw new n.DeveloperError(Ft);u=+i[1],c=60*+(i[2]||0),y=3}if(c>=60||l>=61||u>24||24===u&&(c>0||l>0||d>0))throw new n.DeveloperError(Ft);const e=i[y],t=+i[y+1],r=+(i[y+2]||0);switch(e){case"+":u-=t,c-=r;break;case"-":u+=t,c+=r;break;case"Z":break;default:c+=new Date(Date.UTC(o,s-1,a,u,c)).getTimezoneOffset();break}}const v=60===l;v&&l--;while(c>=60)c-=60,u++;while(u>=24)u-=24,a++;h=m&&2===s?xt:_t[s-1];while(a>h)a-=h,s++,s>12&&(s-=12,o++),h=m&&2===s?xt:_t[s-1];while(c<0)c+=60,u--;while(u<0)u+=24,a--;while(a<1)s--,s<1&&(s+=12,o--),h=m&&2===s?xt:_t[s-1],a+=h;const w=kt(o,s,a,u,c,l,d);return r.defined(t)?(qt(w[0],w[1],t),St(t)):t=new Nt(w[0],w[1],Ct.UTC),v&&Nt.addSeconds(t,1,t),t},Nt.now=function(e){return Nt.fromDate(new Date,e)};const Bt=new Nt(0,0,Ct.TAI);Nt.toGregorianDate=function(e,t){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");let o=!1,i=At(e,Bt);r.defined(i)||(Nt.addSeconds(e,-1,Bt),i=At(Bt,Bt),o=!0);let s=i.dayNumber;const a=i.secondsOfDay;a>=43200&&(s+=1);let u=s+68569|0;const c=4*u/146097|0;u=u-((146097*c+3)/4|0)|0;const l=4e3*(u+1)/1461001|0;u=u-(1461*l/4|0)+31|0;const d=80*u/2447|0,f=u-(2447*d/80|0)|0;u=d/11|0;const p=d+2-12*u|0,h=100*(c-49)+l+u|0;let m=a/vt.SECONDS_PER_HOUR|0,g=a-m*vt.SECONDS_PER_HOUR;const y=g/vt.SECONDS_PER_MINUTE|0;g-=y*vt.SECONDS_PER_MINUTE;let v=0|g;const w=(g-v)/vt.SECONDS_PER_MILLISECOND;return m+=12,m>23&&(m-=24),o&&(v+=1),r.defined(t)?(t.year=h,t.month=p,t.day=f,t.hour=m,t.minute=y,t.second=v,t.millisecond=w,t.isLeapSecond=o,t):new ht(h,p,f,m,y,v,w,o)},Nt.toDate=function(e){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");const t=Nt.toGregorianDate(e,bt);let o=t.second;return t.isLeapSecond&&(o-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,o,t.millisecond))},Nt.toIso8601=function(e,t){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");const o=Nt.toGregorianDate(e,bt);let i=o.year,s=o.month,a=o.day,u=o.hour;const c=o.minute,l=o.second,d=o.millisecond;let f;return 1e4===i&&1===s&&1===a&&0===u&&0===c&&0===l&&0===d&&(i=9999,s=12,a=31,u=24),r.defined(t)||0===d?r.defined(t)&&0!==t?(f=(.01*d).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${a.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}.${f}Z`):`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${a.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}Z`:(f=(.01*d).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${s.toString().padStart(2,"0")}-${a.toString().padStart(2,"0")}T${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}.${f}Z`)},Nt.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Nt(e.dayNumber,e.secondsOfDay,Ct.TAI)},Nt.compare=function(e,t){if(!r.defined(e))throw new n.DeveloperError("left is required.");if(!r.defined(t))throw new n.DeveloperError("right is required.");const o=e.dayNumber-t.dayNumber;return 0!==o?o:e.secondsOfDay-t.secondsOfDay},Nt.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},Nt.equalsEpsilon=function(e,t,n){return n=r.defaultValue(n,0),e===t||r.defined(e)&&r.defined(t)&&Math.abs(Nt.secondsDifference(e,t))<=n},Nt.totalDays=function(e){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");return e.dayNumber+e.secondsOfDay/vt.SECONDS_PER_DAY},Nt.secondsDifference=function(e,t){if(!r.defined(e))throw new n.DeveloperError("left is required.");if(!r.defined(t))throw new n.DeveloperError("right is required.");const o=(e.dayNumber-t.dayNumber)*vt.SECONDS_PER_DAY;return o+(e.secondsOfDay-t.secondsOfDay)},Nt.daysDifference=function(e,t){if(!r.defined(e))throw new n.DeveloperError("left is required.");if(!r.defined(t))throw new n.DeveloperError("right is required.");const o=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/vt.SECONDS_PER_DAY;return o+i},Nt.computeTaiMinusUtc=function(e){Ot.julianDate=e;const t=Nt.leapSeconds;let n=ft(t,Ot,Et);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset},Nt.addSeconds=function(e,t,o){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");if(!r.defined(t))throw new n.DeveloperError("seconds is required.");if(!r.defined(o))throw new n.DeveloperError("result is required.");return qt(e.dayNumber,e.secondsOfDay+t,o)},Nt.addMinutes=function(e,t,o){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");if(!r.defined(t))throw new n.DeveloperError("minutes is required.");if(!r.defined(o))throw new n.DeveloperError("result is required.");const i=e.secondsOfDay+t*vt.SECONDS_PER_MINUTE;return qt(e.dayNumber,i,o)},Nt.addHours=function(e,t,o){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");if(!r.defined(t))throw new n.DeveloperError("hours is required.");if(!r.defined(o))throw new n.DeveloperError("result is required.");const i=e.secondsOfDay+t*vt.SECONDS_PER_HOUR;return qt(e.dayNumber,i,o)},Nt.addDays=function(e,t,o){if(!r.defined(e))throw new n.DeveloperError("julianDate is required.");if(!r.defined(t))throw new n.DeveloperError("days is required.");if(!r.defined(o))throw new n.DeveloperError("result is required.");const i=e.dayNumber+t;return qt(i,e.secondsOfDay,o)},Nt.lessThan=function(e,t){return Nt.compare(e,t)<0},Nt.lessThanOrEquals=function(e,t){return Nt.compare(e,t)<=0},Nt.greaterThan=function(e,t){return Nt.compare(e,t)>0},Nt.greaterThanOrEquals=function(e,t){return Nt.compare(e,t)>=0},Nt.prototype.clone=function(e){return Nt.clone(this,e)},Nt.prototype.equals=function(e){return Nt.equals(this,e)},Nt.prototype.equalsEpsilon=function(e,t){return Nt.equalsEpsilon(this,e,t)},Nt.prototype.toString=function(){return Nt.toIso8601(this)},Nt.leapSeconds=[new gt(new Nt(2441317,43210,Ct.TAI),10),new gt(new Nt(2441499,43211,Ct.TAI),11),new gt(new Nt(2441683,43212,Ct.TAI),12),new gt(new Nt(2442048,43213,Ct.TAI),13),new gt(new Nt(2442413,43214,Ct.TAI),14),new gt(new Nt(2442778,43215,Ct.TAI),15),new gt(new Nt(2443144,43216,Ct.TAI),16),new gt(new Nt(2443509,43217,Ct.TAI),17),new gt(new Nt(2443874,43218,Ct.TAI),18),new gt(new Nt(2444239,43219,Ct.TAI),19),new gt(new Nt(2444786,43220,Ct.TAI),20),new gt(new Nt(2445151,43221,Ct.TAI),21),new gt(new Nt(2445516,43222,Ct.TAI),22),new gt(new Nt(2446247,43223,Ct.TAI),23),new gt(new Nt(2447161,43224,Ct.TAI),24),new gt(new Nt(2447892,43225,Ct.TAI),25),new gt(new Nt(2448257,43226,Ct.TAI),26),new gt(new Nt(2448804,43227,Ct.TAI),27),new gt(new Nt(2449169,43228,Ct.TAI),28),new gt(new Nt(2449534,43229,Ct.TAI),29),new gt(new Nt(2450083,43230,Ct.TAI),30),new gt(new Nt(2450630,43231,Ct.TAI),31),new gt(new Nt(2451179,43232,Ct.TAI),32),new gt(new Nt(2453736,43233,Ct.TAI),33),new gt(new Nt(2454832,43234,Ct.TAI),34),new gt(new Nt(2456109,43235,Ct.TAI),35),new gt(new Nt(2457204,43236,Ct.TAI),36),new gt(new Nt(2457754,43237,Ct.TAI),37)];var Vt=i.createCommonjsModule((function(e,t){(function(n){var r=t&&!t.nodeType&&t,o=e&&!e.nodeType&&e,s="object"==typeof i.commonjsGlobal&&i.commonjsGlobal;s.global!==s&&s.window!==s&&s.self!==s||(n=s);var a,u,c=2147483647,l=36,d=1,f=26,p=38,h=700,m=72,g=128,y="-",v=/^xn--/,w=/[^\x20-\x7E]/,C=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},_=l-d,x=Math.floor,E=String.fromCharCode;function O(e){throw new RangeError(b[e])}function S(e,t){var n=e.length,r=[];while(n--)r[n]=t(e[n]);return r}function A(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(C,".");var o=e.split("."),i=S(o,t).join(".");return r+i}function q(e){var t,n,r=[],o=0,i=e.length;while(o=55296&&t<=56319&&o65535&&(e-=65536,t+=E(e>>>10&1023|55296),e=56320|1023&e),t+=E(e),t})).join("")}function D(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:l}function I(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function P(e,t,n){var r=0;for(e=n?x(e/h):e>>1,e+=x(e/t);e>_*f>>1;r+=l)e=x(e/_);return x(r+(_+1)*e/(e+p))}function R(e){var t,n,r,o,i,s,a,u,p,h,v=[],w=e.length,C=0,b=g,_=m;for(n=e.lastIndexOf(y),n<0&&(n=0),r=0;rl&&(c=f,l=d)):"0"===o[a]&&(p=!0,f=a,d=1);d>l&&(c=f,l=d),l>1&&o.splice(c,l,""),i=o.length;var h="";for(""===o[0]&&(h=":"),a=0;a=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return!1;var o=n.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(r+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r>=0)return!1;var o=n.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return null;var o=n.list[e.slice(t+1)];return o?o.indexOf(" "+e.slice(r+1,t)+" ")<0?null:e.slice(r+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n}))})),$t=i.createCommonjsModule((function(e){
+/*!
+ * URI.js - Mutating URLs
+ *
+ * Version: 1.19.11
+ *
+ * Author: Rodney Rehm
+ * Web: http://medialize.github.io/URI.js/
+ *
+ * Licensed under
+ * MIT License http://www.opensource.org/licenses/mit-license
+ *
+ */
+(function(t,n){e.exports?e.exports=n(Vt,Lt,Qt):t.URI=n(t.punycode,t.IPv6,t.SecondLevelDomains,t)})(i.commonjsGlobal,(function(e,t,n,r){var o=r&&r.URI;function i(e,t){var n=arguments.length>=1,r=arguments.length>=2;if(!(this instanceof i))return n?r?new i(e,t):new i(e):new i;if(void 0===e){if(n)throw new TypeError("undefined is not a valid argument for URI");e="undefined"!==typeof location?location.href+"":""}if(null===e&&n)throw new TypeError("null is not a valid argument for URI");return this.href(e),void 0!==t?this.absoluteTo(t):this}function s(e){return/^[0-9]+$/.test(e)}i.version="1.19.11";var a=i.prototype,u=Object.prototype.hasOwnProperty;function c(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function l(e){return void 0===e?"Undefined":String(Object.prototype.toString.call(e)).slice(8,-1)}function d(e){return"Array"===l(e)}function f(e,t){var n,r,o={};if("RegExp"===l(t))o=null;else if(d(t))for(n=0,r=t.length;n-1?p.slice(0,h)+p.slice(h).replace(s,""):p.replace(s,""),!(p.length<=c[0].length)&&(!n.ignore||!n.ignore.test(p))){f=l+p.length;var y=t(p,l,f,e);void 0!==y?(y=String(y),e=e.slice(0,l)+y+e.slice(f),r.lastIndex=l+y.length):r.lastIndex=f}}return r.lastIndex=0,e},i.ensureValidHostname=function(t,n){var r=!!t,o=!!n,s=!1;if(o&&(s=p(i.hostProtocols,n)),s&&!r)throw new TypeError("Hostname cannot be empty, if protocol is "+n);if(t&&t.match(i.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(t).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(e){if(e){var t=Number(e);if(!(s(t)&&t>0&&t<65536))throw new TypeError('Port "'+e+'" is not a valid port')}},i.noConflict=function(e){if(e){var t={URI:this.noConflict()};return r.URITemplate&&"function"===typeof r.URITemplate.noConflict&&(t.URITemplate=r.URITemplate.noConflict()),r.IPv6&&"function"===typeof r.IPv6.noConflict&&(t.IPv6=r.IPv6.noConflict()),r.SecondLevelDomains&&"function"===typeof r.SecondLevelDomains.noConflict&&(t.SecondLevelDomains=r.SecondLevelDomains.noConflict()),t}return r.URI===this&&(r.URI=o),this},a.build=function(e){return!0===e?this._deferred_build=!0:(void 0===e||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new i(this)},a.valueOf=a.toString=function(){return this.build(!1)._string},a.protocol=_("protocol"),a.username=_("username"),a.password=_("password"),a.hostname=_("hostname"),a.port=_("port"),a.query=x("query","?"),a.fragment=x("fragment","#"),a.search=function(e,t){var n=this.query(e,t);return"string"===typeof n&&n.length?"?"+n:n},a.hash=function(e,t){var n=this.fragment(e,t);return"string"===typeof n&&n.length?"#"+n:n},a.pathname=function(e,t){if(void 0===e||!0===e){var n=this._parts.path||(this._parts.hostname?"/":"");return e?(this._parts.urn?i.decodeUrnPath:i.decodePath)(n):n}return this._parts.urn?this._parts.path=e?i.recodeUrnPath(e):"":this._parts.path=e?i.recodePath(e):"/",this.build(!t),this},a.path=a.pathname,a.href=function(e,t){var n;if(void 0===e)return this.toString();this._string="",this._parts=i._parts();var r=e instanceof i,o="object"===typeof e&&(e.hostname||e.path||e.pathname);if(e.nodeName){var s=i.getDomAttribute(e);e=e[s]||"",o=!1}if(!r&&o&&void 0!==e.pathname&&(e=e.toString()),"string"===typeof e||e instanceof String)this._parts=i.parse(String(e),this._parts);else{if(!r&&!o)throw new TypeError("invalid input");var a=r?e._parts:e;for(n in a)"query"!==n&&u.call(this._parts,n)&&(this._parts[n]=a[n]);a.query&&this.query(a.query,!1)}return this.build(!t),this},a.is=function(e){var t=!1,r=!1,o=!1,s=!1,a=!1,u=!1,c=!1,l=!this._parts.urn;switch(this._parts.hostname&&(l=!1,r=i.ip4_expression.test(this._parts.hostname),o=i.ip6_expression.test(this._parts.hostname),t=r||o,s=!t,a=s&&n&&n.has(this._parts.hostname),u=s&&i.idn_expression.test(this._parts.hostname),c=s&&i.punycode_expression.test(this._parts.hostname)),e.toLowerCase()){case"relative":return l;case"absolute":return!l;case"domain":case"name":return s;case"sld":return a;case"ip":return t;case"ip4":case"ipv4":case"inet4":return r;case"ip6":case"ipv6":case"inet6":return o;case"idn":return u;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return c}return null};var E=a.protocol,O=a.port,S=a.hostname;a.protocol=function(e,t){if(e&&(e=e.replace(/:(\/\/)?$/,""),!e.match(i.protocol_expression)))throw new TypeError('Protocol "'+e+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return E.call(this,e,t)},a.scheme=a.protocol,a.port=function(e,t){return this._parts.urn?void 0===e?"":this:(void 0!==e&&(0===e&&(e=null),e&&(e+="",":"===e.charAt(0)&&(e=e.substring(1)),i.ensureValidPort(e))),O.call(this,e,t))},a.hostname=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0!==e){var n={preventInvalidHostname:this._parts.preventInvalidHostname},r=i.parseHost(e,n);if("/"!==r)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');e=n.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(e,this._parts.protocol)}return S.call(this,e,t)},a.origin=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=this.protocol(),r=this.authority();return r?(n?n+"://":"")+this.authority():""}var o=i(e);return this.protocol(o.protocol()).authority(o.authority()).build(!t),this},a.host=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildHost(this._parts):"";var n=i.parseHost(e,this._parts);if("/"!==n)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},a.authority=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildAuthority(this._parts):"";var n=i.parseAuthority(e,this._parts);if("/"!==n)throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},a.userinfo=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=i.buildUserinfo(this._parts);return n?n.substring(0,n.length-1):n}return"@"!==e[e.length-1]&&(e+="@"),i.parseUserinfo(e,this._parts),this.build(!t),this},a.resource=function(e,t){var n;return void 0===e?this.path()+this.search()+this.hash():(n=i.parse(e),this._parts.path=n.path,this._parts.query=n.query,this._parts.fragment=n.fragment,this.build(!t),this)},a.subdomain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,n)||""}var r=this._parts.hostname.length-this.domain().length,o=this._parts.hostname.substring(0,r),s=new RegExp("^"+c(o));if(e&&"."!==e.charAt(e.length-1)&&(e+="."),-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");return e&&i.ensureValidHostname(e,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(s,e),this.build(!t),this},a.domain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"===typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.match(/\./g);if(n&&n.length<2)return this._parts.hostname;var r=this._parts.hostname.length-this.tld(t).length-1;return r=this._parts.hostname.lastIndexOf(".",r-1)+1,this._parts.hostname.substring(r)||""}if(!e)throw new TypeError("cannot set domain empty");if(-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(e,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=e;else{var o=new RegExp(c(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(o,e)}return this.build(!t),this},a.tld=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"===typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.lastIndexOf("."),o=this._parts.hostname.substring(r+1);return!0!==t&&n&&n.list[o.toLowerCase()]&&n.get(this._parts.hostname)||o}var i;if(!e)throw new TypeError("cannot set TLD empty");if(e.match(/[^a-zA-Z0-9-]/)){if(!n||!n.is(e))throw new TypeError('TLD "'+e+'" contains characters other than [A-Z0-9]');i=new RegExp(c(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(c(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}return this.build(!t),this},a.directory=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var n=this._parts.path.length-this.filename().length-1,r=this._parts.path.substring(0,n)||(this._parts.hostname?"/":"");return e?i.decodePath(r):r}var o=this._parts.path.length-this.filename().length,s=this._parts.path.substring(0,o),a=new RegExp("^"+c(s));return this.is("relative")||(e||(e="/"),"/"!==e.charAt(0)&&(e="/"+e)),e&&"/"!==e.charAt(e.length-1)&&(e+="/"),e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e),this.build(!t),this},a.filename=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("string"!==typeof e){if(!this._parts.path||"/"===this._parts.path)return"";var n=this._parts.path.lastIndexOf("/"),r=this._parts.path.substring(n+1);return e?i.decodePathSegment(r):r}var o=!1;"/"===e.charAt(0)&&(e=e.substring(1)),e.match(/\.?\//)&&(o=!0);var s=new RegExp(c(this.filename())+"$");return e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e),o?this.normalizePath(t):this.build(!t),this},a.suffix=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path||"/"===this._parts.path)return"";var n,r,o=this.filename(),s=o.lastIndexOf(".");return-1===s?"":(n=o.substring(s+1),r=/^[a-z0-9%]+$/i.test(n)?n:"",e?i.decodePathSegment(r):r)}"."===e.charAt(0)&&(e=e.substring(1));var a,u=this.suffix();if(u)a=e?new RegExp(c(u)+"$"):new RegExp(c("."+u)+"$");else{if(!e)return this;this._parts.path+="."+i.recodePath(e)}return a&&(e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e)),this.build(!t),this},a.segment=function(e,t,n){var r=this._parts.urn?":":"/",o=this.path(),i="/"===o.substring(0,1),s=o.split(r);if(void 0!==e&&"number"!==typeof e&&(n=t,t=e,e=void 0),void 0!==e&&"number"!==typeof e)throw new Error('Bad segment "'+e+'", must be 0-based integer');if(i&&s.shift(),e<0&&(e=Math.max(s.length+e,0)),void 0===t)return void 0===e?s:s[e];if(null===e||void 0===s[e])if(d(t)){s=[];for(var a=0,u=t.length;a0){const n=e.substring(0,o),r=e.substring(o+2);t[n]=r}}return t}function mn(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,"string"===typeof this.responseHeaders&&(this.responseHeaders=hn(this.responseHeaders))}function gn(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function yn(e,t){return t-e}function vn(e){n.Check.typeOf.object("options",e),n.Check.defined("options.comparator",e.comparator),this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function wn(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Cn(e,t){return e.priority-t.priority}pn.prototype.cancel=function(){this.cancelled=!0},pn.prototype.clone=function(e){return r.defined(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new pn(this)},mn.prototype.toString=function(){let e="Request has failed.";return r.defined(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e},Object.defineProperties(gn.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),gn.prototype.addEventListener=function(e,t){n.Check.typeOf.func("listener",e),this._listeners.push(e),this._scopes.push(t);const r=this;return function(){r.removeEventListener(e,t)}},gn.prototype.removeEventListener=function(e,t){n.Check.typeOf.func("listener",e);const r=this._listeners,o=this._scopes;let i=-1;for(let n=0;n