UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

225 lines (221 loc) 26.2 kB
import * as React from "react"; import { mount } from "enzyme"; import TestRenderer from "react-test-renderer"; import sinon from "sinon"; import Table from ".."; window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () { return { disconnect: jest.fn(), observe: jest.fn(), unobserve: jest.fn() }; }); var dataSource = [{ one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }]; describe("Table", function () { beforeAll(function () { Element.prototype.getBoundingClientRect = jest.fn(function () { return { width: 500, height: 600, top: 0, left: 0, bottom: 0, right: 0, x: 0, y: 0, toJSON: function toJSON() {} }; }); }); it("headerAffixed 检测", function () { var wrapper = mount(React.createElement(Table, { dataSource: dataSource, headerAffixed: true }, React.createElement(Table.Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: "100px", fixed: "left" }), React.createElement(Table.Column, { fixed: "right", dataIndex: "two", title: "\u7B2Cer\u9879", width: 300 }), React.createElement(Table.Column, { dataIndex: "s", title: "\u7B2Csi\u9879", width: "10%", align: "center", render: function render() { return "这些撒大声地"; } }), React.createElement(Table.Column, { dataIndex: "three", title: "\u7B2Csan\u9879" }), React.createElement(Table.Column, { dataIndex: "four", title: "\u7B2Csi\u9879", width: 300, align: "right" }))); global.innerWidth = 500; global.dispatchEvent(new Event("resize")); global.dispatchEvent(new Event("scroll")); wrapper.instance().handleMainTableScroll(); wrapper.instance().componentWillUnmount(); }); it("height 与 headerAffixed 不能同时使用 验证", function () { var stub = sinon.stub(console, "error"); mount(React.createElement(Table, { dataSource: dataSource, height: 500, headerAffixed: true }, React.createElement(Table.Column, { dataIndex: "one", title: "\u534A\u89D2\u62EC\u53F7\u5916(\u534A\u89D2\u62EC\u53F7\u5185\u6D4B\u8BD5)", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: 100, fixed: "left" }))); expect(stub.calledOnce).toBe(true); stub.restore(); }); it("height 检测", function () { var wrapper = mount(React.createElement(Table, { dataSource: dataSource, height: 200 }, React.createElement(Table.Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: 100, fixed: "left" }), React.createElement(Table.Column, { fixed: "right", dataIndex: "two", title: "\u7B2Cer\u9879", width: 300 }), React.createElement(Table.Column, { dataIndex: "s", title: "\u7B2Csi\u9879", width: 300, align: "center", render: function render() { return "这些撒大声地"; } }), React.createElement(Table.Column, { dataIndex: "three", title: "\u7B2Csan\u9879" }), React.createElement(Table.Column, { dataIndex: "four", title: "\u7B2Csi\u9879", width: 300, align: "right" }))); global.innerWidth = 500; global.innerHeight = 500; global.dispatchEvent(new Event("resize")); global.dispatchEvent(new Event("scroll")); wrapper.instance().handleMainTableScroll(); }); it("Column width 在 fixed 时必须设置 验证", function () { var stub = sinon.stub(console, "error"); mount(React.createElement(Table, { dataSource: dataSource }, React.createElement(Table.Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: "left" }))); expect(stub.calledOnce).toBe(true); stub.restore(); }); it("loading 快照", function () { var wrapper = TestRenderer.create(React.createElement(Table, { loading: true, dataSource: dataSource }, React.createElement(Table.Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: "left" }))); expect(wrapper).toMatchSnapshot(); }); it("合并单元格快照", function () { var wrapper = TestRenderer.create(React.createElement(Table, { dataSource: dataSource, getCellProps: function getCellProps(_, __, rowIndex, colIndex) { if (rowIndex === 0 && colIndex === 0) { return { rowSpan: 2, colSpan: 2 }; } if (rowIndex === 3 && colIndex === 2) { return { rowSpan: 2, colSpan: 1 }; } if (rowIndex === 3 && colIndex === 3) { return { rowSpan: 2, colSpan: 1 }; } if (rowIndex === 2 && colIndex === 0) { return { rowSpan: 1, colSpan: 1 }; } return {}; } }, React.createElement(Table.Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: true }), React.createElement(Table.Column, { dataIndex: "two", title: "\u7B2Cer\u9879", fixed: true }), React.createElement(Table.Column, { dataIndex: "three", title: "\u7B2C3\u9879", align: "center" }), React.createElement(Table.Column, { dataIndex: "four", title: "\u7B2C\u56DB\u9879", align: "center", fixed: "right" }))); expect(wrapper).toMatchSnapshot(); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1vdW50IiwiVGVzdFJlbmRlcmVyIiwic2lub24iLCJUYWJsZSIsIndpbmRvdyIsIlJlc2l6ZU9ic2VydmVyIiwiamVzdCIsImZuIiwibW9ja0ltcGxlbWVudGF0aW9uIiwiZGlzY29ubmVjdCIsIm9ic2VydmUiLCJ1bm9ic2VydmUiLCJkYXRhU291cmNlIiwib25lIiwidHdvIiwiZm91ciIsInRocmVlIiwiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJFbGVtZW50IiwicHJvdG90eXBlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJsZWZ0IiwiYm90dG9tIiwicmlnaHQiLCJ4IiwieSIsInRvSlNPTiIsIml0Iiwid3JhcHBlciIsImdsb2JhbCIsImlubmVyV2lkdGgiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJpbnN0YW5jZSIsImhhbmRsZU1haW5UYWJsZVNjcm9sbCIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic3R1YiIsImNvbnNvbGUiLCJleHBlY3QiLCJjYWxsZWRPbmNlIiwidG9CZSIsInJlc3RvcmUiLCJpbm5lckhlaWdodCIsImNyZWF0ZSIsInRvTWF0Y2hTbmFwc2hvdCIsIl8iLCJfXyIsInJvd0luZGV4IiwiY29sSW5kZXgiLCJyb3dTcGFuIiwiY29sU3BhbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvX190ZXN0c19fL3Byb3BzLnRlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgbW91bnQgfSBmcm9tIFwiZW56eW1lXCJcbmltcG9ydCBUZXN0UmVuZGVyZXIgZnJvbSBcInJlYWN0LXRlc3QtcmVuZGVyZXJcIlxuaW1wb3J0IHNpbm9uIGZyb20gXCJzaW5vblwiXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uXCJcblxud2luZG93LlJlc2l6ZU9ic2VydmVyID1cbiAgd2luZG93LlJlc2l6ZU9ic2VydmVyIHx8XG4gIGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gKHtcbiAgICBkaXNjb25uZWN0OiBqZXN0LmZuKCksXG4gICAgb2JzZXJ2ZTogamVzdC5mbigpLFxuICAgIHVub2JzZXJ2ZTogamVzdC5mbigpLFxuICB9KSlcblxuY29uc3QgZGF0YVNvdXJjZSA9IFtcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbl1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZU9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxufVxuXG5kZXNjcmliZShcIlRhYmxlXCIsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAvKipcbiAgICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDAwMDY2NjNcbiAgICAgKiDpgJrov4cgbW9jayBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YO+8jOS5i+WQjui/kOihjOeahOaJgOaciSBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCDpg73kvJrov5Tlm57ov5nlkIzkuIDkuKrlgLzjgIJcbiAgICAgKi9cbiAgICBFbGVtZW50LnByb3RvdHlwZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiA1MDAsXG4gICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDAsXG4gICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSlcbiAgfSlcblxuICBpdChcImhlYWRlckFmZml4ZWQg5qOA5rWLXCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gICAgICA8VGFibGUgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX0gaGVhZGVyQWZmaXhlZD5cbiAgICAgICAgPFRhYmxlLkNvbHVtblxuICAgICAgICAgIGRhdGFJbmRleD1cIm9uZVwiXG4gICAgICAgICAgdGl0bGU9XCLnrKzkuIDpoblcIlxuICAgICAgICAgIHBvcG92ZXI9XCLooajlpLTmj5DnpLrlhoXlrrlcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwcHhcIlxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJ0d29cIlxuICAgICAgICAgIHRpdGxlPVwi56ysZXLpoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJzXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD1cIjEwJVwiXG4gICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgIHJlbmRlcj17KCkgPT4gXCLov5nkupvmkpLlpKflo7DlnLBcIn1cbiAgICAgICAgLz5cbiAgICAgICAgPFRhYmxlLkNvbHVtbiBkYXRhSW5kZXg9XCJ0aHJlZVwiIHRpdGxlPVwi56ysc2Fu6aG5XCIgLz5cbiAgICAgICAgPFRhYmxlLkNvbHVtblxuICAgICAgICAgIGRhdGFJbmRleD1cImZvdXJcIlxuICAgICAgICAgIHRpdGxlPVwi56ysc2npoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgICAgYWxpZ249XCJyaWdodFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZ2xvYmFsLmlubmVyV2lkdGggPSA1MDBcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZ2xvYmFsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicmVzaXplXCIpKVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzY3JvbGxcIikpXG4gICAgd3JhcHBlci5pbnN0YW5jZSgpLmhhbmRsZU1haW5UYWJsZVNjcm9sbCgpXG4gICAgd3JhcHBlci5pbnN0YW5jZSgpLmNvbXBvbmVudFdpbGxVbm1vdW50KClcbiAgfSlcblxuICAvLyBpdChcImhlaWdodCBwcm9wIOmqjOivgVwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gIC8vICAgICA8VGFibGVcbiAgLy8gICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgLy8gICAgICAgaGVpZ2h0PVwiNTAwcHhcIlxuICAvLyAgICAgPlxuICAvLyAgICAgICA8VGFibGUuQ29sdW1uXG4gIC8vICAgICAgICAgZGF0YUluZGV4PVwib25lXCJcbiAgLy8gICAgICAgICB0aXRsZT1cIuesrOS4gOmhuVwiXG4gIC8vICAgICAgICAgcG9wb3Zlcj1cIuihqOWktOaPkOekuuWGheWuuVwiXG4gIC8vICAgICAgICAgd2lkdGg9ezEwMH1cbiAgLy8gICAgICAgICBmaXhlZD1cImxlZnRcIlxuICAvLyAgICAgICAvPlxuICAvLyAgICAgPC9UYWJsZT5cbiAgLy8gICApXG4gIC8vICAgZXhwZWN0KHN0dWIuY2FsbGVkT25jZSkudG9CZSh0cnVlKVxuICAvLyAgIHN0dWIucmVzdG9yZSgpXG4gIC8vIH0pXG5cbiAgaXQoXCJoZWlnaHQg5LiOIGhlYWRlckFmZml4ZWQg5LiN6IO95ZCM5pe25L2/55SoIOmqjOivgVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgXCJlcnJvclwiKVxuICAgIG1vdW50KFxuICAgICAgPFRhYmxlIGRhdGFTb3VyY2U9e2RhdGFTb3VyY2V9IGhlaWdodD17NTAwfSBoZWFkZXJBZmZpeGVkPlxuICAgICAgICA8VGFibGUuQ29sdW1uXG4gICAgICAgICAgZGF0YUluZGV4PVwib25lXCJcbiAgICAgICAgICB0aXRsZT1cIuWNiuinkuaLrOWPt+WklijljYrop5Lmi6zlj7flhoXmtYvor5UpXCJcbiAgICAgICAgICBwb3BvdmVyPVwi6KGo5aS05o+Q56S65YaF5a65XCJcbiAgICAgICAgICB3aWR0aD17MTAwfVxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qoc3R1Yi5jYWxsZWRPbmNlKS50b0JlKHRydWUpXG4gICAgc3R1Yi5yZXN0b3JlKClcbiAgfSlcblxuICBpdChcImhlaWdodCDmo4DmtYtcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxUYWJsZSBkYXRhU291cmNlPXtkYXRhU291cmNlfSBoZWlnaHQ9ezIwMH0+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJvbmVcIlxuICAgICAgICAgIHRpdGxlPVwi56ys5LiA6aG5XCJcbiAgICAgICAgICBwb3BvdmVyPVwi6KGo5aS05o+Q56S65YaF5a65XCJcbiAgICAgICAgICB3aWR0aD17MTAwfVxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJ0d29cIlxuICAgICAgICAgIHRpdGxlPVwi56ysZXLpoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJzXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD17MzAwfVxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICByZW5kZXI9eygpID0+IFwi6L+Z5Lqb5pKS5aSn5aOw5ZywXCJ9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwidGhyZWVcIiB0aXRsZT1cIuesrHNhbumhuVwiIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJmb3VyXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD17MzAwfVxuICAgICAgICAgIGFsaWduPVwicmlnaHRcIlxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5pbm5lcldpZHRoID0gNTAwXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5pbm5lckhlaWdodCA9IDUwMFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJyZXNpemVcIikpXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInNjcm9sbFwiKSlcbiAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlTWFpblRhYmxlU2Nyb2xsKClcbiAgfSlcblxuICAvLyBpdChcIkNvbHVtbiB3aWR0aCBwcm9wIOmqjOivgVwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gIC8vICAgICA8VGFibGVcbiAgLy8gICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgLy8gICAgID5cbiAgLy8gICAgICAgPFRhYmxlLkNvbHVtblxuICAvLyAgICAgICAgIGRhdGFJbmRleD1cIm9uZVwiXG4gIC8vICAgICAgICAgdGl0bGU9XCLnrKzkuIDpoblcIlxuICAvLyAgICAgICAgIHdpZHRoPXtbXX1cbiAgLy8gICAgICAgLz5cbiAgLy8gICAgIDwvVGFibGU+XG4gIC8vICAgKVxuICAvLyAgIGV4cGVjdChzdHViLmNhbGxlZE9uY2UpLnRvQmUodHJ1ZSlcbiAgLy8gICBzdHViLnJlc3RvcmUoKVxuICAvLyB9KVxuXG4gIGl0KFwiQ29sdW1uIHdpZHRoIOWcqCBmaXhlZCDml7blv4Xpobvorr7nva4g6aqM6K+BXCIsICgpID0+IHtcbiAgICBjb25zdCBzdHViID0gc2lub24uc3R1Yihjb25zb2xlLCBcImVycm9yXCIpXG4gICAgbW91bnQoXG4gICAgICA8VGFibGUgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX0+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwib25lXCIgdGl0bGU9XCLnrKzkuIDpoblcIiBmaXhlZD1cImxlZnRcIiAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHN0dWIuY2FsbGVkT25jZSkudG9CZSh0cnVlKVxuICAgIHN0dWIucmVzdG9yZSgpXG4gIH0pXG5cbiAgaXQoXCJsb2FkaW5nIOW/q+eFp1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgICA8VGFibGUgbG9hZGluZyBkYXRhU291cmNlPXtkYXRhU291cmNlfT5cbiAgICAgICAgPFRhYmxlLkNvbHVtbiBkYXRhSW5kZXg9XCJvbmVcIiB0aXRsZT1cIuesrOS4gOmhuVwiIGZpeGVkPVwibGVmdFwiIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIuWQiOW5tuWNleWFg+agvOW/q+eFp1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgICA8VGFibGVcbiAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgZ2V0Q2VsbFByb3BzPXsoXywgX18sIHJvd0luZGV4LCBjb2xJbmRleCkgPT4ge1xuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0gMCAmJiBjb2xJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcm93U3BhbjogMixcbiAgICAgICAgICAgICAgY29sU3BhbjogMixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJvd0luZGV4ID09PSAzICYmIGNvbEluZGV4ID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICByb3dTcGFuOiAyLFxuICAgICAgICAgICAgICBjb2xTcGFuOiAxLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocm93SW5kZXggPT09IDMgJiYgY29sSW5kZXggPT09IDMpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHJvd1NwYW46IDIsXG4gICAgICAgICAgICAgIGNvbFNwYW46IDEsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0gMiAmJiBjb2xJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcm93U3BhbjogMSxcbiAgICAgICAgICAgICAgY29sU3BhbjogMSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHt9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwib25lXCIgdGl0bGU9XCLnrKzkuIDpoblcIiBmaXhlZCAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uIGRhdGFJbmRleD1cInR3b1wiIHRpdGxlPVwi56ysZXLpoblcIiBmaXhlZCAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uIGRhdGFJbmRleD1cInRocmVlXCIgdGl0bGU9XCLnrKwz6aG5XCIgYWxpZ249XCJjZW50ZXJcIiAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uXG4gICAgICAgICAgZGF0YUluZGV4PVwiZm91clwiXG4gICAgICAgICAgdGl0bGU9XCLnrKzlm5vpoblcIlxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixRQUF0QjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIscUJBQXpCO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixP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