UNPKG

@ohayojp.com/components

Version:

Common business components of ohayojp.

1,351 lines 78.2 kB
/** * @fileoverview added by tsickle * Generated from: st.interfaces.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @record */ export function STWidthMode() { } if (false) { /** * 宽度类型 * - `default` 默认行为 * - `strict` 严格模式,即强制按 `width` 指定的宽度呈现,并根据 `strictBehavior` 类型处理 * @type {?|undefined} */ STWidthMode.prototype.type; /** * 严格模式的处理行为 * - `wrap` 强制换行 * - `truncate` 截短 * @type {?|undefined} */ STWidthMode.prototype.strictBehavior; } /** * @record */ export function STResetColumnsOption() { } if (false) { /** @type {?|undefined} */ STResetColumnsOption.prototype.pi; /** @type {?|undefined} */ STResetColumnsOption.prototype.ps; /** @type {?|undefined} */ STResetColumnsOption.prototype.columns; /** * Whether to pre-clear data, Default: `false` * @type {?|undefined} */ STResetColumnsOption.prototype.preClearData; /** * Whether to trigger a data load, Default: `true` * @type {?|undefined} */ STResetColumnsOption.prototype.emitReload; } /** * @record */ export function STReq() { } if (false) { /** * 分页类型,默认:`page` * - `page` 使用 `pi`,`ps` 组合 * - `skip` 使用 `skip`,`limit` 组合 * @type {?|undefined} */ STReq.prototype.type; /** * 额外请求参数,默认自动附加 `pi`、`ps` 至URL * - `{ status: 'new' }` => `url?pi=1&ps=10&status=new` * @type {?|undefined} */ STReq.prototype.params; /** * 请求方法,默认:`GET` * @type {?|undefined} */ STReq.prototype.method; /** * 请求体 `body` * @type {?|undefined} */ STReq.prototype.body; /** * 请求体 `Header` * @type {?|undefined} */ STReq.prototype.headers; /** * 重命名参数 `pi`、`ps`,默认:`{ pi: 'pi', ps: 'ps' }` * - `{ pi: 'Page' }` => `pi` 会被替换成 Page * @type {?|undefined} */ STReq.prototype.reName; /** * 是否将请求所有参数数据都放入 `body` 当中(`url` 地址本身参数除外),仅当 `method: 'POST'` 时有效,默认:`false` * @type {?|undefined} */ STReq.prototype.allInBody; /** * 是否延迟加载数据,即渲染结束后不会主动发起请求,默认:`false` * @type {?|undefined} */ STReq.prototype.lazyLoad; /** * 请求前数据处理 * @type {?|undefined} */ STReq.prototype.process; } /** * @record */ export function STRequestOptions() { } if (false) { /** @type {?|undefined} */ STRequestOptions.prototype.body; /** @type {?|undefined} */ STRequestOptions.prototype.headers; /** @type {?|undefined} */ STRequestOptions.prototype.params; /** @type {?|undefined} */ STRequestOptions.prototype.observe; /** @type {?|undefined} */ STRequestOptions.prototype.reportProgress; /** @type {?|undefined} */ STRequestOptions.prototype.responseType; /** @type {?|undefined} */ STRequestOptions.prototype.withCredentials; } /** * @record */ export function STLoadOptions() { } if (false) { /** * 是否合并,默认:`false` * @type {?|undefined} */ STLoadOptions.prototype.merge; /** * 是否跳转至顶部,若不指定由 `page.toTop` 来决定 * @type {?|undefined} */ STLoadOptions.prototype.toTop; } /** * @record */ export function STRes() { } if (false) { /** * 重命名返回参数 `total`、`list` * - `{ total: 'Total' }` => Total 会被当作 `total` * @type {?|undefined} */ STRes.prototype.reName; /** * 数据预处理 * @type {?|undefined} */ STRes.prototype.process; } /** * @record */ export function STPage() { } if (false) { /** * 前端分页,当 `data` 为`any[]` 或 `Observable<any[]>` 有效,默认:`true` * - `true` 由 `st` 根据 `data` 长度受控分页,包括:排序、过滤等 * - `false` 由用户通过 `total` 和 `data` 参数受控分页,并维护 `(change)` 当分页变更时重新加载数据 * @type {?|undefined} */ STPage.prototype.front; /** * 后端分页是否采用`0`基索引,只在`data`类型为`string`时有效,默认:`false` * @type {?|undefined} */ STPage.prototype.zeroIndexed; /** * 指定分页显示的位置,默认:`bottom` * @type {?|undefined} */ STPage.prototype.position; /** * 指定分页分页方向,默认:`right` * @type {?|undefined} */ STPage.prototype.placement; /** * 是否显示分页器,默认:`true` * @type {?|undefined} */ STPage.prototype.show; /** * 是否显示分页器中改变页数,默认:`false` * @type {?|undefined} */ STPage.prototype.showSize; /** * 分页器中每页显示条目数下拉框值,默认:`[10, 20, 30, 40, 50]` * @type {?|undefined} */ STPage.prototype.pageSizes; /** * 是否显示分页器中快速跳转,默认:`false` * @type {?|undefined} */ STPage.prototype.showQuickJumper; /** * 用于自定义页码的结构,用法参照 Pagination 组件 * @type {?|undefined} */ STPage.prototype.itemRender; /** * 当添加该属性时,显示为简单分页,默认:`false` * @type {?|undefined} */ STPage.prototype.simple; /** * 是否显示总数据量 * - `boolean` 类型显示与否,默认模板:`共 {{total}} 条` * - `string` 自定义模板,模板变量: * - `{{total}}` 表示数据总量 * - `{{range[0]}}` 表示当前页开始数量值 * - `{{range[1]}}` 表示当前页结束数量值 * @type {?|undefined} */ STPage.prototype.total; /** * 切换分页时返回顶部,默认:`true` * @type {?|undefined} */ STPage.prototype.toTop; /** * 返回顶部偏移值,默认:`100` * @type {?|undefined} */ STPage.prototype.toTopOffset; } /** * 数据源 * @record */ export function STData() { } if (false) { /** * 选择框或单选框状态值 * @type {?|undefined} */ STData.prototype.checked; /** * 选择框或单选框 `disabled` 值 * @type {?|undefined} */ STData.prototype.disabled; /** * 是否展开状态 * @type {?|undefined} */ STData.prototype.expand; /** * 是否显示展开按钮 * @type {?|undefined} */ STData.prototype.showExpand; /* Skipping unhandled member: [key: string]: any;*/ } /** * 列描述 * @record */ export function STColumn() { } if (false) { /** * 用于定义数据源主键,例如:`statistical` * @type {?|undefined} */ STColumn.prototype.key; /** * 列标题 * @type {?|undefined} */ STColumn.prototype.title; /** * 列数据在数据项中对应的 key,支持 `a.b.c` 的嵌套写法,例如: * - `id` * - `price.market` * - `[ 'price', 'market' ]` * @type {?|undefined} */ STColumn.prototype.index; /** * 类型 * - `no` 行号,计算规则:`index + noIndex` * - `checkbox` 多选 * - `radio` 单选 * - `link` 链接,务必指定 `click` * - `badge` [徽标](https://ng.ant.design/components/badge/zh),务必指定 `badge` 参数配置徽标对应值 * - `tag` [标签](https://ng.ant.design/components/tag/zh),务必指定 `tag` 参数配置标签对应值 * - `enum` 枚举转换,务必指定 `enum` 参数配置标签对应值 * - `img` 图片且居中(若 `className` 存在则优先) * - `number` 数字且居右(若 `className` 存在则优先) * - `currency` 货币且居右(若 `className` 存在则优先) * - `date` 日期格式且居中(若 `className` 存在则优先),使用 `dateFormat` 自定义格式 * - `yn` 将`boolean`类型徽章化 [document](https://ohayojp.com/docs/data-render#yn) * - `widget` 使用自定义小部件动态创建 * @type {?|undefined} */ STColumn.prototype.type; /** * 链接回调,若返回一个字符串表示导航URL会自动触发 `router.navigateByUrl` * @type {?|undefined} */ STColumn.prototype.click; /** * 按钮组 * @type {?|undefined} */ STColumn.prototype.buttons; /** * 自定义渲染ID * \@example * <ng-template st-row="custom" let-item let-index="index" let-column="column"> * {{ c.title }} * </ng-template> * @type {?|undefined} */ STColumn.prototype.render; /** * 标题自定义渲染ID * \@example * <ng-template st-row="custom" type="title" let-c> * {{ item | json }} * </ng-template> * @type {?|undefined} */ STColumn.prototype.renderTitle; /** * 列宽(数字型表示 `px` 值),例如:`100`、`10%`、`100px` * * **注意:** 若固定列必须是数字 * @type {?|undefined} */ STColumn.prototype.width; /** * 排序配置项,远程数据配置**优先**规则: * - `true` 表示允许排序,且若数据源为本地时自动生成 `compare: (a, b) => a[index] - b[index]` 方法 * - `string` 表示远程数据排序相对应 `key` 值 * @type {?|undefined} */ STColumn.prototype.sort; /** * 过滤配置项 * @type {?|undefined} */ STColumn.prototype.filter; /** * 格式化列值 * @type {?|undefined} */ STColumn.prototype.format; /** * 自定义全/反选选择项 * @type {?|undefined} */ STColumn.prototype.selections; /** * 列 `class` 属性值(注:无须 `.` 点)多个用空格隔开,例如: * - `text-center` 居中 * - `text-right` 居右 * - `text-success` 成功色 * - `text-error` 异常色 * @type {?|undefined} */ STColumn.prototype.className; /** * 合并列 * @type {?|undefined} */ STColumn.prototype.colSpan; /** * 数字格式,`type=number` 有效 * @type {?|undefined} */ STColumn.prototype.numberDigits; /** * 日期格式,`type=date` 有效,(默认:`yyyy-MM-dd HH:mm`) * @type {?|undefined} */ STColumn.prototype.dateFormat; /** * 当 `type=yn` 有效 * @type {?|undefined} */ STColumn.prototype.yn; /** * 是否允许导出,默认 `true` * @type {?|undefined} */ STColumn.prototype.exported; /** * 权限,等同 [ACLCanType](https://ohayojp.com/acl/getting-started/#ACLCanType) 参数值 * @type {?|undefined} */ STColumn.prototype.acl; /** * 当不存在数据时以默认值替代 * @type {?|undefined} */ STColumn.prototype.default; /** * 固定前后列,当指定时务必指定 `width` 否则视为无效,有若干 **注意:** 项: * * - 若列头与内容不对齐或出现列重复,请指定列的宽度 `width` * - 建议指定 `scroll.x` 为大于表格宽度的固定值或百分比。注意,且非固定列宽度之和不要超过 `scroll.x` * @type {?|undefined} */ STColumn.prototype.fixed; /** * 徽标配置项 * @type {?|undefined} */ STColumn.prototype.badge; /** * 标签配置项 * @type {?|undefined} */ STColumn.prototype.tag; /** * 行号索引,默认:`1` * - 计算规则为:`index + noIndex` * - 支持自定义方法 * @type {?|undefined} */ STColumn.prototype.noIndex; /** * 条件表达式 * - 仅赋值 `columns` 时执行一次 * - 可调用 `resetColumns()` 再一次触发 * @type {?|undefined} */ STColumn.prototype.iif; /** * 统计列数据 * - 若使用自定义统计函数可无须指定 `index` * - 可以根据 `key` 来定义生成后需要的键名,如果未指定 `key` 则使用 `index` 来表示键名 * - 当无法找到有效键名时,使用下标(从 `0` 开始)来代替 * @type {?|undefined} */ STColumn.prototype.statistical; /** @type {?|undefined} */ STColumn.prototype.widget; /** @type {?|undefined} */ STColumn.prototype.enum; /** * 分组表头 * @type {?|undefined} */ STColumn.prototype.children; /** @type {?|undefined} */ STColumn.prototype.rowSpan; /** * 调整表头配置 * - 注意:**不要忘记**在 `src/styles` 下增加 `nz-resizable` Less 样式文件:`\@import '~ng-zorro-antd/resizable/style/entry.less';` * - **不支持多表头** * @type {?|undefined} */ STColumn.prototype.resizable; } /** * @record */ export function STWidgetColumn() { } if (false) { /** @type {?} */ STWidgetColumn.prototype.type; /** @type {?|undefined} */ STWidgetColumn.prototype.params; } /** * @record */ export function STColumnTitle() { } if (false) { /** * Text of header, can be choose one of `text` or `i18n` * @type {?|undefined} */ STColumnTitle.prototype.text; /** * I18n key of header, can be choose one of `text` or `i18n` * @type {?|undefined} */ STColumnTitle.prototype.i18n; /** * Optional information of header * @type {?|undefined} */ STColumnTitle.prototype.optional; /** * Optional help of header * @type {?|undefined} */ STColumnTitle.prototype.optionalHelp; /* Skipping unhandled member: [key: string]: any;*/ } /** * @record */ export function STStatistical() { } if (false) { /** @type {?} */ STStatistical.prototype.type; /** * 保留小数位数,默认:`2` * @type {?|undefined} */ STStatistical.prototype.digits; /** * 是否需要货币格式化,默认以下情况为 `true` * - `type` 为 `STStatisticalFn`、 `sum`、`average`、`max`、`min` * @type {?|undefined} */ STStatistical.prototype.currency; } /** * @record */ export function STStatisticalResults() { } /** * @record */ export function STStatisticalResult() { } if (false) { /** @type {?} */ STStatisticalResult.prototype.value; /** @type {?|undefined} */ STStatisticalResult.prototype.text; } /** * @record */ export function STColumnSort() { } if (false) { /** * 排序的默认受控属性 * @type {?|undefined} */ STColumnSort.prototype.default; /** * 本地数据的排序函数,使用一个函数(参考 [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) 的 compareFunction) * - `null` 忽略本地排序,但保持排序功能 * - 若数据源为本地时自动生成 `(a, b) => a[index] - b[index]` 方法 * @type {?|undefined} */ STColumnSort.prototype.compare; /** * 远程数据的排序时后端相对应的KEY,默认使用 `index` 属性 * - 若 `multiSort: false` 时:`key: 'name' => ?name=1&pi=1` * - 若 `multiSort: true` 允许多个排序 key 存在,或使用 `STMultiSort` 指定多列排序key合并规则 * @type {?|undefined} */ STColumnSort.prototype.key; /** * 远程数据的排序时后端相对应的VALUE * - `{ ascend: '0', descend: '1' }` 结果 `?name=1&pi=1` * - `{ ascend: 'asc', descend: 'desc' }` 结果 `?name=desc&pi=1` * @type {?|undefined} */ STColumnSort.prototype.reName; } /** * @record */ export function STSortMap() { } if (false) { /** * 是否启用排序 * @type {?|undefined} */ STSortMap.prototype.enabled; /* Skipping unhandled member: [key: string]: any;*/ } /** * @record */ export function STColumnFilter() { } if (false) { /** * 搜索方式 * - `defualt` 默认形式 * - `keyword` 文本框形式 * @type {?|undefined} */ STColumnFilter.prototype.type; /** * 表头的筛选菜单项,至少一项才会生效 * - 当 `type='keyword'` 时可为空 * @type {?|undefined} */ STColumnFilter.prototype.menus; /** * 本地数据的筛选函数 * @type {?|undefined} */ STColumnFilter.prototype.fn; /** * 标识数据是否已过滤,筛选图标会高亮 * @type {?|undefined} */ STColumnFilter.prototype.default; /** * 自定义 filter 图标 * - 当 `type='default'` 默认 `filter` * - 当 `type='keyword'` 默认 `search` * @type {?|undefined} */ STColumnFilter.prototype.icon; /** * 确认按钮文本,默认 `确认` * @type {?|undefined} */ STColumnFilter.prototype.confirmText; /** * 清除按钮文本,默认 `重置` * @type {?|undefined} */ STColumnFilter.prototype.clearText; /** * 是否多选,默认 `true` * @type {?|undefined} */ STColumnFilter.prototype.multiple; /** * 远程数据的过滤时后端相对应的KEY,默认使用 `index` 属性 * `key: 'name'` 结果 `?name=1&pi=1` * @type {?|undefined} */ STColumnFilter.prototype.key; /** * 远程数据的过滤时后端相对应的VALUE * - 默认当 `multiple: true` 时以英文逗号拼接的字符串 * \@return 返回为 Object 对象 * @type {?|undefined} */ STColumnFilter.prototype.reName; } /** * @record */ export function STColumnFilterMenu() { } if (false) { /** * 文本 * - 当 `type: 'keyword'` 时表示 `placeholder` * @type {?|undefined} */ STColumnFilterMenu.prototype.text; /** * 值 * @type {?|undefined} */ STColumnFilterMenu.prototype.value; /** * 是否选中 * @type {?|undefined} */ STColumnFilterMenu.prototype.checked; /** * 权限,等同 [ACLCanType](https://ohayojp.com/acl/getting-started/#ACLCanType) 参数值 * @type {?|undefined} */ STColumnFilterMenu.prototype.acl; /* Skipping unhandled member: [key: string]: any;*/ } /** * @record */ export function STColumnSelection() { } if (false) { /** * 选择项显示的文字 * @type {?} */ STColumnSelection.prototype.text; /** * 选择项点击回调,允许对参数 `data.checked` 进行操作 * @type {?} */ STColumnSelection.prototype.select; /** * 权限,等同 `can()` 参数值 * @type {?|undefined} */ STColumnSelection.prototype.acl; } /** * 当 `type=yn` 有效 * @record */ export function STColumnYn() { } if (false) { /** * 真值条件,(默认:`true`) * @type {?|undefined} */ STColumnYn.prototype.truth; /** * 徽章 `true` 时文本,(默认:`是`) * @type {?|undefined} */ STColumnYn.prototype.yes; /** * 徽章 `false` 时文本,(默认:`否`) * @type {?|undefined} */ STColumnYn.prototype.no; /** * 徽章显示风格 * - `full` 图标和文本 * - `icon` 图标 * - `text` 文本 * @type {?|undefined} */ STColumnYn.prototype.mode; } /** * @record */ export function STIcon() { } if (false) { /** * 图标类型 * @type {?} */ STIcon.prototype.type; /** * 图标主题风格,默认:`outline` * @type {?|undefined} */ STIcon.prototype.theme; /** * 是否有旋转动画,默认:`false` * @type {?|undefined} */ STIcon.prototype.spin; /** * 仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效 * @type {?|undefined} */ STIcon.prototype.twoToneColor; /** * 指定来自 IconFont 的图标类型 * @type {?|undefined} */ STIcon.prototype.iconfont; } /** * 按钮配置 * @record */ export function STColumnButton() { } if (false) { /** * 文本 * @type {?|undefined} */ STColumnButton.prototype.text; /** * 文本 i18n * @type {?|undefined} */ STColumnButton.prototype.i18n; /** * 图标 * @type {?|undefined} */ STColumnButton.prototype.icon; /** * 按钮类型 * - `none` 无任何互动 * - `del` 删除,默认开启 `pop: true` * - `modal` 对话框,需要指定 `component` 才会生效 * - `static` 静态对话框,需要指定 `component` 才会生效 * - `drawer` 抽屉,需要指定 `component` 才会生效 * - `link` 链接,当 `click` 返回字符串时自动调用 `navigateByUrl` 导航 * - `divider` 分割线 * @type {?|undefined} */ STColumnButton.prototype.type; /** * 点击回调 * - Function * - `type=modal` 只会在当有传回值时才会触发回调 * - reload:重新刷新当前页 * - load:重新加载数据,并重置页码为:`1` * * \@todo Bad parameter design * @type {?|undefined} */ STColumnButton.prototype.click; /** * 气泡确认框参数,若 `string` 类型表示标题 * @type {?|undefined} */ STColumnButton.prototype.pop; /** * 对话框参数 * @type {?|undefined} */ STColumnButton.prototype.modal; /** * 抽屉参数 * @type {?|undefined} */ STColumnButton.prototype.drawer; /** * 下拉菜单,当存在时以 `dropdown` 形式渲染 * - 只支持一级 * @type {?|undefined} */ STColumnButton.prototype.children; /** * 权限,等同 [ACLCanType](https://ohayojp.com/acl/getting-started/#ACLCanType) 参数值 * @type {?|undefined} */ STColumnButton.prototype.acl; /** * Conditional expression * * \@todo Bad parameter design * @type {?|undefined} */ STColumnButton.prototype.iif; /** * Conditional expression rendering behavior, can be set to `hide` (default) or `disabled` * @type {?|undefined} */ STColumnButton.prototype.iifBehavior; /** @type {?|undefined} */ STColumnButton.prototype.tooltip; /** * 按钮 `class` 属性值(注:无须 `.` 点)多个用空格隔开,例如: * - `text-success` 成功色 * - `text-error` 错误色 * @type {?|undefined} */ STColumnButton.prototype.className; /* Skipping unhandled member: [key: string]: any;*/ } /** * @record */ export function STColumnButtonOK() { } if (false) { /** @type {?} */ STColumnButtonOK.prototype.record; /** * Modal or drawer return value when trigger confirm. * @type {?|undefined} */ STColumnButtonOK.prototype.ret; /** @type {?|undefined} */ STColumnButtonOK.prototype.instance; /** @type {?} */ STColumnButtonOK.prototype.event; } /** * @record */ export function STColumnButtonModal() { } if (false) { /** * 对话框组件对象 * @type {?|undefined} */ STColumnButtonModal.prototype.component; /** * 对话框参数 * @type {?|undefined} */ STColumnButtonModal.prototype.params; /** * 对话框目标组件的接收参数名,默认:`record` * @type {?|undefined} */ STColumnButtonModal.prototype.paramsName; } /** * @record */ export function STColumnButtonModalConfig() { } if (false) { /** * 指定模态框目标组件的接收参数名,默认:`record` * @type {?|undefined} */ STColumnButtonModalConfig.prototype.paramsName; /** * 大小;例如:lg、600,默认:`lg` * @type {?|undefined} */ STColumnButtonModalConfig.prototype.size; /** * 对话框 [ModalOptions](https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/modal/modal-types.ts) 参数 * @type {?|undefined} */ STColumnButtonModalConfig.prototype.modalOptions; /** * 是否精准(默认:`true`),若返回值非空值(`null`或`undefined`)视为成功,否则视为错误 * @type {?|undefined} */ STColumnButtonModalConfig.prototype.exact; } /** * @record */ export function STColumnButtonDrawer() { } if (false) { /** * 标题 * @type {?|undefined} */ STColumnButtonDrawer.prototype.title; /** * 抽屉组件对象 * @type {?|undefined} */ STColumnButtonDrawer.prototype.component; /** * 抽屉参数 * @type {?|undefined} */ STColumnButtonDrawer.prototype.params; /** * 抽屉目标组件的接收参数名,默认:`record` * @type {?|undefined} */ STColumnButtonDrawer.prototype.paramsName; } /** * @record */ export function STColumnButtonDrawerConfig() { } if (false) { /** * 抽屉目标组件的接收参数名,默认:`record` * @type {?|undefined} */ STColumnButtonDrawerConfig.prototype.paramsName; /** * 大小;例如:lg、600,默认:`md` * * | 类型 | 默认大小 | * | --- | ------ | * | `sm` | `300` | * | `md` | `600` | * | `lg` | `900` | * | `xl` | `1200` | * * > 以上值,可通过覆盖相应的LESS参数自行调整 * @type {?|undefined} */ STColumnButtonDrawerConfig.prototype.size; /** * 是否包含底部工具条,默认:`true` * @type {?|undefined} */ STColumnButtonDrawerConfig.prototype.footer; /** * 底部工具条高度,默认:`55` * @type {?|undefined} */ STColumnButtonDrawerConfig.prototype.footerHeight; /** * 抽屉 [NzDrawerOptions](https://ng.ant.design/components/drawer/zh#nzdraweroptions) 参数 * @type {?|undefined} */ STColumnButtonDrawerConfig.prototype.drawerOptions; } /** * @record */ export function STColumnButtonPop() { } if (false) { /** * Title of the popover, default: `确认删除吗?` * @type {?|undefined} */ STColumnButtonPop.prototype.title; /** * Popover trigger mode, default: `click` * @type {?|undefined} */ STColumnButtonPop.prototype.trigger; /** * The position of the popover relative to the target, default: `top` * @type {?|undefined} */ STColumnButtonPop.prototype.placement; /** * Class name of the popover card * @type {?|undefined} */ STColumnButtonPop.prototype.overlayClassName; /** * Style of the popover card * @type {?|undefined} */ STColumnButtonPop.prototype.overlayStyle; /** * Text of the Cancel button * @type {?|undefined} */ STColumnButtonPop.prototype.cancelText; /** * Text of the Confirm button * @type {?|undefined} */ STColumnButtonPop.prototype.okText; /** * Button `type` of the Confirm button * @type {?|undefined} */ STColumnButtonPop.prototype.okType; /** * Customize icon of confirmation * @type {?|undefined} */ STColumnButtonPop.prototype.icon; /** * Whether to directly emit `onConfirm` without showing Popconfirm, default: `() => false` * @type {?|undefined} */ STColumnButtonPop.prototype.condition; } /** * @record */ export function STReqReNameType() { } if (false) { /** @type {?|undefined} */ STReqReNameType.prototype.pi; /** @type {?|undefined} */ STReqReNameType.prototype.ps; /** @type {?|undefined} */ STReqReNameType.prototype.skip; /** @type {?|undefined} */ STReqReNameType.prototype.limit; } /** * @record */ export function STResReNameType() { } if (false) { /** @type {?|undefined} */ STResReNameType.prototype.total; /** @type {?|undefined} */ STResReNameType.prototype.list; } /** * @record */ export function STExportOptions() { } if (false) { /** * Specify the currently exported data, default the current table data * @type {?|undefined} */ STExportOptions.prototype.data; /** * Specify the currently exported column configuration, default the current table data * @type {?|undefined} */ STExportOptions.prototype.columens; /** * 工作溥名 * @type {?|undefined} */ STExportOptions.prototype.sheetname; /** * 文件名 * @type {?|undefined} */ STExportOptions.prototype.filename; /** * triggers when saveas * @type {?|undefined} */ STExportOptions.prototype.callback; } /** * 单排序规则 * - 若不指定,则返回:`columnName=ascend|descend` * - 若指定,则返回:`sort=columnName.(ascend|descend)` * @record */ export function STSingleSort() { } if (false) { /** * 请求参数名,默认:`sort` * @type {?|undefined} */ STSingleSort.prototype.key; /** * 列名与状态间分隔符,默认:`.` * @type {?|undefined} */ STSingleSort.prototype.nameSeparator; } /** * 多排序相同排序 key 时合并规则 * @record */ export function STMultiSort() { } if (false) { /** * 请求参数名,默认:`sort` * @type {?|undefined} */ STMultiSort.prototype.key; /** * 不同属性间分隔符,默认:`-` * @type {?|undefined} */ STMultiSort.prototype.separator; /** * 列名与状态间分隔符,默认:`.` * @type {?|undefined} */ STMultiSort.prototype.nameSeparator; /** * 是否以数组的形式传递参数,默认:`false` * - `true` 表示使用 `url?sort=name.asc&sort=age.desc` 形式 * - `false` 表示使用 `url?sort=name.asc-age.desc` 形式 * @type {?|undefined} */ STMultiSort.prototype.arrayParam; /** * 是否保持空值的键名,默认:`true` * - `true` 表示不管是否有排序都会发送 `key` 键名 * - `false` 表示无排序动作时不会发送 `key` 键名 * @type {?|undefined} */ STMultiSort.prototype.keepEmptyKey; /** * ## 仅限全局配置项有效 * * 是否全局多排序模式,默认:`true` * - `true` 表示所有 `st` 默认为多排序 * - `false` 表示需要为每个 `st` 添加 `multiSort` 才会视为多排序模式 * @type {?|undefined} */ STMultiSort.prototype.global; } /** * 徽标信息 * @record */ export function STColumnBadge() { } /** * @record */ export function STColumnBadgeValue() { } if (false) { /** * 文本 * @type {?|undefined} */ STColumnBadgeValue.prototype.text; /** * 徽标颜色值 * @type {?|undefined} */ STColumnBadgeValue.prototype.color; } /** * 标签信息 * @record */ export function STColumnTag() { } /** * @record */ export function STColumnTagValue() { } if (false) { /** * 文本 * @type {?|undefined} */ STColumnTagValue.prototype.text; /** * 颜色值,支持预设和色值 * - 预设:geekblue,blue,purple,success,red,volcano,orange,gold,lime,green,cyan * - 色值:#f50,#ff0 * @type {?|undefined} */ STColumnTagValue.prototype.color; } /** * 回调数据 * @record */ export function STChange() { } if (false) { /** * 回调类型 * @type {?} */ STChange.prototype.type; /** * 当前页码 * @type {?} */ STChange.prototype.pi; /** * 每页数量 * @type {?} */ STChange.prototype.ps; /** * 数据总量 * @type {?} */ STChange.prototype.total; /** * `loaded` 参数 * @type {?|undefined} */ STChange.prototype.loaded; /** * `checkbox` 参数 * @type {?|undefined} */ STChange.prototype.checkbox; /** * `radio` 参数 * @type {?|undefined} */ STChange.prototype.radio; /** * 排序参数 * @type {?|undefined} */ STChange.prototype.sort; /** * 过滤参数 * @type {?|undefined} */ STChange.prototype.filter; /** * 行点击参数 * @type {?|undefined} */ STChange.prototype.click; /** * 行双击参数 * @type {?|undefined} */ STChange.prototype.dblClick; /** * `expand` 参数 * @type {?|undefined} */ STChange.prototype.expand; /** * `resize` 参数 * @type {?|undefined} */ STChange.prototype.resize; } /** * 行单击参数 * @record */ export function STChangeSort() { } if (false) { /** @type {?|undefined} */ STChangeSort.prototype.value; /** @type {?|undefined} */ STChangeSort.prototype.map; /** @type {?|undefined} */ STChangeSort.prototype.column; } /** * 行单击参数 * @record */ export function STChangeRowClick() { } if (false) { /** @type {?|undefined} */ STChangeRowClick.prototype.e; /** @type {?|undefined} */ STChangeRowClick.prototype.item; /** @type {?|undefined} */ STChangeRowClick.prototype.index; } /** * @record */ export function STError() { } if (false) { /** @type {?|undefined} */ STError.prototype.type; /** @type {?|undefined} */ STError.prototype.error; } /** * @record */ export function STColumnGroupType() { } if (false) { /** @type {?} */ STColumnGroupType.prototype.column; /** @type {?} */ STColumnGroupType.prototype.colStart; /** @type {?|undefined} */ STColumnGroupType.prototype.colEnd; /** @type {?|undefined} */ STColumnGroupType.prototype.colSpan; /** @type {?|undefined} */ STColumnGroupType.prototype.rowSpan; /** @type {?|undefined} */ STColumnGroupType.prototype.hasSubColumns; } /** * @record */ export function STResizable() { } if (false) { /** * Disable resize, Default: `true` * @type {?|undefined} */ STResizable.prototype.disabled; /** * Specifies resize boundaries, Default: `window` * @type {?|undefined} */ STResizable.prototype.bounds; /** * Maximum width of resizable elemen, Default: `60` * @type {?|undefined} */ STResizable.prototype.maxWidth; /** * Minimum width of resizable element, Default: `360` * @type {?|undefined} */ STResizable.prototype.minWidth; /** * Enable preview when resizing, Default: `true` * @type {?|undefined} */ STResizable.prototype.preview; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiJDOi9hbmRyb2lkL0BvaGF5b2pwL3BhY2thZ2VzL2NvbXBvbmVudHMvc3QvIiwic291cmNlcyI6WyJzdC5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsaUNBYUM7Ozs7Ozs7O0lBUEMsMkJBQTRCOzs7Ozs7O0lBTTVCLHFDQUFxQzs7Ozs7QUFHdkMsMENBWUM7OztJQVhDLGtDQUFZOztJQUNaLGtDQUFZOztJQUNaLHVDQUFxQjs7Ozs7SUFJckIsNENBQXVCOzs7OztJQUl2QiwwQ0FBcUI7Ozs7O0FBR3ZCLDJCQW1DQzs7Ozs7Ozs7SUE3QkMscUJBQXVCOzs7Ozs7SUFLdkIsdUJBQWE7Ozs7O0lBRWIsdUJBQWdCOzs7OztJQUVoQixxQkFBVzs7Ozs7SUFFWCx3QkFBYzs7Ozs7O0lBS2QsdUJBQXlCOzs7OztJQUl6QiwwQkFBb0I7Ozs7O0lBSXBCLHlCQUFtQjs7Ozs7SUFJbkIsd0JBQWlFOzs7OztBQUduRSxzQ0FnQkM7OztJQWZDLGdDQUFXOztJQUNYLG1DQUlFOztJQUNGLGtDQUlFOztJQUNGLG1DQUF5Qzs7SUFDekMsMENBQXlCOztJQUN6Qix3Q0FBd0Q7O0lBQ3hELDJDQUEwQjs7Ozs7QUFHNUIsbUNBS0M7Ozs7OztJQUhDLDhCQUFnQjs7Ozs7SUFFaEIsOEJBQWdCOzs7OztBQUdsQiwyQkFVQzs7Ozs7OztJQUxDLHVCQUF5Qjs7Ozs7SUFJekIsd0JBQXNEOzs7OztBQUd4RCw0QkE0REM7Ozs7Ozs7O0lBdERDLHVCQUFnQjs7Ozs7SUFJaEIsNkJBQXNCOzs7OztJQUl0QiwwQkFBcUM7Ozs7O0lBSXJDLDJCQUF3Qzs7Ozs7SUFJeEMsc0JBQWU7Ozs7O0lBSWYsMEJBQW1COzs7OztJQUluQiwyQkFBcUI7Ozs7O0lBSXJCLGlDQUEwQjs7Ozs7SUFJMUIsNEJBQTZEOzs7OztJQUk3RCx3QkFBaUI7Ozs7Ozs7Ozs7SUFTakIsdUJBQXlCOzs7OztJQUl6Qix1QkFBZ0I7Ozs7O0lBSWhCLDZCQUFxQjs7Ozs7O0FBTXZCLDRCQW1CQzs7Ozs7O0lBZkMseUJBQWtCOzs7OztJQUlsQiwwQkFBbUI7Ozs7O0lBSW5CLHdCQUFpQjs7Ozs7SUFJakIsNEJBQXFCOzs7Ozs7O0FBUXZCLDhCQTBLQzs7Ozs7O0lBdEtDLHVCQUFhOzs7OztJQUliLHlCQUErQjs7Ozs7Ozs7SUFPL0IseUJBQWlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpQmpDLHdCQUF1STs7Ozs7SUFJdkkseUJBQXdEOzs7OztJQUl4RCwyQkFBMkI7Ozs7Ozs7OztJQVEzQiwwQkFBd0Y7Ozs7Ozs7OztJQVF4RiwrQkFBK0Y7Ozs7Ozs7SUFNL0YseUJBQXdCOzs7Ozs7O0lBTXhCLHdCQUFvQzs7Ozs7SUFJcEMsMEJBQXdCOzs7OztJQUl4QiwwQkFBZ0U7Ozs7O0lBSWhFLDhCQUFpQzs7Ozs7Ozs7O0lBUWpDLDZCQUF1RTs7Ozs7SUFJdkUsMkJBQWlCOzs7OztJQUlqQixnQ0FBc0I7Ozs7O0lBSXRCLDhCQUFvQjs7Ozs7SUFJcEIsc0JBQWdCOzs7OztJQUloQiw0QkFBbUI7Ozs7O0lBSW5CLHVCQUFpQjs7Ozs7SUFFakIsMkJBQWlCOzs7Ozs7OztJQU9qQix5QkFBeUI7Ozs7O0lBSXpCLHlCQUE2Qjs7Ozs7SUFJN0IsdUJBQXlCOzs7Ozs7O0lBTXpCLDJCQUEwRTs7Ozs7OztJQU0xRSx1QkFBa0M7Ozs7Ozs7O0lBUWxDLCtCQUFnRDs7SUFFaEQsMEJBQXdCOztJQUV4Qix3QkFBdUQ7Ozs7O0lBS3ZELDRCQUFzQjs7SUFFdEIsMkJBQWlCOzs7Ozs7O0lBT2pCLDZCQUFrQzs7Ozs7QUFLcEMsb0NBSUM7OztJQUhDLDhCQUFhOztJQUViLGdDQUErRDs7Ozs7QUFHakUsbUNBc0JDOzs7Ozs7SUFoQkMsNkJBQWM7Ozs7O0lBS2QsNkJBQWM7Ozs7O0lBS2QsaUNBQWtCOzs7OztJQUtsQixxQ0FBc0I7Ozs7OztBQU94QixtQ0FXQzs7O0lBVkMsNkJBQTBDOzs7OztJQUkxQywrQkFBZ0I7Ozs7OztJQUtoQixpQ0FBbUI7Ozs7O0FBR3JCLDBDQUdDOzs7O0FBRUQseUNBR0M7OztJQUZDLG9DQUFjOztJQUNkLG1DQUFjOzs7OztBQUdoQixrQ0F1QkM7Ozs7OztJQW5CQywrQkFBc0M7Ozs7Ozs7SUFNdEMsK0JBQW9EOzs7Ozs7O0lBTXBELDJCQUFvQjs7Ozs7OztJQU1wQiw4QkFBK0M7Ozs7O0FBR2pELCtCQUtDOzs7Ozs7SUFEQyw0QkFBa0I7Ozs7OztBQUdwQixvQ0FpREM7Ozs7Ozs7O0lBM0NDLDhCQUE2Qjs7Ozs7O0lBSzdCLCtCQUE2Qjs7Ozs7SUFJN0IsNEJBQXNFOzs7OztJQUl0RSxpQ0FBa0I7Ozs7Ozs7SUFNbEIsOEJBQXVCOzs7OztJQUl2QixxQ0FBcUI7Ozs7O0lBSXJCLG1DQUFtQjs7Ozs7SUFJbkIsa0NBQW1COzs7Ozs7SUFLbkIsNkJBQW9COzs7Ozs7O0lBTXBCLGdDQUEyRDs7Ozs7QUFHN0Qsd0NBb0JDOzs7Ozs7O0lBZkMsa0NBQWM7Ozs7O0lBSWQsbUNBQVk7Ozs7O0lBSVoscUNBQWtCOzs7OztJQUlsQixpQ0FBaUI7Ozs7OztBQUtuQix1Q0FXQzs7Ozs7O0lBUEMsaUNBQWE7Ozs7O0lBSWIsbUNBQWlDOzs7OztJQUVqQyxnQ0FBaUI7Ozs7OztBQUluQixnQ0FvQkM7Ozs7OztJQWhCQywyQkFBWTs7Ozs7SUFJWix5QkFBYTs7Ozs7SUFJYix3QkFBWTs7Ozs7Ozs7SUFPWiwwQkFBYzs7Ozs7QUFHaEIsNEJBV0M7Ozs7OztJQVRDLHNCQUFhOzs7OztJQUViLHVCQUF1Qzs7Ozs7SUFFdkMsc0JBQWU7Ozs7O0lBRWYsOEJBQXNCOzs7OztJQUV0QiwwQkFBa0I7Ozs7OztBQU1wQixvQ0E0RUM7Ozs7OztJQXhFQyw4QkFBa0U7Ozs7O0lBSWxFLDhCQUFjOzs7OztJQUlkLDhCQUF1Qjs7Ozs7Ozs7Ozs7O0lBV3ZCLDhCQUEyRTs7Ozs7Ozs7Ozs7SUFVM0UsK0JBQTJGOzs7OztJQUkzRiw2QkFBMkM7Ozs7O0lBSTNDLCtCQUE0Qjs7Ozs7SUFJNUIsZ0NBQThCOzs7Ozs7SUFLOUIsa0NBQTRCOzs7OztJQUk1Qiw2QkFBaUI7Ozs7Ozs7SUFNakIsNkJBQXVFOzs7OztJQUl2RSxxQ0FBOEI7O0lBRTlCLGlDQUFpQjs7Ozs7OztJQU9qQixtQ0FBdUU7Ozs7OztBQUt6RSxzQ0FRQzs7O0lBUEMsa0NBQWU7Ozs7O0lBSWYsK0JBQVU7O0lBQ1Ysb0NBQXVCOztJQUN2QixpQ0FBYTs7Ozs7QUFLZix5Q0FhQzs7Ozs7O0lBVEMsd0NBQWdCOzs7OztJQUloQixxQ0FBZ0M7Ozs7O0lBSWhDLHlDQUFvQjs7Ozs7QUFHdEIsK0NBV0M7Ozs7OztJQVBDLCtDQUFvQjs7Ozs7SUFFcEIseUNBQStDOzs7OztJQUUvQyxpREFBNEI7Ozs7O0lBRTVCLDBDQUFnQjs7Ozs7QUFHbEIsMENBaUJDOzs7Ozs7SUFiQyxxQ0FBZTs7Ozs7SUFJZix5Q0FBZ0I7Ozs7O0lBSWhCLHNDQUFnQzs7Ozs7SUFJaEMsMENBQW9COzs7OztBQUd0QixnREE0QkM7Ozs7OztJQXhCQyxnREFBb0I7Ozs7Ozs7Ozs7Ozs7O0lBYXBCLDBDQUEwQzs7Ozs7SUFJMUMsNENBQWlCOzs7OztJQUlqQixrREFBc0I7Ozs7O0lBRXRCLG1EQUFnQzs7Ozs7QUFHbEMsdUNBOERDOzs7Ozs7SUExREMsa0NBQWU7Ozs7O0lBS2Ysb0NBQXNDOzs7OztJQUt0QyxzQ0FZZ0I7Ozs7O0lBS2hCLDZDQUEwQjs7Ozs7SUFLMUIseUNBQWtCOzs7OztJQUtsQix1Q0FBb0I7Ozs7O0lBS3BCLG1DQUFnQjs7Ozs7SUFLaEIsbUNBQStEOzs7OztJQUsvRCxpQ0FBYzs7Ozs7SUFLZCxzQ0FBc0M7Ozs7O0FBR3hDLHFDQUtDOzs7SUFKQyw2QkFBWTs7SUFDWiw2QkFBWTs7SUFDWiwrQkFBYzs7SUFDZCxnQ0FBZTs7Ozs7QUFHakIscUNBR0M7OztJQUZDLGdDQUEwQjs7SUFDMUIsK0JBQXlCOzs7OztBQUczQixxQ0FlQzs7Ozs7O0lBWEMsK0JBQWdCOzs7OztJQUloQixtQ0FBc0I7Ozs7O0lBRXRCLG9DQUFtQjs7Ozs7SUFFbkIsbUNBQWtCOzs7OztJQUVsQixtQ0FBNkI7Ozs7Ozs7O0FBUS9CLGtDQUtDOzs7Ozs7SUFIQywyQkFBYTs7Ozs7SUFFYixxQ0FBdUI7Ozs7OztBQU16QixpQ0EyQkM7Ozs7OztJQXpCQywwQkFBYTs7Ozs7SUFFYixnQ0FBbUI7Ozs7O0lBRW5CLG9DQUF1Qjs7Ozs7OztJQU12QixpQ0FBcUI7Ozs7Ozs7SUFNckIsbUNBQXVCOzs7Ozs7Ozs7SUFRdkIsNkJBQWlCOzs7Ozs7QUFRbkIsbUNBR0M7Ozs7QUFFRCx3Q0FTQzs7Ozs7O0lBTEMsa0NBQWM7Ozs7O0lBSWQsbUNBQW1FOzs7Ozs7QUFNckUsaUNBR0M7Ozs7QUFFRCxzQ0FXQzs7Ozs7O0lBUEMsZ0NBQWM7Ozs7Ozs7SUFNZCxpQ0FBZ0k7Ozs7OztBQVFsSSw4QkFxREM7Ozs7OztJQWpEQyx3QkFBbUI7Ozs7O0lBSW5CLHNCQUFXOzs7OztJQUlYLHNCQUFXOzs7OztJQUlYLHlCQUFjOzs7OztJQUlkLDBCQUFrQjs7Ozs7SUFJbEIsNEJBQW9COzs7OztJQUlwQix5QkFBZTs7Ozs7SUFJZix3QkFBb0I7Ozs7O0lBSXBCLDBCQUFrQjs7Ozs7SUFJbEIseUJBQXlCOzs7OztJQUl6Qiw0QkFBNEI7Ozs7O0lBSTVCLDBCQUFnQjs7Ozs7SUFJaEIsMEJBQWtCOzs7Ozs7QUFJcEIsa0NBSUM7OztJQUhDLDZCQUE2Qjs7SUFDN0IsMkJBQWdDOztJQUNoQyw4QkFBa0I7Ozs7OztBQUlwQixzQ0FJQzs7O0lBSEMsNkJBQVU7O0lBQ1YsZ0NBQWM7O0lBQ2QsaUNBQWU7Ozs7O0FBR2pCLDZCQUdDOzs7SUFGQyx1QkFBYTs7SUFDYix3QkFBWTs7Ozs7QUFLZCx1Q0FPQzs7O0lBTkMsbUNBQWlCOztJQUNqQixxQ0FBaUI7O0lBQ2pCLG1DQUFnQjs7SUFDaEIsb0NBQWlCOztJQUNqQixvQ0FBaUI7O0lBQ2pCLDBDQUF3Qjs7Ozs7QUFHMUIsaUNBcUJDOzs7Ozs7SUFqQkMsK0JBQW1COzs7OztJQUluQiw2QkFBdUQ7Ozs7O0lBSXZELCtCQUFrQjs7Ozs7SUFJbEIsK0JBQWtCOzs7OztJQUlsQiw4QkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBQ0xDYW5UeXBlIH0gZnJvbSAnQG9oYXlvL2FjbCc7XG5pbXBvcnQgeyBEcmF3ZXJIZWxwZXJPcHRpb25zLCBNb2RhbEhlbHBlck9wdGlvbnMsIFlOTW9kZSB9IGZyb20gJ0BvaGF5by90aGVtZSc7XG5pbXBvcnQgeyBOekRyYXdlck9wdGlvbnMgfSBmcm9tICduZy16b3Jyby1hbnRkL2RyYXdlcic7XG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tICduZy16b3Jyby1hbnRkL21vZGFsJztcbmltcG9ydCB7IFBhZ2luYXRpb25JdGVtUmVuZGVyQ29udGV4dCB9IGZyb20gJ25nLXpvcnJvLWFudGQvcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBTVENvbXBvbmVudCB9IGZyb20gJy4vc3QuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTVFdpZHRoTW9kZSB7XG4gIC8qKlxuICAgKiDlrr3luqbnsbvlnotcbiAgICogLSBgZGVmYXVsdGAg6buY6K6k6KGM5Li6XG4gICAqIC0gYHN0cmljdGAg5Lil5qC85qih5byP77yM5Y2z5by65Yi25oyJIGB3aWR0aGAg5oyH5a6a55qE5a695bqm5ZGI546w77yM5bm25qC55o2uIGBzdHJpY3RCZWhhdmlvcmAg57G75Z6L5aSE55CGXG4gICAqL1xuICB0eXBlPzogJ3N0cmljdCcgfCAnZGVmYXVsdCc7XG4gIC8qKlxuICAgKiDkuKXmoLzmqKHlvI/nmoTlpITnkIbooYzkuLpcbiAgICogLSBgd3JhcGAg5by65Yi25o2i6KGMXG4gICAqIC0gYHRydW5jYXRlYCDmiKrnn61cbiAgICovXG4gIHN0cmljdEJlaGF2aW9yPzogJ3dyYXAnIHwgJ3RydW5jYXRlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVFJlc2V0Q29sdW1uc09wdGlvbiB7XG4gIHBpPzogbnVtYmVyO1xuICBwcz86IG51bWJlcjtcbiAgY29sdW1ucz86IFNUQ29sdW1uW107XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZS1jbGVhciBkYXRhLCBEZWZhdWx0OiBgZmFsc2VgXG4gICAqL1xuICBwcmVDbGVhckRhdGE/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byB0cmlnZ2VyIGEgZGF0YSBsb2FkLCBEZWZhdWx0OiBgdHJ1ZWBcbiAgICovXG4gIGVtaXRSZWxvYWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUUmVxIHtcbiAgLyoqXG4gICAqIOWIhumhteexu+Wei++8jOm7mOiupO+8mmBwYWdlYFxuICAgKiAtIGBwYWdlYCDkvb/nlKggYHBpYO+8jGBwc2Ag57uE5ZCIXG4gICAqIC0gYHNraXBgIOS9v+eUqCBgc2tpcGDvvIxgbGltaXRgIOe7hOWQiFxuICAgKi9cbiAgdHlwZT86ICdwYWdlJyB8ICdza2lwJztcbiAgLyoqXG4gICAqIOmineWkluivt+axguWPguaVsO+8jOm7mOiupOiHquWKqOmZhOWKoCBgcGlg44CBYHBzYCDoh7NVUkxcbiAgICogLSBgeyBzdGF0dXM6ICduZXcnIH1gID0+IGB1cmw/cGk9MSZwcz0xMCZzdGF0dXM9bmV3YFxuICAgKi9cbiAgcGFyYW1zPzogYW55O1xuICAvKiog6K+35rGC5pa55rOV77yM6buY6K6k77yaYEdFVGAgKi9cbiAgbWV0aG9kPzogc3RyaW5nO1xuICAvKiog6K+35rGC5L2TIGBib2R5YCAqL1xuICBib2R5PzogYW55O1xuICAvKiog6K+35rGC5L2TIGBIZWFkZXJgICovXG4gIGhlYWRlcnM/OiBhbnk7XG4gIC8qKlxuICAgKiDph43lkb3lkI3lj4LmlbAgYHBpYOOAgWBwc2DvvIzpu5jorqTvvJpgeyBwaTogJ3BpJywgcHM6ICdwcycgfWBcbiAgICogLSBgeyBwaTogJ1BhZ2UnIH1gID0+IGBwaWAg5Lya6KKr5pu/5o2i5oiQIFBhZ2VcbiAgICovXG4gIHJlTmFtZT86IFNUUmVxUmVOYW1lVHlwZTtcbiAgLyoqXG4gICAqIOaYr+WQpuWwhuivt+axguaJgOacieWPguaVsOaVsOaNrumDveaUvuWFpSBgYm9keWAg5b2T5Lit77yIYHVybGAg5Zyw5Z2A5pys6Lqr5Y+C5pWw6Zmk5aSW77yJ77yM5LuF5b2TIGBtZXRob2Q6ICdQT1NUJ2Ag5pe25pyJ5pWI77yM6buY6K6k77yaYGZhbHNlYFxuICAgKi9cbiAgYWxsSW5Cb2R5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOaYr+WQpuW7tui/n+WKoOi9veaVsOaNru+8jOWNs+a4suafk+e7k+adn+WQjuS4jeS8muS4u+WKqOWPkei1t+ivt+axgu+8jOm7mOiupO+8mmBmYWxzZWBcbiAgICovXG4gIGxhenlMb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOivt+axguWJjeaVsOaNruWkhOeQhlxuICAgKi9cbiAgcHJvY2Vzcz86IChyZXF1ZXN0T3B0aW9uczogU1RSZXF1ZXN0T3B0aW9ucykgPT4gU1RSZXF1ZXN0T3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVFJlcXVlc3RPcHRpb25zIHtcbiAgYm9keT86IGFueTtcbiAgaGVhZGVycz86XG4gIHwgSHR0cEhlYWRlcnNcbiAgfCB7XG4gICAgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG4gIH07XG4gIHBhcmFtcz86XG4gIHwgSHR0cFBhcmFtc1xuICB8IHtcbiAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICB9O1xuICBvYnNlcnZlPzogJ2JvZHknIHwgJ2V2ZW50cycgfCAncmVzcG9uc2UnO1xuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1RMb2FkT3B0aW9ucyB7XG4gIC8qKiDmmK/lkKblkIjlubbvvIzpu5jorqTvvJpgZmFsc2VgICovXG4gIG1lcmdlPzogYm9vbGVhbjtcbiAgLyoqIOaYr+WQpui3s+i9rOiHs+mhtumDqO+8jOiLpeS4jeaMh+WumueUsSBgcGFnZS50b1RvcGAg5p2l5Yaz5a6aICovXG4gIHRvVG9wPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTVFJlcyB7XG4gIC8qKlxuICAgKiDph43lkb3lkI3ov5Tlm57lj4LmlbAgYHRvdGFsYOOAgWBsaXN0YFxuICAgKiAtIGB7IHRvdGFsOiAnVG90YWwnIH1gID0+IFRvdGFsIOS8muiiq+W9k+S9nCBgdG90YWxgXG4gICAqL1xuICByZU5hbWU/OiBTVFJlc1JlTmFtZVR5cGU7XG4gIC8qKlxuICAgKiDmlbDmja7pooTlpITnkIZcbiAgICovXG4gIHByb2Nlc3M/OiAoZGF0YTogU1REYXRhW10sIHJhd0RhdGE/OiBhbnkpID0+IFNURGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNUUGFnZSB7XG4gIC8qKlxuICAgKiDliY3nq6/liIbpobXvvIzlvZMgYGRhdGFgIOS4umBhbnlbXWAg5oiWIGBPYnNlcnZhYmxlPGFueVtdPmAg5pyJ5pWI77yM6buY6K6k77yaYHRydWVgXG4gICAqIC0gYHRydWVgIOeUsSBgc3RgIOagueaNriBgZGF0YWAg6ZW/5bqm5Y+X5o6n5YiG6aG177yM5YyF5ous77ya5o6S5bqP44CB6L+H5ruk562JXG4gICAqIC0gYGZhbHNlYCDnlLHnlKjmiLfpgJrov4cgYHRvdGFsYCDlkowgYGRhdGFgIOWPguaVsOWPl+aOp+WIhumhte+8jOW5tue7tOaKpCBgKGNoYW5nZSlgIOW9k+WIhumhteWPmOabtOaXtumHjeaWsOWKoOi9veaVsOaNrlxuICAgKi9cbiAgZnJvbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICog5ZCO56uv5YiG6aG15piv5ZCm6YeH55SoYDBg5Z+657Si5byV77yM5Y+q5ZyoYGRhdGFg57G75Z6L5Li6YHN0cmluZ2Dml7bmnInmlYjvvIzpu5jorqTvvJpgZmFsc2VgXG4gICAqL1xuICB6ZXJvSW5kZXhlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiDmjIflrprliIbpobXmmL7npLrnmoTkvY3nva7vvIzpu5jorqTvvJpgYm90dG9tYFxuICAgKi9cbiAgcG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nIHwgJ2JvdGgnO1xuICAvKipcbiAgICog5oyH5a6a5YiG6aG15YiG6aG15pa55ZCR77yM6buY6K6k77yaYHJpZ2h0YFxuICAgKi9cbiAgcGxhY2VtZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICAvKipcbiAgICog5piv5ZCm5pi+56S65YiG6aG15Zmo77yM6buY6K6k77yaYHRydWVgXG4gICAqL1xuICBzaG93PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuuWIhumhteWZqOS4reaUueWPmOmhteaVsO+8jOm7mOiupO+8mmBmYWxzZWBcbiAgICovXG4gIHNob3dTaXplPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOWIhumhteWZqOS4reavj+mhteaYvuekuuadoeebruaVsOS4i+aLieahhuWAvO+8jOm7mOiupO+8mmBbMTAsIDIwLCAzMCwgNDAsIDUwXWBcbiAgICovXG4gIHBhZ2VTaXplcz86IG51bWJlcltdO1xuICAvKipcbiAgICog5piv5ZCm5pi+56S65YiG6aG15Zmo5Lit5b+r6YCf6Lez6L2s77yM6buY6K6k77yaYGZhbHNlYFxuICAgKi9cbiAgc2hvd1F1aWNrSnVtcGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOeUqOS6juiHquWumuS5iemhteeggeeahOe7k+aehO+8jOeUqOazleWPgueFpyBQYWdpbmF0aW9uIOe7hOS7tlxuICAgKi9cbiAgaXRlbVJlbmRlcj86IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25JdGVtUmVuZGVyQ29udGV4dD4gfCBudWxsO1xuICAvKipcbiAgICog5b2T5re75Yqg6K+l5bGe5oCn5pe277yM5pi+56S65Li6566A5Y2V5YiG6aG177yM6buY6K6k77yaYGZhbHNlYFxuICAgKi9cbiAgc2ltcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOaYr+WQpuaYvuekuuaAu+aVsOaNrumHj1xuICAgKiAtIGBib29sZWFuYCDnsbvlnovmmL7npLrkuI7lkKbvvIzpu5jorqTmqKHmnb/vvJpg5YWxIHt7dG90YWx9fSDmnaFgXG4gICAqIC0gYHN0cmluZ2Ag6Ieq5a6a5LmJ5qih5p2/77yM5qih5p2/5Y+Y6YeP77yaXG4gICAqICAtIGB7e3RvdGFsfX1gIOihqOekuuaVsOaNruaAu+mHj1xuICAgKiAgLSBge3tyYW5nZVswXX19YCDooajnpLrlvZPliY3pobXlvIDlp4vmlbDph4/lgLxcbiAgICogIC0gYHt7cmFuZ2VbMV19fWAg6KGo56S65b2T5YmN6aG157uT5p2f5pWw6YeP5YC8XG4gICAqL1xuICB0b3RhbD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiDliIfmjaLliIbpobXml7bov5Tlm57pobbpg6jvvIzpu5jorqTvvJpgdHJ1ZWBcbiAgICovXG4gIHRvVG9wPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOi/lOWbnumhtumDqOWBj+enu+WAvO+8jOm7mOiupO+8mmAxMDBgXG4gICAqL1xuICB0b1RvcE9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiDmlbDmja7mupBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTVERhdGEge1xuICAvKipcbiAgICog6YCJ5oup5qGG5oiW5Y2V6YCJ5qGG54q25oCB5YC8XG4gICAqL1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOmAieaLqeahhuaIluWNlemAieahhiBgZGlzYWJsZWRgIOWAvFxuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICog5piv5ZCm5bGV5byA54q25oCBXG4gICAqL1xuICBleHBhbmQ/OiBib29sZWFuO1xuICAvKipcbiAgICog5piv5ZCm5pi+56S65bGV5byA5oyJ6ZKuXG4gICAqL1xuICBzaG93RXhwYW5kPzogYm9vbGVhbjtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICog5YiX5o+P6L+wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1RDb2x1bW4ge1xuICAvKipcbiAgICog55So5LqO5a6a5LmJ5pWw5o2u5rqQ5Li76ZSu77yM5L6L5aaC77yaYHN0YXRpc3RpY2FsYFxuICAgKi9cbiAga2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICog5YiX5qCH6aKYXG4gICAqL1xuICB0aXRsZT86IHN0cmluZyB8IFNUQ29sdW1uVGl0bGU7XG4gIC8qKlxuICAgKiDliJfmlbDmja7lnKjmlbDmja7pobnkuK3lr7nlupTnmoQga2V577yM5pSv5oyBIGBhLmIuY2Ag55qE5bWM5aWX5YaZ5rOV77yM5L6L5aaC77yaXG4gICAqIC0gYGlkYFxuICAgKiAtIGBwcmljZS5tYXJrZXRgXG4gICAqIC0gYFsgJ3ByaWNlJywgJ21hcmtldCcgXWBcbiAgICovXG4gIGluZGV4Pzogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsO1xuICAvKipcbiAgICog57G75Z6LXG4gICAqIC0gYG5vYCDooYzlj7fvvIzorqHnrpfop4TliJnvvJpgaW5kZXggKyBub0luZGV4YFxuICAgKiAtIGBjaGVja2JveGAg5aSa6YCJXG4gICAqIC0gYHJhZGlvYCDljZXpgIlcbiAgICogLSBgbGlua2Ag6ZO+5o6l77yM5Yqh5b+F5oyH5a6aIGBjbGlja2BcbiAgICogLSBgYmFkZ2VgIFvlvr3moIddKGh0dHBzOi8vbmcuYW50LmRlc2lnbi9jb21wb25lbnRzL2JhZGdlL3poKe+8jOWKoeW/heaMh+WumiBgYmFkZ2VgIOWPguaVsOmFjee9ruW+veagh+WvueW6lOWAvFxuICAgKiAtIGB0YWdgIFvmoIfnrb5dKGh0dHBzOi8vbmcuYW50LmRlc2lnbi9jb21wb25lbnRzL3RhZy96aCnvvIzliqHlv4XmjIflrpogYHRhZ2Ag5Y+C5pWw6YWN572u5qCH562+5a+55bqU5YC8XG4gICAqIC0gYGVudW1gIOaemuS4vui9rOaNou+8jOWKoeW/heaMh+WumiBgZW51bWAg5Y+C5pWw6YWN572u5qCH562+5a+55bqU5YC8XG4gICAqIC0gYGltZ2Ag5Zu+54mH5LiU5bGF5LitKOiLpSBgY2xhc3NOYW1lYCDlrZjlnKjliJnkvJjlhYgpXG4gICAqIC0gYG51bWJlcmAg5pWw5a2X5LiU5bGF5Y+zKOiLpSBgY2xhc3NOYW1lYCDlrZjlnKjliJnkvJjlhYgpXG4gICAqIC0gYGN1cnJlbmN5YCDotKfluIHkuJTlsYXlj7Mo6IulIGBjbGFzc05hbWVgIOWtmOWcqOWImeS8mOWFiClcbiAgICogLSBgZGF0ZWAg5pel5pyf5qC85byP5LiU5bGF5LitKOiLpSBgY2xhc3NOYW1lYCDlrZjlnKjliJnkvJjlhYgp77yM5L2/55SoIGBkYXRlRm9ybWF0YCDoh6rlrprkuYnmoLzlvI9cbiAgICogLSBgeW5gIOWwhmBib29sZWFuYOexu+Wei+W+veeroOWMliBbZG9jdW1lbnRdKGh0dHBzOi8vb2hheW9qcC5jb20vZG9jcy9kYXRhLXJlbmRlciN5bilcbiAgICogLSBgd2lkZ2V0YCDkvb/nlKjoh6rlrprkuYnlsI/pg6jku7bliqjmgIHliJvlu7pcbiAgICovXG4gIHR5cGU/OiAnJyB8ICdjaGVja2JveCcgfCAnbGluaycgfCAnYmFkZ2UnIHwgJ3RhZycgfCAnZW51bScgfCAncmFkaW8nIHwgJ2ltZycgfCAnY3VycmVuY3knIHwgJ251bWJlcicgfCAnZGF0ZScgfCAneW4nIHwgJ25vJyB8ICd3aWRnZXQnO1xuICAvKipcbiAgICog6ZO+5o6l5Zue6LCD77yM6Iul6L+U5Zue5LiA5Liq5a2X56ym5Liy6KGo56S65a+86IiqVVJM5Lya6Ieq5Yqo6Kem5Y+RIGByb3V0ZXIubmF2aWdhdGVCeVVybGBcbiAgICovXG4gIGNsaWNrPzogKHJlY29yZDogU1REYXRhLCBpbnN0YW5jZT86IFNUQ29tcG9uZW50KSA9PiBhbnk7XG4gIC8qKlxuICAgKiDmjInpkq7nu4RcbiAgICovXG4gIGJ1dHRvbnM/OiBTVENvbHVtbkJ1dHRvbltdO1xuICAvKipcbiAgICog6Ieq5a6a5LmJ5riy5p+TSURcbiAgICogQGV4YW1wbGVcbiAgICogPG5nLXRlbXBsYXRlIHN0LXJvdz1cImN1c3RvbVwiIGxldC1pdGVtIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgKiAge3sgYy50aXRsZSB9fVxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKi9cbiAgcmVuZGVyPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogU1REYXRhOyBpbmRleDogbnVtYmVyIH0+O1xuICAvKipcbiAgICog5qCH6aKY6Ieq5a6a5LmJ5riy5p+TSURcbiAgICogQGV4YW1wbGVcbiAgICogPG5nLXRlbXBsYXRlIHN0LXJvdz1cImN1c3RvbVwiIHR5cGU9XCJ0aXRsZVwiIGxldC1jPlxuICAgKiAge3sgaXRlbSB8IGpzb24gfX1cbiAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICovXG4gIHJlbmRlclRpdGxlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogU1RDb2x1bW47IGluZGV4OiBudW1iZXIgfT47XG4gIC8qKlxuICAgKiDliJflrr3vvIjmlbDlrZflnovooajnpLogYHB4YCDlgLzvvInvvIzkvovlpoLvvJpgMTAwYOOAgWAxMCVg44CBYDEwMHB4YFxuICAgKlxuICAgKiAqKuazqOaEj++8mioqIOiLpeWbuuWumuWIl+W/hemhu+aYr+aVsOWtl1xuICAgKi9cbiAgd2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiDmjpLluo/phY3nva7pobnvvIzov5znqIvmlbDmja7phY3nva4qKuS8mOWFiCoq6KeE5YiZ77yaXG4gICAqIC0gYHRydWVgIOihqOekuuWFgeiuuOaOkuW6j++8jOS4lOiLpeaVsOaNrua6kOS4uuacrOWcsOaXtuiHquWKqOeUn+aIkCBgY29tcGFyZTogKGEsIGIpID0+IGFbaW5kZXhdIC0gYltpbmRleF1gIOaWueazlVxuICAgKiAtIGBzdHJpbmdgIOihqOekuui/nOeoi+aVsOaNruaOkuW6j+ebuOWvueW6lCBga2V5YCDlgLxcbiAgICovXG4gIHNvcnQ/OiB0cnVlIHwgc3RyaW5nIHwgU1RDb2x1bW5Tb3J0O1xuICAvKipcbiAgICog6L+H5ruk6YWN572u6aG5XG4gICAqL1xuICBmaWx0ZXI/OiBTVENvbHVtbkZpbHRlcjtcbiAgLyoqXG4gICAqIOagvOW8j+WMluWIl+WAvFxuICAgKi9cbiAgZm9ybWF0PzogKGl0ZW06IFNURGF0YSwgY29sOiBTVENvbHVtbiwgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nO1xuICAvKipcbiAgICog6Ieq5a6a5LmJ5YWoL+WPjemAiemAieaLqemhuVxuICAgKi9cbiAgc2VsZWN0aW9ucz86IFNUQ29sdW1uU2VsZWN0aW9uW107XG4gIC8qKlxuICAgKiDliJcgYGNsYXNzYCDlsZ7mgKflgLzvvIjms6jvvJrml6DpobsgYC5gIOeCue+8ieWkmuS4queUqOepuuagvOmalOW8gO+8jOS+i+Wmgu+8mlxuICAgKiAtIGB0ZXh0LWNlbnRlcmAg5bGF5LitXG4gICAqIC0gYHRleHQtcmlnaHRgIOWxheWPs1xuICAgKiAtIGB0ZXh0LXN1Y2Nlc3NgIOaIkOWKn+iJslxuICAgKiAtIGB0ZXh0LWVycm9yYCDlvILluLjoibJcbiAgICovXG4gIGNsYXNzTmFtZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4gfCB7IFtrbGFzczogc3RyaW5nXTogYW55IH07XG4gIC8qKlxuICAgKiDlkIjlubbliJdcbiAgICovXG4gIGNvbFNwYW4/OiBudW1iZXI7XG4gIC8qKlxuICAgKiDmlbDlrZfmoLzlvI/vvIxgdHlwZT1udW1iZXJgIOacieaViFxuICAgKi9cbiAgbnVtYmVyRGlnaXRzPzogc3RyaW5nO1xuICAvKipcbiAgICog5pel5pyf5qC85byP77yMYHR5cGU9ZGF0ZWAg5pyJ5pWI77yM77yI6buY6K6k77yaYHl5eXktTU0tZGQgSEg6bW1g77yJXG4gICAqL1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuICAvKipcbiAgICog5b2TIGB0eXBlPXluYCDmnInmlYhcbiAgICovXG4gIHluPzogU1RDb2x1bW5ZbjtcbiAgLyoqXG4gICAqIOaYr+WQpuWFgeiuuOWvvOWHuu+8jOm7mOiupCBgdHJ1ZWBcbiAgICovXG4gIGV4cG9ydGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOadg+mZkO+8jOetieWQjCBbQUNMQ2FuVHlwZV0oaHR0cHM6Ly9vaGF5b2pwLmNvbS9hY2wvZ2V0dGluZy1zdGFydGVkLyNBQ0xDYW5UeXBlKSDlj4LmlbDlgLxcbiAgICovXG4gIGFjbD86IEFDTENhblR5cGU7XG4gIC8qKiDlvZPkuI3lrZjlnKjmlbDmja7ml7bku6Xpu5jorqTlgLzmm7/ku6MgKi9cbiAgZGVmYXVsdD86IHN0cmluZztcbiAgLyoqXG4gICAqIOWbuuWumuWJjeWQjuWIl++8jOW9k+aMh+WumuaXtuWKoeW/heaMh+WumiBgd2lkdGhgIOWQpuWImeinhuS4uuaXoOaViO+8jOacieiLpeW5siAqKuazqOaEj++8mioqIOmhue+8mlxuICAgKlxuICAgKiAtIOiLpeWIl+WktOS4juWGheWuueS4jeWvuem9kOaIluWHuueOsOWIl+mHjeWkje+8jOivt+aMh+WumuWIl+eahOWuveW6piBgd2lkdGhgXG4gICAqIC0