{"version":3,"file":"index.umd.cjs","sources":["../../src/__package__.ts","../../src/connection.ts","../../src/espConnection.ts","../../src/services/wsdl/FileSpray/v1.29/FileSpray.ts","../../src/services/fileSpray.ts","../../src/services/wsdl/ws_access/v1.17/ws_access.ts","../../src/services/wsAccess.ts","../../src/services/wsdl/ws_account/v1.07/ws_account.ts","../../src/services/wsAccount.ts","../../src/services/wsdl/WsCloud/v1.02/WsCloud.ts","../../src/services/wsCloud.ts","../../src/services/wsdl/ws_codesign/v1.1/ws_codesign.ts","../../src/services/wsCodesign.ts","../../src/services/wsdl/WsDali/v1.07/WsDali.ts","../../src/services/wsDali.ts","../../src/services/wsdl/WsDfu/v1.67/WsDfu.ts","../../src/services/wsDFU.ts","../../src/services/wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts","../../src/services/wsDFUXRef.ts","../../src/services/wsEcl.ts","../../src/services/wsdl/ws_elk/v1/ws_elk.ts","../../src/services/wsElk.ts","../../src/services/wsdl/ws_logaccess/v1.08/ws_logaccess.ts","../../src/services/wsLogaccess.ts","../../../../node_modules/d3-array/src/ascending.js","../../../../node_modules/d3-array/src/bisector.js","../../../../node_modules/d3-array/src/number.js","../../../../node_modules/d3-array/src/max.js","../../../../node_modules/d3-array/src/mean.js","../../src/services/wsdl/ws_machine/v1.19/ws_machine.ts","../../../../node_modules/d3-array/src/bisect.js","../../src/services/wsMachine.ts","../../src/services/wsdl/WsPackageProcess/v1.08/WsPackageProcess.ts","../../src/services/wsPackageProcess.ts","../../src/services/wsdl/WsResources/v1.01/WsResources.ts","../../src/services/wsResources.ts","../../src/services/wsdl/WsSasha/v1.01/WsSasha.ts","../../src/services/wsSasha.ts","../../../../node_modules/d3-time/src/interval.js","../../../../node_modules/d3-time/src/duration.js","../../../../node_modules/d3-time/src/day.js","../../../../node_modules/d3-time/src/week.js","../../../../node_modules/d3-time/src/year.js","../../../../node_modules/d3-time/src/utcDay.js","../../../../node_modules/d3-time/src/utcWeek.js","../../../../node_modules/d3-time/src/utcYear.js","../../../../node_modules/d3-time-format/src/locale.js","../../../../node_modules/d3-time-format/src/defaultLocale.js","../../src/services/wsdl/WsSMC/v1.29/WsSMC.ts","../../src/services/wsSMC.ts","../../src/services/wsdl/wsstore/v1.02/wsstore.ts","../../src/services/wsStore.ts","../../src/services/wsdl/WsTopology/v1.33/WsTopology.ts","../../src/services/wsTopology.ts","../../src/services/wsdl/WsWorkunits/v2.08/WsWorkunits.ts","../../src/services/wsWorkunits.ts","../../../../node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/d3-format/src/exponent.js","../../../../node_modules/d3-format/src/formatGroup.js","../../../../node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/d3-format/src/formatTrim.js","../../../../node_modules/d3-format/src/formatRounded.js","../../../../node_modules/d3-format/src/formatTypes.js","../../../../node_modules/d3-format/src/identity.js","../../../../node_modules/d3-format/src/locale.js","../../../../node_modules/d3-format/src/defaultLocale.js","../../src/ecl/graph.ts","../../src/ecl/resource.ts","../../src/ecl/xsdParser.ts","../../src/ecl/result.ts","../../src/ecl/scope.ts","../../src/ecl/sourceFile.ts","../../src/ecl/timer.ts","../../src/ecl/workunit.ts","../../src/ecl/activity.ts","../../src/ecl/logicalFile.ts","../../src/ecl/machine.ts","../../src/ecl/targetCluster.ts","../../src/ecl/topology.ts","../../src/ecl/queryGraph.ts","../../src/ecl/query.ts","../../src/ecl/store.ts","../../src/ecl/dfuWorkunit.ts"],"sourcesContent":["export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n","import { join, promiseTimeout, root, scopedLogger, utf8ToBase64 } from \"@hpcc-js/util\";\n\nconst logger = scopedLogger(\"comms/connection.ts\");\n\nexport type RequestType = \"post\" | \"get\" | \"jsonp\";\nexport type ResponseType = \"json\" | \"text\";\n\nexport type IOptionsSend = (options: IOptions, action: string, request: any, responseType: ResponseType, defaultSend: SendFunc, header?: any) => Promise<any>;\nexport interface IOptions {\n    baseUrl: string;\n    type?: RequestType;\n    userID?: string;\n    password?: string;\n    rejectUnauthorized?: boolean;\n    timeoutSecs?: number;\n    hookSend?: IOptionsSend;\n    encodeRequest?: boolean; // defaults to true\n}\nexport function instanceOfIOptions(object: any): object is IOptions {\n    return \"baseUrl\" in object;\n}\n\nconst DefaultOptions: IOptions = {\n    type: \"post\",\n    baseUrl: \"\",\n    userID: \"\",\n    password: \"\",\n    rejectUnauthorized: true,\n    timeoutSecs: 60\n};\n\nexport interface IConnection {\n    opts(_: Partial<IOptions>): this;\n    opts(): IOptions;\n    baseUrl: string;\n\n    send(action: string, request: any, responseType?: ResponseType): Promise<any>;\n    clone(): IConnection;\n}\nexport function instanceOfIConnection(object: any): object is IConnection {\n    return typeof object.opts === \"function\" &&\n        typeof object.send === \"function\" &&\n        typeof object.clone === \"function\";\n}\n\n//  comms  ---\n\nfunction encode(uriComponent: string | number | boolean, encodeRequest: boolean): string {\n    return (encodeRequest === undefined || encodeRequest === true) ? encodeURIComponent(uriComponent) : \"\" + uriComponent;\n}\n\nexport function serializeRequest(obj: any, encodeRequest: boolean = true, prefix: string = \"\"): string {\n    if (prefix) {\n        prefix += \".\";\n    }\n    if (typeof obj !== \"object\") {\n        return encode(obj, encodeRequest);\n    }\n\n    const str: string[] = [];\n    for (const key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            if (obj[key] instanceof Array) {\n                //  Specific to ESP - but no REST standard exists...\n                let includeItemCount = false;\n                obj[key].forEach((row: any, i: number) => {\n                    if (typeof row === \"object\") {\n                        includeItemCount = true;\n                        str.push(serializeRequest(row, encodeRequest, prefix + encode(`${key}.${i}`, encodeRequest)));\n                    } else {\n                        str.push(prefix + encode(`${key}_i${i}`, encodeRequest) + \"=\" + serializeRequest(row, encodeRequest));\n                    }\n                });\n                if (includeItemCount) {\n                    str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key].length);\n                }\n            } else if (typeof obj[key] === \"object\") {\n                if (obj[key] && obj[key][\"Item\"] instanceof Array) {  // Specific to ws_machine.GetTargetClusterInfo?\n                    str.push(serializeRequest(obj[key][\"Item\"], encodeRequest, prefix + encode(key, encodeRequest)));\n                    str.push(prefix + encode(`${key}.itemcount`, encodeRequest) + \"=\" + obj[key][\"Item\"].length);\n                } else {\n                    str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));\n                }\n            } else if (obj[key] !== undefined) {\n                str.push(prefix + encode(key, encodeRequest) + \"=\" + encode(obj[key], encodeRequest));\n            } else {\n                str.push(prefix + encode(key, encodeRequest));\n            }\n        }\n    }\n    return str.join(\"&\");\n}\n\nexport function deserializeResponse(body: string) {\n    return JSON.parse(body);\n}\n\nexport function jsonp(opts: IOptions, action: string, request: any = {}, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n    if (header) {\n        console.warn(\"Header attributes ignored for JSONP connections\");\n    }\n    return new Promise<any>((resolve, reject) => {\n        let respondedTimeout = opts.timeoutSecs! * 1000;\n        const respondedTick = 5000;\n        const callbackName = \"jsonp_callback_\" + Math.round(Math.random() * 999999);\n        (window as any)[callbackName] = function (response: any) {\n            respondedTimeout = 0;\n            doCallback();\n            resolve(responseType === \"json\" && typeof response === \"string\" ? deserializeResponse(response) : response);\n        };\n        const script = document.createElement(\"script\");\n        let url = join(opts.baseUrl, action);\n        url += url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n        script.src = url + \"jsonp=\" + callbackName + \"&\" + serializeRequest(request, opts.encodeRequest);\n        document.body.appendChild(script);\n        const progress = setInterval(function () {\n            if (respondedTimeout <= 0) {\n                clearInterval(progress);\n            } else {\n                respondedTimeout -= respondedTick;\n                if (respondedTimeout <= 0) {\n                    clearInterval(progress);\n                    logger.error(\"Request timeout:  \" + script.src);\n                    doCallback();\n                    reject(Error(\"Request timeout:  \" + script.src));\n                } else {\n                    logger.debug(\"Request pending (\" + respondedTimeout / 1000 + \" sec):  \" + script.src);\n                }\n            }\n        }, respondedTick);\n\n        function doCallback() {\n            delete (window as any)[callbackName];\n            document.body.removeChild(script);\n        }\n    });\n}\n\nfunction authHeader(opts: IOptions): object {\n    return opts.userID ? { Authorization: `Basic ${utf8ToBase64(`${opts.userID}:${opts.password}`)}` } : {};\n}\n\n//  _omitMap is a workaround for older HPCC-Platform instances without credentials ---\nconst _omitMap: { [baseUrl: string]: boolean } = {};\nfunction doFetch(opts: IOptions, action: string, requestInit: RequestInit, headersInit: HeadersInit, responseType: string) {\n    headersInit = {\n        ...authHeader(opts),\n        ...headersInit\n    };\n\n    requestInit = {\n        credentials: _omitMap[opts.baseUrl] ? \"omit\" : \"include\",\n        ...requestInit,\n        headers: headersInit\n    };\n\n    if (opts.baseUrl.indexOf(\"https:\") === 0) {\n        //  NodeJS / node-fetch only  ---\n        if (opts.rejectUnauthorized === false && root.__hpcc_rejectUnauthorizedAgent) {\n            requestInit[\"dispatcher\"] = root.__hpcc_rejectUnauthorizedAgent;\n        } else if (root.__hpcc_trustwaveAgent) {\n            requestInit[\"agent\"] = root.__hpcc_trustwaveAgent;\n        }\n    }\n\n    function handleResponse(response: Response): Promise<any> {\n        if (response.ok) {\n            return responseType === \"json\" ? response.json() : response.text();\n        }\n        throw new Error(response.statusText);\n    }\n\n    const fetchOverride = root.__hpcc_undiciFetch ?? fetch;\n    return promiseTimeout(opts.timeoutSecs! * 1000, fetchOverride(join(opts.baseUrl, action), requestInit)\n        .then(handleResponse)\n        .catch(e => {\n            //  Try again with the opposite credentials mode  ---\n            requestInit.credentials = !_omitMap[opts.baseUrl] ? \"omit\" : \"include\";\n            return fetchOverride(join(opts.baseUrl, action), requestInit)\n                .then(handleResponse)\n                .then(responseBody => {\n                    _omitMap[opts.baseUrl] = !_omitMap[opts.baseUrl];  // The \"opposite\" credentials mode is known to work  ---\n                    return responseBody;\n                });\n        })\n    );\n}\n\nexport function post(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n    if (request.upload_) {\n        delete request.upload_;\n        action += \"?upload_\";\n    }\n    let abortSignal;\n    if (request.abortSignal_) {\n        abortSignal = request.abortSignal_;\n        delete request.abortSignal_;\n    }\n    return doFetch(opts, action, {\n        method: \"post\",\n        body: serializeRequest(request, opts.encodeRequest),\n        signal: abortSignal\n    }, {\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\n        ...header\n    } as any, responseType);\n}\n\nexport function get(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n    let abortSignal;\n    if (request.abortSignal_) {\n        abortSignal = request.abortSignal_;\n        delete request.abortSignal_;\n    }\n    return doFetch(opts, `${action}?${serializeRequest(request, opts.encodeRequest)}`, {\n        method: \"get\",\n        signal: abortSignal\n    }, {\n        ...header\n    } as any, responseType);\n}\n\nexport type SendFunc = (opts: IOptions, action: string, request: any, responseType: ResponseType, header?: any) => Promise<any>;\nexport function send(opts: IOptions, action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n    let retVal: Promise<any>;\n    switch (opts.type) {\n        case \"jsonp\":\n            retVal = jsonp(opts, action, request, responseType, header);\n            break;\n        case \"get\":\n            retVal = get(opts, action, request, responseType, header);\n            break;\n        case \"post\":\n        default:\n            retVal = post(opts, action, request, responseType, header);\n            break;\n    }\n    return retVal;\n}\n\nlet hookedSend: SendFunc = send;\nexport function hookSend(newSend?: SendFunc): SendFunc {\n    const retVal = hookedSend;\n    if (newSend) {\n        hookedSend = newSend;\n    }\n    return retVal;\n}\n\nexport class Connection implements IConnection {\n    protected _opts: IOptions;\n    get baseUrl() { return this._opts.baseUrl; }\n\n    constructor(opts: IOptions) {\n        this.opts(opts);\n    }\n\n    //  IConnection  ---\n    opts(_: Partial<IOptions>): this;\n    opts(): IOptions;\n    opts(_?: Partial<IOptions>): this | IOptions {\n        if (arguments.length === 0) return this._opts;\n        this._opts = { ...DefaultOptions, ..._ };\n        return this;\n    }\n\n    send(action: string, request: any, responseType: ResponseType = \"json\", header?: any): Promise<any> {\n        if (this._opts.hookSend) {\n            return this._opts.hookSend(this._opts, action, request, responseType, hookedSend, header);\n        }\n        return hookedSend(this._opts, action, request, responseType, header);\n    }\n\n    clone() {\n        return new Connection(this.opts());\n    }\n}\n\nexport type IConnectionFactory = (opts: IOptions) => IConnection;\nexport let createConnection: IConnectionFactory = function (opts: IOptions): IConnection {\n    return new Connection(opts);\n};\n\nexport function setTransportFactory(newFunc: IConnectionFactory): IConnectionFactory {\n    const retVal = createConnection;\n    createConnection = newFunc;\n    return retVal;\n}\n","import { join } from \"@hpcc-js/util\";\nimport { createConnection, IConnection, IOptions, ResponseType } from \"./connection.ts\";\n\nexport type ESPResponseType = ResponseType | \"json2\" | \"xsd\";\n\nexport function isArray(arg: any) {\n    return Object.prototype.toString.call(arg) === \"[object Array]\";\n}\n\nexport interface Exception {\n    Code: number;\n    Message: string;\n}\n\nexport interface Exceptions {\n    Source: string;\n    Exception: Exception[];\n}\n\nexport class ESPExceptions extends Error implements Exceptions {\n    isESPExceptions = true;\n    action: string;\n    request: string;\n    Source: string;\n    Exception: Exception[];\n\n    constructor(action: string, request: any, exceptions: Exceptions) {\n        super(\"ESPException:  \" + exceptions.Source);\n        this.action = action;\n        this.request = request;\n        this.Source = exceptions.Source;\n        this.Exception = exceptions.Exception;\n        if (exceptions.Exception.length) {\n            this.message = `${exceptions.Exception[0].Code}:  ${exceptions.Exception[0].Message}`;\n        } else {\n            this.message = \"\";\n        }\n    }\n}\n\nexport function isExceptions(err: any): err is Exceptions {\n    return err instanceof ESPExceptions || (err.isESPExceptions && Array.isArray(err.Exception));\n}\n\nfunction isConnection(optsConnection: IOptions | IConnection): optsConnection is IConnection {\n    return (optsConnection as IConnection).send !== undefined;\n}\n\nexport class ESPConnection implements IConnection {\n    private _connection: IConnection;\n    get baseUrl() { return this._connection.opts().baseUrl; }\n    private _service: string;\n    private _version: string;\n\n    constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\n        this._connection = isConnection(optsConnection) ? optsConnection : createConnection(optsConnection);\n        this._service = service;\n        this._version = version;\n    }\n\n    service(): string;\n    service(_: string): ESPConnection;\n    service(_?: string): string | ESPConnection {\n        if (_ === void 0) return this._service;\n        this._service = _;\n        return this;\n    }\n\n    version(): string;\n    version(_: string): ESPConnection;\n    version(_?: string): string | ESPConnection {\n        if (_ === void 0) return this._version;\n        this._version = _;\n        return this;\n    }\n\n    toESPStringArray(target: any, arrayName: string): any {\n        if (isArray(target[arrayName])) {\n            for (let i = 0; i < target[arrayName].length; ++i) {\n                target[arrayName + \"_i\" + i] = target[arrayName][i];\n            }\n            delete target[arrayName];\n        }\n        return target;\n    }\n\n    //  IConnection  ---\n    opts(_: Partial<IOptions>): this;\n    opts(): IOptions;\n    opts(_?: Partial<IOptions>): this | IOptions {\n        if (_ === void 0) return this._connection.opts();\n        this._connection.opts(_);\n        return this;\n    }\n\n    send(action: string, _request: any = {}, espResponseType: ESPResponseType = \"json\", largeUpload: boolean = false, abortSignal?: AbortSignal, espResponseField?: string): Promise<any> {\n        const request = { ..._request, ...{ ver_: this._version } };\n        if (largeUpload) {\n            request[\"upload_\"] = true;\n        }\n        if (abortSignal) {\n            request[\"abortSignal_\"] = abortSignal;\n        }\n        let serviceAction: string;\n        let responseType: ResponseType = \"json\";\n        switch (espResponseType) {\n            case \"text\":\n                serviceAction = join(this._service, action);\n                responseType = \"text\";\n                break;\n            case \"xsd\":\n                serviceAction = join(this._service, action + \".xsd\");\n                responseType = \"text\";\n                break;\n            case \"json2\":\n                serviceAction = join(this._service, action + \"/json\");\n                espResponseType = \"json\";\n                const actionParts = action.split(\"/\");\n                action = actionParts.pop()!;\n                break;\n            default:\n                serviceAction = join(this._service, action + \".json\");\n        }\n        return this._connection.send(serviceAction, request, responseType).then((response) => {\n            if (espResponseType === \"json\") {\n                let retVal;\n                if (response && response.Exceptions) {\n                    throw new ESPExceptions(action, request, response.Exceptions);\n                } else if (response) {\n                    retVal = response[espResponseField || (action + \"Response\")];\n                }\n                if (!retVal) {\n                    throw new ESPExceptions(action, request, {\n                        Source: \"ESPConnection.send\",\n                        Exception: [{ Code: 0, Message: \"Missing Response\" }]\n                    });\n                }\n                return retVal;\n            }\n            return response;\n        });\n    }\n\n    clone() {\n        return new ESPConnection(this._connection.clone(), this._service, this._version);\n    }\n}\n\nexport class Service {\n    protected _connection: ESPConnection;\n    get baseUrl() { return this._connection.opts().baseUrl; }\n\n    constructor(optsConnection: IOptions | IConnection, service: string, version: string) {\n        this._connection = new ESPConnection(optsConnection, service, version);\n    }\n\n    opts() {\n        return this._connection.opts();\n    }\n\n    connection(): ESPConnection {\n        return this._connection.clone();\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace FileSpray {\n\n    export type int = number;\n    export type double = number;\n    export type base64Binary = string;\n    export type long = number;\n    export type dateTime = string;\n\n    export enum DFUWUActions {\n        Delete = \"Delete\",\n        Protect = \"Protect\",\n        Unprotect = \"Unprotect\",\n        Restore = \"Restore\",\n        SetToFailed = \"SetToFailed\",\n        Archive = \"Archive\"\n    }\n\n    export enum DFUCommand {\n        copy = \"copy\",\n        remove = \"remove\",\n        move = \"move\",\n        rename = \"rename\",\n        replicate = \"replicate\",\n        import = \"import\",\n        export = \"export\",\n        monitor = \"monitor\",\n        copymerge = \"copymerge\",\n        supercopy = \"supercopy\",\n        publish = \"publish\"\n    }\n\n    export interface AbortDFUWorkunit {\n        wuid?: string;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface AbortDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface Copy {\n        sourceLogicalName?: string;\n        destGroup?: string;\n        destGroupRoxie?: string;\n        destLogicalName?: string;\n        sourceDali?: string;\n        srcusername?: string;\n        srcpassword?: string;\n        overwrite?: boolean;\n        ensure?: boolean;\n        replicate?: boolean;\n        ReplicateOffset?: int;\n        maxConnections?: int;\n        throttle?: int;\n        transferBufferSize?: int;\n        nosplit?: boolean;\n        norecover?: boolean;\n        compress?: boolean;\n        Wrap?: boolean;\n        Multicopy?: boolean;\n        SourceDiffKeyName?: string;\n        DestDiffKeyName?: string;\n        superCopy?: boolean;\n        push?: boolean;\n        pull?: boolean;\n        ifnewer?: boolean;\n        noCommon?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        preserveCompression?: boolean;\n        DFUServerQueue?: string;\n        ExpireDays?: int;\n        KeyCompression?: string;\n        DestNumParts?: int;\n    }\n\n    export interface CopyResponse {\n        Exceptions?: Exceptions;\n        result?: string;\n    }\n\n    export interface CreateDFUPublisherWorkunit {\n        DFUServerQueue?: string;\n    }\n\n    export interface result {\n        ID?: string;\n        DFUServerName?: string;\n        ClusterName?: string;\n        JobName?: string;\n        Queue?: string;\n        User?: string;\n        isProtected?: boolean;\n        Command?: int;\n        CommandMessage?: string;\n        PercentDone?: int;\n        SecsLeft?: int;\n        ProgressMessage?: string;\n        SummaryMessage?: string;\n        State?: int;\n        SourceLogicalName?: string;\n        SourceIP?: string;\n        SourceFilePath?: string;\n        SourceDali?: string;\n        SourceRecordSize?: int;\n        SourceFormat?: int;\n        RowTag?: string;\n        SourceNumParts?: int;\n        SourceDirectory?: string;\n        DestLogicalName?: string;\n        DestGroupName?: string;\n        DestDirectory?: string;\n        DestIP?: string;\n        DestFilePath?: string;\n        DestFormat?: int;\n        DestNumParts?: int;\n        DestRecordSize?: int;\n        Replicate?: boolean;\n        Overwrite?: boolean;\n        Compress?: boolean;\n        SourceCsvSeparate?: string;\n        SourceCsvQuote?: string;\n        SourceCsvTerminate?: string;\n        SourceCsvEscape?: string;\n        TimeStarted?: string;\n        TimeStopped?: string;\n        StateMessage?: string;\n        MonitorEventName?: string;\n        MonitorSub?: boolean;\n        MonitorShotLimit?: int;\n        SourceDiffKeyName?: string;\n        DestDiffKeyName?: string;\n        Archived?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        failIfNoSourceFile?: boolean;\n        recordStructurePresent?: boolean;\n        quotedTerminator?: boolean;\n        preserveCompression?: boolean;\n        expireDays?: int;\n        PreserveFileParts?: boolean;\n        FileAccessCost?: double;\n        KbPerSecAve?: int;\n        KbPerSec?: int;\n    }\n\n    export interface CreateDFUPublisherWorkunitResponse {\n        Exceptions?: Exceptions;\n        result?: result;\n    }\n\n    export interface CreateDFUWorkunit {\n        DFUServerQueue?: string;\n    }\n\n    export interface CreateDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n        result?: result;\n    }\n\n    export interface DFUWUFileRequest {\n        Wuid?: string;\n        Type?: string;\n        PlainText?: string;\n    }\n\n    export interface DFUWUFileResponse {\n        Exceptions?: Exceptions;\n        file?: string;\n    }\n\n    export interface DFUWUSearchRequest {\n\n    }\n\n    export interface ClusterNames {\n        ClusterName?: string[];\n    }\n\n    export interface DFUWUSearchResponse {\n        Exceptions?: Exceptions;\n        ClusterNames?: ClusterNames;\n    }\n\n    export interface wuids {\n        Item?: string[];\n    }\n\n    export interface DFUWorkunitsActionRequest {\n        wuids?: wuids;\n        Type?: DFUWUActions;\n    }\n\n    export interface DFUActionResult {\n        ID?: string;\n        Action?: string;\n        Result?: string;\n    }\n\n    export interface DFUActionResults {\n        DFUActionResult?: DFUActionResult[];\n    }\n\n    export interface DFUWorkunitsActionResponse {\n        Exceptions?: Exceptions;\n        FirstColumn?: string;\n        DFUActionResults?: DFUActionResults;\n    }\n\n    export interface DeleteDFUWorkunit {\n        wuid?: string;\n    }\n\n    export interface DeleteDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n        result?: boolean;\n    }\n\n    export interface DeleteDFUWorkunits {\n        wuids?: wuids;\n    }\n\n    export interface DeleteDFUWorkunitsResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface Names {\n        Item?: string[];\n    }\n\n    export interface DeleteDropZoneFilesRequest {\n        DropZoneName?: string;\n        NetAddress?: string;\n        Path?: string;\n        OS?: string;\n        Names?: Names;\n    }\n\n    export interface Despray {\n        destGroup?: string;\n        sourceLogicalName?: string;\n        destIP?: string;\n        destPath?: string;\n        destPlane?: string;\n        dstxml?: base64Binary;\n        overwrite?: boolean;\n        maxConnections?: int;\n        throttle?: int;\n        transferBufferSize?: int;\n        splitprefix?: string;\n        norecover?: boolean;\n        wrap?: boolean;\n        multiCopy?: boolean;\n        SingleConnection?: boolean;\n        DFUServerQueue?: string;\n        compress?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n    }\n\n    export interface DesprayResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface DfuMonitorRequest {\n        EventName?: string;\n        LogicalName?: string;\n        Ip?: string;\n        Filename?: string;\n        Sub?: boolean;\n        ShotLimit?: int;\n    }\n\n    export interface DfuMonitorResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface DropZoneFileSearchRequest {\n        DropZoneName?: string;\n        Server?: string;\n        ECLWatchVisibleOnly?: boolean;\n        NameFilter?: string;\n    }\n\n    export interface PhysicalFileStruct {\n        name?: string;\n        Server?: string;\n        isDir?: boolean;\n        filesize?: long;\n        modifiedtime?: string;\n        Path?: string;\n        Files?: Files;\n    }\n\n    export interface Files {\n        PhysicalFileStruct?: PhysicalFileStruct[];\n    }\n\n    export interface DropZoneFileSearchResponse {\n        Exceptions?: Exceptions;\n        Files?: Files;\n        Warning?: string;\n    }\n\n    export interface DropZoneFilesRequest {\n        DropZoneName?: string;\n        NetAddress?: string;\n        Path?: string;\n        OS?: string;\n        Subfolder?: string;\n        ECLWatchVisibleOnly?: boolean;\n        DirectoryOnly?: boolean;\n    }\n\n    export interface DropZone {\n        Name?: string;\n        NetAddress?: string;\n        Path?: string;\n        Computer?: string;\n        Linux?: string;\n    }\n\n    export interface DropZones {\n        DropZone?: DropZone[];\n    }\n\n    export interface DropZoneFilesResponse {\n        Exceptions?: Exceptions;\n        DropZoneName?: string;\n        NetAddress?: string;\n        Path?: string;\n        OS?: int;\n        ECLWatchVisibleOnly?: boolean;\n        DropZones?: DropZones;\n        Files?: Files;\n    }\n\n    export interface EchoDateTime {\n        dt?: dateTime;\n    }\n\n    export interface EchoDateTimeResponse {\n        result?: dateTime;\n    }\n\n    export interface FileListRequest {\n        DropZoneName?: string;\n        Netaddr?: string;\n        Path?: string;\n        Mask?: string;\n        OS?: string;\n        DirectoryOnly?: boolean;\n    }\n\n    export interface files {\n        PhysicalFileStruct?: PhysicalFileStruct[];\n    }\n\n    export interface FileListResponse {\n        Exceptions?: Exceptions;\n        Netaddr?: string;\n        Path?: string;\n        Mask?: string;\n        OS?: int;\n        DirectoryOnly?: boolean;\n        AcceptLanguage?: string;\n        files?: files;\n    }\n\n    export interface GetDFUExceptions {\n        wuid?: string;\n    }\n\n    export interface DFUException {\n        Code?: int;\n        Message?: string;\n    }\n\n    export interface result2 {\n        DFUException?: DFUException[];\n    }\n\n    export interface GetDFUExceptionsResponse {\n        Exceptions?: Exceptions;\n        result?: result2;\n    }\n\n    export interface ProgressRequest {\n        wuid?: string;\n    }\n\n    export interface ProgressResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n        PercentDone?: int;\n        SecsLeft?: int;\n        KbPerSecAve?: int;\n        KbPerSec?: int;\n        SlavesDone?: int;\n        TimeTaken?: string;\n        ProgressMessage?: string;\n        SummaryMessage?: string;\n        State?: string;\n    }\n\n    export interface GetDFUServerQueuesRequest {\n        DFUServerName?: string;\n    }\n\n    export interface GetDFUServerQueuesResponse {\n        Exceptions?: Exceptions;\n        Names?: Names;\n    }\n\n    export interface GetDFUWorkunit {\n        wuid?: string;\n    }\n\n    export interface GetDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n        result?: result;\n        AutoRefresh?: int;\n    }\n\n    export interface GetDFUWorkunits {\n        Wuid?: string;\n        Owner?: string;\n        Cluster?: string;\n        StateReq?: string;\n        Command?: DFUCommand;\n        Archived?: boolean;\n        Jobname?: string;\n        PageSize?: long;\n        CurrentPage?: int;\n        PageStartFrom?: long;\n        Sortby?: string;\n        Descending?: boolean;\n        CacheHint?: long;\n        ParentWuid?: string;\n        PublisherWuid?: string;\n        includeProgressMessages?: boolean;\n        includeTimings?: boolean;\n        includeTransferRate?: boolean;\n    }\n\n    export interface DFUWorkunit {\n        ID?: string;\n        DFUServerName?: string;\n        ClusterName?: string;\n        JobName?: string;\n        Queue?: string;\n        User?: string;\n        isProtected?: boolean;\n        Command?: int;\n        CommandMessage?: string;\n        PercentDone?: int;\n        SecsLeft?: int;\n        ProgressMessage?: string;\n        SummaryMessage?: string;\n        State?: int;\n        SourceLogicalName?: string;\n        SourceIP?: string;\n        SourceFilePath?: string;\n        SourceDali?: string;\n        SourceRecordSize?: int;\n        SourceFormat?: int;\n        RowTag?: string;\n        SourceNumParts?: int;\n        SourceDirectory?: string;\n        DestLogicalName?: string;\n        DestGroupName?: string;\n        DestDirectory?: string;\n        DestIP?: string;\n        DestFilePath?: string;\n        DestFormat?: int;\n        DestNumParts?: int;\n        DestRecordSize?: int;\n        Replicate?: boolean;\n        Overwrite?: boolean;\n        Compress?: boolean;\n        SourceCsvSeparate?: string;\n        SourceCsvQuote?: string;\n        SourceCsvTerminate?: string;\n        SourceCsvEscape?: string;\n        TimeStarted?: string;\n        TimeStopped?: string;\n        StateMessage?: string;\n        MonitorEventName?: string;\n        MonitorSub?: boolean;\n        MonitorShotLimit?: int;\n        SourceDiffKeyName?: string;\n        DestDiffKeyName?: string;\n        Archived?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        failIfNoSourceFile?: boolean;\n        recordStructurePresent?: boolean;\n        quotedTerminator?: boolean;\n        preserveCompression?: boolean;\n        expireDays?: int;\n        PreserveFileParts?: boolean;\n        FileAccessCost?: double;\n        KbPerSecAve?: int;\n        KbPerSec?: int;\n    }\n\n    export interface results {\n        DFUWorkunit?: DFUWorkunit[];\n    }\n\n    export interface GetDFUWorkunitsResponse {\n        Exceptions?: Exceptions;\n        results?: results;\n        Command?: DFUCommand;\n        Owner?: string;\n        Cluster?: string;\n        StateReq?: string;\n        PageSize?: long;\n        PrevPage?: long;\n        NextPage?: long;\n        LastPage?: long;\n        NumWUs?: long;\n        PageStartFrom?: long;\n        PageEndAt?: long;\n        First?: boolean;\n        Sortby?: string;\n        Descending?: boolean;\n        BasicQuery?: string;\n        Filters?: string;\n        CacheHint?: long;\n    }\n\n    export interface GetRemoteTargetsRequest {\n\n    }\n\n    export interface TargetNames {\n        Item?: string[];\n    }\n\n    export interface GetRemoteTargetsResponse {\n        Exceptions?: Exceptions;\n        TargetNames?: TargetNames;\n        AllowForeign?: boolean;\n    }\n\n    export interface GetSprayTargetsRequest {\n\n    }\n\n    export interface GroupNode {\n        Name?: string;\n        ClusterType?: string;\n        ReplicateOutputs?: boolean;\n    }\n\n    export interface GroupNodes {\n        GroupNode?: GroupNode[];\n    }\n\n    export interface GetSprayTargetsResponse {\n        Exceptions?: Exceptions;\n        GroupNodes?: GroupNodes;\n    }\n\n    export interface OpenSaveRequest {\n        Location?: string;\n        Path?: string;\n        Name?: string;\n        Type?: string;\n        DateTime?: string;\n        BinaryFile?: boolean;\n    }\n\n    export interface OpenSaveResponse {\n        Exceptions?: Exceptions;\n        Location?: string;\n        Path?: string;\n        Name?: string;\n        Type?: string;\n        DateTime?: string;\n        Viewable?: boolean;\n    }\n\n    export interface FileSprayPingRequest {\n\n    }\n\n    export interface FileSprayPingResponse {\n\n    }\n\n    export interface Rename {\n        srcname?: string;\n        dstname?: string;\n        overwrite?: boolean;\n        DFUServerQueue?: string;\n    }\n\n    export interface RenameResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface Replicate {\n        sourceLogicalName?: string;\n        replicateOffset?: int;\n        cluster?: string;\n        repeatLast?: boolean;\n        onlyRepeated?: boolean;\n        DFUServerQueue?: string;\n    }\n\n    export interface ReplicateResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface ShowResultRequest {\n        Result?: string;\n    }\n\n    export interface ShowResultResponse {\n        Exceptions?: Exceptions;\n        Result?: string;\n    }\n\n    export interface SprayFixed {\n        sourceIP?: string;\n        sourcePlane?: string;\n        sourcePath?: string;\n        srcxml?: base64Binary;\n        sourceFormat?: string;\n        sourceRecordSize?: int;\n        destGroup?: string;\n        destLogicalName?: string;\n        destNumParts?: int;\n        overwrite?: boolean;\n        replicate?: boolean;\n        ReplicateOffset?: int;\n        maxConnections?: int;\n        throttle?: int;\n        transferBufferSize?: int;\n        prefix?: string;\n        nosplit?: boolean;\n        norecover?: boolean;\n        compress?: boolean;\n        push?: boolean;\n        pull?: boolean;\n        noCommon?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        wrap?: boolean;\n        failIfNoSourceFile?: boolean;\n        recordStructurePresent?: boolean;\n        quotedTerminator?: boolean;\n        expireDays?: int;\n        DFUServerQueue?: string;\n    }\n\n    export interface SprayFixedResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface SprayVariable {\n        sourceIP?: string;\n        sourcePlane?: string;\n        sourcePath?: string;\n        srcxml?: base64Binary;\n        sourceMaxRecordSize?: int;\n        sourceFormat?: int;\n        NoSourceCsvSeparator?: boolean;\n        sourceCsvSeparate?: string;\n        sourceCsvTerminate?: string;\n        sourceCsvQuote?: string;\n        sourceCsvEscape?: string;\n        sourceRowTag?: string;\n        destGroup?: string;\n        destLogicalName?: string;\n        destNumParts?: int;\n        overwrite?: boolean;\n        replicate?: boolean;\n        ReplicateOffset?: int;\n        maxConnections?: int;\n        throttle?: int;\n        transferBufferSize?: int;\n        prefix?: string;\n        nosplit?: boolean;\n        norecover?: boolean;\n        compress?: boolean;\n        push?: boolean;\n        pull?: boolean;\n        noCommon?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        failIfNoSourceFile?: boolean;\n        recordStructurePresent?: boolean;\n        quotedTerminator?: boolean;\n        sourceRowPath?: string;\n        isJSON?: boolean;\n        expireDays?: int;\n        DFUServerQueue?: string;\n        srcUsername?: string;\n        srcPassword?: string;\n    }\n\n    export interface SprayResponse {\n        Exceptions?: Exceptions;\n        wuid?: string;\n    }\n\n    export interface SubmitDFUWorkunit {\n        wuid?: string;\n    }\n\n    export interface SubmitDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface wu {\n        ID?: string;\n        DFUServerName?: string;\n        ClusterName?: string;\n        JobName?: string;\n        Queue?: string;\n        User?: string;\n        isProtected?: boolean;\n        Command?: int;\n        CommandMessage?: string;\n        PercentDone?: int;\n        SecsLeft?: int;\n        ProgressMessage?: string;\n        SummaryMessage?: string;\n        State?: int;\n        SourceLogicalName?: string;\n        SourceIP?: string;\n        SourceFilePath?: string;\n        SourceDali?: string;\n        SourceRecordSize?: int;\n        SourceFormat?: int;\n        RowTag?: string;\n        SourceNumParts?: int;\n        SourceDirectory?: string;\n        DestLogicalName?: string;\n        DestGroupName?: string;\n        DestDirectory?: string;\n        DestIP?: string;\n        DestFilePath?: string;\n        DestFormat?: int;\n        DestNumParts?: int;\n        DestRecordSize?: int;\n        Replicate?: boolean;\n        Overwrite?: boolean;\n        Compress?: boolean;\n        SourceCsvSeparate?: string;\n        SourceCsvQuote?: string;\n        SourceCsvTerminate?: string;\n        SourceCsvEscape?: string;\n        TimeStarted?: string;\n        TimeStopped?: string;\n        StateMessage?: string;\n        MonitorEventName?: string;\n        MonitorSub?: boolean;\n        MonitorShotLimit?: int;\n        SourceDiffKeyName?: string;\n        DestDiffKeyName?: string;\n        Archived?: boolean;\n        encrypt?: string;\n        decrypt?: string;\n        failIfNoSourceFile?: boolean;\n        recordStructurePresent?: boolean;\n        quotedTerminator?: boolean;\n        preserveCompression?: boolean;\n        expireDays?: int;\n        PreserveFileParts?: boolean;\n        FileAccessCost?: double;\n        KbPerSecAve?: int;\n        KbPerSec?: int;\n    }\n\n    export interface UpdateDFUWorkunit {\n        wu?: wu;\n        ClusterOrig?: string;\n        JobNameOrig?: string;\n        isProtectedOrig?: boolean;\n        StateOrig?: int;\n    }\n\n    export interface UpdateDFUWorkunitResponse {\n        Exceptions?: Exceptions;\n    }\n\n}\n\nexport class FileSprayServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"FileSpray\", \"1.29\");\n    }\n\n    AbortDFUWorkunit(request: FileSpray.AbortDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.AbortDFUWorkunitResponse> {\n        return this._connection.send(\"AbortDFUWorkunit\", request, \"json\", false, abortSignal, \"AbortDFUWorkunitResponse\");\n    }\n\n    Copy(request: FileSpray.Copy, abortSignal?: AbortSignal): Promise<FileSpray.CopyResponse> {\n        return this._connection.send(\"Copy\", request, \"json\", false, abortSignal, \"CopyResponse\");\n    }\n\n    CreateDFUPublisherWorkunit(request: FileSpray.CreateDFUPublisherWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.CreateDFUPublisherWorkunitResponse> {\n        return this._connection.send(\"CreateDFUPublisherWorkunit\", request, \"json\", false, abortSignal, \"CreateDFUPublisherWorkunitResponse\");\n    }\n\n    CreateDFUWorkunit(request: FileSpray.CreateDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.CreateDFUWorkunitResponse> {\n        return this._connection.send(\"CreateDFUWorkunit\", request, \"json\", false, abortSignal, \"CreateDFUWorkunitResponse\");\n    }\n\n    DFUWUFile(request: FileSpray.DFUWUFileRequest, abortSignal?: AbortSignal): Promise<FileSpray.DFUWUFileResponse> {\n        return this._connection.send(\"DFUWUFile\", request, \"json\", false, abortSignal, \"DFUWUFileResponse\");\n    }\n\n    DFUWUSearch(request: FileSpray.DFUWUSearchRequest, abortSignal?: AbortSignal): Promise<FileSpray.DFUWUSearchResponse> {\n        return this._connection.send(\"DFUWUSearch\", request, \"json\", false, abortSignal, \"DFUWUSearchResponse\");\n    }\n\n    DFUWorkunitsAction(request: FileSpray.DFUWorkunitsActionRequest, abortSignal?: AbortSignal): Promise<FileSpray.DFUWorkunitsActionResponse> {\n        return this._connection.send(\"DFUWorkunitsAction\", request, \"json\", false, abortSignal, \"DFUWorkunitsActionResponse\");\n    }\n\n    DeleteDFUWorkunit(request: FileSpray.DeleteDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.DeleteDFUWorkunitResponse> {\n        return this._connection.send(\"DeleteDFUWorkunit\", request, \"json\", false, abortSignal, \"DeleteDFUWorkunitResponse\");\n    }\n\n    DeleteDFUWorkunits(request: FileSpray.DeleteDFUWorkunits, abortSignal?: AbortSignal): Promise<FileSpray.DeleteDFUWorkunitsResponse> {\n        return this._connection.send(\"DeleteDFUWorkunits\", request, \"json\", false, abortSignal, \"DeleteDFUWorkunitsResponse\");\n    }\n\n    DeleteDropZoneFiles(request: FileSpray.DeleteDropZoneFilesRequest, abortSignal?: AbortSignal): Promise<FileSpray.DFUWorkunitsActionResponse> {\n        return this._connection.send(\"DeleteDropZoneFiles\", request, \"json\", false, abortSignal, \"DFUWorkunitsActionResponse\");\n    }\n\n    Despray(request: FileSpray.Despray, abortSignal?: AbortSignal): Promise<FileSpray.DesprayResponse> {\n        return this._connection.send(\"Despray\", request, \"json\", false, abortSignal, \"DesprayResponse\");\n    }\n\n    DfuMonitor(request: FileSpray.DfuMonitorRequest, abortSignal?: AbortSignal): Promise<FileSpray.DfuMonitorResponse> {\n        return this._connection.send(\"DfuMonitor\", request, \"json\", false, abortSignal, \"DfuMonitorResponse\");\n    }\n\n    DropZoneFileSearch(request: FileSpray.DropZoneFileSearchRequest, abortSignal?: AbortSignal): Promise<FileSpray.DropZoneFileSearchResponse> {\n        return this._connection.send(\"DropZoneFileSearch\", request, \"json\", false, abortSignal, \"DropZoneFileSearchResponse\");\n    }\n\n    DropZoneFiles(request: FileSpray.DropZoneFilesRequest, abortSignal?: AbortSignal): Promise<FileSpray.DropZoneFilesResponse> {\n        return this._connection.send(\"DropZoneFiles\", request, \"json\", false, abortSignal, \"DropZoneFilesResponse\");\n    }\n\n    EchoDateTime(request: FileSpray.EchoDateTime, abortSignal?: AbortSignal): Promise<FileSpray.EchoDateTimeResponse> {\n        return this._connection.send(\"EchoDateTime\", request, \"json\", false, abortSignal, \"EchoDateTimeResponse\");\n    }\n\n    FileList(request: FileSpray.FileListRequest, abortSignal?: AbortSignal): Promise<FileSpray.FileListResponse> {\n        return this._connection.send(\"FileList\", request, \"json\", false, abortSignal, \"FileListResponse\");\n    }\n\n    GetDFUExceptions(request: FileSpray.GetDFUExceptions, abortSignal?: AbortSignal): Promise<FileSpray.GetDFUExceptionsResponse> {\n        return this._connection.send(\"GetDFUExceptions\", request, \"json\", false, abortSignal, \"GetDFUExceptionsResponse\");\n    }\n\n    GetDFUProgress(request: FileSpray.ProgressRequest, abortSignal?: AbortSignal): Promise<FileSpray.ProgressResponse> {\n        return this._connection.send(\"GetDFUProgress\", request, \"json\", false, abortSignal, \"ProgressResponse\");\n    }\n\n    GetDFUServerQueues(request: FileSpray.GetDFUServerQueuesRequest, abortSignal?: AbortSignal): Promise<FileSpray.GetDFUServerQueuesResponse> {\n        return this._connection.send(\"GetDFUServerQueues\", request, \"json\", false, abortSignal, \"GetDFUServerQueuesResponse\");\n    }\n\n    GetDFUWorkunit(request: FileSpray.GetDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.GetDFUWorkunitResponse> {\n        return this._connection.send(\"GetDFUWorkunit\", request, \"json\", false, abortSignal, \"GetDFUWorkunitResponse\");\n    }\n\n    GetDFUWorkunits(request: FileSpray.GetDFUWorkunits, abortSignal?: AbortSignal): Promise<FileSpray.GetDFUWorkunitsResponse> {\n        return this._connection.send(\"GetDFUWorkunits\", request, \"json\", false, abortSignal, \"GetDFUWorkunitsResponse\");\n    }\n\n    GetRemoteTargets(request: FileSpray.GetRemoteTargetsRequest, abortSignal?: AbortSignal): Promise<FileSpray.GetRemoteTargetsResponse> {\n        return this._connection.send(\"GetRemoteTargets\", request, \"json\", false, abortSignal, \"GetRemoteTargetsResponse\");\n    }\n\n    GetSprayTargets(request: FileSpray.GetSprayTargetsRequest, abortSignal?: AbortSignal): Promise<FileSpray.GetSprayTargetsResponse> {\n        return this._connection.send(\"GetSprayTargets\", request, \"json\", false, abortSignal, \"GetSprayTargetsResponse\");\n    }\n\n    OpenSave(request: FileSpray.OpenSaveRequest, abortSignal?: AbortSignal): Promise<FileSpray.OpenSaveResponse> {\n        return this._connection.send(\"OpenSave\", request, \"json\", false, abortSignal, \"OpenSaveResponse\");\n    }\n\n    Ping(request: FileSpray.FileSprayPingRequest, abortSignal?: AbortSignal): Promise<FileSpray.FileSprayPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"FileSprayPingResponse\");\n    }\n\n    Rename(request: FileSpray.Rename, abortSignal?: AbortSignal): Promise<FileSpray.RenameResponse> {\n        return this._connection.send(\"Rename\", request, \"json\", false, abortSignal, \"RenameResponse\");\n    }\n\n    Replicate(request: FileSpray.Replicate, abortSignal?: AbortSignal): Promise<FileSpray.ReplicateResponse> {\n        return this._connection.send(\"Replicate\", request, \"json\", false, abortSignal, \"ReplicateResponse\");\n    }\n\n    ShowResult(request: FileSpray.ShowResultRequest, abortSignal?: AbortSignal): Promise<FileSpray.ShowResultResponse> {\n        return this._connection.send(\"ShowResult\", request, \"json\", false, abortSignal, \"ShowResultResponse\");\n    }\n\n    SprayFixed(request: FileSpray.SprayFixed, abortSignal?: AbortSignal): Promise<FileSpray.SprayFixedResponse> {\n        return this._connection.send(\"SprayFixed\", request, \"json\", false, abortSignal, \"SprayFixedResponse\");\n    }\n\n    SprayVariable(request: FileSpray.SprayVariable, abortSignal?: AbortSignal): Promise<FileSpray.SprayResponse> {\n        return this._connection.send(\"SprayVariable\", request, \"json\", false, abortSignal, \"SprayResponse\");\n    }\n\n    SubmitDFUWorkunit(request: FileSpray.SubmitDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.SubmitDFUWorkunitResponse> {\n        return this._connection.send(\"SubmitDFUWorkunit\", request, \"json\", false, abortSignal, \"SubmitDFUWorkunitResponse\");\n    }\n\n    UpdateDFUWorkunit(request: FileSpray.UpdateDFUWorkunit, abortSignal?: AbortSignal): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n        return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, abortSignal, \"UpdateDFUWorkunitResponse\");\n    }\n\n}\n","import { FileSprayServiceBase, FileSpray } from \"./wsdl/FileSpray/v1.29/FileSpray.ts\";\n\nexport {\n    FileSpray\n};\n\ntype UpdateDFUWorkunitMinusWU = Omit<FileSpray.UpdateDFUWorkunit, \"wu\">;\ntype UpdateDFUWorkunitWU = FileSpray.UpdateDFUWorkunit[\"wu\"];\n\nexport enum FileSprayStates {\n    unknown = 0,\n    scheduled,\n    queued,\n    started,\n    aborted,\n    failed,\n    finished,\n    monitoring,\n    aborting,\n    notfound = 999\n}\n\nexport interface UpdateDFUWorkunitEx extends UpdateDFUWorkunitMinusWU {\n    wu?: Partial<UpdateDFUWorkunitWU>\n}\n\nexport class FileSprayService extends FileSprayServiceBase {\n\n    DFUWUFileEx(request: FileSpray.DFUWUFileRequest): Promise<string> {\n        return this._connection.send(\"DFUWUFile\", request, \"text\");\n    }\n\n    SprayFixedEx(request: Partial<FileSpray.SprayFixed>): Promise<FileSpray.SprayFixedResponse> {\n        return this._connection.send(\"SprayFixed\", request);\n    }\n\n    SprayVariableEx(request: Partial<FileSpray.SprayVariable>): Promise<FileSpray.SprayResponse> {\n        return this._connection.send(\"SprayVariable\", request, \"json\", false, null, \"SprayResponse\");\n    }\n\n    DesprayEx(request: Partial<FileSpray.Despray>): Promise<FileSpray.DesprayResponse> {\n        return this._connection.send(\"Despray\", request);\n    }\n\n    UpdateDFUWorkunitEx(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n        return this._connection.send(\"UpdateDFUWorkunit\", request, \"json\", false, undefined, \"UpdateDFUWorkunitResponse\");\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccess {\n\n    export type int = number;\n    export type unsignedInt = number;\n    export type long = number;\n    export type base64Binary = string;\n\n    export enum ViewMemberType {\n        User = \"User\",\n        Group = \"Group\"\n    }\n\n    export enum UserSortBy {\n        username = \"username\",\n        fullname = \"fullname\",\n        passwordexpiration = \"passwordexpiration\",\n        employeeID = \"employeeID\",\n        employeeNumber = \"employeeNumber\"\n    }\n\n    export enum GroupSortBy {\n        Name = \"Name\",\n        ManagedBy = \"ManagedBy\"\n    }\n\n    export enum AccountTypeReq {\n        Any = \"Any\",\n        User = \"User\",\n        Group = \"Group\"\n    }\n\n    export enum ResourcePermissionSortBy {\n        Name = \"Name\",\n        Type = \"Type\"\n    }\n\n    export enum ResourceSortBy {\n        Name = \"Name\"\n    }\n\n    export interface AccountPermissionsRequest {\n        AccountName?: string;\n        IsGroup?: boolean;\n        IncludeGroup?: boolean;\n    }\n\n    export interface BasednNames {\n        Item?: string[];\n    }\n\n    export interface Permission {\n        BasednName?: string;\n        rname?: string;\n        prefix?: string;\n        ResourceName?: string;\n        PermissionName?: string;\n        allow_access?: boolean;\n        allow_read?: boolean;\n        allow_write?: boolean;\n        allow_full?: boolean;\n        deny_access?: boolean;\n        deny_read?: boolean;\n        deny_write?: boolean;\n        deny_full?: boolean;\n    }\n\n    export interface Permissions {\n        Permission?: Permission[];\n    }\n\n    export interface GroupPermission {\n        GroupName?: string;\n        BasednNames?: BasednNames;\n        Permissions?: Permissions;\n    }\n\n    export interface GroupPermissions {\n        GroupPermission?: GroupPermission[];\n    }\n\n    export interface AccountPermissionsResponse {\n        AccountName?: string;\n        IsGroup?: boolean;\n        IncludeGroup?: boolean;\n        BasednNames?: BasednNames;\n        Permissions?: Permissions;\n        GroupPermissions?: GroupPermissions;\n    }\n\n    export interface AccountPermissionsV2Request {\n        ResourceName?: string;\n        AccountName?: string;\n        IsGroup?: boolean;\n        IncludeGroup?: boolean;\n    }\n\n    export interface AccountPermissionsV2Response {\n        BasednNames?: BasednNames;\n        Permissions?: Permissions;\n        GroupPermissions?: GroupPermissions;\n    }\n\n    export interface AddUserRequest {\n        username?: string;\n        firstname?: string;\n        lastname?: string;\n        password1?: string;\n        password2?: string;\n        employeeID?: string;\n        employeeNumber?: string;\n    }\n\n    export interface AddUserResponse {\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface AddViewRequest {\n        viewname?: string;\n        description?: string;\n    }\n\n    export interface AddViewResponse {\n        viewname?: string;\n        description?: string;\n    }\n\n    export interface AddViewColumnRequest {\n        viewname?: string;\n        filename?: string;\n        columnname?: string;\n    }\n\n    export interface AddViewColumnResponse {\n        viewname?: string;\n        filename?: string;\n        columnname?: string;\n    }\n\n    export interface AddViewMemberRequest {\n        viewname?: string;\n        membername?: string;\n        membertype?: ViewMemberType;\n    }\n\n    export interface AddViewMemberResponse {\n        viewname?: string;\n        membername?: string;\n        membertype?: ViewMemberType;\n    }\n\n    export interface ClearPermissionsCacheRequest {\n\n    }\n\n    export interface ClearPermissionsCacheResponse {\n        retcode?: int;\n    }\n\n    export interface DeleteViewRequest {\n        viewname?: string;\n    }\n\n    export interface DeleteViewResponse {\n        viewname?: string;\n    }\n\n    export interface DeleteViewColumnRequest {\n        viewname?: string;\n        filename?: string;\n        columnname?: string;\n    }\n\n    export interface DeleteViewColumnResponse {\n        viewname?: string;\n        filename?: string;\n        columnname?: string;\n    }\n\n    export interface DeleteViewMemberRequest {\n        viewname?: string;\n        membername?: string;\n        membertype?: ViewMemberType;\n    }\n\n    export interface DeleteViewMemberResponse {\n        viewname?: string;\n        membername?: string;\n        membertype?: ViewMemberType;\n    }\n\n    export interface DisableScopeScansRequest {\n\n    }\n\n    export interface scopeScansStatus {\n        isEnabled?: boolean;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface DisableScopeScansResponse {\n        scopeScansStatus?: scopeScansStatus;\n    }\n\n    export interface EnableScopeScansRequest {\n\n    }\n\n    export interface EnableScopeScansResponse {\n        scopeScansStatus?: scopeScansStatus;\n    }\n\n    export interface FilePermissionRequest {\n        FileName?: string;\n        UserName?: string;\n        GroupName?: string;\n    }\n\n    export interface User {\n        username?: string;\n        fullname?: string;\n        passwordexpiration?: string;\n        employeeID?: string;\n        employeeNumber?: string;\n    }\n\n    export interface Users {\n        User?: User[];\n    }\n\n    export interface Group {\n        name?: string;\n        deletable?: boolean;\n        groupOwner?: string;\n        groupDesc?: string;\n    }\n\n    export interface Groups {\n        Group?: Group[];\n    }\n\n    export interface FilePermissionResponse {\n        NoSecMngr?: boolean;\n        FileName?: string;\n        UserName?: string;\n        GroupName?: string;\n        toomany?: boolean;\n        Users?: Users;\n        Groups?: Groups;\n        UserPermission?: string;\n    }\n\n    export interface groupnames {\n        Item?: string[];\n    }\n\n    export interface GroupActionRequest {\n        groupnames?: groupnames;\n        ActionType?: string;\n        DeletePermission?: boolean;\n    }\n\n    export interface GroupActionResponse {\n        Groupnames?: string;\n        Permissions?: Permissions;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface GroupAddRequest {\n        groupname?: string;\n        groupOwner?: string;\n        groupDesc?: string;\n    }\n\n    export interface GroupAddResponse {\n        groupname?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface GroupEditRequest {\n        groupname?: string;\n    }\n\n    export interface GroupEditResponse {\n        groupname?: string;\n        Users?: Users;\n    }\n\n    export interface usernames {\n        Item?: string[];\n    }\n\n    export interface GroupMemberEditRequest {\n        groupname?: string;\n        action?: string;\n        usernames?: usernames;\n    }\n\n    export interface GroupMemberEditResponse {\n        groupname?: string;\n        action?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface GroupMemberEditInputRequest {\n        searchinput?: string;\n        groupname?: string;\n    }\n\n    export interface GroupMemberEditInputResponse {\n        groupname?: string;\n        toomany?: boolean;\n        Users?: Users;\n    }\n\n    export interface GroupMemberQueryRequest {\n        GroupName?: string;\n        PageSize?: unsignedInt;\n        PageStartFrom?: long;\n        SortBy?: UserSortBy;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface GroupMemberQueryResponse {\n        NoSecMngr?: boolean;\n        Users?: Users;\n        TotalUsers?: long;\n        CacheHint?: long;\n    }\n\n    export interface GroupQueryRequest {\n        PageSize?: unsignedInt;\n        PageStartFrom?: long;\n        SortBy?: GroupSortBy;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface GroupQueryResponse {\n        NoSecMngr?: boolean;\n        Groups?: Groups;\n        TotalGroups?: long;\n        CacheHint?: long;\n    }\n\n    export interface GroupRequest {\n\n    }\n\n    export interface GroupResponse {\n        NoSecMngr?: boolean;\n        Groups?: Groups;\n    }\n\n    export interface PermissionActionRequest {\n        rname?: string;\n        prefix?: string;\n        action?: string;\n        account_name?: string;\n        account_type?: int;\n        allow_access?: boolean;\n        allow_read?: boolean;\n        allow_write?: boolean;\n        allow_full?: boolean;\n        deny_access?: boolean;\n        deny_read?: boolean;\n        deny_write?: boolean;\n        deny_full?: boolean;\n        user?: string;\n        group?: string;\n        BasednName?: string;\n        ResourceName?: string;\n    }\n\n    export interface PermissionActionResponse {\n        AccountName?: string;\n        IsGroup?: boolean;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface BasednsRequest {\n\n    }\n\n    export interface Basedn {\n        name?: string;\n        basedn?: string;\n        rtype?: string;\n        rtitle?: string;\n        templatename?: string;\n    }\n\n    export interface Basedns {\n        Basedn?: Basedn[];\n    }\n\n    export interface BasednsResponse {\n        NoSecMngr?: boolean;\n        Basedns?: Basedns;\n    }\n\n    export interface names {\n        Item?: string[];\n    }\n\n    export interface PermissionsResetRequest {\n        BasednName?: string;\n        prefix?: string;\n        names?: names;\n        allow_access?: boolean;\n        allow_read?: boolean;\n        allow_write?: boolean;\n        allow_full?: boolean;\n        deny_access?: boolean;\n        deny_read?: boolean;\n        deny_write?: boolean;\n        deny_full?: boolean;\n        userarray?: string;\n        grouparray?: string;\n    }\n\n    export interface PermissionsResetResponse {\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface ws_accessPingRequest {\n\n    }\n\n    export interface ws_accessPingResponse {\n\n    }\n\n    export interface QueryScopeScansEnabledRequest {\n\n    }\n\n    export interface QueryScopeScansEnabledResponse {\n        scopeScansStatus?: scopeScansStatus;\n    }\n\n    export interface QueryUserViewColumnsRequest {\n        username?: string;\n    }\n\n    export interface ViewColumn {\n        viewname?: string;\n        filename?: string;\n        columnname?: string;\n    }\n\n    export interface viewcolumns {\n        ViewColumn?: ViewColumn[];\n    }\n\n    export interface QueryUserViewColumnsResponse {\n        username?: string;\n        viewcolumns?: viewcolumns;\n    }\n\n    export interface QueryViewColumnsRequest {\n        viewname?: string;\n    }\n\n    export interface QueryViewColumnsResponse {\n        viewname?: string;\n        viewcolumns?: viewcolumns;\n    }\n\n    export interface QueryViewMembersRequest {\n        viewname?: string;\n    }\n\n    export interface ViewMember {\n        viewname?: string;\n        name?: string;\n        membertype?: ViewMemberType;\n    }\n\n    export interface viewmembers {\n        ViewMember?: ViewMember[];\n    }\n\n    export interface QueryViewMembersResponse {\n        viewname?: string;\n        viewmembers?: viewmembers;\n    }\n\n    export interface QueryViewsRequest {\n\n    }\n\n    export interface View {\n        viewname?: string;\n        description?: string;\n    }\n\n    export interface views {\n        View?: View[];\n    }\n\n    export interface QueryViewsResponse {\n        views?: views;\n    }\n\n    export interface ResourceAddRequest {\n        BasednName?: string;\n        name?: string;\n        description?: string;\n        prefix?: string;\n    }\n\n    export interface ResourceAddResponse {\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface ResourceDeleteRequest {\n        BasednName?: string;\n        prefix?: string;\n        names?: names;\n        DoUpdate?: int;\n    }\n\n    export interface ResourceDeleteResponse {\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface ResourcePermissionQueryRequest {\n        BasednName?: string;\n        prefix?: string;\n        Name?: string;\n        AccountType?: AccountTypeReq;\n        PageSize?: unsignedInt;\n        PageStartFrom?: long;\n        SortBy?: ResourcePermissionSortBy;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface Permission2 {\n        account_name?: string;\n        escaped_account_name?: string;\n        account_type?: int;\n        allow_access?: boolean;\n        allow_read?: boolean;\n        allow_write?: boolean;\n        allow_full?: boolean;\n        deny_access?: boolean;\n        deny_read?: boolean;\n        deny_write?: boolean;\n        deny_full?: boolean;\n    }\n\n    export interface Permissions2 {\n        Permission?: Permission2[];\n    }\n\n    export interface ResourcePermissionQueryResponse {\n        NoSecMngr?: boolean;\n        Permissions?: Permissions2;\n        TotalResourcePermissions?: long;\n        CacheHint?: long;\n    }\n\n    export interface ResourcePermissionsRequest {\n        name?: string;\n        BasednName?: string;\n        prefix?: string;\n    }\n\n    export interface ResourcePermissionsResponse {\n        Permissions?: Permissions2;\n    }\n\n    export interface ResourceQueryRequest {\n        BasednName?: string;\n        prefix?: string;\n        Name?: string;\n        PageSize?: unsignedInt;\n        PageStartFrom?: long;\n        SortBy?: ResourceSortBy;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface Resource {\n        name?: string;\n        description?: string;\n        isSpecial?: boolean;\n    }\n\n    export interface Resources {\n        Resource?: Resource[];\n    }\n\n    export interface ResourceQueryResponse {\n        NoSecMngr?: boolean;\n        Resources?: Resources;\n        TotalResources?: long;\n        CacheHint?: long;\n    }\n\n    export interface ResourcesRequest {\n        templatename?: string;\n        BasednName?: string;\n        prefix?: string;\n        searchinput?: string;\n    }\n\n    export interface ResourcesResponse {\n        Resources?: Resources;\n        default_basedn?: string;\n        default_name?: string;\n        toomany?: boolean;\n        scopeScansStatus?: scopeScansStatus;\n    }\n\n    export interface UserAccountExportRequest {\n        usernames?: usernames;\n        groupnames?: groupnames;\n    }\n\n    export interface UserAccountExportResponse {\n        Result?: base64Binary;\n    }\n\n    export interface UserActionRequest {\n        action?: string;\n        ActionType?: string;\n        usernames?: usernames;\n    }\n\n    export interface UserActionResponse {\n        action?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserEditRequest {\n        username?: string;\n    }\n\n    export interface UserEditResponse {\n        username?: string;\n        isLDAPAdmin?: boolean;\n        Groups?: Groups;\n    }\n\n    export interface UserGroupEditRequest {\n        username?: string;\n        action?: string;\n        groupnames?: groupnames;\n    }\n\n    export interface UserGroupEditResponse {\n        username?: string;\n        action?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserGroupEditInputRequest {\n        username?: string;\n    }\n\n    export interface UserGroupEditInputResponse {\n        username?: string;\n        Groups?: Groups;\n    }\n\n    export interface UserInfoEditRequest {\n        username?: string;\n        firstname?: string;\n        lastname?: string;\n        employeeID?: string;\n        employeeNumber?: string;\n    }\n\n    export interface UserInfoEditResponse {\n        username?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserInfoEditInputRequest {\n        username?: string;\n    }\n\n    export interface UserInfoEditInputResponse {\n        username?: string;\n        firstname?: string;\n        lastname?: string;\n        employeeID?: string;\n        PasswordExpiration?: string;\n        employeeNumber?: string;\n    }\n\n    export interface UserPosixRequest {\n        username?: string;\n        posixenabled?: boolean;\n        gidnumber?: string;\n        uidnumber?: string;\n        homedirectory?: string;\n        loginshell?: string;\n    }\n\n    export interface UserPosixResponse {\n        username?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserPosixInputRequest {\n        username?: string;\n    }\n\n    export interface UserPosixInputResponse {\n        username?: string;\n        posixenabled?: boolean;\n        gidnumber?: string;\n        uidnumber?: string;\n        homedirectory?: string;\n        loginshell?: string;\n    }\n\n    export interface UserQueryRequest {\n        Name?: string;\n        PageSize?: unsignedInt;\n        PageStartFrom?: long;\n        SortBy?: UserSortBy;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface UserQueryResponse {\n        NoSecMngr?: boolean;\n        Users?: Users;\n        TotalUsers?: long;\n        CacheHint?: long;\n    }\n\n    export interface UserResetPassRequest {\n        username?: string;\n        newPassword?: string;\n        newPasswordRetype?: string;\n    }\n\n    export interface UserResetPassResponse {\n        username?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserResetPassInputRequest {\n        username?: string;\n    }\n\n    export interface UserResetPassInputResponse {\n        username?: string;\n    }\n\n    export interface UserSudoersRequest {\n        username?: string;\n        action?: string;\n        sudoHost?: string;\n        sudoCommand?: string;\n        sudoOption?: string;\n    }\n\n    export interface UserSudoersResponse {\n        username?: string;\n        retcode?: int;\n        retmsg?: string;\n    }\n\n    export interface UserSudoersInputRequest {\n        username?: string;\n    }\n\n    export interface UserSudoersInputResponse {\n        username?: string;\n        insudoers?: boolean;\n        sudoHost?: string;\n        sudoCommand?: string;\n        sudoOption?: string;\n    }\n\n    export interface UserRequest {\n        searchinput?: string;\n    }\n\n    export interface UserResponse {\n        NoSecMngr?: boolean;\n        toomany?: boolean;\n        posixok?: boolean;\n        Users?: Users;\n    }\n\n}\n\nexport class AccessServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_access\", \"1.17\");\n    }\n\n    AccountPermissions(request: WsAccess.AccountPermissionsRequest, abortSignal?: AbortSignal): Promise<WsAccess.AccountPermissionsResponse> {\n        return this._connection.send(\"AccountPermissions\", request, \"json\", false, abortSignal, \"AccountPermissionsResponse\");\n    }\n\n    AccountPermissionsV2(request: WsAccess.AccountPermissionsV2Request, abortSignal?: AbortSignal): Promise<WsAccess.AccountPermissionsV2Response> {\n        return this._connection.send(\"AccountPermissionsV2\", request, \"json\", false, abortSignal, \"AccountPermissionsV2Response\");\n    }\n\n    AddUser(request: WsAccess.AddUserRequest, abortSignal?: AbortSignal): Promise<WsAccess.AddUserResponse> {\n        return this._connection.send(\"AddUser\", request, \"json\", false, abortSignal, \"AddUserResponse\");\n    }\n\n    AddView(request: WsAccess.AddViewRequest, abortSignal?: AbortSignal): Promise<WsAccess.AddViewResponse> {\n        return this._connection.send(\"AddView\", request, \"json\", false, abortSignal, \"AddViewResponse\");\n    }\n\n    AddViewColumn(request: WsAccess.AddViewColumnRequest, abortSignal?: AbortSignal): Promise<WsAccess.AddViewColumnResponse> {\n        return this._connection.send(\"AddViewColumn\", request, \"json\", false, abortSignal, \"AddViewColumnResponse\");\n    }\n\n    AddViewMember(request: WsAccess.AddViewMemberRequest, abortSignal?: AbortSignal): Promise<WsAccess.AddViewMemberResponse> {\n        return this._connection.send(\"AddViewMember\", request, \"json\", false, abortSignal, \"AddViewMemberResponse\");\n    }\n\n    ClearPermissionsCache(request: WsAccess.ClearPermissionsCacheRequest, abortSignal?: AbortSignal): Promise<WsAccess.ClearPermissionsCacheResponse> {\n        return this._connection.send(\"ClearPermissionsCache\", request, \"json\", false, abortSignal, \"ClearPermissionsCacheResponse\");\n    }\n\n    DeleteView(request: WsAccess.DeleteViewRequest, abortSignal?: AbortSignal): Promise<WsAccess.DeleteViewResponse> {\n        return this._connection.send(\"DeleteView\", request, \"json\", false, abortSignal, \"DeleteViewResponse\");\n    }\n\n    DeleteViewColumn(request: WsAccess.DeleteViewColumnRequest, abortSignal?: AbortSignal): Promise<WsAccess.DeleteViewColumnResponse> {\n        return this._connection.send(\"DeleteViewColumn\", request, \"json\", false, abortSignal, \"DeleteViewColumnResponse\");\n    }\n\n    DeleteViewMember(request: WsAccess.DeleteViewMemberRequest, abortSignal?: AbortSignal): Promise<WsAccess.DeleteViewMemberResponse> {\n        return this._connection.send(\"DeleteViewMember\", request, \"json\", false, abortSignal, \"DeleteViewMemberResponse\");\n    }\n\n    DisableScopeScans(request: WsAccess.DisableScopeScansRequest, abortSignal?: AbortSignal): Promise<WsAccess.DisableScopeScansResponse> {\n        return this._connection.send(\"DisableScopeScans\", request, \"json\", false, abortSignal, \"DisableScopeScansResponse\");\n    }\n\n    EnableScopeScans(request: WsAccess.EnableScopeScansRequest, abortSignal?: AbortSignal): Promise<WsAccess.EnableScopeScansResponse> {\n        return this._connection.send(\"EnableScopeScans\", request, \"json\", false, abortSignal, \"EnableScopeScansResponse\");\n    }\n\n    FilePermission(request: WsAccess.FilePermissionRequest, abortSignal?: AbortSignal): Promise<WsAccess.FilePermissionResponse> {\n        return this._connection.send(\"FilePermission\", request, \"json\", false, abortSignal, \"FilePermissionResponse\");\n    }\n\n    GroupAction(request: WsAccess.GroupActionRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupActionResponse> {\n        return this._connection.send(\"GroupAction\", request, \"json\", false, abortSignal, \"GroupActionResponse\");\n    }\n\n    GroupAdd(request: WsAccess.GroupAddRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupAddResponse> {\n        return this._connection.send(\"GroupAdd\", request, \"json\", false, abortSignal, \"GroupAddResponse\");\n    }\n\n    GroupEdit(request: WsAccess.GroupEditRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupEditResponse> {\n        return this._connection.send(\"GroupEdit\", request, \"json\", false, abortSignal, \"GroupEditResponse\");\n    }\n\n    GroupMemberEdit(request: WsAccess.GroupMemberEditRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupMemberEditResponse> {\n        return this._connection.send(\"GroupMemberEdit\", request, \"json\", false, abortSignal, \"GroupMemberEditResponse\");\n    }\n\n    GroupMemberEditInput(request: WsAccess.GroupMemberEditInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupMemberEditInputResponse> {\n        return this._connection.send(\"GroupMemberEditInput\", request, \"json\", false, abortSignal, \"GroupMemberEditInputResponse\");\n    }\n\n    GroupMemberQuery(request: WsAccess.GroupMemberQueryRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupMemberQueryResponse> {\n        return this._connection.send(\"GroupMemberQuery\", request, \"json\", false, abortSignal, \"GroupMemberQueryResponse\");\n    }\n\n    GroupQuery(request: WsAccess.GroupQueryRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupQueryResponse> {\n        return this._connection.send(\"GroupQuery\", request, \"json\", false, abortSignal, \"GroupQueryResponse\");\n    }\n\n    Groups(request: WsAccess.GroupRequest, abortSignal?: AbortSignal): Promise<WsAccess.GroupResponse> {\n        return this._connection.send(\"Groups\", request, \"json\", false, abortSignal, \"GroupResponse\");\n    }\n\n    PermissionAction(request: WsAccess.PermissionActionRequest, abortSignal?: AbortSignal): Promise<WsAccess.PermissionActionResponse> {\n        return this._connection.send(\"PermissionAction\", request, \"json\", false, abortSignal, \"PermissionActionResponse\");\n    }\n\n    Permissions(request: WsAccess.BasednsRequest, abortSignal?: AbortSignal): Promise<WsAccess.BasednsResponse> {\n        return this._connection.send(\"Permissions\", request, \"json\", false, abortSignal, \"BasednsResponse\");\n    }\n\n    PermissionsReset(request: WsAccess.PermissionsResetRequest, abortSignal?: AbortSignal): Promise<WsAccess.PermissionsResetResponse> {\n        return this._connection.send(\"PermissionsReset\", request, \"json\", false, abortSignal, \"PermissionsResetResponse\");\n    }\n\n    Ping(request: WsAccess.ws_accessPingRequest, abortSignal?: AbortSignal): Promise<WsAccess.ws_accessPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"ws_accessPingResponse\");\n    }\n\n    QueryScopeScansEnabled(request: WsAccess.QueryScopeScansEnabledRequest, abortSignal?: AbortSignal): Promise<WsAccess.QueryScopeScansEnabledResponse> {\n        return this._connection.send(\"QueryScopeScansEnabled\", request, \"json\", false, abortSignal, \"QueryScopeScansEnabledResponse\");\n    }\n\n    QueryUserViewColumns(request: WsAccess.QueryUserViewColumnsRequest, abortSignal?: AbortSignal): Promise<WsAccess.QueryUserViewColumnsResponse> {\n        return this._connection.send(\"QueryUserViewColumns\", request, \"json\", false, abortSignal, \"QueryUserViewColumnsResponse\");\n    }\n\n    QueryViewColumns(request: WsAccess.QueryViewColumnsRequest, abortSignal?: AbortSignal): Promise<WsAccess.QueryViewColumnsResponse> {\n        return this._connection.send(\"QueryViewColumns\", request, \"json\", false, abortSignal, \"QueryViewColumnsResponse\");\n    }\n\n    QueryViewMembers(request: WsAccess.QueryViewMembersRequest, abortSignal?: AbortSignal): Promise<WsAccess.QueryViewMembersResponse> {\n        return this._connection.send(\"QueryViewMembers\", request, \"json\", false, abortSignal, \"QueryViewMembersResponse\");\n    }\n\n    QueryViews(request: WsAccess.QueryViewsRequest, abortSignal?: AbortSignal): Promise<WsAccess.QueryViewsResponse> {\n        return this._connection.send(\"QueryViews\", request, \"json\", false, abortSignal, \"QueryViewsResponse\");\n    }\n\n    ResourceAdd(request: WsAccess.ResourceAddRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourceAddResponse> {\n        return this._connection.send(\"ResourceAdd\", request, \"json\", false, abortSignal, \"ResourceAddResponse\");\n    }\n\n    ResourceDelete(request: WsAccess.ResourceDeleteRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourceDeleteResponse> {\n        return this._connection.send(\"ResourceDelete\", request, \"json\", false, abortSignal, \"ResourceDeleteResponse\");\n    }\n\n    ResourcePermissionQuery(request: WsAccess.ResourcePermissionQueryRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourcePermissionQueryResponse> {\n        return this._connection.send(\"ResourcePermissionQuery\", request, \"json\", false, abortSignal, \"ResourcePermissionQueryResponse\");\n    }\n\n    ResourcePermissions(request: WsAccess.ResourcePermissionsRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourcePermissionsResponse> {\n        return this._connection.send(\"ResourcePermissions\", request, \"json\", false, abortSignal, \"ResourcePermissionsResponse\");\n    }\n\n    ResourceQuery(request: WsAccess.ResourceQueryRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourceQueryResponse> {\n        return this._connection.send(\"ResourceQuery\", request, \"json\", false, abortSignal, \"ResourceQueryResponse\");\n    }\n\n    Resources(request: WsAccess.ResourcesRequest, abortSignal?: AbortSignal): Promise<WsAccess.ResourcesResponse> {\n        return this._connection.send(\"Resources\", request, \"json\", false, abortSignal, \"ResourcesResponse\");\n    }\n\n    UserAccountExport(request: WsAccess.UserAccountExportRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserAccountExportResponse> {\n        return this._connection.send(\"UserAccountExport\", request, \"json\", false, abortSignal, \"UserAccountExportResponse\");\n    }\n\n    UserAction(request: WsAccess.UserActionRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserActionResponse> {\n        return this._connection.send(\"UserAction\", request, \"json\", false, abortSignal, \"UserActionResponse\");\n    }\n\n    UserEdit(request: WsAccess.UserEditRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserEditResponse> {\n        return this._connection.send(\"UserEdit\", request, \"json\", false, abortSignal, \"UserEditResponse\");\n    }\n\n    UserGroupEdit(request: WsAccess.UserGroupEditRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserGroupEditResponse> {\n        return this._connection.send(\"UserGroupEdit\", request, \"json\", false, abortSignal, \"UserGroupEditResponse\");\n    }\n\n    UserGroupEditInput(request: WsAccess.UserGroupEditInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserGroupEditInputResponse> {\n        return this._connection.send(\"UserGroupEditInput\", request, \"json\", false, abortSignal, \"UserGroupEditInputResponse\");\n    }\n\n    UserInfoEdit(request: WsAccess.UserInfoEditRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserInfoEditResponse> {\n        return this._connection.send(\"UserInfoEdit\", request, \"json\", false, abortSignal, \"UserInfoEditResponse\");\n    }\n\n    UserInfoEditInput(request: WsAccess.UserInfoEditInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserInfoEditInputResponse> {\n        return this._connection.send(\"UserInfoEditInput\", request, \"json\", false, abortSignal, \"UserInfoEditInputResponse\");\n    }\n\n    UserPosix(request: WsAccess.UserPosixRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserPosixResponse> {\n        return this._connection.send(\"UserPosix\", request, \"json\", false, abortSignal, \"UserPosixResponse\");\n    }\n\n    UserPosixInput(request: WsAccess.UserPosixInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserPosixInputResponse> {\n        return this._connection.send(\"UserPosixInput\", request, \"json\", false, abortSignal, \"UserPosixInputResponse\");\n    }\n\n    UserQuery(request: WsAccess.UserQueryRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserQueryResponse> {\n        return this._connection.send(\"UserQuery\", request, \"json\", false, abortSignal, \"UserQueryResponse\");\n    }\n\n    UserResetPass(request: WsAccess.UserResetPassRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserResetPassResponse> {\n        return this._connection.send(\"UserResetPass\", request, \"json\", false, abortSignal, \"UserResetPassResponse\");\n    }\n\n    UserResetPassInput(request: WsAccess.UserResetPassInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserResetPassInputResponse> {\n        return this._connection.send(\"UserResetPassInput\", request, \"json\", false, abortSignal, \"UserResetPassInputResponse\");\n    }\n\n    UserSudoers(request: WsAccess.UserSudoersRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserSudoersResponse> {\n        return this._connection.send(\"UserSudoers\", request, \"json\", false, abortSignal, \"UserSudoersResponse\");\n    }\n\n    UserSudoersInput(request: WsAccess.UserSudoersInputRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserSudoersInputResponse> {\n        return this._connection.send(\"UserSudoersInput\", request, \"json\", false, abortSignal, \"UserSudoersInputResponse\");\n    }\n\n    Users(request: WsAccess.UserRequest, abortSignal?: AbortSignal): Promise<WsAccess.UserResponse> {\n        return this._connection.send(\"Users\", request, \"json\", false, abortSignal, \"UserResponse\");\n    }\n\n}\n","import { AccessServiceBase, WsAccess } from \"./wsdl/ws_access/v1.17/ws_access.ts\";\n\nexport {\n    WsAccess\n};\n\nexport class AccessService extends AccessServiceBase {\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsAccount {\n\n    export type int = number;\n\n    export interface MyAccountRequest {\n\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface Groups {\n        Group?: string[];\n    }\n\n    export interface MyAccountResponse {\n        Exceptions?: Exceptions;\n        username?: string;\n        firstName?: string;\n        lastName?: string;\n        passwordExpiration?: string;\n        passwordDaysRemaining?: int;\n        passwordExpirationWarningDays?: int;\n        employeeID?: string;\n        distinguishedName?: string;\n        accountType?: string;\n        passwordNeverExpires?: boolean;\n        passwordIsExpired?: boolean;\n        CanUpdatePassword?: boolean;\n        accountStatus?: int;\n        Groups?: Groups;\n    }\n\n    export interface ws_accountPingRequest {\n\n    }\n\n    export interface ws_accountPingResponse {\n\n    }\n\n    export interface UpdateUserRequest {\n        username?: string;\n        oldpass?: string;\n        newpass1?: string;\n        newpass2?: string;\n    }\n\n    export interface UpdateUserResponse {\n        Exceptions?: Exceptions;\n        retcode?: int;\n        message?: string;\n    }\n\n    export interface UpdateUserInputRequest {\n\n    }\n\n    export interface UpdateUserInputResponse {\n        Exceptions?: Exceptions;\n        username?: string;\n    }\n\n    export interface VerifyUserRequest {\n        application?: string;\n        version?: string;\n    }\n\n    export interface VerifyUserResponse {\n        Exceptions?: Exceptions;\n        retcode?: int;\n    }\n\n}\n\nexport class AccountServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_account\", \"1.07\");\n    }\n\n    MyAccount(request: WsAccount.MyAccountRequest, abortSignal?: AbortSignal): Promise<WsAccount.MyAccountResponse> {\n        return this._connection.send(\"MyAccount\", request, \"json\", false, abortSignal, \"MyAccountResponse\");\n    }\n\n    Ping(request: WsAccount.ws_accountPingRequest, abortSignal?: AbortSignal): Promise<WsAccount.ws_accountPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"ws_accountPingResponse\");\n    }\n\n    UpdateUser(request: WsAccount.UpdateUserRequest, abortSignal?: AbortSignal): Promise<WsAccount.UpdateUserResponse> {\n        return this._connection.send(\"UpdateUser\", request, \"json\", false, abortSignal, \"UpdateUserResponse\");\n    }\n\n    UpdateUserInput(request: WsAccount.UpdateUserInputRequest, abortSignal?: AbortSignal): Promise<WsAccount.UpdateUserInputResponse> {\n        return this._connection.send(\"UpdateUserInput\", request, \"json\", false, abortSignal, \"UpdateUserInputResponse\");\n    }\n\n    VerifyUser(request: WsAccount.VerifyUserRequest, abortSignal?: AbortSignal): Promise<WsAccount.VerifyUserResponse> {\n        return this._connection.send(\"VerifyUser\", request, \"json\", false, abortSignal, \"VerifyUserResponse\");\n    }\n\n}\n","import { AccountServiceBase, WsAccount } from \"./wsdl/ws_account/v1.07/ws_account.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nexport {\n    type WsAccount\n};\n\nexport class AccountService extends AccountServiceBase {\n\n    VerifyUser(request: WsAccount.VerifyUserRequest): Promise<WsAccount.VerifyUserResponse> {\n        return this._connection.send(\"VerifyUser\", request)\n            .catch((e: ESPExceptions) => {\n                //  old client version warning  ---\n                if (e.isESPExceptions && e.Exception.some(exception => exception.Code === 20043)) {\n                    return {\n                        retcode: 20043,\n                        Exceptions: {\n                            Source: \"wsAccount\",\n                            Exception: e.Exception\n                        }\n                    };\n                }\n                throw e;\n            });\n    }\n\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCloud {\n\n    export type int = number;\n\n    export interface GetPODsRequest {\n\n    }\n\n    export interface Port {\n        ContainerPort?: int;\n        Name?: string;\n        Protocol?: string;\n    }\n\n    export interface Ports {\n        Port?: Port[];\n    }\n\n    export interface Pod {\n        Name?: string;\n        Status?: string;\n        CreationTimestamp?: string;\n        ContainerName?: string;\n        ContainerCount?: int;\n        ContainerReadyCount?: int;\n        ContainerRestartCount?: int;\n        Ports?: Ports;\n    }\n\n    export interface Pods {\n        Pod?: Pod[];\n    }\n\n    export interface GetPODsResponse {\n        Pods?: Pods;\n    }\n\n    export interface GetServicesRequest {\n\n    }\n\n    export interface GetServicesResponse {\n        Result?: string;\n    }\n\n    export interface WsCloudPingRequest {\n\n    }\n\n    export interface WsCloudPingResponse {\n\n    }\n\n}\n\nexport class CloudServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsCloud\", \"1.02\");\n    }\n\n    GetPODs(request: WsCloud.GetPODsRequest, abortSignal?: AbortSignal): Promise<WsCloud.GetPODsResponse> {\n        return this._connection.send(\"GetPODs\", request, \"json\", false, abortSignal, \"GetPODsResponse\");\n    }\n\n    GetServices(request: WsCloud.GetServicesRequest, abortSignal?: AbortSignal): Promise<WsCloud.GetServicesResponse> {\n        return this._connection.send(\"GetServices\", request, \"json\", false, abortSignal, \"GetServicesResponse\");\n    }\n\n    Ping(request: WsCloud.WsCloudPingRequest, abortSignal?: AbortSignal): Promise<WsCloud.WsCloudPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WsCloudPingResponse\");\n    }\n\n}\n","import { scopedLogger } from \"@hpcc-js/util\";\nimport type { V1Pod } from \"@kubernetes/client-node\";\nimport type { WsCloud as WsCloudV1 } from \"./wsdl/WsCloud/v1/WsCloud.ts\";\nimport { CloudServiceBase, WsCloud } from \"./wsdl/WsCloud/v1.02/WsCloud.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsCloud.ts\");\n\nexport {\n    type WsCloud\n};\n\nfunction isGetPODsResponse_v1_02(response: any): response is WsCloud.GetPODsResponse {\n    return response?.Pods !== undefined;\n}\n\nfunction mapPorts(pod: V1Pod): WsCloud.Port[] {\n    return pod.spec?.containers?.reduce((prev, curr) => {\n        curr.ports?.forEach(p => {\n            prev.push({\n                ContainerPort: p.containerPort,\n                Name: p.name,\n                Protocol: p.protocol\n            });\n        });\n        return prev;\n    }, [] as WsCloud.Port[]) ?? [];\n}\n\nfunction mapPods(pods: V1Pod[]): WsCloud.Pod[] {\n    return pods\n        .filter(pod => {\n            const labels = pod?.metadata?.labels ?? {};\n            return labels.hasOwnProperty(\"app.kubernetes.io/part-of\") && labels[\"app.kubernetes.io/part-of\"] === \"HPCC-Platform\";\n        })\n        .map((pod: V1Pod): WsCloud.Pod => {\n            const started = new Date(pod.metadata?.creationTimestamp);\n            return {\n                Name: pod.metadata.name,\n                Status: pod.status?.phase,\n                CreationTimestamp: started.toISOString(),\n                ContainerName: pod.status?.containerStatuses?.reduce((prev, curr) => {\n                    if (curr.name) {\n                        prev.push(curr.name);\n                    } return prev;\n                }, [] as string[]).join(\", \") ?? \"\",\n                ContainerCount: pod.spec?.containers?.length ?? 0,\n                ContainerReadyCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + (curr.ready ? 1 : 0), 0),\n                ContainerRestartCount: pod.status?.containerStatuses?.reduce((prev, curr) => prev + curr.restartCount, 0),\n                Ports: {\n                    Port: mapPorts(pod)\n                },\n            };\n        })\n        ;\n}\n\nexport class CloudService extends CloudServiceBase {\n\n    getPODs(): Promise<WsCloud.Pod[]> {\n        return super.GetPODs({}).then((response: WsCloud.GetPODsResponse | WsCloudV1.GetPODsResponse) => {\n            if (isGetPODsResponse_v1_02(response)) {\n                return response.Pods?.Pod ?? [];\n            }\n            try {\n                const obj = typeof response.Result === \"string\" ? JSON.parse(response.Result) : response.Result;\n                return mapPods(obj?.items ?? []);\n            } catch (error) {\n                logger.error(`Error parsing V1Pods json '${(error instanceof Error ? error.message : String(error))}'`);\n                return [];\n            }\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsCodesign {\n\n    export type int = number;\n\n    export enum SigningMethodType {\n        gpg = \"gpg\"\n    }\n\n    export interface ListUserIDsRequest {\n\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface UserIDs {\n        Item?: string[];\n    }\n\n    export interface ListUserIDsResponse {\n        Exceptions?: Exceptions;\n        UserIDs?: UserIDs;\n    }\n\n    export interface ws_codesignPingRequest {\n\n    }\n\n    export interface ws_codesignPingResponse {\n\n    }\n\n    export interface SignRequest {\n        SigningMethod?: SigningMethodType;\n        UserID?: string;\n        KeyPass?: string;\n        Text?: string;\n    }\n\n    export interface SignResponse {\n        Exceptions?: Exceptions;\n        RetCode?: int;\n        ErrMsg?: string;\n        SignedText?: string;\n    }\n\n    export interface VerifyRequest {\n        Text?: string;\n    }\n\n    export interface VerifyResponse {\n        Exceptions?: Exceptions;\n        RetCode?: int;\n        ErrMsg?: string;\n        IsVerified?: boolean;\n        SignedBy?: string;\n    }\n\n}\n\nexport class CodesignServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_codesign\", \"1.1\");\n    }\n\n    ListUserIDs(request: WsCodesign.ListUserIDsRequest, abortSignal?: AbortSignal): Promise<WsCodesign.ListUserIDsResponse> {\n        return this._connection.send(\"ListUserIDs\", request, \"json\", false, abortSignal, \"ListUserIDsResponse\");\n    }\n\n    Ping(request: WsCodesign.ws_codesignPingRequest, abortSignal?: AbortSignal): Promise<WsCodesign.ws_codesignPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"ws_codesignPingResponse\");\n    }\n\n    Sign(request: WsCodesign.SignRequest, abortSignal?: AbortSignal): Promise<WsCodesign.SignResponse> {\n        return this._connection.send(\"Sign\", request, \"json\", false, abortSignal, \"SignResponse\");\n    }\n\n    Verify(request: WsCodesign.VerifyRequest, abortSignal?: AbortSignal): Promise<WsCodesign.VerifyResponse> {\n        return this._connection.send(\"Verify\", request, \"json\", false, abortSignal, \"VerifyResponse\");\n    }\n\n}\n","import { CodesignServiceBase, WsCodesign } from \"./wsdl/ws_codesign/v1.1/ws_codesign.ts\";\n\nexport { WsCodesign };\n\nexport class CodesignService extends CodesignServiceBase {\n\n    ListUserIDsEx(request: Partial<WsCodesign.ListUserIDsRequest>): Promise<string[]> {\n        return super.ListUserIDs(request).then((response: WsCodesign.ListUserIDsResponse) => {\n            return response.UserIDs.Item;\n        }).catch(e => {\n            return [];\n        });\n    }\n\n    Sign(request: Partial<WsCodesign.SignRequest>): Promise<WsCodesign.SignResponse> {\n        return super.Sign({ SigningMethod: WsCodesign.SigningMethodType.gpg, ...request });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsDali {\r\n\r\n    export type unsignedInt = number;\r\n\r\n    export interface AddRequest {\r\n        Path?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code?: string;\r\n        Audience?: string;\r\n        Source?: string;\r\n        Message?: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source?: string;\r\n        Exception?: Exception[];\r\n    }\r\n\r\n    export interface ResultResponse {\r\n        Exceptions?: Exceptions;\r\n        Result?: string;\r\n    }\r\n\r\n    export interface ClearTraceTransactionsRequest {\r\n\r\n    }\r\n\r\n    export interface CountRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface CountResponse {\r\n        Exceptions?: Exceptions;\r\n        Result?: unsignedInt;\r\n    }\r\n\r\n    export interface DFSCheckRequest {\r\n\r\n    }\r\n\r\n    export interface DFSExistsRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface BooleanResponse {\r\n        Exceptions?: Exceptions;\r\n        Result?: boolean;\r\n    }\r\n\r\n    export interface DFSLSRequest {\r\n        Name?: string;\r\n        PathAndNameOnly?: boolean;\r\n        IncludeSubFileInfo?: boolean;\r\n        Recursively?: boolean;\r\n    }\r\n\r\n    export interface DeleteRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface DisconnectClientConnectionRequest {\r\n        Endpoint?: string;\r\n    }\r\n\r\n    export interface GetClientsRequest {\r\n\r\n    }\r\n\r\n    export interface GetConnectionsRequest {\r\n\r\n    }\r\n\r\n    export interface GetDFSCSVRequest {\r\n        LogicalNameMask?: string;\r\n    }\r\n\r\n    export interface GetDFSMapRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetDFSParentsRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetLogicalFileRequest {\r\n        FileName?: string;\r\n    }\r\n\r\n    export interface GetLogicalFilePartRequest {\r\n        FileName?: string;\r\n        PartNumber?: unsignedInt;\r\n    }\r\n\r\n    export interface GetProtectedListRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface GetSDSStatsRequest {\r\n\r\n    }\r\n\r\n    export interface GetSDSSubscribersRequest {\r\n\r\n    }\r\n\r\n    export interface GetValueRequest {\r\n        Path?: string;\r\n    }\r\n\r\n    export interface ImportRequest {\r\n        XML?: string;\r\n        Path?: string;\r\n        Add?: boolean;\r\n    }\r\n\r\n    export interface ListSDSLocksRequest {\r\n\r\n    }\r\n\r\n    export interface WSDaliPingRequest {\r\n\r\n    }\r\n\r\n    export interface WSDaliPingResponse {\r\n\r\n    }\r\n\r\n    export interface SaveSDSStoreRequest {\r\n\r\n    }\r\n\r\n    export interface SetLogicalFilePartAttrRequest {\r\n        FileName?: string;\r\n        PartNumber?: unsignedInt;\r\n        Attr?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface SetProtectedRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface SetTraceSlowTransactionsRequest {\r\n        SlowThresholdMS?: unsignedInt;\r\n    }\r\n\r\n    export interface SetTraceTransactionsRequest {\r\n\r\n    }\r\n\r\n    export interface SetUnprotectedRequest {\r\n        FileName?: string;\r\n        CallerId?: string;\r\n    }\r\n\r\n    export interface SetValueRequest {\r\n        Path?: string;\r\n        Value?: string;\r\n    }\r\n\r\n    export interface UnlockSDSLockRequest {\r\n        ConnectionID?: string;\r\n        Close?: boolean;\r\n    }\r\n\r\n}\r\n\r\nexport class DaliServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WSDali\", \"1.07\");\r\n    }\r\n\r\n    Add(request: WsDali.AddRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Add\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    ClearTraceTransactions(request: WsDali.ClearTraceTransactionsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"ClearTraceTransactions\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    Count(request: WsDali.CountRequest, abortSignal?: AbortSignal): Promise<WsDali.CountResponse> {\r\n        return this._connection.send(\"Count\", request, \"json\", false, abortSignal, \"CountResponse\");\r\n    }\r\n\r\n    DFSCheck(request: WsDali.DFSCheckRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DFSCheck\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    DFSExists(request: WsDali.DFSExistsRequest, abortSignal?: AbortSignal): Promise<WsDali.BooleanResponse> {\r\n        return this._connection.send(\"DFSExists\", request, \"json\", false, abortSignal, \"BooleanResponse\");\r\n    }\r\n\r\n    DFSLS(request: WsDali.DFSLSRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DFSLS\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    Delete(request: WsDali.DeleteRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Delete\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    DisconnectClientConnection(request: WsDali.DisconnectClientConnectionRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"DisconnectClientConnection\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetClients(request: WsDali.GetClientsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetClients\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetConnections(request: WsDali.GetConnectionsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetConnections\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSCSV(request: WsDali.GetDFSCSVRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSCSV\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSMap(request: WsDali.GetDFSMapRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSMap\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetDFSParents(request: WsDali.GetDFSParentsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetDFSParents\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetLogicalFile(request: WsDali.GetLogicalFileRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetLogicalFile\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetLogicalFilePart(request: WsDali.GetLogicalFilePartRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetLogicalFilePart\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetProtectedList(request: WsDali.GetProtectedListRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetProtectedList\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetSDSStats(request: WsDali.GetSDSStatsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetSDSStats\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetSDSSubscribers(request: WsDali.GetSDSSubscribersRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetSDSSubscribers\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetValue(request: WsDali.GetValueRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"GetValue\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    Import(request: WsDali.ImportRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"Import\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    ListSDSLocks(request: WsDali.ListSDSLocksRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"ListSDSLocks\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    Ping(request: WsDali.WSDaliPingRequest, abortSignal?: AbortSignal): Promise<WsDali.WSDaliPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WSDaliPingResponse\");\r\n    }\r\n\r\n    SaveSDSStore(request: WsDali.SaveSDSStoreRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SaveSDSStore\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetLogicalFilePartAttr(request: WsDali.SetLogicalFilePartAttrRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetLogicalFilePartAttr\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetProtected(request: WsDali.SetProtectedRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetProtected\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetTraceSlowTransactions(request: WsDali.SetTraceSlowTransactionsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetTraceSlowTransactions\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetTraceTransactions(request: WsDali.SetTraceTransactionsRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetTraceTransactions\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetUnprotected(request: WsDali.SetUnprotectedRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetUnprotected\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    SetValue(request: WsDali.SetValueRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"SetValue\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    UnlockSDSLock(request: WsDali.UnlockSDSLockRequest, abortSignal?: AbortSignal): Promise<WsDali.ResultResponse> {\r\n        return this._connection.send(\"UnlockSDSLock\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n}\r\n","import { DaliServiceBase, WsDali } from \"./wsdl/WsDali/v1.07/WsDali.ts\";\n\nexport {\n    type WsDali\n};\n\nexport class DaliService extends DaliServiceBase {\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDfu {\n\n    export type base64Binary = string;\n    export type long = number;\n    export type int = number;\n    export type double = number;\n\n    export enum DFUArrayActions {\n        Delete = \"Delete\",\n        AddToSuperfile = \"Add To Superfile\",\n        ChangeProtection = \"Change Protection\",\n        ChangeRestriction = \"Change Restriction\"\n    }\n\n    export enum DFUChangeProtection {\n        NoChange = 0,\n        Protect = 1,\n        Unprotect = 2,\n        UnprotectAll = 3\n    }\n\n    export enum DFUChangeRestriction {\n        NoChange = 0,\n        Restrict = 1,\n        Unrestricted = 2\n    }\n\n    export enum DFUDefFileFormat {\n        xml = \"xml\",\n        def = \"def\"\n    }\n\n    export enum FileAccessRole {\n        Token = \"Token\",\n        Engine = \"Engine\",\n        External = \"External\"\n    }\n\n    export enum SecAccessType {\n        None = \"None\",\n        Access = \"Access\",\n        Read = \"Read\",\n        Write = \"Write\",\n        Full = \"Full\"\n    }\n\n    export enum DFUFileType {\n        Flat = \"Flat\",\n        Index = \"Index\",\n        Xml = \"Xml\",\n        Csv = \"Csv\",\n        Json = \"Json\",\n        IndexLocal = \"IndexLocal\",\n        IndexPartitioned = \"IndexPartitioned\",\n        Unset = \"Unset\"\n    }\n\n    export interface AddRequest {\n        dstname?: string;\n        xmlmap?: base64Binary;\n        dstcluster?: string;\n    }\n\n    export interface Exception {\n        Code: string;\n        Audience: string;\n        Source: string;\n        Message: string;\n    }\n\n    export interface Exceptions {\n        Source: string;\n        Exception: Exception[];\n    }\n\n    export interface AddResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface AddRemoteRequest {\n        dstname?: string;\n        srcname?: string;\n        srcdali?: string;\n        srcusername?: string;\n        srcpassword?: string;\n    }\n\n    export interface AddRemoteResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface names {\n        Item: string[];\n    }\n\n    export interface AddtoSuperfileRequest {\n        Superfile?: string;\n        Subfiles?: string;\n        names?: names;\n        ExistingFile?: boolean;\n        BackToPage?: string;\n    }\n\n    export interface SubfileNames {\n        SubfileName: string[];\n    }\n\n    export interface AddtoSuperfileResponse {\n        Exceptions: Exceptions;\n        Subfiles: string;\n        BackToPage: string;\n        SubfileNames: SubfileNames;\n    }\n\n    export interface LogicalFiles {\n        Item: string[];\n    }\n\n    export interface DFUArrayActionRequest {\n        Type?: DFUArrayActions;\n        NoDelete?: boolean;\n        BackToPage?: string;\n        LogicalFiles?: LogicalFiles;\n        removeFromSuperfiles?: boolean;\n        removeRecursively?: boolean;\n        Protect?: DFUChangeProtection;\n        Restrict?: DFUChangeRestriction;\n    }\n\n    export interface DFUActionInfo {\n        FileName: string;\n        NodeGroup: string;\n        ActionResult: string;\n        Failed: boolean;\n    }\n\n    export interface ActionResults {\n        DFUActionInfo: DFUActionInfo[];\n    }\n\n    export interface DFUArrayActionResponse {\n        Exceptions: Exceptions;\n        BackToPage: string;\n        RedirectTo: string;\n        ActionResults: ActionResults;\n    }\n\n    export interface DFUBrowseDataRequest {\n        LogicalName?: string;\n        FilterBy?: string;\n        ShowColumns?: string;\n        SchemaOnly?: boolean;\n        StartForGoback?: long;\n        CountForGoback?: int;\n        ChooseFile?: int;\n        Cluster?: string;\n        ClusterType?: string;\n        ParentName?: string;\n        Start?: long;\n        Count?: int;\n        DisableUppercaseTranslation?: boolean;\n    }\n\n    export interface DFUDataColumn {\n        ColumnID: int;\n        ColumnLabel: string;\n        ColumnType: string;\n        ColumnValue: string;\n        ColumnSize: int;\n        MaxSize: int;\n        ColumnEclType: string;\n        ColumnRawSize: int;\n        IsNaturalColumn: boolean;\n        IsKeyedColumn: boolean;\n        DataColumns: DataColumns;\n    }\n\n    export interface DataColumns {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface ColumnHidden {\n        ColumnID: int;\n        ColumnLabel: string;\n        ColumnType: string;\n        ColumnValue: string;\n        ColumnSize: int;\n        MaxSize: int;\n        ColumnEclType: string;\n        ColumnRawSize: int;\n        IsNaturalColumn: boolean;\n        IsKeyedColumn: boolean;\n        DataColumns: DataColumns;\n    }\n\n    export interface ColumnsHidden {\n        ColumnHidden: ColumnHidden[];\n    }\n\n    export interface DFUBrowseDataResponse {\n        Exceptions: Exceptions;\n        Name: string;\n        LogicalName: string;\n        FilterBy: string;\n        FilterForGoBack: string;\n        ColumnsHidden: ColumnsHidden;\n        ColumnCount: int;\n        StartForGoback: long;\n        CountForGoback: int;\n        ChooseFile: int;\n        SchemaOnly: boolean;\n        Cluster: string;\n        ClusterType: string;\n        ParentName: string;\n        Start: long;\n        Count: long;\n        PageSize: long;\n        Total: long;\n        Result: string;\n        MsgToDisplay: string;\n        DisableUppercaseTranslation: boolean;\n    }\n\n    export interface DFUDefFileRequest {\n        Name?: string;\n        Format?: DFUDefFileFormat;\n    }\n\n    export interface DFUDefFileResponse {\n        Exceptions: Exceptions;\n        defFile: base64Binary;\n    }\n\n    export interface RequestBase {\n        Name: string;\n        Cluster: string;\n        JobId: string;\n        ExpirySeconds: int;\n        AccessRole: FileAccessRole;\n        AccessType: SecAccessType;\n        ReturnJsonTypeInfo: boolean;\n        ReturnBinTypeInfo: boolean;\n    }\n\n    export interface DFUFileAccessRequest {\n        RequestBase?: RequestBase;\n    }\n\n    export interface DFUPartLocation {\n        LocationIndex: int;\n        Host: string;\n    }\n\n    export interface FileLocations {\n        DFUPartLocation: DFUPartLocation[];\n    }\n\n    export interface DFUFileCopy {\n        CopyIndex: int;\n        LocationIndex: int;\n        Path: string;\n    }\n\n    export interface Copies {\n        DFUFileCopy: DFUFileCopy[];\n    }\n\n    export interface DFUFilePart {\n        PartIndex: int;\n        Copies: Copies;\n        TopLevelKey: boolean;\n    }\n\n    export interface FileParts {\n        DFUFilePart: DFUFilePart[];\n    }\n\n    export interface AccessInfo {\n        MetaInfoBlob: string;\n        ExpiryTime: string;\n        NumParts: int;\n        FileLocations: FileLocations;\n        FileParts: FileParts;\n        RecordTypeInfoJson: string;\n        fileAccessPort: int;\n        fileAccessSSL: boolean;\n    }\n\n    export interface DFUFileAccessResponse {\n        Exceptions: Exceptions;\n        AccessInfo: AccessInfo;\n        Type: DFUFileType;\n    }\n\n    export interface DFUFileAccessV2Request {\n        Name?: string;\n        Cluster?: string;\n        RequestId?: string;\n        ExpirySeconds?: int;\n        ReturnTextResponse?: boolean;\n        SessionId?: long;\n        LockTimeoutMs?: int;\n    }\n\n    export interface PartLocations {\n        Item: string[];\n    }\n\n    export interface DFUFileCreateRequest {\n        ECLRecordDefinition?: string;\n        PartLocations?: PartLocations;\n        RequestBase?: RequestBase;\n    }\n\n    export interface DFUFileCreateResponse {\n        Exceptions: Exceptions;\n        FileId: string;\n        Warning: string;\n        AccessInfo: AccessInfo;\n    }\n\n    export interface DFUFileCreateV2Request {\n        Name?: string;\n        Cluster?: string;\n        Type?: DFUFileType;\n        ECLRecordDefinition?: string;\n        RequestId?: string;\n        ExpirySeconds?: int;\n        ReturnTextResponse?: boolean;\n        Compressed?: boolean;\n        SessionId?: long;\n        LockTimeoutMs?: int;\n    }\n\n    export interface DFUFilePublishRequest {\n        FileId?: string;\n        Overwrite?: boolean;\n        FileDescriptorBlob?: base64Binary;\n        SessionId?: long;\n        LockTimeoutMs?: int;\n        ECLRecordDefinition?: string;\n        RecordCount?: long;\n        FileSize?: long;\n    }\n\n    export interface DFUFilePublishResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface DFUFileViewRequest {\n        Scope?: string;\n        IncludeSuperOwner?: boolean;\n    }\n\n    export interface DFULogicalFile {\n        Prefix: string;\n        NodeGroup: string;\n        Directory: string;\n        Description: string;\n        Parts: string;\n        Name: string;\n        Owner: string;\n        Totalsize: string;\n        RecordCount: string;\n        Modified: string;\n        LongSize: string;\n        LongRecordCount: string;\n        isSuperfile: boolean;\n        isDirectory: boolean;\n        Replicate: boolean;\n        IntSize: long;\n        IntRecordCount: long;\n        FromRoxieCluster: boolean;\n        BrowseData: boolean;\n        IsCompressed: boolean;\n        ContentType: string;\n        CompressedFileSize: long;\n        SuperOwners: string;\n        Persistent: boolean;\n        IsProtected: boolean;\n        KeyType: string;\n        NumOfSubfiles: int;\n        Accessed: string;\n        AtRestCost: double;\n        AccessCost: double;\n        MinSkew: long;\n        MaxSkew: long;\n        MinSkewPart: long;\n        MaxSkewPart: long;\n    }\n\n    export interface DFULogicalFiles {\n        DFULogicalFile: DFULogicalFile[];\n    }\n\n    export interface DFUFileViewResponse {\n        Exceptions: Exceptions;\n        Scope: string;\n        NumFiles: int;\n        DFULogicalFiles: DFULogicalFiles;\n    }\n\n    export interface DFUGetDataColumnsRequest {\n        OpenLogicalName?: string;\n        LogicalName?: string;\n        FilterBy?: string;\n        ShowColumns?: string;\n        ChooseFile?: int;\n        Cluster?: string;\n        ClusterType?: string;\n        StartIndex?: long;\n        EndIndex?: long;\n    }\n\n    export interface DFUDataKeyedColumns1 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns2 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns3 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns4 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns5 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns6 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns7 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns8 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns9 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns10 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns11 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns12 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns13 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns14 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns15 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns16 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns17 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns18 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns19 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataKeyedColumns20 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns1 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns2 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns3 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns4 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns5 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns6 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns7 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns8 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns9 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns10 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns11 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns12 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns13 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns14 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns15 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns16 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns17 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns18 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns19 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUDataNonKeyedColumns20 {\n        DFUDataColumn: DFUDataColumn[];\n    }\n\n    export interface DFUGetDataColumnsResponse {\n        Exceptions: Exceptions;\n        LogicalName: string;\n        StartIndex: long;\n        EndIndex: long;\n        DFUDataKeyedColumns1: DFUDataKeyedColumns1;\n        DFUDataKeyedColumns2: DFUDataKeyedColumns2;\n        DFUDataKeyedColumns3: DFUDataKeyedColumns3;\n        DFUDataKeyedColumns4: DFUDataKeyedColumns4;\n        DFUDataKeyedColumns5: DFUDataKeyedColumns5;\n        DFUDataKeyedColumns6: DFUDataKeyedColumns6;\n        DFUDataKeyedColumns7: DFUDataKeyedColumns7;\n        DFUDataKeyedColumns8: DFUDataKeyedColumns8;\n        DFUDataKeyedColumns9: DFUDataKeyedColumns9;\n        DFUDataKeyedColumns10: DFUDataKeyedColumns10;\n        DFUDataKeyedColumns11: DFUDataKeyedColumns11;\n        DFUDataKeyedColumns12: DFUDataKeyedColumns12;\n        DFUDataKeyedColumns13: DFUDataKeyedColumns13;\n        DFUDataKeyedColumns14: DFUDataKeyedColumns14;\n        DFUDataKeyedColumns15: DFUDataKeyedColumns15;\n        DFUDataKeyedColumns16: DFUDataKeyedColumns16;\n        DFUDataKeyedColumns17: DFUDataKeyedColumns17;\n        DFUDataKeyedColumns18: DFUDataKeyedColumns18;\n        DFUDataKeyedColumns19: DFUDataKeyedColumns19;\n        DFUDataKeyedColumns20: DFUDataKeyedColumns20;\n        DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns1;\n        DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns2;\n        DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns3;\n        DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns4;\n        DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns5;\n        DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns6;\n        DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns7;\n        DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns8;\n        DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns9;\n        DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns10;\n        DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns11;\n        DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns12;\n        DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns13;\n        DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns14;\n        DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns15;\n        DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns16;\n        DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns17;\n        DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns18;\n        DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns19;\n        DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns20;\n        RowCount: long;\n        ShowColumns: string;\n        ChooseFile: int;\n        Cluster: string;\n        ClusterType: string;\n    }\n\n    export interface DFUGetFileMetaDataRequest {\n        LogicalFileName?: string;\n        ClusterName?: string;\n        IncludeXmlSchema?: boolean;\n        AddHeaderInXmlSchema?: boolean;\n        IncludeXmlXPathSchema?: boolean;\n        AddHeaderInXmlXPathSchema?: boolean;\n    }\n\n    export interface DFUGetFileMetaDataResponse {\n        Exceptions: Exceptions;\n        TotalColumnCount: int;\n        KeyedColumnCount: int;\n        DataColumns: DataColumns;\n        XmlSchema: string;\n        XmlXPathSchema: string;\n        TotalResultRows: long;\n    }\n\n    export interface DFUMetaInquiryRequest {\n\n    }\n\n    export interface DFUMetaFieldInfo {\n        Name: string;\n        Type: string;\n    }\n\n    export interface Fields {\n        DFUMetaFieldInfo: DFUMetaFieldInfo[];\n    }\n\n    export interface DFUMetaInquiryResponse {\n        Exceptions: Exceptions;\n        Fields: Fields;\n    }\n\n    export interface DFUInfoRequest {\n        Name?: string;\n        Cluster?: string;\n        UpdateDescription?: boolean;\n        QuerySet?: string;\n        Query?: string;\n        FileDesc?: string;\n        IncludeJsonTypeInfo?: boolean;\n        IncludeBinTypeInfo?: boolean;\n        Protect?: DFUChangeProtection;\n        Restrict?: DFUChangeRestriction;\n        ForceIndexInfo?: boolean;\n    }\n\n    export interface Stat {\n        MinSkew: string;\n        MaxSkew: string;\n        MinSkewInt64: long;\n        MaxSkewInt64: long;\n        MinSkewPart: long;\n        MaxSkewPart: long;\n    }\n\n    export interface DFUPart {\n        Id: int;\n        Copy: int;\n        Ip: string;\n        Partsize: string;\n        PartSizeInt64: long;\n        CompressedSize: long;\n    }\n\n    export interface DFUFileParts {\n        DFUPart: DFUPart[];\n    }\n\n    export interface DFUFilePartsOnCluster {\n        Cluster: string;\n        BaseDir: string;\n        ReplicateDir: string;\n        Replicate: boolean;\n        CanReplicate: boolean;\n        DFUFileParts: DFUFileParts;\n    }\n\n    export interface DFUFilePartsOnClusters {\n        DFUFilePartsOnCluster: DFUFilePartsOnCluster[];\n    }\n\n    export interface subfiles {\n        Item: string[];\n    }\n\n    export interface Superfiles {\n        DFULogicalFile: DFULogicalFile[];\n    }\n\n    export interface DFUFileProtect {\n        Owner: string;\n        Modified: string;\n    }\n\n    export interface ProtectList {\n        DFUFileProtect: DFUFileProtect[];\n    }\n\n    export interface Graphs {\n        ECLGraph: string[];\n    }\n\n    export interface FieldNames {\n        Item: string[];\n    }\n\n    export interface Partition {\n        FieldMask: long;\n        FieldNames: FieldNames;\n    }\n\n    export interface DFUFileBloom {\n        FieldMask: long;\n        FieldNames: FieldNames;\n        Limit: long;\n        Probability: string;\n    }\n\n    export interface Blooms {\n        DFUFileBloom: DFUFileBloom[];\n    }\n\n    export interface ExtendedIndexInfo {\n        IsLeafCountEstimated: boolean;\n        NumLeafNodes: long;\n        NumBlobNodes: long;\n        NumBranchNodes: long;\n        SizeDiskLeaves: long;\n        SizeDiskBlobs: long;\n        SizeDiskBranches: long;\n        SizeOriginalData: long;\n        SizeOriginalBranches: long;\n        SizeMemoryLeaves: long;\n        SizeMemoryBranches: long;\n        BranchCompressionPercent: double;\n        DataCompressionPercent: double;\n    }\n\n    export interface FileDetail {\n        Name: string;\n        Filename: string;\n        Prefix: string;\n        NodeGroup: string;\n        NumParts: int;\n        Description: string;\n        Dir: string;\n        PathMask: string;\n        Filesize: string;\n        FileSizeInt64: long;\n        RecordSize: string;\n        RecordCount: string;\n        RecordSizeInt64: long;\n        RecordCountInt64: long;\n        Wuid: string;\n        Owner: string;\n        JobName: string;\n        Persistent: string;\n        Format: string;\n        MaxRecordSize: string;\n        CsvSeparate: string;\n        CsvQuote: string;\n        CsvTerminate: string;\n        CsvEscape: string;\n        Modified: string;\n        Ecl: string;\n        Stat: Stat;\n        DFUFilePartsOnClusters: DFUFilePartsOnClusters;\n        isSuperfile: boolean;\n        ShowFileContent: boolean;\n        subfiles: subfiles;\n        Superfiles: Superfiles;\n        ProtectList: ProtectList;\n        FromRoxieCluster: boolean;\n        Graphs: Graphs;\n        UserPermission: string;\n        ContentType: string;\n        CompressedFileSize: long;\n        PercentCompressed: string;\n        IsCompressed: boolean;\n        IsRestricted: boolean;\n        BrowseData: boolean;\n        jsonInfo: string;\n        binInfo: base64Binary;\n        PackageID: string;\n        Partition: Partition;\n        Blooms: Blooms;\n        ExpireDays: int;\n        KeyType: string;\n        AtRestCost: double;\n        AccessCost: double;\n        ExpirationDate: string;\n        ExtendedIndexInfo: ExtendedIndexInfo;\n        CompressionType: string;\n    }\n\n    export interface DFUInfoResponse {\n        Exceptions: Exceptions;\n        FileDetail: FileDetail;\n    }\n\n    export interface DFUQueryRequest {\n        Prefix?: string;\n        NodeGroup?: string;\n        ContentType?: string;\n        InvertContent?: boolean;\n        LogicalName?: string;\n        Owner?: string;\n        StartDate?: string;\n        EndDate?: string;\n        FileType?: string;\n        FileSizeFrom?: long;\n        FileSizeTo?: long;\n        FirstN?: int;\n        PageSize?: int;\n        PageStartFrom?: int;\n        Sortby?: string;\n        Fields?: string;\n        Descending?: boolean;\n        OneLevelDirFileReturn?: boolean;\n        CacheHint?: long;\n        MaxNumberOfFiles?: int;\n        IncludeSuperOwner?: boolean;\n        StartAccessedTime?: string;\n        EndAccessedTime?: string;\n        MaxSkewFrom?: long;\n        MaxSkewTo?: long;\n        MinSkewFrom?: long;\n        MinSkewTo?: long;\n    }\n\n    export interface DFUQueryResponse {\n        Exceptions: Exceptions;\n        DFULogicalFiles: DFULogicalFiles;\n        Prefix: string;\n        NodeGroup: string;\n        LogicalName: string;\n        Description: string;\n        Owner: string;\n        StartDate: string;\n        EndDate: string;\n        FileType: string;\n        FileSizeFrom: long;\n        FileSizeTo: long;\n        FirstN: int;\n        PageSize: int;\n        PageStartFrom: long;\n        LastPageFrom: long;\n        PageEndAt: long;\n        PrevPageFrom: long;\n        NextPageFrom: long;\n        NumFiles: long;\n        Sortby: string;\n        Descending: boolean;\n        BasicQuery: string;\n        ParametersForPaging: string;\n        Filters: string;\n        CacheHint: long;\n        IsSubsetOfFiles: boolean;\n        Warning: string;\n    }\n\n    export interface DFURecordTypeInfoRequest {\n        Name?: string;\n        IncludeJsonTypeInfo?: boolean;\n        IncludeBinTypeInfo?: boolean;\n    }\n\n    export interface DFURecordTypeInfoResponse {\n        jsonInfo: string;\n        binInfo: base64Binary;\n    }\n\n    export interface DFUSearchRequest {\n        ShowExample?: string;\n    }\n\n    export interface ClusterNames {\n        ClusterName: string[];\n    }\n\n    export interface FileTypes {\n        FileType: string[];\n    }\n\n    export interface DFUSearchResponse {\n        Exceptions: Exceptions;\n        ShowExample: string;\n        ClusterNames: ClusterNames;\n        FileTypes: FileTypes;\n    }\n\n    export interface DFUSearchDataRequest {\n        Cluster?: string;\n        ClusterType?: string;\n        OpenLogicalName?: string;\n        FilterBy?: string;\n        ShowColumns?: string;\n        ChooseFile?: int;\n        StartIndex?: long;\n        EndIndex?: long;\n        LogicalName?: string;\n        ParentName?: string;\n        StartForGoback?: long;\n        CountForGoback?: int;\n        Start?: long;\n        Count?: int;\n        File?: string;\n        Key?: string;\n        SchemaOnly?: boolean;\n        RoxieSelections?: boolean;\n        DisableUppercaseTranslation?: boolean;\n        SelectedKey?: string;\n    }\n\n    export interface DFUSearchDataResponse {\n        Exceptions: Exceptions;\n        OpenLogicalName: string;\n        LogicalName: string;\n        ParentName: string;\n        StartIndex: long;\n        EndIndex: long;\n        DFUDataKeyedColumns1: DFUDataKeyedColumns1;\n        DFUDataKeyedColumns2: DFUDataKeyedColumns2;\n        DFUDataKeyedColumns3: DFUDataKeyedColumns3;\n        DFUDataKeyedColumns4: DFUDataKeyedColumns4;\n        DFUDataKeyedColumns5: DFUDataKeyedColumns5;\n        DFUDataKeyedColumns6: DFUDataKeyedColumns6;\n        DFUDataKeyedColumns7: DFUDataKeyedColumns7;\n        DFUDataKeyedColumns8: DFUDataKeyedColumns8;\n        DFUDataKeyedColumns9: DFUDataKeyedColumns9;\n        DFUDataKeyedColumns10: DFUDataKeyedColumns10;\n        DFUDataKeyedColumns11: DFUDataKeyedColumns11;\n        DFUDataKeyedColumns12: DFUDataKeyedColumns12;\n        DFUDataKeyedColumns13: DFUDataKeyedColumns13;\n        DFUDataKeyedColumns14: DFUDataKeyedColumns14;\n        DFUDataKeyedColumns15: DFUDataKeyedColumns15;\n        DFUDataKeyedColumns16: DFUDataKeyedColumns16;\n        DFUDataKeyedColumns17: DFUDataKeyedColumns17;\n        DFUDataKeyedColumns18: DFUDataKeyedColumns18;\n        DFUDataKeyedColumns19: DFUDataKeyedColumns19;\n        DFUDataKeyedColumns20: DFUDataKeyedColumns20;\n        DFUDataNonKeyedColumns1: DFUDataNonKeyedColumns1;\n        DFUDataNonKeyedColumns2: DFUDataNonKeyedColumns2;\n        DFUDataNonKeyedColumns3: DFUDataNonKeyedColumns3;\n        DFUDataNonKeyedColumns4: DFUDataNonKeyedColumns4;\n        DFUDataNonKeyedColumns5: DFUDataNonKeyedColumns5;\n        DFUDataNonKeyedColumns6: DFUDataNonKeyedColumns6;\n        DFUDataNonKeyedColumns7: DFUDataNonKeyedColumns7;\n        DFUDataNonKeyedColumns8: DFUDataNonKeyedColumns8;\n        DFUDataNonKeyedColumns9: DFUDataNonKeyedColumns9;\n        DFUDataNonKeyedColumns10: DFUDataNonKeyedColumns10;\n        DFUDataNonKeyedColumns11: DFUDataNonKeyedColumns11;\n        DFUDataNonKeyedColumns12: DFUDataNonKeyedColumns12;\n        DFUDataNonKeyedColumns13: DFUDataNonKeyedColumns13;\n        DFUDataNonKeyedColumns14: DFUDataNonKeyedColumns14;\n        DFUDataNonKeyedColumns15: DFUDataNonKeyedColumns15;\n        DFUDataNonKeyedColumns16: DFUDataNonKeyedColumns16;\n        DFUDataNonKeyedColumns17: DFUDataNonKeyedColumns17;\n        DFUDataNonKeyedColumns18: DFUDataNonKeyedColumns18;\n        DFUDataNonKeyedColumns19: DFUDataNonKeyedColumns19;\n        DFUDataNonKeyedColumns20: DFUDataNonKeyedColumns20;\n        RowCount: long;\n        ShowColumns: string;\n        ChooseFile: int;\n        Name: string;\n        FilterBy: string;\n        FilterForGoBack: string;\n        ColumnsHidden: ColumnsHidden;\n        ColumnCount: int;\n        StartForGoback: long;\n        CountForGoback: int;\n        Start: long;\n        Count: long;\n        PageSize: long;\n        Total: long;\n        Result: string;\n        MsgToDisplay: string;\n        Cluster: string;\n        ClusterType: string;\n        File: string;\n        Key: string;\n        SchemaOnly: boolean;\n        RoxieSelections: boolean;\n        DisableUppercaseTranslation: boolean;\n        AutoUppercaseTranslation: boolean;\n        SelectedKey: string;\n    }\n\n    export interface DFUSpaceRequest {\n        CountBy?: string;\n        ScopeUnder?: string;\n        OwnerUnder?: string;\n        Interval?: string;\n        StartDate?: string;\n        EndDate?: string;\n    }\n\n    export interface DFUSpaceItem {\n        Name: string;\n        NumOfFiles: string;\n        NumOfFilesUnknown: string;\n        TotalSize: string;\n        LargestFile: string;\n        LargestSize: string;\n        SmallestFile: string;\n        SmallestSize: string;\n        NumOfFilesInt64: long;\n        NumOfFilesUnknownInt64: long;\n        TotalSizeInt64: long;\n        LargestSizeInt64: long;\n        SmallestSizeInt64: long;\n    }\n\n    export interface DFUSpaceItems {\n        DFUSpaceItem: DFUSpaceItem[];\n    }\n\n    export interface DFUSpaceResponse {\n        Exceptions: Exceptions;\n        CountBy: string;\n        ScopeUnder: string;\n        OwnerUnder: string;\n        Interval: string;\n        StartDate: string;\n        EndDate: string;\n        DFUSpaceItems: DFUSpaceItems;\n    }\n\n    export interface EclRecordTypeInfoRequest {\n        Ecl?: string;\n        IncludeJsonTypeInfo?: boolean;\n        IncludeBinTypeInfo?: boolean;\n    }\n\n    export interface EclRecordTypeInfoResponse {\n        jsonInfo: string;\n        binInfo: base64Binary;\n    }\n\n    export interface EraseHistoryRequest {\n        Name?: string;\n    }\n\n    export interface Origin {\n        Name: string;\n        Operation: string;\n        Timestamp: string;\n        IP: string;\n        Path: string;\n        Owner: string;\n        Workunit: string;\n    }\n\n    export interface History {\n        Origin: Origin[];\n    }\n\n    export interface EraseHistoryResponse {\n        Exceptions: Exceptions;\n        History: History;\n    }\n\n    export interface ListHistoryRequest {\n        Name?: string;\n    }\n\n    export interface ListHistoryResponse {\n        Exceptions: Exceptions;\n        History: History;\n    }\n\n    export interface WsDfuPingRequest {\n\n    }\n\n    export interface WsDfuPingResponse {\n\n    }\n\n    export interface SavexmlRequest {\n        name?: string;\n    }\n\n    export interface SavexmlResponse {\n        Exceptions: Exceptions;\n        xmlmap: base64Binary;\n    }\n\n    export interface SuperfileActionRequest {\n        action?: string;\n        superfile?: string;\n        subfiles?: subfiles;\n        before?: string;\n        delete?: boolean;\n        removeSuperfile?: boolean;\n    }\n\n    export interface SuperfileActionResponse {\n        Exceptions: Exceptions;\n        superfile: string;\n        retcode: int;\n    }\n\n    export interface SuperfileListRequest {\n        superfile?: string;\n    }\n\n    export interface SuperfileListResponse {\n        Exceptions: Exceptions;\n        superfile: string;\n        subfiles: subfiles;\n    }\n\n}\n\nexport class DfuServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsDfu\", \"1.67\");\n    }\n\n    Add(request: Partial<WsDfu.AddRequest>): Promise<WsDfu.AddResponse> {\n        return this._connection.send(\"Add\", request, \"json\", false, undefined, \"AddResponse\");\n    }\n\n    AddRemote(request: Partial<WsDfu.AddRemoteRequest>): Promise<WsDfu.AddRemoteResponse> {\n        return this._connection.send(\"AddRemote\", request, \"json\", false, undefined, \"AddRemoteResponse\");\n    }\n\n    AddtoSuperfile(request: Partial<WsDfu.AddtoSuperfileRequest>): Promise<WsDfu.AddtoSuperfileResponse> {\n        return this._connection.send(\"AddtoSuperfile\", request, \"json\", false, undefined, \"AddtoSuperfileResponse\");\n    }\n\n    DFUArrayAction(request: Partial<WsDfu.DFUArrayActionRequest>): Promise<WsDfu.DFUArrayActionResponse> {\n        return this._connection.send(\"DFUArrayAction\", request, \"json\", false, undefined, \"DFUArrayActionResponse\");\n    }\n\n    DFUBrowseData(request: Partial<WsDfu.DFUBrowseDataRequest>): Promise<WsDfu.DFUBrowseDataResponse> {\n        return this._connection.send(\"DFUBrowseData\", request, \"json\", false, undefined, \"DFUBrowseDataResponse\");\n    }\n\n    DFUDefFile(request: Partial<WsDfu.DFUDefFileRequest>): Promise<WsDfu.DFUDefFileResponse> {\n        return this._connection.send(\"DFUDefFile\", request, \"json\", false, undefined, \"DFUDefFileResponse\");\n    }\n\n    DFUFileAccess(request: Partial<WsDfu.DFUFileAccessRequest>): Promise<WsDfu.DFUFileAccessResponse> {\n        return this._connection.send(\"DFUFileAccess\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n    }\n\n    DFUFileAccessV2(request: Partial<WsDfu.DFUFileAccessV2Request>): Promise<WsDfu.DFUFileAccessResponse> {\n        return this._connection.send(\"DFUFileAccessV2\", request, \"json\", false, undefined, \"DFUFileAccessResponse\");\n    }\n\n    DFUFileCreate(request: Partial<WsDfu.DFUFileCreateRequest>): Promise<WsDfu.DFUFileCreateResponse> {\n        return this._connection.send(\"DFUFileCreate\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n    }\n\n    DFUFileCreateV2(request: Partial<WsDfu.DFUFileCreateV2Request>): Promise<WsDfu.DFUFileCreateResponse> {\n        return this._connection.send(\"DFUFileCreateV2\", request, \"json\", false, undefined, \"DFUFileCreateResponse\");\n    }\n\n    DFUFilePublish(request: Partial<WsDfu.DFUFilePublishRequest>): Promise<WsDfu.DFUFilePublishResponse> {\n        return this._connection.send(\"DFUFilePublish\", request, \"json\", false, undefined, \"DFUFilePublishResponse\");\n    }\n\n    DFUFileView(request: Partial<WsDfu.DFUFileViewRequest>): Promise<WsDfu.DFUFileViewResponse> {\n        return this._connection.send(\"DFUFileView\", request, \"json\", false, undefined, \"DFUFileViewResponse\");\n    }\n\n    DFUGetDataColumns(request: Partial<WsDfu.DFUGetDataColumnsRequest>): Promise<WsDfu.DFUGetDataColumnsResponse> {\n        return this._connection.send(\"DFUGetDataColumns\", request, \"json\", false, undefined, \"DFUGetDataColumnsResponse\");\n    }\n\n    DFUGetFileMetaData(request: Partial<WsDfu.DFUGetFileMetaDataRequest>): Promise<WsDfu.DFUGetFileMetaDataResponse> {\n        return this._connection.send(\"DFUGetFileMetaData\", request, \"json\", false, undefined, \"DFUGetFileMetaDataResponse\");\n    }\n\n    DFUGetMetaInquiry(request: Partial<WsDfu.DFUMetaInquiryRequest>): Promise<WsDfu.DFUMetaInquiryResponse> {\n        return this._connection.send(\"DFUGetMetaInquiry\", request, \"json\", false, undefined, \"DFUMetaInquiryResponse\");\n    }\n\n    DFUInfo(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n        return this._connection.send(\"DFUInfo\", request, \"json\", false, undefined, \"DFUInfoResponse\");\n    }\n\n    DFUQuery(request: Partial<WsDfu.DFUQueryRequest>): Promise<WsDfu.DFUQueryResponse> {\n        return this._connection.send(\"DFUQuery\", request, \"json\", false, undefined, \"DFUQueryResponse\");\n    }\n\n    DFURecordTypeInfo(request: Partial<WsDfu.DFURecordTypeInfoRequest>): Promise<WsDfu.DFURecordTypeInfoResponse> {\n        return this._connection.send(\"DFURecordTypeInfo\", request, \"json\", false, undefined, \"DFURecordTypeInfoResponse\");\n    }\n\n    DFUSearch(request: Partial<WsDfu.DFUSearchRequest>): Promise<WsDfu.DFUSearchResponse> {\n        return this._connection.send(\"DFUSearch\", request, \"json\", false, undefined, \"DFUSearchResponse\");\n    }\n\n    DFUSearchData(request: Partial<WsDfu.DFUSearchDataRequest>): Promise<WsDfu.DFUSearchDataResponse> {\n        return this._connection.send(\"DFUSearchData\", request, \"json\", false, undefined, \"DFUSearchDataResponse\");\n    }\n\n    DFUSpace(request: Partial<WsDfu.DFUSpaceRequest>): Promise<WsDfu.DFUSpaceResponse> {\n        return this._connection.send(\"DFUSpace\", request, \"json\", false, undefined, \"DFUSpaceResponse\");\n    }\n\n    EclRecordTypeInfo(request: Partial<WsDfu.EclRecordTypeInfoRequest>): Promise<WsDfu.EclRecordTypeInfoResponse> {\n        return this._connection.send(\"EclRecordTypeInfo\", request, \"json\", false, undefined, \"EclRecordTypeInfoResponse\");\n    }\n\n    EraseHistory(request: Partial<WsDfu.EraseHistoryRequest>): Promise<WsDfu.EraseHistoryResponse> {\n        return this._connection.send(\"EraseHistory\", request, \"json\", false, undefined, \"EraseHistoryResponse\");\n    }\n\n    ListHistory(request: Partial<WsDfu.ListHistoryRequest>): Promise<WsDfu.ListHistoryResponse> {\n        return this._connection.send(\"ListHistory\", request, \"json\", false, undefined, \"ListHistoryResponse\");\n    }\n\n    Ping(request: Partial<WsDfu.WsDfuPingRequest>): Promise<WsDfu.WsDfuPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsDfuPingResponse\");\n    }\n\n    Savexml(request: Partial<WsDfu.SavexmlRequest>): Promise<WsDfu.SavexmlResponse> {\n        return this._connection.send(\"Savexml\", request, \"json\", false, undefined, \"SavexmlResponse\");\n    }\n\n    SuperfileAction(request: Partial<WsDfu.SuperfileActionRequest>): Promise<WsDfu.SuperfileActionResponse> {\n        return this._connection.send(\"SuperfileAction\", request, \"json\", false, undefined, \"SuperfileActionResponse\");\n    }\n\n    SuperfileList(request: Partial<WsDfu.SuperfileListRequest>): Promise<WsDfu.SuperfileListResponse> {\n        return this._connection.send(\"SuperfileList\", request, \"json\", false, undefined, \"SuperfileListResponse\");\n    }\n\n}\n","import { DfuServiceBase, WsDfu } from \"./wsdl/WsDfu/v1.67/WsDfu.ts\";\n\nexport { WsDfu };\n\nexport const DFUArrayActions = WsDfu.DFUArrayActions;\nexport const DFUDefFileFormat = WsDfu.DFUDefFileFormat;\nexport const DFUChangeProtection = WsDfu.DFUChangeProtection;\nexport const DFUChangeRestriction = WsDfu.DFUChangeRestriction;\n\nexport type base64Binary = WsDfu.base64Binary;\n\nexport class DFUService extends DfuServiceBase {\n\n    DFUFile(request: WsDfu.DFUDefFileRequest): Promise<string> {\n        return this._connection.send(\"DFUDefFile\", request, \"text\");\n    }\n\n    async recursiveFetchLogicalFiles(superFiles: { NodeGroup: string, Name: string }[]): Promise<string[]> {\n        const childSuperFiles: WsDfu.DFULogicalFile[] = [];\n        const logicalFiles: string[] = [];\n        await Promise.all(superFiles.map(superFile => {\n            return this.DFUInfo({ Cluster: superFile.NodeGroup, Name: superFile.Name, IncludeJsonTypeInfo: false, IncludeBinTypeInfo: false, ForceIndexInfo: false })\n                .then(response => {\n                    for (const child of response?.FileDetail?.Superfiles?.DFULogicalFile ?? []) {\n                        childSuperFiles.push(child);\n                    }\n                    for (const child of response?.FileDetail?.subfiles?.Item ?? []) {\n                        logicalFiles.push(child);\n                    }\n                });\n        }));\n        return logicalFiles.concat(childSuperFiles.length ? await this.recursiveFetchLogicalFiles(childSuperFiles) : []);\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsDFUXRef {\n\n    export type unsignedInt = number;\n    export type long = number;\n\n    export interface XRefFiles {\n        Item?: string[];\n    }\n\n    export interface DFUXRefArrayActionRequest {\n        Type?: string;\n        Cluster?: string;\n        Action?: string;\n        XRefFiles?: XRefFiles;\n        RemoveFromSuperfiles?: boolean;\n    }\n\n    export interface DFUXRefArrayActionResponse {\n        DFUXRefArrayActionResult?: string;\n    }\n\n    export interface DFUXRefBuildRequest {\n        Cluster?: string;\n        FilterScopes?: string;\n    }\n\n    export interface DFUXRefBuildResponse {\n        DFUXRefActionResult?: string;\n    }\n\n    export interface DFUXRefBuildCancelRequest {\n\n    }\n\n    export interface DFUXRefBuildCancelResponse {\n        DFUXRefBuildCancelResult?: string;\n    }\n\n    export interface DFUXRefCleanDirectoriesRequest {\n        Cluster?: string;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface DFUXRefCleanDirectoriesResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface DFUXRefDirectoriesQueryRequest {\n        Cluster?: string;\n    }\n\n    export interface DFUXRefDirectoriesQueryResponse {\n        DFUXRefDirectoriesQueryResult?: string;\n    }\n\n    export interface DFUXRefFoundFilesQueryRequest {\n        Cluster?: string;\n    }\n\n    export interface DFUXRefFoundFilesQueryResponse {\n        DFUXRefFoundFilesQueryResult?: string;\n    }\n\n    export interface DFUXRefListRequest {\n\n    }\n\n    export interface DFUXRefListResponse {\n        DFUXRefListResult?: string;\n    }\n\n    export interface DFUXRefLostFilesQueryRequest {\n        Cluster?: string;\n    }\n\n    export interface DFUXRefLostFilesQueryResponse {\n        DFUXRefLostFilesQueryResult?: string;\n    }\n\n    export interface DFUXRefMessagesQueryRequest {\n        Cluster?: string;\n    }\n\n    export interface DFUXRefMessagesQueryResponse {\n        DFUXRefMessagesQueryResult?: string;\n    }\n\n    export interface DFUXRefOrphanFilesQueryRequest {\n        Cluster?: string;\n    }\n\n    export interface DFUXRefOrphanFilesQueryResponse {\n        DFUXRefOrphanFilesQueryResult?: string;\n    }\n\n    export interface ProcessClusterList {\n        Item?: string[];\n    }\n\n    export interface CheckPlanes {\n        Item?: string[];\n    }\n\n    export interface DFUXRefUnusedFilesRequest {\n        ProcessCluster?: string;\n        CheckPackageMaps?: boolean;\n        GetFileDetails?: boolean;\n        ProcessClusterList?: ProcessClusterList;\n        CheckPlanes?: CheckPlanes;\n    }\n\n    export interface UnusedFiles {\n        File?: string[];\n    }\n\n    export interface DFULogicalFile {\n        Prefix?: string;\n        ClusterName?: string;\n        Directory?: string;\n        Description?: string;\n        Parts?: string;\n        Name?: string;\n        Owner?: string;\n        Totalsize?: string;\n        RecordCount?: string;\n        Modified?: string;\n        LongSize?: string;\n        LongRecordCount?: string;\n        isSuperfile?: boolean;\n        isZipfile?: boolean;\n        isDirectory?: boolean;\n        Replicate?: boolean;\n        IntSize?: long;\n        IntRecordCount?: long;\n        FromRoxieCluster?: boolean;\n        BrowseData?: boolean;\n    }\n\n    export interface UnusedFilesWithDetails {\n        DFULogicalFile?: DFULogicalFile[];\n    }\n\n    export interface DFUXRefUnusedFilesResponse {\n        Exceptions?: Exceptions;\n        UnusedFileCount?: unsignedInt;\n        UnusedFiles?: UnusedFiles;\n        UnusedFilesWithDetails?: UnusedFilesWithDetails;\n    }\n\n    export interface WsDFUXRefPingRequest {\n\n    }\n\n    export interface WsDFUXRefPingResponse {\n\n    }\n\n}\n\nexport class DFUXRefServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsDFUXRef\", \"1.04\");\n    }\n\n    DFUXRefArrayAction(request: WsDFUXRef.DFUXRefArrayActionRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefArrayActionResponse> {\n        return this._connection.send(\"DFUXRefArrayAction\", request, \"json\", false, abortSignal, \"DFUXRefArrayActionResponse\");\n    }\n\n    DFUXRefBuild(request: WsDFUXRef.DFUXRefBuildRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefBuildResponse> {\n        return this._connection.send(\"DFUXRefBuild\", request, \"json\", false, abortSignal, \"DFUXRefBuildResponse\");\n    }\n\n    DFUXRefBuildCancel(request: WsDFUXRef.DFUXRefBuildCancelRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefBuildCancelResponse> {\n        return this._connection.send(\"DFUXRefBuildCancel\", request, \"json\", false, abortSignal, \"DFUXRefBuildCancelResponse\");\n    }\n\n    DFUXRefCleanDirectories(request: WsDFUXRef.DFUXRefCleanDirectoriesRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefCleanDirectoriesResponse> {\n        return this._connection.send(\"DFUXRefCleanDirectories\", request, \"json\", false, abortSignal, \"DFUXRefCleanDirectoriesResponse\");\n    }\n\n    DFUXRefDirectories(request: WsDFUXRef.DFUXRefDirectoriesQueryRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefDirectoriesQueryResponse> {\n        return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, abortSignal, \"DFUXRefDirectoriesQueryResponse\");\n    }\n\n    DFUXRefFoundFiles(request: WsDFUXRef.DFUXRefFoundFilesQueryRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefFoundFilesQueryResponse> {\n        return this._connection.send(\"DFUXRefFoundFiles\", request, \"json\", false, abortSignal, \"DFUXRefFoundFilesQueryResponse\");\n    }\n\n    DFUXRefList(request: WsDFUXRef.DFUXRefListRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefListResponse> {\n        return this._connection.send(\"DFUXRefList\", request, \"json\", false, abortSignal, \"DFUXRefListResponse\");\n    }\n\n    DFUXRefLostFiles(request: WsDFUXRef.DFUXRefLostFilesQueryRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefLostFilesQueryResponse> {\n        return this._connection.send(\"DFUXRefLostFiles\", request, \"json\", false, abortSignal, \"DFUXRefLostFilesQueryResponse\");\n    }\n\n    DFUXRefMessages(request: WsDFUXRef.DFUXRefMessagesQueryRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefMessagesQueryResponse> {\n        return this._connection.send(\"DFUXRefMessages\", request, \"json\", false, abortSignal, \"DFUXRefMessagesQueryResponse\");\n    }\n\n    DFUXRefOrphanFiles(request: WsDFUXRef.DFUXRefOrphanFilesQueryRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefOrphanFilesQueryResponse> {\n        return this._connection.send(\"DFUXRefOrphanFiles\", request, \"json\", false, abortSignal, \"DFUXRefOrphanFilesQueryResponse\");\n    }\n\n    DFUXRefUnusedFiles(request: WsDFUXRef.DFUXRefUnusedFilesRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.DFUXRefUnusedFilesResponse> {\n        return this._connection.send(\"DFUXRefUnusedFiles\", request, \"json\", false, abortSignal, \"DFUXRefUnusedFilesResponse\");\n    }\n\n    Ping(request: WsDFUXRef.WsDFUXRefPingRequest, abortSignal?: AbortSignal): Promise<WsDFUXRef.WsDFUXRefPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WsDFUXRefPingResponse\");\n    }\n\n}\n","import { DFUXRefServiceBase, type WsDFUXRef } from \"./wsdl/WsDFUXRef/v1.04/WsDFUXRef.ts\";\n\nexport {\n    type WsDFUXRef\n};\n\nexport namespace WsDFUXRefEx {\n\n    export interface Request {\n        DFUXRefArrayActionRequest: WsDFUXRef.DFUXRefArrayActionRequest;\n        DFUXRefBuildRequest: WsDFUXRef.DFUXRefBuildRequest;\n        DFUXRefBuildCancelRequest: WsDFUXRef.DFUXRefBuildCancelRequest;\n        DFUXRefCleanDirectoriesRequest: WsDFUXRef.DFUXRefCleanDirectoriesRequest;\n        DFUXRefDirectoriesQueryRequest: WsDFUXRef.DFUXRefDirectoriesQueryRequest;\n        DFUXRefFoundFilesQueryRequest: WsDFUXRef.DFUXRefFoundFilesQueryRequest;\n        DFUXRefListRequest: WsDFUXRef.DFUXRefListRequest;\n        DFUXRefLostFilesQueryRequest: WsDFUXRef.DFUXRefLostFilesQueryRequest;\n        DFUXRefMessagesQueryRequest: WsDFUXRef.DFUXRefMessagesQueryRequest;\n        DFUXRefOrphanFilesQueryRequest: WsDFUXRef.DFUXRefOrphanFilesQueryRequest;\n        DFUXRefUnusedFilesRequest: WsDFUXRef.DFUXRefUnusedFilesRequest;\n        WsDFUXRefPingRequest: WsDFUXRef.WsDFUXRefPingRequest;\n    }\n\n    export interface Directory {\n        Num: string;\n        Name: string;\n        MaxSize: string;\n        MaxIP: string;\n        MinSize: string;\n        MinIP: string;\n        Size: string;\n        PositiveSkew: string;\n    }\n\n    interface DFUXRefDirectoriesQueryResult {\n        Directory: Directory[];\n        Cluster: string;\n    }\n\n    export interface DFUXRefDirectoriesQueryResponseEx {\n        DFUXRefDirectoriesQueryResult: DFUXRefDirectoriesQueryResult;\n    }\n\n    export interface Part {\n        Num: string;\n        Node: string;\n    }\n\n    export interface DFUXRefFile {\n        Size: string;\n        Partmask: string;\n        Modified: Date;\n        Numparts: string;\n        Part: Part[];\n    }\n\n    export interface DFUXRefFoundFilesQueryResult {\n        File: DFUXRefFile[];\n        Cluster: string;\n    }\n\n    export interface XRefNode {\n        Name: string;\n        Modified: string;\n        Status: string;\n    }\n\n    export interface DFUXRefListResult {\n        XRefNode: XRefNode[];\n    }\n\n    export interface DFUXRefListResponseEx {\n        DFUXRefListResult: DFUXRefListResult;\n    }\n\n    export interface File2 {\n        Partslost: string;\n        Name: string;\n        Partmask: string;\n        Modified: Date;\n        Numparts: string;\n        Part: Part[];\n        Cluster: string;\n        Size: string;\n        Primarylost: string;\n        Replicatedlost: string;\n    }\n\n    export interface DFUXRefLostFilesQueryResult {\n        File: File2[];\n        Cluster: string;\n    }\n\n    export interface Warning {\n        Text: string;\n        File: string;\n    }\n\n    export interface DFUXRefMessagesQueryResult {\n        Warning: Warning[];\n        Cluster: string;\n    }\n\n    export interface DFUXRefOrphanFilesQueryResult {\n        File: DFUXRefFile[];\n        Cluster: string;\n    }\n\n}\n\nexport class DFUXRefService extends DFUXRefServiceBase {\n\n    DFUXRefDirectoriesEx(request: Partial<WsDFUXRef.DFUXRefDirectoriesQueryRequest>): Promise<WsDFUXRefEx.DFUXRefDirectoriesQueryResponseEx> {\n        return this._connection.send(\"DFUXRefDirectories\", request, \"json\", false, undefined, \"DFUXRefDirectoriesQueryResponse\");\n    }\n\n    DFUXRefListEx(request: Partial<WsDFUXRef.DFUXRefListRequest>): Promise<WsDFUXRefEx.DFUXRefListResponseEx> {\n        return this._connection.send(\"DFUXRefList\", request, \"json\", false, undefined, \"DFUXRefListResponse\");\n    }\n\n}\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions, Service } from \"../espConnection.ts\";\n\nexport type IFieldType = DDL2.IFieldType;\nexport type IField = DDL2.IField;\n\nexport type IWsEclRequest = IField[];\nexport type IWsEclResult = IField[];\nexport type IWsEclResponse = { [id: string]: IField[] };\n\nfunction jsonToIField(id: string, item: any): IField {\n    const type = typeof item;\n    switch (type) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n            return { id, type };\n        case \"object\":\n            if (item.Row instanceof Array) {\n                item = item.Row;\n            }\n            if (item instanceof Array) {\n                return {\n                    id,\n                    type: \"dataset\",\n                    children: jsonToIFieldArr(item[0])\n                };\n            } else if (item instanceof Object) {\n                if (item.Item && item.Item instanceof Array && item.Item.length === 1) {\n                    const fieldType = typeof item.Item[0];\n                    if (fieldType === \"string\" || fieldType === \"number\") {\n                        return {\n                            id,\n                            type: \"set\",\n                            fieldType\n                        };\n                    }\n                    throw new Error(\"Unknown field type\");\n                }\n                return {\n                    id,\n                    type: \"object\",\n                    fields: jsonToIFieldObj(item)\n                };\n            }\n        // Fall through  ---\n        default:\n            throw new Error(\"Unknown field type\");\n    }\n}\n\nfunction jsonToIFieldArr(json: any): IField[] {\n    if (json.Row && json.Row instanceof Array) {\n        json = json.Row[0];\n    }\n    const retVal: IField[] = [];\n    for (const key in json) {\n        retVal.push(jsonToIField(key, json[key]));\n    }\n    return retVal;\n}\n\nfunction jsonToIFieldObj(json: any): { [id: string]: IField } {\n    const fields = {};\n    for (const key in json) {\n        fields[key] = jsonToIField(key, json[key]);\n    }\n    return fields;\n}\n\nexport class EclService extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsEcl\", \"0\");\n    }\n\n    opts() {\n        return this._connection.opts();\n    }\n\n    requestJson(querySet: string, queryId: string): Promise<IWsEclRequest> {\n        // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display\n        return this._connection.send(`example/request/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\n            const requestSchema = JSON.parse(response);\n            for (const key in requestSchema) {\n                return requestSchema[key];\n            }\n            return {};\n        }).then(jsonToIFieldArr);\n    }\n\n    responseJson(querySet: string, queryId: string): Promise<IWsEclResponse> {\n        // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display\n        return this._connection.send(`example/response/query/${querySet}/${queryId}/json`, {}, \"text\").then(response => {\n            const responseSchema = JSON.parse(response);\n            for (const key in responseSchema) {\n                return responseSchema[key].Results;\n            }\n            return {};\n        }).then(resultsJson => {\n            const retVal: IWsEclResponse = {};\n            for (const key in resultsJson) {\n                retVal[key] = jsonToIFieldArr(resultsJson[key]);\n            }\n            return retVal;\n        });\n    }\n\n    submit(querySet: string, queryId: string, request: object) {\n        // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json\n        const action = `submit/query/${querySet}/${queryId}`;\n        return this._connection.send(action, request, \"json2\").then(response => {\n            if (response.Results && response.Results.Exception) {\n                throw new ESPExceptions(action, request, {\n                    Source: \"wsEcl.submit\",\n                    Exception: response.Results.Exception\n                });\n            }\n            return response.Results;\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsElk {\n\n    export interface GetConfigDetailsRequest {\n\n    }\n\n    export interface GetConfigDetailsResponse {\n        IntegrateKibana?: boolean;\n        KibanaAddress?: string;\n        KibanaPort?: string;\n        KibanaEntryPointURI?: string;\n        ReportElasticSearchHealth?: boolean;\n        ElasticSearchAddresses?: string;\n        ElasticSearchPort?: string;\n        ReportLogStashHealth?: boolean;\n        LogStashAddress?: string;\n        LogStashPort?: string;\n    }\n\n    export interface ws_elkPingRequest {\n\n    }\n\n    export interface ws_elkPingResponse {\n\n    }\n\n}\n\nexport class ElkServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_elk\", \"1\");\n    }\n\n    GetConfigDetails(request: WsElk.GetConfigDetailsRequest, abortSignal?: AbortSignal): Promise<WsElk.GetConfigDetailsResponse> {\n        return this._connection.send(\"GetConfigDetails\", request, \"json\", false, abortSignal, \"GetConfigDetailsResponse\");\n    }\n\n    Ping(request: WsElk.ws_elkPingRequest, abortSignal?: AbortSignal): Promise<WsElk.ws_elkPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"ws_elkPingResponse\");\n    }\n\n}\n","import { ElkServiceBase, WsElk } from \"./wsdl/ws_elk/v1/ws_elk.ts\";\n\nexport {\n    type WsElk\n};\n\nexport class ElkService extends ElkServiceBase {\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsLogaccess {\n\n    export type dateTime = string;\n    export type unsignedInt = number;\n    export type long = number;\n\n    export enum LogColumnType {\n        global = \"global\",\n        workunits = \"workunits\",\n        components = \"components\",\n        audience = \"audience\",\n        class = \"class\",\n        instance = \"instance\",\n        node = \"node\",\n        message = \"message\",\n        logid = \"logid\",\n        processid = \"processid\",\n        threadid = \"threadid\",\n        timestamp = \"timestamp\",\n        pod = \"pod\",\n        traceid = \"traceid\",\n        spanid = \"spanid\"\n    }\n\n    export enum LogColumnValueType {\n        string = \"string\",\n        numeric = \"numeric\",\n        datetime = \"datetime\",\n        enum = \"enum\",\n        epoch = \"epoch\"\n    }\n\n    export enum LogAccessType {\n        All = 0,\n        ByJobID = 1,\n        ByComponent = 2,\n        ByLogType = 3,\n        ByTargetAudience = 4,\n        BySourceInstance = 5,\n        BySourceNode = 6,\n        ByFieldName = 7,\n        ByPod = 8,\n        ByTraceID = 9,\n        BySpanID = 10\n    }\n\n    export enum LogAccessStatusCode {\n        Success = 0,\n        Warning = 1,\n        Fail = 2\n    }\n\n    export enum LogAccessFilterOperator {\n        NONE = 0,\n        AND = 1,\n        OR = 2\n    }\n\n    export enum LogSelectColumnMode {\n        MIN = 0,\n        DEFAULT = 1,\n        ALL = 2,\n        CUSTOM = 3\n    }\n\n    export enum SortColumType {\n        ByDate = 0,\n        ByJobID = 1,\n        ByComponent = 2,\n        ByLogType = 3,\n        ByTargetAudience = 4,\n        BySourceInstance = 5,\n        BySourceNode = 6,\n        ByFieldName = 7,\n        ByPod = 8,\n        ByTraceID = 9,\n        BySpanID = 10\n    }\n\n    export enum SortDirection {\n        ASC = 0,\n        DSC = 1\n    }\n\n    export interface GetHealthReportRequest {\n        IncludeConfiguration?: boolean;\n        IncludeDebugReport?: boolean;\n        IncludeSampleQuery?: boolean;\n    }\n\n    export interface Exception {\n        Code: string;\n        Audience: string;\n        Source: string;\n        Message: string;\n    }\n\n    export interface Exceptions {\n        Source: string;\n        Exception: Exception[];\n    }\n\n    export interface MessageArray {\n        Item: string[];\n    }\n\n    export interface Status {\n        Code: LogAccessStatusCode;\n        MessageArray: MessageArray;\n    }\n\n    export interface DebugReport {\n        SampleQueryReport: string;\n        PluginDebugReport: string;\n        ServerDebugReport: string;\n    }\n\n    export interface GetHealthReportResponse {\n        Exceptions: Exceptions;\n        Status: Status;\n        DebugReport: DebugReport;\n        Configuration: string;\n    }\n\n    export interface GetLogAccessInfoRequest {\n\n    }\n\n    export interface EnumeratedValues {\n        Item: string[];\n    }\n\n    export interface Column {\n        Name: string;\n        LogType: LogColumnType;\n        EnumeratedValues: EnumeratedValues;\n        ColumnMode: LogSelectColumnMode;\n        ColumnType: LogColumnValueType;\n    }\n\n    export interface Columns {\n        Column: Column[];\n    }\n\n    export interface GetLogAccessInfoResponse {\n        Exceptions: Exceptions;\n        Columns: Columns;\n        RemoteLogManagerType: string;\n        RemoteLogManagerConnectionString: string;\n        SupportsResultPaging: boolean;\n    }\n\n    export interface leftFilter {\n        LogCategory: LogAccessType;\n        SearchByValue: string;\n        SearchField: string;\n    }\n\n    export interface rightFilter {\n        LogCategory: LogAccessType;\n        SearchByValue: string;\n        SearchField: string;\n    }\n\n    export interface rightBinaryFilter {\n        BinaryLogFilter: BinaryLogFilter[];\n    }\n\n    export interface BinaryLogFilter {\n        leftFilter: leftFilter;\n        leftBinaryFilter: leftBinaryFilter;\n        Operator: LogAccessFilterOperator;\n        rightFilter: {\n            LogCategory: LogAccessType;\n            SearchByValue: string;\n            SearchField: string;\n        };\n        rightBinaryFilter: {\n            BinaryLogFilter: BinaryLogFilter[];\n        };\n    }\n\n    export interface leftBinaryFilter {\n        BinaryLogFilter: BinaryLogFilter[];\n    }\n\n    export interface Filter {\n        leftFilter?: leftFilter;\n        leftBinaryFilter?: leftBinaryFilter;\n        Operator?: LogAccessFilterOperator;\n        rightFilter?: rightFilter;\n        rightBinaryFilter?: rightBinaryFilter;\n    }\n\n    export interface Range {\n        StartDate?: dateTime;\n        EndDate?: dateTime;\n    }\n\n    export interface Columns2 {\n        Item: string[];\n    }\n\n    export interface SortCondition {\n        BySortType: SortColumType;\n        ColumnName: string;\n        Direction: SortDirection;\n    }\n\n    export interface SortBy {\n        SortCondition: SortCondition[];\n    }\n\n    export interface GetLogsRequest {\n        Filter?: Filter;\n        Range?: Range;\n        LogLineLimit?: unsignedInt;\n        LogLineStartFrom?: long;\n        SelectColumnMode?: LogSelectColumnMode;\n        Columns?: Columns2;\n        Format?: string;\n        SortBy?: SortBy;\n    }\n\n    export interface GetLogsResponse {\n        Exceptions: Exceptions;\n        LogLines: string;\n        LogLineCount: unsignedInt;\n        TotalLogLinesAvailable: unsignedInt;\n    }\n\n    export interface ws_logaccessPingRequest {\n\n    }\n\n    export interface ws_logaccessPingResponse {\n\n    }\n\n}\n\nexport class LogaccessServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_logaccess\", \"1.08\");\n    }\n\n    GetHealthReport(request: Partial<WsLogaccess.GetHealthReportRequest>): Promise<WsLogaccess.GetHealthReportResponse> {\n        return this._connection.send(\"GetHealthReport\", request, \"json\", false, undefined, \"GetHealthReportResponse\");\n    }\n\n    GetLogAccessInfo(request: Partial<WsLogaccess.GetLogAccessInfoRequest>): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n        return this._connection.send(\"GetLogAccessInfo\", request, \"json\", false, undefined, \"GetLogAccessInfoResponse\");\n    }\n\n    GetLogs(request: Partial<WsLogaccess.GetLogsRequest>): Promise<WsLogaccess.GetLogsResponse> {\n        return this._connection.send(\"GetLogs\", request, \"json\", false, undefined, \"GetLogsResponse\");\n    }\n\n    Ping(request: Partial<WsLogaccess.ws_logaccessPingRequest>): Promise<WsLogaccess.ws_logaccessPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"ws_logaccessPingResponse\");\n    }\n\n}\n","import { scopedLogger } from \"@hpcc-js/util\";\nimport { LogaccessServiceBase, WsLogaccess } from \"./wsdl/ws_logaccess/v1.08/ws_logaccess.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/services/wsLogaccess.ts\");\n\nexport {\n    WsLogaccess\n};\n\nexport interface GetLogsExRequest {\n    audience?: string;\n    class?: string[];\n    workunits?: string;\n    message?: string;\n    processid?: string;\n    logid?: string;\n    threadid?: string;\n    timestamp?: string;\n    components?: string;\n    instance?: string;\n    StartDate?: Date;\n    EndDate?: Date;\n    LogLineStartFrom: number,\n    LogLineLimit: number\n}\n\nexport const enum LogType {\n    Disaster = \"DIS\",\n    Error = \"ERR\",\n    Warning = \"WRN\",\n    Information = \"INF\",\n    Progress = \"PRO\",\n    Metric = \"MET\"\n}\n\nexport const enum TargetAudience {\n    Operator = \"OPR\",\n    User = \"USR\",\n    Programmer = \"PRO\",\n    Audit = \"ADT\"\n}\n\n// properties here are \"LogType\" values in Ws_logaccess.GetLogAccessInfo\nexport interface LogLine {\n    audience?: string;\n    class?: string;\n    workunits?: string;\n    message?: string;\n    processid?: number;\n    logid?: string;\n    threadid?: number;\n    timestamp?: string;\n    components?: string;\n    instance?: string;\n}\n\nexport interface GetLogsExResponse {\n    lines: LogLine[],\n    total: number,\n}\n\nconst knownLogManagerTypes = new Set([\"azureloganalyticscurl\", \"elasticstack\", \"grafanacurl\"]);\nconst logColumnTypeValues = new Set(Object.values(WsLogaccess.LogColumnType));\n\nfunction getLogCategory(searchField: string): WsLogaccess.LogAccessType {\n    switch (searchField) {\n        case WsLogaccess.LogColumnType.workunits:\n        case \"hpcc.log.jobid\":\n            return WsLogaccess.LogAccessType.ByJobID;\n        case WsLogaccess.LogColumnType.audience:\n        case \"hpcc.log.audience\":\n            return WsLogaccess.LogAccessType.ByTargetAudience;\n        case WsLogaccess.LogColumnType.class:\n        case \"hpcc.log.class\":\n            return WsLogaccess.LogAccessType.ByLogType;\n        case WsLogaccess.LogColumnType.components:\n        case \"kubernetes.container.name\":\n            return WsLogaccess.LogAccessType.ByComponent;\n        default:\n            return WsLogaccess.LogAccessType.ByFieldName;\n    }\n}\n\n// Explicit list of filter-bearing keys on GetLogsExRequest.\n// Using an allowlist avoids accidentally treating control fields (StartDate, LogLineLimit, etc.)\n// as log filters if the server ever returns a column whose name collides with them.\nconst FILTER_KEYS = [\"audience\", \"class\", \"workunits\", \"message\", \"processid\", \"logid\", \"threadid\", \"timestamp\", \"components\", \"instance\"] as const;\n\nfunction buildFilters(request: GetLogsExRequest, columnMap: Record<string, string>): WsLogaccess.leftFilter[] {\n    const filters: WsLogaccess.leftFilter[] = [];\n    for (const key of FILTER_KEYS) {\n        const value = request[key];\n        if (value == null || value === \"\" || (Array.isArray(value) && value.length === 0)) {\n            continue;\n        }\n        if (!(key in columnMap)) continue;\n\n        const isKnownLogType = logColumnTypeValues.has(key as WsLogaccess.LogColumnType);\n        let searchField: string = isKnownLogType ? key : columnMap[key];\n        const logCategory = getLogCategory(searchField);\n        if (logCategory === WsLogaccess.LogAccessType.ByFieldName) {\n            searchField = columnMap[key];\n        }\n\n        const appendWildcard = logCategory === WsLogaccess.LogAccessType.ByComponent;\n        const rawValues: string[] = Array.isArray(value) ? value : [value as string];\n        for (const raw of rawValues) {\n            filters.push({\n                LogCategory: logCategory,\n                SearchField: searchField,\n                // append wildcard to end of search value to include ephemeral\n                // containers that aren't listed in ECL Watch's filters\n                SearchByValue: appendWildcard ? raw + \"*\" : raw\n            });\n        }\n    }\n    return filters;\n}\n\n// Builds a left-leaning OR chain from filters that share the same SearchField.\nfunction buildOrGroup(group: WsLogaccess.leftFilter[]): WsLogaccess.BinaryLogFilter {\n    const root: WsLogaccess.BinaryLogFilter = { leftFilter: group[0] } as WsLogaccess.BinaryLogFilter;\n    let node = root;\n    for (let i = 1; i < group.length; i++) {\n        node.Operator = WsLogaccess.LogAccessFilterOperator.OR;\n        if (i === group.length - 1) {\n            node.rightFilter = group[i] as WsLogaccess.rightFilter;\n        } else {\n            node.rightBinaryFilter = { BinaryLogFilter: [{ leftFilter: group[i] } as WsLogaccess.BinaryLogFilter] };\n            node = node.rightBinaryFilter.BinaryLogFilter[0];\n        }\n    }\n    return root;\n}\n\n// Recursively AND-chains two or more groups into a BinaryLogFilter (used for nesting beyond depth 1).\nfunction buildAndChain(groups: WsLogaccess.leftFilter[][]): WsLogaccess.BinaryLogFilter {\n    const [firstGroup, ...remainingGroups] = groups;\n    const node: WsLogaccess.BinaryLogFilter = {} as WsLogaccess.BinaryLogFilter;\n    if (firstGroup.length === 1) {\n        node.leftFilter = firstGroup[0];\n    } else {\n        node.leftBinaryFilter = { BinaryLogFilter: [buildOrGroup(firstGroup)] };\n    }\n    if (remainingGroups.length === 0) return node;\n    node.Operator = WsLogaccess.LogAccessFilterOperator.AND;\n    if (remainingGroups.length === 1) {\n        const [secondGroup] = remainingGroups;\n        if (secondGroup.length === 1) {\n            node.rightFilter = secondGroup[0] as WsLogaccess.rightFilter;\n        } else {\n            node.rightBinaryFilter = { BinaryLogFilter: [buildOrGroup(secondGroup)] };\n        }\n    } else {\n        node.rightBinaryFilter = { BinaryLogFilter: [buildAndChain(remainingGroups)] };\n    }\n    return node;\n}\n\n// Groups filters by SearchField, OR-chains each group, then AND-chains the groups together.\n// This ensures e.g. [class_INF, class_ERR, audience_USR] always produces\n// (class_INF OR class_ERR) AND audience_USR regardless of input order.\nfunction buildFilterTree(filters: WsLogaccess.leftFilter[]): WsLogaccess.Filter {\n    const groupMap = new Map<string, WsLogaccess.leftFilter[]>();\n    for (const f of filters) {\n        const existing = groupMap.get(f.SearchField);\n        if (existing) existing.push(f); else groupMap.set(f.SearchField, [f]);\n    }\n    const groups = [...groupMap.values()];\n\n    if (groups.length === 0) {\n        return { leftFilter: { LogCategory: WsLogaccess.LogAccessType.All } as WsLogaccess.leftFilter };\n    }\n\n    const [firstGroup, ...remainingGroups] = groups;\n    const filter: WsLogaccess.Filter = {};\n    if (firstGroup.length === 1) {\n        filter.leftFilter = firstGroup[0];\n    } else {\n        filter.leftBinaryFilter = { BinaryLogFilter: [buildOrGroup(firstGroup)] };\n    }\n\n    if (remainingGroups.length === 0) return filter;\n    filter.Operator = WsLogaccess.LogAccessFilterOperator.AND;\n    if (remainingGroups.length === 1) {\n        const [secondGroup] = remainingGroups;\n        if (secondGroup.length === 1) {\n            filter.rightFilter = secondGroup[0] as WsLogaccess.rightFilter;\n        } else {\n            filter.rightBinaryFilter = { BinaryLogFilter: [buildOrGroup(secondGroup)] };\n        }\n    } else {\n        filter.rightBinaryFilter = { BinaryLogFilter: [buildAndChain(remainingGroups)] };\n    }\n    return filter;\n}\n\nexport class LogaccessService extends LogaccessServiceBase {\n\n    protected _logAccessInfo: Promise<WsLogaccess.GetLogAccessInfoResponse>;\n\n    GetLogAccessInfo(request: WsLogaccess.GetLogAccessInfoRequest = {}): Promise<WsLogaccess.GetLogAccessInfoResponse> {\n        if (!this._logAccessInfo) {\n            this._logAccessInfo = super.GetLogAccessInfo(request);\n        }\n        return this._logAccessInfo;\n    }\n\n    GetLogs(request: WsLogaccess.GetLogsRequest): Promise<WsLogaccess.GetLogsResponse> {\n        return super.GetLogs(request);\n    }\n\n    private convertLogLine(columnMap: Record<string, string>, line: any): LogLine {\n        const retVal: LogLine = {};\n        const fields = line?.fields ? Object.assign({}, ...line.fields) : null;\n        for (const key in columnMap) {\n            retVal[key] = fields ? fields[columnMap[key]] ?? \"\" : \"\";\n        }\n        return retVal;\n    }\n\n    async GetLogsEx(request: GetLogsExRequest): Promise<GetLogsExResponse> {\n        const logInfo = await this.GetLogAccessInfo();\n        const columnMap: Record<string, string> = {};\n        logInfo.Columns.Column.forEach(column => columnMap[column.LogType] = column.Name);\n\n        const filters = buildFilters(request, columnMap);\n        const range: Record<string, string> = {\n            StartDate: request.StartDate instanceof Date ? request.StartDate.toISOString() : new Date(0).toISOString()\n        };\n        if (request.EndDate instanceof Date) {\n            range.EndDate = request.EndDate.toISOString();\n        }\n\n        const getLogsRequest: WsLogaccess.GetLogsRequest = {\n            Filter: buildFilterTree(filters),\n            Range: range,\n            LogLineStartFrom: request.LogLineStartFrom ?? 0,\n            LogLineLimit: request.LogLineLimit ?? 100,\n            SelectColumnMode: WsLogaccess.LogSelectColumnMode.DEFAULT,\n            Format: \"JSON\",\n            SortBy: {\n                SortCondition: [{\n                    BySortType: WsLogaccess.SortColumType.ByDate,\n                    ColumnName: \"\",\n                    Direction: 0\n                }]\n            }\n        };\n\n        return this.GetLogs(getLogsRequest).then(response => {\n            try {\n                const logLines = JSON.parse(response.LogLines);\n                const lines = knownLogManagerTypes.has(logInfo.RemoteLogManagerType)\n                    ? (logLines.lines?.map((line: any) => this.convertLogLine(columnMap, line)) ?? [])\n                    : (logger.warning(`Unknown RemoteLogManagerType: ${logInfo.RemoteLogManagerType}`), []);\n                return {\n                    lines,\n                    total: response.TotalLogLinesAvailable ?? 10000\n                };\n            } catch (e: any) {\n                logger.error(e.message ?? e);\n            }\n            return {\n                lines: [],\n                total: 0\n            };\n        });\n    }\n}\n","export default function(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n  if (compare.length === 1) compare = ascendingComparator(compare);\n  return {\n    left: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      }\n      return lo;\n    },\n    right: function(a, x, lo, hi) {\n      if (lo == null) lo = 0;\n      if (hi == null) hi = a.length;\n      while (lo < hi) {\n        var mid = lo + hi >>> 1;\n        if (compare(a[mid], x) > 0) hi = mid;\n        else lo = mid + 1;\n      }\n      return lo;\n    }\n  };\n}\n\nfunction ascendingComparator(f) {\n  return function(d, x) {\n    return ascending(f(d), x);\n  };\n}\n","export default function(x) {\n  return x === null ? NaN : +x;\n}\n","export default function(values, valueof) {\n  var n = values.length,\n      i = -1,\n      value,\n      max;\n\n  if (valueof == null) {\n    while (++i < n) { // Find the first comparable value.\n      if ((value = values[i]) != null && value >= value) {\n        max = value;\n        while (++i < n) { // Compare the remaining values.\n          if ((value = values[i]) != null && value > max) {\n            max = value;\n          }\n        }\n      }\n    }\n  }\n\n  else {\n    while (++i < n) { // Find the first comparable value.\n      if ((value = valueof(values[i], i, values)) != null && value >= value) {\n        max = value;\n        while (++i < n) { // Compare the remaining values.\n          if ((value = valueof(values[i], i, values)) != null && value > max) {\n            max = value;\n          }\n        }\n      }\n    }\n  }\n\n  return max;\n}\n","import number from \"./number\";\n\nexport default function(values, valueof) {\n  var n = values.length,\n      m = n,\n      i = -1,\n      value,\n      sum = 0;\n\n  if (valueof == null) {\n    while (++i < n) {\n      if (!isNaN(value = number(values[i]))) sum += value;\n      else --m;\n    }\n  }\n\n  else {\n    while (++i < n) {\n      if (!isNaN(value = number(valueof(values[i], i, values)))) sum += value;\n      else --m;\n    }\n  }\n\n  if (m) return sum / m;\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsMachine {\n\n    export type int = number;\n    export type long = number;\n    export type unsignedInt = number;\n\n    export enum ThresholdType {\n        THRESHOLD_PERCENTAGE = 0,\n        THRESHOLD_MB = 1\n    }\n\n    export enum TpMachineType {\n        ALLNODES = \"ALLNODES\",\n        THORMACHINES = \"THORMACHINES\",\n        HOLEMACHINES = \"HOLEMACHINES\",\n        ROXIEMACHINES = \"ROXIEMACHINES\",\n        MACHINES = \"MACHINES\",\n        AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n        DROPZONE = \"DROPZONE\",\n        STANDBYNNODE = \"STANDBYNNODE\",\n        THORSPARENODES = \"THORSPARENODES\",\n        HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n    }\n\n    export interface GetComponentStatusRequest {\n\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface StatusReport {\n        StatusID?: int;\n        Status?: string;\n        StatusDetails?: string;\n        Reporter?: string;\n        TimeReported?: long;\n        TimeReportedStr?: string;\n        TimeCached?: string;\n        URL?: string;\n    }\n\n    export interface StatusReports {\n        StatusReport?: StatusReport[];\n    }\n\n    export interface ComponentStatus {\n        ComponentTypeID?: int;\n        ComponentType?: string;\n        EndPoint?: string;\n        StatusID?: int;\n        Status?: string;\n        TimeReported?: long;\n        TimeReportedStr?: string;\n        Reporter?: string;\n        StatusReports?: StatusReports;\n    }\n\n    export interface ComponentStatusList {\n        ComponentStatus?: ComponentStatus[];\n    }\n\n    export interface GetComponentStatusResponse {\n        Exceptions?: Exceptions;\n        StatusCode?: int;\n        Status?: string;\n        ComponentType?: string;\n        EndPoint?: string;\n        ComponentStatusID?: int;\n        ComponentStatus?: string;\n        TimeReported?: long;\n        TimeReportedStr?: string;\n        Reporter?: string;\n        StatusReport?: StatusReport;\n        ComponentStatusList?: ComponentStatusList;\n    }\n\n    export interface Component {\n        Type?: string;\n        Name?: string;\n    }\n\n    export interface Components {\n        Component?: Component[];\n    }\n\n    export interface GetComponentUsageRequest {\n        Components?: Components;\n        BypassCachedResult?: boolean;\n    }\n\n    export interface DiskUsage {\n        Name?: string;\n        Path?: string;\n        Description?: string;\n        InUse?: long;\n        Available?: long;\n        PercentAvailable?: int;\n        Exception?: string;\n    }\n\n    export interface DiskUsages {\n        DiskUsage?: DiskUsage[];\n    }\n\n    export interface MachineUsage {\n        Name?: string;\n        NetAddress?: string;\n        Description?: string;\n        Exception?: string;\n        DiskUsages?: DiskUsages;\n    }\n\n    export interface MachineUsages {\n        MachineUsage?: MachineUsage[];\n    }\n\n    export interface ComponentUsage {\n        Type?: string;\n        Name?: string;\n        Description?: string;\n        Exception?: string;\n        MachineUsages?: MachineUsages;\n    }\n\n    export interface ComponentUsages {\n        ComponentUsage?: ComponentUsage[];\n    }\n\n    export interface GetComponentUsageResponse {\n        Exceptions?: Exceptions;\n        ComponentUsages?: ComponentUsages;\n        UsageTime?: string;\n    }\n\n    export interface Addresses {\n        Item?: string[];\n    }\n\n    export interface GetMachineInfoRequest {\n        Addresses?: Addresses;\n        SortBy?: string;\n        ClusterType?: TpMachineType;\n        Cluster?: string;\n        OldIP?: string;\n        Path?: string;\n        AddProcessesToFilter?: string;\n        ApplyProcessFilter?: boolean;\n        GetProcessorInfo?: boolean;\n        GetStorageInfo?: boolean;\n        LocalFileSystemsOnly?: boolean;\n        GetSoftwareInfo?: boolean;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        AutoRefresh?: int;\n        MemThresholdType?: ThresholdType;\n        DiskThresholdType?: ThresholdType;\n        UserName?: string;\n        Password?: string;\n        SecurityString?: string;\n    }\n\n    export interface RequestInfo {\n        Addresses?: Addresses;\n        SortBy?: string;\n        ClusterType?: TpMachineType;\n        Cluster?: string;\n        OldIP?: string;\n        Path?: string;\n        AddProcessesToFilter?: string;\n        ApplyProcessFilter?: boolean;\n        GetProcessorInfo?: boolean;\n        GetStorageInfo?: boolean;\n        LocalFileSystemsOnly?: boolean;\n        GetSoftwareInfo?: boolean;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        AutoRefresh?: int;\n        MemThresholdType?: ThresholdType;\n        DiskThresholdType?: ThresholdType;\n        SecurityString?: string;\n        UserName?: string;\n        Password?: string;\n        EnableSNMP?: boolean;\n    }\n\n    export interface Columns {\n        Item?: string[];\n    }\n\n    export interface ProcessorInfo {\n        Type?: string;\n        Load?: int;\n    }\n\n    export interface Processors {\n        ProcessorInfo?: ProcessorInfo[];\n    }\n\n    export interface StorageInfo {\n        Description?: string;\n        Type?: string;\n        Available?: long;\n        PercentAvail?: int;\n        Total?: long;\n        Failures?: int;\n    }\n\n    export interface Storage {\n        StorageInfo?: StorageInfo[];\n    }\n\n    export interface SWRunInfo {\n        Name?: string;\n        Instances?: int;\n        State?: int;\n    }\n\n    export interface Running {\n        SWRunInfo?: SWRunInfo[];\n    }\n\n    export interface PhysicalMemory {\n        Description?: string;\n        Type?: string;\n        Available?: long;\n        PercentAvail?: int;\n        Total?: long;\n        Failures?: int;\n    }\n\n    export interface VirtualMemory {\n        Description?: string;\n        Type?: string;\n        Available?: long;\n        PercentAvail?: int;\n        Total?: long;\n        Failures?: int;\n    }\n\n    export interface ComponentInfo {\n        Condition?: int;\n        State?: int;\n        UpTime?: string;\n    }\n\n    export interface MachineInfoEx {\n        Address?: string;\n        ConfigAddress?: string;\n        Name?: string;\n        ProcessType?: string;\n        DisplayType?: string;\n        Description?: string;\n        AgentVersion?: string;\n        Contact?: string;\n        Location?: string;\n        UpTime?: string;\n        ComponentName?: string;\n        ComponentPath?: string;\n        RoxieState?: string;\n        RoxieStateDetails?: string;\n        OS?: int;\n        ProcessNumber?: int;\n        Channels?: unsignedInt;\n        Processors?: Processors;\n        Storage?: Storage;\n        Running?: Running;\n        PhysicalMemory?: PhysicalMemory;\n        VirtualMemory?: VirtualMemory;\n        ComponentInfo?: ComponentInfo;\n        Exception?: string;\n    }\n\n    export interface Machines {\n        MachineInfoEx?: MachineInfoEx[];\n    }\n\n    export interface GetMachineInfoResponse {\n        Exceptions?: Exceptions;\n        RequestInfo?: RequestInfo;\n        Columns?: Columns;\n        Machines?: Machines;\n        TimeStamp?: string;\n        UserName?: string;\n        Password?: string;\n        AcceptLanguage?: string;\n    }\n\n    export interface GetMachineInfoRequestEx {\n        Addresses?: Addresses;\n        ClusterType?: TpMachineType;\n    }\n\n    export interface GetMachineInfoResponseEx {\n        Exceptions?: Exceptions;\n        AcceptLanguage?: string;\n        Machines?: Machines;\n    }\n\n    export interface ShowColumns {\n        Item?: string[];\n    }\n\n    export interface MetricsRequest {\n        SecurityString?: string;\n        Addresses?: Addresses;\n        ShowColumns?: ShowColumns;\n        AutoRefresh?: int;\n        SelectAllChecked?: boolean;\n        Cluster?: string;\n        AutoUpdate?: boolean;\n    }\n\n    export interface MetricsResponse {\n        Exceptions?: Exceptions;\n        FieldInformation?: string;\n        Metrics?: string;\n        AutoRefresh?: int;\n        Cluster?: string;\n        SelectAllChecked?: boolean;\n        AutoUpdate?: boolean;\n        AcceptLanguage?: string;\n    }\n\n    export interface NodeGroups {\n        Item?: string[];\n    }\n\n    export interface GetNodeGroupUsageRequest {\n        NodeGroups?: NodeGroups;\n        BypassCachedResult?: boolean;\n    }\n\n    export interface NodeGroupUsage {\n        Name?: string;\n        Description?: string;\n        Exception?: string;\n        ComponentUsages?: ComponentUsages;\n    }\n\n    export interface NodeGroupUsages {\n        NodeGroupUsage?: NodeGroupUsage[];\n    }\n\n    export interface GetNodeGroupUsageResponse {\n        Exceptions?: Exceptions;\n        NodeGroupUsages?: NodeGroupUsages;\n        UsageTime?: string;\n    }\n\n    export interface TargetClusters {\n        Item?: string[];\n    }\n\n    export interface GetTargetClusterInfoRequest {\n        TargetClusters?: TargetClusters;\n        AddProcessesToFilter?: string;\n        ApplyProcessFilter?: boolean;\n        GetProcessorInfo?: boolean;\n        GetStorageInfo?: boolean;\n        LocalFileSystemsOnly?: boolean;\n        GetSoftwareInfo?: boolean;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        AutoRefresh?: int;\n        MemThresholdType?: ThresholdType;\n        DiskThresholdType?: ThresholdType;\n    }\n\n    export interface Processes {\n        MachineInfoEx?: MachineInfoEx[];\n    }\n\n    export interface TargetClusterInfo {\n        Name?: string;\n        Type?: string;\n        Processes?: Processes;\n    }\n\n    export interface TargetClusterInfoList {\n        TargetClusterInfo?: TargetClusterInfo[];\n    }\n\n    export interface GetTargetClusterInfoResponse {\n        Exceptions?: Exceptions;\n        Columns?: Columns;\n        RequestInfo?: RequestInfo;\n        TargetClusterInfoList?: TargetClusterInfoList;\n        TimeStamp?: string;\n        AcceptLanguage?: string;\n    }\n\n    export interface GetTargetClusterUsageRequest {\n        TargetClusters?: TargetClusters;\n        BypassCachedResult?: boolean;\n    }\n\n    export interface TargetClusterUsage {\n        Name?: string;\n        Description?: string;\n        Exception?: string;\n        ComponentUsages?: ComponentUsages;\n    }\n\n    export interface TargetClusterUsages {\n        TargetClusterUsage?: TargetClusterUsage[];\n    }\n\n    export interface GetTargetClusterUsageResponse {\n        Exceptions?: Exceptions;\n        TargetClusterUsages?: TargetClusterUsages;\n        UsageTime?: string;\n    }\n\n    export interface ws_machinePingRequest {\n\n    }\n\n    export interface ws_machinePingResponse {\n\n    }\n\n    export interface UpdateComponentStatusRequest {\n        Reporter?: string;\n        ComponentStatusList?: ComponentStatusList;\n    }\n\n    export interface UpdateComponentStatusResponse {\n        Exceptions?: Exceptions;\n        StatusCode?: int;\n        Status?: string;\n    }\n\n}\n\nexport class MachineServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"ws_machine\", \"1.19\");\n    }\n\n    GetComponentStatus(request: Partial<WsMachine.GetComponentStatusRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetComponentStatusResponse> {\n        return this._connection.send(\"GetComponentStatus\", request, \"json\", false, abortSignal, \"GetComponentStatusResponse\");\n    }\n\n    GetComponentUsage(request: Partial<WsMachine.GetComponentUsageRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetComponentUsageResponse> {\n        return this._connection.send(\"GetComponentUsage\", request, \"json\", false, abortSignal, \"GetComponentUsageResponse\");\n    }\n\n    GetMachineInfo(request: Partial<WsMachine.GetMachineInfoRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetMachineInfoResponse> {\n        return this._connection.send(\"GetMachineInfo\", request, \"json\", false, abortSignal, \"GetMachineInfoResponse\");\n    }\n\n    GetMachineInfoEx(request: Partial<WsMachine.GetMachineInfoRequestEx>, abortSignal?: AbortSignal): Promise<WsMachine.GetMachineInfoResponseEx> {\n        return this._connection.send(\"GetMachineInfoEx\", request, \"json\", false, abortSignal, \"GetMachineInfoResponseEx\");\n    }\n\n    GetMetrics(request: Partial<WsMachine.MetricsRequest>, abortSignal?: AbortSignal): Promise<WsMachine.MetricsResponse> {\n        return this._connection.send(\"GetMetrics\", request, \"json\", false, abortSignal, \"MetricsResponse\");\n    }\n\n    GetNodeGroupUsage(request: Partial<WsMachine.GetNodeGroupUsageRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetNodeGroupUsageResponse> {\n        return this._connection.send(\"GetNodeGroupUsage\", request, \"json\", false, abortSignal, \"GetNodeGroupUsageResponse\");\n    }\n\n    GetTargetClusterInfo(request: Partial<WsMachine.GetTargetClusterInfoRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetTargetClusterInfoResponse> {\n        return this._connection.send(\"GetTargetClusterInfo\", request, \"json\", false, abortSignal, \"GetTargetClusterInfoResponse\");\n    }\n\n    GetTargetClusterUsage(request: Partial<WsMachine.GetTargetClusterUsageRequest>, abortSignal?: AbortSignal): Promise<WsMachine.GetTargetClusterUsageResponse> {\n        return this._connection.send(\"GetTargetClusterUsage\", request, \"json\", false, abortSignal, \"GetTargetClusterUsageResponse\");\n    }\n\n    Ping(request: Partial<WsMachine.ws_machinePingRequest>, abortSignal?: AbortSignal): Promise<WsMachine.ws_machinePingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"ws_machinePingResponse\");\n    }\n\n    UpdateComponentStatus(request: Partial<WsMachine.UpdateComponentStatusRequest>, abortSignal?: AbortSignal): Promise<WsMachine.UpdateComponentStatusResponse> {\n        return this._connection.send(\"UpdateComponentStatus\", request, \"json\", false, abortSignal, \"UpdateComponentStatusResponse\");\n    }\n\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import { exists } from \"@hpcc-js/util\";\nimport { max as d3Max, mean as d3Mean } from \"d3-array\";\n\nimport { MachineServiceBase, WsMachine } from \"./wsdl/ws_machine/v1.19/ws_machine.ts\";\n\nexport {\n    type WsMachine\n};\n\nexport namespace WsMachineEx {\n\n    export interface DiskUsage extends WsMachine.DiskUsage {\n        Total: number;\n        PercentUsed: number;\n    }\n\n    export interface MachineUsage extends Omit<WsMachine.MachineUsage, \"DiskUsages\"> {\n        DiskUsages: DiskUsage[];\n        mean: number;\n        max: number;\n    }\n\n    export interface ComponentUsage extends Omit<WsMachine.ComponentUsage, \"MachineUsages\"> {\n        MachineUsages: MachineUsage[];\n        MachineUsagesDescription: string;\n        mean: number;\n        max: number;\n    }\n\n    export interface TargetClusterUsage extends Omit<WsMachine.TargetClusterUsage, \"ComponentUsages\"> {\n        ComponentUsages: ComponentUsage[];\n        ComponentUsagesDescription: string;\n        mean: number;\n        max: number;\n    }\n\n}\n\nexport class MachineService extends MachineServiceBase {\n\n    GetTargetClusterUsageEx(targetClusters?: string[], bypassCachedResult: boolean = false): Promise<WsMachineEx.TargetClusterUsage[]> {\n        return this._connection.send(\"GetTargetClusterUsage\", {\n            TargetClusters: targetClusters ? { Item: targetClusters } : {},\n            BypassCachedResult: bypassCachedResult\n        }).then(response => {\n            return exists(\"TargetClusterUsages.TargetClusterUsage\", response) ? response.TargetClusterUsages.TargetClusterUsage : [];\n        }).then(response => {\n            return response.filter(tcu => !!tcu.ComponentUsages).map(tcu => {\n                const ComponentUsages: WsMachineEx.ComponentUsage[] = tcu.ComponentUsages.ComponentUsage.map(cu => {\n                    const MachineUsages: WsMachineEx.MachineUsage[] = (cu.MachineUsages && cu.MachineUsages.MachineUsage ? cu.MachineUsages.MachineUsage : []).map(mu => {\n                        const DiskUsages: WsMachineEx.DiskUsage[] = mu.DiskUsages && mu.DiskUsages.DiskUsage ? mu.DiskUsages.DiskUsage.map(du => {\n                            return {\n                                ...du,\n                                InUse: du.InUse * 1024,\n                                Total: (du.InUse + du.Available) * 1024,\n                                PercentUsed: 100 - du.PercentAvailable\n                            };\n                        }) : [];\n                        return {\n                            Name: mu.Name,\n                            NetAddress: mu.NetAddress,\n                            Description: mu.Description,\n                            DiskUsages,\n                            mean: d3Mean(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed),\n                            max: d3Max(DiskUsages.filter(du => !isNaN(du.PercentUsed)), du => du.PercentUsed)\n                        };\n                    });\n                    return {\n                        Type: cu.Type,\n                        Name: cu.Name,\n                        Description: cu.Description,\n                        MachineUsages,\n                        MachineUsagesDescription: MachineUsages.reduce((prev, mu) => prev + (mu.Description || \"\"), \"\"),\n                        mean: d3Mean(MachineUsages.filter(mu => !isNaN(mu.mean)), mu => mu.mean),\n                        max: d3Max(MachineUsages.filter(mu => !isNaN(mu.max)), mu => mu.max)\n                    };\n                });\n                return {\n                    Name: tcu.Name,\n                    Description: tcu.Description,\n                    ComponentUsages,\n                    ComponentUsagesDescription: ComponentUsages.reduce((prev, cu) => prev + (cu.MachineUsagesDescription || \"\"), \"\"),\n                    mean: d3Mean(ComponentUsages.filter(cu => !isNaN(cu.mean)), cu => cu.mean),\n                    max: d3Max(ComponentUsages.filter(cu => !isNaN(cu.max)), cu => cu.max)\n                };\n            });\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsPackageProcess {\n\n    export type int = number;\n    export type nonNegativeInteger = number;\n\n    export interface ActivatePackageRequest {\n        Target?: string;\n        PackageMap?: string;\n        Process?: string;\n        GlobalScope?: boolean;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface status {\n        Code?: int;\n        Description?: string;\n    }\n\n    export interface ActivatePackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n    }\n\n    export interface AddPackageRequest {\n        Info?: string;\n        Activate?: boolean;\n        OverWrite?: boolean;\n        Target?: string;\n        PackageMap?: string;\n        Process?: string;\n        DaliIp?: string;\n        GlobalScope?: boolean;\n        SourceProcess?: string;\n        AllowForeignFiles?: boolean;\n        PreloadAllPackages?: boolean;\n        ReplacePackageMap?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface FilesNotFound {\n        File?: string[];\n    }\n\n    export interface AddPackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        FilesNotFound?: FilesNotFound;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface AddPartToPackageMapRequest {\n        Target?: string;\n        Process?: string;\n        PackageMap?: string;\n        GlobalScope?: boolean;\n        PartName?: string;\n        Content?: string;\n        DeletePrevious?: boolean;\n        DaliIp?: string;\n        SourceProcess?: string;\n        AllowForeignFiles?: boolean;\n        PreloadAllPackages?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface AddPartToPackageMapResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        FilesNotFound?: FilesNotFound;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface CopyPackageMapRequest {\n        SourcePath?: string;\n        RemoteUserName?: string;\n        RemotePassword?: string;\n        Target?: string;\n        Process?: string;\n        PMID?: string;\n        Activate?: boolean;\n        DaliIp?: string;\n        GlobalScope?: boolean;\n        SourceProcess?: string;\n        PreloadAllPackages?: boolean;\n        ReplacePackageMap?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface CopyPackageMapResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        FilesNotFound?: FilesNotFound;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface DeActivatePackageRequest {\n        Target?: string;\n        PackageMap?: string;\n        Process?: string;\n        GlobalScope?: boolean;\n    }\n\n    export interface DeActivatePackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n    }\n\n    export interface PackageMap {\n        Id?: string;\n        Target?: string;\n        Process?: string;\n    }\n\n    export interface PackageMaps {\n        PackageMap?: PackageMap[];\n    }\n\n    export interface DeletePackageRequest {\n        Target?: string;\n        PackageMap?: string;\n        Process?: string;\n        GlobalScope?: boolean;\n        PackageMaps?: PackageMaps;\n    }\n\n    export interface DeletePackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n    }\n\n    export interface EchoRequest {\n        Request?: string;\n    }\n\n    export interface EchoResponse {\n        Response?: string;\n    }\n\n    export interface GetPackageRequest {\n        Target?: string;\n        Process?: string;\n    }\n\n    export interface GetPackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        Info?: string;\n    }\n\n    export interface GetPackageMapByIdRequest {\n        PackageMapId?: string;\n    }\n\n    export interface GetPackageMapByIdResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        Info?: string;\n    }\n\n    export interface GetPackageMapSelectOptionsRequest {\n        IncludeTargets?: boolean;\n        IncludeProcesses?: boolean;\n        IncludeProcessFilters?: boolean;\n    }\n\n    export interface Processes {\n        Item?: string[];\n    }\n\n    export interface TargetData {\n        Name?: string;\n        Type?: string;\n        Processes?: Processes;\n    }\n\n    export interface Targets {\n        TargetData?: TargetData[];\n    }\n\n    export interface ProcessFilters {\n        Item?: string[];\n    }\n\n    export interface GetPackageMapSelectOptionsResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        Targets?: Targets;\n        ProcessFilters?: ProcessFilters;\n    }\n\n    export interface GetPartFromPackageMapRequest {\n        Target?: string;\n        PackageMap?: string;\n        GlobalScope?: boolean;\n        PartName?: string;\n    }\n\n    export interface GetPartFromPackageMapResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        Content?: string;\n    }\n\n    export interface GetQueryFileMappingRequest {\n        Target?: string;\n        PMID?: string;\n        QueryName?: string;\n        GlobalScope?: boolean;\n    }\n\n    export interface UnmappedFiles {\n        File?: string[];\n    }\n\n    export interface SubFiles {\n        File?: string[];\n    }\n\n    export interface SuperFile {\n        Name?: string;\n        SubFiles?: SubFiles;\n    }\n\n    export interface SuperFiles {\n        SuperFile?: SuperFile[];\n    }\n\n    export interface GetQueryFileMappingResponse {\n        Exceptions?: Exceptions;\n        UnmappedFiles?: UnmappedFiles;\n        SuperFiles?: SuperFiles;\n    }\n\n    export interface ListPackageRequest {\n        Target?: string;\n        Process?: string;\n    }\n\n    export interface PackageListData {\n        Id?: string;\n        Queries?: string;\n    }\n\n    export interface PkgListData {\n        PackageListData?: PackageListData[];\n    }\n\n    export interface PackageListMapData {\n        Id?: string;\n        Target?: string;\n        Process?: string;\n        PkgListData?: PkgListData;\n        Active?: boolean;\n        Description?: string;\n    }\n\n    export interface PkgListMapData {\n        PackageListMapData?: PackageListMapData[];\n    }\n\n    export interface ListPackageResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        PkgListMapData?: PkgListMapData;\n    }\n\n    export interface ListPackagesRequest {\n        Target?: string;\n        Process?: string;\n        ProcessFilter?: string;\n    }\n\n    export interface PackageMapList {\n        PackageListMapData?: PackageListMapData[];\n    }\n\n    export interface ListPackagesResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n        PackageMapList?: PackageMapList;\n    }\n\n    export interface WsPackageProcessPingRequest {\n\n    }\n\n    export interface WsPackageProcessPingResponse {\n\n    }\n\n    export interface RemovePartFromPackageMapRequest {\n        Target?: string;\n        PackageMap?: string;\n        GlobalScope?: boolean;\n        PartName?: string;\n    }\n\n    export interface RemovePartFromPackageMapResponse {\n        Exceptions?: Exceptions;\n        status?: status;\n    }\n\n    export interface QueriesToVerify {\n        Item?: string[];\n    }\n\n    export interface QueriesToIgnore {\n        Item?: string[];\n    }\n\n    export interface ValidatePackageRequest {\n        Info?: string;\n        Target?: string;\n        Process?: string;\n        Active?: boolean;\n        PMID?: string;\n        QueryIdToVerify?: string;\n        QueriesToVerify?: QueriesToVerify;\n        QueriesToIgnore?: QueriesToIgnore;\n        CheckDFS?: boolean;\n        GlobalScope?: boolean;\n        IgnoreWarnings?: boolean;\n        IgnoreOptionalFiles?: boolean;\n    }\n\n    export interface Warnings {\n        Item?: string[];\n    }\n\n    export interface Errors {\n        Item?: string[];\n    }\n\n    export interface Unmatched {\n        Item?: string[];\n    }\n\n    export interface packages {\n        Unmatched?: Unmatched;\n    }\n\n    export interface queries {\n        Unmatched?: Unmatched;\n    }\n\n    export interface NotInDFS {\n        File?: string[];\n    }\n\n    export interface files {\n        Unmatched?: Unmatched;\n        NotInDFS?: NotInDFS;\n    }\n\n    export interface Result {\n        Target?: string;\n        PMID?: string;\n        Warnings?: Warnings;\n        Errors?: Errors;\n        packages?: packages;\n        queries?: queries;\n        files?: files;\n    }\n\n    export interface Results {\n        Result?: Result[];\n    }\n\n    export interface ValidatePackageResponse {\n        Exceptions?: Exceptions;\n        Results?: Results;\n    }\n\n}\n\nexport class PackageProcessServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsPackageProcess\", \"1.08\");\n    }\n\n    ActivatePackage(request: WsPackageProcess.ActivatePackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.ActivatePackageResponse> {\n        return this._connection.send(\"ActivatePackage\", request, \"json\", false, abortSignal, \"ActivatePackageResponse\");\n    }\n\n    AddPackage(request: WsPackageProcess.AddPackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.AddPackageResponse> {\n        return this._connection.send(\"AddPackage\", request, \"json\", false, abortSignal, \"AddPackageResponse\");\n    }\n\n    AddPartToPackageMap(request: WsPackageProcess.AddPartToPackageMapRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.AddPartToPackageMapResponse> {\n        return this._connection.send(\"AddPartToPackageMap\", request, \"json\", false, abortSignal, \"AddPartToPackageMapResponse\");\n    }\n\n    CopyPackageMap(request: WsPackageProcess.CopyPackageMapRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.CopyPackageMapResponse> {\n        return this._connection.send(\"CopyPackageMap\", request, \"json\", false, abortSignal, \"CopyPackageMapResponse\");\n    }\n\n    DeActivatePackage(request: WsPackageProcess.DeActivatePackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.DeActivatePackageResponse> {\n        return this._connection.send(\"DeActivatePackage\", request, \"json\", false, abortSignal, \"DeActivatePackageResponse\");\n    }\n\n    DeletePackage(request: WsPackageProcess.DeletePackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.DeletePackageResponse> {\n        return this._connection.send(\"DeletePackage\", request, \"json\", false, abortSignal, \"DeletePackageResponse\");\n    }\n\n    Echo(request: WsPackageProcess.EchoRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.EchoResponse> {\n        return this._connection.send(\"Echo\", request, \"json\", false, abortSignal, \"EchoResponse\");\n    }\n\n    GetPackage(request: WsPackageProcess.GetPackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.GetPackageResponse> {\n        return this._connection.send(\"GetPackage\", request, \"json\", false, abortSignal, \"GetPackageResponse\");\n    }\n\n    GetPackageMapById(request: WsPackageProcess.GetPackageMapByIdRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.GetPackageMapByIdResponse> {\n        return this._connection.send(\"GetPackageMapById\", request, \"json\", false, abortSignal, \"GetPackageMapByIdResponse\");\n    }\n\n    GetPackageMapSelectOptions(request: WsPackageProcess.GetPackageMapSelectOptionsRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.GetPackageMapSelectOptionsResponse> {\n        return this._connection.send(\"GetPackageMapSelectOptions\", request, \"json\", false, abortSignal, \"GetPackageMapSelectOptionsResponse\");\n    }\n\n    GetPartFromPackageMap(request: WsPackageProcess.GetPartFromPackageMapRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.GetPartFromPackageMapResponse> {\n        return this._connection.send(\"GetPartFromPackageMap\", request, \"json\", false, abortSignal, \"GetPartFromPackageMapResponse\");\n    }\n\n    GetQueryFileMapping(request: WsPackageProcess.GetQueryFileMappingRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.GetQueryFileMappingResponse> {\n        return this._connection.send(\"GetQueryFileMapping\", request, \"json\", false, abortSignal, \"GetQueryFileMappingResponse\");\n    }\n\n    ListPackage(request: WsPackageProcess.ListPackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.ListPackageResponse> {\n        return this._connection.send(\"ListPackage\", request, \"json\", false, abortSignal, \"ListPackageResponse\");\n    }\n\n    ListPackages(request: WsPackageProcess.ListPackagesRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.ListPackagesResponse> {\n        return this._connection.send(\"ListPackages\", request, \"json\", false, abortSignal, \"ListPackagesResponse\");\n    }\n\n    Ping(request: WsPackageProcess.WsPackageProcessPingRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.WsPackageProcessPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WsPackageProcessPingResponse\");\n    }\n\n    RemovePartFromPackageMap(request: WsPackageProcess.RemovePartFromPackageMapRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.RemovePartFromPackageMapResponse> {\n        return this._connection.send(\"RemovePartFromPackageMap\", request, \"json\", false, abortSignal, \"RemovePartFromPackageMapResponse\");\n    }\n\n    ValidatePackage(request: WsPackageProcess.ValidatePackageRequest, abortSignal?: AbortSignal): Promise<WsPackageProcess.ValidatePackageResponse> {\n        return this._connection.send(\"ValidatePackage\", request, \"json\", false, abortSignal, \"ValidatePackageResponse\");\n    }\n\n}\n","import { PackageProcessServiceBase, WsPackageProcess } from \"./wsdl/WsPackageProcess/v1.08/WsPackageProcess.ts\";\n\nexport {\n    type WsPackageProcess\n};\n\nexport class PackageProcessService extends PackageProcessServiceBase {\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\ntype unsignedInt = number;\n\nexport namespace WsResources {\n\n    export interface WsResourcesPingRequest {\n\n    }\n\n    export interface WsResourcesPingResponse {\n\n    }\n\n    export interface ServiceQueryRequest {\n        Type?: string;\n        Name?: string;\n    }\n\n    export interface Exception {\n        Code: string;\n        Audience: string;\n        Source: string;\n        Message: string;\n    }\n\n    export interface Exceptions {\n        Source: string;\n        Exception: Exception[];\n    }\n\n    export interface Service {\n        Name: string;\n        Type: string;\n        Port: unsignedInt;\n        TLSSecure: boolean;\n    }\n\n    export interface Services {\n        Service: Service[];\n    }\n\n    export interface ServiceQueryResponse {\n        Exceptions: {\n            Source: string;\n            Exception: Exception[];\n        };\n        Services: {\n            Service: Service[];\n        };\n    }\n\n    export interface WebLinksQueryRequest {\n\n    }\n\n    export interface NamedValue {\n        Name: string;\n        Value: string;\n    }\n\n    export interface Annotations {\n        NamedValue: NamedValue[];\n    }\n\n    export interface DiscoveredWebLink {\n        ServiceName: string;\n        NameSpace: string;\n        Annotations: {\n            NamedValue: NamedValue[];\n        };\n    }\n\n    export interface DiscoveredWebLinks {\n        DiscoveredWebLink: DiscoveredWebLink[];\n    }\n\n    export interface ConfiguredWebLink {\n        Name: string;\n        Description: string;\n        URL: string;\n    }\n\n    export interface ConfiguredWebLinks {\n        ConfiguredWebLink: ConfiguredWebLink[];\n    }\n\n    export interface WebLinksQueryResponse {\n        Exceptions: Exceptions;\n        DiscoveredWebLinks: {\n            DiscoveredWebLink: DiscoveredWebLink[];\n        };\n        ConfiguredWebLinks: {\n            ConfiguredWebLink: ConfiguredWebLink[];\n        };\n    }\n\n}\n\nexport class ResourcesServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsResources\", \"1.01\");\n    }\n\n    Ping(request: WsResources.WsResourcesPingRequest): Promise<WsResources.WsResourcesPingResponse> {\n        return this._connection.send(\"Ping\", request);\n    }\n\n    ServiceQuery(request: WsResources.ServiceQueryRequest): Promise<WsResources.ServiceQueryResponse> {\n        return this._connection.send(\"ServiceQuery\", request);\n    }\n\n    WebLinksQuery(request: WsResources.WebLinksQueryRequest): Promise<WsResources.WebLinksQueryResponse> {\n        return this._connection.send(\"WebLinksQuery\", request);\n    }\n\n}\n","import { ResourcesServiceBase, WsResources } from \"./wsdl/WsResources/v1.01/WsResources.ts\";\n\nexport {\n    type WsResources\n};\n\nexport class ResourcesService extends ResourcesServiceBase {\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\r\nimport { Service } from \"../../../../espConnection.ts\";\r\n\r\nexport namespace WsSasha {\r\n\r\n    export type unsignedInt = number;\r\n\r\n    export enum WUTypes {\r\n        ECL = \"ECL\",\r\n        DFU = \"DFU\"\r\n    }\r\n\r\n    export interface ArchiveWURequest {\r\n        Wuid?: string;\r\n        WUType?: WUTypes;\r\n        DeleteOnSuccess?: boolean;\r\n    }\r\n\r\n    export interface Exception {\r\n        Code?: string;\r\n        Audience?: string;\r\n        Source?: string;\r\n        Message?: string;\r\n    }\r\n\r\n    export interface Exceptions {\r\n        Source?: string;\r\n        Exception?: Exception[];\r\n    }\r\n\r\n    export interface ResultResponse {\r\n        Exceptions?: Exceptions;\r\n        Result?: string;\r\n    }\r\n\r\n    export interface GetVersionRequest {\r\n\r\n    }\r\n\r\n    export interface ListWURequest {\r\n        WUType?: WUTypes;\r\n        Wuid?: string;\r\n        Cluster?: string;\r\n        Owner?: string;\r\n        JobName?: string;\r\n        State?: string;\r\n        FromDate?: string;\r\n        ToDate?: string;\r\n        Archived?: boolean;\r\n        Online?: boolean;\r\n        IncludeDT?: boolean;\r\n        BeforeWU?: string;\r\n        AfterWU?: string;\r\n        MaxNumberWUs?: unsignedInt;\r\n        Descending?: boolean;\r\n        OutputFields?: string;\r\n    }\r\n\r\n    export interface WSSashaPingRequest {\r\n\r\n    }\r\n\r\n    export interface WSSashaPingResponse {\r\n\r\n    }\r\n\r\n    export interface RestoreWURequest {\r\n        Wuid?: string;\r\n        WUType?: WUTypes;\r\n    }\r\n\r\n}\r\n\r\nexport class SashaServiceBase extends Service {\r\n\r\n    constructor(optsConnection: IOptions | IConnection) {\r\n        super(optsConnection, \"WSSasha\", \"1.01\");\r\n    }\r\n\r\n    ArchiveWU(request: Partial<WsSasha.ArchiveWURequest>, abortSignal?: AbortSignal): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"ArchiveWU\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    GetVersion(request: Partial<WsSasha.GetVersionRequest>, abortSignal?: AbortSignal): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"GetVersion\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    ListWU(request: Partial<WsSasha.ListWURequest>, abortSignal?: AbortSignal): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"ListWU\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n    Ping(request: Partial<WsSasha.WSSashaPingRequest>, abortSignal?: AbortSignal): Promise<WsSasha.WSSashaPingResponse> {\r\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WSSashaPingResponse\");\r\n    }\r\n\r\n    RestoreWU(request: Partial<WsSasha.RestoreWURequest>, abortSignal?: AbortSignal): Promise<WsSasha.ResultResponse> {\r\n        return this._connection.send(\"RestoreWU\", request, \"json\", false, abortSignal, \"ResultResponse\");\r\n    }\r\n\r\n}\r\n","import { SashaServiceBase, WsSasha } from \"./wsdl/WsSasha/v1.01/WsSasha.ts\";\n\nexport {\n    WsSasha\n};\n\nexport class SashaService extends SashaServiceBase {\n}","var t0 = new Date,\n    t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = function(date) {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setDate(date.getDate() + step);\n}, function(start, end) {\n  return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n  return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n  return interval(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / durationDay;\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n  return interval(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  var map = {}, i = -1, n = names.length;\n  while (++i < n) map[names[i].toLowerCase()] = i;\n  return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsSMC {\n\n    export type int = number;\n    export type dateTime = string;\n    export type unsignedInt = number;\n    export type long = number;\n\n    export enum LockModes {\n        ALL = \"ALL\",\n        READ = \"READ\",\n        WRITE = \"WRITE\",\n        HOLD = \"HOLD\",\n        SUB = \"SUB\"\n    }\n\n    export enum RoxieControlCmdType {\n        Attach = \"Attach\",\n        Detach = \"Detach\",\n        State = \"State\",\n        Reload = \"Reload\",\n        ReloadRetry = \"ReloadRetry\",\n        MemLock = \"MemLock\",\n        MemUnlock = \"MemUnlock\",\n        GetMemLocked = \"GetMemLocked\"\n    }\n\n    export interface Activity {\n        ChatURL: string;\n        BannerContent: string;\n        BannerColor: string;\n        BannerSize: string;\n        BannerScroll: string;\n        BannerAction: int;\n        EnableChatURL: boolean;\n        FromSubmitBtn: boolean;\n        SortBy: string;\n        Descending: boolean;\n    }\n\n    export interface Exception {\n        Code: string;\n        Audience: string;\n        Source: string;\n        Message: string;\n    }\n\n    export interface Exceptions {\n        Source: string;\n        Exception: Exception[];\n    }\n\n    export interface TargetCluster {\n        ClusterName: string;\n        QueueName: string;\n        QueueStatus: string;\n        StatusDetails: string;\n        Warning: string;\n        ClusterType: int;\n        ClusterSize: int;\n        ClusterStatus: int;\n    }\n\n    export interface ThorClusterList {\n        TargetCluster: TargetCluster[];\n    }\n\n    export interface RoxieClusterList {\n        TargetCluster: TargetCluster[];\n    }\n\n    export interface HThorClusterList {\n        TargetCluster: TargetCluster[];\n    }\n\n    export interface DFUJob {\n        TimeStarted: string;\n        Done: int;\n        Total: int;\n        Command: string;\n    }\n\n    export interface DFUJobs {\n        DFUJob: DFUJob[];\n    }\n\n    export interface ActiveWorkunit {\n        Wuid: string;\n        State: string;\n        StateID: int;\n        Owner: string;\n        Jobname: string;\n        Server: string;\n        Instance: string;\n        Priority: string;\n        Extra: string;\n        GraphName: string;\n        Duration: string;\n        GID: string;\n        QueueName: string;\n        MemoryBlocked: int;\n        IsPausing: boolean;\n        Warning: string;\n        ClusterName: string;\n        ClusterType: string;\n        ClusterQueueName: string;\n        TargetClusterName: string;\n        NoAccess: boolean;\n    }\n\n    export interface Running {\n        ActiveWorkunit: ActiveWorkunit[];\n    }\n\n    export interface Queues {\n        ServerJobQueue: ServerJobQueue[];\n    }\n\n    export interface ServerJobQueue {\n        QueueName: string;\n        Queues: Queues;\n        ServerName: string;\n        ServerType: string;\n        QueueStatus: string;\n        StatusDetails: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface ServerJobQueues {\n        ServerJobQueue: ServerJobQueue[];\n    }\n\n    export interface ActivityResponse {\n        Exceptions: Exceptions;\n        Build: string;\n        ThorClusterList: ThorClusterList;\n        RoxieClusterList: RoxieClusterList;\n        HThorClusterList: HThorClusterList;\n        DFUJobs: DFUJobs;\n        Running: Running;\n        BannerContent: string;\n        BannerColor: string;\n        BannerSize: string;\n        BannerScroll: string;\n        ChatURL: string;\n        ShowBanner: int;\n        ShowChatURL: int;\n        SortBy: string;\n        Descending: boolean;\n        SuperUser: boolean;\n        AccessRight: string;\n        ServerJobQueues: ServerJobQueues;\n        ActivityTime: string;\n        DaliDetached: boolean;\n    }\n\n    export interface BrowseResources {\n\n    }\n\n    export interface HPCCResource {\n        Name: string;\n        Description: string;\n        FileName: string;\n        Version: string;\n    }\n\n    export interface HPCCResources {\n        HPCCResource: HPCCResource[];\n    }\n\n    export interface HPCCResourceRepository {\n        Name: string;\n        Path: string;\n        HPCCResources: HPCCResources;\n    }\n\n    export interface HPCCResourceRepositories {\n        HPCCResourceRepository: HPCCResourceRepository[];\n    }\n\n    export interface BrowseResourcesResponse {\n        Exceptions: Exceptions;\n        PortalURL: string;\n        ESPInstance: string;\n        OS: int;\n        UseResource: boolean;\n        HPCCResourceRepositories: HPCCResourceRepositories;\n    }\n\n    export interface ClearQueue {\n        Cluster: string;\n        QueueName: string;\n        Comment: string;\n        ServerType: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface TargetClusterInfo {\n        ClusterName: string;\n        QueueName: string;\n        QueueStatus: string;\n        StatusDetails: string;\n        Warning: string;\n        ClusterType: int;\n        ClusterSize: int;\n        ClusterStatus: int;\n    }\n\n    export interface ServerInfo {\n        QueueName: string;\n        Queues: Queues;\n        ServerName: string;\n        ServerType: string;\n        QueueStatus: string;\n        StatusDetails: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface Workunits {\n        ActiveWorkunit: ActiveWorkunit[];\n    }\n\n    export interface StatusServerInfo {\n        TargetClusterInfo: TargetClusterInfo;\n        ServerInfo: ServerInfo;\n        Workunits: Workunits;\n    }\n\n    export interface SMCQueueResponse {\n        Exceptions: Exceptions;\n        StatusServerInfo: StatusServerInfo;\n    }\n\n    export interface GetBuildInfo {\n\n    }\n\n    export interface NamedValue {\n        Name: string;\n        Value: string;\n    }\n\n    export interface BuildInfo {\n        NamedValue: NamedValue[];\n    }\n\n    export interface GetBuildInfoResponse {\n        Exceptions: Exceptions;\n        BuildInfo: BuildInfo;\n    }\n\n    export interface Dimension {\n        Name: string;\n        Value: string;\n    }\n\n    export interface Dimensions {\n        Dimension: Dimension[];\n    }\n\n    export interface DateTimeRange {\n        Start: dateTime;\n        End: dateTime;\n    }\n\n    export interface GetGlobalMetrics {\n        Category: string;\n        Dimensions: Dimensions;\n        DateTimeRange: DateTimeRange;\n    }\n\n    export interface Dimensions2 {\n        Dimension: Dimension[];\n    }\n\n    export interface Stat {\n        Name: string;\n        Value: string;\n    }\n\n    export interface Stats {\n        Stat: Stat[];\n    }\n\n    export interface GlobalMetric {\n        Category: string;\n        Dimensions: Dimensions2;\n        DateTimeRange: DateTimeRange;\n        Stats: Stats;\n    }\n\n    export interface GlobalMetrics {\n        GlobalMetric: GlobalMetric[];\n    }\n\n    export interface GetGlobalMetricsResponse {\n        Exceptions: Exceptions;\n        GlobalMetrics: GlobalMetrics;\n    }\n\n    export interface GetStatusServerInfo {\n        ServerName: string;\n        ServerType: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface GetStatusServerInfoResponse {\n        Exceptions: Exceptions;\n        StatusServerInfo: StatusServerInfo;\n    }\n\n    export interface GetThorQueueAvailability {\n\n    }\n\n    export interface ThorCluster {\n        ClusterName: string;\n        QueueName: string;\n        QueueStatus: string;\n        QueueAvailable: int;\n        JobsRunning: int;\n        JobsInQueue: int;\n        QueueStatus2: int;\n        ThorLCR: string;\n        ClusterSize: int;\n    }\n\n    export interface ThorClusters {\n        ThorCluster: ThorCluster[];\n    }\n\n    export interface GetThorQueueAvailabilityResponse {\n        Exceptions: Exceptions;\n        ThorClusters: ThorClusters;\n    }\n\n    export interface Index {\n\n    }\n\n    export interface SMCIndexResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface LockQuery {\n        EPIP: string;\n        XPath: string;\n        DurationMSLow: unsignedInt;\n        DurationMSHigh: unsignedInt;\n        TimeLockedLow: string;\n        TimeLockedHigh: string;\n        Mode: LockModes;\n        AllFileLocks: boolean;\n    }\n\n    export interface ModeNames {\n        Item: string[];\n    }\n\n    export interface Lock {\n        EPIP: string;\n        XPath: string;\n        LogicalFile: string;\n        SessionID: long;\n        DurationMS: unsignedInt;\n        TimeLocked: string;\n        Modes: string;\n        ModeNames: ModeNames;\n    }\n\n    export interface Locks {\n        Lock: Lock[];\n    }\n\n    export interface LockQueryResponse {\n        Exceptions: Exceptions;\n        Locks: Locks;\n        NumLocks: int;\n    }\n\n    export interface MoveJobBack {\n        ClusterType: int;\n        Cluster: string;\n        QueueName: string;\n        Wuid: string;\n    }\n\n    export interface SMCJobResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface MoveJobDown {\n        ClusterType: int;\n        Cluster: string;\n        QueueName: string;\n        Wuid: string;\n    }\n\n    export interface MoveJobFront {\n        ClusterType: int;\n        Cluster: string;\n        QueueName: string;\n        Wuid: string;\n    }\n\n    export interface MoveJobUp {\n        ClusterType: int;\n        Cluster: string;\n        QueueName: string;\n        Wuid: string;\n    }\n\n    export interface NotInCommunityEdition {\n        EEPortal: string;\n    }\n\n    export interface NotInCommunityEditionResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface PauseQueue {\n        Cluster: string;\n        QueueName: string;\n        Comment: string;\n        ServerType: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface Ping {\n\n    }\n\n    export interface WsSMCPingResponse {\n\n    }\n\n    export interface RecordGlobalMetrics {\n        Category: string;\n        Dimensions: Dimensions;\n        Stats: Stats;\n    }\n\n    export interface RecordGlobalMetricsResponse {\n        Exceptions: Exceptions;\n        Result: string;\n    }\n\n    export interface RemoveJob {\n        ClusterType: int;\n        Cluster: string;\n        QueueName: string;\n        Wuid: string;\n    }\n\n    export interface ResumeQueue {\n        Cluster: string;\n        QueueName: string;\n        Comment: string;\n        ServerType: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n    export interface RoxieControlCmd {\n        ProcessCluster: string;\n        TargetCluster: string;\n        Command: RoxieControlCmdType;\n        Wait: int;\n    }\n\n    export interface Endpoint {\n        Address: string;\n        Attached: boolean;\n        StateHash: string;\n        Status: string;\n        MemLocked: boolean;\n    }\n\n    export interface Endpoints {\n        Endpoint: Endpoint[];\n    }\n\n    export interface RoxieControlCmdResponse {\n        Exceptions: Exceptions;\n        Endpoints: Endpoints;\n    }\n\n    export interface QueryIds {\n        Item: string[];\n    }\n\n    export interface RoxieXrefCmd {\n        RoxieCluster: string;\n        QueryIds: QueryIds;\n        CheckAllNodes: boolean;\n        Wait: int;\n    }\n\n    export interface RoxieXrefCmdResponse {\n        Exceptions: Exceptions;\n        Result: string;\n    }\n\n    export interface SetBanner {\n        ChatURL: string;\n        BannerContent: string;\n        BannerColor: string;\n        BannerSize: string;\n        BannerScroll: string;\n        BannerAction: int;\n        EnableChatURL: boolean;\n        FromSubmitBtn: boolean;\n    }\n\n    export interface SetBannerResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface SMCJob {\n        Wuid: string;\n        QueueName: string;\n    }\n\n    export interface SMCJobs {\n        SMCJob: SMCJob[];\n    }\n\n    export interface SetJobPriority {\n        QueueName: string;\n        Wuid: string;\n        Priority: string;\n        SMCJobs: SMCJobs;\n    }\n\n    export interface SMCPriorityResponse {\n        Exceptions: Exceptions;\n    }\n\n    export interface StopQueue {\n        Cluster: string;\n        QueueName: string;\n        Comment: string;\n        ServerType: string;\n        NetworkAddress: string;\n        Port: int;\n    }\n\n}\n\nexport class SMCServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsSMC\", \"1.29\");\n    }\n\n    Activity(request: Partial<WsSMC.Activity>): Promise<WsSMC.ActivityResponse> {\n        return this._connection.send(\"Activity\", request, \"json\", false, undefined, \"ActivityResponse\");\n    }\n\n    BrowseResources(request: Partial<WsSMC.BrowseResources>): Promise<WsSMC.BrowseResourcesResponse> {\n        return this._connection.send(\"BrowseResources\", request, \"json\", false, undefined, \"BrowseResourcesResponse\");\n    }\n\n    ClearQueue(request: Partial<WsSMC.ClearQueue>): Promise<WsSMC.SMCQueueResponse> {\n        return this._connection.send(\"ClearQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n    }\n\n    GetBuildInfo(request: Partial<WsSMC.GetBuildInfo>): Promise<WsSMC.GetBuildInfoResponse> {\n        return this._connection.send(\"GetBuildInfo\", request, \"json\", false, undefined, \"GetBuildInfoResponse\");\n    }\n\n    GetGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<WsSMC.GetGlobalMetricsResponse> {\n        return this._connection.send(\"GetGlobalMetrics\", request, \"json\", false, undefined, \"GetGlobalMetricsResponse\");\n    }\n\n    GetStatusServerInfo(request: Partial<WsSMC.GetStatusServerInfo>): Promise<WsSMC.GetStatusServerInfoResponse> {\n        return this._connection.send(\"GetStatusServerInfo\", request, \"json\", false, undefined, \"GetStatusServerInfoResponse\");\n    }\n\n    GetThorQueueAvailability(request: Partial<WsSMC.GetThorQueueAvailability>): Promise<WsSMC.GetThorQueueAvailabilityResponse> {\n        return this._connection.send(\"GetThorQueueAvailability\", request, \"json\", false, undefined, \"GetThorQueueAvailabilityResponse\");\n    }\n\n    Index(request: Partial<WsSMC.Index>): Promise<WsSMC.SMCIndexResponse> {\n        return this._connection.send(\"Index\", request, \"json\", false, undefined, \"SMCIndexResponse\");\n    }\n\n    LockQuery(request: Partial<WsSMC.LockQuery>): Promise<WsSMC.LockQueryResponse> {\n        return this._connection.send(\"LockQuery\", request, \"json\", false, undefined, \"LockQueryResponse\");\n    }\n\n    MoveJobBack(request: Partial<WsSMC.MoveJobBack>): Promise<WsSMC.SMCJobResponse> {\n        return this._connection.send(\"MoveJobBack\", request, \"json\", false, undefined, \"SMCJobResponse\");\n    }\n\n    MoveJobDown(request: Partial<WsSMC.MoveJobDown>): Promise<WsSMC.SMCJobResponse> {\n        return this._connection.send(\"MoveJobDown\", request, \"json\", false, undefined, \"SMCJobResponse\");\n    }\n\n    MoveJobFront(request: Partial<WsSMC.MoveJobFront>): Promise<WsSMC.SMCJobResponse> {\n        return this._connection.send(\"MoveJobFront\", request, \"json\", false, undefined, \"SMCJobResponse\");\n    }\n\n    MoveJobUp(request: Partial<WsSMC.MoveJobUp>): Promise<WsSMC.SMCJobResponse> {\n        return this._connection.send(\"MoveJobUp\", request, \"json\", false, undefined, \"SMCJobResponse\");\n    }\n\n    NotInCommunityEdition(request: Partial<WsSMC.NotInCommunityEdition>): Promise<WsSMC.NotInCommunityEditionResponse> {\n        return this._connection.send(\"NotInCommunityEdition\", request, \"json\", false, undefined, \"NotInCommunityEditionResponse\");\n    }\n\n    PauseQueue(request: Partial<WsSMC.PauseQueue>): Promise<WsSMC.SMCQueueResponse> {\n        return this._connection.send(\"PauseQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n    }\n\n    Ping(request: Partial<WsSMC.Ping>): Promise<WsSMC.WsSMCPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, undefined, \"WsSMCPingResponse\");\n    }\n\n    RecordGlobalMetrics(request: Partial<WsSMC.RecordGlobalMetrics>): Promise<WsSMC.RecordGlobalMetricsResponse> {\n        return this._connection.send(\"RecordGlobalMetrics\", request, \"json\", false, undefined, \"RecordGlobalMetricsResponse\");\n    }\n\n    RemoveJob(request: Partial<WsSMC.RemoveJob>): Promise<WsSMC.SMCJobResponse> {\n        return this._connection.send(\"RemoveJob\", request, \"json\", false, undefined, \"SMCJobResponse\");\n    }\n\n    ResumeQueue(request: Partial<WsSMC.ResumeQueue>): Promise<WsSMC.SMCQueueResponse> {\n        return this._connection.send(\"ResumeQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n    }\n\n    RoxieControlCmd(request: Partial<WsSMC.RoxieControlCmd>): Promise<WsSMC.RoxieControlCmdResponse> {\n        return this._connection.send(\"RoxieControlCmd\", request, \"json\", false, undefined, \"RoxieControlCmdResponse\");\n    }\n\n    RoxieXrefCmd(request: Partial<WsSMC.RoxieXrefCmd>): Promise<WsSMC.RoxieXrefCmdResponse> {\n        return this._connection.send(\"RoxieXrefCmd\", request, \"json\", false, undefined, \"RoxieXrefCmdResponse\");\n    }\n\n    SetBanner(request: Partial<WsSMC.SetBanner>): Promise<WsSMC.SetBannerResponse> {\n        return this._connection.send(\"SetBanner\", request, \"json\", false, undefined, \"SetBannerResponse\");\n    }\n\n    SetJobPriority(request: Partial<WsSMC.SetJobPriority>): Promise<WsSMC.SMCPriorityResponse> {\n        return this._connection.send(\"SetJobPriority\", request, \"json\", false, undefined, \"SMCPriorityResponse\");\n    }\n\n    StopQueue(request: Partial<WsSMC.StopQueue>): Promise<WsSMC.SMCQueueResponse> {\n        return this._connection.send(\"StopQueue\", request, \"json\", false, undefined, \"SMCQueueResponse\");\n    }\n\n}\n","import { timeParse } from \"d3-time-format\";\nimport { SMCServiceBase, WsSMC } from \"./wsdl/WsSMC/v1.29/WsSMC.ts\";\nimport { IOptions } from \"../connection.ts\";\n\nexport {\n    WsSMC\n};\n\nconst dateParser = timeParse(\"%Y%m%d%H\");\n\nfunction isNumeric(value: any): boolean {\n    return typeof value === \"number\" || (typeof value === \"string\" && value.trim() !== \"\" && !isNaN(+value));\n}\n\nexport interface NormalisedGlobalMetric {\n    Category: string;\n    Start: Date;\n    End: Date;\n    dimensions: { [key: string]: any };\n    stats: { [key: string]: any };\n}\n\nexport class SMCService extends SMCServiceBase {\n\n    connectionOptions(): IOptions {\n        return this._connection.opts();\n    }\n\n    Activity(request: WsSMC.Activity): Promise<WsSMC.ActivityResponse> {\n        return super.Activity(request).then(response => {\n            return {\n                Running: {\n                    ActiveWorkunit: []\n                },\n                ...response\n            };\n        });\n    }\n\n    protected parseGlobalMetric(name: string, value: any): any {\n        // Known Prefixes:  Cost, Critical, Definition, Disk, Distribute, Ecl, Enum, Id, Interface, Is, Library, Load, Match, Meta, Num, Original, Output, Patch, Per, Persist, Predicted, Record, Section, Service, Signed, Size, Source, Spill, Target, Time, Updated, When\n        if (name.startsWith(\"Cost\")) {\n            return +value / 1000000;\n        } else if (name.startsWith(\"Date\")) {\n            return dateParser(value);\n        } else if (name.startsWith(\"Num\")) {\n            return +value;\n        } else if (name.startsWith(\"Time\")) {\n            return +value / 1000000000;\n        } else if (name.startsWith(\"When\")) {\n            return new Date(+value / 1000).toISOString();\n        } else if (isNumeric(value)) {\n            return +value;\n        }\n        return value;\n    }\n\n    GetNormalisedGlobalMetrics(request: Partial<WsSMC.GetGlobalMetrics>): Promise<NormalisedGlobalMetric[]> {\n        return super.GetGlobalMetrics(request).then(response => {\n            const retVal: NormalisedGlobalMetric[] = [];\n            for (const metric of response?.GlobalMetrics?.GlobalMetric || []) {\n                const row: NormalisedGlobalMetric = {\n                    Category: metric.Category,\n                    Start: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.Start),\n                    End: this.parseGlobalMetric(\"Date\", metric.DateTimeRange?.End),\n                    dimensions: {},\n                    stats: {}\n                };\n                for (const dimension of metric.Dimensions?.Dimension || []) {\n                    row.dimensions[dimension.Name] = dimension.Value;\n                }\n                for (const stat of metric.Stats?.Stat || []) {\n                    row.stats[stat.Name] = this.parseGlobalMetric(stat.Name, stat.Value);\n                }\n                retVal.push(row);\n            }\n            return retVal;\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace Wsstore {\n\n    export type int = number;\n\n    export interface CreateStoreRequest {\n        Name?: string;\n        Type?: string;\n        Description?: string;\n        MaxValueSize?: int;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface CreateStoreResponse {\n        Exceptions?: Exceptions;\n        Name?: string;\n        Type?: string;\n        Description?: string;\n        Owner?: string;\n        Success?: boolean;\n    }\n\n    export interface DeleteRequest {\n        StoreName?: string;\n        Namespace?: string;\n        Key?: string;\n        UserSpecific?: boolean;\n        TargetUser?: string;\n    }\n\n    export interface DeleteResponse {\n        Exceptions?: Exceptions;\n        Success?: boolean;\n    }\n\n    export interface DeleteNamespaceRequest {\n        StoreName?: string;\n        Namespace?: string;\n        UserSpecific?: boolean;\n        TargetUser?: string;\n    }\n\n    export interface DeleteNamespaceResponse {\n        Exceptions?: Exceptions;\n        Success?: boolean;\n    }\n\n    export interface FetchRequest {\n        StoreName?: string;\n        Namespace?: string;\n        Key?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface FetchResponse {\n        Exceptions?: Exceptions;\n        Value?: string;\n    }\n\n    export interface FetchAllRequest {\n        StoreName?: string;\n        Namespace?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface Pair {\n        Key?: string;\n        Value?: string;\n    }\n\n    export interface Pairs {\n        Pair?: Pair[];\n    }\n\n    export interface FetchAllResponse {\n        Exceptions?: Exceptions;\n        Namespace?: string;\n        Pairs?: Pairs;\n    }\n\n    export interface FetchKeyMDRequest {\n        StoreName?: string;\n        Namespace?: string;\n        Key?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface FetchKeyMDResponse {\n        Exceptions?: Exceptions;\n        StoreName?: string;\n        Namespace?: string;\n        Key?: string;\n        Pairs?: Pairs;\n    }\n\n    export interface ListKeysRequest {\n        StoreName?: string;\n        Namespace?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface KeySet {\n        Key?: string[];\n    }\n\n    export interface ListKeysResponse {\n        Exceptions?: Exceptions;\n        StoreName?: string;\n        Namespace?: string;\n        KeySet?: KeySet;\n    }\n\n    export interface ListNamespacesRequest {\n        StoreName?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface Namespaces {\n        Namespace?: string[];\n    }\n\n    export interface ListNamespacesResponse {\n        Exceptions?: Exceptions;\n        StoreName?: string;\n        Namespaces?: Namespaces;\n    }\n\n    export interface ListStoresRequest {\n        NameFilter?: string;\n        TypeFilter?: string;\n        OwnerFilter?: string;\n    }\n\n    export interface Store {\n        Name?: string;\n        Type?: string;\n        Description?: string;\n        Owner?: string;\n        CreateTime?: string;\n        MaxValSize?: string;\n        IsDefault?: boolean;\n    }\n\n    export interface Stores {\n        Store?: Store[];\n    }\n\n    export interface ListStoresResponse {\n        Exceptions?: Exceptions;\n        Stores?: Stores;\n    }\n\n    export interface wsstorePingRequest {\n\n    }\n\n    export interface wsstorePingResponse {\n\n    }\n\n    export interface SetRequest {\n        StoreName?: string;\n        Namespace?: string;\n        Key?: string;\n        Value?: string;\n        UserSpecific?: boolean;\n    }\n\n    export interface SetResponse {\n        Exceptions?: Exceptions;\n        Success?: boolean;\n    }\n\n}\n\nexport class storeServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"wsstore\", \"1.02\");\n    }\n\n    CreateStore(request: Wsstore.CreateStoreRequest, abortSignal?: AbortSignal): Promise<Wsstore.CreateStoreResponse> {\n        return this._connection.send(\"CreateStore\", request, \"json\", false, abortSignal, \"CreateStoreResponse\");\n    }\n\n    Delete(request: Wsstore.DeleteRequest, abortSignal?: AbortSignal): Promise<Wsstore.DeleteResponse> {\n        return this._connection.send(\"Delete\", request, \"json\", false, abortSignal, \"DeleteResponse\");\n    }\n\n    DeleteNamespace(request: Wsstore.DeleteNamespaceRequest, abortSignal?: AbortSignal): Promise<Wsstore.DeleteNamespaceResponse> {\n        return this._connection.send(\"DeleteNamespace\", request, \"json\", false, abortSignal, \"DeleteNamespaceResponse\");\n    }\n\n    Fetch(request: Wsstore.FetchRequest, abortSignal?: AbortSignal): Promise<Wsstore.FetchResponse> {\n        return this._connection.send(\"Fetch\", request, \"json\", false, abortSignal, \"FetchResponse\");\n    }\n\n    FetchAll(request: Wsstore.FetchAllRequest, abortSignal?: AbortSignal): Promise<Wsstore.FetchAllResponse> {\n        return this._connection.send(\"FetchAll\", request, \"json\", false, abortSignal, \"FetchAllResponse\");\n    }\n\n    FetchKeyMetadata(request: Wsstore.FetchKeyMDRequest, abortSignal?: AbortSignal): Promise<Wsstore.FetchKeyMDResponse> {\n        return this._connection.send(\"FetchKeyMetadata\", request, \"json\", false, abortSignal, \"FetchKeyMDResponse\");\n    }\n\n    ListKeys(request: Wsstore.ListKeysRequest, abortSignal?: AbortSignal): Promise<Wsstore.ListKeysResponse> {\n        return this._connection.send(\"ListKeys\", request, \"json\", false, abortSignal, \"ListKeysResponse\");\n    }\n\n    ListNamespaces(request: Wsstore.ListNamespacesRequest, abortSignal?: AbortSignal): Promise<Wsstore.ListNamespacesResponse> {\n        return this._connection.send(\"ListNamespaces\", request, \"json\", false, abortSignal, \"ListNamespacesResponse\");\n    }\n\n    ListStores(request: Wsstore.ListStoresRequest, abortSignal?: AbortSignal): Promise<Wsstore.ListStoresResponse> {\n        return this._connection.send(\"ListStores\", request, \"json\", false, abortSignal, \"ListStoresResponse\");\n    }\n\n    Ping(request: Wsstore.wsstorePingRequest, abortSignal?: AbortSignal): Promise<Wsstore.wsstorePingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"wsstorePingResponse\");\n    }\n\n    Set(request: Wsstore.SetRequest, abortSignal?: AbortSignal): Promise<Wsstore.SetResponse> {\n        return this._connection.send(\"Set\", request, \"json\", false, abortSignal, \"SetResponse\");\n    }\n\n}\n","import { storeServiceBase as StoreServiceBase, Wsstore as WsStore } from \"./wsdl/wsstore/v1.02/wsstore.ts\";\n\nexport { type WsStore };\n\nexport class StoreService extends StoreServiceBase {\n\n    Delete(request: Partial<WsStore.DeleteRequest>): Promise<WsStore.DeleteResponse> {\n        return super.Delete(request).catch(e => {\n            if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\n                //  \"Delete\" item does not exist  ---\n                return {\n                    Exceptions: undefined,\n                    Success: true\n                } as WsStore.DeleteResponse;\n            }\n            throw e;\n        });\n    }\n\n    Fetch(request: Partial<WsStore.FetchRequest>): Promise<WsStore.FetchResponse> {\n        return super.Fetch(request).catch(e => {\n            if (e.isESPExceptions && e.Exception.some(e => e.Code === -1)) {\n                //  \"Fetch\" item does not exist  ---\n                return {\n                    Exceptions: undefined,\n                    Value: undefined\n                } as WsStore.FetchResponse;\n            }\n            throw e;\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsTopology {\n\n    export type int = number;\n    export type base64Binary = string;\n    export type unsignedInt = number;\n    export type long = number;\n\n    export enum TpConfigResponseFormat {\n        XML = \"XML\",\n        YAML = \"YAML\"\n    }\n\n    export enum RoxieQueueFilter {\n        All = \"All\",\n        QueriesOnly = \"QueriesOnly\",\n        WorkunitsOnly = \"WorkunitsOnly\"\n    }\n\n    export enum TpMachineType {\n        ALLNODES = \"ALLNODES\",\n        THORMACHINES = \"THORMACHINES\",\n        HOLEMACHINES = \"HOLEMACHINES\",\n        ROXIEMACHINES = \"ROXIEMACHINES\",\n        MACHINES = \"MACHINES\",\n        AVAILABLEMACHINES = \"AVAILABLEMACHINES\",\n        DROPZONE = \"DROPZONE\",\n        STANDBYNNODE = \"STANDBYNNODE\",\n        THORSPARENODES = \"THORSPARENODES\",\n        HOLESTANDBYNODES = \"HOLESTANDBYNODES\"\n    }\n\n    export interface WsTopologyPingRequest {\n\n    }\n\n    export interface WsTopologyPingResponse {\n\n    }\n\n    export interface SystemLogRequest {\n        Name?: string;\n        Type?: string;\n        Zip?: int;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface SystemLogResponse {\n        Exceptions?: Exceptions;\n        thefile?: base64Binary;\n    }\n\n    export interface TpClusterInfoRequest {\n        Name?: string;\n    }\n\n    export interface TpQueue {\n        Name?: string;\n        WorkUnit?: string;\n    }\n\n    export interface TpQueues {\n        TpQueue?: TpQueue[];\n    }\n\n    export interface TpClusterInfoResponse {\n        Exceptions?: Exceptions;\n        Name?: string;\n        WorkUnit?: string;\n        TpQueues?: TpQueues;\n    }\n\n    export interface TpClusterQueryRequest {\n        Type?: string;\n    }\n\n    export interface TpMachine {\n        Name?: string;\n        Netaddress?: string;\n        ConfigNetaddress?: string;\n        Domain?: string;\n        Directory?: string;\n        Type?: string;\n        Available?: string;\n        OS?: int;\n        Path?: string;\n        Port?: int;\n        ProcessNumber?: int;\n        Channels?: unsignedInt;\n    }\n\n    export interface TpMachines {\n        TpMachine?: TpMachine[];\n    }\n\n    export interface TpCluster {\n        Type?: string;\n        Name?: string;\n        QueueName?: string;\n        Build?: string;\n        Directory?: string;\n        LogDirectory?: string;\n        Desc?: string;\n        Path?: string;\n        DataModel?: string;\n        OS?: int;\n        HasThorSpareProcess?: boolean;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpClusters {\n        TpCluster?: TpCluster[];\n    }\n\n    export interface TpClusterQueryResponse {\n        Exceptions?: Exceptions;\n        EnableSNMP?: boolean;\n        AcceptLanguage?: string;\n        TpClusters?: TpClusters;\n    }\n\n    export interface ComponentNames {\n        Item?: string[];\n    }\n\n    export interface TpComponentConfigurationRequest {\n        ComponentNames?: ComponentNames;\n    }\n\n    export interface Result {\n        ComponentName?: string;\n        Configuration?: string;\n    }\n\n    export interface Results {\n        Result?: Result[];\n    }\n\n    export interface TpComponentConfigurationResponse {\n        Exceptions?: Exceptions;\n        ConfigFormat?: TpConfigResponseFormat;\n        Results?: Results;\n    }\n\n    export interface TpConfiguredComponentsRequest {\n\n    }\n\n    export interface ConfiguredComponents {\n        Item?: string[];\n    }\n\n    export interface TpConfiguredComponentsResponse {\n        Exceptions?: Exceptions;\n        ConfiguredComponents?: ConfiguredComponents;\n    }\n\n    export interface TpDropZoneQueryRequest {\n        Name?: string;\n        ECLWatchVisibleOnly?: boolean;\n    }\n\n    export interface TpDropZone {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        ECLWatchVisible?: boolean;\n        UMask?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpDropZones {\n        TpDropZone?: TpDropZone[];\n    }\n\n    export interface TpDropZoneQueryResponse {\n        Exceptions?: Exceptions;\n        TpDropZones?: TpDropZones;\n    }\n\n    export interface TpGetComponentFileRequest {\n        CompType?: string;\n        CompName?: string;\n        NetAddress?: string;\n        Directory?: string;\n        FileType?: string;\n        OsType?: int;\n        PlainText?: string;\n    }\n\n    export interface TpGetComponentFileResponse {\n        Exceptions?: Exceptions;\n        FileContents?: base64Binary;\n    }\n\n    export interface TpGetServicePluginsRequest {\n\n    }\n\n    export interface Plugin {\n        ShortName?: string;\n        LongName?: string;\n        FolderName?: string;\n        WidgetName?: string;\n    }\n\n    export interface Plugins {\n        Plugin?: Plugin[];\n    }\n\n    export interface TpGetServicePluginsResponse {\n        Exceptions?: Exceptions;\n        Plugins?: Plugins;\n    }\n\n    export interface TpGroupQueryRequest {\n        Kind?: string;\n    }\n\n    export interface TpGroup {\n        Name?: string;\n        Kind?: string;\n        ReplicateOutputs?: boolean;\n    }\n\n    export interface TpGroups {\n        TpGroup?: TpGroup[];\n    }\n\n    export interface TpGroupQueryResponse {\n        Exceptions?: Exceptions;\n        TpGroups?: TpGroups;\n    }\n\n    export interface TpListLogFilesRequest {\n        NetworkAddress?: string;\n        Path?: string;\n    }\n\n    export interface LogFileStruct {\n        Name?: string;\n        Path?: string;\n        Host?: string;\n        IsDir?: boolean;\n        FileSize?: long;\n        Modifiedtime?: string;\n    }\n\n    export interface Files {\n        LogFileStruct?: LogFileStruct[];\n    }\n\n    export interface TpListLogFilesResponse {\n        Exceptions?: Exceptions;\n        Files?: Files;\n    }\n\n    export interface TpListTargetClustersRequest {\n\n    }\n\n    export interface TpClusterNameType {\n        Name?: string;\n        Type?: string;\n        IsDefault?: boolean;\n    }\n\n    export interface TargetClusters {\n        TpClusterNameType?: TpClusterNameType[];\n    }\n\n    export interface TpListTargetClustersResponse {\n        Exceptions?: Exceptions;\n        TargetClusters?: TargetClusters;\n    }\n\n    export interface TpLogFileRequest {\n        Name?: string;\n        Type?: string;\n        LastHours?: int;\n        StartDate?: string;\n        EndDate?: string;\n        FirstRows?: int;\n        LastRows?: int;\n        FilterType?: int;\n        Reversely?: boolean;\n        Zip?: boolean;\n        PageNumber?: int;\n        LoadData?: boolean;\n        IncludeLogFieldNames?: boolean;\n    }\n\n    export interface LogFieldNames {\n        Item?: string[];\n    }\n\n    export interface TpLogFileResponse {\n        Exceptions?: Exceptions;\n        Name?: string;\n        Type?: string;\n        StartDate?: string;\n        EndDate?: string;\n        LastHours?: int;\n        FirstRows?: int;\n        LastRows?: int;\n        Reversely?: boolean;\n        Zip?: boolean;\n        FilterType?: int;\n        LogData?: string;\n        HasDate?: boolean;\n        FileSize?: long;\n        PageFrom?: long;\n        PageTo?: long;\n        PageNumber?: int;\n        PrevPage?: int;\n        NextPage?: int;\n        TotalPages?: int;\n        AcceptLanguage?: string;\n        LogFieldNames?: LogFieldNames;\n    }\n\n    export interface TpLogicalClusterQueryRequest {\n        EclServerQueue?: string;\n        RoxieQueueFilter?: RoxieQueueFilter;\n    }\n\n    export interface TpLogicalCluster {\n        Name?: string;\n        Queue?: string;\n        LanguageVersion?: string;\n        Process?: string;\n        Type?: string;\n        QueriesOnly?: boolean;\n    }\n\n    export interface TpLogicalClusters {\n        TpLogicalCluster?: TpLogicalCluster[];\n    }\n\n    export interface TpLogicalClusterQueryResponse {\n        Exceptions?: Exceptions;\n        TpLogicalClusters?: TpLogicalClusters;\n    }\n\n    export interface TpMachineInfoRequest {\n        Name?: string;\n        NetAddress?: string;\n    }\n\n    export interface MachineInfo {\n        Name?: string;\n        Netaddress?: string;\n        ConfigNetaddress?: string;\n        Domain?: string;\n        Directory?: string;\n        Type?: string;\n        Available?: string;\n        OS?: int;\n        Path?: string;\n        Port?: int;\n        ProcessNumber?: int;\n        Channels?: unsignedInt;\n    }\n\n    export interface TpMachineInfoResponse {\n        Exceptions?: Exceptions;\n        MachineInfo?: MachineInfo;\n    }\n\n    export interface TpMachineQueryRequest {\n        Type?: TpMachineType;\n        Cluster?: string;\n        OldIP?: string;\n        Path?: string;\n        Directory?: string;\n        LogDirectory?: string;\n    }\n\n    export interface TpMachineQueryResponse {\n        Exceptions?: Exceptions;\n        EnablePreflightInfo?: boolean;\n        HasThorSpareProcess?: boolean;\n        Type?: TpMachineType;\n        Cluster?: string;\n        OldIP?: string;\n        LogDirectory?: string;\n        Path?: string;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        MemThresholdType?: string;\n        DiskThresholdType?: string;\n        PreflightProcessFilter?: string;\n        EnableSNMP?: boolean;\n        AcceptLanguage?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpServiceQueryRequest {\n        Type?: string;\n    }\n\n    export interface TpDali {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        BackupComputer?: string;\n        BackupDirectory?: string;\n        Type?: string;\n        Path?: string;\n        LogDirectory?: string;\n        AuditLogDirectory?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpDalis {\n        TpDali?: TpDali[];\n    }\n\n    export interface TpDfuServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Queue?: string;\n        Type?: string;\n        Path?: string;\n        LogDirectory?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpDfuServers {\n        TpDfuServer?: TpDfuServer[];\n    }\n\n    export interface TpDkcSlave {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpDkcSlaves {\n        TpDkcSlave?: TpDkcSlave[];\n    }\n\n    export interface TpEclAgent {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Type?: string;\n        Path?: string;\n        DaliServer?: string;\n        LogDir?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpEclAgents {\n        TpEclAgent?: TpEclAgent[];\n    }\n\n    export interface TpEclServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        LogDirectory?: string;\n        Type?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpEclServers {\n        TpEclServer?: TpEclServer[];\n    }\n\n    export interface TpEclCCServers {\n        TpEclServer?: TpEclServer[];\n    }\n\n    export interface TpEclScheduler {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        LogDirectory?: string;\n        Type?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpEclSchedulers {\n        TpEclScheduler?: TpEclScheduler[];\n    }\n\n    export interface TpBinding {\n        Name?: string;\n        Service?: string;\n        ServiceType?: string;\n        BindingType?: string;\n        ServiceBuildSet?: string;\n        Port?: string;\n        Protocol?: string;\n    }\n\n    export interface TpBindings {\n        TpBinding?: TpBinding[];\n    }\n\n    export interface TpEspServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Type?: string;\n        Path?: string;\n        LogDirectory?: string;\n        TpMachines?: TpMachines;\n        TpBindings?: TpBindings;\n    }\n\n    export interface TpEspServers {\n        TpEspServer?: TpEspServer[];\n    }\n\n    export interface TpFTSlave {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpFTSlaves {\n        TpFTSlave?: TpFTSlave[];\n    }\n\n    export interface TpGenesisServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpGenesisServers {\n        TpGenesisServer?: TpGenesisServer[];\n    }\n\n    export interface TpLdapServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpLdapServers {\n        TpLdapServer?: TpLdapServer[];\n    }\n\n    export interface TpMySqlServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpMySqlServers {\n        TpMySqlServer?: TpMySqlServer[];\n    }\n\n    export interface TpSashaServer {\n        Name?: string;\n        Description?: string;\n        Build?: string;\n        Path?: string;\n        LogDirectory?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpSashaServers {\n        TpSashaServer?: TpSashaServer[];\n    }\n\n    export interface TpSparkThor {\n        Name?: string;\n        Build?: string;\n        ThorClusterName?: string;\n        ThorPath?: string;\n        SparkExecutorCores?: unsignedInt;\n        SparkExecutorMemory?: long;\n        SparkMasterPort?: unsignedInt;\n        SparkMasterWebUIPort?: unsignedInt;\n        SparkWorkerCores?: unsignedInt;\n        SparkWorkerMemory?: long;\n        SparkWorkerPort?: unsignedInt;\n        LogDirectory?: string;\n        Path?: string;\n        TpMachines?: TpMachines;\n    }\n\n    export interface TpSparkThors {\n        TpSparkThor?: TpSparkThor[];\n    }\n\n    export interface ServiceList {\n        TpDalis?: TpDalis;\n        TpDfuServers?: TpDfuServers;\n        TpDkcSlaves?: TpDkcSlaves;\n        TpDropZones?: TpDropZones;\n        TpEclAgents?: TpEclAgents;\n        TpEclServers?: TpEclServers;\n        TpEclCCServers?: TpEclCCServers;\n        TpEclSchedulers?: TpEclSchedulers;\n        TpEspServers?: TpEspServers;\n        TpFTSlaves?: TpFTSlaves;\n        TpGenesisServers?: TpGenesisServers;\n        TpLdapServers?: TpLdapServers;\n        TpMySqlServers?: TpMySqlServers;\n        TpSashaServers?: TpSashaServers;\n        TpSparkThors?: TpSparkThors;\n    }\n\n    export interface TpServiceQueryResponse {\n        Exceptions?: Exceptions;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        EncapsulatedSystem?: boolean;\n        EnableSNMP?: boolean;\n        PreflightProcessFilter?: string;\n        AcceptLanguage?: string;\n        MemThresholdType?: string;\n        DiskThresholdType?: string;\n        ServiceList?: ServiceList;\n    }\n\n    export interface TpSetMachineStatusRequest {\n        MachinePath?: string;\n        StatusValue?: string;\n    }\n\n    export interface TpSetMachineStatusResponse {\n        Exceptions?: Exceptions;\n        TpSetMachineStatusResult?: boolean;\n    }\n\n    export interface TpSwapNodeRequest {\n        Cluster?: string;\n        OldIP?: string;\n        NewIP?: string;\n    }\n\n    export interface TpSwapNodeResponse {\n        Exceptions?: Exceptions;\n        TpSwapNodeResult?: boolean;\n    }\n\n    export interface TpTargetClusterQueryRequest {\n        Type?: string;\n        Name?: string;\n        ShowDetails?: boolean;\n    }\n\n    export interface TpTargetCluster {\n        Name?: string;\n        Prefix?: string;\n        Type?: string;\n        TpClusters?: TpClusters;\n        TpEclCCServers?: TpEclCCServers;\n        TpEclServers?: TpEclServers;\n        TpEclAgents?: TpEclAgents;\n        TpEclSchedulers?: TpEclSchedulers;\n    }\n\n    export interface TpTargetClusters {\n        TpTargetCluster?: TpTargetCluster[];\n    }\n\n    export interface TpTargetClusterQueryResponse {\n        Exceptions?: Exceptions;\n        ShowDetails?: boolean;\n        MemThreshold?: int;\n        DiskThreshold?: int;\n        CpuThreshold?: int;\n        MemThresholdType?: string;\n        DiskThresholdType?: string;\n        PreflightProcessFilter?: string;\n        AcceptLanguage?: string;\n        TpTargetClusters?: TpTargetClusters;\n    }\n\n    export interface TpThorStatusRequest {\n        Name?: string;\n    }\n\n    export interface TpThorStatusResponse {\n        Exceptions?: Exceptions;\n        Name?: string;\n        Queue?: string;\n        Group?: string;\n        ThorMasterIPAddress?: string;\n        Port?: int;\n        StartTime?: string;\n        LogFile?: string;\n        Wuid?: string;\n        Graph?: string;\n        SubGraph?: int;\n        SubGraphDuration?: int;\n        AutoRefresh?: int;\n    }\n\n    export interface TpXMLFileRequest {\n        Name?: string;\n    }\n\n    export interface TpXMLFileResponse {\n        Exceptions?: Exceptions;\n        thefile?: base64Binary;\n    }\n\n}\n\nexport class TopologyServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsTopology\", \"1.33\");\n    }\n\n    Ping(request: WsTopology.WsTopologyPingRequest, abortSignal?: AbortSignal): Promise<WsTopology.WsTopologyPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WsTopologyPingResponse\");\n    }\n\n    SystemLog(request: WsTopology.SystemLogRequest, abortSignal?: AbortSignal): Promise<WsTopology.SystemLogResponse> {\n        return this._connection.send(\"SystemLog\", request, \"json\", false, abortSignal, \"SystemLogResponse\");\n    }\n\n    TpClusterInfo(request: WsTopology.TpClusterInfoRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpClusterInfoResponse> {\n        return this._connection.send(\"TpClusterInfo\", request, \"json\", false, abortSignal, \"TpClusterInfoResponse\");\n    }\n\n    TpClusterQuery(request: WsTopology.TpClusterQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpClusterQueryResponse> {\n        return this._connection.send(\"TpClusterQuery\", request, \"json\", false, abortSignal, \"TpClusterQueryResponse\");\n    }\n\n    TpComponentConfiguration(request: WsTopology.TpComponentConfigurationRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpComponentConfigurationResponse> {\n        return this._connection.send(\"TpComponentConfiguration\", request, \"json\", false, abortSignal, \"TpComponentConfigurationResponse\");\n    }\n\n    TpConfiguredComponents(request: WsTopology.TpConfiguredComponentsRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpConfiguredComponentsResponse> {\n        return this._connection.send(\"TpConfiguredComponents\", request, \"json\", false, abortSignal, \"TpConfiguredComponentsResponse\");\n    }\n\n    TpDropZoneQuery(request: WsTopology.TpDropZoneQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpDropZoneQueryResponse> {\n        return this._connection.send(\"TpDropZoneQuery\", request, \"json\", false, abortSignal, \"TpDropZoneQueryResponse\");\n    }\n\n    TpGetComponentFile(request: WsTopology.TpGetComponentFileRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpGetComponentFileResponse> {\n        return this._connection.send(\"TpGetComponentFile\", request, \"json\", false, abortSignal, \"TpGetComponentFileResponse\");\n    }\n\n    TpGetServicePlugins(request: WsTopology.TpGetServicePluginsRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpGetServicePluginsResponse> {\n        return this._connection.send(\"TpGetServicePlugins\", request, \"json\", false, abortSignal, \"TpGetServicePluginsResponse\");\n    }\n\n    TpGroupQuery(request: WsTopology.TpGroupQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpGroupQueryResponse> {\n        return this._connection.send(\"TpGroupQuery\", request, \"json\", false, abortSignal, \"TpGroupQueryResponse\");\n    }\n\n    TpListLogFiles(request: WsTopology.TpListLogFilesRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpListLogFilesResponse> {\n        return this._connection.send(\"TpListLogFiles\", request, \"json\", false, abortSignal, \"TpListLogFilesResponse\");\n    }\n\n    TpListTargetClusters(request: WsTopology.TpListTargetClustersRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpListTargetClustersResponse> {\n        return this._connection.send(\"TpListTargetClusters\", request, \"json\", false, abortSignal, \"TpListTargetClustersResponse\");\n    }\n\n    TpLogFile(request: WsTopology.TpLogFileRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpLogFileResponse> {\n        return this._connection.send(\"TpLogFile\", request, \"json\", false, abortSignal, \"TpLogFileResponse\");\n    }\n\n    TpLogFileDisplay(request: WsTopology.TpLogFileRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpLogFileResponse> {\n        return this._connection.send(\"TpLogFileDisplay\", request, \"json\", false, abortSignal, \"TpLogFileResponse\");\n    }\n\n    TpLogicalClusterQuery(request: WsTopology.TpLogicalClusterQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpLogicalClusterQueryResponse> {\n        return this._connection.send(\"TpLogicalClusterQuery\", request, \"json\", false, abortSignal, \"TpLogicalClusterQueryResponse\");\n    }\n\n    TpMachineInfo(request: WsTopology.TpMachineInfoRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpMachineInfoResponse> {\n        return this._connection.send(\"TpMachineInfo\", request, \"json\", false, abortSignal, \"TpMachineInfoResponse\");\n    }\n\n    TpMachineQuery(request: WsTopology.TpMachineQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpMachineQueryResponse> {\n        return this._connection.send(\"TpMachineQuery\", request, \"json\", false, abortSignal, \"TpMachineQueryResponse\");\n    }\n\n    TpServiceQuery(request: WsTopology.TpServiceQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpServiceQueryResponse> {\n        return this._connection.send(\"TpServiceQuery\", request, \"json\", false, abortSignal, \"TpServiceQueryResponse\");\n    }\n\n    TpSetMachineStatus(request: WsTopology.TpSetMachineStatusRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpSetMachineStatusResponse> {\n        return this._connection.send(\"TpSetMachineStatus\", request, \"json\", false, abortSignal, \"TpSetMachineStatusResponse\");\n    }\n\n    TpSwapNode(request: WsTopology.TpSwapNodeRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpSwapNodeResponse> {\n        return this._connection.send(\"TpSwapNode\", request, \"json\", false, abortSignal, \"TpSwapNodeResponse\");\n    }\n\n    TpTargetClusterQuery(request: WsTopology.TpTargetClusterQueryRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpTargetClusterQueryResponse> {\n        return this._connection.send(\"TpTargetClusterQuery\", request, \"json\", false, abortSignal, \"TpTargetClusterQueryResponse\");\n    }\n\n    TpThorStatus(request: WsTopology.TpThorStatusRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpThorStatusResponse> {\n        return this._connection.send(\"TpThorStatus\", request, \"json\", false, abortSignal, \"TpThorStatusResponse\");\n    }\n\n    TpXMLFile(request: WsTopology.TpXMLFileRequest, abortSignal?: AbortSignal): Promise<WsTopology.TpXMLFileResponse> {\n        return this._connection.send(\"TpXMLFile\", request, \"json\", false, abortSignal, \"TpXMLFileResponse\");\n    }\n\n}\n","import { IOptions } from \"../connection.ts\";\nimport { TopologyServiceBase, WsTopology } from \"./wsdl/WsTopology/v1.33/WsTopology.ts\";\n\nexport {\n    WsTopology\n};\n\nexport class TopologyService extends TopologyServiceBase {\n\n    connectionOptions(): IOptions {\n        return this._connection.opts();\n    }\n\n    protocol(): string {\n        const parts = this._connection.opts().baseUrl.split(\"//\");\n        return parts[0];\n    }\n\n    ip(): string {\n        const parts = this._connection.opts().baseUrl.split(\"//\");\n        const parts2 = parts[1].split(\":\");\n        return parts2[0];\n    }\n\n    DefaultTpLogicalClusterQuery(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster> {\n        return this.TpLogicalClusterQuery(request).then((response) => {\n            if ((response as any).default) {\n                return (response as any).default;\n            }\n            let firstHThor;\n            let first;\n            response.TpLogicalClusters.TpLogicalCluster.some((item, idx) => {\n                if (idx === 0) {\n                    first = item;\n                }\n                if (item.Type === \"hthor\") {\n                    firstHThor = item;\n                    return true;\n                }\n                return false;\n            });\n            return firstHThor || first;\n        });\n    }\n}\n","import { IConnection, IOptions } from \"../../../../connection.ts\";\nimport { Service } from \"../../../../espConnection.ts\";\n\nexport namespace WsWorkunits {\n\n    export type int = number;\n    export type double = number;\n    export type long = number;\n    export type nonNegativeInteger = number;\n    export type uint64 = number;\n    export type unsignedInt = number;\n    export type base64Binary = string;\n    export type dateTime = string;\n    export type integer = number;\n\n    export enum ECLWUActions {\n        Abort = \"Abort\",\n        Delete = \"Delete\",\n        Deschedule = \"Deschedule\",\n        Reschedule = \"Reschedule\",\n        Pause = \"Pause\",\n        PauseNow = \"PauseNow\",\n        Protect = \"Protect\",\n        Unprotect = \"Unprotect\",\n        Restore = \"Restore\",\n        Resume = \"Resume\",\n        SetToFailed = \"SetToFailed\",\n        Archive = \"Archive\"\n    }\n\n    export enum LogSelectColumnMode {\n        MIN = 0,\n        DEFAULT = 1,\n        ALL = 2,\n        CUSTOM = 3\n    }\n\n    export enum SortDirection {\n        ASC = 0,\n        DSC = 1\n    }\n\n    export enum LogEventClass {\n        ALL = \"ALL\",\n        DIS = \"DIS\",\n        ERR = \"ERR\",\n        WRN = \"WRN\",\n        INF = \"INF\",\n        PRO = \"PRO\",\n        MET = \"MET\",\n        EVT = \"EVT\"\n    }\n\n    export enum WUDetailsAttrValueType {\n        Single = \"Single\",\n        List = \"List\",\n        Multi = \"Multi\"\n    }\n\n    export enum EclDefinitionActions {\n        SyntaxCheck = \"SyntaxCheck\",\n        Deploy = \"Deploy\",\n        Publish = \"Publish\"\n    }\n\n    export enum ErrorMessageFormat {\n        xml = \"xml\",\n        json = \"json\",\n        text = \"text\"\n    }\n\n    export enum LogAccessLogFormat {\n        XML = 0,\n        JSON = 1,\n        CSV = 2\n    }\n\n    export enum WUExceptionSeverity {\n        info = \"info\",\n        warning = \"warning\",\n        error = \"error\",\n        alert = \"alert\"\n    }\n\n    export enum WUQueryFilterSuspendedType {\n        Allqueries = \"All queries\",\n        Notsuspended = \"Not suspended\",\n        Suspended = \"Suspended\",\n        Suspendedbyuser = \"Suspended by user\",\n        Suspendedbyfirstnode = \"Suspended by first node\",\n        Suspendedbyanynode = \"Suspended by any node\"\n    }\n\n    export enum WUQuerySetFilterType {\n        All = \"All\",\n        Id = \"Id\",\n        Name = \"Name\",\n        Alias = \"Alias\",\n        Status = \"Status\"\n    }\n\n    export enum WUProtectFilter {\n        All = \"All\",\n        Protected = \"Protected\",\n        NotProtected = \"NotProtected\"\n    }\n\n    export enum QuerySetAliasActionTypes {\n        Deactivate = \"Deactivate\"\n    }\n\n    export enum QuerysetImportActivation {\n        None = \"None\",\n        ActivateImportedActive = \"ActivateImportedActive\"\n    }\n\n    export enum QuerySetQueryActionTypes {\n        Suspend = \"Suspend\",\n        Unsuspend = \"Unsuspend\",\n        ToggleSuspend = \"ToggleSuspend\",\n        Activate = \"Activate\",\n        Delete = \"Delete\",\n        DeleteQueriesAndWUs = \"DeleteQueriesAndWUs\",\n        RemoveAllAliases = \"RemoveAllAliases\",\n        ResetQueryStats = \"ResetQueryStats\"\n    }\n\n    export enum WUQueryActivationMode {\n        DoNotActivateQuery = 0,\n        ActivateQuery = 1,\n        ActivateQuerySuspendPrevious = 2,\n        ActivateQueryDeletePrevious = 3\n    }\n\n    export interface GVCAjaxGraph {\n        Name?: string;\n        GraphName?: string;\n        SubGraphId?: int;\n        SubGraphOnly?: boolean;\n    }\n\n    export interface GVCAjaxGraphResponse {\n        Name?: string;\n        GraphName?: string;\n        GraphType?: string;\n        SubGraphId?: int;\n        SubGraphOnly?: boolean;\n    }\n\n    export interface Ping {\n\n    }\n\n    export interface WsWorkunitsPingResponse {\n\n    }\n\n    export interface Wuids {\n        Item?: string[];\n    }\n\n    export interface WUAbort {\n        Wuids?: Wuids;\n        BlockTillFinishTimer?: int;\n    }\n\n    export interface Exception {\n        Code?: string;\n        Audience?: string;\n        Source?: string;\n        Message?: string;\n    }\n\n    export interface Exceptions {\n        Source?: string;\n        Exception?: Exception[];\n    }\n\n    export interface WUActionResult {\n        Wuid?: string;\n        Action?: string;\n        Result?: string;\n    }\n\n    export interface ActionResults {\n        WUActionResult?: WUActionResult[];\n    }\n\n    export interface WUAbortResponse {\n        Exceptions?: Exceptions;\n        ActionResults?: ActionResults;\n    }\n\n    export interface WUAction {\n        Wuids?: Wuids;\n        WUActionType?: ECLWUActions;\n        Cluster?: string;\n        Owner?: string;\n        State?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ECL?: string;\n        Jobname?: string;\n        Test?: string;\n        CurrentPage?: string;\n        PageSize?: string;\n        Sortby?: string;\n        Descending?: boolean;\n        EventServer?: string;\n        EventName?: string;\n        PageFrom?: string;\n        BlockTillFinishTimer?: int;\n    }\n\n    export interface WUActionResponse {\n        Exceptions?: Exceptions;\n        ActionResults?: ActionResults;\n    }\n\n    export interface WUAddLocalFileToWorkunit {\n        Wuid?: string;\n        Name?: string;\n        Val?: string;\n        DefVal?: string;\n        Type?: int;\n        Length?: int;\n    }\n\n    export interface WUAddLocalFileToWorkunitResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Name?: string;\n        Result?: string;\n    }\n\n    export interface PropertyOptions {\n        IncludeName?: boolean;\n        IncludeRawValue?: boolean;\n        IncludeFormatted?: boolean;\n        IncludeMeasure?: boolean;\n        IncludeCreator?: boolean;\n        IncludeCreatorType?: boolean;\n    }\n\n    export interface WUAnalyseHotspot {\n        Wuid?: string;\n        RootScope?: string;\n        OptOnlyActive?: boolean;\n        OnlyCriticalPath?: boolean;\n        IncludeProperties?: boolean;\n        IncludeStatistics?: boolean;\n        ThresholdPercent?: double;\n        PropertyOptions?: PropertyOptions;\n    }\n\n    export interface Property {\n        Name?: string;\n        RawValue?: string;\n        Formatted?: string;\n        Measure?: string;\n        Creator?: string;\n        CreatorType?: string;\n    }\n\n    export interface Properties {\n        Property?: Property[];\n    }\n\n    export interface Note {\n        Source?: string;\n        Message?: string;\n        ErrorCode?: nonNegativeInteger;\n        Severity?: string;\n        Cost?: nonNegativeInteger;\n        Id?: uint64;\n    }\n\n    export interface Notes {\n        Note?: Note[];\n    }\n\n    export interface Activity {\n        ScopeName?: string;\n        Id?: string;\n        ScopeType?: string;\n        Properties?: Properties;\n        Notes?: Notes;\n        SinkActivity?: string;\n    }\n\n    export interface Activities {\n        Activity?: Activity[];\n    }\n\n    export interface Dependency {\n        ScopeName?: string;\n        Id?: string;\n        ScopeType?: string;\n        Properties?: Properties;\n        Notes?: Notes;\n        SinkActivity?: string;\n    }\n\n    export interface Dependencies {\n        Dependency?: Dependency[];\n    }\n\n    export interface WUAnalyseHotspotResponse {\n        Exceptions?: Exceptions;\n        RootScope?: string;\n        RootTime?: long;\n        Activities?: Activities;\n        Dependencies?: Dependencies;\n    }\n\n    export interface WUCDebug {\n        Wuid?: string;\n        Command?: string;\n    }\n\n    export interface WUDebugResponse {\n        Exceptions?: Exceptions;\n        Result?: string;\n    }\n\n    export interface WUCheckFeatures {\n        IncludeFullVersion?: boolean;\n    }\n\n    export interface Deployment {\n        UseCompression?: boolean;\n    }\n\n    export interface WUCheckFeaturesResponse {\n        Exceptions?: Exceptions;\n        BuildVersionMajor?: int;\n        BuildVersionMinor?: int;\n        BuildVersionPoint?: int;\n        maxRequestEntityLength?: unsignedInt;\n        Deployment?: Deployment;\n        BuildVersion?: string;\n        BuildMaturity?: string;\n        BuildTagTimestamp?: string;\n    }\n\n    export interface WUClusterJobQueueLOG {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n    }\n\n    export interface WUClusterJobQueueLOGResponse {\n        Exceptions?: Exceptions;\n        thefile?: base64Binary;\n    }\n\n    export interface WUClusterJobQueueXLS {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ShowType?: string;\n    }\n\n    export interface WUClusterJobQueueXLSResponse {\n        Exceptions?: Exceptions;\n        Result?: base64Binary;\n    }\n\n    export interface WUClusterJobSummaryXLS {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ShowAll?: boolean;\n        BusinessStartTime?: string;\n        BusinessEndTime?: string;\n    }\n\n    export interface WUClusterJobSummaryXLSResponse {\n        Exceptions?: Exceptions;\n        Result?: base64Binary;\n    }\n\n    export interface WUClusterJobXLS {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ShowAll?: boolean;\n        BusinessStartTime?: string;\n        BusinessEndTime?: string;\n    }\n\n    export interface WUClusterJobXLSResponse {\n        Exceptions?: Exceptions;\n        Result?: base64Binary;\n    }\n\n    export interface WUCompileECL {\n        ECL?: string;\n        ModuleName?: string;\n        AttributeName?: string;\n        Queue?: string;\n        Cluster?: string;\n        Snapshot?: string;\n        IncludeDependencies?: boolean;\n        IncludeComplexity?: boolean;\n        TimeToWait?: int;\n    }\n\n    export interface ECLException {\n        Severity?: string;\n        Source?: string;\n        Code?: int;\n        Message?: string;\n        Column?: int;\n        LineNo?: int;\n        FileName?: string;\n        Activity?: int;\n        Scope?: string;\n        Priority?: int;\n        Cost?: double;\n    }\n\n    export interface Errors {\n        ECLException?: ECLException[];\n    }\n\n    export interface ECLAttribute {\n        ModuleName?: string;\n        AttributeName?: string;\n        IsLocked?: boolean;\n        IsCheckedOut?: boolean;\n        IsSandbox?: boolean;\n        IsOrphaned?: boolean;\n    }\n\n    export interface Dependencies2 {\n        ECLAttribute?: ECLAttribute[];\n    }\n\n    export interface WUCompileECLResponse {\n        Exceptions?: Exceptions;\n        Complexity?: string;\n        Errors?: Errors;\n        Dependencies?: Dependencies2;\n    }\n\n    export interface WUCopyLogicalFiles {\n        Wuid?: string;\n        Cluster?: string;\n        CopyLocal?: boolean;\n    }\n\n    export interface Clusters {\n        Item?: string[];\n    }\n\n    export interface WULogicalFileCopyInfo {\n        IsIndex?: boolean;\n        LogicalName?: string;\n        DfuCopyWuid?: string;\n        DfuCopyError?: string;\n        Clusters?: Clusters;\n    }\n\n    export interface OnCluster {\n        WULogicalFileCopyInfo?: WULogicalFileCopyInfo[];\n    }\n\n    export interface NotOnCluster {\n        WULogicalFileCopyInfo?: WULogicalFileCopyInfo[];\n    }\n\n    export interface Foreign {\n        WULogicalFileCopyInfo?: WULogicalFileCopyInfo[];\n    }\n\n    export interface NotFound {\n        WULogicalFileCopyInfo?: WULogicalFileCopyInfo[];\n    }\n\n    export interface Cluster {\n        ClusterName?: string;\n        OnCluster?: OnCluster;\n        NotOnCluster?: NotOnCluster;\n        Foreign?: Foreign;\n        NotFound?: NotFound;\n    }\n\n    export interface ClusterFiles {\n        Cluster?: Cluster[];\n    }\n\n    export interface WUCopyLogicalFilesResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        ClusterFiles?: ClusterFiles;\n    }\n\n    export interface WUCopyQuerySet {\n        Source?: string;\n        Target?: string;\n        ActiveOnly?: boolean;\n        CloneActiveState?: boolean;\n        AllowForeignFiles?: boolean;\n        DfsServer?: string;\n        CopyFiles?: boolean;\n        OverwriteDfs?: boolean;\n        SourceProcess?: string;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        IncludeFileErrors?: boolean;\n        SourceSSL?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface CopiedQueries {\n        QueryId?: string[];\n    }\n\n    export interface ExistingQueries {\n        QueryId?: string[];\n    }\n\n    export interface File {\n        Error?: string;\n        LogicalName?: string;\n    }\n\n    export interface FileErrors {\n        File?: File[];\n    }\n\n    export interface WUCopyQuerySetResponse {\n        Exceptions?: Exceptions;\n        CopiedQueries?: CopiedQueries;\n        ExistingQueries?: ExistingQueries;\n        FileErrors?: FileErrors;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface WUCreate {\n\n    }\n\n    export interface Query {\n        Text?: string;\n        Cpp?: string;\n        ResTxt?: string;\n        Dll?: string;\n        ThorLog?: string;\n        QueryMainDefinition?: string;\n    }\n\n    export interface ECLHelpFile {\n        Name?: string;\n        Type?: string;\n        IPAddress?: string;\n        Description?: string;\n        FileSize?: long;\n        PID?: unsignedInt;\n        minActivityId?: unsignedInt;\n        maxActivityId?: unsignedInt;\n        IsAvailable?: boolean;\n    }\n\n    export interface Helpers {\n        ECLHelpFile?: ECLHelpFile[];\n    }\n\n    export interface Exceptions2 {\n        ECLException?: ECLException[];\n    }\n\n    export interface ECLGraph {\n        Name?: string;\n        Label?: string;\n        Type?: string;\n        Running?: boolean;\n        Complete?: boolean;\n        Failed?: boolean;\n        RunningId?: long;\n        WhenStarted?: string;\n        WhenFinished?: string;\n    }\n\n    export interface Graphs {\n        ECLGraph?: ECLGraph[];\n    }\n\n    export interface ECLSourceFiles {\n        ECLSourceFile?: ECLSourceFile[];\n    }\n\n    export interface ECLSourceFile {\n        FileCluster?: string;\n        Name?: string;\n        IsSuperFile?: boolean;\n        Subs?: int;\n        Count?: int;\n        ECLSourceFiles?: ECLSourceFiles;\n    }\n\n    export interface SourceFiles {\n        ECLSourceFile?: ECLSourceFile[];\n    }\n\n    export interface ECLSchemaItem {\n        ColumnName?: string;\n        ColumnType?: string;\n        ColumnTypeCode?: int;\n        isConditional?: boolean;\n    }\n\n    export interface ECLSchemas {\n        ECLSchemaItem?: ECLSchemaItem[];\n    }\n\n    export interface ECLResult {\n        Name?: string;\n        Sequence?: int;\n        Value?: string;\n        Link?: string;\n        FileName?: string;\n        IsSupplied?: boolean;\n        ShowFileContent?: boolean;\n        Total?: long;\n        ECLSchemas?: ECLSchemas;\n        XmlSchema?: string;\n    }\n\n    export interface Results {\n        ECLResult?: ECLResult[];\n    }\n\n    export interface Variables {\n        ECLResult?: ECLResult[];\n    }\n\n    export interface ECLTimer {\n        Name?: string;\n        Value?: string;\n        count?: int;\n        GraphName?: string;\n        SubGraphId?: int;\n        Timestamp?: long;\n        When?: string;\n    }\n\n    export interface Timers {\n        ECLTimer?: ECLTimer[];\n    }\n\n    export interface DebugValue {\n        Name?: string;\n        Value?: string;\n    }\n\n    export interface DebugValues {\n        DebugValue?: DebugValue[];\n    }\n\n    export interface ApplicationValue {\n        Application?: string;\n        Name?: string;\n        Value?: string;\n    }\n\n    export interface ApplicationValues {\n        ApplicationValue?: ApplicationValue[];\n    }\n\n    export interface ECLWorkflow {\n        WFID?: string;\n        EventName?: string;\n        EventText?: string;\n        Count?: int;\n        CountRemaining?: int;\n    }\n\n    export interface Workflows {\n        ECLWorkflow?: ECLWorkflow[];\n    }\n\n    export interface ECLTimingData {\n        Name?: string;\n        GraphNum?: int;\n        SubGraphNum?: int;\n        GID?: int;\n        Min?: int;\n        MS?: int;\n    }\n\n    export interface TimingData {\n        ECLTimingData?: ECLTimingData[];\n    }\n\n    export interface AllowedClusters {\n        AllowedCluster?: string[];\n    }\n\n    export interface ThorLogInfo {\n        ProcessName?: string;\n        ClusterGroup?: string;\n        LogDate?: string;\n        NumberSlaves?: int;\n    }\n\n    export interface ThorLogList {\n        ThorLogInfo?: ThorLogInfo[];\n    }\n\n    export interface ResourceURLs {\n        URL?: string[];\n    }\n\n    export interface ServiceNames {\n        Item?: string[];\n    }\n\n    export interface Graphs2 {\n        Graph?: string[];\n    }\n\n    export interface ECLWUProcess {\n        Name?: string;\n        Type?: string;\n        PodName?: string;\n        ContainerName?: string;\n        Graphs?: Graphs2;\n        InstanceNumber?: int;\n        Sequence?: string;\n        Log?: string;\n        PID?: string;\n        Pattern?: string;\n        Max?: int;\n    }\n\n    export interface ECLWUProcessList {\n        ECLWUProcess?: ECLWUProcess[];\n    }\n\n    export interface Workunit {\n        Wuid?: string;\n        Owner?: string;\n        Cluster?: string;\n        RoxieCluster?: string;\n        Jobname?: string;\n        Queue?: string;\n        StateID?: int;\n        State?: string;\n        StateEx?: string;\n        Description?: string;\n        Protected?: boolean;\n        Active?: boolean;\n        Action?: int;\n        ActionEx?: string;\n        DateTimeScheduled?: dateTime;\n        PriorityClass?: int;\n        PriorityLevel?: int;\n        Scope?: string;\n        Snapshot?: string;\n        ResultLimit?: int;\n        Archived?: boolean;\n        IsPausing?: boolean;\n        ThorLCR?: boolean;\n        EventSchedule?: int;\n        TotalClusterTime?: string;\n        AbortBy?: string;\n        AbortTime?: string;\n        Query?: Query;\n        Helpers?: Helpers;\n        Exceptions?: Exceptions2;\n        Graphs?: Graphs;\n        SourceFiles?: SourceFiles;\n        Results?: Results;\n        Variables?: Variables;\n        Timers?: Timers;\n        DebugValues?: DebugValues;\n        ApplicationValues?: ApplicationValues;\n        Workflows?: Workflows;\n        TimingData?: TimingData;\n        AllowedClusters?: AllowedClusters;\n        ErrorCount?: int;\n        WarningCount?: int;\n        InfoCount?: int;\n        AlertCount?: int;\n        GraphCount?: int;\n        SourceFileCount?: int;\n        ResultCount?: int;\n        VariableCount?: int;\n        TimerCount?: int;\n        HasDebugValue?: boolean;\n        ApplicationValueCount?: int;\n        XmlParams?: string;\n        AccessFlag?: int;\n        ClusterFlag?: int;\n        HelpersDesc?: string;\n        GraphsDesc?: string;\n        SourceFilesDesc?: string;\n        ResultsDesc?: string;\n        VariablesDesc?: string;\n        TimersDesc?: string;\n        DebugValuesDesc?: string;\n        ApplicationValuesDesc?: string;\n        WorkflowsDesc?: string;\n        HasArchiveQuery?: boolean;\n        ThorLogList?: ThorLogList;\n        ResourceURLs?: ResourceURLs;\n        ResultViewCount?: int;\n        ResourceURLCount?: int;\n        DebugValueCount?: int;\n        WorkflowCount?: int;\n        HelpersCount?: int;\n        ServiceNames?: ServiceNames;\n        ExecuteCost?: double;\n        FileAccessCost?: double;\n        CostSavingPotential?: double;\n        CompileCost?: double;\n        NoAccess?: boolean;\n        ECLWUProcessList?: ECLWUProcessList;\n        FailureDesc?: string;\n    }\n\n    export interface WUCreateResponse {\n        Exceptions?: Exceptions;\n        Workunit?: Workunit;\n    }\n\n    export interface WUCreateAndUpdate {\n        Wuid?: string;\n        State?: int;\n        StateOrig?: int;\n        Jobname?: string;\n        JobnameOrig?: string;\n        QueryText?: string;\n        Action?: int;\n        Description?: string;\n        DescriptionOrig?: string;\n        AddDrilldownFields?: boolean;\n        ResultLimit?: int;\n        Protected?: boolean;\n        ProtectedOrig?: boolean;\n        PriorityClass?: int;\n        PriorityLevel?: int;\n        Scope?: string;\n        ScopeOrig?: string;\n        ClusterSelection?: string;\n        ClusterOrig?: string;\n        XmlParams?: string;\n        ThorSlaveIP?: string;\n        QueryMainDefinition?: string;\n        DebugValues?: DebugValues;\n        ApplicationValues?: ApplicationValues;\n    }\n\n    export interface WUUpdateResponse {\n        Exceptions?: Exceptions;\n        Workunit?: Workunit;\n    }\n\n    export interface AbsoluteTimeRange {\n        StartDate?: dateTime;\n        EndDate?: dateTime;\n    }\n\n    export interface CustomColumns {\n        Item?: string[];\n    }\n\n    export interface ComponentsFilter {\n        Item?: string[];\n    }\n\n    export interface LogFilter {\n        WildcardFilter?: string;\n        AbsoluteTimeRange?: AbsoluteTimeRange;\n        RelativeTimeRangeBuffer?: unsignedInt;\n        LineLimit?: unsignedInt;\n        LineStartFrom?: long;\n        SelectColumnMode?: LogSelectColumnMode;\n        CustomColumns?: CustomColumns;\n        ComponentsFilter?: ComponentsFilter;\n        Format?: string;\n        sortByTimeDirection?: SortDirection;\n        LogEventType?: LogEventClass;\n    }\n\n    export interface WUCreateZAPInfo {\n        Wuid?: string;\n        ESPApplication?: string;\n        ThorProcesses?: string;\n        BuildVersion?: string;\n        ProblemDescription?: string;\n        WhatChanged?: string;\n        WhereSlow?: string;\n        ZAPFileName?: string;\n        IncludeThorSlaveLog?: string;\n        ZAPPassword?: string;\n        SendEmail?: boolean;\n        AttachZAPReportToEmail?: boolean;\n        EmailFrom?: string;\n        EmailSubject?: string;\n        EmailBody?: string;\n        LogFilter?: LogFilter;\n        IncludeRelatedLogs?: boolean;\n        IncludePerComponentLogs?: boolean;\n    }\n\n    export interface WUCreateZAPInfoResponse {\n        Exceptions?: Exceptions;\n        thefile?: base64Binary;\n        ZAPFileName?: string;\n    }\n\n    export interface WUDelete {\n        Wuids?: Wuids;\n        BlockTillFinishTimer?: int;\n    }\n\n    export interface WUDeleteResponse {\n        Exceptions?: Exceptions;\n        ActionResults?: ActionResults;\n    }\n\n    export interface NamedValue {\n        Name?: string;\n        Value?: string;\n    }\n\n    export interface DebugValues2 {\n        NamedValue?: NamedValue[];\n    }\n\n    export interface WUDeployWorkunit {\n        Cluster?: string;\n        Name?: string;\n        Wait?: int;\n        ObjType?: string;\n        FileName?: string;\n        Object?: base64Binary;\n        ResultLimit?: int;\n        QueryMainDefinition?: string;\n        Snapshot?: string;\n        DebugValues?: DebugValues2;\n        Protect?: boolean;\n    }\n\n    export interface WUDeployWorkunitResponse {\n        Exceptions?: Exceptions;\n        Workunit?: Workunit;\n    }\n\n    export interface PropertyFilter {\n        Name?: string;\n        ExactValue?: string;\n        MinValue?: string;\n        MaxValue?: string;\n    }\n\n    export interface PropertyFilters {\n        PropertyFilter?: PropertyFilter[];\n    }\n\n    export interface ScopeFilter {\n        MaxDepth?: integer;\n        Scopes?: string[];\n        Ids?: string[];\n        ScopeTypes?: string[];\n        PropertyFilters?: PropertyFilters;\n    }\n\n    export interface NestedFilter {\n        Depth?: unsignedInt;\n        ScopeTypes?: string[];\n    }\n\n    export interface Extra {\n        scopeType?: string;\n        Properties?: string[];\n    }\n\n    export interface ExtraProperties {\n        Extra?: Extra[];\n    }\n\n    export interface PropertiesToReturn {\n        AllStatistics?: boolean;\n        AllAttributes?: boolean;\n        AllHints?: boolean;\n        AllScopes?: boolean;\n        AllProperties?: boolean;\n        AllNotes?: boolean;\n        MinVersion?: uint64;\n        Measure?: string;\n        Properties?: string[];\n        ExtraProperties?: ExtraProperties;\n    }\n\n    export interface ScopeOptions {\n        IncludeMatchedScopesInResults?: boolean;\n        IncludeScope?: boolean;\n        IncludeId?: boolean;\n        IncludeScopeType?: boolean;\n    }\n\n    export interface WUDetails {\n        WUID?: string;\n        ScopeFilter?: ScopeFilter;\n        NestedFilter?: NestedFilter;\n        PropertiesToReturn?: PropertiesToReturn;\n        Filter?: string;\n        ScopeOptions?: ScopeOptions;\n        PropertyOptions?: PropertyOptions;\n    }\n\n    export interface Scope {\n        ScopeName?: string;\n        Id?: string;\n        ScopeType?: string;\n        Properties?: Properties;\n        Notes?: Notes;\n        SinkActivity?: string;\n    }\n\n    export interface Scopes {\n        Scope?: Scope[];\n    }\n\n    export interface WUDetailsResponse {\n        Exceptions?: Exceptions;\n        MaxVersion?: uint64;\n        WUID?: string;\n        Scopes?: Scopes;\n    }\n\n    export interface WUDetailsMeta {\n\n    }\n\n    export interface Property2 {\n        Name?: string;\n        ValueType?: WUDetailsAttrValueType;\n        Description?: string;\n    }\n\n    export interface Properties2 {\n        Property?: Property2[];\n    }\n\n    export interface ScopeTypes {\n        ScopeType?: string[];\n    }\n\n    export interface Measures {\n        Measure?: string[];\n    }\n\n    export interface Activity2 {\n        Kind?: unsignedInt;\n        Name?: string;\n        IsSink?: boolean;\n        IsSource?: boolean;\n    }\n\n    export interface Activities2 {\n        Activity?: Activity2[];\n    }\n\n    export interface WUDetailsMetaResponse {\n        Exceptions?: Exceptions;\n        Properties?: Properties2;\n        ScopeTypes?: ScopeTypes;\n        Measures?: Measures;\n        Activities?: Activities2;\n    }\n\n    export interface EclDefinitions {\n        Item?: string[];\n    }\n\n    export interface WUEclDefinitionAction {\n        EclDefinitions?: EclDefinitions;\n        ActionType?: EclDefinitionActions;\n        Target?: string;\n        RemoteDali?: string;\n        SourceProcess?: string;\n        Priority?: string;\n        Comment?: string;\n        MemoryLimit?: string;\n        DeletePrevious?: boolean;\n        SuspendPrevious?: boolean;\n        NoActivate?: boolean;\n        NoReload?: boolean;\n        DontCopyFiles?: boolean;\n        AllowForeign?: boolean;\n        UpdateDfs?: boolean;\n        UpdateSuperfiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        DontAppendCluster?: boolean;\n        MsToWait?: int;\n        TimeLimit?: int;\n        WarnTimeLimit?: int;\n        DfuCopyFiles?: boolean;\n        DfuOverwrite?: boolean;\n        DfuQueue?: string;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface WUEclDefinitionActionResult {\n        EclDefinition?: string;\n        Action?: string;\n        WUID?: string;\n        QueryID?: string;\n        Result?: string;\n    }\n\n    export interface ActionResults2 {\n        WUEclDefinitionActionResult?: WUEclDefinitionActionResult[];\n    }\n\n    export interface WUEclDefinitionActionResponse {\n        Exceptions?: Exceptions;\n        ActionResults?: ActionResults2;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface WUExport {\n        Cluster?: string;\n        Owner?: string;\n        State?: string;\n        StartDate?: string;\n        EndDate?: string;\n        Jobname?: string;\n    }\n\n    export interface WUExportResponse {\n        Exceptions?: Exceptions;\n        ExportData?: base64Binary;\n    }\n\n    export interface LogColumns {\n        Item?: string[];\n    }\n\n    export interface WUFile {\n        Name?: string;\n        Wuid?: string;\n        Type?: string;\n        Option?: int;\n        SlaveIP?: string;\n        IPAddress?: string;\n        Description?: string;\n        QuerySet?: string;\n        Query?: string;\n        Process?: string;\n        ClusterGroup?: string;\n        LogDate?: string;\n        SlaveNumber?: int;\n        SizeLimit?: long;\n        ErrorMessageFormat?: ErrorMessageFormat;\n        PlainText?: string;\n        MaxLogRecords?: unsignedInt;\n        LogSelectColumnMode?: LogSelectColumnMode;\n        LogFormat?: LogAccessLogFormat;\n        LogSearchTimeBuffSecs?: unsignedInt;\n        LogColumns?: LogColumns;\n    }\n\n    export interface WULogFileResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        QuerySet?: string;\n        QueryName?: string;\n        QueryId?: string;\n        FileName?: string;\n        DaliServer?: string;\n        thefile?: base64Binary;\n    }\n\n    export interface WUFullResult {\n        Wuid?: string;\n        NoRootTag?: boolean;\n        ExceptionSeverity?: WUExceptionSeverity;\n    }\n\n    export interface WUFullResultResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Results?: string;\n    }\n\n    export interface WUGVCGraphInfo {\n        Wuid?: string;\n        Name?: string;\n        GID?: string;\n        BatchWU?: int;\n        SubgraphId?: int;\n    }\n\n    export interface WUGVCGraphInfoResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Name?: string;\n        GID?: string;\n        Running?: boolean;\n        TheGraph?: string;\n        BatchWU?: int;\n    }\n\n    export interface WUGetArchiveFile {\n        WUID?: string;\n        ModuleName?: string;\n        FileName?: string;\n        Path?: string;\n    }\n\n    export interface WUGetArchiveFileResponse {\n        Exceptions?: Exceptions;\n        File?: string;\n        Message?: string;\n    }\n\n    export interface WUGetDependancyTrees {\n        Cluster?: string;\n        Queue?: string;\n        Snapshot?: string;\n        Items?: string;\n        TimeoutMilliSec?: string;\n    }\n\n    export interface WUGetDependancyTreesResponse {\n        Exceptions?: Exceptions;\n        Errors?: Errors;\n        DependancyTrees?: base64Binary;\n    }\n\n    export interface WUGetGraph {\n        Wuid?: string;\n        GraphName?: string;\n        SubGraphId?: string;\n    }\n\n    export interface ECLGraphEx {\n        Name?: string;\n        Label?: string;\n        Type?: string;\n        Graph?: string;\n        Running?: boolean;\n        RunningId?: long;\n        Complete?: boolean;\n        Failed?: boolean;\n    }\n\n    export interface Graphs3 {\n        ECLGraphEx?: ECLGraphEx[];\n    }\n\n    export interface WUGetGraphResponse {\n        Exceptions?: Exceptions;\n        Graphs?: Graphs3;\n    }\n\n    export interface WUGetGraphNameAndTypes {\n        Wuid?: string;\n        Type?: string;\n    }\n\n    export interface GraphNameAndType {\n        Name?: string;\n        Type?: string;\n    }\n\n    export interface GraphNameAndTypes {\n        GraphNameAndType?: GraphNameAndType[];\n    }\n\n    export interface WUGetGraphNameAndTypesResponse {\n        Exceptions?: Exceptions;\n        GraphNameAndTypes?: GraphNameAndTypes;\n    }\n\n    export interface WUGetNumFileToCopy {\n        ClusterName?: string;\n        TargetName?: string;\n        PageSize?: long;\n        PageStartFrom?: long;\n        Sortby?: string;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface Endpoint {\n        URL?: string;\n        Status?: string;\n        NumQueryFileToCopy?: int;\n    }\n\n    export interface Endpoints {\n        Endpoint?: Endpoint[];\n    }\n\n    export interface WUGetNumFileToCopyResponse {\n        Exceptions?: Exceptions;\n        Endpoints?: Endpoints;\n        CacheHint?: long;\n        Total?: long;\n    }\n\n    export interface WUGetPlugins {\n\n    }\n\n    export interface Plugins {\n        WUEclPluginsInFolder?: WUEclPluginsInFolder[];\n    }\n\n    export interface WUEclPluginsInFolder {\n        Path?: string;\n        Plugins?: Plugins;\n    }\n\n    export interface WUGetPluginsResponse {\n        Exceptions?: Exceptions;\n        Plugins?: Plugins;\n    }\n\n    export interface WUGetStats {\n        WUID?: string;\n        CreatorType?: string;\n        Creator?: string;\n        ScopeType?: string;\n        Scope?: string;\n        Kind?: string;\n        Measure?: string;\n        MinScopeDepth?: unsignedInt;\n        MaxScopeDepth?: unsignedInt;\n        IncludeGraphs?: boolean;\n        CreateDescriptions?: boolean;\n        MinValue?: long;\n        MaxValue?: long;\n        Filter?: string;\n    }\n\n    export interface WUStatisticItem {\n        Creator?: string;\n        CreatorType?: string;\n        Scope?: string;\n        ScopeType?: string;\n        Description?: string;\n        TimeStamp?: string;\n        Measure?: string;\n        Kind?: string;\n        Value?: string;\n        RawValue?: long;\n        Count?: long;\n        Max?: long;\n        Wuid?: string;\n    }\n\n    export interface Statistics {\n        WUStatisticItem?: WUStatisticItem[];\n    }\n\n    export interface WUGetStatsResponse {\n        Exceptions?: Exceptions;\n        WUID?: string;\n        Statistics?: Statistics;\n    }\n\n    export interface WUGetThorJobList {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n        MaxJobsToReturn?: unsignedInt;\n    }\n\n    export interface ECLJob {\n        Wuid?: string;\n        Graph?: string;\n        State?: string;\n        StartedDate?: string;\n        FinishedDate?: string;\n        Cluster?: string;\n        GraphNum?: string;\n        SubGraphNum?: string;\n        NumOfRuns?: string;\n        Duration?: int;\n    }\n\n    export interface JobList {\n        ECLJob?: ECLJob[];\n    }\n\n    export interface InProgressJobList {\n        ECLJob?: ECLJob[];\n    }\n\n    export interface WUGetThorJobListResponse {\n        Exceptions?: Exceptions;\n        JobList?: JobList;\n        InProgressJobList?: InProgressJobList;\n        Warning?: string;\n    }\n\n    export interface WUGetThorJobQueue {\n        Cluster?: string;\n        StartDate?: string;\n        EndDate?: string;\n        MaxJobQueueItemsToReturn?: unsignedInt;\n    }\n\n    export interface ThorQueue {\n        DT?: string;\n        RunningWUs?: string;\n        QueuedWUs?: string;\n        WaitingThors?: string;\n        ConnectedThors?: string;\n        IdledThors?: string;\n        RunningWU1?: string;\n        RunningWU2?: string;\n    }\n\n    export interface QueueList {\n        ThorQueue?: ThorQueue[];\n    }\n\n    export interface WUGetThorJobQueueResponse {\n        Exceptions?: Exceptions;\n        LongestQueue?: int;\n        MaxThorConnected?: int;\n        QueueList?: QueueList;\n        Warning?: string;\n    }\n\n    export interface WUGetZAPInfo {\n        WUID?: string;\n    }\n\n    export interface WUGetZAPInfoResponse {\n        Exceptions?: Exceptions;\n        WUID?: string;\n        ESPApplication?: string;\n        ThorProcesses?: string;\n        BuildVersion?: string;\n        Archive?: string;\n        EmailTo?: string;\n        EmailFrom?: string;\n        Message?: string;\n        IsContainerized?: boolean;\n    }\n\n    export interface WUGraphInfo {\n        Wuid?: string;\n        Name?: string;\n        GID?: string;\n        BatchWU?: int;\n    }\n\n    export interface WUGraphInfoResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Name?: string;\n        GID?: string;\n        BatchWU?: int;\n        Running?: boolean;\n    }\n\n    export interface WUGraphTiming {\n        Wuid?: string;\n    }\n\n    export interface WUGraphTimingResponse {\n        Exceptions?: Exceptions;\n        Workunit?: Workunit;\n    }\n\n    export interface WUInfo {\n        Wuid?: string;\n        TruncateEclTo64k?: boolean;\n        Type?: string;\n        IncludeExceptions?: boolean;\n        IncludeGraphs?: boolean;\n        IncludeSourceFiles?: boolean;\n        IncludeResults?: boolean;\n        IncludeResultsViewNames?: boolean;\n        IncludeVariables?: boolean;\n        IncludeTimers?: boolean;\n        IncludeDebugValues?: boolean;\n        IncludeApplicationValues?: boolean;\n        IncludeWorkflows?: boolean;\n        IncludeXmlSchemas?: boolean;\n        IncludeResourceURLs?: boolean;\n        IncludeECL?: boolean;\n        IncludeHelpers?: boolean;\n        IncludeAllowedClusters?: boolean;\n        IncludeTotalClusterTime?: boolean;\n        IncludeServiceNames?: boolean;\n        IncludeProcesses?: boolean;\n        SuppressResultSchemas?: boolean;\n        ThorSlaveIP?: string;\n    }\n\n    export interface ResultViews {\n        View?: string[];\n    }\n\n    export interface WUInfoResponse {\n        Exceptions?: Exceptions;\n        Workunit?: Workunit;\n        AutoRefresh?: int;\n        CanCompile?: boolean;\n        ThorSlaveIP?: string;\n        ResultViews?: ResultViews;\n        SecMethod?: string;\n    }\n\n    export interface WUInfoDetails {\n        Wuid?: string;\n        TruncateEclTo64k?: boolean;\n        Type?: string;\n        IncludeExceptions?: boolean;\n        IncludeGraphs?: boolean;\n        IncludeSourceFiles?: boolean;\n        IncludeResults?: boolean;\n        IncludeResultsViewNames?: boolean;\n        IncludeVariables?: boolean;\n        IncludeTimers?: boolean;\n        IncludeDebugValues?: boolean;\n        IncludeApplicationValues?: boolean;\n        IncludeWorkflows?: boolean;\n        IncludeXmlSchemas?: boolean;\n        IncludeResourceURLs?: boolean;\n        IncludeECL?: boolean;\n        IncludeHelpers?: boolean;\n        IncludeAllowedClusters?: boolean;\n        IncludeTotalClusterTime?: boolean;\n        IncludeServiceNames?: boolean;\n        IncludeProcesses?: boolean;\n        SuppressResultSchemas?: boolean;\n        ThorSlaveIP?: string;\n    }\n\n    export interface WUJobList {\n        Cluster?: string;\n        Process?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ShowAll?: boolean;\n        BusinessStartHour?: int;\n        BusinessEndHour?: int;\n    }\n\n    export interface Jobs {\n        ECLJob?: ECLJob[];\n    }\n\n    export interface WUJobListResponse {\n        Exceptions?: Exceptions;\n        StartDate?: string;\n        EndDate?: string;\n        Jobs?: Jobs;\n    }\n\n    export interface WULightWeightQuery {\n        Wuid?: string;\n        Type?: string;\n        Cluster?: string;\n        Owner?: string;\n        JobName?: string;\n        StartDate?: string;\n        EndDate?: string;\n        BeforeWU?: string;\n        AfterWU?: string;\n        State?: string;\n        ApplicationValues?: ApplicationValues;\n        PageStartFrom?: long;\n        PageSize?: unsignedInt;\n        SortBy?: string;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface ECLWorkunitLW {\n        Wuid?: string;\n        Owner?: string;\n        JobName?: string;\n        WuScope?: string;\n        ClusterName?: string;\n        State?: int;\n        StateDesc?: string;\n        Action?: int;\n        ActionDesc?: string;\n        Priority?: int;\n        PriorityDesc?: string;\n        PriorityLevel?: int;\n        IsProtected?: boolean;\n        DateTimeScheduled?: dateTime;\n        TotalClusterTime?: unsignedInt;\n        ApplicationValues?: ApplicationValues;\n        NoAccess?: boolean;\n    }\n\n    export interface Workunits {\n        ECLWorkunitLW?: ECLWorkunitLW[];\n    }\n\n    export interface WULightWeightQueryResponse {\n        Exceptions?: Exceptions;\n        NumWUs?: int;\n        CacheHint?: long;\n        Workunits?: Workunits;\n    }\n\n    export interface WUListArchiveFiles {\n        WUID?: string;\n    }\n\n    export interface ArchiveModules {\n        ArchiveModule?: ArchiveModule[];\n    }\n\n    export interface File2 {\n        Name?: string;\n        Key?: string;\n        SourcePath?: string;\n        Path?: string;\n    }\n\n    export interface Files {\n        File?: File2[];\n    }\n\n    export interface ArchiveModule {\n        Name?: string;\n        FullName?: string;\n        Flags?: unsignedInt;\n        Key?: string;\n        Plugin?: string;\n        SourcePath?: string;\n        Version?: string;\n        Path?: string;\n        ArchiveModules?: ArchiveModules;\n        Files?: Files;\n    }\n\n    export interface WUListArchiveFilesResponse {\n        Exceptions?: Exceptions;\n        ArchiveModules?: ArchiveModules;\n        Files?: Files;\n        Message?: string;\n    }\n\n    export interface WUListLocalFileRequired {\n        Wuid?: string;\n    }\n\n    export interface LogicalFileUpload {\n        Type?: int;\n        Source?: string;\n        Destination?: string;\n        EventTag?: string;\n    }\n\n    export interface LocalFileUploads {\n        LogicalFileUpload?: LogicalFileUpload[];\n    }\n\n    export interface WUListLocalFileRequiredResponse {\n        Exceptions?: Exceptions;\n        LocalFileUploads?: LocalFileUploads;\n    }\n\n    export interface WUListQueries {\n        QuerySetName?: string;\n        ClusterName?: string;\n        LibraryName?: string;\n        MemoryLimitLow?: long;\n        MemoryLimitHigh?: long;\n        TimeLimitLow?: nonNegativeInteger;\n        TimeLimitHigh?: nonNegativeInteger;\n        WarnTimeLimitLow?: nonNegativeInteger;\n        WarnTimeLimitHigh?: nonNegativeInteger;\n        PriorityLow?: nonNegativeInteger;\n        PriorityHigh?: nonNegativeInteger;\n        Activated?: boolean;\n        SuspendedFilter?: WUQueryFilterSuspendedType;\n        WUID?: string;\n        QueryID?: string;\n        QueryName?: string;\n        PublishedBy?: string;\n        PageSize?: nonNegativeInteger;\n        PageStartFrom?: nonNegativeInteger;\n        Sortby?: string;\n        Descending?: boolean;\n        CacheHint?: long;\n        FileName?: string;\n        CheckAllNodes?: boolean;\n    }\n\n    export interface ClusterQueryState {\n        Cluster?: string;\n        State?: string;\n        Errors?: string;\n        MixedNodeStates?: boolean;\n    }\n\n    export interface Clusters2 {\n        ClusterQueryState?: ClusterQueryState[];\n    }\n\n    export interface QuerySetQuery {\n        Id?: string;\n        Name?: string;\n        Wuid?: string;\n        Dll?: string;\n        Suspended?: boolean;\n        Clusters?: Clusters2;\n        memoryLimit?: string;\n        timeLimit?: nonNegativeInteger;\n        warnTimeLimit?: nonNegativeInteger;\n        priority?: string;\n        Comment?: string;\n        QuerySetId?: string;\n        IsLibrary?: boolean;\n        Activated?: boolean;\n        PublishedBy?: string;\n        snapshot?: string;\n        PriorityID?: int;\n    }\n\n    export interface QuerysetQueries {\n        QuerySetQuery?: QuerySetQuery[];\n    }\n\n    export interface WUListQueriesResponse {\n        Exceptions?: Exceptions;\n        NumberOfQueries?: int;\n        CacheHint?: long;\n        QuerysetQueries?: QuerysetQueries;\n    }\n\n    export interface WUListQueriesUsingFile {\n        Target?: string;\n        Process?: string;\n        FileName?: string;\n    }\n\n    export interface QueryUsingFile {\n        Id?: string;\n        Package?: string;\n    }\n\n    export interface Queries {\n        QueryUsingFile?: QueryUsingFile[];\n    }\n\n    export interface TargetQueriesUsingFile {\n        Target?: string;\n        PackageMap?: string;\n        Queries?: Queries;\n    }\n\n    export interface Targets {\n        TargetQueriesUsingFile?: TargetQueriesUsingFile[];\n    }\n\n    export interface WUListQueriesUsingFileResponse {\n        Exceptions?: Exceptions;\n        Process?: string;\n        FileName?: string;\n        Targets?: Targets;\n    }\n\n    export interface WUMultiQuerysetDetails {\n        ClusterName?: string;\n        QuerySetName?: string;\n        Filter?: string;\n        FilterType?: WUQuerySetFilterType;\n        CheckAllNodes?: boolean;\n    }\n\n    export interface Queries2 {\n        QuerySetQuery?: QuerySetQuery[];\n    }\n\n    export interface QuerySetAlias {\n        Id?: string;\n        Name?: string;\n    }\n\n    export interface Aliases {\n        QuerySetAlias?: QuerySetAlias[];\n    }\n\n    export interface WUQuerySetDetail {\n        QuerySetName?: string;\n        Queries?: Queries2;\n        Aliases?: Aliases;\n    }\n\n    export interface Querysets {\n        WUQuerySetDetail?: WUQuerySetDetail[];\n    }\n\n    export interface WUMultiQuerySetDetailsResponse {\n        Exceptions?: Exceptions;\n        ClusterName?: string;\n        Querysets?: Querysets;\n    }\n\n    export interface WUProcessGraph {\n        Wuid?: string;\n        Name?: string;\n    }\n\n    export interface WUProcessGraphResponse {\n        Exceptions?: Exceptions;\n        theGraph?: string;\n    }\n\n    export interface WUProtect {\n        Wuids?: Wuids;\n        Protect?: boolean;\n    }\n\n    export interface WUProtectResponse {\n        Exceptions?: Exceptions;\n        ActionResults?: ActionResults;\n    }\n\n    export interface WUPublishWorkunit {\n        Wuid?: string;\n        Cluster?: string;\n        QueryName?: string;\n        WorkUnitJobName?: string;\n        JobName?: string;\n        Activate?: int;\n        NotifyCluster?: boolean;\n        Wait?: int;\n        NoReload?: boolean;\n        UpdateWorkUnitName?: boolean;\n        memoryLimit?: string;\n        TimeLimit?: nonNegativeInteger;\n        WarnTimeLimit?: nonNegativeInteger;\n        Priority?: string;\n        RemoteDali?: string;\n        Comment?: string;\n        DontCopyFiles?: boolean;\n        SourceProcess?: string;\n        AllowForeignFiles?: boolean;\n        UpdateDfs?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        IncludeFileErrors?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface WUPublishWorkunitResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Result?: string;\n        QuerySet?: string;\n        QueryName?: string;\n        QueryId?: string;\n        ReloadFailed?: boolean;\n        Suspended?: boolean;\n        ErrorMessage?: string;\n        ClusterFiles?: ClusterFiles;\n        FileErrors?: FileErrors;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface WUPushEvent {\n        EventName?: string;\n        EventText?: string;\n    }\n\n    export interface WUPushEventResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface WUQuery {\n        Wuid?: string;\n        Type?: string;\n        Cluster?: string;\n        RoxieCluster?: string;\n        Owner?: string;\n        State?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ECL?: string;\n        Jobname?: string;\n        LogicalFile?: string;\n        LogicalFileSearchType?: string;\n        ApplicationValues?: ApplicationValues;\n        BeforeWU?: string;\n        AfterWU?: string;\n        TotalClusterTimeThresholdMilliSec?: unsignedInt;\n        Count?: int;\n        PageSize?: long;\n        PageStartFrom?: long;\n        PageEndAt?: long;\n        Protected?: WUProtectFilter;\n        MinimumExecuteCost?: double;\n        MinimumFileAccessCost?: double;\n        MinimumCompileCost?: double;\n        Sortby?: string;\n        Descending?: boolean;\n        CacheHint?: long;\n    }\n\n    export interface ECLWorkunit {\n        Wuid?: string;\n        Owner?: string;\n        Cluster?: string;\n        RoxieCluster?: string;\n        Jobname?: string;\n        Queue?: string;\n        StateID?: int;\n        State?: string;\n        StateEx?: string;\n        Description?: string;\n        Protected?: boolean;\n        Active?: boolean;\n        Action?: int;\n        ActionEx?: string;\n        DateTimeScheduled?: dateTime;\n        PriorityClass?: int;\n        PriorityLevel?: int;\n        Scope?: string;\n        Snapshot?: string;\n        ResultLimit?: int;\n        Archived?: boolean;\n        IsPausing?: boolean;\n        ThorLCR?: boolean;\n        EventSchedule?: int;\n        TotalClusterTime?: string;\n        AbortBy?: string;\n        AbortTime?: string;\n        Query?: Query;\n        Helpers?: Helpers;\n        Exceptions?: Exceptions2;\n        Graphs?: Graphs;\n        SourceFiles?: SourceFiles;\n        Results?: Results;\n        Variables?: Variables;\n        Timers?: Timers;\n        DebugValues?: DebugValues;\n        ApplicationValues?: ApplicationValues;\n        Workflows?: Workflows;\n        TimingData?: TimingData;\n        AllowedClusters?: AllowedClusters;\n        ErrorCount?: int;\n        WarningCount?: int;\n        InfoCount?: int;\n        AlertCount?: int;\n        GraphCount?: int;\n        SourceFileCount?: int;\n        ResultCount?: int;\n        VariableCount?: int;\n        TimerCount?: int;\n        HasDebugValue?: boolean;\n        ApplicationValueCount?: int;\n        XmlParams?: string;\n        AccessFlag?: int;\n        ClusterFlag?: int;\n        HelpersDesc?: string;\n        GraphsDesc?: string;\n        SourceFilesDesc?: string;\n        ResultsDesc?: string;\n        VariablesDesc?: string;\n        TimersDesc?: string;\n        DebugValuesDesc?: string;\n        ApplicationValuesDesc?: string;\n        WorkflowsDesc?: string;\n        HasArchiveQuery?: boolean;\n        ThorLogList?: ThorLogList;\n        ResourceURLs?: ResourceURLs;\n        ResultViewCount?: int;\n        ResourceURLCount?: int;\n        DebugValueCount?: int;\n        WorkflowCount?: int;\n        HelpersCount?: int;\n        ServiceNames?: ServiceNames;\n        ExecuteCost?: double;\n        FileAccessCost?: double;\n        CostSavingPotential?: double;\n        CompileCost?: double;\n        NoAccess?: boolean;\n        ECLWUProcessList?: ECLWUProcessList;\n        FailureDesc?: string;\n    }\n\n    export interface Workunits2 {\n        ECLWorkunit?: ECLWorkunit[];\n    }\n\n    export interface WUQueryResponse {\n        Exceptions?: Exceptions;\n        Type?: string;\n        Cluster?: string;\n        RoxieCluster?: string;\n        Owner?: string;\n        State?: string;\n        StartDate?: string;\n        EndDate?: string;\n        ECL?: string;\n        Jobname?: string;\n        LogicalFile?: string;\n        LogicalFileSearchType?: string;\n        Current?: string;\n        Next?: string;\n        Count?: int;\n        PageSize?: long;\n        PrevPage?: long;\n        NextPage?: long;\n        LastPage?: long;\n        NumWUs?: int;\n        First?: boolean;\n        PageStartFrom?: long;\n        PageEndAt?: long;\n        Sortby?: string;\n        Descending?: boolean;\n        BasicQuery?: string;\n        Filters?: string;\n        CacheHint?: long;\n        Workunits?: Workunits2;\n    }\n\n    export interface WUQueryConfig {\n        Target?: string;\n        QueryId?: string;\n        Wait?: int;\n        NoReload?: boolean;\n        memoryLimit?: string;\n        TimeLimit?: nonNegativeInteger;\n        WarnTimeLimit?: nonNegativeInteger;\n        Priority?: string;\n        Comment?: string;\n    }\n\n    export interface Result {\n        QueryId?: string;\n    }\n\n    export interface Results2 {\n        Result?: Result[];\n    }\n\n    export interface WUQueryConfigResponse {\n        Exceptions?: Exceptions;\n        ReloadFailed?: boolean;\n        Results?: Results2;\n    }\n\n    export interface WUQueryDetails {\n        QueryId?: string;\n        QuerySet?: string;\n        IncludeStateOnClusters?: boolean;\n        IncludeSuperFiles?: boolean;\n        IncludeWsEclAddresses?: boolean;\n        CheckAllNodes?: boolean;\n        IncludeWUDetails?: boolean;\n        IncludeWUQueryFiles?: boolean;\n    }\n\n    export interface LogicalFiles {\n        Item?: string[];\n    }\n\n    export interface SubFiles {\n        File?: string[];\n    }\n\n    export interface SuperFiles {\n        SuperFile?: SuperFile[];\n    }\n\n    export interface SuperFile {\n        Name?: string;\n        SubFiles?: SubFiles;\n        SuperFiles?: SuperFiles;\n    }\n\n    export interface LibrariesUsed {\n        Item?: string[];\n    }\n\n    export interface WsEclAddresses {\n        Address?: string[];\n    }\n\n    export interface WUGraphs {\n        ECLGraph?: ECLGraph[];\n    }\n\n    export interface WUTimers {\n        ECLTimer?: ECLTimer[];\n    }\n\n    export interface WUQueryDetailsResponse {\n        Exceptions?: Exceptions;\n        QueryId?: string;\n        QuerySet?: string;\n        QueryName?: string;\n        Wuid?: string;\n        Dll?: string;\n        Suspended?: boolean;\n        Activated?: boolean;\n        SuspendedBy?: string;\n        Clusters?: Clusters2;\n        PublishedBy?: string;\n        Comment?: string;\n        LogicalFiles?: LogicalFiles;\n        SuperFiles?: SuperFiles;\n        IsLibrary?: boolean;\n        Priority?: string;\n        PriorityID?: int;\n        WUSnapShot?: string;\n        CompileTime?: string;\n        LibrariesUsed?: LibrariesUsed;\n        CountGraphs?: int;\n        ResourceURLCount?: int;\n        WsEclAddresses?: WsEclAddresses;\n        WUGraphs?: WUGraphs;\n        WUTimers?: WUTimers;\n    }\n\n    export interface WUQueryDetailsLightWeight {\n        QueryId?: string;\n        QuerySet?: string;\n        IncludeWUDetails?: boolean;\n        IncludeWUQueryFiles?: boolean;\n        IncludeSuperFiles?: boolean;\n        IncludeWsEclAddresses?: boolean;\n        IncludeStateOnClusters?: boolean;\n        CheckAllNodes?: boolean;\n    }\n\n    export interface WUQueryFiles {\n        Target?: string;\n        QueryId?: string;\n    }\n\n    export interface File3 {\n        FileName?: string;\n        FileSize?: long;\n        NumberOfParts?: unsignedInt;\n    }\n\n    export interface Files2 {\n        File?: File3[];\n    }\n\n    export interface Query2 {\n        QueryId?: string;\n        Files?: Files2;\n        SuperFiles?: SuperFiles;\n    }\n\n    export interface Queries3 {\n        Query?: Query2[];\n    }\n\n    export interface WUQueryFilesResponse {\n        Exceptions?: Exceptions;\n        Files?: Files2;\n        SuperFiles?: SuperFiles;\n        Queries?: Queries3;\n    }\n\n    export interface WUQueryGetGraph {\n        Target?: string;\n        QueryId?: string;\n        GraphName?: string;\n        SubGraphId?: string;\n    }\n\n    export interface WUQueryGetGraphResponse {\n        Exceptions?: Exceptions;\n        Graphs?: Graphs3;\n    }\n\n    export interface WUQueryGetSummaryStats {\n        Target?: string;\n        QueryId?: string;\n        FromTime?: string;\n        ToTime?: string;\n        IncludeRawStats?: boolean;\n    }\n\n    export interface QuerySummaryStats {\n        Endpoint?: string;\n        Status?: string;\n        StartTime?: string;\n        EndTime?: string;\n        CountTotal?: int;\n        CountFailed?: int;\n        AverageSlavesReplyLen?: int;\n        AverageBytesOut?: long;\n        SizeAvgPeakMemory?: long;\n        TimeAvgTotalExecuteMinutes?: long;\n        TimeMinTotalExecuteMinutes?: long;\n        TimeMaxTotalExecuteMinutes?: long;\n        Percentile97?: long;\n        Percentile97Estimate?: boolean;\n    }\n\n    export interface StatsList {\n        QuerySummaryStats?: QuerySummaryStats[];\n    }\n\n    export interface AggregateQueryStatsList {\n        QuerySummaryStats?: QuerySummaryStats[];\n    }\n\n    export interface QueryStatsRecord {\n        StartTime?: string;\n        ElapsedTimeMs?: long;\n        MemoryUsed?: long;\n        BytesOut?: long;\n        SlavesReplyLen?: int;\n        Failed?: boolean;\n    }\n\n    export interface QueryStatsRecordList {\n        QueryStatsRecord?: QueryStatsRecord[];\n    }\n\n    export interface QueryStats {\n        ID?: string;\n        AggregateQueryStatsList?: AggregateQueryStatsList;\n        QueryStatsRecordList?: QueryStatsRecordList;\n    }\n\n    export interface QueryStatsList {\n        EndpointQueryStats?: EndpointQueryStats[];\n    }\n\n    export interface EndpointQueryStats {\n        Endpoint?: string;\n        Status?: string;\n        QueryStatsList?: QueryStatsList;\n    }\n\n    export interface WUQueryGetSummaryStatsResponse {\n        Exceptions?: Exceptions;\n        StatsList?: StatsList;\n        QueryStatsList?: QueryStatsList;\n    }\n\n    export interface Alias {\n        Name?: string;\n    }\n\n    export interface Aliases2 {\n        Alias?: Alias[];\n    }\n\n    export interface WUQuerysetAliasAction {\n        Action?: QuerySetAliasActionTypes;\n        QuerySetName?: string;\n        Aliases?: Aliases2;\n    }\n\n    export interface Result2 {\n        Name?: string;\n        Success?: boolean;\n        Code?: int;\n        Message?: string;\n    }\n\n    export interface Results3 {\n        Result?: Result2[];\n    }\n\n    export interface WUQuerySetAliasActionResponse {\n        Exceptions?: Exceptions;\n        Action?: QuerySetAliasActionTypes;\n        QuerySetName?: string;\n        Results?: Results3;\n    }\n\n    export interface WUQuerysetCopyQuery {\n        Source?: string;\n        Target?: string;\n        Cluster?: string;\n        DaliServer?: string;\n        Activate?: int;\n        Overwrite?: boolean;\n        DontCopyFiles?: boolean;\n        Wait?: int;\n        NoReload?: boolean;\n        memoryLimit?: string;\n        TimeLimit?: nonNegativeInteger;\n        WarnTimeLimit?: nonNegativeInteger;\n        priority?: string;\n        Comment?: string;\n        SourceProcess?: string;\n        DestName?: string;\n        AllowForeignFiles?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        IncludeFileErrors?: boolean;\n        SourceSSL?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface WUQuerySetCopyQueryResponse {\n        Exceptions?: Exceptions;\n        QueryId?: string;\n        FileErrors?: FileErrors;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface WUQuerysetDetails {\n        QuerySetName?: string;\n        Filter?: string;\n        ClusterName?: string;\n        FilterType?: WUQuerySetFilterType;\n        CheckAllNodes?: boolean;\n    }\n\n    export interface QuerysetAliases {\n        QuerySetAlias?: QuerySetAlias[];\n    }\n\n    export interface ClusterNames {\n        Item?: string[];\n    }\n\n    export interface WUQuerySetDetailsResponse {\n        Exceptions?: Exceptions;\n        QuerySetName?: string;\n        QuerysetQueries?: QuerysetQueries;\n        QuerysetAliases?: QuerysetAliases;\n        ClusterName?: string;\n        Filter?: string;\n        FilterType?: WUQuerySetFilterType;\n        ClusterNames?: ClusterNames;\n    }\n\n    export interface WUQuerysetExport {\n        Target?: string;\n        Compress?: boolean;\n        ActiveOnly?: boolean;\n        Protect?: boolean;\n    }\n\n    export interface WUQuerysetExportResponse {\n        Exceptions?: Exceptions;\n        Target?: string;\n        Compressed?: boolean;\n        Data?: base64Binary;\n    }\n\n    export interface WUQuerysetImport {\n        Target?: string;\n        QueryMask?: string;\n        Replace?: boolean;\n        ActiveOnly?: boolean;\n        Activation?: QuerysetImportActivation;\n        Compressed?: boolean;\n        Data?: base64Binary;\n        AllowForeignFiles?: boolean;\n        DfsServer?: string;\n        CopyFiles?: boolean;\n        OverwriteDfs?: boolean;\n        SourceProcess?: string;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        IncludeFileErrors?: boolean;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface ImportedQueries {\n        QueryId?: string[];\n    }\n\n    export interface MissingWuids {\n        QueryId?: string[];\n    }\n\n    export interface WUQuerysetImportResponse {\n        Exceptions?: Exceptions;\n        Target?: string;\n        ClearedExisting?: boolean;\n        Success?: boolean;\n        ImportedQueries?: ImportedQueries;\n        ExistingQueries?: ExistingQueries;\n        MissingWuids?: MissingWuids;\n        FileErrors?: FileErrors;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface ClientState {\n        Suspended?: string;\n    }\n\n    export interface Query3 {\n        QueryId?: string;\n        Activated?: boolean;\n        SuspendedByUser?: boolean;\n        ClientState?: ClientState;\n    }\n\n    export interface Queries4 {\n        Query?: Query3[];\n    }\n\n    export interface WUQuerysetQueryAction {\n        Action?: QuerySetQueryActionTypes;\n        QuerySetName?: string;\n        Queries?: Queries4;\n    }\n\n    export interface Result3 {\n        QueryId?: string;\n        WUID?: string;\n        Suspended?: boolean;\n        Success?: boolean;\n        Code?: int;\n        Message?: string;\n    }\n\n    export interface Results4 {\n        Result?: Result3[];\n    }\n\n    export interface WUQuerySetQueryActionResponse {\n        Exceptions?: Exceptions;\n        Action?: QuerySetQueryActionTypes;\n        QuerySetName?: string;\n        Results?: Results4;\n    }\n\n    export interface WUQuerysets {\n        test?: boolean;\n    }\n\n    export interface QuerySet {\n        QuerySetName?: string;\n    }\n\n    export interface Querysets2 {\n        QuerySet?: QuerySet[];\n    }\n\n    export interface WUQuerysetsResponse {\n        Exceptions?: Exceptions;\n        Querysets?: Querysets2;\n    }\n\n    export interface WURecreateQuery {\n        Target?: string;\n        QueryId?: string;\n        DebugValues?: DebugValues2;\n        DestTarget?: string;\n        Republish?: boolean;\n        Activate?: WUQueryActivationMode;\n        NoReload?: boolean;\n        MemoryLimit?: string;\n        TimeLimit?: nonNegativeInteger;\n        WarnTimeLimit?: nonNegativeInteger;\n        Priority?: string;\n        Comment?: string;\n        RemoteDali?: string;\n        DontCopyFiles?: boolean;\n        SourceProcess?: string;\n        AllowForeignFiles?: boolean;\n        UpdateDfs?: boolean;\n        UpdateSuperFiles?: boolean;\n        UpdateCloneFrom?: boolean;\n        AppendCluster?: boolean;\n        IncludeFileErrors?: boolean;\n        Wait?: int;\n        DfuCopyFiles?: boolean;\n        DfuQueue?: string;\n        DfuWait?: nonNegativeInteger;\n        DfuOverwrite?: boolean;\n        OnlyCopyFiles?: boolean;\n        StopIfFilesCopied?: boolean;\n        DfuPublisherWuid?: string;\n        RemoteStorage?: string;\n        KeyCompression?: string;\n        DfuTargetPlane?: string;\n    }\n\n    export interface WURecreateQueryResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        QuerySet?: string;\n        QueryName?: string;\n        QueryId?: string;\n        MemoryLimit?: string;\n        TimeLimit?: nonNegativeInteger;\n        WarnTimeLimit?: nonNegativeInteger;\n        Priority?: string;\n        Comment?: string;\n        ReloadFailed?: boolean;\n        Suspended?: boolean;\n        ErrorMessage?: string;\n        FileErrors?: FileErrors;\n        DfuPublisherWuid?: string;\n        DfuPublisherState?: string;\n    }\n\n    export interface WUResubmit {\n        Wuids?: Wuids;\n        BlockTillFinishTimer?: int;\n        ResetWorkflow?: boolean;\n        CloneWorkunit?: boolean;\n    }\n\n    export interface WU {\n        WUID?: string;\n        ParentWUID?: string;\n    }\n\n    export interface WUs {\n        WU?: WU[];\n    }\n\n    export interface WUResubmitResponse {\n        Exceptions?: Exceptions;\n        WUs?: WUs;\n    }\n\n    export interface FilterBy {\n        NamedValue?: NamedValue[];\n    }\n\n    export interface WUResult {\n        Wuid?: string;\n        Sequence?: int;\n        ResultName?: string;\n        LogicalName?: string;\n        Cluster?: string;\n        SuppressXmlSchema?: boolean;\n        BypassCachedResult?: boolean;\n        FilterBy?: FilterBy;\n        Start?: long;\n        Count?: int;\n    }\n\n    export interface WUResultResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Sequence?: int;\n        LogicalName?: string;\n        Cluster?: string;\n        Name?: string;\n        Start?: long;\n        Requested?: int;\n        Count?: int;\n        Total?: long;\n        Result?: string;\n    }\n\n    export interface WUResultBin {\n        LogicalName?: string;\n        Wuid?: string;\n        ResultName?: string;\n        Sequence?: int;\n        Format?: string;\n        Cluster?: string;\n        FilterBy?: FilterBy;\n        Start?: long;\n        Count?: int;\n    }\n\n    export interface WUResultBinResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Sequence?: int;\n        Name?: string;\n        Start?: long;\n        Count?: int;\n        Requested?: int;\n        Total?: long;\n        Result?: base64Binary;\n        Format?: string;\n    }\n\n    export interface WUResultSummary {\n        Wuid?: string;\n        Sequence?: int;\n    }\n\n    export interface Result4 {\n        Name?: string;\n        Sequence?: int;\n        Value?: string;\n        Link?: string;\n        FileName?: string;\n        IsSupplied?: boolean;\n        ShowFileContent?: boolean;\n        Total?: long;\n        ECLSchemas?: ECLSchemas;\n        XmlSchema?: string;\n    }\n\n    export interface WUResultSummaryResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        Sequence?: int;\n        Format?: int;\n        Result?: Result4;\n    }\n\n    export interface WUResultView {\n        Wuid?: string;\n        ViewName?: string;\n        Sequence?: int;\n        ResultName?: string;\n    }\n\n    export interface WUResultViewResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        ViewName?: string;\n        Result?: string;\n    }\n\n    export interface Variables2 {\n        NamedValue?: NamedValue[];\n    }\n\n    export interface WURun {\n        QuerySet?: string;\n        Query?: string;\n        Wuid?: string;\n        CloneWorkunit?: boolean;\n        Cluster?: string;\n        Wait?: int;\n        Input?: string;\n        NoRootTag?: boolean;\n        DebugValues?: DebugValues2;\n        Variables?: Variables2;\n        ApplicationValues?: ApplicationValues;\n        ExceptionSeverity?: WUExceptionSeverity;\n    }\n\n    export interface WURunResponse {\n        Exceptions?: Exceptions;\n        Wuid?: string;\n        State?: string;\n        Results?: string;\n    }\n\n    export interface WUSchedule {\n        Wuid?: string;\n        Cluster?: string;\n        Queue?: string;\n        Snapshot?: string;\n        When?: dateTime;\n        MaxRunTime?: int;\n    }\n\n    export interface WUScheduleResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface WUShowScheduled {\n        Cluster?: string;\n        EventName?: string;\n        PushEventName?: string;\n        PushEventText?: string;\n        State?: string;\n        JobName?: string;\n        Owner?: string;\n        EventText?: string;\n    }\n\n    export interface ServerInfo {\n        Name?: string;\n        NetAddress?: string;\n    }\n\n    export interface Clusters3 {\n        ServerInfo?: ServerInfo[];\n    }\n\n    export interface ScheduledWU {\n        Wuid?: string;\n        Cluster?: string;\n        EventName?: string;\n        EventText?: string;\n        JobName?: string;\n        StateID?: int;\n        State?: string;\n        Owner?: string;\n    }\n\n    export interface Workunits3 {\n        ScheduledWU?: ScheduledWU[];\n    }\n\n    export interface WUShowScheduledResponse {\n        Exceptions?: Exceptions;\n        ClusterSelected?: int;\n        EventName?: string;\n        PushEventName?: string;\n        PushEventText?: string;\n        Query?: string;\n        Clusters?: Clusters3;\n        Workunits?: Workunits3;\n    }\n\n    export interface WUSubmit {\n        Wuid?: string;\n        Cluster?: string;\n        Queue?: string;\n        Snapshot?: string;\n        MaxRunTime?: int;\n        MaxCost?: int;\n        BlockTillFinishTimer?: int;\n        SyntaxCheck?: boolean;\n        NotifyCluster?: boolean;\n    }\n\n    export interface WUSubmitResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface WUSyntaxCheckECL {\n        ECL?: string;\n        ModuleName?: string;\n        AttributeName?: string;\n        Queue?: string;\n        Cluster?: string;\n        Snapshot?: string;\n        TimeToWait?: int;\n        PersistWorkunit?: boolean;\n        DebugValues?: DebugValues;\n    }\n\n    export interface WUSyntaxCheckResponse {\n        Exceptions?: Exceptions;\n        Errors?: Errors;\n        Message?: string;\n    }\n\n    export interface WUUpdate {\n        Wuid?: string;\n        State?: int;\n        StateOrig?: int;\n        Jobname?: string;\n        JobnameOrig?: string;\n        QueryText?: string;\n        Action?: int;\n        Description?: string;\n        DescriptionOrig?: string;\n        AddDrilldownFields?: boolean;\n        ResultLimit?: int;\n        Protected?: boolean;\n        ProtectedOrig?: boolean;\n        PriorityClass?: int;\n        PriorityLevel?: int;\n        Scope?: string;\n        ScopeOrig?: string;\n        ClusterSelection?: string;\n        ClusterOrig?: string;\n        XmlParams?: string;\n        ThorSlaveIP?: string;\n        QueryMainDefinition?: string;\n        DebugValues?: DebugValues;\n        ApplicationValues?: ApplicationValues;\n    }\n\n    export interface WUUpdateQueryEntry {\n        QuerySet?: string;\n        QueryId?: string;\n        Comment?: string;\n    }\n\n    export interface WUUpdateQueryEntryResponse {\n        Exceptions?: Exceptions;\n    }\n\n    export interface WUWaitCompiled {\n        Wuid?: string;\n        Wait?: int;\n        ReturnOnWait?: boolean;\n    }\n\n    export interface WUWaitResponse {\n        Exceptions?: Exceptions;\n        StateID?: int;\n    }\n\n    export interface WUWaitComplete {\n        Wuid?: string;\n        Wait?: int;\n        ReturnOnWait?: boolean;\n    }\n\n}\n\nexport class WorkunitsServiceBase extends Service {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection, \"WsWorkunits\", \"2.08\");\n    }\n\n    GVCAjaxGraph(request: WsWorkunits.GVCAjaxGraph, abortSignal?: AbortSignal): Promise<WsWorkunits.GVCAjaxGraphResponse> {\n        return this._connection.send(\"GVCAjaxGraph\", request, \"json\", false, abortSignal, \"GVCAjaxGraphResponse\");\n    }\n\n    Ping(request: WsWorkunits.Ping, abortSignal?: AbortSignal): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n        return this._connection.send(\"Ping\", request, \"json\", false, abortSignal, \"WsWorkunitsPingResponse\");\n    }\n\n    WUAbort(request: WsWorkunits.WUAbort, abortSignal?: AbortSignal): Promise<WsWorkunits.WUAbortResponse> {\n        return this._connection.send(\"WUAbort\", request, \"json\", false, abortSignal, \"WUAbortResponse\");\n    }\n\n    WUAction(request: WsWorkunits.WUAction, abortSignal?: AbortSignal): Promise<WsWorkunits.WUActionResponse> {\n        return this._connection.send(\"WUAction\", request, \"json\", false, abortSignal, \"WUActionResponse\");\n    }\n\n    WUAddLocalFileToWorkunit(request: WsWorkunits.WUAddLocalFileToWorkunit, abortSignal?: AbortSignal): Promise<WsWorkunits.WUAddLocalFileToWorkunitResponse> {\n        return this._connection.send(\"WUAddLocalFileToWorkunit\", request, \"json\", false, abortSignal, \"WUAddLocalFileToWorkunitResponse\");\n    }\n\n    WUAnalyseHotspot(request: WsWorkunits.WUAnalyseHotspot, abortSignal?: AbortSignal): Promise<WsWorkunits.WUAnalyseHotspotResponse> {\n        return this._connection.send(\"WUAnalyseHotspot\", request, \"json\", false, abortSignal, \"WUAnalyseHotspotResponse\");\n    }\n\n    WUCDebug(request: WsWorkunits.WUCDebug, abortSignal?: AbortSignal): Promise<WsWorkunits.WUDebugResponse> {\n        return this._connection.send(\"WUCDebug\", request, \"json\", false, abortSignal, \"WUDebugResponse\");\n    }\n\n    WUCheckFeatures(request: WsWorkunits.WUCheckFeatures, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCheckFeaturesResponse> {\n        return this._connection.send(\"WUCheckFeatures\", request, \"json\", false, abortSignal, \"WUCheckFeaturesResponse\");\n    }\n\n    WUClusterJobQueueLOG(request: WsWorkunits.WUClusterJobQueueLOG, abortSignal?: AbortSignal): Promise<WsWorkunits.WUClusterJobQueueLOGResponse> {\n        return this._connection.send(\"WUClusterJobQueueLOG\", request, \"json\", false, abortSignal, \"WUClusterJobQueueLOGResponse\");\n    }\n\n    WUClusterJobQueueXLS(request: WsWorkunits.WUClusterJobQueueXLS, abortSignal?: AbortSignal): Promise<WsWorkunits.WUClusterJobQueueXLSResponse> {\n        return this._connection.send(\"WUClusterJobQueueXLS\", request, \"json\", false, abortSignal, \"WUClusterJobQueueXLSResponse\");\n    }\n\n    WUClusterJobSummaryXLS(request: WsWorkunits.WUClusterJobSummaryXLS, abortSignal?: AbortSignal): Promise<WsWorkunits.WUClusterJobSummaryXLSResponse> {\n        return this._connection.send(\"WUClusterJobSummaryXLS\", request, \"json\", false, abortSignal, \"WUClusterJobSummaryXLSResponse\");\n    }\n\n    WUClusterJobXLS(request: WsWorkunits.WUClusterJobXLS, abortSignal?: AbortSignal): Promise<WsWorkunits.WUClusterJobXLSResponse> {\n        return this._connection.send(\"WUClusterJobXLS\", request, \"json\", false, abortSignal, \"WUClusterJobXLSResponse\");\n    }\n\n    WUCompileECL(request: WsWorkunits.WUCompileECL, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCompileECLResponse> {\n        return this._connection.send(\"WUCompileECL\", request, \"json\", false, abortSignal, \"WUCompileECLResponse\");\n    }\n\n    WUCopyLogicalFiles(request: WsWorkunits.WUCopyLogicalFiles, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCopyLogicalFilesResponse> {\n        return this._connection.send(\"WUCopyLogicalFiles\", request, \"json\", false, abortSignal, \"WUCopyLogicalFilesResponse\");\n    }\n\n    WUCopyQuerySet(request: WsWorkunits.WUCopyQuerySet, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCopyQuerySetResponse> {\n        return this._connection.send(\"WUCopyQuerySet\", request, \"json\", false, abortSignal, \"WUCopyQuerySetResponse\");\n    }\n\n    WUCreate(request: WsWorkunits.WUCreate, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCreateResponse> {\n        return this._connection.send(\"WUCreate\", request, \"json\", false, abortSignal, \"WUCreateResponse\");\n    }\n\n    WUCreateAndUpdate(request: WsWorkunits.WUCreateAndUpdate, abortSignal?: AbortSignal): Promise<WsWorkunits.WUUpdateResponse> {\n        return this._connection.send(\"WUCreateAndUpdate\", request, \"json\", false, abortSignal, \"WUUpdateResponse\");\n    }\n\n    WUCreateZAPInfo(request: WsWorkunits.WUCreateZAPInfo, abortSignal?: AbortSignal): Promise<WsWorkunits.WUCreateZAPInfoResponse> {\n        return this._connection.send(\"WUCreateZAPInfo\", request, \"json\", false, abortSignal, \"WUCreateZAPInfoResponse\");\n    }\n\n    WUDelete(request: WsWorkunits.WUDelete, abortSignal?: AbortSignal): Promise<WsWorkunits.WUDeleteResponse> {\n        return this._connection.send(\"WUDelete\", request, \"json\", false, abortSignal, \"WUDeleteResponse\");\n    }\n\n    WUDeployWorkunit(request: WsWorkunits.WUDeployWorkunit, abortSignal?: AbortSignal): Promise<WsWorkunits.WUDeployWorkunitResponse> {\n        return this._connection.send(\"WUDeployWorkunit\", request, \"json\", false, abortSignal, \"WUDeployWorkunitResponse\");\n    }\n\n    WUDetails(request: WsWorkunits.WUDetails, abortSignal?: AbortSignal): Promise<WsWorkunits.WUDetailsResponse> {\n        return this._connection.send(\"WUDetails\", request, \"json\", false, abortSignal, \"WUDetailsResponse\");\n    }\n\n    WUDetailsMeta(request: WsWorkunits.WUDetailsMeta, abortSignal?: AbortSignal): Promise<WsWorkunits.WUDetailsMetaResponse> {\n        return this._connection.send(\"WUDetailsMeta\", request, \"json\", false, abortSignal, \"WUDetailsMetaResponse\");\n    }\n\n    WUEclDefinitionAction(request: WsWorkunits.WUEclDefinitionAction, abortSignal?: AbortSignal): Promise<WsWorkunits.WUEclDefinitionActionResponse> {\n        return this._connection.send(\"WUEclDefinitionAction\", request, \"json\", false, abortSignal, \"WUEclDefinitionActionResponse\");\n    }\n\n    WUExport(request: WsWorkunits.WUExport, abortSignal?: AbortSignal): Promise<WsWorkunits.WUExportResponse> {\n        return this._connection.send(\"WUExport\", request, \"json\", false, abortSignal, \"WUExportResponse\");\n    }\n\n    WUFile(request: WsWorkunits.WUFile, abortSignal?: AbortSignal): Promise<WsWorkunits.WULogFileResponse> {\n        return this._connection.send(\"WUFile\", request, \"json\", false, abortSignal, \"WULogFileResponse\");\n    }\n\n    WUFullResult(request: WsWorkunits.WUFullResult, abortSignal?: AbortSignal): Promise<WsWorkunits.WUFullResultResponse> {\n        return this._connection.send(\"WUFullResult\", request, \"json\", false, abortSignal, \"WUFullResultResponse\");\n    }\n\n    WUGVCGraphInfo(request: WsWorkunits.WUGVCGraphInfo, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGVCGraphInfoResponse> {\n        return this._connection.send(\"WUGVCGraphInfo\", request, \"json\", false, abortSignal, \"WUGVCGraphInfoResponse\");\n    }\n\n    WUGetArchiveFile(request: WsWorkunits.WUGetArchiveFile, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetArchiveFileResponse> {\n        return this._connection.send(\"WUGetArchiveFile\", request, \"json\", false, abortSignal, \"WUGetArchiveFileResponse\");\n    }\n\n    WUGetDependancyTrees(request: WsWorkunits.WUGetDependancyTrees, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetDependancyTreesResponse> {\n        return this._connection.send(\"WUGetDependancyTrees\", request, \"json\", false, abortSignal, \"WUGetDependancyTreesResponse\");\n    }\n\n    WUGetGraph(request: WsWorkunits.WUGetGraph, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetGraphResponse> {\n        return this._connection.send(\"WUGetGraph\", request, \"json\", false, abortSignal, \"WUGetGraphResponse\");\n    }\n\n    WUGetGraphNameAndTypes(request: WsWorkunits.WUGetGraphNameAndTypes, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetGraphNameAndTypesResponse> {\n        return this._connection.send(\"WUGetGraphNameAndTypes\", request, \"json\", false, abortSignal, \"WUGetGraphNameAndTypesResponse\");\n    }\n\n    WUGetNumFileToCopy(request: WsWorkunits.WUGetNumFileToCopy, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetNumFileToCopyResponse> {\n        return this._connection.send(\"WUGetNumFileToCopy\", request, \"json\", false, abortSignal, \"WUGetNumFileToCopyResponse\");\n    }\n\n    WUGetPlugins(request: WsWorkunits.WUGetPlugins, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetPluginsResponse> {\n        return this._connection.send(\"WUGetPlugins\", request, \"json\", false, abortSignal, \"WUGetPluginsResponse\");\n    }\n\n    WUGetStats(request: WsWorkunits.WUGetStats, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetStatsResponse> {\n        return this._connection.send(\"WUGetStats\", request, \"json\", false, abortSignal, \"WUGetStatsResponse\");\n    }\n\n    WUGetThorJobList(request: WsWorkunits.WUGetThorJobList, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetThorJobListResponse> {\n        return this._connection.send(\"WUGetThorJobList\", request, \"json\", false, abortSignal, \"WUGetThorJobListResponse\");\n    }\n\n    WUGetThorJobQueue(request: WsWorkunits.WUGetThorJobQueue, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetThorJobQueueResponse> {\n        return this._connection.send(\"WUGetThorJobQueue\", request, \"json\", false, abortSignal, \"WUGetThorJobQueueResponse\");\n    }\n\n    WUGetZAPInfo(request: WsWorkunits.WUGetZAPInfo, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGetZAPInfoResponse> {\n        return this._connection.send(\"WUGetZAPInfo\", request, \"json\", false, abortSignal, \"WUGetZAPInfoResponse\");\n    }\n\n    WUGraphInfo(request: WsWorkunits.WUGraphInfo, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGraphInfoResponse> {\n        return this._connection.send(\"WUGraphInfo\", request, \"json\", false, abortSignal, \"WUGraphInfoResponse\");\n    }\n\n    WUGraphTiming(request: WsWorkunits.WUGraphTiming, abortSignal?: AbortSignal): Promise<WsWorkunits.WUGraphTimingResponse> {\n        return this._connection.send(\"WUGraphTiming\", request, \"json\", false, abortSignal, \"WUGraphTimingResponse\");\n    }\n\n    WUInfo(request: WsWorkunits.WUInfo, abortSignal?: AbortSignal): Promise<WsWorkunits.WUInfoResponse> {\n        return this._connection.send(\"WUInfo\", request, \"json\", false, abortSignal, \"WUInfoResponse\");\n    }\n\n    WUInfoDetails(request: WsWorkunits.WUInfoDetails, abortSignal?: AbortSignal): Promise<WsWorkunits.WUInfoResponse> {\n        return this._connection.send(\"WUInfoDetails\", request, \"json\", false, abortSignal, \"WUInfoResponse\");\n    }\n\n    WUJobList(request: WsWorkunits.WUJobList, abortSignal?: AbortSignal): Promise<WsWorkunits.WUJobListResponse> {\n        return this._connection.send(\"WUJobList\", request, \"json\", false, abortSignal, \"WUJobListResponse\");\n    }\n\n    WULightWeightQuery(request: WsWorkunits.WULightWeightQuery, abortSignal?: AbortSignal): Promise<WsWorkunits.WULightWeightQueryResponse> {\n        return this._connection.send(\"WULightWeightQuery\", request, \"json\", false, abortSignal, \"WULightWeightQueryResponse\");\n    }\n\n    WUListArchiveFiles(request: WsWorkunits.WUListArchiveFiles, abortSignal?: AbortSignal): Promise<WsWorkunits.WUListArchiveFilesResponse> {\n        return this._connection.send(\"WUListArchiveFiles\", request, \"json\", false, abortSignal, \"WUListArchiveFilesResponse\");\n    }\n\n    WUListLocalFileRequired(request: WsWorkunits.WUListLocalFileRequired, abortSignal?: AbortSignal): Promise<WsWorkunits.WUListLocalFileRequiredResponse> {\n        return this._connection.send(\"WUListLocalFileRequired\", request, \"json\", false, abortSignal, \"WUListLocalFileRequiredResponse\");\n    }\n\n    WUListQueries(request: WsWorkunits.WUListQueries, abortSignal?: AbortSignal): Promise<WsWorkunits.WUListQueriesResponse> {\n        return this._connection.send(\"WUListQueries\", request, \"json\", false, abortSignal, \"WUListQueriesResponse\");\n    }\n\n    WUListQueriesUsingFile(request: WsWorkunits.WUListQueriesUsingFile, abortSignal?: AbortSignal): Promise<WsWorkunits.WUListQueriesUsingFileResponse> {\n        return this._connection.send(\"WUListQueriesUsingFile\", request, \"json\", false, abortSignal, \"WUListQueriesUsingFileResponse\");\n    }\n\n    WUMultiQuerysetDetails(request: WsWorkunits.WUMultiQuerysetDetails, abortSignal?: AbortSignal): Promise<WsWorkunits.WUMultiQuerySetDetailsResponse> {\n        return this._connection.send(\"WUMultiQuerysetDetails\", request, \"json\", false, abortSignal, \"WUMultiQuerySetDetailsResponse\");\n    }\n\n    WUProcessGraph(request: WsWorkunits.WUProcessGraph, abortSignal?: AbortSignal): Promise<WsWorkunits.WUProcessGraphResponse> {\n        return this._connection.send(\"WUProcessGraph\", request, \"json\", false, abortSignal, \"WUProcessGraphResponse\");\n    }\n\n    WUProtect(request: WsWorkunits.WUProtect, abortSignal?: AbortSignal): Promise<WsWorkunits.WUProtectResponse> {\n        return this._connection.send(\"WUProtect\", request, \"json\", false, abortSignal, \"WUProtectResponse\");\n    }\n\n    WUPublishWorkunit(request: WsWorkunits.WUPublishWorkunit, abortSignal?: AbortSignal): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n        return this._connection.send(\"WUPublishWorkunit\", request, \"json\", false, abortSignal, \"WUPublishWorkunitResponse\");\n    }\n\n    WUPushEvent(request: WsWorkunits.WUPushEvent, abortSignal?: AbortSignal): Promise<WsWorkunits.WUPushEventResponse> {\n        return this._connection.send(\"WUPushEvent\", request, \"json\", false, abortSignal, \"WUPushEventResponse\");\n    }\n\n    WUQuery(request: WsWorkunits.WUQuery, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryResponse> {\n        return this._connection.send(\"WUQuery\", request, \"json\", false, abortSignal, \"WUQueryResponse\");\n    }\n\n    WUQueryConfig(request: WsWorkunits.WUQueryConfig, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryConfigResponse> {\n        return this._connection.send(\"WUQueryConfig\", request, \"json\", false, abortSignal, \"WUQueryConfigResponse\");\n    }\n\n    WUQueryDetails(request: WsWorkunits.WUQueryDetails, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryDetailsResponse> {\n        return this._connection.send(\"WUQueryDetails\", request, \"json\", false, abortSignal, \"WUQueryDetailsResponse\");\n    }\n\n    WUQueryDetailsLightWeight(request: WsWorkunits.WUQueryDetailsLightWeight, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryDetailsResponse> {\n        return this._connection.send(\"WUQueryDetailsLightWeight\", request, \"json\", false, abortSignal, \"WUQueryDetailsResponse\");\n    }\n\n    WUQueryFiles(request: WsWorkunits.WUQueryFiles, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryFilesResponse> {\n        return this._connection.send(\"WUQueryFiles\", request, \"json\", false, abortSignal, \"WUQueryFilesResponse\");\n    }\n\n    WUQueryGetGraph(request: WsWorkunits.WUQueryGetGraph, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryGetGraphResponse> {\n        return this._connection.send(\"WUQueryGetGraph\", request, \"json\", false, abortSignal, \"WUQueryGetGraphResponse\");\n    }\n\n    WUQueryGetSummaryStats(request: WsWorkunits.WUQueryGetSummaryStats, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryGetSummaryStatsResponse> {\n        return this._connection.send(\"WUQueryGetSummaryStats\", request, \"json\", false, abortSignal, \"WUQueryGetSummaryStatsResponse\");\n    }\n\n    WUQuerysetAliasAction(request: WsWorkunits.WUQuerysetAliasAction, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerySetAliasActionResponse> {\n        return this._connection.send(\"WUQuerysetAliasAction\", request, \"json\", false, abortSignal, \"WUQuerySetAliasActionResponse\");\n    }\n\n    WUQuerysetCopyQuery(request: WsWorkunits.WUQuerysetCopyQuery, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerySetCopyQueryResponse> {\n        return this._connection.send(\"WUQuerysetCopyQuery\", request, \"json\", false, abortSignal, \"WUQuerySetCopyQueryResponse\");\n    }\n\n    WUQuerysetDetails(request: WsWorkunits.WUQuerysetDetails, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerySetDetailsResponse> {\n        return this._connection.send(\"WUQuerysetDetails\", request, \"json\", false, abortSignal, \"WUQuerySetDetailsResponse\");\n    }\n\n    WUQuerysetExport(request: WsWorkunits.WUQuerysetExport, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerysetExportResponse> {\n        return this._connection.send(\"WUQuerysetExport\", request, \"json\", false, abortSignal, \"WUQuerysetExportResponse\");\n    }\n\n    WUQuerysetImport(request: WsWorkunits.WUQuerysetImport, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerysetImportResponse> {\n        return this._connection.send(\"WUQuerysetImport\", request, \"json\", false, abortSignal, \"WUQuerysetImportResponse\");\n    }\n\n    WUQuerysetQueryAction(request: WsWorkunits.WUQuerysetQueryAction, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerySetQueryActionResponse> {\n        return this._connection.send(\"WUQuerysetQueryAction\", request, \"json\", false, abortSignal, \"WUQuerySetQueryActionResponse\");\n    }\n\n    WUQuerysets(request: WsWorkunits.WUQuerysets, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQuerysetsResponse> {\n        return this._connection.send(\"WUQuerysets\", request, \"json\", false, abortSignal, \"WUQuerysetsResponse\");\n    }\n\n    WURecreateQuery(request: WsWorkunits.WURecreateQuery, abortSignal?: AbortSignal): Promise<WsWorkunits.WURecreateQueryResponse> {\n        return this._connection.send(\"WURecreateQuery\", request, \"json\", false, abortSignal, \"WURecreateQueryResponse\");\n    }\n\n    WUResubmit(request: WsWorkunits.WUResubmit, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResubmitResponse> {\n        return this._connection.send(\"WUResubmit\", request, \"json\", false, abortSignal, \"WUResubmitResponse\");\n    }\n\n    WUResult(request: WsWorkunits.WUResult, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultResponse> {\n        return this._connection.send(\"WUResult\", request, \"json\", false, abortSignal, \"WUResultResponse\");\n    }\n\n    WUResultBin(request: WsWorkunits.WUResultBin, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultBinResponse> {\n        return this._connection.send(\"WUResultBin\", request, \"json\", false, abortSignal, \"WUResultBinResponse\");\n    }\n\n    WUResultSummary(request: WsWorkunits.WUResultSummary, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultSummaryResponse> {\n        return this._connection.send(\"WUResultSummary\", request, \"json\", false, abortSignal, \"WUResultSummaryResponse\");\n    }\n\n    WUResultView(request: WsWorkunits.WUResultView, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultViewResponse> {\n        return this._connection.send(\"WUResultView\", request, \"json\", false, abortSignal, \"WUResultViewResponse\");\n    }\n\n    WURun(request: WsWorkunits.WURun, abortSignal?: AbortSignal): Promise<WsWorkunits.WURunResponse> {\n        return this._connection.send(\"WURun\", request, \"json\", false, abortSignal, \"WURunResponse\");\n    }\n\n    WUSchedule(request: WsWorkunits.WUSchedule, abortSignal?: AbortSignal): Promise<WsWorkunits.WUScheduleResponse> {\n        return this._connection.send(\"WUSchedule\", request, \"json\", false, abortSignal, \"WUScheduleResponse\");\n    }\n\n    WUShowScheduled(request: WsWorkunits.WUShowScheduled, abortSignal?: AbortSignal): Promise<WsWorkunits.WUShowScheduledResponse> {\n        return this._connection.send(\"WUShowScheduled\", request, \"json\", false, abortSignal, \"WUShowScheduledResponse\");\n    }\n\n    WUSubmit(request: WsWorkunits.WUSubmit, abortSignal?: AbortSignal): Promise<WsWorkunits.WUSubmitResponse> {\n        return this._connection.send(\"WUSubmit\", request, \"json\", false, abortSignal, \"WUSubmitResponse\");\n    }\n\n    WUSyntaxCheckECL(request: WsWorkunits.WUSyntaxCheckECL, abortSignal?: AbortSignal): Promise<WsWorkunits.WUSyntaxCheckResponse> {\n        return this._connection.send(\"WUSyntaxCheckECL\", request, \"json\", false, abortSignal, \"WUSyntaxCheckResponse\");\n    }\n\n    WUUpdate(request: WsWorkunits.WUUpdate, abortSignal?: AbortSignal): Promise<WsWorkunits.WUUpdateResponse> {\n        return this._connection.send(\"WUUpdate\", request, \"json\", false, abortSignal, \"WUUpdateResponse\");\n    }\n\n    WUUpdateQueryEntry(request: WsWorkunits.WUUpdateQueryEntry, abortSignal?: AbortSignal): Promise<WsWorkunits.WUUpdateQueryEntryResponse> {\n        return this._connection.send(\"WUUpdateQueryEntry\", request, \"json\", false, abortSignal, \"WUUpdateQueryEntryResponse\");\n    }\n\n    WUWaitCompiled(request: WsWorkunits.WUWaitCompiled, abortSignal?: AbortSignal): Promise<WsWorkunits.WUWaitResponse> {\n        return this._connection.send(\"WUWaitCompiled\", request, \"json\", false, abortSignal, \"WUWaitResponse\");\n    }\n\n    WUWaitComplete(request: WsWorkunits.WUWaitComplete, abortSignal?: AbortSignal): Promise<WsWorkunits.WUWaitResponse> {\n        return this._connection.send(\"WUWaitComplete\", request, \"json\", false, abortSignal, \"WUWaitResponse\");\n    }\n\n}\n","import { deepMixin, xml2json, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits, WorkunitsServiceBase } from \"./wsdl/WsWorkunits/v2.08/WsWorkunits.ts\";\nimport { IConnection, IOptions } from \"../connection.ts\";\n\nexport {\n    WsWorkunits\n};\n\nexport enum WUStateID {\n    Unknown = 0,\n    Compiled,\n    Running,\n    Completed,\n    Failed,\n    Archived,\n    Aborting,\n    Aborted,\n    Blocked,\n    Submitted,\n    Scheduled,\n    Compiling,\n    Wait,\n    UploadingFiled,\n    DebugPaused,\n    DebugRunning,\n    Paused,\n    LAST,\n    NotFound = 999\n}\n\nexport namespace WUUpdate {\n    export enum Action {\n        Unknown = 0,\n        Compile,\n        Check,\n        Run,\n        ExecuteExisting,\n        Pause,\n        PauseNow,\n        Resume,\n        Debug,\n        __size\n    }\n}\nexport function isECLResult(_: any): _ is WsWorkunits.ECLResult {\n    return typeof (_ as WsWorkunits.ECLResult).Name === \"string\";\n}\n\nexport function isWUQueryECLWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.ECLWorkunit {\n    return (_ as WsWorkunits.ECLWorkunit).TotalClusterTime !== undefined;\n}\n\nexport function isWUInfoWorkunit(_: WsWorkunits.ECLWorkunit | WsWorkunits.Workunit): _ is WsWorkunits.Workunit {\n    return (_ as WsWorkunits.Workunit).StateEx !== undefined;\n}\nexport class WorkunitsService extends WorkunitsServiceBase {\n\n    constructor(optsConnection: IOptions | IConnection) {\n        super(optsConnection);\n    }\n\n    Ping(): Promise<WsWorkunits.WsWorkunitsPingResponse> {\n        return this._connection.send(\"Ping\", {}, \"json\", false, undefined, \"WsWorkunitsPingResponse\").then(() => {\n            return { result: true };\n        });\n    }\n\n    WUQuery(request: Partial<WsWorkunits.WUQuery> = {}, abortSignal?: AbortSignal): Promise<WsWorkunits.WUQueryResponse> {\n        return this._connection.send(\"WUQuery\", request, \"json\", false, abortSignal).then((response) => {\n            return deepMixin({ Workunits: { ECLWorkunit: [] } }, response);\n        });\n    }\n\n    WUInfo(_request: Partial<WsWorkunits.WUInfo>): Promise<WsWorkunits.WUInfoResponse> {\n        const request: Partial<WsWorkunits.WUInfo> = {\n            Wuid: \"\",\n            TruncateEclTo64k: true,\n            IncludeExceptions: false,\n            IncludeGraphs: false,\n            IncludeSourceFiles: false,\n            IncludeResults: false,\n            IncludeResultsViewNames: false,\n            IncludeVariables: false,\n            IncludeTimers: false,\n            IncludeDebugValues: false,\n            IncludeApplicationValues: false,\n            IncludeWorkflows: false,\n            IncludeXmlSchemas: false,\n            IncludeResourceURLs: false,\n            IncludeECL: false,\n            IncludeHelpers: false,\n            IncludeAllowedClusters: false,\n            IncludeTotalClusterTime: false,\n            IncludeServiceNames: false,\n            SuppressResultSchemas: true,\n            ..._request\n        };\n        return super.WUInfo(request);\n    }\n\n    WUCreate(): Promise<WsWorkunits.WUCreateResponse> {\n        return super.WUCreate({});\n    }\n\n    WUUpdate(request: Partial<WsWorkunits.WUUpdate>): Promise<WsWorkunits.WUUpdateResponse> {\n        return this._connection.send(\"WUUpdate\", request, \"json\", true);\n    }\n\n    WUResubmit(request: WsWorkunits.WUResubmit): Promise<WsWorkunits.WUResubmitResponse> {\n        this._connection.toESPStringArray(request, \"Wuids\");\n        return super.WUResubmit(request);\n    }\n\n    WUAction(request: Partial<WsWorkunits.WUAction>): Promise<WsWorkunits.WUActionResponse> {\n        (request as any).ActionType = request.WUActionType; //  v5.x compatibility\n        return super.WUAction(request);\n    }\n\n    WUResult(request: Partial<WsWorkunits.WUResult>, abortSignal?: AbortSignal): Promise<WsWorkunits.WUResultResponse> {\n        return this._connection.send(\"WUResult\", request, \"json\", false, abortSignal);\n    }\n\n    WUFileEx(request: Partial<WsWorkunits.WUFile>): Promise<string> {\n        return this._connection.send(\"WUFile\", request, \"text\");\n    }\n\n    private _WUDetailsMetaPromise: Promise<WsWorkunits.WUDetailsMetaResponse>;\n    WUDetailsMeta(request: WsWorkunits.WUDetailsMeta): Promise<WsWorkunits.WUDetailsMetaResponse> {\n        if (!this._WUDetailsMetaPromise) {\n            this._WUDetailsMetaPromise = super.WUDetailsMeta(request);\n        }\n        return this._WUDetailsMetaPromise;\n    }\n\n    WUCDebugEx(request: WsWorkunits.WUCDebug): Promise<XMLNode | null> {\n        return this._connection.send(\"WUCDebug\", request, undefined, undefined, undefined, \"WUDebug\").then((response) => {\n            const retVal = xml2json(response.Result);\n            const children = retVal.children();\n            if (children.length) {\n                return children[0];\n            }\n            return null;\n        });\n    }\n}\n\nexport class WorkunitsServiceEx extends WorkunitsServiceBase {\n    WUPublishWorkunitEx(request: Partial<WsWorkunits.WUPublishWorkunit>): Promise<WsWorkunits.WUPublishWorkunitResponse> {\n        return this._connection.send(\"WUPublishWorkunit\", request);\n    }\n}\n","export default function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": function(x, p) { return (x * 100).toFixed(p); },\n  \"b\": function(x) { return Math.round(x).toString(2); },\n  \"c\": function(x) { return x + \"\"; },\n  \"d\": formatDecimal,\n  \"e\": function(x, p) { return x.toExponential(p); },\n  \"f\": function(x, p) { return x.toFixed(p); },\n  \"g\": function(x, p) { return x.toPrecision(p); },\n  \"o\": function(x) { return Math.round(x).toString(8); },\n  \"p\": function(x, p) { return formatRounded(x * 100, p); },\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n  \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n  return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = formatTrim(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  decimal: \".\",\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"],\n  minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","import { Cache, Edge, Graph, StateObject, StringAnyMap, Subgraph, Vertex, XMLNode } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { BaseScope } from \"./scope.ts\";\nimport { Timer } from \"./timer.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface ECLGraphEx extends WsWorkunits.ECLGraph {\n    Time: number;\n}\n\nexport class ECLGraph extends StateObject<ECLGraphEx, ECLGraphEx> implements ECLGraphEx {\n    protected wu: Workunit;\n\n    get properties(): ECLGraphEx { return this.get(); }\n    get Name(): string { return this.get(\"Name\"); }\n    get Label(): string { return this.get(\"Label\"); }\n    get Type(): string { return this.get(\"Type\"); }\n    get Complete(): boolean { return this.get(\"Complete\"); }\n    get WhenStarted(): string { return this.get(\"WhenStarted\"); }\n    get WhenFinished(): string { return this.get(\"WhenFinished\"); }\n    get Time(): number { return this.get(\"Time\"); }\n    get Running(): boolean { return this.get(\"Running\"); }\n    get RunningId(): number { return this.get(\"RunningId\"); }\n    get Failed(): boolean { return this.get(\"Failed\"); }\n\n    constructor(wu: Workunit, eclGraph: WsWorkunits.ECLGraph, eclTimers: Timer[]) {\n        super();\n        this.wu = wu;\n        let duration = 0;\n        for (const eclTimer of eclTimers) {\n            if (eclTimer.GraphName === eclGraph.Name && !eclTimer.HasSubGraphId) {\n                duration = Math.round(eclTimer.Seconds * 1000) / 1000;\n                break;\n            }\n        }\n        this.set({ Time: duration, ...eclGraph });\n    }\n\n    fetchScopeGraph(subgraphID?: string): Promise<ScopeGraph> {\n        if (subgraphID) {\n            return this.wu.fetchGraphDetails([subgraphID], [\"subgraph\"]).then((scopes) => {\n                return createGraph(scopes);\n            });\n        }\n        return this.wu.fetchGraphDetails([this.Name], [\"graph\"]).then((scopes) => {\n            return createGraph(scopes);\n        });\n    }\n}\n\nexport class GraphCache extends Cache<WsWorkunits.ECLGraph, ECLGraph> {\n    constructor() {\n        super((obj) => {\n            return Cache.hash([obj.Name]);\n        });\n    }\n}\n\ntype Callback = (tag: string, attributes: StringAnyMap, children: XMLNode[], _stack: XMLNode[]) => void;\nfunction walkXmlJson(node: XMLNode, callback: Callback, stack?: XMLNode[]) {\n    stack = stack || [];\n    stack.push(node);\n    callback(node.name, node.$, node.children(), stack);\n    node.children().forEach((childNode) => {\n        walkXmlJson(childNode, callback, stack);\n    });\n    stack.pop();\n}\n\nfunction flattenAtt(nodes: XMLNode[]): StringAnyMap {\n    const retVal: StringAnyMap = {};\n    nodes.forEach((node: XMLNode) => {\n        if (node.name === \"att\") {\n            retVal[node.$[\"name\"]] = node.$[\"value\"];\n        }\n    });\n    return retVal;\n}\n\nexport class XGMMLGraph extends Graph<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLSubgraph extends Subgraph<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLVertex extends Vertex<StringAnyMap, StringAnyMap, StringAnyMap> { }\nexport class XGMMLEdge extends Edge<StringAnyMap, StringAnyMap, StringAnyMap> { }\n\nexport function createXGMMLGraph(id: string, graphs: XMLNode): XGMMLGraph {\n    const subgraphs: { [id: string]: XGMMLSubgraph } = {};\n    const vertices: { [id: string]: XGMMLVertex } = {};\n    const edges: { [id: string]: XGMMLEdge } = {};\n\n    const graph = new XGMMLGraph((item) => {\n        return item._![\"id\"];\n    });\n\n    const stack: XGMMLSubgraph[] = [graph.root];\n    walkXmlJson(graphs, (tag: string, attributes: StringAnyMap, childNodes: XMLNode[], _stack) => {\n        const top = stack[stack.length - 1];\n        switch (tag) {\n            case \"graph\":\n                break;\n            case \"node\":\n                if (childNodes.length && childNodes[0].children().length && childNodes[0].children()[0].name === \"graph\") {\n                    const subgraph = top.createSubgraph(flattenAtt(childNodes));\n                    stack.push(subgraph);\n                    subgraphs[attributes[\"id\"]] = subgraph;\n                } else {\n                }\n                // TODO:  Is this really a node when its also a subgraph?\n                const vertex = top.createVertex(flattenAtt(childNodes));\n                vertices[attributes[\"id\"]] = vertex;\n                break;\n            case \"edge\":\n                const edge = top.createEdge(vertices[attributes[\"source\"]], vertices[attributes[\"target\"]], flattenAtt(childNodes));\n                edges[attributes[\"id\"]] = edge;\n                break;\n            default:\n        }\n    });\n    return graph;\n}\n\nexport class ScopeGraph extends Graph<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeSubgraph extends Subgraph<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeVertex extends Vertex<BaseScope, BaseScope, BaseScope> { }\nexport class ScopeEdge extends Edge<BaseScope, BaseScope, BaseScope> { }\n\nexport function createGraph(scopes: BaseScope[]): ScopeGraph {\n    const subgraphs: { [scopeName: string]: ScopeSubgraph } = {};\n    const edges: { [scopeName: string]: BaseScope } = {};\n    const vertices: { [scopeName: string]: ScopeVertex } = {};\n\n    let graph: ScopeGraph | undefined;\n    for (const scope of scopes) {\n        switch (scope.ScopeType) {\n            case \"graph\":\n                graph = new ScopeGraph(item => item._!.Id, scope);\n                subgraphs[scope.ScopeName] = graph.root;\n                break;\n            case \"subgraph\":\n                if (!graph) {\n                    graph = new ScopeGraph(item => item._!.Id, scope);\n                    subgraphs[scope.ScopeName] = graph.root;\n                }\n                const scopeStack = scope.parentScope().split(\":\");\n                let scopeParent1 = subgraphs[scope.parentScope()];\n                while (scopeStack.length && !scopeParent1) {\n                    scopeParent1 = subgraphs[scopeStack.join(\":\")];\n                    scopeStack.pop();\n                }\n                if (!scopeParent1) {\n                    console.warn(`Missing SG:Parent (${scope.Id}): ${scope.parentScope()}`);\n                } else {\n                    const parent1: ScopeSubgraph = scopeParent1;\n                    subgraphs[scope.ScopeName] = parent1.createSubgraph(scope);\n                }\n                break;\n            case \"activity\":\n                const scopeParent2 = subgraphs[scope.parentScope()];\n                if (!scopeParent2) {\n                    console.warn(`Missing A:Parent (${scope.Id}): ${scope.parentScope()}`);\n                } else {\n                    vertices[scope.ScopeName] = scopeParent2.createVertex(scope);\n                }\n                break;\n            case \"edge\":\n                edges[scope.ScopeName] = scope;\n                break;\n            case \"function\":\n                const scopeParent3 = vertices[scope.parentScope()];\n                if (!scopeParent3) {\n                    console.warn(`Missing F:Parent (${scope.Id}): ${scope.parentScope()}`);\n                } else {\n                    scopeParent3._.children().push(scope);\n                }\n                break;\n        }\n    }\n    for (const id in edges) {\n        const scope = edges[id];\n        const scopeParent3 = subgraphs[scope.parentScope()];\n        if (!scopeParent3) {\n            console.warn(`Missing E:Parent (${scope.Id}): ${scope.parentScope()}`);\n        } else {\n            const parent3: ScopeSubgraph = scopeParent3;\n            try {\n                const source = graph!.vertex(scope.attr(\"IdSource\").RawValue);\n                const target = graph!.vertex(scope.attr(\"IdTarget\").RawValue);\n                parent3.createEdge(source, target, scope);\n            } catch (e) {\n                // const sourceIndex = scope.attr(\"SourceIndex\").RawValue;\n                // const targetIndex = scope.attr(\"TargetIndex\").RawValue;\n                console.warn(`Invalid Edge: ${id}`);\n            }\n        }\n    }\n    return graph!;\n}\n","import { StateObject } from \"@hpcc-js/util\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface ResourceEx {\n    URL: string;\n    DisplayName: string;\n    DisplayPath: string;\n}\n\nexport class Resource extends StateObject<ResourceEx, ResourceEx> implements ResourceEx {\n    protected wu: Workunit;\n\n    get properties(): ResourceEx { return this.get(); }\n    get URL(): string { return this.get(\"URL\"); }\n    get DisplayName(): string { return this.get(\"DisplayName\"); }\n    get DisplayPath(): string { return this.get(\"DisplayPath\"); }\n\n    constructor(wu: Workunit, url: string) {\n        super();\n        this.wu = wu;\n\n        const cleanedURL = url.split(\"\\\\\").join(\"/\");\n        const urlParts = cleanedURL.split(\"/\");\n        const matchStr = \"res/\" + this.wu.Wuid + \"/\";\n        let displayPath = \"\";\n        let displayName = \"\";\n\n        if (cleanedURL.indexOf(matchStr) === 0) {\n            displayPath = cleanedURL.substr(matchStr.length);\n            displayName = urlParts[urlParts.length - 1];\n        }\n\n        this.set({\n            URL: url,\n            DisplayName: displayName,\n            DisplayPath: displayPath\n        });\n    }\n}\n","import { SAXStackParser, Stack, XMLNode } from \"@hpcc-js/util\";\n\nexport class XSDNode {\n    protected e?: XMLNode;\n\n    constructor(e: XMLNode) {\n        this.e = e;\n    }\n    fix() {\n        delete this.e;\n    }\n}\n\nexport class XSDXMLNode extends XSDNode {\n    name: string;\n    type: string;\n    isSet = false;\n    attrs: { [key: string]: string } = {};\n    private _children: XSDXMLNode[] = [];\n\n    constructor(e: XMLNode) {\n        super(e);\n    }\n\n    append(child: XSDXMLNode) {\n        this._children.push(child);\n        if (!this.type) {\n            this.type = \"hpcc:childDataset\";\n        }\n    }\n\n    fix() {\n        this.name = this.e!.$[\"name\"];\n        this.type = this.e!.$[\"type\"];\n        for (let i = this._children.length - 1; i >= 0; --i) {\n            const row = this._children[i];\n            if (row.name === \"Row\" && row.type === undefined) {\n                this._children.push(...row._children);\n                this._children.splice(i, 1);\n            }\n        }\n        const setOfType = this.setOfType();\n        if (setOfType) {\n            this.type = setOfType;\n            this.isSet = true;\n            this._children = [];\n        }\n    }\n\n    children(): XSDXMLNode[] {\n        return this._children;\n    }\n\n    private isAll(node: XSDXMLNode) {\n        return node.name === \"All\" && node.type === undefined;\n    }\n\n    private setOfType(): string {\n        const children = this.children();\n        if (this.type === undefined && children.length === 2) {\n            if (this.isAll(children[0])) {\n                return children[1].type;\n            } else if (this.isAll(children[1])) {\n                return children[0].type;\n            }\n        }\n        return undefined;\n    }\n\n    charWidth() {\n        let retVal: number = -1;\n\n        switch (this.type) {\n            case \"xs:boolean\":\n                retVal = 5;\n                break;\n            case \"xs:integer\":\n                retVal = 8;\n                break;\n            case \"xs:nonNegativeInteger\":\n                retVal = 8;\n                break;\n            case \"xs:double\":\n                retVal = 8;\n                break;\n            case \"xs:string\":\n                retVal = 32;\n                break;\n            default:\n                const numStr: string = \"0123456789\";\n                const underbarPos: number = this.type.lastIndexOf(\"_\");\n                const length: number = underbarPos > 0 ? underbarPos : this.type.length;\n                let i: number = length - 1;\n                for (; i >= 0; --i) {\n                    if (numStr.indexOf(this.type.charAt(i)) === -1)\n                        break;\n                }\n                if (i + 1 < length) {\n                    retVal = parseInt(this.type.substring(i + 1, length), 10);\n                }\n                if (this.type.indexOf(\"data\") === 0) {\n                    retVal *= 2;\n                }\n                break;\n        }\n        if (retVal < this.name.length)\n            retVal = this.name.length;\n\n        return retVal;\n    }\n}\n\nexport class XSDSimpleType extends XSDNode {\n    name: string;\n    type: string;\n    maxLength: number | undefined;\n\n    protected _restricition?: XMLNode;\n    protected _maxLength?: XMLNode;\n\n    constructor(e: XMLNode) {\n        super(e);\n    }\n\n    append(e: XMLNode) {\n        switch (e.name) {\n            case \"xs:restriction\":\n                this._restricition = e;\n                break;\n            case \"xs:maxLength\":\n                this._maxLength = e;\n                break;\n            default:\n        }\n    }\n\n    fix() {\n        this.name = this.e!.$[\"name\"];\n        this.type = this._restricition!.$[\"base\"];\n        this.maxLength = this._maxLength ? +this._maxLength!.$[\"value\"] : undefined;\n        delete this._restricition;\n        delete this._maxLength;\n        super.fix();\n    }\n}\n\nexport class XSDSchema {\n    root: XSDXMLNode;\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n    fields(): XSDXMLNode[] {\n        return this.root.children();\n    }\n}\n\nclass XSDParser extends SAXStackParser {\n    schema: XSDSchema = new XSDSchema();\n    simpleType: XSDSimpleType;\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n    xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\n\n    startXMLNode(e: XMLNode) {\n        super.startXMLNode(e);\n        switch (e.name) {\n            case \"xs:element\":\n                const xsdXMLNode = new XSDXMLNode(e);\n                if (!this.schema.root) {\n                    this.schema.root = xsdXMLNode;\n                } else if (this.xsdStack.depth()) {\n                    this.xsdStack.top()!.append(xsdXMLNode);\n                }\n                this.xsdStack.push(xsdXMLNode);\n                break;\n            case \"xs:simpleType\":\n                this.simpleType = new XSDSimpleType(e);\n                break;\n            default:\n                break;\n        }\n    }\n\n    endXMLNode(e: XMLNode) {\n        switch (e!.name) {\n            case \"xs:element\":\n                const xsdXMLNode = this.xsdStack.pop();\n                xsdXMLNode!.fix();\n                break;\n            case \"xs:simpleType\":\n                this.simpleType.fix();\n                this.simpleTypes[this.simpleType.name] = this.simpleType;\n                delete this.simpleType;\n                break;\n            case \"xs:appinfo\":\n                const xsdXMLNode2 = this.xsdStack.top();\n                for (const key in e.$) {\n                    xsdXMLNode2!.attrs[key] = e.$[key];\n                }\n                break;\n            default:\n                if (this.simpleType) {\n                    this.simpleType.append(e);\n                }\n        }\n        super.endXMLNode(e);\n    }\n}\n\nexport function parseXSD(xml: string): XSDSchema {\n    const saxParser = new XSDParser();\n    saxParser.parse(xml);\n    return saxParser.schema;\n}\n\nclass XSDParser2 extends XSDParser {\n    _rootName: string;\n    schema: XSDSchema = new XSDSchema();\n    simpleTypes: { [name: string]: XSDSimpleType } = {};\n\n    xsdStack: Stack<XSDXMLNode> = new Stack<XSDXMLNode>();\n\n    constructor(rootName: string) {\n        super();\n        this._rootName = rootName;\n    }\n\n    startXMLNode(e: XMLNode) {\n        super.startXMLNode(e);\n        switch (e.name) {\n            case \"xsd:element\":\n                const xsdXMLNode = new XSDXMLNode(e);\n                if (!this.schema.root && this._rootName === e.$.name) {\n                    this.schema.root = xsdXMLNode;\n                }\n                if (this.xsdStack.depth()) {\n                    this.xsdStack.top()!.append(xsdXMLNode);\n                }\n                this.xsdStack.push(xsdXMLNode);\n                break;\n            case \"xsd:simpleType\":\n                this.simpleType = new XSDSimpleType(e);\n                break;\n            default:\n                break;\n        }\n    }\n\n    endXMLNode(e: XMLNode) {\n        switch (e!.name) {\n            case \"xsd:element\":\n                const xsdXMLNode = this.xsdStack.pop()!;\n                xsdXMLNode.fix();\n                break;\n            case \"xsd:simpleType\":\n                break;\n            default:\n                break;\n        }\n        super.endXMLNode(e);\n    }\n}\n\nexport function parseXSD2(xml: string, rootName): XSDSchema {\n    const saxParser = new XSDParser2(rootName);\n    saxParser.parse(xml);\n    return saxParser.schema;\n}\n","import { Cache, exists, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsDfu } from \"../services/wsDFU.ts\";\nimport { isECLResult, WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { parseXSD, XSDSchema, XSDXMLNode } from \"./xsdParser.ts\";\n\nexport class GlobalResultCache extends Cache<{ BaseUrl: string, Wuid: string, ResultName: string }, Result> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.Wuid}-${obj.ResultName}`;\n        });\n    }\n}\nconst _results = new GlobalResultCache();\n\nexport type ResultFilter = { [key: string]: string | number };\n\nexport interface ECLResultEx extends WsWorkunits.ECLResult {\n    Wuid: string;\n    ResultName?: string;\n    ResultSequence?: number;\n    LogicalFileName?: string;\n    NodeGroup?: string;\n    ResultViews: string[];\n}\n\nexport interface WUResultResponseEx {\n\n    Exceptions: WsWorkunits.Exceptions;\n    Wuid: string;\n    Sequence: WsWorkunits.int;\n    LogicalName: string;\n    Cluster: string;\n    Name: string;\n    Start: WsWorkunits.long;\n    Requested: WsWorkunits.int;\n    Count: WsWorkunits.int;\n    Total: WsWorkunits.long;\n    Result: { [key: string]: any[] } & {\n        XmlSchema?: {\n            xml: string;\n        };\n    };\n}\n\nexport type UResulState = ECLResultEx & WsDfu.DFULogicalFile;\nexport type IResulState = ECLResultEx | WsDfu.DFULogicalFile;\nexport class Result extends StateObject<UResulState, IResulState> implements ECLResultEx {\n    protected connection: WorkunitsService;\n    protected _bypassCache: boolean = false;\n    get BaseUrl() { return this.connection.baseUrl; }\n    protected xsdSchema: XSDSchema;\n\n    get properties(): WsWorkunits.ECLResult { return this.get(); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get ResultName(): string | undefined { return this.get(\"ResultName\"); }\n    get ResultSequence(): number | undefined { return this.get(\"ResultSequence\"); }\n    get LogicalFileName(): string | undefined { return this.get(\"LogicalFileName\"); }\n    get Name(): string { return this.get(\"Name\"); }\n    get Sequence(): number { return this.get(\"Sequence\"); }\n    get Value(): string { return this.get(\"Value\"); }\n    get Link(): string { return this.get(\"Link\"); }\n    get FileName(): string { return this.get(\"FileName\"); }\n    get IsSupplied(): boolean { return this.get(\"IsSupplied\"); }\n    get ShowFileContent() { return this.get(\"ShowFileContent\"); }\n    get Total(): number { return this.get(\"Total\"); }\n    get ECLSchemas(): WsWorkunits.ECLSchemas { return this.get(\"ECLSchemas\"); }\n    get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n    get ResultViews(): string[] { return this.get(\"ResultViews\"); }\n    get XmlSchema(): string { return this.get(\"XmlSchema\"); }\n\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n    static attach(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name_sequence_eclResult?: string | number | WsWorkunits.ECLResult, resultViews?: string[]): Result {\n        let retVal: Result;\n        if (Array.isArray(resultViews)) {\n            retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: (name_sequence_eclResult as WsWorkunits.ECLResult).Name }, () => {\n                return new Result(optsConnection, wuid, name_sequence_eclResult as WsWorkunits.ECLResult, resultViews);\n            });\n            retVal.set(name_sequence_eclResult as any);\n        } else if (typeof resultViews === \"undefined\") {\n            if (typeof name_sequence_eclResult === \"number\") {\n                retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: \"Sequence_\" + name_sequence_eclResult }, () => {\n                    return new Result(optsConnection, wuid, name_sequence_eclResult);\n                });\n            } else if (typeof name_sequence_eclResult === \"string\") {\n                retVal = _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid, ResultName: name_sequence_eclResult }, () => {\n                    return new Result(optsConnection, wuid, name_sequence_eclResult);\n                });\n            }\n        }\n        return retVal;\n    }\n\n    static attachLogicalFile(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string) {\n        return _results.get({ BaseUrl: optsConnection.baseUrl, Wuid: nodeGroup, ResultName: logicalFile }, () => {\n            return new Result(optsConnection, nodeGroup, logicalFile, true);\n        });\n    }\n\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, name: string);\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, sequence: number);\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclResult: WsWorkunits.ECLResult, resultViews: string[]);\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, nodeGroup: string, logicalFile: string, isLogicalFiles: boolean);\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid_NodeGroup: string, name_sequence_eclResult_logicalFile?: string | number | WsWorkunits.ECLResult, resultViews_isLogicalFile?: any[] | boolean) {\n        super();\n        if (optsConnection instanceof WorkunitsService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new WorkunitsService(optsConnection);\n        }\n\n        if (typeof resultViews_isLogicalFile === \"boolean\" && resultViews_isLogicalFile === true) {\n            this.set({\n                NodeGroup: wuid_NodeGroup,\n                LogicalFileName: name_sequence_eclResult_logicalFile\n            } as ECLResultEx);\n        } else if (isECLResult(name_sequence_eclResult_logicalFile) && Array.isArray(resultViews_isLogicalFile)) {\n            this.set({\n                ...name_sequence_eclResult_logicalFile,\n                Wuid: wuid_NodeGroup,\n                ResultName: name_sequence_eclResult_logicalFile.Name,\n                ResultViews: resultViews_isLogicalFile\n            } as ECLResultEx);\n        } else if (typeof resultViews_isLogicalFile === \"undefined\") {\n            if (typeof name_sequence_eclResult_logicalFile === \"number\") {\n                this.set({\n                    Wuid: wuid_NodeGroup,\n                    ResultSequence: name_sequence_eclResult_logicalFile\n                } as ECLResultEx);\n            } else if (typeof name_sequence_eclResult_logicalFile === \"string\") {\n                this.set({\n                    Wuid: wuid_NodeGroup,\n                    ResultName: name_sequence_eclResult_logicalFile\n                } as ECLResultEx);\n            } else {\n                console.warn(\"Unknown Result.attach (1)\");\n            }\n        } else {\n            console.warn(\"Unknown Result.attach (2)\");\n        }\n    }\n\n    isComplete() {\n        return this.Total !== -1;\n    }\n\n    bypassCache(bypass?: boolean): boolean | this {\n        if (bypass === undefined) return this._bypassCache;\n        this._bypassCache = bypass;\n        return this;\n    }\n\n    private _fetchXMLSchemaPromise: Promise<XSDSchema | null>;\n    fetchXMLSchema(refresh = false): Promise<XSDSchema | null> {\n        if (!this._fetchXMLSchemaPromise || refresh) {\n            this._fetchXMLSchemaPromise = this.WUResult().then(response => {\n                if (response.Result?.XmlSchema?.xml) {\n                    this.xsdSchema = parseXSD(response.Result.XmlSchema.xml);\n                    return this.xsdSchema;\n                }\n                return null;\n            });\n        }\n        return this._fetchXMLSchemaPromise;\n    }\n\n    async refresh(): Promise<this> {\n        await this.fetchRows(0, 1, true);\n        return this;\n    }\n\n    fetchRows(from: number = 0, count: number = -1, includeSchema: boolean = false, filter: ResultFilter = {}, abortSignal?: AbortSignal, bypassCache?: boolean): Promise<any[]> {\n        const shouldBypassCache = bypassCache ?? this._bypassCache;\n        return this.WUResult(from, count, !includeSchema, filter, abortSignal, shouldBypassCache).then((response) => {\n            const result: any = response.Result;\n            delete response.Result; //  Do not want it in \"set\"\n            this.set({\n                ...response\n            } as any);\n            if (exists(\"XmlSchema.xml\", result)) {\n                this.xsdSchema = parseXSD(result.XmlSchema.xml);\n            }\n            if (exists(\"Row\", result)) {\n                return result.Row;\n            } else if (this.ResultName && exists(this.ResultName, result)) {\n                return result[this.ResultName].Row;\n            }\n            return [];\n        });\n    }\n\n    rootField(): XSDXMLNode | null {\n        if (!this.xsdSchema) return null;\n        return this.xsdSchema.root;\n    }\n\n    fields(): XSDXMLNode[] {\n        if (!this.xsdSchema) return [];\n        return this.xsdSchema.root.children();\n    }\n\n    protected WUResult(start: number = 0, count: number = 1, suppressXmlSchema: boolean = false, filter: { [key: string]: string | number } = {}, abortSignal?: AbortSignal, bypassCache: boolean = false): Promise<WUResultResponseEx> {\n        const FilterBy = {\n            NamedValue: {\n                itemcount: 0\n            }\n        };\n        for (const key in filter) {\n            FilterBy.NamedValue[FilterBy.NamedValue.itemcount++] = {\n                Name: key,\n                Value: filter[key]\n            };\n        }\n        const request: Partial<WsWorkunits.WUResult> = { FilterBy } as any;\n        if (this.Wuid && this.ResultName !== undefined) {\n            request.Wuid = this.Wuid;\n            request.ResultName = this.ResultName;\n        } else if (this.Wuid && this.ResultSequence !== undefined) {\n            request.Wuid = this.Wuid;\n            request.Sequence = this.ResultSequence;\n        } else if (this.LogicalFileName && this.NodeGroup) {\n            request.LogicalName = this.LogicalFileName;\n            request.Cluster = this.NodeGroup;\n        } else if (this.LogicalFileName) {\n            request.LogicalName = this.LogicalFileName;\n        }\n        request.Start = start;\n        request.Count = count;\n        request.SuppressXmlSchema = suppressXmlSchema;\n        request.BypassCachedResult = bypassCache;\n        return this.connection.WUResult(request, abortSignal).then((response: unknown) => {\n            return response as WUResultResponseEx;\n        });\n    }\n}\n\nexport class ResultCache extends Cache<WsWorkunits.ECLResult, Result> {\n    constructor() {\n        super((obj) => {\n            return Cache.hash([obj.Sequence, obj.Name, obj.Value, obj.FileName]);\n        });\n    }\n}\n","import { StateObject, StringAnyMap } from \"@hpcc-js/util\";\nimport { WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nexport interface AttributeEx extends WsWorkunits.Property {\n    FormattedEnd?: string;\n}\n\nexport class Attribute extends StateObject<AttributeEx, AttributeEx> implements AttributeEx {\n    readonly scope: BaseScope;\n\n    get properties(): AttributeEx { return this.get(); }\n    get Name(): string { return this.get(\"Name\"); }\n    get RawValue(): string { return this.get(\"RawValue\"); }\n    get Formatted(): string { return this.get(\"Formatted\"); }\n    get FormattedEnd(): string | undefined { return this.get(\"FormattedEnd\"); }\n    get Measure(): string { return this.get(\"Measure\"); }\n    get Creator(): string { return this.get(\"Creator\"); }\n    get CreatorType(): string { return this.get(\"CreatorType\"); }\n\n    constructor(scope: BaseScope, attribute: WsWorkunits.Property) {\n        super();\n        this.scope = scope;\n        this.set(attribute);\n    }\n}\n\nexport interface ScopeEx extends WsWorkunits.Scope {\n}\n\nexport interface IScopeVisitor {\n    start(scope: BaseScope): boolean;\n    end(scope: BaseScope): boolean;\n}\n\nexport class BaseScope extends StateObject<ScopeEx, ScopeEx> implements ScopeEx {\n    protected _attributeMap: { [key: string]: Attribute } = {};\n    protected _children: BaseScope[] = [];\n\n    get properties(): ScopeEx { return this.get(); }\n    get ScopeName(): string { return this.get(\"ScopeName\"); }\n    get Id(): string { return this.get(\"Id\"); }\n    get ScopeType(): string { return this.get(\"ScopeType\"); }\n    get Properties(): WsWorkunits.Properties { return this.get(\"Properties\", { Property: [] }); }\n    get Notes(): WsWorkunits.Notes { return this.get(\"Notes\", { Note: [] }); }\n    get SinkActivity(): string { return this.get(\"SinkActivity\"); }\n    get CAttributes(): Attribute[] {\n        //  Match \"started\" and time elapsed\n        const retVal: Attribute[] = [];\n        const timeElapsed: { start: AttributeEx | null, end: AttributeEx | null } = {\n            start: null,\n            end: null\n        };\n        this.Properties.Property.forEach((scopeAttr) => {\n            if (scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Started\") >= 0) {\n                timeElapsed.start = scopeAttr;\n            } else if (this.ScopeName && scopeAttr.Measure === \"ts\" && scopeAttr.Name.indexOf(\"Finished\") >= 0) {\n                timeElapsed.end = scopeAttr;\n            } else {\n                retVal.push(new Attribute(this, scopeAttr));\n            }\n        });\n        if (timeElapsed.start && timeElapsed.end) {\n            // const endTime = parser(timeElapsed.start.Formatted);\n            // endTime!.setMilliseconds(endTime!.getMilliseconds() + (+timeElapsed.elapsed.RawValue) / 1000000);\n            // timeElapsed.start.FormattedEnd = formatter(endTime!);\n            timeElapsed.start.FormattedEnd = timeElapsed.end.Formatted;\n            retVal.push(new Attribute(this, timeElapsed.start));\n        } else if (timeElapsed.start) {\n            retVal.push(new Attribute(this, timeElapsed.start));\n        } else if (timeElapsed.end) {\n            retVal.push(new Attribute(this, timeElapsed.end));  //  Should not happen?\n        }\n        return retVal;\n    }\n\n    constructor(scope: WsWorkunits.Scope) {\n        super();\n        this.update(scope);\n    }\n\n    update(scope: WsWorkunits.Scope) {\n        this.set(scope);\n        this.CAttributes.forEach((attr) => {\n            this._attributeMap[attr.Name] = attr;\n        });\n        this.Properties.Property = [];\n        for (const key in this._attributeMap) {\n            if (this._attributeMap.hasOwnProperty(key)) {\n                this.Properties.Property.push(this._attributeMap[key].properties);\n            }\n        }\n    }\n\n    parentScope(): string {\n        const scopeParts = this.ScopeName.split(\":\");\n        scopeParts.pop();\n        return scopeParts.join(\":\");\n    }\n\n    children(): BaseScope[];\n    children(_: BaseScope[]): BaseScope;\n    children(_?: BaseScope[]): BaseScope[] | BaseScope {\n        if (!arguments.length) return this._children;\n        this._children = _!;\n        return this;\n    }\n\n    walk(visitor: IScopeVisitor): boolean {\n        if (visitor.start(this)) return true;\n        for (const scope of this.children()) {\n            if (scope.walk(visitor)) {\n                return true;\n            }\n        }\n        return visitor.end(this);\n    }\n\n    formattedAttrs(): StringAnyMap {\n        const retVal: StringAnyMap = {};\n        for (const attr in this._attributeMap) {\n            retVal[attr] = this._attributeMap[attr].Formatted || this._attributeMap[attr].RawValue;\n        }\n        return retVal;\n    }\n\n    rawAttrs(): StringAnyMap {\n        const retVal: StringAnyMap = {};\n        for (const attr in this._attributeMap) {\n            retVal[attr] = this._attributeMap[attr].RawValue;\n        }\n        return retVal;\n    }\n\n    hasAttr(name: string): boolean {\n        return this._attributeMap[name] !== undefined;\n    }\n\n    attr(name: string): Attribute {\n        return this._attributeMap[name] || new Attribute(this, {\n            Creator: \"\",\n            CreatorType: \"\",\n            Formatted: \"\",\n            Measure: \"\",\n            Name: \"\",\n            RawValue: \"\"\n        });\n    }\n\n    attrMeasure(name: string): string {\n        return this._attributeMap[name].Measure;\n    }\n\n    calcTooltip(parentScope?: BaseScope) {\n        let label = this.Id;\n        const rows: string[] = [];\n        rows.push(`<tr><td class=\"key\">ID:</td><td class=\"value\">${this.Id}</td></tr>`);\n        if (parentScope) {\n            rows.push(`<tr><td class=\"key\">Parent ID:</td><td class=\"value\">${parentScope.Id}</td></tr>`);\n        }\n        rows.push(`<tr><td class=\"key\">Scope:</td><td class=\"value\">${this.ScopeName}</td></tr>`);\n        const attrs = this.formattedAttrs();\n        for (const key in attrs) {\n            if (key === \"Label\") {\n                label = attrs[key];\n            } else {\n                rows.push(`<tr><td class=\"key\">${key}</td><td class=\"value\">${attrs[key]}</td></tr>`);\n            }\n        }\n\n        return `<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n            <h4 align=\"center\">${label}</h4>\n            <table>\n                ${rows.join(\"\")}\n            </table>\n        </div>`;\n    }\n}\n\nexport class Scope extends BaseScope {\n    readonly wu: Workunit;\n\n    constructor(wu: Workunit, scope: WsWorkunits.Scope) {\n        super(scope);\n        this.wu = wu;\n    }\n}\n","import { StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLSourceFileEx extends WsWorkunits.ECLSourceFile {\n    Wuid: string;\n}\n\nexport class SourceFile extends StateObject<ECLSourceFileEx, ECLSourceFileEx> implements ECLSourceFileEx {\n    protected connection: WorkunitsService;\n\n    get properties(): WsWorkunits.ECLSourceFile { return this.get(); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get FileCluster(): string { return this.get(\"FileCluster\"); }\n    get Name(): string { return this.get(\"Name\"); }\n    get IsSuperFile(): boolean { return this.get(\"IsSuperFile\"); }\n    get Subs(): number { return this.get(\"Subs\"); }\n    get Count(): number { return this.get(\"Count\"); }\n    get ECLSourceFiles(): WsWorkunits.ECLSourceFiles { return this.get(\"ECLSourceFiles\"); }\n\n    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclSourceFile: WsWorkunits.ECLSourceFile) {\n        super();\n        if (optsConnection instanceof WorkunitsService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new WorkunitsService(optsConnection);\n        }\n\n        this.set({\n            Wuid: wuid,\n            ...eclSourceFile\n        });\n    }\n}\n","import { espTime2Seconds, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\n\nexport interface ECLTimerEx extends WsWorkunits.ECLTimer {\n    Wuid: string;\n    Seconds: number;\n    HasSubGraphId: boolean;\n}\n\nexport class Timer extends StateObject<ECLTimerEx, ECLTimerEx> implements ECLTimerEx {\n    protected connection: WorkunitsService;\n\n    get properties(): WsWorkunits.ECLTimer { return this.get(); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get Name(): string { return this.get(\"Name\"); }\n    get Value(): string { return this.get(\"Value\"); }\n    get Seconds(): number { return this.get(\"Seconds\"); }\n    get GraphName(): string { return this.get(\"GraphName\"); }\n    get SubGraphId(): number { return this.get(\"SubGraphId\"); }\n    get HasSubGraphId(): boolean { return this.get(\"HasSubGraphId\"); }\n    get count(): number { return this.get(\"count\"); }\n    get Timestamp(): number { return this.get(\"Timestamp\"); }\n    get When(): string { return this.get(\"When\"); }\n\n    constructor(optsConnection: IOptions | IConnection | WorkunitsService, wuid: string, eclTimer: WsWorkunits.ECLTimer) {\n        super();\n        if (optsConnection instanceof WorkunitsService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new WorkunitsService(optsConnection);\n        }\n\n        const secs = espTime2Seconds(eclTimer.Value);\n        this.set({\n            Wuid: wuid,\n            Seconds: Math.round(secs * 1000) / 1000,\n            HasSubGraphId: eclTimer.SubGraphId !== undefined,\n            ...eclTimer\n        });\n    }\n}\n","import { Cache, deepMixinT, IEvent, RecursivePartial, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback, StringAnyMap, XMLNode } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { utcFormat, utcParse } from \"d3-time-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\nimport { WsWorkunits, WUStateID, WorkunitsService, WorkunitsServiceEx, WUUpdate } from \"../services/wsWorkunits.ts\";\nimport { createGraph, createXGMMLGraph, ECLGraph, GraphCache, ScopeGraph, XGMMLGraph, XGMMLVertex } from \"./graph.ts\";\nimport { Resource } from \"./resource.ts\";\nimport { Result, ResultCache } from \"./result.ts\";\nimport { BaseScope, Scope } from \"./scope.ts\";\nimport { SourceFile } from \"./sourceFile.ts\";\nimport { Timer } from \"./timer.ts\";\n\nconst formatter = utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst parser = utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\");\nconst d3FormatNum = d3Format(\",\");\nfunction formatNum(num: number | string): string {\n    if (num && !isNaN(+num)) {\n        return d3FormatNum(+num);\n    }\n    return num as string;\n}\n\nfunction safeDelete(obj: { [id: string]: any; }, key: string, prop: string) {\n    if (obj[key] === undefined || obj[key][prop] === undefined) return;\n    if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n    delete obj[key][prop];\n}\n\nconst DEFINITION_LIST = \"DefinitionList\";\nconst definitionRegex = /([a-zA-Z]:)?(.*[\\\\\\/])(.*)(\\((\\d+),(\\d+)\\))/;\n\nexport const PropertyType = [\"Avg\", \"Min\", \"Max\", \"Delta\", \"StdDev\"];\nexport const RelatedProperty = [\"SkewMin\", \"SkewMax\", \"NodeMin\", \"NodeMax\"];\n\nexport interface IPropertyValue {\n    Key: string;\n    Value?: string;\n\n    //  Extended properties  ---\n    Avg?: string;\n    Min?: string;\n    Max?: string;\n    Delta?: string;\n    StdDev?: string;\n    StdDevs?: number;\n\n    // Related properties  ---\n    SkewMin?: string;\n    SkewMax?: string;\n    NodeMin?: string;\n    NodeMax?: string;\n}\n\nexport interface IScope {\n    __parentName?: string;\n    __children?: IScope[];\n    __formattedProps: { [key: string]: any };\n    __groupedProps: { [key: string]: IPropertyValue };\n    __StdDevs: number,\n    __StdDevsSource: string,\n    id: string;\n    name: string;\n    type: string;\n    Kind: string;\n    Label: string;\n    [key: string]: any;\n}\n\nexport interface ISplitMetric {\n    measure: string;\n    ext: string;\n    label: string;\n}\n\nconst metricKeyRegex = /[A-Z][a-z]*/g;\nfunction _splitMetric(fullLabel: string): ISplitMetric {\n\n    // Related properties  ---\n    for (const relProp of RelatedProperty) {\n        const index = fullLabel.indexOf(relProp);\n        if (index === 0) {\n            const measure = \"\";\n            const label = fullLabel.slice(index + relProp.length);\n            return { measure, ext: relProp, label };\n        }\n    }\n\n    // Primary properties  ---\n    const labelParts = fullLabel.match(metricKeyRegex);\n    if (labelParts?.length) {\n        const measure = labelParts.shift();\n        let label = labelParts.join(\"\");\n        for (const ext of PropertyType) {\n            const index = label.indexOf(ext);\n            if (index === 0) {\n                label = label.slice(index + ext.length);\n                return { measure, ext, label };\n            }\n        }\n        // Not an aggregate property  ---\n        return { measure, ext: \"\", label };\n    }\n\n    // No match found  ---\n    return { measure: \"\", ext: \"\", label: fullLabel };\n}\n\nconst splitLabelCache: { [key: string]: ISplitMetric } = {};\nexport function splitMetric(key: string): ISplitMetric {\n    let retVal = splitLabelCache[key];\n    if (!retVal) {\n        retVal = _splitMetric(key);\n        splitLabelCache[key] = retVal;\n    }\n    return retVal;\n}\n\nfunction formatValue(item: IScope, key: string): string | undefined {\n    return item.__formattedProps?.[key] ?? item[key];\n}\n\ntype DedupProperties = { [key: string]: boolean };\n\nfunction safeParseFloat(val: string | undefined): number | undefined {\n    if (val === undefined) return undefined;\n    const retVal = parseFloat(val);\n    return isNaN(retVal) ? undefined : retVal;\n}\n\nfunction formatValues(item: IScope, key: string, dedup: DedupProperties): IPropertyValue | null {\n    const keyParts = splitMetric(key);\n    if (!dedup[keyParts.measure]) {\n        dedup[keyParts.label] = true;\n        const avg = safeParseFloat(item[`${keyParts.measure}Avg${keyParts.label}`]);\n        const min = safeParseFloat(item[`${keyParts.measure}Min${keyParts.label}`]);\n        const max = safeParseFloat(item[`${keyParts.measure}Max${keyParts.label}`]);\n        const stdDev = safeParseFloat(item[`${keyParts.measure}StdDev${keyParts.label}`]);\n        const StdDevs = Math.max((avg - min) / stdDev, (max - avg) / stdDev);\n\n        return {\n            Key: `${keyParts.measure}${keyParts.label}`,\n            Value: formatValue(item, `${keyParts.measure}${keyParts.label}`),\n\n            //  Extended properties  ---\n            Avg: formatValue(item, `${keyParts.measure}Avg${keyParts.label}`),\n            Min: formatValue(item, `${keyParts.measure}Min${keyParts.label}`),\n            Max: formatValue(item, `${keyParts.measure}Max${keyParts.label}`),\n            Delta: formatValue(item, `${keyParts.measure}Delta${keyParts.label}`),\n            StdDev: formatValue(item, `${keyParts.measure}StdDev${keyParts.label}`),\n            StdDevs: isNaN(StdDevs) ? undefined : StdDevs,\n\n            // Related properties  ---\n            SkewMin: formatValue(item, `SkewMin${keyParts.label}`),\n            SkewMax: formatValue(item, `SkewMax${keyParts.label}`),\n            NodeMin: formatValue(item, `NodeMin${keyParts.label}`),\n            NodeMax: formatValue(item, `NodeMax${keyParts.label}`)\n        };\n    }\n    return null;\n}\n\nconst logger = scopedLogger(\"workunit.ts\");\n\nexport class WorkunitCache extends Cache<{ BaseUrl: string, Wuid: string }, Workunit> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.Wuid}`;\n        });\n    }\n}\nconst _workunits = new WorkunitCache();\n\nexport interface DebugState {\n    sequence: number;\n    state: string;\n    [key: string]: any;\n}\n\nexport interface IWorkunit {\n    ResultViews: WsWorkunits.ResultViews;\n    HelpersCount: number;\n}\n\nexport interface IDebugWorkunit {\n    DebugState?: DebugState;\n}\n\nexport interface ITimeElapsed {\n    scope: string;\n    start: string;\n    elapsed: number;\n    finish: string;\n}\n\nexport type WorkunitEvents = \"completed\" | StateEvents;\nexport type UWorkunitState = WsWorkunits.ECLWorkunit & WsWorkunits.Workunit & WsSMC.ActiveWorkunit & IWorkunit & IDebugWorkunit;\nexport type IWorkunitState = WsWorkunits.ECLWorkunit | WsWorkunits.Workunit | WsSMC.ActiveWorkunit | IWorkunit | IDebugWorkunit;\nexport class Workunit extends StateObject<UWorkunitState, IWorkunitState> implements WsWorkunits.Workunit {\n    connection: WorkunitsService;\n    topologyConnection: WsTopology.TopologyService;\n    get BaseUrl() { return this.connection.baseUrl; }\n\n    private _debugMode: boolean = false;\n    private _debugAllGraph: any;\n    private _submitAction: WUUpdate.Action;\n\n    //  Accessors  ---\n    get properties(): WsWorkunits.ECLWorkunit & WsWorkunits.Workunit { return this.get(); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get Owner(): string { return this.get(\"Owner\", \"\"); }\n    get Cluster(): string { return this.get(\"Cluster\", \"\"); }\n    get Jobname(): string { return this.get(\"Jobname\", \"\"); }\n    get Description(): string { return this.get(\"Description\", \"\"); }\n    get ActionEx(): string { return this.get(\"ActionEx\", \"\"); }\n    get StateID(): WUStateID { return this.get(\"StateID\", WUStateID.Unknown); }\n    get State(): string { return this.get(\"State\") || WUStateID[this.StateID]; }\n    get Protected(): boolean { return this.get(\"Protected\", false); }\n    get Exceptions(): WsWorkunits.Exceptions2 { return this.get(\"Exceptions\", { ECLException: [] }); }\n    get ResultViews(): WsWorkunits.ResultViews { return this.get(\"ResultViews\", { View: [] }); }\n\n    private _resultCache = new ResultCache();\n    get ResultCount(): number { return this.get(\"ResultCount\", 0); }\n    get Results(): WsWorkunits.Results { return this.get(\"Results\", { ECLResult: [] }); }\n    get CResults(): Result[] {\n        return this.Results.ECLResult.map((eclResult) => {\n            return this._resultCache.get(eclResult, () => {\n                return Result.attach(this.connection, this.Wuid, eclResult, this.ResultViews.View);\n            });\n        });\n    }\n    get SequenceResults(): { [key: number]: Result } {\n        const retVal: { [key: number]: Result } = {};\n        this.CResults.forEach((result) => {\n            retVal[result.Sequence] = result;\n        });\n        return retVal;\n    }\n    get Timers(): WsWorkunits.Timers { return this.get(\"Timers\", { ECLTimer: [] }); }\n    get CTimers(): Timer[] {\n        return this.Timers.ECLTimer.map((eclTimer) => {\n            return new Timer(this.connection, this.Wuid, eclTimer);\n        });\n    }\n\n    private _graphCache = new GraphCache();\n    get GraphCount(): number { return this.get(\"GraphCount\", 0); }\n    get Graphs(): WsWorkunits.Graphs { return this.get(\"Graphs\", { ECLGraph: [] }); }\n    get CGraphs(): ECLGraph[] {\n        return this.Graphs.ECLGraph.map((eclGraph) => {\n            return this._graphCache.get(eclGraph, () => {\n                return new ECLGraph(this, eclGraph, this.CTimers);\n            });\n        });\n    }\n    get ThorLogList(): WsWorkunits.ThorLogList { return this.get(\"ThorLogList\"); }\n    get ResourceURLCount(): number { return this.get(\"ResourceURLCount\", 0); }\n    get ResourceURLs(): WsWorkunits.ResourceURLs { return this.get(\"ResourceURLs\", { URL: [] }); }\n    get CResourceURLs(): Resource[] {\n        return this.ResourceURLs.URL.map((url) => {\n            return new Resource(this, url);\n        });\n    }\n    get TotalClusterTime(): string { return this.get(\"TotalClusterTime\", \"\"); }\n    get DateTimeScheduled(): string { return this.get(\"DateTimeScheduled\"); }\n    get IsPausing(): boolean { return this.get(\"IsPausing\"); }\n    get ThorLCR(): boolean { return this.get(\"ThorLCR\"); }\n    get ApplicationValues(): WsWorkunits.ApplicationValues { return this.get(\"ApplicationValues\", { ApplicationValue: [] }); }\n    get HasArchiveQuery(): boolean { return this.get(\"HasArchiveQuery\"); }\n    get StateEx(): string { return this.get(\"StateEx\"); }\n    get PriorityClass(): number { return this.get(\"PriorityClass\"); }\n    get PriorityLevel(): number { return this.get(\"PriorityLevel\"); }\n    get Snapshot(): string { return this.get(\"Snapshot\"); }\n    get ResultLimit(): number { return this.get(\"ResultLimit\"); }\n    get EventSchedule(): number { return this.get(\"EventSchedule\"); }\n    get Query(): WsWorkunits.Query { return this.get(\"Query\"); }\n    get HelpersCount(): number { return this.get(\"HelpersCount\", 0); }\n    get Helpers(): WsWorkunits.Helpers { return this.get(\"Helpers\", { ECLHelpFile: [] }); }\n    get DebugValues(): WsWorkunits.DebugValues { return this.get(\"DebugValues\"); }\n    get AllowedClusters(): WsWorkunits.AllowedClusters { return this.get(\"AllowedClusters\"); }\n    get ErrorCount(): number { return this.get(\"ErrorCount\", 0); }\n    get WarningCount(): number { return this.get(\"WarningCount\", 0); }\n    get InfoCount(): number { return this.get(\"InfoCount\", 0); }\n    get AlertCount(): number { return this.get(\"AlertCount\", 0); }\n    get SourceFileCount(): number { return this.get(\"SourceFileCount\", 0); }\n    get SourceFiles(): WsWorkunits.SourceFiles { return this.get(\"SourceFiles\", { ECLSourceFile: [] }); }\n    get CSourceFiles(): SourceFile[] {\n        return this.SourceFiles.ECLSourceFile.map(eclSourceFile => new SourceFile(this.connection, this.Wuid, eclSourceFile));\n    }\n    get VariableCount(): number { return this.get(\"VariableCount\", 0); }\n    get Variables(): WsWorkunits.Variables { return this.get(\"Variables\", { ECLResult: [] }); }\n    get TimerCount(): number { return this.get(\"TimerCount\", 0); }\n    get HasDebugValue(): boolean { return this.get(\"HasDebugValue\"); }\n    get ApplicationValueCount(): number { return this.get(\"ApplicationValueCount\", 0); }\n    get XmlParams(): string { return this.get(\"XmlParams\"); }\n    get AccessFlag(): number { return this.get(\"AccessFlag\"); }\n    get ClusterFlag(): number { return this.get(\"ClusterFlag\"); }\n    get ResultViewCount(): number { return this.get(\"ResultViewCount\", 0); }\n    get DebugValueCount(): number { return this.get(\"DebugValueCount\", 0); }\n    get WorkflowCount(): number { return this.get(\"WorkflowCount\", 0); }\n    get Archived(): boolean { return this.get(\"Archived\"); }\n    get RoxieCluster(): string { return this.get(\"RoxieCluster\"); }\n    get DebugState(): DebugState { return this.get(\"DebugState\", {} as DebugState)!; }\n    get Queue(): string { return this.get(\"Queue\"); }\n    get Active(): boolean { return this.get(\"Active\"); }\n    get Action(): number { return this.get(\"Action\"); }\n    get Scope(): string { return this.get(\"Scope\"); }\n    get AbortBy(): string { return this.get(\"AbortBy\"); }\n    get AbortTime(): string { return this.get(\"AbortTime\"); }\n    get Workflows(): WsWorkunits.Workflows { return this.get(\"Workflows\"); }\n    get TimingData(): WsWorkunits.TimingData { return this.get(\"TimingData\"); }\n    get HelpersDesc(): string { return this.get(\"HelpersDesc\"); }\n    get GraphsDesc(): string { return this.get(\"GraphsDesc\"); }\n    get SourceFilesDesc(): string { return this.get(\"SourceFilesDesc\"); }\n    get ResultsDesc(): string { return this.get(\"ResultsDesc\"); }\n    get VariablesDesc(): string { return this.get(\"VariablesDesc\"); }\n    get TimersDesc(): string { return this.get(\"TimersDesc\"); }\n    get DebugValuesDesc(): string { return this.get(\"DebugValuesDesc\"); }\n    get ApplicationValuesDesc(): string { return this.get(\"ApplicationValuesDesc\"); }\n    get WorkflowsDesc(): string { return this.get(\"WorkflowsDesc\"); }\n    get ServiceNames(): WsWorkunits.ServiceNames { return this.get(\"ServiceNames\"); }\n    get CompileCost(): number { return this.get(\"CompileCost\"); }\n    get ExecuteCost(): number { return this.get(\"ExecuteCost\"); }\n    get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n    get NoAccess(): boolean { return this.get(\"NoAccess\"); }\n    get ECLWUProcessList(): WsWorkunits.ECLWUProcessList { return this.get(\"ECLWUProcessList\"); }\n    get CostSavingPotential(): number { return this.get(\"CostSavingPotential\"); }\n    get FailureDesc(): string { return this.get(\"FailureDesc\"); }\n\n    //  Factories  ---\n    static create(optsConnection: IOptions | IConnection): Promise<Workunit> {\n        const retVal: Workunit = new Workunit(optsConnection);\n        return retVal.connection.WUCreate().then((response) => {\n            _workunits.set(retVal);\n            retVal.set(response.Workunit);\n            return retVal;\n        });\n    }\n\n    static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IWorkunitState): Workunit {\n        const retVal: Workunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, Wuid: wuid }, () => {\n            return new Workunit(optsConnection, wuid);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    static existsLocal(baseUrl: string, wuid: string): boolean {\n        return _workunits.has({ BaseUrl: baseUrl, Wuid: wuid });\n    }\n\n    static submit(server: IOptions | IConnection, target: string, ecl: string, compileOnly = false): Promise<Workunit> {\n        return Workunit.create(server).then((wu) => {\n            return wu.update({ QueryText: ecl });\n        }).then((wu) => {\n            return compileOnly ? wu.submit(target, WUUpdate.Action.Compile) : wu.submit(target);\n        });\n    }\n\n    static compile(server: IOptions | IConnection, target: string, ecl: string): Promise<Workunit> {\n        return Workunit.submit(server, target, ecl, true);\n    }\n\n    static query(server: IOptions | IConnection, opts: Partial<WsWorkunits.WUQuery>): Promise<Workunit[]> {\n        const wsWorkunits = new WorkunitsService(server);\n        return wsWorkunits.WUQuery(opts).then((response) => {\n            return response.Workunits.ECLWorkunit.map(function (wu) {\n                return Workunit.attach(server, wu.Wuid, wu);\n            });\n        });\n    }\n\n    //  ---  ---  ---\n    protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\n        super();\n        this.connection = new WorkunitsService(optsConnection);\n        this.topologyConnection = new WsTopology.TopologyService(optsConnection);\n        this.clearState(wuid);\n    }\n\n    clearState(wuid?: string) {\n        this.clear({\n            Wuid: wuid,\n            StateID: WUStateID.Unknown\n        });\n    }\n\n    update(request: Partial<WsWorkunits.WUUpdate>): Promise<Workunit> {\n        return this.connection.WUUpdate({\n            ...request,\n            ...{\n                Wuid: this.Wuid,\n                StateOrig: this.StateID,\n                JobnameOrig: this.Jobname,\n                DescriptionOrig: this.Description,\n                ProtectedOrig: this.Protected,\n                ClusterOrig: this.Cluster\n            }\n        }).then((response) => {\n            this.set(response.Workunit);\n            return this;\n        });\n    }\n\n    submit(_cluster?: string, action: WUUpdate.Action = WUUpdate.Action.Run, resultLimit?: number): Promise<Workunit> {\n        let clusterPromise;\n        if (_cluster !== void 0) {\n            clusterPromise = Promise.resolve(_cluster);\n        } else {\n            clusterPromise = this.topologyConnection.DefaultTpLogicalClusterQuery().then((response) => {\n                return response.Name;\n            });\n        }\n\n        this._debugMode = false;\n        if (action === WUUpdate.Action.Debug) {\n            action = WUUpdate.Action.Run;\n            this._debugMode = true;\n        }\n\n        return clusterPromise.then((cluster) => {\n            return this.connection.WUUpdate({\n                Wuid: this.Wuid,\n                Action: action,\n                ResultLimit: resultLimit,\n                DebugValues: {\n                    DebugValue: [\n                        {\n                            Name: \"Debug\",\n                            Value: this._debugMode ? \"1\" : \"\"\n                        }\n                    ]\n                }\n            }).then((response) => {\n                this.set(response.Workunit);\n                this._submitAction = action;\n                return this.connection.WUSubmit({ Wuid: this.Wuid, Cluster: cluster });\n            });\n        }).then(() => {\n            return this;\n        });\n    }\n\n    isComplete(): boolean {\n        switch (this.StateID) {\n            case WUStateID.Compiled:\n                return this.ActionEx === \"compile\" || this._submitAction === WUUpdate.Action.Compile;\n            case WUStateID.Completed:\n            case WUStateID.Failed:\n            case WUStateID.Aborted:\n            case WUStateID.NotFound:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    isFailed() {\n        switch (this.StateID) {\n            case WUStateID.Aborted:\n            case WUStateID.Failed:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    isDeleted() {\n        switch (this.StateID) {\n            case WUStateID.NotFound:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    isDebugging() {\n        switch (this.StateID) {\n            case WUStateID.DebugPaused:\n            case WUStateID.DebugRunning:\n                return true;\n            default:\n        }\n        return this._debugMode;\n    }\n\n    isRunning(): boolean {\n        switch (this.StateID) {\n            case WUStateID.Compiled:\n            case WUStateID.Running:\n            case WUStateID.Aborting:\n            case WUStateID.Blocked:\n            case WUStateID.DebugPaused:\n            case WUStateID.DebugRunning:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    setToFailed() {\n        return this.WUAction(WsWorkunits.ECLWUActions.SetToFailed);\n    }\n\n    pause() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Pause);\n    }\n\n    pauseNow() {\n        return this.WUAction(WsWorkunits.ECLWUActions.PauseNow);\n    }\n\n    resume() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Resume);\n    }\n\n    abort() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Abort);\n    }\n\n    protect() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Protect);\n    }\n\n    unprotect() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Unprotect);\n    }\n\n    delete() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Delete);\n    }\n\n    restore() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Restore);\n    }\n\n    deschedule() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Deschedule);\n    }\n\n    reschedule() {\n        return this.WUAction(WsWorkunits.ECLWUActions.Reschedule);\n    }\n\n    resubmit(): Promise<Workunit> {\n        return this.WUResubmit({\n            CloneWorkunit: false,\n            ResetWorkflow: false\n        }).then(() => {\n            this.clearState(this.Wuid);\n            return this.refresh().then(() => {\n                this._monitor();\n                return this;\n            });\n        });\n    }\n\n    clone(): Promise<Workunit> {\n        return this.WUResubmit({\n            CloneWorkunit: true,\n            ResetWorkflow: false\n        }).then((response) => {\n            return Workunit.attach(this.connection.opts(), response.WUs.WU[0].WUID)\n                .refresh()\n                ;\n        });\n    }\n\n    async refreshState(): Promise<this> {\n        await this.WUQuery();\n        // Ensure \"isComplete\" is correct for WUs that are only \"Compiled\".\n        if (this.StateID === WUStateID.Compiled && !this.ActionEx && !this._submitAction) {\n            await this.refreshInfo();\n        }\n        return this;\n    }\n\n    async refreshInfo(request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n        await this.WUInfo(request);\n        return this;\n    }\n\n    async refreshDebug(): Promise<this> {\n        await this.debugStatus();\n        return this;\n    }\n\n    async refresh(full: boolean = false, request?: Partial<WsWorkunits.WUInfo>): Promise<this> {\n        if (full) {\n            await Promise.all([this.refreshInfo(request), this.refreshDebug()]);\n        } else {\n            await this.refreshState();\n        }\n        return this;\n    }\n\n    eclExceptions(): WsWorkunits.ECLException[] {\n        return this.Exceptions.ECLException;\n    }\n\n    fetchArchive(): Promise<string> {\n        return this.connection.WUFileEx({\n            Wuid: this.Wuid,\n            Type: \"ArchiveQuery\"\n        });\n    }\n\n    fetchECLExceptions(): Promise<WsWorkunits.ECLException[]> {\n        return this.WUInfo({ IncludeExceptions: true }).then(() => {\n            return this.eclExceptions();\n        });\n    }\n\n    fetchResults(): Promise<Result[]> {\n        return this.WUInfo({ IncludeResults: true }).then(() => {\n            return this.CResults;\n        });\n    }\n\n    fetchGraphs(): Promise<ECLGraph[]> {\n        return this.WUInfo({ IncludeGraphs: true }).then(() => {\n            return this.CGraphs;\n        });\n    }\n\n    fetchQuery(): Promise<WsWorkunits.Query> {\n        return this.WUInfo({ IncludeECL: true, TruncateEclTo64k: false }).then(() => {\n            return this.Query;\n        });\n    }\n\n    fetchHelpers(): Promise<WsWorkunits.ECLHelpFile[]> {\n        return this.WUInfo({ IncludeHelpers: true }).then(() => {\n            return this.Helpers?.ECLHelpFile || [];\n        });\n    }\n\n    fetchAllowedClusters(): Promise<string[]> {\n        return this.WUInfo({ IncludeAllowedClusters: true }).then(() => {\n            return this.AllowedClusters?.AllowedCluster || [];\n        });\n    }\n\n    fetchTotalClusterTime(): Promise<string> {\n        return this.WUInfo({ IncludeTotalClusterTime: true }).then(() => {\n            return this.TotalClusterTime;\n        });\n    }\n\n    fetchServiceNames(): Promise<string[]> {\n        return this.WUInfo({ IncludeServiceNames: true }).then(() => {\n            return this.ServiceNames?.Item;\n        });\n    }\n\n    fetchDetailsMeta(request: RecursivePartial<WsWorkunits.WUDetailsMeta> = {}): Promise<WsWorkunits.WUDetailsMetaResponse> {\n        return this.WUDetailsMeta(request);\n    }\n\n    fetchDetailsRaw(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<WsWorkunits.Scope[]> {\n        return this.WUDetails(request).then(response => response.Scopes.Scope);\n    }\n\n    normalizeDetails(meta: WsWorkunits.WUDetailsMetaResponse, scopes: WsWorkunits.Scope[]): { meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] } {\n        const columns: { [id: string]: any } = {\n            id: {\n                Measure: \"label\"\n            },\n            name: {\n                Measure: \"label\"\n            },\n            type: {\n                Measure: \"label\"\n            }\n        };\n        const activityMap = new Map<number, string>();\n        for (const activity of meta.Activities?.Activity ?? []) {\n            activityMap.set(activity.Kind, activity.Name);\n        }\n        const data: IScope[] = new Array(scopes.length);\n        for (let i = 0; i < scopes.length; i++) {\n            const scope = scopes[i];\n            const props: { [key: string]: any } = {};\n            const formattedProps: { [key: string]: any } = {};\n            if (scope.Properties?.Property) {\n                for (const scopeProperty of scope.Properties.Property) {\n                    const measure = scopeProperty.Measure;\n                    const name = scopeProperty.Name;\n                    const rawValue = scopeProperty.RawValue;\n                    if (measure === \"ns\") {\n                        scopeProperty.Measure = \"s\";\n                    }\n                    if (name === \"Kind\") {\n                        const rawValueInt = parseInt(rawValue, 10);\n                        scopeProperty.Formatted = activityMap.get(rawValueInt) ?? rawValue;\n                    }\n                    columns[name] = {\n                        Name: scopeProperty.Name,\n                        Measure: scopeProperty.Measure,\n                        Creator: scopeProperty.Creator,\n                        CreatorType: scopeProperty.CreatorType\n                    };\n                    switch (scopeProperty.Measure) {\n                        case \"bool\":\n                            props[name] = !!+rawValue;\n                            break;\n                        case \"sz\":\n                            props[name] = +rawValue;\n                            break;\n                        case \"s\":\n                            props[name] = +rawValue / 1000000000;\n                            break;\n                        case \"ns\":\n                            props[name] = +rawValue;\n                            break;\n                        case \"ts\":\n                            props[name] = new Date(+rawValue / 1000).toISOString();\n                            break;\n                        case \"cnt\":\n                            props[name] = +rawValue;\n                            break;\n                        case \"cost\":\n                            props[name] = +rawValue / 1000000;\n                            break;\n                        case \"node\":\n                            props[name] = +rawValue;\n                            break;\n                        case \"skw\":\n                            props[name] = +rawValue;\n                            break;\n                        case \"cpu\":\n                        case \"ppm\":\n                        case \"ip\":\n                        case \"cy\":\n                        case \"en\":\n                        case \"txt\":\n                        case \"id\":\n                        case \"fname\":\n                        default:\n                            props[name] = rawValue;\n                    }\n                    formattedProps[name] = formatNum(scopeProperty.Formatted ?? props[name]);\n                }\n            }\n            const normalizedScope: IScope = {\n                id: scope.Id,\n                name: scope.ScopeName,\n                type: scope.ScopeType,\n                Kind: scope[\"Kind\"],\n                Label: scope[\"Label\"],\n                __formattedProps: formattedProps,\n                __groupedProps: {},\n                __groupedRawProps: {},\n                __StdDevs: 0,\n                __StdDevsSource: \"\",\n                ...props\n            };\n            const definitionList = normalizedScope[DEFINITION_LIST];\n            if (definitionList) {\n                try {\n                    const parsedList = JSON.parse(definitionList.split(\"\\\\\").join(\"\\\\\\\\\"));\n                    const processedDefinitions: Array<{ filePath: string, line: number, col: number }> = [];\n\n                    for (let k = 0; k < parsedList.length; k++) {\n                        const matches = parsedList[k].match(definitionRegex);\n                        if (matches) {\n                            processedDefinitions.push({\n                                filePath: (matches[1] ?? \"\") + matches[2] + matches[3],\n                                line: parseInt(matches[5], 10),\n                                col: parseInt(matches[6], 10)\n                            });\n                        }\n                    }\n                    normalizedScope[DEFINITION_LIST] = processedDefinitions;\n                } catch (e) {\n                    logger.error(`Unexpected \"DefinitionList\": ${definitionList}`);\n                }\n            }\n\n            const dedup: DedupProperties = {};\n            let maxStdDevs = 0;\n            let maxStdDevsSource = \"\";\n            for (const key in normalizedScope) {\n                if (!key.startsWith(\"__\")) {\n                    const row = formatValues(normalizedScope, key, dedup);\n                    if (row) {\n                        normalizedScope.__groupedProps[row.Key] = row;\n                        if (!isNaN(row.StdDevs) && row.StdDevs > maxStdDevs) {\n                            maxStdDevs = row.StdDevs;\n                            maxStdDevsSource = row.Key;\n                        }\n                    }\n                }\n            }\n            normalizedScope.__StdDevs = maxStdDevs;\n            normalizedScope.__StdDevsSource = maxStdDevsSource;\n\n            data[i] = normalizedScope;\n        }\n        return {\n            meta,\n            columns,\n            data\n        };\n    }\n\n    fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse, columns: { [id: string]: any }, data: IScope[] }> {\n        return Promise.all([this.fetchDetailsMeta(), this.fetchDetailsRaw(request)]).then(promises => {\n            return this.normalizeDetails(promises[0], promises[1]);\n        });\n    }\n\n    fetchInfo(request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\n        return this.WUInfo(request);\n    }\n\n    fetchDetails(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<Scope[]> {\n        return this.WUDetails(request).then((response) => {\n            return response.Scopes.Scope.map((rawScope) => {\n                return new Scope(this, rawScope);\n            });\n        });\n    }\n\n    fetchDetailsHierarchy(request: Partial<WsWorkunits.WUDetails> = {}): Promise<Scope[]> {\n        return this.WUDetails(request).then((response) => {\n            const retVal: Scope[] = [];\n\n            //  Recreate scope hierarchy and dedup  ---\n            const scopeMap: { [key: string]: Scope } = {};\n            response.Scopes.Scope.forEach((rawScope) => {\n                if (scopeMap[rawScope.ScopeName]) {\n                    scopeMap[rawScope.ScopeName].update(rawScope);\n                    return null;\n                } else {\n                    const scope = new Scope(this, rawScope);\n                    scopeMap[scope.ScopeName] = scope;\n                    return scope;\n                }\n            });\n            for (const key in scopeMap) {\n                if (scopeMap.hasOwnProperty(key)) {\n                    const scope = scopeMap[key];\n                    const parentScopeID = scope.parentScope();\n                    if (parentScopeID && scopeMap[parentScopeID]) {\n                        scopeMap[parentScopeID].children().push(scope);\n                    } else {\n                        retVal.push(scope);\n                    }\n                }\n            }\n\n            return retVal;\n        });\n    }\n\n    fetchGraphDetails(graphIDs: string[] = [], rootTypes: string[]): Promise<BaseScope[]> {\n        return this.fetchDetails({\n            ScopeFilter: {\n                MaxDepth: 999999,\n                Ids: graphIDs,\n                ScopeTypes: rootTypes,\n            },\n            NestedFilter: {\n                Depth: 999999,\n                ScopeTypes: [\"graph\", \"subgraph\", \"activity\", \"edge\", \"function\"]\n            },\n            PropertiesToReturn: {\n                AllStatistics: true,\n                AllAttributes: true,\n                AllHints: true,\n                AllProperties: true,\n                AllScopes: true\n            },\n            ScopeOptions: {\n                IncludeId: true,\n                IncludeScope: true,\n                IncludeScopeType: true\n            },\n            PropertyOptions: {\n                IncludeName: true,\n                IncludeRawValue: true,\n                IncludeFormatted: true,\n                IncludeMeasure: true,\n                IncludeCreator: false,\n                IncludeCreatorType: false\n            }\n        });\n    }\n\n    fetchScopeGraphs(graphIDs: string[] = []): Promise<ScopeGraph> {\n        return this.fetchGraphDetails(graphIDs, [\"graph\"]).then((scopes) => {\n            return createGraph(scopes);\n        });\n    }\n\n    fetchTimeElapsed(): Promise<ITimeElapsed[]> {\n        return this.fetchDetails({\n            ScopeFilter: {\n                PropertyFilters: {\n                    PropertyFilter: [{ Name: \"TimeElapsed\" }]\n                }\n            }\n        }).then((scopes) => {\n            const scopeInfo: { [key: string]: ITimeElapsed } = {};\n            scopes.forEach((scope) => {\n                scopeInfo[scope.ScopeName] = scopeInfo[scope.ScopeName] || {\n                    scope: scope.ScopeName,\n                    start: null,\n                    elapsed: null,\n                    finish: null\n                };\n                scope.CAttributes.forEach((attr) => {\n                    if (attr.Name === \"TimeElapsed\") {\n                        scopeInfo[scope.ScopeName].elapsed = +attr.RawValue;\n                    } else if (attr.Measure === \"ts\" && attr.Name.indexOf(\"Started\") >= 0) {\n                        scopeInfo[scope.ScopeName].start = attr.Formatted;\n                    }\n                });\n            });\n            // Workaround duplicate scope responses\n            const retVal: ITimeElapsed[] = [];\n            for (const key in scopeInfo) {\n                const scope = scopeInfo[key];\n                if (scope.start && scope.elapsed) {\n                    const endTime = parser(scope.start);\n                    endTime!.setMilliseconds(endTime!.getMilliseconds() + scope.elapsed / 1000000);\n                    scope.finish = formatter(endTime!);\n                    retVal.push(scope);\n                }\n            }\n            retVal.sort((l, r) => {\n                if (l.start < r.start) return -1;\n                if (l.start > r.start) return 1;\n                return 0;\n            });\n            return retVal;\n        });\n    }\n\n    //  Monitoring  ---\n    protected _monitor(): void {\n        if (this.isComplete()) {\n            this._monitorTickCount = 0;\n            return;\n        }\n        super._monitor();\n    }\n\n    protected _monitorTimeoutDuration(): number {\n        const retVal = super._monitorTimeoutDuration();\n        if (this._monitorTickCount <= 1) {          //  Once\n            return 1000;\n        } else if (this._monitorTickCount <= 3) {   //  Twice\n            return 3000;\n        } else if (this._monitorTickCount <= 5) {   //  Twice\n            return 5000;\n        } else if (this._monitorTickCount <= 7) {   //  Twice\n            return 10000;\n        }\n        return retVal;\n    }\n\n    //  Events  ---\n    on(eventID: WorkunitEvents, propIDorCallback: StateCallback | keyof UWorkunitState, callback?: StatePropCallback): this {\n        if (this.isCallback(propIDorCallback)) {\n            switch (eventID) {\n                case \"completed\":\n                    super.on(\"propChanged\", \"StateID\", (changeInfo: IEvent) => {\n                        if (this.isComplete()) {\n                            propIDorCallback([changeInfo]);\n                        }\n                    });\n                    break;\n                case \"changed\":\n                    super.on(eventID, propIDorCallback);\n                    break;\n                default:\n            }\n        } else {\n            switch (eventID) {\n                case \"changed\":\n                    super.on(eventID, propIDorCallback, callback!);\n                    break;\n                default:\n            }\n        }\n        this._monitor();\n        return this;\n    }\n\n    watchUntilComplete(callback?: StateCallback): Promise<this> {\n        return new Promise((resolve, _) => {\n            const watchHandle = this.watch((changes) => {\n                if (callback) {\n                    callback(changes);\n                }\n                if (this.isComplete()) {\n                    watchHandle.release();\n                    resolve(this);\n                }\n            });\n        });\n    }\n\n    watchUntilRunning(callback?: StateCallback): Promise<this> {\n        return new Promise((resolve, _) => {\n            const watchHandle = this.watch((changes) => {\n                if (callback) {\n                    callback(changes);\n                }\n                if (this.isComplete() || this.isRunning()) {\n                    watchHandle.release();\n                    resolve(this);\n                }\n            });\n        });\n    }\n\n    //  WsWorkunits passthroughs  ---\n    protected WUQuery(_request: Partial<WsWorkunits.WUQuery> = {}): Promise<WsWorkunits.WUQueryResponse> {\n        return this.connection.WUQuery({ ..._request, Wuid: this.Wuid }).then((response) => {\n            if (response.Workunits.ECLWorkunit.length === 0) {\n                //  deleted  ---\n                this.clearState(this.Wuid);\n                this.set(\"StateID\", WUStateID.NotFound);\n            } else {\n                this.set(response.Workunits.ECLWorkunit[0]);\n            }\n            return response;\n        }).catch((e: ESPExceptions) => {\n            //  deleted  ---\n            const wuMissing = e.Exception.some((exception) => {\n                if (exception.Code === 20081) {\n                    this.clearState(this.Wuid);\n                    this.set(\"StateID\", WUStateID.NotFound);\n                    return true;\n                }\n                return false;\n            });\n            if (!wuMissing) {\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\n                throw e;\n            }\n            return {} as WsWorkunits.WUQueryResponse;\n        });\n    }\n\n    protected WUCreate() {\n        return this.connection.WUCreate().then((response) => {\n            this.set(response.Workunit);\n            _workunits.set(this);\n            return response;\n        });\n    }\n\n    protected WUInfo(_request: Partial<WsWorkunits.WUInfo> = {}): Promise<WsWorkunits.WUInfoResponse> {\n        const includeResults = _request.IncludeResults || _request.IncludeResultsViewNames;\n        return this.connection.WUInfo({\n            ..._request,\n            Wuid: this.Wuid,\n            IncludeResults: includeResults,\n            IncludeResultsViewNames: includeResults,\n            SuppressResultSchemas: false\n        }).then((response) => {\n            this.set(response.Workunit);\n            if (includeResults) {\n                this.set({\n                    ResultViews: response.ResultViews\n                } as IWorkunitState);\n            }\n            return response;\n        }).catch((e: ESPExceptions) => {\n            //  deleted  ---\n            const wuMissing = e.Exception.some((exception) => {\n                if (exception.Code === 20080) {\n                    this.clearState(this.Wuid);\n                    this.set(\"StateID\", WUStateID.NotFound);\n                    return true;\n                }\n                return false;\n            });\n            if (!wuMissing) {\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\n                throw e;\n            }\n            return {} as WsWorkunits.WUInfoResponse;\n        });\n    }\n\n    protected WUResubmit(request: Partial<WsWorkunits.WUResubmit>): Promise<WsWorkunits.WUResubmitResponse> {\n        return this.connection.WUResubmit(deepMixinT<WsWorkunits.WUResubmit>({}, request, {\n            Wuids: { Item: [this.Wuid] }\n        }));\n    }\n\n    protected WUDetailsMeta(request: Partial<WsWorkunits.WUDetailsMeta>): Promise<WsWorkunits.WUDetailsMetaResponse> {\n        return this.connection.WUDetailsMeta(request);\n    }\n\n    protected WUDetails(request: RecursivePartial<WsWorkunits.WUDetails>): Promise<WsWorkunits.WUDetailsResponse> {\n        return this.connection.WUDetails(deepMixinT<WsWorkunits.WUDetails>({\n            ScopeFilter: {\n                MaxDepth: 9999\n            },\n            ScopeOptions: {\n                IncludeMatchedScopesInResults: true,\n                IncludeScope: true,\n                IncludeId: false,\n                IncludeScopeType: false\n            },\n            PropertyOptions: {\n                IncludeName: true,\n                IncludeRawValue: false,\n                IncludeFormatted: true,\n                IncludeMeasure: true,\n                IncludeCreator: false,\n                IncludeCreatorType: false\n            }\n        }, request, { WUID: this.Wuid })).then((response) => {\n            return deepMixinT<WsWorkunits.WUDetailsResponse>({\n                Scopes: {\n                    Scope: []\n                }\n            }, response);\n        });\n    }\n\n    protected WUAction(actionType: WsWorkunits.ECLWUActions): Promise<WsWorkunits.WUActionResponse> {\n        return this.connection.WUAction({\n            Wuids: { Item: [this.Wuid] },\n            WUActionType: actionType\n        }).then((response) => {\n            return this.refresh().then(() => {\n                this._monitor();\n                return response;\n            });\n        });\n    }\n\n    publish(name?: string) {\n        return this.connection.WUPublishWorkunit({\n            Wuid: this.Wuid,\n            Cluster: this.Cluster,\n            JobName: name || this.Jobname,\n            AllowForeignFiles: true,\n            Activate: WsWorkunits.WUQueryActivationMode.ActivateQuery,\n            Wait: 5000\n        });\n    }\n\n    publishEx(request: Partial<WsWorkunits.WUPublishWorkunit>) {\n        const service = new WorkunitsServiceEx({ baseUrl: \"\" });\n        const publishRequest = {\n            Wuid: this.Wuid,\n            Cluster: this.Cluster,\n            JobName: this.Jobname,\n            AllowForeignFiles: true,\n            Activate: 1,\n            Wait: 5000,\n            ...request\n        };\n        return service.WUPublishWorkunitEx(publishRequest);\n    }\n\n    protected WUCDebug(command: string, opts: any = {}): Promise<XMLNode | null> {\n        let optsStr = \"\";\n        for (const key in opts) {\n            if (opts.hasOwnProperty(key)) {\n                optsStr += ` ${key}='${opts[key]}'`;\n            }\n        }\n        return this.connection.WUCDebugEx({\n            Wuid: this.Wuid,\n            Command: `<debug:${command} uid='${this.Wuid}'${optsStr}/>`\n        }).then((response) => {\n            return response;\n        });\n    }\n\n    debug(command: string, opts?: object): Promise<XMLNode> {\n        if (!this.isDebugging()) {\n            return Promise.resolve(new XMLNode(command));\n        }\n        return this.WUCDebug(command, opts).then((response: XMLNode) => {\n            const retVal: XMLNode[] = response.children(command);\n            if (retVal.length) {\n                return retVal[0];\n            }\n            return new XMLNode(command);\n        }).catch((_) => {\n            logger.error(_);\n            return Promise.resolve(new XMLNode(command));\n        });\n    }\n\n    debugStatus(): Promise<XMLNode> {\n        if (!this.isDebugging()) {\n            return Promise.resolve<any>({\n                DebugState: { state: \"unknown\" }\n            });\n        }\n        return this.debug(\"status\").then((response) => {\n            const debugState = { ...this.DebugState, ...response.$ };\n            this.set({\n                DebugState: debugState\n            });\n            return response;\n        });\n    }\n\n    debugContinue(mode = \"\"): Promise<XMLNode> {\n        return this.debug(\"continue\", {\n            mode\n        });\n    }\n\n    debugStep(mode: string): Promise<XMLNode> {\n        return this.debug(\"step\", {\n            mode\n        });\n    }\n\n    debugPause(): Promise<XMLNode> {\n        return this.debug(\"interrupt\");\n    }\n\n    debugQuit(): Promise<XMLNode> {\n        return this.debug(\"quit\");\n    }\n\n    debugDeleteAllBreakpoints(): Promise<XMLNode> {\n        return this.debug(\"delete\", {\n            idx: 0\n        });\n    }\n\n    protected debugBreakpointResponseParser(rootNode: StringAnyMap) {\n        return rootNode.children().map((childNode: XMLNode) => {\n            if (childNode.name === \"break\") {\n                return childNode.$;\n            }\n        });\n    }\n\n    debugBreakpointAdd(id: string, mode: string, action: string): Promise<XMLNode> {\n        return this.debug(\"breakpoint\", {\n            id,\n            mode,\n            action\n        }).then((rootNode) => {\n            return this.debugBreakpointResponseParser(rootNode);\n        });\n    }\n\n    debugBreakpointList(): Promise<any[]> {\n        return this.debug(\"list\").then((rootNode) => {\n            return this.debugBreakpointResponseParser(rootNode);\n        });\n    }\n\n    debugGraph(): Promise<XGMMLGraph> {\n        if (this._debugAllGraph && this.DebugState[\"_prevGraphSequenceNum\"] === this.DebugState[\"graphSequenceNum\"]) {\n            return Promise.resolve(this._debugAllGraph);\n        }\n        return this.debug(\"graph\", { name: \"all\" }).then((response) => {\n            this.DebugState[\"_prevGraphSequenceNum\"] = this.DebugState[\"graphSequenceNum\"];\n            this._debugAllGraph = createXGMMLGraph(this.Wuid, response);\n            return this._debugAllGraph;\n        });\n    }\n\n    debugBreakpointValid(path: string): Promise<IECLDefintion[]> {\n        return this.debugGraph().then((graph) => {\n            return breakpointLocations(graph, path);\n        });\n    }\n\n    debugPrint(edgeID: string, startRow: number = 0, numRows: number = 10): Promise<StringAnyMap[]> {\n        return this.debug(\"print\", {\n            edgeID,\n            startRow,\n            numRows\n        }).then((response: XMLNode) => {\n            return response.children().map((rowNode) => {\n                const retVal: StringAnyMap = {};\n                rowNode.children().forEach((cellNode) => {\n                    retVal[cellNode.name] = cellNode.content;\n                });\n                return retVal;\n            });\n        });\n    }\n}\n\nexport interface IECLDefintion {\n    id: string;\n    file: string;\n    line: number;\n    column: number;\n}\n\nconst ATTR_DEFINITION = \"definition\";\n\nfunction hasECLDefinition(vertex: XGMMLVertex): boolean {\n    return vertex._![ATTR_DEFINITION] !== undefined;\n}\n\nfunction getECLDefinition(vertex: XGMMLVertex): IECLDefintion {\n    const match = /([a-z]:\\\\(?:[-\\w\\.\\d]+\\\\)*(?:[-\\w\\.\\d]+)?|(?:\\/[\\w\\.\\-]+)+)\\((\\d*),(\\d*)\\)/.exec(vertex._![ATTR_DEFINITION]);\n    if (match) {\n        const [, _file, _row, _col] = match;\n        _file.replace(/\\/\\.\\//g, \"/\");\n        return {\n            id: vertex._![\"id\"],\n            file: _file,\n            line: +_row,\n            column: +_col\n        };\n    }\n    throw new Error(`Bad definition:  ${vertex._![ATTR_DEFINITION]}`);\n}\n\nfunction breakpointLocations(graph: XGMMLGraph, path?: string): IECLDefintion[] {\n    const retVal: IECLDefintion[] = [];\n    for (const vertex of graph.vertices) {\n        if (hasECLDefinition(vertex)) {\n            const definition = getECLDefinition(vertex);\n            if (definition && !path || path === definition.file) {\n                retVal.push(definition);\n            }\n        }\n    }\n    return retVal.sort((l, r) => {\n        return l.line - r.line;\n    });\n}\n","import { debounce, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsSMC, SMCService } from \"../services/wsSMC.ts\";\nimport { Workunit } from \"./workunit.ts\";\n\nlet _activity: Activity;\n\nexport interface ActivityEx {\n}\n\nexport type UActivityState = WsSMC.ActivityResponse & ActivityEx;\nexport type IActivityState = WsSMC.ActivityResponse | ActivityEx;\nexport class Activity extends StateObject<UActivityState, IActivityState> implements UActivityState {\n    protected connection: SMCService;\n\n    get properties(): UActivityState { return this.get(); }\n    get Exceptions(): WsSMC.Exceptions { return this.get(\"Exceptions\"); }\n    get Build(): string { return this.get(\"Build\"); }\n    get ThorClusterList(): WsSMC.ThorClusterList { return this.get(\"ThorClusterList\"); }\n    get RoxieClusterList(): WsSMC.RoxieClusterList { return this.get(\"RoxieClusterList\"); }\n    get HThorClusterList(): WsSMC.HThorClusterList { return this.get(\"HThorClusterList\"); }\n    get DFUJobs(): WsSMC.DFUJobs { return this.get(\"DFUJobs\"); }\n    get Running(): WsSMC.Running { return this.get(\"Running\", { ActiveWorkunit: [] }); }\n    get BannerContent(): string { return this.get(\"BannerContent\"); }\n    get BannerColor(): string { return this.get(\"BannerColor\"); }\n    get BannerSize(): string { return this.get(\"BannerSize\"); }\n    get BannerScroll(): string { return this.get(\"BannerScroll\"); }\n    get ChatURL(): string { return this.get(\"ChatURL\"); }\n    get ShowBanner(): number { return this.get(\"ShowBanner\"); }\n    get ShowChatURL(): number { return this.get(\"ShowChatURL\"); }\n    get SortBy(): string { return this.get(\"SortBy\"); }\n    get Descending(): boolean { return this.get(\"Descending\"); }\n    get SuperUser(): boolean { return this.get(\"SuperUser\"); }\n    get AccessRight(): string { return this.get(\"AccessRight\"); }\n    get ServerJobQueues(): WsSMC.ServerJobQueues { return this.get(\"ServerJobQueues\"); }\n    get ActivityTime(): string { return this.get(\"ActivityTime\"); }\n    get DaliDetached(): boolean { return this.get(\"DaliDetached\"); }\n\n    static attach(optsConnection: IOptions | IConnection | SMCService, state?: IActivityState): Activity {\n        if (!_activity) {\n            _activity = new Activity(optsConnection);\n        }\n        if (state) {\n            _activity.set(state);\n        }\n        return _activity;\n    }\n\n    protected constructor(optsConnection: IOptions | IConnection | SMCService) {\n        super();\n        if (optsConnection instanceof SMCService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new SMCService(optsConnection);\n        }\n        this.clear({\n        });\n    }\n\n    runningWorkunits(clusterName: string = \"\"): Workunit[] {\n        return this.Running.ActiveWorkunit.filter(awu => clusterName === \"\" || awu.ClusterName === clusterName).map(awu => Workunit.attach(this.connection.connectionOptions(), awu.Wuid, awu));\n    }\n\n    setBanner(request: Partial<WsSMC.SetBanner>): Promise<Activity> {\n        return this.connection.SetBanner({\n            ...request\n        } as WsSMC.SetBanner).then((response) => {\n            this.set(response);\n            return this;\n        });\n    }\n\n    lazyRefresh = debounce(async (): Promise<this> => {\n        const response = await this.connection.Activity({} as WsSMC.Activity);\n        this.set(response);\n        return this;\n    });\n\n    async refresh(): Promise<this> {\n        return this.lazyRefresh();\n    }\n}\n","import { Cache, scopedLogger, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { DFUService, WsDfu } from \"../services/wsDFU.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\n\nconst logger = scopedLogger(\"logicalFile.ts\");\n\nexport class LogicalFileCache extends Cache<{ BaseUrl: string, Cluster: string, Name: string }, LogicalFile> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.Cluster}-${obj.Name}`;\n        });\n    }\n}\nconst _store = new LogicalFileCache();\n\nexport interface DFUPartEx extends WsDfu.DFUPart {\n    //  From WsDfu.DFUFilePartsOnCluster  ---\n    Cluster: string;\n    BaseDir: string;\n    ReplicateDir: string;\n    Replicate: boolean;\n    CanReplicate: boolean;\n}\n\nexport interface FileDetailEx extends WsDfu.FileDetail {\n    Cluster: string;\n    StateID?: number;\n}\n\nexport class LogicalFile extends StateObject<FileDetailEx, FileDetailEx> implements FileDetailEx {\n    protected connection: DFUService;\n    get BaseUrl() { return this.connection.baseUrl; }\n\n    get Cluster(): string { return this.get(\"Cluster\"); }\n    get Name(): string { return this.get(\"Name\"); }\n\n    get Filename(): string { return this.get(\"Filename\"); }\n    get Prefix(): string { return this.get(\"Prefix\"); }\n    get NodeGroup(): string { return this.get(\"NodeGroup\"); }\n    get NumParts(): number { return this.get(\"NumParts\"); }\n    get Description(): string { return this.get(\"Description\"); }\n    get Dir(): string { return this.get(\"Dir\"); }\n    get PathMask(): string { return this.get(\"PathMask\"); }\n    get Filesize(): string { return this.get(\"Filesize\"); }\n    get FileSizeInt64(): number { return this.get(\"FileSizeInt64\"); }\n    get RecordSize(): string { return this.get(\"RecordSize\"); }\n    get RecordCount(): string { return this.get(\"RecordCount\"); }\n    get RecordSizeInt64(): number { return this.get(\"RecordSizeInt64\"); }\n    get RecordCountInt64(): number { return this.get(\"RecordCountInt64\"); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get Owner(): string { return this.get(\"Owner\"); }\n    get JobName(): string { return this.get(\"JobName\"); }\n    get Persistent(): string { return this.get(\"Persistent\"); }\n    get Format(): string { return this.get(\"Format\"); }\n    get MaxRecordSize(): string { return this.get(\"MaxRecordSize\"); }\n    get CsvSeparate(): string { return this.get(\"CsvSeparate\"); }\n    get CsvQuote(): string { return this.get(\"CsvQuote\"); }\n    get CsvTerminate(): string { return this.get(\"CsvTerminate\"); }\n    get CsvEscape(): string { return this.get(\"CsvEscape\"); }\n    get Modified(): string { return this.get(\"Modified\"); }\n    get Ecl(): string { return this.get(\"Ecl\"); }\n    get Stat(): WsDfu.Stat { return this.get(\"Stat\"); }\n    get DFUFilePartsOnClusters(): WsDfu.DFUFilePartsOnClusters { return this.get(\"DFUFilePartsOnClusters\"); }\n    get isSuperfile(): boolean { return this.get(\"isSuperfile\"); }\n    get ShowFileContent(): boolean { return this.get(\"ShowFileContent\"); }\n    get subfiles(): WsDfu.subfiles { return this.get(\"subfiles\"); }\n    get Superfiles(): WsDfu.Superfiles { return this.get(\"Superfiles\"); }\n    get ProtectList(): WsDfu.ProtectList { return this.get(\"ProtectList\"); }\n    get FromRoxieCluster(): boolean { return this.get(\"FromRoxieCluster\"); }\n    get Graphs(): WsDfu.Graphs { return this.get(\"Graphs\"); }\n    get UserPermission(): string { return this.get(\"UserPermission\"); }\n    get ContentType(): string { return this.get(\"ContentType\"); }\n    get CompressedFileSize(): number { return this.get(\"CompressedFileSize\"); }\n    get PercentCompressed(): string { return this.get(\"PercentCompressed\"); }\n    get IsCompressed(): boolean { return this.get(\"IsCompressed\"); }\n    get BrowseData(): boolean { return this.get(\"BrowseData\"); }\n    get jsonInfo(): string { return this.get(\"jsonInfo\"); }\n    get binInfo(): WsDfu.base64Binary { return this.get(\"binInfo\"); }\n    get PackageID(): string { return this.get(\"PackageID\"); }\n    get Partition(): WsDfu.Partition { return this.get(\"Partition\"); }\n    get Blooms(): WsDfu.Blooms { return this.get(\"Blooms\"); }\n    get ExpireDays(): number { return this.get(\"ExpireDays\"); }\n    get KeyType(): string { return this.get(\"KeyType\"); }\n    get IsRestricted(): boolean { return this.get(\"IsRestricted\"); }\n    get AtRestCost(): number { return this.get(\"AtRestCost\"); }\n    get AccessCost(): number { return this.get(\"AccessCost\"); }\n    get StateID(): number { return this.get(\"StateID\"); }\n    get ExpirationDate(): string { return this.get(\"ExpirationDate\"); }\n    get ExtendedIndexInfo(): WsDfu.ExtendedIndexInfo { return this.get(\"ExtendedIndexInfo\"); }\n    get CompressionType(): string { return this.get(\"CompressionType\"); }\n\n    get properties(): FileDetailEx { return this.get(); }\n\n    static attach(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string, state?: FileDetailEx): LogicalFile {\n        const retVal: LogicalFile = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster, Name }, () => {\n            return new LogicalFile(optsConnection, Cluster, Name);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    protected constructor(optsConnection: IOptions | IConnection | DFUService, Cluster: string, Name: string) {\n        super();\n        if (optsConnection instanceof DFUService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new DFUService(optsConnection);\n        }\n\n        this.clear({\n            Cluster,\n            Name\n        });\n    }\n\n    filePartsOnCluster() {\n        return [...(this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || [])];\n    }\n\n    fileParts() {\n        const retVal: DFUPartEx[] = [];\n        for (const poc of this.DFUFilePartsOnClusters?.DFUFilePartsOnCluster || []) {\n            for (const part of poc?.DFUFileParts?.DFUPart || []) {\n                const row = { ...poc, ...part };\n                delete row.DFUFileParts;\n                retVal.push(row);\n            }\n        }\n        return retVal;\n    }\n\n    update(request: Partial<WsDfu.DFUInfoRequest>): Promise<WsDfu.DFUInfoResponse> {\n        return this.connection.DFUInfo({\n            ...request,\n            ...{\n                Cluster: this.Cluster,\n                Name: this.Name\n            }\n        }).then((response) => {\n            this.set({\n                Cluster: this.Cluster,\n                ...response.FileDetail\n            });\n            return response;\n        });\n    }\n\n    fetchInfo(): Promise<WsDfu.FileDetail> {\n        return this.connection.DFUInfo({ Cluster: this.Cluster, Name: this.Name }).then(response => {\n            this.set({\n                Cluster: this.Cluster,\n                ...response.FileDetail,\n                ProtectList: response?.FileDetail?.ProtectList ?? { DFUFileProtect: [] }\n            });\n            return response.FileDetail;\n        }).catch((e: ESPExceptions) => {\n            //  deleted  ---\n            const fileMissing = e.Exception.some((exception) => {\n                if (exception.Code === 20038) {\n                    this.set(\"Name\", this.Name + \" (Deleted)\");\n                    this.set(\"StateID\", 999);\n                    return true;\n                }\n                return false;\n            });\n            if (!fileMissing) {\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\n                throw e;\n            }\n            return {} as FileDetailEx;\n        });\n    }\n\n    fetchDefFile(format: WsDfu.DFUDefFileFormat): Promise<string> {\n        return this.connection.DFUFile({ Name: this.Name, Format: format });\n    }\n\n    fetchAllLogicalFiles(): Promise<string[]> {\n        return this.connection.recursiveFetchLogicalFiles([this]);\n    }\n\n    fetchListHistory(): Promise<WsDfu.Origin[]> {\n        return this.connection.ListHistory({ Name: this.Name }).then(response => {\n            return response?.History?.Origin || [];\n        });\n    }\n\n    eraseHistory(): Promise<WsDfu.Origin[]> {\n        return this.connection.EraseHistory({ Name: this.Name }).then(response => {\n            return response?.History?.Origin || [];\n        });\n    }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, MachineService } from \"../services/wsMachine.ts\";\n\nexport class MachineCache extends Cache<{ Address: string }, Machine> {\n    constructor() {\n        super((obj) => {\n            return obj.Address;\n        });\n    }\n}\nconst _machines = new MachineCache();\n\nexport interface MachineInfoEx extends WsMachine.MachineInfoEx {\n}\n\nexport class Machine extends StateObject<MachineInfoEx, MachineInfoEx> implements MachineInfoEx {\n    protected connection: MachineService;\n\n    get Address(): string { return this.get(\"Address\"); }\n    get ConfigAddress(): string { return this.get(\"ConfigAddress\"); }\n    get Name(): string { return this.get(\"Name\"); }\n    get ProcessType(): string { return this.get(\"ProcessType\"); }\n    get DisplayType(): string { return this.get(\"DisplayType\"); }\n    get Description(): string { return this.get(\"Description\"); }\n    get AgentVersion(): string { return this.get(\"AgentVersion\"); }\n    get Contact(): string { return this.get(\"Contact\"); }\n    get Location(): string { return this.get(\"Location\"); }\n    get UpTime(): string { return this.get(\"UpTime\"); }\n    get ComponentName(): string { return this.get(\"ComponentName\"); }\n    get ComponentPath(): string { return this.get(\"ComponentPath\"); }\n    get RoxieState(): string { return this.get(\"RoxieState\"); }\n    get RoxieStateDetails(): string { return this.get(\"RoxieStateDetails\"); }\n    get OS(): number { return this.get(\"OS\"); }\n    get ProcessNumber(): number { return this.get(\"ProcessNumber\"); }\n    get Channels(): number { return this.get(\"Channels\"); }\n    get Processors(): WsMachine.Processors { return this.get(\"Processors\"); }\n    get Storage(): WsMachine.Storage { return this.get(\"Storage\"); }\n    get Running(): WsMachine.Running { return this.get(\"Running\"); }\n    get PhysicalMemory(): WsMachine.PhysicalMemory { return this.get(\"PhysicalMemory\"); }\n    get VirtualMemory(): WsMachine.VirtualMemory { return this.get(\"VirtualMemory\"); }\n    get ComponentInfo(): WsMachine.ComponentInfo { return this.get(\"ComponentInfo\"); }\n    get Exception(): string { return this.get(\"Exception\"); }\n\n    static attach(optsConnection: IOptions | IConnection | MachineService, address: string, state?: WsMachine.MachineInfoEx): Machine {\n        const retVal: Machine = _machines.get({ Address: address }, () => {\n            return new Machine(optsConnection);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    private constructor(optsConnection: IOptions | IConnection | MachineService) {\n        super();\n        if (optsConnection instanceof MachineService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new MachineService(optsConnection);\n        }\n    }\n}\n","import { Cache, StateObject } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { WsMachine, WsMachineEx, MachineService } from \"../services/wsMachine.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { Machine } from \"./machine.ts\";\n\nexport class TargetClusterCache extends Cache<{ BaseUrl: string, Name: string }, TargetCluster> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.Name}`;\n        });\n    }\n}\nconst _targetCluster = new TargetClusterCache();\n\nexport interface TpTargetClusterEx {\n    MachineInfoEx: WsMachine.MachineInfoEx[];\n}\n\nexport type UTargetClusterState = WsTopology.TpTargetCluster & WsTopology.TpClusterNameType & TpTargetClusterEx;\nexport type ITargetClusterState = WsTopology.TpTargetCluster | WsTopology.TpClusterNameType | TpTargetClusterEx;\nexport class TargetCluster extends StateObject<UTargetClusterState, ITargetClusterState> implements UTargetClusterState {\n    protected connection: TopologyService;\n    protected machineConnection: MachineService;\n    get BaseUrl() { return this.connection.baseUrl; }\n\n    get Name(): string { return this.get(\"Name\"); }\n    get Prefix(): string { return this.get(\"Prefix\"); }\n    get Type(): string { return this.get(\"Type\"); }\n    get IsDefault(): boolean { return this.get(\"IsDefault\"); }\n    get TpClusters(): WsTopology.TpClusters { return this.get(\"TpClusters\"); }\n    get TpEclCCServers(): WsTopology.TpEclCCServers { return this.get(\"TpEclCCServers\"); }\n    get TpEclServers(): WsTopology.TpEclServers { return this.get(\"TpEclServers\"); }\n    get TpEclAgents(): WsTopology.TpEclAgents { return this.get(\"TpEclAgents\"); }\n    get TpEclSchedulers(): WsTopology.TpEclSchedulers { return this.get(\"TpEclSchedulers\"); }\n    get MachineInfoEx(): WsMachine.MachineInfoEx[] { return this.get(\"MachineInfoEx\", []); }\n    get CMachineInfoEx(): Machine[] {\n        return this.MachineInfoEx.map(machineInfoEx => Machine.attach(this.machineConnection, machineInfoEx.Address, machineInfoEx));\n    }\n\n    static attach(optsConnection: IOptions | IConnection | TopologyService, name: string, state?: ITargetClusterState): TargetCluster {\n        const retVal: TargetCluster = _targetCluster.get({ BaseUrl: optsConnection.baseUrl, Name: name }, () => {\n            return new TargetCluster(optsConnection, name);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    protected constructor(optsConnection: IOptions | IConnection | TopologyService, name: string) {\n        super();\n        if (optsConnection instanceof TopologyService) {\n            this.connection = optsConnection;\n            this.machineConnection = new MachineService(optsConnection.connectionOptions());\n        } else {\n            this.connection = new TopologyService(optsConnection);\n            this.machineConnection = new MachineService(optsConnection);\n        }\n        this.clear({\n            Name: name\n        });\n    }\n\n    fetchMachines(request: WsMachine.GetTargetClusterInfoRequest = {}): Promise<Machine[]> {\n        return this.machineConnection.GetTargetClusterInfo({\n            TargetClusters: {\n                Item: [`${this.Type}:${this.Name}`]\n            },\n            ...request\n        }).then(response => {\n            const retVal: WsMachine.MachineInfoEx[] = [];\n            for (const machineInfo of response.TargetClusterInfoList.TargetClusterInfo) {\n                for (const machineInfoEx of machineInfo.Processes.MachineInfoEx) {\n                    retVal.push(machineInfoEx);\n                }\n            }\n            this.set(\"MachineInfoEx\", retVal);\n            return this.CMachineInfoEx;\n        });\n    }\n\n    machineStats(): { maxDisk: number; meanDisk: number } {\n        let maxDisk = 0;\n        let totalFree = 0;\n        let total = 0;\n        for (const machine of this.CMachineInfoEx) {\n            for (const storageInfo of machine.Storage.StorageInfo) {\n                totalFree += storageInfo.Available;\n                total += storageInfo.Total;\n                const usage = 1 - storageInfo.Available / storageInfo.Total;\n                if (usage > maxDisk) {\n                    maxDisk = usage;\n                }\n            }\n        }\n        return {\n            maxDisk,\n            meanDisk: 1 - (total ? totalFree / total : 1)\n        };\n    }\n\n    fetchUsage(): Promise<WsMachineEx.TargetClusterUsage[]> {\n        return this.machineConnection.GetTargetClusterUsageEx([this.Name]);\n    }\n}\n\nexport function targetClusters(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster[]> {\n    let connection: TopologyService;\n    if (optsConnection instanceof TopologyService) {\n        connection = optsConnection;\n    } else {\n        connection = new TopologyService(optsConnection);\n    }\n    return connection.TpListTargetClusters({}).then(response => {\n        return response.TargetClusters.TpClusterNameType.map(item => TargetCluster.attach(optsConnection, item.Name, item));\n    });\n}\n\nconst _defaultTargetCluster: { [baseUrl: string]: Promise<TargetCluster> } = {};\nexport function defaultTargetCluster(optsConnection: IOptions | IConnection | TopologyService): Promise<TargetCluster> {\n    if (!_defaultTargetCluster[optsConnection.baseUrl]) {\n        let connection: TopologyService;\n        if (optsConnection instanceof TopologyService) {\n            connection = optsConnection;\n        } else {\n            connection = new TopologyService(optsConnection);\n        }\n        _defaultTargetCluster[optsConnection.baseUrl] = connection.TpListTargetClusters({}).then(response => {\n            let firstItem: WsTopology.TpClusterNameType;\n            let defaultItem: WsTopology.TpClusterNameType;\n            let hthorItem: WsTopology.TpClusterNameType;\n            response.TargetClusters.TpClusterNameType.forEach(item => {\n                if (!firstItem) {\n                    firstItem = item;\n                }\n                if (!defaultItem && item.IsDefault === true) {\n                    defaultItem = item;\n                }\n                if (!hthorItem && item.Type === \"hthor\") {\n                    hthorItem = item;\n                }\n            });\n            const defItem = defaultItem || hthorItem || firstItem;\n            return TargetCluster.attach(optsConnection, defItem.Name, defItem);\n        });\n    }\n    return _defaultTargetCluster[optsConnection.baseUrl];\n}\n","import { Cache, exists, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { TopologyService, WsTopology } from \"../services/wsTopology.ts\";\nimport { TargetCluster } from \"./targetCluster.ts\";\n\nexport class TopologyCache extends Cache<{ BaseUrl: string }, Topology> {\n    constructor() {\n        super((obj) => {\n            return obj.BaseUrl;\n        });\n    }\n}\nconst _topology = new TopologyCache();\n\nexport interface TopologyStateEx {\n    TargetClusters?: WsTopology.TpTargetCluster[];\n    LogicalClusters?: WsTopology.TpLogicalCluster[];\n    Services?: WsTopology.ServiceList;\n}\nexport class Topology extends StateObject<TopologyStateEx, TopologyStateEx> implements TopologyStateEx {\n    protected connection: TopologyService;\n    get BaseUrl() { return this.connection.baseUrl; }\n\n    //  Accessors  ---\n    get properties(): TopologyStateEx { return this.get(); }\n    get TargetClusters(): WsTopology.TpTargetCluster[] { return this.get(\"TargetClusters\"); }\n    get CTargetClusters(): TargetCluster[] {\n        return this.TargetClusters.map(tc => TargetCluster.attach(this.connection, tc.Name, tc));\n    }\n    get LogicalClusters(): WsTopology.TpLogicalCluster[] { return this.get(\"LogicalClusters\"); }\n    get Services(): WsTopology.ServiceList { return this.get(\"Services\"); }\n\n    static attach(optsConnection: IOptions | IConnection | TopologyService, state?: TopologyStateEx): Topology {\n        const retVal: Topology = _topology.get({ BaseUrl: optsConnection.baseUrl }, () => {\n            return new Topology(optsConnection);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    protected constructor(optsConnection: IOptions | IConnection | TopologyService) {\n        super();\n        if (optsConnection instanceof TopologyService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new TopologyService(optsConnection);\n        }\n    }\n\n    GetESPServiceBaseURL(type: string = \"\"): Promise<string> {\n        return this.connection.TpServiceQuery({}).then(response => {\n            const rootProtocol = this.connection.protocol();\n            const ip = this.connection.ip();\n            let port = rootProtocol === \"https:\" ? \"18002\" : \"8002\";\n            if (exists(\"ServiceList.TpEspServers.TpEspServer\", response)) {\n                for (const item of response.ServiceList.TpEspServers.TpEspServer) {\n                    if (exists(\"TpBindings.TpBinding\", item)) {\n                        for (const binding of item.TpBindings.TpBinding) {\n                            if (binding.Service === type && binding.Protocol + \":\" === rootProtocol) {\n                                port = binding.Port;\n                            }\n                        }\n                    }\n                }\n            }\n            return `${rootProtocol}//${ip}:${port}/`;\n        });\n    }\n\n    fetchTargetClusters(): Promise<TargetCluster[]> {\n        return this.connection.TpTargetClusterQuery({ Type: \"ROOT\" }).then(response => {\n            this.set({\n                TargetClusters: response.TpTargetClusters?.TpTargetCluster ?? []\n            });\n            return this.CTargetClusters;\n        });\n    }\n\n    fetchLogicalClusters(request: WsTopology.TpLogicalClusterQueryRequest = {}): Promise<WsTopology.TpLogicalCluster[]> {\n        return this.connection.TpLogicalClusterQuery(request).then(response => {\n            this.set({\n                LogicalClusters: response.TpLogicalClusters.TpLogicalCluster\n            });\n            return this.LogicalClusters;\n        });\n    }\n\n    fetchServices(request: WsTopology.TpServiceQueryRequest = {}): Promise<WsTopology.ServiceList> {\n        return this.connection.TpServiceQuery(request).then(response => {\n            this.set({\n                Services: response.ServiceList\n            });\n            return this.Services;\n        });\n    }\n\n    protected _prevRefresh;\n    refresh(force: boolean = false): Promise<this> {\n        if (!this._prevRefresh || force) {\n            this._prevRefresh = Promise.all([this.fetchTargetClusters(), this.fetchLogicalClusters(), this.fetchServices()]).then(() => {\n                return this;\n            });\n        }\n        return this._prevRefresh;\n    }\n\n    //  Monitoring  ---\n\n    //  Events  ---\n    on(eventID: StateEvents, propIDorCallback: StateCallback | keyof TopologyStateEx, callback?: StatePropCallback): this {\n        if (this.isCallback(propIDorCallback)) {\n            switch (eventID) {\n                case \"changed\":\n                    super.on(eventID, propIDorCallback);\n                    break;\n                default:\n            }\n        } else {\n            switch (eventID) {\n                case \"changed\":\n                    super.on(eventID, propIDorCallback, callback!);\n                    break;\n                default:\n            }\n        }\n        this._monitor();\n        return this;\n    }\n}\n","//  Ported from:  https://github.com/hpcc-systems/HPCC-Platform/blob/f0ed9dbeca49c39fb55aa28fec295c89407ac663/esp/src/src/ESPGraph.ts\n\nexport function safeAssign(obj: { [id: string]: any }, key: string, value: string) {\n    if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") return;\n    obj[key] = value;\n}\n\nfunction xmlEncode(str: string): string {\n    str = \"\" + str;\n    return str.replace(/&/g, \"&amp;\")\n        .replace(/\"/g, \"&quot;\")\n        .replace(/'/g, \"&apos;\")\n        .replace(/</g, \"&lt;\")\n        .replace(/>/g, \"&gt;\")\n        .replace(/\\n/g, \"&#10;\")\n        .replace(/\\r/g, \"&#13;\")\n        ;\n}\n\nfunction espTime2Seconds(duration?: string): number {\n    if (!duration) {\n        return 0;\n    } else if (!isNaN(+duration)) {\n        return parseFloat(duration);\n    }\n    const re = /(?:(?:(\\d+).days.)?(?:(\\d+)h)?(?:(\\d+)m)?(?:(\\d+\\.\\d+|\\d+)s))|(?:(\\d+\\.\\d+|\\d+)ms|(\\d+\\.\\d+|\\d+)us|(\\d+\\.\\d+|\\d+)ns)/;\n    const match = re.exec(duration);\n    if (!match) return 0;\n    const days = +match[1] || 0;\n    const hours = +match[2] || 0;\n    const mins = +match[3] || 0;\n    const secs = +match[4] || 0;\n    const ms = +match[5] || 0;\n    const us = +match[6] || 0;\n    const ns = +match[7] || 0;\n    return (days * 24 * 60 * 60) + (hours * 60 * 60) + (mins * 60) + secs + ms / 1000 + us / 1000000 + ns / 1000000000;\n}\n\nfunction unitTest(size: string, unit: string) {\n    const nsIndex = size.indexOf(unit);\n    if (nsIndex !== -1) {\n        return parseFloat(size.substring(0, nsIndex));\n    }\n    return -1;\n}\n\nfunction espSize2Bytes(size: string): number {\n    if (!size) {\n        return 0;\n    } else if (!isNaN(+size)) {\n        return parseFloat(size);\n    }\n    let retVal = unitTest(size, \"Kb\");\n    if (retVal >= 0) {\n        return retVal * 1024;\n    }\n    retVal = unitTest(size, \"Mb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 2);\n    }\n    retVal = unitTest(size, \"Gb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 3);\n    }\n    retVal = unitTest(size, \"Tb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 4);\n    }\n    retVal = unitTest(size, \"Pb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 5);\n    }\n    retVal = unitTest(size, \"Eb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 6);\n    }\n    retVal = unitTest(size, \"Zb\");\n    if (retVal >= 0) {\n        return retVal * Math.pow(1024, 7);\n    }\n    retVal = unitTest(size, \"b\");\n    if (retVal >= 0) {\n        return retVal;\n    }\n    return 0;\n}\n\nfunction espSkew2Number(skew: string): number {\n    if (!skew) {\n        return 0;\n    }\n    return parseFloat(skew);\n}\n\nenum GRAPH_TYPE {\n    UNKNOWN = 0,\n    GRAPH = 1,\n    SUBGRAPH = 2,\n    VERTEX = 3,\n    EDGE = 4,\n    LAST = 5\n}\n\nenum GRAPH_TYPE_STRING {\n    UNKNOWN = \"Unknown\",\n    GRAPH = \"Graph\",\n    SUBGRAPH = \"Cluster\",\n    VERTEX = \"Vertex\",\n    EDGE = \"Edge\",\n    LAST = \"Last\"\n}\n\nclass LocalisedXGMMLWriter {\n\n    graph: QueryGraph;\n    m_xgmml: string;\n    m_visibleSubgraphs: { [id: string]: Subgraph };\n    m_visibleVertices: { [id: string]: Vertex };\n    m_semiVisibleVertices: { [id: string]: Vertex };\n    m_visibleEdges: { [id: string]: Edge };\n    noSpills: boolean;\n\n    constructor(graph: QueryGraph) {\n        this.graph = graph;\n\n        this.m_xgmml = \"\";\n        this.m_visibleSubgraphs = {};\n        this.m_visibleVertices = {};\n        this.m_semiVisibleVertices = {};\n        this.m_visibleEdges = {};\n    }\n\n    calcVisibility(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): void {\n        this.noSpills = noSpills;\n        items.forEach((item) => {\n            if (this.graph.isVertex(item)) {\n                this.calcInVertexVisibility(item, localisationDistance);\n                this.calcOutVertexVisibility(item, localisationDistance);\n            } else if (this.graph.isEdge(item)) {\n                this.calcInVertexVisibility(item.getSource(), localisationDistance - 1);\n                this.calcOutVertexVisibility(item.getTarget(), localisationDistance - 1);\n            } else if (this.graph.isSubgraph(item)) {\n                this.m_visibleSubgraphs[item.__hpcc_id] = item;\n                this.calcSubgraphVisibility(item, localisationDepth - 1);\n            }\n        });\n        this.calcVisibility2();\n    }\n\n    calcInVertexVisibility(vertex: Vertex, localisationDistance: number) {\n        if (this.noSpills && vertex.isSpill()) {\n            localisationDistance++;\n        }\n        this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n        if (localisationDistance > 0) {\n            vertex.getInEdges().forEach(edge => {\n                this.calcInVertexVisibility(edge.getSource(), localisationDistance - 1);\n            });\n        }\n    }\n\n    calcOutVertexVisibility(vertex: Vertex, localisationDistance: number): void {\n        if (this.noSpills && vertex.isSpill()) {\n            localisationDistance++;\n        }\n        this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n        if (localisationDistance > 0) {\n            vertex.getOutEdges().forEach(edge => {\n                this.calcOutVertexVisibility(edge.getTarget(), localisationDistance - 1);\n            });\n        }\n    }\n\n    calcSubgraphVisibility(subgraph: Subgraph, localisationDepth: number): void {\n        if (localisationDepth < 0) {\n            return;\n        }\n\n        if (localisationDepth > 0) {\n            subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n                this.calcSubgraphVisibility(subgraph, localisationDepth - 1);\n            });\n        }\n\n        subgraph.__hpcc_subgraphs.forEach((subgraph, idx) => {\n            this.m_visibleSubgraphs[subgraph.__hpcc_id] = subgraph;\n        });\n        subgraph.__hpcc_vertices.forEach((vertex, idx) => {\n            this.m_visibleVertices[vertex.__hpcc_id] = vertex;\n        });\n\n        //  Calculate edges that pass through the subgraph  ---\n        const dedupEdges = {};\n        this.graph.edges.forEach((edge: Edge, idx: any) => {\n            if (edge.getSource().__hpcc_parent !== edge.getTarget().__hpcc_parent && subgraph === this.getCommonAncestor(edge)) {\n                //  Only include one unique edge between subgraphs  ---\n                if (!dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id]) {\n                    dedupEdges[edge.getSource().__hpcc_parent.__hpcc_id + \"::\" + edge.getTarget().__hpcc_parent.__hpcc_id] = true;\n                    this.m_visibleEdges[edge.__hpcc_id] = edge;\n                }\n            }\n        });\n    }\n\n    buildVertexString(vertex: Vertex, isPoint: boolean): string {\n        let attrStr = \"\";\n        let propsStr = \"\";\n        const props = vertex.getProperties();\n        for (const key in props) {\n            if (isPoint && key.indexOf(\"_kind\") >= 0) {\n                propsStr += \"<att name=\\\"_kind\\\" value=\\\"point\\\"/>\";\n            } else if (key === \"id\" || key === \"label\") {\n                attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n            } else {\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n            }\n        }\n        return \"<node\" + attrStr + \">\" + propsStr + \"</node>\";\n    }\n\n    buildEdgeString(edge: Edge): string {\n        let attrStr: string = \"\";\n        let propsStr: string = \"\";\n        const props = edge.getProperties();\n        for (const key in props) {\n            if (key.toLowerCase() === \"id\" ||\n                key.toLowerCase() === \"label\" ||\n                key.toLowerCase() === \"source\" ||\n                key.toLowerCase() === \"target\") {\n                attrStr += \" \" + key + \"=\\\"\" + xmlEncode(props[key]) + \"\\\"\";\n            } else {\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n            }\n        }\n        return \"<edge\" + attrStr + \">\" + propsStr + \"</edge>\";\n    }\n\n    getAncestors(v: Vertex, ancestors: Subgraph[]): void {\n        let parent = v.__hpcc_parent;\n        while (parent) {\n            ancestors.push(parent);\n            parent = parent.__hpcc_parent;\n        }\n    }\n\n    getCommonAncestorV(v1: Vertex, v2: Vertex): Subgraph | null {\n        const v1_ancestors = [];\n        const v2_ancestors = [];\n        this.getAncestors(v1, v1_ancestors);\n        this.getAncestors(v2, v2_ancestors);\n        let finger1 = v1_ancestors.length - 1;\n        let finger2 = v2_ancestors.length - 1;\n        let retVal = null;\n        while (finger1 >= 0 && finger2 >= 0 && v1_ancestors[finger1] === v2_ancestors[finger2]) {\n            retVal = v1_ancestors[finger1];\n            --finger1;\n            --finger2;\n        }\n        return retVal;\n    }\n\n    getCommonAncestor(e: Edge): Subgraph | null {\n        return this.getCommonAncestorV(e.getSource(), e.getTarget());\n    }\n\n    calcAncestorVisibility(vertex: Vertex): void {\n        const ancestors = [];\n        this.getAncestors(vertex, ancestors);\n        ancestors.forEach((item, idx) => {\n            this.m_visibleSubgraphs[item.__hpcc_id] = item;\n        });\n    }\n\n    calcVisibility2(): void {\n        for (const key in this.m_visibleVertices) {\n            const vertex = this.m_visibleVertices[key];\n            vertex.getInEdges().forEach((edge: Edge, idx: any) => {\n                this.m_visibleEdges[edge.__hpcc_id] = edge;\n            });\n            vertex.getOutEdges().forEach((edge: Edge, idx: any) => {\n                this.m_visibleEdges[edge.__hpcc_id] = edge;\n            });\n            this.calcAncestorVisibility(vertex);\n        }\n        this.calcSemiVisibleVertices();\n    }\n\n    addSemiVisibleEdge(edge: Edge): void {\n        if (edge && !this.m_visibleEdges[edge.__hpcc_id]) {\n            this.m_visibleEdges[edge.__hpcc_id] = edge;\n        }\n    }\n\n    addSemiVisibleVertex(vertex: Vertex): void {\n        if (!this.m_visibleVertices[vertex.__hpcc_id]) {\n            this.m_semiVisibleVertices[vertex.__hpcc_id] = vertex;\n            this.calcAncestorVisibility(vertex);\n        }\n    }\n\n    calcSemiVisibleVertices(): void {\n        for (const key in this.m_visibleEdges) {\n            const edge = this.m_visibleEdges[key];\n            let source = edge.getSource();\n            this.addSemiVisibleVertex(source);\n            while (this.noSpills && source.isSpill()) {\n                const inEdges = source.getInEdges();\n                if (inEdges.length) {\n                    this.addSemiVisibleEdge(inEdges[0]);\n                    source = inEdges[0].getSource();\n                    this.addSemiVisibleVertex(source);\n                } else {\n                    break;\n                }\n            }\n            let target = edge.getTarget();\n            this.addSemiVisibleVertex(target);\n            while (this.noSpills && target.isSpill()) {\n                const outEdges = target.getOutEdges();\n                if (outEdges.length) {\n                    this.addSemiVisibleEdge(outEdges[0]);\n                    target = outEdges[0].getTarget();\n                    this.addSemiVisibleVertex(target);\n                } else {\n                    break;\n                }\n            }\n        }\n    }\n\n    writeXgmml(): void {\n        this.subgraphVisited(this.graph.subgraphs[0], true);\n        this.graph.edges.forEach((edge: any, idx: any) => {\n            this.edgeVisited(edge);\n        });\n    }\n\n    subgraphVisited(subgraph: Subgraph, root: boolean = false): boolean {\n        if (this.m_visibleSubgraphs[subgraph.__hpcc_id]) {\n            let propsStr = \"\";\n            this.m_xgmml += root ? \"\" : \"<node id=\\\"\" + subgraph.__hpcc_id + \"\\\"><att><graph>\";\n            const xgmmlLen = this.m_xgmml.length;\n            subgraph.walkSubgraphs(this);\n            subgraph.walkVertices(this);\n            if (xgmmlLen === this.m_xgmml.length) {\n                //  Add at least one child otherwise subgraphs will render as a vertex  ---\n                const vertex = subgraph.__hpcc_vertices[0];\n                if (vertex) {\n                    this.m_xgmml += this.buildVertexString(vertex, true);\n                }\n            }\n\n            const props = subgraph.getProperties();\n            for (const key in props) {\n                propsStr += \"<att name=\\\"\" + key + \"\\\" value=\\\"\" + xmlEncode(props[key]) + \"\\\"/>\";\n            }\n            this.m_xgmml += root ? \"\" : \"</graph></att>\" + propsStr + \"</node>\";\n        }\n        return false;\n    }\n\n    vertexVisited(vertex: Vertex) {\n        if (this.m_visibleVertices[vertex.__hpcc_id]) {\n            this.m_xgmml += this.buildVertexString(vertex, false);\n        } else if (this.m_semiVisibleVertices[vertex.__hpcc_id]) {\n            this.m_xgmml += this.buildVertexString(vertex, true);\n        }\n    }\n\n    edgeVisited(edge: Edge) {\n        if (this.m_visibleEdges[edge.__hpcc_id]) {\n            this.m_xgmml += this.buildEdgeString(edge);\n        }\n    }\n}\n\nabstract class GraphItem {\n\n    abstract _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n    __hpcc_graph: QueryGraph;\n    __hpcc_parent: Subgraph;\n    __widget: any;\n\n    __hpcc_id: string;\n    _globalID: string;\n\n    constructor(graph: QueryGraph, id: string) {\n        this.__hpcc_graph = graph;\n        this.__hpcc_id = id;\n        this._globalID = id;\n    }\n\n    getProperties() {\n        const retVal: { [id: string]: any } = {};\n        for (const key in this) {\n            if (key.indexOf(\"__\") !== 0 && this.hasOwnProperty(key)) {\n                retVal[key] = this[key];\n            }\n        }\n        return retVal;\n    }\n}\n\nclass Subgraph extends GraphItem {\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\";\n\n    __hpcc_subgraphs: any[];\n    __hpcc_vertices: any[];\n    __hpcc_edges: any[];\n    id: string;\n\n    constructor(graph: QueryGraph, id: string) {\n        super(graph, id);\n        this._globalType = id === \"0\" ? \"Graph\" : \"Cluster\";\n        this.__hpcc_subgraphs = [];\n        this.__hpcc_vertices = [];\n        this.__hpcc_edges = [];\n        this.id = id;\n    }\n\n    addSubgraph(subgraph) {\n        subgraph.__hpcc_parent = this;\n        if (!this.__hpcc_subgraphs.some(subgraph2 => subgraph === subgraph2)) {\n            this.__hpcc_subgraphs.push(subgraph);\n        }\n    }\n\n    addVertex(vertex) {\n        vertex.__hpcc_parent = this;\n        if (!this.__hpcc_vertices.some(vertex2 => vertex === vertex2)) {\n            this.__hpcc_vertices.push(vertex);\n        }\n    }\n\n    removeVertex(vertex: any) {\n        this.__hpcc_vertices = this.__hpcc_vertices.filter(vertex2 => vertex !== vertex2);\n    }\n\n    addEdge(edge) {\n        edge.__hpcc_parent = this;\n        if (!this.__hpcc_edges.some(edge2 => edge === edge2)) {\n            this.__hpcc_edges.push(edge);\n        }\n    }\n\n    removeEdge(edge: any) {\n        this.__hpcc_edges = this.__hpcc_edges.filter(edge2 => edge !== edge2);\n    }\n\n    remove() {\n        this.__hpcc_subgraphs.forEach(subgraph => subgraph.__hpcc_parent = this.__hpcc_parent);\n        this.__hpcc_vertices.forEach(vertex => vertex.__hpcc_parent = this.__hpcc_parent);\n        this.__hpcc_edges.forEach(edge => edge.__hpcc_parent = this.__hpcc_parent);\n        delete this.__hpcc_parent;\n        this.__hpcc_graph.removeItem(this);\n    }\n\n    walkSubgraphs(visitor: { subgraphVisited: (arg0: Subgraph) => boolean; }) {\n        this.__hpcc_subgraphs.forEach((subgraph, idx) => {\n            if (visitor.subgraphVisited(subgraph)) {\n                subgraph.walkSubgraphs(visitor);\n            }\n        });\n    }\n\n    walkVertices(visitor: { vertexVisited: (arg0: Vertex) => void; }) {\n        this.__hpcc_vertices.forEach((vertex, idx) => {\n            visitor.vertexVisited(vertex);\n        });\n    }\n}\n\nclass Vertex extends GraphItem {\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Vertex\";\n    _isSpill: boolean;\n\n    constructor(graph: QueryGraph, id: string) {\n        super(graph, id);\n    }\n\n    isSpill() {\n        return this._isSpill;\n    }\n\n    remove() {\n        const inVertices = this.getInVertices();\n        if (inVertices.length <= 1) {\n            console.warn(this.__hpcc_id + \":  remove only supports single or zero inputs activities...\");\n        }\n        this.getInEdges().forEach((edge: Edge) => {\n            edge.remove();\n        });\n        this.getOutEdges().forEach((edge: Edge) => {\n            edge.setSource(inVertices[0]);\n        });\n        this.__hpcc_parent?.removeVertex(this);\n        this.__hpcc_graph.removeItem(this);\n    }\n\n    getInVertices(): Vertex[] {\n        return this.getInEdges().map((edge) => {\n            return edge.getSource();\n        });\n    }\n\n    getInEdges(): Edge[] {\n        return this.__hpcc_graph.edges.filter((edge) => {\n            return edge.getTarget() === this;\n        });\n    }\n\n    getOutVertices(): Vertex[] {\n        return this.getOutEdges().map((edge) => {\n            return edge.getTarget();\n        });\n    }\n\n    getOutEdges(): Edge[] {\n        return this.__hpcc_graph.edges.filter((edge) => {\n            return edge.getSource() === this;\n        });\n    }\n}\n\nclass Edge extends GraphItem {\n    _globalType: \"Graph\" | \"Cluster\" | \"Vertex\" | \"Edge\" = \"Edge\";\n\n    _sourceActivity: any;\n    source: any;\n    _targetActivity: any;\n    target: any;\n\n    constructor(graph: QueryGraph, id: string) {\n        super(graph, id);\n        this._globalType = \"Edge\";\n    }\n\n    remove() {\n        this.__hpcc_graph.subgraphs.forEach((subgraph) => {\n            subgraph.removeEdge(this);\n        });\n        this.__hpcc_graph.removeItem(this);\n    }\n\n    getSource(): Vertex {\n        return this.__hpcc_graph.idx[this._sourceActivity || this.source] as Vertex;\n    }\n\n    setSource(source: Vertex) {\n        if (this._sourceActivity) {\n            this._sourceActivity = source.__hpcc_id;\n        } else if (this.source) {\n            this.source = source.__hpcc_id;\n        }\n        if (this.__widget) {\n            this.__widget.setSource(this.getSource().__widget);\n        }\n    }\n\n    getTarget(): Vertex {\n        return this.__hpcc_graph.idx[this._targetActivity || this.target] as Vertex;\n    }\n}\n\nexport class QueryGraph {\n    idx: { [id: string]: Subgraph | Vertex | Edge } = {};\n    subgraphs: Subgraph[] = [];\n    vertices: Vertex[] = [];\n    edges: Edge[] = [];\n\n    xgmml: string = \"\";\n\n    constructor() {\n        this.clear();\n    }\n\n    clear() {\n        this.xgmml = \"\";\n\n        this.idx = {};\n        this.subgraphs = [];\n        this.vertices = [];\n        this.edges = [];\n    }\n\n    load(xgmml: string) {\n        this.clear();\n        this.merge(xgmml);\n    }\n\n    merge(xgmml: string) {\n        this.xgmml = xgmml;\n        const parser = new DOMParser();\n        const dom = parser.parseFromString(xgmml, \"text/xml\");\n        this.walkDocument(dom.documentElement, \"0\");\n    }\n\n    isSubgraph(item: GraphItem): item is Subgraph {\n        return item instanceof Subgraph;\n    }\n\n    isVertex(item: GraphItem): item is Vertex {\n        return item instanceof Vertex;\n    }\n\n    isEdge(item: GraphItem): item is Edge {\n        return item instanceof Edge;\n    }\n\n    getGlobalType(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE {\n        if (item instanceof Vertex) {\n            return GRAPH_TYPE.VERTEX;\n        } else if (item instanceof Edge) {\n            return GRAPH_TYPE.EDGE;\n        } else if (item instanceof Subgraph) {\n            return GRAPH_TYPE.SUBGRAPH;\n        } else if (item instanceof QueryGraph) {\n            return GRAPH_TYPE.GRAPH;\n        }\n        return GRAPH_TYPE.UNKNOWN;\n    }\n\n    getGlobalTypeString(item: QueryGraph | Subgraph | Vertex | Edge): GRAPH_TYPE_STRING {\n        if (item instanceof Vertex) {\n            return GRAPH_TYPE_STRING.VERTEX;\n        } else if (item instanceof Edge) {\n            return GRAPH_TYPE_STRING.EDGE;\n        } else if (item instanceof Subgraph) {\n            return GRAPH_TYPE_STRING.SUBGRAPH;\n        } else if (item instanceof QueryGraph) {\n            return GRAPH_TYPE_STRING.GRAPH;\n        }\n        return GRAPH_TYPE_STRING.UNKNOWN;\n    }\n\n    getItem(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n        if (!this.idx[id]) {\n            switch (docNode.tagName) {\n                case \"graph\":\n                    const subgraph = new Subgraph(this, id);\n                    this.subgraphs.push(subgraph);\n                    this.idx[id] = subgraph;\n                    break;\n                case \"node\":\n                    const vertex = new Vertex(this, id);\n                    this.vertices.push(vertex);\n                    this.idx[id] = vertex;\n                    break;\n                case \"edge\":\n                    const edge = new Edge(this, id);\n                    this.edges.push(edge);\n                    this.idx[id] = edge;\n                    break;\n                default:\n                    console.warn(\"Graph.getItem - Unknown Node Type!\");\n                    break;\n            }\n        }\n        const retVal = this.idx[id];\n        Array.from(docNode.attributes).forEach(attr => {\n            safeAssign(retVal, attr.name, attr.value);\n        });\n        return retVal;\n    }\n\n    removeItem(item: Subgraph | Vertex | Edge) {\n        delete this.idx[item.__hpcc_id];\n        if (item instanceof Subgraph) {\n            this.subgraphs = this.subgraphs.filter((subgraph: Subgraph) => {\n                return item !== subgraph;\n            });\n        } else if (item instanceof Vertex) {\n            this.vertices = this.vertices.filter(vertex => {\n                return item !== vertex;\n            });\n        } else if (item instanceof Edge) {\n            this.edges = this.edges.filter((edge: Edge) => {\n                return item !== edge;\n            });\n        }\n    }\n\n    getChildByTagName(docNode: HTMLElement, tagName: string): HTMLElement | null {\n        let retVal: HTMLElement | null = null;\n        Array.from(docNode.childNodes as NodeListOf<HTMLElement>).some((childNode) => {\n            if (childNode.tagName === tagName) {\n                retVal = childNode;\n                return true;\n            }\n        });\n        return retVal;\n    }\n\n    walkDocument(docNode: HTMLElement, id: string): Subgraph | Vertex | Edge {\n        const retVal: any = this.getItem(docNode, id);\n        (docNode.childNodes as NodeListOf<HTMLElement>).forEach((childNode) => {\n            switch (childNode.nodeType) {\n                case 1:     // \tELEMENT_NODE\n                    switch (childNode.tagName) {\n                        case \"graph\":\n                            break;\n                        case \"node\":\n                            let isSubgraph = false;\n                            const attNode = this.getChildByTagName(childNode, \"att\");\n                            if (attNode) {\n                                const graphNode = this.getChildByTagName(attNode, \"graph\");\n                                if (graphNode) {\n                                    isSubgraph = true;\n                                    const subgraph = this.walkDocument(graphNode, childNode.getAttribute(\"id\"));\n                                    retVal.addSubgraph(subgraph);\n                                }\n                            }\n                            if (!isSubgraph) {\n                                const vertex = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n                                retVal.addVertex(vertex);\n                            }\n                            break;\n                        case \"att\":\n                            const name = childNode.getAttribute(\"name\");\n                            const uname = \"_\" + name;\n                            const value = childNode.getAttribute(\"value\");\n                            if (name.indexOf(\"Time\") === 0) {\n                                safeAssign(retVal, uname, value);\n                                safeAssign(retVal, name, \"\" + espTime2Seconds(value));\n                            } else if (name.indexOf(\"Size\") === 0) {\n                                safeAssign(retVal, uname, value);\n                                safeAssign(retVal, name, \"\" + espSize2Bytes(value));\n                            } else if (name.indexOf(\"Skew\") === 0) {\n                                safeAssign(retVal, uname, value);\n                                safeAssign(retVal, name, \"\" + espSkew2Number(value));\n                            } else {\n                                safeAssign(retVal, name, value);\n                            }\n                            break;\n                        case \"edge\":\n                            const edge: any = this.walkDocument(childNode, childNode.getAttribute(\"id\"));\n                            if (edge.NumRowsProcessed !== undefined) {\n                                edge._eclwatchCount = edge.NumRowsProcessed.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n                            } else if (edge.Count !== undefined) {\n                                edge._eclwatchCount = edge.Count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n                            } else if (edge.count !== undefined) {\n                                edge._eclwatchCount = edge.count.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n                            }\n                            if (edge.inputProgress) {\n                                edge._eclwatchInputProgress = \"[\" + edge.inputProgress.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \"]\";\n                            }\n                            if (edge.SkewMaxRowsProcessed && edge.SkewMinRowsProcessed) {\n                                edge._eclwatchSkew = \"+\" + edge.SkewMaxRowsProcessed + \", \" + edge.SkewMinRowsProcessed;\n                            }\n                            if (edge._dependsOn) {\n                            } else if (edge._childGraph) {\n                            } else if (edge._sourceActivity || edge._targetActivity) {\n                                edge._isSpill = true;\n                                const source = edge.getSource();\n                                if (source) {\n                                    source._isSpill = true;\n                                }\n                                const target = edge.getTarget();\n                                if (target) {\n                                    target._isSpill = true;\n                                }\n                            }\n                            retVal.addEdge(edge);\n                            break;\n                        default:\n                            break;\n                    }\n                    break;\n                case 2:     // \tATTRIBUTE_NODE\n                case 3:     // \tTEXT_NODE\n                case 4:     // \tCDATA_SECTION_NODE\n                case 5:     // \tENTITY_REFERENCE_NODE\n                case 6:     // \tENTITY_NODE\n                case 7:     // \tPROCESSING_INSTRUCTION_NODE\n                case 8:     // \tCOMMENT_NODE\n                case 9:     // \tDOCUMENT_NODE\n                case 10:    // \tDOCUMENT_TYPE_NODE\n                case 11:    // \tDOCUMENT_FRAGMENT_NODE\n                case 12:    // \tNOTATION_NODE\n                    break;\n                default:\n                    break;\n            }\n        });\n        return retVal;\n    }\n\n    removeSubgraphs(): void {\n        const subgraphs = [...this.subgraphs];\n        subgraphs.forEach((subgraph) => {\n            if (subgraph.__hpcc_parent instanceof Subgraph) {\n                subgraph.remove();\n            }\n        });\n    }\n\n    removeSpillVertices(): void {\n        const vertices = [...this.vertices];\n        vertices.forEach((vertex) => {\n            if (vertex.isSpill()) {\n                vertex.remove();\n            }\n        });\n    }\n\n    getLocalisedXGMML(items: GraphItem[], localisationDepth: number, localisationDistance: number, noSpills: boolean): string {\n        const xgmmlWriter = new LocalisedXGMMLWriter(this);\n        xgmmlWriter.calcVisibility(items, localisationDepth, localisationDistance, noSpills);\n        xgmmlWriter.writeXgmml();\n        return \"<graph>\" + xgmmlWriter.m_xgmml + \"</graph>\";\n    }\n}\n","import { Cache, StateObject, scopedLogger, RecursivePartial } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { EclService, IWsEclRequest, IWsEclResponse, IWsEclResult } from \"../services/wsEcl.ts\";\nimport { WorkunitsService, WsWorkunits } from \"../services/wsWorkunits.ts\";\nimport { Topology } from \"./topology.ts\";\nimport { Workunit, IScope } from \"./workunit.ts\";\nimport { QueryGraph } from \"./queryGraph.ts\";\n\nexport { QueryGraph };\n\nconst logger = scopedLogger(\"@hpcc-js/comms/ecl/query.ts\");\n\nconst siFormatter = d3Format(\"~s\");\n\nfunction isNumber(n) {\n    return !isNaN(parseFloat(n)) && !isNaN(n - 0);\n}\nexport interface QueryEx extends WsWorkunits.WUQueryDetailsResponse {\n    BaseUrl: string;\n}\n\nclass QueryCache extends Cache<QueryEx, Query> {\n    constructor() {\n        super((obj) => {\n            return Cache.hash([obj.QueryId, obj.QuerySet]);\n        });\n    }\n}\nconst _queries = new QueryCache();\n\nexport class Query extends StateObject<QueryEx, QueryEx> implements QueryEx {\n    protected wsWorkunitsService: WorkunitsService;\n    get BaseUrl() { return this.wsWorkunitsService.baseUrl; }\n    protected topology: Topology;\n    protected _requestSchema: IWsEclRequest;\n    protected _responseSchema: IWsEclResponse;\n\n    get properties(): WsWorkunits.WUQueryDetailsResponse { return this.get(); }\n    get Exceptions(): WsWorkunits.Exceptions { return this.get(\"Exceptions\"); }\n    get QueryId(): string { return this.get(\"QueryId\"); }\n    get QuerySet(): string { return this.get(\"QuerySet\"); }\n    get QueryName(): string { return this.get(\"QueryName\"); }\n    get Wuid(): string { return this.get(\"Wuid\"); }\n    get Dll(): string { return this.get(\"Dll\"); }\n    get Suspended(): boolean { return this.get(\"Suspended\"); }\n    get Activated(): boolean { return this.get(\"Activated\"); }\n    get SuspendedBy(): string { return this.get(\"SuspendedBy\"); }\n    get Clusters(): WsWorkunits.Clusters2 { return this.get(\"Clusters\"); }\n    get PublishedBy(): string { return this.get(\"PublishedBy\"); }\n    get Comment() { return this.get(\"Comment\"); }\n    get LogicalFiles(): WsWorkunits.LogicalFiles { return this.get(\"LogicalFiles\"); }\n    get SuperFiles(): WsWorkunits.SuperFiles { return this.get(\"SuperFiles\"); }\n    get IsLibrary(): boolean { return this.get(\"IsLibrary\"); }\n    get Priority(): string { return this.get(\"Priority\"); }\n    get WUSnapShot(): string { return this.get(\"WUSnapShot\"); }\n    get CompileTime(): string { return this.get(\"CompileTime\"); }\n    get LibrariesUsed(): WsWorkunits.LibrariesUsed { return this.get(\"LibrariesUsed\"); }\n    get CountGraphs(): number { return this.get(\"CountGraphs\"); }\n    get ResourceURLCount(): number { return this.get(\"ResourceURLCount\"); }\n    get WsEclAddresses(): WsWorkunits.WsEclAddresses { return this.get(\"WsEclAddresses\"); }\n    get WUGraphs(): WsWorkunits.WUGraphs { return this.get(\"WUGraphs\"); }\n    get WUTimers(): WsWorkunits.WUTimers { return this.get(\"WUTimers\"); }\n    get PriorityID(): number { return this.get(\"PriorityID\"); }\n\n    private constructor(optsConnection: IOptions | IConnection | WorkunitsService, querySet: string, queryID: string, queryDetails?: WsWorkunits.WUQueryDetailsResponse) {\n        super();\n        if (optsConnection instanceof WorkunitsService) {\n            this.wsWorkunitsService = optsConnection;\n        } else {\n            this.wsWorkunitsService = new WorkunitsService(optsConnection);\n        }\n        this.topology = Topology.attach(this.wsWorkunitsService.opts());\n        this.set({\n            QuerySet: querySet,\n            QueryId: queryID,\n            ...queryDetails\n        } as QueryEx);\n    }\n\n    static attach(optsConnection: IOptions | IConnection, querySet: string, queryId: string, state?: QueryEx): Query {\n        const retVal: Query = _queries.get({ BaseUrl: optsConnection.baseUrl, QuerySet: querySet, QueryId: queryId } as QueryEx, () => {\n            return new Query(optsConnection, querySet, queryId);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    private _eclService: Promise<EclService>;\n    protected async wsEclService(): Promise<EclService | undefined> {\n        if (!this._eclService) {\n            this._eclService = this.topology.fetchServices({}).then(services => {\n                for (const espServer of services?.TpEspServers?.TpEspServer ?? []) {\n                    for (const binding of espServer?.TpBindings?.TpBinding ?? []) {\n                        if (binding?.Service === \"ws_ecl\") {\n                            const baseUrl = `${binding.Protocol}://${globalThis.location.hostname}:${binding.Port}`;\n                            return new EclService({ baseUrl });\n                        }\n                    }\n                }\n                return undefined;\n            });\n        }\n        return this._eclService;\n    }\n\n    private async fetchDetails(): Promise<void> {\n        const queryDetails = await this.wsWorkunitsService.WUQueryDetails({\n            QuerySet: this.QuerySet,\n            QueryId: this.QueryId,\n            IncludeStateOnClusters: true,\n            IncludeSuperFiles: true,\n            IncludeWsEclAddresses: true,\n            CheckAllNodes: false\n        });\n        this.set({ ...queryDetails } as QueryEx);\n    }\n\n    private async fetchRequestSchema(): Promise<void> {\n        const wsEclService = await this.wsEclService();\n        try {\n            this._requestSchema = await wsEclService?.requestJson(this.QuerySet, this.QueryId) ?? [];\n        } catch (e: any) {\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\n            logger.debug(e.message ?? e);\n            this._requestSchema = [];\n        }\n    }\n\n    private async fetchResponseSchema(): Promise<void> {\n        const wsEclService = await this.wsEclService();\n        try {\n            this._responseSchema = await wsEclService?.responseJson(this.QuerySet, this.QueryId) ?? {};\n        } catch (e: any) {\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\n            logger.debug(e.message ?? e);\n            this._responseSchema = {};\n        }\n    }\n\n    private async fetchSchema(): Promise<void> {\n        await Promise.all([this.fetchRequestSchema(), this.fetchResponseSchema()]);\n    }\n\n    fetchSummaryStats() {\n        return this.wsWorkunitsService.WUQueryGetSummaryStats({ Target: this.QuerySet, QueryId: this.QueryId });\n    }\n\n    fetchGraph(GraphName: string = \"\", SubGraphId: string = \"\"): Promise<QueryGraph> {\n        return this.wsWorkunitsService.WUQueryGetGraph({ Target: this.QuerySet, QueryId: this.QueryId, GraphName, SubGraphId }).then(response => {\n            const graph = new QueryGraph();\n            let first = true;\n            for (const graphItem of response?.Graphs?.ECLGraphEx || []) {\n                if (first) {\n                    graph.load(graphItem.Graph);\n                    first = false;\n                } else {\n                    graph.merge(graphItem.Graph);\n                }\n            }\n            return graph;\n        });\n    }\n\n    fetchDetailsNormalized(request: RecursivePartial<WsWorkunits.WUDetails> = {}): Promise<{ meta: WsWorkunits.WUDetailsMetaResponse | undefined, columns: { [id: string]: any } | undefined, data: IScope[] | undefined }> {\n        const wu = Workunit.attach(this.wsWorkunitsService, this.Wuid);\n        if (wu) {\n            return Promise.all([this.fetchGraph(), wu.fetchDetailsMeta(), wu.fetchDetailsRaw(request)]).then(promises => {\n                const graph = promises[0];\n                const meta = promises[1];\n                const metrics: WsWorkunits.Scope[] = promises[2];\n                const data = metrics.map(metric => {\n                    const firstChar = metric.Id[0];\n                    if (firstChar === \"a\" || firstChar === \"e\") {\n                        const item = graph.idx[metric.Id.substring(1)];\n                        if (!item) {\n                            logger.debug(`Missing graph data for metric ID: ${metric.Id}`);\n                            return metric;\n                        }\n                        const existingProperties = new Set(metric.Properties.Property.map(prop => prop.Name));\n                        const newProperties: WsWorkunits.Property[] = [];\n                        for (const key in item) {\n                            const firstCharOfKey = key.charAt(0);\n                            if (firstCharOfKey !== \"_\" &&\n                                firstCharOfKey === firstCharOfKey.toUpperCase() &&\n                                !existingProperties.has(key)) {\n                                const value = item[key];\n                                const valueType = typeof value;\n                                if (valueType === \"string\" || valueType === \"number\" || valueType === \"boolean\") {\n                                    const isNum = isNumber(value);\n                                    let rawValue = isNum ? parseFloat(value as string) : value;\n                                    let formatted = value;\n                                    if (key.indexOf(\"Time\") >= 0) {\n                                        rawValue = (rawValue as number) / 1000000000;\n                                        formatted = siFormatter(rawValue) + \"s\";\n                                    }\n                                    newProperties.push({\n                                        Name: key,\n                                        RawValue: rawValue as any,\n                                        Formatted: formatted\n                                    } as WsWorkunits.Property);\n                                }\n                            }\n                        }\n                        if (newProperties.length > 0) {\n                            metric.Properties.Property.push(...newProperties);\n                        }\n                    }\n                    return metric;\n                });\n                return wu.normalizeDetails(meta, data);\n            });\n        }\n        return Promise.resolve({ meta: undefined, columns: undefined, data: undefined });\n    }\n\n    async submit(request: object): Promise<Array<{ [key: string]: object[] }>> {\n        const wsEclService = await this.wsEclService();\n        try {\n            return wsEclService?.submit(this.QuerySet, this.QueryId, request).then(results => {\n                for (const key in results) {\n                    results[key] = results[key].Row;\n                }\n                return results;\n            }) ?? [];\n        } catch (e: any) {\n            //  See:  https://track.hpccsystems.com/browse/HPCC-29827\n            logger.debug(e.message ?? e);\n            return [];\n        }\n    }\n\n    async refresh(): Promise<this> {\n        await Promise.all([\n            this.fetchDetails(),\n            this.fetchSchema()\n        ]);\n        return this;\n    }\n\n    requestFields(): IWsEclRequest {\n        if (!this._requestSchema) return [];\n        return this._requestSchema;\n    }\n\n    responseFields(): IWsEclResponse {\n        if (!this._responseSchema) return {};\n        return this._responseSchema;\n    }\n\n    resultNames(): string[] {\n        const retVal: string[] = [];\n        for (const key in this.responseFields()) {\n            retVal.push(key);\n        }\n        return retVal;\n    }\n\n    resultFields(resultName: string): IWsEclResult {\n        if (!this._responseSchema[resultName]) return [];\n        return this._responseSchema[resultName];\n    }\n}\n","import { Cache, Dispatch, IObserverHandle, Message } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { StoreService } from \"../services/wsStore.ts\";\n\nexport class StoreCache extends Cache<{ BaseUrl: string, Name: string, UserSpecific: boolean, Namespace: string }, Store> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.Name}:${obj.UserSpecific}-${obj.Namespace}`;\n        });\n    }\n}\nconst _store = new StoreCache();\n\nexport class ValueChangedMessage extends Message {\n\n    constructor(readonly key: string, public value: any, public oldValue?: any) {\n        super();\n    }\n\n    get canConflate(): boolean { return true; }\n    conflate(other: ValueChangedMessage): boolean {\n        if (this.key === other.key) {\n            this.value = other.value;\n            return true;\n        }\n        return false;\n    }\n\n    void(): boolean {\n        return this.value === this.oldValue;\n    }\n}\n\nexport class Store {\n    protected connection: StoreService;\n    get BaseUrl() { return this.connection.baseUrl; }\n    readonly Name: string;\n    readonly UserSpecific: boolean;\n    readonly Namespace: string;\n\n    protected _dispatch = new Dispatch<ValueChangedMessage>();\n\n    static attach(optsConnection: IOptions | IConnection | StoreService, Name: string = \"HPCCApps\", Namespace: string, UserSpecific: boolean = true): Store {\n        const retVal: Store = _store.get({ BaseUrl: optsConnection.baseUrl, Name, UserSpecific, Namespace }, () => {\n            return new Store(optsConnection, Name, Namespace, UserSpecific);\n        });\n        return retVal;\n    }\n\n    protected constructor(optsConnection: IOptions | IConnection | StoreService, Name: string, Namespace: string, UserSpecific: boolean) {\n        if (optsConnection instanceof StoreService) {\n            this.connection = optsConnection;\n        } else {\n            this.connection = new StoreService(optsConnection);\n        }\n        this.Name = Name;\n        this.UserSpecific = UserSpecific;\n        this.Namespace = Namespace;\n    }\n\n    private _knownValues: { [key: string]: any } = {};\n\n    protected create() {\n        this.connection.CreateStore({ Name: this.Name, Type: \"\", Description: \"\" });\n    }\n\n    set(key: string, value: string, broadcast = true): Promise<void> {\n        return this.connection.Set({\n            StoreName: this.Name,\n            UserSpecific: this.UserSpecific,\n            Namespace: this.Namespace,\n            Key: key,\n            Value: value\n        }).then(response => {\n            const oldValue = this._knownValues[key];\n            this._knownValues[key] = value;\n            if (broadcast) {\n                this._dispatch.post(new ValueChangedMessage(key, value, oldValue));\n            }\n        }).catch(e => {\n            console.error(`Store.set(\"${key}\", \"${value}\") failed:`, e);\n        });\n    }\n\n    get(key: string, broadcast = true): Promise<string | undefined> {\n        return this.connection.Fetch({\n            StoreName: this.Name,\n            UserSpecific: this.UserSpecific,\n            Namespace: this.Namespace,\n            Key: key\n        }).then(response => {\n            const oldValue = this._knownValues[key];\n            this._knownValues[key] = response.Value;\n            if (broadcast) {\n                this._dispatch.post(new ValueChangedMessage(key, response.Value, oldValue));\n            }\n            return response.Value;\n        }).catch(e => {\n            console.error(`Store.get(${key}) failed:`, e);\n            return undefined;\n        });\n    }\n\n    getAll(broadcast = true): Promise<{ [key: string]: string }> {\n        return this.connection.FetchAll({\n            StoreName: this.Name,\n            UserSpecific: this.UserSpecific,\n            Namespace: this.Namespace\n        }).then(response => {\n            const retVal: { [key: string]: string } = {};\n            const deletedValues = this._knownValues;\n            this._knownValues = {};\n            response.Pairs.Pair.forEach(pair => {\n                const oldValue = this._knownValues[pair.Key];\n                this._knownValues[pair.Key] = pair.Value;\n                delete deletedValues[pair.Key];\n                retVal[pair.Key] = pair.Value;\n                if (broadcast) {\n                    this._dispatch.post(new ValueChangedMessage(pair.Key, pair.Value, oldValue));\n                }\n            });\n            if (broadcast) {\n                for (const key in deletedValues) {\n                    this._dispatch.post(new ValueChangedMessage(key, undefined, deletedValues[key]));\n                }\n            }\n            return retVal;\n        }).catch(e => {\n            console.error(\"Store.getAll failed:\", e);\n            return {};\n        });\n    }\n\n    delete(key: string, broadcast = true): Promise<void> {\n        return this.connection.Delete({\n            StoreName: this.Name,\n            UserSpecific: this.UserSpecific,\n            Namespace: this.Namespace,\n            Key: key\n        }).then(response => {\n            const oldValue = this._knownValues[key];\n            delete this._knownValues[key];\n            if (broadcast) {\n                this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));\n            }\n        }).catch(e => {\n            console.error(`Store.delete(${key}) failed:`, e);\n        });\n    }\n\n    monitor(callback: (messages: ValueChangedMessage[]) => void): IObserverHandle {\n        return this._dispatch.attach(callback);\n    }\n}\n","import { Cache, IEvent, scopedLogger, StateCallback, StateEvents, StateObject, StatePropCallback } from \"@hpcc-js/util\";\nimport { IConnection, IOptions } from \"../connection.ts\";\nimport { ESPExceptions } from \"../espConnection.ts\";\nimport { WsSMC } from \"../services/wsSMC.ts\";\nimport { FileSpray, FileSprayService, UpdateDFUWorkunitEx } from \"../services/fileSpray.ts\";\nimport * as WsTopology from \"../services/wsTopology.ts\";\n\nconst logger = scopedLogger(\"@hpcc-js/comms/dfuWorkunit.ts\");\n\nenum States {\n    Unknown = 0,\n    Scheduled,\n    Queued,\n    Started,\n    Aborted,\n    Failed,\n    Finished,\n    Monitoring,\n    Aborting,\n    NotFound = 999\n}\n\nexport class DFUWorkunitCache extends Cache<{ BaseUrl: string, ID: string }, DFUWorkunit> {\n    constructor() {\n        super((obj) => {\n            return `${obj.BaseUrl}-${obj.ID}`;\n        });\n    }\n}\nconst _workunits = new DFUWorkunitCache();\n\nexport type DFUWorkunitEvents = \"finished\" | StateEvents;\nexport type UDFUWorkunitState = FileSpray.DFUWorkunit;\nexport type IDFUWorkunitState = FileSpray.DFUWorkunit | WsSMC.ActiveWorkunit;\nexport class DFUWorkunit extends StateObject<UDFUWorkunitState, IDFUWorkunitState> implements FileSpray.DFUWorkunit {\n    connection: FileSprayService;\n    topologyConnection: WsTopology.TopologyService;\n    get BaseUrl() { return this.connection.baseUrl; }\n\n    //  Accessors  ---\n    get properties(): FileSpray.DFUWorkunit { return this.get(); }\n    get ID(): string { return this.get(\"ID\"); }\n    get DFUServerName(): string { return this.get(\"DFUServerName\"); }\n    get ClusterName(): string { return this.get(\"ClusterName\"); }\n    get JobName(): string { return this.get(\"JobName\"); }\n    get Queue(): string { return this.get(\"Queue\"); }\n    get User(): string { return this.get(\"User\"); }\n    get isProtected(): boolean { return this.get(\"isProtected\"); }\n    get Command(): number { return this.get(\"Command\"); }\n    get CommandMessage(): string { return this.get(\"CommandMessage\"); }\n    get PercentDone(): number { return this.get(\"PercentDone\"); }\n    get SecsLeft(): number { return this.get(\"SecsLeft\"); }\n    get ProgressMessage(): string { return this.get(\"ProgressMessage\"); }\n    get SummaryMessage(): string { return this.get(\"SummaryMessage\"); }\n    get State(): number { return this.get(\"State\", States.Unknown); }\n    get SourceLogicalName(): string { return this.get(\"SourceLogicalName\"); }\n    get SourceIP(): string { return this.get(\"SourceIP\"); }\n    get SourceFilePath(): string { return this.get(\"SourceFilePath\"); }\n    get SourceDali(): string { return this.get(\"SourceDali\"); }\n    get SourceRecordSize(): number { return this.get(\"SourceRecordSize\"); }\n    get SourceFormat(): number { return this.get(\"SourceFormat\"); }\n    get RowTag(): string { return this.get(\"RowTag\"); }\n    get SourceNumParts(): number { return this.get(\"SourceNumParts\"); }\n    get SourceDirectory(): string { return this.get(\"SourceDirectory\"); }\n    get DestLogicalName(): string { return this.get(\"DestLogicalName\"); }\n    get DestGroupName(): string { return this.get(\"DestGroupName\"); }\n    get DestDirectory(): string { return this.get(\"DestDirectory\"); }\n    get DestIP(): string { return this.get(\"DestIP\"); }\n    get DestFilePath(): string { return this.get(\"DestFilePath\"); }\n    get DestFormat(): number { return this.get(\"DestFormat\"); }\n    get DestNumParts(): number { return this.get(\"DestNumParts\"); }\n    get DestRecordSize(): number { return this.get(\"DestRecordSize\"); }\n    get Replicate(): boolean { return this.get(\"Replicate\"); }\n    get Overwrite(): boolean { return this.get(\"Overwrite\"); }\n    get Compress(): boolean { return this.get(\"Compress\"); }\n    get SourceCsvSeparate(): string { return this.get(\"SourceCsvSeparate\"); }\n    get SourceCsvQuote(): string { return this.get(\"SourceCsvQuote\"); }\n    get SourceCsvTerminate(): string { return this.get(\"SourceCsvTerminate\"); }\n    get SourceCsvEscape(): string { return this.get(\"SourceCsvEscape\"); }\n    get TimeStarted(): string { return this.get(\"TimeStarted\"); }\n    get TimeStopped(): string { return this.get(\"TimeStopped\"); }\n    get StateMessage(): string { return this.get(\"StateMessage\"); }\n    get MonitorEventName(): string { return this.get(\"MonitorEventName\"); }\n    get MonitorSub(): boolean { return this.get(\"MonitorSub\"); }\n    get MonitorShotLimit(): number { return this.get(\"MonitorShotLimit\"); }\n    get SourceDiffKeyName(): string { return this.get(\"SourceDiffKeyName\"); }\n    get DestDiffKeyName(): string { return this.get(\"DestDiffKeyName\"); }\n    get Archived(): boolean { return this.get(\"Archived\"); }\n    get encrypt(): string { return this.get(\"encrypt\"); }\n    get decrypt(): string { return this.get(\"decrypt\"); }\n    get failIfNoSourceFile(): boolean { return this.get(\"failIfNoSourceFile\"); }\n    get recordStructurePresent(): boolean { return this.get(\"recordStructurePresent\"); }\n    get quotedTerminator(): boolean { return this.get(\"quotedTerminator\"); }\n    get preserveCompression(): boolean { return this.get(\"preserveCompression\"); }\n    get expireDays(): number { return this.get(\"expireDays\"); }\n    get PreserveFileParts(): boolean { return this.get(\"PreserveFileParts\"); }\n    get FileAccessCost(): number { return this.get(\"FileAccessCost\"); }\n    get KbPerSecAve(): number { return this.get(\"KbPerSecAve\"); }\n    get KbPerSec(): number { return this.get(\"KbPerSec\"); }\n\n    //  Factories  ---\n    static create(optsConnection: IOptions | IConnection, dfuServerQueue: string): Promise<DFUWorkunit> {\n        const retVal: DFUWorkunit = new DFUWorkunit(optsConnection);\n        return retVal.connection.CreateDFUWorkunit({ DFUServerQueue: dfuServerQueue }).then((response) => {\n            _workunits.set(retVal);\n            retVal.set(response.result);\n            return retVal;\n        });\n    }\n\n    static attach(optsConnection: IOptions | IConnection, wuid: string, state?: IDFUWorkunitState): DFUWorkunit {\n        const retVal: DFUWorkunit = _workunits.get({ BaseUrl: optsConnection.baseUrl, ID: wuid }, () => {\n            return new DFUWorkunit(optsConnection, wuid);\n        });\n        if (state) {\n            retVal.set(state);\n        }\n        return retVal;\n    }\n\n    static sprayFixed(server: IOptions | IConnection, request: Partial<FileSpray.SprayFixed>): Promise<DFUWorkunit> {\n        const service = new FileSprayService(server);\n        return service.SprayFixedEx({\n            ...request\n        }).then(response => {\n            const wuid = response.wuid;\n            return service.GetDFUWorkunit({ wuid }).then(response => {\n                return DFUWorkunit.attach(server, wuid, response.result);\n            });\n        });\n    }\n\n    static sprayVariable(server: IOptions | IConnection, request: Partial<FileSpray.SprayVariable>): Promise<DFUWorkunit> {\n        const service = new FileSprayService(server);\n        return service.SprayVariableEx({\n            ...request\n        }).then(response => {\n            const wuid = response.wuid;\n            return service.GetDFUWorkunit({ wuid }).then(response => {\n                return DFUWorkunit.attach(server, wuid, response.result);\n            });\n        });\n    }\n\n    static despray(server: IOptions | IConnection, request: Partial<FileSpray.Despray>): Promise<DFUWorkunit> {\n        const service = new FileSprayService(server);\n        return service.DesprayEx({\n            ...request\n        }).then(response => {\n            const wuid = response.wuid;\n            return service.GetDFUWorkunit({ wuid }).then(response => {\n                return DFUWorkunit.attach(server, wuid, response.result);\n            });\n        });\n    }\n\n    update(request: Partial<UpdateDFUWorkunitEx>): Promise<FileSpray.UpdateDFUWorkunitResponse> {\n        return this.connection.UpdateDFUWorkunitEx({\n            wu: {\n                JobName: request?.wu?.JobName ?? this.JobName,\n                isProtected: request?.wu?.isProtected ?? this.isProtected,\n                ID: this.ID,\n                State: this.State\n            },\n            ClusterOrig: this.ClusterName,\n            JobNameOrig: this.JobName,\n            isProtectedOrig: this.isProtected,\n            StateOrig: this.State\n        });\n    }\n\n    isComplete(): boolean {\n        switch (this.State) {\n            case States.Finished:\n            case States.Failed:\n            case States.Aborted:\n            case States.NotFound:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    isFailed() {\n        if (this.isComplete() && this.State !== States.Finished) {\n            return true;\n        }\n        return false;\n    }\n\n    isDeleted() {\n        switch (this.State) {\n            case States.NotFound:\n                return true;\n            default:\n        }\n        return false;\n    }\n\n    isRunning(): boolean {\n        return !this.isComplete();\n    }\n\n    abort(): Promise<FileSpray.AbortDFUWorkunitResponse> {\n        return this.connection.AbortDFUWorkunit({ wuid: this.ID });\n    }\n\n    delete() {\n        return this.DFUWUAction(FileSpray.DFUWUActions.Delete).then(response => {\n            return this.refresh().then(() => {\n                this._monitor();\n                return response;\n            });\n        });\n    }\n\n    async refresh(full: boolean = false): Promise<this> {\n        await this.GetDFUWorkunit();\n        return this;\n    }\n\n    fetchXML(callback?: void): Promise<string> {\n        return this.DFUWUFile();\n    }\n\n    //  Monitoring  ---\n    protected _monitor(): void {\n        if (this.isComplete()) {\n            this._monitorTickCount = 0;\n            return;\n        }\n        super._monitor();\n    }\n\n    protected _monitorTimeoutDuration(): number {\n        const retVal = super._monitorTimeoutDuration();\n        if (this._monitorTickCount <= 1) {          //  Once\n            return 3000;\n        } else if (this._monitorTickCount <= 5) {   //  Twice\n            return 6000;\n        } else if (this._monitorTickCount <= 7) {   //  Twice\n            return 12000;\n        }\n        return retVal;\n    }\n\n    protected DFUWUFile(_request: Partial<FileSpray.DFUWUFileRequest> = {}): Promise<string> {\n        return this.connection.DFUWUFileEx({\n            ..._request, Wuid: this.ID\n        }).then(response => {\n            //TODO: additional processing?\n            return response;\n        }).catch((e: ESPExceptions) => {\n            return \"\";\n        });\n    }\n\n    protected DFUWUAction(actionType: FileSpray.DFUWUActions): Promise<FileSpray.DFUWorkunitsActionResponse> {\n        return this.connection.DFUWorkunitsAction({\n            wuids: { Item: [this.ID] },\n            Type: actionType\n        }).then((response) => {\n            if (actionType === FileSpray.DFUWUActions.Delete) return response;\n            return this.refresh().then(() => {\n                this._monitor();\n                return response;\n            });\n        });\n    }\n\n    //  Events  ---\n    on(eventID: DFUWorkunitEvents, propIDorCallback: StateCallback | keyof UDFUWorkunitState, callback?: StatePropCallback): this {\n        if (this.isCallback(propIDorCallback)) {\n            switch (eventID) {\n                case \"finished\":\n                    super.on(\"propChanged\", \"State\", (changeInfo: IEvent) => {\n                        if (this.isComplete()) {\n                            propIDorCallback([changeInfo]);\n                        }\n                    });\n                    break;\n                case \"changed\":\n                    super.on(eventID, propIDorCallback);\n                    break;\n                default:\n            }\n        } else {\n            switch (eventID) {\n                case \"changed\":\n                    super.on(eventID, propIDorCallback, callback!);\n                    break;\n                default:\n            }\n        }\n        this._monitor();\n        return this;\n    }\n\n    watchUntilComplete(callback?: StateCallback): Promise<this> {\n        return new Promise((resolve, _) => {\n            const watchHandle = this.watch((changes) => {\n                if (callback) {\n                    callback(changes);\n                }\n                if (this.isComplete()) {\n                    watchHandle.release();\n                    resolve(this);\n                }\n            });\n        });\n    }\n\n    watchUntilRunning(callback?: StateCallback): Promise<this> {\n        return new Promise((resolve, _) => {\n            const watchHandle = this.watch((changes) => {\n                if (callback) {\n                    callback(changes);\n                }\n                if (this.isComplete() || this.isRunning()) {\n                    watchHandle.release();\n                    resolve(this);\n                }\n            });\n        });\n    }\n\n    //  ---  ---  ---\n    protected constructor(optsConnection: IOptions | IConnection, wuid?: string) {\n        super();\n        this.connection = new FileSprayService(optsConnection);\n        this.topologyConnection = new WsTopology.TopologyService(optsConnection);\n        this.clearState(wuid);\n    }\n\n    clearState(wuid?: string) {\n        this.clear({\n            ID: wuid,\n            State: States.Unknown\n        });\n    }\n\n    //  FileSpray passthroughs  ---\n    protected GetDFUWorkunit(_request: Partial<FileSpray.GetDFUWorkunit> = {}): Promise<FileSpray.GetDFUWorkunitResponse> {\n        return this.connection.GetDFUWorkunit({ ..._request, wuid: this.ID }).then((response) => {\n            this.set(response.result);\n            return response;\n        }).catch((e: ESPExceptions) => {\n            //  deleted  ---\n            const wuMissing = e.Exception.some((exception) => {\n                if (exception.Code === 20080 || exception.Code === 20081) {\n                    this.clearState(this.ID);\n                    this.set(\"State\", States.NotFound);\n                    return true;\n                }\n                return false;\n            });\n            if (!wuMissing) {\n                logger.warning(`Unexpected ESP exception: ${e.message}`);\n                throw e;\n            }\n            return {} as FileSpray.GetDFUWorkunitResponse;\n        });\n    }\n}"],"names":["logger","scopedLogger","instanceOfIOptions","object","__name","DefaultOptions","type","baseUrl","userID","password","rejectUnauthorized","timeoutSecs","instanceOfIConnection","opts","send","clone","encode","uriComponent","encodeRequest","encodeURIComponent","serializeRequest","obj","prefix","str","key","hasOwnProperty","Array","includeItemCount","forEach","row","i","push","length","join","deserializeResponse","body","JSON","parse","jsonp","action","request","responseType","header","console","warn","Promise","resolve","reject","respondedTimeout","callbackName","Math","round","random","window","response","doCallback","script","document","createElement","url","indexOf","src","appendChild","progress","setInterval","clearInterval","error","Error","debug","removeChild","authHeader","Authorization","utf8ToBase64","_omitMap","doFetch","requestInit","headersInit","handleResponse","ok","json","text","statusText","credentials","headers","root","__hpcc_rejectUnauthorizedAgent","__hpcc_trustwaveAgent","fetchOverride","__hpcc_undiciFetch","fetch","promiseTimeout","then","catch","e","responseBody","post","abortSignal","upload_","abortSignal_","method","signal","get","retVal","hookedSend","hookSend","newSend","_Connection","_opts","this","constructor","_","arguments","Connection","setTransportFactory","newFunc","createConnection","isArray","arg","Object","prototype","toString","call","_ESPExceptions","isESPExceptions","Source","Exception","exceptions","super","message","Code","Message","ESPExceptions","isExceptions","err","isConnection","optsConnection","_ESPConnection","_connection","_service","_version","service","version","toESPStringArray","target","arrayName","_request","espResponseType","largeUpload","espResponseField","ver_","serviceAction","actionParts","split","pop","Exceptions","ESPConnection","_Service","connection","Service","FileSpray","DFUWUActions","DFUCommand","_FileSprayServiceBase","AbortDFUWorkunit","Copy","CreateDFUPublisherWorkunit","CreateDFUWorkunit","DFUWUFile","DFUWUSearch","DFUWorkunitsAction","DeleteDFUWorkunit","DeleteDFUWorkunits","DeleteDropZoneFiles","Despray","DfuMonitor","DropZoneFileSearch","DropZoneFiles","EchoDateTime","FileList","GetDFUExceptions","GetDFUProgress","GetDFUServerQueues","GetDFUWorkunit","GetDFUWorkunits","GetRemoteTargets","GetSprayTargets","OpenSave","Ping","Rename","Replicate","ShowResult","SprayFixed","SprayVariable","SubmitDFUWorkunit","UpdateDFUWorkunit","FileSprayServiceBase","FileSprayStates","_FileSprayService","DFUWUFileEx","SprayFixedEx","SprayVariableEx","DesprayEx","UpdateDFUWorkunitEx","FileSprayService","WsAccess","ViewMemberType","UserSortBy","GroupSortBy","AccountTypeReq","ResourcePermissionSortBy","ResourceSortBy","_AccessServiceBase","AccountPermissions","AccountPermissionsV2","AddUser","AddView","AddViewColumn","AddViewMember","ClearPermissionsCache","DeleteView","DeleteViewColumn","DeleteViewMember","DisableScopeScans","EnableScopeScans","FilePermission","GroupAction","GroupAdd","GroupEdit","GroupMemberEdit","GroupMemberEditInput","GroupMemberQuery","GroupQuery","Groups","PermissionAction","Permissions","PermissionsReset","QueryScopeScansEnabled","QueryUserViewColumns","QueryViewColumns","QueryViewMembers","QueryViews","ResourceAdd","ResourceDelete","ResourcePermissionQuery","ResourcePermissions","ResourceQuery","Resources","UserAccountExport","UserAction","UserEdit","UserGroupEdit","UserGroupEditInput","UserInfoEdit","UserInfoEditInput","UserPosix","UserPosixInput","UserQuery","UserResetPass","UserResetPassInput","UserSudoers","UserSudoersInput","Users","AccessServiceBase","_AccessService","AccessService","_AccountServiceBase","MyAccount","UpdateUser","UpdateUserInput","VerifyUser","AccountServiceBase","_AccountService","some","exception","retcode","AccountService","_CloudServiceBase","GetPODs","GetServices","CloudServiceBase","isGetPODsResponse_v1_02","Pods","mapPorts","pod","spec","containers","reduce","prev","curr","ports","p","ContainerPort","containerPort","Name","name","Protocol","protocol","mapPods","pods","filter","labels","metadata","map","started","Date","creationTimestamp","Status","status","phase","CreationTimestamp","toISOString","ContainerName","containerStatuses","ContainerCount","ContainerReadyCount","ready","ContainerRestartCount","restartCount","Ports","Port","_CloudService","getPODs","Pod","Result","items","String","CloudService","WsCodesign","SigningMethodType","_CodesignServiceBase","ListUserIDs","Sign","Verify","CodesignServiceBase","_CodesignService","ListUserIDsEx","UserIDs","Item","SigningMethod","gpg","CodesignService","_DaliServiceBase","Add","ClearTraceTransactions","Count","DFSCheck","DFSExists","DFSLS","Delete","DisconnectClientConnection","GetClients","GetConnections","GetDFSCSV","GetDFSMap","GetDFSParents","GetLogicalFile","GetLogicalFilePart","GetProtectedList","GetSDSStats","GetSDSSubscribers","GetValue","Import","ListSDSLocks","SaveSDSStore","SetLogicalFilePartAttr","SetProtected","SetTraceSlowTransactions","SetTraceTransactions","SetUnprotected","SetValue","UnlockSDSLock","DaliServiceBase","_DaliService","DaliService","WsDfu","DFUArrayActions","DFUChangeProtection","DFUChangeRestriction","DFUDefFileFormat","FileAccessRole","SecAccessType","DFUFileType","_DfuServiceBase","AddRemote","AddtoSuperfile","DFUArrayAction","DFUBrowseData","DFUDefFile","DFUFileAccess","DFUFileAccessV2","DFUFileCreate","DFUFileCreateV2","DFUFilePublish","DFUFileView","DFUGetDataColumns","DFUGetFileMetaData","DFUGetMetaInquiry","DFUInfo","DFUQuery","DFURecordTypeInfo","DFUSearch","DFUSearchData","DFUSpace","EclRecordTypeInfo","EraseHistory","ListHistory","Savexml","SuperfileAction","SuperfileList","DfuServiceBase","_DFUService","DFUFile","recursiveFetchLogicalFiles","superFiles","childSuperFiles","logicalFiles","all","superFile","Cluster","NodeGroup","IncludeJsonTypeInfo","IncludeBinTypeInfo","ForceIndexInfo","child","FileDetail","Superfiles","DFULogicalFile","subfiles","concat","DFUService","_DFUXRefServiceBase","DFUXRefArrayAction","DFUXRefBuild","DFUXRefBuildCancel","DFUXRefCleanDirectories","DFUXRefDirectories","DFUXRefFoundFiles","DFUXRefList","DFUXRefLostFiles","DFUXRefMessages","DFUXRefOrphanFiles","DFUXRefUnusedFiles","DFUXRefServiceBase","_DFUXRefService","DFUXRefDirectoriesEx","DFUXRefListEx","DFUXRefService","jsonToIField","id","item","Row","children","jsonToIFieldArr","fieldType","fields","jsonToIFieldObj","_EclService","requestJson","querySet","queryId","requestSchema","responseJson","responseSchema","Results","resultsJson","submit","EclService","_ElkServiceBase","GetConfigDetails","ElkServiceBase","_ElkService","ElkService","WsLogaccess","LogColumnType","LogColumnValueType","LogAccessType","LogAccessStatusCode","LogAccessFilterOperator","LogSelectColumnMode","SortColumType","SortDirection","_LogaccessServiceBase","GetHealthReport","GetLogAccessInfo","GetLogs","LogaccessServiceBase","LogType","TargetAudience","knownLogManagerTypes","Set","logColumnTypeValues","values","getLogCategory","searchField","workunits","ByJobID","audience","ByTargetAudience","class","ByLogType","components","ByComponent","ByFieldName","FILTER_KEYS","buildFilters","columnMap","filters","value","has","logCategory","appendWildcard","rawValues","raw","LogCategory","SearchField","SearchByValue","buildOrGroup","group","leftFilter","node","Operator","OR","rightFilter","rightBinaryFilter","BinaryLogFilter","buildAndChain","groups","firstGroup","remainingGroups","leftBinaryFilter","AND","secondGroup","buildFilterTree","groupMap","Map","f","existing","set","All","_LogaccessService","_logAccessInfo","convertLogLine","line","assign","GetLogsEx","logInfo","Columns","Column","column","range","StartDate","EndDate","getLogsRequest","Filter","Range","LogLineStartFrom","LogLineLimit","SelectColumnMode","DEFAULT","Format","SortBy","SortCondition","BySortType","ByDate","ColumnName","Direction","logLines","LogLines","lines","RemoteLogManagerType","warning","total","TotalLogLinesAvailable","LogaccessService","ascending","a","b","NaN","bisector","compare","ascendingComparator","left","x","lo","hi","mid","right","d","number","d3Max","valueof","max","n","d3Mean","m","sum","isNaN","WsMachine","ThresholdType","TpMachineType","_MachineServiceBase","GetComponentStatus","GetComponentUsage","GetMachineInfo","GetMachineInfoEx","GetMetrics","GetNodeGroupUsage","GetTargetClusterInfo","GetTargetClusterUsage","UpdateComponentStatus","MachineServiceBase","_MachineService","GetTargetClusterUsageEx","targetClusters","bypassCachedResult","TargetClusters","BypassCachedResult","exists","TargetClusterUsages","TargetClusterUsage","tcu","ComponentUsages","ComponentUsage","cu","MachineUsages","MachineUsage","mu","DiskUsages","DiskUsage","du","InUse","Total","Available","PercentUsed","PercentAvailable","NetAddress","Description","mean","Type","MachineUsagesDescription","ComponentUsagesDescription","MachineService","_PackageProcessServiceBase","ActivatePackage","AddPackage","AddPartToPackageMap","CopyPackageMap","DeActivatePackage","DeletePackage","Echo","GetPackage","GetPackageMapById","GetPackageMapSelectOptions","GetPartFromPackageMap","GetQueryFileMapping","ListPackage","ListPackages","RemovePartFromPackageMap","ValidatePackage","PackageProcessServiceBase","_PackageProcessService","PackageProcessService","_ResourcesServiceBase","ServiceQuery","WebLinksQuery","ResourcesServiceBase","_ResourcesService","ResourcesService","WsSasha","WUTypes","_SashaServiceBase","ArchiveWU","GetVersion","ListWU","RestoreWU","SashaServiceBase","_SashaService","SashaService","t0","t1","newInterval","floori","offseti","count","field","interval","date","floor","ceil","d0","d1","offset","step","start","stop","previous","test","setTime","end","every","isFinite","durationDay","durationWeek","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","year","setMonth","setFullYear","getFullYear","k","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","y","H","M","S","L","utcDate","UTC","newDate","formatLocale","locale","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","A","formatWeekday","formatShortMonth","B","formatMonth","c","formatDayOfMonth","formatMicroseconds","g","formatYearISO","G","formatFullYearISO","formatHour24","I","formatHour12","j","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","q","formatQuarter","Q","formatUnixTimestamp","s","formatUnixTimestampSeconds","formatSeconds","u","formatWeekdayNumberMonday","U","formatWeekNumberSunday","V","formatWeekNumberISO","w","formatWeekdayNumberSunday","W","formatWeekNumberMonday","X","formatYear","Y","formatFullYear","Z","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","pad","format","string","charCodeAt","slice","pads","charAt","newParse","week","parseSpecifier","getUTCMonth","timeMonday","timeDay","getMonth","exec","toLowerCase","getHours","getUTCHours","utcFormat","utcParse","timeParse","WsSMC","LockModes","RoxieControlCmdType","numberRe","percentRe","requoteRe","fill","width","sign","requote","replace","names","RegExp","timeYear","getMilliseconds","getMinutes","getSeconds","timeSunday","dISO","timeThursday","z","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","UTCdISO","defaultLocale","definition","_SMCServiceBase","Activity","BrowseResources","ClearQueue","GetBuildInfo","GetGlobalMetrics","GetStatusServerInfo","GetThorQueueAvailability","Index","LockQuery","MoveJobBack","MoveJobDown","MoveJobFront","MoveJobUp","NotInCommunityEdition","PauseQueue","RecordGlobalMetrics","RemoveJob","ResumeQueue","RoxieControlCmd","RoxieXrefCmd","SetBanner","SetJobPriority","StopQueue","SMCServiceBase","dateParser","isNumeric","trim","_SMCService","connectionOptions","Running","ActiveWorkunit","parseGlobalMetric","startsWith","GetNormalisedGlobalMetrics","metric","GlobalMetrics","GlobalMetric","Category","Start","DateTimeRange","End","dimensions","stats","dimension","Dimensions","Dimension","Value","stat","Stats","Stat","SMCService","_storeServiceBase","CreateStore","DeleteNamespace","Fetch","FetchAll","FetchKeyMetadata","ListKeys","ListNamespaces","ListStores","storeServiceBase","_StoreService","StoreServiceBase","Success","StoreService","WsTopology","TpConfigResponseFormat","RoxieQueueFilter","_TopologyServiceBase","SystemLog","TpClusterInfo","TpClusterQuery","TpComponentConfiguration","TpConfiguredComponents","TpDropZoneQuery","TpGetComponentFile","TpGetServicePlugins","TpGroupQuery","TpListLogFiles","TpListTargetClusters","TpLogFile","TpLogFileDisplay","TpLogicalClusterQuery","TpMachineInfo","TpMachineQuery","TpServiceQuery","TpSetMachineStatus","TpSwapNode","TpTargetClusterQuery","TpThorStatus","TpXMLFile","TopologyServiceBase","_TopologyService","ip","DefaultTpLogicalClusterQuery","default","firstHThor","first","TpLogicalClusters","TpLogicalCluster","idx","TopologyService","WsWorkunits","ECLWUActions","LogEventClass","WUDetailsAttrValueType","EclDefinitionActions","ErrorMessageFormat","LogAccessLogFormat","WUExceptionSeverity","WUQueryFilterSuspendedType","WUQuerySetFilterType","WUProtectFilter","QuerysetImportActivation","QuerySetQueryActionTypes","WUQueryActivationMode","QuerySetAliasActionTypes","_WorkunitsServiceBase","GVCAjaxGraph","WUAbort","WUAction","WUAddLocalFileToWorkunit","WUAnalyseHotspot","WUCDebug","WUCheckFeatures","WUClusterJobQueueLOG","WUClusterJobQueueXLS","WUClusterJobSummaryXLS","WUClusterJobXLS","WUCompileECL","WUCopyLogicalFiles","WUCopyQuerySet","WUCreate","WUCreateAndUpdate","WUCreateZAPInfo","WUDelete","WUDeployWorkunit","WUDetails","WUDetailsMeta","WUEclDefinitionAction","WUExport","WUFile","WUFullResult","WUGVCGraphInfo","WUGetArchiveFile","WUGetDependancyTrees","WUGetGraph","WUGetGraphNameAndTypes","WUGetNumFileToCopy","WUGetPlugins","WUGetStats","WUGetThorJobList","WUGetThorJobQueue","WUGetZAPInfo","WUGraphInfo","WUGraphTiming","WUInfo","WUInfoDetails","WUJobList","WULightWeightQuery","WUListArchiveFiles","WUListLocalFileRequired","WUListQueries","WUListQueriesUsingFile","WUMultiQuerysetDetails","WUProcessGraph","WUProtect","WUPublishWorkunit","WUPushEvent","WUQuery","WUQueryConfig","WUQueryDetails","WUQueryDetailsLightWeight","WUQueryFiles","WUQueryGetGraph","WUQueryGetSummaryStats","WUQuerysetAliasAction","WUQuerysetCopyQuery","WUQuerysetDetails","WUQuerysetExport","WUQuerysetImport","WUQuerysetQueryAction","WUQuerysets","WURecreateQuery","WUResubmit","WUResult","WUResultBin","WUResultSummary","WUResultView","WURun","WUSchedule","WUShowScheduled","WUSubmit","WUSyntaxCheckECL","WUUpdate","WUUpdateQueryEntry","WUWaitCompiled","WUWaitComplete","WorkunitsServiceBase","Action","WUStateID","isECLResult","isWUQueryECLWorkunit","TotalClusterTime","isWUInfoWorkunit","StateEx","_WorkunitsService","result","deepMixin","Workunits","ECLWorkunit","Wuid","TruncateEclTo64k","IncludeExceptions","IncludeGraphs","IncludeSourceFiles","IncludeResults","IncludeResultsViewNames","IncludeVariables","IncludeTimers","IncludeDebugValues","IncludeApplicationValues","IncludeWorkflows","IncludeXmlSchemas","IncludeResourceURLs","IncludeECL","IncludeHelpers","IncludeAllowedClusters","IncludeTotalClusterTime","IncludeServiceNames","SuppressResultSchemas","ActionType","WUActionType","WUFileEx","_WUDetailsMetaPromise","WUCDebugEx","xml2json","WorkunitsService","_WorkunitsServiceEx","WUPublishWorkunitEx","WorkunitsServiceEx","formatDecimal","abs","toLocaleString","formatDecimalParts","toExponential","coefficient","exponent","formatGroup","grouping","thousands","t","substring","reverse","formatNumerals","numerals","prefixExponent","re","formatSpecifier","match","FormatSpecifier","align","symbol","zero","comma","precision","formatTrim","out","i1","i0","formatPrefixAuto","min","formatRounded","formatTypes","toFixed","toPrecision","o","r","toUpperCase","identity","prefixes","Number","currencyPrefix","currency","currencySuffix","decimal","percent","minus","nan","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","Infinity","padding","formatPrefix","pow","_ECLGraph","StateObject","wu","properties","Label","Complete","WhenStarted","WhenFinished","Time","RunningId","Failed","eclGraph","eclTimers","duration","eclTimer","GraphName","HasSubGraphId","Seconds","fetchScopeGraph","subgraphID","fetchGraphDetails","scopes","createGraph","ECLGraph","_GraphCache","Cache","hash","GraphCache","walkXmlJson","callback","stack","$","childNode","flattenAtt","nodes","_XGMMLGraph","Graph","XGMMLGraph","_XGMMLSubgraph","Subgraph","XGMMLSubgraph","_XGMMLVertex","Vertex","XGMMLVertex","_XGMMLEdge","Edge","XGMMLEdge","createXGMMLGraph","graphs","subgraphs","vertices","edges","graph","tag","attributes","childNodes","_stack","top","subgraph","createSubgraph","vertex","createVertex","edge","createEdge","_ScopeGraph","ScopeGraph","_ScopeSubgraph","ScopeSubgraph","_ScopeVertex","ScopeVertex","_ScopeEdge","ScopeEdge","scope","ScopeType","Id","ScopeName","scopeStack","parentScope","scopeParent1","parent1","scopeParent2","scopeParent3","parent3","source","attr","RawValue","_Resource","URL","DisplayName","DisplayPath","cleanedURL","urlParts","matchStr","displayPath","displayName","substr","Resource","_XSDNode","fix","XSDNode","_XSDXMLNode","isSet","attrs","_children","append","splice","setOfType","isAll","charWidth","numStr","underbarPos","lastIndexOf","parseInt","XSDXMLNode","_XSDSimpleType","maxLength","_restricition","_maxLength","XSDSimpleType","_XSDSchema","simpleTypes","XSDSchema","_XSDParser","SAXStackParser","schema","simpleType","xsdStack","Stack","startXMLNode","xsdXMLNode","depth","endXMLNode","xsdXMLNode2","XSDParser","parseXSD","xml","saxParser","_XSDParser2","_rootName","rootName","XSDParser2","parseXSD2","_GlobalResultCache","BaseUrl","ResultName","GlobalResultCache","_results","_Result","_bypassCache","xsdSchema","ResultSequence","LogicalFileName","Sequence","Link","FileName","IsSupplied","ShowFileContent","ECLSchemas","ResultViews","XmlSchema","attach","wuid","name_sequence_eclResult","resultViews","attachLogicalFile","nodeGroup","logicalFile","wuid_NodeGroup","name_sequence_eclResult_logicalFile","resultViews_isLogicalFile","isComplete","bypassCache","bypass","_fetchXMLSchemaPromise","fetchXMLSchema","refresh","fetchRows","from","includeSchema","shouldBypassCache","rootField","suppressXmlSchema","FilterBy","NamedValue","itemcount","LogicalName","SuppressXmlSchema","_ResultCache","ResultCache","_Attribute","Formatted","FormattedEnd","Measure","Creator","CreatorType","attribute","Attribute","_BaseScope","_attributeMap","Properties","Property","Notes","Note","SinkActivity","CAttributes","timeElapsed","scopeAttr","update","scopeParts","walk","visitor","formattedAttrs","rawAttrs","hasAttr","attrMeasure","calcTooltip","label","rows","BaseScope","_Scope","Scope","_SourceFile","FileCluster","IsSuperFile","Subs","ECLSourceFiles","eclSourceFile","SourceFile","_Timer","SubGraphId","Timestamp","When","secs","espTime2Seconds","Timer","formatter","parser","d3FormatNum","d3Format","formatNum","num","DEFINITION_LIST","definitionRegex","PropertyType","RelatedProperty","metricKeyRegex","_splitMetric","fullLabel","relProp","index","measure","ext","labelParts","shift","splitLabelCache","splitMetric","formatValue","__formattedProps","safeParseFloat","val","parseFloat","formatValues","dedup","keyParts","avg","stdDev","StdDevs","Key","Avg","Min","Max","Delta","StdDev","SkewMin","SkewMax","NodeMin","NodeMax","_WorkunitCache","WorkunitCache","_workunits","_Workunit","topologyConnection","_debugMode","_debugAllGraph","_submitAction","Owner","Jobname","ActionEx","StateID","Unknown","State","Protected","ECLException","View","_resultCache","ResultCount","ECLResult","CResults","eclResult","SequenceResults","Timers","ECLTimer","CTimers","_graphCache","GraphCount","Graphs","CGraphs","ThorLogList","ResourceURLCount","ResourceURLs","CResourceURLs","DateTimeScheduled","IsPausing","ThorLCR","ApplicationValues","ApplicationValue","HasArchiveQuery","PriorityClass","PriorityLevel","Snapshot","ResultLimit","EventSchedule","Query","HelpersCount","Helpers","ECLHelpFile","DebugValues","AllowedClusters","ErrorCount","WarningCount","InfoCount","AlertCount","SourceFileCount","SourceFiles","ECLSourceFile","CSourceFiles","VariableCount","Variables","TimerCount","HasDebugValue","ApplicationValueCount","XmlParams","AccessFlag","ClusterFlag","ResultViewCount","DebugValueCount","WorkflowCount","Archived","RoxieCluster","DebugState","Queue","Active","AbortBy","AbortTime","Workflows","TimingData","HelpersDesc","GraphsDesc","SourceFilesDesc","ResultsDesc","VariablesDesc","TimersDesc","DebugValuesDesc","ApplicationValuesDesc","WorkflowsDesc","ServiceNames","CompileCost","ExecuteCost","FileAccessCost","NoAccess","ECLWUProcessList","CostSavingPotential","FailureDesc","create","Workunit","state","existsLocal","server","ecl","compileOnly","QueryText","Compile","compile","query","WsTopology.TopologyService","clearState","clear","StateOrig","JobnameOrig","DescriptionOrig","ProtectedOrig","ClusterOrig","_cluster","Run","resultLimit","clusterPromise","Debug","cluster","DebugValue","Compiled","Completed","Aborted","NotFound","isFailed","isDeleted","isDebugging","DebugPaused","DebugRunning","isRunning","Aborting","Blocked","setToFailed","SetToFailed","pause","Pause","pauseNow","PauseNow","resume","Resume","abort","Abort","protect","Protect","unprotect","Unprotect","restore","Restore","deschedule","Deschedule","reschedule","Reschedule","resubmit","CloneWorkunit","ResetWorkflow","_monitor","WUs","WU","WUID","refreshState","refreshInfo","refreshDebug","debugStatus","full","eclExceptions","fetchArchive","fetchECLExceptions","fetchResults","fetchGraphs","fetchQuery","fetchHelpers","fetchAllowedClusters","AllowedCluster","fetchTotalClusterTime","fetchServiceNames","fetchDetailsMeta","fetchDetailsRaw","Scopes","normalizeDetails","meta","columns","activityMap","activity","Activities","Kind","data","props","formattedProps","scopeProperty","rawValue","rawValueInt","normalizedScope","__groupedProps","__groupedRawProps","__StdDevs","__StdDevsSource","definitionList","parsedList","processedDefinitions","matches","filePath","col","maxStdDevs","maxStdDevsSource","fetchDetailsNormalized","promises","fetchInfo","fetchDetails","rawScope","fetchDetailsHierarchy","scopeMap","parentScopeID","graphIDs","rootTypes","ScopeFilter","MaxDepth","Ids","ScopeTypes","NestedFilter","Depth","PropertiesToReturn","AllStatistics","AllAttributes","AllHints","AllProperties","AllScopes","ScopeOptions","IncludeId","IncludeScope","IncludeScopeType","PropertyOptions","IncludeName","IncludeRawValue","IncludeFormatted","IncludeMeasure","IncludeCreator","IncludeCreatorType","fetchScopeGraphs","fetchTimeElapsed","PropertyFilters","PropertyFilter","scopeInfo","elapsed","finish","endTime","setMilliseconds","sort","l","_monitorTickCount","_monitorTimeoutDuration","on","eventID","propIDorCallback","isCallback","changeInfo","watchUntilComplete","watchHandle","watch","changes","release","watchUntilRunning","includeResults","deepMixinT","Wuids","IncludeMatchedScopesInResults","actionType","publish","JobName","AllowForeignFiles","Activate","ActivateQuery","Wait","publishEx","publishRequest","command","optsStr","Command","XMLNode","debugState","debugContinue","mode","debugStep","debugPause","debugQuit","debugDeleteAllBreakpoints","debugBreakpointResponseParser","rootNode","debugBreakpointAdd","debugBreakpointList","debugGraph","debugBreakpointValid","path","breakpointLocations","debugPrint","edgeID","startRow","numRows","rowNode","cellNode","content","ATTR_DEFINITION","hasECLDefinition","getECLDefinition","_file","_row","_col","file","_activity","_Activity","Build","ThorClusterList","RoxieClusterList","HThorClusterList","DFUJobs","BannerContent","BannerColor","BannerSize","BannerScroll","ChatURL","ShowBanner","ShowChatURL","Descending","SuperUser","AccessRight","ServerJobQueues","ActivityTime","DaliDetached","runningWorkunits","clusterName","awu","ClusterName","setBanner","lazyRefresh","debounce","async","_LogicalFileCache","LogicalFileCache","_store","_LogicalFile","Filename","Prefix","NumParts","Dir","PathMask","Filesize","FileSizeInt64","RecordSize","RecordCount","RecordSizeInt64","RecordCountInt64","Persistent","MaxRecordSize","CsvSeparate","CsvQuote","CsvTerminate","CsvEscape","Modified","Ecl","DFUFilePartsOnClusters","isSuperfile","ProtectList","FromRoxieCluster","UserPermission","ContentType","CompressedFileSize","PercentCompressed","IsCompressed","BrowseData","jsonInfo","binInfo","PackageID","Partition","Blooms","ExpireDays","KeyType","IsRestricted","AtRestCost","AccessCost","ExpirationDate","ExtendedIndexInfo","CompressionType","filePartsOnCluster","DFUFilePartsOnCluster","fileParts","poc","part","DFUFileParts","DFUPart","DFUFileProtect","fetchDefFile","fetchAllLogicalFiles","fetchListHistory","History","Origin","eraseHistory","LogicalFile","_MachineCache","Address","MachineCache","_machines","_Machine","ConfigAddress","ProcessType","DisplayType","AgentVersion","Contact","Location","UpTime","ComponentName","ComponentPath","RoxieState","RoxieStateDetails","OS","ProcessNumber","Channels","Processors","Storage","PhysicalMemory","VirtualMemory","ComponentInfo","address","Machine","_TargetClusterCache","TargetClusterCache","_targetCluster","_TargetCluster","machineConnection","IsDefault","TpClusters","TpEclCCServers","TpEclServers","TpEclAgents","TpEclSchedulers","MachineInfoEx","CMachineInfoEx","machineInfoEx","fetchMachines","machineInfo","TargetClusterInfoList","TargetClusterInfo","Processes","machineStats","maxDisk","totalFree","machine","storageInfo","StorageInfo","usage","meanDisk","fetchUsage","TargetCluster","TpClusterNameType","_defaultTargetCluster","defaultTargetCluster","firstItem","defaultItem","hthorItem","defItem","_TopologyCache","TopologyCache","_topology","_Topology","CTargetClusters","tc","LogicalClusters","Services","GetESPServiceBaseURL","rootProtocol","port","ServiceList","TpEspServers","TpEspServer","binding","TpBindings","TpBinding","fetchTargetClusters","TpTargetClusters","TpTargetCluster","fetchLogicalClusters","fetchServices","_prevRefresh","force","Topology","safeAssign","xmlEncode","unitTest","size","unit","nsIndex","espSize2Bytes","espSkew2Number","skew","_LocalisedXGMMLWriter","m_xgmml","m_visibleSubgraphs","m_visibleVertices","m_semiVisibleVertices","m_visibleEdges","noSpills","calcVisibility","localisationDepth","localisationDistance","isVertex","calcInVertexVisibility","calcOutVertexVisibility","isEdge","getSource","getTarget","isSubgraph","__hpcc_id","calcSubgraphVisibility","calcVisibility2","isSpill","getInEdges","getOutEdges","__hpcc_subgraphs","__hpcc_vertices","dedupEdges","__hpcc_parent","getCommonAncestor","buildVertexString","isPoint","attrStr","propsStr","getProperties","buildEdgeString","getAncestors","v","ancestors","parent","getCommonAncestorV","v1","v2","v1_ancestors","v2_ancestors","finger1","finger2","calcAncestorVisibility","calcSemiVisibleVertices","addSemiVisibleEdge","addSemiVisibleVertex","inEdges","outEdges","writeXgmml","subgraphVisited","edgeVisited","xgmmlLen","walkSubgraphs","walkVertices","vertexVisited","LocalisedXGMMLWriter","_GraphItem","__hpcc_graph","__widget","_globalID","GraphItem","_Subgraph","_globalType","__hpcc_edges","addSubgraph","subgraph2","addVertex","vertex2","removeVertex","addEdge","edge2","removeEdge","remove","removeItem","_Vertex","_isSpill","inVertices","getInVertices","setSource","getOutVertices","_Edge","_sourceActivity","_targetActivity","_QueryGraph","xgmml","load","merge","dom","DOMParser","parseFromString","walkDocument","documentElement","getGlobalType","getGlobalTypeString","getItem","docNode","tagName","getChildByTagName","nodeType","attNode","graphNode","getAttribute","uname","NumRowsProcessed","_eclwatchCount","inputProgress","_eclwatchInputProgress","SkewMaxRowsProcessed","SkewMinRowsProcessed","_eclwatchSkew","_dependsOn","_childGraph","removeSubgraphs","removeSpillVertices","getLocalisedXGMML","xgmmlWriter","QueryGraph","siFormatter","isNumber","_QueryCache","QueryId","QuerySet","_queries","_Query","wsWorkunitsService","topology","_requestSchema","_responseSchema","QueryName","Dll","Suspended","Activated","SuspendedBy","Clusters","PublishedBy","Comment","LogicalFiles","SuperFiles","IsLibrary","Priority","WUSnapShot","CompileTime","LibrariesUsed","CountGraphs","WsEclAddresses","WUGraphs","WUTimers","PriorityID","queryID","queryDetails","_eclService","wsEclService","services","espServer","globalThis","location","hostname","IncludeStateOnClusters","IncludeSuperFiles","IncludeWsEclAddresses","CheckAllNodes","fetchRequestSchema","fetchResponseSchema","fetchSchema","fetchSummaryStats","Target","fetchGraph","graphItem","ECLGraphEx","firstChar","existingProperties","prop","newProperties","firstCharOfKey","valueType","formatted","results","requestFields","responseFields","resultNames","resultFields","resultName","_StoreCache","UserSpecific","Namespace","StoreCache","_ValueChangedMessage","oldValue","canConflate","conflate","other","ValueChangedMessage","_Store","_dispatch","Dispatch","_knownValues","broadcast","StoreName","getAll","deletedValues","Pairs","Pair","pair","monitor","Store","_DFUWorkunitCache","ID","DFUWorkunitCache","_DFUWorkunit","DFUServerName","User","isProtected","CommandMessage","PercentDone","SecsLeft","ProgressMessage","SummaryMessage","SourceLogicalName","SourceIP","SourceFilePath","SourceDali","SourceRecordSize","SourceFormat","RowTag","SourceNumParts","SourceDirectory","DestLogicalName","DestGroupName","DestDirectory","DestIP","DestFilePath","DestFormat","DestNumParts","DestRecordSize","Overwrite","Compress","SourceCsvSeparate","SourceCsvQuote","SourceCsvTerminate","SourceCsvEscape","TimeStarted","TimeStopped","StateMessage","MonitorEventName","MonitorSub","MonitorShotLimit","SourceDiffKeyName","DestDiffKeyName","encrypt","decrypt","failIfNoSourceFile","recordStructurePresent","quotedTerminator","preserveCompression","expireDays","PreserveFileParts","KbPerSecAve","KbPerSec","dfuServerQueue","DFUServerQueue","sprayFixed","sprayVariable","despray","JobNameOrig","isProtectedOrig","DFUWUAction","fetchXML","wuids","DFUWorkunit"],"mappings":"iYAAO,MCEDA,EAASC,EAAAA,aAAa,uBAgBrB,SAASC,EAAmBC,GAC/B,MAAO,YAAaA,CACxB,CAFgBC,EAAAF,EAAA,sBAIhB,MAAMG,EAA2B,CAC7BC,KAAM,OACNC,QAAS,GACTC,OAAQ,GACRC,SAAU,GACVC,oBAAoB,EACpBC,YAAa,IAWV,SAASC,EAAsBT,GAClC,MAA8B,mBAAhBA,EAAOU,MACM,mBAAhBV,EAAOW,MACU,mBAAjBX,EAAOY,KACtB,CAIA,SAASC,EAAOC,EAAyCC,GACrD,YAA0B,IAAlBA,IAAiD,IAAlBA,EAA0BC,mBAAmBF,GAAgB,GAAKA,CAC7G,CAEO,SAASG,EAAiBC,EAAUH,GAAyB,EAAMI,EAAiB,IAIvF,GAHIA,IACAA,GAAU,KAEK,iBAARD,EACP,OAAOL,EAAOK,EAAKH,GAGvB,MAAMK,EAAgB,GACtB,IAAA,MAAWC,KAAOH,EACd,GAAIA,EAAII,eAAeD,GACnB,GAAIH,EAAIG,aAAgBE,MAAO,CAE3B,IAAIC,GAAmB,EACvBN,EAAIG,GAAKI,QAAQ,CAACC,EAAUC,KACL,iBAARD,GACPF,GAAmB,EACnBJ,EAAIQ,KAAKX,EAAiBS,EAAKX,EAAeI,EAASN,EAAO,GAAGQ,KAAOM,IAAKZ,MAE7EK,EAAIQ,KAAKT,EAASN,EAAO,GAAGQ,MAAQM,IAAKZ,GAAiB,IAAME,EAAiBS,EAAKX,MAG1FS,GACAJ,EAAIQ,KAAKT,EAASN,EAAO,GAAGQ,cAAiBN,GAAiB,IAAMG,EAAIG,GAAKQ,OAErF,KAA+B,iBAAbX,EAAIG,GACdH,EAAIG,IAAQH,EAAIG,GAAW,gBAAaE,OACxCH,EAAIQ,KAAKX,EAAiBC,EAAIG,GAAW,KAAGN,EAAeI,EAASN,EAAOQ,EAAKN,KAChFK,EAAIQ,KAAKT,EAASN,EAAO,GAAGQ,cAAiBN,GAAiB,IAAMG,EAAIG,GAAW,KAAEQ,SAErFT,EAAIQ,KAAKX,EAAiBC,EAAIG,GAAMN,EAAeI,EAASN,EAAOQ,EAAKN,UAExD,IAAbG,EAAIG,GACXD,EAAIQ,KAAKT,EAASN,EAAOQ,EAAKN,GAAiB,IAAMF,EAAOK,EAAIG,GAAMN,IAEtEK,EAAIQ,KAAKT,EAASN,EAAOQ,EAAKN,IAI1C,OAAOK,EAAIU,KAAK,IACpB,CAEO,SAASC,EAAoBC,GAChC,OAAOC,KAAKC,MAAMF,EACtB,CAEO,SAASG,EAAMzB,EAAgB0B,EAAgBC,EAAe,CAAA,EAAIC,EAA6B,OAAQC,GAI1G,OAHIA,GACAC,QAAQC,KAAK,mDAEV,IAAIC,QAAa,CAACC,EAASC,KAC9B,IAAIC,EAAuC,IAApBnC,EAAKF,YAC5B,MACMsC,EAAe,kBAAoBC,KAAKC,MAAsB,OAAhBD,KAAKE,UACxDC,OAAeJ,GAAgB,SAAUK,GACtCN,EAAmB,EACnBO,IACAT,EAAyB,SAAjBL,GAA+C,iBAAba,EAAwBpB,EAAoBoB,GAAYA,EACtG,EACA,MAAME,EAASC,SAASC,cAAc,UACtC,IAAIC,EAAM1B,EAAAA,KAAKpB,EAAKN,QAASgC,GAC7BoB,GAAOA,EAAIC,QAAQ,MAAQ,EAAI,IAAM,IACrCJ,EAAOK,IAAMF,EAAM,SAAWV,EAAe,IAAM7B,EAAiBoB,EAAS3B,EAAKK,eAClFuC,SAAStB,KAAK2B,YAAYN,GAC1B,MAAMO,EAAWC,YAAY,WACrBhB,GAAoB,EACpBiB,cAAcF,IAEdf,GAhBc,IAiBVA,GAAoB,GACpBiB,cAAcF,GACd/D,EAAOkE,MAAM,qBAAuBV,EAAOK,KAC3CN,IACAR,EAAOoB,MAAM,qBAAuBX,EAAOK,OAE3C7D,EAAOoE,MAAM,oBAAsBpB,EAAmB,IAAO,WAAaQ,EAAOK,KAG7F,EA1BsB,KA4BtB,SAASN,WACGF,OAAeJ,GACvBQ,SAAStB,KAAKkC,YAAYb,EAC9B,CAHSpD,EAAAmD,EAAA,eAKjB,CAEA,SAASe,EAAWzD,GAChB,OAAOA,EAAKL,OAAS,CAAE+D,cAAe,SAASC,EAAAA,aAAa,GAAG3D,EAAKL,UAAUK,EAAKJ,eAAkB,CAAA,CACzG,CArGgBL,EAAAQ,EAAA,yBAQPR,EAAAY,EAAA,UAIOZ,EAAAgB,EAAA,oBA0CAhB,EAAA8B,EAAA,uBAIA9B,EAAAkC,EAAA,SAyCPlC,EAAAkE,EAAA,cAKT,MAAMG,EAA2C,CAAA,EACjD,SAASC,EAAQ7D,EAAgB0B,EAAgBoC,EAA0BC,EAA0BnC,GAqBjG,SAASoC,EAAevB,GACpB,GAAIA,EAASwB,GACT,MAAwB,SAAjBrC,EAA0Ba,EAASyB,OAASzB,EAAS0B,OAEhE,MAAM,IAAIb,MAAMb,EAAS2B,WAC7B,CAzBAL,EAAc,IACPN,EAAWzD,MACX+D,GAGPD,EAAc,CACVO,YAAaT,EAAS5D,EAAKN,SAAW,OAAS,aAC5CoE,EACHQ,QAASP,GAG0B,IAAnC/D,EAAKN,QAAQqD,QAAQ,aAEW,IAA5B/C,EAAKH,oBAAgC0E,EAAAA,KAAKC,+BAC1CV,EAAwB,WAAIS,EAAAA,KAAKC,+BAC1BD,EAAAA,KAAKE,wBACZX,EAAmB,MAAIS,EAAAA,KAAKE,wBAI3BlF,EAAAyE,EAAA,kBAOT,MAAMU,EAAgBH,OAAKI,oBAAsBC,MACjD,OAAOC,EAAAA,eAAmC,IAApB7E,EAAKF,YAAqB4E,EAActD,EAAAA,KAAKpB,EAAKN,QAASgC,GAASoC,GACrFgB,KAAKd,GACLe,MAAMC,IAEHlB,EAAYO,YAAeT,EAAS5D,EAAKN,SAAoB,UAAT,OAC7CgF,EAActD,EAAAA,KAAKpB,EAAKN,QAASgC,GAASoC,GAC5CgB,KAAKd,GACLc,KAAKG,IACFrB,EAAS5D,EAAKN,UAAYkE,EAAS5D,EAAKN,SACjCuF,MAI3B,CAEO,SAASC,EAAKlF,EAAgB0B,EAAgBC,EAAcC,EAA6B,OAAQC,GAKpG,IAAIsD,EAKJ,OATIxD,EAAQyD,iBACDzD,EAAQyD,QACf1D,GAAU,YAGVC,EAAQ0D,eACRF,EAAcxD,EAAQ0D,oBACf1D,EAAQ0D,cAEZxB,EAAQ7D,EAAM0B,EAAQ,CACzB4D,OAAQ,OACRhE,KAAMf,EAAiBoB,EAAS3B,EAAKK,eACrCkF,OAAQJ,GACT,CACC,eAAgB,uCACbtD,GACGD,EACd,CAEO,SAAS4D,EAAIxF,EAAgB0B,EAAgBC,EAAcC,EAA6B,OAAQC,GACnG,IAAIsD,EAKJ,OAJIxD,EAAQ0D,eACRF,EAAcxD,EAAQ0D,oBACf1D,EAAQ0D,cAEZxB,EAAQ7D,EAAM,GAAG0B,KAAUnB,EAAiBoB,EAAS3B,EAAKK,iBAAkB,CAC/EiF,OAAQ,MACRC,OAAQJ,GACT,IACItD,GACGD,EACd,CAGO,SAAS3B,EAAKD,EAAgB0B,EAAgBC,EAAcC,EAA6B,OAAQC,GACpG,IAAI4D,EACJ,OAAQzF,EAAKP,MACT,IAAK,QACDgG,EAAShE,EAAMzB,EAAM0B,EAAQC,EAASC,EAAcC,GACpD,MACJ,IAAK,MACD4D,EAASD,EAAIxF,EAAM0B,EAAQC,EAASC,EAAcC,GAClD,MAEJ,QACI4D,EAASP,EAAKlF,EAAM0B,EAAQC,EAASC,EAAcC,GAG3D,OAAO4D,CACX,CA9FSlG,EAAAsE,EAAA,WA4COtE,EAAA2F,EAAA,QAoBA3F,EAAAiG,EAAA,OAeAjG,EAAAU,EAAA,QAiBhB,IAAIyF,EAAuBzF,EACpB,SAAS0F,EAASC,GACrB,MAAMH,EAASC,EAIf,OAHIE,IACAF,EAAaE,GAEVH,CACX,CANgBlG,EAAAoG,EAAA,YAQT,MAAME,EAAN,MAAMA,YACCC,MACV,WAAIpG,GAAY,OAAOqG,KAAKD,MAAMpG,OAAS,CAE3C,WAAAsG,CAAYhG,GACR+F,KAAK/F,KAAKA,EACd,CAKA,IAAAA,CAAKiG,GACD,OAAyB,IAArBC,UAAU/E,OAAqB4E,KAAKD,OACxCC,KAAKD,MAAQ,IAAKtG,KAAmByG,GAC9BF,KACX,CAEA,IAAA9F,CAAKyB,EAAgBC,EAAcC,EAA6B,OAAQC,GACpE,OAAIkE,KAAKD,MAAMH,SACJI,KAAKD,MAAMH,SAASI,KAAKD,MAAOpE,EAAQC,EAASC,EAAc8D,EAAY7D,GAE/E6D,EAAWK,KAAKD,MAAOpE,EAAQC,EAASC,EAAcC,EACjE,CAEA,KAAA3B,GACI,OAAO,IAAI2F,YAAWE,KAAK/F,OAC/B,GA1B2CT,EAAAsG,EAAA,cAAxC,IAAMM,EAANN,EAkCA,SAASO,EAAoBC,GAChC,MAAMZ,EAASa,EAAAA,iBAEf,OADAA,EAAAA,iBAAmBD,EACZZ,CACX,CC1RO,SAASc,EAAQC,GACpB,MAA+C,mBAAxCC,OAAOC,UAAUC,SAASC,KAAKJ,EAC1C,CDgRWF,EAAAA,iBAAuC,SAAUtG,GACxD,OAAO,IAAImG,EAAWnG,EAC1B,EAEgBT,EAAA6G,EAAA,uBCtRA7G,EAAAgH,EAAA,WAcT,MAAMM,EAAN,MAAMA,uBAAsBvD,MAC/BwD,iBAAkB,EAClBpF,OACAC,QACAoF,OACAC,UAEA,WAAAhB,CAAYtE,EAAgBC,EAAcsF,GACtCC,MAAM,kBAAoBD,EAAWF,QACrChB,KAAKrE,OAASA,EACdqE,KAAKpE,QAAUA,EACfoE,KAAKgB,OAASE,EAAWF,OACzBhB,KAAKiB,UAAYC,EAAWD,UACxBC,EAAWD,UAAU7F,OACrB4E,KAAKoB,QAAU,GAAGF,EAAWD,UAAU,GAAGI,UAAUH,EAAWD,UAAU,GAAGK,UAE5EtB,KAAKoB,QAAU,EAEvB,GAlB2D5H,EAAAsH,EAAA,iBAAxD,IAAMS,EAANT,EAqBA,SAASU,EAAaC,GACzB,OAAOA,aAAeF,GAAkBE,EAAIV,iBAAmBjG,MAAM0F,QAAQiB,EAAIR,UACrF,CAEA,SAASS,EAAaC,GAClB,YAAgD,IAAxCA,EAA+BzH,IAC3C,CANgBV,EAAAgI,EAAA,gBAIPhI,EAAAkI,EAAA,gBAIF,MAAME,EAAN,MAAMA,eACDC,YACR,WAAIlI,GAAY,OAAOqG,KAAK6B,YAAY5H,OAAON,OAAS,CAChDmI,SACAC,SAER,WAAA9B,CAAY0B,EAAwCK,EAAiBC,GACjEjC,KAAK6B,YAAcH,EAAaC,GAAkBA,EAAiBpB,EAAAA,iBAAiBoB,GACpF3B,KAAK8B,SAAWE,EAChBhC,KAAK+B,SAAWE,CACpB,CAIA,OAAAD,CAAQ9B,GACJ,YAAU,IAANA,EAAqBF,KAAK8B,UAC9B9B,KAAK8B,SAAW5B,EACTF,KACX,CAIA,OAAAiC,CAAQ/B,GACJ,YAAU,IAANA,EAAqBF,KAAK+B,UAC9B/B,KAAK+B,SAAW7B,EACTF,KACX,CAEA,gBAAAkC,CAAiBC,EAAaC,GAC1B,GAAI5B,EAAQ2B,EAAOC,IAAa,CAC5B,IAAA,IAASlH,EAAI,EAAGA,EAAIiH,EAAOC,GAAWhH,SAAUF,EAC5CiH,EAAOC,EAAY,KAAOlH,GAAKiH,EAAOC,GAAWlH,UAE9CiH,EAAOC,EAClB,CACA,OAAOD,CACX,CAKA,IAAAlI,CAAKiG,GACD,YAAU,IAANA,EAAqBF,KAAK6B,YAAY5H,QAC1C+F,KAAK6B,YAAY5H,KAAKiG,GACfF,KACX,CAEA,IAAA9F,CAAKyB,EAAgB0G,EAAgB,GAAIC,EAAmC,OAAQC,GAAuB,EAAOnD,EAA2BoD,GACzI,MAAM5G,EAAU,IAAKyG,EAAeI,KAAMzC,KAAK+B,UAO/C,IAAIW,EANAH,IACA3G,EAAiB,SAAI,GAErBwD,IACAxD,EAAsB,aAAIwD,GAG9B,IAAIvD,EAA6B,OACjC,OAAQyG,GACJ,IAAK,OACDI,EAAgBrH,EAAAA,KAAK2E,KAAK8B,SAAUnG,GACpCE,EAAe,OACf,MACJ,IAAK,MACD6G,EAAgBrH,EAAAA,KAAK2E,KAAK8B,SAAUnG,EAAS,QAC7CE,EAAe,OACf,MACJ,IAAK,QACD6G,EAAgBrH,EAAAA,KAAK2E,KAAK8B,SAAUnG,EAAS,SAC7C2G,EAAkB,OAClB,MAAMK,EAAchH,EAAOiH,MAAM,KACjCjH,EAASgH,EAAYE,MACrB,MACJ,QACIH,EAAgBrH,EAAAA,KAAK2E,KAAK8B,SAAUnG,EAAS,SAErD,OAAOqE,KAAK6B,YAAY3H,KAAKwI,EAAe9G,EAASC,GAAckD,KAAMrC,IACrE,GAAwB,SAApB4F,EAA4B,CAC5B,IAAI5C,EACJ,GAAIhD,GAAYA,EAASoG,WACrB,MAAM,IAAIvB,EAAc5F,EAAQC,EAASc,EAASoG,YAItD,GAHWpG,IACPgD,EAAShD,EAAS8F,GAAqB7G,EAAS,cAE/C+D,EACD,MAAM,IAAI6B,EAAc5F,EAAQC,EAAS,CACrCoF,OAAQ,qBACRC,UAAW,CAAC,CAAEI,KAAM,EAAGC,QAAS,uBAGxC,OAAO5B,CACX,CACA,OAAOhD,GAEf,CAEA,KAAAvC,GACI,OAAO,IAAIyH,eAAc5B,KAAK6B,YAAY1H,QAAS6F,KAAK8B,SAAU9B,KAAK+B,SAC3E,GAjG8CvI,EAAAoI,EAAA,iBAA3C,IAAMmB,EAANnB,EAoGA,MAAMoB,EAAN,MAAMA,SACCnB,YACV,WAAIlI,GAAY,OAAOqG,KAAK6B,YAAY5H,OAAON,OAAS,CAExD,WAAAsG,CAAY0B,EAAwCK,EAAiBC,GACjEjC,KAAK6B,YAAc,IAAIkB,EAAcpB,EAAgBK,EAASC,EAClE,CAEA,IAAAhI,GACI,OAAO+F,KAAK6B,YAAY5H,MAC5B,CAEA,UAAAgJ,GACI,OAAOjD,KAAK6B,YAAY1H,OAC5B,GAdiBX,EAAAwJ,EAAA,WAAd,IAAME,EAANF,ECjJU,IAAAG,EAQDC,EASAC,EAjBCF,EAAAA,eAAAA,EAAAA,EAAAA,EAAAA,YAAAA,YAAA,CAAA,IAQDC,EAAAD,EAAAC,eAAAD,EAAAC,aAAA,CAAA,IACR,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,QAAU,UACVA,EAAA,YAAc,cACdA,EAAA,QAAU,WAGFC,EAAAF,EAAAE,aAAAF,EAAAE,WAAA,CAAA,IACR,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,UAAY,YACZA,EAAA,QAAU,UA4wBX,MAAMC,EAAN,MAAMA,8BAA6BJ,EAEtC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,YAAa,OACvC,CAEA,gBAAA4B,CAAiB3H,EAAqCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,IAAAoE,CAAK5H,EAAyBwD,GAC1B,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,eAC9E,CAEA,0BAAAqE,CAA2B7H,EAA+CwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,6BAA8B0B,EAAS,QAAQ,EAAOwD,EAAa,qCACpG,CAEA,iBAAAsE,CAAkB9H,EAAsCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,SAAAuE,CAAU/H,EAAqCwD,GAC3C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,WAAAwE,CAAYhI,EAAuCwD,GAC/C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,kBAAAyE,CAAmBjI,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,iBAAA0E,CAAkBlI,EAAsCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,kBAAA2E,CAAmBnI,EAAuCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,mBAAA4E,CAAoBpI,EAA+CwD,GAC/D,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC7F,CAEA,OAAA6E,CAAQrI,EAA4BwD,GAChC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,UAAA8E,CAAWtI,EAAsCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,kBAAA+E,CAAmBvI,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,aAAAgF,CAAcxI,EAAyCwD,GACnD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,YAAAiF,CAAazI,EAAiCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,QAAAkF,CAAS1I,EAAoCwD,GACzC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,gBAAAmF,CAAiB3I,EAAqCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,cAAAoF,CAAe5I,EAAoCwD,GAC/C,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,mBACxF,CAEA,kBAAAqF,CAAmB7I,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,cAAAsF,CAAe9I,EAAmCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,eAAAuF,CAAgB/I,EAAoCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,gBAAAwF,CAAiBhJ,EAA4CwD,GACzD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,eAAAyF,CAAgBjJ,EAA2CwD,GACvD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,QAAA0F,CAASlJ,EAAoCwD,GACzC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,IAAA2F,CAAKnJ,EAAyCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,wBAC9E,CAEA,MAAA4F,CAAOpJ,EAA2BwD,GAC9B,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,SAAA6F,CAAUrJ,EAA8BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,UAAA8F,CAAWtJ,EAAsCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,UAAA+F,CAAWvJ,EAA+BwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,aAAAgG,CAAcxJ,EAAkCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,gBACvF,CAEA,iBAAAiG,CAAkBzJ,EAAsCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,iBAAAkG,CAAkB1J,EAAsCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,GApI8C5F,EAAA8J,EAAA,wBAA3C,IAAMiC,EAANjC,EClyBA,IAAKkC,GAAAA,IACRA,EAAAA,UAAU,GAAV,UACAA,EAAAA,EAAA,UAAA,GAAA,YACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,WAAW,KAAX,WAVQA,IAAAA,GAAA,CAAA,GAiBL,MAAMC,EAAN,MAAMA,0BAAyBF,EAElC,WAAAG,CAAY9J,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,OACvD,CAEA,YAAA+J,CAAa/J,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,EAC/C,CAEA,eAAAgK,CAAgBhK,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAO,KAAM,gBAChF,CAEA,SAAAiK,CAAUjK,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,UAAW0B,EAC5C,CAEA,mBAAAkK,CAAoBlK,GAChB,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,SAAkB,4BACzF,GApBuDpC,EAAAiM,EAAA,oBAApD,IAAMM,EAANN,ECvBU,IAAAO,EAODC,EAKAC,EAQAC,EAKAC,EAMAC,EA/BCL,EAAAA,cAAAA,EAAAA,EAAAA,EAAAA,WAAAA,WAAA,CAAA,IAODC,EAAAD,EAAAC,iBAAAD,EAAAC,eAAA,CAAA,IACR,KAAO,OACPA,EAAA,MAAQ,SAGAC,EAAAF,EAAAE,aAAAF,EAAAE,WAAA,CAAA,IACR,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,mBAAqB,qBACrBA,EAAA,WAAa,aACbA,EAAA,eAAiB,kBAGTC,EAAAH,EAAAG,cAAAH,EAAAG,YAAA,CAAA,IACR,KAAO,OACPA,EAAA,UAAY,aAGJC,EAAAJ,EAAAI,iBAAAJ,EAAAI,eAAA,CAAA,IACR,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,MAAQ,SAGAC,EAAAL,EAAAK,2BAAAL,EAAAK,yBAAA,CAAA,IACR,KAAO,OACPA,EAAA,KAAO,QAGCL,EAAAM,iBAAAN,EAAAM,eAAA,CAAA,IACR,KAAO,OAowBR,MAAMC,EAAN,MAAMA,2BAA0BrD,EAEnC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,YAAa,OACvC,CAEA,kBAAA6E,CAAmB5K,EAA6CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,oBAAAqH,CAAqB7K,EAA+CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,OAAAsH,CAAQ9K,EAAkCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,OAAAuH,CAAQ/K,EAAkCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,aAAAwH,CAAchL,EAAwCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,aAAAyH,CAAcjL,EAAwCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,qBAAA0H,CAAsBlL,EAAgDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,UAAA2H,CAAWnL,EAAqCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,gBAAA4H,CAAiBpL,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,gBAAA6H,CAAiBrL,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,iBAAA8H,CAAkBtL,EAA4CwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,gBAAA+H,CAAiBvL,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,cAAAgI,CAAexL,EAAyCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,WAAAiI,CAAYzL,EAAsCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,QAAAkI,CAAS1L,EAAmCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,SAAAmI,CAAU3L,EAAoCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,eAAAoI,CAAgB5L,EAA0CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,oBAAAqI,CAAqB7L,EAA+CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,gBAAAsI,CAAiB9L,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,UAAAuI,CAAW/L,EAAqCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,MAAAwI,CAAOhM,EAAgCwD,GACnC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,gBAChF,CAEA,gBAAAyI,CAAiBjM,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,WAAA0I,CAAYlM,EAAkCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,kBACrF,CAEA,gBAAA2I,CAAiBnM,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,IAAA2F,CAAKnJ,EAAwCwD,GACzC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,wBAC9E,CAEA,sBAAA4I,CAAuBpM,EAAiDwD,GACpE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,oBAAA6I,CAAqBrM,EAA+CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,gBAAA8I,CAAiBtM,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,gBAAA+I,CAAiBvM,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,UAAAgJ,CAAWxM,EAAqCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,WAAAiJ,CAAYzM,EAAsCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,cAAAkJ,CAAe1M,EAAyCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,uBAAAmJ,CAAwB3M,EAAkDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,0BAA2B0B,EAAS,QAAQ,EAAOwD,EAAa,kCACjG,CAEA,mBAAAoJ,CAAoB5M,EAA8CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,8BAC7F,CAEA,aAAAqJ,CAAc7M,EAAwCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,SAAAsJ,CAAU9M,EAAoCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,iBAAAuJ,CAAkB/M,EAA4CwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,UAAAwJ,CAAWhN,EAAqCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,QAAAyJ,CAASjN,EAAmCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,aAAA0J,CAAclN,EAAwCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,kBAAA2J,CAAmBnN,EAA6CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,YAAA4J,CAAapN,EAAuCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,iBAAA6J,CAAkBrN,EAA4CwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,SAAA8J,CAAUtN,EAAoCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,cAAA+J,CAAevN,EAAyCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,SAAAgK,CAAUxN,EAAoCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,aAAAiK,CAAczN,EAAwCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,kBAAAkK,CAAmB1N,EAA6CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,WAAAmK,CAAY3N,EAAsCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,gBAAAoK,CAAiB5N,EAA2CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,KAAAqK,CAAM7N,EAA+BwD,GACjC,OAAOY,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,EAAOwD,EAAa,eAC/E,GAhN2C5F,EAAA+M,EAAA,qBAAxC,IAAMmD,EAANnD,ECtyBA,MAAMoD,EAAN,MAAMA,uBAAsBD,IAAkBlQ,EAAAmQ,EAAA,iBAA9C,IAAMC,EAAND,ECiFA,MAAME,EAAN,MAAMA,4BAA2B3G,EAEpC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,aAAc,OACxC,CAEA,SAAAmI,CAAUlO,EAAqCwD,GAC3C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,IAAA2F,CAAKnJ,EAA0CwD,GAC3C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,yBAC9E,CAEA,UAAA2K,CAAWnO,EAAsCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,eAAA4K,CAAgBpO,EAA2CwD,GACvD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,UAAA6K,CAAWrO,EAAsCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,GAxB4C5F,EAAAqQ,EAAA,sBAAzC,IAAMK,EAANL,EChFA,MAAMM,EAAN,MAAMA,wBAAuBD,EAEhC,UAAAD,CAAWrO,GACP,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,GACtCoD,MAAOC,IAEJ,GAAIA,EAAE8B,iBAAmB9B,EAAEgC,UAAUmJ,KAAKC,GAAgC,QAAnBA,EAAUhJ,MAC7D,MAAO,CACHiJ,QAAS,MACTxH,WAAY,CACR9B,OAAQ,YACRC,UAAWhC,EAAEgC,YAIzB,MAAMhC,GAElB,GAjBmDzF,EAAA2Q,EAAA,kBAAhD,IAAMI,EAANJ,ECmDA,MAAMK,GAAN,MAAMA,0BAAyBtH,EAElC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,UAAW,OACrC,CAEA,OAAA8I,CAAQ7O,EAAiCwD,GACrC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,WAAAsL,CAAY9O,EAAqCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,IAAA2F,CAAKnJ,EAAqCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,sBAC9E,GAhB0C5F,EAAAgR,GAAA,oBAAvC,IAAMG,GAANH,GCrDP,MAAMpR,GAASC,EAAAA,aAAa,sCAM5B,SAASuR,GAAwBlO,GAC7B,YAA0B,IAAnBA,GAAUmO,IACrB,CAEA,SAASC,GAASC,GACd,OAAOA,EAAIC,MAAMC,YAAYC,OAAO,CAACC,EAAMC,KACvCA,EAAKC,OAAOrQ,QAAQsQ,IAChBH,EAAKhQ,KAAK,CACNoQ,cAAeD,EAAEE,cACjBC,KAAMH,EAAEI,KACRC,SAAUL,EAAEM,aAGbT,GACR,KAAyB,EAChC,CAEA,SAASU,GAAQC,GACb,OAAOA,EACFC,OAAOhB,IACJ,MAAMiB,EAASjB,GAAKkB,UAAUD,QAAU,CAAA,EACxC,OAAOA,EAAOnR,eAAe,8BAAwE,kBAAxCmR,EAAO,+BAEvEE,IAAKnB,IACF,MAAMoB,EAAU,IAAIC,KAAKrB,EAAIkB,UAAUI,mBACvC,MAAO,CACHZ,KAAMV,EAAIkB,SAASP,KACnBY,OAAQvB,EAAIwB,QAAQC,MACpBC,kBAAmBN,EAAQO,cAC3BC,cAAe5B,EAAIwB,QAAQK,mBAAmB1B,OAAO,CAACC,EAAMC,KACpDA,EAAKM,MACLP,EAAKhQ,KAAKiQ,EAAKM,MACVP,GACV,IAAgB9P,KAAK,OAAS,GACjCwR,eAAgB9B,EAAIC,MAAMC,YAAY7P,QAAU,EAChD0R,oBAAqB/B,EAAIwB,QAAQK,mBAAmB1B,OAAO,CAACC,EAAMC,IAASD,GAAQC,EAAK2B,MAAQ,EAAI,GAAI,GACxGC,sBAAuBjC,EAAIwB,QAAQK,mBAAmB1B,OAAO,CAACC,EAAMC,IAASD,EAAOC,EAAK6B,aAAc,GACvGC,MAAO,CACHC,KAAMrC,GAASC,MAKnC,CA3CSvR,EAAAoR,GAAA,2BAIApR,EAAAsR,GAAA,YAaAtR,EAAAqS,GAAA,WA4BF,MAAMuB,GAAN,MAAMA,sBAAqBzC,GAE9B,OAAA0C,GACI,OAAOlM,MAAMsJ,QAAQ,CAAA,GAAI1L,KAAMrC,IAC3B,GAAIkO,GAAwBlO,GACxB,OAAOA,EAASmO,MAAMyC,KAAO,GAEjC,IACI,MAAM7S,EAAiC,iBAApBiC,EAAS6Q,OAAsB/R,KAAKC,MAAMiB,EAAS6Q,QAAU7Q,EAAS6Q,OACzF,OAAO1B,GAAQpR,GAAK+S,OAAS,GACjC,OAASlQ,GAEL,OADAlE,GAAOkE,MAAM,8BAA+BA,aAAiBC,MAAQD,EAAM8D,QAAUqM,OAAOnQ,OACrF,EACX,GAER,GAf+C9D,EAAA4T,GAAA,gBAA5C,IAAMM,GAANN,GCrDU,IAAAO,GAAAA,EAAAA,gBAAAA,IAAAA,GAAAA,EAAAA,aAAAA,aAAA,CAAA,IAIDC,oBAAAD,GAAAC,kBAAA,CAAA,IACR,IAAM,MAgEP,MAAMC,GAAN,MAAMA,6BAA4B3K,EAErC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,cAAe,MACzC,CAEA,WAAAmM,CAAYlS,EAAwCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,IAAA2F,CAAKnJ,EAA4CwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,0BAC9E,CAEA,IAAA2O,CAAKnS,EAAiCwD,GAClC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,eAC9E,CAEA,MAAA4O,CAAOpS,EAAmCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,GApB6C5F,EAAAqU,GAAA,uBAA1C,IAAMI,GAANJ,GCpEA,MAAMK,GAAN,MAAMA,yBAAwBD,GAEjC,aAAAE,CAAcvS,GACV,OAAOuF,MAAM2M,YAAYlS,GAASmD,KAAMrC,GAC7BA,EAAS0R,QAAQC,MACzBrP,MAAMC,GACE,GAEf,CAEA,IAAA8O,CAAKnS,GACD,OAAOuF,MAAM4M,KAAK,CAAEO,cAAeX,EAAAA,WAAWC,kBAAkBW,OAAQ3S,GAC5E,GAZqDpC,EAAA0U,GAAA,mBAAlD,IAAMM,GAANN,GC2KA,MAAMO,GAAN,MAAMA,yBAAwBvL,EAEjC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,SAAU,OACpC,CAEA,GAAA+M,CAAI9S,EAA4BwD,GAC5B,OAAOY,KAAK6B,YAAY3H,KAAK,MAAO0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC7E,CAEA,sBAAAuP,CAAuB/S,EAA+CwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChG,CAEA,KAAAwP,CAAMhT,EAA8BwD,GAChC,OAAOY,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,EAAOwD,EAAa,gBAC/E,CAEA,QAAAyP,CAASjT,EAAiCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,iBAClF,CAEA,SAAA0P,CAAUlT,EAAkCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,kBACnF,CAEA,KAAA2P,CAAMnT,EAA8BwD,GAChC,OAAOY,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC/E,CAEA,MAAA4P,CAAOpT,EAA+BwD,GAClC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,0BAAA6P,CAA2BrT,EAAmDwD,GAC1E,OAAOY,KAAK6B,YAAY3H,KAAK,6BAA8B0B,EAAS,QAAQ,EAAOwD,EAAa,iBACpG,CAEA,UAAA8P,CAAWtT,EAAmCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,iBACpF,CAEA,cAAA+P,CAAevT,EAAuCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACxF,CAEA,SAAAgQ,CAAUxT,EAAkCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,iBACnF,CAEA,SAAAiQ,CAAUzT,EAAkCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,iBACnF,CAEA,aAAAkQ,CAAc1T,EAAsCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACvF,CAEA,cAAAmQ,CAAe3T,EAAuCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACxF,CAEA,kBAAAoQ,CAAmB5T,EAA2CwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC5F,CAEA,gBAAAqQ,CAAiB7T,EAAyCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC1F,CAEA,WAAAsQ,CAAY9T,EAAoCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,iBACrF,CAEA,iBAAAuQ,CAAkB/T,EAA0CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC3F,CAEA,QAAAwQ,CAAShU,EAAiCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,iBAClF,CAEA,MAAAyQ,CAAOjU,EAA+BwD,GAClC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,YAAA0Q,CAAalU,EAAqCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACtF,CAEA,IAAA2F,CAAKnJ,EAAmCwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,qBAC9E,CAEA,YAAA2Q,CAAanU,EAAqCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACtF,CAEA,sBAAA4Q,CAAuBpU,EAA+CwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChG,CAEA,YAAA6Q,CAAarU,EAAqCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACtF,CAEA,wBAAA8Q,CAAyBtU,EAAiDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,2BAA4B0B,EAAS,QAAQ,EAAOwD,EAAa,iBAClG,CAEA,oBAAA+Q,CAAqBvU,EAA6CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,iBAC9F,CAEA,cAAAgR,CAAexU,EAAuCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACxF,CAEA,QAAAiR,CAASzU,EAAiCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,iBAClF,CAEA,aAAAkR,CAAc1U,EAAsCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACvF,GA5HyC5F,EAAAiV,GAAA,mBAAtC,IAAM8B,GAAN9B,GCzKA,MAAM+B,GAAN,MAAMA,qBAAoBD,KAAgB/W,EAAAgX,GAAA,eAA1C,IAAMC,GAAND,GCHU,IAAAE,GAODC,GAOAC,GAOAC,GAMAC,GAKAC,GAMAC,GAQAC,GA9CCP,EAAAA,WAAAA,EAAAA,GAAAA,EAAAA,QAAAA,QAAA,CAAA,IAODC,GAAAD,GAAAC,kBAAAD,GAAAC,gBAAA,CAAA,IACR,OAAS,SACTA,GAAA,eAAiB,mBACjBA,GAAA,iBAAmB,oBACnBA,GAAA,kBAAoB,sBAGZC,GAAAF,GAAAE,sBAAAF,GAAAE,oBAAA,CAAA,IACRA,YAAW,GAAX,WACAA,GAAAA,WAAU,GAAV,UACAA,GAAAA,aAAY,GAAZ,YACAA,GAAAA,gBAAe,GAAf,gBAGQC,GAAAH,GAAAG,uBAAAH,GAAAG,qBAAA,CAAA,IACRA,YAAW,GAAX,WACAA,GAAAA,YAAW,GAAX,WACAA,GAAAA,gBAAe,GAAf,gBAGQC,GAAAJ,GAAAI,mBAAAJ,GAAAI,iBAAA,CAAA,IACR,IAAM,MACNA,GAAA,IAAM,OAGEC,GAAAL,GAAAK,iBAAAL,GAAAK,eAAA,CAAA,IACR,MAAQ,QACRA,GAAA,OAAS,SACTA,GAAA,SAAW,YAGHC,GAAAN,GAAAM,gBAAAN,GAAAM,cAAA,CAAA,IACR,KAAO,OACPA,GAAA,OAAS,SACTA,GAAA,KAAO,OACPA,GAAA,MAAQ,QACRA,GAAA,KAAO,QAGCC,GAAAP,GAAAO,cAAAP,GAAAO,YAAA,CAAA,IACR,KAAO,OACPA,GAAA,MAAQ,QACRA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,KAAO,OACPA,GAAA,WAAa,aACbA,GAAA,iBAAmB,mBACnBA,GAAA,MAAQ,QAokCT,MAAMC,GAAN,MAAMA,wBAAuBhO,EAEhC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,QAAS,OACnC,CAEA,GAAA+M,CAAI9S,GACA,OAAOoE,KAAK6B,YAAY3H,KAAK,MAAO0B,EAAS,QAAQ,SAAkB,cAC3E,CAEA,SAAAuV,CAAUvV,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,oBACjF,CAEA,cAAAwV,CAAexV,GACX,OAAOoE,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,SAAkB,yBACtF,CAEA,cAAAyV,CAAezV,GACX,OAAOoE,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,SAAkB,yBACtF,CAEA,aAAA0V,CAAc1V,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,SAAkB,wBACrF,CAEA,UAAA2V,CAAW3V,GACP,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,SAAkB,qBAClF,CAEA,aAAA4V,CAAc5V,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,SAAkB,wBACrF,CAEA,eAAA6V,CAAgB7V,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,wBACvF,CAEA,aAAA8V,CAAc9V,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,SAAkB,wBACrF,CAEA,eAAA+V,CAAgB/V,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,wBACvF,CAEA,cAAAgW,CAAehW,GACX,OAAOoE,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,SAAkB,yBACtF,CAEA,WAAAiW,CAAYjW,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,sBACnF,CAEA,iBAAAkW,CAAkBlW,GACd,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,SAAkB,4BACzF,CAEA,kBAAAmW,CAAmBnW,GACf,OAAOoE,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,SAAkB,6BAC1F,CAEA,iBAAAoW,CAAkBpW,GACd,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,SAAkB,yBACzF,CAEA,OAAAqW,CAAQrW,GACJ,OAAOoE,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,SAAkB,kBAC/E,CAEA,QAAAsW,CAAStW,GACL,OAAOoE,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,SAAkB,mBAChF,CAEA,iBAAAuW,CAAkBvW,GACd,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,SAAkB,4BACzF,CAEA,SAAAwW,CAAUxW,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,oBACjF,CAEA,aAAAyW,CAAczW,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,SAAkB,wBACrF,CAEA,QAAA0W,CAAS1W,GACL,OAAOoE,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,SAAkB,mBAChF,CAEA,iBAAA2W,CAAkB3W,GACd,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,SAAkB,4BACzF,CAEA,YAAA4W,CAAa5W,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,SAAkB,uBACpF,CAEA,WAAA6W,CAAY7W,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,sBACnF,CAEA,IAAAmJ,CAAKnJ,GACD,OAAOoE,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,SAAkB,oBAC5E,CAEA,OAAA8W,CAAQ9W,GACJ,OAAOoE,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,SAAkB,kBAC/E,CAEA,eAAA+W,CAAgB/W,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,0BACvF,CAEA,aAAAgX,CAAchX,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,SAAkB,wBACrF,GApHwCpC,EAAA0X,GAAA,kBAArC,IAAM2B,GAAN3B,GCznCA,MAAMP,GAAkBD,EAAAA,MAAMC,gBACxBG,GAAmBJ,EAAAA,MAAMI,iBACzBF,GAAsBF,EAAAA,MAAME,oBAC5BC,GAAuBH,EAAAA,MAAMG,qBAI7BiC,GAAN,MAAMA,oBAAmBD,GAE5B,OAAAE,CAAQnX,GACJ,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,OACxD,CAEA,gCAAMoX,CAA2BC,GAC7B,MAAMC,EAA0C,GAC1CC,EAAyB,GAY/B,aAXMlX,QAAQmX,IAAIH,EAAW/G,IAAImH,GACtBrT,KAAKiS,QAAQ,CAAEqB,QAASD,EAAUE,UAAW9H,KAAM4H,EAAU5H,KAAM+H,qBAAqB,EAAOC,oBAAoB,EAAOC,gBAAgB,IAC5I3U,KAAKrC,IACF,IAAA,MAAWiX,KAASjX,GAAUkX,YAAYC,YAAYC,gBAAkB,GACpEZ,EAAgB/X,KAAKwY,GAEzB,IAAA,MAAWA,KAASjX,GAAUkX,YAAYG,UAAU1F,MAAQ,GACxD8E,EAAahY,KAAKwY,OAI3BR,EAAaa,OAAOd,EAAgB9X,aAAe4E,KAAKgT,2BAA2BE,GAAmB,GACjH,GArB2C1Z,EAAAsZ,GAAA,cAAxC,IAAMmB,GAANnB,GCkKA,MAAMoB,GAAN,MAAMA,4BAA2BhR,EAEpC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,YAAa,OACvC,CAEA,kBAAAwS,CAAmBvY,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,YAAAgV,CAAaxY,EAAwCwD,GACjD,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,kBAAAiV,CAAmBzY,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,uBAAAkV,CAAwB1Y,EAAmDwD,GACvE,OAAOY,KAAK6B,YAAY3H,KAAK,0BAA2B0B,EAAS,QAAQ,EAAOwD,EAAa,kCACjG,CAEA,kBAAAmV,CAAmB3Y,EAAmDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,kCAC5F,CAEA,iBAAAoV,CAAkB5Y,EAAkDwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,iCAC3F,CAEA,WAAAqV,CAAY7Y,EAAuCwD,GAC/C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,gBAAAsV,CAAiB9Y,EAAiDwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC1F,CAEA,eAAAuV,CAAgB/Y,EAAgDwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,+BACzF,CAEA,kBAAAwV,CAAmBhZ,EAAmDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,kCAC5F,CAEA,kBAAAyV,CAAmBjZ,EAA8CwD,GAC7D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,IAAA2F,CAAKnJ,EAAyCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,wBAC9E,GApD4C5F,EAAA0a,GAAA,sBAAzC,IAAMY,GAANZ,GC/DA,MAAMa,GAAN,MAAMA,wBAAuBD,GAEhC,oBAAAE,CAAqBpZ,GACjB,OAAOoE,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,SAAkB,kCAC1F,CAEA,aAAAqZ,CAAcrZ,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,sBACnF,GARmDpC,EAAAub,GAAA,kBAAhD,IAAMG,GAANH,GCnGP,SAASI,GAAaC,EAAYC,GAC9B,MAAM3b,SAAc2b,EACpB,OAAQ3b,GACJ,IAAK,UACL,IAAK,SACL,IAAK,SACD,MAAO,CAAE0b,KAAI1b,QACjB,IAAK,SAID,GAHI2b,EAAKC,eAAexa,QACpBua,EAAOA,EAAKC,KAEZD,aAAgBva,MAChB,MAAO,CACHsa,KACA1b,KAAM,UACN6b,SAAUC,GAAgBH,EAAK,KAEvC,GAAWA,aAAgB3U,OAAQ,CAC/B,GAAI2U,EAAKhH,MAAQgH,EAAKhH,gBAAgBvT,OAA8B,IAArBua,EAAKhH,KAAKjT,OAAc,CACnE,MAAMqa,SAAmBJ,EAAKhH,KAAK,GACnC,GAAkB,WAAdoH,GAAwC,WAAdA,EAC1B,MAAO,CACHL,KACA1b,KAAM,MACN+b,aAGR,MAAM,IAAIlY,MAAM,qBACpB,CACA,MAAO,CACH6X,KACA1b,KAAM,SACNgc,OAAQC,GAAgBN,GAEhC,CAEJ,QACI,MAAM,IAAI9X,MAAM,sBAE5B,CAEA,SAASiY,GAAgBrX,GACjBA,EAAKmX,KAAOnX,EAAKmX,eAAexa,QAChCqD,EAAOA,EAAKmX,IAAI,IAEpB,MAAM5V,EAAmB,GACzB,IAAA,MAAW9E,KAAOuD,EACduB,EAAOvE,KAAKga,GAAava,EAAKuD,EAAKvD,KAEvC,OAAO8E,CACX,CAEA,SAASiW,GAAgBxX,GACrB,MAAMuX,EAAS,CAAA,EACf,IAAA,MAAW9a,KAAOuD,EACduX,EAAO9a,GAAOua,GAAava,EAAKuD,EAAKvD,IAEzC,OAAO8a,CACX,CA1DSlc,EAAA2b,GAAA,gBAyCA3b,EAAAgc,GAAA,mBAWAhc,EAAAmc,GAAA,mBAQF,MAAMC,GAAN,MAAMA,oBAAmB1S,EAE5B,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,QAAS,IACnC,CAEA,IAAA1H,GACI,OAAO+F,KAAK6B,YAAY5H,MAC5B,CAEA,WAAA4b,CAAYC,EAAkBC,GAE1B,OAAO/V,KAAK6B,YAAY3H,KAAK,yBAAyB4b,KAAYC,SAAgB,CAAA,EAAI,QAAQhX,KAAKrC,IAC/F,MAAMsZ,EAAgBxa,KAAKC,MAAMiB,GACjC,IAAA,MAAW9B,KAAOob,EACd,OAAOA,EAAcpb,GAEzB,MAAO,CAAA,IACRmE,KAAKyW,GACZ,CAEA,YAAAS,CAAaH,EAAkBC,GAE3B,OAAO/V,KAAK6B,YAAY3H,KAAK,0BAA0B4b,KAAYC,SAAgB,CAAA,EAAI,QAAQhX,KAAKrC,IAChG,MAAMwZ,EAAiB1a,KAAKC,MAAMiB,GAClC,IAAA,MAAW9B,KAAOsb,EACd,OAAOA,EAAetb,GAAKub,QAE/B,MAAO,CAAA,IACRpX,KAAKqX,IACJ,MAAM1W,EAAyB,CAAA,EAC/B,IAAA,MAAW9E,KAAOwb,EACd1W,EAAO9E,GAAO4a,GAAgBY,EAAYxb,IAE9C,OAAO8E,GAEf,CAEA,MAAA2W,CAAOP,EAAkBC,EAAiBna,GAEtC,MAAMD,EAAS,gBAAgBma,KAAYC,IAC3C,OAAO/V,KAAK6B,YAAY3H,KAAKyB,EAAQC,EAAS,SAASmD,KAAKrC,IACxD,GAAIA,EAASyZ,SAAWzZ,EAASyZ,QAAQlV,UACrC,MAAM,IAAIM,EAAc5F,EAAQC,EAAS,CACrCoF,OAAQ,eACRC,UAAWvE,EAASyZ,QAAQlV,YAGpC,OAAOvE,EAASyZ,SAExB,GAlDoC3c,EAAAoc,GAAA,cAAjC,IAAMU,GAANV,GCvCA,MAAMW,GAAN,MAAMA,wBAAuBrT,EAEhC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,SAAU,IACpC,CAEA,gBAAA6U,CAAiB5a,EAAwCwD,GACrD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,IAAA2F,CAAKnJ,EAAkCwD,GACnC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,qBAC9E,GAZwC5F,EAAA+c,GAAA,kBAArC,IAAME,GAANF,GC1BA,MAAMG,GAAN,MAAMA,oBAAmBD,KAAejd,EAAAkd,GAAA,cAAxC,IAAMC,GAAND,GCHU,IAAAE,GAMDC,GAkBAC,GAQAC,GAcAC,GAMAC,GAMAC,GAOAC,GAcAC,GA/ECR,EAAAA,iBAAAA,EAAAA,GAAAA,EAAAA,cAAAA,cAAA,CAAA,IAMDC,GAAAD,GAAAC,gBAAAD,GAAAC,cAAA,CAAA,IACR,OAAS,SACTA,GAAA,UAAY,YACZA,GAAA,WAAa,aACbA,GAAA,SAAW,WACXA,GAAA,MAAQ,QACRA,GAAA,SAAW,WACXA,GAAA,KAAO,OACPA,GAAA,QAAU,UACVA,GAAA,MAAQ,QACRA,GAAA,UAAY,YACZA,GAAA,SAAW,WACXA,GAAA,UAAY,YACZA,GAAA,IAAM,MACNA,GAAA,QAAU,UACVA,GAAA,OAAS,UAGDC,GAAAF,GAAAE,qBAAAF,GAAAE,mBAAA,CAAA,IACR,OAAS,SACTA,GAAA,QAAU,UACVA,GAAA,SAAW,WACXA,GAAA,KAAO,OACPA,GAAA,MAAQ,SAGAC,GAAAH,GAAAG,gBAAAH,GAAAG,cAAA,CAAA,IACRA,OAAM,GAAN,MACAA,GAAAA,WAAU,GAAV,UACAA,GAAAA,eAAc,GAAd,cACAA,GAAAA,aAAY,GAAZ,YACAA,GAAAA,oBAAmB,GAAnB,mBACAA,GAAAA,oBAAmB,GAAnB,mBACAA,GAAAA,gBAAe,GAAf,eACAA,GAAAA,eAAc,GAAd,cACAA,GAAAA,SAAQ,GAAR,QACAA,GAAAA,aAAY,GAAZ,YACAA,GAAAA,YAAW,IAAX,YAGQC,GAAAJ,GAAAI,sBAAAJ,GAAAI,oBAAA,CAAA,IACRA,WAAU,GAAV,UACAA,GAAAA,WAAU,GAAV,UACAA,GAAAA,QAAO,GAAP,QAGQC,GAAAL,GAAAK,0BAAAL,GAAAK,wBAAA,CAAA,IACRA,QAAO,GAAP,OACAA,GAAAA,OAAM,GAAN,MACAA,GAAAA,MAAK,GAAL,MAGQC,GAAAN,GAAAM,sBAAAN,GAAAM,oBAAA,CAAA,IACRA,OAAM,GAAN,MACAA,GAAAA,WAAU,GAAV,UACAA,GAAAA,OAAM,GAAN,MACAA,GAAAA,UAAS,GAAT,UAGQC,GAAAP,GAAAO,gBAAAP,GAAAO,cAAA,CAAA,IACRA,UAAS,GAAT,SACAA,GAAAA,WAAU,GAAV,UACAA,GAAAA,eAAc,GAAd,cACAA,GAAAA,aAAY,GAAZ,YACAA,GAAAA,oBAAmB,GAAnB,mBACAA,GAAAA,oBAAmB,GAAnB,mBACAA,GAAAA,gBAAe,GAAf,eACAA,GAAAA,eAAc,GAAd,cACAA,GAAAA,SAAQ,GAAR,QACAA,GAAAA,aAAY,GAAZ,YACAA,GAAAA,YAAW,IAAX,YAGQC,GAAAR,GAAAQ,gBAAAR,GAAAQ,cAAA,CAAA,IACRA,OAAM,GAAN,MACAA,GAAAA,OAAM,GAAN,MAgKD,MAAMC,GAAN,MAAMA,8BAA6BnU,EAEtC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,eAAgB,OAC1C,CAEA,eAAA2V,CAAgB1b,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,0BACvF,CAEA,gBAAA2b,CAAiB3b,GACb,OAAOoE,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,SAAkB,2BACxF,CAEA,OAAA4b,CAAQ5b,GACJ,OAAOoE,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,SAAkB,kBAC/E,CAEA,IAAAmJ,CAAKnJ,GACD,OAAOoE,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,SAAkB,2BAC5E,GApB8CpC,EAAA6d,GAAA,wBAA3C,IAAMI,GAANJ,GCjPP,MAAMje,GAASC,EAAAA,aAAa,0CAuBrB,IAAWqe,IAAAA,IACdA,EAAA,SAAW,MACXA,EAAA,MAAQ,MACRA,EAAA,QAAU,MACVA,EAAA,YAAc,MACdA,EAAA,SAAW,MACXA,EAAA,OAAS,MANKA,IAAAA,IAAA,CAAA,GASAC,IAAAA,IACdA,EAAA,SAAW,MACXA,EAAA,KAAO,MACPA,EAAA,WAAa,MACbA,EAAA,MAAQ,MAJMA,IAAAA,IAAA,CAAA,GA0BlB,MAAMC,GAAuB,IAAIC,IAAI,CAAC,wBAAyB,eAAgB,gBACzEC,GAAsB,IAAID,IAAInX,OAAOqX,OAAOnB,EAAAA,YAAYC,gBAE9D,SAASmB,GAAeC,GACpB,OAAQA,GACJ,KAAKrB,EAAAA,YAAYC,cAAcqB,UAC/B,IAAK,iBACD,OAAOtB,EAAAA,YAAYG,cAAcoB,QACrC,KAAKvB,EAAAA,YAAYC,cAAcuB,SAC/B,IAAK,oBACD,OAAOxB,EAAAA,YAAYG,cAAcsB,iBACrC,KAAKzB,EAAAA,YAAYC,cAAcyB,MAC/B,IAAK,iBACD,OAAO1B,EAAAA,YAAYG,cAAcwB,UACrC,KAAK3B,EAAAA,YAAYC,cAAc2B,WAC/B,IAAK,4BACD,OAAO5B,EAAAA,YAAYG,cAAc0B,YACrC,QACI,OAAO7B,EAAAA,YAAYG,cAAc2B,YAE7C,CAjBSlf,EAAAwe,GAAA,kBAsBT,MAAMW,GAAc,CAAC,WAAY,QAAS,YAAa,UAAW,YAAa,QAAS,WAAY,YAAa,aAAc,YAE/H,SAASC,GAAahd,EAA2Bid,GAC7C,MAAMC,EAAoC,GAC1C,IAAA,MAAWle,KAAO+d,GAAa,CAC3B,MAAMI,EAAQnd,EAAQhB,GACtB,GAAa,MAATme,GAA2B,KAAVA,GAAiBje,MAAM0F,QAAQuY,IAA2B,IAAjBA,EAAM3d,OAChE,SAEJ,KAAMR,KAAOie,GAAY,SAGzB,IAAIZ,EADmBH,GAAoBkB,IAAIpe,GACJA,EAAMie,EAAUje,GAC3D,MAAMqe,EAAcjB,GAAeC,GAC/BgB,IAAgBrC,EAAAA,YAAYG,cAAc2B,cAC1CT,EAAcY,EAAUje,IAG5B,MAAMse,EAAiBD,IAAgBrC,EAAAA,YAAYG,cAAc0B,YAC3DU,EAAsBre,MAAM0F,QAAQuY,GAASA,EAAQ,CAACA,GAC5D,IAAA,MAAWK,KAAOD,EACdL,EAAQ3d,KAAK,CACTke,YAAaJ,EACbK,YAAarB,EAGbsB,cAAeL,EAAiBE,EAAM,IAAMA,GAGxD,CACA,OAAON,CACX,CAGA,SAASU,GAAaC,GAClB,MAAMjb,EAAoC,CAAEkb,WAAYD,EAAM,IAC9D,IAAIE,EAAOnb,EACX,IAAA,IAAStD,EAAI,EAAGA,EAAIue,EAAMre,OAAQF,IAC9Bye,EAAKC,SAAWhD,cAAYK,wBAAwB4C,GAChD3e,IAAMue,EAAMre,OAAS,EACrBue,EAAKG,YAAcL,EAAMve,IAEzBye,EAAKI,kBAAoB,CAAEC,gBAAiB,CAAC,CAAEN,WAAYD,EAAMve,MACjEye,EAAOA,EAAKI,kBAAkBC,gBAAgB,IAGtD,OAAOxb,CACX,CAGA,SAASyb,GAAcC,GACnB,MAAOC,KAAeC,GAAmBF,EACnCP,EAAoC,CAAA,EAM1C,GAL0B,IAAtBQ,EAAW/e,OACXue,EAAKD,WAAaS,EAAW,GAE7BR,EAAKU,iBAAmB,CAAEL,gBAAiB,CAACR,GAAaW,KAE9B,IAA3BC,EAAgBhf,OAAc,OAAOue,EAEzC,GADAA,EAAKC,SAAWhD,cAAYK,wBAAwBqD,IACrB,IAA3BF,EAAgBhf,OAAc,CAC9B,MAAOmf,GAAeH,EACK,IAAvBG,EAAYnf,OACZue,EAAKG,YAAcS,EAAY,GAE/BZ,EAAKI,kBAAoB,CAAEC,gBAAiB,CAACR,GAAae,IAElE,MACIZ,EAAKI,kBAAoB,CAAEC,gBAAiB,CAACC,GAAcG,KAE/D,OAAOT,CACX,CAKA,SAASa,GAAgB1B,GACrB,MAAM2B,MAAeC,IACrB,IAAA,MAAWC,KAAK7B,EAAS,CACrB,MAAM8B,EAAWH,EAAShb,IAAIkb,EAAErB,aAC5BsB,EAAUA,EAASzf,KAAKwf,KAAkBE,IAAIF,EAAErB,YAAa,CAACqB,GACtE,CACA,MAAMT,EAAS,IAAIO,EAAS1C,UAE5B,GAAsB,IAAlBmC,EAAO9e,OACP,MAAO,CAAEse,WAAY,CAAEL,YAAazC,EAAAA,YAAYG,cAAc+D,MAGlE,MAAOX,KAAeC,GAAmBF,EACnCnO,EAA6B,CAAA,EAOnC,GAN0B,IAAtBoO,EAAW/e,OACX2Q,EAAO2N,WAAaS,EAAW,GAE/BpO,EAAOsO,iBAAmB,CAAEL,gBAAiB,CAACR,GAAaW,KAGhC,IAA3BC,EAAgBhf,OAAc,OAAO2Q,EAEzC,GADAA,EAAO6N,SAAWhD,cAAYK,wBAAwBqD,IACvB,IAA3BF,EAAgBhf,OAAc,CAC9B,MAAOmf,GAAeH,EACK,IAAvBG,EAAYnf,OACZ2Q,EAAO+N,YAAcS,EAAY,GAEjCxO,EAAOgO,kBAAoB,CAAEC,gBAAiB,CAACR,GAAae,IAEpE,MACIxO,EAAOgO,kBAAoB,CAAEC,gBAAiB,CAACC,GAAcG,KAEjE,OAAOrO,CACX,CA3GSvS,EAAAof,GAAA,gBAgCApf,EAAAggB,GAAA,gBAgBAhgB,EAAAygB,GAAA,iBA0BAzgB,EAAAghB,GAAA,mBAmCF,MAAMO,GAAN,MAAMA,0BAAyBtD,GAExBuD,eAEV,gBAAAzD,CAAiB3b,EAA+C,IAI5D,OAHKoE,KAAKgb,iBACNhb,KAAKgb,eAAiB7Z,MAAMoW,iBAAiB3b,IAE1CoE,KAAKgb,cAChB,CAEA,OAAAxD,CAAQ5b,GACJ,OAAOuF,MAAMqW,QAAQ5b,EACzB,CAEQ,cAAAqf,CAAepC,EAAmCqC,GACtD,MAAMxb,EAAkB,CAAA,EAClBgW,EAASwF,GAAMxF,OAAShV,OAAOya,OAAO,CAAA,KAAOD,EAAKxF,QAAU,KAClE,IAAA,MAAW9a,KAAOie,EACdnZ,EAAO9E,GAAO8a,EAASA,EAAOmD,EAAUje,KAAS,GAAK,GAE1D,OAAO8E,CACX,CAEA,eAAM0b,CAAUxf,GACZ,MAAMyf,QAAgBrb,KAAKuX,mBACrBsB,EAAoC,CAAA,EAC1CwC,EAAQC,QAAQC,OAAOvgB,QAAQwgB,GAAU3C,EAAU2C,EAAO9D,SAAW8D,EAAO/P,MAE5E,MAAMqN,EAAUF,GAAahd,EAASid,GAChC4C,EAAgC,CAClCC,UAAW9f,EAAQ8f,qBAAqBtP,KAAOxQ,EAAQ8f,UAAUhP,cAAA,IAAoBN,KAAK,GAAGM,eAE7F9Q,EAAQ+f,mBAAmBvP,OAC3BqP,EAAME,QAAU/f,EAAQ+f,QAAQjP,eAGpC,MAAMkP,EAA6C,CAC/CC,OAAQrB,GAAgB1B,GACxBgD,MAAOL,EACPM,iBAAkBngB,EAAQmgB,kBAAoB,EAC9CC,aAAcpgB,EAAQogB,cAAgB,IACtCC,iBAAkBrF,EAAAA,YAAYM,oBAAoBgF,QAClDC,OAAQ,OACRC,OAAQ,CACJC,cAAe,CAAC,CACZC,WAAY1F,EAAAA,YAAYO,cAAcoF,OACtCC,WAAY,GACZC,UAAW,MAKvB,OAAOzc,KAAKwX,QAAQoE,GAAgB7c,KAAKrC,IACrC,IACI,MAAMggB,EAAWlhB,KAAKC,MAAMiB,EAASigB,UAIrC,MAAO,CACHC,MAJUhF,GAAqBoB,IAAIqC,EAAQwB,sBACxCH,EAASE,OAAO1Q,IAAKgP,GAAclb,KAAKib,eAAepC,EAAWqC,KAAU,IAC5E9hB,GAAO0jB,QAAQ,iCAAiCzB,EAAQwB,wBAAyB,IAGpFE,MAAOrgB,EAASsgB,wBAA0B,IAElD,OAAS/d,GACL7F,GAAOkE,MAAM2B,EAAEmC,SAAWnC,EAC9B,CACA,MAAO,CACH2d,MAAO,GACPG,MAAO,IAGnB,GAvEuDvjB,EAAAuhB,GAAA,oBAApD,IAAMkC,GAANlC,GCrMQ,SAAAmC,GAASC,EAAGC,GACzB,OAAOD,EAAIC,GAAI,EAAKD,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIC,GAC/C,CCAe,SAAAC,GAASC,GAEtB,OADuB,IAAnBA,EAAQniB,SAAcmiB,EAAUC,GAAoBD,IACjD,CACLE,KAAMjkB,EAAA,SAAS2jB,EAAGO,EAAGC,EAAIC,GAGvB,IAFU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAKT,EAAE/hB,QAChBuiB,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBL,EAAQJ,EAAEU,GAAMH,GAAK,IAAQG,EAAM,EAClCD,EAAKC,CACZ,CACA,OAAOF,CACT,EATM,QAUNG,MAAOtkB,EAAA,SAAS2jB,EAAGO,EAAGC,EAAIC,GAGxB,IAFU,MAAND,IAAYA,EAAK,GACX,MAANC,IAAYA,EAAKT,EAAE/hB,QAChBuiB,EAAKC,GAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAClBL,EAAQJ,EAAEU,GAAMH,GAAK,EAAGE,EAAKC,IACvBA,EAAM,CAClB,CACA,OAAOF,CACT,EATO,SAWX,CAEA,SAASH,GAAoB7C,GAC3B,OAAO,SAASoD,EAAGL,GACjB,OAAOR,GAAUvC,EAAEoD,GAAIL,EACzB,CACF,CChCe,SAAAM,GAASN,GACtB,OAAa,OAANA,EAAaL,KAAOK,CAC7B,CCFe,SAAAO,GAASlG,EAAQmG,GAC9B,IAEInF,EACAoF,EAHAC,EAAIrG,EAAO3c,OACXF,KAIJ,GAAe,MAAXgjB,GACF,OAAShjB,EAAIkjB,GACX,GAA2B,OAAtBrF,EAAQhB,EAAO7c,KAAe6d,GAASA,EAE1C,IADAoF,EAAMpF,IACG7d,EAAIkjB,GACgB,OAAtBrF,EAAQhB,EAAO7c,KAAe6d,EAAQoF,IACzCA,EAAMpF,QAQd,OAAS7d,EAAIkjB,GACX,GAA+C,OAA1CrF,EAAQmF,EAAQnG,EAAO7c,GAAIA,EAAG6c,KAAoBgB,GAASA,EAE9D,IADAoF,EAAMpF,IACG7d,EAAIkjB,GACoC,OAA1CrF,EAAQmF,EAAQnG,EAAO7c,GAAIA,EAAG6c,KAAoBgB,EAAQoF,IAC7DA,EAAMpF,GAOhB,OAAOoF,CACT,CC/Be,SAAAE,GAAStG,EAAQmG,GAC9B,IAGInF,EAHAqF,EAAIrG,EAAO3c,OACXkjB,EAAIF,EACJljB,GAAI,EAEJqjB,EAAM,EAEV,GAAe,MAAXL,EACF,OAAShjB,EAAIkjB,GACNI,MAAMzF,EAAQiF,GAAOjG,EAAO7c,OAC1BojB,EADgCC,GAAOxF,OAMhD,OAAS7d,EAAIkjB,GACNI,MAAMzF,EAAQiF,GAAOE,EAAQnG,EAAO7c,GAAIA,EAAG6c,OACzCuG,EADoDC,GAAOxF,EAKtE,GAAIuF,SAAUC,EAAMD,CACtB,CCrBO,IAAUG,GAAAA,GAMDC,GAKAC,GLdDnlB,EAAA0jB,GAAA,aCEA1jB,EAAA8jB,GAAA,YA0BN9jB,EAAAgkB,GAAA,uBKzBaF,GAASJ,IJHhB1jB,EAAAwkB,GAAA,UCAAxkB,EAAAykB,GAAA,SCEAzkB,EAAA6kB,GAAA,UCCEI,GAAAA,KAAAA,GAAA,CAAA,IAMDC,GAAAD,GAAAC,gBAAAD,GAAAC,cAAA,CAAA,IACRA,wBAAuB,GAAvB,uBACAA,GAAAA,gBAAe,GAAf,gBAGQC,GAAAF,GAAAE,gBAAAF,GAAAE,cAAA,CAAA,IACR,SAAW,WACXA,GAAA,aAAe,eACfA,GAAA,aAAe,eACfA,GAAA,cAAgB,gBAChBA,GAAA,SAAW,WACXA,GAAA,kBAAoB,oBACpBA,GAAA,SAAW,WACXA,GAAA,aAAe,eACfA,GAAA,eAAiB,iBACjBA,GAAA,iBAAmB,mBA0apB,MAAMC,GAAN,MAAMA,4BAA2B1b,EAEpC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,aAAc,OACxC,CAEA,kBAAAkd,CAAmBjjB,EAAuDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,iBAAA0f,CAAkBljB,EAAsDwD,GACpE,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,cAAA2f,CAAenjB,EAAmDwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,gBAAA4f,CAAiBpjB,EAAqDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,UAAA6f,CAAWrjB,EAA4CwD,GACnD,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,kBACpF,CAEA,iBAAA8f,CAAkBtjB,EAAsDwD,GACpE,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,oBAAA+f,CAAqBvjB,EAAyDwD,GAC1E,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,qBAAAggB,CAAsBxjB,EAA0DwD,GAC5E,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,IAAA2F,CAAKnJ,EAAmDwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,yBAC9E,CAEA,qBAAAigB,CAAsBzjB,EAA0DwD,GAC5E,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,GA5C4C5F,EAAAolB,GAAA,sBAAzC,IAAMU,GAANV,GE5ZA,MAAMW,GAAN,MAAMA,wBAAuBD,GAEhC,uBAAAE,CAAwBC,EAA2BC,GAA8B,GAC7E,OAAO1f,KAAK6B,YAAY3H,KAAK,wBAAyB,CAClDylB,eAAgBF,EAAiB,CAAEpR,KAAMoR,GAAmB,CAAA,EAC5DG,mBAAoBF,IACrB3gB,KAAKrC,GACGmjB,EAAAA,OAAO,yCAA0CnjB,GAAYA,EAASojB,oBAAoBC,mBAAqB,IACvHhhB,KAAKrC,GACGA,EAASqP,OAAOiU,KAASA,EAAIC,iBAAiB/T,IAAI8T,IACrD,MAAMC,EAAgDD,EAAIC,gBAAgBC,eAAehU,IAAIiU,IACzF,MAAMC,GAA6CD,EAAGC,eAAiBD,EAAGC,cAAcC,aAAeF,EAAGC,cAAcC,aAAe,IAAInU,IAAIoU,IAC3I,MAAMC,EAAsCD,EAAGC,YAAcD,EAAGC,WAAWC,UAAYF,EAAGC,WAAWC,UAAUtU,IAAIuU,IACxG,IACAA,EACHC,MAAkB,KAAXD,EAAGC,MACVC,MAAmC,MAA3BF,EAAGC,MAAQD,EAAGG,WACtBC,YAAa,IAAMJ,EAAGK,oBAEzB,GACL,MAAO,CACHrV,KAAM6U,EAAG7U,KACTsV,WAAYT,EAAGS,WACfC,YAAaV,EAAGU,YAChBT,aACAU,KAAM5C,GAAOkC,EAAWxU,OAAO0U,IAAOjC,MAAMiC,EAAGI,cAAeJ,GAAMA,EAAGI,aACvE1C,IAAKF,GAAMsC,EAAWxU,OAAO0U,IAAOjC,MAAMiC,EAAGI,cAAeJ,GAAMA,EAAGI,gBAG7E,MAAO,CACHK,KAAMf,EAAGe,KACTzV,KAAM0U,EAAG1U,KACTuV,YAAab,EAAGa,YAChBZ,gBACAe,yBAA0Bf,EAAclV,OAAO,CAACC,EAAMmV,IAAOnV,GAAQmV,EAAGU,aAAe,IAAK,IAC5FC,KAAM5C,GAAO+B,EAAcrU,OAAOuU,IAAO9B,MAAM8B,EAAGW,OAAQX,GAAMA,EAAGW,MACnE9C,IAAKF,GAAMmC,EAAcrU,OAAOuU,IAAO9B,MAAM8B,EAAGnC,MAAOmC,GAAMA,EAAGnC,QAGxE,MAAO,CACH1S,KAAMuU,EAAIvU,KACVuV,YAAahB,EAAIgB,YACjBf,kBACAmB,2BAA4BnB,EAAgB/U,OAAO,CAACC,EAAMgV,IAAOhV,GAAQgV,EAAGgB,0BAA4B,IAAK,IAC7GF,KAAM5C,GAAO4B,EAAgBlU,OAAOoU,IAAO3B,MAAM2B,EAAGc,OAAQd,GAAMA,EAAGc,MACrE9C,IAAKF,GAAMgC,EAAgBlU,OAAOoU,IAAO3B,MAAM2B,EAAGhC,MAAOgC,GAAMA,EAAGhC,QAIlF,GAjDmD3kB,EAAA+lB,GAAA,kBAAhD,IAAM8B,GAAN9B,GCsYA,MAAM+B,GAAN,MAAMA,mCAAkCpe,EAE3C,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,mBAAoB,OAC9C,CAEA,eAAA4f,CAAgB3lB,EAAkDwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,UAAAoiB,CAAW5lB,EAA6CwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,mBAAAqiB,CAAoB7lB,EAAsDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,8BAC7F,CAEA,cAAAsiB,CAAe9lB,EAAiDwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,iBAAAuiB,CAAkB/lB,EAAoDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,aAAAwiB,CAAchmB,EAAgDwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,IAAAyiB,CAAKjmB,EAAuCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,eAC9E,CAEA,UAAA0iB,CAAWlmB,EAA6CwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,iBAAA2iB,CAAkBnmB,EAAoDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,0BAAA4iB,CAA2BpmB,EAA6DwD,GACpF,OAAOY,KAAK6B,YAAY3H,KAAK,6BAA8B0B,EAAS,QAAQ,EAAOwD,EAAa,qCACpG,CAEA,qBAAA6iB,CAAsBrmB,EAAwDwD,GAC1E,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,mBAAA8iB,CAAoBtmB,EAAsDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,8BAC7F,CAEA,WAAA+iB,CAAYvmB,EAA8CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,YAAAgjB,CAAaxmB,EAA+CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,IAAA2F,CAAKnJ,EAAuDwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9E,CAEA,wBAAAijB,CAAyBzmB,EAA2DwD,GAChF,OAAOY,KAAK6B,YAAY3H,KAAK,2BAA4B0B,EAAS,QAAQ,EAAOwD,EAAa,mCAClG,CAEA,eAAAkjB,CAAgB1mB,EAAkDwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,GAxEmD5F,EAAA8nB,GAAA,6BAAhD,IAAMiB,GAANjB,GCtaA,MAAMkB,GAAN,MAAMA,+BAA8BD,KAA0B/oB,EAAAgpB,GAAA,yBAA9D,IAAMC,GAAND,GC8FA,MAAME,GAAN,MAAMA,8BAA6Bxf,EAEtC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,cAAe,OACzC,CAEA,IAAAoD,CAAKnJ,GACD,OAAOoE,KAAK6B,YAAY3H,KAAK,OAAQ0B,EACzC,CAEA,YAAA+mB,CAAa/mB,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,eAAgB0B,EACjD,CAEA,aAAAgnB,CAAchnB,GACV,OAAOoE,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAClD,GAhB8CpC,EAAAkpB,GAAA,wBAA3C,IAAMG,GAANH,GC9FA,MAAMI,GAAN,MAAMA,0BAAyBD,KAAqBrpB,EAAAspB,GAAA,oBAApD,IAAMC,GAAND,GCHU,IAAAE,GAIDC,GAJCD,EAAAA,aAAAA,EAAAA,GAAAA,EAAAA,UAAAA,UAAA,CAAA,IAIDC,GAAAD,GAAAC,UAAAD,GAAAC,QAAA,CAAA,IACR,IAAM,MACNA,GAAA,IAAM,MAgEP,MAAMC,GAAN,MAAMA,0BAAyBhgB,EAElC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,UAAW,OACrC,CAEA,SAAAwhB,CAAUvnB,EAA4CwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,iBACnF,CAEA,UAAAgkB,CAAWxnB,EAA6CwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,iBACpF,CAEA,MAAAikB,CAAOznB,EAAyCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,IAAA2F,CAAKnJ,EAA8CwD,GAC/C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,sBAC9E,CAEA,SAAAkkB,CAAU1nB,EAA4CwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,iBACnF,GAxB0C5F,EAAA0pB,GAAA,oBAAvC,IAAMK,GAANL,GCnEA,MAAMM,GAAN,MAAMA,sBAAqBD,KAAiB/pB,EAAAgqB,GAAA,gBAA5C,IAAMC,GAAND,GCNP,IAAIE,GAAK,IAAItX,KACTuX,GAAK,IAAIvX,KAEE,SAASwX,GAAYC,EAAQC,EAASC,EAAOC,GAE1D,SAASC,EAASC,GAChB,OAAOL,EAAOK,EAA4B,IAArB/jB,UAAU/E,OAAe,IAAIgR,KAAO,IAAIA,MAAM8X,IAAQA,CAC7E,CA6DA,OA/DS1qB,EAAAyqB,EAAA,YAITA,EAASE,MAAQ,SAASD,GACxB,OAAOL,EAAOK,EAAO,IAAI9X,MAAM8X,IAAQA,CACzC,EAEAD,EAASG,KAAO,SAASF,GACvB,OAAOL,EAAOK,EAAO,IAAI9X,KAAK8X,EAAO,IAAKJ,EAAQI,EAAM,GAAIL,EAAOK,GAAOA,CAC5E,EAEAD,EAAS1nB,MAAQ,SAAS2nB,GACxB,IAAIG,EAAKJ,EAASC,GACdI,EAAKL,EAASG,KAAKF,GACvB,OAAOA,EAAOG,EAAKC,EAAKJ,EAAOG,EAAKC,CACtC,EAEAL,EAASM,OAAS,SAASL,EAAMM,GAC/B,OAAOV,EAAQI,EAAO,IAAI9X,MAAM8X,GAAe,MAARM,EAAe,EAAIloB,KAAK6nB,MAAMK,IAAQN,CAC/E,EAEAD,EAASxI,MAAQ,SAASgJ,EAAOC,EAAMF,GACrC,IAAgBG,EAAZlJ,EAAQ,GAGZ,GAFAgJ,EAAQR,EAASG,KAAKK,GACtBD,EAAe,MAARA,EAAe,EAAIloB,KAAK6nB,MAAMK,KAC/BC,EAAQC,GAAWF,EAAO,GAAI,OAAO/I,EAC3C,GAAGA,EAAMtgB,KAAKwpB,EAAW,IAAIvY,MAAMqY,IAASX,EAAQW,EAAOD,GAAOX,EAAOY,SAClEE,EAAWF,GAASA,EAAQC,GACnC,OAAOjJ,CACT,EAEAwI,EAASlY,OAAS,SAAS6Y,GACzB,OAAOhB,GAAY,SAASM,GAC1B,GAAIA,GAAQA,EAAM,KAAOL,EAAOK,IAAQU,EAAKV,IAAOA,EAAKW,QAAQX,EAAO,EAC1E,EAAG,SAASA,EAAMM,GAChB,GAAIN,GAAQA,EACV,GAAIM,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAOV,EAAQI,GAAM,IAAMU,EAAKV,UAC3B,OAASM,GAAQ,GACtB,KAAOV,EAAQI,EAAM,IAAMU,EAAKV,KAGtC,EACF,EAEIH,IACFE,EAASF,MAAQ,SAASU,EAAOK,GAG/B,OAFApB,GAAGmB,SAASJ,GAAQd,GAAGkB,SAASC,GAChCjB,EAAOH,IAAKG,EAAOF,IACZrnB,KAAK6nB,MAAMJ,EAAML,GAAIC,IAC9B,EAEAM,EAASc,MAAQ,SAASP,GAExB,OADAA,EAAOloB,KAAK6nB,MAAMK,GACVQ,SAASR,IAAWA,EAAO,EAC3BA,EAAO,EACTP,EAASlY,OAAOiY,EACZ,SAASjG,GAAK,OAAOiG,EAAMjG,GAAKyG,IAAS,CAAG,EAC5C,SAASzG,GAAK,OAAOkG,EAASF,MAAM,EAAGhG,GAAKyG,IAAS,CAAG,GAH9CP,EADoB,IAK1C,GAGKA,CACT,CAlEwBzqB,EAAAoqB,GAAA,eCFjB,IAEIqB,GAAc,MACdC,GAAe,OCDtBC,GAAMlB,GAAS,SAASC,GAC1BA,EAAKkB,SAAS,EAAG,EAAG,EAAG,EACzB,EAAG,SAASlB,EAAMM,GAChBN,EAAKmB,QAAQnB,EAAKoB,UAAYd,EAChC,EAAG,SAASC,EAAOK,GACjB,OAAQA,EAAML,EDPY,KCOHK,EAAIS,oBAAsBd,EAAMc,sBAAyCN,EAClG,EAAG,SAASf,GACV,OAAOA,EAAKoB,UAAY,CAC1B,GCRA,SAASE,GAAQtqB,GACf,OAAO+oB,GAAS,SAASC,GACvBA,EAAKmB,QAAQnB,EAAKoB,WAAapB,EAAKuB,SAAW,EAAIvqB,GAAK,GACxDgpB,EAAKkB,SAAS,EAAG,EAAG,EAAG,EACzB,EAAG,SAASlB,EAAMM,GAChBN,EAAKmB,QAAQnB,EAAKoB,UAAmB,EAAPd,EAChC,EAAG,SAASC,EAAOK,GACjB,OAAQA,EAAML,EFTU,KESDK,EAAIS,oBAAsBd,EAAMc,sBAAyCL,EAClG,EACF,CDEkBC,GAAI1J,MCXbjiB,EAAAgsB,GAAA,WAWF,IAAIE,GAASF,GAAQ,GACjBG,GAASH,GAAQ,GACjBI,GAAUJ,GAAQ,GAClBK,GAAYL,GAAQ,GACpBM,GAAWN,GAAQ,GACnBO,GAASP,GAAQ,GACjBQ,GAAWR,GAAQ,GAETE,GAAOjK,MACPkK,GAAOlK,MACNmK,GAAQnK,MACNoK,GAAUpK,MACXqK,GAASrK,MACXsK,GAAOtK,MACLuK,GAASvK,MC1BhC,IAAIwK,GAAOhC,GAAS,SAASC,GAC3BA,EAAKgC,SAAS,EAAG,GACjBhC,EAAKkB,SAAS,EAAG,EAAG,EAAG,EACzB,EAAG,SAASlB,EAAMM,GAChBN,EAAKiC,YAAYjC,EAAKkC,cAAgB5B,EACxC,EAAG,SAASC,EAAOK,GACjB,OAAOA,EAAIsB,cAAgB3B,EAAM2B,aACnC,EAAG,SAASlC,GACV,OAAOA,EAAKkC,aACd,GAGAH,GAAKlB,MAAQ,SAASsB,GACpB,OAAQrB,SAASqB,EAAI/pB,KAAK6nB,MAAMkC,KAASA,EAAI,EAAYpC,GAAS,SAASC,GACzEA,EAAKiC,YAAY7pB,KAAK6nB,MAAMD,EAAKkC,cAAgBC,GAAKA,GACtDnC,EAAKgC,SAAS,EAAG,GACjBhC,EAAKkB,SAAS,EAAG,EAAG,EAAG,EACzB,EAAG,SAASlB,EAAMM,GAChBN,EAAKiC,YAAYjC,EAAKkC,cAAgB5B,EAAO6B,EAC/C,GANkD,IAOpD,EAGmBJ,GAAKxK,MCtBxB,IAAI6K,GAASrC,GAAS,SAASC,GAC7BA,EAAKqC,YAAY,EAAG,EAAG,EAAG,EAC5B,EAAG,SAASrC,EAAMM,GAChBN,EAAKsC,WAAWtC,EAAKuC,aAAejC,EACtC,EAAG,SAASC,EAAOK,GACjB,OAAQA,EAAML,GAASQ,EACzB,EAAG,SAASf,GACV,OAAOA,EAAKuC,aAAe,CAC7B,GCRA,SAASC,GAAWxrB,GAClB,OAAO+oB,GAAS,SAASC,GACvBA,EAAKsC,WAAWtC,EAAKuC,cAAgBvC,EAAKyC,YAAc,EAAIzrB,GAAK,GACjEgpB,EAAKqC,YAAY,EAAG,EAAG,EAAG,EAC5B,EAAG,SAASrC,EAAMM,GAChBN,EAAKsC,WAAWtC,EAAKuC,aAAsB,EAAPjC,EACtC,EAAG,SAASC,EAAOK,GACjB,OAAQA,EAAML,GAASS,EACzB,EACF,CDEqBoB,GAAO7K,MCXnBjiB,EAAAktB,GAAA,cAWF,IAAIE,GAAYF,GAAW,GACvBG,GAAYH,GAAW,GACvBI,GAAaJ,GAAW,GACxBK,GAAeL,GAAW,GAC1BM,GAAcN,GAAW,GACzBO,GAAYP,GAAW,GACvBQ,GAAcR,GAAW,GAEZE,GAAUnL,MACVoL,GAAUpL,MACTqL,GAAWrL,MACTsL,GAAatL,MACduL,GAAYvL,MACdwL,GAAUxL,MACRyL,GAAYzL,MC1BtC,IAAI0L,GAAUlD,GAAS,SAASC,GAC9BA,EAAKkD,YAAY,EAAG,GACpBlD,EAAKqC,YAAY,EAAG,EAAG,EAAG,EAC5B,EAAG,SAASrC,EAAMM,GAChBN,EAAKmD,eAAenD,EAAKoD,iBAAmB9C,EAC9C,EAAG,SAASC,EAAOK,GACjB,OAAOA,EAAIwC,iBAAmB7C,EAAM6C,gBACtC,EAAG,SAASpD,GACV,OAAOA,EAAKoD,gBACd,GCEA,SAASC,GAAUxJ,GACjB,GAAI,GAAKA,EAAEyJ,GAAKzJ,EAAEyJ,EAAI,IAAK,CACzB,IAAItD,EAAO,IAAI9X,MAAK,EAAI2R,EAAEO,EAAGP,EAAEA,EAAGA,EAAE0J,EAAG1J,EAAE2J,EAAG3J,EAAE4J,EAAG5J,EAAE6J,GAEnD,OADA1D,EAAKiC,YAAYpI,EAAEyJ,GACZtD,CACT,CACA,OAAO,IAAI9X,KAAK2R,EAAEyJ,EAAGzJ,EAAEO,EAAGP,EAAEA,EAAGA,EAAE0J,EAAG1J,EAAE2J,EAAG3J,EAAE4J,EAAG5J,EAAE6J,EAClD,CAEA,SAASC,GAAQ9J,GACf,GAAI,GAAKA,EAAEyJ,GAAKzJ,EAAEyJ,EAAI,IAAK,CACzB,IAAItD,EAAO,IAAI9X,KAAKA,KAAK0b,KAAI,EAAI/J,EAAEO,EAAGP,EAAEA,EAAGA,EAAE0J,EAAG1J,EAAE2J,EAAG3J,EAAE4J,EAAG5J,EAAE6J,IAE5D,OADA1D,EAAKmD,eAAetJ,EAAEyJ,GACftD,CACT,CACA,OAAO,IAAI9X,KAAKA,KAAK0b,IAAI/J,EAAEyJ,EAAGzJ,EAAEO,EAAGP,EAAEA,EAAGA,EAAE0J,EAAG1J,EAAE2J,EAAG3J,EAAE4J,EAAG5J,EAAE6J,GAC3D,CAEA,SAASG,GAAQP,EAAGlJ,EAAGP,GACrB,MAAO,CAACyJ,IAAMlJ,IAAMP,IAAM0J,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EACjD,CAEe,SAASI,GAAaC,GACnC,IAAIC,EAAkBD,EAAOE,SACzBC,EAAcH,EAAO/D,KACrBmE,EAAcJ,EAAOK,KACrBC,EAAiBN,EAAOO,QACxBC,EAAkBR,EAAOS,KACzBC,EAAuBV,EAAOW,UAC9BC,EAAgBZ,EAAOa,OACvBC,EAAqBd,EAAOe,YAE5BC,EAAWC,GAASX,GACpBY,EAAeC,GAAab,GAC5Bc,EAAYH,GAAST,GACrBa,EAAgBF,GAAaX,GAC7Bc,EAAiBL,GAASP,GAC1Ba,EAAqBJ,GAAaT,GAClCc,EAAUP,GAASL,GACnBa,EAAcN,GAAaP,GAC3Bc,EAAeT,GAASH,GACxBa,EAAmBR,GAAaL,GAEhCc,EAAU,CACZ1M,EAAK2M,EACLC,EAAKC,EACL5M,EAAK6M,EACLC,EAAKC,EACLC,EAAK,KACLrM,EAAKsM,GACLprB,EAAKorB,GACL1P,EAAK2P,GACLC,EAAKC,GACLC,EAAKC,GACLjD,EAAKkD,GACLC,EAAKC,GACLC,EAAKC,GACLnD,EAAKoD,GACL1M,EAAK2M,GACLvD,EAAKwD,GACL5f,EAAK6f,EACLC,EAAKC,EACLC,EAAKC,GACLC,EAAKC,GACL9D,EAAK+D,GACLC,EAAKC,GACLC,EAAKC,GACLC,EAAKC,GACLC,EAAKC,GACLC,EAAKC,GACL1O,EAAK,KACL2O,EAAK,KACL7E,EAAK8E,GACLC,EAAKC,GACLC,EAAKC,GACL,IAAKC,IAGHC,EAAa,CACfzP,EAAK0P,EACL9C,EAAK+C,EACL1P,EAAK2P,EACL7C,EAAK8C,EACL5C,EAAK,KACLrM,EAAKkP,GACLhuB,EAAKguB,GACLtS,EAAKuS,GACL3C,EAAK4C,GACL1C,EAAK2C,GACL3F,EAAK4F,GACLzC,EAAK0C,GACLxC,EAAKyC,GACL3F,EAAK4F,GACLlP,EAAKmP,GACL/F,EAAKgG,GACLpiB,EAAKqiB,EACLvC,EAAKwC,EACLtC,EAAKC,GACLC,EAAKC,GACL9D,EAAKkG,GACLlC,EAAKmC,GACLjC,EAAKkC,GACLhC,EAAKiC,GACL/B,EAAKgC,GACL9B,EAAK+B,GACLxQ,EAAK,KACL2O,EAAK,KACL7E,EAAK2G,GACL5B,EAAK6B,GACL3B,EAAK4B,GACL,IAAK1B,IAGH2B,EAAS,CACXnR,EAAKoR,EACLxE,EAAKyE,EACLpR,EAAKqR,EACLvE,EAAKwE,EACLtE,EAAKuE,EACL5Q,EAAK6Q,GACL3vB,EAAK2vB,GACLjU,EAAKkU,GACLtE,EAAKuE,GACLrE,EAAKsE,GACLtH,EAAKuH,GACLpE,EAAKoE,GACLlE,EAAKmE,GACLrH,EAAKsH,GACL5Q,EAAK6Q,GACLzH,EAAK0H,GACL9jB,EAAK+jB,EACLjE,EAAKkE,GACLhE,EAAKiE,GACL/D,EAAKgE,GACL7H,EAAK8H,GACL9D,EAAK+D,GACL7D,EAAK8D,GACL5D,EAAK6D,GACL3D,EAAK4D,GACL1D,EAAK2D,GACLpS,EAAKqS,EACL1D,EAAK2D,EACLxI,EAAKsH,GACLvC,EAAKwC,GACLtC,EAAKwD,GACL,IAAKC,IAWP,SAASC,EAAUC,EAAWvG,GAC5B,OAAO,SAAS3F,GACd,IAIIkG,EACAiG,EACAC,EANAC,EAAS,GACTr1B,GAAI,EACJ4vB,EAAI,EACJ1M,EAAIgS,EAAUh1B,OAOlB,IAFM8oB,aAAgB9X,SAAc,IAAIA,MAAM8X,MAErChpB,EAAIkjB,GACqB,KAA5BgS,EAAUI,WAAWt1B,KACvBq1B,EAAOp1B,KAAKi1B,EAAUK,MAAM3F,EAAG5vB,IACgB,OAA1Cm1B,EAAMK,GAAKtG,EAAIgG,EAAUO,SAASz1B,KAAckvB,EAAIgG,EAAUO,SAASz1B,GACvEm1B,EAAY,MAANjG,EAAY,IAAM,KACzBkG,EAASzG,EAAQO,MAAIA,EAAIkG,EAAOpM,EAAMmM,IAC1CE,EAAOp1B,KAAKivB,GACZU,EAAI5vB,EAAI,GAKZ,OADAq1B,EAAOp1B,KAAKi1B,EAAUK,MAAM3F,EAAG5vB,IACxBq1B,EAAOl1B,KAAK,GACrB,CACF,CAEA,SAASu1B,EAASR,EAAW3D,GAC3B,OAAO,SAAS8D,GACd,IAEIM,EAAM1L,EAFNpH,EAAIgK,GAAQ,UAAM,EAAW,GAGjC,GAFQ+I,EAAe/S,EAAGqS,EAAWG,GAAU,GAAI,IAE1CA,EAAOn1B,OAAQ,OAAO,KAG/B,GAAI,MAAO2iB,EAAG,OAAO,IAAI3R,KAAK2R,EAAEuN,GAChC,GAAI,MAAOvN,EAAG,OAAO,IAAI3R,KAAW,IAAN2R,EAAEyN,GAAY,MAAOzN,EAAIA,EAAE6J,EAAI,IAY7D,GATI6E,KAAO,MAAO1O,OAAM0O,EAAI,GAGxB,MAAO1O,IAAGA,EAAE0J,EAAI1J,EAAE0J,EAAI,GAAW,GAAN1J,EAAEzS,QAGrB,IAARyS,EAAEO,IAAiBP,EAAEO,EAAI,MAAOP,EAAIA,EAAEqN,EAAI,GAG1C,MAAOrN,EAAG,CACZ,GAAIA,EAAEgO,EAAI,GAAKhO,EAAEgO,EAAI,GAAI,OAAO,KAC1B,MAAOhO,IAAIA,EAAEkO,EAAI,GACnB,MAAOlO,GAC2BoH,GAApC0L,EAAOhJ,GAAQE,GAAQhK,EAAEyJ,EAAG,EAAG,KAAgBb,YAC/CkK,EAAO1L,EAAM,GAAa,IAARA,EAAY0B,GAAUzC,KAAKyM,GAAQhK,GAAUgK,GAC/DA,EAAOvK,GAAO/B,OAAOsM,EAAkB,GAAX9S,EAAEgO,EAAI,IAClChO,EAAEyJ,EAAIqJ,EAAKvJ,iBACXvJ,EAAEO,EAAIuS,EAAKE,cACXhT,EAAEA,EAAI8S,EAAKpK,cAAgB1I,EAAEkO,EAAI,GAAK,IAEA9G,GAAtC0L,EAAOtJ,GAAUQ,GAAQhK,EAAEyJ,EAAG,EAAG,KAAgB/B,SACjDoL,EAAO1L,EAAM,GAAa,IAARA,EAAY6L,GAAW5M,KAAKyM,GAAQG,GAAWH,GACjEA,EAAOI,GAAQ1M,OAAOsM,EAAkB,GAAX9S,EAAEgO,EAAI,IACnChO,EAAEyJ,EAAIqJ,EAAKzK,cACXrI,EAAEO,EAAIuS,EAAKK,WACXnT,EAAEA,EAAI8S,EAAKvL,WAAavH,EAAEkO,EAAI,GAAK,EAEvC,MAAW,MAAOlO,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAEkO,EAAI,MAAOlO,EAAIA,EAAE4N,EAAI,EAAI,MAAO5N,EAAI,EAAI,GAC3DoH,EAAM,MAAOpH,EAAI8J,GAAQE,GAAQhK,EAAEyJ,EAAG,EAAG,IAAIb,YAAcY,GAAUQ,GAAQhK,EAAEyJ,EAAG,EAAG,IAAI/B,SACzF1H,EAAEO,EAAI,EACNP,EAAEA,EAAI,MAAOA,GAAKA,EAAEkO,EAAI,GAAK,EAAU,EAANlO,EAAEoO,GAAShH,EAAM,GAAK,EAAIpH,EAAEkO,EAAU,EAANlO,EAAE8N,GAAS1G,EAAM,GAAK,GAKzF,MAAI,MAAOpH,GACTA,EAAE0J,GAAK1J,EAAE0O,EAAI,IAAM,EACnB1O,EAAE2J,GAAK3J,EAAE0O,EAAI,IACN5E,GAAQ9J,IAIVwJ,GAAUxJ,EACnB,CACF,CAEA,SAAS+S,EAAe/S,EAAGqS,EAAWG,EAAQzF,GAO5C,IANA,IAGIV,EACA3uB,EAJAP,EAAI,EACJkjB,EAAIgS,EAAUh1B,OACdkjB,EAAIiS,EAAOn1B,OAIRF,EAAIkjB,GAAG,CACZ,GAAI0M,GAAKxM,EAAG,OAAO,EAEnB,GAAU,MADV8L,EAAIgG,EAAUI,WAAWt1B,OAIvB,GAFAkvB,EAAIgG,EAAUO,OAAOz1B,OACrBO,EAAQ6yB,EAAOlE,KAAKsG,GAAON,EAAUO,OAAOz1B,KAAOkvB,MACnCU,EAAIrvB,EAAMsiB,EAAGwS,EAAQzF,IAAM,EAAI,OAAO,OACxD,GAAWV,GAAKmG,EAAOC,WAAW1F,KAChC,OAAO,CAEX,CAEA,OAAOA,CACT,CAEA,SAASuE,EAAYtR,EAAGwS,EAAQr1B,GAC9B,IAAIkjB,EAAI6K,EAASkI,KAAKZ,EAAOE,MAAMv1B,IACnC,OAAOkjB,GAAKL,EAAEzS,EAAI6d,EAAa/K,EAAE,GAAGgT,eAAgBl2B,EAAIkjB,EAAE,GAAGhjB,SAAU,CACzE,CAEA,SAASmzB,EAAkBxQ,EAAGwS,EAAQr1B,GACpC,IAAIkjB,EAAImL,EAAe4H,KAAKZ,EAAOE,MAAMv1B,IACzC,OAAOkjB,GAAKL,EAAEkO,EAAIzC,EAAmBpL,EAAE,GAAGgT,eAAgBl2B,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC/E,CAEA,SAASozB,EAAazQ,EAAGwS,EAAQr1B,GAC/B,IAAIkjB,EAAIiL,EAAU8H,KAAKZ,EAAOE,MAAMv1B,IACpC,OAAOkjB,GAAKL,EAAEkO,EAAI3C,EAAclL,EAAE,GAAGgT,eAAgBl2B,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC1E,CAEA,SAASqzB,EAAgB1Q,EAAGwS,EAAQr1B,GAClC,IAAIkjB,EAAIuL,EAAawH,KAAKZ,EAAOE,MAAMv1B,IACvC,OAAOkjB,GAAKL,EAAEO,EAAIsL,EAAiBxL,EAAE,GAAGgT,eAAgBl2B,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC7E,CAEA,SAASszB,EAAW3Q,EAAGwS,EAAQr1B,GAC7B,IAAIkjB,EAAIqL,EAAQ0H,KAAKZ,EAAOE,MAAMv1B,IAClC,OAAOkjB,GAAKL,EAAEO,EAAIoL,EAAYtL,EAAE,GAAGgT,eAAgBl2B,EAAIkjB,EAAE,GAAGhjB,SAAU,CACxE,CAEA,SAASuzB,EAAoB5Q,EAAGwS,EAAQr1B,GACtC,OAAO41B,EAAe/S,EAAGmK,EAAiBqI,EAAQr1B,EACpD,CAEA,SAAS60B,EAAgBhS,EAAGwS,EAAQr1B,GAClC,OAAO41B,EAAe/S,EAAGqK,EAAamI,EAAQr1B,EAChD,CAEA,SAAS80B,EAAgBjS,EAAGwS,EAAQr1B,GAClC,OAAO41B,EAAe/S,EAAGsK,EAAakI,EAAQr1B,EAChD,CAEA,SAAS4uB,EAAmB/L,GAC1B,OAAO4K,EAAqB5K,EAAE0H,SAChC,CAEA,SAASuE,EAAcjM,GACrB,OAAO0K,EAAgB1K,EAAE0H,SAC3B,CAEA,SAASwE,EAAiBlM,GACxB,OAAOgL,EAAmBhL,EAAEmT,WAC9B,CAEA,SAAS/G,EAAYpM,GACnB,OAAO8K,EAAc9K,EAAEmT,WACzB,CAEA,SAAS/F,EAAapN,GACpB,OAAOwK,IAAiBxK,EAAEsT,YAAc,IAC1C,CAEA,SAAShG,EAActN,GACrB,OAAO,KAAOA,EAAEmT,WAAa,EAC/B,CAEA,SAASrE,EAAsB9O,GAC7B,OAAO4K,EAAqB5K,EAAE4I,YAChC,CAEA,SAASmG,EAAiB/O,GACxB,OAAO0K,EAAgB1K,EAAE4I,YAC3B,CAEA,SAASoG,EAAoBhP,GAC3B,OAAOgL,EAAmBhL,EAAEgT,cAC9B,CAEA,SAAS/D,EAAejP,GACtB,OAAO8K,EAAc9K,EAAEgT,cACzB,CAEA,SAASpD,EAAgB5P,GACvB,OAAOwK,IAAiBxK,EAAEuT,eAAiB,IAC7C,CAEA,SAAS1D,EAAiB7P,GACxB,OAAO,KAAOA,EAAEgT,cAAgB,EAClC,CAEA,OAzMAlH,EAAQnM,EAAIyS,EAAU/H,EAAayB,GACnCA,EAAQwC,EAAI8D,EAAU9H,EAAawB,GACnCA,EAAQO,EAAI+F,EAAUjI,EAAiB2B,GACvC+C,EAAWlP,EAAIyS,EAAU/H,EAAawE,GACtCA,EAAWP,EAAI8D,EAAU9H,EAAauE,GACtCA,EAAWxC,EAAI+F,EAAUjI,EAAiB0E,GAEjCpzB,EAAA22B,EAAA,aA4BA32B,EAAAo3B,EAAA,YA2DAp3B,EAAAs3B,EAAA,kBAsBAt3B,EAAA61B,EAAA,eAKA71B,EAAA+0B,EAAA,qBAKA/0B,EAAAg1B,EAAA,gBAKAh1B,EAAAi1B,EAAA,mBAKAj1B,EAAAk1B,EAAA,cAKAl1B,EAAAm1B,EAAA,uBAIAn1B,EAAAu2B,EAAA,mBAIAv2B,EAAAw2B,EAAA,mBAIAx2B,EAAAswB,EAAA,sBAIAtwB,EAAAwwB,EAAA,iBAIAxwB,EAAAywB,EAAA,oBAIAzwB,EAAA2wB,EAAA,eAIA3wB,EAAA2xB,EAAA,gBAIA3xB,EAAA6xB,EAAA,iBAIA7xB,EAAAqzB,EAAA,yBAIArzB,EAAAszB,EAAA,oBAIAtzB,EAAAuzB,EAAA,uBAIAvzB,EAAAwzB,EAAA,kBAIAxzB,EAAAm0B,EAAA,mBAIAn0B,EAAAo0B,EAAA,oBAIF,CACL0C,kBAAiBF,GACf,IAAIzV,EAAIwV,EAAUC,GAAa,GAAIvG,GAEnC,OADAlP,EAAE/Z,SAAW,WAAa,OAAOwvB,CAAW,EACrCzV,CACT,EAJQ,UAKRlf,iBAAgB20B,GACd,IAAI9kB,EAAIslB,EAASR,GAAa,IAAI,GAElC,OADA9kB,EAAE1K,SAAW,WAAa,OAAOwvB,CAAW,EACrC9kB,CACT,EAJO,SAKPimB,qBAAoBnB,GAClB,IAAIzV,EAAIwV,EAAUC,GAAa,GAAIxD,GAEnC,OADAjS,EAAE/Z,SAAW,WAAa,OAAOwvB,CAAW,EACrCzV,CACT,EAJW,aAKX6W,oBAAmBpB,GACjB,IAAI9kB,EAAIslB,EAASR,GAAa,IAAI,GAElC,OADA9kB,EAAE1K,SAAW,WAAa,OAAOwvB,CAAW,EACrC9kB,CACT,EAJU,YAMd,CDnXA6b,GAAQpC,MAAQ,SAASsB,GACvB,OAAQrB,SAASqB,EAAI/pB,KAAK6nB,MAAMkC,KAASA,EAAI,EAAYpC,GAAS,SAASC,GACzEA,EAAKmD,eAAe/qB,KAAK6nB,MAAMD,EAAKoD,iBAAmBjB,GAAKA,GAC5DnC,EAAKkD,YAAY,EAAG,GACpBlD,EAAKqC,YAAY,EAAG,EAAG,EAAG,EAC5B,EAAG,SAASrC,EAAMM,GAChBN,EAAKmD,eAAenD,EAAKoD,iBAAmB9C,EAAO6B,EACrD,GANkD,IAOpD,EAGsBc,GAAQ1L,MCZrBjiB,EAAA+tB,GAAA,aASA/tB,EAAAquB,GAAA,WASAruB,EAAAuuB,GAAA,WAIeC,EAAAA,GAAAA,kBAgWxB,ICjYIC,GAEOwJ,GACAF,GACAC,GCHME,GAODC,GAQAC,GFiXZlB,GAAO,CAAC,IAAK,GAAIxwB,EAAK,IAAK,EAAK,KAChC2xB,GAAW,UACXC,GAAY,KACZC,GAAY,sBAEhB,SAAS1B,GAAItX,EAAOiZ,EAAMC,GACxB,IAAIC,EAAOnZ,EAAQ,EAAI,IAAM,GACzBwX,GAAU2B,GAAQnZ,EAAQA,GAAS,GACnC3d,EAASm1B,EAAOn1B,OACpB,OAAO82B,GAAQ92B,EAAS62B,EAAQ,IAAIn3B,MAAMm3B,EAAQ72B,EAAS,GAAGC,KAAK22B,GAAQzB,EAASA,EACtF,CAEA,SAAS4B,GAAQ3G,GACf,OAAOA,EAAE4G,QAAQL,GAAW,OAC9B,CAEA,SAAS7I,GAASmJ,GAChB,OAAO,IAAIC,OAAO,OAASD,EAAMnmB,IAAIimB,IAAS92B,KAAK,KAAO,IAAK,IACjE,CAEA,SAAS+tB,GAAaiJ,GAEpB,IADA,IAAInmB,EAAM,CAAA,EAAIhR,GAAI,EAAIkjB,EAAIiU,EAAMj3B,SACvBF,EAAIkjB,GAAGlS,EAAImmB,EAAMn3B,GAAGk2B,eAAiBl2B,EAC9C,OAAOgR,CACT,CAEA,SAAS2jB,GAAyB9R,EAAGwS,EAAQr1B,GAC3C,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEkO,GAAK7N,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASs0B,GAAyB3R,EAAGwS,EAAQr1B,GAC3C,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE4N,GAAKvN,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASu0B,GAAsB5R,EAAGwS,EAAQr1B,GACxC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE8N,GAAKzN,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASw0B,GAAmB7R,EAAGwS,EAAQr1B,GACrC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEgO,GAAK3N,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAAS00B,GAAsB/R,EAAGwS,EAAQr1B,GACxC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEoO,GAAK/N,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAAS2zB,GAAchR,EAAGwS,EAAQr1B,GAChC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEyJ,GAAKpJ,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAAS0zB,GAAU/Q,EAAGwS,EAAQr1B,GAC5B,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEyJ,GAAKpJ,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAOljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC3E,CAEA,SAAS60B,GAAUlS,EAAGwS,EAAQr1B,GAC5B,IAAIkjB,EAAI,+BAA+B+S,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAChE,OAAOkjB,GAAKL,EAAE0O,EAAIrO,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC5E,CAEA,SAASk0B,GAAavR,EAAGwS,EAAQr1B,GAC/B,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEqN,EAAW,EAAPhN,EAAE,GAAS,EAAGljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CACrD,CAEA,SAAS+zB,GAAiBpR,EAAGwS,EAAQr1B,GACnC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEO,EAAIF,EAAE,GAAK,EAAGljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CACjD,CAEA,SAASwzB,GAAgB7Q,EAAGwS,EAAQr1B,GAClC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEA,GAAKK,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAAS6zB,GAAelR,EAAGwS,EAAQr1B,GACjC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAEO,EAAI,EAAGP,EAAEA,GAAKK,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CACvD,CAEA,SAAS4zB,GAAYjR,EAAGwS,EAAQr1B,GAC9B,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE0J,GAAKrJ,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASg0B,GAAarR,EAAGwS,EAAQr1B,GAC/B,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE2J,GAAKtJ,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASq0B,GAAa1R,EAAGwS,EAAQr1B,GAC/B,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE4J,GAAKvJ,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAAS8zB,GAAkBnR,EAAGwS,EAAQr1B,GACpC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE6J,GAAKxJ,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASyzB,GAAkB9Q,EAAGwS,EAAQr1B,GACpC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC1C,OAAOkjB,GAAKL,EAAE6J,EAAItrB,KAAK6nB,MAAM/F,EAAE,GAAK,KAAOljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAChE,CAEA,SAAS80B,GAAoBnS,EAAGwS,EAAQr1B,GACtC,IAAIkjB,EAAI0T,GAAUX,KAAKZ,EAAOE,MAAMv1B,EAAGA,EAAI,IAC3C,OAAOkjB,EAAIljB,EAAIkjB,EAAE,GAAGhjB,QAAS,CAC/B,CAEA,SAASm0B,GAAmBxR,EAAGwS,EAAQr1B,GACrC,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,IACnC,OAAOkjB,GAAKL,EAAEuN,GAAKlN,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASo0B,GAA0BzR,EAAGwS,EAAQr1B,GAC5C,IAAIkjB,EAAIyT,GAASV,KAAKZ,EAAOE,MAAMv1B,IACnC,OAAOkjB,GAAKL,EAAEyN,GAAKpN,EAAE,GAAIljB,EAAIkjB,EAAE,GAAGhjB,SAAU,CAC9C,CAEA,SAASivB,GAAiBtM,EAAGzS,GAC3B,OAAO+kB,GAAItS,EAAEuH,UAAWha,EAAG,EAC7B,CAEA,SAASqf,GAAa5M,EAAGzS,GACvB,OAAO+kB,GAAItS,EAAEsT,WAAY/lB,EAAG,EAC9B,CAEA,SAASuf,GAAa9M,EAAGzS,GACvB,OAAO+kB,GAAItS,EAAEsT,WAAa,IAAM,GAAI/lB,EAAG,EACzC,CAEA,SAASyf,GAAgBhN,EAAGzS,GAC1B,OAAO+kB,GAAI,EAAIY,GAAQlN,MAAMwO,GAASxU,GAAIA,GAAIzS,EAAG,EACnD,CAEA,SAAS0f,GAAmBjN,EAAGzS,GAC7B,OAAO+kB,GAAItS,EAAEyU,kBAAmBlnB,EAAG,EACrC,CAEA,SAASgf,GAAmBvM,EAAGzS,GAC7B,OAAO0f,GAAmBjN,EAAGzS,GAAK,KACpC,CAEA,SAAS2f,GAAkBlN,EAAGzS,GAC5B,OAAO+kB,GAAItS,EAAEmT,WAAa,EAAG5lB,EAAG,EAClC,CAEA,SAAS4f,GAAcnN,EAAGzS,GACxB,OAAO+kB,GAAItS,EAAE0U,aAAcnnB,EAAG,EAChC,CAEA,SAASogB,GAAc3N,EAAGzS,GACxB,OAAO+kB,GAAItS,EAAE2U,aAAcpnB,EAAG,EAChC,CAEA,SAASsgB,GAA0B7N,GACjC,IAAIoH,EAAMpH,EAAE0H,SACZ,OAAe,IAARN,EAAY,EAAIA,CACzB,CAEA,SAAS2G,GAAuB/N,EAAGzS,GACjC,OAAO+kB,GAAIsC,GAAW5O,MAAMwO,GAASxU,GAAK,EAAGA,GAAIzS,EAAG,EACtD,CAEA,SAASsnB,GAAK7U,GACZ,IAAIoH,EAAMpH,EAAE0H,SACZ,OAAQN,GAAO,GAAa,IAARA,EAAa0N,GAAa9U,GAAK8U,GAAazO,KAAKrG,EACvE,CAEA,SAASiO,GAAoBjO,EAAGzS,GAE9B,OADAyS,EAAI6U,GAAK7U,GACFsS,GAAIwC,GAAa9O,MAAMwO,GAASxU,GAAIA,IAA+B,IAAzBwU,GAASxU,GAAG0H,UAAiBna,EAAG,EACnF,CAEA,SAAS4gB,GAA0BnO,GACjC,OAAOA,EAAE0H,QACX,CAEA,SAAS2G,GAAuBrO,EAAGzS,GACjC,OAAO+kB,GAAIW,GAAWjN,MAAMwO,GAASxU,GAAK,EAAGA,GAAIzS,EAAG,EACtD,CAEA,SAASghB,GAAWvO,EAAGzS,GACrB,OAAO+kB,GAAItS,EAAEqI,cAAgB,IAAK9a,EAAG,EACvC,CAEA,SAASkf,GAAczM,EAAGzS,GAExB,OAAO+kB,IADPtS,EAAI6U,GAAK7U,IACIqI,cAAgB,IAAK9a,EAAG,EACvC,CAEA,SAASkhB,GAAezO,EAAGzS,GACzB,OAAO+kB,GAAItS,EAAEqI,cAAgB,IAAO9a,EAAG,EACzC,CAEA,SAASof,GAAkB3M,EAAGzS,GAC5B,IAAI6Z,EAAMpH,EAAE0H,SAEZ,OAAO4K,IADPtS,EAAKoH,GAAO,GAAa,IAARA,EAAa0N,GAAa9U,GAAK8U,GAAazO,KAAKrG,IACrDqI,cAAgB,IAAO9a,EAAG,EACzC,CAEA,SAASohB,GAAW3O,GAClB,IAAI+U,EAAI/U,EAAEwH,oBACV,OAAQuN,EAAI,EAAI,KAAOA,IAAK,EAAI,MAC1BzC,GAAIyC,EAAI,GAAK,EAAG,IAAK,GACrBzC,GAAIyC,EAAI,GAAI,IAAK,EACzB,CAEA,SAAS7F,GAAoBlP,EAAGzS,GAC9B,OAAO+kB,GAAItS,EAAE0I,aAAcnb,EAAG,EAChC,CAEA,SAAS+hB,GAAgBtP,EAAGzS,GAC1B,OAAO+kB,GAAItS,EAAEuT,cAAehmB,EAAG,EACjC,CAEA,SAASgiB,GAAgBvP,EAAGzS,GAC1B,OAAO+kB,GAAItS,EAAEuT,cAAgB,IAAM,GAAIhmB,EAAG,EAC5C,CAEA,SAASiiB,GAAmBxP,EAAGzS,GAC7B,OAAO+kB,GAAI,EAAI/J,GAAOvC,MAAMoD,GAAQpJ,GAAIA,GAAIzS,EAAG,EACjD,CAEA,SAASkiB,GAAsBzP,EAAGzS,GAChC,OAAO+kB,GAAItS,EAAEgV,qBAAsBznB,EAAG,EACxC,CAEA,SAAS4hB,GAAsBnP,EAAGzS,GAChC,OAAOkiB,GAAsBzP,EAAGzS,GAAK,KACvC,CAEA,SAASmiB,GAAqB1P,EAAGzS,GAC/B,OAAO+kB,GAAItS,EAAEgT,cAAgB,EAAGzlB,EAAG,EACrC,CAEA,SAASoiB,GAAiB3P,EAAGzS,GAC3B,OAAO+kB,GAAItS,EAAEiV,gBAAiB1nB,EAAG,EACnC,CAEA,SAASuiB,GAAiB9P,EAAGzS,GAC3B,OAAO+kB,GAAItS,EAAEkV,gBAAiB3nB,EAAG,EACnC,CAEA,SAASwiB,GAA6B/P,GACpC,IAAImV,EAAMnV,EAAE4I,YACZ,OAAe,IAARuM,EAAY,EAAIA,CACzB,CAEA,SAASnF,GAA0BhQ,EAAGzS,GACpC,OAAO+kB,GAAIzJ,GAAU7C,MAAMoD,GAAQpJ,GAAK,EAAGA,GAAIzS,EAAG,EACpD,CAEA,SAAS6nB,GAAQpV,GACf,IAAIoH,EAAMpH,EAAE4I,YACZ,OAAQxB,GAAO,GAAa,IAARA,EAAa6B,GAAYjJ,GAAKiJ,GAAY5C,KAAKrG,EACrE,CAEA,SAASiQ,GAAuBjQ,EAAGzS,GAEjC,OADAyS,EAAIoV,GAAQpV,GACLsS,GAAIrJ,GAAYjD,MAAMoD,GAAQpJ,GAAIA,IAAiC,IAA3BoJ,GAAQpJ,GAAG4I,aAAoBrb,EAAG,EACnF,CAEA,SAAS2iB,GAA6BlQ,GACpC,OAAOA,EAAE4I,WACX,CAEA,SAASuH,GAA0BnQ,EAAGzS,GACpC,OAAO+kB,GAAIxJ,GAAU9C,MAAMoD,GAAQpJ,GAAK,EAAGA,GAAIzS,EAAG,EACpD,CAEA,SAAS6iB,GAAcpQ,EAAGzS,GACxB,OAAO+kB,GAAItS,EAAEuJ,iBAAmB,IAAKhc,EAAG,EAC1C,CAEA,SAAS6hB,GAAiBpP,EAAGzS,GAE3B,OAAO+kB,IADPtS,EAAIoV,GAAQpV,IACCuJ,iBAAmB,IAAKhc,EAAG,EAC1C,CAEA,SAAS8iB,GAAkBrQ,EAAGzS,GAC5B,OAAO+kB,GAAItS,EAAEuJ,iBAAmB,IAAOhc,EAAG,EAC5C,CAEA,SAAS8hB,GAAqBrP,EAAGzS,GAC/B,IAAI6Z,EAAMpH,EAAE4I,YAEZ,OAAO0J,IADPtS,EAAKoH,GAAO,GAAa,IAARA,EAAa6B,GAAYjJ,GAAKiJ,GAAY5C,KAAKrG,IACnDuJ,iBAAmB,IAAOhc,EAAG,EAC5C,CAEA,SAAS+iB,KACP,MAAO,OACT,CAEA,SAAS1B,KACP,MAAO,GACT,CAEA,SAASpB,GAAoBxN,GAC3B,OAAQA,CACV,CAEA,SAAS0N,GAA2B1N,GAClC,OAAOzhB,KAAK6nB,OAAOpG,EAAI,IACzB,CCvqBe,SAASqV,GAAcC,GAMpC,OALApL,GAASD,GAAaqL,IACF/C,OACpBmB,GAAYxJ,GAAOxsB,MACnB81B,GAAYtJ,GAAOsJ,UACnBC,GAAWvJ,GAAOuJ,SACXvJ,EACT,CD8WSzuB,EAAA62B,GAAA,OAOA72B,EAAA24B,GAAA,WAIA34B,EAAA0vB,GAAA,YAIA1vB,EAAA4vB,GAAA,gBAMA5vB,EAAAq2B,GAAA,4BAKAr2B,EAAAk2B,GAAA,4BAKAl2B,EAAAm2B,GAAA,yBAKAn2B,EAAAo2B,GAAA,sBAKAp2B,EAAAs2B,GAAA,yBAKAt2B,EAAAu1B,GAAA,iBAKAv1B,EAAAs1B,GAAA,aAKAt1B,EAAAy2B,GAAA,aAKAz2B,EAAA81B,GAAA,gBAKA91B,EAAA21B,GAAA,oBAKA31B,EAAAo1B,GAAA,mBAKAp1B,EAAAy1B,GAAA,kBAKAz1B,EAAAw1B,GAAA,eAKAx1B,EAAA41B,GAAA,gBAKA51B,EAAAi2B,GAAA,gBAKAj2B,EAAA01B,GAAA,qBAKA11B,EAAAq1B,GAAA,qBAKAr1B,EAAA02B,GAAA,uBAKA12B,EAAA+1B,GAAA,sBAKA/1B,EAAAg2B,GAAA,6BAKAh2B,EAAA6wB,GAAA,oBAIA7wB,EAAAmxB,GAAA,gBAIAnxB,EAAAqxB,GAAA,gBAIArxB,EAAAuxB,GAAA,mBAIAvxB,EAAAwxB,GAAA,sBAIAxxB,EAAA8wB,GAAA,sBAIA9wB,EAAAyxB,GAAA,qBAIAzxB,EAAA0xB,GAAA,iBAIA1xB,EAAAkyB,GAAA,iBAIAlyB,EAAAoyB,GAAA,6BAKApyB,EAAAsyB,GAAA,0BAIAtyB,EAAAo5B,GAAA,QAKAp5B,EAAAwyB,GAAA,uBAKAxyB,EAAA0yB,GAAA,6BAIA1yB,EAAA4yB,GAAA,0BAIA5yB,EAAA8yB,GAAA,cAIA9yB,EAAAgxB,GAAA,iBAKAhxB,EAAAgzB,GAAA,kBAIAhzB,EAAAkxB,GAAA,qBAMAlxB,EAAAkzB,GAAA,cAOAlzB,EAAAyzB,GAAA,uBAIAzzB,EAAA6zB,GAAA,mBAIA7zB,EAAA8zB,GAAA,mBAIA9zB,EAAA+zB,GAAA,sBAIA/zB,EAAAg0B,GAAA,yBAIAh0B,EAAA0zB,GAAA,yBAIA1zB,EAAAi0B,GAAA,wBAIAj0B,EAAAk0B,GAAA,oBAIAl0B,EAAAq0B,GAAA,oBAIAr0B,EAAAs0B,GAAA,gCAKAt0B,EAAAu0B,GAAA,6BAIAv0B,EAAA25B,GAAA,WAKA35B,EAAAw0B,GAAA,0BAKAx0B,EAAAy0B,GAAA,gCAIAz0B,EAAA00B,GAAA,6BAIA10B,EAAA20B,GAAA,iBAIA30B,EAAA2zB,GAAA,oBAKA3zB,EAAA40B,GAAA,qBAIA50B,EAAA4zB,GAAA,wBAMA5zB,EAAA60B,GAAA,iBAIA70B,EAAAmzB,GAAA,wBAIAnzB,EAAA+xB,GAAA,uBAIA/xB,EAAAiyB,GAAA,8BChrBT2H,GAAc,CACZjL,SAAU,SACVjE,KAAM,aACNoE,KAAM,eACNE,QAAS,CAAC,KAAM,MAChBE,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEE,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDE,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvHE,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SAGrEoK,EAAAA,GAAAA,mBChBP1B,EAAAA,WAAAA,EAAAA,GAAAA,EAAAA,QAAAA,QAAA,CAAA,IAODC,GAAAD,GAAAC,YAAAD,GAAAC,UAAA,CAAA,IACR,IAAM,MACNA,GAAA,KAAO,OACPA,GAAA,MAAQ,QACRA,GAAA,KAAO,OACPA,GAAA,IAAM,OAGEC,GAAAF,GAAAE,sBAAAF,GAAAE,oBAAA,CAAA,IACR,OAAS,SACTA,GAAA,OAAS,SACTA,GAAA,MAAQ,QACRA,GAAA,OAAS,SACTA,GAAA,YAAc,cACdA,GAAA,QAAU,UACVA,GAAA,UAAY,YACZA,GAAA,aAAe,eAmhBhB,MAAM0B,GAAN,MAAMA,wBAAuBpwB,EAEhC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,QAAS,OACnC,CAEA,QAAA4xB,CAAS33B,GACL,OAAOoE,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,SAAkB,mBAChF,CAEA,eAAA43B,CAAgB53B,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,0BACvF,CAEA,UAAA63B,CAAW73B,GACP,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,SAAkB,mBAClF,CAEA,YAAA83B,CAAa93B,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,SAAkB,uBACpF,CAEA,gBAAA+3B,CAAiB/3B,GACb,OAAOoE,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,SAAkB,2BACxF,CAEA,mBAAAg4B,CAAoBh4B,GAChB,OAAOoE,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,SAAkB,8BAC3F,CAEA,wBAAAi4B,CAAyBj4B,GACrB,OAAOoE,KAAK6B,YAAY3H,KAAK,2BAA4B0B,EAAS,QAAQ,SAAkB,mCAChG,CAEA,KAAAk4B,CAAMl4B,GACF,OAAOoE,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,SAAkB,mBAC7E,CAEA,SAAAm4B,CAAUn4B,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,oBACjF,CAEA,WAAAo4B,CAAYp4B,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,iBACnF,CAEA,WAAAq4B,CAAYr4B,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,iBACnF,CAEA,YAAAs4B,CAAat4B,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,SAAkB,iBACpF,CAEA,SAAAu4B,CAAUv4B,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,iBACjF,CAEA,qBAAAw4B,CAAsBx4B,GAClB,OAAOoE,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,SAAkB,gCAC7F,CAEA,UAAAy4B,CAAWz4B,GACP,OAAOoE,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,SAAkB,mBAClF,CAEA,IAAAmJ,CAAKnJ,GACD,OAAOoE,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,SAAkB,oBAC5E,CAEA,mBAAA04B,CAAoB14B,GAChB,OAAOoE,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,SAAkB,8BAC3F,CAEA,SAAA24B,CAAU34B,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,iBACjF,CAEA,WAAA44B,CAAY54B,GACR,OAAOoE,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,SAAkB,mBACnF,CAEA,eAAA64B,CAAgB74B,GACZ,OAAOoE,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,SAAkB,0BACvF,CAEA,YAAA84B,CAAa94B,GACT,OAAOoE,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,SAAkB,uBACpF,CAEA,SAAA+4B,CAAU/4B,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,oBACjF,CAEA,cAAAg5B,CAAeh5B,GACX,OAAOoE,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,SAAkB,sBACtF,CAEA,SAAAi5B,CAAUj5B,GACN,OAAOoE,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,SAAkB,mBACjF,GApGwCpC,EAAA85B,GAAA,kBAArC,IAAMwB,GAANxB,GCriBP,MAAMyB,GAAatD,GAAU,YAE7B,SAASuD,GAAUjc,GACf,MAAwB,iBAAVA,GAAwC,iBAAVA,GAAuC,KAAjBA,EAAMkc,SAAkBzW,OAAOzF,EACrG,CAFSvf,EAAAw7B,GAAA,aAYF,MAAME,GAAN,MAAMA,oBAAmBJ,GAE5B,iBAAAK,GACI,OAAOn1B,KAAK6B,YAAY5H,MAC5B,CAEA,QAAAs5B,CAAS33B,GACL,OAAOuF,MAAMoyB,SAAS33B,GAASmD,KAAKrC,IACzB,CACH04B,QAAS,CACLC,eAAgB,OAEjB34B,IAGf,CAEU,iBAAA44B,CAAkB5pB,EAAcqN,GAEtC,OAAIrN,EAAK6pB,WAAW,SACRxc,EAAQ,IACTrN,EAAK6pB,WAAW,QAChBR,GAAWhc,GACXrN,EAAK6pB,WAAW,QACfxc,EACDrN,EAAK6pB,WAAW,SACfxc,EAAQ,IACTrN,EAAK6pB,WAAW,QAChB,IAAInpB,MAAM2M,EAAQ,KAAMrM,cACxBsoB,GAAUjc,IACTA,EAELA,CACX,CAEA,0BAAAyc,CAA2B55B,GACvB,OAAOuF,MAAMwyB,iBAAiB/3B,GAASmD,KAAKrC,IACxC,MAAMgD,EAAmC,GACzC,IAAA,MAAW+1B,KAAU/4B,GAAUg5B,eAAeC,cAAgB,GAAI,CAC9D,MAAM16B,EAA8B,CAChC26B,SAAUH,EAAOG,SACjBC,MAAO71B,KAAKs1B,kBAAkB,OAAQG,EAAOK,eAAeD,OAC5DE,IAAK/1B,KAAKs1B,kBAAkB,OAAQG,EAAOK,eAAeC,KAC1DC,WAAY,CAAA,EACZC,MAAO,CAAA,GAEX,IAAA,MAAWC,KAAaT,EAAOU,YAAYC,WAAa,GACpDn7B,EAAI+6B,WAAWE,EAAUzqB,MAAQyqB,EAAUG,MAE/C,IAAA,MAAWC,KAAQb,EAAOc,OAAOC,MAAQ,GACrCv7B,EAAIg7B,MAAMK,EAAK7qB,MAAQzL,KAAKs1B,kBAAkBgB,EAAK7qB,KAAM6qB,EAAKD,OAElE32B,EAAOvE,KAAKF,EAChB,CACA,OAAOyE,GAEf,GAxD2ClG,EAAA07B,GAAA,cAAxC,IAAMuB,GAANvB,GCsKA,MAAMwB,GAAN,MAAMA,0BAAyBxzB,EAElC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,UAAW,OACrC,CAEA,WAAAg1B,CAAY/6B,EAAqCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,MAAA4P,CAAOpT,EAAgCwD,GACnC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,eAAAw3B,CAAgBh7B,EAAyCwD,GACrD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,KAAAy3B,CAAMj7B,EAA+BwD,GACjC,OAAOY,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,EAAOwD,EAAa,gBAC/E,CAEA,QAAA03B,CAASl7B,EAAkCwD,GACvC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,gBAAA23B,CAAiBn7B,EAAoCwD,GACjD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,qBAC1F,CAEA,QAAA43B,CAASp7B,EAAkCwD,GACvC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,cAAA63B,CAAer7B,EAAwCwD,GACnD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,UAAA83B,CAAWt7B,EAAoCwD,GAC3C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,IAAA2F,CAAKnJ,EAAqCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,sBAC9E,CAEA,GAAAyY,CAAIjc,EAA6BwD,GAC7B,OAAOY,KAAK6B,YAAY3H,KAAK,MAAO0B,EAAS,QAAQ,EAAOwD,EAAa,cAC7E,GAhD0C5F,EAAAk9B,GAAA,oBAAvC,IAAMS,GAANT,GCxLA,MAAMU,GAAN,MAAMA,sBAAqBC,GAE9B,MAAAroB,CAAOpT,GACH,OAAOuF,MAAM6N,OAAOpT,GAASoD,MAAMC,IAC/B,GAAIA,EAAE8B,iBAAmB9B,EAAEgC,UAAUmJ,KAAKnL,IAAgB,IAAXA,EAAEoC,MAE7C,MAAO,CACHyB,gBAAY,EACZw0B,SAAS,GAGjB,MAAMr4B,GAEd,CAEA,KAAA43B,CAAMj7B,GACF,OAAOuF,MAAM01B,MAAMj7B,GAASoD,MAAMC,IAC9B,GAAIA,EAAE8B,iBAAmB9B,EAAEgC,UAAUmJ,KAAKnL,IAAgB,IAAXA,EAAEoC,MAE7C,MAAO,CACHyB,gBAAY,EACZuzB,WAAO,GAGf,MAAMp3B,GAEd,GA1B+CzF,EAAA49B,GAAA,gBAA5C,IAAMG,GAANH,GCDU,IAAAI,GAODC,GAKAC,GAZCF,EAAAA,gBAAAA,EAAAA,GAAAA,EAAAA,aAAAA,aAAA,CAAA,IAODC,GAAAD,GAAAC,yBAAAD,GAAAC,uBAAA,CAAA,IACR,IAAM,MACNA,GAAA,KAAO,QAGCC,GAAAF,GAAAE,mBAAAF,GAAAE,iBAAA,CAAA,IACR,IAAM,MACNA,GAAA,YAAc,cACdA,GAAA,cAAgB,gBAGb,CAAK/Y,IACRA,EAAA,SAAW,WACXA,EAAA,aAAe,eACfA,EAAA,aAAe,eACfA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,kBAAoB,oBACpBA,EAAA,SAAW,WACXA,EAAA,aAAe,eACfA,EAAA,eAAiB,iBACjBA,EAAA,iBAAmB,oBAVhB,CAAK6Y,GAAA7Y,gBAAA6Y,GAAA7Y,cAAA,CAAA,IA2sBT,MAAMgZ,GAAN,MAAMA,6BAA4Bz0B,EAErC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,aAAc,OACxC,CAEA,IAAAoD,CAAKnJ,EAA2CwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,yBAC9E,CAEA,SAAAw4B,CAAUh8B,EAAsCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,aAAAy4B,CAAcj8B,EAA0CwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,cAAA04B,CAAel8B,EAA2CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,wBAAA24B,CAAyBn8B,EAAqDwD,GAC1E,OAAOY,KAAK6B,YAAY3H,KAAK,2BAA4B0B,EAAS,QAAQ,EAAOwD,EAAa,mCAClG,CAEA,sBAAA44B,CAAuBp8B,EAAmDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,eAAA64B,CAAgBr8B,EAA4CwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,kBAAA84B,CAAmBt8B,EAA+CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,mBAAA+4B,CAAoBv8B,EAAgDwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,8BAC7F,CAEA,YAAAg5B,CAAax8B,EAAyCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,cAAAi5B,CAAez8B,EAA2CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,oBAAAk5B,CAAqB18B,EAAiDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,SAAAm5B,CAAU38B,EAAsCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,gBAAAo5B,CAAiB58B,EAAsCwD,GACnD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,oBAC1F,CAEA,qBAAAq5B,CAAsB78B,EAAkDwD,GACpE,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,aAAAs5B,CAAc98B,EAA0CwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,cAAAu5B,CAAe/8B,EAA2CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,cAAAw5B,CAAeh9B,EAA2CwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,kBAAAy5B,CAAmBj9B,EAA+CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,UAAA05B,CAAWl9B,EAAuCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,oBAAA25B,CAAqBn9B,EAAiDwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,YAAA45B,CAAap9B,EAAyCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,SAAA65B,CAAUr9B,EAAsCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,GAhG6C5F,EAAAm+B,GAAA,uBAA1C,IAAMuB,GAANvB,GCztBA,MAAMwB,GAAN,MAAMA,yBAAwBD,GAEjC,iBAAA/D,GACI,OAAOn1B,KAAK6B,YAAY5H,MAC5B,CAEA,QAAA2R,GAEI,OADc5L,KAAK6B,YAAY5H,OAAON,QAAQiJ,MAAM,MACvC,EACjB,CAEA,EAAAw2B,GAGI,OAFcp5B,KAAK6B,YAAY5H,OAAON,QAAQiJ,MAAM,MAC/B,GAAGA,MAAM,KAChB,EAClB,CAEA,4BAAAy2B,CAA6Bz9B,EAAmD,IAC5E,OAAOoE,KAAKy4B,sBAAsB78B,GAASmD,KAAMrC,IAC7C,GAAKA,EAAiB48B,QAClB,OAAQ58B,EAAiB48B,QAE7B,IAAIC,EACAC,EAWJ,OAVA98B,EAAS+8B,kBAAkBC,iBAAiBtvB,KAAK,CAACiL,EAAMskB,KACxC,IAARA,IACAH,EAAQnkB,GAEM,UAAdA,EAAK6L,OACLqY,EAAalkB,GACN,KAIRkkB,GAAcC,GAE7B,GApCqDhgC,EAAA2/B,GAAA,mBAAlD,IAAMS,GAANT,GCJU,IAAAU,GAYDC,GA2BAC,GAWAC,GAMAC,GAMAC,GAMAC,GAMAC,GAOAC,GASAC,GAQAC,GAUAC,GAKAC,GAWAC,GA5HCb,EAAAA,iBAAAA,EAAAA,GAAAA,EAAAA,cAAAA,cAAA,CAAA,IAYDC,GAAAD,GAAAC,eAAAD,GAAAC,aAAA,CAAA,IACR,MAAQ,QACRA,GAAA,OAAS,SACTA,GAAA,WAAa,aACbA,GAAA,WAAa,aACbA,GAAA,MAAQ,QACRA,GAAA,SAAW,WACXA,GAAA,QAAU,UACVA,GAAA,UAAY,YACZA,GAAA,QAAU,UACVA,GAAA,OAAS,SACTA,GAAA,YAAc,cACdA,GAAA,QAAU,UAGP,CAAK5iB,IACRA,EAAAA,MAAM,GAAN,MACAA,EAAAA,UAAU,GAAV,UACAA,EAAAA,MAAM,GAAN,MACAA,EAAAA,SAAS,GAAT,UAJG,CAAK2iB,GAAA3iB,sBAAA2iB,GAAA3iB,oBAAA,CAAA,IAOL,CAAKE,IACRA,EAAAA,MAAM,GAAN,MACAA,EAAAA,MAAM,GAAN,OAFG,CAAKyiB,GAAAziB,gBAAAyiB,GAAAziB,cAAA,CAAA,KAKA2iB,GAAAF,GAAAE,gBAAAF,GAAAE,cAAA,CAAA,IACR,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,MACNA,GAAA,IAAM,OAGEC,GAAAH,GAAAG,yBAAAH,GAAAG,uBAAA,CAAA,IACR,OAAS,SACTA,GAAA,KAAO,OACPA,GAAA,MAAQ,SAGAC,GAAAJ,GAAAI,uBAAAJ,GAAAI,qBAAA,CAAA,IACR,YAAc,cACdA,GAAA,OAAS,SACTA,GAAA,QAAU,WAGFC,GAAAL,GAAAK,qBAAAL,GAAAK,mBAAA,CAAA,IACR,IAAM,MACNA,GAAA,KAAO,OACPA,GAAA,KAAO,QAGCC,GAAAN,GAAAM,qBAAAN,GAAAM,mBAAA,CAAA,IACRA,OAAM,GAAN,MACAA,GAAAA,QAAO,GAAP,OACAA,GAAAA,OAAM,GAAN,OAGQC,GAAAP,GAAAO,sBAAAP,GAAAO,oBAAA,CAAA,IACR,KAAO,OACPA,GAAA,QAAU,UACVA,GAAA,MAAQ,QACRA,GAAA,MAAQ,SAGAC,GAAAR,GAAAQ,6BAAAR,GAAAQ,2BAAA,CAAA,IACR,WAAa,cACbA,GAAA,aAAe,gBACfA,GAAA,UAAY,YACZA,GAAA,gBAAkB,oBAClBA,GAAA,qBAAuB,0BACvBA,GAAA,mBAAqB,yBAGbC,GAAAT,GAAAS,uBAAAT,GAAAS,qBAAA,CAAA,IACR,IAAM,MACNA,GAAA,GAAK,KACLA,GAAA,KAAO,OACPA,GAAA,MAAQ,QACRA,GAAA,OAAS,UAGDC,GAAAV,GAAAU,kBAAAV,GAAAU,gBAAA,CAAA,IACR,IAAM,MACNA,GAAA,UAAY,YACZA,GAAA,aAAe,gBAGPV,GAAAc,2BAAAd,GAAAc,yBAAA,CAAA,IACR,WAAa,cAGLH,GAAAX,GAAAW,2BAAAX,GAAAW,yBAAA,CAAA,IACR,KAAO,OACPA,GAAA,uBAAyB,0BAGjBC,GAAAZ,GAAAY,2BAAAZ,GAAAY,yBAAA,CAAA,IACR,QAAU,UACVA,GAAA,UAAY,YACZA,GAAA,cAAgB,gBAChBA,GAAA,SAAW,WACXA,GAAA,OAAS,SACTA,GAAA,oBAAsB,sBACtBA,GAAA,iBAAmB,mBACnBA,GAAA,gBAAkB,mBAGVC,GAAAb,GAAAa,wBAAAb,GAAAa,sBAAA,CAAA,IACRA,sBAAqB,GAArB,qBACAA,GAAAA,iBAAgB,GAAhB,gBACAA,GAAAA,gCAA+B,GAA/B,+BACAA,GAAAA,+BAA8B,GAA9B,8BA6pFD,MAAME,GAAN,MAAMA,8BAA6B13B,EAEtC,WAAAjD,CAAY0B,GACRR,MAAMQ,EAAgB,cAAe,OACzC,CAEA,YAAAk5B,CAAaj/B,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,IAAA2F,CAAKnJ,EAA2BwD,GAC5B,OAAOY,KAAK6B,YAAY3H,KAAK,OAAQ0B,EAAS,QAAQ,EAAOwD,EAAa,0BAC9E,CAEA,OAAA07B,CAAQl/B,EAA8BwD,GAClC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,QAAA27B,CAASn/B,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,wBAAA47B,CAAyBp/B,EAA+CwD,GACpE,OAAOY,KAAK6B,YAAY3H,KAAK,2BAA4B0B,EAAS,QAAQ,EAAOwD,EAAa,mCAClG,CAEA,gBAAA67B,CAAiBr/B,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,QAAA87B,CAASt/B,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,kBAClF,CAEA,eAAA+7B,CAAgBv/B,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,oBAAAg8B,CAAqBx/B,EAA2CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,oBAAAi8B,CAAqBz/B,EAA2CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,sBAAAk8B,CAAuB1/B,EAA6CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,eAAAm8B,CAAgB3/B,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,YAAAo8B,CAAa5/B,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,kBAAAq8B,CAAmB7/B,EAAyCwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,cAAAs8B,CAAe9/B,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,QAAAu8B,CAAS//B,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,iBAAAw8B,CAAkBhgC,EAAwCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,mBAC3F,CAEA,eAAAy8B,CAAgBjgC,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,QAAA08B,CAASlgC,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,gBAAA28B,CAAiBngC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,SAAA48B,CAAUpgC,EAAgCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,aAAA68B,CAAcrgC,EAAoCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,qBAAA88B,CAAsBtgC,EAA4CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,QAAA+8B,CAASvgC,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,MAAAg9B,CAAOxgC,EAA6BwD,GAChC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,oBAChF,CAEA,YAAAi9B,CAAazgC,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,cAAAk9B,CAAe1gC,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,gBAAAm9B,CAAiB3gC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,oBAAAo9B,CAAqB5gC,EAA2CwD,GAC5D,OAAOY,KAAK6B,YAAY3H,KAAK,uBAAwB0B,EAAS,QAAQ,EAAOwD,EAAa,+BAC9F,CAEA,UAAAq9B,CAAW7gC,EAAiCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,sBAAAs9B,CAAuB9gC,EAA6CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,kBAAAu9B,CAAmB/gC,EAAyCwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,YAAAw9B,CAAahhC,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,UAAAy9B,CAAWjhC,EAAiCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,gBAAA09B,CAAiBlhC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,iBAAA29B,CAAkBnhC,EAAwCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,YAAA49B,CAAaphC,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,WAAA69B,CAAYrhC,EAAkCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,aAAA89B,CAActhC,EAAoCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,MAAA+9B,CAAOvhC,EAA6BwD,GAChC,OAAOY,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,QAAQ,EAAOwD,EAAa,iBAChF,CAEA,aAAAg+B,CAAcxhC,EAAoCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACvF,CAEA,SAAAi+B,CAAUzhC,EAAgCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,kBAAAk+B,CAAmB1hC,EAAyCwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,kBAAAm+B,CAAmB3hC,EAAyCwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,uBAAAo+B,CAAwB5hC,EAA8CwD,GAClE,OAAOY,KAAK6B,YAAY3H,KAAK,0BAA2B0B,EAAS,QAAQ,EAAOwD,EAAa,kCACjG,CAEA,aAAAq+B,CAAc7hC,EAAoCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,sBAAAs+B,CAAuB9hC,EAA6CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,sBAAAu+B,CAAuB/hC,EAA6CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,cAAAw+B,CAAehiC,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,SAAAy+B,CAAUjiC,EAAgCwD,GACtC,OAAOY,KAAK6B,YAAY3H,KAAK,YAAa0B,EAAS,QAAQ,EAAOwD,EAAa,oBACnF,CAEA,iBAAA0+B,CAAkBliC,EAAwCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,WAAA2+B,CAAYniC,EAAkCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,OAAA4+B,CAAQpiC,EAA8BwD,GAClC,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,EAAa,kBACjF,CAEA,aAAA6+B,CAAcriC,EAAoCwD,GAC9C,OAAOY,KAAK6B,YAAY3H,KAAK,gBAAiB0B,EAAS,QAAQ,EAAOwD,EAAa,wBACvF,CAEA,cAAA8+B,CAAetiC,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,yBACxF,CAEA,yBAAA++B,CAA0BviC,EAAgDwD,GACtE,OAAOY,KAAK6B,YAAY3H,KAAK,4BAA6B0B,EAAS,QAAQ,EAAOwD,EAAa,yBACnG,CAEA,YAAAg/B,CAAaxiC,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,eAAAi/B,CAAgBziC,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,sBAAAk/B,CAAuB1iC,EAA6CwD,GAChE,OAAOY,KAAK6B,YAAY3H,KAAK,yBAA0B0B,EAAS,QAAQ,EAAOwD,EAAa,iCAChG,CAEA,qBAAAm/B,CAAsB3iC,EAA4CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,mBAAAo/B,CAAoB5iC,EAA0CwD,GAC1D,OAAOY,KAAK6B,YAAY3H,KAAK,sBAAuB0B,EAAS,QAAQ,EAAOwD,EAAa,8BAC7F,CAEA,iBAAAq/B,CAAkB7iC,EAAwCwD,GACtD,OAAOY,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EAAS,QAAQ,EAAOwD,EAAa,4BAC3F,CAEA,gBAAAs/B,CAAiB9iC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,gBAAAu/B,CAAiB/iC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,2BAC1F,CAEA,qBAAAw/B,CAAsBhjC,EAA4CwD,GAC9D,OAAOY,KAAK6B,YAAY3H,KAAK,wBAAyB0B,EAAS,QAAQ,EAAOwD,EAAa,gCAC/F,CAEA,WAAAy/B,CAAYjjC,EAAkCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,eAAA0/B,CAAgBljC,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,UAAA2/B,CAAWnjC,EAAiCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,QAAA4/B,CAASpjC,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,WAAA6/B,CAAYrjC,EAAkCwD,GAC1C,OAAOY,KAAK6B,YAAY3H,KAAK,cAAe0B,EAAS,QAAQ,EAAOwD,EAAa,sBACrF,CAEA,eAAA8/B,CAAgBtjC,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,YAAA+/B,CAAavjC,EAAmCwD,GAC5C,OAAOY,KAAK6B,YAAY3H,KAAK,eAAgB0B,EAAS,QAAQ,EAAOwD,EAAa,uBACtF,CAEA,KAAAggC,CAAMxjC,EAA4BwD,GAC9B,OAAOY,KAAK6B,YAAY3H,KAAK,QAAS0B,EAAS,QAAQ,EAAOwD,EAAa,gBAC/E,CAEA,UAAAigC,CAAWzjC,EAAiCwD,GACxC,OAAOY,KAAK6B,YAAY3H,KAAK,aAAc0B,EAAS,QAAQ,EAAOwD,EAAa,qBACpF,CAEA,eAAAkgC,CAAgB1jC,EAAsCwD,GAClD,OAAOY,KAAK6B,YAAY3H,KAAK,kBAAmB0B,EAAS,QAAQ,EAAOwD,EAAa,0BACzF,CAEA,QAAAmgC,CAAS3jC,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,gBAAAogC,CAAiB5jC,EAAuCwD,GACpD,OAAOY,KAAK6B,YAAY3H,KAAK,mBAAoB0B,EAAS,QAAQ,EAAOwD,EAAa,wBAC1F,CAEA,QAAAqgC,CAAS7jC,EAA+BwD,GACpC,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EAAa,mBAClF,CAEA,kBAAAsgC,CAAmB9jC,EAAyCwD,GACxD,OAAOY,KAAK6B,YAAY3H,KAAK,qBAAsB0B,EAAS,QAAQ,EAAOwD,EAAa,6BAC5F,CAEA,cAAAugC,CAAe/jC,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACxF,CAEA,cAAAwgC,CAAehkC,EAAqCwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,iBAAkB0B,EAAS,QAAQ,EAAOwD,EAAa,iBACxF,GAxU8C5F,EAAAohC,GAAA,wBAA3C,IAAMiF,GAANjF,GCxxFA,IAsBU6E,GACDK,GAvBJC,IAAAA,IACRA,EAAAA,UAAU,GAAV,UACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,UAAA,GAAA,YACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,UAAA,GAAA,YACAA,EAAAA,EAAA,UAAA,IAAA,YACAA,EAAAA,EAAA,UAAA,IAAA,YACAA,EAAAA,EAAA,KAAA,IAAA,OACAA,EAAAA,EAAA,eAAA,IAAA,iBACAA,EAAAA,EAAA,YAAA,IAAA,cACAA,EAAAA,EAAA,aAAA,IAAA,eACAA,EAAAA,EAAA,OAAA,IAAA,SACAA,EAAAA,EAAA,KAAA,IAAA,OACAA,EAAAA,WAAW,KAAX,WAnBQA,IAAAA,IAAA,CAAA,GAoCL,SAASC,GAAY9/B,GACxB,MAAoD,iBAArCA,EAA4BuL,IAC/C,CAEO,SAASw0B,GAAqB//B,GACjC,YAA2D,IAAnDA,EAA8BggC,gBAC1C,CAEO,SAASC,GAAiBjgC,GAC7B,YAA+C,IAAvCA,EAA2BkgC,OACvC,CAxBiBX,EAAAA,cAAAA,EAAAA,GAAAA,EAAAA,WAAAA,WAAA,CAAA,IACDK,GAAAL,GAAAK,SAAAL,GAAAK,OAAA,CAAA,IACRA,WAAU,GAAV,UACAA,GAAAA,GAAA,QAAA,GAAA,UACAA,GAAAA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,IAAA,GAAA,MACAA,GAAAA,GAAA,gBAAA,GAAA,kBACAA,GAAAA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,OAAA,GAAA,SAGQtmC,EAAAwmC,GAAA,eAIAxmC,EAAAymC,GAAA,wBAIAzmC,EAAA2mC,GAAA,oBAGT,MAAME,GAAN,MAAMA,0BAAyBR,GAElC,WAAA5/B,CAAY0B,GACRR,MAAMQ,EACV,CAEA,IAAAoD,GACI,OAAO/E,KAAK6B,YAAY3H,KAAK,OAAQ,CAAA,EAAI,QAAQ,OAAO,EAAW,2BAA2B6E,KAAK,KACxF,CAAEuhC,QAAQ,IAEzB,CAEA,OAAAtC,CAAQpiC,EAAwC,CAAA,EAAIwD,GAChD,OAAOY,KAAK6B,YAAY3H,KAAK,UAAW0B,EAAS,QAAQ,EAAOwD,GAAaL,KAAMrC,GACxE6jC,EAAAA,UAAU,CAAEC,UAAW,CAAEC,YAAa,KAAQ/jC,GAE7D,CAEA,MAAAygC,CAAO96B,GACH,MAAMzG,EAAuC,CACzC8kC,KAAM,GACNC,kBAAkB,EAClBC,mBAAmB,EACnBC,eAAe,EACfC,oBAAoB,EACpBC,gBAAgB,EAChBC,yBAAyB,EACzBC,kBAAkB,EAClBC,eAAe,EACfC,oBAAoB,EACpBC,0BAA0B,EAC1BC,kBAAkB,EAClBC,mBAAmB,EACnBC,qBAAqB,EACrBC,YAAY,EACZC,gBAAgB,EAChBC,wBAAwB,EACxBC,yBAAyB,EACzBC,qBAAqB,EACrBC,uBAAuB,KACpBx/B,GAEP,OAAOlB,MAAMg8B,OAAOvhC,EACxB,CAEA,QAAA+/B,GACI,OAAOx6B,MAAMw6B,SAAS,GAC1B,CAEA,QAAA8D,CAAS7jC,GACL,OAAOoE,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAC9D,CAEA,UAAAmjC,CAAWnjC,GAEP,OADAoE,KAAK6B,YAAYK,iBAAiBtG,EAAS,SACpCuF,MAAM49B,WAAWnjC,EAC5B,CAEA,QAAAm/B,CAASn/B,GAEL,OADCA,EAAgBkmC,WAAalmC,EAAQmmC,aAC/B5gC,MAAM45B,SAASn/B,EAC1B,CAEA,QAAAojC,CAASpjC,EAAwCwD,GAC7C,OAAOY,KAAK6B,YAAY3H,KAAK,WAAY0B,EAAS,QAAQ,EAAOwD,EACrE,CAEA,QAAA4iC,CAASpmC,GACL,OAAOoE,KAAK6B,YAAY3H,KAAK,SAAU0B,EAAS,OACpD,CAEQqmC,sBACR,aAAAhG,CAAcrgC,GAIV,OAHKoE,KAAKiiC,wBACNjiC,KAAKiiC,sBAAwB9gC,MAAM86B,cAAcrgC,IAE9CoE,KAAKiiC,qBAChB,CAEA,UAAAC,CAAWtmC,GACP,OAAOoE,KAAK6B,YAAY3H,KAAK,WAAY0B,OAAS,OAAW,OAAW,EAAW,WAAWmD,KAAMrC,IAChG,MACM6Y,EADS4sB,EAAAA,SAASzlC,EAAS6Q,QACTgI,WACxB,OAAIA,EAASna,OACFma,EAAS,GAEb,MAEf,GAxFuD/b,EAAA6mC,GAAA,oBAApD,IAAM+B,GAAN/B,GA2FA,MAAMgC,GAAN,MAAMA,4BAA2BxC,GACpC,mBAAAyC,CAAoB1mC,GAChB,OAAOoE,KAAK6B,YAAY3H,KAAK,oBAAqB0B,EACtD,GAHyDpC,EAAA6oC,GAAA,sBAAtD,IAAME,GAANF,GClJQ,SAAAG,GAAS9kB,GACtB,OAAOphB,KAAKmmC,IAAI/kB,EAAIphB,KAAKC,MAAMmhB,KAAO,KAChCA,EAAEglB,eAAe,MAAMtQ,QAAQ,KAAM,IACrC1U,EAAE9c,SAAS,GACnB,CAKO,SAAS+hC,GAAmBjlB,EAAGpS,GACpC,IAAKpQ,GAAKwiB,EAAIpS,EAAIoS,EAAEklB,cAAct3B,EAAI,GAAKoS,EAAEklB,iBAAiB5lC,QAAQ,MAAQ,EAAG,OAAO,KACxF,IAAI9B,EAAG2nC,EAAcnlB,EAAE+S,MAAM,EAAGv1B,GAIhC,MAAO,CACL2nC,EAAYznC,OAAS,EAAIynC,EAAY,GAAKA,EAAYpS,MAAM,GAAKoS,GAChEnlB,EAAE+S,MAAMv1B,EAAI,GAEjB,CCjBe,SAAA4nC,GAASplB,GACtB,OAAOA,EAAIilB,GAAmBrmC,KAAKmmC,IAAI/kB,KAASA,EAAE,GAAKL,GACzD,CCJe,SAAA0lB,GAASC,EAAUC,GAChC,OAAO,SAASlqB,EAAOkZ,GAOrB,IANA,IAAI/2B,EAAI6d,EAAM3d,OACV8nC,EAAI,GACJpY,EAAI,EACJP,EAAIyY,EAAS,GACb5nC,EAAS,EAENF,EAAI,GAAKqvB,EAAI,IACdnvB,EAASmvB,EAAI,EAAI0H,MAAW31B,KAAK6hB,IAAI,EAAG8T,EAAQ72B,IACpD8nC,EAAE/nC,KAAK4d,EAAMoqB,UAAUjoC,GAAKqvB,EAAGrvB,EAAIqvB,OAC9BnvB,GAAUmvB,EAAI,GAAK0H,KACxB1H,EAAIyY,EAASlY,GAAKA,EAAI,GAAKkY,EAAS5nC,QAGtC,OAAO8nC,EAAEE,UAAU/nC,KAAK4nC,EAC1B,CACF,CCjBe,SAAAI,GAASC,GACtB,OAAO,SAASvqB,GACd,OAAOA,EAAMqZ,QAAQ,SAAU,SAASl3B,GACtC,OAAOooC,GAAUpoC,EACnB,EACF,CACF,CHNe1B,EAAAgpC,GAAA,iBASChpC,EAAAmpC,GAAA,sBCPDnpC,EAAAspC,GAAA,YCFAtpC,EAAAupC,GAAA,eCAAvpC,EAAA6pC,GAAA,kBCCf,ICCWE,GDDPC,GAAK,2EAEM,SAASC,GAAgBrT,GACtC,KAAMsT,EAAQF,GAAGrS,KAAKf,IAAa,MAAM,IAAI7yB,MAAM,mBAAqB6yB,GACxE,IAAIsT,EACJ,OAAO,IAAIC,GAAgB,CACzB3R,KAAM0R,EAAM,GACZE,MAAOF,EAAM,GACbxR,KAAMwR,EAAM,GACZG,OAAQH,EAAM,GACdI,KAAMJ,EAAM,GACZzR,MAAOyR,EAAM,GACbK,MAAOL,EAAM,GACbM,UAAWN,EAAM,IAAMA,EAAM,GAAGjT,MAAM,GACtCwE,KAAMyO,EAAM,GACZhqC,KAAMgqC,EAAM,KAEhB,CAIO,SAASC,GAAgBvT,GAC9BpwB,KAAKgyB,UAA0B,IAAnB5B,EAAU4B,KAAqB,IAAM5B,EAAU4B,KAAO,GAClEhyB,KAAK4jC,WAA4B,IAApBxT,EAAUwT,MAAsB,IAAMxT,EAAUwT,MAAQ,GACrE5jC,KAAKkyB,UAA0B,IAAnB9B,EAAU8B,KAAqB,IAAM9B,EAAU8B,KAAO,GAClElyB,KAAK6jC,YAA8B,IAArBzT,EAAUyT,OAAuB,GAAKzT,EAAUyT,OAAS,GACvE7jC,KAAK8jC,OAAS1T,EAAU0T,KACxB9jC,KAAKiyB,WAA4B,IAApB7B,EAAU6B,WAAsB,GAAa7B,EAAU6B,MACpEjyB,KAAK+jC,QAAU3T,EAAU2T,MACzB/jC,KAAKgkC,eAAoC,IAAxB5T,EAAU4T,eAA0B,GAAa5T,EAAU4T,UAC5EhkC,KAAKi1B,OAAS7E,EAAU6E,KACxBj1B,KAAKtG,UAA0B,IAAnB02B,EAAU12B,KAAqB,GAAK02B,EAAU12B,KAAO,EACnE,CEhCe,SAAAuqC,GAASzY,GACtB0Y,EAAK,IAAA,IAAuCC,EAA9B/lB,EAAIoN,EAAEpwB,OAAQF,EAAI,EAAGkpC,GAAK,EAAQlpC,EAAIkjB,IAAKljB,EACvD,OAAQswB,EAAEtwB,IACR,IAAK,IAAKkpC,EAAKD,EAAKjpC,EAAG,MACvB,IAAK,IAAgB,IAAPkpC,IAAUA,EAAKlpC,GAAGipC,EAAKjpC,EAAG,MACxC,QAAS,KAAMswB,EAAEtwB,GAAI,MAAMgpC,EAASE,EAAK,IAAGA,EAAK,GAGrD,OAAOA,EAAK,EAAI5Y,EAAEiF,MAAM,EAAG2T,GAAM5Y,EAAEiF,MAAM0T,EAAK,GAAK3Y,CACrD,CDNe,SAAA6Y,GAAS3mB,EAAGpS,GACzB,IAAIyS,EAAI4kB,GAAmBjlB,EAAGpS,GAC9B,IAAKyS,EAAG,OAAOL,EAAI,GACnB,IAAImlB,EAAc9kB,EAAE,GAChB+kB,EAAW/kB,EAAE,GACb7iB,EAAI4nC,GAAYS,GAAuE,EAAtDjnC,KAAK6hB,KAAI,EAAI7hB,KAAKgoC,IAAI,EAAGhoC,KAAK6nB,MAAM2e,EAAW,MAAY,EAC5F1kB,EAAIykB,EAAYznC,OACpB,OAAOF,IAAMkjB,EAAIykB,EACX3nC,EAAIkjB,EAAIykB,EAAc,IAAI/nC,MAAMI,EAAIkjB,EAAI,GAAG/iB,KAAK,KAChDH,EAAI,EAAI2nC,EAAYpS,MAAM,EAAGv1B,GAAK,IAAM2nC,EAAYpS,MAAMv1B,GAC1D,KAAO,IAAIJ,MAAM,EAAII,GAAGG,KAAK,KAAOsnC,GAAmBjlB,EAAGphB,KAAK6hB,IAAI,EAAG7S,EAAIpQ,EAAI,IAAI,EAC1F,CEbe,SAAAqpC,GAAS7mB,EAAGpS,GACzB,IAAIyS,EAAI4kB,GAAmBjlB,EAAGpS,GAC9B,IAAKyS,EAAG,OAAOL,EAAI,GACnB,IAAImlB,EAAc9kB,EAAE,GAChB+kB,EAAW/kB,EAAE,GACjB,OAAO+kB,EAAW,EAAI,KAAO,IAAIhoC,OAAOgoC,GAAUznC,KAAK,KAAOwnC,EACxDA,EAAYznC,OAAS0nC,EAAW,EAAID,EAAYpS,MAAM,EAAGqS,EAAW,GAAK,IAAMD,EAAYpS,MAAMqS,EAAW,GAC5GD,EAAc,IAAI/nC,MAAMgoC,EAAWD,EAAYznC,OAAS,GAAGC,KAAK,IACxE,CHPwB7B,EAAAiqC,GAAA,mBAiBxBA,GAAgB9iC,UAAYgjC,GAAgBhjC,UAE5BnH,EAAAmqC,GAAA,mBAahBA,GAAgBhjC,UAAUC,SAAW,WACnC,OAAOZ,KAAKgyB,KACNhyB,KAAK4jC,MACL5jC,KAAKkyB,KACLlyB,KAAK6jC,QACJ7jC,KAAK8jC,KAAO,IAAM,UACH,IAAf9jC,KAAKiyB,MAAsB,GAAK31B,KAAK6hB,IAAI,EAAgB,EAAbne,KAAKiyB,SACjDjyB,KAAK+jC,MAAQ,IAAM,UACA,IAAnB/jC,KAAKgkC,UAA0B,GAAK,IAAM1nC,KAAK6hB,IAAI,EAAoB,EAAjBne,KAAKgkC,aAC3DhkC,KAAKi1B,KAAO,IAAM,IACnBj1B,KAAKtG,IACb,EE7CeF,EAAAyqC,GAAA,cDGAzqC,EAAA6qC,GAAA,oBEFA7qC,EAAA+qC,GAAA,iBCEf,MAAAC,GAAe,CACb,IAAKhrC,EAAA,SAASkkB,EAAGpS,GAAK,OAAY,IAAJoS,GAAS+mB,QAAQn5B,EAAI,EAA9C,KACL8R,aAAcM,GAAK,OAAOphB,KAAKC,MAAMmhB,GAAG9c,SAAS,EAAI,EAAhD,KACLwpB,aAAc1M,GAAK,OAAOA,EAAI,EAAI,EAA7B,KACLK,EAAKykB,GACLvjC,EAAKzF,EAAA,SAASkkB,EAAGpS,GAAK,OAAOoS,EAAEklB,cAAct3B,EAAI,EAA5C,KACLqP,EAAKnhB,EAAA,SAASkkB,EAAGpS,GAAK,OAAOoS,EAAE+mB,QAAQn5B,EAAI,EAAtC,KACLif,EAAK/wB,EAAA,SAASkkB,EAAGpS,GAAK,OAAOoS,EAAEgnB,YAAYp5B,EAAI,EAA1C,KACLq5B,aAAcjnB,GAAK,OAAOphB,KAAKC,MAAMmhB,GAAG9c,SAAS,EAAI,EAAhD,KACL0K,EAAK9R,EAAA,SAASkkB,EAAGpS,GAAK,OAAOi5B,GAAkB,IAAJ7mB,EAASpS,EAAI,EAAnD,KACLs5B,EAAKL,GACL/Y,EAAK6Y,GACLhY,aAAc3O,GAAK,OAAOphB,KAAKC,MAAMmhB,GAAG9c,SAAS,IAAIikC,aAAe,EAA/D,KACLnnB,aAAcA,GAAK,OAAOphB,KAAKC,MAAMmhB,GAAG9c,SAAS,GAAK,EAAjD,MCjBQ,SAAAkkC,GAASpnB,GACtB,OAAOA,CACT,CAFelkB,EAAAsrC,GAAA,YCSf,ICPI7c,GACOqI,GDMPpkB,GAAMpR,MAAM6F,UAAUuL,IACtB64B,GAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAEhE,SAAA/c,GAASC,GACtB,IAAIxO,OAA4B,IAApBwO,EAAO+a,eAA+C,IAArB/a,EAAOgb,UAA0B6B,GAAW/B,GAAY72B,GAAIrL,KAAKonB,EAAO+a,SAAUgC,QAAS/c,EAAOgb,UAAY,IACvJgC,OAAqC,IAApBhd,EAAOid,SAAyB,GAAKjd,EAAOid,SAAS,GAAK,GAC3EC,OAAqC,IAApBld,EAAOid,SAAyB,GAAKjd,EAAOid,SAAS,GAAK,GAC3EE,EAA+Cnd,EAAOmd,QAAU,GAChE9B,OAA+B,IAApBrb,EAAOqb,SAAyBwB,GAAWzB,GAAen3B,GAAIrL,KAAKonB,EAAOqb,SAAU71B,SAC/F43B,OAA6B,IAAnBpd,EAAOod,QAAwB,IAAMpd,EAAOod,QAAU,GAChEC,EAA2Crd,EAAOqd,MAAQ,GAC1DC,OAAqB,IAAftd,EAAOsd,IAAoB,MAAQtd,EAAOsd,IAAM,GAE1D,SAASpV,EAAUC,GAGjB,IAAI4B,GAFJ5B,EAAYqT,GAAgBrT,IAEP4B,KACjB4R,EAAQxT,EAAUwT,MAClB1R,EAAO9B,EAAU8B,KACjB2R,EAASzT,EAAUyT,OACnBC,EAAO1T,EAAU0T,KACjB7R,EAAQ7B,EAAU6B,MAClB8R,EAAQ3T,EAAU2T,MAClBC,EAAY5T,EAAU4T,UACtB/O,EAAO7E,EAAU6E,KACjBv7B,EAAO02B,EAAU12B,KAGR,MAATA,GAAcqqC,GAAQ,EAAMrqC,EAAO,KAG7B8qC,GAAY9qC,cAAOsqC,IAA4BA,EAAY,IAAK/O,GAAO,EAAMv7B,EAAO,MAG1FoqC,GAAkB,MAAT9R,GAA0B,MAAV4R,KAAgBE,GAAO,EAAM9R,EAAO,IAAK4R,EAAQ,KAI9E,IAAIlpC,EAAoB,MAAXmpC,EAAiBoB,EAA4B,MAAXpB,GAAkB,SAASjf,KAAKlrB,GAAQ,IAAMA,EAAK03B,cAAgB,GAC9GoU,EAAoB,MAAX3B,EAAiBsB,EAAiB,OAAOvgB,KAAKlrB,GAAQ2rC,EAAU,GAKzEI,EAAajB,GAAY9qC,GACzBgsC,EAAc,aAAa9gB,KAAKlrB,GAUpC,SAAS42B,EAAOvX,GACd,IAEI7d,EAAGkjB,EAAGgM,EAFNub,EAAcjrC,EACdkrC,EAAcJ,EAGlB,GAAa,MAAT9rC,EACFksC,EAAcH,EAAW1sB,GAAS6sB,EAClC7sB,EAAQ,OACH,CAIL,IAAI8sB,GAHJ9sB,GAASA,GAGmB,GAAK,EAAIA,EAAQ,EAiB7C,GAdAA,EAAQyF,MAAMzF,GAASwsB,EAAME,EAAWnpC,KAAKmmC,IAAI1pB,GAAQirB,GAGrD/O,IAAMlc,EAAQkrB,GAAWlrB,IAGzB8sB,GAA4B,KAAV9sB,GAAwB,MAATmZ,IAAc2T,GAAgB,GAGnEF,GAAeE,EAA0B,MAAT3T,EAAeA,EAAOoT,EAAkB,MAATpT,GAAyB,MAATA,EAAe,GAAKA,GAAQyT,EAC3GC,GAAwB,MAATlsC,EAAeqrC,GAAS,EAAIxB,GAAiB,GAAK,IAAMqC,GAAeC,GAA0B,MAAT3T,EAAe,IAAM,IAIxHwT,EAEF,IADAxqC,GAAI,EAAIkjB,EAAIrF,EAAM3d,SACTF,EAAIkjB,GACX,GAA6B,IAAzBgM,EAAIrR,EAAMyX,WAAWt1B,KAAckvB,EAAI,GAAI,CAC7Cwb,GAAqB,KAANxb,EAAWgb,EAAUrsB,EAAM0X,MAAMv1B,EAAI,GAAK6d,EAAM0X,MAAMv1B,IAAM0qC,EAC3E7sB,EAAQA,EAAM0X,MAAM,EAAGv1B,GACvB,KACF,CAGN,CAGI6oC,IAAUD,IAAM/qB,EAAQU,EAAMV,EAAO+sB,MAGzC,IAAI1qC,EAASuqC,EAAYvqC,OAAS2d,EAAM3d,OAASwqC,EAAYxqC,OACzD2qC,EAAU3qC,EAAS62B,EAAQ,IAAIn3B,MAAMm3B,EAAQ72B,EAAS,GAAGC,KAAK22B,GAAQ,GAM1E,OAHI+R,GAASD,IAAM/qB,EAAQU,EAAMssB,EAAUhtB,EAAOgtB,EAAQ3qC,OAAS62B,EAAQ2T,EAAYxqC,OAAS0qC,KAAWC,EAAU,IAG7GnC,GACN,IAAK,IAAK7qB,EAAQ4sB,EAAc5sB,EAAQ6sB,EAAcG,EAAS,MAC/D,IAAK,IAAKhtB,EAAQ4sB,EAAcI,EAAUhtB,EAAQ6sB,EAAa,MAC/D,IAAK,IAAK7sB,EAAQgtB,EAAQtV,MAAM,EAAGr1B,EAAS2qC,EAAQ3qC,QAAU,GAAKuqC,EAAc5sB,EAAQ6sB,EAAcG,EAAQtV,MAAMr1B,GAAS,MAC9H,QAAS2d,EAAQgtB,EAAUJ,EAAc5sB,EAAQ6sB,EAGnD,OAAOtC,EAASvqB,EAClB,CAMA,OAtEAirB,WAAYA,EAA0B,EAChC,SAASpf,KAAKlrB,GAAQ4C,KAAK6hB,IAAI,EAAG7hB,KAAKgoC,IAAI,GAAIN,IAC/C1nC,KAAK6hB,IAAI,EAAG7hB,KAAKgoC,IAAI,GAAIN,IAEtBxqC,EAAA82B,EAAA,UA8DTA,EAAO1vB,SAAW,WAChB,OAAOwvB,EAAY,EACrB,EAEOE,CACT,CAEA,SAAS0V,EAAa5V,EAAWrX,GAC/B,IAAI4B,EAAIwV,IAAWC,EAAYqT,GAAgBrT,IAAsB12B,KAAO,IAAK02B,IAC7EnxB,EAAiE,EAA7D3C,KAAK6hB,KAAI,EAAI7hB,KAAKgoC,IAAI,EAAGhoC,KAAK6nB,MAAM2e,GAAS/pB,GAAS,KAC1DsN,EAAI/pB,KAAK2pC,IAAI,IAAKhnC,GAClBvE,EAASqqC,GAAS,EAAI9lC,EAAI,GAC9B,OAAO,SAAS8Z,GACd,OAAO4B,EAAE0L,EAAItN,GAASre,CACxB,CACF,CAEA,OAzHSlB,EAAA22B,EAAA,aA+GA32B,EAAAwsC,EAAA,gBAUF,CACL1V,OAAQH,EACR6V,eAEJ,CCrIe,SAAS5S,GAAcC,GAIpC,OAHApL,GAASD,GAAaqL,GACtB/C,GAASrI,GAAOqI,OACDrI,GAAO+d,aACf/d,EACT,CDPezuB,EAAAwuB,GAAA,gBCNfoL,GAAc,CACZgS,QAAS,IACTnC,UAAW,IACXD,SAAU,CAAC,GACXkC,SAAU,CAAC,IAAK,IAChBI,MAAO,MAGe9rC,EAAA45B,GAAA,iBCJjB,MAAM8S,GAAN,MAAMA,kBAAiBC,EAAAA,YAChBC,GAEV,cAAIC,GAA2B,OAAOrmC,KAAKP,KAAO,CAClD,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,SAAI6mC,GAAkB,OAAOtmC,KAAKP,IAAI,QAAU,CAChD,QAAIyhB,GAAiB,OAAOlhB,KAAKP,IAAI,OAAS,CAC9C,YAAI8mC,GAAsB,OAAOvmC,KAAKP,IAAI,WAAa,CACvD,eAAI+mC,GAAwB,OAAOxmC,KAAKP,IAAI,cAAgB,CAC5D,gBAAIgnC,GAAyB,OAAOzmC,KAAKP,IAAI,eAAiB,CAC9D,QAAIinC,GAAiB,OAAO1mC,KAAKP,IAAI,OAAS,CAC9C,WAAI21B,GAAqB,OAAOp1B,KAAKP,IAAI,UAAY,CACrD,aAAIknC,GAAsB,OAAO3mC,KAAKP,IAAI,YAAc,CACxD,UAAImnC,GAAoB,OAAO5mC,KAAKP,IAAI,SAAW,CAEnD,WAAAQ,CAAYmmC,EAAcS,EAAgCC,GACtD3lC,QACAnB,KAAKomC,GAAKA,EACV,IAAIW,EAAW,EACf,IAAA,MAAWC,KAAYF,EACnB,GAAIE,EAASC,YAAcJ,EAASp7B,OAASu7B,EAASE,cAAe,CACjEH,EAAWzqC,KAAKC,MAAyB,IAAnByqC,EAASG,SAAkB,IACjD,KACJ,CAEJnnC,KAAK6a,IAAI,CAAE6rB,KAAMK,KAAaF,GAClC,CAEA,eAAAO,CAAgBC,GACZ,OAAIA,EACOrnC,KAAKomC,GAAGkB,kBAAkB,CAACD,GAAa,CAAC,aAAatoC,KAAMwoC,GACxDC,GAAYD,IAGpBvnC,KAAKomC,GAAGkB,kBAAkB,CAACtnC,KAAKyL,MAAO,CAAC,UAAU1M,KAAMwoC,GACpDC,GAAYD,GAE3B,GArCoF/tC,EAAA0sC,GAAA,YAAjF,IAAMuB,GAANvB,GAwCA,MAAMwB,GAAN,MAAMA,oBAAmBC,EAAAA,MAC5B,WAAA1nC,GACIkB,MAAO1G,GACIktC,EAAAA,MAAMC,KAAK,CAACntC,EAAIgR,OAE/B,GALkEjS,EAAAkuC,GAAA,cAA/D,IAAMG,GAANH,GASP,SAASI,GAAYnuB,EAAeouB,EAAoBC,IACpDA,EAAQA,GAAS,IACX7sC,KAAKwe,GACXouB,EAASpuB,EAAKjO,KAAMiO,EAAKsuB,EAAGtuB,EAAKpE,WAAYyyB,GAC7CruB,EAAKpE,WAAWva,QAASktC,IACrBJ,GAAYI,EAAWH,EAAUC,KAErCA,EAAMnlC,KACV,CAEA,SAASslC,GAAWC,GAChB,MAAM1oC,EAAuB,CAAA,EAM7B,OALA0oC,EAAMptC,QAAS2e,IACO,QAAdA,EAAKjO,OACLhM,EAAOia,EAAKsuB,EAAQ,MAAKtuB,EAAKsuB,EAAS,SAGxCvoC,CACX,CAlBSlG,EAAAsuC,GAAA,eAUAtuC,EAAA2uC,GAAA,cAUF,MAAME,GAAN,MAAMA,oBAAmBC,EAAAA,QAAgD9uC,EAAA6uC,GAAA,cAAzE,IAAME,GAANF,GACA,MAAMG,GAAN,MAAMA,uBAAsBC,EAAAA,WAAmDjvC,EAAAgvC,GAAA,iBAA/E,IAAME,GAANF,GACA,MAAMG,GAAN,MAAMA,qBAAoBC,EAAAA,SAAiDpvC,EAAAmvC,GAAA,eAA3E,IAAME,GAANF,GACA,MAAMG,GAAN,MAAMA,mBAAkBC,EAAAA,OAA+CvvC,EAAAsvC,GAAA,aAAvE,IAAME,GAANF,GAEA,SAASG,GAAiB7zB,EAAY8zB,GACzC,MAAMC,EAA6C,CAAA,EAC7CC,EAA0C,CAAA,EAC1CC,EAAqC,CAAA,EAErCC,EAAQ,IAAIf,GAAYlzB,GACnBA,EAAKnV,EAAO,IAGjB8nC,EAAyB,CAACsB,EAAM9qC,MAwBtC,OAvBAspC,GAAYoB,EAAQ,CAACK,EAAaC,EAA0BC,EAAuBC,KAC/E,MAAMC,EAAM3B,EAAMA,EAAM5sC,OAAS,GACjC,OAAQmuC,GACJ,IAAK,QACD,MACJ,IAAK,OACD,GAAIE,EAAWruC,QAAUquC,EAAW,GAAGl0B,WAAWna,QAA+C,UAArCquC,EAAW,GAAGl0B,WAAW,GAAG7J,KAAkB,CACtG,MAAMk+B,EAAWD,EAAIE,eAAe1B,GAAWsB,IAC/CzB,EAAM7sC,KAAKyuC,GACXT,EAAUK,EAAe,IAAKI,CAClC,CAGA,MAAME,EAASH,EAAII,aAAa5B,GAAWsB,IAC3CL,EAASI,EAAe,IAAKM,EAC7B,MACJ,IAAK,OACD,MAAME,EAAOL,EAAIM,WAAWb,EAASI,EAAmB,QAAIJ,EAASI,EAAmB,QAAIrB,GAAWsB,IACvGJ,EAAMG,EAAe,IAAKQ,KAK/BV,CACX,CAlCgB9vC,EAAAyvC,GAAA,oBAoCT,MAAMiB,GAAN,MAAMA,oBAAmB5B,EAAAA,QAAuC9uC,EAAA0wC,GAAA,cAAhE,IAAMC,GAAND,GACA,MAAME,GAAN,MAAMA,uBAAsB3B,EAAAA,WAA0CjvC,EAAA4wC,GAAA,iBAAtE,IAAMC,GAAND,GACA,MAAME,GAAN,MAAMA,qBAAoB1B,EAAAA,SAAwCpvC,EAAA8wC,GAAA,eAAlE,IAAMC,GAAND,GACA,MAAME,GAAN,MAAMA,mBAAkBzB,EAAAA,OAAsCvvC,EAAAgxC,GAAA,aAA9D,IAAMC,GAAND,GAEA,SAAShD,GAAYD,GACxB,MAAM4B,EAAoD,CAAA,EACpDE,EAA4C,CAAA,EAC5CD,EAAiD,CAAA,EAEvD,IAAIE,EACJ,IAAA,MAAWoB,KAASnD,EAChB,OAAQmD,EAAMC,WACV,IAAK,QACDrB,EAAQ,IAAIa,GAAW90B,GAAQA,EAAKnV,EAAG0qC,GAAIF,GAC3CvB,EAAUuB,EAAMG,WAAavB,EAAM9qC,KACnC,MACJ,IAAK,WACI8qC,IACDA,EAAQ,IAAIa,GAAW90B,GAAQA,EAAKnV,EAAG0qC,GAAIF,GAC3CvB,EAAUuB,EAAMG,WAAavB,EAAM9qC,MAEvC,MAAMssC,EAAaJ,EAAMK,cAAcnoC,MAAM,KAC7C,IAAIooC,EAAe7B,EAAUuB,EAAMK,eACnC,KAAOD,EAAW1vC,SAAW4vC,GACzBA,EAAe7B,EAAU2B,EAAWzvC,KAAK,MACzCyvC,EAAWjoC,MAEf,GAAKmoC,EAEE,CACH,MAAMC,EAAyBD,EAC/B7B,EAAUuB,EAAMG,WAAaI,EAAQpB,eAAea,EACxD,MAJI3uC,QAAQC,KAAK,sBAAsB0uC,EAAME,QAAQF,EAAMK,iBAK3D,MACJ,IAAK,WACD,MAAMG,EAAe/B,EAAUuB,EAAMK,eAChCG,EAGD9B,EAASsB,EAAMG,WAAaK,EAAanB,aAAaW,GAFtD3uC,QAAQC,KAAK,qBAAqB0uC,EAAME,QAAQF,EAAMK,iBAI1D,MACJ,IAAK,OACD1B,EAAMqB,EAAMG,WAAaH,EACzB,MACJ,IAAK,WACD,MAAMS,EAAe/B,EAASsB,EAAMK,eAC/BI,EAGDA,EAAajrC,EAAEqV,WAAWpa,KAAKuvC,GAF/B3uC,QAAQC,KAAK,qBAAqB0uC,EAAME,QAAQF,EAAMK,iBAOtE,IAAA,MAAW31B,KAAMi0B,EAAO,CACpB,MAAMqB,EAAQrB,EAAMj0B,GACd+1B,EAAehC,EAAUuB,EAAMK,eACrC,GAAKI,EAEE,CACH,MAAMC,EAAyBD,EAC/B,IACI,MAAME,EAAS/B,EAAOQ,OAAOY,EAAMY,KAAK,YAAYC,UAC9CppC,EAASmnC,EAAOQ,OAAOY,EAAMY,KAAK,YAAYC,UACpDH,EAAQnB,WAAWoB,EAAQlpC,EAAQuoC,EACvC,OAASzrC,GAGLlD,QAAQC,KAAK,iBAAiBoZ,IAClC,CACJ,MAZIrZ,QAAQC,KAAK,qBAAqB0uC,EAAME,QAAQF,EAAMK,gBAa9D,CACA,OAAOzB,CACX,CAtEgB9vC,EAAAguC,GAAA,eCpHT,MAAMgE,GAAN,MAAMA,kBAAiBrF,EAAAA,YAChBC,GAEV,cAAIC,GAA2B,OAAOrmC,KAAKP,KAAO,CAClD,OAAIgsC,GAAgB,OAAOzrC,KAAKP,IAAI,MAAQ,CAC5C,eAAIisC,GAAwB,OAAO1rC,KAAKP,IAAI,cAAgB,CAC5D,eAAIksC,GAAwB,OAAO3rC,KAAKP,IAAI,cAAgB,CAE5D,WAAAQ,CAAYmmC,EAAcrpC,GACtBoE,QACAnB,KAAKomC,GAAKA,EAEV,MAAMwF,EAAa7uC,EAAI6F,MAAM,MAAMvH,KAAK,KAClCwwC,EAAWD,EAAWhpC,MAAM,KAC5BkpC,EAAW,OAAS9rC,KAAKomC,GAAG1F,KAAO,IACzC,IAAIqL,EAAc,GACdC,EAAc,GAEmB,IAAjCJ,EAAW5uC,QAAQ8uC,KACnBC,EAAcH,EAAWK,OAAOH,EAAS1wC,QACzC4wC,EAAcH,EAASA,EAASzwC,OAAS,IAG7C4E,KAAK6a,IAAI,CACL4wB,IAAK1uC,EACL2uC,YAAaM,EACbL,YAAaI,GAErB,GA5BoFvyC,EAAAgyC,GAAA,YAAjF,IAAMU,GAANV,GCPA,MAAMW,GAAN,MAAMA,SACCltC,EAEV,WAAAgB,CAAYhB,GACRe,KAAKf,EAAIA,CACb,CACA,GAAAmtC,UACWpsC,KAAKf,CAChB,GARiBzF,EAAA2yC,GAAA,WAAd,IAAME,GAANF,GAWA,MAAMG,GAAN,MAAMA,oBAAmBD,GAC5B3gC,KACAhS,KACA6yC,OAAQ,EACRC,MAAmC,CAAA,EAC3BC,UAA0B,GAElC,WAAAxsC,CAAYhB,GACRkC,MAAMlC,EACV,CAEA,MAAAytC,CAAO/4B,GACH3T,KAAKysC,UAAUtxC,KAAKwY,GACf3T,KAAKtG,OACNsG,KAAKtG,KAAO,oBAEpB,CAEA,GAAA0yC,GACIpsC,KAAK0L,KAAO1L,KAAKf,EAAGgpC,EAAQ,KAC5BjoC,KAAKtG,KAAOsG,KAAKf,EAAGgpC,EAAQ,KAC5B,IAAA,IAAS/sC,EAAI8E,KAAKysC,UAAUrxC,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACjD,MAAMD,EAAM+E,KAAKysC,UAAUvxC,GACV,QAAbD,EAAIyQ,WAA+B,IAAbzQ,EAAIvB,OAC1BsG,KAAKysC,UAAUtxC,QAAQF,EAAIwxC,WAC3BzsC,KAAKysC,UAAUE,OAAOzxC,EAAG,GAEjC,CACA,MAAM0xC,EAAY5sC,KAAK4sC,YACnBA,IACA5sC,KAAKtG,KAAOkzC,EACZ5sC,KAAKusC,OAAQ,EACbvsC,KAAKysC,UAAY,GAEzB,CAEA,QAAAl3B,GACI,OAAOvV,KAAKysC,SAChB,CAEQ,KAAAI,CAAMlzB,GACV,MAAqB,QAAdA,EAAKjO,WAAgC,IAAdiO,EAAKjgB,IACvC,CAEQ,SAAAkzC,GACJ,MAAMr3B,EAAWvV,KAAKuV,WACtB,QAAkB,IAAdvV,KAAKtG,MAA0C,IAApB6b,EAASna,OAAc,CAClD,GAAI4E,KAAK6sC,MAAMt3B,EAAS,IACpB,OAAOA,EAAS,GAAG7b,QACZsG,KAAK6sC,MAAMt3B,EAAS,IAC3B,OAAOA,EAAS,GAAG7b,IAE3B,CAEJ,CAEA,SAAAozC,GACI,IAAIptC,GAAiB,EAErB,OAAQM,KAAKtG,MACT,IAAK,aACDgG,EAAS,EACT,MACJ,IAAK,aAGL,IAAK,wBAGL,IAAK,YACDA,EAAS,EACT,MACJ,IAAK,YACDA,EAAS,GACT,MACJ,QACI,MAAMqtC,EAAiB,aACjBC,EAAsBhtC,KAAKtG,KAAKuzC,YAAY,KAC5C7xC,EAAiB4xC,EAAc,EAAIA,EAAchtC,KAAKtG,KAAK0B,OACjE,IAAIF,EAAYE,EAAS,EACzB,KAAOF,GAAK,IACoC,IAAxC6xC,EAAO/vC,QAAQgD,KAAKtG,KAAKi3B,OAAOz1B,MADvBA,GAIbA,EAAI,EAAIE,IACRsE,EAASwtC,SAASltC,KAAKtG,KAAKypC,UAAUjoC,EAAI,EAAGE,GAAS,KAExB,IAA9B4E,KAAKtG,KAAKsD,QAAQ,UAClB0C,GAAU,GAOtB,OAHIA,EAASM,KAAK0L,KAAKtQ,SACnBsE,EAASM,KAAK0L,KAAKtQ,QAEhBsE,CACX,GAhGoClG,EAAA8yC,GAAA,cAAjC,IAAMa,GAANb,GAmGA,MAAMc,GAAN,MAAMA,uBAAsBf,GAC/B3gC,KACAhS,KACA2zC,UAEUC,cACAC,WAEV,WAAAttC,CAAYhB,GACRkC,MAAMlC,EACV,CAEA,MAAAytC,CAAOztC,GACH,OAAQA,EAAEyM,MACN,IAAK,iBACD1L,KAAKstC,cAAgBruC,EACrB,MACJ,IAAK,eACDe,KAAKutC,WAAatuC,EAI9B,CAEA,GAAAmtC,GACIpsC,KAAK0L,KAAO1L,KAAKf,EAAGgpC,EAAQ,KAC5BjoC,KAAKtG,KAAOsG,KAAKstC,cAAerF,EAAQ,KACxCjoC,KAAKqtC,UAAYrtC,KAAKutC,YAAcvtC,KAAKutC,WAAYtF,EAAS,WAAI,SAC3DjoC,KAAKstC,qBACLttC,KAAKutC,WACZpsC,MAAMirC,KACV,GA/BuC5yC,EAAA4zC,GAAA,iBAApC,IAAMI,GAANJ,GAkCA,MAAMK,GAAN,MAAMA,WACTjvC,KACAkvC,YAAiD,CAAA,EAEjD,MAAAh4B,GACI,OAAO1V,KAAKxB,KAAK+W,UACrB,GANmB/b,EAAAi0C,GAAA,aAAhB,IAAME,GAANF,GASP,MAAMG,GAAN,MAAMA,mBAAkBC,EAAAA,eACpBC,OAAoB,IAAIH,GACxBI,WACAL,YAAiD,CAAA,EAEjDM,SAA8B,IAAIC,EAAAA,MAElC,YAAAC,CAAajvC,GAET,OADAkC,MAAM+sC,aAAajvC,GACXA,EAAEyM,MACN,IAAK,aACD,MAAMyiC,EAAa,IAAIhB,GAAWluC,GAC7Be,KAAK8tC,OAAOtvC,KAENwB,KAAKguC,SAASI,SACrBpuC,KAAKguC,SAASrE,MAAO+C,OAAOyB,GAF5BnuC,KAAK8tC,OAAOtvC,KAAO2vC,EAIvBnuC,KAAKguC,SAAS7yC,KAAKgzC,GACnB,MACJ,IAAK,gBACDnuC,KAAK+tC,WAAa,IAAIP,GAAcvuC,GAKhD,CAEA,UAAAovC,CAAWpvC,GACP,OAAQA,EAAGyM,MACP,IAAK,aACkB1L,KAAKguC,SAASnrC,MACrBupC,MACZ,MACJ,IAAK,gBACDpsC,KAAK+tC,WAAW3B,MAChBpsC,KAAK0tC,YAAY1tC,KAAK+tC,WAAWriC,MAAQ1L,KAAK+tC,kBACvC/tC,KAAK+tC,WACZ,MACJ,IAAK,aACD,MAAMO,EAActuC,KAAKguC,SAASrE,MAClC,IAAA,MAAW/uC,KAAOqE,EAAEgpC,EAChBqG,EAAa9B,MAAM5xC,GAAOqE,EAAEgpC,EAAErtC,GAElC,MACJ,QACQoF,KAAK+tC,YACL/tC,KAAK+tC,WAAWrB,OAAOztC,GAGnCkC,MAAMktC,WAAWpvC,EACrB,GAlDmCzF,EAAAo0C,GAAA,aAAvC,IAAMW,GAANX,GAqDO,SAASY,GAASC,GACrB,MAAMC,EAAY,IAAIH,GAEtB,OADAG,EAAUjzC,MAAMgzC,GACTC,EAAUZ,MACrB,CAJgBt0C,EAAAg1C,GAAA,YAMhB,MAAMG,GAAN,MAAMA,oBAAmBJ,GACrBK,UACAd,OAAoB,IAAIH,GACxBD,YAAiD,CAAA,EAEjDM,SAA8B,IAAIC,EAAAA,MAElC,WAAAhuC,CAAY4uC,GACR1tC,QACAnB,KAAK4uC,UAAYC,CACrB,CAEA,YAAAX,CAAajvC,GAET,OADAkC,MAAM+sC,aAAajvC,GACXA,EAAEyM,MACN,IAAK,cACD,MAAMyiC,EAAa,IAAIhB,GAAWluC,GAC7Be,KAAK8tC,OAAOtvC,MAAQwB,KAAK4uC,YAAc3vC,EAAEgpC,EAAEv8B,OAC5C1L,KAAK8tC,OAAOtvC,KAAO2vC,GAEnBnuC,KAAKguC,SAASI,SACdpuC,KAAKguC,SAASrE,MAAO+C,OAAOyB,GAEhCnuC,KAAKguC,SAAS7yC,KAAKgzC,GACnB,MACJ,IAAK,iBACDnuC,KAAK+tC,WAAa,IAAIP,GAAcvuC,GAKhD,CAEA,UAAAovC,CAAWpvC,GACP,GACS,gBADDA,EAAGyM,KACP,CACuB1L,KAAKguC,SAASnrC,MACtBupC,KACX,CAMRjrC,MAAMktC,WAAWpvC,EACrB,GA7C+BzF,EAAAm1C,GAAA,cAAnC,IAAMG,GAANH,GAgDO,SAASI,GAAUN,EAAaI,GACnC,MAAMH,EAAY,IAAII,GAAWD,GAEjC,OADAH,EAAUjzC,MAAMgzC,GACTC,EAAUZ,MACrB,CAJgBt0C,EAAAu1C,GAAA,aChQT,MAAMC,GAAN,MAAMA,2BAA0BrH,EAAAA,MACnC,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAIimC,QAAQjmC,EAAIy0C,aAEjD,GALwG11C,EAAAw1C,GAAA,qBAArG,IAAMG,GAANH,GAOP,MAAMI,GAAW,IAAID,GAkCRE,GAAN,MAAMA,gBAAelJ,EAAAA,YACdljC,WACAqsC,cAAwB,EAClC,WAAIL,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CACtC41C,UAEV,cAAIlJ,GAAsC,OAAOrmC,KAAKP,KAAO,CAC7D,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,cAAIyvC,GAAmC,OAAOlvC,KAAKP,IAAI,aAAe,CACtE,kBAAI+vC,GAAuC,OAAOxvC,KAAKP,IAAI,iBAAmB,CAC9E,mBAAIgwC,GAAwC,OAAOzvC,KAAKP,IAAI,kBAAoB,CAChF,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,YAAIiwC,GAAqB,OAAO1vC,KAAKP,IAAI,WAAa,CACtD,SAAI42B,GAAkB,OAAOr2B,KAAKP,IAAI,QAAU,CAChD,QAAIkwC,GAAiB,OAAO3vC,KAAKP,IAAI,OAAS,CAC9C,YAAImwC,GAAqB,OAAO5vC,KAAKP,IAAI,WAAa,CACtD,cAAIowC,GAAwB,OAAO7vC,KAAKP,IAAI,aAAe,CAC3D,mBAAIqwC,GAAoB,OAAO9vC,KAAKP,IAAI,kBAAoB,CAC5D,SAAIkhB,GAAkB,OAAO3gB,KAAKP,IAAI,QAAU,CAChD,cAAIswC,GAAuC,OAAO/vC,KAAKP,IAAI,aAAe,CAC1E,aAAI8T,GAAsB,OAAOvT,KAAKP,IAAI,YAAc,CACxD,eAAIuwC,GAA0B,OAAOhwC,KAAKP,IAAI,cAAgB,CAC9D,aAAIwwC,GAAsB,OAAOjwC,KAAKP,IAAI,YAAc,CAKxD,aAAOywC,CAAOvuC,EAA2DwuC,EAAcC,EAAmEC,GACtJ,IAAI3wC,EAiBJ,OAhBI5E,MAAM0F,QAAQ6vC,IACd3wC,EAAS0vC,GAAS3vC,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS+mC,KAAMyP,EAAMjB,WAAakB,EAAkD3kC,MAAQ,IACjI,IAAI4jC,QAAO1tC,EAAgBwuC,EAAMC,EAAkDC,IAE9F3wC,EAAOmb,IAAIu1B,SACmB,IAAhBC,IACyB,iBAA5BD,EACP1wC,EAAS0vC,GAAS3vC,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS+mC,KAAMyP,EAAMjB,WAAY,YAAckB,GAA2B,IAC/G,IAAIf,QAAO1tC,EAAgBwuC,EAAMC,IAEF,iBAA5BA,IACd1wC,EAAS0vC,GAAS3vC,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS+mC,KAAMyP,EAAMjB,WAAYkB,GAA2B,IACjG,IAAIf,QAAO1tC,EAAgBwuC,EAAMC,MAI7C1wC,CACX,CAEA,wBAAO4wC,CAAkB3uC,EAA2D4uC,EAAmBC,GACnG,OAAOpB,GAAS3vC,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS+mC,KAAM6P,EAAWrB,WAAYsB,GAAe,IACxF,IAAInB,QAAO1tC,EAAgB4uC,EAAWC,GAAa,GAElE,CAMQ,WAAAvwC,CAAY0B,EAA2D8uC,EAAwBC,EAA+EC,GAClLxvC,QAEInB,KAAKiD,WADLtB,aAA0BygC,GACRzgC,EAEA,IAAIygC,GAAiBzgC,GAGF,kBAA9BgvC,IAAyE,IAA9BA,EAClD3wC,KAAK6a,IAAI,CACLtH,UAAWk9B,EACXhB,gBAAiBiB,IAEd1Q,GAAY0Q,IAAwC51C,MAAM0F,QAAQmwC,GACzE3wC,KAAK6a,IAAI,IACF61B,EACHhQ,KAAM+P,EACNvB,WAAYwB,EAAoCjlC,KAChDukC,YAAaW,SAE2B,IAA9BA,EACqC,iBAAxCD,EACP1wC,KAAK6a,IAAI,CACL6lB,KAAM+P,EACNjB,eAAgBkB,IAEkC,iBAAxCA,EACd1wC,KAAK6a,IAAI,CACL6lB,KAAM+P,EACNvB,WAAYwB,IAGhB30C,QAAQC,KAAK,6BAGjBD,QAAQC,KAAK,4BAErB,CAEA,UAAA40C,GACI,OAAsB,IAAf5wC,KAAK2gB,KAChB,CAEA,WAAAkwB,CAAYC,GACR,YAAe,IAAXA,EAA6B9wC,KAAKsvC,cACtCtvC,KAAKsvC,aAAewB,EACb9wC,KACX,CAEQ+wC,uBACR,cAAAC,CAAeC,GAAU,GAUrB,OATKjxC,KAAK+wC,yBAA0BE,IAChCjxC,KAAK+wC,uBAAyB/wC,KAAKg/B,WAAWjgC,KAAKrC,GAC3CA,EAAS6Q,QAAQ0iC,WAAWxB,KAC5BzuC,KAAKuvC,UAAYf,GAAS9xC,EAAS6Q,OAAO0iC,UAAUxB,KAC7CzuC,KAAKuvC,WAET,OAGRvvC,KAAK+wC,sBAChB,CAEA,aAAME,GAEF,aADMjxC,KAAKkxC,UAAU,EAAG,GAAG,GACpBlxC,IACX,CAEA,SAAAkxC,CAAUC,EAAe,EAAGptB,GAAgB,EAAIqtB,GAAyB,EAAOrlC,EAAuB,GAAI3M,EAA2ByxC,GAClI,MAAMQ,EAAoBR,GAAe7wC,KAAKsvC,aAC9C,OAAOtvC,KAAKg/B,SAASmS,EAAMptB,GAAQqtB,EAAerlC,EAAQ3M,EAAaiyC,GAAmBtyC,KAAMrC,IAC5F,MAAM4jC,EAAc5jC,EAAS6Q,OAQ7B,cAPO7Q,EAAS6Q,OAChBvN,KAAK6a,IAAI,IACFne,IAEHmjB,EAAAA,OAAO,gBAAiBygB,KACxBtgC,KAAKuvC,UAAYf,GAASlO,EAAO2P,UAAUxB,MAE3C5uB,EAAAA,OAAO,MAAOygB,GACPA,EAAOhrB,IACPtV,KAAKkvC,YAAcrvB,EAAAA,OAAO7f,KAAKkvC,WAAY5O,GAC3CA,EAAOtgC,KAAKkvC,YAAY55B,IAE5B,IAEf,CAEA,SAAAg8B,GACI,OAAKtxC,KAAKuvC,UACHvvC,KAAKuvC,UAAU/wC,KADM,IAEhC,CAEA,MAAAkX,GACI,OAAK1V,KAAKuvC,UACHvvC,KAAKuvC,UAAU/wC,KAAK+W,WADC,EAEhC,CAEU,QAAAypB,CAASva,EAAgB,EAAGV,EAAgB,EAAGwtB,GAA6B,EAAOxlC,EAA6C,CAAA,EAAI3M,EAA2ByxC,GAAuB,GAC5L,MAAMW,EAAW,CACbC,WAAY,CACRC,UAAW,IAGnB,IAAA,MAAW92C,KAAOmR,EACdylC,EAASC,WAAWD,EAASC,WAAWC,aAAe,CACnDjmC,KAAM7Q,EACNy7B,MAAOtqB,EAAOnR,IAGtB,MAAMgB,EAAyC,CAAE41C,YAiBjD,OAhBIxxC,KAAK0gC,WAA4B,IAApB1gC,KAAKkvC,YAClBtzC,EAAQ8kC,KAAO1gC,KAAK0gC,KACpB9kC,EAAQszC,WAAalvC,KAAKkvC,YACnBlvC,KAAK0gC,WAAgC,IAAxB1gC,KAAKwvC,gBACzB5zC,EAAQ8kC,KAAO1gC,KAAK0gC,KACpB9kC,EAAQ8zC,SAAW1vC,KAAKwvC,gBACjBxvC,KAAKyvC,iBAAmBzvC,KAAKuT,WACpC3X,EAAQ+1C,YAAc3xC,KAAKyvC,gBAC3B7zC,EAAQ0X,QAAUtT,KAAKuT,WAChBvT,KAAKyvC,kBACZ7zC,EAAQ+1C,YAAc3xC,KAAKyvC,iBAE/B7zC,EAAQi6B,MAAQpR,EAChB7oB,EAAQgT,MAAQmV,EAChBnoB,EAAQg2C,kBAAoBL,EAC5B31C,EAAQgkB,mBAAqBixB,EACtB7wC,KAAKiD,WAAW+7B,SAASpjC,EAASwD,GAAaL,KAAMrC,GACjDA,EAEf,GA5LqFlD,EAAA61C,GAAA,UAAlF,IAAM9hC,GAAN8hC,GA+LA,MAAMwC,GAAN,MAAMA,qBAAoBlK,EAAAA,MAC7B,WAAA1nC,GACIkB,MAAO1G,GACIktC,QAAMC,KAAK,CAACntC,EAAIi1C,SAAUj1C,EAAIgR,KAAMhR,EAAI47B,MAAO57B,EAAIm1C,WAElE,GALkEp2C,EAAAq4C,GAAA,eAA/D,IAAMC,GAAND,GCtOA,MAAME,GAAN,MAAMA,mBAAkB5L,EAAAA,YAClBuE,MAET,cAAIrE,GAA4B,OAAOrmC,KAAKP,KAAO,CACnD,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,YAAI8rC,GAAqB,OAAOvrC,KAAKP,IAAI,WAAa,CACtD,aAAIuyC,GAAsB,OAAOhyC,KAAKP,IAAI,YAAc,CACxD,gBAAIwyC,GAAqC,OAAOjyC,KAAKP,IAAI,eAAiB,CAC1E,WAAIyyC,GAAoB,OAAOlyC,KAAKP,IAAI,UAAY,CACpD,WAAI0yC,GAAoB,OAAOnyC,KAAKP,IAAI,UAAY,CACpD,eAAI2yC,GAAwB,OAAOpyC,KAAKP,IAAI,cAAgB,CAE5D,WAAAQ,CAAYyqC,EAAkB2H,GAC1BlxC,QACAnB,KAAK0qC,MAAQA,EACb1qC,KAAK6a,IAAIw3B,EACb,GAhBwF74C,EAAAu4C,GAAA,aAArF,IAAMO,GAANP,GA2BA,MAAMQ,GAAN,MAAMA,mBAAkBpM,EAAAA,YACjBqM,cAA8C,CAAA,EAC9C/F,UAAyB,GAEnC,cAAIpG,GAAwB,OAAOrmC,KAAKP,KAAO,CAC/C,aAAIorC,GAAsB,OAAO7qC,KAAKP,IAAI,YAAc,CACxD,MAAImrC,GAAe,OAAO5qC,KAAKP,IAAI,KAAO,CAC1C,aAAIkrC,GAAsB,OAAO3qC,KAAKP,IAAI,YAAc,CACxD,cAAIgzC,GAAuC,OAAOzyC,KAAKP,IAAI,aAAc,CAAEizC,SAAU,IAAO,CAC5F,SAAIC,GAA6B,OAAO3yC,KAAKP,IAAI,QAAS,CAAEmzC,KAAM,IAAO,CACzE,gBAAIC,GAAyB,OAAO7yC,KAAKP,IAAI,eAAiB,CAC9D,eAAIqzC,GAEA,MAAMpzC,EAAsB,GACtBqzC,EAAsE,CACxEtuB,MAAO,KACPK,IAAK,MAsBT,OApBA9kB,KAAKyyC,WAAWC,SAAS13C,QAASg4C,IACJ,OAAtBA,EAAUd,SAAoBc,EAAUvnC,KAAKzO,QAAQ,YAAc,EACnE+1C,EAAYtuB,MAAQuuB,EACbhzC,KAAK6qC,WAAmC,OAAtBmI,EAAUd,SAAoBc,EAAUvnC,KAAKzO,QAAQ,aAAe,EAC7F+1C,EAAYjuB,IAAMkuB,EAElBtzC,EAAOvE,KAAK,IAAIm3C,GAAUtyC,KAAMgzC,MAGpCD,EAAYtuB,OAASsuB,EAAYjuB,KAIjCiuB,EAAYtuB,MAAMwtB,aAAec,EAAYjuB,IAAIktB,UACjDtyC,EAAOvE,KAAK,IAAIm3C,GAAUtyC,KAAM+yC,EAAYtuB,SACrCsuB,EAAYtuB,MACnB/kB,EAAOvE,KAAK,IAAIm3C,GAAUtyC,KAAM+yC,EAAYtuB,QACrCsuB,EAAYjuB,KACnBplB,EAAOvE,KAAK,IAAIm3C,GAAUtyC,KAAM+yC,EAAYjuB,MAEzCplB,CACX,CAEA,WAAAO,CAAYyqC,GACRvpC,QACAnB,KAAKizC,OAAOvI,EAChB,CAEA,MAAAuI,CAAOvI,GACH1qC,KAAK6a,IAAI6vB,GACT1qC,KAAK8yC,YAAY93C,QAASswC,IACtBtrC,KAAKwyC,cAAclH,EAAK7/B,MAAQ6/B,IAEpCtrC,KAAKyyC,WAAWC,SAAW,GAC3B,IAAA,MAAW93C,KAAOoF,KAAKwyC,cACfxyC,KAAKwyC,cAAc33C,eAAeD,IAClCoF,KAAKyyC,WAAWC,SAASv3C,KAAK6E,KAAKwyC,cAAc53C,GAAKyrC,WAGlE,CAEA,WAAA0E,GACI,MAAMmI,EAAalzC,KAAK6qC,UAAUjoC,MAAM,KAExC,OADAswC,EAAWrwC,MACJqwC,EAAW73C,KAAK,IAC3B,CAIA,QAAAka,CAASrV,GACL,OAAKC,UAAU/E,QACf4E,KAAKysC,UAAYvsC,EACVF,MAFuBA,KAAKysC,SAGvC,CAEA,IAAA0G,CAAKC,GACD,GAAIA,EAAQ3uB,MAAMzkB,MAAO,OAAO,EAChC,IAAA,MAAW0qC,KAAS1qC,KAAKuV,WACrB,GAAIm1B,EAAMyI,KAAKC,GACX,OAAO,EAGf,OAAOA,EAAQtuB,IAAI9kB,KACvB,CAEA,cAAAqzC,GACI,MAAM3zC,EAAuB,CAAA,EAC7B,IAAA,MAAW4rC,KAAQtrC,KAAKwyC,cACpB9yC,EAAO4rC,GAAQtrC,KAAKwyC,cAAclH,GAAM0G,WAAahyC,KAAKwyC,cAAclH,GAAMC,SAElF,OAAO7rC,CACX,CAEA,QAAA4zC,GACI,MAAM5zC,EAAuB,CAAA,EAC7B,IAAA,MAAW4rC,KAAQtrC,KAAKwyC,cACpB9yC,EAAO4rC,GAAQtrC,KAAKwyC,cAAclH,GAAMC,SAE5C,OAAO7rC,CACX,CAEA,OAAA6zC,CAAQ7nC,GACJ,YAAoC,IAA7B1L,KAAKwyC,cAAc9mC,EAC9B,CAEA,IAAA4/B,CAAK5/B,GACD,OAAO1L,KAAKwyC,cAAc9mC,IAAS,IAAI4mC,GAAUtyC,KAAM,CACnDmyC,QAAS,GACTC,YAAa,GACbJ,UAAW,GACXE,QAAS,GACTzmC,KAAM,GACN8/B,SAAU,IAElB,CAEA,WAAAiI,CAAY9nC,GACR,OAAO1L,KAAKwyC,cAAc9mC,GAAMwmC,OACpC,CAEA,WAAAuB,CAAY1I,GACR,IAAI2I,EAAQ1zC,KAAK4qC,GACjB,MAAM+I,EAAiB,GACvBA,EAAKx4C,KAAK,iDAAiD6E,KAAK4qC,gBAC5DG,GACA4I,EAAKx4C,KAAK,wDAAwD4vC,EAAYH,gBAElF+I,EAAKx4C,KAAK,oDAAoD6E,KAAK6qC,uBACnE,MAAM2B,EAAQxsC,KAAKqzC,iBACnB,IAAA,MAAWz4C,KAAO4xC,EACF,UAAR5xC,EACA84C,EAAQlH,EAAM5xC,GAEd+4C,EAAKx4C,KAAK,uBAAuBP,2BAA6B4xC,EAAM5xC,gBAI5E,MAAO,kGACkB84C,gDAEfC,EAAKt4C,KAAK,2CAGxB,GA7I4E7B,EAAA+4C,GAAA,aAAzE,IAAMqB,GAANrB,GAgJA,MAAMsB,GAAN,MAAMA,eAAcD,GACdxN,GAET,WAAAnmC,CAAYmmC,EAAcsE,GACtBvpC,MAAMupC,GACN1qC,KAAKomC,GAAKA,CACd,GANiC5sC,EAAAq6C,GAAA,SAA9B,IAAMC,GAAND,GC3KA,MAAME,GAAN,MAAMA,oBAAmB5N,EAAAA,YAClBljC,WAEV,cAAIojC,GAA0C,OAAOrmC,KAAKP,KAAO,CACjE,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,eAAIu0C,GAAwB,OAAOh0C,KAAKP,IAAI,cAAgB,CAC5D,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,eAAIw0C,GAAyB,OAAOj0C,KAAKP,IAAI,cAAgB,CAC7D,QAAIy0C,GAAiB,OAAOl0C,KAAKP,IAAI,OAAS,CAC9C,SAAImP,GAAkB,OAAO5O,KAAKP,IAAI,QAAU,CAChD,kBAAI00C,GAA+C,OAAOn0C,KAAKP,IAAI,iBAAmB,CAEtF,WAAAQ,CAAY0B,EAA2DwuC,EAAciE,GACjFjzC,QAEInB,KAAKiD,WADLtB,aAA0BygC,GACRzgC,EAEA,IAAIygC,GAAiBzgC,GAG3C3B,KAAK6a,IAAI,CACL6lB,KAAMyP,KACHiE,GAEX,GAxBqG56C,EAAAu6C,GAAA,cAAlG,IAAMM,GAANN,GCEA,MAAMO,GAAN,MAAMA,eAAcnO,EAAAA,YACbljC,WAEV,cAAIojC,GAAqC,OAAOrmC,KAAKP,KAAO,CAC5D,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,SAAI42B,GAAkB,OAAOr2B,KAAKP,IAAI,QAAU,CAChD,WAAI0nC,GAAoB,OAAOnnC,KAAKP,IAAI,UAAY,CACpD,aAAIwnC,GAAsB,OAAOjnC,KAAKP,IAAI,YAAc,CACxD,cAAI80C,GAAuB,OAAOv0C,KAAKP,IAAI,aAAe,CAC1D,iBAAIynC,GAA2B,OAAOlnC,KAAKP,IAAI,gBAAkB,CACjE,SAAIskB,GAAkB,OAAO/jB,KAAKP,IAAI,QAAU,CAChD,aAAI+0C,GAAsB,OAAOx0C,KAAKP,IAAI,YAAc,CACxD,QAAIg1C,GAAiB,OAAOz0C,KAAKP,IAAI,OAAS,CAE9C,WAAAQ,CAAY0B,EAA2DwuC,EAAcnJ,GACjF7lC,QAEInB,KAAKiD,WADLtB,aAA0BygC,GACRzgC,EAEA,IAAIygC,GAAiBzgC,GAG3C,MAAM+yC,EAAOC,EAAAA,gBAAgB3N,EAAS3Q,OACtCr2B,KAAK6a,IAAI,CACL6lB,KAAMyP,EACNhJ,QAAS7qC,KAAKC,MAAa,IAAPm4C,GAAe,IACnCxN,mBAAuC,IAAxBF,EAASuN,cACrBvN,GAEX,GA9BiFxtC,EAAA86C,GAAA,SAA9E,IAAMM,GAANN,GCKP,MAAMO,GAAYtjB,GAAU,yBACtBujB,GAAStjB,GAAS,yBAClBujB,GAAcC,GAAS,KAC7B,SAASC,GAAUC,GACf,OAAIA,IAAQ12B,OAAO02B,GACRH,IAAaG,GAEjBA,CACX,CALS17C,EAAAy7C,GAAA,aAaT,MAAME,GAAkB,iBAClBC,GAAkB,8CAEXC,GAAe,CAAC,MAAO,MAAO,MAAO,QAAS,UAC9CC,GAAkB,CAAC,UAAW,UAAW,UAAW,WA0C3DC,GAAiB,eACvB,SAASC,GAAaC,GAGlB,IAAA,MAAWC,KAAWJ,GAAiB,CACnC,MAAMK,EAAQF,EAAUz4C,QAAQ04C,GAChC,GAAc,IAAVC,EAAa,CAGb,MAAO,CAAEC,QAFO,GAEEC,IAAKH,EAAShC,MADlB+B,EAAUhlB,MAAMklB,EAAQD,EAAQt6C,QAElD,CACJ,CAGA,MAAM06C,EAAaL,EAAU/R,MAAM6R,IACnC,GAAIO,GAAY16C,OAAQ,CACpB,MAAMw6C,EAAUE,EAAWC,QAC3B,IAAIrC,EAAQoC,EAAWz6C,KAAK,IAC5B,IAAA,MAAWw6C,KAAOR,GAAc,CAC5B,MAAMM,EAAQjC,EAAM12C,QAAQ64C,GAC5B,GAAc,IAAVF,EAEA,OADAjC,EAAQA,EAAMjjB,MAAMklB,EAAQE,EAAIz6C,QACzB,CAAEw6C,UAASC,MAAKnC,QAE/B,CAEA,MAAO,CAAEkC,UAASC,IAAK,GAAInC,QAC/B,CAGA,MAAO,CAAEkC,QAAS,GAAIC,IAAK,GAAInC,MAAO+B,EAC1C,CA9BSj8C,EAAAg8C,GAAA,gBAgCT,MAAMQ,GAAmD,CAAA,EAClD,SAASC,GAAYr7C,GACxB,IAAI8E,EAASs2C,GAAgBp7C,GAK7B,OAJK8E,IACDA,EAAS81C,GAAa56C,GACtBo7C,GAAgBp7C,GAAO8E,GAEpBA,CACX,CAEA,SAASw2C,GAAY7gC,EAAcza,GAC/B,OAAOya,EAAK8gC,mBAAmBv7C,IAAQya,EAAKza,EAChD,CAIA,SAASw7C,GAAeC,GACpB,YAAIA,EAAmB,OACvB,MAAM32C,EAAS42C,WAAWD,GAC1B,OAAO73B,MAAM9e,QAAU,EAAYA,CACvC,CAEA,SAAS62C,GAAalhC,EAAcza,EAAa47C,GAC7C,MAAMC,EAAWR,GAAYr7C,GAC7B,IAAK47C,EAAMC,EAASb,SAAU,CAC1BY,EAAMC,EAAS/C,QAAS,EACxB,MAAMgD,EAAMN,GAAe/gC,EAAK,GAAGohC,EAASb,aAAaa,EAAS/C,UAC5DpP,EAAM8R,GAAe/gC,EAAK,GAAGohC,EAASb,aAAaa,EAAS/C,UAC5Dv1B,EAAMi4B,GAAe/gC,EAAK,GAAGohC,EAASb,aAAaa,EAAS/C,UAC5DiD,EAASP,GAAe/gC,EAAK,GAAGohC,EAASb,gBAAgBa,EAAS/C,UAClEkD,EAAUt6C,KAAK6hB,KAAKu4B,EAAMpS,GAAOqS,GAASx4B,EAAMu4B,GAAOC,GAE7D,MAAO,CACHE,IAAK,GAAGJ,EAASb,UAAUa,EAAS/C,QACpCrd,MAAO6f,GAAY7gC,EAAM,GAAGohC,EAASb,UAAUa,EAAS/C,SAGxDoD,IAAKZ,GAAY7gC,EAAM,GAAGohC,EAASb,aAAaa,EAAS/C,SACzDqD,IAAKb,GAAY7gC,EAAM,GAAGohC,EAASb,aAAaa,EAAS/C,SACzDsD,IAAKd,GAAY7gC,EAAM,GAAGohC,EAASb,aAAaa,EAAS/C,SACzDuD,MAAOf,GAAY7gC,EAAM,GAAGohC,EAASb,eAAea,EAAS/C,SAC7DwD,OAAQhB,GAAY7gC,EAAM,GAAGohC,EAASb,gBAAgBa,EAAS/C,SAC/DkD,QAASp4B,MAAMo4B,QAAW,EAAYA,EAGtCO,QAASjB,GAAY7gC,EAAM,UAAUohC,EAAS/C,SAC9C0D,QAASlB,GAAY7gC,EAAM,UAAUohC,EAAS/C,SAC9C2D,QAASnB,GAAY7gC,EAAM,UAAUohC,EAAS/C,SAC9C4D,QAASpB,GAAY7gC,EAAM,UAAUohC,EAAS/C,SAEtD,CACA,OAAO,IACX,CAnDgBl6C,EAAAy8C,GAAA,eASPz8C,EAAA08C,GAAA,eAMA18C,EAAA48C,GAAA,kBAMA58C,EAAA+8C,GAAA,gBAgCT,MAAMn9C,GAASC,EAAAA,aAAa,eAEfk+C,GAAN,MAAMA,uBAAsB5P,EAAAA,MAC/B,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAIimC,OAErC,GALkFlnC,EAAA+9C,GAAA,iBAA/E,IAAMC,GAAND,GAOP,MAAME,GAAa,IAAID,GA2BVE,GAAN,MAAMA,kBAAiBvR,EAAAA,YAC1BljC,WACA00C,mBACA,WAAI1I,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CAExCi+C,YAAsB,EACtBC,eACAC,cAGR,cAAIzR,GAA+D,OAAOrmC,KAAKP,KAAO,CACtF,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,SAAIs4C,GAAkB,OAAO/3C,KAAKP,IAAI,QAAS,GAAK,CACpD,WAAI6T,GAAoB,OAAOtT,KAAKP,IAAI,UAAW,GAAK,CACxD,WAAIu4C,GAAoB,OAAOh4C,KAAKP,IAAI,UAAW,GAAK,CACxD,eAAIuhB,GAAwB,OAAOhhB,KAAKP,IAAI,cAAe,GAAK,CAChE,YAAIw4C,GAAqB,OAAOj4C,KAAKP,IAAI,WAAY,GAAK,CAC1D,WAAIy4C,GAAuB,OAAOl4C,KAAKP,IAAI,UAAWsgC,GAAUoY,QAAU,CAC1E,SAAIC,GAAkB,OAAOp4C,KAAKP,IAAI,UAAYsgC,GAAU//B,KAAKk4C,QAAU,CAC3E,aAAIG,GAAuB,OAAOr4C,KAAKP,IAAI,aAAa,EAAQ,CAChE,cAAIqD,GAAwC,OAAO9C,KAAKP,IAAI,aAAc,CAAE64C,aAAc,IAAO,CACjG,eAAItI,GAAyC,OAAOhwC,KAAKP,IAAI,cAAe,CAAE84C,KAAM,IAAO,CAEnFC,aAAe,IAAI1G,GAC3B,eAAI2G,GAAwB,OAAOz4C,KAAKP,IAAI,cAAe,EAAI,CAC/D,WAAI0W,GAAiC,OAAOnW,KAAKP,IAAI,UAAW,CAAEi5C,UAAW,IAAO,CACpF,YAAIC,GACA,OAAO34C,KAAKmW,QAAQuiC,UAAUxsC,IAAK0sC,GACxB54C,KAAKw4C,aAAa/4C,IAAIm5C,EAAW,IAC7BrrC,GAAO2iC,OAAOlwC,KAAKiD,WAAYjD,KAAK0gC,KAAMkY,EAAW54C,KAAKgwC,YAAYuI,OAGzF,CACA,mBAAIM,GACA,MAAMn5C,EAAoC,CAAA,EAI1C,OAHAM,KAAK24C,SAAS39C,QAASslC,IACnB5gC,EAAO4gC,EAAOoP,UAAYpP,IAEvB5gC,CACX,CACA,UAAIo5C,GAA+B,OAAO94C,KAAKP,IAAI,SAAU,CAAEs5C,SAAU,IAAO,CAChF,WAAIC,GACA,OAAOh5C,KAAK84C,OAAOC,SAAS7sC,IAAK86B,GACtB,IAAI4N,GAAM50C,KAAKiD,WAAYjD,KAAK0gC,KAAMsG,GAErD,CAEQiS,YAAc,IAAIpR,GAC1B,cAAIqR,GAAuB,OAAOl5C,KAAKP,IAAI,aAAc,EAAI,CAC7D,UAAI05C,GAA+B,OAAOn5C,KAAKP,IAAI,SAAU,CAAEgoC,SAAU,IAAO,CAChF,WAAI2R,GACA,OAAOp5C,KAAKm5C,OAAO1R,SAASv7B,IAAK26B,GACtB7mC,KAAKi5C,YAAYx5C,IAAIonC,EAAU,IAC3B,IAAIY,GAASznC,KAAM6mC,EAAU7mC,KAAKg5C,UAGrD,CACA,eAAIK,GAAyC,OAAOr5C,KAAKP,IAAI,cAAgB,CAC7E,oBAAI65C,GAA6B,OAAOt5C,KAAKP,IAAI,mBAAoB,EAAI,CACzE,gBAAI85C,GAA2C,OAAOv5C,KAAKP,IAAI,eAAgB,CAAEgsC,IAAK,IAAO,CAC7F,iBAAI+N,GACA,OAAOx5C,KAAKu5C,aAAa9N,IAAIv/B,IAAKnP,GACvB,IAAImvC,GAASlsC,KAAMjD,GAElC,CACA,oBAAImjC,GAA6B,OAAOlgC,KAAKP,IAAI,mBAAoB,GAAK,CAC1E,qBAAIg6C,GAA8B,OAAOz5C,KAAKP,IAAI,oBAAsB,CACxE,aAAIi6C,GAAuB,OAAO15C,KAAKP,IAAI,YAAc,CACzD,WAAIk6C,GAAqB,OAAO35C,KAAKP,IAAI,UAAY,CACrD,qBAAIm6C,GAAqD,OAAO55C,KAAKP,IAAI,oBAAqB,CAAEo6C,iBAAkB,IAAO,CACzH,mBAAIC,GAA6B,OAAO95C,KAAKP,IAAI,kBAAoB,CACrE,WAAI2gC,GAAoB,OAAOpgC,KAAKP,IAAI,UAAY,CACpD,iBAAIs6C,GAA0B,OAAO/5C,KAAKP,IAAI,gBAAkB,CAChE,iBAAIu6C,GAA0B,OAAOh6C,KAAKP,IAAI,gBAAkB,CAChE,YAAIw6C,GAAqB,OAAOj6C,KAAKP,IAAI,WAAa,CACtD,eAAIy6C,GAAwB,OAAOl6C,KAAKP,IAAI,cAAgB,CAC5D,iBAAI06C,GAA0B,OAAOn6C,KAAKP,IAAI,gBAAkB,CAChE,SAAI26C,GAA6B,OAAOp6C,KAAKP,IAAI,QAAU,CAC3D,gBAAI46C,GAAyB,OAAOr6C,KAAKP,IAAI,eAAgB,EAAI,CACjE,WAAI66C,GAAiC,OAAOt6C,KAAKP,IAAI,UAAW,CAAE86C,YAAa,IAAO,CACtF,eAAIC,GAAyC,OAAOx6C,KAAKP,IAAI,cAAgB,CAC7E,mBAAIg7C,GAAiD,OAAOz6C,KAAKP,IAAI,kBAAoB,CACzF,cAAIi7C,GAAuB,OAAO16C,KAAKP,IAAI,aAAc,EAAI,CAC7D,gBAAIk7C,GAAyB,OAAO36C,KAAKP,IAAI,eAAgB,EAAI,CACjE,aAAIm7C,GAAsB,OAAO56C,KAAKP,IAAI,YAAa,EAAI,CAC3D,cAAIo7C,GAAuB,OAAO76C,KAAKP,IAAI,aAAc,EAAI,CAC7D,mBAAIq7C,GAA4B,OAAO96C,KAAKP,IAAI,kBAAmB,EAAI,CACvE,eAAIs7C,GAAyC,OAAO/6C,KAAKP,IAAI,cAAe,CAAEu7C,cAAe,IAAO,CACpG,gBAAIC,GACA,OAAOj7C,KAAK+6C,YAAYC,cAAc9uC,IAAIkoC,GAAiB,IAAIC,GAAWr0C,KAAKiD,WAAYjD,KAAK0gC,KAAM0T,GAC1G,CACA,iBAAI8G,GAA0B,OAAOl7C,KAAKP,IAAI,gBAAiB,EAAI,CACnE,aAAI07C,GAAqC,OAAOn7C,KAAKP,IAAI,YAAa,CAAEi5C,UAAW,IAAO,CAC1F,cAAI0C,GAAuB,OAAOp7C,KAAKP,IAAI,aAAc,EAAI,CAC7D,iBAAI47C,GAA2B,OAAOr7C,KAAKP,IAAI,gBAAkB,CACjE,yBAAI67C,GAAkC,OAAOt7C,KAAKP,IAAI,wBAAyB,EAAI,CACnF,aAAI87C,GAAsB,OAAOv7C,KAAKP,IAAI,YAAc,CACxD,cAAI+7C,GAAuB,OAAOx7C,KAAKP,IAAI,aAAe,CAC1D,eAAIg8C,GAAwB,OAAOz7C,KAAKP,IAAI,cAAgB,CAC5D,mBAAIi8C,GAA4B,OAAO17C,KAAKP,IAAI,kBAAmB,EAAI,CACvE,mBAAIk8C,GAA4B,OAAO37C,KAAKP,IAAI,kBAAmB,EAAI,CACvE,iBAAIm8C,GAA0B,OAAO57C,KAAKP,IAAI,gBAAiB,EAAI,CACnE,YAAIo8C,GAAsB,OAAO77C,KAAKP,IAAI,WAAa,CACvD,gBAAIq8C,GAAyB,OAAO97C,KAAKP,IAAI,eAAiB,CAC9D,cAAIs8C,GAA2B,OAAO/7C,KAAKP,IAAI,aAAc,GAAoB,CACjF,SAAIu8C,GAAkB,OAAOh8C,KAAKP,IAAI,QAAU,CAChD,UAAIw8C,GAAoB,OAAOj8C,KAAKP,IAAI,SAAW,CACnD,UAAIqgC,GAAmB,OAAO9/B,KAAKP,IAAI,SAAW,CAClD,SAAIq0C,GAAkB,OAAO9zC,KAAKP,IAAI,QAAU,CAChD,WAAIy8C,GAAoB,OAAOl8C,KAAKP,IAAI,UAAY,CACpD,aAAI08C,GAAsB,OAAOn8C,KAAKP,IAAI,YAAc,CACxD,aAAI28C,GAAqC,OAAOp8C,KAAKP,IAAI,YAAc,CACvE,cAAI48C,GAAuC,OAAOr8C,KAAKP,IAAI,aAAe,CAC1E,eAAI68C,GAAwB,OAAOt8C,KAAKP,IAAI,cAAgB,CAC5D,cAAI88C,GAAuB,OAAOv8C,KAAKP,IAAI,aAAe,CAC1D,mBAAI+8C,GAA4B,OAAOx8C,KAAKP,IAAI,kBAAoB,CACpE,eAAIg9C,GAAwB,OAAOz8C,KAAKP,IAAI,cAAgB,CAC5D,iBAAIi9C,GAA0B,OAAO18C,KAAKP,IAAI,gBAAkB,CAChE,cAAIk9C,GAAuB,OAAO38C,KAAKP,IAAI,aAAe,CAC1D,mBAAIm9C,GAA4B,OAAO58C,KAAKP,IAAI,kBAAoB,CACpE,yBAAIo9C,GAAkC,OAAO78C,KAAKP,IAAI,wBAA0B,CAChF,iBAAIq9C,GAA0B,OAAO98C,KAAKP,IAAI,gBAAkB,CAChE,gBAAIs9C,GAA2C,OAAO/8C,KAAKP,IAAI,eAAiB,CAChF,eAAIu9C,GAAwB,OAAOh9C,KAAKP,IAAI,cAAgB,CAC5D,eAAIw9C,GAAwB,OAAOj9C,KAAKP,IAAI,cAAgB,CAC5D,kBAAIy9C,GAA2B,OAAOl9C,KAAKP,IAAI,iBAAmB,CAClE,YAAI09C,GAAsB,OAAOn9C,KAAKP,IAAI,WAAa,CACvD,oBAAI29C,GAAmD,OAAOp9C,KAAKP,IAAI,mBAAqB,CAC5F,uBAAI49C,GAAgC,OAAOr9C,KAAKP,IAAI,sBAAwB,CAC5E,eAAI69C,GAAwB,OAAOt9C,KAAKP,IAAI,cAAgB,CAG5D,aAAO89C,CAAO57C,GACV,MAAMjC,EAAmB,IAAIg4C,UAAS/1C,GACtC,OAAOjC,EAAOuD,WAAW04B,WAAW58B,KAAMrC,IACtC+6C,GAAW58B,IAAInb,GACfA,EAAOmb,IAAIne,EAAS8gD,UACb99C,GAEf,CAEA,aAAOwwC,CAAOvuC,EAAwCwuC,EAAcsN,GAChE,MAAM/9C,EAAmB+3C,GAAWh4C,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS+mC,KAAMyP,GAAQ,IAC9E,IAAIuH,UAAS/1C,EAAgBwuC,IAKxC,OAHIsN,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEA,kBAAOg+C,CAAY/jD,EAAiBw2C,GAChC,OAAOsH,GAAWz+B,IAAI,CAAEi2B,QAASt1C,EAAS+mC,KAAMyP,GACpD,CAEA,aAAO95B,CAAOsnC,EAAgCx7C,EAAgBy7C,EAAaC,GAAc,GACrF,OAAOnG,UAAS6F,OAAOI,GAAQ5+C,KAAMqnC,GAC1BA,EAAG6M,OAAO,CAAE6K,UAAWF,KAC/B7+C,KAAMqnC,GACEyX,EAAczX,EAAG/vB,OAAOlU,EAAQs9B,EAAAA,SAASK,OAAOie,SAAW3X,EAAG/vB,OAAOlU,GAEpF,CAEA,cAAO67C,CAAQL,EAAgCx7C,EAAgBy7C,GAC3D,OAAOlG,UAASrhC,OAAOsnC,EAAQx7C,EAAQy7C,GAAK,EAChD,CAEA,YAAOK,CAAMN,EAAgC1jD,GAEzC,OADoB,IAAImoC,GAAiBub,GACtB3f,QAAQ/jC,GAAM8E,KAAMrC,GAC5BA,EAAS8jC,UAAUC,YAAYv0B,IAAI,SAAUk6B,GAChD,OAAOsR,UAASxH,OAAOyN,EAAQvX,EAAG1F,KAAM0F,EAC5C,GAER,CAGU,WAAAnmC,CAAY0B,EAAwCwuC,GAC1DhvC,QACAnB,KAAKiD,WAAa,IAAIm/B,GAAiBzgC,GACvC3B,KAAK23C,mBAAqB,IAAIuG,GAA2Bv8C,GACzD3B,KAAKm+C,WAAWhO,EACpB,CAEA,UAAAgO,CAAWhO,GACPnwC,KAAKo+C,MAAM,CACP1d,KAAMyP,EACN+H,QAASnY,GAAUoY,SAE3B,CAEA,MAAAlF,CAAOr3C,GACH,OAAOoE,KAAKiD,WAAWw8B,SAAS,IACzB7jC,EAEC8kC,KAAM1gC,KAAK0gC,KACX2d,UAAWr+C,KAAKk4C,QAChBoG,YAAat+C,KAAKg4C,QAClBuG,gBAAiBv+C,KAAKghB,YACtBw9B,cAAex+C,KAAKq4C,UACpBoG,YAAaz+C,KAAKsT,UAEvBvU,KAAMrC,IACLsD,KAAK6a,IAAIne,EAAS8gD,UACXx9C,MAEf,CAEA,MAAAqW,CAAOqoC,EAAmB/iD,EAA0B8jC,EAAAA,SAASK,OAAO6e,IAAKC,GACrE,IAAIC,EAeJ,OAbIA,OADa,IAAbH,EACiBziD,QAAQC,QAAQwiD,GAEhB1+C,KAAK23C,mBAAmBte,+BAA+Bt6B,KAAMrC,GACnEA,EAAS+O,MAIxBzL,KAAK43C,YAAa,EACdj8C,IAAW8jC,EAAAA,SAASK,OAAOgf,QAC3BnjD,EAAS8jC,EAAAA,SAASK,OAAO6e,IACzB3+C,KAAK43C,YAAa,GAGfiH,EAAe9/C,KAAMggD,GACjB/+C,KAAKiD,WAAWw8B,SAAS,CAC5BiB,KAAM1gC,KAAK0gC,KACXZ,OAAQnkC,EACRu+C,YAAa0E,EACbpE,YAAa,CACTwE,WAAY,CACR,CACIvzC,KAAM,QACN4qB,MAAOr2B,KAAK43C,WAAa,IAAM,QAI5C74C,KAAMrC,IACLsD,KAAK6a,IAAIne,EAAS8gD,UAClBx9C,KAAK83C,cAAgBn8C,EACdqE,KAAKiD,WAAWs8B,SAAS,CAAEmB,KAAM1gC,KAAK0gC,KAAMptB,QAASyrC,OAEjEhgD,KAAK,IACGiB,KAEf,CAEA,UAAA4wC,GACI,OAAQ5wC,KAAKk4C,SACT,KAAKnY,GAAUkf,SACX,MAAyB,YAAlBj/C,KAAKi4C,UAA0Bj4C,KAAK83C,gBAAkBrY,EAAAA,SAASK,OAAOie,QACjF,KAAKhe,GAAUmf,UACf,KAAKnf,GAAU6G,OACf,KAAK7G,GAAUof,QACf,KAAKpf,GAAUqf,SACX,OAAO,EAGf,OAAO,CACX,CAEA,QAAAC,GACI,OAAQr/C,KAAKk4C,SACT,KAAKnY,GAAUof,QACf,KAAKpf,GAAU6G,OACX,OAAO,EAGf,OAAO,CACX,CAEA,SAAA0Y,GACI,OAAQt/C,KAAKk4C,UACJnY,GAAUqf,QAKvB,CAEA,WAAAG,GACI,OAAQv/C,KAAKk4C,SACT,KAAKnY,GAAUyf,YACf,KAAKzf,GAAU0f,aACX,OAAO,EAGf,OAAOz/C,KAAK43C,UAChB,CAEA,SAAA8H,GACI,OAAQ1/C,KAAKk4C,SACT,KAAKnY,GAAUkf,SACf,KAAKlf,GAAU3K,QACf,KAAK2K,GAAU4f,SACf,KAAK5f,GAAU6f,QACf,KAAK7f,GAAUyf,YACf,KAAKzf,GAAU0f,aACX,OAAO,EAGf,OAAO,CACX,CAEA,WAAAI,GACI,OAAO7/C,KAAK+6B,SAASlB,cAAYC,aAAagmB,YAClD,CAEA,KAAAC,GACI,OAAO//C,KAAK+6B,SAASlB,cAAYC,aAAakmB,MAClD,CAEA,QAAAC,GACI,OAAOjgD,KAAK+6B,SAASlB,cAAYC,aAAaomB,SAClD,CAEA,MAAAC,GACI,OAAOngD,KAAK+6B,SAASlB,cAAYC,aAAasmB,OAClD,CAEA,KAAAC,GACI,OAAOrgD,KAAK+6B,SAASlB,cAAYC,aAAawmB,MAClD,CAEA,OAAAC,GACI,OAAOvgD,KAAK+6B,SAASlB,cAAYC,aAAa0mB,QAClD,CAEA,SAAAC,GACI,OAAOzgD,KAAK+6B,SAASlB,cAAYC,aAAa4mB,UAClD,CAEA,SACI,OAAO1gD,KAAK+6B,SAASlB,cAAYC,aAAa9qB,OAClD,CAEA,OAAA2xC,GACI,OAAO3gD,KAAK+6B,SAASlB,cAAYC,aAAa8mB,QAClD,CAEA,UAAAC,GACI,OAAO7gD,KAAK+6B,SAASlB,cAAYC,aAAagnB,WAClD,CAEA,UAAAC,GACI,OAAO/gD,KAAK+6B,SAASlB,cAAYC,aAAaknB,WAClD,CAEA,QAAAC,GACI,OAAOjhD,KAAK++B,WAAW,CACnBmiB,eAAe,EACfC,eAAe,IAChBpiD,KAAK,KACJiB,KAAKm+C,WAAWn+C,KAAK0gC,MACd1gC,KAAKixC,UAAUlyC,KAAK,KACvBiB,KAAKohD,WACEphD,QAGnB,CAEA,KAAA7F,GACI,OAAO6F,KAAK++B,WAAW,CACnBmiB,eAAe,EACfC,eAAe,IAChBpiD,KAAMrC,GACEg7C,UAASxH,OAAOlwC,KAAKiD,WAAWhJ,OAAQyC,EAAS2kD,IAAIC,GAAG,GAAGC,MAC7DtQ,UAGb,CAEA,kBAAMuQ,GAMF,aALMxhD,KAAKg+B,UAEPh+B,KAAKk4C,UAAYnY,GAAUkf,UAAaj/C,KAAKi4C,UAAaj4C,KAAK83C,qBACzD93C,KAAKyhD,cAERzhD,IACX,CAEA,iBAAMyhD,CAAY7lD,GAEd,aADMoE,KAAKm9B,OAAOvhC,GACXoE,IACX,CAEA,kBAAM0hD,GAEF,aADM1hD,KAAK2hD,cACJ3hD,IACX,CAEA,aAAMixC,CAAQ2Q,GAAgB,EAAOhmD,GAMjC,OALIgmD,QACM3lD,QAAQmX,IAAI,CAACpT,KAAKyhD,YAAY7lD,GAAUoE,KAAK0hD,uBAE7C1hD,KAAKwhD,eAERxhD,IACX,CAEA,aAAA6hD,GACI,OAAO7hD,KAAK8C,WAAWw1C,YAC3B,CAEA,YAAAwJ,GACI,OAAO9hD,KAAKiD,WAAW++B,SAAS,CAC5BtB,KAAM1gC,KAAK0gC,KACXxf,KAAM,gBAEd,CAEA,kBAAA6gC,GACI,OAAO/hD,KAAKm9B,OAAO,CAAEyD,mBAAmB,IAAQ7hC,KAAK,IAC1CiB,KAAK6hD,gBAEpB,CAEA,YAAAG,GACI,OAAOhiD,KAAKm9B,OAAO,CAAE4D,gBAAgB,IAAQhiC,KAAK,IACvCiB,KAAK24C,SAEpB,CAEA,WAAAsJ,GACI,OAAOjiD,KAAKm9B,OAAO,CAAE0D,eAAe,IAAQ9hC,KAAK,IACtCiB,KAAKo5C,QAEpB,CAEA,UAAA8I,GACI,OAAOliD,KAAKm9B,OAAO,CAAEqE,YAAY,EAAMb,kBAAkB,IAAS5hC,KAAK,IAC5DiB,KAAKo6C,MAEpB,CAEA,YAAA+H,GACI,OAAOniD,KAAKm9B,OAAO,CAAEsE,gBAAgB,IAAQ1iC,KAAK,IACvCiB,KAAKs6C,SAASC,aAAe,GAE5C,CAEA,oBAAA6H,GACI,OAAOpiD,KAAKm9B,OAAO,CAAEuE,wBAAwB,IAAQ3iC,KAAK,IAC/CiB,KAAKy6C,iBAAiB4H,gBAAkB,GAEvD,CAEA,qBAAAC,GACI,OAAOtiD,KAAKm9B,OAAO,CAAEwE,yBAAyB,IAAQ5iC,KAAK,IAChDiB,KAAKkgC,iBAEpB,CAEA,iBAAAqiB,GACI,OAAOviD,KAAKm9B,OAAO,CAAEyE,qBAAqB,IAAQ7iC,KAAK,IAC5CiB,KAAK+8C,cAAc1uC,KAElC,CAEA,gBAAAm0C,CAAiB5mD,EAAuD,IACpE,OAAOoE,KAAKi8B,cAAcrgC,EAC9B,CAEA,eAAA6mD,CAAgB7mD,EAAmD,IAC/D,OAAOoE,KAAKg8B,UAAUpgC,GAASmD,KAAKrC,GAAYA,EAASgmD,OAAO5O,MACpE,CAEA,gBAAA6O,CAAiBC,EAAyCrb,GACtD,MAAMsb,EAAiC,CACnCztC,GAAI,CACA88B,QAAS,SAEbxmC,KAAM,CACFwmC,QAAS,SAEbx4C,KAAM,CACFw4C,QAAS,UAGX4Q,MAAkBpoC,IACxB,IAAA,MAAWqoC,KAAYH,EAAKI,YAAYzvB,UAAY,GAChDuvB,EAAYjoC,IAAIkoC,EAASE,KAAMF,EAASt3C,MAE5C,MAAMy3C,EAAiB,IAAIpoD,MAAMysC,EAAOnsC,QACxC,IAAA,IAASF,EAAI,EAAGA,EAAIqsC,EAAOnsC,OAAQF,IAAK,CACpC,MAAMwvC,EAAQnD,EAAOrsC,GACfioD,EAAgC,CAAA,EAChCC,EAAyC,CAAA,EAC/C,GAAI1Y,EAAM+H,YAAYC,SAClB,IAAA,MAAW2Q,KAAiB3Y,EAAM+H,WAAWC,SAAU,CACnD,MAAMkD,EAAUyN,EAAcnR,QACxBxmC,EAAO23C,EAAc53C,KACrB63C,EAAWD,EAAc9X,SAI/B,GAHgB,OAAZqK,IACAyN,EAAcnR,QAAU,KAEf,SAATxmC,EAAiB,CACjB,MAAM63C,EAAcrW,SAASoW,EAAU,IACvCD,EAAcrR,UAAY8Q,EAAYrjD,IAAI8jD,IAAgBD,CAC9D,CAOA,OANAT,EAAQn3C,GAAQ,CACZD,KAAM43C,EAAc53C,KACpBymC,QAASmR,EAAcnR,QACvBC,QAASkR,EAAclR,QACvBC,YAAaiR,EAAcjR,aAEvBiR,EAAcnR,SAClB,IAAK,OACDiR,EAAMz3C,MAAW43C,EACjB,MACJ,IAAK,KAML,IAAK,KAML,IAAK,MAML,IAAK,OAGL,IAAK,MACDH,EAAMz3C,IAAS43C,EACf,MApBJ,IAAK,IACDH,EAAMz3C,IAAS43C,EAAW,IAC1B,MAIJ,IAAK,KACDH,EAAMz3C,GAAQ,IAAIU,MAAMk3C,EAAW,KAAM52C,cACzC,MAIJ,IAAK,OACDy2C,EAAMz3C,IAAS43C,EAAW,IAC1B,MAeJ,QACIH,EAAMz3C,GAAQ43C,EAEtBF,EAAe13C,GAAQupC,GAAUoO,EAAcrR,WAAamR,EAAMz3C,GACtE,CAEJ,MAAM83C,EAA0B,CAC5BpuC,GAAIs1B,EAAME,GACVl/B,KAAMg/B,EAAMG,UACZnxC,KAAMgxC,EAAMC,UACZsY,KAAMvY,EAAY,KAClBpE,MAAOoE,EAAa,MACpByL,iBAAkBiN,EAClBK,eAAgB,CAAA,EAChBC,kBAAmB,CAAA,EACnBC,UAAW,EACXC,gBAAiB,MACdT,GAEDU,EAAiBL,EAAgBrO,IACvC,GAAI0O,EACA,IACI,MAAMC,EAAatoD,KAAKC,MAAMooD,EAAejhD,MAAM,MAAMvH,KAAK,SACxD0oD,EAA+E,GAErF,IAAA,IAAS19B,EAAI,EAAGA,EAAIy9B,EAAW1oD,OAAQirB,IAAK,CACxC,MAAM29B,EAAUF,EAAWz9B,GAAGqd,MAAM0R,IAChC4O,GACAD,EAAqB5oD,KAAK,CACtB8oD,UAAWD,EAAQ,IAAM,IAAMA,EAAQ,GAAKA,EAAQ,GACpD9oC,KAAMgyB,SAAS8W,EAAQ,GAAI,IAC3BE,IAAKhX,SAAS8W,EAAQ,GAAI,KAGtC,CACAR,EAAgBrO,IAAmB4O,CACvC,OAAS9kD,GACL7F,GAAOkE,MAAM,gCAAgCumD,IACjD,CAGJ,MAAMrN,EAAyB,CAAA,EAC/B,IAAI2N,EAAa,EACbC,EAAmB,GACvB,IAAA,MAAWxpD,KAAO4oD,EACd,IAAK5oD,EAAI26B,WAAW,MAAO,CACvB,MAAMt6B,EAAMs7C,GAAaiN,EAAiB5oD,EAAK47C,GAC3Cv7C,IACAuoD,EAAgBC,eAAexoD,EAAI47C,KAAO57C,GACrCujB,MAAMvjB,EAAI27C,UAAY37C,EAAI27C,QAAUuN,IACrCA,EAAalpD,EAAI27C,QACjBwN,EAAmBnpD,EAAI47C,KAGnC,CAEJ2M,EAAgBG,UAAYQ,EAC5BX,EAAgBI,gBAAkBQ,EAElClB,EAAKhoD,GAAKsoD,CACd,CACA,MAAO,CACHZ,OACAC,UACAK,OAER,CAEA,sBAAAmB,CAAuBzoD,EAAmD,IACtE,OAAOK,QAAQmX,IAAI,CAACpT,KAAKwiD,mBAAoBxiD,KAAKyiD,gBAAgB7mD,KAAWmD,KAAKulD,GACvEtkD,KAAK2iD,iBAAiB2B,EAAS,GAAIA,EAAS,IAE3D,CAEA,SAAAC,CAAU3oD,EAAuC,IAC7C,OAAOoE,KAAKm9B,OAAOvhC,EACvB,CAEA,YAAA4oD,CAAa5oD,EAAmD,IAC5D,OAAOoE,KAAKg8B,UAAUpgC,GAASmD,KAAMrC,GAC1BA,EAASgmD,OAAO5O,MAAM5nC,IAAKu4C,GACvB,IAAI3Q,GAAM9zC,KAAMykD,IAGnC,CAEA,qBAAAC,CAAsB9oD,EAA0C,IAC5D,OAAOoE,KAAKg8B,UAAUpgC,GAASmD,KAAMrC,IACjC,MAAMgD,EAAkB,GAGlBilD,EAAqC,CAAA,EAC3CjoD,EAASgmD,OAAO5O,MAAM94C,QAASypD,IAC3B,GAAIE,EAASF,EAAS5Z,WAElB,OADA8Z,EAASF,EAAS5Z,WAAWoI,OAAOwR,GAC7B,KACJ,CACH,MAAM/Z,EAAQ,IAAIoJ,GAAM9zC,KAAMykD,GAE9B,OADAE,EAASja,EAAMG,WAAaH,EACrBA,CACX,IAEJ,IAAA,MAAW9vC,KAAO+pD,EACd,GAAIA,EAAS9pD,eAAeD,GAAM,CAC9B,MAAM8vC,EAAQia,EAAS/pD,GACjBgqD,EAAgBla,EAAMK,cACxB6Z,GAAiBD,EAASC,GAC1BD,EAASC,GAAervC,WAAWpa,KAAKuvC,GAExChrC,EAAOvE,KAAKuvC,EAEpB,CAGJ,OAAOhrC,GAEf,CAEA,iBAAA4nC,CAAkBud,EAAqB,GAAIC,GACvC,OAAO9kD,KAAKwkD,aAAa,CACrBO,YAAa,CACTC,SAAU,OACVC,IAAKJ,EACLK,WAAYJ,GAEhBK,aAAc,CACVC,MAAO,OACPF,WAAY,CAAC,QAAS,WAAY,WAAY,OAAQ,aAE1DG,mBAAoB,CAChBC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,eAAe,EACfC,WAAW,GAEfC,aAAc,CACVC,WAAW,EACXC,cAAc,EACdC,kBAAkB,GAEtBC,gBAAiB,CACbC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,oBAAoB,IAGhC,CAEA,gBAAAC,CAAiBzB,EAAqB,IAClC,OAAO7kD,KAAKsnC,kBAAkBud,EAAU,CAAC,UAAU9lD,KAAMwoC,GAC9CC,GAAYD,GAE3B,CAEA,gBAAAgf,GACI,OAAOvmD,KAAKwkD,aAAa,CACrBO,YAAa,CACTyB,gBAAiB,CACbC,eAAgB,CAAC,CAAEh7C,KAAM,oBAGlC1M,KAAMwoC,IACL,MAAMmf,EAA6C,CAAA,EACnDnf,EAAOvsC,QAAS0vC,IACZgc,EAAUhc,EAAMG,WAAa6b,EAAUhc,EAAMG,YAAc,CACvDH,MAAOA,EAAMG,UACbpmB,MAAO,KACPkiC,QAAS,KACTC,OAAQ,MAEZlc,EAAMoI,YAAY93C,QAASswC,IACL,gBAAdA,EAAK7/B,KACLi7C,EAAUhc,EAAMG,WAAW8b,SAAWrb,EAAKC,SACnB,OAAjBD,EAAK4G,SAAoB5G,EAAK7/B,KAAKzO,QAAQ,YAAc,IAChE0pD,EAAUhc,EAAMG,WAAWpmB,MAAQ6mB,EAAK0G,eAKpD,MAAMtyC,EAAyB,GAC/B,IAAA,MAAW9E,KAAO8rD,EAAW,CACzB,MAAMhc,EAAQgc,EAAU9rD,GACxB,GAAI8vC,EAAMjmB,OAASimB,EAAMic,QAAS,CAC9B,MAAME,EAAU/R,GAAOpK,EAAMjmB,OAC7BoiC,EAASC,gBAAgBD,EAASr0B,kBAAoBkY,EAAMic,QAAU,KACtEjc,EAAMkc,OAAS/R,GAAUgS,GACzBnnD,EAAOvE,KAAKuvC,EAChB,CACJ,CAMA,OALAhrC,EAAOqnD,KAAK,CAACC,EAAGpiB,IACRoiB,EAAEviC,MAAQmgB,EAAEngB,OAAc,EAC1BuiC,EAAEviC,MAAQmgB,EAAEngB,MAAc,EACvB,GAEJ/kB,GAEf,CAGU,QAAA0hD,GACFphD,KAAK4wC,aACL5wC,KAAKinD,kBAAoB,EAG7B9lD,MAAMigD,UACV,CAEU,uBAAA8F,GACN,MAAMxnD,EAASyB,MAAM+lD,0BACrB,OAAIlnD,KAAKinD,mBAAqB,EACnB,IACAjnD,KAAKinD,mBAAqB,EAC1B,IACAjnD,KAAKinD,mBAAqB,EAC1B,IACAjnD,KAAKinD,mBAAqB,EAC1B,IAEJvnD,CACX,CAGA,EAAAynD,CAAGC,EAAyBC,EAAwDtf,GAChF,GAAI/nC,KAAKsnD,WAAWD,GAChB,OAAQD,GACJ,IAAK,YACDjmD,MAAMgmD,GAAG,cAAe,UAAYI,IAC5BvnD,KAAK4wC,cACLyW,EAAiB,CAACE,MAG1B,MACJ,IAAK,UACDpmD,MAAMgmD,GAAGC,EAASC,QAK1B,GACS,YADDD,EAEAjmD,MAAMgmD,GAAGC,EAASC,EAAkBtf,GAMhD,OADA/nC,KAAKohD,WACEphD,IACX,CAEA,kBAAAwnD,CAAmBzf,GACf,OAAO,IAAI9rC,QAAQ,CAACC,EAASgE,KACzB,MAAMunD,EAAcznD,KAAK0nD,MAAOC,IACxB5f,GACAA,EAAS4f,GAET3nD,KAAK4wC,eACL6W,EAAYG,UACZ1rD,EAAQ8D,UAIxB,CAEA,iBAAA6nD,CAAkB9f,GACd,OAAO,IAAI9rC,QAAQ,CAACC,EAASgE,KACzB,MAAMunD,EAAcznD,KAAK0nD,MAAOC,IACxB5f,GACAA,EAAS4f,IAET3nD,KAAK4wC,cAAgB5wC,KAAK0/C,eAC1B+H,EAAYG,UACZ1rD,EAAQ8D,UAIxB,CAGU,OAAAg+B,CAAQ37B,EAAyC,IACvD,OAAOrC,KAAKiD,WAAW+6B,QAAQ,IAAK37B,EAAUq+B,KAAM1gC,KAAK0gC,OAAQ3hC,KAAMrC,IACrB,IAA1CA,EAAS8jC,UAAUC,YAAYrlC,QAE/B4E,KAAKm+C,WAAWn+C,KAAK0gC,MACrB1gC,KAAK6a,IAAI,UAAWklB,GAAUqf,WAE9Bp/C,KAAK6a,IAAIne,EAAS8jC,UAAUC,YAAY,IAErC/jC,IACRsC,MAAOC,IAUN,IARkBA,EAAEgC,UAAUmJ,KAAMC,GACT,QAAnBA,EAAUhJ,OACVrB,KAAKm+C,WAAWn+C,KAAK0gC,MACrB1gC,KAAK6a,IAAI,UAAWklB,GAAUqf,WACvB,IAMX,MADAhmD,GAAO0jB,QAAQ,6BAA6B7d,EAAEmC,WACxCnC,EAEV,MAAO,CAAA,GAEf,CAEU,QAAA08B,GACN,OAAO37B,KAAKiD,WAAW04B,WAAW58B,KAAMrC,IACpCsD,KAAK6a,IAAIne,EAAS8gD,UAClB/F,GAAW58B,IAAI7a,MACRtD,GAEf,CAEU,MAAAygC,CAAO96B,EAAwC,IACrD,MAAMylD,EAAiBzlD,EAAS0+B,gBAAkB1+B,EAAS2+B,wBAC3D,OAAOhhC,KAAKiD,WAAWk6B,OAAO,IACvB96B,EACHq+B,KAAM1gC,KAAK0gC,KACXK,eAAgB+mB,EAChB9mB,wBAAyB8mB,EACzBjmB,uBAAuB,IACxB9iC,KAAMrC,IACLsD,KAAK6a,IAAIne,EAAS8gD,UACdsK,GACA9nD,KAAK6a,IAAI,CACLm1B,YAAatzC,EAASszC,cAGvBtzC,IACRsC,MAAOC,IAUN,IARkBA,EAAEgC,UAAUmJ,KAAMC,GACT,QAAnBA,EAAUhJ,OACVrB,KAAKm+C,WAAWn+C,KAAK0gC,MACrB1gC,KAAK6a,IAAI,UAAWklB,GAAUqf,WACvB,IAMX,MADAhmD,GAAO0jB,QAAQ,6BAA6B7d,EAAEmC,WACxCnC,EAEV,MAAO,CAAA,GAEf,CAEU,UAAA8/B,CAAWnjC,GACjB,OAAOoE,KAAKiD,WAAW87B,WAAWgpB,EAAAA,WAAmC,CAAA,EAAInsD,EAAS,CAC9EosD,MAAO,CAAE35C,KAAM,CAACrO,KAAK0gC,SAE7B,CAEU,aAAAzE,CAAcrgC,GACpB,OAAOoE,KAAKiD,WAAWg5B,cAAcrgC,EACzC,CAEU,SAAAogC,CAAUpgC,GAChB,OAAOoE,KAAKiD,WAAW+4B,UAAU+rB,aAAkC,CAC/DhD,YAAa,CACTC,SAAU,MAEdW,aAAc,CACVsC,+BAA+B,EAC/BpC,cAAc,EACdD,WAAW,EACXE,kBAAkB,GAEtBC,gBAAiB,CACbC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,oBAAoB,IAEzBzqD,EAAS,CAAE2lD,KAAMvhD,KAAK0gC,QAAS3hC,KAAMrC,GAC7BqrD,aAA0C,CAC7CrF,OAAQ,CACJ5O,MAAO,KAEZp3C,GAEX,CAEU,QAAAq+B,CAASmtB,GACf,OAAOloD,KAAKiD,WAAW83B,SAAS,CAC5BitB,MAAO,CAAE35C,KAAM,CAACrO,KAAK0gC,OACrBqB,aAAcmmB,IACfnpD,KAAMrC,GACEsD,KAAKixC,UAAUlyC,KAAK,KACvBiB,KAAKohD,WACE1kD,IAGnB,CAEA,OAAAyrD,CAAQz8C,GACJ,OAAO1L,KAAKiD,WAAW66B,kBAAkB,CACrC4C,KAAM1gC,KAAK0gC,KACXptB,QAAStT,KAAKsT,QACd80C,QAAS18C,GAAQ1L,KAAKg4C,QACtBqQ,mBAAmB,EACnBC,SAAUzuB,EAAAA,YAAYa,sBAAsB6tB,cAC5CC,KAAM,KAEd,CAEA,SAAAC,CAAU7sD,GACN,MAAMoG,EAAU,IAAIugC,GAAmB,CAAE5oC,QAAS,KAC5C+uD,EAAiB,CACnBhoB,KAAM1gC,KAAK0gC,KACXptB,QAAStT,KAAKsT,QACd80C,QAASpoD,KAAKg4C,QACdqQ,mBAAmB,EACnBC,SAAU,EACVE,KAAM,OACH5sD,GAEP,OAAOoG,EAAQsgC,oBAAoBomB,EACvC,CAEU,QAAAxtB,CAASytB,EAAiB1uD,EAAY,IAC5C,IAAI2uD,EAAU,GACd,IAAA,MAAWhuD,KAAOX,EACVA,EAAKY,eAAeD,KACpBguD,GAAW,IAAIhuD,MAAQX,EAAKW,OAGpC,OAAOoF,KAAKiD,WAAWi/B,WAAW,CAC9BxB,KAAM1gC,KAAK0gC,KACXmoB,QAAS,UAAUF,UAAgB3oD,KAAK0gC,QAAQkoB,QACjD7pD,KAAMrC,GACEA,EAEf,CAEA,KAAAc,CAAMmrD,EAAiB1uD,GACnB,OAAK+F,KAAKu/C,cAGHv/C,KAAKk7B,SAASytB,EAAS1uD,GAAM8E,KAAMrC,IACtC,MAAMgD,EAAoBhD,EAAS6Y,SAASozC,GAC5C,OAAIjpD,EAAOtE,OACAsE,EAAO,GAEX,IAAIopD,EAAAA,QAAQH,KACpB3pD,MAAOkB,IACN9G,GAAOkE,MAAM4C,GACNjE,QAAQC,QAAQ,IAAI4sD,EAAAA,QAAQH,MAV5B1sD,QAAQC,QAAQ,IAAI4sD,EAAAA,QAAQH,GAY3C,CAEA,WAAAhH,GACI,OAAK3hD,KAAKu/C,cAKHv/C,KAAKxC,MAAM,UAAUuB,KAAMrC,IAC9B,MAAMqsD,EAAa,IAAK/oD,KAAK+7C,cAAer/C,EAASurC,GAIrD,OAHAjoC,KAAK6a,IAAI,CACLkhC,WAAYgN,IAETrsD,IATAT,QAAQC,QAAa,CACxB6/C,WAAY,CAAE0B,MAAO,YAUjC,CAEA,aAAAuL,CAAcC,EAAO,IACjB,OAAOjpD,KAAKxC,MAAM,WAAY,CAC1ByrD,QAER,CAEA,SAAAC,CAAUD,GACN,OAAOjpD,KAAKxC,MAAM,OAAQ,CACtByrD,QAER,CAEA,UAAAE,GACI,OAAOnpD,KAAKxC,MAAM,YACtB,CAEA,SAAA4rD,GACI,OAAOppD,KAAKxC,MAAM,OACtB,CAEA,yBAAA6rD,GACI,OAAOrpD,KAAKxC,MAAM,SAAU,CACxBm8B,IAAK,GAEb,CAEU,6BAAA2vB,CAA8BC,GACpC,OAAOA,EAASh0C,WAAWrJ,IAAKg8B,IAC5B,GAAuB,UAAnBA,EAAUx8B,KACV,OAAOw8B,EAAUD,GAG7B,CAEA,kBAAAuhB,CAAmBp0C,EAAY6zC,EAActtD,GACzC,OAAOqE,KAAKxC,MAAM,aAAc,CAC5B4X,KACA6zC,OACAttD,WACDoD,KAAMwqD,GACEvpD,KAAKspD,8BAA8BC,GAElD,CAEA,mBAAAE,GACI,OAAOzpD,KAAKxC,MAAM,QAAQuB,KAAMwqD,GACrBvpD,KAAKspD,8BAA8BC,GAElD,CAEA,UAAAG,GACI,OAAI1pD,KAAK63C,gBAAkB73C,KAAK+7C,WAAkC,wBAAM/7C,KAAK+7C,WAA6B,iBAC/F9/C,QAAQC,QAAQ8D,KAAK63C,gBAEzB73C,KAAKxC,MAAM,QAAS,CAAEkO,KAAM,QAAS3M,KAAMrC,IAC9CsD,KAAK+7C,WAAkC,sBAAI/7C,KAAK+7C,WAA6B,iBAC7E/7C,KAAK63C,eAAiB5O,GAAiBjpC,KAAK0gC,KAAMhkC,GAC3CsD,KAAK63C,gBAEpB,CAEA,oBAAA8R,CAAqBC,GACjB,OAAO5pD,KAAK0pD,aAAa3qD,KAAMuqC,GACpBugB,GAAoBvgB,EAAOsgB,GAE1C,CAEA,UAAAE,CAAWC,EAAgBC,EAAmB,EAAGC,EAAkB,IAC/D,OAAOjqD,KAAKxC,MAAM,QAAS,CACvBusD,SACAC,WACAC,YACDlrD,KAAMrC,GACEA,EAAS6Y,WAAWrJ,IAAKg+C,IAC5B,MAAMxqD,EAAuB,CAAA,EAI7B,OAHAwqD,EAAQ30C,WAAWva,QAASmvD,IACxBzqD,EAAOyqD,EAASz+C,MAAQy+C,EAASC,UAE9B1qD,IAGnB,GAxkCsGlG,EAAAk+C,GAAA,YAAnG,IAAM8F,GAAN9F,GAklCP,MAAM2S,GAAkB,aAExB,SAASC,GAAiBxgB,GACtB,YAAsC,IAA/BA,EAAO5pC,EAAGmqD,GACrB,CAEA,SAASE,GAAiBzgB,GACtB,MAAMpG,EAAQ,6EAA6EvS,KAAK2Y,EAAO5pC,EAAGmqD,KAC1G,GAAI3mB,EAAO,CACP,OAAS8mB,EAAOC,EAAMC,GAAQhnB,EAE9B,OADA8mB,EAAMp4B,QAAQ,UAAW,KAClB,CACHhd,GAAI00B,EAAO5pC,EAAO,GAClByqD,KAAMH,EACNtvC,MAAOuvC,EACPjvC,QAASkvC,EAEjB,CACA,MAAM,IAAIntD,MAAM,oBAAoBusC,EAAO5pC,EAAGmqD,MAClD,CAEA,SAASR,GAAoBvgB,EAAmBsgB,GAC5C,MAAMlqD,EAA0B,GAChC,IAAA,MAAWoqC,KAAUR,EAAMF,SACvB,GAAIkhB,GAAiBxgB,GAAS,CAC1B,MAAMzW,EAAak3B,GAAiBzgB,IAChCzW,IAAeu2B,GAAQA,IAASv2B,EAAWs3B,OAC3CjrD,EAAOvE,KAAKk4B,EAEpB,CAEJ,OAAO3zB,EAAOqnD,KAAK,CAACC,EAAGpiB,IACZoiB,EAAE9rC,KAAO0pB,EAAE1pB,KAE1B,CCvzCA,IAAI0vC,GDuxCKpxD,EAAA8wD,GAAA,oBAIA9wD,EAAA+wD,GAAA,oBAeA/wD,EAAAqwD,GAAA,uBCnyCF,MAAMgB,GAAN,MAAMA,kBAAiB1kB,EAAAA,YAChBljC,WAEV,cAAIojC,GAA+B,OAAOrmC,KAAKP,KAAO,CACtD,cAAIqD,GAAiC,OAAO9C,KAAKP,IAAI,aAAe,CACpE,SAAIqrD,GAAkB,OAAO9qD,KAAKP,IAAI,QAAU,CAChD,mBAAIsrD,GAA2C,OAAO/qD,KAAKP,IAAI,kBAAoB,CACnF,oBAAIurD,GAA6C,OAAOhrD,KAAKP,IAAI,mBAAqB,CACtF,oBAAIwrD,GAA6C,OAAOjrD,KAAKP,IAAI,mBAAqB,CACtF,WAAIyrD,GAA2B,OAAOlrD,KAAKP,IAAI,UAAY,CAC3D,WAAI21B,GAA2B,OAAOp1B,KAAKP,IAAI,UAAW,CAAE41B,eAAgB,IAAO,CACnF,iBAAI81B,GAA0B,OAAOnrD,KAAKP,IAAI,gBAAkB,CAChE,eAAI2rD,GAAwB,OAAOprD,KAAKP,IAAI,cAAgB,CAC5D,cAAI4rD,GAAuB,OAAOrrD,KAAKP,IAAI,aAAe,CAC1D,gBAAI6rD,GAAyB,OAAOtrD,KAAKP,IAAI,eAAiB,CAC9D,WAAI8rD,GAAoB,OAAOvrD,KAAKP,IAAI,UAAY,CACpD,cAAI+rD,GAAuB,OAAOxrD,KAAKP,IAAI,aAAe,CAC1D,eAAIgsD,GAAwB,OAAOzrD,KAAKP,IAAI,cAAgB,CAC5D,UAAI2c,GAAmB,OAAOpc,KAAKP,IAAI,SAAW,CAClD,cAAIisD,GAAwB,OAAO1rD,KAAKP,IAAI,aAAe,CAC3D,aAAIksD,GAAuB,OAAO3rD,KAAKP,IAAI,YAAc,CACzD,eAAImsD,GAAwB,OAAO5rD,KAAKP,IAAI,cAAgB,CAC5D,mBAAIosD,GAA2C,OAAO7rD,KAAKP,IAAI,kBAAoB,CACnF,gBAAIqsD,GAAyB,OAAO9rD,KAAKP,IAAI,eAAiB,CAC9D,gBAAIssD,GAA0B,OAAO/rD,KAAKP,IAAI,eAAiB,CAE/D,aAAOywC,CAAOvuC,EAAqD87C,GAO/D,OANKmN,KACDA,GAAY,IAAIC,UAASlpD,IAEzB87C,GACAmN,GAAU/vC,IAAI4iC,GAEXmN,EACX,CAEU,WAAA3qD,CAAY0B,GAClBR,QAEInB,KAAKiD,WADLtB,aAA0B80B,GACR90B,EAEA,IAAI80B,GAAW90B,GAErC3B,KAAKo+C,MAAM,GAEf,CAEA,gBAAA4N,CAAiBC,EAAsB,IACnC,OAAOjsD,KAAKo1B,QAAQC,eAAetpB,UAA8B,KAAhBkgD,GAAsBC,EAAIC,cAAgBF,GAAa//C,IAAIggD,GAAO1O,GAAStN,OAAOlwC,KAAKiD,WAAWkyB,oBAAqB+2B,EAAIxrB,KAAMwrB,GACtL,CAEA,SAAAE,CAAUxwD,GACN,OAAOoE,KAAKiD,WAAW0xB,UAAU,IAC1B/4B,IACemD,KAAMrC,IACxBsD,KAAK6a,IAAIne,GACFsD,MAEf,CAEAqsD,YAAcC,EAAAA,SAASC,UACnB,MAAM7vD,QAAiBsD,KAAKiD,WAAWswB,SAAS,CAAA,GAEhD,OADAvzB,KAAK6a,IAAIne,GACFsD,OAGX,aAAMixC,GACF,OAAOjxC,KAAKqsD,aAChB,GApEgG7yD,EAAAqxD,GAAA,YAA7F,IAAMt3B,GAANs3B,GCPP,MAAMzxD,GAASC,EAAAA,aAAa,kBAEfmzD,GAAN,MAAMA,0BAAyB7kB,EAAAA,MAClC,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAI6Y,WAAW7Y,EAAIgR,OAEpD,GALyGjS,EAAAgzD,GAAA,oBAAtG,IAAMC,GAAND,GAOP,MAAME,GAAS,IAAID,GAgBNE,GAAN,MAAMA,qBAAoBxmB,EAAAA,YACnBljC,WACV,WAAIgsC,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CAEhD,WAAI2Z,GAAoB,OAAOtT,KAAKP,IAAI,UAAY,CACpD,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAE9C,YAAImtD,GAAqB,OAAO5sD,KAAKP,IAAI,WAAa,CACtD,UAAIotD,GAAmB,OAAO7sD,KAAKP,IAAI,SAAW,CAClD,aAAI8T,GAAsB,OAAOvT,KAAKP,IAAI,YAAc,CACxD,YAAIqtD,GAAqB,OAAO9sD,KAAKP,IAAI,WAAa,CACtD,eAAIuhB,GAAwB,OAAOhhB,KAAKP,IAAI,cAAgB,CAC5D,OAAIstD,GAAgB,OAAO/sD,KAAKP,IAAI,MAAQ,CAC5C,YAAIutD,GAAqB,OAAOhtD,KAAKP,IAAI,WAAa,CACtD,YAAIwtD,GAAqB,OAAOjtD,KAAKP,IAAI,WAAa,CACtD,iBAAIytD,GAA0B,OAAOltD,KAAKP,IAAI,gBAAkB,CAChE,cAAI0tD,GAAuB,OAAOntD,KAAKP,IAAI,aAAe,CAC1D,eAAI2tD,GAAwB,OAAOptD,KAAKP,IAAI,cAAgB,CAC5D,mBAAI4tD,GAA4B,OAAOrtD,KAAKP,IAAI,kBAAoB,CACpE,oBAAI6tD,GAA6B,OAAOttD,KAAKP,IAAI,mBAAqB,CACtE,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,SAAIs4C,GAAkB,OAAO/3C,KAAKP,IAAI,QAAU,CAChD,WAAI2oD,GAAoB,OAAOpoD,KAAKP,IAAI,UAAY,CACpD,cAAI8tD,GAAuB,OAAOvtD,KAAKP,IAAI,aAAe,CAC1D,UAAI0c,GAAmB,OAAOnc,KAAKP,IAAI,SAAW,CAClD,iBAAI+tD,GAA0B,OAAOxtD,KAAKP,IAAI,gBAAkB,CAChE,eAAIguD,GAAwB,OAAOztD,KAAKP,IAAI,cAAgB,CAC5D,YAAIiuD,GAAqB,OAAO1tD,KAAKP,IAAI,WAAa,CACtD,gBAAIkuD,GAAyB,OAAO3tD,KAAKP,IAAI,eAAiB,CAC9D,aAAImuD,GAAsB,OAAO5tD,KAAKP,IAAI,YAAc,CACxD,YAAIouD,GAAqB,OAAO7tD,KAAKP,IAAI,WAAa,CACtD,OAAIquD,GAAgB,OAAO9tD,KAAKP,IAAI,MAAQ,CAC5C,QAAI+2B,GAAqB,OAAOx2B,KAAKP,IAAI,OAAS,CAClD,0BAAIsuD,GAAyD,OAAO/tD,KAAKP,IAAI,yBAA2B,CACxG,eAAIuuD,GAAyB,OAAOhuD,KAAKP,IAAI,cAAgB,CAC7D,mBAAIqwC,GAA6B,OAAO9vC,KAAKP,IAAI,kBAAoB,CACrE,YAAIsU,GAA6B,OAAO/T,KAAKP,IAAI,WAAa,CAC9D,cAAIoU,GAAiC,OAAO7T,KAAKP,IAAI,aAAe,CACpE,eAAIwuD,GAAmC,OAAOjuD,KAAKP,IAAI,cAAgB,CACvE,oBAAIyuD,GAA8B,OAAOluD,KAAKP,IAAI,mBAAqB,CACvE,UAAI05C,GAAyB,OAAOn5C,KAAKP,IAAI,SAAW,CACxD,kBAAI0uD,GAA2B,OAAOnuD,KAAKP,IAAI,iBAAmB,CAClE,eAAI2uD,GAAwB,OAAOpuD,KAAKP,IAAI,cAAgB,CAC5D,sBAAI4uD,GAA+B,OAAOruD,KAAKP,IAAI,qBAAuB,CAC1E,qBAAI6uD,GAA8B,OAAOtuD,KAAKP,IAAI,oBAAsB,CACxE,gBAAI8uD,GAA0B,OAAOvuD,KAAKP,IAAI,eAAiB,CAC/D,cAAI+uD,GAAwB,OAAOxuD,KAAKP,IAAI,aAAe,CAC3D,YAAIgvD,GAAqB,OAAOzuD,KAAKP,IAAI,WAAa,CACtD,WAAIivD,GAAgC,OAAO1uD,KAAKP,IAAI,UAAY,CAChE,aAAIkvD,GAAsB,OAAO3uD,KAAKP,IAAI,YAAc,CACxD,aAAImvD,GAA+B,OAAO5uD,KAAKP,IAAI,YAAc,CACjE,UAAIovD,GAAyB,OAAO7uD,KAAKP,IAAI,SAAW,CACxD,cAAIqvD,GAAuB,OAAO9uD,KAAKP,IAAI,aAAe,CAC1D,WAAIsvD,GAAoB,OAAO/uD,KAAKP,IAAI,UAAY,CACpD,gBAAIuvD,GAA0B,OAAOhvD,KAAKP,IAAI,eAAiB,CAC/D,cAAIwvD,GAAuB,OAAOjvD,KAAKP,IAAI,aAAe,CAC1D,cAAIyvD,GAAuB,OAAOlvD,KAAKP,IAAI,aAAe,CAC1D,WAAIy4C,GAAoB,OAAOl4C,KAAKP,IAAI,UAAY,CACpD,kBAAI0vD,GAA2B,OAAOnvD,KAAKP,IAAI,iBAAmB,CAClE,qBAAI2vD,GAA+C,OAAOpvD,KAAKP,IAAI,oBAAsB,CACzF,mBAAI4vD,GAA4B,OAAOrvD,KAAKP,IAAI,kBAAoB,CAEpE,cAAI4mC,GAA6B,OAAOrmC,KAAKP,KAAO,CAEpD,aAAOywC,CAAOvuC,EAAqD2R,EAAiB7H,EAAcgyC,GAC9F,MAAM/9C,EAAsBgtD,GAAOjtD,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS2Z,UAAS7H,QAAQ,IAChF,IAAIkhD,aAAYhrD,EAAgB2R,EAAS7H,IAKpD,OAHIgyC,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEU,WAAAO,CAAY0B,EAAqD2R,EAAiB7H,GACxFtK,QAEInB,KAAKiD,WADLtB,aAA0BsS,GACRtS,EAEA,IAAIsS,GAAWtS,GAGrC3B,KAAKo+C,MAAM,CACP9qC,UACA7H,QAER,CAEA,kBAAA6jD,GACI,MAAO,IAAKtvD,KAAK+tD,wBAAwBwB,uBAAyB,GACtE,CAEA,SAAAC,GACI,MAAM9vD,EAAsB,GAC5B,IAAA,MAAW+vD,KAAOzvD,KAAK+tD,wBAAwBwB,uBAAyB,GACpE,IAAA,MAAWG,KAAQD,GAAKE,cAAcC,SAAW,GAAI,CACjD,MAAM30D,EAAM,IAAKw0D,KAAQC,UAClBz0D,EAAI00D,aACXjwD,EAAOvE,KAAKF,EAChB,CAEJ,OAAOyE,CACX,CAEA,MAAAuzC,CAAOr3C,GACH,OAAOoE,KAAKiD,WAAWgP,QAAQ,IACxBrW,EAEC0X,QAAStT,KAAKsT,QACd7H,KAAMzL,KAAKyL,OAEhB1M,KAAMrC,IACLsD,KAAK6a,IAAI,CACLvH,QAAStT,KAAKsT,WACX5W,EAASkX,aAETlX,GAEf,CAEA,SAAA6nD,GACI,OAAOvkD,KAAKiD,WAAWgP,QAAQ,CAAEqB,QAAStT,KAAKsT,QAAS7H,KAAMzL,KAAKyL,OAAQ1M,KAAKrC,IAC5EsD,KAAK6a,IAAI,CACLvH,QAAStT,KAAKsT,WACX5W,EAASkX,WACZq6C,YAAavxD,GAAUkX,YAAYq6C,aAAe,CAAE4B,eAAgB,MAEjEnzD,EAASkX,aACjB5U,MAAOC,IAUN,IARoBA,EAAEgC,UAAUmJ,KAAMC,GACX,QAAnBA,EAAUhJ,OACVrB,KAAK6a,IAAI,OAAQ7a,KAAKyL,KAAO,cAC7BzL,KAAK6a,IAAI,UAAW,MACb,IAMX,MADAzhB,GAAO0jB,QAAQ,6BAA6B7d,EAAEmC,WACxCnC,EAEV,MAAO,CAAA,GAEf,CAEA,YAAA6wD,CAAax/B,GACT,OAAOtwB,KAAKiD,WAAW8P,QAAQ,CAAEtH,KAAMzL,KAAKyL,KAAM0Q,OAAQmU,GAC9D,CAEA,oBAAAy/B,GACI,OAAO/vD,KAAKiD,WAAW+P,2BAA2B,CAAChT,MACvD,CAEA,gBAAAgwD,GACI,OAAOhwD,KAAKiD,WAAWwP,YAAY,CAAEhH,KAAMzL,KAAKyL,OAAQ1M,KAAKrC,GAClDA,GAAUuzD,SAASC,QAAU,GAE5C,CAEA,YAAAC,GACI,OAAOnwD,KAAKiD,WAAWuP,aAAa,CAAE/G,KAAMzL,KAAKyL,OAAQ1M,KAAKrC,GACnDA,GAAUuzD,SAASC,QAAU,GAE5C,GApK6F12D,EAAAmzD,GAAA,eAA1F,IAAMyD,GAANzD,GC1BA,MAAM0D,GAAN,MAAMA,sBAAqB1oB,EAAAA,MAC9B,WAAA1nC,GACIkB,MAAO1G,GACIA,EAAI61D,QAEnB,GALkE92D,EAAA62D,GAAA,gBAA/D,IAAME,GAANF,GAOP,MAAMG,GAAY,IAAID,GAKTE,GAAN,MAAMA,iBAAgBtqB,EAAAA,YACfljC,WAEV,WAAIqtD,GAAoB,OAAOtwD,KAAKP,IAAI,UAAY,CACpD,iBAAIixD,GAA0B,OAAO1wD,KAAKP,IAAI,gBAAkB,CAChE,QAAIgM,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,eAAIkxD,GAAwB,OAAO3wD,KAAKP,IAAI,cAAgB,CAC5D,eAAImxD,GAAwB,OAAO5wD,KAAKP,IAAI,cAAgB,CAC5D,eAAIuhB,GAAwB,OAAOhhB,KAAKP,IAAI,cAAgB,CAC5D,gBAAIoxD,GAAyB,OAAO7wD,KAAKP,IAAI,eAAiB,CAC9D,WAAIqxD,GAAoB,OAAO9wD,KAAKP,IAAI,UAAY,CACpD,YAAIsxD,GAAqB,OAAO/wD,KAAKP,IAAI,WAAa,CACtD,UAAIuxD,GAAmB,OAAOhxD,KAAKP,IAAI,SAAW,CAClD,iBAAIwxD,GAA0B,OAAOjxD,KAAKP,IAAI,gBAAkB,CAChE,iBAAIyxD,GAA0B,OAAOlxD,KAAKP,IAAI,gBAAkB,CAChE,cAAI0xD,GAAuB,OAAOnxD,KAAKP,IAAI,aAAe,CAC1D,qBAAI2xD,GAA8B,OAAOpxD,KAAKP,IAAI,oBAAsB,CACxE,MAAI4xD,GAAe,OAAOrxD,KAAKP,IAAI,KAAO,CAC1C,iBAAI6xD,GAA0B,OAAOtxD,KAAKP,IAAI,gBAAkB,CAChE,YAAI8xD,GAAqB,OAAOvxD,KAAKP,IAAI,WAAa,CACtD,cAAI+xD,GAAqC,OAAOxxD,KAAKP,IAAI,aAAe,CACxE,WAAIgyD,GAA+B,OAAOzxD,KAAKP,IAAI,UAAY,CAC/D,WAAI21B,GAA+B,OAAOp1B,KAAKP,IAAI,UAAY,CAC/D,kBAAIiyD,GAA6C,OAAO1xD,KAAKP,IAAI,iBAAmB,CACpF,iBAAIkyD,GAA2C,OAAO3xD,KAAKP,IAAI,gBAAkB,CACjF,iBAAImyD,GAA2C,OAAO5xD,KAAKP,IAAI,gBAAkB,CACjF,aAAIwB,GAAsB,OAAOjB,KAAKP,IAAI,YAAc,CAExD,aAAOywC,CAAOvuC,EAAyDkwD,EAAiBpU,GACpF,MAAM/9C,EAAkB8wD,GAAU/wD,IAAI,CAAE6wD,QAASuB,GAAW,IACjD,IAAIpB,SAAQ9uD,IAKvB,OAHI87C,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEQ,WAAAO,CAAY0B,GAChBR,QAEInB,KAAKiD,WADLtB,aAA0B0f,GACR1f,EAEA,IAAI0f,GAAe1f,EAE7C,GA7C4FnI,EAAAi3D,GAAA,WAAzF,IAAMqB,GAANrB,GCVA,MAAMsB,GAAN,MAAMA,4BAA2BpqB,EAAAA,MACpC,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAIgR,OAErC,GAL4FjS,EAAAu4D,GAAA,sBAAzF,IAAMC,GAAND,GAOP,MAAME,GAAiB,IAAID,GAQdE,GAAN,MAAMA,uBAAsB/rB,EAAAA,YACrBljC,WACAkvD,kBACV,WAAIljB,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CAEhD,QAAI8R,GAAiB,OAAOzL,KAAKP,IAAI,OAAS,CAC9C,UAAIotD,GAAmB,OAAO7sD,KAAKP,IAAI,SAAW,CAClD,QAAIyhB,GAAiB,OAAOlhB,KAAKP,IAAI,OAAS,CAC9C,aAAI2yD,GAAuB,OAAOpyD,KAAKP,IAAI,YAAc,CACzD,cAAI4yD,GAAsC,OAAOryD,KAAKP,IAAI,aAAe,CACzE,kBAAI6yD,GAA8C,OAAOtyD,KAAKP,IAAI,iBAAmB,CACrF,gBAAI8yD,GAA0C,OAAOvyD,KAAKP,IAAI,eAAiB,CAC/E,eAAI+yD,GAAwC,OAAOxyD,KAAKP,IAAI,cAAgB,CAC5E,mBAAIgzD,GAAgD,OAAOzyD,KAAKP,IAAI,kBAAoB,CACxF,iBAAIizD,GAA6C,OAAO1yD,KAAKP,IAAI,gBAAiB,GAAK,CACvF,kBAAIkzD,GACA,OAAO3yD,KAAK0yD,cAAcxmD,IAAI0mD,GAAiBd,GAAQ5hB,OAAOlwC,KAAKmyD,kBAAmBS,EAActC,QAASsC,GACjH,CAEA,aAAO1iB,CAAOvuC,EAA0D+J,EAAc+xC,GAClF,MAAM/9C,EAAwBuyD,GAAexyD,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS8R,KAAMC,GAAQ,IACvF,IAAIwmD,eAAcvwD,EAAgB+J,IAK7C,OAHI+xC,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEU,WAAAO,CAAY0B,EAA0D+J,GAC5EvK,QACIQ,aAA0Bi4B,IAC1B55B,KAAKiD,WAAatB,EAClB3B,KAAKmyD,kBAAoB,IAAI9wC,GAAe1f,EAAewzB,uBAE3Dn1B,KAAKiD,WAAa,IAAI22B,GAAgBj4B,GACtC3B,KAAKmyD,kBAAoB,IAAI9wC,GAAe1f,IAEhD3B,KAAKo+C,MAAM,CACP3yC,KAAMC,GAEd,CAEA,aAAAmnD,CAAcj3D,EAAiD,IAC3D,OAAOoE,KAAKmyD,kBAAkBhzC,qBAAqB,CAC/CQ,eAAgB,CACZtR,KAAM,CAAC,GAAGrO,KAAKkhB,QAAQlhB,KAAKyL,YAE7B7P,IACJmD,KAAKrC,IACJ,MAAMgD,EAAoC,GAC1C,IAAA,MAAWozD,KAAep2D,EAASq2D,sBAAsBC,kBACrD,IAAA,MAAWJ,KAAiBE,EAAYG,UAAUP,cAC9ChzD,EAAOvE,KAAKy3D,GAIpB,OADA5yD,KAAK6a,IAAI,gBAAiBnb,GACnBM,KAAK2yD,gBAEpB,CAEA,YAAAO,GACI,IAAIC,EAAU,EACVC,EAAY,EACZr2C,EAAQ,EACZ,IAAA,MAAWs2C,KAAWrzD,KAAK2yD,eACvB,IAAA,MAAWW,KAAeD,EAAQ5B,QAAQ8B,YAAa,CACnDH,GAAaE,EAAY1yC,UACzB7D,GAASu2C,EAAY3yC,MACrB,MAAM6yC,EAAQ,EAAIF,EAAY1yC,UAAY0yC,EAAY3yC,MAClD6yC,EAAQL,IACRA,EAAUK,EAElB,CAEJ,MAAO,CACHL,UACAM,SAAU,GAAK12C,EAAQq2C,EAAYr2C,EAAQ,GAEnD,CAEA,UAAA22C,GACI,OAAO1zD,KAAKmyD,kBAAkB3yC,wBAAwB,CAACxf,KAAKyL,MAChE,GAnFoHjS,EAAA04D,GAAA,iBAAjH,IAAMyB,GAANzB,GAsFA,SAASzyC,GAAe9d,GAC3B,IAAIsB,EAMJ,OAJIA,EADAtB,aAA0Bi4B,GACbj4B,EAEA,IAAIi4B,GAAgBj4B,GAE9BsB,EAAWq1B,qBAAqB,CAAA,GAAIv5B,KAAKrC,GACrCA,EAASijB,eAAei0C,kBAAkB1nD,IAAImJ,GAAQs+C,GAAczjB,OAAOvuC,EAAgB0T,EAAK5J,KAAM4J,IAErH,CAVgB7b,EAAAimB,GAAA,kBAYhB,MAAMo0C,GAAuE,CAAA,EACtE,SAASC,GAAqBnyD,GACjC,IAAKkyD,GAAsBlyD,EAAehI,SAAU,CAChD,IAAIsJ,EAEAA,EADAtB,aAA0Bi4B,GACbj4B,EAEA,IAAIi4B,GAAgBj4B,GAErCkyD,GAAsBlyD,EAAehI,SAAWsJ,EAAWq1B,qBAAqB,IAAIv5B,KAAKrC,IACrF,IAAIq3D,EACAC,EACAC,EACJv3D,EAASijB,eAAei0C,kBAAkB54D,QAAQqa,IACzC0+C,IACDA,EAAY1+C,GAEX2+C,IAAkC,IAAnB3+C,EAAK+8C,YACrB4B,EAAc3+C,GAEb4+C,GAA2B,UAAd5+C,EAAK6L,OACnB+yC,EAAY5+C,KAGpB,MAAM6+C,EAAUF,GAAeC,GAAaF,EAC5C,OAAOJ,GAAczjB,OAAOvuC,EAAgBuyD,EAAQzoD,KAAMyoD,IAElE,CACA,OAAOL,GAAsBlyD,EAAehI,QAChD,CA5BgBH,EAAAs6D,GAAA,wBCnHT,MAAMK,GAAN,MAAMA,uBAAsBxsB,EAAAA,MAC/B,WAAA1nC,GACIkB,MAAO1G,GACIA,EAAIw0C,QAEnB,GALoEz1C,EAAA26D,GAAA,iBAAjE,IAAMC,GAAND,GAOP,MAAME,GAAY,IAAID,GAOTE,GAAN,MAAMA,kBAAiBnuB,EAAAA,YAChBljC,WACV,WAAIgsC,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CAGhD,cAAI0sC,GAAgC,OAAOrmC,KAAKP,KAAO,CACvD,kBAAIkgB,GAAiD,OAAO3f,KAAKP,IAAI,iBAAmB,CACxF,mBAAI80D,GACA,OAAOv0D,KAAK2f,eAAezT,IAAIsoD,GAAMb,GAAczjB,OAAOlwC,KAAKiD,WAAYuxD,EAAG/oD,KAAM+oD,GACxF,CACA,mBAAIC,GAAmD,OAAOz0D,KAAKP,IAAI,kBAAoB,CAC3F,YAAIi1D,GAAqC,OAAO10D,KAAKP,IAAI,WAAa,CAEtE,aAAOywC,CAAOvuC,EAA0D87C,GACpE,MAAM/9C,EAAmB20D,GAAU50D,IAAI,CAAEwvC,QAASttC,EAAehI,SAAW,IACjE,IAAI26D,UAAS3yD,IAKxB,OAHI87C,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEU,WAAAO,CAAY0B,GAClBR,QAEInB,KAAKiD,WADLtB,aAA0Bi4B,GACRj4B,EAEA,IAAIi4B,GAAgBj4B,EAE9C,CAEA,oBAAAgzD,CAAqBj7D,EAAe,IAChC,OAAOsG,KAAKiD,WAAW21B,eAAe,CAAA,GAAI75B,KAAKrC,IAC3C,MAAMk4D,EAAe50D,KAAKiD,WAAW2I,WAC/BwtB,EAAKp5B,KAAKiD,WAAWm2B,KAC3B,IAAIy7B,EAAwB,WAAjBD,EAA4B,QAAU,OACjD,GAAI/0C,EAAAA,OAAO,uCAAwCnjB,GAC/C,IAAA,MAAW2Y,KAAQ3Y,EAASo4D,YAAYC,aAAaC,YACjD,GAAIn1C,EAAAA,OAAO,uBAAwBxK,GAC/B,IAAA,MAAW4/C,KAAW5/C,EAAK6/C,WAAWC,UAC9BF,EAAQ/xD,UAAYxJ,GAAQu7D,EAAQtpD,SAAW,MAAQipD,IACvDC,EAAOI,EAAQ9nD,MAMnC,MAAO,GAAGynD,MAAiBx7B,KAAMy7B,MAEzC,CAEA,mBAAAO,GACI,OAAOp1D,KAAKiD,WAAW81B,qBAAqB,CAAE7X,KAAM,SAAUniB,KAAKrC,IAC/DsD,KAAK6a,IAAI,CACL8E,eAAgBjjB,EAAS24D,kBAAkBC,iBAAmB,KAE3Dt1D,KAAKu0D,iBAEpB,CAEA,oBAAAgB,CAAqB35D,EAAmD,IACpE,OAAOoE,KAAKiD,WAAWw1B,sBAAsB78B,GAASmD,KAAKrC,IACvDsD,KAAK6a,IAAI,CACL45C,gBAAiB/3D,EAAS+8B,kBAAkBC,mBAEzC15B,KAAKy0D,iBAEpB,CAEA,aAAAe,CAAc55D,EAA4C,IACtD,OAAOoE,KAAKiD,WAAW21B,eAAeh9B,GAASmD,KAAKrC,IAChDsD,KAAK6a,IAAI,CACL65C,SAAUh4D,EAASo4D,cAEhB90D,KAAK00D,UAEpB,CAEUe,aACV,OAAAxkB,CAAQykB,GAAiB,GAMrB,OALK11D,KAAKy1D,eAAgBC,IACtB11D,KAAKy1D,aAAex5D,QAAQmX,IAAI,CAACpT,KAAKo1D,sBAAuBp1D,KAAKu1D,uBAAwBv1D,KAAKw1D,kBAAkBz2D,KAAK,IAC3GiB,OAGRA,KAAKy1D,YAChB,CAKA,EAAAtO,CAAGC,EAAsBC,EAAyDtf,GAC9E,GAAI/nC,KAAKsnD,WAAWD,IAChB,GACS,YADDD,EAEAjmD,MAAMgmD,GAAGC,EAASC,QAK1B,GACS,YADDD,EAEAjmD,MAAMgmD,GAAGC,EAASC,EAAkBtf,GAMhD,OADA/nC,KAAKohD,WACEphD,IACX,GA9GmGxG,EAAA86D,GAAA,YAAhG,IAAMqB,GAANrB,GCjBA,SAASsB,GAAWn7D,EAA4BG,EAAame,GACpD,cAARne,GAA+B,gBAARA,GAAiC,cAARA,IACpDH,EAAIG,GAAOme,EACf,CAEA,SAAS88C,GAAUl7D,GAEf,OADAA,EAAM,GAAKA,GACAy3B,QAAQ,KAAM,SACpBA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,SACfA,QAAQ,MAAO,QAExB,CAEA,SAASuiB,GAAgB5N,GACrB,IAAKA,EACD,OAAO,EACX,IAAYvoB,OAAOuoB,GACf,OAAOuP,WAAWvP,GAEtB,MACMrD,EADK,uHACMvS,KAAK4V,GACtB,IAAKrD,EAAO,OAAO,EAQnB,OAAe,KAPDA,EAAM,IAAM,GAON,GAAK,GAAe,KANzBA,EAAM,IAAM,GAMkB,GAAc,KAL7CA,EAAM,IAAM,KACZA,EAAM,IAAM,KACdA,EAAM,IAAM,GAGqD,MAFjEA,EAAM,IAAM,GAEiE,MAD7EA,EAAM,IAAM,GACgF,GAC5G,CAEA,SAASoyB,GAASC,EAAcC,GAC5B,MAAMC,EAAUF,EAAK/4D,QAAQg5D,GAC7B,OAAgB,IAAZC,EACO3f,WAAWyf,EAAK5yB,UAAU,EAAG8yB,KAEjC,CACX,CAEA,SAASC,GAAcH,GACnB,IAAKA,EACD,OAAO,EACX,IAAYv3C,OAAOu3C,GACf,OAAOzf,WAAWyf,GAEtB,IAAIr2D,EAASo2D,GAASC,EAAM,MAC5B,OAAIr2D,GAAU,EACM,KAATA,GAEXA,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,MACpBr2D,GAAU,EACHA,EAASpD,KAAK2pC,IAAI,KAAM,IAEnCvmC,EAASo2D,GAASC,EAAM,KACpBr2D,GAAU,EACHA,EAEJ,QACX,CAEA,SAASy2D,GAAeC,GACpB,OAAKA,EAGE9f,WAAW8f,GAFP,CAGf,CA1FgB58D,EAAAo8D,GAAA,cAKPp8D,EAAAq8D,GAAA,aAYAr8D,EAAAm7C,GAAA,mBAmBAn7C,EAAAs8D,GAAA,YAQAt8D,EAAA08D,GAAA,iBAyCA18D,EAAA28D,GAAA,kBAyBT,MAAME,GAAN,MAAMA,sBAEF/sB,MACAgtB,QACAC,mBACAC,kBACAC,sBACAC,eACAC,SAEA,WAAA12D,CAAYqpC,GACRtpC,KAAKspC,MAAQA,EAEbtpC,KAAKs2D,QAAU,GACft2D,KAAKu2D,mBAAqB,CAAA,EAC1Bv2D,KAAKw2D,kBAAoB,CAAA,EACzBx2D,KAAKy2D,sBAAwB,CAAA,EAC7Bz2D,KAAK02D,eAAiB,CAAA,CAC1B,CAEA,cAAAE,CAAeppD,EAAoBqpD,EAA2BC,EAA8BH,GACxF32D,KAAK22D,SAAWA,EAChBnpD,EAAMxS,QAASqa,IACPrV,KAAKspC,MAAMytB,SAAS1hD,IACpBrV,KAAKg3D,uBAAuB3hD,EAAMyhD,GAClC92D,KAAKi3D,wBAAwB5hD,EAAMyhD,IAC5B92D,KAAKspC,MAAM4tB,OAAO7hD,IACzBrV,KAAKg3D,uBAAuB3hD,EAAK8hD,YAAaL,EAAuB,GACrE92D,KAAKi3D,wBAAwB5hD,EAAK+hD,YAAaN,EAAuB,IAC/D92D,KAAKspC,MAAM+tB,WAAWhiD,KAC7BrV,KAAKu2D,mBAAmBlhD,EAAKiiD,WAAajiD,EAC1CrV,KAAKu3D,uBAAuBliD,EAAMwhD,EAAoB,MAG9D72D,KAAKw3D,iBACT,CAEA,sBAAAR,CAAuBltB,EAAgBgtB,GAC/B92D,KAAK22D,UAAY7sB,EAAO2tB,WACxBX,IAEJ92D,KAAKw2D,kBAAkB1sB,EAAOwtB,WAAaxtB,EACvCgtB,EAAuB,GACvBhtB,EAAO4tB,aAAa18D,QAAQgvC,IACxBhqC,KAAKg3D,uBAAuBhtB,EAAKmtB,YAAaL,EAAuB,IAGjF,CAEA,uBAAAG,CAAwBntB,EAAgBgtB,GAChC92D,KAAK22D,UAAY7sB,EAAO2tB,WACxBX,IAEJ92D,KAAKw2D,kBAAkB1sB,EAAOwtB,WAAaxtB,EACvCgtB,EAAuB,GACvBhtB,EAAO6tB,cAAc38D,QAAQgvC,IACzBhqC,KAAKi3D,wBAAwBjtB,EAAKotB,YAAaN,EAAuB,IAGlF,CAEA,sBAAAS,CAAuB3tB,EAAoBitB,GACvC,GAAIA,EAAoB,EACpB,OAGAA,EAAoB,GACpBjtB,EAASguB,iBAAiB58D,QAAQ,CAAC4uC,EAAUjQ,KACzC35B,KAAKu3D,uBAAuB3tB,EAAUitB,EAAoB,KAIlEjtB,EAASguB,iBAAiB58D,QAAQ,CAAC4uC,EAAUjQ,KACzC35B,KAAKu2D,mBAAmB3sB,EAAS0tB,WAAa1tB,IAElDA,EAASiuB,gBAAgB78D,QAAQ,CAAC8uC,EAAQnQ,KACtC35B,KAAKw2D,kBAAkB1sB,EAAOwtB,WAAaxtB,IAI/C,MAAMguB,EAAa,CAAA,EACnB93D,KAAKspC,MAAMD,MAAMruC,QAAQ,CAACgvC,EAAYrQ,KAC9BqQ,EAAKmtB,YAAYY,gBAAkB/tB,EAAKotB,YAAYW,eAAiBnuB,IAAa5pC,KAAKg4D,kBAAkBhuB,KAEpG8tB,EAAW9tB,EAAKmtB,YAAYY,cAAcT,UAAY,KAAOttB,EAAKotB,YAAYW,cAAcT,aAC7FQ,EAAW9tB,EAAKmtB,YAAYY,cAAcT,UAAY,KAAOttB,EAAKotB,YAAYW,cAAcT,YAAa,EACzGt3D,KAAK02D,eAAe1sB,EAAKstB,WAAattB,KAItD,CAEA,iBAAAiuB,CAAkBnuB,EAAgBouB,GAC9B,IAAIC,EAAU,GACVC,EAAW,GACf,MAAMjV,EAAQrZ,EAAOuuB,gBACrB,IAAA,MAAWz9D,KAAOuoD,EACV+U,GAAWt9D,EAAIoC,QAAQ,UAAY,EACnCo7D,GAAY,oCACG,OAARx9D,GAAwB,UAARA,EACvBu9D,GAAW,IAAMv9D,EAAM,KAAQi7D,GAAU1S,EAAMvoD,IAAQ,IAEvDw9D,GAAY,cAAiBx9D,EAAM,YAAgBi7D,GAAU1S,EAAMvoD,IAAQ,MAGnF,MAAO,QAAUu9D,EAAU,IAAMC,EAAW,SAChD,CAEA,eAAAE,CAAgBtuB,GACZ,IAAImuB,EAAkB,GAClBC,EAAmB,GACvB,MAAMjV,EAAQnZ,EAAKquB,gBACnB,IAAA,MAAWz9D,KAAOuoD,EACY,OAAtBvoD,EAAIw2B,eACkB,UAAtBx2B,EAAIw2B,eACkB,WAAtBx2B,EAAIw2B,eACkB,WAAtBx2B,EAAIw2B,cACJ+mC,GAAW,IAAMv9D,EAAM,KAAQi7D,GAAU1S,EAAMvoD,IAAQ,IAEvDw9D,GAAY,cAAiBx9D,EAAM,YAAgBi7D,GAAU1S,EAAMvoD,IAAQ,MAGnF,MAAO,QAAUu9D,EAAU,IAAMC,EAAW,SAChD,CAEA,YAAAG,CAAaC,EAAWC,GACpB,IAAIC,EAASF,EAAET,cACf,KAAOW,GACHD,EAAUt9D,KAAKu9D,GACfA,EAASA,EAAOX,aAExB,CAEA,kBAAAY,CAAmBC,EAAYC,GAC3B,MAAMC,EAAe,GACfC,EAAe,GACrB/4D,KAAKu4D,aAAaK,EAAIE,GACtB94D,KAAKu4D,aAAaM,EAAIE,GACtB,IAAIC,EAAUF,EAAa19D,OAAS,EAChC69D,EAAUF,EAAa39D,OAAS,EAChCsE,EAAS,KACb,KAAOs5D,GAAW,GAAKC,GAAW,GAAKH,EAAaE,KAAaD,EAAaE,IAC1Ev5D,EAASo5D,EAAaE,KACpBA,IACAC,EAEN,OAAOv5D,CACX,CAEA,iBAAAs4D,CAAkB/4D,GACd,OAAOe,KAAK24D,mBAAmB15D,EAAEk4D,YAAal4D,EAAEm4D,YACpD,CAEA,sBAAA8B,CAAuBpvB,GACnB,MAAM2uB,EAAY,GAClBz4D,KAAKu4D,aAAazuB,EAAQ2uB,GAC1BA,EAAUz9D,QAAQ,CAACqa,EAAMskB,KACrB35B,KAAKu2D,mBAAmBlhD,EAAKiiD,WAAajiD,GAElD,CAEA,eAAAmiD,GACI,IAAA,MAAW58D,KAAOoF,KAAKw2D,kBAAmB,CACtC,MAAM1sB,EAAS9pC,KAAKw2D,kBAAkB57D,GACtCkvC,EAAO4tB,aAAa18D,QAAQ,CAACgvC,EAAYrQ,KACrC35B,KAAK02D,eAAe1sB,EAAKstB,WAAattB,IAE1CF,EAAO6tB,cAAc38D,QAAQ,CAACgvC,EAAYrQ,KACtC35B,KAAK02D,eAAe1sB,EAAKstB,WAAattB,IAE1ChqC,KAAKk5D,uBAAuBpvB,EAChC,CACA9pC,KAAKm5D,yBACT,CAEA,kBAAAC,CAAmBpvB,GACXA,IAAShqC,KAAK02D,eAAe1sB,EAAKstB,aAClCt3D,KAAK02D,eAAe1sB,EAAKstB,WAAattB,EAE9C,CAEA,oBAAAqvB,CAAqBvvB,GACZ9pC,KAAKw2D,kBAAkB1sB,EAAOwtB,aAC/Bt3D,KAAKy2D,sBAAsB3sB,EAAOwtB,WAAaxtB,EAC/C9pC,KAAKk5D,uBAAuBpvB,GAEpC,CAEA,uBAAAqvB,GACI,IAAA,MAAWv+D,KAAOoF,KAAK02D,eAAgB,CACnC,MAAM1sB,EAAOhqC,KAAK02D,eAAe97D,GACjC,IAAIywC,EAASrB,EAAKmtB,YAElB,IADAn3D,KAAKq5D,qBAAqBhuB,GACnBrrC,KAAK22D,UAAYtrB,EAAOosB,WAAW,CACtC,MAAM6B,EAAUjuB,EAAOqsB,aACvB,IAAI4B,EAAQl+D,OAKR,MAJA4E,KAAKo5D,mBAAmBE,EAAQ,IAChCjuB,EAASiuB,EAAQ,GAAGnC,YACpBn3D,KAAKq5D,qBAAqBhuB,EAIlC,CACA,IAAIlpC,EAAS6nC,EAAKotB,YAElB,IADAp3D,KAAKq5D,qBAAqBl3D,GACnBnC,KAAK22D,UAAYx0D,EAAOs1D,WAAW,CACtC,MAAM8B,EAAWp3D,EAAOw1D,cACxB,IAAI4B,EAASn+D,OAKT,MAJA4E,KAAKo5D,mBAAmBG,EAAS,IACjCp3D,EAASo3D,EAAS,GAAGnC,YACrBp3D,KAAKq5D,qBAAqBl3D,EAIlC,CACJ,CACJ,CAEA,UAAAq3D,GACIx5D,KAAKy5D,gBAAgBz5D,KAAKspC,MAAMH,UAAU,IAAI,GAC9CnpC,KAAKspC,MAAMD,MAAMruC,QAAQ,CAACgvC,EAAWrQ,KACjC35B,KAAK05D,YAAY1vB,IAEzB,CAEA,eAAAyvB,CAAgB7vB,EAAoBprC,GAAgB,GAChD,GAAIwB,KAAKu2D,mBAAmB3sB,EAAS0tB,WAAY,CAC7C,IAAIc,EAAW,GACfp4D,KAAKs2D,SAAW93D,EAAO,GAAK,aAAgBorC,EAAS0tB,UAAY,iBACjE,MAAMqC,EAAW35D,KAAKs2D,QAAQl7D,OAG9B,GAFAwuC,EAASgwB,cAAc55D,MACvB4pC,EAASiwB,aAAa75D,MAClB25D,IAAa35D,KAAKs2D,QAAQl7D,OAAQ,CAElC,MAAM0uC,EAASF,EAASiuB,gBAAgB,GACpC/tB,IACA9pC,KAAKs2D,SAAWt2D,KAAKi4D,kBAAkBnuB,GAAQ,GAEvD,CAEA,MAAMqZ,EAAQvZ,EAASyuB,gBACvB,IAAA,MAAWz9D,KAAOuoD,EACdiV,GAAY,cAAiBx9D,EAAM,YAAgBi7D,GAAU1S,EAAMvoD,IAAQ,MAE/EoF,KAAKs2D,SAAW93D,EAAO,GAAK,iBAAmB45D,EAAW,SAC9D,CACA,OAAO,CACX,CAEA,aAAA0B,CAAchwB,GACN9pC,KAAKw2D,kBAAkB1sB,EAAOwtB,WAC9Bt3D,KAAKs2D,SAAWt2D,KAAKi4D,kBAAkBnuB,GAAQ,GACxC9pC,KAAKy2D,sBAAsB3sB,EAAOwtB,aACzCt3D,KAAKs2D,SAAWt2D,KAAKi4D,kBAAkBnuB,GAAQ,GAEvD,CAEA,WAAA4vB,CAAY1vB,GACJhqC,KAAK02D,eAAe1sB,EAAKstB,aACzBt3D,KAAKs2D,SAAWt2D,KAAKs4D,gBAAgBtuB,GAE7C,GArQuBxwC,EAAA68D,GAAA,wBAA3B,IAAM0D,GAAN1D,GAwQA,MAAe2D,GAAf,MAAeA,WAIXC,aACAlC,cACAmC,SAEA5C,UACA6C,UAEA,WAAAl6D,CAAYqpC,EAAmBl0B,GAC3BpV,KAAKi6D,aAAe3wB,EACpBtpC,KAAKs3D,UAAYliD,EACjBpV,KAAKm6D,UAAY/kD,CACrB,CAEA,aAAAijD,GACI,MAAM34D,EAAgC,CAAA,EACtC,IAAA,MAAW9E,KAAOoF,KACY,IAAtBpF,EAAIoC,QAAQ,OAAegD,KAAKnF,eAAeD,KAC/C8E,EAAO9E,GAAOoF,KAAKpF,IAG3B,OAAO8E,CACX,GAzBqBlG,EAAAwgE,GAAA,aAAzB,IAAeI,GAAfJ,GA4BA,MAAMK,GAAN,MAAMA,kBAAiBD,GACnBE,YAEA1C,iBACAC,gBACA0C,aACAnlD,GAEA,WAAAnV,CAAYqpC,EAAmBl0B,GAC3BjU,MAAMmoC,EAAOl0B,GACbpV,KAAKs6D,YAAqB,MAAPllD,EAAa,QAAU,UAC1CpV,KAAK43D,iBAAmB,GACxB53D,KAAK63D,gBAAkB,GACvB73D,KAAKu6D,aAAe,GACpBv6D,KAAKoV,GAAKA,CACd,CAEA,WAAAolD,CAAY5wB,GACRA,EAASmuB,cAAgB/3D,KACpBA,KAAK43D,iBAAiBxtD,KAAKqwD,GAAa7wB,IAAa6wB,IACtDz6D,KAAK43D,iBAAiBz8D,KAAKyuC,EAEnC,CAEA,SAAA8wB,CAAU5wB,GACNA,EAAOiuB,cAAgB/3D,KAClBA,KAAK63D,gBAAgBztD,KAAKuwD,GAAW7wB,IAAW6wB,IACjD36D,KAAK63D,gBAAgB18D,KAAK2uC,EAElC,CAEA,YAAA8wB,CAAa9wB,GACT9pC,KAAK63D,gBAAkB73D,KAAK63D,gBAAgB9rD,OAAO4uD,GAAW7wB,IAAW6wB,EAC7E,CAEA,OAAAE,CAAQ7wB,GACJA,EAAK+tB,cAAgB/3D,KAChBA,KAAKu6D,aAAanwD,KAAK0wD,GAAS9wB,IAAS8wB,IAC1C96D,KAAKu6D,aAAap/D,KAAK6uC,EAE/B,CAEA,UAAA+wB,CAAW/wB,GACPhqC,KAAKu6D,aAAev6D,KAAKu6D,aAAaxuD,OAAO+uD,GAAS9wB,IAAS8wB,EACnE,CAEA,MAAAE,GACIh7D,KAAK43D,iBAAiB58D,QAAQ4uC,GAAYA,EAASmuB,cAAgB/3D,KAAK+3D,eACxE/3D,KAAK63D,gBAAgB78D,QAAQ8uC,GAAUA,EAAOiuB,cAAgB/3D,KAAK+3D,eACnE/3D,KAAKu6D,aAAav/D,QAAQgvC,GAAQA,EAAK+tB,cAAgB/3D,KAAK+3D,sBACrD/3D,KAAK+3D,cACZ/3D,KAAKi6D,aAAagB,WAAWj7D,KACjC,CAEA,aAAA45D,CAAcxmB,GACVpzC,KAAK43D,iBAAiB58D,QAAQ,CAAC4uC,EAAUjQ,KACjCyZ,EAAQqmB,gBAAgB7vB,IACxBA,EAASgwB,cAAcxmB,IAGnC,CAEA,YAAAymB,CAAazmB,GACTpzC,KAAK63D,gBAAgB78D,QAAQ,CAAC8uC,EAAQnQ,KAClCyZ,EAAQ0mB,cAAchwB,IAE9B,GAlE6BtwC,EAAA6gE,GAAA,YAAjC,IAAM5xB,GAAN4xB,GAqEA,MAAMa,GAAN,MAAMA,gBAAed,GACjBE,YAAuD,SACvDa,SAEA,WAAAl7D,CAAYqpC,EAAmBl0B,GAC3BjU,MAAMmoC,EAAOl0B,EACjB,CAEA,OAAAqiD,GACI,OAAOz3D,KAAKm7D,QAChB,CAEA,MAAAH,GACI,MAAMI,EAAap7D,KAAKq7D,gBACpBD,EAAWhgE,QAAU,GACrBW,QAAQC,KAAKgE,KAAKs3D,UAAY,+DAElCt3D,KAAK03D,aAAa18D,QAASgvC,IACvBA,EAAKgxB,WAETh7D,KAAK23D,cAAc38D,QAASgvC,IACxBA,EAAKsxB,UAAUF,EAAW,MAE9Bp7D,KAAK+3D,eAAe6C,aAAa56D,MACjCA,KAAKi6D,aAAagB,WAAWj7D,KACjC,CAEA,aAAAq7D,GACI,OAAOr7D,KAAK03D,aAAaxrD,IAAK89B,GACnBA,EAAKmtB,YAEpB,CAEA,UAAAO,GACI,OAAO13D,KAAKi6D,aAAa5wB,MAAMt9B,OAAQi+B,GAC5BA,EAAKotB,cAAgBp3D,KAEpC,CAEA,cAAAu7D,GACI,OAAOv7D,KAAK23D,cAAczrD,IAAK89B,GACpBA,EAAKotB,YAEpB,CAEA,WAAAO,GACI,OAAO33D,KAAKi6D,aAAa5wB,MAAMt9B,OAAQi+B,GAC5BA,EAAKmtB,cAAgBn3D,KAEpC,GAjD2BxG,EAAA0hE,GAAA,UAA/B,IAAMtyB,GAANsyB,GAoDA,MAAMM,GAAN,MAAMA,cAAapB,GACfE,YAAuD,OAEvDmB,gBACApwB,OACAqwB,gBACAv5D,OAEA,WAAAlC,CAAYqpC,EAAmBl0B,GAC3BjU,MAAMmoC,EAAOl0B,GACbpV,KAAKs6D,YAAc,MACvB,CAEA,MAAAU,GACIh7D,KAAKi6D,aAAa9wB,UAAUnuC,QAAS4uC,IACjCA,EAASmxB,WAAW/6D,QAExBA,KAAKi6D,aAAagB,WAAWj7D,KACjC,CAEA,SAAAm3D,GACI,OAAOn3D,KAAKi6D,aAAatgC,IAAI35B,KAAKy7D,iBAAmBz7D,KAAKqrC,OAC9D,CAEA,SAAAiwB,CAAUjwB,GACFrrC,KAAKy7D,gBACLz7D,KAAKy7D,gBAAkBpwB,EAAOisB,UACvBt3D,KAAKqrC,SACZrrC,KAAKqrC,OAASA,EAAOisB,WAErBt3D,KAAKk6D,UACLl6D,KAAKk6D,SAASoB,UAAUt7D,KAAKm3D,YAAY+C,SAEjD,CAEA,SAAA9C,GACI,OAAOp3D,KAAKi6D,aAAatgC,IAAI35B,KAAK07D,iBAAmB17D,KAAKmC,OAC9D,GArCyB3I,EAAAgiE,GAAA,QAA7B,IAAMzyB,GAANyyB,GAwCO,MAAMG,GAAN,MAAMA,YACThiC,IAAkD,CAAA,EAClDwP,UAAwB,GACxBC,SAAqB,GACrBC,MAAgB,GAEhBuyB,MAAgB,GAEhB,WAAA37D,GACID,KAAKo+C,OACT,CAEA,KAAAA,GACIp+C,KAAK47D,MAAQ,GAEb57D,KAAK25B,IAAM,CAAA,EACX35B,KAAKmpC,UAAY,GACjBnpC,KAAKopC,SAAW,GAChBppC,KAAKqpC,MAAQ,EACjB,CAEA,IAAAwyB,CAAKD,GACD57D,KAAKo+C,QACLp+C,KAAK87D,MAAMF,EACf,CAEA,KAAAE,CAAMF,GACF57D,KAAK47D,MAAQA,EACb,MACMG,GADS,IAAIC,WACAC,gBAAgBL,EAAO,YAC1C57D,KAAKk8D,aAAaH,EAAII,gBAAiB,IAC3C,CAEA,UAAA9E,CAAWhiD,GACP,OAAOA,aAAgBozB,EAC3B,CAEA,QAAAsuB,CAAS1hD,GACL,OAAOA,aAAgBuzB,EAC3B,CAEA,MAAAsuB,CAAO7hD,GACH,OAAOA,aAAgB0zB,EAC3B,CAEA,aAAAqzB,CAAc/mD,GACV,OAAIA,aAAgBuzB,GACT,EACAvzB,aAAgB0zB,GAChB,EACA1zB,aAAgBozB,GAChB,EACApzB,aAAgBsmD,YAChB,EAEJ,CACX,CAEA,mBAAAU,CAAoBhnD,GAChB,OAAIA,aAAgBuzB,GACT,SACAvzB,aAAgB0zB,GAChB,OACA1zB,aAAgBozB,GAChB,UACApzB,aAAgBsmD,YAChB,QAEJ,SACX,CAEA,OAAAW,CAAQC,EAAsBnnD,GAC1B,IAAKpV,KAAK25B,IAAIvkB,GACV,OAAQmnD,EAAQC,SACZ,IAAK,QACD,MAAM5yB,EAAW,IAAInB,GAASzoC,KAAMoV,GACpCpV,KAAKmpC,UAAUhuC,KAAKyuC,GACpB5pC,KAAK25B,IAAIvkB,GAAMw0B,EACf,MACJ,IAAK,OACD,MAAME,EAAS,IAAIlB,GAAO5oC,KAAMoV,GAChCpV,KAAKopC,SAASjuC,KAAK2uC,GACnB9pC,KAAK25B,IAAIvkB,GAAM00B,EACf,MACJ,IAAK,OACD,MAAME,EAAO,IAAIjB,GAAK/oC,KAAMoV,GAC5BpV,KAAKqpC,MAAMluC,KAAK6uC,GAChBhqC,KAAK25B,IAAIvkB,GAAM40B,EACf,MACJ,QACIjuC,QAAQC,KAAK,sCAIzB,MAAM0D,EAASM,KAAK25B,IAAIvkB,GAIxB,OAHAta,MAAMq2C,KAAKorB,EAAQ/yB,YAAYxuC,QAAQswC,IACnCsqB,GAAWl2D,EAAQ4rC,EAAK5/B,KAAM4/B,EAAKvyB,SAEhCrZ,CACX,CAEA,UAAAu7D,CAAW5lD,UACArV,KAAK25B,IAAItkB,EAAKiiD,WACjBjiD,aAAgBozB,GAChBzoC,KAAKmpC,UAAYnpC,KAAKmpC,UAAUp9B,OAAQ69B,GAC7Bv0B,IAASu0B,GAEbv0B,aAAgBuzB,GACvB5oC,KAAKopC,SAAWppC,KAAKopC,SAASr9B,OAAO+9B,GAC1Bz0B,IAASy0B,GAEbz0B,aAAgB0zB,KACvB/oC,KAAKqpC,MAAQrpC,KAAKqpC,MAAMt9B,OAAQi+B,GACrB30B,IAAS20B,GAG5B,CAEA,iBAAAyyB,CAAkBF,EAAsBC,GACpC,IAAI98D,EAA6B,KAOjC,OANA5E,MAAMq2C,KAAKorB,EAAQ9yB,YAAuCr/B,KAAM89B,IAC5D,GAAIA,EAAUs0B,UAAYA,EAEtB,OADA98D,EAASwoC,GACF,IAGRxoC,CACX,CAEA,YAAAw8D,CAAaK,EAAsBnnD,GAC/B,MAAM1V,EAAcM,KAAKs8D,QAAQC,EAASnnD,GA0F1C,OAzFCmnD,EAAQ9yB,WAAuCzuC,QAASktC,IACrD,GACS,IADDA,EAAUw0B,SAEV,OAAQx0B,EAAUs0B,SACd,IAAK,QACD,MACJ,IAAK,OACD,IAAInF,GAAa,EACjB,MAAMsF,EAAU38D,KAAKy8D,kBAAkBv0B,EAAW,OAClD,GAAIy0B,EAAS,CACT,MAAMC,EAAY58D,KAAKy8D,kBAAkBE,EAAS,SAClD,GAAIC,EAAW,CACXvF,GAAa,EACb,MAAMztB,EAAW5pC,KAAKk8D,aAAaU,EAAW10B,EAAU20B,aAAa,OACrEn9D,EAAO86D,YAAY5wB,EACvB,CACJ,CACA,IAAKytB,EAAY,CACb,MAAMvtB,EAAS9pC,KAAKk8D,aAAah0B,EAAWA,EAAU20B,aAAa,OACnEn9D,EAAOg7D,UAAU5wB,EACrB,CACA,MACJ,IAAK,MACD,MAAMp+B,EAAOw8B,EAAU20B,aAAa,QAC9BC,EAAQ,IAAMpxD,EACdqN,EAAQmvB,EAAU20B,aAAa,SACR,IAAzBnxD,EAAK1O,QAAQ,SACb44D,GAAWl2D,EAAQo9D,EAAO/jD,GAC1B68C,GAAWl2D,EAAQgM,EAAM,GAAKipC,GAAgB57B,KACd,IAAzBrN,EAAK1O,QAAQ,SACpB44D,GAAWl2D,EAAQo9D,EAAO/jD,GAC1B68C,GAAWl2D,EAAQgM,EAAM,GAAKwqD,GAAcn9C,KACZ,IAAzBrN,EAAK1O,QAAQ,SACpB44D,GAAWl2D,EAAQo9D,EAAO/jD,GAC1B68C,GAAWl2D,EAAQgM,EAAM,GAAKyqD,GAAep9C,KAE7C68C,GAAWl2D,EAAQgM,EAAMqN,GAE7B,MACJ,IAAK,OACD,MAAMixB,EAAYhqC,KAAKk8D,aAAah0B,EAAWA,EAAU20B,aAAa,OActE,QAb8B,IAA1B7yB,EAAK+yB,iBACL/yB,EAAKgzB,eAAiBhzB,EAAK+yB,iBAAiB3qC,QAAQ,wBAAyB,UACvD,IAAf4X,EAAKp7B,MACZo7B,EAAKgzB,eAAiBhzB,EAAKp7B,MAAMwjB,QAAQ,wBAAyB,UAC5C,IAAf4X,EAAKjmB,QACZimB,EAAKgzB,eAAiBhzB,EAAKjmB,MAAMqO,QAAQ,wBAAyB,MAElE4X,EAAKizB,gBACLjzB,EAAKkzB,uBAAyB,IAAMlzB,EAAKizB,cAAc7qC,QAAQ,wBAAyB,KAAO,KAE/F4X,EAAKmzB,sBAAwBnzB,EAAKozB,uBAClCpzB,EAAKqzB,cAAgB,IAAMrzB,EAAKmzB,qBAAuB,KAAOnzB,EAAKozB,sBAEnEpzB,EAAKszB,iBAAY,GACVtzB,EAAKuzB,kBAAa,GAClBvzB,EAAKyxB,iBAAmBzxB,EAAK0xB,gBAAiB,CACrD1xB,EAAKmxB,UAAW,EAChB,MAAM9vB,EAASrB,EAAKmtB,YAChB9rB,IACAA,EAAO8vB,UAAW,GAEtB,MAAMh5D,EAAS6nC,EAAKotB,YAChBj1D,IACAA,EAAOg5D,UAAW,EAE1B,CACAz7D,EAAOm7D,QAAQ7wB,MAsB5BtqC,CACX,CAEA,eAAA89D,GACsB,IAAIx9D,KAAKmpC,WACjBnuC,QAAS4uC,IACXA,EAASmuB,yBAAyBtvB,IAClCmB,EAASoxB,UAGrB,CAEA,mBAAAyC,GACqB,IAAIz9D,KAAKopC,UACjBpuC,QAAS8uC,IACVA,EAAO2tB,WACP3tB,EAAOkxB,UAGnB,CAEA,iBAAA0C,CAAkBlwD,EAAoBqpD,EAA2BC,EAA8BH,GAC3F,MAAMgH,EAAc,IAAI5D,GAAqB/5D,MAG7C,OAFA29D,EAAY/G,eAAeppD,EAAOqpD,EAAmBC,EAAsBH,GAC3EgH,EAAYnE,aACL,UAAYmE,EAAYrH,QAAU,UAC7C,GAtPoB98D,EAAAmiE,GAAA,cAAjB,IAAMiC,GAANjC,GC1iBP,MAAMviE,GAASC,EAAAA,aAAa,+BAEtBwkE,GAAc7oB,GAAS,MAE7B,SAAS8oB,GAAS1/C,GACd,OAAQI,MAAM83B,WAAWl4B,MAAQI,MAAMJ,EAAI,EAC/C,CAFS5kB,EAAAskE,GAAA,YAOT,MAAMC,GAAN,MAAMA,oBAAmBp2B,EAAAA,MACrB,WAAA1nC,GACIkB,MAAO1G,GACIktC,EAAAA,MAAMC,KAAK,CAACntC,EAAIujE,QAASvjE,EAAIwjE,WAE5C,GAL2CzkE,EAAAukE,GAAA,cAO/C,MAAMG,GAAW,IAPjBH,GASaI,GAAN,MAAMA,eAAch4B,EAAAA,YACbi4B,mBACV,WAAInvB,GAAY,OAAOjvC,KAAKo+D,mBAAmBzkE,OAAS,CAC9C0kE,SACAC,eACAC,gBAEV,cAAIl4B,GAAmD,OAAOrmC,KAAKP,KAAO,CAC1E,cAAIqD,GAAuC,OAAO9C,KAAKP,IAAI,aAAe,CAC1E,WAAIu+D,GAAoB,OAAOh+D,KAAKP,IAAI,UAAY,CACpD,YAAIw+D,GAAqB,OAAOj+D,KAAKP,IAAI,WAAa,CACtD,aAAI++D,GAAsB,OAAOx+D,KAAKP,IAAI,YAAc,CACxD,QAAIihC,GAAiB,OAAO1gC,KAAKP,IAAI,OAAS,CAC9C,OAAIg/D,GAAgB,OAAOz+D,KAAKP,IAAI,MAAQ,CAC5C,aAAIi/D,GAAuB,OAAO1+D,KAAKP,IAAI,YAAc,CACzD,aAAIk/D,GAAuB,OAAO3+D,KAAKP,IAAI,YAAc,CACzD,eAAIm/D,GAAwB,OAAO5+D,KAAKP,IAAI,cAAgB,CAC5D,YAAIo/D,GAAoC,OAAO7+D,KAAKP,IAAI,WAAa,CACrE,eAAIq/D,GAAwB,OAAO9+D,KAAKP,IAAI,cAAgB,CAC5D,WAAIs/D,GAAY,OAAO/+D,KAAKP,IAAI,UAAY,CAC5C,gBAAIu/D,GAA2C,OAAOh/D,KAAKP,IAAI,eAAiB,CAChF,cAAIw/D,GAAuC,OAAOj/D,KAAKP,IAAI,aAAe,CAC1E,aAAIy/D,GAAuB,OAAOl/D,KAAKP,IAAI,YAAc,CACzD,YAAI0/D,GAAqB,OAAOn/D,KAAKP,IAAI,WAAa,CACtD,cAAI2/D,GAAuB,OAAOp/D,KAAKP,IAAI,aAAe,CAC1D,eAAI4/D,GAAwB,OAAOr/D,KAAKP,IAAI,cAAgB,CAC5D,iBAAI6/D,GAA6C,OAAOt/D,KAAKP,IAAI,gBAAkB,CACnF,eAAI8/D,GAAwB,OAAOv/D,KAAKP,IAAI,cAAgB,CAC5D,oBAAI65C,GAA6B,OAAOt5C,KAAKP,IAAI,mBAAqB,CACtE,kBAAI+/D,GAA+C,OAAOx/D,KAAKP,IAAI,iBAAmB,CACtF,YAAIggE,GAAmC,OAAOz/D,KAAKP,IAAI,WAAa,CACpE,YAAIigE,GAAmC,OAAO1/D,KAAKP,IAAI,WAAa,CACpE,cAAIkgE,GAAuB,OAAO3/D,KAAKP,IAAI,aAAe,CAElD,WAAAQ,CAAY0B,EAA2DmU,EAAkB8pD,EAAiBC,GAC9G1+D,QAEInB,KAAKo+D,mBADLz8D,aAA0BygC,GACAzgC,EAEA,IAAIygC,GAAiBzgC,GAEnD3B,KAAKq+D,SAAW1I,GAASzlB,OAAOlwC,KAAKo+D,mBAAmBnkE,QACxD+F,KAAK6a,IAAI,CACLojD,SAAUnoD,EACVkoD,QAAS4B,KACNC,GAEX,CAEA,aAAO3vB,CAAOvuC,EAAwCmU,EAAkBC,EAAiB0nC,GACrF,MAAM/9C,EAAgBw+D,GAASz+D,IAAI,CAAEwvC,QAASttC,EAAehI,QAASskE,SAAUnoD,EAAUkoD,QAASjoD,GAAsB,IAC9G,IAAIooD,OAAMx8D,EAAgBmU,EAAUC,IAK/C,OAHI0nC,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEQogE,YACR,kBAAgBC,GAcZ,OAbK//D,KAAK8/D,cACN9/D,KAAK8/D,YAAc9/D,KAAKq+D,SAAS7I,cAAc,IAAIz2D,KAAKihE,IACpD,IAAA,MAAWC,KAAaD,GAAUjL,cAAcC,aAAe,GAC3D,IAAA,MAAWC,KAAWgL,GAAW/K,YAAYC,WAAa,GACtD,GAAyB,WAArBF,GAAS/xD,QAAsB,CAC/B,MAAMvJ,EAAU,GAAGs7D,EAAQtpD,cAAcu0D,WAAWC,SAASC,YAAYnL,EAAQ9nD,OACjF,OAAO,IAAImJ,GAAW,CAAE3c,WAC5B,KAMTqG,KAAK8/D,WAChB,CAEA,kBAActb,GACV,MAAMqb,QAAqB7/D,KAAKo+D,mBAAmBlgC,eAAe,CAC9D+/B,SAAUj+D,KAAKi+D,SACfD,QAASh+D,KAAKg+D,QACdqC,wBAAwB,EACxBC,mBAAmB,EACnBC,uBAAuB,EACvBC,eAAe,IAEnBxgE,KAAK6a,IAAI,IAAKglD,GAClB,CAEA,wBAAcY,GACV,MAAMV,QAAqB//D,KAAK+/D,eAChC,IACI//D,KAAKs+D,qBAAuByB,GAAclqD,YAAY7V,KAAKi+D,SAAUj+D,KAAKg+D,WAAY,EAC1F,OAAS/+D,GAEL7F,GAAOoE,MAAMyB,EAAEmC,SAAWnC,GAC1Be,KAAKs+D,eAAiB,EAC1B,CACJ,CAEA,yBAAcoC,GACV,MAAMX,QAAqB//D,KAAK+/D,eAChC,IACI//D,KAAKu+D,sBAAwBwB,GAAc9pD,aAAajW,KAAKi+D,SAAUj+D,KAAKg+D,WAAY,CAAA,CAC5F,OAAS/+D,GAEL7F,GAAOoE,MAAMyB,EAAEmC,SAAWnC,GAC1Be,KAAKu+D,gBAAkB,CAAA,CAC3B,CACJ,CAEA,iBAAcoC,SACJ1kE,QAAQmX,IAAI,CAACpT,KAAKygE,qBAAsBzgE,KAAK0gE,uBACvD,CAEA,iBAAAE,GACI,OAAO5gE,KAAKo+D,mBAAmB9/B,uBAAuB,CAAEuiC,OAAQ7gE,KAAKi+D,SAAUD,QAASh+D,KAAKg+D,SACjG,CAEA,UAAA8C,CAAW75B,EAAoB,GAAIsN,EAAqB,IACpD,OAAOv0C,KAAKo+D,mBAAmB//B,gBAAgB,CAAEwiC,OAAQ7gE,KAAKi+D,SAAUD,QAASh+D,KAAKg+D,QAAS/2B,YAAWsN,eAAcx1C,KAAKrC,IACzH,MAAM4sC,EAAQ,IAAIs0B,GAClB,IAAIpkC,GAAQ,EACZ,IAAA,MAAWunC,KAAarkE,GAAUy8C,QAAQ6nB,YAAc,GAChDxnC,GACA8P,EAAMuyB,KAAKkF,EAAUz4B,OACrB9O,GAAQ,GAER8P,EAAMwyB,MAAMiF,EAAUz4B,OAG9B,OAAOgB,GAEf,CAEA,sBAAA+a,CAAuBzoD,EAAmD,IACtE,MAAMwqC,EAAKoX,GAAStN,OAAOlwC,KAAKo+D,mBAAoBp+D,KAAK0gC,MACzD,OAAI0F,EACOnqC,QAAQmX,IAAI,CAACpT,KAAK8gE,aAAc16B,EAAGoc,mBAAoBpc,EAAGqc,gBAAgB7mD,KAAWmD,KAAKulD,IAC7F,MAAMhb,EAAQgb,EAAS,GACjB1B,EAAO0B,EAAS,GAEhBpB,EAD+BoB,EAAS,GACzBp4C,IAAIupB,IACrB,MAAMwrC,EAAYxrC,EAAOmV,GAAG,GAC5B,GAAkB,MAAdq2B,GAAmC,MAAdA,EAAmB,CACxC,MAAM5rD,EAAOi0B,EAAM3P,IAAIlE,EAAOmV,GAAGzH,UAAU,IAC3C,IAAK9tB,EAED,OADAjc,GAAOoE,MAAM,qCAAqCi4B,EAAOmV,MAClDnV,EAEX,MAAMyrC,EAAqB,IAAIrpD,IAAI4d,EAAOgd,WAAWC,SAASxmC,IAAIi1D,GAAQA,EAAK11D,OACzE21D,EAAwC,GAC9C,IAAA,MAAWxmE,KAAOya,EAAM,CACpB,MAAMgsD,EAAiBzmE,EAAI+1B,OAAO,GAClC,GAAuB,MAAnB0wC,GACAA,IAAmBA,EAAex8B,gBACjCq8B,EAAmBloD,IAAIpe,GAAM,CAC9B,MAAMme,EAAQ1D,EAAKza,GACb0mE,SAAmBvoD,EACzB,GAAkB,WAAduoD,GAAwC,WAAdA,GAAwC,YAAdA,EAAyB,CAE7E,IAAIhe,EADUwa,GAAS/kD,GACAu9B,WAAWv9B,GAAmBA,EACjDwoD,EAAYxoD,EACZne,EAAIoC,QAAQ,SAAW,IACvBsmD,GAAkC,IAClCie,EAAY1D,GAAYva,GAAY,KAExC8d,EAAcjmE,KAAK,CACfsQ,KAAM7Q,EACN2wC,SAAU+X,EACVtR,UAAWuvB,GAEnB,CACJ,CACJ,CACIH,EAAchmE,OAAS,GACvBq6B,EAAOgd,WAAWC,SAASv3C,QAAQimE,EAE3C,CACA,OAAO3rC,IAEX,OAAO2Q,EAAGuc,iBAAiBC,EAAMM,KAGlCjnD,QAAQC,QAAQ,CAAE0mD,YAAiBC,aAAS,EAAWK,UAAM,GACxE,CAEA,YAAM7sC,CAAOza,GACT,MAAMmkE,QAAqB//D,KAAK+/D,eAChC,IACI,OAAOA,GAAc1pD,OAAOrW,KAAKi+D,SAAUj+D,KAAKg+D,QAASpiE,GAASmD,KAAKyiE,IACnE,IAAA,MAAW5mE,KAAO4mE,EACdA,EAAQ5mE,GAAO4mE,EAAQ5mE,GAAK0a,IAEhC,OAAOksD,KACL,EACV,OAASviE,GAGL,OADA7F,GAAOoE,MAAMyB,EAAEmC,SAAWnC,GACnB,EACX,CACJ,CAEA,aAAMgyC,GAKF,aAJMh1C,QAAQmX,IAAI,CACdpT,KAAKwkD,eACLxkD,KAAK2gE,gBAEF3gE,IACX,CAEA,aAAAyhE,GACI,OAAKzhE,KAAKs+D,eACHt+D,KAAKs+D,eADqB,EAErC,CAEA,cAAAoD,GACI,OAAK1hE,KAAKu+D,gBACHv+D,KAAKu+D,gBADsB,CAAA,CAEtC,CAEA,WAAAoD,GACI,MAAMjiE,EAAmB,GACzB,IAAA,MAAW9E,KAAOoF,KAAK0hE,iBACnBhiE,EAAOvE,KAAKP,GAEhB,OAAO8E,CACX,CAEA,YAAAkiE,CAAaC,GACT,OAAK7hE,KAAKu+D,gBAAgBsD,GACnB7hE,KAAKu+D,gBAAgBsD,GADkB,EAElD,GAxOwEroE,EAAA2kE,GAAA,SAArE,IAAM/jB,GAAN+jB,GC3BA,MAAM2D,GAAN,MAAMA,oBAAmBn6B,EAAAA,MAC5B,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAIgR,QAAQhR,EAAIsnE,gBAAgBtnE,EAAIunE,YAErE,GALsHxoE,EAAAsoE,GAAA,cAAnH,IAAMG,GAANH,GAOP,MAAMpV,GAAS,IAAIuV,GAENC,GAAN,MAAMA,6BAA4B5gE,EAAAA,QAErC,WAAArB,CAAqBrF,EAAoBme,EAAmBopD,GACxDhhE,QADiBnB,KAAApF,IAAAA,EAAoBoF,KAAA+Y,MAAAA,EAAmB/Y,KAAAmiE,SAAAA,CAE5D,CAFqBvnE,IAAoBme,MAAmBopD,SAI5D,eAAIC,GAAyB,OAAO,CAAM,CAC1C,QAAAC,CAASC,GACL,OAAItiE,KAAKpF,MAAQ0nE,EAAM1nE,MACnBoF,KAAK+Y,MAAQupD,EAAMvpD,OACZ,EAGf,CAEA,OACI,OAAO/Y,KAAK+Y,QAAU/Y,KAAKmiE,QAC/B,GAjB6C3oE,EAAA0oE,GAAA,uBAA1C,IAAMK,GAANL,GAoBA,MAAMM,GAAN,MAAMA,OACCv/D,WACV,WAAIgsC,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CACvC8R,KACAs2D,aACAC,UAECS,UAAY,IAAIC,EAAAA,SAE1B,aAAOxyB,CAAOvuC,EAAuD8J,EAAe,WAAYu2D,EAAmBD,GAAwB,GAIvI,OAHsBrV,GAAOjtD,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS8R,OAAMs2D,eAAcC,aAAa,IAC1F,IAAIQ,OAAM7gE,EAAgB8J,EAAMu2D,EAAWD,GAG1D,CAEU,WAAA9hE,CAAY0B,EAAuD8J,EAAcu2D,EAAmBD,GAEtG/hE,KAAKiD,WADLtB,aAA0B41B,GACR51B,EAEA,IAAI41B,GAAa51B,GAEvC3B,KAAKyL,KAAOA,EACZzL,KAAK+hE,aAAeA,EACpB/hE,KAAKgiE,UAAYA,CACrB,CAEQW,aAAuC,CAAA,EAErC,MAAAplB,GACNv9C,KAAKiD,WAAW0zB,YAAY,CAAElrB,KAAMzL,KAAKyL,KAAMyV,KAAM,GAAIF,YAAa,IAC1E,CAEA,GAAAnG,CAAIjgB,EAAame,EAAe6pD,GAAY,GACxC,OAAO5iE,KAAKiD,WAAW4U,IAAI,CACvBgrD,UAAW7iE,KAAKyL,KAChBs2D,aAAc/hE,KAAK+hE,aACnBC,UAAWhiE,KAAKgiE,UAChBnrB,IAAKj8C,EACLy7B,MAAOtd,IACRha,KAAKrC,IACJ,MAAMylE,EAAWniE,KAAK2iE,aAAa/nE,GACnCoF,KAAK2iE,aAAa/nE,GAAOme,EACrB6pD,GACA5iE,KAAKyiE,UAAUtjE,KAAK,IAAIojE,GAAoB3nE,EAAKme,EAAOopD,MAE7DnjE,MAAMC,IACLlD,QAAQuB,MAAM,cAAc1C,QAAUme,cAAmB9Z,IAEjE,CAEA,GAAAQ,CAAI7E,EAAagoE,GAAY,GACzB,OAAO5iE,KAAKiD,WAAW4zB,MAAM,CACzBgsC,UAAW7iE,KAAKyL,KAChBs2D,aAAc/hE,KAAK+hE,aACnBC,UAAWhiE,KAAKgiE,UAChBnrB,IAAKj8C,IACNmE,KAAKrC,IACJ,MAAMylE,EAAWniE,KAAK2iE,aAAa/nE,GAKnC,OAJAoF,KAAK2iE,aAAa/nE,GAAO8B,EAAS25B,MAC9BusC,GACA5iE,KAAKyiE,UAAUtjE,KAAK,IAAIojE,GAAoB3nE,EAAK8B,EAAS25B,MAAO8rC,IAE9DzlE,EAAS25B,QACjBr3B,MAAMC,IACLlD,QAAQuB,MAAM,aAAa1C,aAAgBqE,IAGnD,CAEA,MAAA6jE,CAAOF,GAAY,GACf,OAAO5iE,KAAKiD,WAAW6zB,SAAS,CAC5B+rC,UAAW7iE,KAAKyL,KAChBs2D,aAAc/hE,KAAK+hE,aACnBC,UAAWhiE,KAAKgiE,YACjBjjE,KAAKrC,IACJ,MAAMgD,EAAoC,CAAA,EACpCqjE,EAAgB/iE,KAAK2iE,aAW3B,GAVA3iE,KAAK2iE,aAAe,CAAA,EACpBjmE,EAASsmE,MAAMC,KAAKjoE,QAAQkoE,IACxB,MAAMf,EAAWniE,KAAK2iE,aAAaO,EAAKrsB,KACxC72C,KAAK2iE,aAAaO,EAAKrsB,KAAOqsB,EAAK7sC,aAC5B0sC,EAAcG,EAAKrsB,KAC1Bn3C,EAAOwjE,EAAKrsB,KAAOqsB,EAAK7sC,MACpBusC,GACA5iE,KAAKyiE,UAAUtjE,KAAK,IAAIojE,GAAoBW,EAAKrsB,IAAKqsB,EAAK7sC,MAAO8rC,MAGtES,EACA,IAAA,MAAWhoE,KAAOmoE,EACd/iE,KAAKyiE,UAAUtjE,KAAK,IAAIojE,GAAoB3nE,OAAK,EAAWmoE,EAAcnoE,KAGlF,OAAO8E,IACRV,MAAMC,IACLlD,QAAQuB,MAAM,uBAAwB2B,GAC/B,CAAA,GAEf,CAEA,OAAOrE,EAAagoE,GAAY,GAC5B,OAAO5iE,KAAKiD,WAAW+L,OAAO,CAC1B6zD,UAAW7iE,KAAKyL,KAChBs2D,aAAc/hE,KAAK+hE,aACnBC,UAAWhiE,KAAKgiE,UAChBnrB,IAAKj8C,IACNmE,KAAKrC,IACJ,MAAMylE,EAAWniE,KAAK2iE,aAAa/nE,UAC5BoF,KAAK2iE,aAAa/nE,GACrBgoE,GACA5iE,KAAKyiE,UAAUtjE,KAAK,IAAIojE,GAAoB3nE,OAAK,EAAWunE,MAEjEnjE,MAAMC,IACLlD,QAAQuB,MAAM,gBAAgB1C,aAAgBqE,IAEtD,CAEA,OAAAkkE,CAAQp7B,GACJ,OAAO/nC,KAAKyiE,UAAUvyB,OAAOnI,EACjC,GAvHevuC,EAAAgpE,GAAA,SAAZ,IAAMY,GAANZ,GC1BP,MAAMppE,GAASC,EAAAA,aAAa,iCAefgqE,GAAN,MAAMA,0BAAyB17B,EAAAA,MAClC,WAAA1nC,GACIkB,MAAO1G,GACI,GAAGA,EAAIw0C,WAAWx0C,EAAI6oE,KAErC,GALsF9pE,EAAA6pE,GAAA,oBAAnF,IAAME,GAANF,GAOP,MAAM5rB,GAAa,IAAI8rB,GAKVC,GAAN,MAAMA,qBAAoBr9B,EAAAA,YAC7BljC,WACA00C,mBACA,WAAI1I,GAAY,OAAOjvC,KAAKiD,WAAWtJ,OAAS,CAGhD,cAAI0sC,GAAsC,OAAOrmC,KAAKP,KAAO,CAC7D,MAAI6jE,GAAe,OAAOtjE,KAAKP,IAAI,KAAO,CAC1C,iBAAIgkE,GAA0B,OAAOzjE,KAAKP,IAAI,gBAAkB,CAChE,eAAI0sD,GAAwB,OAAOnsD,KAAKP,IAAI,cAAgB,CAC5D,WAAI2oD,GAAoB,OAAOpoD,KAAKP,IAAI,UAAY,CACpD,SAAIu8C,GAAkB,OAAOh8C,KAAKP,IAAI,QAAU,CAChD,QAAIikE,GAAiB,OAAO1jE,KAAKP,IAAI,OAAS,CAC9C,eAAIkkE,GAAyB,OAAO3jE,KAAKP,IAAI,cAAgB,CAC7D,WAAIopD,GAAoB,OAAO7oD,KAAKP,IAAI,UAAY,CACpD,kBAAImkE,GAA2B,OAAO5jE,KAAKP,IAAI,iBAAmB,CAClE,eAAIokE,GAAwB,OAAO7jE,KAAKP,IAAI,cAAgB,CAC5D,YAAIqkE,GAAqB,OAAO9jE,KAAKP,IAAI,WAAa,CACtD,mBAAIskE,GAA4B,OAAO/jE,KAAKP,IAAI,kBAAoB,CACpE,kBAAIukE,GAA2B,OAAOhkE,KAAKP,IAAI,iBAAmB,CAClE,SAAI24C,GAAkB,OAAOp4C,KAAKP,IAAI,QAAS,EAAiB,CAChE,qBAAIwkE,GAA8B,OAAOjkE,KAAKP,IAAI,oBAAsB,CACxE,YAAIykE,GAAqB,OAAOlkE,KAAKP,IAAI,WAAa,CACtD,kBAAI0kE,GAA2B,OAAOnkE,KAAKP,IAAI,iBAAmB,CAClE,cAAI2kE,GAAuB,OAAOpkE,KAAKP,IAAI,aAAe,CAC1D,oBAAI4kE,GAA6B,OAAOrkE,KAAKP,IAAI,mBAAqB,CACtE,gBAAI6kE,GAAyB,OAAOtkE,KAAKP,IAAI,eAAiB,CAC9D,UAAI8kE,GAAmB,OAAOvkE,KAAKP,IAAI,SAAW,CAClD,kBAAI+kE,GAA2B,OAAOxkE,KAAKP,IAAI,iBAAmB,CAClE,mBAAIglE,GAA4B,OAAOzkE,KAAKP,IAAI,kBAAoB,CACpE,mBAAIilE,GAA4B,OAAO1kE,KAAKP,IAAI,kBAAoB,CACpE,iBAAIklE,GAA0B,OAAO3kE,KAAKP,IAAI,gBAAkB,CAChE,iBAAImlE,GAA0B,OAAO5kE,KAAKP,IAAI,gBAAkB,CAChE,UAAIolE,GAAmB,OAAO7kE,KAAKP,IAAI,SAAW,CAClD,gBAAIqlE,GAAyB,OAAO9kE,KAAKP,IAAI,eAAiB,CAC9D,cAAIslE,GAAuB,OAAO/kE,KAAKP,IAAI,aAAe,CAC1D,gBAAIulE,GAAyB,OAAOhlE,KAAKP,IAAI,eAAiB,CAC9D,kBAAIwlE,GAA2B,OAAOjlE,KAAKP,IAAI,iBAAmB,CAClE,aAAIwF,GAAuB,OAAOjF,KAAKP,IAAI,YAAc,CACzD,aAAIylE,GAAuB,OAAOllE,KAAKP,IAAI,YAAc,CACzD,YAAI0lE,GAAsB,OAAOnlE,KAAKP,IAAI,WAAa,CACvD,qBAAI2lE,GAA8B,OAAOplE,KAAKP,IAAI,oBAAsB,CACxE,kBAAI4lE,GAA2B,OAAOrlE,KAAKP,IAAI,iBAAmB,CAClE,sBAAI6lE,GAA+B,OAAOtlE,KAAKP,IAAI,qBAAuB,CAC1E,mBAAI8lE,GAA4B,OAAOvlE,KAAKP,IAAI,kBAAoB,CACpE,eAAI+lE,GAAwB,OAAOxlE,KAAKP,IAAI,cAAgB,CAC5D,eAAIgmE,GAAwB,OAAOzlE,KAAKP,IAAI,cAAgB,CAC5D,gBAAIimE,GAAyB,OAAO1lE,KAAKP,IAAI,eAAiB,CAC9D,oBAAIkmE,GAA6B,OAAO3lE,KAAKP,IAAI,mBAAqB,CACtE,cAAImmE,GAAwB,OAAO5lE,KAAKP,IAAI,aAAe,CAC3D,oBAAIomE,GAA6B,OAAO7lE,KAAKP,IAAI,mBAAqB,CACtE,qBAAIqmE,GAA8B,OAAO9lE,KAAKP,IAAI,oBAAsB,CACxE,mBAAIsmE,GAA4B,OAAO/lE,KAAKP,IAAI,kBAAoB,CACpE,YAAIo8C,GAAsB,OAAO77C,KAAKP,IAAI,WAAa,CACvD,WAAIumE,GAAoB,OAAOhmE,KAAKP,IAAI,UAAY,CACpD,WAAIwmE,GAAoB,OAAOjmE,KAAKP,IAAI,UAAY,CACpD,sBAAIymE,GAAgC,OAAOlmE,KAAKP,IAAI,qBAAuB,CAC3E,0BAAI0mE,GAAoC,OAAOnmE,KAAKP,IAAI,yBAA2B,CACnF,oBAAI2mE,GAA8B,OAAOpmE,KAAKP,IAAI,mBAAqB,CACvE,uBAAI4mE,GAAiC,OAAOrmE,KAAKP,IAAI,sBAAwB,CAC7E,cAAI6mE,GAAuB,OAAOtmE,KAAKP,IAAI,aAAe,CAC1D,qBAAI8mE,GAA+B,OAAOvmE,KAAKP,IAAI,oBAAsB,CACzE,kBAAIy9C,GAA2B,OAAOl9C,KAAKP,IAAI,iBAAmB,CAClE,eAAI+mE,GAAwB,OAAOxmE,KAAKP,IAAI,cAAgB,CAC5D,YAAIgnE,GAAqB,OAAOzmE,KAAKP,IAAI,WAAa,CAGtD,aAAO89C,CAAO57C,EAAwC+kE,GAClD,MAAMhnE,EAAsB,IAAI8jE,aAAY7hE,GAC5C,OAAOjC,EAAOuD,WAAWS,kBAAkB,CAAEijE,eAAgBD,IAAkB3nE,KAAMrC,IACjF+6C,GAAW58B,IAAInb,GACfA,EAAOmb,IAAIne,EAAS4jC,QACb5gC,GAEf,CAEA,aAAOwwC,CAAOvuC,EAAwCwuC,EAAcsN,GAChE,MAAM/9C,EAAsB+3C,GAAWh4C,IAAI,CAAEwvC,QAASttC,EAAehI,QAAS2pE,GAAInzB,GAAQ,IAC/E,IAAIqzB,aAAY7hE,EAAgBwuC,IAK3C,OAHIsN,GACA/9C,EAAOmb,IAAI4iC,GAER/9C,CACX,CAEA,iBAAOknE,CAAWjpB,EAAgC/hD,GAC9C,MAAMoG,EAAU,IAAI+D,EAAiB43C,GACrC,OAAO37C,EAAQ2D,aAAa,IACrB/J,IACJmD,KAAKrC,IACJ,MAAMyzC,EAAOzzC,EAASyzC,KACtB,OAAOnuC,EAAQ0C,eAAe,CAAEyrC,SAAQpxC,KAAKrC,GAClC8mE,aAAYtzB,OAAOyN,EAAQxN,EAAMzzC,EAAS4jC,UAG7D,CAEA,oBAAOumC,CAAclpB,EAAgC/hD,GACjD,MAAMoG,EAAU,IAAI+D,EAAiB43C,GACrC,OAAO37C,EAAQ4D,gBAAgB,IACxBhK,IACJmD,KAAKrC,IACJ,MAAMyzC,EAAOzzC,EAASyzC,KACtB,OAAOnuC,EAAQ0C,eAAe,CAAEyrC,SAAQpxC,KAAKrC,GAClC8mE,aAAYtzB,OAAOyN,EAAQxN,EAAMzzC,EAAS4jC,UAG7D,CAEA,cAAOwmC,CAAQnpB,EAAgC/hD,GAC3C,MAAMoG,EAAU,IAAI+D,EAAiB43C,GACrC,OAAO37C,EAAQ6D,UAAU,IAClBjK,IACJmD,KAAKrC,IACJ,MAAMyzC,EAAOzzC,EAASyzC,KACtB,OAAOnuC,EAAQ0C,eAAe,CAAEyrC,SAAQpxC,KAAKrC,GAClC8mE,aAAYtzB,OAAOyN,EAAQxN,EAAMzzC,EAAS4jC,UAG7D,CAEA,MAAA2S,CAAOr3C,GACH,OAAOoE,KAAKiD,WAAW6C,oBAAoB,CACvCsgC,GAAI,CACAgiB,QAASxsD,GAASwqC,IAAIgiB,SAAWpoD,KAAKooD,QACtCub,YAAa/nE,GAASwqC,IAAIu9B,aAAe3jE,KAAK2jE,YAC9CL,GAAItjE,KAAKsjE,GACTlrB,MAAOp4C,KAAKo4C,OAEhBqG,YAAaz+C,KAAKmsD,YAClB4a,YAAa/mE,KAAKooD,QAClB4e,gBAAiBhnE,KAAK2jE,YACtBtlB,UAAWr+C,KAAKo4C,OAExB,CAEA,UAAAxH,GACI,OAAQ5wC,KAAKo4C,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,IACD,OAAO,EAGf,OAAO,CACX,CAEA,QAAAiH,GACI,SAAIr/C,KAAK4wC,cAA+B,IAAf5wC,KAAKo4C,MAIlC,CAEA,SAAAkH,GACI,OACS,MADDt/C,KAAKo4C,KAMjB,CAEA,SAAAsH,GACI,OAAQ1/C,KAAK4wC,YACjB,CAEA,KAAAyP,GACI,OAAOrgD,KAAKiD,WAAWM,iBAAiB,CAAE4sC,KAAMnwC,KAAKsjE,IACzD,CAEA,SACI,OAAOtjE,KAAKinE,YAAY9jE,YAAUC,aAAa4L,QAAQjQ,KAAKrC,GACjDsD,KAAKixC,UAAUlyC,KAAK,KACvBiB,KAAKohD,WACE1kD,IAGnB,CAEA,aAAMu0C,CAAQ2Q,GAAgB,GAE1B,aADM5hD,KAAK0E,iBACJ1E,IACX,CAEA,QAAAknE,CAASn/B,GACL,OAAO/nC,KAAK2D,WAChB,CAGU,QAAAy9C,GACFphD,KAAK4wC,aACL5wC,KAAKinD,kBAAoB,EAG7B9lD,MAAMigD,UACV,CAEU,uBAAA8F,GACN,MAAMxnD,EAASyB,MAAM+lD,0BACrB,OAAIlnD,KAAKinD,mBAAqB,EACnB,IACAjnD,KAAKinD,mBAAqB,EAC1B,IACAjnD,KAAKinD,mBAAqB,EAC1B,KAEJvnD,CACX,CAEU,SAAAiE,CAAUtB,EAAgD,IAChE,OAAOrC,KAAKiD,WAAWyC,YAAY,IAC5BrD,EAAUq+B,KAAM1gC,KAAKsjE,KACzBvkE,KAAKrC,GAEGA,GACRsC,MAAOC,GACC,GAEf,CAEU,WAAAgoE,CAAY/e,GAClB,OAAOloD,KAAKiD,WAAWY,mBAAmB,CACtCsjE,MAAO,CAAE94D,KAAM,CAACrO,KAAKsjE,KACrBpiD,KAAMgnC,IACPnpD,KAAMrC,GACDwrD,IAAe/kD,EAAAA,UAAUC,aAAa4L,OAAetS,EAClDsD,KAAKixC,UAAUlyC,KAAK,KACvBiB,KAAKohD,WACE1kD,IAGnB,CAGA,EAAAyqD,CAAGC,EAA4BC,EAA2Dtf,GACtF,GAAI/nC,KAAKsnD,WAAWD,GAChB,OAAQD,GACJ,IAAK,WACDjmD,MAAMgmD,GAAG,cAAe,QAAUI,IAC1BvnD,KAAK4wC,cACLyW,EAAiB,CAACE,MAG1B,MACJ,IAAK,UACDpmD,MAAMgmD,GAAGC,EAASC,QAK1B,GACS,YADDD,EAEAjmD,MAAMgmD,GAAGC,EAASC,EAAkBtf,GAMhD,OADA/nC,KAAKohD,WACEphD,IACX,CAEA,kBAAAwnD,CAAmBzf,GACf,OAAO,IAAI9rC,QAAQ,CAACC,EAASgE,KACzB,MAAMunD,EAAcznD,KAAK0nD,MAAOC,IACxB5f,GACAA,EAAS4f,GAET3nD,KAAK4wC,eACL6W,EAAYG,UACZ1rD,EAAQ8D,UAIxB,CAEA,iBAAA6nD,CAAkB9f,GACd,OAAO,IAAI9rC,QAAQ,CAACC,EAASgE,KACzB,MAAMunD,EAAcznD,KAAK0nD,MAAOC,IACxB5f,GACAA,EAAS4f,IAET3nD,KAAK4wC,cAAgB5wC,KAAK0/C,eAC1B+H,EAAYG,UACZ1rD,EAAQ8D,UAIxB,CAGU,WAAAC,CAAY0B,EAAwCwuC,GAC1DhvC,QACAnB,KAAKiD,WAAa,IAAI8C,EAAiBpE,GACvC3B,KAAK23C,mBAAqB,IAAIuG,GAA2Bv8C,GACzD3B,KAAKm+C,WAAWhO,EACpB,CAEA,UAAAgO,CAAWhO,GACPnwC,KAAKo+C,MAAM,CACPklB,GAAInzB,EACJiI,MAAO,GAEf,CAGU,cAAA1zC,CAAerC,EAA8C,IACnE,OAAOrC,KAAKiD,WAAWyB,eAAe,IAAKrC,EAAU8tC,KAAMnwC,KAAKsjE,KAAMvkE,KAAMrC,IACxEsD,KAAK6a,IAAIne,EAAS4jC,QACX5jC,IACRsC,MAAOC,IAUN,IARkBA,EAAEgC,UAAUmJ,KAAMC,IACT,QAAnBA,EAAUhJ,MAAqC,QAAnBgJ,EAAUhJ,QACtCrB,KAAKm+C,WAAWn+C,KAAKsjE,IACrBtjE,KAAK6a,IAAI,QAAS,MACX,IAMX,MADAzhB,GAAO0jB,QAAQ,6BAA6B7d,EAAEmC,WACxCnC,EAEV,MAAO,CAAA,GAEf,GAxUgHzF,EAAAgqE,GAAA,eAA7G,IAAM4D,GAAN5D,qFpFhCsB,kjBAFL,+BACG","x_google_ignoreList":[24,25,26,27,28,30,38,39,40,41,42,43,44,45,46,47,56,57,58,59,60,61,62,63,64,65,66,67]}