bruce-models 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/bruce-models.es5.js +183 -16
  2. package/dist/bruce-models.es5.js.map +1 -1
  3. package/dist/bruce-models.umd.js +180 -14
  4. package/dist/bruce-models.umd.js.map +1 -1
  5. package/dist/lib/account/account.js +244 -244
  6. package/dist/lib/ann-document/ann-document.js +116 -116
  7. package/dist/lib/api/abstract-api.js +269 -267
  8. package/dist/lib/api/abstract-api.js.map +1 -1
  9. package/dist/lib/api/api.js +85 -85
  10. package/dist/lib/api/bruce-api.js +228 -202
  11. package/dist/lib/api/bruce-api.js.map +1 -1
  12. package/dist/lib/api/cam-api.js +132 -132
  13. package/dist/lib/api/cam-api.js.map +1 -1
  14. package/dist/lib/api/global-api.js +131 -131
  15. package/dist/lib/api/global-api.js.map +1 -1
  16. package/dist/lib/api/idm-api.js +132 -132
  17. package/dist/lib/api/idm-api.js.map +1 -1
  18. package/dist/lib/bruce-models.js +84 -83
  19. package/dist/lib/bruce-models.js.map +1 -1
  20. package/dist/lib/calculator/calculator.js +158 -158
  21. package/dist/lib/client-file/client-file.js +188 -188
  22. package/dist/lib/common/bounds.js +2 -2
  23. package/dist/lib/common/bruce-event.js +48 -48
  24. package/dist/lib/common/bruce-variable.js +54 -54
  25. package/dist/lib/common/cache.js +86 -86
  26. package/dist/lib/common/camera.js +11 -11
  27. package/dist/lib/common/cartes.js +55 -55
  28. package/dist/lib/common/carto.js +60 -60
  29. package/dist/lib/common/color.js +86 -86
  30. package/dist/lib/common/delay-queue.js +60 -60
  31. package/dist/lib/common/dictionary.js +2 -2
  32. package/dist/lib/common/geometry.js +120 -120
  33. package/dist/lib/common/transform.js +2 -2
  34. package/dist/lib/common/utc.js +39 -39
  35. package/dist/lib/custom-form/custom-form.js +136 -136
  36. package/dist/lib/data-lab/data-lab.js +90 -90
  37. package/dist/lib/entity/entity-attachment-type.js +132 -132
  38. package/dist/lib/entity/entity-attachment.js +208 -208
  39. package/dist/lib/entity/entity-comment.js +132 -132
  40. package/dist/lib/entity/entity-coords.js +181 -181
  41. package/dist/lib/entity/entity-link.js +132 -132
  42. package/dist/lib/entity/entity-lod.js +189 -189
  43. package/dist/lib/entity/entity-relation-type.js +150 -150
  44. package/dist/lib/entity/entity-relation.js +189 -189
  45. package/dist/lib/entity/entity-source.js +176 -176
  46. package/dist/lib/entity/entity-tag.js +229 -229
  47. package/dist/lib/entity/entity-type.js +163 -163
  48. package/dist/lib/entity/entity.js +358 -358
  49. package/dist/lib/entity/getters/batched-data-getter.js +91 -91
  50. package/dist/lib/entity/getters/entity-filter-getter.js +344 -344
  51. package/dist/lib/entity/getters/entity-globe.js +135 -135
  52. package/dist/lib/entity/getters/view-monitor.js +2 -2
  53. package/dist/lib/import/import-cad.js +82 -82
  54. package/dist/lib/import/import-csv.js +51 -51
  55. package/dist/lib/import/import-json.js +51 -51
  56. package/dist/lib/import/import-kml.js +51 -51
  57. package/dist/lib/import/imported-file.js +121 -121
  58. package/dist/lib/markup/markup.js +40 -40
  59. package/dist/lib/program-key/program-key.js +152 -152
  60. package/dist/lib/project/menu-item.js +115 -115
  61. package/dist/lib/project/project-view-bookmark.js +183 -172
  62. package/dist/lib/project/project-view-bookmark.js.map +1 -1
  63. package/dist/lib/project/{project-view-tile-source.js → project-view-legacy-tile.js} +116 -116
  64. package/dist/lib/project/project-view-legacy-tile.js.map +1 -0
  65. package/dist/lib/project/project-view-tile.js +120 -0
  66. package/dist/lib/project/project-view-tile.js.map +1 -0
  67. package/dist/lib/project/project-view.js +177 -166
  68. package/dist/lib/project/project-view.js.map +1 -1
  69. package/dist/lib/project/zoom-control.js +17 -17
  70. package/dist/lib/server/pending-action.js +106 -106
  71. package/dist/lib/server/task.js +113 -113
  72. package/dist/lib/style/style.js +152 -152
  73. package/dist/lib/tileset/tileset-cad.js +2 -2
  74. package/dist/lib/tileset/tileset-entities-map-tiles.js +18 -18
  75. package/dist/lib/tileset/tileset-entities.js +2 -2
  76. package/dist/lib/tileset/tileset-ext-map-tiles.js +17 -17
  77. package/dist/lib/tileset/tileset-ext-terrain-tiles.js +2 -2
  78. package/dist/lib/tileset/tileset-map-tiles.js +2 -2
  79. package/dist/lib/tileset/tileset-pointcloud.js +2 -2
  80. package/dist/lib/tileset/tileset-terrain-tiles.js +2 -2
  81. package/dist/lib/tileset/tileset.js +403 -403
  82. package/dist/lib/user/permission.js +20 -20
  83. package/dist/lib/user/session.js +160 -160
  84. package/dist/lib/user/user-group.js +139 -139
  85. package/dist/lib/user/user.js +451 -451
  86. package/dist/lib/util/encrypt-utils.js +20 -20
  87. package/dist/lib/util/math-utils.js +41 -41
  88. package/dist/lib/util/object-utils.js +17 -17
  89. package/dist/lib/util/path-utils.js +61 -61
  90. package/dist/lib/util/url-utils.js +107 -107
  91. package/dist/types/api/abstract-api.d.ts +1 -1
  92. package/dist/types/api/bruce-api.d.ts +22 -2
  93. package/dist/types/api/cam-api.d.ts +1 -1
  94. package/dist/types/api/global-api.d.ts +1 -1
  95. package/dist/types/api/idm-api.d.ts +1 -1
  96. package/dist/types/bruce-models.d.ts +2 -1
  97. package/dist/types/project/project-view-bookmark.d.ts +85 -36
  98. package/dist/types/project/{project-view-tile-source.d.ts → project-view-legacy-tile.d.ts} +1 -1
  99. package/dist/types/project/project-view-tile.d.ts +68 -0
  100. package/dist/types/project/project-view.d.ts +64 -39
  101. package/package.json +1 -1
  102. package/dist/lib/project/project-view-tile-source.js.map +0 -1
