nsc-react-component 2.13.2 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","NscUploadDragger","upload","download","previewDocument","previewImage","NscUpload","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","index","temp","_objectSpread","name","fileName","type","size","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","newList","uid","length","i","splice","names","split","suffix","_ref","newFile","files","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_Upload","_extends"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport withZhLocale from \"../common/withZhLocale\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nimport PdfViewer from \"../pdfviwer\";\r\nimport NscUploadDragger from \"./Dragger\";\r\nimport { parse } from \"@babel/core\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nexport default class NscUpload extends React.PureComponent<IUploadProps, any> {\r\n static Dragger = NscUploadDragger;\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList();\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map(async (item: any, index) => {\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n newFileList.push(temp);\r\n });\r\n this.setState({\r\n fileList: [...newFileList],\r\n fileListStore: [...fileList],\r\n });\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n });\r\n\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const { onComplete, onProcess, sliceSize, newVersion = true } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Upload\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","upload","download","previewDocument","previewImage","withCustomUpload","Component","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","newVersion","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","setState","i","length","item","temp","_objectSpread","name","fileName","type","size","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","map","indexOf","newList","uid","splice","names","split","suffix","_ref","newFile","files","index","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_extends","NscUpload","_Upload","NscUploadDragger","Dragger"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nconst withCustomUpload = (Component) => {\r\n // 返回一个类组件\r\n return class extends React.PureComponent<IUploadProps, any> {\r\n state = {\r\n fileList: [],\r\n viewId: \"\",\r\n fileListStore: [],\r\n fileNames: [],\r\n };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n previewUrl = {};\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n this.setState(\r\n {\r\n fileListStore: [...fileList],\r\n },\r\n async () => {\r\n for (let i = 0; i < oldList.length; i++) {\r\n let item: any = oldList[i];\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n url: item.url,\r\n } as any;\r\n if (listType == \"picture-card\" && !item.url && item.fileId) {\r\n let res: any = await previewImage(\r\n item.fileId,\r\n this.props.requestConfig\r\n );\r\n if (res.code == 200) {\r\n temp.url = res.data;\r\n }\r\n }\r\n newFileList.push(temp);\r\n }\r\n this.setState({\r\n fileList: [...newFileList],\r\n });\r\n }\r\n );\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList(this.props.fileList);\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion = true, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n });\r\n\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const {\r\n onComplete,\r\n onProcess,\r\n sliceSize,\r\n newVersion = true,\r\n } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name?.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"content\"), {\r\n [getLess(styles, \"content_error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"icon\")}>\r\n {showUploadList.showPreviewIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon &&\r\n file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"process\")}>\r\n <div\r\n className={getLess(styles, \"percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file?.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Component\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n />\r\n </>\r\n );\r\n }\r\n };\r\n};\r\n\r\nconst NscUpload: any = withCustomUpload(Upload);\r\n// // 使用 withCustomUpload 封装 Upload.Dragger 组件\r\nconst NscUploadDragger = withCustomUpload(Upload.Dragger);\r\nNscUpload.Dragger = NscUploadDragger;\r\nexport default NscUpload;\r\n"],"mappings":"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","ignoreList":[]}
@@ -54,7 +54,7 @@
54
54
  margin-top: -30px;
55
55
  :global {
56
56
  .ant-btn-link {
57
- min-width: 0;
57
+ min-width: 0 !important;
58
58
  padding: 0;
59
59
  }
60
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "2.13.2",
3
+ "version": "2.14.1",
4
4
  "main": "lib/index.js",
5
5
  "scripts": {
6
6
  "compile": "webpack --config ./webpack.config.js",
@@ -1,18 +0,0 @@
1
- import * as React from "react";
2
- import { UploadProps } from "antd";
3
- interface IUploadProps extends UploadProps {
4
- sliceSize?: number;
5
- maxSize?: number;
6
- onProcess?: (process: any) => void;
7
- onComplete?: ({ file, fileId, status }: {
8
- file: any;
9
- fileId: any;
10
- status: any;
11
- }) => void;
12
- allowFileSuffix?: Array<String>;
13
- useDefaultList?: boolean;
14
- fileCard?: boolean;
15
- onListChange?: any;
16
- }
17
- declare const _default: React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<IUploadProps>>;
18
- export default _default;
@@ -1,351 +0,0 @@
1
- import "antd/es/upload/style/css";
2
- import _Upload from "antd/es/upload";
3
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- import * as React from "react";
10
- import file from "nsc-file";
11
- import message from "../message";
12
- import withZhLocale from "../common/withZhLocale";
13
- import omit from "omit.js";
14
- import { getLess } from "../../utils";
15
- import styles from "./index.less";
16
- import cls from "classnames";
17
- import FileIcon from "../common/FileIcon";
18
- import { DeleteOutlined, DownloadOutlined, EyeOutlined } from "@ant-design/icons";
19
- import PdfViewer from "../pdfviwer";
20
- const {
21
- upload,
22
- download
23
- } = file;
24
- class NscUpload extends React.PureComponent {
25
- constructor() {
26
- super(...arguments);
27
- _defineProperty(this, "state", {
28
- fileList: [],
29
- viewId: ""
30
- });
31
- _defineProperty(this, "customRequest", async options => {
32
- const file = options.file;
33
- const {
34
- onComplete,
35
- onProcess,
36
- sliceSize
37
- } = this.props;
38
- const {
39
- maxSize,
40
- allowFileSuffix
41
- } = this.props;
42
- if (allowFileSuffix && !this.checkFileType(file)) {
43
- message.error("".concat(file.name, "\u6587\u4EF6\u7C7B\u578B\u4E0D\u5141\u8BB8\u4E0A\u4F20\uFF0C\u8BF7\u4E0A\u4F20\u540E\u7F00\u4E3A").concat(allowFileSuffix, "\u7684\u7C7B\u578B\u6587\u4EF6\uFF01"));
44
- onComplete && onComplete({
45
- file: options.file,
46
- fileId: "",
47
- status: "error"
48
- });
49
- options.onError();
50
- return false;
51
- }
52
- if (maxSize) {
53
- const size = maxSize * 1024 * 1024;
54
- if (size < file.size) {
55
- message.error("".concat(file.name, "\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7").concat(maxSize, "M\uFF0C\u8BF7\u91CD\u65B0\u4E0A\u4F20\uFF01"));
56
- onComplete && onComplete({
57
- file: options.file,
58
- fileId: "",
59
- status: "error"
60
- });
61
- options.onError();
62
- return false;
63
- }
64
- }
65
- const onProgress = totalProgress => {
66
- options.onProgress({
67
- percent: totalProgress
68
- }, file);
69
- this.onProcess({
70
- percent: totalProgress,
71
- file: file
72
- });
73
- onProcess && onProcess({
74
- percent: totalProgress,
75
- file: file
76
- });
77
- };
78
- try {
79
- const res = await upload({
80
- file: file,
81
- onProgress: onProgress,
82
- partSize: sliceSize
83
- });
84
- let fileId = null;
85
- if (res.code == 200) {
86
- fileId = res.data.attachId;
87
- options.onSuccess();
88
- } else {
89
- options.onError();
90
- }
91
- this.onComplete({
92
- file: options.file,
93
- fileId: fileId,
94
- status: res.code == 200 ? "success" : "error"
95
- });
96
- onComplete && onComplete({
97
- file: options.file,
98
- fileId: fileId,
99
- status: res.code == 200 ? "success" : "error"
100
- });
101
- } catch (e) {
102
- this.onComplete({
103
- file: options.file,
104
- fileId: "",
105
- status: "error"
106
- });
107
- onComplete && onComplete({
108
- file: options.file,
109
- fileId: "",
110
- status: "error"
111
- });
112
- options.onError();
113
- }
114
- });
115
- }
116
- componentDidMount() {
117
- if (this.props.fileList) {
118
- this.convertFileList();
119
- }
120
- }
121
- convertFileList(list) {
122
- const {
123
- fileList
124
- } = this.props;
125
- const newFileList = [];
126
- let oldList = list ? list : fileList;
127
- oldList.map(item => {
128
- let temp = _objectSpread({}, item);
129
- if (!item.name) {
130
- temp.name = item.fileName;
131
- }
132
- newFileList.push(temp);
133
- });
134
- this.setState({
135
- fileList: newFileList
136
- });
137
- }
138
- componentDidUpdate(preProps, preState) {
139
- if (this.props.fileList) {
140
- if (JSON.stringify(preState.fileList) !== JSON.stringify(this.props.fileList)) {
141
- this.convertFileList();
142
- }
143
- }
144
- }
145
- getFileList() {
146
- return this.state.fileList;
147
- }
148
- setFileList(fileList) {
149
- this.convertFileList(fileList);
150
- }
151
- beforeUpload(file) {
152
- const {
153
- fileList
154
- } = this.state;
155
- const {
156
- onListChange
157
- } = this.props;
158
- const newList = [...fileList, {
159
- fileName: file.name,
160
- percent: 0,
161
- status: "uploading",
162
- uid: file.uid,
163
- name: file.name
164
- }];
165
- this.setState({
166
- fileList: newList
167
- });
168
- onListChange && onListChange(newList);
169
- }
170
- checkFileType(file) {
171
- const {
172
- allowFileSuffix
173
- } = this.props;
174
- const names = file.name.split(".");
175
- const suffix = names[names.length - 1];
176
- if (allowFileSuffix.indexOf(suffix) > -1) {
177
- return true;
178
- }
179
- return false;
180
- }
181
- onProcess(_ref) {
182
- let {
183
- percent,
184
- file
185
- } = _ref;
186
- const {
187
- fileList
188
- } = this.state;
189
- const {
190
- onListChange
191
- } = this.props;
192
- const newList = [];
193
- fileList.map(item => {
194
- const newFile = _objectSpread({}, item);
195
- if (file.uid == item.uid) {
196
- newFile.percent = percent;
197
- }
198
- newList.push(newFile);
199
- });
200
- this.setState({
201
- fileList: newList
202
- });
203
- onListChange && onListChange(newList);
204
- }
205
- onComplete(file) {
206
- const {
207
- fileList
208
- } = this.state;
209
- const {
210
- onListChange
211
- } = this.props;
212
- const newList = [];
213
- fileList.map(item => {
214
- const newFile = _objectSpread({}, item);
215
- if (file.file.uid == item.uid) {
216
- newFile.status = file.status == "success" ? "done" : file.status;
217
- newFile.fileId = file.fileId;
218
- }
219
- newList.push(newFile);
220
- });
221
- this.setState({
222
- fileList: newList
223
- });
224
- onListChange && onListChange(newList);
225
- }
226
- onDelete(file) {
227
- const {
228
- fileList
229
- } = this.state;
230
- const {
231
- onListChange
232
- } = this.props;
233
- const newList = [];
234
- fileList.map(item => {
235
- if (item.fileId !== file.fileId || item.uid !== file.uid) {
236
- newList.push(item);
237
- }
238
- });
239
- this.setState({
240
- fileList: newList
241
- });
242
- onListChange && onListChange(newList);
243
- }
244
- render() {
245
- let {
246
- useDefaultList,
247
- fileList,
248
- fileCard,
249
- showUploadList = {
250
- showDownloadIcon: true,
251
- showPreviewIcon: false,
252
- showRemoveIcon: true,
253
- downloadIcon: null,
254
- removeIcon: null,
255
- previewIcon: null
256
- }
257
- } = this.props;
258
- let newFileList = this.state.fileList;
259
- if (useDefaultList && fileList) {
260
- newFileList = fileList;
261
- }
262
- const newprops = omit(this.props, ["sliceSize", "maxSize", "onComplete", "onProcess", "allowFileSuffix", "useDefaultList", "fileCard", "onListChange"]);
263
- let defaultProps = {
264
- customRequest: this.customRequest.bind(this),
265
- multiple: true,
266
- beforeUpload: this.beforeUpload.bind(this)
267
- };
268
- if (fileCard) {
269
- defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
270
- itemRender: (originNode, file, currFileList) => {
271
- const name = file.name || file.fileName;
272
- const names = name === null || name === void 0 ? void 0 : name.split(".");
273
- const suffix = names ? names[names.length - 1] : "";
274
- return /*#__PURE__*/React.createElement("div", {
275
- className: getLess(styles, "file-item")
276
- }, /*#__PURE__*/React.createElement("div", {
277
- className: cls(getLess(styles, "content"), {
278
- [getLess(styles, "content_error")]: file.status == "error"
279
- })
280
- }, /*#__PURE__*/React.createElement("div", {
281
- className: getLess(styles, "mark-picture")
282
- }, /*#__PURE__*/React.createElement(FileIcon, {
283
- suffix: suffix,
284
- fileId: file.fileId
285
- })), /*#__PURE__*/React.createElement("div", {
286
- className: getLess(styles, "name")
287
- }, file.name || file.fileName), /*#__PURE__*/React.createElement("div", {
288
- className: getLess(styles, "icon")
289
- }, showUploadList.showPreviewIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
290
- onClick: () => {
291
- if (this.props.onDownload) {
292
- this.props.onDownload(file);
293
- } else {
294
- download(file.fileId);
295
- }
296
- },
297
- style: {
298
- cursor: "pointer"
299
- }
300
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(EyeOutlined, null)), showUploadList.showDownloadIcon && file.status == "done" && /*#__PURE__*/React.createElement("div", {
301
- onClick: () => {
302
- if (this.props.onDownload) {
303
- this.props.onDownload(file);
304
- } else {
305
- download(file.fileId);
306
- }
307
- },
308
- style: {
309
- cursor: "pointer"
310
- }
311
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DownloadOutlined, null)), showUploadList.showRemoveIcon && /*#__PURE__*/React.createElement("div", {
312
- onClick: () => {
313
- if (this.props.onRemove) {
314
- this.props.onRemove(file);
315
- } else {
316
- this.onDelete(file);
317
- }
318
- },
319
- style: {
320
- cursor: "pointer"
321
- }
322
- }, showUploadList.downloadIcon ? showUploadList.downloadIcon : /*#__PURE__*/React.createElement(DeleteOutlined, null)))), file.status == "uploading" && /*#__PURE__*/React.createElement("div", {
323
- className: getLess(styles, "process")
324
- }, /*#__PURE__*/React.createElement("div", {
325
- className: getLess(styles, "percent"),
326
- style: {
327
- width: file.percent + "%"
328
- }
329
- })));
330
- }
331
- });
332
- } else {
333
- defaultProps = _objectSpread(_objectSpread({}, defaultProps), {}, {
334
- onDownload: file => {
335
- download(file.fileId);
336
- },
337
- onRemove: file => {
338
- this.onDelete(file);
339
- },
340
- showUploadList: _objectSpread({}, showUploadList)
341
- });
342
- }
343
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Upload, _extends({
344
- fileList: this.state.fileList
345
- }, defaultProps, newprops)), /*#__PURE__*/React.createElement(PdfViewer, {
346
- fileId: this.state.viewId
347
- }));
348
- }
349
- }
350
- export default withZhLocale(NscUpload);
351
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiUGRmVmlld2VyIiwidXBsb2FkIiwiZG93bmxvYWQiLCJOc2NVcGxvYWQiLCJQdXJlQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJmaWxlTGlzdCIsInZpZXdJZCIsIm9wdGlvbnMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwicHJvcHMiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY29uY2F0IiwibmFtZSIsImZpbGVJZCIsInN0YXR1cyIsIm9uRXJyb3IiLCJzaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicmVzIiwicGFydFNpemUiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwiZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29udmVydEZpbGVMaXN0IiwibGlzdCIsIm5ld0ZpbGVMaXN0Iiwib2xkTGlzdCIsIm1hcCIsIml0ZW0iLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsImZpbGVOYW1lIiwicHVzaCIsInNldFN0YXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRGaWxlTGlzdCIsInN0YXRlIiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvbkxpc3RDaGFuZ2UiLCJuZXdMaXN0IiwidWlkIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsImxlbmd0aCIsImluZGV4T2YiLCJfcmVmIiwibmV3RmlsZSIsIm9uRGVsZXRlIiwicmVuZGVyIiwidXNlRGVmYXVsdExpc3QiLCJmaWxlQ2FyZCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwib25DbGljayIsIm9uRG93bmxvYWQiLCJzdHlsZSIsImN1cnNvciIsIm9uUmVtb3ZlIiwid2lkdGgiLCJGcmFnbWVudCIsIl9VcGxvYWQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4IGNvcHkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXI7XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbn1cclxuY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10sIHZpZXdJZDogXCJcIiB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKCFpdGVtLm5hbWUpIHtcclxuICAgICAgICB0ZW1wLm5hbWUgPSBpdGVtLmZpbGVOYW1lO1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3RmlsZUxpc3QsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHByZVN0YXRlLmZpbGVMaXN0KSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGJlZm9yZVVwbG9hZChmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gW1xyXG4gICAgICAuLi5maWxlTGlzdCxcclxuICAgICAge1xyXG4gICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgdWlkOiBmaWxlLnVpZCxcclxuICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBvbkNvbXBsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IG1heFNpemUsIGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUpIHtcclxuICAgICAgY29uc3Qgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmZpbGVJZCAhPT0gZmlsZS5maWxlSWQgfHwgaXRlbS51aWQgIT09IGZpbGUudWlkKSB7XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBsZXQge1xyXG4gICAgICB1c2VEZWZhdWx0TGlzdCxcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgbmV3RmlsZUxpc3QgPSB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gICAgaWYgKHVzZURlZmF1bHRMaXN0ICYmIGZpbGVMaXN0KSB7XHJcbiAgICAgIG5ld0ZpbGVMaXN0ID0gZmlsZUxpc3Q7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgXSk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICBjdXN0b21SZXF1ZXN0OiB0aGlzLmN1c3RvbVJlcXVlc3QuYmluZCh0aGlzKSxcclxuICAgICAgbXVsdGlwbGU6IHRydWUsXHJcbiAgICAgIGJlZm9yZVVwbG9hZDogdGhpcy5iZWZvcmVVcGxvYWQuYmluZCh0aGlzKSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgICAgey4uLmRlZmF1bHRQcm9wc31cclxuICAgICAgICAgIHsuLi5uZXdwcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICAgIDxQZGZWaWV3ZXIgZmlsZUlkPXt0aGlzLnN0YXRlLnZpZXdJZH0gLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTnNjVXBsb2FkKTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsWUFBWSxNQUFNLHdCQUF3QjtBQUNqRCxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxPQUFPLFFBQVEsYUFBYTtBQUNyQyxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQUNqQyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sb0JBQW9CO0FBQ3pDLFNBQ0VDLGNBQWMsRUFDZEMsZ0JBQWdCLEVBQ2hCQyxXQUFXLFFBQ04sbUJBQW1CO0FBQzFCLE9BQU9DLFNBQVMsTUFBTSxhQUFhO0FBQ25DLE1BQU07RUFBRUMsTUFBTTtFQUFFQztBQUFTLENBQUMsR0FBR2IsSUFBSTtBQVlqQyxNQUFNYyxTQUFTLFNBQVNmLEtBQUssQ0FBQ2dCLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDckQ7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsTUFBTSxFQUFFO0lBQUcsQ0FBQztJQUFBRixlQUFBLHdCQStGcEIsTUFBT0csT0FBTyxJQUFLO01BQ2pDLE1BQU1yQixJQUFJLEdBQUdxQixPQUFPLENBQUNyQixJQUFJO01BQ3pCLE1BQU07UUFBRXNCLFVBQVU7UUFBRUMsU0FBUztRQUFFQztNQUFVLENBQUMsR0FBRyxJQUFJLENBQUNDLEtBQUs7TUFDdkQsTUFBTTtRQUFFQyxPQUFPO1FBQUVDO01BQWdCLENBQUMsR0FBRyxJQUFJLENBQUNGLEtBQUs7TUFDL0MsSUFBSUUsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDQyxhQUFhLENBQUM1QixJQUFJLENBQUMsRUFBRTtRQUNoREMsT0FBTyxDQUFDNEIsS0FBSyxJQUFBQyxNQUFBLENBQ1I5QixJQUFJLENBQUMrQixJQUFJLHNHQUFBRCxNQUFBLENBQW1CSCxlQUFlLHlDQUNoRCxDQUFDO1FBQ0RMLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQUV0QixJQUFJLEVBQUVxQixPQUFPLENBQUNyQixJQUFJO1VBQUVnQyxNQUFNLEVBQUUsRUFBRTtVQUFFQyxNQUFNLEVBQUU7UUFBUSxDQUFDLENBQUM7UUFDakVaLE9BQU8sQ0FBQ2EsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxLQUFLO01BQ2Q7TUFDQSxJQUFJUixPQUFPLEVBQUU7UUFDWCxNQUFNUyxJQUFJLEdBQUdULE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSTtRQUNsQyxJQUFJUyxJQUFJLEdBQUduQyxJQUFJLENBQUNtQyxJQUFJLEVBQUU7VUFDcEJsQyxPQUFPLENBQUM0QixLQUFLLElBQUFDLE1BQUEsQ0FBSTlCLElBQUksQ0FBQytCLElBQUksMENBQUFELE1BQUEsQ0FBU0osT0FBTyxnREFBVSxDQUFDO1VBQ3JESixVQUFVLElBQ1JBLFVBQVUsQ0FBQztZQUFFdEIsSUFBSSxFQUFFcUIsT0FBTyxDQUFDckIsSUFBSTtZQUFFZ0MsTUFBTSxFQUFFLEVBQUU7WUFBRUMsTUFBTSxFQUFFO1VBQVEsQ0FBQyxDQUFDO1VBQ2pFWixPQUFPLENBQUNhLE9BQU8sQ0FBQyxDQUFDO1VBQ2pCLE9BQU8sS0FBSztRQUNkO01BQ0Y7TUFDQSxNQUFNRSxVQUFVLEdBQUlDLGFBQWtCLElBQUs7UUFDekNoQixPQUFPLENBQUNlLFVBQVUsQ0FBQztVQUFFRSxPQUFPLEVBQUVEO1FBQWMsQ0FBQyxFQUFFckMsSUFBSSxDQUFDO1FBQ3BELElBQUksQ0FBQ3VCLFNBQVMsQ0FBQztVQUFFZSxPQUFPLEVBQUVELGFBQWE7VUFBRXJDLElBQUksRUFBRUE7UUFBSyxDQUFDLENBQUM7UUFDdER1QixTQUFTLElBQUlBLFNBQVMsQ0FBQztVQUFFZSxPQUFPLEVBQUVELGFBQWE7VUFBRXJDLElBQUksRUFBRUE7UUFBSyxDQUFDLENBQUM7TUFDaEUsQ0FBQztNQUNELElBQUk7UUFDRixNQUFNdUMsR0FBUSxHQUFHLE1BQU0zQixNQUFNLENBQUM7VUFDNUJaLElBQUksRUFBRUEsSUFBSTtVQUNWb0MsVUFBVSxFQUFFQSxVQUFVO1VBQ3RCSSxRQUFRLEVBQUVoQjtRQUNaLENBQUMsQ0FBQztRQUNGLElBQUlRLE1BQU0sR0FBRyxJQUFJO1FBQ2pCLElBQUlPLEdBQUcsQ0FBQ0UsSUFBSSxJQUFJLEdBQUcsRUFBRTtVQUNuQlQsTUFBTSxHQUFHTyxHQUFHLENBQUNHLElBQUksQ0FBQ0MsUUFBUTtVQUMxQnRCLE9BQU8sQ0FBQ3VCLFNBQVMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsTUFBTTtVQUNMdkIsT0FBTyxDQUFDYSxPQUFPLENBQUMsQ0FBQztRQUNuQjtRQUNBLElBQUksQ0FBQ1osVUFBVSxDQUFDO1VBQ2R0QixJQUFJLEVBQUVxQixPQUFPLENBQUNyQixJQUFJO1VBQ2xCZ0MsTUFBTSxFQUFFQSxNQUFNO1VBQ2RDLE1BQU0sRUFBRU0sR0FBRyxDQUFDRSxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRztRQUN4QyxDQUFDLENBQUM7UUFDRm5CLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQ1R0QixJQUFJLEVBQUVxQixPQUFPLENBQUNyQixJQUFJO1VBQ2xCZ0MsTUFBTSxFQUFFQSxNQUFNO1VBQ2RDLE1BQU0sRUFBRU0sR0FBRyxDQUFDRSxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsR0FBRztRQUN4QyxDQUFDLENBQUM7TUFDTixDQUFDLENBQUMsT0FBT0ksQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDdkIsVUFBVSxDQUFDO1VBQ2R0QixJQUFJLEVBQUVxQixPQUFPLENBQUNyQixJQUFJO1VBQ2xCZ0MsTUFBTSxFQUFFLEVBQUU7VUFDVkMsTUFBTSxFQUFFO1FBQ1YsQ0FBQyxDQUFDO1FBQ0ZYLFVBQVUsSUFDUkEsVUFBVSxDQUFDO1VBQUV0QixJQUFJLEVBQUVxQixPQUFPLENBQUNyQixJQUFJO1VBQUVnQyxNQUFNLEVBQUUsRUFBRTtVQUFFQyxNQUFNLEVBQUU7UUFBUSxDQUFDLENBQUM7UUFDakVaLE9BQU8sQ0FBQ2EsT0FBTyxDQUFDLENBQUM7TUFDbkI7SUFDRixDQUFDO0VBQUE7RUE1SkRZLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2xCLElBQUksSUFBSSxDQUFDckIsS0FBSyxDQUFDTixRQUFRLEVBQUU7TUFDdkIsSUFBSSxDQUFDNEIsZUFBZSxDQUFDLENBQUM7SUFDeEI7RUFDRjtFQUNBQSxlQUFlQSxDQUFDQyxJQUFvQixFQUFFO0lBQ3BDLE1BQU07TUFBRTdCO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQ00sS0FBSztJQUMvQixNQUFNd0IsV0FBVyxHQUFHLEVBQUU7SUFDdEIsSUFBSUMsT0FBTyxHQUFHRixJQUFJLEdBQUdBLElBQUksR0FBRzdCLFFBQVE7SUFDcEMrQixPQUFPLENBQUNDLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQ3pCLElBQUlDLElBQUksR0FBQUMsYUFBQSxLQUFRRixJQUFJLENBQUU7TUFDdEIsSUFBSSxDQUFDQSxJQUFJLENBQUNyQixJQUFJLEVBQUU7UUFDZHNCLElBQUksQ0FBQ3RCLElBQUksR0FBR3FCLElBQUksQ0FBQ0csUUFBUTtNQUMzQjtNQUNBTixXQUFXLENBQUNPLElBQUksQ0FBQ0gsSUFBSSxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0ksUUFBUSxDQUFDO01BQ1p0QyxRQUFRLEVBQUU4QjtJQUNaLENBQUMsQ0FBQztFQUNKO0VBQ0FTLGtCQUFrQkEsQ0FBQ0MsUUFBUSxFQUFFQyxRQUFRLEVBQUU7SUFDckMsSUFBSSxJQUFJLENBQUNuQyxLQUFLLENBQUNOLFFBQVEsRUFBRTtNQUN2QixJQUNFMEMsSUFBSSxDQUFDQyxTQUFTLENBQUNGLFFBQVEsQ0FBQ3pDLFFBQVEsQ0FBQyxLQUNqQzBDLElBQUksQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3JDLEtBQUssQ0FBQ04sUUFBUSxDQUFDLEVBQ25DO1FBQ0EsSUFBSSxDQUFDNEIsZUFBZSxDQUFDLENBQUM7TUFDeEI7SUFDRjtFQUNGO0VBQ0FnQixXQUFXQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ0MsS0FBSyxDQUFDN0MsUUFBUTtFQUM1QjtFQUNBOEMsV0FBV0EsQ0FBQzlDLFFBQXVCLEVBQUU7SUFDbkMsSUFBSSxDQUFDNEIsZUFBZSxDQUFDNUIsUUFBUSxDQUFDO0VBQ2hDO0VBQ0ErQyxZQUFZQSxDQUFDbEUsSUFBSSxFQUFFO0lBQ2pCLE1BQU07TUFBRW1CO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzZDLEtBQUs7SUFDL0IsTUFBTTtNQUFFRztJQUFhLENBQUMsR0FBRyxJQUFJLENBQUMxQyxLQUFLO0lBQ25DLE1BQU0yQyxPQUFPLEdBQUcsQ0FDZCxHQUFHakQsUUFBUSxFQUNYO01BQ0VvQyxRQUFRLEVBQUV2RCxJQUFJLENBQUMrQixJQUFJO01BQ25CTyxPQUFPLEVBQUUsQ0FBQztNQUNWTCxNQUFNLEVBQUUsV0FBVztNQUNuQm9DLEdBQUcsRUFBRXJFLElBQUksQ0FBQ3FFLEdBQUc7TUFDYnRDLElBQUksRUFBRS9CLElBQUksQ0FBQytCO0lBQ2IsQ0FBQyxDQUNGO0lBQ0QsSUFBSSxDQUFDMEIsUUFBUSxDQUFDO01BQUV0QyxRQUFRLEVBQUVpRDtJQUFRLENBQUMsQ0FBQztJQUNwQ0QsWUFBWSxJQUFJQSxZQUFZLENBQUNDLE9BQU8sQ0FBQztFQUN2QztFQUNBeEMsYUFBYUEsQ0FBQzVCLElBQUksRUFBRTtJQUNsQixNQUFNO01BQUUyQjtJQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDRixLQUFLO0lBQ3RDLE1BQU02QyxLQUFLLEdBQUd0RSxJQUFJLENBQUMrQixJQUFJLENBQUN3QyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ2xDLE1BQU1DLE1BQU0sR0FBR0YsS0FBSyxDQUFDQSxLQUFLLENBQUNHLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEMsSUFBSTlDLGVBQWUsQ0FBQytDLE9BQU8sQ0FBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7TUFDeEMsT0FBTyxJQUFJO0lBQ2I7SUFDQSxPQUFPLEtBQUs7RUFDZDtFQUNBakQsU0FBU0EsQ0FBQW9ELElBQUEsRUFBeUI7SUFBQSxJQUF4QjtNQUFFckMsT0FBTztNQUFFdEM7SUFBVSxDQUFDLEdBQUEyRSxJQUFBO0lBQzlCLE1BQU07TUFBRXhEO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzZDLEtBQUs7SUFDL0IsTUFBTTtNQUFFRztJQUFhLENBQUMsR0FBRyxJQUFJLENBQUMxQyxLQUFLO0lBQ25DLE1BQU0yQyxPQUFZLEdBQUcsRUFBRTtJQUN2QmpELFFBQVEsQ0FBQ2dDLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQzFCLE1BQU13QixPQUFPLEdBQUF0QixhQUFBLEtBQVFGLElBQUksQ0FBRTtNQUMzQixJQUFJcEQsSUFBSSxDQUFDcUUsR0FBRyxJQUFJakIsSUFBSSxDQUFDaUIsR0FBRyxFQUFFO1FBQ3hCTyxPQUFPLENBQUN0QyxPQUFPLEdBQUdBLE9BQU87TUFDM0I7TUFDQThCLE9BQU8sQ0FBQ1osSUFBSSxDQUFDb0IsT0FBTyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ25CLFFBQVEsQ0FBQztNQUNadEMsUUFBUSxFQUFFaUQ7SUFDWixDQUFDLENBQUM7SUFDRkQsWUFBWSxJQUFJQSxZQUFZLENBQUNDLE9BQU8sQ0FBQztFQUN2QztFQUNBOUMsVUFBVUEsQ0FBQ3RCLElBQUksRUFBRTtJQUNmLE1BQU07TUFBRW1CO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzZDLEtBQUs7SUFDL0IsTUFBTTtNQUFFRztJQUFhLENBQUMsR0FBRyxJQUFJLENBQUMxQyxLQUFLO0lBQ25DLE1BQU0yQyxPQUFZLEdBQUcsRUFBRTtJQUN2QmpELFFBQVEsQ0FBQ2dDLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQzFCLE1BQU13QixPQUFPLEdBQUF0QixhQUFBLEtBQVFGLElBQUksQ0FBRTtNQUMzQixJQUFJcEQsSUFBSSxDQUFDQSxJQUFJLENBQUNxRSxHQUFHLElBQUlqQixJQUFJLENBQUNpQixHQUFHLEVBQUU7UUFDN0JPLE9BQU8sQ0FBQzNDLE1BQU0sR0FBR2pDLElBQUksQ0FBQ2lDLE1BQU0sSUFBSSxTQUFTLEdBQUcsTUFBTSxHQUFHakMsSUFBSSxDQUFDaUMsTUFBTTtRQUNoRTJDLE9BQU8sQ0FBQzVDLE1BQU0sR0FBR2hDLElBQUksQ0FBQ2dDLE1BQU07TUFDOUI7TUFDQW9DLE9BQU8sQ0FBQ1osSUFBSSxDQUFDb0IsT0FBTyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ25CLFFBQVEsQ0FBQztNQUNadEMsUUFBUSxFQUFFaUQ7SUFDWixDQUFDLENBQUM7SUFDRkQsWUFBWSxJQUFJQSxZQUFZLENBQUNDLE9BQU8sQ0FBQztFQUN2QztFQWdFQVMsUUFBUUEsQ0FBQzdFLElBQUksRUFBRTtJQUNiLE1BQU07TUFBRW1CO0lBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzZDLEtBQUs7SUFDL0IsTUFBTTtNQUFFRztJQUFhLENBQUMsR0FBRyxJQUFJLENBQUMxQyxLQUFLO0lBQ25DLE1BQU0yQyxPQUFZLEdBQUcsRUFBRTtJQUN2QmpELFFBQVEsQ0FBQ2dDLEdBQUcsQ0FBRUMsSUFBUyxJQUFLO01BQzFCLElBQUlBLElBQUksQ0FBQ3BCLE1BQU0sS0FBS2hDLElBQUksQ0FBQ2dDLE1BQU0sSUFBSW9CLElBQUksQ0FBQ2lCLEdBQUcsS0FBS3JFLElBQUksQ0FBQ3FFLEdBQUcsRUFBRTtRQUN4REQsT0FBTyxDQUFDWixJQUFJLENBQUNKLElBQUksQ0FBQztNQUNwQjtJQUNGLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0ssUUFBUSxDQUFDO01BQ1p0QyxRQUFRLEVBQUVpRDtJQUNaLENBQUMsQ0FBQztJQUNGRCxZQUFZLElBQUlBLFlBQVksQ0FBQ0MsT0FBTyxDQUFDO0VBQ3ZDO0VBQ0FVLE1BQU1BLENBQUEsRUFBb0I7SUFDeEIsSUFBSTtNQUNGQyxjQUFjO01BQ2Q1RCxRQUFRO01BQ1I2RCxRQUFRO01BQ1JDLGNBQWMsR0FBRztRQUNmQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCQyxlQUFlLEVBQUUsS0FBSztRQUN0QkMsY0FBYyxFQUFFLElBQUk7UUFDcEJDLFlBQVksRUFBRSxJQUFJO1FBQ2xCQyxVQUFVLEVBQUUsSUFBSTtRQUNoQkMsV0FBVyxFQUFFO01BQ2Y7SUFDRixDQUFDLEdBQUcsSUFBSSxDQUFDOUQsS0FBSztJQUNkLElBQUl3QixXQUFXLEdBQUcsSUFBSSxDQUFDZSxLQUFLLENBQUM3QyxRQUFRO0lBQ3JDLElBQUk0RCxjQUFjLElBQUk1RCxRQUFRLEVBQUU7TUFDOUI4QixXQUFXLEdBQUc5QixRQUFRO0lBQ3hCO0lBQ0EsTUFBTXFFLFFBQVEsR0FBR3JGLElBQUksQ0FBQyxJQUFJLENBQUNzQixLQUFLLEVBQUUsQ0FDaEMsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLGNBQWMsQ0FDZixDQUFDO0lBQ0YsSUFBSWdFLFlBQVksR0FBRztNQUNqQkMsYUFBYSxFQUFFLElBQUksQ0FBQ0EsYUFBYSxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDO01BQzVDQyxRQUFRLEVBQUUsSUFBSTtNQUNkMUIsWUFBWSxFQUFFLElBQUksQ0FBQ0EsWUFBWSxDQUFDeUIsSUFBSSxDQUFDLElBQUk7SUFDM0MsQ0FBaUI7SUFDakIsSUFBSVgsUUFBUSxFQUFFO01BQ1pTLFlBQVksR0FBQW5DLGFBQUEsQ0FBQUEsYUFBQSxLQUNQbUMsWUFBWTtRQUNmSSxVQUFVLEVBQUVBLENBQUNDLFVBQVUsRUFBRTlGLElBQVMsRUFBRStGLFlBQVksS0FBSztVQUNuRCxNQUFNaEUsSUFBSSxHQUFHL0IsSUFBSSxDQUFDK0IsSUFBSSxJQUFJL0IsSUFBSSxDQUFDdUQsUUFBUTtVQUN2QyxNQUFNZSxLQUFLLEdBQUd2QyxJQUFJLGFBQUpBLElBQUksdUJBQUpBLElBQUksQ0FBRXdDLEtBQUssQ0FBQyxHQUFHLENBQUM7VUFDOUIsTUFBTUMsTUFBTSxHQUFHRixLQUFLLEdBQUdBLEtBQUssQ0FBQ0EsS0FBSyxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtVQUNuRCxvQkFDRTFFLEtBQUEsQ0FBQWlHLGFBQUE7WUFBS0MsU0FBUyxFQUFFN0YsT0FBTyxDQUFDQyxNQUFNLEVBQUUsV0FBVztVQUFFLGdCQUMzQ04sS0FBQSxDQUFBaUcsYUFBQTtZQUNFQyxTQUFTLEVBQUUzRixHQUFHLENBQUNGLE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2NBQ3pDLENBQUNELE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLGVBQWUsQ0FBQyxHQUFHTCxJQUFJLENBQUNpQyxNQUFNLElBQUk7WUFDckQsQ0FBQztVQUFFLGdCQUVIbEMsS0FBQSxDQUFBaUcsYUFBQTtZQUFLQyxTQUFTLEVBQUU3RixPQUFPLENBQUNDLE1BQU0sRUFBRSxjQUFjO1VBQUUsZ0JBQzlDTixLQUFBLENBQUFpRyxhQUFBLENBQUN6RixRQUFRO1lBQUNpRSxNQUFNLEVBQUVBLE1BQU87WUFBQ3hDLE1BQU0sRUFBRWhDLElBQUksQ0FBQ2dDO1VBQU8sQ0FBRSxDQUM3QyxDQUFDLGVBQ05qQyxLQUFBLENBQUFpRyxhQUFBO1lBQUtDLFNBQVMsRUFBRTdGLE9BQU8sQ0FBQ0MsTUFBTSxFQUFFLE1BQU07VUFBRSxHQUNyQ0wsSUFBSSxDQUFDK0IsSUFBSSxJQUFJL0IsSUFBSSxDQUFDdUQsUUFDaEIsQ0FBQyxlQUNOeEQsS0FBQSxDQUFBaUcsYUFBQTtZQUFLQyxTQUFTLEVBQUU3RixPQUFPLENBQUNDLE1BQU0sRUFBRSxNQUFNO1VBQUUsR0FDckM0RSxjQUFjLENBQUNFLGVBQWUsSUFBSW5GLElBQUksQ0FBQ2lDLE1BQU0sSUFBSSxNQUFNLGlCQUN0RGxDLEtBQUEsQ0FBQWlHLGFBQUE7WUFDRUUsT0FBTyxFQUFFQSxDQUFBLEtBQU07Y0FDYixJQUFJLElBQUksQ0FBQ3pFLEtBQUssQ0FBQzBFLFVBQVUsRUFBRTtnQkFDekIsSUFBSSxDQUFDMUUsS0FBSyxDQUFDMEUsVUFBVSxDQUFDbkcsSUFBSSxDQUFDO2NBQzdCLENBQUMsTUFBTTtnQkFDTGEsUUFBUSxDQUFDYixJQUFJLENBQUNnQyxNQUFNLENBQUM7Y0FDdkI7WUFDRixDQUFFO1lBQ0ZvRSxLQUFLLEVBQUU7Y0FBRUMsTUFBTSxFQUFFO1lBQVU7VUFBRSxHQUU1QnBCLGNBQWMsQ0FBQ0ksWUFBWSxHQUMxQkosY0FBYyxDQUFDSSxZQUFZLGdCQUUzQnRGLEtBQUEsQ0FBQWlHLGFBQUEsQ0FBQ3RGLFdBQVcsTUFBRSxDQUViLENBQ04sRUFDQXVFLGNBQWMsQ0FBQ0MsZ0JBQWdCLElBQUlsRixJQUFJLENBQUNpQyxNQUFNLElBQUksTUFBTSxpQkFDdkRsQyxLQUFBLENBQUFpRyxhQUFBO1lBQ0VFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNO2NBQ2IsSUFBSSxJQUFJLENBQUN6RSxLQUFLLENBQUMwRSxVQUFVLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQzFFLEtBQUssQ0FBQzBFLFVBQVUsQ0FBQ25HLElBQUksQ0FBQztjQUM3QixDQUFDLE1BQU07Z0JBQ0xhLFFBQVEsQ0FBQ2IsSUFBSSxDQUFDZ0MsTUFBTSxDQUFDO2NBQ3ZCO1lBQ0YsQ0FBRTtZQUNGb0UsS0FBSyxFQUFFO2NBQUVDLE1BQU0sRUFBRTtZQUFVO1VBQUUsR0FFNUJwQixjQUFjLENBQUNJLFlBQVksR0FDMUJKLGNBQWMsQ0FBQ0ksWUFBWSxnQkFFM0J0RixLQUFBLENBQUFpRyxhQUFBLENBQUN2RixnQkFBZ0IsTUFBRSxDQUVsQixDQUNOLEVBQ0F3RSxjQUFjLENBQUNHLGNBQWMsaUJBQzVCckYsS0FBQSxDQUFBaUcsYUFBQTtZQUNFRSxPQUFPLEVBQUVBLENBQUEsS0FBTTtjQUNiLElBQUksSUFBSSxDQUFDekUsS0FBSyxDQUFDNkUsUUFBUSxFQUFFO2dCQUN2QixJQUFJLENBQUM3RSxLQUFLLENBQUM2RSxRQUFRLENBQUN0RyxJQUFJLENBQUM7Y0FDM0IsQ0FBQyxNQUFNO2dCQUNMLElBQUksQ0FBQzZFLFFBQVEsQ0FBQzdFLElBQUksQ0FBQztjQUNyQjtZQUNGLENBQUU7WUFDRm9HLEtBQUssRUFBRTtjQUFFQyxNQUFNLEVBQUU7WUFBVTtVQUFFLEdBRTVCcEIsY0FBYyxDQUFDSSxZQUFZLEdBQzFCSixjQUFjLENBQUNJLFlBQVksZ0JBRTNCdEYsS0FBQSxDQUFBaUcsYUFBQSxDQUFDeEYsY0FBYyxNQUFFLENBRWhCLENBRUosQ0FDRixDQUFDLEVBQ0xSLElBQUksQ0FBQ2lDLE1BQU0sSUFBSSxXQUFXLGlCQUN6QmxDLEtBQUEsQ0FBQWlHLGFBQUE7WUFBS0MsU0FBUyxFQUFFN0YsT0FBTyxDQUFDQyxNQUFNLEVBQUUsU0FBUztVQUFFLGdCQUN6Q04sS0FBQSxDQUFBaUcsYUFBQTtZQUNFQyxTQUFTLEVBQUU3RixPQUFPLENBQUNDLE1BQU0sRUFBRSxTQUFTLENBQUU7WUFDdEMrRixLQUFLLEVBQUU7Y0FBRUcsS0FBSyxFQUFFdkcsSUFBSSxDQUFDc0MsT0FBTyxHQUFHO1lBQUk7VUFBRSxDQUNqQyxDQUNILENBRUosQ0FBQztRQUVWO01BQUMsRUFDRjtJQUNILENBQUMsTUFBTTtNQUNMbUQsWUFBWSxHQUFBbkMsYUFBQSxDQUFBQSxhQUFBLEtBQ1BtQyxZQUFZO1FBQ2ZVLFVBQVUsRUFBR25HLElBQVMsSUFBSztVQUN6QmEsUUFBUSxDQUFDYixJQUFJLENBQUNnQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUNEc0UsUUFBUSxFQUFHdEcsSUFBSSxJQUFLO1VBQ2xCLElBQUksQ0FBQzZFLFFBQVEsQ0FBQzdFLElBQUksQ0FBQztRQUNyQixDQUFDO1FBQ0RpRixjQUFjLEVBQUEzQixhQUFBLEtBQU8yQixjQUFjO01BQUUsRUFDdEM7SUFDSDtJQUNBLG9CQUNFbEYsS0FBQSxDQUFBaUcsYUFBQSxDQUFBakcsS0FBQSxDQUFBeUcsUUFBQSxxQkFDRXpHLEtBQUEsQ0FBQWlHLGFBQUEsQ0FBQVMsT0FBQSxFQUFBQyxRQUFBO01BQ0V2RixRQUFRLEVBQUUsSUFBSSxDQUFDNkMsS0FBSyxDQUFDN0M7SUFBUyxHQUMxQnNFLFlBQVksRUFDWkQsUUFBUSxDQUNiLENBQUMsZUFDRnpGLEtBQUEsQ0FBQWlHLGFBQUEsQ0FBQ3JGLFNBQVM7TUFBQ3FCLE1BQU0sRUFBRSxJQUFJLENBQUNnQyxLQUFLLENBQUM1QztJQUFPLENBQUUsQ0FDdkMsQ0FBQztFQUVQO0FBQ0Y7QUFDQSxlQUFlbEIsWUFBWSxDQUFDWSxTQUFTLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=