(self.webpackChunkRemoteClient = self.webpackChunkRemoteClient || []).push([
  [2197],
  {
    93314: (e, t, r) => {
      'use strict';
      r.d(t, { Z: () => y });
      var s,
        i = r(29768),
        l = r(74673),
        n = r(76506),
        a = r(35197),
        o = r(34250),
        u = (r(91306), r(92143), r(97714)),
        d = r(17533),
        p = r(2906);
      r(21972),
        r(23639),
        r(86656),
        r(22723),
        r(91055),
        r(27794),
        r(6906),
        r(50406),
        r(60991),
        r(81172),
        r(71552),
        r(31450),
        r(40642),
        r(26341);
      let c = (s = class extends l.a {
        constructor(e) {
          super(e), (this.end = null), (this.start = null);
        }
        static get allTime() {
          return m;
        }
        static get empty() {
          return h;
        }
        readEnd(e, t) {
          return null != t.end ? new Date(t.end) : null;
        }
        writeEnd(e, t) {
          t.end = e ? e.getTime() : null;
        }
        get isAllTime() {
          return this.equals(s.allTime);
        }
        get isEmpty() {
          return this.equals(s.empty);
        }
        readStart(e, t) {
          return null != t.start ? new Date(t.start) : null;
        }
        writeStart(e, t) {
          t.start = e ? e.getTime() : null;
        }
        clone() {
          return new s({ end: this.end, start: this.start });
        }
        expandTo(e) {
          if (this.isEmpty || this.isAllTime) return this.clone();
          const t = (0, n.e)(this.start, (t) => (0, a.t)(t, e)),
            r = (0, n.e)(this.end, (t) => (0, a.o)((0, a.t)(t, e), 1, e));
          return new s({ start: t, end: r });
        }
        intersection(e) {
          if (!e) return this.clone();
          if (this.isEmpty || e.isEmpty) return s.empty;
          if (this.isAllTime) return e.clone();
          if (e.isAllTime) return this.clone();
          const t = (0, n.m)(this.start, -1 / 0, (e) => e.getTime()),
            r = (0, n.m)(this.end, 1 / 0, (e) => e.getTime()),
            i = (0, n.m)(e.start, -1 / 0, (e) => e.getTime()),
            l = (0, n.m)(e.end, 1 / 0, (e) => e.getTime());
          let a, o;
          if (
            (i >= t && i <= r ? (a = i) : t >= i && t <= l && (a = t),
            r >= i && r <= l ? (o = r) : l >= t && l <= r && (o = l),
            !isNaN(a) && !isNaN(o))
          ) {
            const e = new s();
            return (
              (e.start = a === -1 / 0 ? null : new Date(a)),
              (e.end = o === 1 / 0 ? null : new Date(o)),
              e
            );
          }
          return s.empty;
        }
        offset(e, t) {
          if (this.isEmpty || this.isAllTime) return this.clone();
          const r = new s(),
            { start: i, end: l } = this;
          return (
            (0, n.i)(i) && (r.start = (0, a.o)(i, e, t)),
            (0, n.i)(l) && (r.end = (0, a.o)(l, e, t)),
            r
          );
        }
        equals(e) {
          if (!e) return !1;
          const t = (0, n.i)(this.start) ? this.start.getTime() : this.start,
            r = (0, n.i)(this.end) ? this.end.getTime() : this.end,
            s = (0, n.i)(e.start) ? e.start.getTime() : e.start,
            i = (0, n.i)(e.end) ? e.end.getTime() : e.end;
          return t === s && r === i;
        }
        union(e) {
          if (!e || e.isEmpty) return this.clone();
          if (this.isEmpty) return e.clone();
          if (this.isAllTime || e.isAllTime) return m.clone();
          const t =
              (0, n.i)(this.start) && (0, n.i)(e.start)
                ? new Date(Math.min(this.start.getTime(), e.start.getTime()))
                : null,
            r =
              (0, n.i)(this.end) && (0, n.i)(e.end)
                ? new Date(Math.max(this.end.getTime(), e.end.getTime()))
                : null;
          return new s({ start: t, end: r });
        }
      });
      (0, i._)(
        [(0, o.Cb)({ type: Date, json: { write: { allowNull: !0 } } })],
        c.prototype,
        'end',
        void 0,
      ),
        (0, i._)([(0, u.r)('end')], c.prototype, 'readEnd', null),
        (0, i._)([(0, p.w)('end')], c.prototype, 'writeEnd', null),
        (0, i._)([(0, o.Cb)({ readOnly: !0, json: { read: !1 } })], c.prototype, 'isAllTime', null),
        (0, i._)([(0, o.Cb)({ readOnly: !0, json: { read: !1 } })], c.prototype, 'isEmpty', null),
        (0, i._)(
          [(0, o.Cb)({ type: Date, json: { write: { allowNull: !0 } } })],
          c.prototype,
          'start',
          void 0,
        ),
        (0, i._)([(0, u.r)('start')], c.prototype, 'readStart', null),
        (0, i._)([(0, p.w)('start')], c.prototype, 'writeStart', null),
        (c = s = (0, i._)([(0, d.j)('esri.TimeExtent')], c));
      const m = new c(),
        h = new c({ start: void 0, end: void 0 }),
        y = c;
    },
    62162: (e, t, r) => {
      'use strict';
      r.d(t, { P: () => S });
      var s = r(29768),
        i = r(88762),
        l = r(82058),
        n = r(41864),
        a = r(60991),
        o = r(92143),
        u = r(76506),
        d = r(50406),
        p = r(32101),
        c = r(34250),
        m = (r(91306), r(97714)),
        h = r(17533),
        y = r(2906),
        g = r(49900),
        f = r(56420),
        w = r(74653);
      const v = o.L.getLogger('esri.layers.mixins.PortalLayer'),
        S = (e) => {
          let t = class extends e {
            constructor() {
              super(...arguments),
                (this.resourceReferences = { portalItem: null, paths: [] }),
                (this.userHasEditingPrivileges = !0);
            }
            destroy() {
              var e;
              null == (e = this.portalItem) || e.destroy(), (this.portalItem = null);
            }
            set portalItem(e) {
              e !== this._get('portalItem') &&
                (this.removeOrigin('portal-item'), this._set('portalItem', e));
            }
            readPortalItem(e, t, r) {
              if (t.itemId) return new f.default({ id: t.itemId, portal: r && r.portal });
            }
            writePortalItem(e, t) {
              e && e.id && (t.itemId = e.id);
            }
            async loadFromPortal(e, t) {
              if (this.portalItem && this.portalItem.id)
                try {
                  const s = await r
                    .e(8642)
                    .then(r.bind(r, 8642))
                    .then(function (e) {
                      return e.l;
                    });
                  return (
                    (0, d.k_)(t),
                    await s.load(
                      {
                        instance: this,
                        supportedTypes: e.supportedTypes,
                        validateItem: e.validateItem,
                        supportsData: e.supportsData,
                      },
                      t,
                    )
                  );
                } catch (e) {
                  throw (
                    ((0, d.D_)(e) ||
                      v.warn(
                        `Failed to load layer (${this.title}, ${this.id}) portal item (${this.portalItem.id})\n  ${e}`,
                      ),
                    e)
                  );
                }
            }
            async finishLoadEditablePortalLayer(e) {
              this._set(
                'userHasEditingPrivileges',
                await this.fetchUserHasEditingPrivileges(e).catch((e) => ((0, d.r9)(e), !0)),
              );
            }
            async fetchUserHasEditingPrivileges(e) {
              const t = this.url ? (null == i.id ? void 0 : i.id.findCredential(this.url)) : null;
              if (!t) return !0;
              const r = b.credential === t ? b.user : await this.fetchEditingUser(e);
              return (
                (b.credential = t),
                (b.user = r),
                (0, u.b)(r) || null == r.privileges || r.privileges.includes('features:user:edit')
              );
            }
            async fetchEditingUser(e) {
              var t, r;
              const s = null == (t = this.portalItem) || null == (r = t.portal) ? void 0 : r.user;
              if (s) return s;
              const a = i.id.findServerInfo(this.url);
              if (null == a || !a.owningSystemUrl) return null;
              const o = `${a.owningSystemUrl}/sharing/rest`,
                d = g.Z.getDefault();
              if (d && d.loaded && (0, p.Fv)(d.restUrl) === (0, p.Fv)(o)) return d.user;
              const c = `${o}/community/self`,
                m = (0, u.i)(e) ? e.signal : null,
                h = await (0, n.r)(
                  (0, l.default)(c, { authMode: 'no-prompt', query: { f: 'json' }, signal: m }),
                );
              return h.ok ? w.default.fromJSON(h.value.data) : null;
            }
            read(e, t) {
              t && (t.layer = this), super.read(e, t);
            }
            write(e, t) {
              const r = t && t.portal,
                s =
                  this.portalItem &&
                  this.portalItem.id &&
                  (this.portalItem.portal || g.Z.getDefault());
              return r && s && !(0, p.tm)(s.restUrl, r.restUrl)
                ? (t.messages &&
                    t.messages.push(
                      new a.Z(
                        'layer:cross-portal',
                        `The layer '${this.title} (${this.id})' cannot be persisted because it refers to an item on a different portal than the one being saved to. To save the scene, set the layer.portalItem to null or save the scene to the same portal as the item associated with the layer`,
                        { layer: this },
                      ),
                    ),
                  null)
                : super.write(e, { ...t, layer: this });
            }
          };
          return (
            (0, s._)([(0, c.Cb)({ type: f.default })], t.prototype, 'portalItem', null),
            (0, s._)(
              [(0, m.r)('web-document', 'portalItem', ['itemId'])],
              t.prototype,
              'readPortalItem',
              null,
            ),
            (0, s._)(
              [(0, y.w)('web-document', 'portalItem', { itemId: { type: String } })],
              t.prototype,
              'writePortalItem',
              null,
            ),
            (0, s._)([(0, c.Cb)()], t.prototype, 'resourceReferences', void 0),
            (0, s._)(
              [(0, c.Cb)({ readOnly: !0 })],
              t.prototype,
              'userHasEditingPrivileges',
              void 0,
            ),
            (t = (0, s._)([(0, h.j)('esri.layers.mixins.PortalLayer')], t)),
            t
          );
        },
        b = { credential: null, user: null };
    },
    85557: (e, t, r) => {
      'use strict';
      r.d(t, { m: () => l });
      var s = r(53785),
        i = r(89623);
      const l = {
        inches: (0, s.c)(1, 'meters', 'inches'),
        feet: (0, s.c)(1, 'meters', 'feet'),
        'us-feet': (0, s.c)(1, 'meters', 'us-feet'),
        yards: (0, s.c)(1, 'meters', 'yards'),
        miles: (0, s.c)(1, 'meters', 'miles'),
        'nautical-miles': (0, s.c)(1, 'meters', 'nautical-miles'),
        millimeters: (0, s.c)(1, 'meters', 'millimeters'),
        centimeters: (0, s.c)(1, 'meters', 'centimeters'),
        decimeters: (0, s.c)(1, 'meters', 'decimeters'),
        meters: (0, s.c)(1, 'meters', 'meters'),
        kilometers: (0, s.c)(1, 'meters', 'kilometers'),
        'decimal-degrees': 1 / (0, s.l)(1, 'meters', i.e.radius),
      };
    },
    35197: (e, t, r) => {
      'use strict';
      r.d(t, { c: () => a, o: () => l, t: () => n }), r(76506);
      const s = {
          milliseconds: 1,
          seconds: 1e3,
          minutes: 6e4,
          hours: 36e5,
          days: 864e5,
          weeks: 6048e5,
          months: 26784e5,
          years: 31536e6,
          decades: 31536e7,
          centuries: 31536e8,
        },
        i = {
          milliseconds: { getter: 'getMilliseconds', setter: 'setMilliseconds', multiplier: 1 },
          seconds: { getter: 'getSeconds', setter: 'setSeconds', multiplier: 1 },
          minutes: { getter: 'getMinutes', setter: 'setMinutes', multiplier: 1 },
          hours: { getter: 'getHours', setter: 'setHours', multiplier: 1 },
          days: { getter: 'getDate', setter: 'setDate', multiplier: 1 },
          weeks: { getter: 'getDate', setter: 'setDate', multiplier: 7 },
          months: { getter: 'getMonth', setter: 'setMonth', multiplier: 1 },
          years: { getter: 'getFullYear', setter: 'setFullYear', multiplier: 1 },
          decades: { getter: 'getFullYear', setter: 'setFullYear', multiplier: 10 },
          centuries: { getter: 'getFullYear', setter: 'setFullYear', multiplier: 100 },
        };
      function l(e, t, r) {
        const s = new Date(e.getTime());
        if (t && r) {
          const e = i[r],
            { getter: l, setter: n, multiplier: a } = e;
          s[n](s[l]() + t * a);
        }
        return s;
      }
      function n(e, t) {
        switch (t) {
          case 'milliseconds':
            return new Date(e.getTime());
          case 'seconds':
            return new Date(
              e.getFullYear(),
              e.getMonth(),
              e.getDate(),
              e.getHours(),
              e.getMinutes(),
              e.getSeconds(),
            );
          case 'minutes':
            return new Date(
              e.getFullYear(),
              e.getMonth(),
              e.getDate(),
              e.getHours(),
              e.getMinutes(),
            );
          case 'hours':
            return new Date(e.getFullYear(), e.getMonth(), e.getDate(), e.getHours());
          case 'days':
            return new Date(e.getFullYear(), e.getMonth(), e.getDate());
          case 'weeks':
            return new Date(e.getFullYear(), e.getMonth(), e.getDate() - e.getDay());
          case 'months':
            return new Date(e.getFullYear(), e.getMonth(), 1);
          case 'years':
            return new Date(e.getFullYear(), 0, 1);
          case 'decades':
            return new Date(e.getFullYear() - (e.getFullYear() % 10), 0, 1);
          case 'centuries':
            return new Date(e.getFullYear() - (e.getFullYear() % 100), 0, 1);
          default:
            return new Date();
        }
      }
      function a(e, t, r) {
        return 0 === e ? 0 : (e * s[t]) / s[r];
      }
    },
    92197: (e, t, r) => {
      'use strict';
      r.r(t), r.d(t, { default: () => P });
      var s = r(29768),
        i = r(31450),
        l = r(82058),
        n = (r(96467), r(76506)),
        a = r(54179),
        o = r(50406),
        u = r(32101),
        d = r(34250),
        p = (r(91306), r(92143), r(97714)),
        c = r(17533),
        m = r(41617),
        h = r(11118),
        y = r(89440),
        g = r(62162),
        f = r(16647),
        w = r(58912),
        v = r(43022),
        S = r(30776),
        b = r(78548),
        _ = r(11305),
        C = r(60669),
        D = r(5909);
      r(71552),
        r(88762),
        r(60991),
        r(81172),
        r(40642),
        r(63571),
        r(59465),
        r(57251),
        r(2906),
        r(14249),
        r(9801),
        r(53523),
        r(74673),
        r(21972),
        r(23639),
        r(86656),
        r(22723),
        r(91055),
        r(27794),
        r(6906),
        r(26341),
        r(42911),
        r(46826),
        r(45433),
        r(60217),
        r(74569),
        r(21801),
        r(73796),
        r(60947),
        r(91597),
        r(86787),
        r(35132),
        r(89623),
        r(84069),
        r(44567),
        r(98380),
        r(92896),
        r(22781),
        r(32422),
        r(48027),
        r(54174),
        r(82426),
        r(63130),
        r(25696),
        r(66396),
        r(42775),
        r(95834),
        r(34394),
        r(57150),
        r(76726),
        r(20444),
        r(76393),
        r(2497),
        r(49906),
        r(46527),
        r(48649),
        r(9960),
        r(3101),
        r(5853),
        r(39141),
        r(38742),
        r(48243),
        r(15324),
        r(76996),
        r(34635),
        r(10401),
        r(49900),
        r(66284),
        r(33921),
        r(3482),
        r(73173),
        r(22739),
        r(20543),
        r(67477),
        r(78533),
        r(74653),
        r(91091),
        r(58943),
        r(70737),
        r(8487),
        r(17817),
        r(90814),
        r(15459),
        r(61847),
        r(16796),
        r(16955),
        r(22401),
        r(77894),
        r(55187),
        r(8586),
        r(44509),
        r(69814),
        r(62259),
        r(44790),
        r(48208),
        r(51589),
        r(50161),
        r(82673),
        r(41864),
        r(56420),
        r(74742),
        r(28239),
        r(93314),
        r(35197),
        r(47842),
        r(17298),
        r(85557),
        r(53785),
        r(95587);
      const T = ['atom', 'xml'],
        I = { base: S.Z, key: 'type', typeMap: { 'simple-line': b.Z }, errorContext: 'symbol' },
        F = {
          base: S.Z,
          key: 'type',
          typeMap: { 'picture-marker': _.Z, 'simple-marker': C.Z },
          errorContext: 'symbol',
        },
        E = { base: S.Z, key: 'type', typeMap: { 'simple-fill': D.Z }, errorContext: 'symbol' };
      let M = class extends (0, h.B)((0, f.R)((0, y.O)((0, g.P)((0, w.S)((0, a.M)(m.Z)))))) {
        constructor(...e) {
          super(...e),
            (this.description = null),
            (this.legendEnabled = !0),
            (this.lineSymbol = null),
            (this.pointSymbol = null),
            (this.polygonSymbol = null),
            (this.operationalLayerType = 'GeoRSS'),
            (this.outSpatialReference = null),
            (this.url = null),
            (this.type = 'geo-rss');
        }
        normalizeCtorArgs(e, t) {
          return 'string' == typeof e ? { url: e, ...t } : e;
        }
        get title() {
          const e = this._get('title');
          return e && 'defaults' !== this.originOf('title')
            ? e
            : this.url
            ? (0, u.vt)(this.url, T) || 'GeoRSS'
            : e || '';
        }
        set title(e) {
          this._set('title', e);
        }
        readFeatureCollections(e, t) {
          return (
            t.featureCollection.layers.forEach((e) => {
              const t = e.layerDefinition.drawingInfo.renderer.symbol;
              t &&
                'esriSFS' === t.type &&
                t.outline &&
                -1 !== t.outline.style.indexOf('esriSFS') &&
                (t.outline.style = 'esriSLSSolid');
            }),
            t.featureCollection.layers
          );
        }
        load(e) {
          const t = (0, n.i)(e) ? e.signal : null;
          return (
            this.addResolvingPromise(
              this.loadFromPortal(
                {
                  supportedTypes: [
                    'Map Service',
                    'Feature Service',
                    'Feature Collection',
                    'Scene Service',
                  ],
                },
                e,
              )
                .catch(o.r9)
                .then(() => this._fetchService(t)),
            ),
            Promise.resolve(this)
          );
        }
        async _fetchService(e) {
          const { data: t } = await (0, l.default)(i.Z.geoRSSServiceUrl, {
            query: {
              url: this.url,
              refresh: !!this.loaded || void 0,
              outSR: this.outSpatialReference
                ? JSON.stringify(this.outSpatialReference.toJSON())
                : void 0,
            },
            signal: e,
          });
          this.read(t, { origin: 'service' });
        }
      };
      (0, s._)([(0, d.Cb)()], M.prototype, 'description', void 0),
        (0, s._)(
          [
            (0, d.Cb)({
              json: {
                origins: { service: { read: { source: 'name', reader: (e) => e || void 0 } } },
              },
            }),
          ],
          M.prototype,
          'title',
          null,
        ),
        (0, s._)([(0, d.Cb)()], M.prototype, 'featureCollections', void 0),
        (0, s._)(
          [(0, p.r)('service', 'featureCollections', ['featureCollection.layers'])],
          M.prototype,
          'readFeatureCollections',
          null,
        ),
        (0, s._)([(0, d.Cb)(v.i)], M.prototype, 'id', void 0),
        (0, s._)([(0, d.Cb)(v.b)], M.prototype, 'legendEnabled', void 0),
        (0, s._)([(0, d.Cb)({ types: I, json: { write: !0 } })], M.prototype, 'lineSymbol', void 0),
        (0, s._)([(0, d.Cb)({ type: ['show', 'hide'] })], M.prototype, 'listMode', void 0),
        (0, s._)(
          [(0, d.Cb)({ types: F, json: { write: !0 } })],
          M.prototype,
          'pointSymbol',
          void 0,
        ),
        (0, s._)(
          [(0, d.Cb)({ types: E, json: { write: !0 } })],
          M.prototype,
          'polygonSymbol',
          void 0,
        ),
        (0, s._)([(0, d.Cb)({ type: ['GeoRSS'] })], M.prototype, 'operationalLayerType', void 0),
        (0, s._)([(0, d.Cb)()], M.prototype, 'outSpatialReference', void 0),
        (0, s._)([(0, d.Cb)(v.u)], M.prototype, 'url', void 0),
        (0, s._)(
          [(0, d.Cb)({ readOnly: !0, json: { read: !1 }, value: 'geo-rss' })],
          M.prototype,
          'type',
          void 0,
        ),
        (M = (0, s._)([(0, c.j)('esri.layers.GeoRSSLayer')], M));
      const P = M;
    },
  },
]);