@@ -2,6 +2,7 @@ import { BruceApi } from "../api/bruce-api";
2
2
  import { Camera } from "../common/camera";
3
3
  import { UTC } from "../common/utc";
4
4
  import { Markup } from "../markup/markup";
5
+ import { ProjectViewTile } from "./project-view-tile";
5
6
  /**
6
7
  * Describe the "Project View Bookmark" concept within Bruce.
7
8
  * This is referred to as "slides" in older code.
@@ -11,47 +12,95 @@ import { Markup } from "../markup/markup";
11
12
  export declare namespace ProjectViewBookmark {
12
13
  function GetCacheKey(viewId: string, bookmarkId: string): string;
13
14
  function GetListCacheKey(viewId: string): string;
14
- interface IBookmarkImagery {
15
- title: string;
16
- contrast: number;
17
- hue: number;
18
- saturation: number;
19
- gamma: number;
20
- brightness: number;
21
- alpha: number;
22
- }
23
- interface IBookmarkSettings {
24
- selectedItemIds?: string[];
25
- order?: number;
26
- hiddenEntityIds?: string[];
27
- drawnRelationEntityIDs?: string[];
28
- imagery?: IBookmarkImagery[];
29
- terrain?: string;
30
- globeColor?: string;
31
- shadows?: boolean;
32
- groundOcclusion?: boolean;
33
- ambientOcclusion?: boolean;
34
- markup?: Markup.IMarkup;
35
- cameraFrustum?: Camera.EFrustum;
36
- displayTimeline?: boolean;
37
- timelineSettings?: any;
38
- }
39
- interface IBookmark {
15
+ const DEFAULT_DATA_VERSION = 1;
16
+ interface IBookmarkMeta {
40
17
  ID?: string;
41
- Camera?: any;
42
- "Created.ByUser.ID"?: string;
43
- "Created.Date"?: UTC.IUTC;
44
- Note?: string;
45
- Settings?: IBookmarkSettings;
46
18
  Title?: string;
47
- "UI.View.ID"?: string;
48
- DisplayOrder?: number;
19
+ Note?: string;
49
20
  "Screenshot.ClientFile.ID"?: string;
21
+ "UI.View.ID"?: string;
22
+ "Created.ByUser.ID"?: string;
23
+ "Created.Date"?: UTC.IUTC;
50
24
  "UI.SlideGroup.ID"?: number;
25
+ DataVersion: number;
26
+ }
27
+ type Bookmark = V1.IBookmark | V2.IBookmark;
28
+ namespace V1 {
29
+ const DATA_VERSION = 1;
30
+ interface IBookmark extends IBookmarkMeta {
31
+ Camera?: ICamera;
32
+ DisplayOrder?: number;
33
+ Settings?: ISettings;
34
+ }
35
+ interface IBookmarkImagery {
36
+ title: string;
37
+ contrast: number;
38
+ hue: number;
39
+ saturation: number;
40
+ gamma: number;
41
+ brightness: number;
42
+ alpha: number;
43
+ }
44
+ interface ISettings {
45
+ selectedItemIds?: string[];
46
+ order?: number;
47
+ hiddenEntityIds?: string[];
48
+ drawnRelationEntityIDs?: string[];
49
+ imagery?: IBookmarkImagery[];
50
+ terrain?: string;
51
+ globeColor?: string;
52
+ shadows?: boolean;
53
+ groundOcclusion?: boolean;
54
+ ambientOcclusion?: boolean;
55
+ markup?: Markup.IMarkup;
56
+ cameraFrustum?: Camera.EFrustum;
57
+ displayTimeline?: boolean;
58
+ timelineSettings?: any;
59
+ }
60
+ /**
61
+ * Lat,lon is in degrees.
62
+ * Altitude is meters relative to ground.
63
+ * Heading, pitch, roll are in radians.
64
+ */
65
+ interface ICamera {
66
+ position: {
67
+ latitude: number;
68
+ longitude: number;
69
+ height: number;
70
+ };
71
+ heading: number;
72
+ pitch: number;
73
+ roll: number;
74
+ }
75
+ }
76
+ namespace V2 {
77
+ const DATA_VERSION = 2;
78
+ interface IBookmark extends IBookmarkMeta {
79
+ Camera?: ICamera;
80
+ DisplayOrder?: number;
81
+ Settings?: ISettings;
82
+ }
83
+ interface ISettings {
84
+ menuItemIds?: string[];
85
+ groundOcclusion?: boolean;
86
+ imagery?: ProjectViewTile.IBookmarkImagery[];
87
+ terrain?: ProjectViewTile.IBookmarkTerrain;
88
+ globeColor?: string;
89
+ }
90
+ interface ICamera {
91
+ altitude: number;
92
+ latitude: number;
93
+ longitude: number;
94
+ heading: number;
95
+ pitch: number;
96
+ roll: number;
97
+ transition?: number;
98
+ cameraFrustum?: Camera.EFrustum;
99
+ }
51
100
  }
52
- function Get(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<IBookmark>;
101
+ function Get(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<Bookmark>;
53
102
  function Delete(api: BruceApi.Api, viewId: string, bookmarkId: string): Promise<void>;
54
- function GetList(api: BruceApi.Api, viewId: string): Promise<IBookmark[]>;
55
- function Update(api: BruceApi.Api, viewId: string, data: IBookmark): Promise<IBookmark>;
103
+ function GetList(api: BruceApi.Api, viewId: string): Promise<Bookmark[]>;
104
+ function Update(api: BruceApi.Api, viewId: string, data: Bookmark): Promise<Bookmark>;
56
105
  function SetOrder(api: BruceApi.Api, viewId: string, bookmarkIds: string[]): Promise<void>;
57
106
  }
@@ -4,7 +4,7 @@ import { BruceApi } from "../api/bruce-api";
4
4
  * This is a concept we want to trash as we're moving towards storing tileset ids instead.
5
5
  * This will help at least understand and manage this dying concept.
6
6
  */
7
- export declare namespace ProjectViewTileSource {
7
+ export declare namespace ProjectViewLegacyTile {
8
8
  interface ISource {
9
9
  SourceUrl?: string;
10
10
  IsEnabled?: boolean;
@@ -0,0 +1,68 @@
1
+ export declare namespace ProjectViewTile {
2
+ type MapTileId = string | EDefaultImagery;
3
+ type TerrainTileId = string | EDefaultTerrain;
4
+ interface ITileMeta {
5
+ accountId?: string;
6
+ tilesetId: string;
7
+ }
8
+ interface IViewTerrain extends ITileMeta {
9
+ tilesetId: TerrainTileId;
10
+ }
11
+ interface IViewImagery extends ITileMeta {
12
+ tilesetId: MapTileId;
13
+ }
14
+ interface IBookmarkImagery {
15
+ tilesetId: MapTileId;
16
+ accountId: string;
17
+ alpha: number;
18
+ brightness: number;
19
+ saturation: number;
20
+ contrast: number;
21
+ gamma: number;
22
+ hue: number;
23
+ }
24
+ interface IBookmarkTerrain {
25
+ tilesetId: TerrainTileId;
26
+ accountId: string;
27
+ }
28
+ enum EDefaultImagery {
29
+ BingMapsAerial = "bingmapsaerial",
30
+ BingMapsAerialWithLabels = "bingmapsaerialwithlabels",
31
+ BingMapsRoads = "bingmapsroads",
32
+ MapboxSatellite = "mapboxsatellite",
33
+ MapBoxStreets = "mapboxstreets",
34
+ MapBoxStreetsClassic = "mapboxstreetsclassic",
35
+ EsriWorldImagery = "esriworldimagery",
36
+ EsriWorldStreetMap = "esriworldstreetmap",
37
+ EsriNationalGeographic = "esrinationalgeographic",
38
+ OpenStreetMap = "openstreetmap",
39
+ StamenWaterColor = "stamenwatercolor",
40
+ StamenToner = "stamentoner",
41
+ Grid = "grid"
42
+ }
43
+ interface IDefaultImagery {
44
+ id: EDefaultImagery;
45
+ name: string;
46
+ iconUrl?: string;
47
+ }
48
+ /**
49
+ * Prepared array for UI.
50
+ * TODO: Im not happy with icon urls sitting in the code. I'd prefer we ship these icons in the library as files.
51
+ */
52
+ const DefaultImagery: IDefaultImagery[];
53
+ enum EDefaultTerrain {
54
+ CesiumWorldTerrain = "cesiumworldterrain",
55
+ FlatTerrain = "flatterrain",
56
+ LINZ = "linz"
57
+ }
58
+ interface IDefaultTerrain {
59
+ id: EDefaultTerrain;
60
+ name: string;
61
+ iconUrl?: string;
62
+ }
63
+ /**
64
+ * Prepared array for UI.
65
+ * TODO: Im not happy with icon urls sitting in the code. I'd prefer we ship these icons in the library as files.
66
+ */
67
+ const DefaultTerrains: IDefaultTerrain[];
68
+ }
@@ -1,7 +1,9 @@
1
1
  import { BruceApi } from "../api/bruce-api";
2
2
  import { UTC } from "../common/utc";
3
3
  import { MenuItem } from "./menu-item";
4
- import { ProjectViewTileSource } from "./project-view-tile-source";
4
+ import { ProjectViewLegacyTile } from "./project-view-legacy-tile";
5
+ import { ProjectViewTile } from "./project-view-tile";
6
+ import { ProjectViewBookmark } from "./project-view-bookmark";
5
7
  /**
6
8
  * Describes the "Project View" concept within Bruce.
7
9
  * A project view is a collection of settings for a visualization application we support.
@@ -10,54 +12,77 @@ import { ProjectViewTileSource } from "./project-view-tile-source";
10
12
  export declare namespace ProjectView {
11
13
  function GetCacheKey(viewId: string): string;
12
14
  function GetListCacheKey(): string;
13
- interface IView {
15
+ const DEFAULT_DATA_VERSION = 1;
16
+ interface IViewMeta {
14
17
  ID?: string;
15
18
  Name: string;
16
19
  Description?: string;
17
20
  Feature?: string[];
18
21
  "CreatedByUser.ID"?: string;
19
22
  CreatedTime?: UTC.IUTC;
20
- Settings?: IViewSettings;
21
23
  DefaultUISlideID?: string;
22
24
  CreatedByUIVersion?: string;
25
+ DataVersion: number;
23
26
  }
24
- interface IShadowSettings {
25
- IsShadowEnabled: boolean;
26
- IsShadowSoft: boolean;
27
- ShadowSampleSize: number;
27
+ type View = V1.IView | V2.IView;
28
+ namespace V1 {
29
+ const DATA_VERSION = 1;
30
+ interface IShadowSettings {
31
+ IsShadowEnabled: boolean;
32
+ IsShadowSoft: boolean;
33
+ ShadowSampleSize: number;
34
+ }
35
+ interface ISettings {
36
+ BookmarkTransitionSpeed: number;
37
+ Camera: any;
38
+ CameraFrustum: number;
39
+ CesiumMapSources: ProjectViewLegacyTile.IMapSource[];
40
+ CesiumTerrainSources: ProjectViewLegacyTile.ITerrainSource[];
41
+ ControlsSettings: any;
42
+ DefaultMapTiles: string;
43
+ DefaultTerrain: string;
44
+ DisplayTimeline: boolean;
45
+ GroundOcclusion: boolean;
46
+ Extensions: any;
47
+ GlobeColor: string;
48
+ SelectionHighlightColor?: string;
49
+ LayersMenu?: MenuItem.IItem[];
50
+ OASettings?: any;
51
+ LogoImage: any;
52
+ LegendImage: any;
53
+ IsRestricted: boolean;
54
+ IsLoginRequired: boolean;
55
+ TilesetBackfaceCulling: boolean;
56
+ TopPanelComponents?: string[];
57
+ LeftPanelComponents?: string[];
58
+ PostProcessFXAA?: boolean;
59
+ Shadows: boolean;
60
+ Shadow: {
61
+ StaticCamera: IShadowSettings;
62
+ MovingCamera: IShadowSettings;
63
+ };
64
+ }
65
+ interface IView extends IViewMeta {
66
+ Settings: ISettings;
67
+ }
28
68
  }
29
- interface IViewSettings {
30
- BookmarkTransitionSpeed: number;
31
- Camera: any;
32
- CameraFrustum: number;
33
- CesiumMapSources: ProjectViewTileSource.IMapSource[];
34
- CesiumTerrainSources: ProjectViewTileSource.ITerrainSource[];
35
- ControlsSettings: any;
36
- DefaultMapTiles: string;
37
- DefaultTerrain: string;
38
- DisplayTimeline: boolean;
39
- GroundOcclusion: boolean;
40
- Extensions: any;
41
- GlobeColor: string;
42
- SelectionHighlightColor?: string;
43
- LayersMenu?: MenuItem.IItem[];
44
- OASettings?: any;
45
- LogoImage: any;
46
- LegendImage: any;
47
- IsRestricted: boolean;
48
- IsLoginRequired: boolean;
49
- TilesetBackfaceCulling: boolean;
50
- TopPanelComponents?: string[];
51
- LeftPanelComponents?: string[];
52
- PostProcessFXAA?: boolean;
53
- Shadows: boolean;
54
- Shadow: {
55
- StaticCamera: IShadowSettings;
56
- MovingCamera: IShadowSettings;
57
- };
69
+ namespace V2 {
70
+ const DATA_VERSION = 2;
71
+ interface ISettings {
72
+ menuItems?: MenuItem.IItem[];
73
+ imageries?: ProjectViewTile.IViewImagery[];
74
+ terrains?: ProjectViewTile.IViewTerrain[];
75
+ defaults?: {
76
+ camera?: ProjectViewBookmark.V2.ICamera;
77
+ settings?: ProjectViewBookmark.V2.ISettings;
78
+ };
79
+ }
80
+ interface IView extends IViewMeta {
81
+ Settings: ISettings;
82
+ }
58
83
  }
59
- function Get(api: BruceApi.Api, viewId: string): Promise<IView>;
60
- function GetList(api: BruceApi.Api): Promise<IView[]>;
84
+ function Get(api: BruceApi.Api, viewId: string): Promise<View>;
85
+ function GetList(api: BruceApi.Api): Promise<View[]>;
61
86
  function Delete(api: BruceApi.Api, viewId: string): Promise<void>;
62
- function Update(api: BruceApi.Api, data: IView): Promise<IView>;
87
+ function Update(api: BruceApi.Api, data: View): Promise<View>;
63
88
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-models",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-models.umd.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-view-tile-source.js","sourceRoot":"","sources":["../../../src/project/project-view-tile-source.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAiC;AAEjC,+CAA6C;AAE7C,SAAe,mBAAmB,CAAC,SAA2B;;;;;;wBAC7C,qBAAM,0BAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAA;;oBAAjG,IAAI,GAAG,SAA0F;oBACvG,4BAAO,IAAI,CAAC,QAAQ,mCAA+B,EAAE,EAAC;;;;CACzD;AAED,SAAS,qBAAqB,CAAC,KAAsC,EAAE,YAA2C,EAAE,YAAqB;IACrI,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAA5B,CAA4B,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;QACZ,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;KAC/B;SACI,IAAI,YAAY,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5B;AACL,CAAC;AAED;;;;GAIG;AACH,IAAiB,qBAAqB,CA8CrC;AA9CD,WAAiB,qBAAqB;IA2BlC,SAAsB,oBAAoB,CAAC,MAAwB,EAAE,KAAmB,EAAE,YAAqB;;;;;;4BAC1F,qBAAM,mBAAmB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,QAAQ,GAAG,SAAiC;wBAC5C,IAAI,SAAG,QAAQ,CAAC,gBAAgB,mCAAI,EAAE,CAAC;wBAC7C,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5B,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC1B,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;yBACzD;wBACD,sBAAO,EAAE,EAAC;;;;KACb;IARqB,0CAAoB,uBAQzC,CAAA;IAED,SAAsB,wBAAwB,CAAC,MAAwB,EAAE,KAAuB,EAAE,YAAqB;;;;;;4BAClG,qBAAM,mBAAmB,CAAC,MAAM,CAAC,EAAA;;wBAA5C,QAAQ,GAAG,SAAiC;wBAC5C,QAAQ,SAAG,QAAQ,CAAC,oBAAoB,mCAAI,EAAE,CAAC;wBACrD,KAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAChC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAClC,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;yBAC7D;wBACD,sBAAO,EAAE,EAAC;;;;KACb;IARqB,8CAAwB,2BAQ7C,CAAA;AACL,CAAC,EA9CgB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QA8CrC"}