diff --git a/aurelia_project/tasks/run.js b/aurelia_project/tasks/run.js index d67b5211fe9b88bfed598d39e6f1fe5c561dc5a3..baaca561a8b24bbd0c2efa972293b52f6305742c 100644 --- a/aurelia_project/tasks/run.js +++ b/aurelia_project/tasks/run.js @@ -33,10 +33,10 @@ let serve = gulp.series( next(); }, proxyMiddleware(['/free', '/admin', '/upload', '/lib'], { - // target: 'http://translation.sh1.newtouch.com', + target: 'http://translation.sh1.newtouch.com', // target: 'http://tms000.sh1.newtouch.com', // target: 'https://xiweicheng.com', - target: 'http://localhost', + // target: 'http://localhost', changeOrigin: true }), ] diff --git a/node_modules.zip b/node_modules.zip new file mode 100644 index 0000000000000000000000000000000000000000..0230168f429314fe35cc69f1b3f9f3ab305eba31 Binary files /dev/null and b/node_modules.zip differ diff --git a/scripts/app-bundle.js b/scripts/app-bundle.js index 4e3166077ad988d080f27115bec91edf0e748e7a..6d0cbc3b4efa102d729bb2166b79fe8b575fb6b8 100644 --- a/scripts/app-bundle.js +++ b/scripts/app-bundle.js @@ -230,7 +230,7 @@ define('blog/blog',['exports', 'aurelia-framework', 'chat/chat-service'], functi this.isHide = true; this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_VIEW_CHANGED, function (payload) { - _this.routeConfig && _this.routeConfig.navModel.setTitle(payload.title + ' | 博文 | TMS'); + _this.routeConfig && _this.routeConfig.navModel.setTitle(payload.title + ' | \u535A\u6587 | TMS'); }); this.subscribe1 = ea.subscribe(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, function (payload) { if (payload.justRefresh) { @@ -331,7 +331,7 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _classCallCheck(instance, Constructor) { @@ -504,11 +504,11 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', if (_this2.user) { var name = _this2.user ? _this2.user.name : _this2.chatTo; - routeConfig.navModel.setTitle(name + ' | 私聊 | TMS'); + routeConfig.navModel.setTitle(name + ' | \u79C1\u804A | TMS'); _this2.listChatDirect(true); } else { - toastr.error('聊天用户[' + _this2.chatTo + ']不存在或者没有权限访问!'); + toastr.error('\u804A\u5929\u7528\u6237[' + _this2.chatTo + ']\u4E0D\u5B58\u5728\u6216\u8005\u6CA1\u6709\u6743\u9650\u8BBF\u95EE!'); if (_this2.preChatId) { window.location = wurl('path') + ('#/chat/' + _this2.preChatId); } else { @@ -526,11 +526,11 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', }); if (_this2.channel) { - routeConfig.navModel.setTitle(_this2.channel.title + ' | 频道 | TMS'); + routeConfig.navModel.setTitle(_this2.channel.title + ' | \u9891\u9053 | TMS'); _this2.listChatChannel(true); } else { - toastr.error('聊天频道[' + _this2.chatTo + ']不存在或者没有权限访问!'); + toastr.error('\u804A\u5929\u9891\u9053[' + _this2.chatTo + ']\u4E0D\u5B58\u5728\u6216\u8005\u6CA1\u6709\u6743\u9650\u8BBF\u95EE!'); if (_this2.preChatId) { window.location = wurl('path') + ('#/chat/' + _this2.preChatId); } else { @@ -678,7 +678,7 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', $(this.commentsRef).find('.comment[data-id=' + to + ']').addClass('active'); } else { $(this.commentsRef).parent('.scroll-content').scrollTo('max'); - toastr.warning('消息[' + to + ']不存在,可能已经被删除!'); + toastr.warning('\u6D88\u606F[' + to + ']\u4E0D\u5B58\u5728,\u53EF\u80FD\u5DF2\u7ECF\u88AB\u5220\u9664!'); } } }; @@ -725,7 +725,7 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', if (_this9.countAt && data.data.countAt > _this9.countAt) { var cnt = data.data.countAt - _this9.countAt; push.create('TMS沟通@消息通知', { - body: '你有' + cnt + '条新的@消息!', + body: '\u4F60\u6709' + cnt + '\u6761\u65B0\u7684@\u6D88\u606F!', icon: { x16: 'img/tms-x16.ico', x32: 'img/tms-x32.png' @@ -809,7 +809,7 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', if (!hasOwn) { push.create('TMS沟通频道消息通知', { - body: '频道[' + this.channel.title + ']有新消息了!', + body: '\u9891\u9053[' + this.channel.title + ']\u6709\u65B0\u6D88\u606F\u4E86!', icon: { x16: 'img/tms-x16.ico', x32: 'img/tms-x32.png' @@ -991,7 +991,7 @@ define('chat/chat-direct',['exports', 'aurelia-framework', 'common/common-poll', }; ChatDirect.prototype.scrollTo = function scrollTo(target) { - var duration = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; + var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var onAfter = arguments[2]; this.focusedComment = target; @@ -1091,9 +1091,9 @@ define('chat/chat-service',['exports'], function (exports) { resolve(value); } else { return Promise.resolve(value).then(function (value) { - return step("next", value); + step("next", value); }, function (err) { - return step("throw", err); + step("throw", err); }); } } @@ -1241,7 +1241,7 @@ define('common/common-constant',[], function () { EVENT_CHAT_MSG_SENDED: 'event_chat_msg_sended', EVENT_CHAT_MSG_EDIT_UPLOAD: 'event_chat_msg_edit_upload', EVENT_CHAT_SIDEBAR_TOGGLE: 'event_chat_sidebar_toggle', - EVENT_CHAT_SEARCH_RESULT: 'event_chat_search_result', + EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE: 'event_chat_right_sidebar_toggle', EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM: 'event_chat_search_goto_chat_item', EVENT_CHAT_CHANNEL_CREATED: 'event_chat_channel_created', EVENT_CHAT_CHANNEL_DELETED: 'event_chat_channel_deleted', @@ -1250,11 +1250,6 @@ define('common/common-constant',[], function () { EVENT_SHOW_HOTKEYS_MODAL: 'event_show_hotkeys_modal', EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE: 'event_chat_channel_member_add_or_remove', EVENT_CHAT_LAST_ITEM_RENDERED: 'event_chat_last_item_rendered', - EVENT_CHAT_SHOW_STOW: 'event_chat_show_stow', - EVENT_CHAT_SHOW_AT: 'event_chat_show_at', - EVENT_CHAT_SHOW_DIR: 'event_chat_show_dir', - EVENT_CHAT_SHOW_ATTACH: 'event_chat_show_attach', - EVENT_CHAT_SHOW_SCHEDULE: 'event_chat_show_schedule', EVENT_SCROLLBAR_SCROLL_TO_BOTTOM: 'event_scrollbar_scroll_to_bottom', EVENT_CHAT_MSG_INSERT: 'event_chat_msg_insert', EVENT_CHAT_MSG_POPUP_SHOW: 'event_chat_msg_popup_show', @@ -1292,6 +1287,7 @@ define('common/common-constant',[], function () { EVENT_BLOG_COMMENT_CHANGED: 'event_blog_comment_changed', ACTION_TYPE_SEARCH: 'action_type_search', ACTION_TYPE_STOW: 'action_type_stow', + ACTION_TYPE_PIN: 'action_type_pin', ACTION_TYPE_AT: 'action_type_at', ACTION_TYPE_DIR: 'action_type_dir', ACTION_TYPE_ATTACH: 'action_type_attach', @@ -1330,7 +1326,7 @@ define('common/common-diff',[], function () { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; (function webpackUniversalModuleDefinition(root, factory) { @@ -2220,7 +2216,7 @@ define('common/common-imgs-loaded',[], function () { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; ;(function (w, undefined) { @@ -3905,7 +3901,7 @@ define('common/common-utils',['exports', 'wurl', 'common/common-diff'], function var cnt = time ? time : 10; var timer = null; - var $t = toastr.error('网络连接错误,' + cnt + '秒后自动重试!', null, { + var $t = toastr.error('\u7F51\u7EDC\u8FDE\u63A5\u9519\u8BEF,' + cnt + '\u79D2\u540E\u81EA\u52A8\u91CD\u8BD5!', null, { "closeButton": false, "timeOut": "0", "preventDuplicates": false, @@ -3924,7 +3920,7 @@ define('common/common-utils',['exports', 'wurl', 'common/common-diff'], function callback && callback(); return; } - $t && $t.find('.toast-message').text('网络连接错误,' + cnt + '秒后自动重试!'); + $t && $t.find('.toast-message').text('\u7F51\u7EDC\u8FDE\u63A5\u9519\u8BEF,' + cnt + '\u79D2\u540E\u81EA\u52A8\u91CD\u8BD5!'); cnt--; }, 1000); }; @@ -4480,10 +4476,10 @@ define('init/config',['exports', 'aurelia-templating-resources', 'aurelia-event- } if (!lang) { - return '
' + (escaped ? code : _commonUtils2.default.escape(code, true)) + '\n
'; + return '
' + (escaped ? code : _commonUtils2.default.escape(code, true)) + '\n
'; } - return '
' + (escaped ? code : _commonUtils2.default.escape(code, true)) + '\n
\n'; + return '
' + (escaped ? code : _commonUtils2.default.escape(code, true)) + '\n
\n'; }; _marked2.default.setOptions({ @@ -4601,7 +4597,19 @@ define('init/index',['exports', './config', 'jquery', 'jquery.scrollto', 'timeag function configure(aurelia, params) { - _config2.default.context(aurelia).initGlobalVar().initAjax().initToastr().initMarked().initAnimateCss().initEmoji().initModaal(); + _config2.default.context(aurelia).initGlobalVar().initHttp().initAjax().initToastr().initMarked().initAnimateCss().initEmoji().initModaal(); + } +}); +define('resources/index',['exports'], function (exports) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.configure = configure; + function configure(aurelia) { + + aurelia.globalResources(['resources/value-converters/vc-common', 'resources/binding-behaviors/bb-key', 'resources/attributes/attr-task', 'resources/attributes/attr-swipebox', 'resources/attributes/attr-pastable', 'resources/attributes/attr-autosize', 'resources/attributes/attr-dropzone', 'resources/attributes/attr-attr', 'resources/attributes/attr-c2c', 'resources/attributes/attr-dimmer', 'resources/attributes/attr-ui-dropdown', 'resources/attributes/attr-ui-dropdown-action', 'resources/attributes/attr-ui-dropdown-hover', 'resources/attributes/attr-ui-tab', 'resources/attributes/attr-ui-popup', 'resources/attributes/attr-ui-checkbox', 'resources/attributes/attr-tablesort', 'resources/attributes/attr-textcomplete', 'resources/attributes/attr-scrollbar', 'resources/attributes/attr-modaal', 'resources/elements/em-modal', 'resources/elements/em-dropdown', 'resources/elements/em-checkbox', 'resources/elements/em-confirm-modal', 'resources/elements/em-hotkeys-modal', 'resources/elements/em-chat-input', 'resources/elements/em-chat-top-menu', 'resources/elements/em-chat-sidebar-left', 'resources/elements/em-chat-content-item', 'resources/elements/em-chat-sidebar-right', 'resources/elements/em-chat-channel-create', 'resources/elements/em-chat-channel-join', 'resources/elements/em-chat-channel-edit', 'resources/elements/em-chat-channel-members-mgr', 'resources/elements/em-chat-channel-members-show', 'resources/elements/em-chat-channel-link-mgr', 'resources/elements/em-chat-system-link-mgr', 'resources/elements/em-chat-msg-popup', 'resources/elements/em-chat-member-popup', 'resources/elements/em-chat-attach', 'resources/elements/em-chat-schedule', 'resources/elements/em-chat-msg', 'resources/elements/em-chat-schedule-edit', 'resources/elements/em-chat-schedule-remind', 'resources/elements/em-chat-share', 'resources/elements/em-chat-content-item-footbar', 'resources/elements/em-blog-write', 'resources/elements/em-blog-left-sidebar', 'resources/elements/em-blog-right-sidebar', 'resources/elements/em-blog-content', 'resources/elements/em-blog-top-menu', 'resources/elements/em-blog-share', 'resources/elements/em-blog-comment', 'resources/elements/em-blog-save', 'resources/elements/em-blog-space-create', 'resources/elements/em-blog-space-edit', 'resources/elements/em-blog-space-update', 'resources/elements/em-blog-history', 'resources/elements/em-blog-history-view', 'resources/elements/em-blog-history-diff', 'resources/elements/em-blog-comment-popup', 'resources/elements/em-blog-space-auth', 'resources/elements/em-user-avatar', 'resources/elements/em-user-edit', 'resources/elements/em-blog-comment-share']); } }); define('test/test-lifecycle',['exports', 'aurelia-framework', 'aurelia-event-aggregator'], function (exports, _aureliaFramework, _aureliaEventAggregator) { @@ -4718,18 +4726,6 @@ define('test/test-lifecycle',['exports', 'aurelia-framework', 'aurelia-event-agg } })), _class); }); -define('resources/index',['exports'], function (exports) { - 'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.configure = configure; - function configure(aurelia) { - - aurelia.globalResources(['resources/value-converters/vc-common', 'resources/binding-behaviors/bb-key', 'resources/attributes/attr-task', 'resources/attributes/attr-swipebox', 'resources/attributes/attr-pastable', 'resources/attributes/attr-autosize', 'resources/attributes/attr-dropzone', 'resources/attributes/attr-attr', 'resources/attributes/attr-c2c', 'resources/attributes/attr-dimmer', 'resources/attributes/attr-ui-dropdown', 'resources/attributes/attr-ui-dropdown-action', 'resources/attributes/attr-ui-dropdown-hover', 'resources/attributes/attr-ui-tab', 'resources/attributes/attr-ui-popup', 'resources/attributes/attr-ui-checkbox', 'resources/attributes/attr-tablesort', 'resources/attributes/attr-textcomplete', 'resources/attributes/attr-scrollbar', 'resources/attributes/attr-modaal', 'resources/elements/em-modal', 'resources/elements/em-dropdown', 'resources/elements/em-checkbox', 'resources/elements/em-confirm-modal', 'resources/elements/em-hotkeys-modal', 'resources/elements/em-chat-input', 'resources/elements/em-chat-top-menu', 'resources/elements/em-chat-sidebar-left', 'resources/elements/em-chat-content-item', 'resources/elements/em-chat-sidebar-right', 'resources/elements/em-chat-channel-create', 'resources/elements/em-chat-channel-join', 'resources/elements/em-chat-channel-edit', 'resources/elements/em-chat-channel-members-mgr', 'resources/elements/em-chat-channel-members-show', 'resources/elements/em-chat-channel-link-mgr', 'resources/elements/em-chat-system-link-mgr', 'resources/elements/em-chat-msg-popup', 'resources/elements/em-chat-member-popup', 'resources/elements/em-chat-attach', 'resources/elements/em-chat-schedule', 'resources/elements/em-chat-schedule-edit', 'resources/elements/em-chat-schedule-remind', 'resources/elements/em-chat-share', 'resources/elements/em-blog-write', 'resources/elements/em-blog-left-sidebar', 'resources/elements/em-blog-right-sidebar', 'resources/elements/em-blog-content', 'resources/elements/em-blog-top-menu', 'resources/elements/em-blog-share', 'resources/elements/em-blog-comment', 'resources/elements/em-blog-save', 'resources/elements/em-blog-space-create', 'resources/elements/em-blog-space-edit', 'resources/elements/em-blog-space-update', 'resources/elements/em-blog-history', 'resources/elements/em-blog-history-view', 'resources/elements/em-blog-history-diff', 'resources/elements/em-blog-comment-popup', 'resources/elements/em-blog-space-auth', 'resources/elements/em-user-avatar', 'resources/elements/em-user-edit', 'resources/elements/em-blog-comment-share']); - } -}); define('user/user-login',['exports'], function (exports) { 'use strict'; @@ -5220,7 +5216,7 @@ define('resources/attributes/attr-c2c',['exports', 'aurelia-framework', 'clipboa AttrC2cCustomAttribute.prototype._init = function _init() { var _this = this; - $(this.element).append(''); + $(this.element).append(''); this.clipboard = new _clipboard2.default($(this.element).find('i.copy.icon')[0], { text: function text(trigger) { return _this.value ? _this.value : $(_this.element).text(); @@ -5467,6 +5463,7 @@ define('resources/attributes/attr-modaal',['exports', 'aurelia-framework', 'aure $(_this.element).modaal({ fullscreen: true, overlay_close: false, + animation: 'none', before_open: function before_open() { ea.publish(nsCons.EVENT_MODAAL_BEFORE_OPEN, { @@ -5841,7 +5838,7 @@ define('resources/attributes/attr-textcomplete',['exports', 'aurelia-framework', }, template: function template(value, term) { if (value == 'search') { - return '表情查找 - :search'; + return '\u8868\u60C5\u67E5\u627E - :search'; } var emojiKey = ':' + value + ':'; return emojify.replace(emojiKey) + ' - ' + emojiKey; @@ -6183,7 +6180,7 @@ define('resources/binding-behaviors/bb-key',['exports'], function (exports) { } KeyBindingBehavior.prototype.bind = function bind(binding, source) { - var key = arguments.length <= 2 || arguments[2] === undefined ? 13 : arguments[2]; + var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 13; var metaKeys = arguments[3]; var methodName = 'updateTarget'; @@ -6217,13 +6214,23 @@ define('resources/binding-behaviors/bb-key',['exports'], function (exports) { return KeyBindingBehavior; }(); }); -define('resources/value-converters/vc-common',['exports', 'jquery-format', 'timeago'], function (exports) { +define('resources/value-converters/vc-common',['exports', 'color-hash', 'common/common-tags', 'jquery-format', 'timeago'], function (exports, _colorHash, _commonTags) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); - exports.DiffHtmlValueConverter = exports.Nl2brValueConverter = exports.EmojiValueConverter = exports.UserNameValueConverter = exports.SortChannelsValueConverter = exports.SortUsernamesValueConverter = exports.SortUsersValueConverter = exports.SortValueConverter = exports.ParseMdValueConverter = exports.TimeagoValueConverter = exports.NumberValueConverter = exports.DateValueConverter = exports.LowerValueConverter = exports.UpperValueConverter = undefined; + exports.DiffHtmlValueConverter = exports.Nl2brValueConverter = exports.LabelCssValueConverter = exports.LabelColorValueConverter = exports.ChatLabelFilterValueConverter = exports.ChatLabelTipValueConverter = exports.ChatLabelExistValueConverter = exports.EmojiReplValueConverter = exports.EmojiValueConverter = exports.UserNameValueConverter = exports.SortChannelsValueConverter = exports.SortUsernamesValueConverter = exports.SortUsersValueConverter = exports.SortValueConverter = exports.ParseMdValueConverter = exports.TimeagoValueConverter = exports.NumberValueConverter = exports.DateValueConverter = exports.LowerValueConverter = exports.UpperValueConverter = undefined; + + var _colorHash2 = _interopRequireDefault(_colorHash); + + var _commonTags2 = _interopRequireDefault(_commonTags); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { @@ -6263,7 +6270,7 @@ define('resources/value-converters/vc-common',['exports', 'jquery-format', 'time } DateValueConverter.prototype.toView = function toView(value) { - var format = arguments.length <= 1 || arguments[1] === undefined ? 'yyyy-MM-dd hh:mm:ss' : arguments[1]; + var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd hh:mm:ss'; return _.isInteger(_.toNumber(value)) ? $.format.date(new Date(value), format) : value ? value : ''; }; @@ -6277,7 +6284,7 @@ define('resources/value-converters/vc-common',['exports', 'jquery-format', 'time } NumberValueConverter.prototype.toView = function toView(value) { - var format = arguments.length <= 1 || arguments[1] === undefined ? '#,##0.00' : arguments[1]; + var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#,##0.00'; return _.isNumber(_.toNumber(value)) ? $.format.number(value, format) : value ? value : ''; }; @@ -6407,6 +6414,96 @@ define('resources/value-converters/vc-common',['exports', 'jquery-format', 'time return EmojiValueConverter; }(); + var EmojiReplValueConverter = exports.EmojiReplValueConverter = function () { + function EmojiReplValueConverter() { + _classCallCheck(this, EmojiReplValueConverter); + } + + EmojiReplValueConverter.prototype.toView = function toView(value) { + return emojify.replace(value); + }; + + return EmojiReplValueConverter; + }(); + + var ChatLabelExistValueConverter = exports.ChatLabelExistValueConverter = function () { + function ChatLabelExistValueConverter() { + _classCallCheck(this, ChatLabelExistValueConverter); + } + + ChatLabelExistValueConverter.prototype.toView = function toView(chatLabels, type) { + if (chatLabels && chatLabels.length != 0) { + if (_.some(chatLabels, function (cl) { + return (type ? cl.type == type : true) && cl.voters.length != 0; + })) { + return ''; + } + } + return 'none'; + }; + + return ChatLabelExistValueConverter; + }(); + + var ChatLabelTipValueConverter = exports.ChatLabelTipValueConverter = function () { + function ChatLabelTipValueConverter() { + _classCallCheck(this, ChatLabelTipValueConverter); + } + + ChatLabelTipValueConverter.prototype.toView = function toView(chatLabel) { + var vs = _.map(chatLabel.voters, function (v) { + return v.name ? v.name : v.username; + }); + return '' + _.join(vs, ',') + vs.length + '\u4EBA' + (chatLabel.type == 'Emoji' ? '表示了' : '标记了') + ' [' + (chatLabel.type == 'Emoji' ? chatLabel.description : chatLabel.name) + ']'; + }; + + return ChatLabelTipValueConverter; + }(); + + var ChatLabelFilterValueConverter = exports.ChatLabelFilterValueConverter = function () { + function ChatLabelFilterValueConverter() { + _classCallCheck(this, ChatLabelFilterValueConverter); + } + + ChatLabelFilterValueConverter.prototype.toView = function toView(chatLabels) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Emoji'; + + return _.filter(chatLabels, { type: type }); + }; + + return ChatLabelFilterValueConverter; + }(); + + var LabelColorValueConverter = exports.LabelColorValueConverter = function () { + function LabelColorValueConverter() { + _classCallCheck(this, LabelColorValueConverter); + } + + LabelColorValueConverter.prototype.toView = function toView(chatLabel) { + var tag = _.find(_commonTags2.default, { value: chatLabel.name }); + return tag ? tag.color : ''; + }; + + return LabelColorValueConverter; + }(); + + var LabelCssValueConverter = exports.LabelCssValueConverter = function () { + function LabelCssValueConverter() { + _classCallCheck(this, LabelCssValueConverter); + } + + LabelCssValueConverter.prototype.toView = function toView(chatLabel) { + var cs = colorHash.rgb(chatLabel.name); + var bgColor = 'rgba(' + cs[0] + ', ' + cs[1] + ', ' + cs[2] + ', 0.6)'; + var color = 'rgba(' + (255 - cs[0]) + ', ' + (255 - cs[1]) + ', ' + (255 - cs[2]) + ', 1)'; + + var tag = _.find(_commonTags2.default, { value: chatLabel.name }); + return !tag ? { "background-color": bgColor, "color": color } : ''; + }; + + return LabelCssValueConverter; + }(); + var Nl2brValueConverter = exports.Nl2brValueConverter = function () { function Nl2brValueConverter() { _classCallCheck(this, Nl2brValueConverter); @@ -7100,7 +7197,7 @@ define('resources/elements/em-blog-comment',['exports', 'aurelia-framework', 'si }, template: function template(value, term) { if (value == 'search') { - return '表情查找 - :search'; + return '\u8868\u60C5\u67E5\u627E - :search'; } var emojiKey = ':' + value + ':'; return emojify.replace(emojiKey) + ' - ' + emojiKey; @@ -7165,7 +7262,7 @@ define('resources/elements/em-blog-comment',['exports', 'aurelia-framework', 'si }; EmBlogComment.prototype.replyHandler = function replyHandler(item) { - this.insertContent('[[回复评论#' + item.id + '](' + this.baseUrl + '?cid=' + item.id + '){~' + item.creator.username + '}]\n\n'); + this.insertContent('[[\u56DE\u590D\u8BC4\u8BBA#' + item.id + '](' + this.baseUrl + '?cid=' + item.id + '){~' + item.creator.username + '}]\n\n'); this._scrollTo('b'); }; @@ -7334,7 +7431,7 @@ define('resources/elements/em-blog-comment',['exports', 'aurelia-framework', 'si $('.em-blog-content').find('.comment[data-id=' + to + ']').addClass('active'); } else { $('.em-blog-content').scrollTo('max'); - toastr.warning('博文评论[' + to + ']不存在,可能已经被删除!'); + toastr.warning('\u535A\u6587\u8BC4\u8BBA[' + to + ']\u4E0D\u5B58\u5728,\u53EF\u80FD\u5DF2\u7ECF\u88AB\u5220\u9664!'); } } }; @@ -7973,7 +8070,7 @@ define('resources/elements/em-blog-content',['exports', 'aurelia-framework', 'cl }; EmBlogContent.prototype.catalogHandler = function catalogHandler() { - var justRefresh = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; + var justRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, { justRefresh: justRefresh, @@ -8532,6 +8629,11 @@ define('resources/elements/em-blog-left-sidebar',['exports', 'aurelia-framework' } }; + EmBlogLeftSidebar.prototype.sysLinkHandler = function sysLinkHandler(item) { + $.post('/admin/link/count/inc', { id: item.id }); + return true; + }; + return EmBlogLeftSidebar; }()) || _class; }); @@ -9435,11 +9537,11 @@ define('resources/elements/em-blog-top-menu',['exports', 'aurelia-framework', 't var response = { results: { blogs: { - name: '博文 (' + resp.data.blogs.length + ')', + name: '\u535A\u6587 (' + resp.data.blogs.length + ')', results: [] }, comments: { - name: '评论 (' + resp.data.comments.length + ')', + name: '\u8BC4\u8BBA (' + resp.data.comments.length + ')', results: [] } } @@ -9448,7 +9550,7 @@ define('resources/elements/em-blog-top-menu',['exports', 'aurelia-framework', 't response.results.blogs.results.push({ title: item.title, - description: '' + item.creator.name + ' 创建于 ' + tg.format(item.createDate, 'zh_CN'), + description: '' + item.creator.name + ' \u521B\u5EFA\u4E8E ' + tg.format(item.createDate, 'zh_CN'), url: '#/blog/' + item.id }); }); @@ -9456,7 +9558,7 @@ define('resources/elements/em-blog-top-menu',['exports', 'aurelia-framework', 't response.results.comments.results.push({ title: '#/blog/' + item.targetId + '?cid=' + item.id, - description: '' + item.creator.name + ' 创建于 ' + tg.format(item.createDate, 'zh_CN') + '
' + utils.encodeHtml(item.content), + description: '' + item.creator.name + ' \u521B\u5EFA\u4E8E ' + tg.format(item.createDate, 'zh_CN') + '
' + utils.encodeHtml(item.content), url: '#/blog/' + item.targetId + '?cid=' + item.id }); }); @@ -9919,7 +10021,7 @@ define('resources/elements/em-blog-write',['exports', 'aurelia-framework', 'simp }, template: function template(value, term) { if (value == 'search') { - return '表情查找 - :search'; + return '\u8868\u60C5\u67E5\u627E - :search'; } var emojiKey = ':' + value + ':'; return emojify.replace(emojiKey) + ' - ' + emojiKey; @@ -10193,7 +10295,7 @@ define('resources/elements/em-chat-attach',['exports', 'aurelia-framework'], fun EmChatAttach.prototype._listByPage = function _listByPage() { var _this = this; - var nextPage = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; + var nextPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var url = nsCtx.isAt ? '/admin/file/listByUser' : '/admin/file/listByChannel'; this.ajax = $.get(url, { @@ -10599,7 +10701,7 @@ define('resources/elements/em-chat-channel-join',['exports', 'aurelia-framework' EmChatChannelJoin.prototype.joinHandler = function joinHandler(item) { this.confirmMd.show({ - content: '确定要加入频道' + item.title + '吗?', + content: '\u786E\u5B9A\u8981\u52A0\u5165\u9891\u9053' + item.title + '\u5417?', onapprove: function onapprove() { $.post('/admin/channel/join', { id: item.id @@ -10618,7 +10720,7 @@ define('resources/elements/em-chat-channel-join',['exports', 'aurelia-framework' EmChatChannelJoin.prototype.leaveHandler = function leaveHandler(item) { this.confirmMd.show({ - content: '确定要离开频道' + item.title + '吗?', + content: '\u786E\u5B9A\u8981\u79BB\u5F00\u9891\u9053' + item.title + '\u5417?', onapprove: function onapprove() { $.post('/admin/channel/leave', { id: item.id @@ -10793,6 +10895,7 @@ define('resources/elements/em-chat-channel-link-mgr',['exports', 'aurelia-framew EmChatChannelLinkMgr.prototype.attached = function attached() {}; EmChatChannelLinkMgr.prototype.show = function show() { + this.channelChanged(); this.emModal.show({ autoDimmer: false }); }; @@ -11060,6 +11163,191 @@ define('resources/elements/em-chat-channel-members-show',['exports', 'aurelia-fr initializer: null })), _class2)) || _class; }); +define('resources/elements/em-chat-content-item-footbar',['exports', 'aurelia-framework', 'common/common-tags'], function (exports, _aureliaFramework, _commonTags) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.EmChatContentItemFootbar = undefined; + + var _commonTags2 = _interopRequireDefault(_commonTags); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + + function _initDefineProp(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object['ke' + 'ys'](descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object['define' + 'Property'](target, property, desc); + desc = null; + } + + return desc; + } + + function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); + } + + var _class, _desc, _value, _class2, _descriptor; + + var EmChatContentItemFootbar = exports.EmChatContentItemFootbar = (0, _aureliaFramework.containerless)(_class = (_class2 = function () { + function EmChatContentItemFootbar() { + _classCallCheck(this, EmChatContentItemFootbar); + + _initDefineProp(this, 'chat', _descriptor, this); + + this.emojis = [{ + label: '赞同', + value: ':+1:', + type: 'emoji' + }, { + label: '反对', + value: ':-1:', + type: 'emoji' + }, { + label: '知悉', + value: ':ok_hand:', + type: 'emoji' + }, { + label: '关注', + value: ':eyes:', + type: 'emoji' + }, { + label: '爱心', + value: ':heart:', + type: 'emoji' + }, { + label: '开心', + value: ':laughing:', + type: 'emoji' + }, { + label: '困惑', + value: ':confused:', + type: 'emoji' + }, { + label: '悲伤', + value: ':cry:', + type: 'emoji' + }]; + + this.tags = _commonTags2.default; + } + + EmChatContentItemFootbar.prototype.attached = function attached() { + var _this = this; + + $([this.addEmojiRef]).popup({ + inline: true, + hoverable: true + }); + $([this.addTagRef]).popup({ + inline: true, + hoverable: true, + + onHide: function onHide() { + _this.isCustomTag = false; + $(_this.tagRef).val(''); + } + }); + }; + + EmChatContentItemFootbar.prototype.toggleChatLabelHandler = function toggleChatLabelHandler(item) { + var _this2 = this; + + $.post('/admin/chat/' + (nsCtx.isAt ? 'direct' : 'channel') + '/label/toggle', { + url: nsCtx.isAt ? utils.getBasePath() : utils.getUrl(), + meta: item.type == 'emoji' ? $(emojify.replace(item.value)).attr('src') : item.value, + type: item.type == 'emoji' ? 'Emoji' : 'Tag', + contentHtml: utils.md2html(this.chat.content), + name: item.value, + desc: item.label, + id: this.chat.id + }, function (data, textStatus, xhr) { + if (data.success) { + var cl = _.find(_this2.chat.chatLabels, { id: data.data.id }); + if (cl) { + cl.voters = data.data.voters; + } else { + _this2.chat.chatLabels = [].concat(_this2.chat.chatLabels, [data.data]); + } + bs.signal('sg-chatlabel-refresh'); + } else { + toastr.error(data.data); + } + }); + }; + + EmChatContentItemFootbar.prototype.toggleCustomTagHandler = function toggleCustomTagHandler() { + var _this3 = this; + + if (this.isCustomTag) { + var v = $(this.tagRef).val(); + if (v) { + this.toggleChatLabelHandler({ + label: v, + value: v, + type: 'Tag' + }); + $(this.tagRef).val(''); + } + } else { + _.defer(function () { + return $(_this3.tagRef).focus(); + }); + } + this.isCustomTag = !this.isCustomTag; + }; + + EmChatContentItemFootbar.prototype.tagKeyupHandler = function tagKeyupHandler() { + this.toggleCustomTagHandler(); + }; + + return EmChatContentItemFootbar; + }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'chat', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + })), _class2)) || _class; +}); define('resources/elements/em-chat-content-item',['exports', 'aurelia-framework'], function (exports, _aureliaFramework) { 'use strict'; @@ -11359,17 +11647,40 @@ define('resources/elements/em-chat-content-item',['exports', 'aurelia-framework' }; EmChatContentItem.prototype.stowHandler = function stowHandler(item) { + + if (item.isStow) { + this.unStowHandler(item); + return; + } + $.post('/admin/chat/channel/stow', { id: item.id }, function (data, textStatus, xhr) { + item.isStow = true; if (data.success) { + item.stowId = data.data.id; toastr.success('收藏消息成功!'); } else { - toastr.error(data.data, '收藏消息失败!'); + item.stowId = data.msgs && data.msgs.length > 0 ? data.msgs[0].id : ''; } }); }; + EmChatContentItem.prototype.unStowHandler = function unStowHandler(item) { + if (!item.stowId) { + return; + } + $.post('/admin/chat/channel/removeStow', { + id: item.stowId + }, function (data, textStatus, xhr) { + item.isStow = false; + item.stowId = ''; + if (data.success) { + toastr.success('移除收藏消息成功!'); + } else {} + }); + }; + EmChatContentItem.prototype.openEditHandler = function openEditHandler(item) { $.post('/admin/chat/channel/openEdit', { id: item.id, @@ -11377,16 +11688,16 @@ define('resources/elements/em-chat-content-item',['exports', 'aurelia-framework' }, function (data, textStatus, xhr) { if (data.success) { item.openEdit = !item.openEdit; - toastr.success((item.openEdit ? '开启' : '关闭') + '协作编辑成功!'); + toastr.success((item.openEdit ? '开启' : '关闭') + '\u534F\u4F5C\u7F16\u8F91\u6210\u529F!'); } else { - toastr.success((!item.openEdit ? '开启' : '关闭') + '协作编辑失败!'); + toastr.success((!item.openEdit ? '开启' : '关闭') + '\u534F\u4F5C\u7F16\u8F91\u5931\u8D25!'); } }); }; EmChatContentItem.prototype.replyHandler = function replyHandler(item) { ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, { - content: '[[回复#' + item.id + '](' + utils.getUrl() + '?id=' + item.id + '){~' + item.creator.username + '}]\n\n' + content: '[[\u56DE\u590D#' + item.id + '](' + utils.getUrl() + '?id=' + item.id + '){~' + item.creator.username + '}]\n\n' }); $.post('/admin/chat/channel/markAsReadedByChat', { @@ -11438,6 +11749,20 @@ define('resources/elements/em-chat-content-item',['exports', 'aurelia-framework' }); }; + EmChatContentItem.prototype.pinHandler = function pinHandler(item) { + $.post('/admin/chat/channel/pin/toggle', { + id: item.id, + cid: this.channel.id + }, function (data, textStatus, xhr) { + if (data.success) { + toastr.success('' + (data.code == 200 ? '固定频道消息成功!' : '解除固定频道消息成功!')); + item.isPin = data.code == 200; + } else { + toastr.error(data.data); + } + }); + }; + return EmChatContentItem; }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'chats', [_dec], { enumerable: true, @@ -11759,7 +12084,7 @@ define('resources/elements/em-chat-input',['exports', 'aurelia-framework', 'comm }, template: function template(value, term) { if (value == 'search') { - return '表情查找 - :search'; + return '\u8868\u60C5\u67E5\u627E - :search'; } var emojiKey = ':' + value + ':'; return emojify.replace(emojiKey) + ' - ' + emojiKey; @@ -11893,6 +12218,10 @@ define('resources/elements/em-chat-input',['exports', 'aurelia-framework', 'comm return false; }; + EmChatInput.prototype.togglePreviewHandler = function togglePreviewHandler() { + this.simplemde.togglePreview(); + }; + return EmChatInput; }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'chatTo', [_aureliaFramework.bindable], { enumerable: true, @@ -11998,6 +12327,10 @@ define('resources/elements/em-chat-msg-popup',['exports', 'aurelia-framework'], _this.id = payload.id; _this.target = payload.target; + if (!_this.id) { + return; + } + $(_this.target).popup({ popup: _this.popup, hoverable: true, @@ -12034,6 +12367,253 @@ define('resources/elements/em-chat-msg-popup',['exports', 'aurelia-framework'], return EmChatMsgPopup; }()) || _class; }); +define('resources/elements/em-chat-msg',['exports', 'aurelia-framework'], function (exports, _aureliaFramework) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.EmChatMsg = undefined; + + function _initDefineProp(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object['ke' + 'ys'](descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object['define' + 'Property'](target, property, desc); + desc = null; + } + + return desc; + } + + function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); + } + + var _class, _desc, _value, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5; + + var EmChatMsg = exports.EmChatMsg = (0, _aureliaFramework.containerless)(_class = (_class2 = function () { + function EmChatMsg() { + _classCallCheck(this, EmChatMsg); + + this.last = true; + + _initDefineProp(this, 'loginUser', _descriptor, this); + + _initDefineProp(this, 'isAt', _descriptor2, this); + + _initDefineProp(this, 'channel', _descriptor3, this); + + _initDefineProp(this, 'chats', _descriptor4, this); + + _initDefineProp(this, 'actived', _descriptor5, this); + + this.basePath = utils.getBasePath(); + } + + EmChatMsg.prototype.attached = function attached() { + this.initHotkeys(); + }; + + EmChatMsg.prototype.initHotkeys = function initHotkeys() { + var _this = this; + + $(document).bind('keydown', 'o', function (event) { + event.preventDefault(); + var item = _.find(_this.chats, { isHover: true }); + item && (item.isOpen = !item.isOpen); + }); + }; + + EmChatMsg.prototype.activedChanged = function activedChanged() { + if (!this.actived) { + return; + } + + var payload = this.actived.payload; + var result = payload.result; + + if (this.actived.payload.action == nsCons.ACTION_TYPE_AT) { + this.page = result; + this.chats = _.map(result.content, function (item) { + var chatChannel = item.chatChannel; + chatChannel.chatAt = item; + return chatChannel; + }); + this.last = result.last; + this.moreCnt = result.totalElements - (result.number + 1) * result.size; + } else if (this.actived.payload.action == nsCons.ACTION_TYPE_STOW) { + this.chats = payload.result; + this.last = true; + } else if (this.actived.payload.action == nsCons.ACTION_TYPE_PIN) { + this.chats = payload.result; + this.last = true; + } else if (this.actived.payload.action == nsCons.ACTION_TYPE_SEARCH) { + this.search = payload.search; + this.page = result; + this.chats = result.content; + this.last = result.last; + this.moreCnt = result.totalElements - (result.number + 1) * result.size; + } + }; + + EmChatMsg.prototype.searchItemMouseleaveHandler = function searchItemMouseleaveHandler(item) { + item.isOpen = false; + item.isHover = false; + }; + + EmChatMsg.prototype.searchItemMouseenterHandler = function searchItemMouseenterHandler(item) { + item.isHover = true; + }; + + EmChatMsg.prototype.gotoChatHandler = function gotoChatHandler(item) { + ea.publish(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, { chatItem: item }); + }; + + EmChatMsg.prototype.openSearchItemHandler = function openSearchItemHandler(item) { + item.isOpen = !item.isOpen; + }; + + EmChatMsg.prototype.searchMoreHandler = function searchMoreHandler() { + var _this2 = this; + + if (this.actived.payload.action == nsCons.ACTION_TYPE_SEARCH) { + this.searchMoreP = $.get('/admin/chat/direct/search', { + search: this.search, + size: this.page.size, + page: this.page.number + 1 + }, function (data) { + if (data.success) { + _this2.chats = _.concat(_this2.chats, data.data.content); + + _this2.page = data.data; + _this2.last = data.data.last; + _this2.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size; + } + }); + } else { + this.searchMoreP = $.get('/admin/chat/channel/getAts', { + size: this.page.size, + page: this.page.number + 1 + }, function (data) { + if (data.success) { + _this2.chats = _.concat(_this2.chats, _.map(data.data.content, function (item) { + var chatChannel = item.chatChannel; + chatChannel.chatAt = item; + return chatChannel; + })); + + _this2.page = data.data; + _this2.last = data.data.last; + _this2.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size; + } + }); + } + }; + + EmChatMsg.prototype.removePinHandler = function removePinHandler(item) { + var _this3 = this; + + $.post('/admin/chat/channel/pin/toggle', { + id: item.id, + cid: this.channel.id + }, function (data, textStatus, xhr) { + if (data.success) { + _this3.chats = _.reject(_this3.chats, { + id: item.id + }); + toastr.success('移除固定消息成功!'); + } else { + toastr.error(data.data, '移除固定消息失败!'); + } + }); + }; + + EmChatMsg.prototype.removeStowHandler = function removeStowHandler(item) { + var _this4 = this; + + $.post('/admin/chat/channel/removeStow', { + id: item.chatStow.id + }, function (data, textStatus, xhr) { + if (data.success) { + _this4.chats = _.reject(_this4.chats, { + id: item.id + }); + toastr.success('移除收藏消息成功!'); + } else { + toastr.error(data.data, '移除收藏消息失败!'); + } + }); + }; + + EmChatMsg.prototype.removeAtHandler = function removeAtHandler(item) { + var _this5 = this; + + $.post('/admin/chat/channel/markAsReaded', { + chatAtId: item.chatAt.id + }, function (data, textStatus, xhr) { + if (data.success) { + _this5.chats = _.reject(_this5.chats, { + id: item.id + }); + } else { + toastr.error(data.data, '移除@消息失败!'); + } + }); + }; + + return EmChatMsg; + }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'loginUser', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'isAt', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'channel', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, 'chats', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, 'actived', [_aureliaFramework.bindable], { + enumerable: true, + initializer: null + })), _class2)) || _class; +}); define('resources/elements/em-chat-schedule-edit',['exports', 'aurelia-framework'], function (exports, _aureliaFramework) { 'use strict'; @@ -12393,7 +12973,7 @@ define('resources/elements/em-chat-schedule-remind',['exports', 'aurelia-framewo EmChatScheduleRemind.prototype._desktopPuh = function _desktopPuh() { push.create('TMS日程提醒通知', { - body: '内容: ' + this.event.title, + body: '\u5185\u5BB9: ' + this.event.title, icon: { x16: 'img/tms-x16.ico', x32: 'img/tms-x32.png' @@ -13201,7 +13781,7 @@ define('resources/elements/em-chat-sidebar-left',['exports', 'aurelia-framework' EmChatSidebarLeft.prototype.leaveHandler = function leaveHandler(item) { this.confirmMd.show({ - content: '确定要离开频道' + item.title + '吗?', + content: '\u786E\u5B9A\u8981\u79BB\u5F00\u9891\u9053' + item.title + '\u5417?', onapprove: function onapprove() { $.post('/admin/channel/leave', { id: item.id @@ -13238,14 +13818,19 @@ define('resources/elements/em-chat-sidebar-left',['exports', 'aurelia-framework' }, function (data) { if (data.success) { item.subscriber = data.data.subscriber; - toastr.success((isSub ? '取消订阅' : '订阅频道') + '成功!'); + toastr.success((isSub ? '取消订阅' : '订阅频道') + '\u6210\u529F!'); item.isSubscribed = !isSub; } else { - toastr.error(data.data, (isSub ? '取消订阅' : '订阅频道') + '失败!'); + toastr.error(data.data, (isSub ? '取消订阅' : '订阅频道') + '\u5931\u8D25!'); } }); }; + EmChatSidebarLeft.prototype.sysLinkHandler = function sysLinkHandler(item) { + $.post('/admin/link/count/inc', { id: item.id }); + return true; + }; + return EmChatSidebarLeft; }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'users', [_aureliaFramework.bindable], { enumerable: true, @@ -13325,192 +13910,43 @@ define('resources/elements/em-chat-sidebar-right',['exports', 'aurelia-framework var EmChatSidebarRight = exports.EmChatSidebarRight = (0, _aureliaFramework.containerless)(_class = (_class2 = function () { function EmChatSidebarRight() { - var _headerMapping, + var _actionMapping, _this = this; _classCallCheck(this, EmChatSidebarRight); - this.last = true; - _initDefineProp(this, 'loginUser', _descriptor, this); _initDefineProp(this, 'isAt', _descriptor2, this); _initDefineProp(this, 'channel', _descriptor3, this); - this.forAction = ''; - this.forShow = ''; - this.basePath = utils.getBasePath(); - this.headerMapping = (_headerMapping = {}, _headerMapping[nsCons.ACTION_TYPE_SEARCH] = '无符合检索结果', _headerMapping[nsCons.ACTION_TYPE_AT] = '暂无@消息', _headerMapping[nsCons.ACTION_TYPE_STOW] = '暂无收藏消息', _headerMapping); + this.actionMapping = (_actionMapping = {}, _actionMapping[nsCons.ACTION_TYPE_DIR] = { handler: this.dirHandler, nodata: '', show: 'dir' }, _actionMapping[nsCons.ACTION_TYPE_AT] = { nodata: '暂无@消息', show: 'msg' }, _actionMapping[nsCons.ACTION_TYPE_STOW] = { nodata: '暂无收藏消息', show: 'msg' }, _actionMapping[nsCons.ACTION_TYPE_ATTACH] = { handler: this.attachHandler, nodata: '', show: 'attach' }, _actionMapping[nsCons.ACTION_TYPE_SCHEDULE] = { handler: this.scheduleHandler, nodata: '', show: 'schedule' }, _actionMapping[nsCons.ACTION_TYPE_SEARCH] = { nodata: '无符合检索结果', show: 'msg' }, _actionMapping[nsCons.ACTION_TYPE_PIN] = { nodata: '暂无频道固定消息', show: 'msg' }, _actionMapping); - this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_SEARCH_RESULT, function (payload) { - _this._mappingActionShow(payload.action); - var result = payload.result; - _this.search = payload.search; - _this.page = result; - _this.chats = result.content; - _this.last = result.last; - _this.moreCnt = result.totalElements - (result.number + 1) * result.size; - }); - - this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_AT, function (payload) { - _this._mappingActionShow(payload.action); - var result = payload.result; - _this.page = result; - _this.chats = _.map(result.content, function (item) { - var chatChannel = item.chatChannel; - chatChannel.chatAt = item; - return chatChannel; - }); - _this.last = result.last; - _this.moreCnt = result.totalElements - (result.number + 1) * result.size; - }); - - this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_STOW, function (payload) { - _this._mappingActionShow(payload.action); - _this.chats = payload.result; - _this.last = true; - }); - - this.subscribe3 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_DIR, function (payload) { - _this._mappingActionShow(payload.action); - $(_this.dirRef).empty().append(payload.result); - }); - - this.subscribe4 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_ATTACH, function (payload) { - _this._mappingActionShow(payload.action); - }); - - this.subscribe5 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_SCHEDULE, function (payload) { - _this._mappingActionShow(payload.action); + this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, function (payload) { + _this.actived = _.clone(_this.actionMapping[payload.action]); + _this.actived.payload = payload; + if (_this.actived.handler) { + _.bind(_this.actived.handler, _this, payload)(); + } }); } EmChatSidebarRight.prototype.unbind = function unbind() { - this.subscribe.dispose(); - this.subscribe1.dispose(); - this.subscribe2.dispose(); - this.subscribe3.dispose(); - this.subscribe4.dispose(); - this.subscribe5.dispose(); - }; - - EmChatSidebarRight.prototype._mappingActionShow = function _mappingActionShow(forAction) { - this.forAction = forAction; - if (_.includes([nsCons.ACTION_TYPE_SEARCH, nsCons.ACTION_TYPE_STOW, nsCons.ACTION_TYPE_AT], this.forAction)) { - this.forShow = 'chat-msg'; - } else if (_.includes([nsCons.ACTION_TYPE_DIR], this.forAction)) { - this.forShow = 'wiki-dir'; - } else if (_.includes([nsCons.ACTION_TYPE_ATTACH], this.forAction)) { - this.forShow = 'chat-attach'; - this.chatAttachVm.fetch(); - } else if (_.includes([nsCons.ACTION_TYPE_SCHEDULE], this.forAction)) { - this.forShow = 'chat-schedule'; - this.chatScheduleVm.show(); - } - }; - - EmChatSidebarRight.prototype.attached = function attached() { - this.initHotkeys(); - }; - - EmChatSidebarRight.prototype.initHotkeys = function initHotkeys() { - var _this2 = this; - - $(document).bind('keydown', 'o', function (event) { - event.preventDefault(); - var item = _.find(_this2.chats, { isHover: true }); - item && (item.isOpen = !item.isOpen); - }); }; - EmChatSidebarRight.prototype.searchItemMouseleaveHandler = function searchItemMouseleaveHandler(item) { - item.isOpen = false; - item.isHover = false; - }; - - EmChatSidebarRight.prototype.searchItemMouseenterHandler = function searchItemMouseenterHandler(item) { - item.isHover = true; - }; - - EmChatSidebarRight.prototype.gotoChatHandler = function gotoChatHandler(item) { - ea.publish(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, { chatItem: item }); - }; - - EmChatSidebarRight.prototype.openSearchItemHandler = function openSearchItemHandler(item) { - item.isOpen = !item.isOpen; - }; - - EmChatSidebarRight.prototype.searchMoreHandler = function searchMoreHandler() { - var _this3 = this; - - if (this.forAction == nsCons.ACTION_TYPE_SEARCH) { - this.searchMoreP = $.get('/admin/chat/direct/search', { - search: this.search, - size: this.page.size, - page: this.page.number + 1 - }, function (data) { - if (data.success) { - _this3.chats = _.concat(_this3.chats, data.data.content); - - _this3.page = data.data; - _this3.last = data.data.last; - _this3.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size; - } - }); - } else { - this.searchMoreP = $.get('/admin/chat/channel/getAts', { - size: this.page.size, - page: this.page.number + 1 - }, function (data) { - if (data.success) { - _this3.chats = _.concat(_this3.chats, _.map(data.data.content, function (item) { - var chatChannel = item.chatChannel; - chatChannel.chatAt = item; - return chatChannel; - })); - - _this3.page = data.data; - _this3.last = data.data.last; - _this3.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size; - } - }); - } + EmChatSidebarRight.prototype.attachHandler = function attachHandler(payload) { + this.chatAttachVm.fetch(); }; - EmChatSidebarRight.prototype.removeStowHandler = function removeStowHandler(item) { - var _this4 = this; - - $.post('/admin/chat/channel/removeStow', { - id: item.chatStow.id - }, function (data, textStatus, xhr) { - if (data.success) { - _this4.chats = _.reject(_this4.chats, { - id: item.id - }); - toastr.success('移除收藏消息成功!'); - } else { - toastr.error(data.data, '移除收藏消息失败!'); - } - }); + EmChatSidebarRight.prototype.dirHandler = function dirHandler(payload) { + $(this.dirRef).empty().append(payload.result); }; - EmChatSidebarRight.prototype.removeAtHandler = function removeAtHandler(item) { - var _this5 = this; - - $.post('/admin/chat/channel/markAsReaded', { - chatAtId: item.chatAt.id - }, function (data, textStatus, xhr) { - if (data.success) { - _this5.chats = _.reject(_this5.chats, { - id: item.id - }); - } else { - toastr.error(data.data, '移除@消息失败!'); - } - }); + EmChatSidebarRight.prototype.scheduleHandler = function scheduleHandler(payload) { + this.chatScheduleVm.show(); }; return EmChatSidebarRight; @@ -13743,6 +14179,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f this.activeType = ''; this.ACTION_TYPE_SEARCH = nsCons.ACTION_TYPE_SEARCH; this.ACTION_TYPE_STOW = nsCons.ACTION_TYPE_STOW; + this.ACTION_TYPE_PIN = nsCons.ACTION_TYPE_PIN; this.ACTION_TYPE_AT = nsCons.ACTION_TYPE_AT; this.ACTION_TYPE_DIR = nsCons.ACTION_TYPE_DIR; this.ACTION_TYPE_ATTACH = nsCons.ACTION_TYPE_ATTACH; @@ -13755,7 +14192,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f _this2.dir = payload.dir; if (_this2.activeType == _this2.ACTION_TYPE_DIR && _this2.isRightSidebarShow) { - ea.publish(nsCons.EVENT_CHAT_SHOW_DIR, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: _this2.activeType, result: _this2.dir }); @@ -13865,7 +14302,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f if (data.success) { _this4.toggleRightSidebar(true); - ea.publish(nsCons.EVENT_CHAT_SEARCH_RESULT, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: _this4.activeType, result: data.data, search: _this4.search @@ -13965,7 +14402,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f chatChannel.chatStow = item; return chatChannel; }); - ea.publish(nsCons.EVENT_CHAT_SHOW_STOW, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: _this7.activeType, result: _.reverse(stowChats) }); @@ -13991,7 +14428,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f size: 20 }, function (data) { if (data.success) { - ea.publish(nsCons.EVENT_CHAT_SHOW_AT, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: _this8.activeType, result: data.data }); @@ -14016,7 +14453,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f } this.activeType = nsCons.ACTION_TYPE_DIR; - ea.publish(nsCons.EVENT_CHAT_SHOW_DIR, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: this.activeType, result: this.dir }); @@ -14031,7 +14468,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f } this.activeType = nsCons.ACTION_TYPE_ATTACH; - ea.publish(nsCons.EVENT_CHAT_SHOW_ATTACH, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: this.activeType }); this.toggleRightSidebar(true); @@ -14045,7 +14482,7 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f } this.activeType = nsCons.ACTION_TYPE_SCHEDULE; - ea.publish(nsCons.EVENT_CHAT_SHOW_SCHEDULE, { + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { action: this.activeType }); this.toggleRightSidebar(true); @@ -14137,7 +14574,40 @@ define('resources/elements/em-chat-top-menu',['exports', 'aurelia-framework'], f EmChatTopMenu.prototype.openChannelLinkHandler = function openChannelLinkHandler(event, item) { event.stopImmediatePropagation(); + $(this.channelLinksDdRef).dropdown('hide'); utils.openNewWin(item.href); + $.post('/admin/link/count/inc', { id: item.id }); + }; + + EmChatTopMenu.prototype.showPinHandler = function showPinHandler(event) { + var _this9 = this; + + event.stopImmediatePropagation(); + if (this.isRightSidebarShow && this.activeType == nsCons.ACTION_TYPE_PIN && !event.ctrlKey) { + this.toggleRightSidebar(); + return; + } + + this.activeType = nsCons.ACTION_TYPE_PIN; + + this.ajaxPin = $.get('/admin/chat/channel/pin/list', { + cid: this.channel.id + }, function (data) { + if (data.success) { + var pinChats = _.map(data.data, function (item) { + var chatChannel = item.chatChannel; + chatChannel.chatPin = item; + return chatChannel; + }); + ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, { + action: _this9.activeType, + result: _.reverse(pinChats) + }); + _this9.toggleRightSidebar(true); + } else { + toastr.error(data.data, '获取频道固定消息失败!'); + } + }); }; return EmChatTopMenu; @@ -14843,7 +15313,7 @@ define('resources/elements/em-user-avatar',['exports', 'aurelia-framework', 'col }; EmUserAvatar.prototype._calcNameChar = function _calcNameChar() { - var lastChar = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; + var lastChar = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; if (this.user.name) { this.nameChar = lastChar ? _.last(this.user.name) : _.first(this.user.name); @@ -16896,6 +17366,30 @@ define('aurelia-templating-resources/css-resource',['exports', 'aurelia-templati return ViewCSS; } }); +define('aurelia-templating-resources/attr-binding-behavior',['exports', 'aurelia-binding'], function (exports, _aureliaBinding) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.AttrBindingBehavior = undefined; + + + + var AttrBindingBehavior = exports.AttrBindingBehavior = function () { + function AttrBindingBehavior() { + + } + + AttrBindingBehavior.prototype.bind = function bind(binding, source) { + binding.targetObserver = new _aureliaBinding.DataAttributeObserver(binding.target, binding.targetProperty); + }; + + AttrBindingBehavior.prototype.unbind = function unbind(binding, source) {}; + + return AttrBindingBehavior; + }(); +}); define('aurelia-templating-resources/binding-mode-behaviors',['exports', 'aurelia-binding', 'aurelia-metadata'], function (exports, _aureliaBinding, _aureliaMetadata) { 'use strict'; @@ -20209,6 +20703,32 @@ define('highlight/lib/languages/ceylon',['require','exports','module'],function }; }); +define('highlight/lib/languages/clean',['require','exports','module'],function (require, exports, module) {module.exports = function(hljs) { + return { + aliases: ['clean','icl','dcl'], + keywords: { + keyword: + 'if let in with where case of class instance otherwise ' + + 'implementation definition system module from import qualified as ' + + 'special code inline foreign export ccall stdcall generic derive ' + + 'infix infixl infixr', + literal: + 'True False' + }, + contains: [ + + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + hljs.C_NUMBER_MODE, + + {begin: '->|<-[|:]?|::|#!?|>>=|\\{\\||\\|\\}|:==|=:|\\.\\.|<>|`'} // relevance booster + ] + }; +}; +}); + define('highlight/lib/languages/clojure',['require','exports','module'],function (require, exports, module) {module.exports = function(hljs) { var keywords = { 'builtin-name': @@ -22906,6 +23426,52 @@ define('highlight/lib/languages/fix',['require','exports','module'],function (re }; }); +define('highlight/lib/languages/flix',['require','exports','module'],function (require, exports, module) {module.exports = function (hljs) { + + var CHAR = { + className: 'string', + begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/ + }; + + var STRING = { + className: 'string', + variants: [ + { + begin: '"', end: '"' + } + ] + }; + + var NAME = { + className: 'title', + begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/ + }; + + var METHOD = { + className: 'function', + beginKeywords: 'def', + end: /[:={\[(\n;]/, + excludeEnd: true, + contains: [NAME] + }; + + return { + keywords: { + literal: 'true false', + keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with' + }, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + CHAR, + STRING, + METHOD, + hljs.C_NUMBER_MODE + ] + }; +}; +}); + define('highlight/lib/languages/fortran',['require','exports','module'],function (require, exports, module) {module.exports = function(hljs) { var PARAMS = { className: 'params', @@ -23527,7 +24093,7 @@ define('highlight/lib/languages/glsl',['require','exports','module'],function (r keywords: { keyword: // Statements - 'break continue discard do else for if return while' + + 'break continue discard do else for if return while switch case default ' + // Qualifiers 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' + 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' + @@ -24120,57 +24686,111 @@ define('highlight/lib/languages/haxe',['require','exports','module'],function (r var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*'; var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)'; + var HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array '; + return { aliases: ['hx'], keywords: { - keyword: 'break callback case cast catch class continue default do dynamic else enum extends extern ' + - 'for function here if implements import in inline interface never new override package private ' + - 'public return static super switch this throw trace try typedef untyped using var while', - literal: 'true false null' + keyword: 'break callback case cast catch continue default do dynamic else enum extern ' + + 'for function here if import in inline never new override package private get set ' + + 'public return static super switch this throw trace try typedef untyped using var while ' + + HAXE_BASIC_TYPES, + built_in: + 'trace this', + literal: + 'true false null _' }, contains: [ - hljs.APOS_STRING_MODE, + { className: 'string', // interpolate-able strings + begin: '\'', end: '\'', + contains: [ + hljs.BACKSLASH_ESCAPE, + { className: 'subst', // interpolation + begin: '\\$\\{', end: '\\}' + }, + { className: 'subst', // interpolation + begin: '\\$', end: '\\W}' + } + ] + }, hljs.QUOTE_STRING_MODE, hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, hljs.C_NUMBER_MODE, - { - className: 'class', - beginKeywords: 'class interface', end: '{', excludeEnd: true, - contains: [ - { - beginKeywords: 'extends implements' - }, - hljs.TITLE_MODE - ] + { className: 'meta', // compiler meta + begin: '@:', end: '$' }, - { - className: 'meta', + { className: 'meta', // compiler conditionals begin: '#', end: '$', keywords: {'meta-keyword': 'if else elseif end error'} }, - { - className: 'function', - beginKeywords: 'function', end: '[{;]', excludeEnd: true, - illegal: '\\S', + { className: 'type', // function types + begin: ':[ \t]*', end: '[^A-Za-z0-9_ \t\\->]', + excludeBegin: true, excludeEnd: true, + relevance: 0 + }, + { className: 'type', // types + begin: ':[ \t]*', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', // instantiation + begin: 'new *', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'class', // enums + beginKeywords: 'enum', end: '\\{', contains: [ - hljs.TITLE_MODE, - { - className: 'params', + hljs.TITLE_MODE + ] + }, + { className: 'class', // abstracts + beginKeywords: 'abstract', end: '[\\{$]', + contains: [ + { className: 'type', begin: '\\(', end: '\\)', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', + begin: 'from +', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + { className: 'type', + begin: 'to +', end: '\\W', + excludeBegin: true, excludeEnd: true + }, + hljs.TITLE_MODE + ], + keywords: { + keyword: 'abstract from to' + } + }, + { className: 'class', // classes + begin: '\\b(class|interface) +', end: '[\\{$]', excludeEnd: true, + keywords: 'class interface', + contains: [ + { className: 'keyword', + begin: '\\b(extends|implements) +', + keywords: 'extends implements', contains: [ - hljs.APOS_STRING_MODE, - hljs.QUOTE_STRING_MODE, - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE + { + className: 'type', + begin: hljs.IDENT_RE, + relevance: 0 + } ] }, - { - begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE - } + hljs.TITLE_MODE + ] + }, + { className: 'function', + beginKeywords: 'function', end: '\\(', excludeEnd: true, + illegal: '\\S', + contains: [ + hljs.TITLE_MODE ] } - ] + ], + illegal: /<\// }; }; }); @@ -24539,13 +25159,14 @@ define('highlight/lib/languages/irpf90',['require','exports','module'],function }); define('highlight/lib/languages/java',['require','exports','module'],function (require, exports, module) {module.exports = function(hljs) { - var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<' + hljs.UNDERSCORE_IDENT_RE + '(\\s*,\\s*' + hljs.UNDERSCORE_IDENT_RE + ')*>)?'; + var JAVA_IDENT_RE = '[\u00C0-\u02B8a-zA-Z_$][\u00C0-\u02B8a-zA-Z_$0-9]*'; + var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\s*,\\s*' + JAVA_IDENT_RE + ')*>)?'; var KEYWORDS = 'false synchronized int abstract float private char boolean static null if const ' + 'for true while long strictfp finally protected import native final void ' + 'enum else break transient catch instanceof byte super volatile case assert short ' + 'package default double public try this switch continue throws protected public private ' + - 'module requires exports'; + 'module requires exports do'; // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html var JAVA_NUMBER_RE = '\\b' + @@ -27685,65 +28306,86 @@ define('highlight/lib/languages/nix',['require','exports','module'],function (re define('highlight/lib/languages/nsis',['require','exports','module'],function (require, exports, module) {module.exports = function(hljs) { var CONSTANTS = { className: 'variable', - begin: '\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)' + begin: /\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/ }; var DEFINES = { // ${defines} className: 'variable', - begin: '\\$+{[a-zA-Z0-9_]+}' + begin: /\$+{[\w\.:-]+}/ }; var VARIABLES = { // $variables className: 'variable', - begin: '\\$+[a-zA-Z0-9_]+', - illegal: '\\(\\){}' + begin: /\$+\w+/, + illegal: /\(\){}/ }; var LANGUAGES = { // $(language_strings) className: 'variable', - begin: '\\$+\\([a-zA-Z0-9_]+\\)' + begin: /\$+\([\w\^\.:-]+\)/ }; var PARAMETERS = { // command parameters - className: 'built_in', + className: 'params', begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)' }; - var COMPILER ={ + var COMPILER = { // !compiler_flags className: 'keyword', - begin: '\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)' + begin: /\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)/ + }; + + var METACHARS = { + // $\n, $\r, $\t, $$ + className: 'subst', + begin: /\$(\\[nrt]|\$)/ + }; + + var PLUGINS = { + // plug::ins + className: 'class', + begin: /\w+\:\:\w+/ + }; + + var STRING = { + className: 'string', + variants: [ + { + begin: '"', end: '"' + }, + { + begin: '\'', end: '\'' + }, + { + begin: '`', end: '`' + } + ], + illegal: /\n/, + contains: [ + METACHARS, + CONSTANTS, + DEFINES, + VARIABLES, + LANGUAGES + ] }; return { case_insensitive: false, keywords: { keyword: - 'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle', + 'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle', literal: - 'admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user ' + 'admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib' }, contains: [ hljs.HASH_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE, - { - className: 'string', - begin: '"', end: '"', - illegal: '\\n', - contains: [ - { // $\n, $\r, $\t, $$ - begin: '\\$(\\\\(n|r|t)|\\$)' - }, - CONSTANTS, - DEFINES, - VARIABLES, - LANGUAGES - ] - }, hljs.COMMENT( ';', '$', @@ -27753,17 +28395,16 @@ define('highlight/lib/languages/nsis',['require','exports','module'],function (r ), { className: 'function', - beginKeywords: 'Function PageEx Section SectionGroup SubSection', end: '$' + beginKeywords: 'Function PageEx Section SectionGroup', end: '$' }, + STRING, COMPILER, DEFINES, VARIABLES, LANGUAGES, PARAMETERS, - hljs.NUMBER_MODE, - { // plug::ins - begin: hljs.IDENT_RE + '::' + hljs.IDENT_RE - } + PLUGINS, + hljs.NUMBER_MODE ] }; }; @@ -28450,7 +29091,7 @@ define('highlight/lib/languages/powershell',['require','exports','module'],funct case_insensitive: true, keywords: { keyword: 'if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch', - built_in: 'Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning', + built_in: 'Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Add-MDTPersistentDrive Disable-MDTMonitorService Enable-MDTMonitorService Get-MDTDeploymentShareStatistics Get-MDTMonitorData Get-MDTOperatingSystemCatalog Get-MDTPersistentDrive Import-MDTApplication Import-MDTDriver Import-MDTOperatingSystem Import-MDTPackage Import-MDTTaskSequence New-MDTDatabase Remove-MDTMonitorData Remove-MDTPersistentDrive Restore-MDTPersistentDrive Set-MDTMonitorData Test-MDTDeploymentShare Test-MDTMonitorData Update-MDTDatabaseSchema Update-MDTDeploymentShare Update-MDTLinkedDS Update-MDTMedia Update-MDTMedia Add-VamtProductKey Export-VamtData Find-VamtManagedMachine Get-VamtConfirmationId Get-VamtProduct Get-VamtProductKey Import-VamtData Initialize-VamtData Install-VamtConfirmationId Install-VamtProductActivation Install-VamtProductKey Update-VamtProduct', nomarkup: '-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace' }, contains: [ @@ -28906,7 +29547,7 @@ define('highlight/lib/languages/python',['require','exports','module'],function built_in: 'Ellipsis NotImplemented' }, - illegal: /(<\/|->|\?)/, + illegal: /(<\/|->|\?)|=>/, contains: [ PROMPT, NUMBER, @@ -28914,7 +29555,7 @@ define('highlight/lib/languages/python',['require','exports','module'],function hljs.HASH_COMMENT_MODE, { variants: [ - {className: 'function', beginKeywords: 'def', relevance: 10}, + {className: 'function', beginKeywords: 'def'}, {className: 'class', beginKeywords: 'class'} ], end: /:/, @@ -31406,7 +32047,7 @@ define('highlight/lib/languages/swift',['require','exports','module'],function ( var TYPE = { className: 'type', - begin: '\\b[A-Z][\\w\']*', + begin: '\\b[A-Z][\\w\u00C0-\u02B8\']*', relevance: 0 }; var BLOCK_COMMENT = hljs.COMMENT( @@ -31473,7 +32114,7 @@ define('highlight/lib/languages/swift',['require','exports','module'],function ( end: '\\{', excludeEnd: true, contains: [ - hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}) + hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}) ] }, { @@ -32905,6 +33546,34 @@ define('highlight/lib/languages/zephir',['require','exports','module'],function }; }); +define('common/common-tags',['exports'], function (exports) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.default = [{ + label: '待处理', + value: '待处理', + color: 'green', + type: 'tag' + }, { + label: '进行中', + value: '进行中', + color: 'yellow', + type: 'tag' + }, { + label: '已完成', + value: '已完成', + color: 'blue', + type: 'tag' + }, { + label: '已验收', + value: '已验收', + color: 'grey', + type: 'tag' + }]; +}); define('text!app.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!blog/blog.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!app.css', ['module'], function(module) { module.exports = "html,\nbody {\n height: 100%;\n overflow: hidden;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n::-webkit-scrollbar-thumb {\n border-radius: 6px;\n background-color: #c6c6c6;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #999;\n}\n@media only screen and (min-width: 768px) {\n .ui.modal.tms-md450 {\n width: 450px!important;\n margin-left: -225px !important;\n }\n .ui.modal.tms-md510 {\n width: 510px!important;\n margin-left: -255px !important;\n }\n .ui.modal.tms-md540 {\n width: 540px!important;\n margin-left: -275px !important;\n }\n}\n/* for swipebox */\n#swipebox-overlay {\n background: rgba(13, 13, 13, 0.5) !important;\n}\n.keyboard {\n background: #fff;\n font-weight: 700;\n padding: 2px .35rem;\n font-size: .8rem;\n margin: 0 2px;\n border-radius: .25rem;\n color: #3d3c40;\n border-bottom: 2px solid #9e9ea6;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);\n text-shadow: none;\n}\n#nprogress .spinner {\n display: none!important;\n}\n.tms-dropzone-preview-hidden .dz-preview {\n display: none!important;\n}\n"; }); @@ -32915,12 +33584,12 @@ define('text!override.css', ['module'], function(module) { module.exports = ".ui define('text!blog/blog.css', ['module'], function(module) { module.exports = ""; }); define('text!user/user-login.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!user/user-pwd-reset.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!chat/chat-direct.css', ['module'], function(module) { module.exports = ".tms-chat-direct {\n height: 100%;\n}\n.tms-chat-direct .ui.comments {\n min-height: calc(100% - 170px);\n}\n.tms-chat-direct .ui.comments > .comment > .content {\n display: block!important;\n}\n.tms-chat-direct .tms-edit-textarea {\n width: 100%;\n}\n.tms-chat-direct .ui.selection.list > .item {\n cursor: default;\n}\n.tms-chat-direct .ui.search .prompt {\n border-radius: .28571429rem;\n}\n.tms-chat-direct .tms-content {\n position: relative;\n margin-left: 220px;\n top: 60px;\n height: calc(100% - 60px);\n}\n.tms-chat-direct .tms-content.tms-sidebar-show .tms-right-sidebar {\n width: 388px;\n border-left: 1px #e9e9e9 solid;\n -webkit-transition: width 0.15s ease-out 0s;\n transition: width 0.15s ease-out 0s;\n margin: 4px;\n margin-right: 0;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-content {\n margin-left: 0;\n }\n}\n.tms-chat-direct .tms-content .tms-content-body {\n width: 100%;\n height: 100%;\n max-width: 100%;\n padding-bottom: 73px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-comments-container {\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments {\n overflow: hidden;\n max-width: none;\n margin-bottom: 12px;\n margin-top: 10px;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments > .ui.basic.button {\n display: block;\n margin-right: 0;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-pre-more {\n margin-bottom: 10px;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-next-more {\n margin-top: 10px;\n position: relative;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-next-more .ui.icon.button {\n position: absolute;\n top: 2px;\n right: -1px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go {\n position: fixed;\n left: 240px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go .ui.button:hover {\n background-color: #CACBCD;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-content .tms-content-body .tms-go {\n left: 20px;\n }\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go-head {\n top: 80px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go-foot {\n bottom: 90px;\n}\n.tms-chat-direct .tms-right-sidebar {\n position: absolute;\n top: 0;\n right: 0;\n width: 0;\n bottom: 0;\n overflow: hidden;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.tms-chat-direct .tms-right-sidebar .comments .ui.button.tms-search-more {\n display: block;\n margin: 0;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .markdown-body {\n max-height: 65px;\n overflow-y: hidden;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .markdown-body.tms-open {\n max-height: none;\n overflow-y: auto;\n padding-bottom: 20px;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .tms-btn-open-search-item {\n display: none;\n height: 25px;\n background-color: rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n text-align: center;\n padding-top: 2px;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment:hover .tms-btn-open-search-item {\n display: block;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-left-sidebar {\n display: none;\n }\n .tms-chat-direct .tms-right-sidebar {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 59px;\n background-color: white;\n margin-left: 0!important;\n }\n .tms-chat-direct .tms-right-sidebar .panel-chat-msg .ui.basic.segment.minimal.selection.list.segment.comments {\n padding-left: 0;\n padding-right: 0;\n }\n .tms-chat-direct .tms-sidebar-show .tms-right-sidebar {\n width: 100%!important;\n }\n}\n.tms-chat-direct .tms-edit-actions .left.button {\n border-top-left-radius: 0;\n}\n.tms-chat-direct .tms-edit-actions .right.button {\n border-top-right-radius: 0;\n}\n.tms-chat-progress {\n position: absolute;\n display: inline-block;\n top: 60px;\n left: 0;\n width: 0;\n height: 2px;\n margin-left: 220px;\n background-color: #c6c6c6;\n box-shadow: 0px 0px 8px 0px #c6c6c6;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-progress {\n margin-left: 0;\n }\n}\n"; }); +define('text!chat/chat-direct.css', ['module'], function(module) { module.exports = ".tms-chat-direct {\n height: 100%;\n}\n.tms-chat-direct .ui.comments {\n min-height: calc(100% - 170px);\n}\n.tms-chat-direct .ui.comments > .comment > .content {\n display: block!important;\n}\n.tms-chat-direct .tms-edit-textarea {\n width: 100%;\n}\n.tms-chat-direct .ui.selection.list > .item {\n cursor: default;\n}\n.tms-chat-direct .ui.search .prompt {\n border-radius: .28571429rem;\n}\n.tms-chat-direct .tms-content {\n position: relative;\n margin-left: 220px;\n top: 60px;\n height: calc(100% - 60px);\n}\n.tms-chat-direct .tms-content.tms-sidebar-show .tms-right-sidebar {\n width: 388px;\n border-left: 1px #e9e9e9 solid;\n -webkit-transition: width 0.15s ease-out 0s;\n transition: width 0.15s ease-out 0s;\n margin: 4px;\n margin-right: 0;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-content {\n margin-left: 0;\n }\n}\n.tms-chat-direct .tms-content .tms-content-body {\n width: 100%;\n height: 100%;\n max-width: 100%;\n padding-bottom: 73px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-comments-container {\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments {\n overflow: hidden;\n max-width: none;\n margin-bottom: 12px;\n margin-top: 10px;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments > .ui.basic.button {\n display: block;\n margin-right: 0;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-pre-more {\n margin-bottom: 10px;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-next-more {\n margin-top: 10px;\n position: relative;\n}\n.tms-chat-direct .tms-content .tms-content-body .ui.comments .tms-next-more .ui.icon.button {\n position: absolute;\n top: 2px;\n right: -1px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go {\n position: fixed;\n left: 240px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go .ui.button:hover {\n background-color: #CACBCD;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-content .tms-content-body .tms-go {\n left: 20px;\n }\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go-head {\n top: 80px;\n}\n.tms-chat-direct .tms-content .tms-content-body .tms-go-foot {\n bottom: 90px;\n}\n.tms-chat-direct .tms-right-sidebar {\n position: absolute;\n top: 0;\n right: 0;\n width: 0;\n bottom: 0;\n overflow: hidden;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.tms-chat-direct .tms-right-sidebar .comments .ui.button.tms-search-more {\n display: block;\n margin: 0;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .markdown-body {\n max-height: 65px;\n overflow-y: hidden;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .markdown-body.tms-open {\n max-height: none;\n overflow-y: auto;\n padding-bottom: 20px;\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment .tms-btn-open-search-item {\n display: none;\n height: 25px;\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n text-align: center;\n padding-top: 2px;\n background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\n background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\n background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\n background-image: linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\n}\n.tms-chat-direct .tms-right-sidebar .comments .comment:hover .tms-btn-open-search-item {\n display: block;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-direct .tms-left-sidebar {\n display: none;\n }\n .tms-chat-direct .tms-right-sidebar {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 59px;\n background-color: white;\n margin-left: 0!important;\n }\n .tms-chat-direct .tms-right-sidebar .panel-chat-msg .ui.basic.segment.minimal.selection.list.segment.comments {\n padding-left: 0;\n padding-right: 0;\n }\n .tms-chat-direct .tms-sidebar-show .tms-right-sidebar {\n width: 100%!important;\n }\n}\n.tms-chat-direct .tms-edit-actions .left.button {\n border-top-left-radius: 0;\n}\n.tms-chat-direct .tms-edit-actions .right.button {\n border-top-right-radius: 0;\n}\n.tms-chat-progress {\n position: absolute;\n display: inline-block;\n top: 60px;\n left: 0;\n width: 0;\n height: 2px;\n margin-left: 220px;\n background-color: #c6c6c6;\n box-shadow: 0px 0px 8px 0px #c6c6c6;\n}\n@media only screen and (max-width: 767px) {\n .tms-chat-progress {\n margin-left: 0;\n }\n}\n"; }); define('text!user/user-register.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!chat/md-github.css', ['module'], function(module) { module.exports = ".markdown-body {\n font-size: 14px;\n line-height: 1.6;\n}\n.markdown-body > br,\n.markdown-body ul br .markdown-body ol br {\n display: none;\n}\n.markdown-body > *:first-child {\n margin-top: 0 !important;\n}\n.markdown-body > *:last-child {\n margin-bottom: 0 !important;\n}\n.markdown-body a {\n word-break: break-all;\n}\n.markdown-body a.absent {\n color: #CC0000;\n}\n.markdown-body a.anchor {\n bottom: 0;\n cursor: pointer;\n display: block;\n left: 0;\n margin-left: -30px;\n padding-left: 30px;\n position: absolute;\n top: 0;\n}\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n cursor: text;\n font-weight: bold;\n margin: 20px 0 10px;\n padding: 0;\n position: relative;\n word-break: break-all;\n}\n.markdown-body h1 .mini-icon-link,\n.markdown-body h2 .mini-icon-link,\n.markdown-body h3 .mini-icon-link,\n.markdown-body h4 .mini-icon-link,\n.markdown-body h5 .mini-icon-link,\n.markdown-body h6 .mini-icon-link {\n color: #000000;\n display: none;\n}\n.markdown-body h1:hover a.anchor,\n.markdown-body h2:hover a.anchor,\n.markdown-body h3:hover a.anchor,\n.markdown-body h4:hover a.anchor,\n.markdown-body h5:hover a.anchor,\n.markdown-body h6:hover a.anchor {\n line-height: 1;\n margin-left: -22px;\n padding-left: 0;\n text-decoration: none;\n top: 15%;\n}\n.markdown-body h1:hover a.anchor .mini-icon-link,\n.markdown-body h2:hover a.anchor .mini-icon-link,\n.markdown-body h3:hover a.anchor .mini-icon-link,\n.markdown-body h4:hover a.anchor .mini-icon-link,\n.markdown-body h5:hover a.anchor .mini-icon-link,\n.markdown-body h6:hover a.anchor .mini-icon-link {\n display: inline-block;\n}\n.markdown-body h1 tt,\n.markdown-body h1 code,\n.markdown-body h2 tt,\n.markdown-body h2 code,\n.markdown-body h3 tt,\n.markdown-body h3 code,\n.markdown-body h4 tt,\n.markdown-body h4 code,\n.markdown-body h5 tt,\n.markdown-body h5 code,\n.markdown-body h6 tt,\n.markdown-body h6 code {\n font-size: inherit;\n}\n.markdown-body h1 {\n color: #000000;\n font-size: 28px;\n}\n.markdown-body h2 {\n border-bottom: 1px solid #CCCCCC;\n color: #000000;\n font-size: 24px;\n}\n.markdown-body h3 {\n font-size: 18px;\n}\n.markdown-body h4 {\n font-size: 16px;\n}\n.markdown-body h5 {\n font-size: 14px;\n}\n.markdown-body h6 {\n color: #777777;\n font-size: 14px;\n}\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n margin: 15px 0;\n}\n.markdown-body hr {\n overflow: hidden;\n background: 0 0;\n}\n.markdown-body hr:before {\n display: table;\n content: \"\";\n}\n.markdown-body hr:after {\n display: table;\n clear: both;\n content: \"\";\n}\n.markdown-body hr {\n height: 4px;\n padding: 0;\n margin: 16px 0;\n background-color: #e7e7e7;\n border: 0;\n}\n.markdown-body hr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n.markdown-body > h2:first-child,\n.markdown-body > h1:first-child,\n.markdown-body > h1:first-child + h2,\n.markdown-body > h3:first-child,\n.markdown-body > h4:first-child,\n.markdown-body > h5:first-child,\n.markdown-body > h6:first-child {\n margin-top: 0;\n padding-top: 0;\n}\n.markdown-body a:first-child h1,\n.markdown-body a:first-child h2,\n.markdown-body a:first-child h3,\n.markdown-body a:first-child h4,\n.markdown-body a:first-child h5,\n.markdown-body a:first-child h6 {\n margin-top: 0;\n padding-top: 0;\n}\n.markdown-body h1 + p,\n.markdown-body h2 + p,\n.markdown-body h3 + p,\n.markdown-body h4 + p,\n.markdown-body h5 + p,\n.markdown-body h6 + p {\n margin-top: 0;\n}\n.markdown-body li p.first {\n display: inline-block;\n}\n.markdown-body ul,\n.markdown-body ol {\n padding-left: 30px;\n}\n.markdown-body ul.no-list,\n.markdown-body ol.no-list {\n list-style-type: none;\n padding: 0;\n}\n.markdown-body ul li > *:first-child,\n.markdown-body ol li > *:first-child {\n margin-top: 0;\n}\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n margin-bottom: 0;\n}\n.markdown-body dl {\n padding: 0;\n}\n.markdown-body dl dt {\n font-size: 14px;\n font-style: italic;\n font-weight: bold;\n margin: 15px 0 5px;\n padding: 0;\n}\n.markdown-body dl dt:first-child {\n padding: 0;\n}\n.markdown-body dl dt > *:first-child {\n margin-top: 0;\n}\n.markdown-body dl dt > *:last-child {\n margin-bottom: 0;\n}\n.markdown-body dl dd {\n margin: 0 0 15px;\n padding: 0 15px;\n}\n.markdown-body dl dd > *:first-child {\n margin-top: 0;\n}\n.markdown-body dl dd > *:last-child {\n margin-bottom: 0;\n}\n.markdown-body blockquote {\n border-left: 4px solid #DDDDDD;\n color: #777777;\n padding: 0 15px;\n}\n.markdown-body blockquote > *:first-child {\n margin-top: 0;\n}\n.markdown-body blockquote > *:last-child {\n margin-bottom: 0;\n}\n.markdown-body table th {\n font-weight: bold;\n}\n.markdown-body table th,\n.markdown-body table td {\n border: 1px solid #CCCCCC;\n padding: 6px 13px;\n}\n.markdown-body table tr {\n background-color: #FFFFFF;\n border-top: 1px solid #CCCCCC;\n}\n.markdown-body table tr:nth-child(2n) {\n background-color: #F8F8F8;\n}\n.markdown-body img {\n max-width: 100%;\n}\n.markdown-body span.frame {\n display: block;\n overflow: hidden;\n}\n.markdown-body span.frame > span {\n border: 1px solid #DDDDDD;\n display: block;\n float: left;\n margin: 13px 0 0;\n overflow: hidden;\n padding: 7px;\n width: auto;\n}\n.markdown-body span.frame span img {\n display: block;\n float: left;\n}\n.markdown-body span.frame span span {\n clear: both;\n color: #333333;\n display: block;\n padding: 5px 0 0;\n}\n.markdown-body span.align-center {\n clear: both;\n display: block;\n overflow: hidden;\n}\n.markdown-body span.align-center > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: center;\n}\n.markdown-body span.align-center span img {\n margin: 0 auto;\n text-align: center;\n}\n.markdown-body span.align-right {\n clear: both;\n display: block;\n overflow: hidden;\n}\n.markdown-body span.align-right > span {\n display: block;\n margin: 13px 0 0;\n overflow: hidden;\n text-align: right;\n}\n.markdown-body span.align-right span img {\n margin: 0;\n text-align: right;\n}\n.markdown-body span.float-left {\n display: block;\n float: left;\n margin-right: 13px;\n overflow: hidden;\n}\n.markdown-body span.float-left span {\n margin: 13px 0 0;\n}\n.markdown-body span.float-right {\n display: block;\n float: right;\n margin-left: 13px;\n overflow: hidden;\n}\n.markdown-body span.float-right > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: right;\n}\n.markdown-body code,\n.markdown-body tt {\n background-color: #F8F8F8;\n border: 1px solid #EAEAEA;\n border-radius: 3px 3px 3px 3px;\n margin: 0 2px;\n padding: 0 5px;\n /* white-space: nowrap; */\n white-space: normal;\n word-break: break-all;\n}\n.markdown-body pre > code {\n background: none repeat scroll 0 0 transparent;\n border: medium none;\n margin: 0;\n padding: 0;\n white-space: pre;\n}\n.markdown-body .highlight pre,\n.markdown-body pre {\n background-color: #F8F8F8;\n border: 1px solid #CCCCCC;\n border-radius: 3px 3px 3px 3px;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n}\n.markdown-body pre code,\n.markdown-body pre tt {\n background-color: transparent;\n border: medium none;\n}\n"; }); -define('text!resources/elements/em-blog-comment-popup.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-comment-popup.html', ['module'], function(module) { module.exports = "\n"; }); define('text!common/common-scrollbar.css', ['module'], function(module) { module.exports = "/*************** SCROLLBAR BASE CSS ***************/\n.scroll-wrapper {\n overflow: hidden !important;\n padding: 0 !important;\n position: relative;\n width: 100%;\n height: 100%;\n}\n.scroll-wrapper > .scroll-content {\n border: none !important;\n box-sizing: content-box !important;\n height: auto;\n left: 0;\n margin: 0;\n max-height: none;\n max-width: none !important;\n overflow: scroll !important;\n padding: 0;\n position: relative !important;\n top: 0;\n width: auto !important;\n}\n.scroll-wrapper > .scroll-content::-webkit-scrollbar {\n height: 0;\n width: 0;\n}\n.scroll-element {\n display: none;\n}\n.scroll-element,\n.scroll-element div {\n box-sizing: content-box;\n}\n.scroll-element.scroll-x.scroll-scrollx_visible,\n.scroll-element.scroll-y.scroll-scrolly_visible {\n display: block;\n}\n.scroll-element .scroll-bar,\n.scroll-element .scroll-arrow {\n cursor: default;\n}\n.scroll-textarea {\n border: 1px solid #cccccc;\n border-top-color: #999999;\n}\n.scroll-textarea > .scroll-content {\n overflow: hidden !important;\n}\n.scroll-textarea > .scroll-content > textarea {\n border: none !important;\n box-sizing: border-box;\n height: 100% !important;\n margin: 0;\n max-height: none !important;\n max-width: none !important;\n overflow: scroll !important;\n outline: none;\n padding: 2px;\n position: relative !important;\n top: 0;\n width: 100% !important;\n}\n.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {\n height: 0;\n width: 0;\n}\n/*************** SIMPLE OUTER SCROLLBAR ***************/\n.scrollbar-outer > .scroll-element,\n.scrollbar-outer > .scroll-element div {\n border: none;\n margin: 0;\n padding: 0;\n position: absolute;\n z-index: 10;\n}\n.scrollbar-outer > .scroll-element {\n background-color: #ffffff;\n}\n.scrollbar-outer > .scroll-element div {\n display: block;\n height: 100%;\n left: 0;\n top: 0;\n width: 100%;\n}\n.scrollbar-outer > .scroll-element.scroll-x {\n bottom: 0;\n height: 12px;\n left: 0;\n width: 100%;\n}\n.scrollbar-outer > .scroll-element.scroll-y {\n height: 100%;\n right: 0;\n top: 0;\n width: 12px;\n}\n.scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer {\n height: 8px;\n top: 2px;\n}\n.scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer {\n left: 2px;\n width: 8px;\n}\n.scrollbar-outer > .scroll-element .scroll-element_outer {\n overflow: hidden;\n}\n.scrollbar-outer > .scroll-element .scroll-element_track {\n background-color: #eeeeee;\n}\n.scrollbar-outer > .scroll-element .scroll-element_outer,\n.scrollbar-outer > .scroll-element .scroll-element_track,\n.scrollbar-outer > .scroll-element .scroll-bar {\n -webkit-border-radius: 8px;\n -moz-border-radius: 8px;\n border-radius: 8px;\n}\n.scrollbar-outer > .scroll-element .scroll-bar {\n background-color: #d9d9d9;\n}\n.scrollbar-outer > .scroll-element .scroll-bar:hover {\n background-color: #c2c2c2;\n}\n.scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar {\n background-color: #919191;\n}\n/* scrollbar height/width & offset from container borders */\n.scrollbar-outer > .scroll-content.scroll-scrolly_visible {\n left: -12px;\n margin-left: 12px;\n}\n.scrollbar-outer > .scroll-content.scroll-scrollx_visible {\n top: -12px;\n margin-top: 12px;\n}\n.scrollbar-outer > .scroll-element.scroll-x .scroll-bar {\n min-width: 10px;\n}\n.scrollbar-outer > .scroll-element.scroll-y .scroll-bar {\n min-height: 10px;\n}\n/* update scrollbar offset if both scrolls are visible */\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {\n left: -14px;\n}\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {\n top: -14px;\n}\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\n left: -14px;\n}\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\n top: -14px;\n}\n/*************** SCROLLBAR MAC OS X ***************/\n.scrollbar-macosx > .scroll-element,\n.scrollbar-macosx > .scroll-element div {\n background: none;\n border: none;\n margin: 0;\n padding: 0;\n position: absolute;\n z-index: 10;\n}\n.scrollbar-macosx > .scroll-element div {\n display: block;\n height: 100%;\n left: 0;\n top: 0;\n width: 100%;\n}\n.scrollbar-macosx > .scroll-element .scroll-element_track {\n display: none;\n}\n.scrollbar-macosx > .scroll-element .scroll-bar {\n background-color: #6C6E71;\n display: block;\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\n filter: alpha(opacity=0);\n opacity: 0;\n -webkit-border-radius: 7px;\n -moz-border-radius: 7px;\n border-radius: 7px;\n -webkit-transition: opacity 0.2s linear;\n -moz-transition: opacity 0.2s linear;\n -o-transition: opacity 0.2s linear;\n -ms-transition: opacity 0.2s linear;\n transition: opacity 0.2s linear;\n}\n.scrollbar-macosx:hover > .scroll-element .scroll-bar,\n.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar {\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\n filter: alpha(opacity=70);\n opacity: 0.7;\n}\n.scrollbar-macosx > .scroll-element.scroll-x {\n bottom: 0px;\n height: 0px;\n left: 0;\n min-width: 100%;\n overflow: visible;\n width: 100%;\n}\n.scrollbar-macosx > .scroll-element.scroll-y {\n height: 100%;\n min-height: 100%;\n right: 0px;\n top: 0;\n width: 0px;\n}\n/* scrollbar height/width & offset from container borders */\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar {\n height: 7px;\n min-width: 10px;\n top: -9px;\n}\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar {\n left: -9px;\n min-height: 10px;\n width: 7px;\n}\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer {\n left: 2px;\n}\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size {\n left: -4px;\n}\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer {\n top: 2px;\n}\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size {\n top: -4px;\n}\n/* update scrollbar offset if both scrolls are visible */\n.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\n left: -11px;\n}\n.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\n top: -11px;\n}\n"; }); -define('text!resources/elements/em-blog-comment-share.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-comment-share.html', ['module'], function(module) { module.exports = "\n"; }); define('text!user/user-login.css', ['module'], function(module) { module.exports = ".tms-user-login {\n width: 100%;\n min-height: 100%;\n background-color: #5a3636;\n overflow: hidden;\n}\n.tms-user-login .container {\n width: 300px;\n top: 50px;\n margin-left: auto;\n margin-right: auto;\n position: relative;\n}\n.tms-user-login h2 {\n color: rgba(197, 164, 164, 0.8) !important;\n}\n.tms-user-login .ui.form {\n background-color: #353131;\n}\n.tms-user-login .ui.error.message {\n background-color: #5a3636;\n}\n.tms-user-login .ui.error.message .header {\n color: #e0b4b4;\n}\n.tms-user-login .ui.checkbox label {\n color: #ad8b8b;\n}\n.tms-user-login .ui.checkbox input:focus ~ label {\n color: #ad8b8b;\n}\n.tms-user-login .ui.checkbox label:hover {\n color: #ad8b8b;\n}\n.tms-user-login .ui.button {\n background-color: #5a3636;\n color: #ad8b75;\n}\n"; }); define('text!resources/elements/em-blog-comment.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!user/user-pwd-reset.css', ['module'], function(module) { module.exports = ".tms-user-pwd-reset {\n height: 100%;\n}\n.tms-user-pwd-reset .tms-flex {\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n"; }); @@ -32928,72 +33597,76 @@ define('text!resources/elements/em-blog-content.html', ['module'], function(modu define('text!user/user-register.css', ['module'], function(module) { module.exports = ".tms-user-register {\n height: 100%;\n}\n.tms-user-register .tms-flex {\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n"; }); define('text!resources/elements/em-blog-comment-popup.css', ['module'], function(module) { module.exports = ""; }); define('text!resources/elements/em-blog-history-diff.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-blog-history-view.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-history-view.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-comment-share.css', ['module'], function(module) { module.exports = ".em-blog-comment-share.ui.popup {\n max-width: 100%;\n width: 255px;\n}\n.em-blog-comment-share.ui.popup .ui.input {\n width: 225px;\n}\n.em-blog-comment-share.ui.popup textarea {\n /* width: 195px!important; */\n}\n.em-blog-comment-share.ui.popup .ui.search > .results .result {\n cursor: pointer!important;\n display: block!important;\n color: rgba(0, 0, 0, 0.87) !important;\n border-bottom: 1px solid rgba(34, 36, 38, 0.1) !important;\n margin: 0!important;\n}\n.em-blog-comment-share.ui.popup .ui.list > .item {\n color: rgba(0, 0, 0, 0.87);\n}\n.em-blog-comment-share:after {\n content: '';\n clear: both;\n}\n.em-blog-comment-share .footer {\n margin-top: 16px;\n}\n.em-blog-comment-share .footer .btn-cancel {\n float: right;\n margin: 6px 0 0 8px!important;\n}\n"; }); -define('text!resources/elements/em-blog-history.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-blog-comment.css', ['module'], function(module) { module.exports = ".em-blog-comment {\n margin-top: 32px;\n margin-bottom: 32px;\n}\n.em-blog-comment .ui.comments {\n max-width: 100%;\n}\n.em-blog-comment .ui.comments > .ui.dividing.header {\n margin-bottom: 0;\n}\n.em-blog-comment .ui.comments .comment {\n margin-top: 0;\n}\n.em-blog-comment .ui.comments .comment:hover {\n background: rgba(0, 0, 0, 0.03);\n color: rgba(0, 0, 0, 0.8);\n}\n.em-blog-comment .ui.comments .comment:hover .content .tools {\n display: block;\n}\n.em-blog-comment .ui.comments .comment:hover:before {\n width: 4px;\n}\n.em-blog-comment .ui.comments .comment > .ui.divider {\n margin-bottom: 0;\n}\n.em-blog-comment .ui.comments .comment .content .tms-blog-comment-edit-textarea {\n width: 100%;\n}\n.em-blog-comment .ui.comments .comment .content .textcomplete-container {\n position: relative;\n}\n.em-blog-comment .ui.comments .comment .content .textcomplete-container .append-to {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.em-blog-comment .ui.comments .comment .content > .tools {\n position: absolute;\n right: 0;\n bottom: 0;\n display: none;\n}\n.em-blog-comment .ui.comments .comment .content > .tools > .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.em-blog-comment .ui.comments .comment .content > .tools > .ui.button:hover {\n background-color: #e0e1e2;\n}\n.em-blog-comment .ui.comments .comment.active {\n background-color: #f5f5f5;\n}\n.em-blog-comment .ui.comments .comment.active:before {\n width: 4px;\n}\n.em-blog-comment .ui.comments .comment:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: -2px;\n left: -4px;\n bottom: 1px;\n background: #2098D1;\n width: 0;\n -webkit-transition-property: width;\n transition-property: width;\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s;\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n.em-blog-comment .ui.comments .comment:nth-child(2):before {\n top: -1px;\n}\n.em-blog-comment .CodeMirror {\n min-height: 60px;\n}\n.em-blog-comment .CodeMirror-scroll {\n min-height: 60px;\n}\n.em-blog-comment .dropzone {\n position: relative;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper {\n position: relative;\n width: 100%;\n height: 0;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .tms-blog-comment-status-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews {\n position: absolute;\n left: 0;\n bottom: -7px;\n width: 100%;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview {\n width: 100%;\n margin: 0;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview .dz-progress {\n height: 2px;\n background-color: #aaa;\n border: none;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview .dz-remove {\n display: none;\n}\n"; }); -define('text!resources/elements/em-blog-left-sidebar.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-history.html', ['module'], function(module) { module.exports = "\n"; }); +define('text!resources/elements/em-blog-comment.css', ['module'], function(module) { module.exports = ".em-blog-comment {\n margin-top: 32px;\n margin-bottom: 32px;\n}\n.em-blog-comment .ui.comments {\n max-width: 100%;\n}\n.em-blog-comment .ui.comments > .ui.dividing.header {\n margin-bottom: 0;\n}\n.em-blog-comment .ui.comments .comment {\n margin-top: 0;\n}\n.em-blog-comment .ui.comments .comment:hover {\n background: rgba(0, 0, 0, 0.03);\n color: rgba(0, 0, 0, 0.8);\n}\n.em-blog-comment .ui.comments .comment:hover .content .tools {\n display: block;\n}\n.em-blog-comment .ui.comments .comment:hover:before {\n width: 4px;\n}\n.em-blog-comment .ui.comments .comment > .ui.divider {\n margin-bottom: 0;\n}\n@media only screen and (min-width: 768px) {\n .em-blog-comment .ui.comments .comment .content .markdown-body img {\n max-width: 360px;\n max-height: 360px;\n }\n}\n.em-blog-comment .ui.comments .comment .content .tms-blog-comment-edit-textarea {\n width: 100%;\n}\n.em-blog-comment .ui.comments .comment .content .textcomplete-container {\n position: relative;\n}\n.em-blog-comment .ui.comments .comment .content .textcomplete-container .append-to {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.em-blog-comment .ui.comments .comment .content > .tools {\n position: absolute;\n right: 0;\n bottom: 0;\n display: none;\n}\n.em-blog-comment .ui.comments .comment .content > .tools > .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.em-blog-comment .ui.comments .comment .content > .tools > .ui.button:hover {\n background-color: #e0e1e2;\n}\n.em-blog-comment .ui.comments .comment.active {\n background-color: #f5f5f5;\n}\n.em-blog-comment .ui.comments .comment.active:before {\n width: 4px;\n}\n.em-blog-comment .ui.comments .comment:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: -2px;\n left: -4px;\n bottom: 1px;\n background: #2098D1;\n width: 0;\n -webkit-transition-property: width;\n transition-property: width;\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s;\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n.em-blog-comment .ui.comments .comment:nth-child(2):before {\n top: -1px;\n}\n.em-blog-comment .CodeMirror {\n min-height: 60px;\n}\n.em-blog-comment .CodeMirror-scroll {\n min-height: 60px;\n}\n.em-blog-comment .dropzone {\n position: relative;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper {\n position: relative;\n width: 100%;\n height: 0;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .tms-blog-comment-status-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews {\n position: absolute;\n left: 0;\n bottom: -7px;\n width: 100%;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview {\n width: 100%;\n margin: 0;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview .dz-progress {\n height: 2px;\n background-color: #aaa;\n border: none;\n}\n.em-blog-comment .dropzone .tms-blog-comment-status-bar-wrapper .dropzone-previews .dz-preview .dz-remove {\n display: none;\n}\n"; }); +define('text!resources/elements/em-blog-left-sidebar.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-blog-content.css', ['module'], function(module) { module.exports = ".em-blog-content {\n transition: width 0.15s ease-out 0s;\n position: fixed;\n top: 55px;\n left: 300px;\n width: calc(100% - 300px) !important;\n height: calc(100% - 55px) !important;\n padding: 16px;\n overflow: auto;\n}\n.right-sidebar-show .em-blog-content {\n width: calc(100% - 600px) !important;\n}\n@media only screen and (max-width: 767px) {\n .right-sidebar-show .em-blog-content {\n width: 100%!important;\n }\n}\n@media only screen and (max-width: 767px) {\n .em-blog-content {\n left: 0;\n width: 100%!important;\n }\n}\n.em-blog-content > .header {\n margin-bottom: 24px;\n}\n.em-blog-content > .header .ui.header .sub.header {\n color: #707070;\n font-size: 12px;\n margin-top: 8px;\n}\n.em-blog-content > .header .ui.header .sub.header a.author {\n cursor: pointer;\n}\n.em-blog-content > .header .ui.header .sub.header .readCnt {\n cursor: pointer;\n margin-left: 16px;\n}\n.em-blog-content > .header .ui.header .sub.header .readCnt a {\n cursor: pointer;\n}\n.em-blog-content > .header .ui.header .sub.header .commentCnt {\n cursor: pointer;\n margin-left: 16px;\n}\n.em-blog-content > .header .ui.header .sub.header .commentCnt a {\n cursor: pointer;\n}\n.em-blog-content .topbar {\n position: relative;\n height: 30px;\n margin-bottom: 8px;\n}\n.em-blog-content .topbar > .ui.breadcrumb {\n line-height: 30px;\n}\n.em-blog-content .topbar:after {\n content: '';\n clear: both;\n}\n.em-blog-content .topbar .actions {\n float: right;\n}\n.em-blog-content .topbar .actions > .ui.basic.button {\n padding: 8px;\n box-shadow: none;\n}\n.em-blog-content .topbar .actions > .ui.basic.button:hover {\n box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.35) inset, 0 0 0 0 rgba(34, 36, 38, 0.15) inset;\n}\n.em-blog-content .topbar .actions > .ui.basic.button > i.icon {\n margin-right: 2px;\n}\n.em-blog-content .topbar .actions > .ui.basic.button > i.icon.hide {\n position: relative;\n top: -1px;\n}\n.em-blog-content .topbar .actions > .ui.basic.button > i.icon.unhide {\n position: relative;\n top: -1px;\n}\n.em-blog-content > .ui.message .content > span {\n display: inline-block;\n margin-top: 10px;\n}\n.em-blog-content > .ui.message .content .ui.button {\n position: relative;\n top: -5px;\n left: 10px;\n}\n.em-blog-content .footer {\n margin-top: 16px;\n}\n.em-blog-content .footer > span {\n font-size: 12px;\n}\n.em-blog-content .footer .rate {\n margin-right: 16px;\n cursor: pointer;\n color: #4183c4;\n}\n.em-blog-content .footer > .tags {\n float: right;\n}\n.em-blog-content .footer > .tags .ui.selection.dropdown {\n border: none;\n}\n.em-blog-content .footer > .tags .ui.selection.dropdown:hover {\n box-shadow: 0 0px 1px 0px #2185d0;\n}\n.em-blog-content .footer:after {\n content: '';\n clear: both;\n display: block;\n}\n.em-blog-content > .ui.feed {\n margin-bottom: 25px!important;\n}\n.em-blog-content > .ui.feed > .event {\n position: relative;\n}\n.em-blog-content > .ui.feed > .event.opened > .content .extra.text:hover {\n max-height: none;\n overflow-y: auto;\n padding-bottom: 25px;\n}\n.em-blog-content > .ui.feed > .event > .label + .content {\n max-width: calc(100% - 50px);\n}\n.em-blog-content > .ui.feed > .event > .content .extra.text {\n position: relative;\n max-width: none;\n min-height: 25px;\n max-height: 60px;\n overflow-y: hidden;\n}\n.em-blog-content > .ui.feed > .event > .content .extra.text:hover > .btn-open {\n display: block;\n}\n.em-blog-content > .ui.feed > .event > .content .extra.text > .btn-open {\n display: none;\n height: 25px;\n background-color: rgba(0, 0, 0, 0.1);\n position: absolute;\n bottom: 0;\n right: 0;\n left: 0;\n text-align: center;\n padding-top: 2px;\n}\n.em-blog-content > .ui.feed > .event > .content .extra.text pre {\n white-space: pre-wrap;\n white-space: -moz-pre-wrap;\n white-space: -pre-wrap;\n white-space: -o-pre-wrap;\n word-wrap: break-word;\n word-break: break-all;\n}\n.em-blog-content > .ui.feed > .event.active {\n background: rgba(0, 0, 0, 0.03);\n}\n.em-blog-content > .ui.feed > .event.active:before {\n width: 4px;\n}\n.em-blog-content > .ui.feed > .event:hover {\n background: rgba(0, 0, 0, 0.03);\n}\n.em-blog-content > .ui.feed > .event:hover:before {\n width: 4px;\n}\n.em-blog-content > .ui.feed > .event:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -4px;\n bottom: 0;\n background: #2098D1;\n width: 0;\n -webkit-transition-property: width;\n transition-property: width;\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s;\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n.tms-blog-progress {\n position: absolute;\n display: inline-block;\n top: 55px;\n left: 0;\n width: 0;\n height: 2px;\n margin-left: 300px;\n background-color: #2185d0;\n box-shadow: 0px 0px 8px 0px #205081;\n}\n@media only screen and (max-width: 767px) {\n .tms-blog-progress {\n margin-left: 0;\n }\n}\n.em-blog-content-wrapper {\n position: fixed;\n top: 55px;\n width: calc(100vw) !important;\n height: calc(100% - 55px) !important;\n}\n@media only screen and (max-width: 767px) {\n .tms-blog.left-sidebar-show .em-blog-content-wrapper > .ui.dimmer {\n display: block;\n opacity: 1;\n }\n .tms-blog.right-sidebar-show .em-blog-content-wrapper > .ui.dimmer {\n display: block;\n opacity: 1;\n }\n .tms-blog .em-blog-content-wrapper > .ui.dimmer {\n display: none;\n }\n}\n"; }); -define('text!resources/elements/em-blog-right-sidebar.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-right-sidebar.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-history-diff.css', ['module'], function(module) { module.exports = ".em-blog-history-diff > .content {\n max-height: 300px;\n overflow-y: auto;\n}\n"; }); define('text!resources/elements/em-blog-save.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-blog-history-view.css', ['module'], function(module) { module.exports = ".em-blog-history-view > .topbar {\n margin-bottom: 16px;\n}\n.em-blog-history-view > .content {\n max-height: 300px;\n overflow-y: auto;\n}\n"; }); define('text!resources/elements/em-blog-share.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-blog-history.css', ['module'], function(module) { module.exports = ".em-blog-history > .topbar {\n margin-bottom: 16px;\n}\n.em-blog-history > .content {\n max-height: 300px;\n overflow-y: auto;\n}\n.em-blog-history .ui.table td a {\n cursor: pointer;\n}\n"; }); define('text!resources/elements/em-blog-space-auth.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-blog-left-sidebar.css', ['module'], function(module) { module.exports = ".em-blog-left-sidebar.ui.left.sidebar {\n transition: left 0.15s ease-out 0s;\n width: 300px;\n top: 55px;\n left: 0;\n height: calc(100% - 55px) !important;\n background-color: #f5f5f5;\n box-shadow: none!important;\n}\n@media only screen and (max-width: 767px) {\n .em-blog-left-sidebar.ui.left.sidebar {\n z-index: 104;\n }\n .em-blog-left-sidebar.ui.left.sidebar.mobile-hide {\n left: -300px;\n }\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body {\n height: calc(100% - 40px) !important;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list {\n padding: 16px;\n padding-left: 15px;\n margin-bottom: 0px;\n padding-bottom: 8px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item {\n position: relative;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item:hover {\n box-shadow: 0px 0px 2px -1px #5791cb;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item:hover > .actions {\n display: inline-block;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .icon {\n padding-right: 0;\n position: relative;\n top: -1px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .content {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 245px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .actions {\n display: none;\n position: absolute;\n right: 0;\n top: -2px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list {\n padding-left: 16px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item {\n max-width: 220px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item > a {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 220px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item:before {\n color: #999;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.active {\n font-weight: bold;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.active > a {\n color: black;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item:hover {\n background-color: rgba(232, 224, 224, 0.5);\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.aurelia-hide {\n display: none!important;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space {\n padding: 20px;\n margin-top: 0px;\n padding-top: 0px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item {\n padding-top: 5px;\n padding-bottom: 5px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item > a {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 242px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item:before {\n color: #999;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item.active {\n font-weight: bold;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item.active > a {\n color: black;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item:hover {\n background-color: rgba(232, 224, 224, 0.5);\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer {\n position: absolute;\n width: 100%;\n height: 40px;\n left: 0;\n bottom: 0;\n background-color: #efe4e4;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu {\n border: none;\n border-radius: 0;\n background-color: #e8e0e0;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search {\n position: relative;\n height: 40px;\n max-width: 207px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search:before {\n width: 0;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search > .remove.icon {\n position: absolute;\n right: 5px;\n top: 13px;\n}\n"; }); -define('text!resources/elements/em-blog-space-create.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-left-sidebar.css', ['module'], function(module) { module.exports = ".em-blog-left-sidebar.ui.left.sidebar {\n transition: left 0.15s ease-out 0s;\n width: 300px;\n top: 55px;\n left: 0;\n height: calc(100% - 55px) !important;\n background-color: #f5f5f5;\n box-shadow: none!important;\n overflow-x: hidden;\n}\n@media only screen and (max-width: 767px) {\n .em-blog-left-sidebar.ui.left.sidebar {\n z-index: 104;\n }\n .em-blog-left-sidebar.ui.left.sidebar.mobile-hide {\n left: -300px;\n }\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body {\n height: calc(100% - 40px) !important;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list {\n padding: 16px;\n padding-left: 15px;\n margin-bottom: 0px;\n padding-bottom: 8px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item {\n position: relative;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item:hover {\n box-shadow: 0px 0px 2px -1px #5791cb;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item:hover > .actions {\n display: inline-block;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .icon {\n padding-right: 0;\n position: relative;\n top: -1px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .content {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 245px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list > .item > .actions {\n display: none;\n position: absolute;\n right: 0;\n top: -2px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list {\n padding-left: 16px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item {\n max-width: 220px;\n padding-top: 5px;\n padding-bottom: 5px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item > a {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 220px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item:before {\n color: #999;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.active {\n font-weight: bold;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.active > a {\n color: black;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item:hover {\n background-color: rgba(232, 224, 224, 0.5);\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.space.list .ui.bulleted.list > div.item.aurelia-hide {\n display: none!important;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space {\n padding: 20px;\n margin-top: 0px;\n padding-top: 0px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item {\n padding-top: 5px;\n padding-bottom: 5px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item > a {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 242px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item:before {\n color: #999;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item.active {\n font-weight: bold;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item.active > a {\n color: black;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-body .ui.bulleted.list.no-space > div.item:hover {\n background-color: rgba(232, 224, 224, 0.5);\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer {\n position: absolute;\n width: 100%;\n height: 40px;\n left: 0;\n bottom: 0;\n background-color: #efe4e4;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu {\n border: none;\n border-radius: 0;\n background-color: #e8e0e0;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search {\n position: relative;\n height: 40px;\n max-width: 207px;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search:before {\n width: 0;\n}\n.em-blog-left-sidebar.ui.left.sidebar .tms-footer .ui.menu > .item.tms-search > .remove.icon {\n position: absolute;\n right: 5px;\n top: 13px;\n}\n"; }); +define('text!resources/elements/em-blog-space-create.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-right-sidebar.css', ['module'], function(module) { module.exports = ".em-blog-right-sidebar {\n width: 300px;\n background-color: #f5f5f5;\n position: fixed;\n top: 55px;\n right: -300px;\n height: calc(100% - 55px);\n transition: right 0.15s ease-out 0s;\n}\n.right-sidebar-show .em-blog-right-sidebar {\n right: 0;\n}\n.em-blog-right-sidebar .panel-blog-dir {\n padding: 16px;\n}\n.em-blog-right-sidebar .panel-blog-dir .wiki-dir-item.active {\n background-color: #e8e0e0;\n}\n"; }); define('text!resources/elements/em-blog-save.css', ['module'], function(module) { module.exports = ""; }); -define('text!resources/elements/em-blog-space-edit.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-blog-share.css', ['module'], function(module) { module.exports = ".em-blog-share.ui.popup {\n max-width: 100%;\n width: 255px;\n}\n.em-blog-share.ui.popup .ui.input {\n width: 225px;\n}\n.em-blog-share:after {\n content: '';\n clear: both;\n}\n.em-blog-share .footer {\n margin-top: 16px;\n}\n.em-blog-share .footer .btn-cancel {\n float: right;\n margin-top: 6px;\n margin-left: 8px;\n}\n"; }); +define('text!resources/elements/em-blog-space-edit.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-space-update.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-blog-space-auth.css', ['module'], function(module) { module.exports = ".em-blog-space-auth > .ui.form {\n margin-bottom: 16px;\n}\n.em-blog-space-auth .tms-header {\n margin-bottom: 8px;\n}\n.em-blog-space-auth .ui.search .prompt {\n border-radius: .28571429rem;\n}\n"; }); +define('text!resources/elements/em-blog-share.css', ['module'], function(module) { module.exports = ".em-blog-share.ui.popup {\n max-width: 100%;\n width: 255px;\n}\n.em-blog-share.ui.popup .ui.input {\n width: 225px;\n}\n.em-blog-share:after {\n content: '';\n clear: both;\n}\n.em-blog-share .footer {\n margin-top: 16px;\n}\n.em-blog-share .footer .btn-cancel {\n float: right;\n margin-top: 6px;\n margin-left: 8px;\n}\n"; }); define('text!resources/elements/em-blog-top-menu.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-blog-space-auth.css', ['module'], function(module) { module.exports = ".em-blog-space-auth > .ui.form {\n margin-bottom: 16px;\n}\n.em-blog-space-auth .tms-header {\n margin-bottom: 8px;\n}\n.em-blog-space-auth .ui.search .prompt {\n border-radius: .28571429rem;\n}\n"; }); +define('text!resources/elements/em-blog-write.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-space-create.css', ['module'], function(module) { module.exports = ".em-blog-space-create.ui.popup .ui.form {\n width: 260px;\n}\n"; }); define('text!resources/elements/em-blog-space-edit.css', ['module'], function(module) { module.exports = ""; }); -define('text!resources/elements/em-blog-write.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-attach.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-space-update.css', ['module'], function(module) { module.exports = ""; }); -define('text!resources/elements/em-chat-attach.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-channel-create.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-chat-channel-edit.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-channel-edit.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-blog-top-menu.css', ['module'], function(module) { module.exports = ".em-blog-top-menu.ui.inverted.blue.menu {\n background-color: #205081;\n height: 55px;\n z-index: 103;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .item.tms-toggle {\n display: none;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .item.tms-toggle i.icon {\n margin-right: 0;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .item.tms-links i.icon {\n margin-right: 0;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .right.menu .item .ui.icon.input input {\n background-color: #103a65;\n color: white;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .right.menu .item .ui.icon.input input:focus {\n border-color: rgba(34, 36, 38, 0.15);\n box-shadow: none;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .right.menu .item .ui.icon.input i.icon.search:before {\n color: #a3aab0;\n}\n.em-blog-top-menu.ui.inverted.blue.menu .right.menu .item .ui.search > .results {\n max-height: 350px;\n overflow-y: auto;\n left: -150px;\n}\n@media only screen and (max-width: 767px) {\n .em-blog-top-menu.ui.inverted.blue.menu .item.tms-links {\n display: none;\n }\n .em-blog-top-menu.ui.inverted.blue.menu .item.tms-logo {\n display: none;\n }\n .em-blog-top-menu.ui.inverted.blue.menu .item.header {\n display: none;\n }\n .em-blog-top-menu.ui.inverted.blue.menu .item.tms-toggle {\n display: flex;\n }\n .em-blog-top-menu.ui.inverted.blue.menu .right.menu .item .ui.search .ui.input {\n width: 100px;\n }\n .em-blog-top-menu.ui.inverted.blue.menu.search-focus .tms-logo {\n display: none;\n }\n .em-blog-top-menu.ui.inverted.blue.menu.search-focus .tms-create {\n display: none;\n }\n .em-blog-top-menu.ui.inverted.blue.menu.search-focus .right.menu .item .ui.search .ui.input {\n width: initial;\n transition: width 0.15s ease-out 0s;\n }\n .em-blog-top-menu.ui.inverted.blue.menu.search-focus .right.menu .tms-login-user {\n display: none;\n }\n}\n"; }); define('text!resources/elements/em-chat-channel-join.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-blog-write.css', ['module'], function(module) { module.exports = "@media only screen and (max-width: 827px) {\n .modaal-wrapper .modaal-close {\n top: initial!important;\n bottom: 10px;\n z-index: 2;\n }\n}\n.em-blog-write {\n margin-top: -30px;\n margin-bottom: 20px;\n}\n.em-blog-write > .wrapper {\n max-width: 768px;\n margin: auto;\n}\n.em-blog-write > .wrapper > .title {\n position: fixed;\n z-index: 2;\n margin-bottom: 8px;\n width: calc(100% - 60px);\n background-color: white;\n padding-top: 18px;\n box-shadow: 0px 1px 0px 0px #dddddd;\n}\n@media only screen and (min-width: 828px) {\n .em-blog-write > .wrapper > .title {\n width: 768px;\n }\n}\n.em-blog-write > .wrapper > .title > .ui.input {\n padding-right: 80px;\n}\n.em-blog-write > .wrapper > .title > .ui.button {\n position: absolute;\n right: 0;\n top: 15px;\n}\n.em-blog-write > .wrapper > .content {\n padding-top: 60px;\n}\n.em-blog-write > .wrapper > .content .editor-toolbar.fullscreen {\n z-index: 800;\n}\n.em-blog-write .dropzone {\n position: relative;\n}\n.em-blog-write .dropzone .dropzone-previews {\n position: absolute;\n top: 48px;\n width: 100%;\n}\n.em-blog-write .dropzone .dropzone-previews .dz-preview {\n width: 100%;\n margin: 0;\n}\n.em-blog-write .dropzone .dropzone-previews .dz-preview .dz-progress {\n height: 2px;\n background-color: #aaa;\n border: none;\n}\n.em-blog-write .dropzone .dropzone-previews .dz-preview .dz-remove {\n display: none;\n}\n.em-blog-write .tms-blog-write-status-bar-wrapper {\n position: fixed;\n z-index: 800;\n height: 0;\n top: 120px;\n width: calc(100% - 60px);\n}\n@media only screen and (min-width: 828px) {\n .em-blog-write .tms-blog-write-status-bar-wrapper {\n width: 768px;\n }\n}\n.em-blog-write .tms-blog-write-status-bar-wrapper .tms-blog-write-status-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n}\n"; }); -define('text!resources/elements/em-chat-channel-link-mgr.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-channel-link-mgr.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-attach.css', ['module'], function(module) { module.exports = ".em-chat-attach.ui.basic.segment {\n margin-bottom: 0;\n padding-top: 0;\n}\n.em-chat-attach .ui.basic.button {\n display: block;\n margin-right: 0;\n}\n.em-chat-attach .ui.list .description {\n font-size: 12px;\n margin-top: 3px;\n}\n.em-chat-attach.ui.menu {\n margin-top: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.em-chat-attach.ui.menu > .item {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: block!important;\n text-align: center;\n}\n.em-chat-attach.tms-attach-search-input {\n padding: 0 10px;\n}\n"; }); define('text!resources/elements/em-chat-channel-members-mgr.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-channel-create.css', ['module'], function(module) { module.exports = ".tms-em-chat-channel-create .tms-join {\n max-height: 315px;\n overflow-y: auto;\n}\n.tms-em-chat-channel-create .ui.form > .field > label {\n width: 35px!important;\n}\n"; }); define('text!resources/elements/em-chat-channel-members-show.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-channel-link-mgr.css', ['module'], function(module) { module.exports = "@media only screen and (min-width: 768px) {\n .tms-em-chat-channel-link-mgr .ui.form .one.wide.field {\n padding: 0;\n }\n}\n"; }); -define('text!resources/elements/em-chat-content-item.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-content-item-footbar.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-channel-members-mgr.css', ['module'], function(module) { module.exports = ".tms-em-chat-channel-members-mgr .ui.dropdown span.owner + i.delete.icon {\n display: none;\n}\n.tms-em-chat-channel-members-mgr .ui.dropdown span.disabled-user {\n text-decoration: line-through;\n font-style: italic;\n}\n.tms-em-chat-channel-members-mgr .member-table {\n max-height: 315px;\n overflow-y: auto;\n}\n"; }); -define('text!resources/elements/em-chat-input.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-content-item.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-channel-members-show.css', ['module'], function(module) { module.exports = ".em-chat-channel-members-show {\n max-height: 300px;\n overflow-y: auto;\n}\n"; }); +define('text!resources/elements/em-chat-input.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-content-item-footbar.css', ['module'], function(module) { module.exports = ".em-chat-content-item-footbar {\n margin-top: 8px;\n padding-top: 8px;\n padding-left: 50px;\n}\n.em-chat-content-item-footbar .add-btn {\n display: none;\n color: #586069;\n}\n.em-chat-content-item-footbar .add-btn.none {\n position: absolute;\n bottom: 0;\n}\n.em-chat-content-item-footbar .add-emoji-btn.none {\n left: 8px;\n}\n.em-chat-content-item-footbar .add-tag-btn.none {\n left: 45px;\n}\n.em-chat-content-item-footbar > .ui.label {\n cursor: pointer;\n}\n.em-chat-content-item-footbar .emoji-item {\n margin-right: 8px;\n}\n.em-chat-content-item-footbar .emoji-item img {\n cursor: pointer;\n}\n.em-chat-content-item-footbar .emoji-item:last-child {\n margin-right: 0;\n}\n.em-chat-content-item-footbar .ui.popup.tags > .content {\n width: 265px;\n}\n.em-chat-content-item-footbar .ui.popup.tags > .content > .ui.input {\n width: 20px;\n}\n.em-chat-content-item-footbar .ui.popup.tags.customTag > .content > .ui.label {\n display: none;\n}\n.em-chat-content-item-footbar .ui.popup.tags.customTag > .content > .ui.input {\n width: 265px;\n}\n"; }); define('text!resources/elements/em-chat-member-popup.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-chat-content-item.css', ['module'], function(module) { module.exports = ".em-chat-content-item .textcomplete-container {\n position: relative;\n}\n.em-chat-content-item .textcomplete-container .append-to {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.ui.comments .em-chat-content-item.comment > .avatar ~ .content {\n margin-left: 3em;\n}\n.ui.comments .em-chat-content-item.comment .actions > a {\n margin-right: 5px;\n}\n.ui.comments .em-chat-content-item.comment .actions .dropdown > a .ellipsis.icon {\n margin-right: 0;\n}\n.ui.comments .em-chat-content-item.comment .actions .dropdown .item.tms-red {\n color: red;\n}\n.ui.comments .em-chat-content-item.comment:hover .tools {\n display: block;\n}\n.ui.comments .em-chat-content-item.comment:hover:before {\n width: 4px;\n}\n.ui.comments .em-chat-content-item.comment.active:before {\n width: 4px;\n}\n.ui.comments .em-chat-content-item.comment:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n bottom: 0;\n background: #2098D1;\n width: 0;\n -webkit-transition-property: width;\n transition-property: width;\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s;\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n@media only screen and (max-width: 767px) {\n .em-chat-content-item > .content > .metadata > .rating {\n display: none!important;\n }\n}\n.em-chat-content-item > .content > .markdown-body span.at-user {\n cursor: pointer;\n}\n.em-chat-content-item > .content > .tools {\n position: absolute;\n right: 0;\n bottom: 0;\n display: none;\n}\n.em-chat-content-item > .content > .tools > .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.em-chat-content-item > .content > .tools > .ui.button:hover {\n background-color: #e0e1e2;\n}\n"; }); -define('text!resources/elements/em-chat-msg-popup.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-chat-input.css', ['module'], function(module) { module.exports = ".tms-em-chat-input.ui.segment {\n margin: 0;\n position: fixed;\n bottom: 0;\n left: 220px;\n right: 0;\n background-color: white;\n padding-bottom: 22px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-input.ui.segment {\n left: 0;\n }\n}\n.tms-em-chat-input.ui.segment .tms-chat-status-bar .dz-preview {\n display: block!important;\n width: auto!important;\n background: #e0e1e2;\n margin: 0;\n padding: 7px;\n}\n.tms-em-chat-input.ui.segment .ui[class*=\"left action\"].input > textarea {\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n border-left-color: transparent!important;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper {\n width: calc(100% - 35px);\n border: 1px solid rgba(34, 36, 38, 0.15);\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror,\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror-scroll {\n min-height: 0;\n border: none;\n border-top-right-radius: .28571429rem;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror-scroll {\n max-height: 300px;\n}\n.tms-em-chat-input.ui.segment .ui.input {\n margin-right: 5px;\n}\n.tms-em-chat-input.ui.segment .ui.input i.send.icon {\n z-index: 1;\n right: 7px!important;\n}\n.tms-em-chat-input.ui.segment .ui.input textarea {\n resize: none;\n width: 100%;\n padding-right: 2.67142857em!important;\n margin: 0;\n max-width: 100%;\n outline: 0;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n text-align: left;\n display: block;\n padding: .67861429em 1em;\n background: #FFF;\n border: none;\n color: rgba(0, 0, 0, 0.87);\n box-shadow: none;\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.tms-em-chat-input .CodeMirror-lines {\n margin-right: 30px;\n}\n.tms-em-chat-input .ui.vertical.menu.popup {\n width: 145px;\n}\n.tms-em-chat-input .ui.vertical.menu.popup a.item > i.icon {\n float: left;\n margin: 0 .35714286em 0 0;\n}\n@media only screen and (min-width: 768px) {\n .tms-chat-direct .tms-content.tms-sidebar-show .tms-em-chat-input {\n right: 392px;\n }\n}\n.textcomplete-dropdown {\n position: static!important;\n border: 1px solid #ddd;\n background-color: white;\n list-style: none;\n padding: 0;\n margin: 0;\n border-radius: 5px;\n}\n.textcomplete-dropdown li {\n /* border-top: 1px solid #ddd; */\n padding: 2px 5px;\n}\n.textcomplete-dropdown li:first-child {\n border-top: none;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.textcomplete-dropdown li:last-child {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.textcomplete-dropdown li:hover,\n.textcomplete-dropdown .active {\n background-color: #439fe0;\n}\n.textcomplete-dropdown a:hover {\n cursor: pointer;\n}\n.textcomplete-dropdown li.textcomplete-item a {\n color: black;\n}\n.textcomplete-dropdown li.textcomplete-item:hover a,\n.textcomplete-dropdown li.textcomplete-item.active a {\n color: white;\n}\n"; }); -define('text!resources/elements/em-chat-schedule-edit.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-content-item.css', ['module'], function(module) { module.exports = ".em-chat-content-item .textcomplete-container {\n position: relative;\n}\n.em-chat-content-item .textcomplete-container .append-to {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 100%;\n}\n.ui.comments .em-chat-content-item.comment > .avatar ~ .content {\n margin-left: 3em;\n}\n.ui.comments .em-chat-content-item.comment .actions > a {\n margin-right: 5px;\n}\n.ui.comments .em-chat-content-item.comment .actions .dropdown > a .ellipsis.icon {\n margin-right: 0;\n}\n.ui.comments .em-chat-content-item.comment .actions .dropdown .item.tms-red {\n color: red;\n}\n.ui.comments .em-chat-content-item.comment:hover .tools {\n display: block;\n}\n.ui.comments .em-chat-content-item.comment:hover:before {\n width: 4px;\n}\n.ui.comments .em-chat-content-item.comment:hover .em-chat-content-item-footbar .add-btn {\n display: inline-block;\n}\n.ui.comments .em-chat-content-item.comment.active:before {\n width: 4px;\n}\n.ui.comments .em-chat-content-item.comment:before {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n bottom: 0;\n background: #2098D1;\n width: 0;\n -webkit-transition-property: width;\n transition-property: width;\n -webkit-transition-duration: 0.3s;\n transition-duration: 0.3s;\n -webkit-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n@media only screen and (max-width: 767px) {\n .em-chat-content-item > .content > .metadata > .rating {\n display: none!important;\n }\n}\n.em-chat-content-item > .content > .markdown-body span.at-user {\n cursor: pointer;\n}\n@media only screen and (min-width: 768px) {\n .em-chat-content-item > .content > .markdown-body img {\n max-width: 360px;\n max-height: 360px;\n }\n}\n.em-chat-content-item > .content > .tools {\n position: absolute;\n right: 0;\n bottom: 0;\n display: none;\n}\n.em-chat-content-item > .content > .tools > .ui.button {\n margin: 0;\n background-color: rgba(224, 225, 226, 0.5);\n}\n.em-chat-content-item > .content > .tools > .ui.button:hover {\n background-color: #e0e1e2;\n}\n"; }); +define('text!resources/elements/em-chat-msg-popup.html', ['module'], function(module) { module.exports = "\n"; }); +define('text!resources/elements/em-chat-input.css', ['module'], function(module) { module.exports = ".tms-em-chat-input.ui.segment {\n margin: 0;\n position: fixed;\n bottom: 0;\n left: 220px;\n right: 0;\n background-color: white;\n padding-bottom: 22px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-input.ui.segment {\n left: 0;\n }\n}\n.tms-em-chat-input.ui.segment .tms-chat-status-bar .dz-preview {\n display: block!important;\n width: auto!important;\n background: #e0e1e2;\n margin: 0;\n padding: 7px;\n}\n.tms-em-chat-input.ui.segment .ui[class*=\"left action\"].input > textarea {\n border-top-left-radius: 0!important;\n border-bottom-left-radius: 0!important;\n border-left-color: transparent!important;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper {\n width: calc(100% - 35px);\n border: 1px solid rgba(34, 36, 38, 0.15);\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror,\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror-scroll {\n min-height: 0;\n border: none;\n border-top-right-radius: .28571429rem;\n}\n.tms-em-chat-input.ui.segment .textareaWrapper .CodeMirror-scroll {\n max-height: 300px;\n}\n.tms-em-chat-input.ui.segment .ui.input {\n margin-right: 5px;\n}\n.tms-em-chat-input.ui.segment .ui.input i.send.icon {\n z-index: 1;\n right: 7px!important;\n}\n.tms-em-chat-input.ui.segment .ui.input textarea {\n resize: none;\n width: 100%;\n padding-right: 2.67142857em!important;\n margin: 0;\n max-width: 100%;\n outline: 0;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n text-align: left;\n display: block;\n padding: .67861429em 1em;\n background: #FFF;\n border: none;\n color: rgba(0, 0, 0, 0.87);\n box-shadow: none;\n border-top-right-radius: .28571429rem;\n border-bottom-right-radius: .28571429rem;\n}\n.tms-em-chat-input .CodeMirror-lines {\n margin-right: 30px;\n}\n.tms-em-chat-input .ui.vertical.menu.popup {\n width: 145px;\n}\n.tms-em-chat-input .ui.vertical.menu.popup a.item > i.icon {\n float: left;\n margin: 0 .35714286em 0 0;\n}\n@media only screen and (min-width: 768px) {\n .tms-chat-direct .tms-content.tms-sidebar-show .tms-em-chat-input {\n right: 392px;\n }\n}\n.textcomplete-dropdown {\n position: static!important;\n border: 1px solid #ddd;\n background-color: white;\n list-style: none;\n padding: 0;\n margin: 0;\n border-radius: 5px;\n}\n.textcomplete-dropdown li {\n /* border-top: 1px solid #ddd; */\n padding: 2px 5px;\n}\n.textcomplete-dropdown li:first-child {\n border-top: none;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.textcomplete-dropdown li:last-child {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.textcomplete-dropdown li:hover,\n.textcomplete-dropdown .active {\n background-color: #439fe0;\n}\n.textcomplete-dropdown a:hover {\n cursor: pointer;\n}\n.textcomplete-dropdown li.textcomplete-item a {\n color: black;\n}\n.textcomplete-dropdown li.textcomplete-item:hover a,\n.textcomplete-dropdown li.textcomplete-item.active a {\n color: white;\n}\n.tms-chat-input-help-meta {\n position: absolute;\n bottom: 0;\n left: 60px;\n font-size: 12px;\n color: lightgray;\n}\n"; }); +define('text!resources/elements/em-chat-msg.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-chat-member-popup.css', ['module'], function(module) { module.exports = ".tms-chat-member-popup .ui.cards {\n margin-top: 0!important;\n}\n.tms-chat-member-popup .ui.cards .card {\n margin-top: 0!important;\n}\n.tms-chat-member-popup .ui.cards .card .ui.list > .item {\n border-radius: 0!important;\n}\n"; }); +define('text!resources/elements/em-chat-msg.css', ['module'], function(module) { module.exports = ".em-chat-msg .ui.comments .comment .actions a {\n margin-right: 5px;\n}\n"; }); +define('text!resources/elements/em-chat-schedule-edit.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-schedule-remind.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-schedule-edit.css', ['module'], function(module) { module.exports = ".em-chat-schedule-edit .ui.form {\n width: 300px;\n}\n.em-chat-schedule-edit .ui.form .ui.calendar {\n width: 200px;\n}\n.em-chat-schedule-edit .ui.form .tms-date-field {\n position: relative;\n}\n.em-chat-schedule-edit .ui.form .tms-date-field .ui.button {\n position: absolute;\n top: 0;\n right: 0;\n}\n.em-chat-schedule-edit .ui.form .ui.dropdown {\n width: 265px!important;\n min-height: 30px;\n}\n.em-chat-schedule-edit .ui.form .ui.dropdown > a.ui.label > input.owner + i.delete.icon {\n display: none;\n}\n.tms-schedule-edit-target {\n display: inline-block;\n width: 1px;\n height: 1px;\n position: absolute;\n right: 188px;\n top: 30px;\n}\n"; }); define('text!resources/elements/em-chat-schedule.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-schedule-remind.css', ['module'], function(module) { module.exports = ".em-chat-schedule-remind .ui.table tr > td:first-child {\n font-weight: bold;\n}\n"; }); -define('text!resources/elements/em-chat-share.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-share.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-chat-schedule.css', ['module'], function(module) { module.exports = ".em-chat-schedule {\n position: relative;\n height: 100%;\n}\n.em-chat-schedule .tms-add {\n position: absolute;\n right: 170px;\n top: 0;\n}\n.em-chat-schedule .ui.form {\n width: 300px;\n}\n.em-chat-schedule .ui.form .ui.calendar {\n width: 200px;\n}\n.em-chat-schedule .ui.form .tms-date-field {\n position: relative;\n}\n.em-chat-schedule .ui.form .tms-date-field .ui.button {\n position: absolute;\n top: 0;\n right: 0;\n}\n.em-chat-schedule .ui.form .ui.dropdown {\n width: 265px!important;\n min-height: auto;\n}\n.em-chat-schedule .ui.form .ui.dropdown > a.ui.label > input.owner + i.delete.icon {\n display: none;\n}\n"; }); -define('text!resources/elements/em-chat-sidebar-left.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-sidebar-left.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-share.css', ['module'], function(module) { module.exports = ".em-chat-share.ui.popup {\n max-width: 100%;\n width: 255px;\n}\n.em-chat-share.ui.popup .ui.input {\n width: 225px;\n}\n.em-chat-share.ui.popup textarea {\n width: 195px!important;\n}\n.em-chat-share.ui.popup .ui.search > .results .result {\n cursor: pointer!important;\n display: block!important;\n color: rgba(0, 0, 0, 0.87) !important;\n border-bottom: 1px solid rgba(34, 36, 38, 0.1) !important;\n margin: 0!important;\n}\n.em-chat-share.ui.popup .ui.list > .item {\n color: rgba(0, 0, 0, 0.87);\n}\n.em-chat-share:after {\n content: '';\n clear: both;\n}\n.em-chat-share .footer {\n margin-top: 16px;\n}\n.em-chat-share .footer .btn-cancel {\n float: right;\n margin: 6px 0 0 8px!important;\n}\n"; }); -define('text!resources/elements/em-chat-sidebar-right.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-chat-sidebar-left.css', ['module'], function(module) { module.exports = ".tms-left-sidebar {\n overflow: hidden;\n}\n.tms-left-sidebar .tms-body {\n position: absolute;\n top: 98px;\n width: 220px;\n height: calc(100% - 150px);\n overflow: hidden;\n padding-right: 2px;\n}\n.tms-left-sidebar .tms-body i.circular.icon {\n box-shadow: 0 0 0 0.1em #4183c4 inset;\n}\n.tms-left-sidebar .tms-body .title {\n position: relative;\n margin-left: 10px;\n}\n.tms-left-sidebar .tms-body .title .ui.header {\n display: inline-block;\n margin-top: 2px;\n margin-bottom: 0;\n}\n.tms-left-sidebar .tms-body .title i.plus.icon {\n position: absolute;\n right: 10px;\n font-size: 12px;\n width: 12px!important;\n height: 12px!important;\n}\n.tms-left-sidebar .tms-body .ui.list {\n margin-top: 10px;\n padding-top: 5px;\n box-shadow: 0px -1px 1px -1px rgba(65, 131, 196, 0.5);\n}\n.tms-left-sidebar .tms-body .ui.list > .item {\n padding-left: 16px;\n border-radius: 0;\n}\n.tms-left-sidebar .tms-body .ui.list > .item > .icon + .content {\n padding: 0;\n}\n.tms-left-sidebar .tms-body .ui.list > .item.active {\n background: rgba(0, 0, 0, 0.2);\n}\n.tms-left-sidebar .tms-body .ui.list > .item:hover {\n background: rgba(0, 0, 0, 0.1) !important;\n}\n.tms-left-sidebar .tms-body .ui.list > .item.disabled-user {\n text-decoration: line-through;\n font-style: italic;\n}\n.tms-left-sidebar .tms-body .tms-name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 160px;\n}\n.tms-left-sidebar .tms-body .tms-channels .ui.list a.item {\n position: relative;\n}\n.tms-left-sidebar .tms-body .tms-channels .ui.list a.item:hover .actions {\n display: inline-block;\n}\n.tms-left-sidebar .tms-body .tms-channels .actions {\n display: none;\n position: absolute;\n right: 10px;\n top: 5px;\n}\n.tms-left-sidebar .tms-body .scroll-element.scroll-y {\n background-color: #4d394b;\n}\n.tms-left-sidebar.ui.left.sidebar {\n background-color: #4d394b;\n width: 220px;\n}\n.tms-left-sidebar.ui.left.sidebar * {\n color: #4183c4!important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header {\n padding: 9px 16px;\n box-shadow: 0 1px 1px -1px #4183c4;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input {\n background-color: transparent;\n border: 1px rgba(103, 104, 104, 0.5) solid;\n font-size: 12px;\n padding: 4px;\n width: 188px;\n outline: none;\n margin-top: 10px;\n border-radius: 2px;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input::-webkit-input-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input::-moz-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:-ms-input-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus::-webkit-input-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus::-moz-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus:-ms-input-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header h1.ui.header {\n margin: 0;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header h1.ui.header img {\n width: 30px;\n height: 30px;\n margin: 0;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header i.close.icon {\n position: absolute;\n right: 16px;\n top: 57px;\n}\n.tms-left-sidebar .tms-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu {\n border-radius: 0;\n background-color: rgba(27, 28, 29, 0.2) !important;\n}\n.tms-left-sidebar .tms-footer .ui.menu .dropdown.item .menu {\n border-radius: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .item {\n font-size: 12px!important;\n}\n.tms-left-sidebar .tms-footer .ui.menu .item:before {\n width: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .ui.button.item {\n width: 140px;\n margin-right: 0;\n padding-left: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .ui.button.item .visible.content {\n margin-right: 0;\n width: 100%;\n}\n.tms-left-sidebar .tms-footer .ui.menu .right.menu .ui.dropdown .menu .header {\n min-width: 150px;\n position: relative;\n}\n.tms-left-sidebar .tms-footer .ui.menu .right.menu .ui.dropdown .menu .header .plus.icon {\n position: absolute;\n right: 0;\n top: -7px;\n}\n"; }); -define('text!resources/elements/em-chat-system-link-mgr.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-sidebar-right.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-sidebar-left.css', ['module'], function(module) { module.exports = ".tms-left-sidebar {\n overflow: hidden;\n}\n.tms-left-sidebar .tms-body {\n position: absolute;\n top: 98px;\n width: 220px;\n height: calc(100% - 150px);\n overflow: hidden;\n padding-right: 2px;\n}\n.tms-left-sidebar .tms-body i.circular.icon {\n box-shadow: 0 0 0 0.1em #4183c4 inset;\n}\n.tms-left-sidebar .tms-body .title {\n position: relative;\n margin-left: 10px;\n}\n.tms-left-sidebar .tms-body .title .ui.header {\n display: inline-block;\n margin-top: 2px;\n margin-bottom: 0;\n}\n.tms-left-sidebar .tms-body .title i.plus.icon {\n position: absolute;\n right: 10px;\n font-size: 12px;\n width: 12px!important;\n height: 12px!important;\n}\n.tms-left-sidebar .tms-body .ui.list {\n margin-top: 10px;\n padding-top: 5px;\n box-shadow: 0px -1px 1px -1px rgba(65, 131, 196, 0.5);\n}\n.tms-left-sidebar .tms-body .ui.list > .item {\n padding-left: 16px;\n border-radius: 0;\n}\n.tms-left-sidebar .tms-body .ui.list > .item > .icon + .content {\n padding: 0;\n}\n.tms-left-sidebar .tms-body .ui.list > .item.active {\n background: rgba(0, 0, 0, 0.2);\n}\n.tms-left-sidebar .tms-body .ui.list > .item:hover {\n background: rgba(0, 0, 0, 0.1) !important;\n}\n.tms-left-sidebar .tms-body .ui.list > .item.disabled-user {\n text-decoration: line-through;\n font-style: italic;\n}\n.tms-left-sidebar .tms-body .tms-name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 160px;\n}\n.tms-left-sidebar .tms-body .tms-channels .ui.list a.item {\n position: relative;\n}\n.tms-left-sidebar .tms-body .tms-channels .ui.list a.item:hover .actions {\n display: inline-block;\n}\n.tms-left-sidebar .tms-body .tms-channels .actions {\n display: none;\n position: absolute;\n right: 10px;\n top: 5px;\n}\n.tms-left-sidebar .tms-body .scroll-element.scroll-y {\n background-color: #4d394b;\n}\n.tms-left-sidebar.ui.left.sidebar {\n background-color: #4d394b;\n width: 220px;\n}\n.tms-left-sidebar.ui.left.sidebar * {\n color: #4183c4!important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header {\n padding: 9px 16px;\n box-shadow: 0 1px 1px -1px #4183c4;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input {\n background-color: transparent;\n border: 1px rgba(103, 104, 104, 0.5) solid;\n font-size: 12px;\n padding: 4px;\n width: 188px;\n outline: none;\n margin-top: 10px;\n border-radius: 2px;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input::-webkit-input-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input::-moz-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:-ms-input-placeholder {\n color: rgba(103, 104, 104, 0.5) !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus::-webkit-input-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus::-moz-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header > input:focus:-ms-input-placeholder {\n color: #676868 !important;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header h1.ui.header {\n margin: 0;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header h1.ui.header img {\n width: 30px;\n height: 30px;\n margin: 0;\n}\n.tms-left-sidebar.ui.left.sidebar .tms-header i.close.icon {\n position: absolute;\n right: 16px;\n top: 60px;\n}\n.tms-left-sidebar .tms-footer {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu {\n border-radius: 0;\n background-color: rgba(27, 28, 29, 0.2) !important;\n}\n.tms-left-sidebar .tms-footer .ui.menu .dropdown.item .menu {\n border-radius: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .item {\n font-size: 12px!important;\n}\n.tms-left-sidebar .tms-footer .ui.menu .item:before {\n width: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .ui.button.item {\n width: 140px;\n margin-right: 0;\n padding-left: 0;\n}\n.tms-left-sidebar .tms-footer .ui.menu .ui.button.item .visible.content {\n margin-right: 0;\n width: 100%;\n}\n.tms-left-sidebar .tms-footer .ui.menu .right.menu .ui.dropdown .menu .header {\n min-width: 150px;\n position: relative;\n}\n.tms-left-sidebar .tms-footer .ui.menu .right.menu .ui.dropdown .menu .header .plus.icon {\n position: absolute;\n right: 0;\n top: -7px;\n}\n"; }); +define('text!resources/elements/em-chat-system-link-mgr.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-sidebar-right.css', ['module'], function(module) { module.exports = ".em-chat-sidebar-right .panel-wiki-dir {\n height: 100%;\n padding-left: 15px;\n overflow-y: auto;\n}\n.em-chat-sidebar-right .panel-chat-schedule {\n height: calc(100% - 10px);\n overflow: hidden;\n}\n"; }); -define('text!resources/elements/em-chat-top-menu.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-chat-top-menu.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-chat-system-link-mgr.css', ['module'], function(module) { module.exports = "@media only screen and (min-width: 768px) {\n .tms-em-chat-system-link-mgr .ui.form .one.wide.field {\n padding: 0;\n }\n}\n"; }); -define('text!resources/elements/em-checkbox.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-checkbox.html', ['module'], function(module) { module.exports = "\n"; }); define('text!resources/elements/em-chat-top-menu.css', ['module'], function(module) { module.exports = ".tms-em-chat-top-menu.ui.top.menu {\n padding-left: 220px;\n height: 60px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu .tms-chat-at.tms-hide {\n display: none;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .item.tms-item:before {\n display: none;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-login-user.tms-hide {\n display: none;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item {\n padding-left: 0;\n padding-right: 5px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.tms-hide {\n display: none;\n }\n .tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.tms-mobile-hide {\n display: none;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item button .ui.floating.label {\n top: 0;\n right: 0;\n left: auto;\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.ui.dropdown {\n display: none;\n padding-left: 5px;\n margin-right: 5px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.ui.dropdown {\n display: flex;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.ui.dropdown > i.icon {\n margin-left: 5px;\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.ui.dropdown .menu > .item .ui.button {\n margin: 0;\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-item.ui.dropdown .menu > .item .ui.button i.icon {\n margin: 0;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu .right.menu .item.tms-search {\n padding-left: 10px;\n padding-right: 10px;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .ui.search input {\n width: 95px;\n transition: width 0.15s ease-out 0s;\n}\n.tms-em-chat-top-menu.ui.top.menu .right.menu .ui.search i.remove.icon {\n display: none;\n position: absolute;\n right: 0;\n left: auto;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu.ui.top.menu {\n padding-left: 0;\n }\n}\n.tms-em-chat-top-menu.ui.top.menu .ui.basic.button {\n box-shadow: none;\n}\n@media only screen and (min-width: 768px) {\n .tms-em-chat-top-menu > .tms-chat-at.ui.dropdown {\n min-width: 175px;\n padding-top: 0;\n padding-left: 13px;\n padding-bottom: 20px;\n }\n .tms-em-chat-top-menu > .tms-chat-at.ui.dropdown.item:before {\n width: 0;\n }\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .text > .actions {\n display: none;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata {\n position: absolute;\n display: flex;\n top: 35px;\n font-size: 12px;\n left: 0;\n height: 15px;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata .item:before {\n top: 5px;\n height: 50%;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata .item.tms-channel-info:before {\n width: 0;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata .item.tms-user-info:before {\n width: 0;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata {\n display: none;\n }\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .tms-metadata .tms-channel-links .menu .header {\n min-width: 200px;\n}\n@media only screen and (max-width: 767px) {\n .tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .text {\n display: none;\n }\n .tms-em-chat-top-menu > .tms-chat-at.ui.dropdown > .dropdown.icon {\n margin-left: 6px;\n margin-right: 6px;\n }\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .header i.plus.icon {\n position: absolute;\n right: 5px;\n top: 7px;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .item:hover .actions {\n display: inline-block;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .item .icon {\n margin-right: 4px!important;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .item > .actions {\n display: none;\n position: absolute;\n right: 5px;\n top: 10px;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .item > .actions .large.ellipsis.horizontal.icon {\n font-size: 1.3em!important;\n}\n.tms-em-chat-top-menu > .tms-chat-at.ui.dropdown .menu > .item.disabled-user {\n text-decoration: line-through;\n font-style: italic;\n}\n"; }); define('text!resources/elements/em-checkbox.css', ['module'], function(module) { module.exports = ""; }); -define('text!resources/elements/em-confirm-modal.html', ['module'], function(module) { module.exports = "\n"; }); +define('text!resources/elements/em-confirm-modal.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-dropdown.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-hotkeys-modal.css', ['module'], function(module) { module.exports = ".tms-em-hotkeys-modal ul {\n padding-left: 30px;\n}\n.tms-em-hotkeys-modal ul.no_bullets {\n margin: 0 0 2rem;\n}\n.tms-em-hotkeys-modal ul.no_bullets li {\n line-height: 2rem;\n list-style-type: none;\n padding: 0;\n font-size: 1rem;\n font-weight: 700;\n}\n.tms-em-hotkeys-modal > .content {\n background-color: rgba(11, 7, 11, 0.78) !important;\n}\n.tms-em-hotkeys-modal .keyboard i.icon {\n margin-right: 0px!important;\n}\n.tms-em-hotkeys-modal .subtle_silver {\n color: #9e9ea6!important;\n}\n.tms-em-hotkeys-modal .ui.grid .column {\n padding: 0!important;\n}\n"; }); define('text!resources/elements/em-hotkeys-modal.html', ['module'], function(module) { module.exports = "\r\n"; }); @@ -33001,5 +33674,5 @@ define('text!resources/elements/em-user-avatar.css', ['module'], function(module define('text!resources/elements/em-modal.html', ['module'], function(module) { module.exports = "\r\n"; }); define('text!resources/elements/em-user-edit.css', ['module'], function(module) { module.exports = ".tms-em-user-edit .ui.form .field > label {\n width: 45px!important;\n}\n.tms-em-user-edit .ui.form .field .user-username {\n margin-left: 0;\n}\n.em-user-edit-modal {\n /* Tablet & PC */\n}\n@media only screen and (min-width: 768px) {\n .em-user-edit-modal {\n width: 500px!important;\n margin-left: -250px !important;\n }\n}\n"; }); define('text!resources/elements/em-user-avatar.html', ['module'], function(module) { module.exports = "\r\n"; }); -define('text!resources/elements/em-user-edit.html', ['module'], function(module) { module.exports = "\r\n"; }); +define('text!resources/elements/em-user-edit.html', ['module'], function(module) { module.exports = "\n"; }); //# sourceMappingURL=app-bundle.js.map \ No newline at end of file diff --git a/scripts/app-bundle.js.map b/scripts/app-bundle.js.map index 89a8e8f557dda9d08a270b21b607032d31c087a1..37f6d3fbc8bb96b1db5ae9be11cf5b437ac2e00f 100644 --- a/scripts/app-bundle.js.map +++ b/scripts/app-bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["app.js","environment.js","main.js","blog/blog.js","chat/chat-direct.js","chat/chat-service.js","common/common-constant.js","common/common-ctx.js","common/common-diff.js","common/common-emoji.js","common/common-imgs-loaded.js","common/common-paste.js","common/common-plugin.js","common/common-poll.js","common/common-scrollbar.js","common/common-tips.js","common/common-utils.js","init/config.js","init/index.js","test/test-lifecycle.js","resources/index.js","user/user-login.js","user/user-pwd-reset.js","user/user-register.js","resources/attributes/attr-attr.js","resources/attributes/attr-autosize.js","resources/attributes/attr-c2c.js","resources/attributes/attr-dimmer.js","resources/attributes/attr-dropzone.js","resources/attributes/attr-modaal.js","resources/attributes/attr-pastable.js","resources/attributes/attr-scrollbar.js","resources/attributes/attr-swipebox.js","resources/attributes/attr-tablesort.js","resources/attributes/attr-task.js","resources/attributes/attr-textcomplete.js","resources/attributes/attr-ui-checkbox.js","resources/attributes/attr-ui-dropdown-action.js","resources/attributes/attr-ui-dropdown-hover.js","resources/attributes/attr-ui-dropdown.js","resources/attributes/attr-ui-popup.js","resources/attributes/attr-ui-tab.js","resources/binding-behaviors/bb-key.js","resources/value-converters/vc-common.js","resources/elements/em-blog-comment-popup.js","resources/elements/em-blog-comment-share.js","resources/elements/em-blog-comment.js","resources/elements/em-blog-content.js","resources/elements/em-blog-history-diff.js","resources/elements/em-blog-history-view.js","resources/elements/em-blog-history.js","resources/elements/em-blog-left-sidebar.js","resources/elements/em-blog-right-sidebar.js","resources/elements/em-blog-save.js","resources/elements/em-blog-share.js","resources/elements/em-blog-space-auth.js","resources/elements/em-blog-space-create.js","resources/elements/em-blog-space-edit.js","resources/elements/em-blog-space-update.js","resources/elements/em-blog-top-menu.js","resources/elements/em-blog-write.js","resources/elements/em-chat-attach.js","resources/elements/em-chat-channel-create.js","resources/elements/em-chat-channel-edit.js","resources/elements/em-chat-channel-join.js","resources/elements/em-chat-channel-link-mgr.js","resources/elements/em-chat-channel-members-mgr.js","resources/elements/em-chat-channel-members-show.js","resources/elements/em-chat-content-item.js","resources/elements/em-chat-input.js","resources/elements/em-chat-member-popup.js","resources/elements/em-chat-msg-popup.js","resources/elements/em-chat-schedule-edit.js","resources/elements/em-chat-schedule-remind.js","resources/elements/em-chat-schedule.js","resources/elements/em-chat-share.js","resources/elements/em-chat-sidebar-left.js","resources/elements/em-chat-sidebar-right.js","resources/elements/em-chat-system-link-mgr.js","resources/elements/em-chat-top-menu.js","resources/elements/em-checkbox.js","resources/elements/em-confirm-modal.js","resources/elements/em-dropdown.js","resources/elements/em-hotkeys-modal.js","resources/elements/em-modal.js","resources/elements/em-user-avatar.js","resources/elements/em-user-edit.js","app.less","common.less","override.less","blog/blog.less","chat/chat-direct.less","chat/md-github.less","common/common-scrollbar.less","user/user-login.less","user/user-pwd-reset.less","user/user-register.less","resources/elements/em-blog-comment-popup.less","resources/elements/em-blog-comment-share.less","resources/elements/em-blog-comment.less","resources/elements/em-blog-content.less","resources/elements/em-blog-history-diff.less","resources/elements/em-blog-history-view.less","resources/elements/em-blog-history.less","resources/elements/em-blog-left-sidebar.less","resources/elements/em-blog-right-sidebar.less","resources/elements/em-blog-save.less","resources/elements/em-blog-share.less","resources/elements/em-blog-space-auth.less","resources/elements/em-blog-space-create.less","resources/elements/em-blog-space-edit.less","resources/elements/em-blog-space-update.less","resources/elements/em-blog-top-menu.less","resources/elements/em-blog-write.less","resources/elements/em-chat-attach.less","resources/elements/em-chat-channel-create.less","resources/elements/em-chat-channel-link-mgr.less","resources/elements/em-chat-channel-members-mgr.less","resources/elements/em-chat-channel-members-show.less","resources/elements/em-chat-content-item.less","resources/elements/em-chat-input.less","resources/elements/em-chat-member-popup.less","resources/elements/em-chat-schedule-edit.less","resources/elements/em-chat-schedule-remind.less","resources/elements/em-chat-schedule.less","resources/elements/em-chat-share.less","resources/elements/em-chat-sidebar-left.less","resources/elements/em-chat-sidebar-right.less","resources/elements/em-chat-system-link-mgr.less","resources/elements/em-chat-top-menu.less","resources/elements/em-checkbox.less","resources/elements/em-hotkeys-modal.less","resources/elements/em-user-avatar.less","resources/elements/em-user-edit.less"],"names":["App","init","initCalendar","subscribe","ea","nsCons","EVENT_APP_ROUTER_NAVIGATE","payload","router","navigate","to","unbind","dispose","$","fn","dropdown","settings","forceSelection","_","extend","form","prompt","empty","checked","email","url","regExp","integer","decimal","number","is","isExactly","not","notExactly","contain","containExactly","doesntContain","doesntContainExactly","minLength","length","exactLength","maxLength","match","different","creditCard","minCount","exactCount","maxCount","calendar","text","days","months","monthsShort","today","now","am","pm","formatter","date","day","getDate","month","getMonth","year","getFullYear","format","configureRouter","config","chatTo","localStorage","getItem","KEY_REMEMBER_LAST_CHAT_TO","map","route","name","moduleId","nav","title","redirect","activate","params","routeConfig","navigationInstruction","debug","testing","configure","Promise","warnings","wForgottenReturn","aurelia","use","standardConfiguration","feature","developmentLogging","plugin","start","then","setRoot","Blog","rightSidebarShow","isHide","EVENT_BLOG_VIEW_CHANGED","navModel","setTitle","subscribe1","EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE","justRefresh","isUndefined","subscribe2","EVENT_BLOG_TOGGLE_SIDEBAR","clearInterval","timeagoTimer","attached","tg","timeago","setInterval","blogContainerRef","find","each","index","el","attr","on","event","preventDefault","$a","currentTarget","publish","EVENT_CHAT_MEMBER_POPUP_SHOW","username","target","EVENT_BLOG_COMMENT_MSG_INSERT","content","detached","nsCtx","blogId","id","EVENT_BLOG_SWITCH","all","loginUser","user","isSuper","utils","isSuperUser","isAdmin","isAdminUser","listUsers","users","window","tmsUsers","ChatDirect","offset","first","last","originalHref","wurl","channels","autoDiscover","poll","e","toastr","success","error","initSubscribeEvent","EVENT_CHAT_MSG_SENDED","reset","isAt","listChatDirect","listChatChannel","EVENT_CHAT_SIDEBAR_TOGGLE","isRightSidebarShow","isShow","wid","contentRef","width","contentBodyRef","children","css","subscribe3","EVENT_CHAT_CHANNEL_CREATED","splice","channel","subscribe4","EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM","gotoChatItem","chatItem","subscribe5","EVENT_CHAT_CHANNEL_DELETED","location","subscribe6","EVENT_CHAT_CHANNEL_JOINED","subscribe7","EVENT_CHAT_CHANNEL_LEAVED","reject","subscribe8","EVENT_CHAT_LAST_ITEM_RENDERED","item","__scroll","scrollToAfterImgLoaded","markId","subscribe9","EVENT_SCROLLBAR_SCROLL_TO_BOTTOM","scrollbarRef","element","subscribe10","EVENT_CHAT_CONTENT_SCROLL_TO","scrollTo","stop","_reset","chatId","preChatId","setItem","startsWith","getChatName","history","replaceState","removeUrlQuery","listChannels","progressWidth","chats","lastMoreHandler","data","size","channelId","lastMoreP","get","unionBy","reverse","msgs","lastCnt","firstMoreHandler","nextMoreP","firstCnt","isCareMarkId","processChats","lastChat","totalElements","numberOfElements","_scrollTo","commentsRef","parent","some","removeClass","addClass","warning","defer","ImagesLoaded","always","doPoll","resetCb","stopCb","_pollChats","_poll","pollOnGoing","lastChatChannelId","countAt","cnt","push","create","body","icon","x16","x32","timeout","EVENT_CHAT_POLL_UPDATE","countMyRecentSchedule","pollChatsOngoing","_checkPollResultOk","_checkNeedNotify","fail","xhr","sts","errorAutoTry","hasOwn","creator","chat","has","bind","ctx","chatContainerRef","initHotkeys","initFocusedComment","$item","$hoveredItem","isShowHead","isElementInViewport","$next","next","isShowFoot","$btn","setTimeout","ctrlKey","stopImmediatePropagation","copy","err","scroll","throttle","sHeight","scrollHeight","sTop","scrollTop","scale","outerHeight","outerWidth","goHeadHandler","goFootHandler","focusedComment","$t","Number","parseInt","openEdit","version","isEditing","contentOld","focus","select","autosize","update","getScrollTargetComment","isPrev","$avatar","prev","duration","onAfter","document","evt","emChatInputRef","btnItemUploadRef","click","emHotkeysModal","show","refreshLatestHandler","ChatService","useCache","EVENT_CHAT_MSG_EDIT_UPLOAD","EVENT_CHAT_SEARCH_RESULT","EVENT_SHOW_HOTKEYS_MODAL","EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE","EVENT_CHAT_SHOW_STOW","EVENT_CHAT_SHOW_AT","EVENT_CHAT_SHOW_DIR","EVENT_CHAT_SHOW_ATTACH","EVENT_CHAT_SHOW_SCHEDULE","EVENT_CHAT_MSG_INSERT","EVENT_CHAT_MSG_POPUP_SHOW","EVENT_CHAT_MSG_WIKI_DIR","EVENT_SWITCH_CHAT_TO","EVENT_CHANNEL_ACTIONS","EVENT_CHANNEL_LINKS_REFRESH","EVENT_SYSTEM_LINKS_REFRESH","EVENT_SCHEDULE_REFRESH","EVENT_MODAAL_BEFORE_OPEN","EVENT_MODAAL_AFTER_OPEN","EVENT_MODAAL_BEFORE_CLOSE","EVENT_MODAAL_AFTER_CLOSE","EVENT_BLOG_ACTION","EVENT_BLOG_CHANGED","EVENT_SPACE_CHANGED","EVENT_BLOG_CREATED","EVENT_BLOG_UPDATED","EVENT_BLOG_DELETED","EVENT_BLOG_STOW_CHANGED","EVENT_BLOG_SAVE","EVENT_BLOG_HISTORY_CHANGED","EVENT_BLOG_COMMENT_POPUP_SHOW","EVENT_BLOG_LEFT_SIDEBAR_TOGGLE","EVENT_BLOG_CONTENT_DIMMER_TOGGLE","EVENT_BLOG_COMMENT_ADDED","EVENT_BLOG_COMMENT_CHANGED","ACTION_TYPE_SEARCH","ACTION_TYPE_STOW","ACTION_TYPE_AT","ACTION_TYPE_DIR","ACTION_TYPE_ATTACH","ACTION_TYPE_SCHEDULE","NUM_TEXT_COMPLETE_MAX_COUNT","STR_EMOJI_SEARCH_URL","KEY_LOGIN_USERNAME","KEY_BLOG_COMMON_SPACE","memberAll","enabled","mails","isModaalOpening","webpackUniversalModuleDefinition","root","factory","modules","installedModules","__webpack_require__","exports","module","loaded","call","m","c","p","__esModule","_interopRequireDefault","obj","_diffBase","_diffBase2","_diffCharacter","_diffWord","_diffLine","_diffSentence","_diffCss","_diffJson","_patchApply","_patchCreate","_convertDmp","_convertXml","Diff","diffChars","diffWords","diffWordsWithSpace","diffLines","diffTrimmedLines","diffSentences","diffCss","diffJson","structuredPatch","createTwoFilesPatch","createPatch","applyPatch","convertChangesToDMP","convertChangesToXML","canonicalize","_utilMap","_utilMap2","ignoreWhitespace","prototype","diff","oldString","newString","callback","self","done","value","undefined","castInput","removed","added","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","components","oldPos","extractCommon","join","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","canAdd","canRemove","clonePath","pushComponent","buildValues","useLongestToken","exec","ret","count","commonCount","equals","left","right","reWhitespace","test","array","i","split","componentPos","componentLen","component","slice","oldValue","tmp","path","arr","mapper","that","Array","other","n","_base","_base2","characterDiff","oldStr","newStr","extendedWordChars","wordDiff","wordWithSpaceDiff","tokens","lineDiff","trimmedLineDiff","ignoreTrim","retLines","lines","line","lastLine","lastLineLastChar","trim","sentenceDiff","cssDiff","_line","objectPrototypeToString","Object","toString","jsonDiff","JSON","stringify","replace","oldObj","newObj","stack","replacementStack","canonicalizedObj","pop","sortedKeys","key","hasOwnProperty","sort","uniDiff","diffstr","hunks","remEOFNL","addEOFNL","chnukHeader","unshift","oldlength","newlength","substr","hunk","j","apply","concat","_diffPatch","oldFileName","newFileName","oldHeader","newHeader","options","context","patchDiff","contextLines","entry","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","current","contextSize","Math","min","oldStart","oldLines","newStart","newLines","oldEOFNewline","newEOFNewline","fileName","linesAndNewlines","changes","change","operation","escapeHTML","s","emojis","w","ILID","random","EVENTS","ALLOWED_NODE_TYPES","type","String","NodeList","HTMLCollection","toLowerCase","toArray","collection","l","inArray","indexOf","proxy","arguments","eventName","handler","listener","remove","events","addEventListener","attachEvent","Callbacks","callbacks","off","trigger","defaults","tIndex","images","pending","proper","broken","isPending","isDone","isFailed","cl","nodeName","nodeType","getElementsByTagName","progress","isBroken","doneLoading","clearTimeout","terminate","imgLoaded","imgLoadedHandler","tmpImg","img","pendingIndex","src","check","il","complete","naturalWidth","createElement","Paste","createHiddenEditable","dataURLtoBlob","isFocusable","jQuery","paste","pasteContainer","console","log","mountNonInputable","_container","pastableNonInputable","len","_pastable","pastableTextarea","mountTextarea","pastableContenteditable","mountContenteditable","dataURL","sliceSize","b64Data","byteArray","byteArrays","byteCharacters","byteNumbers","contentType","ref","atob","charCodeAt","Uint8Array","Blob","height","position","overflow","hasTabindex","fieldset","focusableIfVisible","mapName","parentNode","href","disabled","closest","_target","nonInputable","appendTo","_this","ev","textarea","ctlDown","ref1","DataTransfer","getOwnPropertyDescriptor","insertBefore","ref2","keyCode","metaKey","_textarea_focus_stolen","_paste_event_fired","curEnd","curStart","prop","val","setSelectionRange","contenteditable","clipboardData","file","k","len1","reader","ref3","originalEvent","items","FileReader","onload","_handleImage","result","readAsDataURL","getAsFile","getAsString","string","types","getData","_checkImagesInContainer","files","URL","createObjectURL","loader","message","Image","crossOrigin","blob","canvas","getContext","drawImage","toDataURL","onerror","cb","timespan","floor","insertAtCaret","myValue","selection","sel","createRange","selectionStart","startPos","endPos","selectionEnd","substring","minInterval","maxInterval","incInterval","tolerate","timer","inc","interval","_pollCb","_errCb","_isPause","oneHandler","_stop","_start","_pause","pollCb","errCb","pause","browser","firefox","navigator","userAgent","macosx","platform","msedge","msie","mobile","overlay","scrolls","webkit","add","instance","autoScrollSize","autoUpdate","disableBodyScroll","ignoreMobile","ignoreOverlay","isRtl","scrollStep","showArrows","stepScrolling","scrollx","scrolly","onDestroy","onFallback","onInit","onScroll","onUpdate","BaseScrollbar","container","isScrollOverlaysContent","getBrowserScrollSize","updateScrollbars","resize","namespace","jQueryScrollbarOptions","destroy","wrapper","removeData","scrollLeft","addBack","isFunction","S","cw","containerWrapper","o","x","y","cssOptions","initScroll","append","abs","scrollWidth","clientWidth","maxScroll","maxScrollOffset","visible","isVisible","bar","kx","handleMouseScroll","isVerticalScroll","mousewheel","touch","touches","originalTouch","pageX","pageY","originalScroll","top","targetTouches","d","scrollCallback","scrollForward","scrollOffset","currentOffset","scrollToValue","_getScroll","delta","wheelDelta","detail","maxScrollValue","deltaX","deltaY","animate","which","eventOffset","scrollbarOffset","scrollbarSize","hasClass","round","_handleMouseDown","eventPosition","initOffset","scrollClass","_updateScroll","cssOffset","cssFullSize","cssSize","AreaSize","AreaVisible","scrollSize","advanced","simple","track","CustomScrollbar","scrollbar","command","args","isArray","timerCounter","force","visibleHeight","visibleWidth","actualSize","outer","inner","ceil","axis","HORIZONTAL_AXIS","wheelDeltaX","label","ch","ch2","CommonUtils","regExpOS","ios","mobileChrome","cellphone","getBaseUrl","getUrl","getHash","hash","getBasePath","getResourceBase","endsWith","redirect2Login","redirectUrl","urlQuery","encodeURIComponent","query","rs","RegExp","isLoginPage","time","isRunning","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","innerWidth","preParse","plainText","txt","parseUsers","atR","isNotExists","getUser","parseUsernames","members","isExitsAll","without","md2html","emojify","html","marked","wrap","diffS","oldS","newS","way","ways","includes","delStyle","insStyle","JsDiff","nodeArr","swap","node","catalog","$e","$headers","pre","link","h","generateDir","uid","$list","prodDir","dir","$l","uniqueId","getCursortPosition","ctrl","CaretPos","Sel","moveStart","setCaretPosition","pos","createTextRange","range","collapse","moveEnd","isAbsUrl","escape","encode","unescape","charAt","fromCharCode","openNewWin","end","delay","authorities","authority","isSBCcase","str","isHanzi","getByteLen","abbreviate","maxLen","isMail","mail","emailRegex","isIE","isIE11","ActiveXObject","isIOS","isMobileChrome","isCellphone","isMobile","isChrome","isSafari","isFirefox","isOpera","diffHtml","tags","tag","encodeHtml","decodeHtml","Config","initHttp","json","param","http","withDefaults","credentials","headers","withInterceptor","request","req","requestError","response","resp","ok","status","responseError","initToastr","positionClass","preventDuplicates","initMarked","renderer","Renderer","listitem","sanitize","prot","decodeURIComponent","out","isChatLink","isCommentLink","codespan","code","lang","escaped","codeBk","highlight","langPrefix","setOptions","breaks","highlightAuto","initAjax","ajaxSetup","cache","exceptUrls","ajaxSend","jqxhr","isNotInExceptUrls","every","lastIndexOf","ajaxError","initGlobalVar","bs","colorHash","initAnimateCss","animateCss","animationName","animationEnd","one","initEmoji","setConfig","img_dir","initModaal","modaal","close_text","close_aria_label","confirm_button_text","confirm_cancel_button_text","confirm_title","accessible_title","confirm_content","TestLifeCycle","eventAggregator","created","view","canActivate","canDeactivate","deactivate","inject","globalResources","UserLogin","password","rememberMeRef","checkbox","kdHandler","loginHandler","rm","post","UserPwdReset","pwd","isReq","token","resetPwdHandler","fm","fetch","method","baseUrl","newPwdHandler","fm2","inline","fields","ViewModel","header","identifier","rules","okHandler","AttrAttr","Element","nameChanged","valueChanged","removeAttr","bindingContext","AttrAutosize","newValue","elements","AttrC2cCustomAttribute","_init","clipboard","$tp","hover","hide","AttrDimmer","$dimmer","prepend","AttrDropzone","toType","andSelf","dropzone","paramName","clickable","dictDefaultMessage","maxFilesize","addRemoveLinks","dictCancelUpload","dictCancelUploadConfirmation","dictFileTooBig","formData","uuidName","errorMessage","removeFile","AttrModaalCustomAttribute","fullscreen","overlay_close","before_open","after_open","before_close","after_close","AttrPastable","toId","textStatus","AttrScrollbarCustomAttribute","cls","AttrSwipebox","$img","imgs","initialIndexOnArray","swipebox","useCSS","useSVG","hideCloseButtonOnMobile","removeBarsOnMobile","hideBarsDelay","videoMaxWidth","beforeOpen","afterOpen","afterClose","loopAtEnd","AttrTablesortCustomAttribute","tablesort","warn","AttrTask","task","bindingCtx","AttrTextcompleteCustomAttribute","tipsActionHandler","textcomplete","search","term","keys","template","member","emoji","emojiKey","cr","filter","values","AttrUiCheckboxCustomAttribute","AttrUiDropdownActionCustomAttribute","action","AttrUiDropdownHoverCustomAttribute","AttrUiDropdownCustomAttribute","AttrUiPopupCustomAttribute","popup","silent","jitter","onShow","onVisible","AttrUiTabCustomAttribute","tab","keyCodes","keyHandler","keyState","altKey","alt","shiftKey","shift","originalMethod","KeyBindingBehavior","binding","source","metaKeys","methodName","callSource","updateSource","mode","bindingMode","twoWay","originalName","isInteger","UpperValueConverter","toView","toUpperCase","LowerValueConverter","DateValueConverter","toNumber","Date","NumberValueConverter","isNumber","TimeagoValueConverter","ParseMdValueConverter","SortValueConverter","sortBy","SortUsersValueConverter","SortUsernamesValueConverter","SortChannelsValueConverter","channelAll","UserNameValueConverter","EmojiValueConverter","mkbodyDom","run","Nl2brValueConverter","DiffHtmlValueConverter","allowedTags","allowedAttributes","EmBlogCommentPopup","hoverable","movePopup","prefer","cid","comment","EmBlogCommentShare","shares","desc","searchRef","minCharacters","selectFirstResult","showNoResults","onSelect","_id","_type","inputSearchRef","apiSettings","onResponse","results","shareRef","shareSearchKeyupHandler","removeShareHandler","cancelHandler","shareHandler","ajaxS","blog","chain","EmBlogComment","blogChanged","_refresh","comments","insertContent","page","editHandler","simplemde","codemirror","blogCommentsRef","commentRef","spellChecker","toolbar","toggleBold","className","toggleItalic","toggleStrikethrough","toggleHeadingSmaller","toggleHeadingBigger","toggleCodeBlock","toggleBlockquote","toggleUnorderedList","toggleOrderedList","editor","drawLink","drawTable","drawHorizontalRule","togglePreview","insertTexts","table","previewRender","preview","cm","addHandler","$chatMsgInputRef","markdownRef","initPaste","initTextcomplete","initUploadDropzone","isTipsShow","toTextArea","mde","cursor","getCursor","replaceRange","replyHandler","removeHandler","sending","contentHtml","$paste","domRef","getInputTargetCb","previewsContainer","previewTemplate","innerHTML","removeAllFiles","editTxtRef","refreshHandler","info","eidtKeydownHandler","txtRef","editSave","editCancelHandler","editOkHandler","htmlOld","isZanDone","voteZan","rateHandler","gotoTopHandler","EmBlogContent","getBlog","catalogHandler","blogFollower","getFollower","throttleCreateHandler","createHandler","throttleEditHandler","throttleCopyHandler","copyHandler","mkbodyRef","fixDirItem","feedRef","fixId","preId","dirItemIds","blogShareVm","followerHandler","historyHandler","authHandler","stowHandler","updateSpaceHandler","openEditHandler","deleteHandler","_dir","getMyLog","logs","isNaN","getStow","getMyTags","tagsRef","allowAdditions","onAdd","addedValue","addedText","$addedChoice","onLabelRemove","removedValue","blogStow","emConfirmModal","onapprove","blogSpaceUpdateVm","updatePrivatedHandler","privated","open","blogHistoryVm","blogSpaceAuthVm","sid","fid","dimmerHandler","commentsHandler","openFeedEventItemHandler","isOpen","feedEventItemMouseleaveHandler","refreshFeedHandler","EmBlogHistoryDiff","showHandler","approveHandler","f","fIndex","sIndex","emModal","hideOnApprove","autoDimmer","EmBlogHistoryView","blogHistory","ver","isCurrentVer","restoreHandler","ajax1","hid","EmBlogHistory","refreshHistory","viewHistoryHandler","blogHistoryViewVm","oldHistories","histories","clone","ajax2","diffHandler","list","chks","blogHistoryDiffVm","EmBlogLeftSidebar","blogs","spaces","noSpaceBlogs","spaceStow","calcTree","blogStows","space","_refreshBlogStows","_doFilerDebounce","debounce","_doFiler","leading","refresh","_refreshSysLinks","sysLinks","when","getSpaces","getBlogTree","b","spaceToggleHandler","editSpaceHandler","spaceEditVm","delSpaceHandler","confirmMd","authSpaceHandler","clearFilterHandler","filterKeyupHandler","toLower","_hidden","EmBlogRightSidebar","dirRef","EmBlogSave","triggerChanged","blogInfo","chk","modal","spaceId","spacesRef","usernames","initSpacesHandler","EmBlogShare","EmBlogSpaceAuth","_isBlog","onChange","authO","chk2","opened","blogAuthorities","spaceAuthorities","auths","forEach","share","EmBlogSpaceCreate","ajax","ppRef","EmBlogSpaceEdit","description","EmBlogSpaceUpdate","EmBlogTopMenu","toggleHandler","logoRef","blur","createDate","targetId","searchBlurHandler","isSearchFocus","searchFocusHandler","userEditHandler","userEditMd","logoutHandler","searchKeyupHandler","EmBlogWrite","NAME","blogTitleInputKeyupInit","once","keyup","save","_editInit","_writeInit","ccid","cdid","ms","_copyInit","toggleSideBySide","toggleFullScreen","close","isKey","EmChatAttach","tabRef","tabPath","moreHandler","_listByPage","nextPage","moreCnt","attachs","tabClickHandler","searchHandler","keyupHandler","EmChatChannelCreate","activeTab","nameRegex","news","old","oldName","_getOldName","channelJoinVm","hideDimmer","EmChatChannelEdit","channelChanged","chkSet","EmChatChannelJoin","_getChannels","joined","joinHandler","leaveHandler","EmChatChannelLinkMgr","links","delHandler","oldTitle","oldHref","updateHandler","EmChatChannelMembersMgr","membersOpts","showDimmer","owner","membersRef","initMembersUI","EmChatChannelMembersShow","EmChatContentItem","defaultBindingMode","$c","findLast","notifyRendered","creatorNameHandler","likeHandler","isLike","isZanVoted","isCaiVoted","EmChatInput","initSimpleMDE","chatInputRef","initDropzone","inputRef","chatBtnRef","chatStatusBarRef","previewTemplateRef","textareaDom","autofocus","autoDownloadFontAwesome","markdown","sendChatMsg","setCursor","sendChatMsgHandler","EmChatMemberPopup","creatorName","EmChatMsgPopup","chatMsg","EmChatScheduleEdit","actorsOpts","actors","startRef","endCalendar","endRef","startCalendar","actorsRef","titleKeyupHandler","clearStartDateHandler","clearEndDateHandler","calEvent","scheduleEditRef","toDate","titleRef","startDate","endDate","EmChatScheduleRemind","headOffset","reminded","_pollCheck","getTime","_desktopPuh","EmChatSchedule","scheduleRef","fullCalendar","_getEvents","unix","center","defaultDate","defaultView","editable","eventLimit","navLinks","timezone","dayClick","jsEvent","isPopupShowForDayClick","addRef","eventClick","scheduleEditVm","eventMouseover","eventMouseout","eventDrop","revertFunc","_updateDate","eventResize","EmChatShare","EmChatSidebarLeft","usersChanged","_filter","channelsChanged","loginUserChanged","overrideCtx","hidden","chatToUserFilerKeyupHanlder","selectedChannel","channelEditMd","membersMgrHandler","channelMembersMgrMd","membersShowHandler","channelMembersShowMd","switchHandler","addChannelLinkHandler","sysLinkMgrVm","isSubscribed","subscriber","subscribeHandler","isSub","EmChatSidebarRight","forAction","forShow","headerMapping","_mappingActionShow","chatChannel","chatAt","chatAttachVm","chatScheduleVm","isHover","searchItemMouseleaveHandler","searchItemMouseenterHandler","gotoChatHandler","openSearchItemHandler","searchMoreHandler","searchMoreP","removeStowHandler","chatStow","removeAtHandler","chatAtId","EmChatSystemLinkMgr","EmChatTopMenu","chatToChanged","chatToDropdownRef","_refreshChannelLinks","channelLinks","activeType","newAtCnt","initSearch","v","parseJSON","searchSource","onResults","searchInputRef","isExists","searchingP","toggleRightSidebar","filterChatToUser","initChatToDropdownHandler","$choice","searchRemoveRef","isActiveSearch","sibebarRightHandler","asShow","clearSearchHandler","showStowHandler","ajaxStow","stowChats","showAtHandler","ajaxAt","showWikiDirHandler","showAttachHandler","showScheduleHandler","viewOrMgrUsersHandler","channelInfoHandler","userInfoHandler","stopImmediatePropagationHandler","mailToHandler","chatUser","channelLinksHandler","channelLinksDdRef","channelLinkMgrVm","openChannelLinkHandler","EmCheckbox","checkedChanged","signal","onChecked","emCheckboxAll","refreshCheckedStatus","onchecked","onUnchecked","onunchecked","onchange","EmConfirmModal","md","closable","allowMultiple","onApprove","onDeny","ondeny","EmDropdown","selectedItemChanged","menuItemsChanged","isEmpty","selectedItem","initDropdownHandler","EmHotkeysModal","EmModal","observeChanges","onshow","onvisible","loading","dimmer","EmUserAvatar","userChanged","_calcNameChar","cs","rgb","bgColor","color","lastChar","nameChar","avatarRef","EmUserEdit","frm","_chkOk"],"mappings":"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DJ,AEEA,ACFA,EPQI,AKNA,AJIA,WDEA,GINA,ECAA,EDAG,CHIH;ACCJ,AMPA,EJGQ,AEAJ,ACFA,CLMD,MACC,IKPA,CHEgB,MFMZ,MAAK,GINT,EJMc,CENV,OFMkB;AFE1B,AKNA,AJIA,AQTA,EHII,AJMQ,AKRR,ACDA,YHIW,AJKX,AOTA,IDCA,ELQQ,GINR;AFJJ,ACMA,AKNA,EVYI,ACDI,AKNJ,ACFA,AEFA,YJKW,AILX,ELCA,CCIc,GLMd,AIVG,ACIc,AJKb,AKNJ,OCFA,EHCI,MCE4B,GAAG,EDD3B;AFUZ,ASdI,AHDJ,ERaI,AIPY,ACCZ,ACDA,ACFA,CLWD,KAAM,KITL,CJSW,CGRX,GEHA,CCFA,GGDC,GAAG,CPKQ,CJOZ;ACJJ,AWTA,AHAA,EHOI,AJSA,ASdI,AHCA,YPOJ,AKHA,AEJI,GGDA,CFAJ,EPcA,YDJI,IAAG,KAAK;ADIhB,AIhBA,ACUA,AQVA,ANAA,ENaY,ACIR,ASdI,ACFJ,AJGI,ACDA,YJOO,AMPP,AFAA,CRUI,AMRR,ACDI,CJMJ,ECAc,AOTd,GVgBA,IFDqB;AMNzB,AQVA,EdiBI,AINI,ACAJ,AJGQ,ACIR,AUhBA,ACDA,ANKI,ACDA,ACDA,WLOA,CGLA,CDIQ,AGNR,GTaJ,ECHQ,CWZR,AEDA,GZiBA,CMbI,CHMJ,WQVA;AFAA,AIDJ,EdeY,AKJR,AJQA,AWNA,ACXI,APKA,ACDA,ACDA,MRUI,GMRJ,MMMJ,ECXI,ECDJ,APKI,CGLH,GLUD,AKVI,AFIA,MPcJ,ASfI,IAAG;AXgBX,AIpBA,ACcA,AOdA,AIAA,EfgBY,AKJR,AKPQ,AESR,ACXI,ACDA,ARMA,AEFA,QRUI,CYFR,GRAW,AMTH,EPQR,AQVA,AIFA,EXac,ASXV,CPKA,CHKD,AQVA,CGDC,ANIA,GTckC,CMRtC,KFCa,KAAK;AFStB,AerBI,EjBqBI,AIRA,ACCJ,AJEQ,AKJR,AMNI,ACQJ,AGbI,ATOA,CLaL,EFDI,GECE,GFAA,EaPL,CPFA,AJSW,GERP,AHGI,AWVJ,GVeY,AKbZ,CSPA,ACDH,GAAG,KZcJ,AYdS;ANAT,AIDJ,AGAA,EZcI,AJSA,AWPA,AIdI,AVQA,EPaI,KMTR,AOEO,EXOE,EAAT,OKbI,CQNJ,CJHC,GAAG,CXsBI,CaPR,IFTI,KMLA;AbFR,ACkBA,AJCQ,AWnBR,AIAA,AGAA,EbeI,AJSA,AWPA,AEZI,AEKA,ACTJ,ElBuBQ,MaPA,CPFR,GDGW,AJRX,AgBAI,ACTJ,EdeA,AFQA,AUrBA,AICA,GDCI,CXWD,AQbA,GZqBK,IIRG,ASCX,EDbI,GXeC,GWfI,GXgBD,IAAG,EWhBO,GXgBF;AmBnBhB,AbDJ,EHiBQ,ACEJ,AJEY,AKLZ,AJSA,AUpBQ,ACaR,AEZI,ACDA,ACMA,ACTJ,ShBuBA,AedI,GGVH,CPiBD,ANNA,CNSY,CmBpBR,CdeJ,AMXQ,AGCJ,CCDA,IXcJ,IajBA,EdeI;AOhBJ,AUDJ,ErB0BQ,AMTJ,AJSA,AWPA,AGbI,ACMA,ACTJ,AEDI,AbWA,GPQD,IiBTC,EjBcC,EEAL,GWPA,CKhBA,AEDI,CJIA,CKLJ,GVAC,GAAG,AUAC,GfgBL,GKPI,EJGA,EIHG,OAAO,WAAU;APV5B,ACsBA,AJKA,AW3BA,AUCI,EhBiBA,AJSA,AShBQ,AMEJ,ACTJ,AEDI,ACDA,ErByBI,MiBdI,CCTZ,GbkBW,AenBP,EhBgBJ,ACGY,AOnBZ,IVwBA,AUxBG,CSDC,ACDH,GAAG,EtB0BI,CWhBA,AMEJ,EXKJ,AMVI,CUNA,IAAG;ATAP,AGFJ,AOAA,AhBAA,EHoBQ,ACGJ,AJKA,AKTA,AKPQ,ACHA,AKKJ,ACTJ,AIFQ,EtByBA,QMTR,EgBhBQ,CVMA,AMJR,AXUA,CFQA,AWfA,CfoBA,EY1BoB,ANajB,CHKC,AYZD,GhBoBK,GWhBA,AKHJ,CCKA,EDLG;AdqBX,AkB7BI,ACDJ,AGAA,EpBqBQ,AHQJ,AKTA,AKPQ,AEVJ,AGOI,ACKJ,ACTJ,AXUI,OMbO,CKGH,IELP,GJSO,AITJ,ECGJ,CjBiBI,GgBjBA,CnByBJ,GY1BI,AKGJ,AEFO,AbYH,CIHI,AMEJ,GXKJ;ADMJ,AHKA,AUrBY,AaTR,EzB6BI,AIRA,AHQJ,AKTA,AKPQ,AOPR,AEFQ,ACAJ,GrBgBD,GMAH,GNSK,AIRD,GCIO,AerBH,EfqBI,AOvBZ,CaFC,GbEE,ASEC,AIJA,SbOA,AaPS,KxB6Bb,AwB7BkB,GPMlB,CNGS,UDID;AEVJ,AIDA,ASDJ,AnBFJ,EHuBQ,ACIJ,AJIA,AKTA,AJUA,ASjBQ,ACJI,AaTR,EzB6BI,MIRI,CCIZ,IETA,IAAG,EIHK,GLOR,AOlB8C,AIDA,ASDJ,CnBgBjC,CPaD,CIRJ,AqBrBA,CxB6BJ,ICCA,CUrBY;AMHZ,AEAA,ACRJ,AMCI,EtB2BA,AJIA,AWpBY,ACuOhB,AItGA,AQ1IQ,AC8ER,AnB9DQ,EPaI,UoBxBP,AKLG,CEFH,EtB2BD,AqB3BY,CCAR,CTOgB,AGDpB,ERLoB,Eb8BZ,AiB/BP,AIME,CMNO,EVAN,CLWQ,ALOR,GcZO,CJNF,ChB+BT;AGFI,AELR,AKxBI,AiBDJ,EvB6BI,AapBI,AEAA,ACDA,AIJA,AEFA,EdGI,AIDA,ASDJ,MRMA,CEAS,EAAT,CKLA,CnBqBQ,CFNZ,ACUA,AYzBQ,EUFJ,IhBDH,GAAG,AEII,CaFJ,CEFJ,ExB6BK,AiBtBD,EVSA,ELQyB,EKRtB,KACC,MPaA;AHIZ,AWzBY,AiBPA,AtBHZ,EHgCgB,ACFZ,ACJA,AKPY,ASTR,AOPA,ACDA,EFEA,KrB0BJ,ECJA,EchBI,ChBsBQ,CGXZ,CKlBA,AcCI,ACDA,GCDA,ArBmBD,CKlBA,IiBA+C,CtBkBzC,GIFG,CCXR,ILac,KKXT,MAGG,SACI;AMdpB,AOMY,AKNZ,E1BiCgB,ACFZ,AJKA,AKTA,AMZoB,AKVZ,AWFJ,ACMR,AtBaQ,EmBjBA,MpBsBJ,IoBtBI,EdUgB,ALOhB,CkBrBH,CGEG,EvB4BJ,AoB9BI,EPUJ,CDVC,EhBmCD,CgBnCI,GQAS,ERAJ,AYAT,CzBgCY,A0BhCZ,ELAkB,CIAf,CCAA,GbIM,AQAL,CIHA,KJIK,AIJD,ACAJ,KDAS,ACAL,MAAO,IAAG,OAAO;A9BsC7B,AWjBI,AEfA,AORJ,AOAA,AIAA,E3BkCgB,ACFZ,AapBI,AOLQ,AKJJ,EbII,AYHA,UTQZ,ASRY,CXQR,AOLQ,AEFZ,AGFQ,CbII,GUFT,CtB2BH,EMTC,EEfyC,CcHjC,oBvB6BG;AHKhB,AKTA,AMZgB,AgBlBhB,AIAA,AzBAA,EPyCI,AINY,ACFZ,AMTI,AE2NR,AOtOQ,AOPA,AILJ,SpBuBa,EAAT,EJAJ,CKrBA,AeGI,EPOA,CWZJ,AxBuBG,CFSH,AO9BG,CoBFH,MJIA,CrBmBa,CKhBT,EgBHD,I5BoCH,C4BnCI,CxB6BQ,CQzBH,MAQI,CgBXL;AVOA,AORA,ACGZ,AITA,AGCI,E7BmCY,ACFZ,AJMA,AKTA,AKNI,ACNY,AeZZ,ACCQ,AGNZ,ACAI,AzBuBA,EMhBA,IRyBJ,GQzBI,CDUY,CRiBJ,AOXR,ELMJ,CCNI,CkBxBH,AEMG,CILJ,AEDC,ERAG,AOCA,CCDA,CfUJ,CUHY,MHPC,GxBuCb,A6BvCA,ELAkB,EKAf,EZYC,CORA,MACK,AKDL,KAAI,GZSC,GONG,EAAC;AzBoCjB,AiB3CI,AGDJ,AcAA,E9BqCgB,AHIZ,AiB1BY,AONI,ACChB,AIJQ,AGJJ,EpBQA,OoBRA,GbUJ,GhByBY,AqB5BI,ECChB,ETTC,CGaG,AcbJ,EjCwCA,AgBxCI,CJSA,CqBTD,ChBcS,EDdH,EaKD,MbUJ;AZqBR,ACHA,AKlCA,ACAA,AeAA,AKAA,AGAA,A5BAA,EP6CI,ACHA,AgBmEQ,AG9FA,AMJR,AIJQ,AGJJ,ACDA,QjB2GY,IZxEL,AetBH,CONR,ApBkBA,CKxBA,CqBAI,CjC0CJ,C2BpCG,ApBkBA,CKxBA,AkBIK,CJIR,AMVA,CrB0BA,AwBxBA,EROI,CORA,CCCD,ClB0GK,CVlFK,CKnBT,KLmBc,CNelB,GWpBQ,ELKgB,IKLX,CoBnBT;A5BqCA,ACFR,ACHA,AmBvBY,AWZZ,EpC8CI,ACHA,AUfI,ACLQ,AQPJ,AOLA,AKPA,ACAJ,AEAA,A5BwBA,S0BxBA,G5BkCO,A8BlCP,C7B+BQ,CCPR,CaZI,AKfP,AEUO,C3BmCR,AWlBI,ACLQ,EatBR,AOGI,I5BoCsC,AgCvC9C,GnC0CA,CmC1CG,CXAU,KAAK,AWCd,GAAG,EXGH,GWHO,GXUF,UACG,EAAC;ApB0BjB,AQvCA,AICI,ASQJ,AITA,AIAA,AGAA,ErC+CI,AI2JJ,AEtKI,AcnBQ,AKHQ,AEFR,AKPA,ACAJ,AGFI,OJEA,ICAJ,C5BkCO,AqB3BX,EbQA,CYNgB,AEFR,CvBOR,AgBFQ,CgBdA,EpC4CR,AiB9CC,CiBAD,EjBAI,CXmCJ,C4BnCG,GjBAM,GaST,AIPI,KjBaA,UACI,IAAG,MAAM;AZuBrB,AJMA,AU9CA,ACAA,AuBAA,AGCI,A/BDJ,EPgDI,AaHI,AI3BQ,ASLR,AIFA,AELI,ACAJ,ACFI,AGHR,EjCwCQ,M6BnCJ,CDAI,G3BkCG,AiCvCV,CrBiBW,AVYZ,CK3BA,C0BFI,CtC+CJ,AIPQ,AsB5BJ,CIFA,AvBmBD,CK3BA,AyBFH,CxB4CI,CFlBJ,AwBxBA,GDCQ,CCDL,E5B2BU,CKtBT,CDqBA,CwBxBA,G5ByBc,C4BzBX,GvBoBC,SAEI;APchB,ACFA,AmBtCI,AEcA,AYfJ,EvCiDI,ACFA,AUjBQ,ACFQ,AKTJ,ASLR,AIFA,AELI,ACAJ,AEDI,AEJR,ACAI,A/B6BA,WKHY,AoBrBR,C3BkCG,AMXH,AehBJ,ASRI,AEJR,CrC+CA,AMVW,AqBxBV,CpBgBG,CkB9BH,AaCG,CXaA,AGHA,EbOQ,AQlBR,InBsCgB,C2BhChB,IRNS,KAAK,KAiBd,OAAM,KACF,MACI,IAAG,KAAK,MACJ;ApBqBpB,ACFA,AOxCA,AqBAA,AMAA,ExCkDI,AWnBQ,AMXI,AQEQ,AENnB,AMRG,AKLA,ACFJ,EtC+CI,UINO,AiCvCP,ChCqCO,AqBxBV,CdID,E0BnBA,EtBmBY,EgBZR,ACPJ,AMAA,CxCiDA,ACFuB,CKRH,EOnBhB,AqBpBD,CTqBiB,GZDb,CFUC,CuB5BJ,KrBmBI,CqBjBA,IjC2CkC,AY1B9B,AqBjBD,KAAM,qBjC2Cb;AGhDR,AQAA,AcSA,AMCI,AGVJ,AEAA,AIGY,AlCHZ,EPmDI,AKRA,ACFA,AOlBY,AIFA,AQEQ,AENhB,AOXQ,AMJX,CRQE,C/BuCC,Q+BvCS,E3BiCb,AoBpBoB,ACXpB,AcVC,CvC+Cc,AMhBf,CPkBA,AIhCA,AEsBA,AMtCA,ACoBY,CwBpBZ,E9B8BG,CK9BA,CKkBS,CUJR,AQdJ,EMAkD,CfY9C,CSZD,EDGS,C9BqCR,AQnCA,EuBAA,GlCyC8B,A+BvCpB,IpBeN,IoBdJ,KpBmBQ,KoBnBA,Q/BsCR;AgCxCA,AKRJ,ACDJ,AGCI,E1CmDA,AIHQ,ACLR,AObgB,ACPJ,AaRJ,ACEJ,AKNI,AGHA,AELJ,AGDA,ACMR,AlCyBQ,ENgBA,SGDI,CkChDP,GzBuBW,AaRJ,AYfJ,ACCJ,CPUQ,C3BgCR,CObgB,AuBtBR,AELJ,AGDA,CEFH,CfiBG,CWdA,CLK0C,ASR1C,GJGG,A/B8BH,CmCjCI,EDAR,IzCmDA,AyCnDG,KACC,KAAI,GxCgDJ,EwChDS;AnC0CjB,AW3CI,AQuBoB,AkBxBxB,E3CqDI,AIHQ,ACLR,AQpBY,AaRJ,ACEJ,AMgHR,AI9HQ,ACAI,ACFJ,ACCA,AEFA,AnCiCA,ENgBA,AwC/CQ,QfaJ,EtBiCA,AiC7CJ,ACAI,AGDI,CnCwCA,AqBzBR,CpBgBA,CMVQ,AYxBX,CeGG,EfHA,AQAH,AMEG,ClC0CJ,AY5CC,AyBCG,ETDA,ChBAA,KAAK,AQAI,KAAK,GRed,EhBmCA,AwBjCA,GzBmCJ,IyBnCU,CRDF,IAAG,AQEH,MRFS,AQGL,IAAG,CREH,IQFQ,MACJ,MAGK;AnBqBzB,AM7CA,AoBUI,AGVJ,ASAA,E5CsDI,AIHQ,ACLR,AYvBgB,AQEQ,ACPhB,AWZJ,AEFA,AGDA,CVOD,CCAK,IIJJ,GJII,AMNJ,ClC0CJ,A2BpCa,EUPT,CpC0CQ,CM1CZ,CRgDQ,EJGR,CYnDG,AKoBa,ASLR,CkBjBR,CTEA,IAAG,GvBKC,EuBAA,GHEU,IpBeN,AaAgB,IOXpB,KpBgBQ,AuBpBJ,IHKA,AGLG,oBvBsBK;AChCpB,AceI,AWdA,AEDJ,AKCI,EzC4DQ,ACdR,AJMA,AKPA,AMboB,AaPI,ACPhB,AMHI,AGLA,AINR,AKHA,OlBiBW,KYlBd,ACIG,CZUH,AkBdA,ChCmBD,CP0BA,AgC7CI,CbyBoB,AEXpB,CKCQ,C3B+BZ,AOdoB,AuBtBR,ASTR,ExC2DI,AoCvDR,AKLQ,ClBmBJ,AWbA,EONO,ChCoBP,AaFI,IbED,AgCpBS,OhCqBR,EgCrBiB,GhCqBb,OAIA,EAAC;Ab+BjB,AiBjCoB,AoBxBpB,AKIQ,AIJR,EzCgDI,AOdoB,ACPJ,AaJR,ACFA,AQTI,AGJJ,ACFJ,ACCH,AKLG,E5CoDA,IkC1CQ,CvBsBQ,CZuBb,AuCnDK,ACCH,GKLL,IhCyBY,AwBnBhB,ASPA,I7BAC,AUoBO,AUbL,ASPA,EzC+CH,AJMuB,CgBrDnB,AqBOI,AIJsC,ChBmBtC,CoBrBJ,CNKH,CDDG,CtBLK,I6BED,I7BaJ,KhBsCsC,KgBrClC,IAAG,MAAM,KAKL,KhBgCuD,GgB9BlD,uBhB8Bb;AGtDR,AEiDA,AmBhDI,AOSA,ACTA,AWDJ,E5C0DI,AYvBoB,AKVA,ASDZ,ACFI,AQTA,AEJR,AEFA,ACCH,AE0KL,AG/KQ,ACCQ,CdMT,C/B6CC,MkC1CQ,CvBsBQ,CoBzBP,CLYD,CUbR,AQNA,C5CoDW,CGpCf,CqBlBC,CQAA,AMMG,ACCH,CdgBO,CDvBJ,CQAA,AWGJ,EFHC,AIGW,CFAV,C5CsDF,C0CzDI,GtC0CA,AqB1CS,AQWT,CSXI,IzCsD0B,AwBtDhB,AOSJ,CULN,GzBoBY,CQPhB,GOJA,IPIM,CrB0BF,CsCvCY,ETQZ,CRMA,AODA,MPEI,ExBmC+C,EwBnC5C,AODH,IAAI,CPCI,MASJ,EAAC,COVQ,IPUH,MxB0BlB,CwB1ByB;ApBsBjC,AQnDA,AyBCI,ElC4CY,AEKZ,AMdoB,AaNA,ACLZ,ACFQ,AKHA,ACNJ,AMNR,AKHA,ACDA,E5CoDA,AyClDQ,KfiBI,IvBsBJ,AQTQ,CPeT,AiClDV,EzBmBD,AYUoB,CpBqBN,A2B/BE,AMnBZ,AIKQ,AGFR,CDCA,ELGA,GDEA,GzBWA,AoBPQ,C3BoCZ,AgCxCO,GzBWA,IyBXO,GzBYN,AaGA,KbHI,GyBZY,ErC8CpB,EY3BQ;AbgChB,AKTA,AY5BoB,AkBxBpB,AEAA,ASAA,E1C8CgB,AEKZ,AOrBgB,AcNR,AMTI,AKJJ,AONJ,E5CoDA,UGXQ,ACMD,GAAG,AQtBE,AwBtBhB,ASPA,I7BAC,AoBOE,ASPA,CXEH,CFYY,ChBdR,EUuBI,AQrBL,AEOC,ASRA,CxCiDJ,AgCxCQ,CtCmDR,CiB7DS,CoBSF,CFMH,EWVI,EXUD,ElBAH,EhByCA,K4CpDA,G5BYI,IAAG,MAAM,KAKL,QAEK,MAEG;AZ2BxB,AOrDA,AaCI,ACmBQ,AMVR,AOVJ,AKAA,E5C+DQ,AIhBQ,AShBI,AIJQ,AUFhB,AMTI,AECJ,AENA,ACCA,AONJ,ACCQ,CdGT,SAAU,E3B2CF,AgC1CH,EjCoCI,AQ5CZ,AkCIY,CzC8CE,AoBpDb,AcCD,E1B6BgB,CD5Bb,AaFC,AEwBI,AkBnBJ,CZUQ,AWTZ,E3BoBwB,CSP0B,ASH1C,ASVN,C5CwDE,CsCnDI,CCHJ,E3BDA,AaPS,AcQR,KdRa,AOSJ,CYHA,GhCkBN,A2BhBM,CdSV,GOJA,IPIM,CbqBE,IapBJ,AODA,MPeI,IAAG,AOXH,MAAK,CPWK;ApBqB1B,ACAA,AoCrDI,EzC0DA,AWnBgB,AaNA,AC+CpB,AM1DoB,ACNJ,AECJ,AGLA,ACHA,AKFJ,ACDA,SZUQ,AYVR,CbgBY,E3B+BL,ECAE,AoB1Cb,CrB0Cc,C8BpCN,CVgBQ,AmB1BZ,ChCgCY,C8BvCf,GAAG,GhBcA,CYFI,AIZA,KAQJ,MHCI,AGDC,SAAS;AtCTtB,ACuDA,AQvDA,AICI,AU2BA,AU5BJ,ASaA,ExC0CI,AMdgB,AaNA,AQjBJ,AKJJ,AIJA,AEDJ,ACDA,E5CoDA,AyBvCQ,MdoBI,IPcL,A4BrCC,CNUX,AelBO,CtCSR,ASCA,AaCY,CrBkCE,AgC/Cd,CZ2BgB,AoB3BZ,G5BPH,AoBOE,EpCoDoB,A2CnDnB,C3BRA,EJoBA,AwBRA,GjC8BA,AEYJ,AWtDS,CJoBF,OACC,AINJ,KhB4CsC,AYtC9B,KTwCJ,Aa7CA,CqBHA,CzBeI,ETiCD,Aa7CA,MAAM,CJeD,IIVJ,KhBsCuD,GgB9BnD,uBhB8BZ;AIJR,A2B7BQ,AG3BR,AIAA,EnC+DgB,AQrBI,ACTI,AIFA,AQKJ,AEPf,AUfO,ACCA,AMLJ,CZAD,C/BmDC,OWnBY,CoBhCH,AYAT,EvC8CO,AoBpBK,CxByBD,EILD,AQvBM,AcJnB,AY3BD,CnC6DY,AahCQ,EoBjBZ,CCCA,CHZR,IAAG,CISC,IJIA,GlC6C8B,A+BnDpB,CGMP,OHWF,EGRG,IHSA,AGTG,GAAG,MACF,ElCyC+C,MkCzCxC,MAAO,IAAG,OAAO,GlCyChC;AKHR,A2BzDI,AScgB,AGfpB,EzCmEgB,ACVZ,AOdgB,AKXI,AeHR,AGRI,AIRR,AKFJ,E3CmDA,WWnBY,AuBtBA,AUXhB,CxC+CA,ACCa,A0B7BD,C5BsCA,AwCxDR,CXVH,EhB+BmB,AsBnBZ,CNZJ,GScsD,KTMtD,IAAG,C3BqCwB,YLI3B,SgCzCyB,MAAM;ApBrBvC,AYwCQ,AC/BR,AWTA,ACCI,AQcA,E1CqDY,ACVZ,ACCA,AW1BoB,AgBXZ,AMRA,AGEY,AEJhB,ACDA,E5CoDA,OgB9BgB,GSrBpB,AYXC,CjCyDD,CQtCA,CwBZA,ACPI,CMWA,CLEI,EnCsDI,AiC5DT,ECSC,AIhBH,AGUG,CpB6B0C,AqBzBJ,CxC4C1C,AoB5CI,CbMA,AwBRA,AKZA,CJgBG,GzBIA,A6BpBC,EJiBA,EZQA,CgBdJ,E7BUI,AoBAA,ChCyCJ,EyBrCS,EbJD,AwBPJ,AKHE,ILGC,CKFH,E7BuBI,I6BtBC,eAEQ;A9BhBzB,AoB+BY,AGHZ,E/ByCgB,AETZ,AOvBgB,AYKJ,ACfA,AOJJ,AIPI,ACGA,AOPR,ACQR,CdVO,CUOqB,QVPX,EaET,EjCTJ,CCkCgB,A6BpBQ,CtCoDZ,CqBpEX,CbEE,AyBaS,CXWA,CD1BR,EnB2DJ,IgCzCY,C1BXR,EaPS,GOSC,EPTI,EbwBV,EqBFA,CRkBA,COdH,KpBYO,AaGC,COXJ,QpBaO,MAAK;APiBzB,AY5DI,AsBDJ,AKcI,E3CmDA,AKJA,AMhBoB,ACPJ,AmBNJ,ACRJ,AEKR,AEZY,AQJR,EpB8BY,AqB3BZ,ITCQ,GzB4BQ,CoBbR,E3B6BD,GAAE,AoBlBG,AczChB,E1BoCgB,AgCzBZ,E5BZH,A2BaA,EvC+CmB,A8BhCpB,ClB5BI,CZ4DiB,ACArB,CwC7CI,CPJA,EtBXK,KsBcD,GtBCJ,CsBDO,INSH,KhBPA,IAAG,MAAM,KAKL,QAaI;AbnCpB,AC8DA,AqBrDA,AYcI,EhCuCA,AMhBoB,AKVA,AkBNpB,AEZY,AEFA,AKDR,ACDA,E5CoDA,A6CjDA,MTCQ,C/B4CZ,C6BhCA,E9BgCW,AqBlDX,AYWC,ElCJD,CC2Ca,IY1BO,A4BtBhB,ExCgDgB,AJIG,AsClDX,AOCR,EzC6CiB,AqB/CjB,ItB4BA,KsBdI,MAAK,CkBdT,C3CmDsC,EWpBtB,GRgBZ,IAAG,SAQC,MAAK,CHJb,KGImB;ACP3B,AQ/DA,AmBoCY,ACnCR,ASoBY,EtCkDI,AERhB,AW1BoB,AQQR,ACfA,ASCZ,AGPI,ACPQ,CPPT,C/ByDC,OqC3CS,CNdA,CGqBb,AGPI,CjCuCO,CJII,CGIC,ASnDhB,CR2Ca,AkC9CD,CtBoBQ,AgBpCnB,CRAA,CC6BW,CO7BR,ASAH,CjBAG,CpB8DgB,CqC9DhB,CrC8DiB,CQ1CjB,E6BpBI,CpC8DR,A2BrCI,CpBLG,CYpBM,EiBWT,CzCuD8B,A+BzDpB,EPTI,CZqBV,G6BVE,CjB6BF,CZnBI,AmBaP,GUtBG,EjBgCK,EZTD,AmBAH,EUfI,QzC8CT,EY5BY;ARyBpB,AOjBwB,AyB/CxB,AOAA,ExCwEoB,AERhB,AOxBoB,AIFA,ASPR,AMMA,ACVJ,AEKR,AGPI,ACPQ,AGII,EzC8CZ,AwBtBY,KQnBD,CPIH,EMMA,CMZR,CjCuCO,EO7DX,CRqEgB,ACRH,AQxBO,AYMJ,AYtChB,AKcgB,CHJJ,E3BfT,AuB6BH,CExBG,AOSH,EvC+CoB,EAAC,AY1BD,CgBXZ,AINJ,E/B2CJ,CMxDI,CyBaG,COJG,EAAC,KhCQH,QX2CJ,CW7BQ,SAKI,MAAK,OAGA;APkBzB,ECAI,AMjBwB,AKTJ,ASPR,AOJJ,AEKR,AEXQ,AKCQ,AELZ,E3CmDA,OyBrCQ,GrBiCD,A8BhCX,G9BgCa,CY1BO,EyBhBJ,GrC0CI,CgC3CZ,ChC2Ca,EOjBG,ENiBxB,AsC/CI,S3CmDA,IgCzCI;A7B5BZ,ACkEA,AQlEA,AmBwCQ,AMxCR,ACAA,EjCkEI,AmBlBY,AQnBJ,AEKR,AEXQ,CLbL,QGwBH,CHxBa,E3BwDF,AiCvCX,ChCuCA,CF/CA,AS4BA,CRmBa,AkChEb,CFqBQ,CZtBP,GAAG,CpBiEgB,EAAC,EkCtDjB,EnC+BA,EqB1CS,GOSC,AOUN,EdnBU,AcmBT,GNSD,ERYA,AcrBM,CPoBT,K5BsBG,AqBdK,IrBcF,SAYC;AQrBJ,AKpDR,ASQJ,AgBeoB,AExBpB,ExC2EoB,ACRhB,AJIA,AKJA,AOnBI,AmBPI,ACXA,AKFJ,ACPQ,Ed4BI,OORC,EAAT,C1B0BR,AoBvDA,ErBuDA,AOhEA,Ca8CgB,CarBZ,E1BzBD,AC6CC,A0B3BQ,CnCsDI,Aa1Ef,A2BmBD,G3BnBI,AyBuBsD,ChBWtD,Id3BA,AKPK,QAeL,CLqCK,IqBvBD,KhBbA,IAAG,MAAM,KAKL,QAmBI;AoBzCpB,EhCoEI,ACAA,AMdY,ACLR,AIPgB,ASNZ,AMMA,AOpBI,AGGQ,AEJhB,E3CmDA,SsClDQ,C1B2BR,CIPgB,EoBlCpB,EX4BQ,CrBgCR,A2B1BQ,CKlCL,EpCgEoB,AyCvEtB,GLoBG,AKpBA,AEoBA,ChCiCQ,GyBjCL,AKpBC,CpCmER,IoCxDI,ILYI,EpCgDJ,CyC5DM,CLYC,GAAG,CKXN,KLYI,CKJC,OLIM,EKAE,ILAK,IAAG,OAAO;AjCzBxC,A6BCI,AKDJ,EjCqEI,ACAA,AOnBI,AIPgB,AQQR,AORJ,AKjBQ,AEHJ,EtCkDR,AyC/CoB,IpC2CxB,K0B1BQ,CMhBR,CrC8Ce,AoC/CC,CjCPhB,CCkDA,AkC9CY,AGGY,CTzBvB,CRAA,CZiDG,AIPgB,CgB1ChB,CRAA,Aa4BA,OlCcA,A6BjBA,ERzBS,ExBwET,GwBxEc,KAwCV,KQVA,C7B+BA,AqBXK,IrBWF,SAeC;AQtBA,AcjBA,AOrCZ,AWDJ,ExC8EoB,ACRhB,ACAA,AW1BoB,AeAZ,AMdA,ACNI,EtCkDR,AwBtBY,IORR,EfAY,IShCpB,AYkBQ,E1B3BR,CaiDgB,CrB0BA,A6B7Ef,ErBEE,CqBFC,AWsBJ,EvC+CA,AkC9CY,CjC8CZ,CoBnCI,AkBZD,IhCfC,AqBkBA,CWHK,MlBcD,EdgBC,OAEI,CXmBT,AgC1CI,MPMK;AbtCjB,ET+EoB,ACRhB,AOfgB,AKXI,ASNJ,AMMR,ACZI,AKFJ,ACNI,AGGQ,AEJhB,E3CmDA,K+B9BI,C3B0BR,CY1BoB,CLWJ,EcjBA,CONJ,CpBcZ,ITgCgB,EwCvDZ,CFvBH,C7BkDG,A0B1BQ,EGxBR,I7BkDK,A6BlDD,CJ8BA,IInBJ,GzC+DA,IyC/DM,KACF,MAQK,SAOQ;ApC6CzB,EOrBY,AYoCZ,AO1CY,ACZI,ESLY,OViBhB,GCZI,E3BuCC,CoC5CW,E7BuBhB,AYnDP,GAAG,SAAS,GnBwEkB,EmBxEb,KAsDV,InBkBiC,GmBlB3B,KACF,MACI,IAAG,OACC,IAAG;ArB1D3B,AC0EA,AOfY,AK1DR,ASQJ,AaTA,EjC0EI,A0B3BQ,ACZI,ERwBY,OnBexB,GDAW,AqB9BX,EtBzBA,AQhBA,AawDwB,CpBeX,AkCxEb,G3BCG,CKFF,Ae8CO,E3B2BY,CYzEhB,CZyEiB,EkC9CjB,EnCeA,AQnCA,AKPK,EsB2BF,ClC8CsB,KY1DzB,CL2CK,CqBxBG,Q7B2BJ,Aa7CA,Ib6CG,Aa7CA,MAAM,Gb4DL,Ea7BA,IAAG,SbgCC,AahCQ,IbgCL,KAAK;ACL5B,AJIA,AYzBQ,ET2BgB,AENpB,AMfY,AKXI,ASaZ,AMdI,AOnBA,OtCkDH,CKJL,A0B3BQ,CpBYa,EAAT,CPeD,EQ5BX,CR4Ba,CkC9CL,EnCoDY,AahCJ,ASaZ,GrBagB,CQrBf,CRqBgB,OAAQ;AACjC,A4B3EI,ASoBY,EtC6DQ,AHFpB,AWnBY,ACNJ,AYSA,AOfA,AOnBA,QnCoDY,CS3BH,EAAT,CRqBG,GAAE,C4B3EZ,AM6BO,Cd7BP,Cb4DW,CqB5DR,ASAH,CjBAG,CpB2EgB,CqC3EhB,CrC2EiB,GqC3Eb,CTyBJ,ERzBS,CpB2EgB,CqChEzB,GjBXc,AOgDV,E/B+BR,EyCpEU,CjBoDD,IiBnDD,CTwBA,KShBK,GjB4CD,MiBjCI,OACI,IAAG,SAAS;ArC4CpC,AY5EI,ASQJ,EtB0EwB,AHFpB,AWnBY,ACNJ,AmBNA,ACZI,AMPJ,AGGgB,EjBgCR,IiBhCQ,KtCiDJ,AQrBR,ACNJ,CRqBG,AqBjCX,GrBiCa,AoBXG,EQ5BJ,EhBrCX,EZ4EmB,CY5EhB,AS4CA,CrBgCiB,G2B3Bb,CfjDC,ChBgFT,EIJ6B,KY7DzB,UACI,IAAG,IsBcH,EtBdS,KA+BL,IAAG,SAAS,KAER,MAAK;AZ4BzB,ACGA,ELCI,AWnBY,AKZQ,ASLZ,AMKA,AUhBgB,QAAA,C9B4BZ,GPeD,ECGE,CDHA,CY3BO,ESLZ,GrBgCY,EAAC,KJIrB,EIJ6B,G2B3BrB;A5BnDZ,AC+EA,ACGA,AOlFA,AoBCI,AMDJ,EtCmFI,AWnBY,AKZQ,AQYZ,ACjBA,AMKA,AUhBgB,ShBWhB,CdiBI,A8B5BY,ErC2Cb,ED5DX,AE+Da,AOnCb,CRgCa,AkC7Eb,CtBkDoB,AgBnDnB,CRAA,EQAG,ChCkFJ,AwBlFI,CpB8EgB,CQrBhB,CRqBiB,E2B3Bb,AOxBJ,EnCeA,A6BFA,ERxCS,Ac2BN,ClCmDsB,C4BtCtB,C3ByCwB,EmBjFb,Ac+BV,KdgCC,MrBuBD,OqBnBI;ErBoBA,ACRZ,ACGA,AMlBY,ACNJ,AINY,ASLZ,AMKA,ACXA,AMTI,EdoCI,SbJJ,AcjBJ,CpBmCR,AOxBQ,GT6BI,AqBnBI,EQ3BR,CMTI,CtBoBQ,EZ2BpB,uB2B3BQ;A/BiCZ,AyC/CoB,EtCkDJ,AELZ,AMlBY,AoBZJ,AOpBI,SjCkDZ,EFKY,KmCvDA,G3BgCA,A8BjEX,GAAG,IAAI,KAWJ,KV0CI,EU1CE,KACF,MAQK,SAkBI,GAAG;ArC4CxB,AQnFA,AICI,ASQJ,AORI,EhCsFA,AKFA,AMlBY,AaHJ,AiBrBY,Q9BwBR,ENkBZ,EDFW,AqBvCX,CgBDoB,C7BIpB,CRoCc,C4BlFb,CRAA,CxBsFD,CgBtFC,AgBAG,CRAA,EZyDA,AIzDA,AS4CA,KT5CK,AgBwCL,ERxCS,EZ2DL,AoBnBD,GRxCW,CRed,EJ4CS,AoBjBL,ERqBC,AQrBA,EPMD,EbWW,CoBjBL,ChB1BN,IAAG,GQsDC,GRtDK,IQsDC,CRvBN,IAAG,AQwBC,MACI,GRzBI,CQyBD,IRvBP,GQwBQ,GRxBH,CQwBM,IRpBP;AbtDxB,ACoFA,A2BzBY,AO3DZ,EjCsFI,AMlBY,ACPA,AINY,ASLZ,AONA,ASAQ,EjB+BQ,QQ/BhB,CPMA,CrBkCD,AQvBC,ET1CZ,AaoCwB,CZ6BV,AkClFd,CdyE4B,CiB/BR,CpC0CpB,I0B3BkD,GO/B9C,EnCeA,EmCfG,K3BwCK,A2BpCJ,QAGI,GnCoDJ,KmCpDW,GnCuDP,IAAG;ACLnB,AJKA,EGCoB,AEJhB,AMlBY,ACPA,AINY,ASLZ,AMgChB,ACtCgB,AMTI,AGSI,EjB+BQ,IxBcxB,GGCY,AsBxCJ,CafI,CjCmDhB,CDFW,GAAG,CQvBF,C6BjBQ,EzBWI,CgBXZ,CDYZ,KpBYY,MoBXR,KPkBwB,OOlBZ;A3B4BpB,EDMoB,AHDhB,AWrBY,AKbY,EeGZ,U3B0BD,GAAG,CY7BU,EhBkCxB,O+B/BY,QpBUA,SRsBI;ACLpB,ACGA,AO3BgB,AatDhB,AORI,AMqCY,AGEQ,EzCoDpB,AWrBY,AKbY,AQMhB,QxB4BR,IILW,AqB3CX,EpB8Ca,AO3Cb,CRwCc,AkCrFd,CNDC,CRAA,EQAG,CRAA,EZyDA,AabA,AgBL0D,CzBkBtC,ELaZ,A2B3CR,ENaA,ERxCS,Ac2BN,E1BgCC,AoBnBD,GRxCW,Ac+BV,G1B4BK,AoBbL,ERiBC,ECfD,CaXK,C1BsBM,OAGN,EYQD,CCnBA,MDmBM,KASF;ArBaA,ACLpB,EJKI,AKFA,AMnBY,ACRI,AILQ,ASNR,AOLJ,AMTI,AG2IpB,EjBjGwB,OxBYpB,EyBxCgB,CrBmCL,A4BxCC,E7B7BZ,CCqEc,AoBPM,CRtBI,KyB1DvB,GAAG,CpC0FJ,EFhDI,CsC1CI,EHsCQ,GG3BZ,OAAM,I9B4DE,CReJ,AsC1EA,MAQK,EtCqED,IAAG,GsCnDE,GAAG,CtCsDH,wBS7BD;ARyBpB,A2BzFA,E5B8FwB,AHApB,AWrBY,AcnBI,AOLJ,ESRY,STQZ,C5BwCD,GAAG,AqChDU,IVgBxB,E/BqCA,CyBxCgB,GtBwCI,K4B/BhB,MpBUQ,WoBTJ,KAAI;A3B0BhB,ACIA,AO9FA,AI6DwB,AsBpBR,EtCsDZ,AyBxCgB,AMUJ,ACfA,WhC6CZ,CILW,AqBnCK,EpBuCH,AO/Cb,CR2Cc,A2BzBF,AO/DZ,ItBDC,GJyDG,AIzDA,GsB2BA,EtB3BK,EsB2BF,E1BgCC,CPkCuB,EiC9DvB,CtBhBJ,EJ4CS,AoBVD,KMTC,C1BmBM,EI3CX,IAAG,CJiDC,IAAG,CIjDE,KA+BL,IAAG,SAAS,KAER,MAAK,KAWA;AboCT,ACNhB,AOfgB,EXoBZ,AKDA,AO5BgB,AILQ,AgBXZ,AMTI,SNSJ,EhBWY,CZ6Bb,AJKX,EKDA,AM5FA,CPwFc,EQxBE,CDhEb,IR8FmD,KQzFlD,G2BkCY,M3BiCP,UAAU,GACN;APgBjB,AqBnFA,AMTA,AUuCoB,EtCmKpB,AHzGI,AKDA,AMnBgB,AqBzBJ,SrByBI,GPeL,ACIX,AoBpDA,GrBgDc,A4BxCF,C7BjCZ,EH8EA,C+BxCA,AUxDC,GhB4CG,AgB5CA,IAAI,GtC0CJ,C4ByBA,CUxDA,OAAM,GhBqCF,EgBpCA,ItC0EA,EsClEK,IhBoCD,KgBlBK,GAAG,SAOA,IAAG;ArC+C3B,AQzBoB,AIJI,AsBpBR,EtCsDZ,AKDA,AoBvCgB,AMWR,AChBI,ASNY,EtCmDR,KEDhB,ELCS,CgC7CG,ChC6CZ,CGAgB,ACLL,CqBnCK,CbXhB,CR8Cc,AkC3Fd,CG6CwB,EVsBhB,CfpEP,GJyDG,AIzDA,GsB2BA,EtB3BK,EsB2BF,E1BgCC,G0B5BA,CtBhBJ,EJ4CS,K0BhBA,C1BgBM,EI3CX,IAAG,CJiDC,IAAG,CIjDE,IJmDA,CIpBL,IAAG,SAAS,KAER,MAAK,KAcA;AZ8BzB,AO9FA,EXmGI,AKDA,AO7BoB,AIJI,AeKhB,AChBI,AMTI,MjCqDhB,E0B5BQ,E/B6BR,EILW,EOZX,CPYc,EY7BU,CJIJ,W0BxBJ,sBNSJ;AP7ChB,AgB8BoB,ErCwDhB,AJKA,AKDA,AMhBI,ACbgB,AmBCZ,AChBI,AMTI,S1BwBI,AmBCZ,E1B4BR,CoBnCA,IdmBI,AqB5BQ,E5BwCZ,AkCjDgB,CG7Cf,CzCmGD,EyCnGI,IAAI,KAWJ,OAAM,KACF,MAQK,SAkBI,GAAG,SAUA,MACI,QACI,IAAG;AtCnDnC,AagEwB,ESChB,AMOI,AChBI,ASJoB,SAAA,IVoBxB,C5BrDR,A6BqCY,CPSR,IThEH,GAAG,Kb0CA,Aa1CK,QAeL,UbqFI,AapFA,IAAG,MAAM,KA+BL,IAAG,SAAS,KAER,MAAK,KAcA,OAEG;AZgC5B,ACIA,AMtGA,ACwEoB,A0BxEpB,EnCsGgB,AanCgB,ASDxB,AOTQ,S7B6CA,GCJD,AY/BiB,ASDxB,EpBoCS,AMjBb,ACtCA,C0B7CA,O1BwDI,EoBDQ,CMPR,M1BUI,CP0CsB,KO1CjB,MAAM,OAMP,IAAG,KAME;AZkCrB,A+B1GA,AUuCoB,ErC4DhB,ACIA,AMjBI,ACbgB,AaNhB,AOTQ,AMPJ,SjCoDR,AoBpCI,KrBgCJ,EObI,AqB5BQ,EpBeQ,CmBhBpB,AONQ,AGlDP,CzCyGiB,EyCzGd,IAAI,IVmEJ,CUxDA,OAAM,CV6DF,IU5DA,EV4DK,IUpDA,SAkBI,GAAG,SAUA,MACI,QACI,IAAG,OAEC,EAAC;AtCrDrC,AasEwB,EZ8BpB,AJOA,AKHA,AO9BoB,AaNhB,AMMQ,ACfA,AMPJ,AGE4B,S7BoBhB,AmBAR,AUpBwB,ChBchC,EpBoCJ,A2B7CY,E7BxCZ,CCiFA,CkChDQ,GtBnDP,GAAG,Kb0CA,Aa1CK,QAeL,EhB2FJ,QGHQ,AavFA,IAAG,MAAM,KA+BL,IAAG,SAAS,KAER,MAAK,KAoBA;ALtEzB,ERyGgB,AEAZ,AWjCwB,ASHpB,AMMQ,ACfA,AMPJ,OjCoDR,AoBpCW,KtBoCC,EQjBZ,S2BnCQ,CbgBJ,EOTQ,gBhBYY,AeGZ;A3B4BhB,AJOA,AY9GA,A6B8DoB,EpC4ChB,AMjBI,AqB5BQ,AMPJ,WjCoDR,CDHW,EQvBX,EoBnBY,AMPJ,E3BmCJ,EXqBc,AY9Bb,E6BlBqD,M7BmBtD,OZ6B6B,EY5BzB;ATlFZ,Aa0EwB,ASJhB,AMMQ,E3B4BZ,AJOA,AY5BY,AoBrBA,ASoHhB,ctCrEI,Ka5GC,AewDD,EnB0BY,A6BlFX,CzBAG,ASqE0C,EgBrE1C,GzBAK,CyBAD,EVmEJ,E3BoCJ,CqC5FI,EzBIA,EgB8CQ,EDWJ,CU7DE,KzBKF,AewDK,AU5DL,IzBIG,ChB8FX,CyClDa,CVeA,Gf3DI,KA+BL,IAAG,SAAS,KAER,MAAK,KAwBA;AXmCzB,AM7GA,A2BAA,EnC8GQ,ACLJ,AJOA,AY5BY,AITY,ASM5B,AMJoB,ACdJ,ESAQ,YrC0CpB,ACIa,AMrBb,AcxBA,Ca9DA,C1BkFY,ET0BR,EsC/CgB,GzBYI,CLepB,CoBbY,AOpBZ,OjCoD0B,OiCnDtB,CNKI,EhCiDZ,CsCtDW,KACC,EAAC;EnCoDT,ACLJ,ACIA,AMnBQ,A2B/BQ,EbWR,AgBPY,ItC+ChB,MEDJ,EoBvCQ,CrBmCR,GOfQ,A2B/BQ,GGII;AzCmDxB,AYnHA,AICI,AgBDJ,E7BgHQ,AEDJ,AMnBQ,QRoBJ,AEDJ,GMnBQ,GCZR,EoBbA,GhBlEC,CJ+EI,EI/ED,KAAK,CJgFL,OIjEA,EJsEI,IAAG,IINH,IAAG,SAAS,KAAK;AZ6B7B,AkChDoB,EnCoDZ,AHGJ,AKJA,AMnBQ,ACNI,AINA,AgBbR,M3B4CJ,EFCI,CQpBI,GPgBG,CY5BC,EsB/EZ,G1BqFY,AoBnBR,OMXA,cACI,IAAG,KACC,EAAC,KAEI,MACG;AbrDxB,AgBRI,EtCkHI,ACLJ,ACGA,AOzBY,AINA,AsBnBY,EtCsDpB,OGFA,AS3BQ,EPyBZ,CLII,AyBrDJ,GrB8CA,AY5BY,IyBjFX,EH8DuB,CG9DpB,IAAI,KAWJ,OAAM,KAwDF,IhBKJ,AgBLO,OACC;A9BrEhB,AqBAA,E7BoHQ,AS3BQ,AINA,ASTJ,AgBJQ,EzCgDZ,QY7BQ,C6BnBI,G9BkBhB,ER4BI,AajCQ,AgBbZ,EPIQ,EOJL,ChCgDoB,GW5BnB,KqBpBQ,KAAK,OhCgDb,oBWxBI;APmBZ,ACGA,AiCpHA,EnCqHQ,AQtBQ,AcpBJ,AOJJ,ASAY,EzCgDZ,OyB5CI,GrBsCG,A4B1CP,ChCgDW,CKHF,CiClHb,EnCmHI,CQtBQ,O2BtCR,OjC2D0B,CLG1B,EyChDY,IHHR,EjCgDgC;AOpH5C,AICI,EbqHI,ACJJ,ACGA,AMrBY,AcpBJ,AaPI,ObOJ,EdoBI,ENqBZ,EiChDY,C1BwBZ,CRqBA,IYjHC,CbqHG,EarHA,KAAK,QAeL,UAgEI,IAAG,SAAS,KAAK,SAIb,MAAK;AgBpFrB,ASCI,EzCwHA,AKHA,AMrBY,ACHR,AITY,ASRR,AaPI,O3B2BA,CNqBZ,GoBzCQ,KbiBJ,AITY,AgBfhB,EMAY,CGrEX,CTqEE,ESrEC,IAAI,GTqEI,ES1DR,GT0Da,IS1DP,ET4DN,EAAC,CSJG,ITKA,ASLG,ITKA,GSAC,EAAC,OAAO;AtCzExB,ACqHA,EOnBgB,AKZI,AgBZJ,AMHA,AGGI,EzCgDZ,SWxBQ,AqBxBA,AMHA,ClC8CD,AJKP,CyChDY,CtCmChB,KavBgB,cbiCZ,UACI,IAAG,OAAO;AECtB,AOzHA,ETyHgB,ACHZ,A4B3CY,AMHA,AGGI,EzCgDZ,MsCnDQ,MnCiDA,AEAC,AO5Bb,CRyBA,GqC3CgB,GzCgDO,CY5BnB,GoBpBQ,O3B8CkB,KLE1B,IKFoC;AMzH5C,AKCI,EbyHY,AEAZ,AO1BQ,A6BpBQ,EzCgDZ,MyChDY,CtC8CJ,AEAZ,ILEe,CWpCf,CCQQ,II/FP,GAAG,ELyFA,GKzFK,IhB2HL,IgB5GA,UAgEI,IAAG,SAAS,GLoBZ,EKpBiB,SAIb,MAAK,KAGD;AZkCpB,A4BrCY,AMpFZ,EjC2HI,AMtBY,AKbQ,AyBXJ,UpC8ChB,AoC9CgB,ErC4CL,EYjCS,CsBtFpB,G3BmGY,IqBjBsC,GMT9C,gBAAe;AnC3EvB,ASAA,ER0HI,AOpBY,AKbQ,AgB0CxB,AMvDY,O3B0BI,OROZ,ACaA,AQ7BA,EoBXA,GhBOoB,GJShB,G0BtBI,INOH,I7BoCD,UAKI,G6BvCI,M7BwCA;AHGhB,AKFA,AoC7CQ,EtC6CY,ACHhB,AOpBY,ACJJ,AITY,EgBJJ,UrBiBJ,ENuBC,A2BxCG,C5BqChB,CDGgB,AapCI,EJSZ,I6BlBsC,UpC6Cf;AiC/C/B,EnCgDgB,AHEhB,AKFA,AMvBY,ACJJ,AITY,AyBuFxB,W9B1EgB,ICJJ,A0BrBP,CjCgDD,EFAgB,AmChDZ,GG9EH,EzB0FmB,AsBZX,CG9EL,IAAI;ArC6HZ,EQzBY,AITY,AsBZhB,EtCkDA,AyChDI,UrC4CG,AJIP,EY7BI,EITY,CyBVZ,QHFJ;AnCgDY,ACDpB,ACGA,AMlIA,AqB6FA,EMZQ,EtCkDA,UIJO,AkC9CP,EnC4BJ,AEqBa,AM1Cb,OX2CuB,GWzCnB,QNwC2B,CFX3B,QHYA,EGPI,SACI,SQzBJ,MR4BS,aQvBL;APuBhB,AQhIA,AI8FoB,EbmCI,AEEpB,AMzBgB,AqBZhB,EhCsCI,SW1BY,CPsBL,CJII,CYvCf,EToCoB,GahInB,GJsGG,AItGA,GXkIJ,C2BrCA,ChB7FS,MhBmIL,EgBpHA,UAgEI,IAAG,SAAS,KAAK,SAIb,MAAK,KAUA;AZmCrB,AkClDI,AG9EA,EtCiIoB,AQvBJ,ACHR,AITY,AgBApB,SrBYgB,EKZI,CZkCT,AQzBH,G0BzBP,CnCmDmB,EmCnDhB,CG9EH,GT8FD,AS9FI,CH8EK,GG9ED,KHiFJ,AGEA,IAAG,MAAM;ArC8CjB,ACIA,EFHwB,AHGpB,AgCtCA,AMbQ,AGEA,YrC6CG,ECIE,EoCjDL,ItC8CY,G6BnCpB,CMbQ,QjCmDuB;ADHnC,ACIA,AMvIA,ACAA,AIiGoB,EgBAhB,EhCsCI,UIJO,AJIP,EKAS,AM/Cb,ACKA,EoBIA,GhBhGC,GJsGG,AItGA,ELyFA,GKzFK,GJwGD,EP8BuB,EO9BpB,CIzFP,SJyFiB,CIzBb,IAAG,SAAS,GLoBZ,EKpBiB,SAIb,MAAK,ELqBL,GKRK,SLWD;AR5GpB,ACoIA,ACIA,AiCzDI,AGWQ,E9BmBY,ACHR,AIRQ,AgBApB,EhCsCI,QgCtCJ,CrBWoB,CPuBT,AQ1BC,ETGZ,AE2Ba,CiCzDZ,EtBmBmB,CsBnBhB,GtCyDmB,CyC9C2B,CHXzC,QAML,CjCmD2B,CFjB3B,IHiBA,MGZI,SAUI;EACI,ACFhB,ACIA,AM3BoB,AqBXpB,AMiBQ,AG8DZ,EzCzCQ,OgCtCJ,I7BoCgB,AHED,CIJf,GkCjBQ,IG5BR,C9BsBoB,IN2BpB,KLAI,KyChDC,GAAG;A7BkBI,AIVI,EbuCA,AEEhB,AM3BoB,AqBXpB,AMiBQ,EG1BI,UtC6CI,AQzBI,EClBpB,IoBOA,ASTY,CzB1FX,GJsGG,AItGA,CXyIJ,IWzIS,GJwGD,IAAG,A0BYH,CtBrGJ,SJyFiB,CIzBb,IAAG,IJ2BE,KI3BO,KAAK,SAIb,MAAK,KAaA,OAEG;AZqCxB,EDCoB,AEEhB,AO/BgB,AIRQ,EyBRZ,UrC4CD,AYpCa,IyBRZ,EpC+CZ,eO/BgB,GT6BA;AHIpB,AW7IA,AqB6FA,AMdI,EnC2DgB,ACDhB,EqC5CY,Y9BLZ,C2BTC,ClC0DD,EDCgB,AmC3DZ,ENsBJ,ASRY,GHdH,C3BWL,O2BLA,YACI,kB3BcA,mBAKI,YAQI;AN6BpB,AO9BQ,AITY,EboCA,ACDhB,AJIA,AW5BoB,A2B3BR,EGOA,OtC6CI,GHGhB,CW5BoB,CN4BP,AOjDb,CR6CA,IYzIC,GJ+GI,AI/GD,AyB6FQ,KzB7FH,EsBsFG,GjCuDmB,GW9H3B,UAgEI,IAAG,SAAS,KAAK,SAIb,MAAK,KAmBA;EbqCD,AHGhB,AKAA,AO9BQ,AIRY,AgBFhB,AMfQ,QnCoDI,CS3BC,EAAT,EZ8BR,GgCxCI,S3BwCJ,iBWtCoB,AsBjBR;AlCqDhB,EDAoB,AHGhB,AY9BQ,A0BzBI,AGMA,OtC8CI,IS3BR,CR2BG,GAAE,AkCpDD,MtCuDZ,AyCxDA,eACK,GAAG,SAMK,KAAK;ApCmDtB,AWjJI,AgB4FJ,E7BiDoB,ACAhB,AJGA,AY9BQ,A0BzBI,EGMI,QAAA,EHNJ,ElCoDZ,ACIa,AO/BL,IT2BQ,Ca7If,CgBwGD,EhCwCA,AgBhJI,CgBwGF,IhBxGO,KXiJsB,GWnC3B,SXmCsC;EFH1B,ACAhB,AJGA,AKCA,AWnCQ,AgBNJ,AMfQ,SlCoDH,EAAT,CkCpDY,InCoDI,A6BrCZ,EhBMI,MhBkCR,CKCA;AOnJJ,EIiHY,AgBNJ,AMfQ,WtBqBJ,EsBrBI,C1B0BZ,MAAK,OoBXD;A7BsCQ,ACChB,ACIA,AoC7DQ,E7B8BA,AILI,AgBNJ,AMfQ,YlCqDD,AYhCH,EbLR,AEyCa,CDJA,CkCrDD,GGLZ,SToBI,CpBWA,GP+B0B,CF/B1B,CsC9BC,GAAG,MtCmCA,GsCzBA,GpCmDwC,GFLnC,EsC7CD,ItC8CI;EACI,ACApB,ACIA,AWpCQ,AsBrBI,AGOI,OzBcR,MyBdQ,CtC8CI,ACApB,IkCrDY,OjCyDZ;AOvJJ,AoB6FA,E5BuDI,AYhCQ,SAAA,EZgCR,GQ9BA,MAAK,AoBRL,GAAE,EpBUE;ATiCJ,AmC1DY,AGNR,ErC4DJ,AQ5BQ,AIJA,AgBNJ,S5BsCK,EAAT,IkCtEC,G1B0CO,A0B1CJ,CGSJ,GtCiE0C,CmC1EjC,EtBsCD,KgBNJ,CM1BA,GGIC,GAAG,MHHA,GGkBA,KHTK;AjC8DjB,EF6CA,A6B1FQ,AMhBY,AGSJ,cpCoDC,EFHT,EsCjDQ,aTOR,AMhBY,CjC6Dc;ADLlC,AQ5BoB,AI3HhB,EX6JA,AoCpDY,EtCiDJ,SEGR,CDNW,CqC9CC,C7BYZ,CTqCQ,Ia1JP,CJqHI,EIrHD,GJuHA,EIvHK,OJyHA,CIXL,MJYQ,MILJ,IAAG,CJKY,OAAM,KACZ;AoB/BrB,AMKgB,ElCuDZ,ACMA,AOlCoB,AINR,AyBZA,SAAA,ErC8CZ,CYlCY,GsBxCX,C1B8CmB,CPkCpB,CiChFI,ENmCJ,GAAE,AMnCO,QAML,YACI,QAYK;ANLjB,E7B6GA,AChDI,AQ5BoB,AINR,AsBrBI,AGSJ,UrC8CZ,KqC9CY,CtCiDR,AS/BgB,AINR,IgBLZ,WMhBgB;AjC+DpB,EDPI,AQ5BoB,AINR,AgBLR,ASPQ,EtCiDJ,KsCjDI,OrC8CZ,ACOa,GFJL,GS/BY,KINR,AgBLR,O3B8C0B;AiC7DlB,ElCuDZ,ACOA,AoCrDY,EtCiDJ,OAAA,CEIR,EoCrDY,GH/BX,GAAG,KAAK,ElC6ET,MkCvEI,YACI,QAeK;A1BrGjB,AI2HoB,AgB9BpB,E5BgEI,ACOA,AiC9DgB,EnC0DR,OCHR,CDGQ,IS1CR,EP8CA,GWnKC,CJqHI,AoBAL,EhBrHI,AgBqHH,GpBEG,EIvHK,IsBqGO,G1B6BR,CIpBJ,QJoBW,IIbP,IAAG,KAIC,QACK;AyBXD,E7BoBJ,AIRQ,AgBLhB,E7B0CI,SAAA,AS7Be,IoBbnB,GhBKgB,CyBpCpB,S7B4CY,M6B3CP,GAAG,SAeA,gBAOI,MACK;ArCgDrB,ACOA,AiC9DoB,EtBoBI,AyBZA,EtCiDZ,MsCjDY,GtCiDZ,CCFG,AYnCS,EX0CP,CiCxFZ,GAAG,KAAK,QAML,CjCkF0B,SAAU,EiCjFhC,QAkBK,MACI;A1BzGrB,AoB6FA,E5BoEI,ACOA,AW1CoB,AsBpBA,AGQA,EtCiDZ,SsCjDY,G7BIpB,A0BZoB,CjC8DpB,CW1CoB,IJRf,AoBGL,GAAE,E7B0CM,AS3CJ,GRyCJ,MQ3BQ,OoBZJ,IpBYe,OAAM;ER4BzB,AQ3BY,AoBZJ,E7ByCA,U6BzCA,MpBYI,KR2BZ,GDEQ;AEOZ,AW5CwB,AsBnBJ,AGQA,E7BoBJ,cPmCC,COnCD,A0BzDX,GAAG,CtB9EH,AyBuFD,GzBvFI,CsB8EK,ItB9EA,IsBoFL,CjCsF0B,EoClFzB,CzBsBD,EyBtBI,IpCkFgC,EiCrFhC,GGkBA,CzBcA,IAAG,AsBdE,KtBkBD,CsBdK,KGGL,EzBYK,IyBPA,OzBWI,UyBXa;ArCiDtC,A4BxCQ,E7B6ER,AE9BI,AOnCY,AITY,AsBnBJ,AGQA,QzBWI,AyBXJ,IrCgDT,EkCxDS,EnCgDhB,AEeJ,AOnCY,CR4BG,G4B5Cf,GAAE,Y7B4CM,M6BxCH,MAAO,I7ByCA,IAAG,MAAM,QAAQ,QAAQ,UAAU,KAAK,QAAQ;ACAhE,A4BxCQ,EpBYQ,ET6BI,UCDL,IQ5BC,CT6BI,ACDD,G4B7Cf,GAAE,kBAKG,OAAQ;A5ByCjB,AY5CoB,AsBZA,AGQA,E7BoBJ,AoBZJ,E7ByCQ,UCDL,A4BxCH,GMhDP,ElCwFc,CDCC,AS7BJ,A0B5DR,CtB9EH,AyBuFD,GzBvFI,CsB8EK,ItB9EA,EZsKmB,EkClFxB,GGIC,CzBsBD,EyBtBI,MHHA,GGkBA,CzBcA,IAAG,AsBdE,KtBkBD,CsBXK,KGAL,EzBYK,IyBJA,OzBWG,OyBXW,GzBWF;AZsCjC,ACUA,EW/C4B,AsBnBJ,AGQA,QAAA,IrCgDT,ECUE,AiClEO,GlCwDL,CYrCS,cX+CM,SAAS,uBAAwB;ADTnE,AQ7BgB,ET8DhB,AEvBI,AW/CwB,UAAA,CX+CxB,CDVW,EQnDX,ETsDI,CCHW,GQnDV,KAED,STqDI,ASvCA,WAAW,OAAM,KAMZ,MACG;AR6BpB,AkC3FI,AG4CY,E7BmBQ,AITI,EbyCZ,OazCY,GZqCb,EQ5BS,C0B/DnB,ElC2Fc,CkC3FX,IG4CkD,CtCmD1C,AmC/FH,QAML,YAiCI,GAAE,GAAG;AlCqDjB,ACWA,EiC/DgB,AG2DhB,SH3DgB,GlCoDD,ECWE,GDXE,IqCnFf,WpC8F8B,IoC7FzB,GAAG,EpC6F+B,OoC9E/B,gBpC8EuD;AOtLnE,ER4KI,ACWA,EoC3DgB,QpC2DhB,GDXA,CQtDA,C6BMgB,K7BNX,KAED,SAcI,WAAW,OAAM,KAWb;ATjJhB,AmC+EI,ElC8FA,AQ3BgB,aAAA,CTgChB,ACLA,CkC9FC,GAAG,KAAK,QAML,CnC8FA,MAAK,KmC7DD,GAAE,GAAG,OAED;AjCkEhB,EFNY,ASjCQ,A0B1BA,WAAA,C1B0BA,EPuCH,WFNL,OEMsB,SAAS,uBAAwB;ADVnE,AqCvFQ,EpCkGJ,AOvCgB,A0B1BA,WjCiEhB,CDXW,AkCtDK,ElCsDJ,KqCxFZ,OrCwFyB,QqCvFpB,E7B2DW,C6B3DR,SAeA,gBAsBI,mBACI,MACI;AtChIxB,ACiLA,EQ5BoB,A0B1BA,AGMQ,SHNR,GlCsDL,EDCX,ACDY,EqChDY,E7BoBR,QR4BS,MDKrB,OAAM;ACJd,ACYA,EFPY,ASjCQ,SAAA,GR4BL,EAAC,ACYC,YFPL,ACLiB,MCYK,SAAS,uBAAwB;ADXnE,AkCpGI,AGuDQ,EpCyDR,AOxCgB,QAAA,EPwChB,EDZW,EAAC,CkCpGX,GAAG,IGuD8C,CHvDzC,GlCoGgB,KkC9FrB,YAyCI,EAAC,MAAM;AnC8DnB,ACRA,EQ5BoB,A0BzBJ,AGmDhB,O7B1BoB,KR4BL,EAAC,IkCrDA,GGvCZ,KrC4FyB,UqC3FpB,GAAG,SA8CI;ArC8ChB,EDQI,ASpCgB,A0BzBJ,EGQI,SHRJ,ClCqDD,EAAC,CqC7CI,GtCqDhB,ASpCgB,QR4BS;ACgB7B,EFPI,ACRA,AQ5BgB,A0BzBJ,SAAA,IlCqDZ,ECec,CO3CE,KToChB;AEQJ,EFPI,ACRA,AqCLJ,StCaI,KCRA,CCec,MoC9Gd,YpC8GgC,GoC7G3B,GAAG,SAiDI,YAAW;A7B1I3B,A0BAA,EnCgMI,AEOA,EoC5DgB,KtCqDhB,OS1EA,C0BeA,CjCkEA,EoC5DgB,E7BrBX,KAED,SAcI,WAAW,OAAM,KAsBb;AR8BhB,EDOI,AEOA,AO3CgB,A0BvBZ,EGMY,MtCqDhB,ICPW,ACcX,GDdc,GkCpDV,CGMY,E7BiBA;AR8BpB,EDOI,AEOA,AO3CgB,A0BvBZ,SjCkEJ,AiClEI,EnC2DJ,CCPW,GAAG,WQ7BE;AR8BpB,EDOI,AEOA,AO3CgB,A0BvBZ,OAAA,GjCkEJ,EDdW,GAAG,GDOd,ISpCgB;AR8BpB,AqCpGQ,EtC2GJ,AEOA,AO3CgB,A0BvBZ,QAAA,IlCoDO,GAAG,GCcd,CoCnHA,K7BwEgB,CToChB,SsC3GK,GAAG,SAsDA,MACI,UACI,EAAC,KAAK;ArC6C1B,EDOI,AEOA,AO3CgB,A6BfI,WpC0DpB,CDdW,GAAG,GqC5CM,G7BeJ,cToChB;ACNJ,AkC/LA,E1BkKoB,A6BfI,UAAA,ErC4CT,GAAG,AkC1Dd,M1B6BgB,M0BxBZ,IAAG;AnC4DP,AESJ,EDfI,AkCrDQ,AGSY,QAAA,KrC4CpB,ECec,CiCpEN,MnC2DkC,WESV;AO1CxB,ETqCZ,AEMI,AiCpEQ,cjCoER,AO1FA,MAAK,KAED,SA6CK,K0BzBD;AlCuDZ,AqC3CoB,EpCyDhB,AO3CY,ETiCR,UCJO,ACcX,GDdc,CDIV,CCJW,EqC3Gf,Y7B8EY,G6B7EP,GAAG,SAsDA,MAQI,QACK,MACG;AHzJxB,ElCoMI,ACcA,AoCxDwB,OpCwDxB,QiC7EA,MlC+DA,AqC1CwB,MHhBpB,IAAG,KAGC,UAAS,KAAM;A1B0BX,EP4CZ,AiCrEY,MjCqEZ,QO7FA,E0BwBY,I1BxBP,KAED,SA6CK,OAEI;ARgCjB,AqC9GQ,EpC2HJ,AO5CgB,UAAA,CP4ChB,CDbW,OqC/GX,eACK,GAAG,SAsDA,MAQI,QAMI;ArC2CpB,AkCxMA,EG8JwB,YrC0CT,GkCnEX,YAKI,AGoBgB,IHpBb,KAMC;AjCuEZ,AO5CY,ER8BR,AkCxDY,c1B3BZ,CPiGc,GDdd,EQnFK,KAED,A0ByBQ,QjCsEoB,CO5CvB;A6BlFL,EpC+HJ,AO5CY,aP4CZ,MoChIA,Y7BoFY,G6BnFP,GAAG,SAsDA,MAQI,QASI;ArC4CpB,AkC5MA,EGiKwB,YrC2CT,CqC3CS,ErC2CP,AkCvEb,YAKI,IAAG,KASC,MAAK;AlC0DjB,ACcA,AO9CgB,E0BzBA,AGcQ,QHdR,IlCyDD,EQvFX,CRuFa,ACcC,GoCzDM,E7B5Cf,KAED,QPmG4B,COhDvB,MAEI;ERiCb,ACcA,AO9CgB,A6BXI,U7BWJ,A6BXI,WrC2CpB,ICcA;AiC5NJ,ElC+MI,ACcA,AoCzDoB,SAAA,CrC2CpB,ICcA,CiCxFA,YAKI,IAAG,KAYC,IAAG,OAAO;A1B2BV,EP6CR,AiCvEY,YjCuEA,AiCvEA,E1BjCZ,MAAK,KAED,SAyDK,8BP6CT;ADZJ,AqCzHQ,EpCsIJ,AO7CY,A0B1BA,S1B0BS,EAAT,CRgCD,GAAG,AkC1DF,GlC0DK,CqC1HjB,GrC0HoB,ECapB,UoCtIK,GAAG,SAsDA,MAQI,QASI,WAKI,OAAM,SAAS,WAAW;ArC8ClD,ECaI,AO7CY,A0B1BA,AGaY,UpC0DxB,EDbW,GAAG,AkC1DF,GlC0DK,AQhCL,IRgCQ,IqC7CI;ErC8CxB,ACaA,AO7CY,MAAA,ORgCZ,aCaA;AiCjOJ,AGyKoB,EpCyDhB,AO7CY,UAAA,K0BhDZ,IG7CA,IpC0IA,IiCxFI,IAAG,GGjDF,EH6DG,CG7DA,GH6DG,MGPH,CHOU,KAIN,AGHA,QAkBK,CHfG;AlC6DxB,ECYI,AO7CY,A0B3BI,AGeI,S7BYR,GRiCD,GAAG,AkC5DE,GjCwEhB,WoCzDoB;ArC8CxB,ECYI,AO7CY,A0B3BI,AGeI,WHfJ,ClC4DL,GAAG,GqC7CM,C7BYR,oBP6CZ;ADXJ,ECYI,AO7CY,QAAA,IRiCD,GAAG,qBCYd;ADXJ,AkC1NA,EjCsOI,AO7CY,YRiCD,GAAG,AkCrFd,YAKI,IAAG,GjC4FP,AO7CY,E0B1BJ,OAAM,KACF,IAAG,SACC,MACI;ElCyDpB,ACYA,AO7CY,A0BvBY,gBlCwDxB,AkCxDwB,U1BuBZ,SP6CZ;EACA,AO7CY,A0BvBY,kBAAA,ajCoExB,EO7CY;ARmChB,EQlCgB,YRkCD,aQlCC;AP+ChB,AiC3OA,ElC+NI,AQlCY,URkCZ,KCYa,AiCtGb,MjCsGoB,MiCjGhB,IAAG,KAqBC,GjC4E8B,IiC5ExB,C1B8BF,I0B7BA,IAAG,SACC,MACI,QAGI,MAAK;AjCuEjC,EO9CgB,A0BxBgB,ejCsEd,GiCtEc,ejCsEG,GO9CnB,cP8CqC;ADVrD,ECWI,AiCtE4B,QAAA,IlC2DjB,ACWC,GDXE,kDCWd;AOzCJ,ER+BI,ACWA,AiCtE4B,SAAA,MlC2D5B,UCWA;EDVA,ACWA,AO1CA,YP0CA,MDXA,AQ/BA;ERgCA,AQ/BA,iBR+BA,IQ/BA;AP4CJ,EDZI,AQ/BA,SAAA,MP2Cc,GDZd,eCY+B;EDX/B,ACYA,AO3CA,OAAA,GR+BA,CCYA;EACA,AO3CA,QAAA,GP2CA;ADVJ,ECWI,AO3CA,OP2CA,IO3CA,CRgCW,GAAG,GAAE;EAChB,ACWA,AO3CA,URgCA,KCWA,GO3CA;EP4CA,AO3CA,iBP2CA,QO3CA;ARkCJ,ECUI,AO3CA,WP2CA,CDVW,GAAG,GAAG,IAAG,aQjCpB;ERkCA,aAAA;ACYJ,AO7CI,iBP6Cc,OO7C4B,WP6CX;ADTnC,ECUI,AOTJ,YRDe,ACUX,GDVc,GAAG,IAAG;EACpB,ACUA,EO9CI,cRoCJ,ACUA,AO9CI;EP+CJ,UAAA;ADRJ,ECSI,MAAA,MDTW,GAAG;AQnClB,ERoCI,ACSA,UAAA,MDTA;EACA,AQpCA,eRoCA,AQpCA;EACA,SAAA;ARsCJ,ACWA,EOhDI,OAAO,KRqCI,GAAG,ACWA,GDXG,AQrCjB,IRqCoB,WCWW,SAAU;EDVzC,ACWA,AOhDA,QAAQ,GPgDR,EDXA,YQrCA;EPiDA,eAAA;ADTJ,AQrCA,EP+CI,SAAA,GDVW,GAAG,GAAG,IAAG,AQrCkB;ERsCtC,AQpCI,SAAC,ORoCL,WQnCQ,yBACI,MAAK;AP8CrB,IO7CoB,aP6CF,CO7CE,iBP6Ce,SAAU;ADT7C,ECUI,EO7CgB,QP6ChB,EDVW,AQnCK;ERoChB,ACUA,gBAAA,cDVA;EACA,ACUA,AO3CI,SAAC,CP2CL,IDVA,cQhCQ,yBACI,MAAK;ERgCjB,EQ/BgB,aR+BhB,CQ/BgB;AP2CpB,IO1CoB,UAAA,GP0CF,kBAAiB,SAAU;ADT7C,ECUI,SAAA,GDVW,WAAW,IAAG;EACzB,AQ/CA,SAiBI,IR8BJ,qBQ7BQ,MAAK;APyCjB,IOxCgB,aPwCE,AOxCF,kBPwCmB,SAAU;ADT7C,ECUI,UAAA,EDVW,WAAW,IAAG;EACzB,gBAAA;ACYJ,iBAAkB,kBAAiB,SAAU;ADT7C,ECUI,QAAA,IDVW,MAAM;EACjB,iBAAA;ACYJ,iBAAkB,kBAAiB,SAAU;ADT7C,ECUI,SAAA,GDVW,MAAM;AACrB,cAAe,MAAM;EACjB,yBAAA;ACcJ,EDbI,eCac,EDbd,gBCa+B,SAAS,uBAAwB;EAChE,WAAA;ADXJ,cAAe,MAAM;ACcrB,EDbI,eCac,UDbd,QCa+B,SAAS,uBAAwB;EDZhE,ACaA,UAAA,mBDbA;;AAGJ,cAAe,MAAM,GAAE,UAAU;EAC7B,yBAAA;;AAGJ,cAAe;EACX,eAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,MAAO;EACtB,yBAAA;EACA,cAAA;EACA,WAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;;AAGJ,cAAe,KAAI,MAAO,KAAK;EAC3B,cAAA;EACA,WAAA;;AAGJ,cAAe,KAAI,MAAO,KAAK;EAC3B,WAAA;EACA,cAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI;EACf,WAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,aAAc;EAC7B,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;;AAGJ,cAAe,KAAI,aAAc,KAAK;EAClC,cAAA;EACA,kBAAA;;AAGJ,cAAe,KAAI;EACf,WAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,YAAa;EAC5B,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,iBAAA;;AAGJ,cAAe,KAAI,YAAa,KAAK;EACjC,SAAA;EACA,iBAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,WAAY;EAC3B,gBAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,YAAA;EACA,iBAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,YAAa;EAC5B,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,iBAAA;;AAGJ,cAAe;AACf,cAAe;EACX,yBAAA;EACA,yBAAA;EACA,8BAAA;EACA,aAAA;EACA,cAAA;;EAEA,mBAAA;EACA,qBAAA;;AAGJ,cAAe,IAAI;EACf,8CAAA;EACA,mBAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;;AAGJ,cAAe,WAAW;AAC1B,cAAe;EACX,yBAAA;EACA,yBAAA;EACA,8BAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,iBAAA;;AAGJ,cAAe,IAAI;AACnB,cAAe,IAAI;EACf,6BAAA;EACA,mBAAA","file":"app-bundle.js","sourcesContent":["import 'tms-semantic-ui';\r\nimport 'semantic-ui-calendar';\r\nimport 'jquery-format';\r\n\r\nexport class App {\r\n\r\n constructor() {\r\n this.init();\r\n this.initCalendar();\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_APP_ROUTER_NAVIGATE, (payload) => {\r\n this.router && this.router.navigate(`${payload.to}`);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n init() {\r\n\r\n $.fn.dropdown.settings.forceSelection = false;\r\n\r\n // ui form 验证提示信息国际化\r\n _.extend($.fn.form.settings.prompt, {\r\n empty: '{name}不能为空',\r\n checked: '{name}必须被勾选',\r\n email: '{name}必须是正确的邮件格式',\r\n url: '{name}必须是正确的URL格式',\r\n regExp: '{name}验证格式不正确',\r\n integer: '{name}必须为一个整数',\r\n decimal: '{name}必须为一个小数',\r\n number: '{name}必须设置为一个数字',\r\n is: '{name}必须符合规则\"{ruleValue}\"',\r\n isExactly: '{name}必须精确匹配\"{ruleValue}\"',\r\n not: '{name}不能设置为\"{ruleValue}\"',\r\n notExactly: '{name}不能准确设置为\"{ruleValue}\"',\r\n contain: '{name}需要包含\"{ruleValue}\"',\r\n containExactly: '{name}需要精确包含\"{ruleValue}\"',\r\n doesntContain: '{name}不能包含\"{ruleValue}\"',\r\n doesntContainExactly: '{name}不能精确包含\"{ruleValue}\"',\r\n minLength: '{name}必须至少包含{ruleValue}个字符',\r\n length: '{name}必须为{ruleValue}个字符',\r\n exactLength: '{name}必须为{ruleValue}个字符',\r\n maxLength: '{name}必须不能超过{ruleValue}个字符',\r\n match: '{name}必须匹配{ruleValue}字段',\r\n different: '{name}必须不同于{ruleValue}字段',\r\n creditCard: '{name}必须是一个正确的信用卡数字格式',\r\n minCount: '{name}必须至少包含{ruleValue}个选择项',\r\n exactCount: '{name}必须准确包含{ruleValue}个选择项',\r\n maxCount: '{name} 必须有{ruleValue}或者更少个选择项'\r\n });\r\n }\r\n\r\n initCalendar() {\r\n $.fn.calendar.settings.text = {\r\n days: ['日', '一', '二', '三', '四', '五', '六'],\r\n months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n monthsShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n today: '今天',\r\n now: '现在',\r\n am: '上午',\r\n pm: '下午'\r\n };\r\n\r\n $.fn.calendar.settings.formatter.date = function(date, settings) {\r\n if (!date) return '';\r\n var day = date.getDate();\r\n var month = date.getMonth() + 1;\r\n var year = date.getFullYear();\r\n // return year + '/' + month + '/' + day;\r\n return $.format.date(date, 'yyyy-MM-dd');\r\n };\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * 配置路由\r\n * @param {[object]} config 路由配置\r\n * @param {[object]} router 路由\r\n */\r\n configureRouter(config, router) {\r\n\r\n let chatTo = null;\r\n if (localStorage) {\r\n chatTo = localStorage.getItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO);\r\n }\r\n\r\n config.map([{\r\n route: ['pwd-reset'],\r\n name: 'reset',\r\n moduleId: 'user/user-pwd-reset',\r\n nav: false,\r\n title: '密码重置 | TMS'\r\n }, {\r\n route: ['register'],\r\n name: 'register',\r\n moduleId: 'user/user-register',\r\n nav: false,\r\n title: '用户注册 | TMS'\r\n }, {\r\n route: ['chat/:username'],\r\n name: 'chat',\r\n moduleId: 'chat/chat-direct',\r\n nav: false,\r\n title: '私聊 | TMS'\r\n }, {\r\n route: ['blog'],\r\n name: 'chat',\r\n moduleId: 'blog/blog',\r\n nav: false,\r\n title: '博文 | TMS'\r\n }, {\r\n route: ['blog/:id'],\r\n name: 'chat',\r\n moduleId: 'blog/blog',\r\n nav: false,\r\n title: '博文 | TMS'\r\n }, {\r\n route: ['login'],\r\n name: 'login',\r\n moduleId: 'user/user-login',\r\n nav: false,\r\n title: '登录 | TMS'\r\n }, {\r\n route: ['test'],\r\n name: 'test',\r\n moduleId: 'test/test-lifecycle',\r\n nav: false,\r\n title: '测试 | TMS'\r\n }, {\r\n route: '',\r\n redirect: `chat/${chatTo ? chatTo : '@admin'}`\r\n }]);\r\n\r\n this.router = router;\r\n\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n }\r\n}\r\n","export default {\r\n debug: true,\r\n testing: true\r\n};\r\n","import environment from './environment';\r\n\r\n//Configure Bluebird Promises.\r\n//Note: You may want to use environment-specific configuration.\r\nPromise.config({\r\n warnings: {\r\n wForgottenReturn: false\r\n }\r\n});\r\n\r\nexport function configure(aurelia) {\r\n aurelia.use\r\n .standardConfiguration()\r\n .feature('init')\r\n .feature('resources');\r\n\r\n if (environment.debug) {\r\n aurelia.use.developmentLogging();\r\n }\r\n\r\n if (environment.testing) {\r\n aurelia.use.plugin('aurelia-testing');\r\n }\r\n\r\n aurelia.start().then(() => aurelia.setRoot());\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport chatService from 'chat/chat-service';\r\n\r\nexport class Blog {\r\n\r\n rightSidebarShow = false;\r\n isHide = true;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_VIEW_CHANGED, (payload) => {\r\n this.routeConfig && this.routeConfig.navModel.setTitle(`${payload.title} | 博文 | TMS`);\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, (payload) => {\r\n if (payload.justRefresh) {\r\n return;\r\n }\r\n if (payload && !_.isUndefined(payload.isHide)) {\r\n this.rightSidebarShow = !payload.isHide;\r\n } else {\r\n this.rightSidebarShow = !this.rightSidebarShow;\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, (payload) => {\r\n this.isHide = payload;\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n\r\n clearInterval(this.timeagoTimer);\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n let tg = timeago();\r\n this.timeagoTimer = setInterval(() => {\r\n $(this.blogContainerRef).find('[data-timeago]').each((index, el) => {\r\n $(el).text(tg.format($(el).attr('data-timeago'), 'zh_CN'));\r\n });\r\n }, 5000);\r\n\r\n // 用户信息popup\r\n $('.tms-blog').on('mouseenter', 'span[data-value].at-user:not(.pp-not),a[data-value].author:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, {\r\n username: $a.attr('data-value'),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n $('.tms-blog .em-blog-content').on('click', 'a.avatar[data-value], a.author[data-value], .at-user[data-value]', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_MSG_INSERT, {\r\n content: `{~${$(event.currentTarget).attr('data-value')}} `\r\n });\r\n });\r\n\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n this.routeConfig = routeConfig;\r\n nsCtx.blogId = params.id;\r\n\r\n ea.publish(nsCons.EVENT_BLOG_SWITCH, { id: params.id });\r\n\r\n return Promise.all([chatService.loginUser().then((user) => {\r\n nsCtx.loginUser = user;\r\n nsCtx.isSuper = utils.isSuperUser(user);\r\n nsCtx.isAdmin = utils.isAdminUser(user);\r\n }),\r\n chatService.listUsers().then((users) => {\r\n nsCtx.users = users;\r\n window.tmsUsers = users;\r\n })\r\n ]);\r\n }\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport poll from \"common/common-poll\";\r\nimport {\r\n default as Clipboard\r\n} from 'clipboard';\r\nimport {\r\n default as clipboard\r\n} from 'clipboard-js';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\n\r\nimport chatService from './chat-service';\r\n\r\nexport class ChatDirect {\r\n\r\n offset = 0;\r\n\r\n first = true; // 第一页\r\n last = true; // 最后一页\r\n\r\n originalHref = wurl();\r\n\r\n loginUser;\r\n users = [];\r\n channels = [];\r\n chatTo = null;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n Dropzone.autoDiscover = false;\r\n this.poll = poll;\r\n\r\n new Clipboard('.tms-chat-direct .tms-clipboard')\r\n .on('success', function(e) {\r\n toastr.success('复制到剪贴板成功!');\r\n }).on('error', function(e) {\r\n toastr.error('复制到剪贴板失败!');\r\n });\r\n\r\n this.initSubscribeEvent();\r\n }\r\n\r\n initSubscribeEvent() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_SENDED, (payload) => {\r\n\r\n poll.reset();\r\n\r\n if (!this.first) { // 不是第一页\r\n if (this.isAt) {\r\n this.listChatDirect(false);\r\n } else {\r\n this.listChatChannel(false);\r\n }\r\n }\r\n });\r\n\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_SIDEBAR_TOGGLE, (payload) => {\r\n\r\n this.isRightSidebarShow = payload.isShow;\r\n if (this.isRightSidebarShow) {\r\n let wid = $(this.contentRef).width() - 392;\r\n $(this.contentBodyRef).width(wid);\r\n $(this.contentBodyRef).children('.scroll-wrapper').width(wid);\r\n } else {\r\n $(this.contentBodyRef).css('width', '100%');\r\n $(this.contentBodyRef).children('.scroll-wrapper').css('width', '100%');\r\n }\r\n });\r\n\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_CREATED, (payload) => {\r\n this.channels.splice(0, 0, payload.channel);\r\n });\r\n\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, (payload) => {\r\n\r\n this.gotoChatItem(payload.chatItem);\r\n });\r\n\r\n this.subscribe5 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_DELETED, (payload) => {\r\n\r\n if (!this.isAt && (payload.channel.name == this.chatTo)) {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n\r\n this.channels = [...this.channels];\r\n\r\n });\r\n\r\n this.subscribe6 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_JOINED, (payload) => {\r\n\r\n this.channels.splice(0, 0, payload.channel);\r\n\r\n });\r\n\r\n this.subscribe7 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_LEAVED, (payload) => {\r\n\r\n if (!this.isAt && (payload.channel.name == this.chatTo)) {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n\r\n this.channels = _.reject(this.channels, { id: payload.channel.id });\r\n\r\n });\r\n\r\n this.subscribe8 = ea.subscribe(nsCons.EVENT_CHAT_LAST_ITEM_RENDERED, (payload) => {\r\n\r\n if (payload.item.__scroll) {\r\n this.scrollToAfterImgLoaded(this.markId ? this.markId : 'b');\r\n delete payload.item.__scroll;\r\n this.markId = null;\r\n }\r\n\r\n });\r\n\r\n this.subscribe9 = ea.subscribe(nsCons.EVENT_SCROLLBAR_SCROLL_TO_BOTTOM, (payload) => {\r\n\r\n if (this.scrollbarRef == payload.element) {\r\n poll.reset();\r\n }\r\n\r\n });\r\n\r\n this.subscribe10 = ea.subscribe(nsCons.EVENT_CHAT_CONTENT_SCROLL_TO, (payload) => {\r\n\r\n this.scrollTo(payload.target);\r\n\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n this.subscribe5.dispose();\r\n this.subscribe6.dispose();\r\n this.subscribe7.dispose();\r\n this.subscribe8.dispose();\r\n this.subscribe9.dispose();\r\n this.subscribe10.dispose();\r\n\r\n clearInterval(this.timeagoTimer);\r\n poll.stop();\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n this._reset();\r\n\r\n this.markId = params.id;\r\n this.routeConfig = routeConfig;\r\n\r\n if (this.chatId) {\r\n this.preChatId = this.chatId; // 记录切换前的沟通对象\r\n }\r\n this.chatId = nsCtx.chatId = params.username;\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO, this.chatId);\r\n\r\n this.isAt = nsCtx.isAt = _.startsWith(params.username, '@');\r\n this.chatTo = nsCtx.chatTo = utils.getChatName(params.username);\r\n\r\n if (this.markId) {\r\n history.replaceState(null, '', utils.removeUrlQuery('id'));\r\n }\r\n\r\n return Promise.all([chatService.loginUser(false).then((user) => {\r\n this.loginUser = user;\r\n nsCtx.loginUser = user;\r\n nsCtx.isSuper = utils.isSuperUser(this.loginUser);\r\n nsCtx.isAdmin = utils.isAdminUser(this.loginUser);\r\n }),\r\n chatService.listUsers(false).then((users) => {\r\n this.users = users;\r\n nsCtx.users = users;\r\n window.tmsUsers = users;\r\n if (this.isAt) {\r\n this.channel = null;\r\n this.user = _.find(this.users, {\r\n username: this.chatTo\r\n });\r\n\r\n if (this.user) {\r\n let name = this.user ? this.user.name : this.chatTo;\r\n routeConfig.navModel.setTitle(`${name} | 私聊 | TMS`);\r\n\r\n this.listChatDirect(true);\r\n } else {\r\n toastr.error(`聊天用户[${this.chatTo}]不存在或者没有权限访问!`);\r\n if (this.preChatId) {\r\n window.location = wurl('path') + `#/chat/${this.preChatId}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n }\r\n\r\n }\r\n }),\r\n chatService.listChannels(false).then((channels) => {\r\n this.channels = channels;\r\n nsCtx.channels = channels;\r\n if (!this.isAt) {\r\n this.user = null;\r\n this.channel = _.find(this.channels, {\r\n name: this.chatTo\r\n });\r\n\r\n if (this.channel) {\r\n routeConfig.navModel.setTitle(`${this.channel.title} | 频道 | TMS`);\r\n\r\n this.listChatChannel(true);\r\n } else {\r\n toastr.error(`聊天频道[${this.chatTo}]不存在或者没有权限访问!`);\r\n if (this.preChatId) {\r\n window.location = wurl('path') + `#/chat/${this.preChatId}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n }\r\n }\r\n })\r\n ]);\r\n\r\n }\r\n\r\n _reset() {\r\n this.progressWidth = 0;\r\n this.chats = null;\r\n this.first = true; // 第一页\r\n this.last = true; // 最后一页\r\n }\r\n\r\n lastMoreHandler() { // 上面的老消息\r\n\r\n let start = _.first(this.chats).id;\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/more`;\r\n data = {\r\n last: true,\r\n start: start,\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/more`;\r\n data = {\r\n last: true,\r\n start: start,\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n }\r\n this.lastMoreP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.chats = _.unionBy(_.reverse(data.data), this.chats);\r\n this.last = (data.msgs[0] - data.data.length <= 0);\r\n !this.last && (this.lastCnt = data.msgs[0] - data.data.length);\r\n this.scrollToAfterImgLoaded(start);\r\n } else {\r\n toastr.error(data.data, '获取更多消息失败!');\r\n }\r\n });\r\n }\r\n\r\n firstMoreHandler() { // 前面的新消息\r\n\r\n let start = _.last(this.chats).id;\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/more`;\r\n data = {\r\n last: false,\r\n start: start,\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/more`;\r\n data = {\r\n last: false,\r\n start: start,\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n }\r\n this.nextMoreP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.chats = _.unionBy(this.chats, data.data);\r\n this.first = (data.msgs[0] - data.data.length <= 0);\r\n !this.first && (this.firstCnt = data.msgs[0] - data.data.length);\r\n this.scrollToAfterImgLoaded(start);\r\n } else {\r\n toastr.error(data.data, '获取更多消息失败!');\r\n }\r\n });\r\n }\r\n\r\n // 获取频道消息\r\n listChatChannel(isCareMarkId) {\r\n\r\n var data = {\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n\r\n // 如果设定了获取消息界限\r\n if (this.markId && isCareMarkId) {\r\n data.id = this.markId;\r\n }\r\n\r\n $.get('/admin/chat/channel/listBy', data, (data) => {\r\n this.processChats(data);\r\n });\r\n }\r\n\r\n // 获取私聊消息\r\n listChatDirect(isCareMarkId) {\r\n\r\n var data = {\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n\r\n // 如果设定了获取消息界限\r\n if (this.markId && isCareMarkId) {\r\n data.id = this.markId;\r\n }\r\n $.get('/admin/chat/direct/list', data, (data) => {\r\n this.processChats(data);\r\n });\r\n }\r\n\r\n // 共同返回消息处理\r\n processChats(data) {\r\n if (data.success) {\r\n this.chats = _.reverse(data.data.content);\r\n let lastChat = _.last(this.chats);\r\n lastChat && (lastChat.__scroll = true); // 标记消息列表渲染完成需要执行消息滚动定位.\r\n this.last = data.data.last;\r\n this.first = data.data.first;\r\n !this.last && (this.lastCnt = data.data.totalElements - data.data.numberOfElements);\r\n !this.first && (this.firstCnt = data.data.size * data.data.number);\r\n }\r\n }\r\n\r\n _scrollTo(to) {\r\n if (to == 'b') {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo('max');\r\n } else if (to == 't') {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(0);\r\n } else {\r\n if (_.some(this.chats, { id: +to })) {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(`.comment[data-id=\"${to}\"]`, {\r\n offset: this.offset\r\n });\r\n $(this.commentsRef).find(`.comment[data-id]`).removeClass('active');\r\n $(this.commentsRef).find(`.comment[data-id=${to}]`).addClass('active');\r\n } else {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo('max');\r\n toastr.warning(`消息[${to}]不存在,可能已经被删除!`);\r\n }\r\n }\r\n }\r\n\r\n scrollToAfterImgLoaded(to) {\r\n _.defer(() => {\r\n new ImagesLoaded(this.commentsRef).always(() => {\r\n this._scrollTo(to);\r\n });\r\n\r\n this._scrollTo(to);\r\n });\r\n\r\n }\r\n\r\n doPoll() {\r\n poll.start((resetCb, stopCb) => {\r\n this._pollChats(resetCb, stopCb);\r\n this._poll(resetCb, stopCb);\r\n });\r\n }\r\n\r\n _poll(resetCb, stopCb) {\r\n\r\n let lastChat = _.last(this.chats);\r\n\r\n if (this.pollOnGoing || this.isAt || !this.channel || !lastChat) {\r\n return;\r\n }\r\n\r\n this.pollOnGoing = true;\r\n\r\n $.get('/admin/chat/channel/poll', {\r\n channelId: this.channel.id,\r\n lastChatChannelId: lastChat.id,\r\n isAt: true\r\n }, (data) => {\r\n if (data.success) {\r\n\r\n if (this.countAt && data.data.countAt > this.countAt) {\r\n let cnt = data.data.countAt - this.countAt;\r\n push.create('TMS沟通@消息通知', {\r\n body: `你有${cnt}条新的@消息!`,\r\n icon: {\r\n x16: 'img/tms-x16.ico',\r\n x32: 'img/tms-x32.png'\r\n },\r\n timeout: 5000\r\n });\r\n }\r\n this.countAt = data.data.countAt;\r\n ea.publish(nsCons.EVENT_CHAT_POLL_UPDATE, {\r\n countAt: data.data.countAt,\r\n countMyRecentSchedule: data.data.countMyRecentSchedule\r\n });\r\n }\r\n }).always(() => {\r\n this.pollOnGoing = false;\r\n });\r\n }\r\n\r\n // 消息轮询处理\r\n _pollChats(resetCb, stopCb) {\r\n\r\n if (this.pollChatsOngoing || !this.chats || !this.first) {\r\n return;\r\n }\r\n\r\n let lastChat = _.last(this.chats);\r\n\r\n let url;\r\n let data;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/latest`;\r\n data = {\r\n id: lastChat ? lastChat.id : 0,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/latest`;\r\n data = {\r\n id: lastChat ? lastChat.id : 0,\r\n channelId: this.channel.id\r\n };\r\n }\r\n\r\n this.pollChatsOngoing = true;\r\n\r\n $.get(url, data, (data) => {\r\n if (data.success) {\r\n\r\n if (!this._checkPollResultOk(data)) {\r\n return;\r\n }\r\n\r\n this._checkNeedNotify(data);\r\n\r\n this.chats = _.unionBy(this.chats, data.data, 'id');\r\n this.scrollToAfterImgLoaded('b');\r\n } else {\r\n toastr.error(data.data, '轮询获取消息失败!');\r\n }\r\n }).fail((xhr, sts) => {\r\n stopCb();\r\n utils.errorAutoTry(() => {\r\n resetCb();\r\n });\r\n }).always(() => {\r\n this.pollChatsOngoing = false;\r\n });\r\n }\r\n\r\n _checkNeedNotify(data) {\r\n\r\n if (data.data.length == 0) {\r\n return false;\r\n }\r\n\r\n let hasOwn = _.some(data.data, (item) => {\r\n return item.creator.username == this.loginUser.username;\r\n });\r\n\r\n if (!hasOwn) {\r\n push.create('TMS沟通频道消息通知', {\r\n body: `频道[${this.channel.title}]有新消息了!`,\r\n icon: {\r\n x16: 'img/tms-x16.ico',\r\n x32: 'img/tms-x32.png'\r\n },\r\n timeout: 5000\r\n });\r\n }\r\n }\r\n\r\n _checkPollResultOk(data) {\r\n\r\n if (data.data.length == 0) {\r\n return false;\r\n }\r\n\r\n let chat = _.first(data.data);\r\n return this.isAt ? _.has(chat, 'chatTo') : _.has(chat, 'channel');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎绑定到视图时被调用\r\n * @param {[object]} ctx 视图绑定上下文环境对象\r\n */\r\n bind(ctx) {\r\n\r\n this.doPoll();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n let tg = timeago();\r\n this.timeagoTimer = setInterval(() => {\r\n $(this.chatContainerRef).find('[data-timeago]').each((index, el) => {\r\n $(el).text(tg.format($(el).attr('data-timeago'), 'zh_CN'));\r\n });\r\n }, 5000);\r\n\r\n this.initHotkeys();\r\n this.initFocusedComment();\r\n\r\n $(this.scrollbarRef).on('mouseenter', '.em-chat-content-item', (event) => {\r\n event.preventDefault();\r\n let $item = $(event.currentTarget);\r\n this.$hoveredItem = $item;\r\n this.isShowHead = !utils.isElementInViewport($item.children('.em-user-avatar'));\r\n let $next = $item.next('.em-chat-content-item');\r\n if ($next.size() === 1) {\r\n this.isShowFoot = !utils.isElementInViewport($next.children('.em-user-avatar'));\r\n } else {\r\n this.isShowFoot = false;\r\n }\r\n }).on('mouseleave', (event) => {\r\n event.preventDefault();\r\n this.isShowHead = false;\r\n this.isShowFoot = false;\r\n });\r\n\r\n $(this.commentsRef).on('click', '.cbutton', function(event) {\r\n event.preventDefault();\r\n let $btn = $(this);\r\n $btn.addClass('cbutton--click');\r\n setTimeout(function() {\r\n $btn.removeClass('cbutton--click');\r\n }, 500);\r\n });\r\n\r\n $(this.chatContainerRef).on('click', 'code[data-code]', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).attr('data-code')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $(this.chatContainerRef).on('click', '.pre-code-wrapper', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).find('i[data-clipboard-text]').attr('data-clipboard-text')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.tms-comments-container[ref=\"scrollbarRef\"]').scroll(_.throttle((event) => {\r\n try {\r\n let sHeight = $(event.currentTarget)[0].scrollHeight;\r\n let sTop = $(event.currentTarget)[0].scrollTop;\r\n\r\n let scale = sTop * 1.0 / (sHeight - $(event.currentTarget).outerHeight());\r\n this.progressWidth = $(event.currentTarget).outerWidth() * scale;\r\n } catch (err) { this.progressWidth = 0; }\r\n\r\n }, 10));\r\n\r\n }\r\n\r\n goHeadHandler() {\r\n this.scrollTo(this.$hoveredItem, 500, () => { this.isShowHead = false; });\r\n }\r\n\r\n goFootHandler() {\r\n this.scrollTo(this.$hoveredItem.next(), 500, () => { this.isShowFoot = false; });\r\n }\r\n\r\n initFocusedComment() {\r\n $(this.commentsRef).on('click', '.comment.item', (event) => {\r\n this.focusedComment = $(event.currentTarget);\r\n }).on('dblclick', '.comment.item', (event) => {\r\n if (event.ctrlKey) {\r\n let chatId = $(event.currentTarget).attr('data-id');\r\n let $t = $(event.currentTarget).find('.content > textarea');\r\n let item = _.find(this.chats, { id: Number.parseInt(chatId) });\r\n\r\n if (!item.openEdit && (item.creator.username != this.loginUser.username)) {\r\n return;\r\n }\r\n\r\n $.get(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/get`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $t.focus().select();\r\n autosize.update($t.get(0));\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n getScrollTargetComment(isPrev) {\r\n if (isPrev) {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let $avatar = this.focusedComment.find('> a.em-user-avatar');\r\n if (utils.isElementInViewport($avatar)) {\r\n let prev = this.focusedComment.prev('.comment.item');\r\n (prev.size() === 1) && (this.focusedComment = prev);\r\n }\r\n } else {\r\n this.focusedComment = $(this.commentsRef).children('.comment.item:first');\r\n }\r\n } else {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let next = this.focusedComment.next('.comment.item');\r\n (next.size() === 1) && (this.focusedComment = next);\r\n } else {\r\n this.focusedComment = $(this.commentsRef).children('.comment.item:last');\r\n }\r\n }\r\n return this.focusedComment;\r\n }\r\n\r\n scrollTo(target, duration = 0, onAfter) {\r\n this.focusedComment = target;\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(target, duration, {\r\n offset: this.offset,\r\n onAfter: onAfter\r\n });\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'ctrl+u', (evt) => {\r\n evt.preventDefault();\r\n $(this.emChatInputRef.btnItemUploadRef).find('.content').click();\r\n }).bind('keydown', 'ctrl+/', (evt) => {\r\n evt.preventDefault();\r\n this.emChatInputRef.emHotkeysModal.show();\r\n }).bind('keydown', 'alt+up', (evt) => {\r\n evt.preventDefault();\r\n this.scrollTo(this.getScrollTargetComment(true));\r\n }).bind('keydown', 'alt+down', (evt) => {\r\n evt.preventDefault();\r\n this.scrollTo(this.getScrollTargetComment());\r\n }).bind('keydown', 't', (event) => {\r\n event.preventDefault();\r\n this.scrollTo($(this.commentsRef).children('.comment.item:first'));\r\n }).bind('keydown', 'b', (event) => {\r\n event.preventDefault();\r\n this.scrollTo($(this.commentsRef).children('.comment.item:last'));\r\n });\r\n\r\n }\r\n\r\n gotoChatItem(item) {\r\n\r\n let chat = _.find(this.chats, { id: item.id });\r\n if (chat) {\r\n this.scrollToAfterImgLoaded(item.id);\r\n } else {\r\n\r\n let chatTo;\r\n let chatId;\r\n\r\n if (item.chatTo) {\r\n chatTo = item.chatTo.username;\r\n chatId = `@${chatTo}`;\r\n } else if (item.channel) {\r\n chatTo = item.channel.name;\r\n chatId = `${chatTo}`;\r\n }\r\n\r\n if (this.chatTo == chatTo) { // 当前定位消息就在当前聊天对象里,只是没有获取显示出来\r\n this.activate({\r\n id: item.id,\r\n username: chatId\r\n }, this.routeConfig);\r\n } else { // 定位消息在非当前聊天对象中\r\n window.location = wurl('path') + `#/chat/${chatId}?id=${item.id}`;\r\n }\r\n }\r\n\r\n }\r\n\r\n refreshLatestHandler(event) {\r\n event.stopImmediatePropagation();\r\n this.markId = null;\r\n if (this.isAt) {\r\n this.listChatDirect(false);\r\n } else {\r\n this.listChatChannel(false);\r\n }\r\n }\r\n\r\n}\r\n","class ChatService {\r\n\r\n async loginUser(useCache) {\r\n\r\n if (!useCache || !this.user) {\r\n\r\n // login user\r\n await $.get('/admin/user/loginUser', (data) => {\r\n if (data.success) {\r\n this.user = data.data;\r\n }\r\n });\r\n }\r\n\r\n return this.user;\r\n }\r\n\r\n async listUsers(useCache) {\r\n\r\n if (!useCache || !this.users) {\r\n\r\n // users\r\n await $.get('/admin/user/all', {\r\n // enabled: true\r\n }, (data) => {\r\n if (data.success) {\r\n this.users = data.data;\r\n }\r\n });\r\n }\r\n\r\n return this.users;\r\n }\r\n\r\n async listChannels(useCache) {\r\n\r\n if (!useCache || !this.channels) {\r\n\r\n // channels\r\n await $.get('/admin/channel/listMy', (data) => {\r\n if (data.success) {\r\n this.channels = data.data;\r\n }\r\n });\r\n\r\n }\r\n\r\n return this.channels;\r\n }\r\n}\r\n\r\nexport default new ChatService();\r\n","window.nsCons = {\r\n EVENT_APP_ROUTER_NAVIGATE: 'event_app_router_navigate',\r\n EVENT_CHAT_MSG_SENDED: 'event_chat_msg_sended',\r\n EVENT_CHAT_MSG_EDIT_UPLOAD: 'event_chat_msg_edit_upload',\r\n EVENT_CHAT_SIDEBAR_TOGGLE: 'event_chat_sidebar_toggle',\r\n EVENT_CHAT_SEARCH_RESULT: 'event_chat_search_result',\r\n EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM: 'event_chat_search_goto_chat_item',\r\n EVENT_CHAT_CHANNEL_CREATED: 'event_chat_channel_created',\r\n EVENT_CHAT_CHANNEL_DELETED: 'event_chat_channel_deleted',\r\n EVENT_CHAT_CHANNEL_JOINED: 'event_chat_channel_joined',\r\n EVENT_CHAT_CHANNEL_LEAVED: 'event_chat_channel_leaved',\r\n EVENT_SHOW_HOTKEYS_MODAL: 'event_show_hotkeys_modal',\r\n EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE: 'event_chat_channel_member_add_or_remove',\r\n EVENT_CHAT_LAST_ITEM_RENDERED: 'event_chat_last_item_rendered',\r\n EVENT_CHAT_SHOW_STOW: 'event_chat_show_stow',\r\n EVENT_CHAT_SHOW_AT: 'event_chat_show_at',\r\n EVENT_CHAT_SHOW_DIR: 'event_chat_show_dir',\r\n EVENT_CHAT_SHOW_ATTACH: 'event_chat_show_attach',\r\n EVENT_CHAT_SHOW_SCHEDULE: 'event_chat_show_schedule',\r\n EVENT_SCROLLBAR_SCROLL_TO_BOTTOM: 'event_scrollbar_scroll_to_bottom',\r\n EVENT_CHAT_MSG_INSERT: 'event_chat_msg_insert',\r\n EVENT_CHAT_MSG_POPUP_SHOW: 'event_chat_msg_popup_show',\r\n EVENT_CHAT_MEMBER_POPUP_SHOW: 'event_chat_member_popup_show',\r\n EVENT_CHAT_MSG_WIKI_DIR: 'event_chat_msg_wiki_dir',\r\n EVENT_CHAT_CONTENT_SCROLL_TO: 'event_chat_content_scroll_to',\r\n EVENT_CHAT_POLL_UPDATE: 'event_chat_poll_update',\r\n EVENT_SWITCH_CHAT_TO: 'event_switch_chat_to',\r\n EVENT_CHANNEL_ACTIONS: 'event_channel_actions',\r\n EVENT_CHANNEL_LINKS_REFRESH: 'event_channel_links_refresh',\r\n EVENT_SYSTEM_LINKS_REFRESH: 'event_system_links_refresh',\r\n EVENT_SCHEDULE_REFRESH: 'event_schedule_refresh',\r\n EVENT_MODAAL_BEFORE_OPEN: 'event_modaal_before_open',\r\n EVENT_MODAAL_AFTER_OPEN: 'event_modaal_after_open',\r\n EVENT_MODAAL_BEFORE_CLOSE: 'event_modaal_before_close',\r\n EVENT_MODAAL_AFTER_CLOSE: 'event_modaal_after_close',\r\n EVENT_BLOG_SWITCH: 'event_blog_switch',\r\n EVENT_BLOG_ACTION: 'event_blog_action',\r\n EVENT_BLOG_CHANGED: 'event_blog_changed',\r\n EVENT_SPACE_CHANGED: 'event_space_changed',\r\n EVENT_BLOG_CREATED: 'event_blog_created',\r\n EVENT_BLOG_UPDATED: 'event_blog_updated',\r\n EVENT_BLOG_DELETED: 'event_blog_deleted',\r\n EVENT_BLOG_TOGGLE_SIDEBAR: 'event_blog_toggle_sidebar',\r\n EVENT_BLOG_VIEW_CHANGED: 'event_blog_view_changed',\r\n EVENT_BLOG_STOW_CHANGED: 'event_blog_stow_changed',\r\n EVENT_BLOG_SAVE: 'event_blog_save',\r\n EVENT_BLOG_HISTORY_CHANGED: 'event_blog_history_changed',\r\n EVENT_BLOG_COMMENT_POPUP_SHOW: 'event_blog_comment_popup_show',\r\n EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE: 'event_blog_right_sidebar_toggle',\r\n EVENT_BLOG_LEFT_SIDEBAR_TOGGLE: 'event_blog_left_sidebar_toggle',\r\n EVENT_BLOG_CONTENT_DIMMER_TOGGLE: 'event_blog_content_dimmer_toggle',\r\n EVENT_BLOG_COMMENT_MSG_INSERT: 'event_blog_comment_msg_insert',\r\n EVENT_BLOG_COMMENT_ADDED: 'event_blog_comment_added',\r\n EVENT_BLOG_COMMENT_CHANGED: 'event_blog_comment_changed',\r\n ACTION_TYPE_SEARCH: 'action_type_search',\r\n ACTION_TYPE_STOW: 'action_type_stow',\r\n ACTION_TYPE_AT: 'action_type_at',\r\n ACTION_TYPE_DIR: 'action_type_dir',\r\n ACTION_TYPE_ATTACH: 'action_type_attach',\r\n ACTION_TYPE_SCHEDULE: 'action_type_schedule',\r\n NUM_TEXT_COMPLETE_MAX_COUNT: 20,\r\n STR_EMOJI_SEARCH_URL: 'http://emoji.muan.co/',\r\n KEY_REMEMBER_LAST_CHAT_TO: 'tms/remember_last_chat_to',\r\n KEY_LOGIN_USERNAME: 'tms/login_username',\r\n KEY_BLOG_COMMON_SPACE: 'tms/blog/common_space',\r\n}\r\n","window.nsCtx = {\r\n loginUser: {},\r\n isSuper: false,\r\n isAdmin: false,\r\n users: [],\r\n channels: [],\r\n memberAll: {\r\n username: 'all',\r\n enabled: true,\r\n mails: '',\r\n name: '全员'\r\n },\r\n isAt: true, // is channel or user chat\r\n chatTo: null, // chat to channel name or username\r\n chatId: null, // chat to channel name or @username \r\n isSuper: false,\r\n isAdmin: false,\r\n blogId: null,\r\n isModaalOpening: false,\r\n}\r\n","(function webpackUniversalModuleDefinition(root, factory) {\r\n root[\"JsDiff\"] = factory();\r\n})(window, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ // The module cache\r\n/******/ var installedModules = {};\r\n\r\n/******/ // The require function\r\n/******/ function __webpack_require__(moduleId) {\r\n\r\n/******/ // Check if module is in cache\r\n/******/ if(installedModules[moduleId])\r\n/******/ return installedModules[moduleId].exports;\r\n\r\n/******/ // Create a new module (and put it into the cache)\r\n/******/ var module = installedModules[moduleId] = {\r\n/******/ exports: {},\r\n/******/ id: moduleId,\r\n/******/ loaded: false\r\n/******/ };\r\n\r\n/******/ // Execute the module function\r\n/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ // Flag the module as loaded\r\n/******/ module.loaded = true;\r\n\r\n/******/ // Return the exports of the module\r\n/******/ return module.exports;\r\n/******/ }\r\n\r\n\r\n/******/ // expose the modules object (__webpack_modules__)\r\n/******/ __webpack_require__.m = modules;\r\n\r\n/******/ // expose the module cache\r\n/******/ __webpack_require__.c = installedModules;\r\n\r\n/******/ // __webpack_public_path__\r\n/******/ __webpack_require__.p = \"\";\r\n\r\n/******/ // Load entry module and return exports\r\n/******/ return __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n /* See LICENSE file for terms of use */\r\n\r\n /*\r\n * Text diff implementation.\r\n *\r\n * This library supports the following APIS:\r\n * JsDiff.diffChars: Character by character diff\r\n * JsDiff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\r\n * JsDiff.diffLines: Line based diff\r\n *\r\n * JsDiff.diffCss: Diff targeted at CSS content\r\n *\r\n * These methods are based on the implementation proposed in\r\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\r\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\r\n */\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _diffBase = __webpack_require__(1);\r\n\r\n var _diffBase2 = _interopRequireDefault(_diffBase);\r\n\r\n var _diffCharacter = __webpack_require__(3);\r\n\r\n var _diffWord = __webpack_require__(4);\r\n\r\n var _diffLine = __webpack_require__(5);\r\n\r\n var _diffSentence = __webpack_require__(6);\r\n\r\n var _diffCss = __webpack_require__(7);\r\n\r\n var _diffJson = __webpack_require__(8);\r\n\r\n var _patchApply = __webpack_require__(9);\r\n\r\n var _patchCreate = __webpack_require__(10);\r\n\r\n var _convertDmp = __webpack_require__(12);\r\n\r\n var _convertXml = __webpack_require__(13);\r\n\r\n exports.Diff = _diffBase2['default'];\r\n exports.diffChars = _diffCharacter.diffChars;\r\n exports.diffWords = _diffWord.diffWords;\r\n exports.diffWordsWithSpace = _diffWord.diffWordsWithSpace;\r\n exports.diffLines = _diffLine.diffLines;\r\n exports.diffTrimmedLines = _diffLine.diffTrimmedLines;\r\n exports.diffSentences = _diffSentence.diffSentences;\r\n exports.diffCss = _diffCss.diffCss;\r\n exports.diffJson = _diffJson.diffJson;\r\n exports.structuredPatch = _patchCreate.structuredPatch;\r\n exports.createTwoFilesPatch = _patchCreate.createTwoFilesPatch;\r\n exports.createPatch = _patchCreate.createPatch;\r\n exports.applyPatch = _patchApply.applyPatch;\r\n exports.convertChangesToDMP = _convertDmp.convertChangesToDMP;\r\n exports.convertChangesToXML = _convertXml.convertChangesToXML;\r\n exports.canonicalize = _diffJson.canonicalize;\r\n\r\n\r\n/***/ },\r\n/* 1 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports['default'] = Diff;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _utilMap = __webpack_require__(2);\r\n\r\n var _utilMap2 = _interopRequireDefault(_utilMap);\r\n\r\n function Diff(ignoreWhitespace) {\r\n this.ignoreWhitespace = ignoreWhitespace;\r\n }\r\n\r\n Diff.prototype = {\r\n diff: function diff(oldString, newString, callback) {\r\n var self = this;\r\n\r\n function done(value) {\r\n if (callback) {\r\n setTimeout(function () {\r\n callback(undefined, value);\r\n }, 0);\r\n return true;\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n // Allow subclasses to massage the input prior to running\r\n oldString = this.castInput(oldString);\r\n newString = this.castInput(newString);\r\n\r\n // Handle the identity case (this is due to unrolling editLength == 0\r\n if (newString === oldString) {\r\n return done([{ value: newString }]);\r\n }\r\n if (!newString) {\r\n return done([{ value: oldString, removed: true }]);\r\n }\r\n if (!oldString) {\r\n return done([{ value: newString, added: true }]);\r\n }\r\n\r\n newString = this.removeEmpty(this.tokenize(newString));\r\n oldString = this.removeEmpty(this.tokenize(oldString));\r\n\r\n var newLen = newString.length,\r\n oldLen = oldString.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n\r\n // Seed editLength = 0, i.e. the content starts with the same values\r\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n // Identity per the equality and tokenizer\r\n return done([{ value: newString.join('') }]);\r\n }\r\n\r\n // Main worker method. checks all permutations of a given edit length for acceptance.\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath = undefined;\r\n var addPath = bestPath[diagonalPath - 1],\r\n removePath = bestPath[diagonalPath + 1],\r\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n // No one else is going to attempt to use this value, clear it\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n\r\n var canAdd = addPath && addPath.newPos + 1 < newLen,\r\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n // If this path is a terminal then prune\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n\r\n // Select the diagonal that we want to branch from. We select the prior\r\n // path whose position in the new string is the farthest from the origin\r\n // and does not pass the bounds of the diff graph\r\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\r\n basePath = clonePath(removePath);\r\n self.pushComponent(basePath.components, undefined, true);\r\n } else {\r\n basePath = addPath; // No need to clone, we've pulled it from the list\r\n basePath.newPos++;\r\n self.pushComponent(basePath.components, true, undefined);\r\n }\r\n\r\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);\r\n\r\n // If we have hit the end of both strings, then we are done\r\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\r\n return done(buildValues(basePath.components, newString, oldString, self.useLongestToken));\r\n } else {\r\n // Otherwise track this path as a potential candidate and continue.\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n\r\n editLength++;\r\n }\r\n\r\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\r\n // sync and async mode which is never fun. Loops over execEditLength until a value\r\n // is produced.\r\n if (callback) {\r\n (function exec() {\r\n setTimeout(function () {\r\n // This should not happen, but we want to be safe.\r\n /* istanbul ignore next */\r\n if (editLength > maxEditLength) {\r\n return callback();\r\n }\r\n\r\n if (!execEditLength()) {\r\n exec();\r\n }\r\n }, 0);\r\n })();\r\n } else {\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n },\r\n\r\n pushComponent: function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n // We need to clone here as the component clone operation is just\r\n // as shallow array clone\r\n components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };\r\n } else {\r\n components.push({ count: 1, added: added, removed: removed });\r\n }\r\n },\r\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\r\n var newLen = newString.length,\r\n oldLen = oldString.length,\r\n newPos = basePath.newPos,\r\n oldPos = newPos - diagonalPath,\r\n commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n\r\n if (commonCount) {\r\n basePath.components.push({ count: commonCount });\r\n }\r\n\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n },\r\n\r\n equals: function equals(left, right) {\r\n var reWhitespace = /\\S/;\r\n return left === right || this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\r\n },\r\n removeEmpty: function removeEmpty(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i]) {\r\n ret.push(array[i]);\r\n }\r\n }\r\n return ret;\r\n },\r\n castInput: function castInput(value) {\r\n return value;\r\n },\r\n tokenize: function tokenize(value) {\r\n return value.split('');\r\n }\r\n };\r\n\r\n function buildValues(components, newString, oldString, useLongestToken) {\r\n var componentPos = 0,\r\n componentLen = components.length,\r\n newPos = 0,\r\n oldPos = 0;\r\n\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n if (!component.added && useLongestToken) {\r\n var value = newString.slice(newPos, newPos + component.count);\r\n value = _utilMap2['default'](value, function (value, i) {\r\n var oldValue = oldString[oldPos + i];\r\n return oldValue.length > value.length ? oldValue : value;\r\n });\r\n\r\n component.value = value.join('');\r\n } else {\r\n component.value = newString.slice(newPos, newPos + component.count).join('');\r\n }\r\n newPos += component.count;\r\n\r\n // Common case\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n } else {\r\n component.value = oldString.slice(oldPos, oldPos + component.count).join('');\r\n oldPos += component.count;\r\n\r\n // Reverse add and remove so removes are output first to match common convention\r\n // The diffing algorithm is tied to add then remove output and this is the simplest\r\n // route to get the desired output with minimal overhead.\r\n if (componentPos && components[componentPos - 1].added) {\r\n var tmp = components[componentPos - 1];\r\n components[componentPos - 1] = components[componentPos];\r\n components[componentPos] = tmp;\r\n }\r\n }\r\n }\r\n\r\n return components;\r\n }\r\n\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n module.exports = exports['default'];\r\n\r\n\r\n/***/ },\r\n/* 2 */\r\n/***/ function(module, exports) {\r\n\r\n // Following this pattern to make sure the ignore next is in the correct place after babel builds\r\n \"use strict\";\r\n\r\n exports.__esModule = true;\r\n exports[\"default\"] = map;\r\n\r\n /* istanbul ignore next */\r\n function map(arr, mapper, that) {\r\n if (Array.prototype.map) {\r\n return Array.prototype.map.call(arr, mapper, that);\r\n }\r\n\r\n var other = new Array(arr.length);\r\n\r\n for (var i = 0, n = arr.length; i < n; i++) {\r\n other[i] = mapper.call(that, arr[i], i, arr);\r\n }\r\n return other;\r\n }\r\n module.exports = exports[\"default\"];\r\n\r\n\r\n/***/ },\r\n/* 3 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffChars = diffChars;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var characterDiff = new _base2['default']();\r\n exports.characterDiff = characterDiff;\r\n\r\n function diffChars(oldStr, newStr, callback) {\r\n return characterDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 4 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffWords = diffWords;\r\n exports.diffWordsWithSpace = diffWordsWithSpace;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\r\n //\r\n // Ranges and exceptions:\r\n // Latin-1 Supplement, 0080–00FF\r\n // - U+00D7 × Multiplication sign\r\n // - U+00F7 ÷ Division sign\r\n // Latin Extended-A, 0100–017F\r\n // Latin Extended-B, 0180–024F\r\n // IPA Extensions, 0250–02AF\r\n // Spacing Modifier Letters, 02B0–02FF\r\n // - U+02C7 ˇ ˇ Caron\r\n // - U+02D8 ˘ ˘ Breve\r\n // - U+02D9 ˙ ˙ Dot Above\r\n // - U+02DA ˚ ˚ Ring Above\r\n // - U+02DB ˛ ˛ Ogonek\r\n // - U+02DC ˜ ˜ Small Tilde\r\n // - U+02DD ˝ ˝ Double Acute Accent\r\n // Latin Extended Additional, 1E00–1EFF\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\r\n\r\n var wordDiff = new _base2['default'](true);\r\n exports.wordDiff = wordDiff;\r\n var wordWithSpaceDiff = new _base2['default']();\r\n exports.wordWithSpaceDiff = wordWithSpaceDiff;\r\n wordDiff.tokenize = wordWithSpaceDiff.tokenize = function (value) {\r\n var tokens = value.split(/(\\s+|\\b)/);\r\n\r\n // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\r\n for (var i = 0; i < tokens.length - 1; i++) {\r\n // If we have an empty string in the next field and we have only word chars before and after, merge\r\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\r\n tokens[i] += tokens[i + 2];\r\n tokens.splice(i + 1, 2);\r\n i--;\r\n }\r\n }\r\n\r\n return tokens;\r\n };\r\n\r\n function diffWords(oldStr, newStr, callback) {\r\n return wordDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n function diffWordsWithSpace(oldStr, newStr, callback) {\r\n return wordWithSpaceDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 5 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffLines = diffLines;\r\n exports.diffTrimmedLines = diffTrimmedLines;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var lineDiff = new _base2['default']();\r\n exports.lineDiff = lineDiff;\r\n var trimmedLineDiff = new _base2['default']();\r\n exports.trimmedLineDiff = trimmedLineDiff;\r\n trimmedLineDiff.ignoreTrim = true;\r\n\r\n lineDiff.tokenize = trimmedLineDiff.tokenize = function (value) {\r\n var retLines = [],\r\n lines = value.split(/^/m);\r\n for (var i = 0; i < lines.length; i++) {\r\n var line = lines[i],\r\n lastLine = lines[i - 1],\r\n lastLineLastChar = lastLine && lastLine[lastLine.length - 1];\r\n\r\n // Merge lines that may contain windows new lines\r\n if (line === '\\n' && lastLineLastChar === '\\r') {\r\n retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\\r\\n';\r\n } else {\r\n if (this.ignoreTrim) {\r\n line = line.trim();\r\n // add a newline unless this is the last line.\r\n if (i < lines.length - 1) {\r\n line += '\\n';\r\n }\r\n }\r\n retLines.push(line);\r\n }\r\n }\r\n\r\n return retLines;\r\n };\r\n\r\n function diffLines(oldStr, newStr, callback) {\r\n return lineDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n function diffTrimmedLines(oldStr, newStr, callback) {\r\n return trimmedLineDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 6 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffSentences = diffSentences;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var sentenceDiff = new _base2['default']();\r\n exports.sentenceDiff = sentenceDiff;\r\n sentenceDiff.tokenize = function (value) {\r\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\r\n };\r\n\r\n function diffSentences(oldStr, newStr, callback) {\r\n return sentenceDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 7 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffCss = diffCss;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var cssDiff = new _base2['default']();\r\n exports.cssDiff = cssDiff;\r\n cssDiff.tokenize = function (value) {\r\n return value.split(/([{}:;,]|\\s+)/);\r\n };\r\n\r\n function diffCss(oldStr, newStr, callback) {\r\n return cssDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 8 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffJson = diffJson;\r\n exports.canonicalize = canonicalize;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var _line = __webpack_require__(5);\r\n\r\n var objectPrototypeToString = Object.prototype.toString;\r\n\r\n var jsonDiff = new _base2['default']();\r\n // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\r\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\r\n exports.jsonDiff = jsonDiff;\r\n jsonDiff.useLongestToken = true;\r\n\r\n jsonDiff.tokenize = _line.lineDiff.tokenize;\r\n jsonDiff.castInput = function (value) {\r\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, ' ');\r\n };\r\n jsonDiff.equals = function (left, right) {\r\n return _base2['default'].prototype.equals(left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\r\n };\r\n\r\n function diffJson(oldObj, newObj, callback) {\r\n return jsonDiff.diff(oldObj, newObj, callback);\r\n }\r\n\r\n // This function handles the presence of circular references by bailing out when encountering an\r\n // object that is already on the \"stack\" of items being processed.\r\n\r\n function canonicalize(obj, stack, replacementStack) {\r\n stack = stack || [];\r\n replacementStack = replacementStack || [];\r\n\r\n var i = undefined;\r\n\r\n for (i = 0; i < stack.length; i += 1) {\r\n if (stack[i] === obj) {\r\n return replacementStack[i];\r\n }\r\n }\r\n\r\n var canonicalizedObj = undefined;\r\n\r\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\r\n stack.push(obj);\r\n canonicalizedObj = new Array(obj.length);\r\n replacementStack.push(canonicalizedObj);\r\n for (i = 0; i < obj.length; i += 1) {\r\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);\r\n }\r\n stack.pop();\r\n replacementStack.pop();\r\n } else if (typeof obj === 'object' && obj !== null) {\r\n stack.push(obj);\r\n canonicalizedObj = {};\r\n replacementStack.push(canonicalizedObj);\r\n var sortedKeys = [],\r\n key = undefined;\r\n for (key in obj) {\r\n /* istanbul ignore else */\r\n if (obj.hasOwnProperty(key)) {\r\n sortedKeys.push(key);\r\n }\r\n }\r\n sortedKeys.sort();\r\n for (i = 0; i < sortedKeys.length; i += 1) {\r\n key = sortedKeys[i];\r\n canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);\r\n }\r\n stack.pop();\r\n replacementStack.pop();\r\n } else {\r\n canonicalizedObj = obj;\r\n }\r\n return canonicalizedObj;\r\n }\r\n\r\n\r\n/***/ },\r\n/* 9 */\r\n/***/ function(module, exports) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.applyPatch = applyPatch;\r\n\r\n function applyPatch(oldStr, uniDiff) {\r\n var diffstr = uniDiff.split('\\n'),\r\n hunks = [],\r\n i = 0,\r\n remEOFNL = false,\r\n addEOFNL = false;\r\n\r\n // Skip to the first change hunk\r\n while (i < diffstr.length && !/^@@/.test(diffstr[i])) {\r\n i++;\r\n }\r\n\r\n // Parse the unified diff\r\n for (; i < diffstr.length; i++) {\r\n if (diffstr[i][0] === '@') {\r\n var chnukHeader = diffstr[i].split(/@@ -(\\d+),(\\d+) \\+(\\d+),(\\d+) @@/);\r\n hunks.unshift({\r\n start: chnukHeader[3],\r\n oldlength: +chnukHeader[2],\r\n removed: [],\r\n newlength: chnukHeader[4],\r\n added: []\r\n });\r\n } else if (diffstr[i][0] === '+') {\r\n hunks[0].added.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === '-') {\r\n hunks[0].removed.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === ' ') {\r\n hunks[0].added.push(diffstr[i].substr(1));\r\n hunks[0].removed.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === '\\\\') {\r\n if (diffstr[i - 1][0] === '+') {\r\n remEOFNL = true;\r\n } else if (diffstr[i - 1][0] === '-') {\r\n addEOFNL = true;\r\n }\r\n }\r\n }\r\n\r\n // Apply the diff to the input\r\n var lines = oldStr.split('\\n');\r\n for (i = hunks.length - 1; i >= 0; i--) {\r\n var hunk = hunks[i];\r\n // Sanity check the input string. Bail if we don't match.\r\n for (var j = 0; j < hunk.oldlength; j++) {\r\n if (lines[hunk.start - 1 + j] !== hunk.removed[j]) {\r\n return false;\r\n }\r\n }\r\n Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added));\r\n }\r\n\r\n // Handle EOFNL insertion/removal\r\n if (remEOFNL) {\r\n while (!lines[lines.length - 1]) {\r\n lines.pop();\r\n }\r\n } else if (addEOFNL) {\r\n lines.push('');\r\n }\r\n return lines.join('\\n');\r\n }\r\n\r\n\r\n/***/ },\r\n/* 10 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.structuredPatch = structuredPatch;\r\n exports.createTwoFilesPatch = createTwoFilesPatch;\r\n exports.createPatch = createPatch;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _diffPatch = __webpack_require__(11);\r\n\r\n var _utilMap = __webpack_require__(2);\r\n\r\n var _utilMap2 = _interopRequireDefault(_utilMap);\r\n\r\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n if (!options) {\r\n options = { context: 4 };\r\n }\r\n\r\n var diff = _diffPatch.patchDiff.diff(oldStr, newStr);\r\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\r\n\r\n function contextLines(lines) {\r\n return _utilMap2['default'](lines, function (entry) {\r\n return ' ' + entry;\r\n });\r\n }\r\n\r\n var hunks = [];\r\n var oldRangeStart = 0,\r\n newRangeStart = 0,\r\n curRange = [],\r\n oldLine = 1,\r\n newLine = 1;\r\n\r\n var _loop = function (i) {\r\n var current = diff[i],\r\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\r\n current.lines = lines;\r\n\r\n if (current.added || current.removed) {\r\n // If we have previous context, start with that\r\n if (!oldRangeStart) {\r\n var prev = diff[i - 1];\r\n oldRangeStart = oldLine;\r\n newRangeStart = newLine;\r\n\r\n if (prev) {\r\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\r\n oldRangeStart -= curRange.length;\r\n newRangeStart -= curRange.length;\r\n }\r\n }\r\n\r\n // Output our changes\r\n curRange.push.apply(curRange, _utilMap2['default'](lines, function (entry) {\r\n return (current.added ? '+' : '-') + entry;\r\n }));\r\n\r\n // Track the updated file position\r\n if (current.added) {\r\n newLine += lines.length;\r\n } else {\r\n oldLine += lines.length;\r\n }\r\n } else {\r\n // Identical context lines. Track line changes\r\n if (oldRangeStart) {\r\n // Close out any changes that have been output (or join overlapping)\r\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\r\n // Overlapping\r\n curRange.push.apply(curRange, contextLines(lines));\r\n } else {\r\n // end the range and output\r\n var contextSize = Math.min(lines.length, options.context);\r\n curRange.push.apply(curRange, contextLines(lines.slice(0, contextSize)));\r\n\r\n var hunk = {\r\n oldStart: oldRangeStart,\r\n oldLines: oldLine - oldRangeStart + contextSize,\r\n newStart: newRangeStart,\r\n newLines: newLine - newRangeStart + contextSize,\r\n lines: curRange\r\n };\r\n if (i >= diff.length - 2 && lines.length <= options.context) {\r\n // EOF is inside this hunk\r\n var oldEOFNewline = /\\n$/.test(oldStr);\r\n var newEOFNewline = /\\n$/.test(newStr);\r\n if (lines.length == 0 && !oldEOFNewline) {\r\n // special case: old has no eol and no trailing context; no-nl can end up before adds\r\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\r\n } else if (!oldEOFNewline || !newEOFNewline) {\r\n curRange.push('\\\\ No newline at end of file');\r\n }\r\n }\r\n hunks.push(hunk);\r\n\r\n oldRangeStart = 0;\r\n newRangeStart = 0;\r\n curRange = [];\r\n }\r\n }\r\n oldLine += lines.length;\r\n newLine += lines.length;\r\n }\r\n };\r\n\r\n for (var i = 0; i < diff.length; i++) {\r\n _loop(i);\r\n }\r\n\r\n return {\r\n oldFileName: oldFileName, newFileName: newFileName,\r\n oldHeader: oldHeader, newHeader: newHeader,\r\n hunks: hunks\r\n };\r\n }\r\n\r\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\r\n\r\n var ret = [];\r\n if (oldFileName == newFileName) {\r\n ret.push('Index: ' + oldFileName);\r\n }\r\n ret.push('===================================================================');\r\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\r\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\r\n\r\n for (var i = 0; i < diff.hunks.length; i++) {\r\n var hunk = diff.hunks[i];\r\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\r\n ret.push.apply(ret, hunk.lines);\r\n }\r\n\r\n return ret.join('\\n') + '\\n';\r\n }\r\n\r\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 11 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var patchDiff = new _base2['default']();\r\n exports.patchDiff = patchDiff;\r\n patchDiff.tokenize = function (value) {\r\n var ret = [],\r\n linesAndNewlines = value.split(/(\\n|\\r\\n)/);\r\n\r\n // Ignore the final empty token that occurs if the string ends with a new line\r\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\r\n linesAndNewlines.pop();\r\n }\r\n\r\n // Merge the content and line separators into single tokens\r\n for (var i = 0; i < linesAndNewlines.length; i++) {\r\n var line = linesAndNewlines[i];\r\n\r\n if (i % 2) {\r\n ret[ret.length - 1] += line;\r\n } else {\r\n ret.push(line);\r\n }\r\n }\r\n return ret;\r\n };\r\n\r\n\r\n/***/ },\r\n/* 12 */\r\n/***/ function(module, exports) {\r\n\r\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\r\n \"use strict\";\r\n\r\n exports.__esModule = true;\r\n exports.convertChangesToDMP = convertChangesToDMP;\r\n\r\n function convertChangesToDMP(changes) {\r\n var ret = [],\r\n change = undefined,\r\n operation = undefined;\r\n for (var i = 0; i < changes.length; i++) {\r\n change = changes[i];\r\n if (change.added) {\r\n operation = 1;\r\n } else if (change.removed) {\r\n operation = -1;\r\n } else {\r\n operation = 0;\r\n }\r\n\r\n ret.push([operation, change.value]);\r\n }\r\n return ret;\r\n }\r\n\r\n\r\n/***/ },\r\n/* 13 */\r\n/***/ function(module, exports) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.convertChangesToXML = convertChangesToXML;\r\n\r\n function convertChangesToXML(changes) {\r\n var ret = [];\r\n for (var i = 0; i < changes.length; i++) {\r\n var change = changes[i];\r\n if (change.added) {\r\n ret.push('');\r\n } else if (change.removed) {\r\n ret.push('');\r\n }\r\n\r\n ret.push(escapeHTML(change.value));\r\n\r\n if (change.added) {\r\n ret.push('');\r\n } else if (change.removed) {\r\n ret.push('');\r\n }\r\n }\r\n return ret.join('');\r\n }\r\n\r\n function escapeHTML(s) {\r\n var n = s;\r\n n = n.replace(/&/g, '&');\r\n n = n.replace(//g, '>');\r\n n = n.replace(/\"/g, '"');\r\n\r\n return n;\r\n }\r\n\r\n\r\n/***/ }\r\n/******/ ])\r\n});\r\n;","let emojis = 'search,+1,-1,100,1234,8ball,a,ab,abc,abcd,accept,aerial_tramway,airplane,alarm_clock,alien,ambulance,anchor,angel,anger,angry,anguished,ant,apple,aquarius,aries,arrow_backward,arrow_double_down,arrow_double_up,arrow_down,arrow_down_small,arrow_forward,arrow_heading_down,arrow_heading_up,arrow_left,arrow_lower_left,arrow_lower_right,arrow_right,arrow_right_hook,arrow_up,arrow_up_down,arrow_up_small,arrow_upper_left,arrow_upper_right,arrows_clockwise,arrows_counterclockwise,art,articulated_lorry,astonished,atm,b,baby,baby_bottle,baby_chick,baby_symbol,back,baggage_claim,balloon,ballot_box_with_check,bamboo,banana,bangbang,bank,bar_chart,barber,baseball,basketball,bath,bathtub,battery,bear,bee,beer,beers,beetle,beginner,bell,bento,bicyclist,bike,bikini,bird,birthday,black_circle,black_joker,black_medium_small_square,black_medium_square,black_nib,black_small_square,black_square,black_square_button,blossom,blowfish,blue_book,blue_car,blue_heart,blush,boar,boat,bomb,book,bookmark,bookmark_tabs,books,boom,boot,bouquet,bow,bowling,bowtie,boy,bread,bride_with_veil,bridge_at_night,briefcase,broken_heart,bug,bulb,bullettrain_front,bullettrain_side,bus,busstop,bust_in_silhouette,busts_in_silhouette,cactus,cake,calendar,calling,camel,camera,cancer,candy,capital_abcd,capricorn,car,card_index,carousel_horse,cat,cat2,cd,chart,chart_with_downwards_trend,chart_with_upwards_trend,checkered_flag,cherries,cherry_blossom,chestnut,chicken,children_crossing,chocolate_bar,christmas_tree,church,cinema,circus_tent,city_sunrise,city_sunset,cl,clap,clapper,clipboard,clock1,clock10,clock1030,clock11,clock1130,clock12,clock1230,clock130,clock2,clock230,clock3,clock330,clock4,clock430,clock5,clock530,clock6,clock630,clock7,clock730,clock8,clock830,clock9,clock930,closed_book,closed_lock_with_key,closed_umbrella,cloud,clubs,cn,cocktail,coffee,cold_sweat,collision,computer,confetti_ball,confounded,confused,congratulations,construction,construction_worker,convenience_store,cookie,cool,cop,copyright,corn,couple,couple_with_heart,couplekiss,cow,cow2,credit_card,crescent_moon,crocodile,crossed_flags,crown,cry,crying_cat_face,crystal_ball,cupid,curly_loop,currency_exchange,curry,custard,customs,cyclone,dancer,dancers,dango,dart,dash,date,de,deciduous_tree,department_store,diamond_shape_with_a_dot_inside,diamonds,disappointed,disappointed_relieved,dizzy,dizzy_face,do_not_litter,dog,dog2,dollar,dolls,dolphin,donut,door,doughnut,dragon,dragon_face,dress,dromedary_camel,droplet,dvd,e-mail,ear,ear_of_rice,earth_africa,earth_americas,earth_asia,egg,eggplant,eight,eight_pointed_black_star,eight_spoked_asterisk,electric_plug,elephant,email,end,envelope,es,euro,european_castle,european_post_office,evergreen_tree,exclamation,expressionless,eyeglasses,eyes,facepunch,factory,fallen_leaf,family,fast_forward,fax,fearful,feelsgood,feet,ferris_wheel,file_folder,finnadie,fire,fire_engine,fireworks,first_quarter_moon,first_quarter_moon_with_face,fish,fish_cake,fishing_pole_and_fish,fist,five,flags,flashlight,floppy_disk,flower_playing_cards,flushed,foggy,football,fork_and_knife,fountain,four,four_leaf_clover,fr,free,fried_shrimp,fries,frog,frowning,fu,fuelpump,full_moon,full_moon_with_face,game_die,gb,gem,gemini,ghost,gift,gift_heart,girl,globe_with_meridians,goat,goberserk,godmode,golf,grapes,green_apple,green_book,green_heart,grey_exclamation,grey_question,grimacing,grin,grinning,guardsman,guitar,gun,haircut,hamburger,hammer,hamster,hand,handbag,hankey,hash,hatched_chick,hatching_chick,headphones,hear_no_evil,heart,heart_decoration,heart_eyes,heart_eyes_cat,heartbeat,heartpulse,hearts,heavy_check_mark,heavy_division_sign,heavy_dollar_sign,heavy_exclamation_mark,heavy_minus_sign,heavy_multiplication_x,heavy_plus_sign,helicopter,herb,hibiscus,high_brightness,high_heel,hocho,honey_pot,honeybee,horse,horse_racing,hospital,hotel,hotsprings,hourglass,hourglass_flowing_sand,house,house_with_garden,hurtrealbad,hushed,ice_cream,icecream,id,ideograph_advantage,imp,inbox_tray,incoming_envelope,information_desk_person,information_source,innocent,interrobang,iphone,it,izakaya_lantern,jack_o_lantern,japan,japanese_castle,japanese_goblin,japanese_ogre,jeans,joy,joy_cat,jp,key,keycap_ten,kimono,kiss,kissing,kissing_cat,kissing_closed_eyes,kissing_face,kissing_heart,kissing_smiling_eyes,koala,koko,kr,large_blue_circle,large_blue_diamond,large_orange_diamond,last_quarter_moon,last_quarter_moon_with_face,laughing,leaves,ledger,left_luggage,left_right_arrow,leftwards_arrow_with_hook,lemon,leo,leopard,libra,light_rail,link,lips,lipstick,lock,lock_with_ink_pen,lollipop,loop,loudspeaker,love_hotel,love_letter,low_brightness,m,mag,mag_right,mahjong,mailbox,mailbox_closed,mailbox_with_mail,mailbox_with_no_mail,man,man_with_gua_pi_mao,man_with_turban,mans_shoe,maple_leaf,mask,massage,meat_on_bone,mega,melon,memo,mens,metal,metro,microphone,microscope,milky_way,minibus,minidisc,mobile_phone_off,money_with_wings,moneybag,monkey,monkey_face,monorail,mortar_board,mount_fuji,mountain_bicyclist,mountain_cableway,mountain_railway,mouse,mouse2,movie_camera,moyai,muscle,mushroom,musical_keyboard,musical_note,musical_score,mute,nail_care,name_badge,neckbeard,necktie,negative_squared_cross_mark,neutral_face,new,new_moon,new_moon_with_face,newspaper,ng,nine,no_bell,no_bicycles,no_entry,no_entry_sign,no_good,no_mobile_phones,no_mouth,no_pedestrians,no_smoking,non-potable_water,nose,notebook,notebook_with_decorative_cover,notes,nut_and_bolt,o,o2,ocean,octocat,octopus,oden,office,ok,ok_hand,ok_woman,older_man,older_woman,on,oncoming_automobile,oncoming_bus,oncoming_police_car,oncoming_taxi,one,open_file_folder,open_hands,open_mouth,ophiuchus,orange_book,outbox_tray,ox,package,page_facing_up,page_with_curl,pager,palm_tree,panda_face,paperclip,parking,part_alternation_mark,partly_sunny,passport_control,paw_prints,peach,pear,pencil,pencil2,penguin,pensive,performing_arts,persevere,person_frowning,person_with_blond_hair,person_with_pouting_face,phone,pig,pig2,pig_nose,pill,pineapple,pisces,pizza,plus1,point_down,point_left,point_right,point_up,point_up_2,police_car,poodle,poop,post_office,postal_horn,postbox,potable_water,pouch,poultry_leg,pound,pouting_cat,pray,princess,punch,purple_heart,purse,pushpin,put_litter_in_its_place,question,rabbit,rabbit2,racehorse,radio,radio_button,rage,rage1,rage2,rage3,rage4,railway_car,rainbow,raised_hand,raised_hands,raising_hand,ram,ramen,rat,recycle,red_car,red_circle,registered,relaxed,relieved,repeat,repeat_one,restroom,revolving_hearts,rewind,ribbon,rice,rice_ball,rice_cracker,rice_scene,ring,rocket,roller_coaster,rooster,rose,rotating_light,round_pushpin,rowboat,ru,rugby_football,runner,running,running_shirt_with_sash,sa,sagittarius,sailboat,sake,sandal,santa,satellite,satisfied,saxophone,school,school_satchel,scissors,scorpius,scream,scream_cat,scroll,seat,secret,see_no_evil,seedling,seven,shaved_ice,sheep,shell,ship,shipit,shirt,shit,shoe,shower,signal_strength,six,six_pointed_star,ski,skull,sleeping,sleepy,slot_machine,small_blue_diamond,small_orange_diamond,small_red_triangle,small_red_triangle_down,smile,smile_cat,smiley,smiley_cat,smiling_imp,smirk,smirk_cat,smoking,snail,snake,snowboarder,snowflake,snowman,sob,soccer,soon,sos,sound,space_invader,spades,spaghetti,sparkle,sparkler,sparkles,sparkling_heart,speak_no_evil,speaker,speech_balloon,speedboat,squirrel,star,star2,stars,station,statue_of_liberty,steam_locomotive,stew,straight_ruler,strawberry,stuck_out_tongue,stuck_out_tongue_closed_eyes,stuck_out_tongue_winking_eye,sun_with_face,sunflower,sunglasses,sunny,sunrise,sunrise_over_mountains,surfer,sushi,suspect,suspension_railway,sweat,sweat_drops,sweat_smile,sweet_potato,swimmer,symbols,syringe,tada,tanabata_tree,tangerine,taurus,taxi,tea,telephone,telephone_receiver,telescope,tennis,tent,thought_balloon,three,thumbsdown,thumbsup,ticket,tiger,tiger2,tired_face,tm,toilet,tokyo_tower,tomato,tongue,top,tophat,tractor,traffic_light,train,train2,tram,triangular_flag_on_post,triangular_ruler,trident,triumph,trolleybus,trollface,trophy,tropical_drink,tropical_fish,truck,trumpet,tshirt,tulip,turtle,tv,twisted_rightwards_arrows,two,two_hearts,two_men_holding_hands,two_women_holding_hands,u5272,u5408,u55b6,u6307,u6708,u6709,u6e80,u7121,u7533,u7981,u7a7a,uk,umbrella,unamused,underage,unlock,up,us,v,vertical_traffic_light,vhs,vibration_mode,video_camera,video_game,violin,virgo,volcano,vs,walking,waning_crescent_moon,waning_gibbous_moon,warning,watch,water_buffalo,watermelon,wave,wavy_dash,waxing_crescent_moon,waxing_gibbous_moon,wc,weary,wedding,whale,whale2,wheelchair,white_check_mark,white_circle,white_flower,white_large_square,white_medium_small_square,white_medium_square,white_small_square,white_square_button,wind_chime,wine_glass,wink,wolf,woman,womans_clothes,womans_hat,womens,worried,wrench,x,yellow_heart,yen,yum,zap,zero,zzz';\r\n\r\nexport default emojis.split(',');\r\n",";(function(w, undefined) {\r\n 'use strict';\r\n\r\n var ILID = ('il' + Math.random()).replace(/0\\./g, '');\r\n var EVENTS = 'load error';\r\n var ALLOWED_NODE_TYPES = [\r\n 1, // ELEMENT_NODE\r\n 9, // DOCUMENT_NODE\r\n 11 // DOCUMENT_FRAGMENT_NODE\r\n ];\r\n\r\n /**\r\n * Return type of the value.\r\n *\r\n * @param {Mixed} value\r\n *\r\n * @return {String}\r\n */\r\n function type(value) {\r\n if (value == null) {\r\n return String(value);\r\n }\r\n if (typeof value === 'object' || typeof value === 'function') {\r\n return (value instanceof w.NodeList && 'nodelist') ||\r\n (value instanceof w.HTMLCollection && 'htmlcollection') ||\r\n Object.prototype.toString.call(value).match(/\\s([a-z]+)/i)[1].toLowerCase();\r\n }\r\n return typeof value;\r\n }\r\n\r\n /**\r\n * Convert array-like objects into an array.\r\n *\r\n * @param {Mixed} collection\r\n *\r\n * @return {Array}\r\n */\r\n function toArray(collection) {\r\n switch (type(collection)) {\r\n case 'array':\r\n return collection;\r\n case 'undefined':\r\n return [];\r\n case 'nodelist':\r\n case 'htmlcollection':\r\n case 'arguments':\r\n var arr = [];\r\n for (var i = 0, l = collection.length; i < l; i++) {\r\n if (i in collection) {\r\n arr.push(collection[i]);\r\n }\r\n }\r\n return arr;\r\n default:\r\n return [collection];\r\n }\r\n }\r\n\r\n /**\r\n * Check whether the value is in an array.\r\n *\r\n * @param {Mixed} value\r\n * @param {Array} array\r\n *\r\n * @return {Boolean}\r\n */\r\n function inArray(value, array) {\r\n if (type(array) !== 'array') {\r\n return -1;\r\n }\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i=0, l = array.length; i < l; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Callback proxy.\r\n *\r\n * Ensures that callback will receive a specific context.\r\n *\r\n * @param {Mixed} context\r\n * @param {Function} callback\r\n */\r\n function proxy(context, callback) {\r\n return function () {\r\n return callback.apply(context, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Add event listeners to element.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n *\r\n * @return {Void}\r\n */\r\n function bind(element, eventName, handler) {\r\n listener(element, eventName, handler);\r\n }\r\n\r\n /**\r\n * Remove event listeners from element.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n *\r\n * @return {Void}\r\n */\r\n function unbind(element, eventName, handler) {\r\n listener(element, eventName, handler, 1);\r\n }\r\n\r\n /**\r\n * Manage element event listeners.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n * @param {Bool} remove\r\n *\r\n * @return {Void}\r\n */\r\n function listener(element, eventName, handler, remove) {\r\n var events = eventName.split(' ');\r\n for (var i = 0, l = events.length; i < l; i++) {\r\n if (element.addEventListener) {\r\n element[remove ? 'removeEventListener' : 'addEventListener'](events[i], handler, false);\r\n } else if (element.attachEvent) {\r\n element[remove ? 'detachEvent' : 'attachEvent']('on' + events[i], handler);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Callbacks handler.\r\n */\r\n function Callbacks() {\r\n var self = this;\r\n var callbacks = {};\r\n var i, l;\r\n\r\n /**\r\n * Registers callbacks.\r\n *\r\n * @param {Mixed} name\r\n * @param {Mixed} fn\r\n *\r\n * @return {Void}\r\n */\r\n self.on = function (name, fn) {\r\n callbacks[name] = callbacks[name] || [];\r\n if (type(fn) === 'function' && inArray(fn, callbacks[name]) === -1) {\r\n callbacks[name].push(fn);\r\n }\r\n };\r\n\r\n /**\r\n * Remove one or all callbacks.\r\n *\r\n * @param {String} name\r\n * @param {Mixed} fn\r\n *\r\n * @return {Void}\r\n */\r\n self.off = function (name, fn) {\r\n callbacks[name] = callbacks[name] || [];\r\n if (fn === undefined) {\r\n callbacks[name].length = 0;\r\n } else {\r\n var index = inArray(fn, callbacks[name]);\r\n if (index !== -1) {\r\n callbacks[name].splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Trigger callbacks for event.\r\n *\r\n * @param {String} name\r\n * @param {Mixed} context\r\n * @param {Mixed} argN\r\n *\r\n * @return {Void}\r\n */\r\n self.trigger = function (name, context) {\r\n if (callbacks[name]) {\r\n for (i = 0, l = callbacks[name].length; i < l; i++) {\r\n callbacks[name][i].apply(context, Array.prototype.slice.call(arguments, 2));\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Executes callback(s) when images have finished with loading.\r\n *\r\n * @param {NodeList} collection Collection of containers, images, or both.\r\n * @param {Function} options ImagesLoaded options.\r\n *\r\n * @return {Void}\r\n */\r\n function ImagesLoaded(collection, options) {\r\n // Fill unassigned options with defaults\r\n options = options || {};\r\n for (var key in ImagesLoaded.defaults) {\r\n if (!options.hasOwnProperty(key)) {\r\n options[key] = ImagesLoaded.defaults[key];\r\n }\r\n }\r\n\r\n // Private variables\r\n var self = this instanceof ImagesLoaded ? this : {};\r\n var callbacks = new Callbacks();\r\n var tIndex;\r\n\r\n // Element holders\r\n self.images = [];\r\n self.loaded = [];\r\n self.pending = [];\r\n self.proper = [];\r\n self.broken = [];\r\n\r\n // States\r\n self.isPending = true;\r\n self.isDone = false;\r\n self.isFailed = false;\r\n\r\n // Extract images\r\n collection = toArray(collection);\r\n for (var c = 0, cl = collection.length; c < cl; c++) {\r\n if (collection[c].nodeName === 'IMG') {\r\n self.images.push(collection[c]);\r\n } else if (inArray(collection[c].nodeType, ALLOWED_NODE_TYPES) !== -1) {\r\n self.images = self.images.concat(toArray(collection[c].getElementsByTagName('img')));\r\n }\r\n }\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.done = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('done', callback);\r\n } else if (self.isDone && type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for fail state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.fail = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('fail', callback);\r\n } else if (self.isFailed && type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.always = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('always', callback);\r\n } else if (type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.progress = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('progress', callback);\r\n }\r\n // Retroactivity\r\n for (var i = 0, l = self.loaded.length; i < l; i++) {\r\n callback.call(self, self.loaded[i], self.loaded[i][ILID].isBroken);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Executes proper callbacks when all images has finished with loading.\r\n *\r\n * @return {Void}\r\n */\r\n function doneLoading() {\r\n if (!self.isPending) {\r\n return;\r\n }\r\n // Clear timeout\r\n clearTimeout(tIndex);\r\n // Mark states\r\n self.isPending = false;\r\n self.isDone = self.images.length === self.proper.length;\r\n self.isFailed = !self.isDone;\r\n // Trigger callbacks\r\n callbacks.trigger(self.isDone ? 'done' : 'fail', self);\r\n callbacks.trigger('always', self);\r\n }\r\n\r\n /**\r\n * Terminates the determination process prematurely.\r\n *\r\n * @return {Void}\r\n */\r\n function terminate() {\r\n // Mark still pending images as broken\r\n while (self.pending.length) {\r\n imgLoaded(self.pending[0], 1);\r\n }\r\n }\r\n\r\n /**\r\n * Image load event handler.\r\n *\r\n * @param {Event} event\r\n *\r\n * @return {Void}\r\n */\r\n function imgLoadedHandler(event) {\r\n /*jshint validthis:true */\r\n event = event || w.event;\r\n // Unbind loaded handler from temporary image\r\n unbind(this[ILID].tmpImg, EVENTS, imgLoadedHandler);\r\n // Leave the temporary image for garbage collection\r\n this[ILID].tmpImg = null;\r\n // Don't proceed if image is already loaded\r\n if (inArray(this, self.loaded) === -1) {\r\n imgLoaded(this, event.type !== 'load');\r\n }\r\n }\r\n\r\n /**\r\n * Mark image as loaded.\r\n *\r\n * @param {Node} img Image element.\r\n * @param {Boolean} isBroken Whether the image is broken.\r\n *\r\n * @return {Void}\r\n */\r\n function imgLoaded(img, isBroken) {\r\n var pendingIndex = inArray(img, self.pending);\r\n if (pendingIndex === -1) {\r\n return;\r\n } else {\r\n self.pending.splice(pendingIndex, 1);\r\n }\r\n // Store element in loaded images array\r\n self.loaded.push(img);\r\n // Keep track of broken and properly loaded images\r\n self[isBroken ? 'broken' : 'proper'].push(img);\r\n // Cache image state for future calls\r\n img[ILID].isBroken = isBroken;\r\n img[ILID].src = img.src;\r\n // Trigger progress callback\r\n setTimeout(function () {\r\n callbacks.trigger('progress', self, img, isBroken);\r\n });\r\n // Call doneLoading\r\n if (self.images.length === self.loaded.length) {\r\n setTimeout(doneLoading);\r\n }\r\n }\r\n\r\n /**\r\n * Checks the status of all images.\r\n *\r\n * @return {Void}\r\n */\r\n function check() {\r\n // If no images, trigger immediately\r\n if (!self.images.length) {\r\n doneLoading();\r\n return;\r\n }\r\n // Actually check the images\r\n var img;\r\n for (var i = 0, il = self.images.length; i < il; i++) {\r\n img = self.images[i];\r\n img[ILID] = img[ILID] || {};\r\n // Add image to pending array\r\n self.pending.push(img);\r\n // Find out whether this image has been already checked for status.\r\n // If it was, and src has not changed, call imgLoaded.\r\n if (img[ILID].isBroken !== undefined && img[ILID].src === img.src) {\r\n imgLoaded(img, img[ILID].isBroken);\r\n continue;\r\n }\r\n // If complete is true and browser supports natural sizes,\r\n // try to check for image status manually.\r\n if (img.complete && img.naturalWidth !== undefined) {\r\n imgLoaded(img, img.naturalWidth === 0);\r\n continue;\r\n }\r\n // If none of the checks above matched, simulate loading on detached element.\r\n img[ILID].tmpImg = document.createElement('img');\r\n bind(img[ILID].tmpImg, EVENTS, proxy(img, imgLoadedHandler));\r\n img[ILID].tmpImg.src = img.src;\r\n }\r\n }\r\n\r\n // Defer the images check to next process tick to give people time to bind progress callbacks.\r\n setTimeout(check);\r\n // Set the timeout\r\n setTimeout(terminate, options.timeout);\r\n // Return the instance\r\n return self;\r\n }\r\n\r\n // Default options\r\n ImagesLoaded.defaults = {\r\n timeout: 10000 // Automatically fail images loading when this time has passed.\r\n };\r\n\r\n // Expose globally\r\n w.ImagesLoaded = ImagesLoaded;\r\n}(window));\r\n","// Generated by CoffeeScript 1.10.0\r\n\r\n/*\r\npaste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.\r\n\r\nhttps://github.com/layerssss/paste.js\r\n */\r\n\r\n(function() {\r\n var $, Paste, createHiddenEditable, dataURLtoBlob, isFocusable;\r\n\r\n $ = window.jQuery;\r\n\r\n $.paste = function(pasteContainer) {\r\n var pm;\r\n if (typeof console !== \"undefined\" && console !== null) {\r\n console.log(\"DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.\");\r\n }\r\n pm = Paste.mountNonInputable(pasteContainer);\r\n return pm._container;\r\n };\r\n\r\n $.fn.pastableNonInputable = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is('textarea, input:text, [contenteditable]')) {\r\n continue;\r\n }\r\n Paste.mountNonInputable(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n $.fn.pastableTextarea = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is(':not(textarea, input:text)')) {\r\n continue;\r\n }\r\n Paste.mountTextarea(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n $.fn.pastableContenteditable = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is(':not([contenteditable])')) {\r\n continue;\r\n }\r\n Paste.mountContenteditable(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n dataURLtoBlob = function(dataURL, sliceSize) {\r\n var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, ref, slice;\r\n if (sliceSize == null) {\r\n sliceSize = 512;\r\n }\r\n if (!(m = dataURL.match(/^data\\:([^\\;]+)\\;base64\\,(.+)$/))) {\r\n return null;\r\n }\r\n ref = m, m = ref[0], contentType = ref[1], b64Data = ref[2];\r\n byteCharacters = atob(b64Data);\r\n byteArrays = [];\r\n offset = 0;\r\n while (offset < byteCharacters.length) {\r\n slice = byteCharacters.slice(offset, offset + sliceSize);\r\n byteNumbers = new Array(slice.length);\r\n i = 0;\r\n while (i < slice.length) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n i++;\r\n }\r\n byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n offset += sliceSize;\r\n }\r\n return new Blob(byteArrays, {\r\n type: contentType\r\n });\r\n };\r\n\r\n createHiddenEditable = function() {\r\n return $(document.createElement('div')).attr('contenteditable', true).attr('aria-hidden', true).attr('tabindex', -1).css({\r\n width: 1,\r\n height: 1,\r\n position: 'fixed',\r\n left: -100,\r\n overflow: 'hidden'\r\n });\r\n };\r\n\r\n isFocusable = function(element, hasTabindex) {\r\n var fieldset, focusableIfVisible, img, map, mapName, nodeName;\r\n map = void 0;\r\n mapName = void 0;\r\n img = void 0;\r\n focusableIfVisible = void 0;\r\n fieldset = void 0;\r\n nodeName = element.nodeName.toLowerCase();\r\n if ('area' === nodeName) {\r\n map = element.parentNode;\r\n mapName = map.name;\r\n if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {\r\n return false;\r\n }\r\n img = $('img[usemap=\\'#' + mapName + '\\']');\r\n return img.length > 0 && img.is(':visible');\r\n }\r\n if (/^(input|select|textarea|button|object)$/.test(nodeName)) {\r\n focusableIfVisible = !element.disabled;\r\n if (focusableIfVisible) {\r\n fieldset = $(element).closest('fieldset')[0];\r\n if (fieldset) {\r\n focusableIfVisible = !fieldset.disabled;\r\n }\r\n }\r\n } else if ('a' === nodeName) {\r\n focusableIfVisible = element.href || hasTabindex;\r\n } else {\r\n focusableIfVisible = hasTabindex;\r\n }\r\n focusableIfVisible = focusableIfVisible || $(element).is('[contenteditable]');\r\n return focusableIfVisible && $(element).is(':visible');\r\n };\r\n\r\n Paste = (function() {\r\n Paste.prototype._target = null;\r\n\r\n Paste.prototype._container = null;\r\n\r\n Paste.mountNonInputable = function(nonInputable) {\r\n var paste;\r\n paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);\r\n $(nonInputable).on('click', (function(_this) {\r\n return function(ev) {\r\n if (!isFocusable(ev.target, false)) {\r\n return paste._container.focus();\r\n }\r\n };\r\n })(this));\r\n paste._container.on('focus', (function(_this) {\r\n return function() {\r\n return $(nonInputable).addClass('pastable-focus');\r\n };\r\n })(this));\r\n return paste._container.on('blur', (function(_this) {\r\n return function() {\r\n return $(nonInputable).removeClass('pastable-focus');\r\n };\r\n })(this));\r\n };\r\n\r\n Paste.mountTextarea = function(textarea) {\r\n var ctlDown, paste, ref, ref1;\r\n if ((typeof DataTransfer !== \"undefined\" && DataTransfer !== null ? DataTransfer.prototype : void 0) && ((ref = Object.getOwnPropertyDescriptor) != null ? (ref1 = ref.call(Object, DataTransfer.prototype, 'items')) != null ? ref1.get : void 0 : void 0)) {\r\n return this.mountContenteditable(textarea);\r\n }\r\n paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);\r\n ctlDown = false;\r\n $(textarea).on('keyup', function(ev) {\r\n var ref2;\r\n if ((ref2 = ev.keyCode) === 17 || ref2 === 224) {\r\n ctlDown = false;\r\n }\r\n return null;\r\n });\r\n $(textarea).on('keydown', function(ev) {\r\n var ref2;\r\n if ((ref2 = ev.keyCode) === 17 || ref2 === 224) {\r\n ctlDown = true;\r\n }\r\n if ((ev.ctrlKey != null) && (ev.metaKey != null)) {\r\n ctlDown = ev.ctrlKey || ev.metaKey;\r\n }\r\n if (ctlDown && ev.keyCode === 86) {\r\n paste._textarea_focus_stolen = true;\r\n paste._container.focus();\r\n paste._paste_event_fired = false;\r\n setTimeout((function(_this) {\r\n return function() {\r\n if (!paste._paste_event_fired) {\r\n $(textarea).focus();\r\n return paste._textarea_focus_stolen = false;\r\n }\r\n };\r\n })(this), 1);\r\n }\r\n return null;\r\n });\r\n $(textarea).on('paste', (function(_this) {\r\n return function() {};\r\n })(this));\r\n $(textarea).on('focus', (function(_this) {\r\n return function() {\r\n if (!paste._textarea_focus_stolen) {\r\n return $(textarea).addClass('pastable-focus');\r\n }\r\n };\r\n })(this));\r\n $(textarea).on('blur', (function(_this) {\r\n return function() {\r\n if (!paste._textarea_focus_stolen) {\r\n return $(textarea).removeClass('pastable-focus');\r\n }\r\n };\r\n })(this));\r\n $(paste._target).on('_pasteCheckContainerDone', (function(_this) {\r\n return function() {\r\n $(textarea).focus();\r\n return paste._textarea_focus_stolen = false;\r\n };\r\n })(this));\r\n return $(paste._target).on('pasteText', (function(_this) {\r\n return function(ev, data) {\r\n var content, curEnd, curStart;\r\n curStart = $(textarea).prop('selectionStart');\r\n curEnd = $(textarea).prop('selectionEnd');\r\n content = $(textarea).val();\r\n $(textarea).val(\"\" + content.slice(0, curStart) + data.text + content.slice(curEnd));\r\n $(textarea)[0].setSelectionRange(curStart + data.text.length, curStart + data.text.length);\r\n return $(textarea).trigger('change');\r\n };\r\n })(this));\r\n };\r\n\r\n Paste.mountContenteditable = function(contenteditable) {\r\n var paste;\r\n paste = new Paste(contenteditable, contenteditable);\r\n $(contenteditable).on('focus', (function(_this) {\r\n return function() {\r\n return $(contenteditable).addClass('pastable-focus');\r\n };\r\n })(this));\r\n return $(contenteditable).on('blur', (function(_this) {\r\n return function() {\r\n return $(contenteditable).removeClass('pastable-focus');\r\n };\r\n })(this));\r\n };\r\n\r\n function Paste(_container, _target) {\r\n this._container = _container;\r\n this._target = _target;\r\n this._container = $(this._container);\r\n this._target = $(this._target).addClass('pastable');\r\n this._container.on('paste', (function(_this) {\r\n return function(ev) {\r\n var clipboardData, file, item, j, k, len, len1, reader, ref, ref1, ref2, ref3, text;\r\n if (ev.currentTarget !== ev.target) {\r\n return ev.preventDefault();\r\n }\r\n _this._paste_event_fired = true;\r\n if (((ref = ev.originalEvent) != null ? ref.clipboardData : void 0) != null) {\r\n clipboardData = ev.originalEvent.clipboardData;\r\n if (clipboardData.items) {\r\n ref1 = clipboardData.items;\r\n for (j = 0, len = ref1.length; j < len; j++) {\r\n item = ref1[j];\r\n if (item.type.match(/^image\\//)) {\r\n reader = new FileReader();\r\n reader.onload = function(event) {\r\n return _this._handleImage(event.target.result);\r\n };\r\n reader.readAsDataURL(item.getAsFile());\r\n ev.preventDefault();\r\n break;\r\n }\r\n if (item.type === 'text/plain') {\r\n item.getAsString(function(string) {\r\n return _this._target.trigger('pasteText', {\r\n text: string\r\n });\r\n });\r\n }\r\n }\r\n } else {\r\n if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {\r\n text = clipboardData.getData('Text');\r\n setTimeout(function() {\r\n return _this._target.trigger('pasteText', {\r\n text: text\r\n });\r\n }, 1);\r\n }\r\n _this._checkImagesInContainer(function(src) {\r\n return _this._handleImage(src);\r\n });\r\n }\r\n }\r\n if (clipboardData = window.clipboardData) {\r\n if ((ref2 = (text = clipboardData.getData('Text'))) != null ? ref2.length : void 0) {\r\n setTimeout(function() {\r\n _this._target.trigger('pasteText', {\r\n text: text\r\n });\r\n return _this._target.trigger('_pasteCheckContainerDone');\r\n }, 1);\r\n } else {\r\n ref3 = clipboardData.files;\r\n for (k = 0, len1 = ref3.length; k < len1; k++) {\r\n file = ref3[k];\r\n _this._handleImage(URL.createObjectURL(file));\r\n }\r\n _this._checkImagesInContainer(function(src) {});\r\n }\r\n }\r\n return null;\r\n };\r\n })(this));\r\n }\r\n\r\n Paste.prototype._handleImage = function(src) {\r\n var loader;\r\n if (src.match(/^webkit\\-fake\\-url\\:\\/\\//)) {\r\n return this._target.trigger('pasteImageError', {\r\n message: \"You are trying to paste an image in Safari, however we are unable to retieve its data.\"\r\n });\r\n }\r\n loader = new Image();\r\n loader.crossOrigin = \"anonymous\";\r\n loader.onload = (function(_this) {\r\n return function() {\r\n var blob, canvas, ctx, dataURL;\r\n canvas = document.createElement('canvas');\r\n canvas.width = loader.width;\r\n canvas.height = loader.height;\r\n ctx = canvas.getContext('2d');\r\n ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);\r\n dataURL = null;\r\n try {\r\n dataURL = canvas.toDataURL('image/png');\r\n blob = dataURLtoBlob(dataURL);\r\n } catch (undefined) {}\r\n if (dataURL) {\r\n return _this._target.trigger('pasteImage', {\r\n blob: blob,\r\n dataURL: dataURL,\r\n width: loader.width,\r\n height: loader.height\r\n });\r\n }\r\n };\r\n })(this);\r\n loader.onerror = (function(_this) {\r\n return function() {\r\n return _this._target.trigger('pasteImageError', {\r\n message: \"Failed to get image from: \" + src,\r\n url: src\r\n });\r\n };\r\n })(this);\r\n return loader.src = src;\r\n };\r\n\r\n Paste.prototype._checkImagesInContainer = function(cb) {\r\n var img, j, len, ref, timespan;\r\n timespan = Math.floor(1000 * Math.random());\r\n ref = this._container.find('img');\r\n for (j = 0, len = ref.length; j < len; j++) {\r\n img = ref[j];\r\n img[\"_paste_marked_\" + timespan] = true;\r\n }\r\n return setTimeout((function(_this) {\r\n return function() {\r\n var k, len1, ref1;\r\n ref1 = _this._container.find('img');\r\n for (k = 0, len1 = ref1.length; k < len1; k++) {\r\n img = ref1[k];\r\n if (!img[\"_paste_marked_\" + timespan]) {\r\n cb(img.src);\r\n $(img).remove();\r\n }\r\n }\r\n return _this._target.trigger('_pasteCheckContainerDone');\r\n };\r\n })(this), 1);\r\n };\r\n\r\n return Paste;\r\n\r\n })();\r\n\r\n}).call(this);\r\n","(function($) {\r\n $.fn.extend({\r\n insertAtCaret: function(myValue) {\r\n var $t = $(this)[0];\r\n if (document.selection) {\r\n this.focus();\r\n sel = document.selection.createRange();\r\n sel.text = myValue;\r\n this.focus();\r\n } else if ($t.selectionStart || $t.selectionStart == '0') {\r\n var startPos = $t.selectionStart;\r\n var endPos = $t.selectionEnd;\r\n var scrollTop = $t.scrollTop;\r\n $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);\r\n this.focus();\r\n $t.selectionStart = startPos + myValue.length;\r\n $t.selectionEnd = startPos + myValue.length;\r\n $t.scrollTop = scrollTop;\r\n } else {\r\n this.value += myValue;\r\n this.focus();\r\n }\r\n }\r\n })\r\n})(jQuery);","/**\r\n * 轮询插件\r\n * 原理:轮询最小间隔 6s, 最大间隔5min, 轮询节能模式, 当连续1min(10次)获取不到新数据, 轮询间隔 时间 +6s, \r\n * 接着递增 +6/次, 直到最大间隔, 不再递增轮询间隔. 一旦有一次获得新数据, 轮询间隔恢复到最小间隔6s.\r\n * @return {[type]} [description]\r\n */\r\nvar minInterval = 6000; // 轮询最小间隔 6s\r\nvar maxInterval = 300000; // 轮询最大间隔5min\r\nvar incInterval = 6000; // 递增轮询间隔时间 6s\r\n\r\nvar tolerate = 10; // 容忍连续获取不到新数据的(次数), 超过, 就会开始递增轮询间隔时间.\r\n\r\nvar timer = null; // 轮询对象引用\r\n\r\nvar inc = 0; // 轮询次数计数器\r\n\r\nvar interval = minInterval; // 轮询实际轮询间隔\r\n\r\nvar _pollCb = null;\r\nvar _errCb = null;\r\nvar _isPause = false; // 是否暂停\r\n\r\nfunction oneHandler() {\r\n\r\n if (_isPause) {\r\n return;\r\n }\r\n\r\n try { // 捕获轮询执行方法体中的异常, 防止破坏轮询的持续性.\r\n _pollCb && _pollCb(_reset, _stop);\r\n } catch (e) {\r\n _errCb && _errCb(_reset, _stop, e);\r\n\r\n // TODO for debugging\r\n console.log('轮询异常: ' + e);\r\n }\r\n}\r\n\r\n/**\r\n * 轮询处理递归逻辑\r\n * @param {[Function]} pollCb 轮询业务回调\r\n * @param {[Function]} errCb 轮询业务处理异常回到\r\n */\r\nfunction _start() {\r\n // TODO for debugging\r\n // console.log('poll start...');\r\n\r\n _isPause = false;\r\n\r\n oneHandler();\r\n timer = setInterval(function() {\r\n inc++;\r\n oneHandler();\r\n // TODO for debugging\r\n // console.log(interval);\r\n\r\n if (inc > tolerate) { // 超过轮询容忍次数内\r\n\r\n interval = minInterval + (incInterval * (inc - tolerate));\r\n\r\n if (interval <= maxInterval) { // 最大轮询间隔范围内, 逐次递增轮询间隔\r\n clearInterval(timer);\r\n _start();\r\n }\r\n }\r\n }, interval);\r\n}\r\n\r\nfunction _stop() {\r\n // TODO for debugging\r\n // console.log(\"poll stop...\");\r\n\r\n inc = 0;\r\n interval = minInterval;\r\n _isPause = false;\r\n clearInterval(timer);\r\n timer = null;\r\n}\r\n\r\nfunction _reset() {\r\n // TODO for debugging\r\n // console.log(\"poll reset...\");\r\n\r\n _stop();\r\n _start();\r\n}\r\n\r\nfunction _pause() {\r\n // TODO for debugging\r\n // console.log(\"pause reset...\");\r\n _isPause = true;\r\n}\r\n\r\nexport default {\r\n start: function(pollCb, errCb) {\r\n if (timer) {\r\n _stop();\r\n }\r\n _pollCb = pollCb;\r\n _errCb = errCb;\r\n _start();\r\n },\r\n reset: function() {\r\n _reset();\r\n },\r\n stop: function() {\r\n _stop();\r\n },\r\n pause: function() {\r\n _pause();\r\n }\r\n};\r\n","/**\r\n * jQuery CSS Customizable Scrollbar\r\n *\r\n * Copyright 2015, Yuriy Khabarov\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n *\r\n * If you found bug, please contact me via email <13real008@gmail.com>\r\n *\r\n * @author Yuriy Khabarov aka Gromo\r\n * @version 0.2.11\r\n * @url https://github.com/gromo/jquery.scrollbar/\r\n *\r\n */\r\n;\r\n(function (root, factory) {\r\n factory(root.jQuery);\r\n}(window, function ($) {\r\n 'use strict';\r\n\r\n // init flags & variables\r\n var debug = false;\r\n\r\n var browser = {\r\n data: {\r\n index: 0,\r\n name: 'scrollbar'\r\n },\r\n firefox: /firefox/i.test(navigator.userAgent),\r\n macosx: /mac/i.test(navigator.platform),\r\n msedge: /edge\\/\\d+/i.test(navigator.userAgent),\r\n msie: /(msie|trident)/i.test(navigator.userAgent),\r\n mobile: /android|webos|iphone|ipad|ipod|blackberry/i.test(navigator.userAgent),\r\n overlay: null,\r\n scroll: null,\r\n scrolls: [],\r\n webkit: /webkit/i.test(navigator.userAgent) && !/edge\\/\\d+/i.test(navigator.userAgent)\r\n };\r\n\r\n browser.scrolls.add = function (instance) {\r\n this.remove(instance).push(instance);\r\n };\r\n browser.scrolls.remove = function (instance) {\r\n while ($.inArray(instance, this) >= 0) {\r\n this.splice($.inArray(instance, this), 1);\r\n }\r\n return this;\r\n };\r\n\r\n var defaults = {\r\n autoScrollSize: true, // automatically calculate scrollsize\r\n autoUpdate: true, // update scrollbar if content/container size changed\r\n debug: false, // debug mode\r\n disableBodyScroll: false, // disable body scroll if mouse over container\r\n duration: 200, // scroll animate duration in ms\r\n ignoreMobile: false, // ignore mobile devices\r\n ignoreOverlay: false, // ignore browsers with overlay scrollbars (mobile, MacOS)\r\n isRtl: false, // is RTL\r\n scrollStep: 30, // scroll step for scrollbar arrows\r\n showArrows: false, // add class to show arrows\r\n stepScrolling: true, // when scrolling to scrollbar mousedown position\r\n\r\n scrollx: null, // horizontal scroll element\r\n scrolly: null, // vertical scroll element\r\n\r\n onDestroy: null, // callback function on destroy,\r\n onFallback: null, // callback function if scrollbar is not initialized\r\n onInit: null, // callback function on first initialization\r\n onScroll: null, // callback function on content scrolling\r\n onUpdate: null // callback function on init/resize (before scrollbar size calculation)\r\n };\r\n\r\n\r\n var BaseScrollbar = function (container) {\r\n\r\n if (!browser.scroll) {\r\n browser.overlay = isScrollOverlaysContent();\r\n browser.scroll = getBrowserScrollSize();\r\n updateScrollbars();\r\n\r\n // $(window).resize(function () {\r\n // var forceUpdate = false;\r\n // if (browser.scroll && (browser.scroll.height || browser.scroll.width)) {\r\n // var scroll = getBrowserScrollSize();\r\n // if (scroll.height !== browser.scroll.height || scroll.width !== browser.scroll.width) {\r\n // browser.scroll = scroll;\r\n // forceUpdate = true; // handle page zoom\r\n // }\r\n // }\r\n // updateScrollbars(forceUpdate);\r\n // });\r\n \r\n $(window).resize(function () {\r\n updateScrollbars(true);\r\n });\r\n }\r\n\r\n this.container = container;\r\n this.namespace = '.scrollbar_' + browser.data.index++;\r\n this.options = $.extend({}, defaults, window.jQueryScrollbarOptions || {});\r\n this.scrollTo = null;\r\n this.scrollx = {};\r\n this.scrolly = {};\r\n\r\n container.data(browser.data.name, this);\r\n browser.scrolls.add(this);\r\n };\r\n\r\n BaseScrollbar.prototype = {\r\n destroy: function () {\r\n\r\n if (!this.wrapper) {\r\n return;\r\n }\r\n\r\n this.container.removeData(browser.data.name);\r\n browser.scrolls.remove(this);\r\n\r\n // init variables\r\n var scrollLeft = this.container.scrollLeft();\r\n var scrollTop = this.container.scrollTop();\r\n\r\n this.container.insertBefore(this.wrapper).css({\r\n \"height\": \"\",\r\n \"margin\": \"\",\r\n \"max-height\": \"\"\r\n })\r\n .removeClass('scroll-content scroll-scrollx_visible scroll-scrolly_visible')\r\n .off(this.namespace)\r\n .scrollLeft(scrollLeft)\r\n .scrollTop(scrollTop);\r\n\r\n this.scrollx.scroll.removeClass('scroll-scrollx_visible').find('div').addBack().off(this.namespace);\r\n this.scrolly.scroll.removeClass('scroll-scrolly_visible').find('div').addBack().off(this.namespace);\r\n\r\n this.wrapper.remove();\r\n\r\n $(document).add('body').off(this.namespace);\r\n\r\n if ($.isFunction(this.options.onDestroy)) {\r\n this.options.onDestroy.apply(this, [this.container]);\r\n }\r\n },\r\n init: function (options) {\r\n\r\n // init variables\r\n var S = this,\r\n c = this.container,\r\n cw = this.containerWrapper || c,\r\n namespace = this.namespace,\r\n o = $.extend(this.options, options || {}),\r\n s = {x: this.scrollx, y: this.scrolly},\r\n w = this.wrapper,\r\n cssOptions = {};\r\n\r\n var initScroll = {\r\n scrollLeft: c.scrollLeft(),\r\n scrollTop: c.scrollTop()\r\n };\r\n\r\n // do not init if in ignorable browser\r\n if ((browser.mobile && o.ignoreMobile)\r\n || (browser.overlay && o.ignoreOverlay)\r\n || (browser.macosx && !browser.webkit) // still required to ignore nonWebKit browsers on Mac\r\n ) {\r\n if ($.isFunction(o.onFallback)) {\r\n o.onFallback.apply(this, [c]);\r\n }\r\n return false;\r\n }\r\n\r\n // init scroll container\r\n if (!w) {\r\n this.wrapper = w = $('
').addClass('scroll-wrapper').addClass(c.attr('class'))\r\n .css('position', c.css('position') === 'absolute' ? 'absolute' : 'relative')\r\n .insertBefore(c).append(c);\r\n\r\n if (o.isRtl) {\r\n w.addClass('scroll--rtl');\r\n }\r\n\r\n if (c.is('textarea')) {\r\n this.containerWrapper = cw = $('
').insertBefore(c).append(c);\r\n w.addClass('scroll-textarea');\r\n }\r\n\r\n cssOptions = {\r\n \"height\": \"auto\",\r\n \"margin-bottom\": browser.scroll.height * -1 + 'px',\r\n \"max-height\": \"\"\r\n };\r\n cssOptions[o.isRtl ? 'margin-left' : 'margin-right'] = browser.scroll.width * -1 + 'px';\r\n\r\n cw.addClass('scroll-content').css(cssOptions);\r\n\r\n c.on('scroll' + namespace, function (event) {\r\n var scrollLeft = c.scrollLeft();\r\n var scrollTop = c.scrollTop();\r\n if (o.isRtl) {\r\n // webkit 0:100\r\n // ie/edge 100:0\r\n // firefox -100:0\r\n switch (true) {\r\n case browser.firefox:\r\n scrollLeft = Math.abs(scrollLeft);\r\n case browser.msedge || browser.msie:\r\n scrollLeft = c[0].scrollWidth - c[0].clientWidth - scrollLeft;\r\n break;\r\n }\r\n }\r\n if ($.isFunction(o.onScroll)) {\r\n o.onScroll.call(S, {\r\n maxScroll: s.y.maxScrollOffset,\r\n scroll: scrollTop,\r\n size: s.y.size,\r\n visible: s.y.visible\r\n }, {\r\n maxScroll: s.x.maxScrollOffset,\r\n scroll: scrollLeft,\r\n size: s.x.size,\r\n visible: s.x.visible\r\n });\r\n }\r\n s.x.isVisible && s.x.scroll.bar.css('left', scrollLeft * s.x.kx + 'px');\r\n s.y.isVisible && s.y.scroll.bar.css('top', scrollTop * s.y.kx + 'px');\r\n });\r\n\r\n /* prevent native scrollbars to be visible on #anchor click */\r\n w.on('scroll' + namespace, function () {\r\n w.scrollTop(0).scrollLeft(0);\r\n });\r\n\r\n if (o.disableBodyScroll) {\r\n var handleMouseScroll = function (event) {\r\n isVerticalScroll(event) ?\r\n s.y.isVisible && s.y.mousewheel(event) :\r\n s.x.isVisible && s.x.mousewheel(event);\r\n };\r\n w.on('MozMousePixelScroll' + namespace, handleMouseScroll);\r\n w.on('mousewheel' + namespace, handleMouseScroll);\r\n\r\n if (browser.mobile) {\r\n w.on('touchstart' + namespace, function (event) {\r\n var touch = event.originalEvent.touches && event.originalEvent.touches[0] || event;\r\n var originalTouch = {\r\n pageX: touch.pageX,\r\n pageY: touch.pageY\r\n };\r\n var originalScroll = {\r\n left: c.scrollLeft(),\r\n top: c.scrollTop()\r\n };\r\n $(document).on('touchmove' + namespace, function (event) {\r\n var touch = event.originalEvent.targetTouches && event.originalEvent.targetTouches[0] || event;\r\n c.scrollLeft(originalScroll.left + originalTouch.pageX - touch.pageX);\r\n c.scrollTop(originalScroll.top + originalTouch.pageY - touch.pageY);\r\n event.preventDefault();\r\n });\r\n $(document).on('touchend' + namespace, function () {\r\n $(document).off(namespace);\r\n });\r\n });\r\n }\r\n }\r\n if ($.isFunction(o.onInit)) {\r\n o.onInit.apply(this, [c]);\r\n }\r\n } else {\r\n cssOptions = {\r\n \"height\": \"auto\",\r\n \"margin-bottom\": browser.scroll.height * -1 + 'px',\r\n \"max-height\": \"\"\r\n };\r\n cssOptions[o.isRtl ? 'margin-left' : 'margin-right'] = browser.scroll.width * -1 + 'px';\r\n cw.css(cssOptions);\r\n }\r\n\r\n // init scrollbars & recalculate sizes\r\n $.each(s, function (d, scrollx) {\r\n\r\n var scrollCallback = null;\r\n var scrollForward = 1;\r\n var scrollOffset = (d === 'x') ? 'scrollLeft' : 'scrollTop';\r\n var scrollStep = o.scrollStep;\r\n var scrollTo = function () {\r\n var currentOffset = c[scrollOffset]();\r\n c[scrollOffset](currentOffset + scrollStep);\r\n if (scrollForward == 1 && (currentOffset + scrollStep) >= scrollToValue)\r\n currentOffset = c[scrollOffset]();\r\n if (scrollForward == -1 && (currentOffset + scrollStep) <= scrollToValue)\r\n currentOffset = c[scrollOffset]();\r\n if (c[scrollOffset]() == currentOffset && scrollCallback) {\r\n scrollCallback();\r\n }\r\n }\r\n var scrollToValue = 0;\r\n\r\n if (!scrollx.scroll) {\r\n\r\n scrollx.scroll = S._getScroll(o['scroll' + d]).addClass('scroll-' + d);\r\n\r\n if (o.showArrows) {\r\n scrollx.scroll.addClass('scroll-element_arrows_visible');\r\n }\r\n\r\n scrollx.mousewheel = function (event) {\r\n\r\n if (!scrollx.isVisible || (d === 'x' && isVerticalScroll(event))) {\r\n return true;\r\n }\r\n if (d === 'y' && !isVerticalScroll(event)) {\r\n s.x.mousewheel(event);\r\n return true;\r\n }\r\n\r\n var delta = event.originalEvent.wheelDelta * -1 || event.originalEvent.detail;\r\n var maxScrollValue = scrollx.size - scrollx.visible - scrollx.offset;\r\n\r\n // fix new mozilla\r\n if (!delta) {\r\n if (d === 'x' && !!event.originalEvent.deltaX) {\r\n delta = event.originalEvent.deltaX * 40;\r\n } else if (d === 'y' && !!event.originalEvent.deltaY) {\r\n delta = event.originalEvent.deltaY * 40;\r\n }\r\n }\r\n\r\n if ((delta > 0 && scrollToValue < maxScrollValue) || (delta < 0 && scrollToValue > 0)) {\r\n scrollToValue = scrollToValue + delta;\r\n if (scrollToValue < 0)\r\n scrollToValue = 0;\r\n if (scrollToValue > maxScrollValue)\r\n scrollToValue = maxScrollValue;\r\n\r\n S.scrollTo = S.scrollTo || {};\r\n S.scrollTo[scrollOffset] = scrollToValue;\r\n setTimeout(function () {\r\n if (S.scrollTo) {\r\n c.stop().animate(S.scrollTo, 240, 'linear', function () {\r\n scrollToValue = c[scrollOffset]();\r\n });\r\n S.scrollTo = null;\r\n }\r\n }, 1);\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n };\r\n\r\n scrollx.scroll\r\n .on('MozMousePixelScroll' + namespace, scrollx.mousewheel)\r\n .on('mousewheel' + namespace, scrollx.mousewheel)\r\n .on('mouseenter' + namespace, function () {\r\n scrollToValue = c[scrollOffset]();\r\n });\r\n\r\n // handle arrows & scroll inner mousedown event\r\n scrollx.scroll.find('.scroll-arrow, .scroll-element_track')\r\n .on('mousedown' + namespace, function (event) {\r\n\r\n if (event.which != 1) // lmb\r\n return true;\r\n\r\n scrollForward = 1;\r\n\r\n var data = {\r\n eventOffset: event[(d === 'x') ? 'pageX' : 'pageY'],\r\n maxScrollValue: scrollx.size - scrollx.visible - scrollx.offset,\r\n scrollbarOffset: scrollx.scroll.bar.offset()[(d === 'x') ? 'left' : 'top'],\r\n scrollbarSize: scrollx.scroll.bar[(d === 'x') ? 'outerWidth' : 'outerHeight']()\r\n };\r\n var timeout = 0, timer = 0;\r\n\r\n if ($(this).hasClass('scroll-arrow')) {\r\n scrollForward = $(this).hasClass(\"scroll-arrow_more\") ? 1 : -1;\r\n scrollStep = o.scrollStep * scrollForward;\r\n scrollToValue = scrollForward > 0 ? data.maxScrollValue : 0;\r\n if (o.isRtl) {\r\n switch(true){\r\n case browser.firefox:\r\n scrollToValue = scrollForward > 0 ? 0: data.maxScrollValue * -1;\r\n break;\r\n case browser.msie || browser.msedge:\r\n break;\r\n }\r\n }\r\n } else {\r\n scrollForward = (data.eventOffset > (data.scrollbarOffset + data.scrollbarSize) ? 1\r\n : (data.eventOffset < data.scrollbarOffset ? -1 : 0));\r\n if(d === 'x' && o.isRtl && (browser.msie || browser.msedge))\r\n scrollForward = scrollForward * -1;\r\n scrollStep = Math.round(scrollx.visible * 0.75) * scrollForward;\r\n scrollToValue = (data.eventOffset - data.scrollbarOffset -\r\n (o.stepScrolling ? (scrollForward == 1 ? data.scrollbarSize : 0)\r\n : Math.round(data.scrollbarSize / 2)));\r\n scrollToValue = c[scrollOffset]() + (scrollToValue / scrollx.kx);\r\n }\r\n\r\n S.scrollTo = S.scrollTo || {};\r\n S.scrollTo[scrollOffset] = o.stepScrolling ? c[scrollOffset]() + scrollStep : scrollToValue;\r\n\r\n if (o.stepScrolling) {\r\n scrollCallback = function () {\r\n scrollToValue = c[scrollOffset]();\r\n clearInterval(timer);\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n timer = 0;\r\n };\r\n timeout = setTimeout(function () {\r\n timer = setInterval(scrollTo, 40);\r\n }, o.duration + 100);\r\n }\r\n\r\n setTimeout(function () {\r\n if (S.scrollTo) {\r\n c.animate(S.scrollTo, o.duration);\r\n S.scrollTo = null;\r\n }\r\n }, 1);\r\n\r\n return S._handleMouseDown(scrollCallback, event);\r\n });\r\n\r\n // handle scrollbar drag'n'drop\r\n scrollx.scroll.bar.on('mousedown' + namespace, function (event) {\r\n\r\n if (event.which != 1) // lmb\r\n return true;\r\n\r\n var eventPosition = event[(d === 'x') ? 'pageX' : 'pageY'];\r\n var initOffset = c[scrollOffset]();\r\n\r\n scrollx.scroll.addClass('scroll-draggable');\r\n\r\n $(document).on('mousemove' + namespace, function (event) {\r\n var diff = parseInt((event[(d === 'x') ? 'pageX' : 'pageY'] - eventPosition) / scrollx.kx, 10);\r\n if (d === 'x' && o.isRtl && (browser.msie || browser.msedge))\r\n diff = diff * -1;\r\n c[scrollOffset](initOffset + diff);\r\n });\r\n\r\n return S._handleMouseDown(function () {\r\n scrollx.scroll.removeClass('scroll-draggable');\r\n scrollToValue = c[scrollOffset]();\r\n }, event);\r\n });\r\n }\r\n });\r\n\r\n // remove classes & reset applied styles\r\n $.each(s, function (d, scrollx) {\r\n var scrollClass = 'scroll-scroll' + d + '_visible';\r\n var scrolly = (d == \"x\") ? s.y : s.x;\r\n\r\n scrollx.scroll.removeClass(scrollClass);\r\n scrolly.scroll.removeClass(scrollClass);\r\n cw.removeClass(scrollClass);\r\n });\r\n\r\n // calculate init sizes\r\n $.each(s, function (d, scrollx) {\r\n $.extend(scrollx, (d == \"x\") ? {\r\n offset: parseInt(c.css('left'), 10) || 0,\r\n size: c.prop('scrollWidth'),\r\n visible: w.width()\r\n } : {\r\n offset: parseInt(c.css('top'), 10) || 0,\r\n size: c.prop('scrollHeight'),\r\n visible: w.height()\r\n });\r\n });\r\n\r\n // update scrollbar visibility/dimensions\r\n this._updateScroll('x', this.scrollx);\r\n this._updateScroll('y', this.scrolly);\r\n\r\n if ($.isFunction(o.onUpdate)) {\r\n o.onUpdate.apply(this, [c]);\r\n }\r\n\r\n // calculate scroll size\r\n $.each(s, function (d, scrollx) {\r\n\r\n var cssOffset = (d === 'x') ? 'left' : 'top';\r\n var cssFullSize = (d === 'x') ? 'outerWidth' : 'outerHeight';\r\n var cssSize = (d === 'x') ? 'width' : 'height';\r\n var offset = parseInt(c.css(cssOffset), 10) || 0;\r\n\r\n var AreaSize = scrollx.size;\r\n var AreaVisible = scrollx.visible + offset;\r\n\r\n var scrollSize = scrollx.scroll.size[cssFullSize]() + (parseInt(scrollx.scroll.size.css(cssOffset), 10) || 0);\r\n\r\n if (o.autoScrollSize) {\r\n scrollx.scrollbarSize = parseInt(scrollSize * AreaVisible / AreaSize, 10);\r\n scrollx.scroll.bar.css(cssSize, scrollx.scrollbarSize + 'px');\r\n }\r\n\r\n scrollx.scrollbarSize = scrollx.scroll.bar[cssFullSize]();\r\n scrollx.kx = ((scrollSize - scrollx.scrollbarSize) / (AreaSize - AreaVisible)) || 1;\r\n scrollx.maxScrollOffset = AreaSize - AreaVisible;\r\n });\r\n\r\n c.scrollLeft(initScroll.scrollLeft).scrollTop(initScroll.scrollTop).trigger('scroll');\r\n },\r\n /**\r\n * Get scrollx/scrolly object\r\n *\r\n * @param {Mixed} scroll\r\n * @returns {jQuery} scroll object\r\n */\r\n _getScroll: function (scroll) {\r\n var types = {\r\n advanced: [\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
', // required! used for scrollbar size calculation !\r\n '
',\r\n '
', // used for handling scrollbar click\r\n '
',\r\n '
',\r\n '
',\r\n '
', // required\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
',\r\n '
'\r\n ].join(''),\r\n simple: [\r\n '
',\r\n '
',\r\n '
', // required! used for scrollbar size calculation !\r\n '
', // used for handling scrollbar click\r\n '
', // required\r\n '
',\r\n '
'\r\n ].join('')\r\n };\r\n if (types[scroll]) {\r\n scroll = types[scroll];\r\n }\r\n if (!scroll) {\r\n scroll = types['simple'];\r\n }\r\n if (typeof (scroll) == 'string') {\r\n scroll = $(scroll).appendTo(this.wrapper);\r\n } else {\r\n scroll = $(scroll);\r\n }\r\n $.extend(scroll, {\r\n bar: scroll.find('.scroll-bar'),\r\n size: scroll.find('.scroll-element_size'),\r\n track: scroll.find('.scroll-element_track')\r\n });\r\n return scroll;\r\n },\r\n _handleMouseDown: function (callback, event) {\r\n\r\n var namespace = this.namespace;\r\n\r\n $(document).on('blur' + namespace, function () {\r\n $(document).add('body').off(namespace);\r\n callback && callback();\r\n });\r\n $(document).on('dragstart' + namespace, function (event) {\r\n event.preventDefault();\r\n return false;\r\n });\r\n $(document).on('mouseup' + namespace, function () {\r\n $(document).add('body').off(namespace);\r\n callback && callback();\r\n });\r\n $('body').on('selectstart' + namespace, function (event) {\r\n event.preventDefault();\r\n return false;\r\n });\r\n\r\n event && event.preventDefault();\r\n return false;\r\n },\r\n _updateScroll: function (d, scrollx) {\r\n\r\n var container = this.container,\r\n containerWrapper = this.containerWrapper || container,\r\n scrollClass = 'scroll-scroll' + d + '_visible',\r\n scrolly = (d === 'x') ? this.scrolly : this.scrollx,\r\n offset = parseInt(this.container.css((d === 'x') ? 'left' : 'top'), 10) || 0,\r\n wrapper = this.wrapper;\r\n\r\n var AreaSize = scrollx.size;\r\n var AreaVisible = scrollx.visible + offset;\r\n\r\n scrollx.isVisible = (AreaSize - AreaVisible) > 1; // bug in IE9/11 with 1px diff\r\n if (scrollx.isVisible) {\r\n scrollx.scroll.addClass(scrollClass);\r\n scrolly.scroll.addClass(scrollClass);\r\n containerWrapper.addClass(scrollClass);\r\n } else {\r\n scrollx.scroll.removeClass(scrollClass);\r\n scrolly.scroll.removeClass(scrollClass);\r\n containerWrapper.removeClass(scrollClass);\r\n }\r\n\r\n if (d === 'y') {\r\n if (container.is('textarea') || AreaSize < AreaVisible) {\r\n containerWrapper.css({\r\n \"height\": (AreaVisible + browser.scroll.height) + 'px',\r\n \"max-height\": \"none\"\r\n });\r\n } else {\r\n containerWrapper.css({\r\n //\"height\": \"auto\", // do not reset height value: issue with height:100%!\r\n \"max-height\": (AreaVisible + browser.scroll.height) + 'px'\r\n });\r\n }\r\n }\r\n\r\n if (scrollx.size != container.prop('scrollWidth')\r\n || scrolly.size != container.prop('scrollHeight')\r\n || scrollx.visible != wrapper.width()\r\n || scrolly.visible != wrapper.height()\r\n || scrollx.offset != (parseInt(container.css('left'), 10) || 0)\r\n || scrolly.offset != (parseInt(container.css('top'), 10) || 0)\r\n ) {\r\n $.extend(this.scrollx, {\r\n offset: parseInt(container.css('left'), 10) || 0,\r\n size: container.prop('scrollWidth'),\r\n visible: wrapper.width()\r\n });\r\n $.extend(this.scrolly, {\r\n offset: parseInt(container.css('top'), 10) || 0,\r\n size: this.container.prop('scrollHeight'),\r\n visible: wrapper.height()\r\n });\r\n this._updateScroll(d === 'x' ? 'y' : 'x', scrolly);\r\n }\r\n }\r\n };\r\n\r\n var CustomScrollbar = BaseScrollbar;\r\n\r\n /*\r\n * Extend jQuery as plugin\r\n *\r\n * @param {Mixed} command to execute\r\n * @param {Mixed} arguments as Array\r\n * @return {jQuery}\r\n */\r\n $.fn.scrollbar = function (command, args) {\r\n if (typeof command !== 'string') {\r\n args = command;\r\n command = 'init';\r\n }\r\n if (typeof args === 'undefined') {\r\n args = [];\r\n }\r\n if (!$.isArray(args)) {\r\n args = [args];\r\n }\r\n this.not('body, .scroll-wrapper').each(function () {\r\n var element = $(this),\r\n instance = element.data(browser.data.name);\r\n if (instance || command === 'init') {\r\n if (!instance) {\r\n instance = new CustomScrollbar(element);\r\n }\r\n if (instance[command]) {\r\n instance[command].apply(instance, args);\r\n }\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Connect default options to global object\r\n */\r\n $.fn.scrollbar.options = defaults;\r\n\r\n\r\n /**\r\n * Check if scroll content/container size is changed\r\n */\r\n\r\n var updateScrollbars = (function () {\r\n var timer = 0,\r\n timerCounter = 0;\r\n\r\n return function (force) {\r\n var i, container, options, scroll, wrapper, scrollx, scrolly;\r\n for (i = 0; i < browser.scrolls.length; i++) {\r\n scroll = browser.scrolls[i];\r\n container = scroll.container;\r\n options = scroll.options;\r\n wrapper = scroll.wrapper;\r\n scrollx = scroll.scrollx;\r\n scrolly = scroll.scrolly;\r\n if (force || (options.autoUpdate && wrapper && wrapper.is(':visible') &&\r\n (container.prop('scrollWidth') != scrollx.size || container.prop('scrollHeight') != scrolly.size || wrapper.width() != scrollx.visible || wrapper.height() != scrolly.visible))) {\r\n scroll.init();\r\n\r\n if (options.debug) {\r\n window.console && console.log({\r\n scrollHeight: container.prop('scrollHeight') + ':' + scroll.scrolly.size,\r\n scrollWidth: container.prop('scrollWidth') + ':' + scroll.scrollx.size,\r\n visibleHeight: wrapper.height() + ':' + scroll.scrolly.visible,\r\n visibleWidth: wrapper.width() + ':' + scroll.scrollx.visible\r\n }, true);\r\n timerCounter++;\r\n }\r\n }\r\n }\r\n if (debug && timerCounter > 10) {\r\n window.console && console.log('Scroll updates exceed 10');\r\n updateScrollbars = function () {};\r\n } else {\r\n clearTimeout(timer);\r\n timer = setTimeout(updateScrollbars, 300);\r\n }\r\n };\r\n })();\r\n\r\n /* ADDITIONAL FUNCTIONS */\r\n /**\r\n * Get native browser scrollbar size (height/width)\r\n *\r\n * @param {Boolean} actual size or CSS size, default - CSS size\r\n * @returns {Object} with height, width\r\n */\r\n function getBrowserScrollSize(actualSize) {\r\n\r\n if (browser.webkit && !actualSize) {\r\n return {\r\n height: 0,\r\n width: 0\r\n };\r\n }\r\n\r\n if (!browser.data.outer) {\r\n var css = {\r\n \"border\": \"none\",\r\n \"box-sizing\": \"content-box\",\r\n \"height\": \"200px\",\r\n \"margin\": \"0\",\r\n \"padding\": \"0\",\r\n \"width\": \"200px\"\r\n };\r\n browser.data.inner = $(\"
\").css($.extend({}, css));\r\n browser.data.outer = $(\"
\").css($.extend({\r\n \"left\": \"-1000px\",\r\n \"overflow\": \"scroll\",\r\n \"position\": \"absolute\",\r\n \"top\": \"-1000px\"\r\n }, css)).append(browser.data.inner).appendTo(\"body\");\r\n }\r\n\r\n browser.data.outer.scrollLeft(1000).scrollTop(1000);\r\n\r\n return {\r\n height: Math.ceil((browser.data.outer.offset().top - browser.data.inner.offset().top) || 0),\r\n width: Math.ceil((browser.data.outer.offset().left - browser.data.inner.offset().left) || 0)\r\n };\r\n }\r\n\r\n /**\r\n * Check if native browser scrollbars overlay content\r\n *\r\n * @returns {Boolean}\r\n */\r\n function isScrollOverlaysContent() {\r\n var scrollSize = getBrowserScrollSize(true);\r\n return !(scrollSize.height || scrollSize.width);\r\n }\r\n\r\n function isVerticalScroll(event) {\r\n var e = event.originalEvent;\r\n if (e.axis && e.axis === e.HORIZONTAL_AXIS)\r\n return false;\r\n if (e.wheelDeltaX)\r\n return false;\r\n return true;\r\n }\r\n}));\r\n","export default {\r\n\r\n '/h1': {\r\n key: 'ctrl+h',\r\n label: '/h1 [标题1] (ctrl+h)',\r\n value: '# ',\r\n },\r\n '/h2': {\r\n label: '/h2 [标题2]',\r\n value: '## ',\r\n },\r\n '/h3': {\r\n label: '/h3 [标题3]',\r\n value: '### ',\r\n },\r\n '/h4': {\r\n label: '/h4 [标题4]',\r\n value: '#### ',\r\n },\r\n '/h5': {\r\n label: '/h5 [标题5]',\r\n value: '##### ',\r\n },\r\n '/h6': {\r\n key: 'ctrl+shift+h',\r\n label: '/h6 [标题6] (ctrl+shift+h)',\r\n value: '###### ',\r\n },\r\n '/b': {\r\n key: 'ctrl+b',\r\n label: '/b [粗体] (ctrl+b)',\r\n value: '****',\r\n ch: 2,\r\n },\r\n '/i': {\r\n key: 'ctrl+i',\r\n label: '/i [斜体] (ctrl+i)',\r\n value: '**',\r\n ch: 1,\r\n },\r\n '/s': {\r\n label: '/s [删除线]',\r\n value: '~~~~',\r\n ch: 2,\r\n },\r\n '/code': {\r\n key: 'alt+ctrl+c',\r\n label: '/code [代码] (alt+ctrl+c)',\r\n value: '```\\n\\n```\\n',\r\n line: 2,\r\n ch2: 5\r\n },\r\n '/quote': {\r\n key: 'ctrl+\\'',\r\n label: '/quote [引用] (ctrl+\\')',\r\n value: '> ',\r\n },\r\n '/list': {\r\n key: 'ctrl+l',\r\n label: '/list [列表] (ctrl+l)',\r\n value: '* ',\r\n },\r\n '/href': {\r\n key: 'ctrl+k',\r\n label: '/href [链接] (ctrl+k)',\r\n value: '[](http://)',\r\n ch: 1,\r\n },\r\n '/img': {\r\n key: 'alt+ctrl+i',\r\n label: '/img [图片] (ctrl+alt+i)',\r\n value: '![](http://)',\r\n ch: 1,\r\n },\r\n '/table': {\r\n label: '/table [表格]',\r\n value: '| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n',\r\n },\r\n '/hr': {\r\n label: '/hr [分隔线]',\r\n value: '\\n-----\\n',\r\n },\r\n '/task': {\r\n label: '/task [任务列表]',\r\n value: '- [ ] 未完成任务\\n- [x] 已完成任务',\r\n line: 1,\r\n ch: 11,\r\n ch2: 12\r\n },\r\n '/details': {\r\n label: '/details [折叠详情]',\r\n value: '
\\n标题详情内容\\n
',\r\n line: 1,\r\n ch: 11,\r\n ch2: 25\r\n },\r\n '/upload': {\r\n label: '/upload [上传文件] (ctrl+u)',\r\n value: '',\r\n },\r\n '/shortcuts': {\r\n label: '/shortcuts [热键] (ctrl+/)',\r\n value: '',\r\n },\r\n}\r\n","import {\r\n default as wurl\r\n}\r\nfrom 'wurl';\r\nimport 'common/common-diff';\r\n\r\nexport class CommonUtils {\r\n\r\n /**\r\n * 获取浏览器BaseUrl\r\n * @return {[type]} [description]\r\n */\r\n getBaseUrl() {\r\n if (typeof wurl == 'function') {\r\n if (wurl('port') == 80 || wurl('port') == 443) {\r\n return (wurl('protocol') + '://' + wurl('hostname'));\r\n } else {\r\n return (wurl('protocol') + '://' + wurl('hostname') + ':' + wurl('port'));\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * 获取浏览器Url(不含参数)\r\n * @return {[type]} [description]\r\n */\r\n getUrl() {\r\n return this.getBaseUrl() + wurl('path') + '#' + this.getHash();\r\n }\r\n\r\n getHash() {\r\n let hash = wurl('hash');\r\n return hash ? hash.split('?')[0] : '';\r\n }\r\n\r\n getBasePath() {\r\n return this.getBaseUrl() + wurl('path');\r\n }\r\n\r\n getResourceBase() {\r\n let basePath = this.getBasePath();\r\n if (_.endsWith(basePath, '/index.html')) {\r\n basePath = _.replace(basePath, '/index.html', '');\r\n }\r\n return basePath;\r\n }\r\n\r\n redirect2Login(redirectUrl) {\r\n let redirect = this.urlQuery('redirect');\r\n if (!redirect) {\r\n redirectUrl = redirectUrl ? redirectUrl : wurl();\r\n window.location = this.getBaseUrl() + wurl('path') + `#/login?redirect=${encodeURIComponent(redirectUrl)}`;\r\n } else {\r\n console.log('url has contains ?redirect');\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 获取url中的查询参数值\r\n * @param {[type]} name 查询参数名称\r\n * @return {[type]} 查询参数值\r\n */\r\n urlQuery(name, url) {\r\n if (url) {\r\n let query = wurl('?' + name, url);\r\n if (!query) {\r\n query = wurl('?' + name, wurl('hash', url));\r\n }\r\n return query;\r\n }\r\n return wurl('?' + name) || wurl('?' + name, wurl('hash'));\r\n }\r\n\r\n /**\r\n * 移除url中的指定查询参数\r\n * name: 查询参数名称\r\n * href: 操作的url(可选, 不设置时为当前浏览器页面地址)\r\n * return: 移除指定查询参数的url地址\r\n */\r\n removeUrlQuery(name, href) {\r\n\r\n var s = href ? href : window.location.href;\r\n\r\n var rs = new RegExp('(&|\\\\?)?' + name + '=?[^&#]*(.)?', 'g').exec(s);\r\n // eg: [\"?accessToken=YUNqUkxiZ3owWXdYdDFaVUp2VmNEM0JTZTNERlowWUhPTUVVbDU1RUROOWROMmcwUlVJeXRGQ2M4ZVBqdmpkSA%3D%3D&\", \"?\", \"&\"]\r\n\r\n if (rs) {\r\n // case3: ?name2=value2&name=value => ?name2=value2\r\n // case4: ?name2=value2&name=value&name3=value3 => ?name2=value2&name3=value3\r\n if (rs[1] == '&') {\r\n return s.replace(new RegExp('&' + name + '=?[^&#]+', 'g'), '');\r\n } else if (rs[1] == '?') {\r\n if (rs[2] != '&') { // case1: ?name=value => \r\n return s.replace(new RegExp('\\\\?' + name + '=?[^&#]*', 'g'), '');\r\n } else { // case2: ?name=value&name2=value2 => ?name2=value2\r\n return s.replace(new RegExp('' + name + '=?[^&#]*&', 'g'), '');\r\n }\r\n }\r\n }\r\n\r\n return s;\r\n }\r\n\r\n isLoginPage() {\r\n let hash = wurl('hash');\r\n return _.startsWith(hash, '/login');\r\n }\r\n\r\n /**\r\n * 网络连接错误后自动重试\r\n * @param {Function} callback 重试回调\r\n * @return {[type]} [description]\r\n */\r\n errorAutoTry(callback, time) {\r\n\r\n if (this.isRunning || this.isLoginPage()) {\r\n return;\r\n }\r\n\r\n let cnt = time ? time : 10;\r\n let timer = null;\r\n let $t = toastr.error(`网络连接错误,${cnt}秒后自动重试!`, null, {\r\n \"closeButton\": false,\r\n \"timeOut\": \"0\",\r\n \"preventDuplicates\": false,\r\n \"onclick\": () => {\r\n clearInterval(this.timer);\r\n callback && callback();\r\n }\r\n });\r\n\r\n this.isRunning = true;\r\n timer = setInterval(() => {\r\n if (cnt === 0) {\r\n clearInterval(timer);\r\n this.isRunning = false;\r\n toastr.remove();\r\n callback && callback();\r\n return;\r\n }\r\n $t && $t.find('.toast-message').text(`网络连接错误,${cnt}秒后自动重试!`);\r\n cnt--;\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * 判断视图元素是否在可视区域中\r\n * @param {[type]} el [description]\r\n * @return {Boolean} [description]\r\n */\r\n isElementInViewport(el) {\r\n\r\n //special bonus for those using jQuery\r\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\r\n el = el[0];\r\n }\r\n\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n }\r\n\r\n /**\r\n * 获取聊天对象标识\r\n * @param {[type]} name [description]\r\n * @return {[type]} [description]\r\n */\r\n getChatName(name) {\r\n if (_.startsWith(name, '@')) {\r\n return name.substr(1);\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n /**\r\n * 替换@user解析\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n preParse(plainText) {\r\n\r\n var txt = plainText;\r\n $.each(this.parseUsers(plainText), function(index, user) {\r\n txt = txt.replace(new RegExp(`{~${user.username}}`, 'g'), `**\\`@${user.name}\\`**`);\r\n });\r\n\r\n return txt;\r\n }\r\n\r\n\r\n /**\r\n * 解析@users\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n parseUsers(plainText) {\r\n var users = [];\r\n var atR = /\\{~([^\\}]*)\\}/g;\r\n var rs = atR.exec(plainText);\r\n while (rs) {\r\n let user = _.find([nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])], { username: rs[1] });\r\n let isNotExists = !_.some(users, { username: rs[1] });\r\n if (user && isNotExists) {\r\n users.push(user);\r\n }\r\n rs = atR.exec(plainText);\r\n }\r\n\r\n return users;\r\n }\r\n\r\n getUser(username) {\r\n return _.find(tmsUsers, { username: username });\r\n }\r\n\r\n /**\r\n * 解析要发送邮件的用户们\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n parseUsernames(plainText, members) {\r\n let users = this.parseUsers(plainText);\r\n let isExitsAll = _.some(users, { username: 'all' });\r\n if (isExitsAll) {\r\n return _.without(_.map(members, 'username'), 'all');\r\n }\r\n return _.map(users, 'username');;\r\n }\r\n\r\n /**\r\n * markdown to html\r\n * @param {[type]} content [description]\r\n * @return {[type]} [description]\r\n */\r\n md2html(content) {\r\n if (emojify) {\r\n content = emojify.replace(content);\r\n }\r\n return $('
').html('' + marked(this.preParse(content))).wrap('
').parent().html();\r\n }\r\n\r\n /**\r\n * 文本比较\r\n * @param {[type]} oldS [description]\r\n * @param {[type]} newS [description]\r\n * @return {[type]} [description]\r\n */\r\n diffS(oldS, newS, way) {\r\n var ways = ['diffChars', 'diffWords', 'diffWordsWithSpace', 'diffLines'];\r\n if (!ways.includes(way)) {\r\n way = 'diffWords';\r\n }\r\n var delStyle = 'style=\"background-color: #e6cf56; text-decoration: line-through;\"';\r\n var insStyle = 'style=\"background-color: #98e287; text-decoration: none;\"';\r\n var diff = JsDiff[way](oldS, newS);\r\n var nodeArr = [];\r\n for (var i = 0; i < diff.length; i++) {\r\n\r\n if (diff[i].added && diff[i + 1] && diff[i + 1].removed) {\r\n var swap = diff[i];\r\n diff[i] = diff[i + 1];\r\n diff[i + 1] = swap;\r\n }\r\n\r\n var node;\r\n if (diff[i].removed) {\r\n node = `${diff[i].value}`;\r\n } else if (diff[i].added) {\r\n node = `${diff[i].value}`;\r\n } else {\r\n node = `${diff[i].value}`;\r\n }\r\n nodeArr.push(node);\r\n }\r\n\r\n return `
${nodeArr.join('')}
`;\r\n }\r\n\r\n /**\r\n * 解析wiki目录\r\n * @param {[type]} $e [description]\r\n * @return {[type]} [description]\r\n */\r\n catalog($e) {\r\n var $headers = $(\":header\", $e);\r\n\r\n if ($headers && $headers.size() == 0) {\r\n return false;\r\n }\r\n\r\n var pre = null;\r\n\r\n var link = {\r\n pre: null,\r\n arr: []\r\n };\r\n var current = link;\r\n $headers.each(function(index, h) {\r\n var name = h.nodeName;\r\n if (!pre) {\r\n current.arr.push(h);\r\n pre = name;\r\n } else {\r\n if (pre < name) {\r\n var last = current;\r\n current = {\r\n pre: last,\r\n arr: [h]\r\n };\r\n last.arr.push(current);\r\n pre = name;\r\n } else if (pre == name) {\r\n current.arr.push(h);\r\n } else {\r\n current = current.pre ? current.pre : current;\r\n current.arr.push(h);\r\n pre = name;\r\n }\r\n }\r\n });\r\n\r\n return link;\r\n }\r\n\r\n generateDir(link, uid) {\r\n var $list = $('
');\r\n this.prodDir($list, link, uid);\r\n return $list;\r\n }\r\n\r\n dir($e, uid) {\r\n let cl = this.catalog($e);\r\n return cl ? this.generateDir(cl, uid) : '';\r\n }\r\n\r\n prodDir($list, link, uid) {\r\n $.each(link.arr, (index, item) => {\r\n if (item.hasOwnProperty('arr')) {\r\n var $l = $('
');\r\n $list.append($l);\r\n this.prodDir($l, item, uid);\r\n } else {\r\n var id = uid ? _.uniqueId(uid) : _.uniqueId('tms-wiki-dir-item-');\r\n var $item = $('').text($(item).attr('id', id).text()).attr('data-id', id);\r\n $list.append($item);\r\n }\r\n });\r\n }\r\n\r\n isElementInViewport(el) {\r\n\r\n //special bonus for those using jQuery\r\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\r\n el = el[0];\r\n }\r\n\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n }\r\n\r\n /**\r\n * 获取光标位置函数\r\n * @param {[type]} ctrl [description]\r\n * @return {[type]} [description]\r\n */\r\n getCursortPosition(ctrl) {\r\n var CaretPos = 0; // IE Support\r\n if (document.selection) {\r\n ctrl.focus();\r\n var Sel = document.selection.createRange();\r\n Sel.moveStart('character', -ctrl.value.length);\r\n CaretPos = Sel.text.length;\r\n }\r\n // Firefox support\r\n else if (ctrl.selectionStart || ctrl.selectionStart == '0') {\r\n CaretPos = ctrl.selectionStart;\r\n }\r\n return (CaretPos);\r\n }\r\n\r\n /**\r\n * 设置光标位置函数\r\n * @param {[type]} ctrl [description]\r\n * @param {[type]} pos [description]\r\n */\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n var range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n /**\r\n * 是否为绝对url\r\n * @param {[type]} url [description]\r\n * @return {Boolean} [description]\r\n */\r\n isAbsUrl(url) {\r\n if (_.startsWith(url, 'http://')) {\r\n return true;\r\n } else if (_.startsWith(url, 'https://')) {\r\n return true;\r\n } else if (_.startsWith(url, '//')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n escape(html, encode) {\r\n return html\r\n .replace(!encode ? /&(?!#?\\w+;)/g : /&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n }\r\n\r\n unescape(html) {\r\n // explicitly match decimal, hex, and named HTML entities \r\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/g, function(_, n) {\r\n n = n.toLowerCase();\r\n if (n === 'colon') return ':';\r\n if (n.charAt(0) === '#') {\r\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\r\n }\r\n return '';\r\n });\r\n }\r\n\r\n /**\r\n * 打开新的浏览器窗口,并跳转到指定页面\r\n * url:需要跳转的地址\r\n */\r\n openNewWin(url) {\r\n\r\n if (url) {\r\n let $a = $(``).appendTo('body').end();\r\n $(``).appendTo($a).end().click();\r\n\r\n _.delay(() => {\r\n $a.remove();\r\n }, 200);\r\n }\r\n\r\n }\r\n\r\n isAdminUser(user) {\r\n if (user && user.authorities) {\r\n return _.some(user.authorities, (item) => {\r\n return item.id.authority === 'ROLE_ADMIN';\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n isSuperUser(user) {\r\n if (user && user.authorities) {\r\n return _.some(user.authorities, (item) => {\r\n return item.id.authority === 'ROLE_SUPER';\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * 判断是否为全角字符\r\n * @param {[type]} str 待判断字符\r\n * @return {Boolean} true: 全角 false: 半角 \r\n */\r\n isSBCcase(str) {\r\n // [^\\x00-\\xff]全角字符\r\n return /[^\\x00-\\xff]/.test(str);\r\n }\r\n\r\n /**\r\n * 判断是否为汉字\r\n * @param {[type]} str 待判断字符\r\n * @return {Boolean} true: 汉字 false: 非汉字\r\n */\r\n isHanzi(str) {\r\n // [\\u4e00-\\u9fa5]汉字 \r\n return /[\\u4e00-\\u9fa5]/ig.test(str);\r\n }\r\n\r\n /**\r\n * 获取字符串byte长度\r\n * val: 要计算的字符串\r\n * return: 字符串byte长度\r\n */\r\n getByteLen(val) {\r\n var len = 0;\r\n for (var i = 0; i < val.length; i++) {\r\n if (this.isHanzi(val[i]) || this.isSBCcase(val[i])) {\r\n len += 2;\r\n } else {\r\n len += 1;\r\n }\r\n }\r\n return len;\r\n }\r\n\r\n /**\r\n * 制字符串的最大显示长度\r\n * value: 要处理的字符串\r\n * maxLen: 限制长度\r\n * return: 处理截取后的字符串\r\n */\r\n abbreviate(value, maxLen) {\r\n if (value && maxLen) {\r\n\r\n var len = 0;\r\n for (var i = 0; i < value.length; i++) {\r\n if (this.isHanzi(value[i]) || this.isSBCcase(value[i])) {\r\n len += 2;\r\n } else {\r\n len += 1;\r\n }\r\n\r\n if (len > maxLen) {\r\n return value.substr(0, i) + '...';\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n isMail(mail) {\r\n\r\n var emailRegex = /^([_a-z0-9-]+)(\\.[_a-z0-9-]+)*@([a-z0-9-]+)(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$/i;\r\n\r\n return emailRegex.test(mail);\r\n }\r\n\r\n // 浏览器OS判断正则表达式\r\n regExpOS = {\r\n ios: /(iPad|iPhone|iPod)/g,\r\n mobileChrome: /(CriOS)/g,\r\n mobile: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g,\r\n cellphone: /iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g\r\n }\r\n\r\n // 是否为IE\r\n isIE() {\r\n var\r\n isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),\r\n isIE = ('ActiveXObject' in window);\r\n return (isIE11 || isIE);\r\n }\r\n\r\n // 是否为IE11\r\n isIE11() {\r\n return (!(window.ActiveXObject) && 'ActiveXObject' in window);\r\n }\r\n\r\n // 是否为IOS\r\n isIOS() {\r\n var\r\n userAgent = navigator.userAgent,\r\n isIOS = userAgent.match(this.regExpOS.ios),\r\n isMobileChrome = userAgent.match(this.regExpOS.mobileChrome);\r\n if (isIOS && !isMobileChrome) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // 是否为cellphone\r\n isCellphone() {\r\n return !!navigator.userAgent.match(this.regExpOS.cellphone);\r\n }\r\n\r\n // 是否为Mobile\r\n isMobile() {\r\n return !!navigator.userAgent.match(this.regExpOS.mobile)\r\n }\r\n\r\n // 是否为Chrome\r\n isChrome() {\r\n return /chrome\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Safari\r\n isSafari() {\r\n return /version\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Firefox\r\n isFirefox() {\r\n return /firefox\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Opera\r\n isOpera() {\r\n return /opera.([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n diffHtml(html) {\r\n\r\n var tags = ['html', 'head', 'meta', 'title', 'base', 'link', 'script', 'body', 'div', 'span'];\r\n\r\n var s = '';\r\n if (html) {\r\n s = html;\r\n _.each(tags, (tag) => {\r\n s = s.replace(new RegExp(`<(${tag})`, \"gi\"), `<$1`);\r\n });\r\n }\r\n\r\n return s;\r\n }\r\n\r\n encodeHtml(str) {\r\n var s = \"\";\r\n if (str.length == 0) return \"\";\r\n s = str.replace(/&/g, \">\");\r\n s = s.replace(//g, \">\");\r\n s = s.replace(/ /g, \" \");\r\n s = s.replace(/\\'/g, \"'\");\r\n s = s.replace(/\\\"/g, \""\");\r\n s = s.replace(/\\n/g, \"
\");\r\n return s;\r\n }\r\n\r\n decodeHtml(str) {\r\n var s = \"\";\r\n if (str.length == 0) return \"\";\r\n s = str.replace(/>/g, \"&\");\r\n s = s.replace(/</g, \"<\");\r\n s = s.replace(/>/g, \">\");\r\n s = s.replace(/ /g, \" \");\r\n s = s.replace(/'/g, \"\\'\");\r\n s = s.replace(/"/g, \"\\\"\");\r\n s = s.replace(/
/g, \"\\n\");\r\n return s;\r\n }\r\n}\r\n\r\nexport default new CommonUtils();\r\n","import { BindingSignaler } from 'aurelia-templating-resources';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport 'isomorphic-fetch';\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\nimport {\r\n default as toastr\r\n} from 'toastr';\r\nimport {\r\n default as wurl\r\n} from 'wurl';\r\nimport utils from 'common/common-utils';\r\nimport 'common/common-plugin'\r\nimport 'common/common-constant';\r\nimport 'common/common-ctx';\r\nimport 'common/common-imgs-loaded';\r\nimport {\r\n default as marked\r\n} from 'marked'; // https://github.com/chjj/marked\r\nimport {\r\n default as hljs\r\n} from 'highlight';\r\nimport {\r\n default as autosize\r\n} from 'autosize';\r\nimport {\r\n default as NProgress\r\n}\r\nfrom 'nprogress';\r\nimport {\r\n default as push\r\n} from 'push';\r\nimport {\r\n default as ColorHash\r\n} from 'color-hash';\r\nimport 'modaal';\r\n\r\nexport class Config {\r\n\r\n initHttp() {\r\n window.json = (param) => {\r\n console.log(JSON.stringify(param));\r\n return json(param);\r\n };\r\n window.http = this.aurelia.container.root.get(HttpClient);\r\n http.configure(config => {\r\n config\r\n // .withBaseUrl(nsParam.baseUrl)\r\n .withDefaults({\r\n credentials: 'same-origin',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'X-Requested-With': 'fetch'\r\n }\r\n })\r\n .withInterceptor({\r\n request(req) {\r\n NProgress && NProgress.start();\r\n return req;\r\n },\r\n requestError(req) {\r\n console.log(req);\r\n },\r\n response(resp) {\r\n NProgress && NProgress.done();\r\n if (!resp.ok) {\r\n resp.json().then((data) => {\r\n // toastr.error('PATH: ' + data.path + '
STATUS: ' + data.status + '
EXCEPTION:
' + data.exception + '
MESSAGE:
' + data.message, data.error);\r\n toastr.error(data.message);\r\n });\r\n\r\n if (resp.status == 401) {\r\n toastr.error('用户未登录!');\r\n utils.redirect2Login();\r\n return;\r\n }\r\n }\r\n\r\n return resp;\r\n },\r\n responseError(resp) {\r\n toastr.error(resp.message, '网络请求错误!');\r\n console.log(resp);\r\n }\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initToastr() {\r\n\r\n // toastr弹出消息提示插件全局配置设置\r\n toastr.options.positionClass = 'toast-bottom-center';\r\n toastr.options.preventDuplicates = true;\r\n\r\n return this;\r\n }\r\n\r\n initMarked() {\r\n\r\n let renderer = new marked.Renderer();\r\n renderer.listitem = function(text) {\r\n if (/^\\s*\\[[x ]\\]\\s*/.test(text)) {\r\n text = text\r\n .replace(/^\\s*\\[ \\]\\s*/, ' ')\r\n .replace(/^\\s*\\[x\\]\\s*/, ' ');\r\n return '
  • ' + text + '
  • ';\r\n } else {\r\n return '
  • ' + text + '
  • ';\r\n }\r\n };\r\n renderer.link = function(href, title, text) {\r\n if (this.options.sanitize) {\r\n try {\r\n var prot = decodeURIComponent(unescape(href))\r\n .replace(/[^\\w:]/g, '')\r\n .toLowerCase();\r\n } catch (e) {\r\n return '';\r\n }\r\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\r\n return '';\r\n }\r\n }\r\n let out;\r\n let isChatLink = /\\/chat\\/.+\\?id=.+/g.test(wurl('hash', href));\r\n let isCommentLink = /\\/blog\\/.+\\?cid=.+/g.test(wurl('hash', href));\r\n if (isChatLink || isCommentLink || (utils.isAbsUrl(href) && (wurl('hostname', href) != wurl('hostname')))) {\r\n out = '';\r\n return out;\r\n };\r\n\r\n renderer.codespan = function(text) {\r\n return `${text}`;\r\n };\r\n\r\n renderer.code = function(code, lang, escaped) {\r\n let codeBk = code;\r\n if (this.options.highlight) {\r\n var out = this.options.highlight(code, lang);\r\n if (out != null && out !== code) {\r\n escaped = true;\r\n code = out;\r\n }\r\n }\r\n\r\n if (!lang) {\r\n return `
    ${escaped ? code : utils.escape(code, true)}\\n
    `;\r\n }\r\n\r\n return `
    ${escaped ? code : utils.escape(code, true)}\\n
    \\n`;\r\n };\r\n\r\n // https://github.com/chjj/marked\r\n marked.setOptions({\r\n renderer: renderer,\r\n breaks: true,\r\n highlight: function(code) {\r\n return hljs.highlightAuto(code).value;\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initAjax() {\r\n // ajax全局配置选项设置\r\n $.ajaxSetup({\r\n // ajax请求不缓存\r\n cache: false,\r\n });\r\n\r\n let exceptUrls = [\r\n '/chat/channel/latest',\r\n '/chat/direct/latest',\r\n '/chat/channel/poll'\r\n ];\r\n\r\n $(document).ajaxSend(function(event, jqxhr, settings) {\r\n\r\n let isNotInExceptUrls = _.every(exceptUrls, (url) => {\r\n return (settings.url.lastIndexOf(url) == -1);\r\n });\r\n\r\n if (isNotInExceptUrls) {\r\n NProgress && NProgress.start();\r\n }\r\n });\r\n\r\n // $(document).on('ajaxStart', function() {\r\n // NProgress && NProgress.start();\r\n // });\r\n $(document).on('ajaxStop', function() {\r\n NProgress && NProgress.done();\r\n });\r\n // $(document).ajaxComplete(function(event, request, settings) {\r\n // console.log(request);\r\n // });\r\n $(document).ajaxError(function(event, xhr, settings) {\r\n if (xhr && xhr.status == 401) {\r\n utils.redirect2Login();\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initGlobalVar() {\r\n window.toastr = toastr;\r\n window.wurl = wurl;\r\n window.utils = utils;\r\n window.marked = marked;\r\n window.autosize = autosize;\r\n window.push = push;\r\n window.bs = this.aurelia.container.root.get(BindingSignaler);\r\n window.ea = this.aurelia.container.root.get(EventAggregator);\r\n window.colorHash = new ColorHash();\r\n return this;\r\n }\r\n\r\n initAnimateCss() {\r\n $.fn.extend({\r\n animateCss: function(animationName) {\r\n var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\r\n this.addClass('animated ' + animationName).one(animationEnd, function() {\r\n $(this).removeClass('animated ' + animationName);\r\n });\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n initEmoji() {\r\n emojify && emojify.setConfig({\r\n img_dir: utils.getResourceBase() + '/img/emoji'\r\n });\r\n return this;\r\n }\r\n\r\n initModaal() {\r\n _.extend($.fn.modaal.options, {\r\n close_text: '关闭',\r\n close_aria_label: '按[esc]关闭',\r\n confirm_button_text: '确认',\r\n confirm_cancel_button_text: '取消',\r\n confirm_title: '操作确认',\r\n accessible_title: '对话框窗口',\r\n confirm_content: '

    默认确认对话框内容.

    ',\r\n });\r\n return this;\r\n }\r\n\r\n context(aurelia) {\r\n this.aurelia = aurelia;\r\n return this;\r\n }\r\n\r\n}\r\n\r\nexport default new Config();\r\n","/**\r\n * 程序初次加载启动,进行一些初始化操作:\r\n */\r\nimport 'jquery';\r\nimport 'jquery.scrollto'; // https://github.com/flesler/jquery.scrollTo\r\nimport 'timeago';\r\nimport 'lodash';\r\nimport 'hotkeys';\r\n\r\nimport config from './config';\r\n\r\nexport function configure(aurelia, params) {\r\n\r\n config.context(aurelia)\r\n .initGlobalVar()\r\n .initAjax()\r\n .initToastr()\r\n .initMarked()\r\n .initAnimateCss()\r\n .initEmoji()\r\n .initModaal();\r\n}\r\n","import {\r\n bindable\r\n}\r\nfrom 'aurelia-framework';\r\nimport {\r\n EventAggregator\r\n}\r\nfrom 'aurelia-event-aggregator';\r\n\r\n/**\r\n * description\r\n */\r\nexport class TestLifeCycle {\r\n\r\n @\r\n bindable\r\n prop = null;\r\n\r\n static inject = [EventAggregator];\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor(eventAggregator) {\r\n this.eventAggregator = eventAggregator;\r\n\r\n console.log('constructor');\r\n\r\n // this.subscribe1 = this.eventAggregator.subscribe('', (payload) => {\r\n\r\n // });\r\n\r\n }\r\n\r\n /**\r\n * 在视图和视图模型都被创建后调用, 允许访问视图实例对象.\r\n * @param {[object]} view 视图实例对象\r\n */\r\n created(view) {\r\n console.log('created');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎绑定到视图时被调用\r\n * @param {[object]} ctx 视图绑定上下文环境对象\r\n */\r\n bind(ctx) {\r\n console.log('bind');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n console.log('unbind');\r\n // this.subscribe1.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n console.log('attached');\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n console.log('detached');\r\n }\r\n\r\n /**\r\n * 控制是否可以导航到当前路由视图模型(ViewModel)\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[boolean | promise]} 返回一个boolean类型, 一个boolean类型延迟许诺(promise)或者一个导航(navigation)命令.\r\n */\r\n canActivate(params, routeConfig, navigationInstruction) {\r\n console.log('canActivate');\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n console.log('activate');\r\n }\r\n\r\n /**\r\n * 控制是否可以导航离开当前路由视图模型(ViewModel)到其它路由视图模型(ViewModel)\r\n * @return {[boolean | promise]} 返回一个boolean类型, 一个boolean类型延迟许诺(promise)或者一个导航(navigation)命令.\r\n */\r\n canDeactivate() {\r\n console.log('canDeactivate');\r\n }\r\n\r\n /**\r\n * 在当前视图模型(ViewModel)切换离开后执行一些自定义代码逻辑\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待, 直到你完成你的处理工作.\r\n */\r\n deactivate() {\r\n console.log('deactivate');\r\n }\r\n}\r\n","/* \r\n代码生成常用命令:\r\nau generate element\r\nau generate attribute\r\nau generate value-converter\r\nau generate binding-behavior\r\nau generate task\r\nau generate generator\r\n*/\r\n/* 加载全局资源 */\r\nexport function configure(aurelia) {\r\n\r\n aurelia.globalResources([\r\n 'resources/value-converters/vc-common',\r\n 'resources/binding-behaviors/bb-key',\r\n 'resources/attributes/attr-task',\r\n 'resources/attributes/attr-swipebox',\r\n 'resources/attributes/attr-pastable',\r\n 'resources/attributes/attr-autosize',\r\n 'resources/attributes/attr-dropzone',\r\n 'resources/attributes/attr-attr',\r\n 'resources/attributes/attr-c2c',\r\n 'resources/attributes/attr-dimmer',\r\n 'resources/attributes/attr-ui-dropdown',\r\n 'resources/attributes/attr-ui-dropdown-action',\r\n 'resources/attributes/attr-ui-dropdown-hover',\r\n 'resources/attributes/attr-ui-tab',\r\n 'resources/attributes/attr-ui-popup',\r\n 'resources/attributes/attr-ui-checkbox',\r\n 'resources/attributes/attr-tablesort',\r\n 'resources/attributes/attr-textcomplete',\r\n 'resources/attributes/attr-scrollbar',\r\n 'resources/attributes/attr-modaal',\r\n 'resources/elements/em-modal',\r\n 'resources/elements/em-dropdown',\r\n 'resources/elements/em-checkbox',\r\n 'resources/elements/em-confirm-modal',\r\n 'resources/elements/em-hotkeys-modal',\r\n 'resources/elements/em-chat-input',\r\n 'resources/elements/em-chat-top-menu',\r\n 'resources/elements/em-chat-sidebar-left',\r\n 'resources/elements/em-chat-content-item',\r\n 'resources/elements/em-chat-sidebar-right',\r\n 'resources/elements/em-chat-channel-create',\r\n 'resources/elements/em-chat-channel-join',\r\n 'resources/elements/em-chat-channel-edit',\r\n 'resources/elements/em-chat-channel-members-mgr',\r\n 'resources/elements/em-chat-channel-members-show',\r\n 'resources/elements/em-chat-channel-link-mgr',\r\n 'resources/elements/em-chat-system-link-mgr',\r\n 'resources/elements/em-chat-msg-popup',\r\n 'resources/elements/em-chat-member-popup',\r\n 'resources/elements/em-chat-attach',\r\n 'resources/elements/em-chat-schedule',\r\n 'resources/elements/em-chat-schedule-edit',\r\n 'resources/elements/em-chat-schedule-remind',\r\n 'resources/elements/em-chat-share',\r\n 'resources/elements/em-blog-write',\r\n 'resources/elements/em-blog-left-sidebar',\r\n 'resources/elements/em-blog-right-sidebar',\r\n 'resources/elements/em-blog-content',\r\n 'resources/elements/em-blog-top-menu',\r\n 'resources/elements/em-blog-share',\r\n 'resources/elements/em-blog-comment',\r\n 'resources/elements/em-blog-save',\r\n 'resources/elements/em-blog-space-create',\r\n 'resources/elements/em-blog-space-edit',\r\n 'resources/elements/em-blog-space-update',\r\n 'resources/elements/em-blog-history',\r\n 'resources/elements/em-blog-history-view',\r\n 'resources/elements/em-blog-history-diff',\r\n 'resources/elements/em-blog-comment-popup',\r\n 'resources/elements/em-blog-space-auth',\r\n 'resources/elements/em-user-avatar',\r\n 'resources/elements/em-user-edit',\r\n 'resources/elements/em-blog-comment-share',\r\n ]);\r\n}\r\n","export class UserLogin {\r\n\r\n username = '';\r\n password = '';\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.rememberMeRef).checkbox();\r\n }\r\n\r\n kdHandler(evt) {\r\n if (evt.keyCode === 13) {\r\n this.loginHandler();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n loginHandler() {\r\n\r\n // $.get('/admin/login', (data) => {\r\n\r\n let rm = $(this.rememberMeRef).checkbox('is checked') ? 'on' : '';\r\n\r\n $.post('/admin/signin', {\r\n username: this.username,\r\n password: this.password,\r\n \"remember-me\": rm\r\n }).done(() => {\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_LOGIN_USERNAME, this.username);\r\n\r\n let redirect = utils.urlQuery('redirect');\r\n if (redirect) {\r\n window.location = decodeURIComponent(redirect);\r\n } else {\r\n let chatTo = null;\r\n if (localStorage) {\r\n chatTo = localStorage.getItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO);\r\n }\r\n if (chatTo) {\r\n window.location = wurl('path') + `#/chat/${chatTo}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.username}`;\r\n }\r\n }\r\n\r\n }).fail((xhr, sts, err) => {\r\n if (xhr.status == 401) {\r\n toastr.error('用户名密码不正确!');\r\n } else if (xhr.status != 0) {\r\n toastr.error('网络连接错误!');\r\n }\r\n });\r\n // });\r\n\r\n return true;\r\n\r\n }\r\n}\r\n","/**\r\n * 用户密码重置\r\n */\r\nexport class UserPwdReset {\r\n\r\n mail = '';\r\n pwd = '';\r\n\r\n isReq = false;\r\n\r\n token = utils.urlQuery('id');\r\n\r\n resetPwdHandler() {\r\n\r\n if (!$(this.fm).form('is valid')) {\r\n toastr.error('邮件地址输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/pwd/reset', {\r\n method: 'post',\r\n body: json({\r\n mail: this.mail,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path')\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('重置密码邮件链接发送成功!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '重置密码邮件链接发送失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n newPwdHandler() {\r\n\r\n if (!$(this.fm2).form('is valid')) {\r\n toastr.error('新密码输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/pwd/new', {\r\n method: 'post',\r\n body: json({\r\n token: this.token,\r\n pwd: this.pwd\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('重置密码成功!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '重置密码失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n \r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.fm).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n mail: ['empty', 'email']\r\n }\r\n });\r\n\r\n $(this.fm2).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n mail: ['empty', 'minLength[8]']\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\r\n * 账户注册\r\n */\r\nexport class ViewModel {\r\n\r\n header = '账户激活页面';\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n if (params.id) {\r\n this.token = params.id;\r\n\r\n this.isReq = true;\r\n this.header = '账户激活中,请稍后...!';\r\n http.fetch('/free/user/register/activate', {\r\n method: 'post',\r\n body: json({\r\n token: this.token\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n this.header = '账户激活成功,请返回登录页面登录!';\r\n } else {\r\n this.header = '账户激活失败!';\r\n toastr.error(data.data, '账户激活失败!');\r\n }\r\n });\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.fm).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n username: {\r\n identifier: 'username',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'minLength[3]'\r\n }, {\r\n type: 'regExp',\r\n value: /^[a-z]+[a-z0-9\\.\\-_]*[a-z0-9]+$/,\r\n prompt: '小写字母数字.-_组合,字母开头,字母数字结尾'\r\n }]\r\n },\r\n pwd: {\r\n identifier: 'pwd',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'minLength[8]'\r\n }]\r\n },\r\n name: {\r\n identifier: 'name',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'maxLength[20]'\r\n }]\r\n },\r\n mail: {\r\n identifier: 'mail',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'email'\r\n }]\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n okHandler() {\r\n\r\n if (!$(this.fm).form('is valid')) {\r\n toastr.error('账户注册信息输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/register', {\r\n method: 'post',\r\n body: json({\r\n username: this.username,\r\n pwd: this.pwd,\r\n name: this.name,\r\n mail: this.mail,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path')\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('注册成功,请通过接收到的激活邮件激活账户!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '注册失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { customAttribute, bindable } from 'aurelia-framework';\r\nimport { inject } from 'aurelia-dependency-injection';\r\n\r\n@customAttribute('attr')\r\n@inject(Element)\r\nexport class AttrAttr {\r\n\r\n @bindable name;\r\n @bindable value;\r\n\r\n constructor(element) {\r\n\r\n this.element = element;\r\n }\r\n\r\n nameChanged(value) {}\r\n\r\n valueChanged(value) {\r\n\r\n this.value = value;\r\n\r\n if (value) {\r\n $(this.element).attr(this.name, value);\r\n } else {\r\n $(this.element).removeAttr(this.name);\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n unbind() {}\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('autosize')\r\n@inject(Element)\r\nexport class AttrAutosize {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n autosize(this.element);\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n autosize.destroy(this.elements)\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\nimport Clipboard from 'clipboard';\r\n\r\n@customAttribute('c2c')\r\n@inject(Element)\r\nexport class AttrC2cCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n this._init();\r\n }\r\n\r\n _init() {\r\n\r\n $(this.element).append(``);\r\n this.clipboard = new Clipboard($(this.element).find('i.copy.icon')[0], {\r\n text: (trigger) => {\r\n return this.value ? this.value : $(this.element).text();\r\n }\r\n });\r\n let $tp = $(this.element).find('[data-tooltip]').hover(function() {}, function() {\r\n $(this).attr('data-tooltip', '复制到剪贴板!');\r\n });\r\n this.clipboard.on('success', (e) => {\r\n $tp.attr('data-tooltip', '复制成功!');\r\n }).on('error', (e) => {\r\n $tp.attr('data-tooltip', '复制失败!');\r\n });\r\n\r\n $(this.element).hover(() => {\r\n if (this.value || $(this.element).text()) {\r\n $tp.show();\r\n }\r\n }, () => {\r\n $tp.hide();\r\n });\r\n }\r\n\r\n unbind() {\r\n this.clipboard && this.clipboard.destroy();\r\n }\r\n}\r\n","import { inject } from 'aurelia-dependency-injection';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('dimmer')\r\n@inject(Element)\r\nexport class AttrDimmer {\r\n\r\n constructor(element) {\r\n\r\n this.element = element;\r\n this.$dimmer = $('
    ');\r\n }\r\n\r\n valueChanged(newValue) {\r\n if (this.value) {\r\n $(this.element).prepend(this.$dimmer);\r\n } else {\r\n this.$dimmer.remove();\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport {\r\n EventAggregator\r\n}\r\nfrom 'aurelia-event-aggregator';\r\n\r\n@customAttribute('dropzone')\r\n@inject(Element, EventAggregator)\r\nexport class AttrDropzone {\r\n\r\n @bindable clickable;\r\n @bindable target;\r\n @bindable type;\r\n\r\n constructor(element, eventAggregator) {\r\n this.element = element;\r\n this.eventAggregator = eventAggregator;\r\n\r\n this.subscribe = this.eventAggregator.subscribe(nsCons.EVENT_CHAT_MSG_EDIT_UPLOAD, (payload) => {\r\n if (payload.target === this.target) {\r\n $(this.element).click();\r\n }\r\n });\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n let target = this.target ? this.target : this.element;\r\n let toType = this.type ? this.type : (nsCtx.isAt ? 'User' : 'Channel');\r\n\r\n $(this.element).parent().addClass('tms-dropzone-preview-hidden');\r\n\r\n $(this.element).children().andSelf().dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!this.clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n // previewsContainer: this.chatStatusBarRef,\r\n // previewTemplate: this.previewTemplateRef.innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n formData.append('toType', toType);\r\n if('Blog' !== toType) {\r\n formData.append('toId', nsCtx.chatTo);\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n $(target).insertAtCaret('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n $(target).insertAtCaret('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('modaal')\r\n@inject(Element)\r\nexport class AttrModaalCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n // https://github.com/humaan/Modaal\r\n _.defer(() => {\r\n $(this.element).modaal({\r\n fullscreen: true,\r\n overlay_close: false,\r\n // is_locked: true,\r\n // start_open: true,\r\n before_open: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_BEFORE_OPEN, {\r\n id: newValue\r\n });\r\n },\r\n after_open: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_AFTER_OPEN, {\r\n id: newValue\r\n });\r\n },\r\n before_close: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_BEFORE_CLOSE, {\r\n id: newValue\r\n });\r\n },\r\n after_close: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_AFTER_CLOSE, {\r\n id: newValue\r\n });\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport 'common/common-plugin';\r\nimport 'common/common-paste';\r\n\r\n@customAttribute('pastable')\r\n@inject(Element)\r\nexport class AttrPastable {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n // clipboard paste image\r\n $(this.element).pastableTextarea().on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: nsCtx.isAt ? 'User' : 'Channel',\r\n toId: nsCtx.chatTo\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n $(this.element).insertAtCaret('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\nimport { customAttribute } from 'aurelia-templating';\nimport 'common/common-scrollbar';\n\n@customAttribute('scrollbar')\n@inject(Element)\nexport class AttrScrollbarCustomAttribute {\n\n constructor(element) {\n this.element = element;\n }\n\n valueChanged(newValue, oldValue) {\n this.cls = newValue ? newValue : ($(window).width() < 768 ? 'scrollbar-macosx' : 'scrollbar-outer');\n jQuery(this.element).addClass(this.cls).scrollbar({\n \"onScroll\": (y, x) => {\n if (y.scroll == y.maxScroll) { // Scrolled to bottom\n ea.publish(nsCons.EVENT_SCROLLBAR_SCROLL_TO_BOTTOM, {\n element: this.element,\n x: x,\n y: y\n });\n }\n }\n });\n }\n\n /**\n * 当数据绑定引擎从视图解除绑定时被调用\n */\n unbind() {\n try {\n jQuery(this.element).removeClass(this.cls).scrollbar('destroy');\n } catch (err) {}\n }\n}\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport 'swipebox';\r\n\r\n@customAttribute('swipebox')\r\n@inject(Element)\r\nexport class AttrSwipebox {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n $(this.element).on('click', 'img', (event) => {\r\n event.preventDefault();\r\n let $img = $(event.target);\r\n var imgs = [];\r\n var initialIndexOnArray = 0;\r\n $(this.element).find('img').each(function(index, img) {\r\n imgs.push({ href: $(img).attr('src'), title: $(img).attr('alt') });\r\n if (event.target == img) {\r\n initialIndexOnArray = index;\r\n }\r\n });\r\n $.swipebox(imgs, {\r\n useCSS: true, // false will force the use of jQuery for animations\r\n useSVG: true, // false to force the use of png for buttons\r\n initialIndexOnArray: initialIndexOnArray, // which image index to init when a array is passed\r\n hideCloseButtonOnMobile: false, // true will hide the close button on mobile devices\r\n removeBarsOnMobile: true, // false will show top bar on mobile devices\r\n hideBarsDelay: 3000, // delay before hiding bars on desktop\r\n videoMaxWidth: 1140, // videos max width\r\n beforeOpen: function() {}, // called before opening\r\n afterOpen: null, // called after opening\r\n afterClose: function() {}, // called after closing\r\n loopAtEnd: !!newValue // true will return to the first image after the last image is reached\r\n });\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('tablesort')\r\n@inject(Element)\r\nexport class AttrTablesortCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init() {\r\n if ($(this.element).is('table')) {\r\n $(this.element).addClass('sortable').tablesort();\r\n } else {\r\n \tconsole.warn('tablesort element is not table tag!');\r\n }\r\n }\r\n\r\n bind() {\r\n \tthis._init();\r\n }\r\n}\r\n","import {\r\n inject\r\n}\r\nfrom 'aurelia-dependency-injection';\r\nimport {\r\n customAttribute\r\n}\r\nfrom 'aurelia-templating';\r\n\r\n\r\n@customAttribute('task')\r\n@inject(Element)\r\nexport class AttrTask {\r\n\r\n task = null;\r\n bindingCtx = null;\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue) {\r\n this.task = newValue;\r\n if (_.isFunction(this.task)) {\r\n _.bind(this.task, this.bindingCtx, this.element)();\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.bindingCtx = bindingContext;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n unbind() {\r\n this.element = null;\r\n this.task = null;\r\n this.bindingCtx = null;\r\n }\r\n\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport tips from 'common/common-tips';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@customAttribute('textcomplete')\r\n@inject(Element)\r\nexport class AttrTextcompleteCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n this.initHotkeys();\r\n }\r\n\r\n tipsActionHandler(value) {\r\n if (value == '/upload') {\r\n $(this.element).next('.tms-edit-actions').find('button > .upload.icon').click();\r\n } else if (value == '/shortcuts') {\r\n ea.publish(nsCons.EVENT_SHOW_HOTKEYS_MODAL, {});\r\n } else if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n valueChanged() {\r\n if (this.value) {\r\n this.members = this.value;\r\n $(this.element).textcomplete([{ // chat msg help\r\n match: /(|\\b)(\\/.*)$/,\r\n search: (term, callback) => {\r\n var keys = _.keys(tips);\r\n callback($.map(keys, (key) => {\r\n return key.indexOf(term) === 0 ? key : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n return tips[value].label;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n _.defer(() => {\r\n autosize.update(this.element);\r\n });\r\n this.setCaretPosition(tips[value].ch2 ? tips[value].ch2 : tips[value].ch);\r\n return `$1${tips[value].value}`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n }, { // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(this.members, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(this.members, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: $(this.element).prev('.textcomplete-container').find('.append-to'),\r\n maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n } else {\r\n this.unbind();\r\n }\r\n }\r\n\r\n setCaretPosition(ch) {\r\n (ch) && (_.delay(() => {\r\n let cr = utils.getCursortPosition(this.element);\r\n utils.setCaretPosition(this.element, cr - ch);\r\n }, 100));\r\n }\r\n\r\n initHotkeys() {\r\n\r\n _.each(_.filter(_.values(tips), 'key'), (value) => {\r\n $(this.element).bind('keydown', value.key, (evt) => {\r\n evt.preventDefault();\r\n $(this.element).insertAtCaret(value.value);\r\n let cr = utils.getCursortPosition(this.element);\r\n let ch = value.ch2 ? value.ch2 : value.ch;\r\n ch && (utils.setCaretPosition(this.element, cr - ch));\r\n _.defer(() => {\r\n autosize.update(this.element);\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n unbind() {\r\n try {\r\n $(this.element).textcomplete('destroy');\r\n } catch (err) {}\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('ui-checkbox')\r\n@inject(Element)\r\nexport class AttrUiCheckboxCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n $(this.element).checkbox();\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown-action')\r\n@inject(Element)\r\nexport class AttrUiDropdownActionCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(context) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n action: 'hide',\r\n context: context\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : window);\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown-hover')\r\n@inject(Element)\r\nexport class AttrUiDropdownHoverCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(action) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n on: 'hover',\r\n action: action\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : 'hide');\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown')\r\n@inject(Element)\r\nexport class AttrUiDropdownCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(action) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n action: action\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : 'hide');\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('ui-popup')\r\n@inject(Element)\r\nexport class AttrUiPopupCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n _.defer(() => {\r\n $(this.element).popup({\r\n \ton: 'click',\r\n inline: true,\r\n silent: true,\r\n // hoverable: true,\r\n position: newValue ? newValue : 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onShow: () => {\r\n \t\r\n },\r\n onVisible: () => {\r\n\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-tab')\r\n@inject(Element)\r\nexport class AttrUiTabCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init() {\r\n _.defer(() => {\r\n $(this.element).find('.item').tab();\r\n });\r\n }\r\n\r\n bind() {\r\n this._init();\r\n }\r\n}\r\n","const keyCodes = {\r\n 'esc': 27,\r\n 'tab': 9,\r\n 'enter': 13,\r\n 'space': 32,\r\n 'up': 38,\r\n 'left': 37,\r\n 'right': 39,\r\n 'down': 40,\r\n 'backspace': 8,\r\n 'delete': 46\r\n}\r\n\r\nfunction keyHandler(event) {\r\n\r\n if (event && event.ctrlKey == this.keyState.ctrl && event.altKey == this.keyState.alt && event.shiftKey == this.keyState.shift && event.keyCode == this.keyState.keyCode) {\r\n this.originalMethod(event);\r\n } else {\r\n // console.warn(`Unknown event [${event}] for KeyBindingBehavior!`);\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport class KeyBindingBehavior {\r\n\r\n bind(binding, source, key = 13, metaKeys) {\r\n // determine which method to throttle.\r\n let methodName = 'updateTarget'; // one-way bindings or interpolation bindings\r\n if (binding.callSource) {\r\n methodName = 'callSource'; // listener and call bindings\r\n } else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\r\n methodName = 'updateSource'; // two-way bindings\r\n }\r\n\r\n // stash the original method and it's name.\r\n // note: a generic name like \"originalMethod\" is not used to avoid collisions\r\n // with other binding behavior types.\r\n binding.originalMethod = binding[methodName];\r\n binding.originalMethod.originalName = methodName;\r\n\r\n // replace the original method with the throttling version.\r\n binding[methodName] = keyHandler;\r\n let keyCode = _.isInteger(key) ? key : (key.length === 1 ? key.charCodeAt(0) : keyCodes[key]);\r\n if (_.isUndefined(keyCode)) {\r\n console.warn(`Unmapping keyCode for KeyBindingBehavior!`);\r\n }\r\n binding.keyState = {\r\n ctrl: _.includes(metaKeys, 'ctrl'),\r\n alt: _.includes(metaKeys, 'alt'),\r\n shift: _.includes(metaKeys, 'shift'),\r\n keyCode: keyCode,\r\n };\r\n }\r\n\r\n unbind(binding, source) {\r\n // restore the state of the binding.\r\n binding[binding.originalMethod.originalName] = binding.originalMethod;\r\n binding.originalMethod = null;\r\n }\r\n}\r\n","import 'jquery-format';\r\nimport 'timeago';\r\n\r\nlet tg = timeago();\r\n\r\n/**\r\n * 该文件用于定义值的过滤转换器\r\n *\r\n */\r\n// ============================================================\r\n/**\r\n * 转换为大写形式\r\n * eg:

    ${name | upper}

    \r\n */\r\nexport class UpperValueConverter {\r\n toView(value) {\r\n return value && value.toUpperCase();\r\n }\r\n}\r\n\r\n/**\r\n * 转换为小写形式\r\n * eg:

    ${name | lower}

    \r\n */\r\nexport class LowerValueConverter {\r\n toView(value) {\r\n return value && value.toLowerCase();\r\n }\r\n}\r\n\r\n/**\r\n * 时间格式化值转换器, using as: 4234234234 | dateFormat\r\n * doc: https://www.npmjs.com/package/jquery-format\r\n */\r\nexport class DateValueConverter {\r\n toView(value, format = 'yyyy-MM-dd hh:mm:ss') {\r\n return _.isInteger(_.toNumber(value)) ? $.format.date(new Date(value), format) : (value ? value : '');\r\n }\r\n}\r\n\r\n/**\r\n * 数值格式化值转换器, using as: 4234234234 | numberFormat\r\n * doc: https://www.npmjs.com/package/jquery-format\r\n */\r\nexport class NumberValueConverter {\r\n toView(value, format = '#,##0.00') {\r\n return _.isNumber(_.toNumber(value)) ? $.format.number(value, format) : (value ? value : '');\r\n }\r\n}\r\n\r\n/**\r\n * 日期timeago值转换器\r\n * doc: \r\n * https://www.npmjs.com/package/better-timeago\r\n * https://www.npmjs.com/package/better-timeago-locale-zh-cn\r\n */\r\nexport class TimeagoValueConverter {\r\n toView(value) {\r\n return value ? tg.format(value, 'zh_CN') : '';\r\n }\r\n}\r\n\r\n/**\r\n * markdown内容解析处理\r\n */\r\nexport class ParseMdValueConverter {\r\n toView(value) {\r\n return value ? marked(utils.preParse(value)) : '';\r\n }\r\n}\r\n\r\nexport class SortValueConverter {\r\n toView(value, prop) {\r\n return _.isArray(value) ? _.sortBy(value, prop) : value;\r\n }\r\n}\r\n\r\nexport class SortUsersValueConverter {\r\n toView(value, username) {\r\n if (_.isArray(value) && username) {\r\n let user = _.find(value, { username: username });\r\n if (user) {\r\n return [user, ..._.reject(value, { username: username })];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class SortUsernamesValueConverter {\r\n toView(value, username) {\r\n if (_.isArray(value) && username) {\r\n if (_.includes(value, username)) {\r\n return [username, ..._.without(value, username)];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class SortChannelsValueConverter {\r\n toView(value) {\r\n if (_.isArray(value)) {\r\n let channelAll = _.find(value, { name: 'all' });\r\n if (channelAll) {\r\n return [channelAll, ..._.reject(value, { name: 'all' })]\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class UserNameValueConverter {\r\n toView(value) {\r\n let user = _.find(window.tmsUsers, { username: value });\r\n if (user) {\r\n return user.name;\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class EmojiValueConverter {\r\n toView(value, mkbodyDom) {\r\n if (emojify) {\r\n _.defer(() => {\r\n emojify.run(mkbodyDom);\r\n });\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class Nl2brValueConverter {\r\n toView(value) {\r\n if (value) {\r\n return _.replace(value, /\\n/g, '
    ');\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class DiffHtmlValueConverter {\r\n toView(value, allowedTags, allowedAttributes) {\r\n if (value) {\r\n return utils.diffHtml(value);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogCommentPopup {\r\n\r\n comment;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, (payload) => {\r\n this.id = payload.id;\r\n this.target = payload.target;\r\n\r\n $(this.target).popup({\r\n popup: this.popup,\r\n hoverable: true,\r\n inline: false,\r\n movePopup: false,\r\n // position: 'top left',\r\n // maxSearchDepth: 50,\r\n silent: true,\r\n position: 'bottom left',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onShow: () => {\r\n $.get('/admin/blog/comment/get', {\r\n cid: this.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.comment = data.data;\r\n } else {\r\n toastr.error(data.data, \"加载失败!\");\r\n }\r\n });\r\n }\r\n }).popup('show');\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogCommentShare {\r\n\r\n shares = [];\r\n desc = '';\r\n\r\n @bindable blog;\r\n @bindable comment;\r\n @bindable loginUser;\r\n\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n showNoResults: false,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n result.item._type = result.item.username ? 'user' : 'channel';\r\n this.shares.push(result.item);\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n $(this.shareRef).popup({\r\n on: 'click',\r\n inline: true,\r\n silent: true,\r\n position: 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.inputSearchRef).focus();\r\n }\r\n });\r\n }\r\n\r\n shareSearchKeyupHandler(event) {\r\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\r\n let val = $(this.inputSearchRef).val();\r\n if (utils.isMail(val)) {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\r\n this.shares.push({\r\n _id: _.uniqueId('share-item-'),\r\n _type: 'mail',\r\n mail: val\r\n });\r\n $(this.inputSearchRef).val('');\r\n }\r\n }\r\n }\r\n }\r\n\r\n show() {\r\n $(this.shareRef).popup('show');\r\n }\r\n\r\n removeShareHandler(item) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n }\r\n\r\n cancelHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n this.desc = '';\r\n $(this.inputSearchRef).val('');\r\n $(this.shareRef).popup('hide');\r\n }\r\n\r\n shareHandler() {\r\n\r\n if (this.shares.length === 0) {\r\n toastr.error('请先指定博文评论分享用户或者频道或者邮箱!');\r\n return;\r\n }\r\n\r\n this.ajaxS = $.post(`/admin/blog/comment/share`, {\r\n basePath: utils.getBasePath(),\r\n href: `${this.basePath}#/blog/${this.blog.id}?cid=${this.comment.id}`,\r\n id: this.comment.id,\r\n desc: this.desc,\r\n html: utils.md2html(this.comment.content),\r\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\r\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\r\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this._reset();\r\n toastr.success('博文评论分享成功!');\r\n } else {\r\n toastr.error(data.data, '博文评论分享失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@containerless\r\nexport class EmBlogComment {\r\n\r\n comments = [];\r\n\r\n baseUrl = utils.getUrl();\r\n basePath = utils.getBasePath();\r\n offset = 0;\r\n isSuper = nsCtx.isSuper;\r\n loginUser = nsCtx.loginUser;\r\n users = nsCtx.users;\r\n\r\n @bindable blog;\r\n\r\n blogChanged(newValue, oldValue) {\r\n this._refresh();\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_MSG_INSERT, (payload) => {\r\n this.insertContent(`${payload.content}`);\r\n this._scrollTo('b');\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n _refresh() {\r\n if (!this.blog) {\r\n return;\r\n }\r\n $.get('/admin/blog/comment/query', {\r\n id: this.blog.id,\r\n page: 0,\r\n size: 1000\r\n }, (data) => {\r\n if (data.success) {\r\n this.comments = data.data.content;\r\n let cid = utils.urlQuery('cid');\r\n if (cid) {\r\n _.defer(() => {\r\n this.scrollToAfterImgLoaded(cid);\r\n });\r\n }\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'query',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this._init();\r\n\r\n // 消息popup\r\n $('.em-blog-comment .comments').on('mouseenter', '.markdown-body a[href*=\"#/blog/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n let cid = utils.urlQuery('cid', $a.attr('href'));\r\n cid && ea.publish(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, {\r\n id: cid,\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n $('.em-blog-comment .comments').on('dblclick', '.comment', (event) => {\r\n if (event.ctrlKey) {\r\n let cid = $(event.currentTarget).attr('data-id');\r\n let $t = $(event.currentTarget).find('.content > textarea');\r\n let item = _.find(this.comments, { id: +cid });\r\n if (this.isSuper || item.creator.username == this.loginUser.username) {\r\n this.editHandler(item, $t);\r\n }\r\n }\r\n });\r\n\r\n $('.em-blog-comment .comments').on('click', '.comment', (event) => {\r\n this.focusedComment = $(event.currentTarget);\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'r', (evt) => { // reply\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(`max`, 120, {\r\n offset: 0\r\n });\r\n this.simplemde.codemirror.focus();\r\n }).bind('keydown', 'alt+up', (evt) => { // comment pre\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(this.getScrollTargetComment(true), 120, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'alt+down', (evt) => { // comment next\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(this.getScrollTargetComment(), 120, {\r\n offset: 0\r\n });\r\n });\r\n\r\n }\r\n\r\n getScrollTargetComment(isPrev) {\r\n if (isPrev) {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let $avatar = this.focusedComment.find('> a.em-user-avatar');\r\n if (utils.isElementInViewport($avatar)) {\r\n let prev = this.focusedComment.prev('.comment');\r\n (prev.size() === 1) && (this.focusedComment = prev);\r\n }\r\n } else {\r\n this.focusedComment = $(this.blogCommentsRef).children('.comment:first');\r\n }\r\n } else {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let next = this.focusedComment.next('.comment');\r\n (next.size() === 1) && (this.focusedComment = next);\r\n } else {\r\n this.focusedComment = $(this.blogCommentsRef).children('.comment:last');\r\n }\r\n }\r\n return this.focusedComment;\r\n }\r\n\r\n _init() {\r\n this.simplemde = new SimpleMDE({\r\n element: this.commentRef,\r\n spellChecker: false,\r\n status: false,\r\n // autofocus: true,\r\n // toolbar: false,\r\n // forceSync: true,\r\n // autoDownloadFontAwesome: false,\r\n toolbar: [{\r\n name: \"bold\",\r\n action: SimpleMDE.toggleBold,\r\n className: \"fa fa-bold\",\r\n title: \"粗体\",\r\n }, {\r\n name: \"italic\",\r\n action: SimpleMDE.toggleItalic,\r\n className: \"fa fa-italic\",\r\n title: \"斜体\",\r\n }, {\r\n name: \"strikethrough\",\r\n action: SimpleMDE.toggleStrikethrough,\r\n className: \"fa fa-strikethrough\",\r\n title: \"删除线\",\r\n }, {\r\n name: \"heading\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header\",\r\n title: \"标题\",\r\n }, {\r\n name: \"heading-smaller\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header fa-header-x fa-header-smaller\",\r\n title: \"变小标题\",\r\n }, {\r\n name: \"heading-bigger\",\r\n action: SimpleMDE.toggleHeadingBigger,\r\n className: \"fa fa-header fa-header-x fa-header-bigger\",\r\n title: \"变大标题\",\r\n }, \"|\", {\r\n name: \"code\",\r\n action: SimpleMDE.toggleCodeBlock,\r\n className: \"fa fa-code\",\r\n title: \"代码\",\r\n }, {\r\n name: \"quote\",\r\n action: SimpleMDE.toggleBlockquote,\r\n className: \"fa fa-quote-left\",\r\n title: \"引用\",\r\n }, {\r\n name: \"unordered-list\",\r\n action: SimpleMDE.toggleUnorderedList,\r\n className: \"fa fa-list-ul\",\r\n title: \"无序列表\",\r\n }, {\r\n name: \"ordered-list\",\r\n action: SimpleMDE.toggleOrderedList,\r\n className: \"fa fa-list-ol\",\r\n title: \"有序列表\",\r\n }, {\r\n name: \"tasks\",\r\n action: (editor) => {\r\n this.insertContent('- [ ] 未完成任务\\n- [x] 已完成任务');\r\n },\r\n className: \"fa fa-check-square-o \",\r\n title: \"任务列表\",\r\n }, {\r\n name: \"details\",\r\n action: (editor) => {\r\n this.insertContent('
    \\n标题\\n

    详情内容

    \\n
    ');\r\n },\r\n className: \"fa fa-play \",\r\n title: \"折叠详情\",\r\n }, \"|\", {\r\n name: \"link\",\r\n action: SimpleMDE.drawLink,\r\n className: \"fa fa-link\",\r\n title: \"创建链接\",\r\n }, {\r\n name: \"image\",\r\n action: SimpleMDE.drawImage,\r\n className: \"fa fa-picture-o\",\r\n title: \"插入图片\",\r\n }, {\r\n name: \"table\",\r\n action: SimpleMDE.drawTable,\r\n className: \"fa fa-table\",\r\n title: \"插入表格\",\r\n }, {\r\n name: \"horizontal-rule\",\r\n action: SimpleMDE.drawHorizontalRule,\r\n className: \"fa fa-minus\",\r\n title: \"插入水平分割线\",\r\n }, \"|\", {\r\n name: \"upload\",\r\n action: function(editor) {},\r\n className: \"fa fa-upload\",\r\n title: \"上传文件\",\r\n }, \"|\", {\r\n name: \"preview\",\r\n action: SimpleMDE.togglePreview,\r\n className: \"fa fa-eye no-disable\",\r\n title: \"切换预览\",\r\n },\r\n // {\r\n // name: \"side-by-side\",\r\n // action: SimpleMDE.toggleSideBySide,\r\n // className: \"fa fa-columns no-disable no-mobile\",\r\n // title: \"实时预览\",\r\n // }, {\r\n // name: \"fullscreen\",\r\n // action: SimpleMDE.toggleFullScreen,\r\n // className: \"fa fa-arrows-alt no-disable no-mobile\",\r\n // title: \"全屏\",\r\n // }, \r\n {\r\n name: \"guide\",\r\n action: 'https://simplemde.com/markdown-guide',\r\n className: \"fa fa-question-circle\",\r\n title: \"Markdown指南\",\r\n }\r\n\r\n ],\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n if (emojify) {\r\n plainText = emojify.replace(plainText);\r\n }\r\n return marked(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.simplemde.codemirror.on('keyup', (cm, e) => {\r\n if (e.ctrlKey && e.keyCode == 13) { // Ctrl+Enter\r\n this.addHandler();\r\n } else if (e.keyCode == 27) { // Esc\r\n this.simplemde.value('');\r\n }\r\n });\r\n\r\n this.$chatMsgInputRef = $(this.markdownRef).find('.CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $(this.markdownRef).find('.CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n this.initPaste();\r\n\r\n this.initTextcomplete();\r\n\r\n this.initUploadDropzone($('.CodeMirror-wrap', this.markdownRef), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n\r\n this.initUploadDropzone($('.editor-toolbar .fa.fa-upload', this.markdownRef), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(nsCtx.users, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(nsCtx.users, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-blog-comment-status-bar',\r\n // maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n isTipsShow() {\r\n return $('.tms-blog-comment-status-bar').find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n tipsActionHandler(value) {\r\n\r\n if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.blog = null;\r\n this.simplemde.value('');\r\n this.simplemde.toTextArea();\r\n this.simplemde = null;\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n }\r\n\r\n replyHandler(item) {\r\n this.insertContent(`[[回复评论#${item.id}](${this.baseUrl}?cid=${item.id}){~${item.creator.username}}]\\n\\n`);\r\n this._scrollTo('b');\r\n }\r\n\r\n removeHandler(item) {\r\n $.post('/admin/blog/comment/remove', {\r\n cid: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.comments = _.reject(this.comments, { id: item.id });\r\n toastr.success('博文评论移除成功!');\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'removed',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data, '博文评论移除失败!');\r\n }\r\n });\r\n }\r\n\r\n addHandler() {\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n toastr.error('评论内容不能为空!');\r\n return;\r\n }\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n\r\n var html = utils.md2html(content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n $.post(`/admin/blog/comment/create`, {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n users: utils.parseUsernames(content, users).join(','),\r\n content: content,\r\n contentHtml: html\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.comments = [...this.comments, data.data];\r\n this.simplemde.value('');\r\n toastr.success('博文评论提交成功!');\r\n this.scrollToAfterImgLoaded('b');\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_ADDED, {});\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'created',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data, '博文评论提交失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: 'Blog'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: '.em-blog-comment .dropzone-previews',\r\n previewTemplate: $('.em-blog-comment .preview-template')[0].innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', 'Blog');\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n scrollToAfterImgLoaded(to) {\r\n _.defer(() => {\r\n new ImagesLoaded($('.em-blog-content')[0]).always(() => {\r\n this._scrollTo(to);\r\n });\r\n\r\n this._scrollTo(to);\r\n });\r\n\r\n }\r\n\r\n _scrollTo(to) {\r\n if (to == 'b') {\r\n $('.em-blog-content').scrollTo('max');\r\n } else if (to == 't') {\r\n $('.em-blog-content').scrollTo(0);\r\n } else {\r\n if (_.some(this.comments, { id: +to })) {\r\n $('.em-blog-content').scrollTo(`.comment[data-id=\"${to}\"]`, {\r\n offset: this.offset\r\n });\r\n $('.em-blog-content').find(`.comment[data-id]`).removeClass('active');\r\n $('.em-blog-content').find(`.comment[data-id=${to}]`).addClass('active');\r\n } else {\r\n $('.em-blog-content').scrollTo('max');\r\n toastr.warning(`博文评论[${to}]不存在,可能已经被删除!`);\r\n }\r\n }\r\n }\r\n\r\n editHandler(item, editTxtRef) {\r\n $.get(`/admin/blog/comment/get`, {\r\n cid: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $(editTxtRef).focus().select();\r\n autosize.update(editTxtRef);\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n\r\n refreshHandler(item) {\r\n $.get('/admin/blog/comment/get', {\r\n cid: item.id\r\n }, (data) => {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n toastr.success('刷新同步成功!');\r\n } else {\r\n toastr.info('博文评论内容暂无变更!');\r\n }\r\n });\r\n }\r\n\r\n eidtKeydownHandler(evt, item, txtRef) {\r\n\r\n if (this.sending) {\r\n return false;\r\n }\r\n\r\n if (evt.ctrlKey && evt.keyCode === 13) {\r\n\r\n this.editSave(item, txtRef);\r\n\r\n return false;\r\n } else if (evt.ctrlKey && evt.keyCode === 85) {\r\n $(txtRef).next('.tms-blog-comment-edit-actions').find('.upload').click();\r\n return false;\r\n } else if (evt.keyCode === 27) {\r\n this.editCancelHandler(evt, item, txtRef);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n editOkHandler(evt, item, txtRef) {\r\n this.editSave(item, txtRef);\r\n item.isEditing = false;\r\n }\r\n\r\n editCancelHandler(evt, item, txtRef) {\r\n item.content = item.contentOld;\r\n $(txtRef).val(item.content);\r\n item.isEditing = false;\r\n }\r\n\r\n editSave(item, txtRef) {\r\n\r\n this.sending = true;\r\n\r\n item.content = $(txtRef).val();\r\n\r\n var html = utils.md2html(item.content);\r\n var htmlOld = utils.md2html(item.contentOld);\r\n\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n $.post(`/admin/blog/comment/update`, {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n cid: item.id,\r\n version: item.version,\r\n users: utils.parseUsernames(item.content, users).join(','),\r\n content: item.content,\r\n contentHtml: html,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('博文评论更新成功!');\r\n item.isEditing = false;\r\n item.version = data.data.version;\r\n } else {\r\n toastr.error(data.data, '博文评论更新失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n isZanDone(comment) {\r\n let voteZan = comment.voteZan;\r\n if (!voteZan) {\r\n return false;\r\n }\r\n\r\n return voteZan.split(',').includes(this.loginUser.username);\r\n }\r\n\r\n rateHandler(item) {\r\n $.post('/admin/blog/comment/vote', {\r\n cid: item.id,\r\n url: utils.getBasePath(),\r\n contentHtml: utils.md2html(item.content),\r\n type: this.isZanDone(item) ? 'Cai' : 'Zan'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(item, data.data);\r\n } else {\r\n toastr.error(data.data, '博文投票失败!');\r\n }\r\n });\r\n\r\n }\r\n\r\n gotoTopHandler() {\r\n $('.em-blog-content').scrollTo(0, 120);\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as clipboard\r\n} from 'clipboard-js';\r\nimport {\r\n default as Clipboard\r\n} from 'clipboard';\r\n\r\n@containerless\r\nexport class EmBlogContent {\r\n\r\n blog;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n isAdmin = nsCtx.isAdmin;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.getBlog();\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, {\r\n isHide: true\r\n });\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n if (payload.action == 'updated') {\r\n _.extend(this.blog, payload.blog);\r\n _.defer(() => this.catalogHandler(true));\r\n }\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_ADDED, (payload) => {\r\n if (!this.blogFollower) {\r\n this.getFollower();\r\n }\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_CHANGED, (payload) => {\r\n this.comments = payload.comments;\r\n });\r\n\r\n this.throttleCreateHandler = _.throttle(() => { this.createHandler() }, 1000, { 'trailing': false });\r\n this.throttleEditHandler = _.throttle(() => { this.editHandler() }, 1000, { 'trailing': false });\r\n this.throttleCopyHandler = _.throttle(() => { this.copyHandler() }, 1000, { 'trailing': false });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.getBlog();\r\n\r\n new Clipboard('.em-blog-content .tms-clipboard')\r\n .on('success', function(e) {\r\n toastr.success('复制到剪贴板成功!');\r\n }).on('error', function(e) {\r\n toastr.error('复制到剪贴板失败!');\r\n });\r\n\r\n $('.em-blog-content').on('click', 'code[data-code]', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).attr('data-code')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.em-blog-content').on('click', '.pre-code-wrapper', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).find('i[data-clipboard-text]').attr('data-clipboard-text')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.em-blog-right-sidebar').on('click', '.panel-blog-dir .wiki-dir-item', (event) => {\r\n event.preventDefault();\r\n if ($(window).width() <= 768) {\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, { isHide: true });\r\n }\r\n $('.em-blog-content').scrollTo(`#${$(event.currentTarget).attr('data-id')}`, 200, {\r\n offset: 0\r\n });\r\n });\r\n\r\n $(this.mkbodyRef).on('dblclick', (event) => {\r\n if (event.ctrlKey) {\r\n if (this.blog.openEdit || this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.editHandler();\r\n }\r\n }\r\n });\r\n\r\n $('.em-blog-content').scroll(_.throttle((event) => {\r\n try {\r\n let sHeight = $('.em-blog-content')[0].scrollHeight;\r\n let sTop = $('.em-blog-content')[0].scrollTop;\r\n\r\n let scale = sTop * 1.0 / (sHeight - $('.em-blog-content').outerHeight());\r\n this.progressWidth = $('.em-blog-content').outerWidth() * scale;\r\n\r\n this.fixDirItem();\r\n\r\n } catch (err) { this.progressWidth = 0; }\r\n\r\n }, 10));\r\n\r\n // 消息popup\r\n $(this.feedRef).on('mouseenter', '.event a[href*=\"#/blog/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n let cid = utils.urlQuery('cid', $a.attr('href'));\r\n cid && ea.publish(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, {\r\n id: cid,\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n fixDirItem() {\r\n let fixId = null;\r\n let preId = null;\r\n _.each(this.dirItemIds, (id) => {\r\n if (!preId) {\r\n if (utils.isElementInViewport($(`#${id}`))) {\r\n fixId = id;\r\n return false;\r\n }\r\n } else {\r\n if (utils.isElementInViewport($(`#${id}`)) && !utils.isElementInViewport($(`#${preId}`))) {\r\n fixId = id;\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (fixId) {\r\n let fixDirItem = $('.em-blog-right-sidebar .panel-blog-dir').find(`.wiki-dir-item[data-id=\"${fixId}\"]`);\r\n if (fixDirItem) {\r\n $('.em-blog-right-sidebar .panel-blog-dir').find(`.wiki-dir-item[data-id]`).removeClass('active');\r\n fixDirItem.addClass('active');\r\n\r\n $('.em-blog-right-sidebar .scrollbar-macosx.scroll-content.scroll-scrolly_visible').scrollTo(fixDirItem, 10, {\r\n offset: -120\r\n });\r\n }\r\n }\r\n }\r\n\r\n initHotkeys() {\r\n try {\r\n $(document).bind('keyup', 'e', (evt) => { // edit\r\n evt.preventDefault();\r\n if (this.blog.openEdit || this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.throttleEditHandler();\r\n }\r\n }).bind('keyup', 'c', (evt) => { // create\r\n evt.preventDefault();\r\n this.throttleCreateHandler();\r\n }).bind('keydown', 'd', (evt) => { // dir\r\n evt.preventDefault();\r\n if (this.dir) {\r\n this.catalogHandler();\r\n }\r\n }).bind('keydown', 's', (evt) => { // share\r\n evt.preventDefault();\r\n this.blogShareVm.show();\r\n }).bind('keydown', 'f', (evt) => { // follow\r\n evt.preventDefault();\r\n this.followerHandler();\r\n }).bind('keydown', 't', (event) => { // scroll top\r\n event.preventDefault();\r\n $('.em-blog-content').scrollTo(0, 200, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'b', (event) => { // scroll bottom\r\n event.preventDefault();\r\n $('.em-blog-content').scrollTo(`max`, 200, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'alt+r', (event) => { // refresh\r\n event.preventDefault();\r\n this.refreshHandler();\r\n }).bind('keydown', 'alt+h', (event) => { // history\r\n event.preventDefault();\r\n this.historyHandler();\r\n }).bind('keydown', 'alt+l', (event) => { // history\r\n event.preventDefault();\r\n this.authHandler();\r\n }).bind('keydown', 'alt+s', (event) => { // stow\r\n event.preventDefault();\r\n this.stowHandler();\r\n }).bind('keydown', 'alt+c', (event) => { // copy\r\n event.preventDefault();\r\n this.throttleCopyHandler();\r\n }).bind('keydown', 'alt+m', (event) => { // move space\r\n event.preventDefault();\r\n this.updateSpaceHandler();\r\n }).bind('keydown', 'alt+o', (event) => { // open edit\r\n event.preventDefault();\r\n this.openEditHandler();\r\n }).bind('keydown', 'alt+ctrl+d', (event) => { // delete\r\n event.preventDefault();\r\n this.deleteHandler();\r\n });\r\n } catch (err) { console.log(err); }\r\n\r\n }\r\n\r\n _dir() {\r\n this.dir = utils.dir($(this.mkbodyRef), 'tms-blog-dir-item-');\r\n this.dirItemIds = [];\r\n if (this.dir) {\r\n $(this.dir).find('a.item.wiki-dir-item').each((index, el) => {\r\n this.dirItemIds.push($(el).attr('data-id'));\r\n });\r\n }\r\n return this.dir;\r\n }\r\n\r\n getMyLog() {\r\n this.ajaxS = $.get('/admin/blog/log/my', (data) => {\r\n if (data.success) {\r\n // this.logs = _.reverse(data.data);\r\n this.logs = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n getBlog() {\r\n this.progressWidth = 0;\r\n if (!nsCtx.blogId || isNaN(new Number(nsCtx.blogId))) {\r\n this.blog = null;\r\n this.getMyLog();\r\n return;\r\n }\r\n\r\n this.getStow();\r\n this.getFollower();\r\n\r\n return $.get('/admin/blog/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n ea.publish(nsCons.EVENT_BLOG_VIEW_CHANGED, this.blog);\r\n _.defer(() => this.catalogHandler(true));\r\n this.getMyTags();\r\n } else {\r\n toastr.error(data.data, \"获取博文失败!\");\r\n }\r\n });\r\n }\r\n\r\n getMyTags() {\r\n $.get('/admin/blog/tag/my', (data) => {\r\n let tags = [];\r\n if (data.success) {\r\n tags = data.data;\r\n }\r\n this.tags = _.unionBy(tags, this.blog.tags, 'name');\r\n\r\n _.defer(() => {\r\n let tags = _.map(this.blog.tags, \"name\");\r\n $(this.tagsRef).dropdown({}).dropdown('clear').dropdown('set selected', tags).dropdown({\r\n allowAdditions: true,\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n $.post('/admin/blog/tag/add', {\r\n id: this.blog.id,\r\n tags: addedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加标签成功!');\r\n } else {\r\n toastr.error(data.data, '添加标签失败!');\r\n }\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n $.post('/admin/blog/tag/remove', {\r\n id: this.blog.id,\r\n tags: removedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除标签成功!');\r\n } else {\r\n toastr.error(data.data, '移除标签失败!');\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n getStow() {\r\n $.get('/admin/blog/stow/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blogStow = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n getFollower() {\r\n $.get('/admin/blog/follower/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blogFollower = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n ea.publish(nsCons.EVENT_BLOG_ACTION, { action: 'edit', id: this.blog.id });\r\n }\r\n }\r\n\r\n deleteHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.emConfirmModal.show({\r\n title: '删除确认',\r\n content: '确认要删除该博文吗?',\r\n onapprove: () => {\r\n $.post(\"/admin/blog/delete\", {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('删除博文成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'deleted',\r\n blog: this.blog\r\n });\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, {\r\n to: '#/blog'\r\n });\r\n } else {\r\n toastr.error(data.data, '删除博文失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n createHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n $('a[href=\"#modaal-blog-write\"]').click();\r\n }\r\n }\r\n\r\n updateSpaceHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.blogSpaceUpdateVm.show(this.blog);\r\n }\r\n }\r\n\r\n updatePrivatedHandler() {\r\n $.post('/admin/blog/privated/update', {\r\n id: this.blog.id,\r\n privated: !this.blog.privated\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.blog, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n }\r\n\r\n isZanDone() {\r\n let voteZan = this.blog.voteZan;\r\n if (!voteZan) {\r\n return false;\r\n }\r\n\r\n return voteZan.split(',').includes(this.loginUser.username);\r\n }\r\n\r\n rateHandler() {\r\n $.post('/admin/blog/vote', {\r\n id: this.blog.id,\r\n url: utils.getBasePath(),\r\n contentHtml: utils.md2html(this.blog.content),\r\n type: this.isZanDone() ? 'Cai' : 'Zan'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.blog, data.data);\r\n } else {\r\n toastr.error(data.data, '博文投票失败!');\r\n }\r\n });\r\n }\r\n\r\n openEditHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n $.post('/admin/blog/openEdit', {\r\n id: this.blog.id,\r\n open: !this.blog.openEdit\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog.openEdit = !this.blog.openEdit;\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n toastr.success(this.blog.openEdit ? '开放协作编辑成功!' : '关闭协作编辑成功!');\r\n } else {\r\n toastr.error(data.data, '协作编辑操作失败!');\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshHandler() {\r\n let p = this.getBlog();\r\n p && p.done(() => { toastr.success('刷新操作成功!'); });\r\n }\r\n\r\n historyHandler() {\r\n this.blogHistoryVm.show(this.blog);\r\n }\r\n\r\n catalogHandler(justRefresh = false) {\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, {\r\n justRefresh: justRefresh,\r\n action: 'dir',\r\n dir: this._dir()\r\n });\r\n }\r\n\r\n authHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.blogSpaceAuthVm.show('blog', this.blog);\r\n }\r\n }\r\n\r\n copyHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n ea.publish(nsCons.EVENT_BLOG_ACTION, { action: 'copy', id: this.blog.id });\r\n }\r\n }\r\n\r\n stowHandler() {\r\n if (!this.blogStow) {\r\n $.post('/admin/blog/stow/add', {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogStow = data.data;\r\n ea.publish(nsCons.EVENT_BLOG_STOW_CHANGED, { action: 'add', data: this.blogStow });\r\n toastr.success('博文收藏成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/blog/stow/remove', {\r\n sid: this.blogStow.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_BLOG_STOW_CHANGED, { action: 'remove', data: this.blogStow });\r\n this.blogStow = null;\r\n toastr.success('删除博文收藏成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n followerHandler() {\r\n if (!this.blogFollower) {\r\n $.post('/admin/blog/follower/add', {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogFollower = data.data;\r\n toastr.success('博文关注成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/blog/follower/remove', {\r\n fid: this.blogFollower.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogFollower = null;\r\n toastr.success('取消博文关注成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n dimmerHandler() {\r\n ea.publish(nsCons.EVENT_BLOG_LEFT_SIDEBAR_TOGGLE, { isHide: true });\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, { isHide: true });\r\n }\r\n\r\n commentsHandler() {\r\n $('.em-blog-content').scrollTo(`.em-blog-comment `, 120, {\r\n offset: -16\r\n });\r\n }\r\n\r\n openFeedEventItemHandler(item) {\r\n item.isOpen = !item.isOpen;\r\n }\r\n\r\n feedEventItemMouseleaveHandler(item) {\r\n item.isOpen = false;\r\n }\r\n\r\n refreshFeedHandler() {\r\n this.getMyLog();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogHistoryDiff {\r\n\r\n showHandler() {}\r\n\r\n approveHandler() {\r\n\r\n }\r\n\r\n show(f, s, fIndex, sIndex) {\r\n this.f = f;\r\n this.s = s;\r\n this.fIndex = fIndex;\r\n this.sIndex = sIndex;\r\n this.diffHtml = utils.diffS(s.content, f.content);\r\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogHistoryView {\r\n\r\n isSuper = nsCtx.isSuper;\r\n loginUser = nsCtx.loginUser;\r\n\r\n showHandler() {}\r\n\r\n approveHandler() {\r\n\r\n }\r\n\r\n show(blogHistory, ver, isCurrentVer) {\r\n this.blogHistory = blogHistory;\r\n this.blog = blogHistory.blog;\r\n this.ver = ver;\r\n this.isCurrentVer = isCurrentVer;\r\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\r\n }\r\n\r\n restoreHandler() {\r\n this.ajax1 = $.post('/admin/blog/history/restore', { hid: this.blogHistory.id }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, { action: 'updated', blog: data.data });\r\n ea.publish(nsCons.EVENT_BLOG_HISTORY_CHANGED, {});\r\n toastr.success('博文历史记录还原成功!');\r\n this.emModal.hide();\r\n } else {\r\n toastr.error(data.data, '博文历史记录还原失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogHistory {\r\n\r\n isSuper = nsCtx.isSuper;\r\n loginUser = nsCtx.loginUser;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_HISTORY_CHANGED, (payload) => {\r\n this.refreshHistory();\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n viewHistoryHandler(blogHistory, ver, isCurrentVer) {\r\n this.blogHistoryViewVm.show(blogHistory, ver, isCurrentVer);\r\n }\r\n\r\n refreshHistory() {\r\n $.get('/admin/blog/history/list', {\r\n id: this.blog.id\r\n }, (data) => {\r\n if (data.success) {\r\n \tthis.oldHistories = data.data;\r\n this.histories = _.reverse(_.clone(data.data));\r\n } else {\r\n toastr.error(data.data, '获取博文历史失败!');\r\n }\r\n });\r\n }\r\n\r\n showHandler() {\r\n this.refreshHistory();\r\n }\r\n\r\n approveHandler() {\r\n\r\n }\r\n\r\n show(blog) {\r\n this.blog = blog;\r\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\r\n }\r\n\r\n restoreHandler(item) {\r\n this.ajax1 = $.post('/admin/blog/history/restore', { hid: item.id }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, { action: 'updated', blog: data.data });\r\n this.refreshHistory();\r\n toastr.success('博文历史记录还原成功!');\r\n } else {\r\n toastr.error(data.data, '博文历史记录还原失败!');\r\n }\r\n });\r\n }\r\n\r\n removeHandler(item) {\r\n this.ajax2 = $.post('/admin/blog/history/remove', { hid: item.id }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.refreshHistory();\r\n toastr.success('博文历史记录删除成功!');\r\n } else {\r\n toastr.error(data.data, '博文历史记录删除失败!');\r\n }\r\n });\r\n }\r\n\r\n diffHandler() {\r\n let list = [...this.oldHistories, this.blog];\r\n let chks = _.filter(list, 'checked');\r\n if (chks && chks.length > 1) {\r\n let f = chks[chks.length - 1];\r\n let s = chks[chks.length - 2];\r\n let fIndex = _.indexOf(list, f);\r\n let sIndex = _.indexOf(list, s);\r\n this.blogHistoryDiffVm.show(f, s, fIndex, sIndex);\r\n } else {\r\n toastr.error('请先选择要比较版本');\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogLeftSidebar {\r\n\r\n isHide = true;\r\n blogs = [];\r\n spaces = [];\r\n noSpaceBlogs = [];\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n filter = ''; // 过滤查找条件\r\n\r\n spaceStow = {\r\n name: '我的收藏',\r\n open: false\r\n };\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n if (payload.action == 'created') {\r\n this.blogs = [payload.blog, ...this.blogs];\r\n this.calcTree();\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, { to: `#/blog/${payload.blog.id}` });\r\n } else if (payload.action == 'updated') {\r\n _.extend(_.find(this.blogs, { id: payload.blog.id }), payload.blog);\r\n this.calcTree();\r\n } else if (payload.action == 'deleted') {\r\n this.blogStows = _.reject(this.blogStows, bs => bs.blog.id == payload.blog.id);\r\n this.blogs = _.reject(this.blogs, { id: payload.blog.id });\r\n this.calcTree();\r\n }\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_SPACE_CHANGED, (payload) => {\r\n if (payload.action == 'created') {\r\n this.spaces = [payload.space, ...this.spaces];\r\n this.calcTree();\r\n } else if (payload.action == 'updated') {\r\n _.extend(_.find(this.spaces, { id: payload.space.id }), payload.space);\r\n this.calcTree();\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.blog = _.find(this.blogs, { id: +nsCtx.blogId });\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, (payload) => {\r\n this.isHide = payload;\r\n });\r\n this.subscribe5 = ea.subscribe(nsCons.EVENT_BLOG_STOW_CHANGED, (payload) => {\r\n this._refreshBlogStows();\r\n });\r\n\r\n this._doFilerDebounce = _.debounce(() => this._doFiler(), 120, { leading: true });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n this.subscribe5.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n this.refresh();\r\n this._refreshSysLinks();\r\n this._refreshBlogStows();\r\n }\r\n\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n _refreshBlogStows() {\r\n $.get('/admin/blog/stow/listMy', (data) => {\r\n if (data.success) {\r\n this.blogStows = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n refresh() {\r\n $.when(this.getSpaces(), this.getBlogTree()).done(() => {\r\n this.calcTree();\r\n });\r\n }\r\n\r\n calcTree() {\r\n this.noSpaceBlogs = [];\r\n $.each(this.spaces, (index, space) => {\r\n space.blogs = [];\r\n $.each(this.blogs, (index, blog) => {\r\n if (blog.space) {\r\n if (blog.space.id === space.id) {\r\n space.blogs.push(blog);\r\n if (nsCtx.blogId == blog.id) {\r\n space.open = true;\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.noSpaceBlogs = _.filter(this.blogs, b => !b.space);\r\n }\r\n\r\n spaceToggleHandler(space) {\r\n space.open = !space.open;\r\n }\r\n\r\n getBlogTree() {\r\n return $.get('/admin/blog/listMy', (data) => {\r\n if (data.success) {\r\n this.blogs = data.data;\r\n this.blog = _.find(this.blogs, { id: +nsCtx.blogId });\r\n }\r\n });\r\n }\r\n\r\n getSpaces() {\r\n return $.get('/admin/space/listMy', {}, (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n editSpaceHandler(space) {\r\n this.spaceEditVm.show(space);\r\n }\r\n\r\n delSpaceHandler(space) {\r\n this.confirmMd.show({\r\n onapprove: () => {\r\n $.post('/admin/space/delete', {\r\n id: space.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('删除空间成功!');\r\n this.spaces = _.reject(this.spaces, { id: space.id });\r\n } else {\r\n toastr.error(data.data, '删除空间失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n authSpaceHandler(space) {\r\n this.blogSpaceAuthVm.show('space', space);\r\n }\r\n\r\n clearFilterHandler() {\r\n this.filter = '';\r\n this._doFilerDebounce();\r\n }\r\n\r\n filterKeyupHandler(event) {\r\n this._doFilerDebounce();\r\n }\r\n\r\n _doFiler() {\r\n _.each(this.blogs, b => {\r\n if (!_.includes(_.toLower(b.title), _.toLower(this.filter))) {\r\n b._hidden = true;\r\n } else {\r\n b._hidden = false;\r\n }\r\n });\r\n\r\n _.each(this.spaces, s => {\r\n if (!_.some(s.blogs, b => !b._hidden)) {\r\n s._hidden = true;\r\n } else {\r\n s._hidden = false;\r\n s.open = true;\r\n }\r\n });\r\n\r\n _.each(this.blogStows, bs => {\r\n if (!_.includes(_.toLower(bs.blog.title), _.toLower(this.filter))) {\r\n bs._hidden = true;\r\n } else {\r\n bs._hidden = false;\r\n }\r\n });\r\n\r\n if (!_.some(this.blogStows, bs => !bs._hidden)) {\r\n this.spaceStow.open = false;\r\n } else {\r\n this.spaceStow.open = true;\r\n }\r\n\r\n if (!this.filter) {\r\n _.each(this.spaces, s => {\r\n if (_.find(s.blogs, { id: +nsCtx.blogId })) {\r\n s.open = true;\r\n } else {\r\n s.open = false;\r\n }\r\n });\r\n this.spaceStow.open = false;\r\n }\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogRightSidebar {\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, (payload) => {\r\n if (payload.action == 'dir') {\r\n $(this.dirRef).empty().append(payload.dir);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSave {\r\n\r\n @bindable trigger;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n triggerChanged() {\r\n\r\n $(this.trigger).click((event) => {\r\n this.show();\r\n });\r\n\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SAVE, (payload) => {\r\n this.blogInfo = payload;\r\n this.show();\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n show() {\r\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\r\n }\r\n\r\n showHandler() {\r\n $(this.chk).checkbox('set unchecked');\r\n $.get('/admin/space/listMy', (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n var html = utils.md2html(this.blogInfo.content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n let spaceId = $(this.spacesRef).dropdown('get value');\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_BLOG_COMMON_SPACE, spaceId);\r\n\r\n $.post(`/admin/blog/create`, {\r\n url: utils.getBasePath(),\r\n usernames: utils.parseUsernames(this.blogInfo.content, users).join(','),\r\n title: this.blogInfo.title,\r\n content: this.blogInfo.content,\r\n spaceId: spaceId,\r\n privated: $(this.chk).checkbox('is checked'),\r\n contentHtml: html\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文保存成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'created',\r\n blog: this.blog\r\n });\r\n modal.hide();\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n } else {\r\n toastr.error(data.data, '博文保存失败!');\r\n }\r\n });\r\n }\r\n\r\n initSpacesHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.spacesRef).dropdown('clear');\r\n if (localStorage) {\r\n let sid = localStorage.getItem(nsCons.KEY_BLOG_COMMON_SPACE);\r\n if (sid) {\r\n $(this.spacesRef).dropdown('set selected', sid);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogShare {\r\n\r\n shares = [];\r\n desc = '';\r\n\r\n @bindable blog;\r\n\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n showNoResults: false,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n result.item._type = result.item.username ? 'user' : 'channel';\r\n this.shares.push(result.item);\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n $(this.shareRef).popup({\r\n on: 'click',\r\n inline: true,\r\n silent: true,\r\n position: 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.inputSearchRef).focus();\r\n }\r\n });\r\n }\r\n\r\n shareSearchKeyupHandler(event) {\r\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\r\n let val = $(this.inputSearchRef).val();\r\n if (utils.isMail(val)) {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\r\n this.shares.push({\r\n _id: _.uniqueId('share-item-'),\r\n _type: 'mail',\r\n mail: val\r\n });\r\n $(this.inputSearchRef).val('');\r\n }\r\n }\r\n }\r\n }\r\n\r\n show() {\r\n $(this.shareRef).popup('show');\r\n }\r\n\r\n removeShareHandler(item) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n }\r\n\r\n cancelHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n this.desc = '';\r\n $(this.inputSearchRef).val('');\r\n $(this.shareRef).popup('hide');\r\n }\r\n\r\n shareHandler() {\r\n\r\n if (this.shares.length === 0) {\r\n toastr.error('请先指定博文分享用户或者频道或者邮箱!');\r\n return;\r\n }\r\n\r\n this.ajaxS = $.post('/admin/blog/share', {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n desc: this.desc,\r\n title: this.blog.title,\r\n html: utils.md2html(this.blog.content),\r\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\r\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\r\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this._reset();\r\n toastr.success('博文分享成功!');\r\n } else {\r\n toastr.error(data.data, '博文分享失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceAuth {\r\n\r\n shares = [];\r\n\r\n type; // blog | space\r\n authO;\r\n\r\n _isBlog() {\r\n return this.type == 'blog';\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox({ // privated\r\n onChange: () => {\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/privated/update', {\r\n id: this.authO.id,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/update', {\r\n id: this.authO.id,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\r\n action: 'updated',\r\n space: data.data\r\n });\r\n toastr.success('更新空间可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新空间可见性失败!');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n $(this.chk2).checkbox({ // opened\r\n onChange: () => {\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/opened/update', {\r\n id: this.authO.id,\r\n opened: $(this.chk2).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/update', {\r\n id: this.authO.id,\r\n opened: $(this.chk2).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\r\n action: 'updated',\r\n space: data.data\r\n });\r\n toastr.success('更新空间可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新空间可见性失败!');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n\r\n let param = { id: this.authO.id };\r\n if (result.item.username) {\r\n _.extend(param, { users: result.item.username });\r\n } else {\r\n _.extend(param, { channels: result.item.id });\r\n }\r\n\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/auth/add', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares.push(result.item);\r\n this.authO.blogAuthorities = data.data.blogAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/auth/add', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares.push(result.item);\r\n this.authO.spaceAuthorities = data.data.spaceAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(this.shares, { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => !c.username), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n }\r\n\r\n removeShareHandler(item) {\r\n let param = { id: this.authO.id };\r\n if (item.username) {\r\n _.extend(param, { users: item.username });\r\n } else {\r\n _.extend(param, { channels: item.id });\r\n }\r\n\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/auth/remove', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n this.authO.blogAuthorities = data.data.blogAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/auth/remove', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n this.authO.spaceAuthorities = data.data.spaceAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n $(this.inputSearchRef).val('');\r\n }\r\n\r\n show(type, authO) {\r\n this.type = type;\r\n this.authO = authO;\r\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n $(this.chk).checkbox(this.authO.privated ? 'set checked' : 'set unchecked');\r\n $(this.chk2).checkbox(this.authO.opened ? 'set checked' : 'set unchecked');\r\n let auths;\r\n if (this._isBlog()) {\r\n auths = this.authO.blogAuthorities;\r\n } else {\r\n auths = this.authO.spaceAuthorities;\r\n }\r\n _.forEach(auths, (item) => {\r\n let share = item.user ? item.user : item.channel;\r\n share._id = _.uniqueId('share-item-');\r\n this.shares.push(share);\r\n });\r\n }\r\n\r\n approveHandler() {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceCreate {\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n }\r\n\r\n createHandler() {\r\n this.ajax = $.post('/admin/space/create', {\r\n name: this.name,\r\n desc: this.desc,\r\n privated: $(this.chk).checkbox('is checked'),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.name = '';\r\n this.desc = '';\r\n $(this.chk).checkbox('set unchecked');\r\n toastr.success('空间创建成功!');\r\n $(this.ppRef).popup('hide');\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, { action: 'created', space: data.data });\r\n } else {\r\n toastr.error(data.data, '空间创建失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceEdit {\r\n\r\n space;\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n }\r\n\r\n show(space) {\r\n this.space = space;\r\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\r\n }\r\n\r\n showHandler() {\r\n $.get('/admin/space/get', {\r\n id: this.space.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.space = data.data;\r\n $(this.chk).checkbox(this.space.privated ? 'set checked' : 'set unchecked');\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n $.post('/admin/space/update', {\r\n id: this.space.id,\r\n name: this.space.name,\r\n desc: this.space.description,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('空间更新成功!');\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\r\n action: 'updated',\r\n space: data.data\r\n });\r\n modal.hide();\r\n } else {\r\n toastr.error(data.data, '空间更新失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceUpdate {\r\n\r\n blog;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {}\r\n\r\n show(blog) {\r\n this.blog = blog;\r\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\r\n }\r\n\r\n showHandler() {\r\n $.get('/admin/space/listMy', (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n let sid = $(this.spacesRef).dropdown('get value');\r\n $.post('/admin/blog/space/update', {\r\n id: this.blog.id,\r\n sid: sid ? sid : null,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('博文空间更新成功!');\r\n if (!data.data.space) {\r\n data.data.space = null; // 确保_.extend(oldBlog, blog)更新空间属性\r\n }\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n modal.hide();\r\n } else {\r\n toastr.error(data.data, '博文空间更新失败!');\r\n }\r\n });\r\n }\r\n\r\n initSpacesHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.spacesRef).dropdown('clear').dropdown('set selected', this.blog.space ? this.blog.space.id + '' : '');\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport 'timeago';\r\nlet tg = timeago();\r\n\r\n@containerless\r\nexport class EmBlogTopMenu {\r\n\r\n isHide = true;\r\n\r\n loginUser = nsCtx.loginUser;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.toggleHandler(true);\r\n });\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_LEFT_SIDEBAR_TOGGLE, (payload) => {\r\n this.toggleHandler(payload.isHide);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.logoRef).on('mouseenter', (event) => {\r\n $(this.logoRef).animateCss('flip');\r\n });\r\n\r\n $(this.searchRef)\r\n .search({\r\n type: 'category',\r\n minCharacters: 2,\r\n selectFirstResult: true,\r\n onSelect: (result, response) => {\r\n $(this.searchRef).search('hide results');\r\n _.defer(() => {\r\n $(this.searchRef).find('input').blur();\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, { to: result.url });\r\n });\r\n return false;\r\n },\r\n apiSettings: {\r\n onResponse: function(resp) {\r\n // var response = {\r\n // results: []\r\n // };\r\n // $.each(resp.data, (index, item) => {\r\n // response.results.push({\r\n // title: item.title,\r\n // // description: utils.abbreviate(item.content, 65),\r\n // description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}`,\r\n // url: `#/blog/${item.id}`\r\n // });\r\n // });\r\n var response = {\r\n results: {\r\n blogs: {\r\n name: `博文 (${resp.data.blogs.length})`,\r\n results: []\r\n },\r\n comments: {\r\n name: `评论 (${resp.data.comments.length})`,\r\n results: []\r\n }\r\n }\r\n };\r\n $.each(resp.data.blogs, (index, item) => {\r\n response.results.blogs.results.push({\r\n title: item.title,\r\n // description: utils.abbreviate(item.content, 65),\r\n description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}`,\r\n url: `#/blog/${item.id}`\r\n });\r\n });\r\n $.each(resp.data.comments, (index, item) => {\r\n response.results.comments.results.push({\r\n title: `#/blog/${item.targetId}?cid=${item.id}`,\r\n // description: item.content,\r\n description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}
    ${utils.encodeHtml(item.content)}`,\r\n url: `#/blog/${item.targetId}?cid=${item.id}`\r\n });\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/search?search={query}&comment=true&ellipsis=60'\r\n }\r\n });\r\n\r\n this._refreshSysLinks();\r\n\r\n if (nsCtx.blogId == 'create') {\r\n _.defer(() => { $('a[href=\"#modaal-blog-write\"]').click(); });\r\n }\r\n }\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n searchBlurHandler() {\r\n this.isSearchFocus = false;\r\n }\r\n\r\n searchFocusHandler() {\r\n this.isSearchFocus = true;\r\n }\r\n\r\n toggleHandler(isHide) {\r\n if (this.isHide === isHide) {\r\n return;\r\n }\r\n this.isHide = isHide ? isHide : !this.isHide;\r\n ea.publish(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, this.isHide);\r\n }\r\n\r\n userEditHandler() {\r\n this.userEditMd.show();\r\n }\r\n\r\n logoutHandler() {\r\n $.post('/admin/logout').always(() => {\r\n utils.redirect2Login();\r\n });\r\n }\r\n\r\n searchKeyupHandler(event) {\r\n if (event.keyCode == 27) {\r\n $(this.searchRef).search('set value', '');\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@containerless\r\nexport class EmBlogWrite {\r\n\r\n @bindable members;\r\n\r\n static NAME = 'blog-create';\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_MODAAL_AFTER_OPEN, (payload) => {\r\n if (payload.id == EmBlogWrite.NAME) {\r\n nsCtx.isModaalOpening = true;\r\n this.init();\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_MODAAL_BEFORE_CLOSE, (payload) => {\r\n if (payload.id == EmBlogWrite.NAME) {\r\n this.destroy();\r\n nsCtx.isModaalOpening = false;\r\n }\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_ACTION, (payload) => {\r\n this.action = payload.action;\r\n $.get('/admin/blog/get', { id: payload.id }, (data) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n $('a[href=\"#modaal-blog-write\"]').click();\r\n }\r\n });\r\n\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n this.action = payload.action;\r\n if (payload.action === 'created') {\r\n this.blog = payload.blog;\r\n $('#blog-save-btn span').text('更新');\r\n $('#blog-save-btn').attr('title', 'ctrl+click更新后关闭窗口');\r\n }\r\n\r\n });\r\n\r\n this.blogTitleInputKeyupInit = _.once(() => {\r\n $('#blog-title-input').keyup((e) => {\r\n let $t = $(e.currentTarget);\r\n\r\n if (!e.shiftKey && e.keyCode == 13) { // Enter\r\n if (this.simplemde.value()) {\r\n this.save(e, true);\r\n } else {\r\n this.simplemde.codemirror.focus();\r\n }\r\n\r\n } else if (e.shiftKey && e.keyCode == 13) { // Esc\r\n this.simplemde.codemirror.focus();\r\n } else if (e.keyCode == 27) { // Esc\r\n $t.val('');\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n }\r\n\r\n _reset() {\r\n this.action = null;\r\n this.blog = null;\r\n $('#blog-save-btn span').text('保存');\r\n $('#blog-save-btn').attr('title', 'ctrl+click快速保存');\r\n $('#blog-title-input').val('');\r\n this.simplemde.value('');\r\n this.simplemde.toTextArea();\r\n this.simplemde = null;\r\n }\r\n\r\n _editInit() {\r\n $('#blog-title-input').val(this.blog.title);\r\n this.simplemde.value(this.blog.content);\r\n $('#blog-save-btn span').text('更新');\r\n $('#blog-save-btn').attr('title', 'ctrl+click更新后关闭窗口');\r\n }\r\n\r\n _writeInit() {\r\n let ccid = utils.urlQuery('ccid'); // chat channel id\r\n let cdid = utils.urlQuery('cdid'); // chat direct id\r\n let url = null;\r\n let id = null;\r\n if (ccid) {\r\n url = `/admin/chat/channel/get`;\r\n id = ccid;\r\n } else if (cdid) {\r\n url = `/admin/chat/direct/get`;\r\n id = cdid;\r\n }\r\n\r\n if (url) {\r\n $.get(url, { id: +id }, (data) => {\r\n if (data.success) {\r\n this.simplemde.value(data.data.content);\r\n let val = $('#blog-title-input').val();\r\n if (!val) {\r\n let ms = /#{1,6}[\\s]+(.+)\\n?/g.exec(data.data.content);\r\n if (ms && ms.length > 1) {\r\n $('#blog-title-input').val(ms[1]);\r\n }\r\n }\r\n } else {\r\n toastr.error(data.data, '获取沟通消息失败!');\r\n }\r\n });\r\n }\r\n }\r\n\r\n _copyInit() {\r\n $('#blog-title-input').val(this.blog.title + ' (副本)');\r\n this.simplemde.value(this.blog.content);\r\n this.blog = null;\r\n }\r\n\r\n init() {\r\n\r\n this.simplemde = new SimpleMDE({\r\n element: $('#txt-blog-write')[0],\r\n spellChecker: false,\r\n // status: false,\r\n // autofocus: true,\r\n // toolbar: false,\r\n // forceSync: true,\r\n // autoDownloadFontAwesome: false,\r\n toolbar: [{\r\n name: \"bold\",\r\n action: SimpleMDE.toggleBold,\r\n className: \"fa fa-bold\",\r\n title: \"粗体\",\r\n }, {\r\n name: \"italic\",\r\n action: SimpleMDE.toggleItalic,\r\n className: \"fa fa-italic\",\r\n title: \"斜体\",\r\n }, {\r\n name: \"strikethrough\",\r\n action: SimpleMDE.toggleStrikethrough,\r\n className: \"fa fa-strikethrough\",\r\n title: \"删除线\",\r\n }, {\r\n name: \"heading\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header\",\r\n title: \"标题\",\r\n }, {\r\n name: \"heading-smaller\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header fa-header-x fa-header-smaller\",\r\n title: \"变小标题\",\r\n }, {\r\n name: \"heading-bigger\",\r\n action: SimpleMDE.toggleHeadingBigger,\r\n className: \"fa fa-header fa-header-x fa-header-bigger\",\r\n title: \"变大标题\",\r\n }, \"|\", {\r\n name: \"code\",\r\n action: SimpleMDE.toggleCodeBlock,\r\n className: \"fa fa-code\",\r\n title: \"代码\",\r\n }, {\r\n name: \"quote\",\r\n action: SimpleMDE.toggleBlockquote,\r\n className: \"fa fa-quote-left\",\r\n title: \"引用\",\r\n }, {\r\n name: \"unordered-list\",\r\n action: SimpleMDE.toggleUnorderedList,\r\n className: \"fa fa-list-ul\",\r\n title: \"无序列表\",\r\n }, {\r\n name: \"ordered-list\",\r\n action: SimpleMDE.toggleOrderedList,\r\n className: \"fa fa-list-ol\",\r\n title: \"有序列表\",\r\n }, {\r\n name: \"tasks\",\r\n action: (editor) => {\r\n this.insertContent('- [ ] 未完成任务\\n- [x] 已完成任务');\r\n },\r\n className: \"fa fa-check-square-o \",\r\n title: \"任务列表\",\r\n }, {\r\n name: \"details\",\r\n action: (editor) => {\r\n this.insertContent('
    \\n标题\\n

    详情内容

    \\n
    ');\r\n },\r\n className: \"fa fa-play \",\r\n title: \"折叠详情\",\r\n }, \"|\", {\r\n name: \"link\",\r\n action: SimpleMDE.drawLink,\r\n className: \"fa fa-link\",\r\n title: \"创建链接\",\r\n }, {\r\n name: \"image\",\r\n action: SimpleMDE.drawImage,\r\n className: \"fa fa-picture-o\",\r\n title: \"插入图片\",\r\n }, {\r\n name: \"table\",\r\n action: SimpleMDE.drawTable,\r\n className: \"fa fa-table\",\r\n title: \"插入表格\",\r\n }, {\r\n name: \"horizontal-rule\",\r\n action: SimpleMDE.drawHorizontalRule,\r\n className: \"fa fa-minus\",\r\n title: \"插入水平分割线\",\r\n }, \"|\", {\r\n name: \"upload\",\r\n action: function(editor) {},\r\n className: \"fa fa-upload\",\r\n title: \"上传文件\",\r\n }, \"|\", {\r\n name: \"preview\",\r\n action: SimpleMDE.togglePreview,\r\n className: \"fa fa-eye no-disable\",\r\n title: \"切换预览\",\r\n }, {\r\n name: \"side-by-side\",\r\n action: SimpleMDE.toggleSideBySide,\r\n className: \"fa fa-columns no-disable no-mobile\",\r\n title: \"实时预览\",\r\n }, {\r\n name: \"fullscreen\",\r\n action: SimpleMDE.toggleFullScreen,\r\n className: \"fa fa-arrows-alt no-disable no-mobile\",\r\n title: \"全屏\",\r\n }, {\r\n name: \"guide\",\r\n action: 'https://simplemde.com/markdown-guide',\r\n className: \"fa fa-question-circle\",\r\n title: \"Markdown指南\",\r\n }\r\n\r\n ],\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n if (emojify) {\r\n plainText = emojify.replace(plainText);\r\n }\r\n return marked(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.simplemde.codemirror.on('keyup', (cm, e) => {\r\n if (e.ctrlKey && e.keyCode == 13) { // Ctrl+Enter\r\n this.save(e, true);\r\n } else if (e.keyCode == 27) { // Esc\r\n this.simplemde.value('');\r\n } else if (e.keyCode == 13) { // Enter\r\n let val = $('#blog-title-input').val();\r\n if (!val) {\r\n let ms = /#{1,6}[\\s]+(.+)\\n?/g.exec(this.simplemde.value());\r\n if (ms && ms.length > 1) {\r\n $('#blog-title-input').val(ms[1]);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.$chatMsgInputRef = $('#txt-blog-write-wrapper').find('.CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $('#txt-blog-write-wrapper').find('.CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n if (this.action == 'edit') { // edit\r\n this._editInit();\r\n } else if (this.action == 'copy') {\r\n this._copyInit();\r\n } else {\r\n this._writeInit();\r\n }\r\n\r\n $('#blog-title-input').focus();\r\n\r\n this.initPaste();\r\n this.initTextcomplete();\r\n\r\n this.initUploadDropzone($('.CodeMirror-wrap', '#txt-blog-write-wrapper'), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n\r\n this.initUploadDropzone($('.editor-toolbar .fa.fa-upload', '#txt-blog-write-wrapper'), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n this.blogTitleInputKeyupInit();\r\n\r\n }\r\n\r\n close() {\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(nsCtx.users, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(nsCtx.users, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-blog-write-status-bar',\r\n maxCount: 5\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n isTipsShow() {\r\n return $('.tms-blog-write-status-bar').find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n tipsActionHandler(value) {\r\n\r\n if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: 'Blog'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: '.em-blog-write .dropzone-previews',\r\n previewTemplate: $('.em-blog-write .preview-template')[0].innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', 'Blog');\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n\r\n }\r\n\r\n destroy() {\r\n this._reset();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $('#blog-save-btn').click((event) => {\r\n this.save(event);\r\n });\r\n }\r\n\r\n save(event, isKey) {\r\n\r\n let title = $('#blog-title-input').val();\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(title)) {\r\n $('#blog-title-input').val('');\r\n toastr.error('标题不能为空!');\r\n return;\r\n }\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n toastr.error('内容不能为空!');\r\n return;\r\n }\r\n\r\n if (!this.blog) {\r\n if (event.ctrlKey) {\r\n $.post(`/admin/blog/create`, {\r\n url: utils.getBasePath(),\r\n usernames: utils.parseUsernames(content, [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])]).join(','),\r\n title: title,\r\n content: content,\r\n spaceId: '',\r\n privated: false,\r\n contentHtml: utils.md2html(content)\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文保存成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'created',\r\n blog: this.blog\r\n });\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n } else {\r\n toastr.error(data.data, '博文保存失败!');\r\n }\r\n });\r\n } else {\r\n ea.publish(nsCons.EVENT_BLOG_SAVE, {\r\n title: title,\r\n content: content,\r\n });\r\n }\r\n } else {\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n $('#blog-save-btn i').show();\r\n\r\n var html = utils.md2html(content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n $.post('/admin/blog/update', {\r\n url: utils.getBasePath(),\r\n id: this.blog.id,\r\n version: this.blog.version,\r\n usernames: utils.parseUsernames(content, users).join(','),\r\n title: title,\r\n content: content,\r\n diff: utils.diffS(this.blog.content, content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文更新成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n if (!isKey) {\r\n (event && event.ctrlKey) && this.close();\r\n } else {\r\n (event && event.ctrlKey && event.shiftKey) && this.close();\r\n }\r\n } else {\r\n toastr.error(data.data, '博文更新失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n $('#blog-save-btn i').hide();\r\n });\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatAttach {\r\n\r\n type = 'Image'; //Image | Attachment\r\n search = '';\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.tabRef).find('.item').tab({\r\n onVisible: (tabPath) => {\r\n // this.type = tabPath;\r\n // this.fetch();\r\n }\r\n });\r\n }\r\n\r\n moreHandler() {\r\n this._listByPage(true);\r\n }\r\n\r\n _listByPage(nextPage = false) {\r\n let url = nsCtx.isAt ? '/admin/file/listByUser' : '/admin/file/listByChannel';\r\n this.ajax = $.get(url, {\r\n name: nsCtx.chatTo,\r\n type: this.type,\r\n page: this.page ? (nextPage ? this.page.number + 1 : this.page.number) : 0,\r\n size: 10,\r\n search: this.search\r\n }, (data) => {\r\n this.page = data.data;\r\n this.moreCnt = this.page.last ? 0 : this.page.totalElements - (this.page.number + 1) * this.page.size;\r\n if (!nextPage) {\r\n this.attachs = data.data.content;\r\n } else {\r\n this.attachs = _.concat(this.attachs, data.data.content);\r\n }\r\n\r\n });\r\n }\r\n\r\n fetch() {\r\n this.page = null;\r\n this.moreCnt = 0;\r\n this.attachs = null;\r\n if ($(window).width() > 991) {\r\n $(this.searchRef).focus();\r\n }\r\n this._listByPage();\r\n }\r\n\r\n tabClickHandler(tabPath) {\r\n this.type = tabPath;\r\n this.fetch();\r\n }\r\n\r\n searchHandler() {\r\n this.fetch();\r\n }\r\n\r\n keyupHandler(event) {\r\n if (event.keyCode == 13) {\r\n this.fetch();\r\n } else if (event.keyCode == 27) {\r\n this.search = '';\r\n this.fetch();\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelCreate {\r\n\r\n @bindable loginUser;\r\n @bindable trigger;\r\n @bindable name;\r\n activeTab = 'channel-create';\r\n\r\n nameRegex = /^[a-z][a-z0-9_\\-]{0,49}$/;\r\n\r\n nameChanged(news, old) {\r\n this.oldName = old;\r\n if (news && !this.nameRegex.test(news)) {\r\n this.name = this._getOldName();\r\n }\r\n }\r\n\r\n _getOldName() {\r\n if (!this.nameRegex.test(this.oldName)) {\r\n this.oldName = '';\r\n }\r\n\r\n return this.oldName;\r\n }\r\n\r\n triggerChanged(newValue, oldValue) {\r\n $(this.trigger).click(() => {\r\n this.emModal.show({\r\n hideOnApprove: false,\r\n autoDimmer: true\r\n });\r\n });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.name = '';\r\n this.title = '';\r\n this.desc = '';\r\n $(this.chk).checkbox('set checked');\r\n this.channelJoinVm.refresh();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n $(this.tabRef).find('.item').tab({\r\n onVisible: (tabPath) => {\r\n this.activeTab = tabPath;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n $.post('/admin/channel/create', {\r\n name: this.name,\r\n title: this.title,\r\n desc: this.desc,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data) => {\r\n if (data.success) {\r\n modal.hide();\r\n toastr.success('创建频道成功!');\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_CREATED, {\r\n channel: data.data\r\n });\r\n } else {\r\n modal.hideDimmer();\r\n toastr.error(data.data, '创建频道失败!');\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelEdit {\r\n\r\n @bindable channel;\r\n\r\n channelChanged() {\r\n\r\n if (this.channel) {\r\n let chkSet = this.channel.privated ? 'set checked' : 'set unchecked';\r\n $(this.chk).checkbox(chkSet);\r\n }\r\n\r\n }\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: false,\r\n autoDimmer: true\r\n });\r\n }\r\n\r\n showHandler() {}\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n $.post('/admin/channel/update', {\r\n id: this.channel.id,\r\n title: this.channel.title,\r\n desc: this.channel.description,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data) => {\r\n modal.hide();\r\n if (data.success) {\r\n toastr.success('更新频道成功!');\r\n } else {\r\n toastr.error(data.data, '编辑频道失败!');\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatChannelJoin {\n\n @bindable loginUser;\n\n _getChannels() {\n $.get('/admin/channel/list', (data) => {\n if (data.success) {\n this.channels = data.data;\n _.each(this.channels, (item) => {\n item.joined = _.some(item.members, (m) => {\n return m.username == this.loginUser.username;\n });\n });\n } else {\n toastr.error(data.data, '获取频道列表失败!');\n }\n });\n }\n\n refresh() {\n this._getChannels();\n }\n\n joinHandler(item) {\n this.confirmMd.show({\n content: `确定要加入频道${item.title}吗?`,\n onapprove: () => {\n $.post('/admin/channel/join', {\n id: item.id\n }, (data) => {\n if (data.success) {\n toastr.success('加入频道成功!');\n item.joined = true;\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_JOINED, { channel: data.data });\n } else {\n toastr.error(data.data, '加入频道失败!');\n }\n });\n }\n });\n }\n\n leaveHandler(item) {\n this.confirmMd.show({\n content: `确定要离开频道${item.title}吗?`,\n onapprove: () => {\n $.post('/admin/channel/leave', {\n id: item.id\n }, (data) => {\n if (data.success) {\n toastr.success('离开频道成功!');\n item.joined = false;\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_LEAVED, { channel: data.data });\n } else {\n toastr.error(data.data, '离开频道失败!');\n }\n });\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelLinkMgr {\r\n\r\n @bindable channel;\r\n\r\n @bindable loginUser;\r\n\r\n links = [];\r\n\r\n channelChanged(news, old) {\r\n if (this.channel) {\r\n $.get('/admin/link/listBy', {\r\n channelId: this.channel.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.links = data.data;\r\n } else {\r\n this.links = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n addHandler() {\r\n $.post('/admin/link/create', {\r\n title: this.title,\r\n href: this.href,\r\n channelId: this.channel.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.title = '';\r\n this.href = '';\r\n this.links.push(data.data);\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler(item) {\r\n $.post('/admin/link/delete', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.links = _.reject(this.links, { id: item.id });\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n toastr.success('删除成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n item.oldTitle = item.title;\r\n item.oldHref = item.href;\r\n item.isEditing = true;\r\n }\r\n\r\n updateHandler(item) {\r\n $.post('/admin/link/update', {\r\n id: item.id,\r\n title: item.title,\r\n href: item.href,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.isEditing = false;\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n toastr.success('更新成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {}\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {}\r\n\r\n show() {\r\n this.emModal.show({ autoDimmer: false });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelMembersMgr {\r\n\r\n @bindable channel;\r\n @bindable users;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.membersOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n this.emModal.showDimmer();\r\n $.post('/admin/channel/addMember', {\r\n id: this.channel.id,\r\n members: addedValue,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加成员成功!');\r\n this.channel.members = data.data.members;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, {\r\n type: 'add',\r\n members: data.data.members\r\n });\r\n } else {\r\n toastr.error(data.data, '添加成员失败!');\r\n }\r\n }).always(() => {\r\n this.emModal.hideDimmer();\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n if (this.channel.owner.username == removedValue) {\r\n return false;\r\n }\r\n\r\n this.emModal.showDimmer();\r\n $.post('/admin/channel/removeMember', {\r\n id: this.channel.id,\r\n members: removedValue,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除成员成功!');\r\n this.channel.members = data.data.members;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, {\r\n type: 'remove',\r\n members: data.data.members\r\n });\r\n } else {\r\n toastr.error(data.data, '移除成员失败!');\r\n }\r\n }).always(() => {\r\n this.emModal.hideDimmer();\r\n });\r\n }\r\n };\r\n }\r\n\r\n channelChanged() {\r\n if (this.channel) {\r\n let usernames = _.sortBy(_.map(this.channel.members, 'username'));\r\n // usernames = [this.channel.owner.username, ..._.without(usernames, this.channel.owner.username)];\r\n _.defer(() => {\r\n $(this.membersRef).dropdown().dropdown('clear').dropdown('set selected', usernames).dropdown(this.membersOpts);\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n }\r\n\r\n initMembersUI(last) {\r\n\r\n if (last) {\r\n _.defer(() => {\r\n this.channelChanged();\r\n });\r\n }\r\n }\r\n\r\n showHandler() {\r\n $(this.membersRef).dropdown().dropdown('clear');\r\n this.channelChanged();\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: true,\r\n autoDimmer: false\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelMembersShow {\r\n\r\n @bindable channel;\r\n\r\n showHandler() {\r\n\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: true,\r\n autoDimmer: false\r\n });\r\n }\r\n}\r\n","import { bindable, containerless, bindingMode } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatContentItem {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) chats;\r\n @bindable loginUser;\r\n @bindable isAt;\r\n @bindable channel;\r\n @bindable markId;\r\n @bindable chatTo;\r\n members = [];\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, (payload) => {\r\n this.members = [nsCtx.memberAll, ...payload.members];\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $('.tms-chat-direct').on('click', '.markdown-body .at-user', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `{~${$(event.currentTarget).attr('data-value')}} `\r\n });\r\n });\r\n\r\n // 消息popup\r\n $('.tms-chat-direct').on('mouseenter', '.markdown-body a[href*=\"#/chat/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MSG_POPUP_SHOW, {\r\n id: utils.urlQuery('id', $a.attr('href')),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n // wiki dir\r\n $('.tms-chat-direct').on('mouseenter', '.tms-content-body .em-chat-content-item', (event) => {\r\n event.preventDefault();\r\n var $c = $(event.currentTarget);\r\n\r\n ea.publish(nsCons.EVENT_CHAT_MSG_WIKI_DIR, {\r\n dir: utils.dir($c.find('> .content > .markdown-body'))\r\n });\r\n });\r\n\r\n $('.tms-chat-direct').on('click', '.panel-wiki-dir .wiki-dir-item', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_CHAT_CONTENT_SCROLL_TO, { target: $('#' + $(event.currentTarget).attr('data-id')) });\r\n });\r\n\r\n // 用户信息popup\r\n $('.tms-chat-direct').on('mouseenter', 'span[data-value].at-user:not(.pp-not),a[data-value].author:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, {\r\n channel: this.channel,\r\n username: $a.attr('data-value'),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n channelChanged() {\r\n\r\n if (this.channel) {\r\n this.members = [nsCtx.memberAll, ...this.channel.members];\r\n } else {\r\n this.members = [];\r\n }\r\n }\r\n\r\n deleteHandler(item) {\r\n\r\n this.emConfirmModal.show({\r\n onapprove: () => {\r\n\r\n let url;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/delete`;\r\n } else {\r\n url = `/admin/chat/channel/delete`;\r\n }\r\n\r\n $.post(url, {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.chats = _.reject(this.chats, {\r\n id: item.id\r\n });\r\n toastr.success('删除消息成功!');\r\n } else {\r\n toastr.error(data.data, '删除消息失败!');\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'e', (evt) => {\r\n evt.preventDefault();\r\n let chat = _.findLast(this.chats, c => c.creator.username == this.loginUser.username);\r\n if (chat) {\r\n this.editHandler(chat, $(`.em-chat-content-item[data-id=\"${chat.id}\"]`).find('> .content > textarea'));\r\n }\r\n });\r\n }\r\n\r\n editHandler(item, editTxtRef) {\r\n\r\n $.get(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/get`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $(editTxtRef).focus().select();\r\n autosize.update(editTxtRef);\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n\r\n editOkHandler(evt, item, txtRef) {\r\n this.editSave(item, txtRef);\r\n item.isEditing = false;\r\n }\r\n\r\n editCancelHandler(evt, item, txtRef) {\r\n item.content = item.contentOld;\r\n $(txtRef).val(item.content);\r\n item.isEditing = false;\r\n }\r\n\r\n editSave(item, txtRef) {\r\n\r\n this.sending = true;\r\n\r\n item.content = $(txtRef).val();\r\n\r\n var html = utils.md2html(item.content);\r\n var htmlOld = utils.md2html(item.contentOld);\r\n\r\n let url;\r\n let data;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/update`;\r\n data = {\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n id: item.id,\r\n content: item.content,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n };\r\n } else {\r\n url = `/admin/chat/channel/update`;\r\n data = {\r\n url: utils.getUrl(),\r\n id: item.id,\r\n version: item.version,\r\n usernames: utils.parseUsernames(item.content, this.members).join(','),\r\n content: item.content,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n };\r\n }\r\n\r\n $.post(url, data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新消息成功!');\r\n item.isEditing = false;\r\n item.version = data.data.version;\r\n } else {\r\n toastr.error(data.data, '更新消息失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n eidtKeydownHandler(evt, item, txtRef) {\r\n\r\n if (this.sending) {\r\n return false;\r\n }\r\n\r\n if (evt.ctrlKey && evt.keyCode === 13) {\r\n\r\n this.editSave(item, txtRef);\r\n\r\n return false;\r\n } else if (evt.ctrlKey && evt.keyCode === 85) {\r\n $(txtRef).next('.tms-edit-actions').find('.upload').click();\r\n return false;\r\n } else if (evt.keyCode === 27) {\r\n this.editCancelHandler(evt, item, txtRef);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n notifyRendered(last, item) {\r\n if (last) {\r\n _.defer(() => {\r\n ea.publish(nsCons.EVENT_CHAT_LAST_ITEM_RENDERED, {\r\n item: item\r\n });\r\n });\r\n }\r\n }\r\n\r\n stowHandler(item) {\r\n $.post('/admin/chat/channel/stow', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('收藏消息成功!');\r\n } else {\r\n toastr.error(data.data, '收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n openEditHandler(item) {\r\n $.post('/admin/chat/channel/openEdit', {\r\n id: item.id,\r\n open: !item.openEdit\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.openEdit = !item.openEdit;\r\n toastr.success(`${item.openEdit ? '开启' : '关闭'}协作编辑成功!`);\r\n } else {\r\n toastr.success(`${!item.openEdit ? '开启' : '关闭'}协作编辑失败!`);\r\n }\r\n });\r\n }\r\n\r\n replyHandler(item) {\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `[[回复#${item.id}](${utils.getUrl()}?id=${item.id}){~${item.creator.username}}]\\n\\n`\r\n });\r\n\r\n // 标记@自己的该消息为已读\r\n $.post('/admin/chat/channel/markAsReadedByChat', {\r\n chatId: item.id\r\n });\r\n }\r\n\r\n creatorNameHandler(item) {\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `{~${item.creator.username}} `\r\n });\r\n }\r\n\r\n refreshHandler(item) {\r\n $.get('/admin/chat/channel/get', {\r\n id: item.id\r\n }, (data) => {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n toastr.success('刷新同步成功!');\r\n } else {\r\n toastr.info('消息内容暂无变更!');\r\n }\r\n });\r\n }\r\n\r\n likeHandler(item, isLike) {\r\n\r\n if ((isLike && item.isZanVoted) || (!isLike && item.isCaiVoted)) {\r\n return;\r\n }\r\n\r\n $.post('/admin/chat/channel/vote', {\r\n id: item.id,\r\n url: utils.getUrl(),\r\n contentHtml: utils.md2html(item.content),\r\n type: isLike ? 'Zan' : 'Cai'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(item, data.data);\r\n if (isLike) {\r\n item.isZanVoted = true;\r\n } else {\r\n item.isCaiVoted = true;\r\n }\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless, inject } from 'aurelia-framework';\r\nimport 'textcomplete';\r\nimport tips from 'common/common-tips';\r\nimport emojis from 'common/common-emoji';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\n\r\n@containerless\r\nexport class EmChatInput {\r\n\r\n @bindable chatTo;\r\n @bindable isAt;\r\n @bindable channel;\r\n members = [];\r\n isMobile = utils.isMobile();\r\n\r\n channelChanged() {\r\n\r\n if (this.channel) {\r\n this.members = [nsCtx.memberAll, ...this.channel.members];\r\n } else {\r\n this.members = [];\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_SHOW_HOTKEYS_MODAL, (payload) => {\r\n this.emHotkeysModal.show();\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, (payload) => {\r\n this.members = [nsCtx.memberAll, ...payload.members];\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_MSG_INSERT, (payload) => {\r\n this.insertContent(payload.content);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'r', () => { // reply message\r\n event.preventDefault();\r\n this.simplemde.codemirror.focus();\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.initSimpleMDE(this.chatInputRef);\r\n this.initDropzone();\r\n this.initPaste();\r\n this.initHotkeys();\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: nsCtx.isAt ? 'User' : 'Channel',\r\n toId: nsCtx.chatTo\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initDropzone() {\r\n this.initUploadDropzone($('.CodeMirror-wrap', this.inputRef), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n this.initUploadDropzone($(this.btnItemUploadRef).children().andSelf(), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n $(this.chatBtnRef).popup({\r\n inline: true,\r\n hoverable: true,\r\n position: 'bottom left',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n });\r\n\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: this.chatStatusBarRef,\r\n previewTemplate: this.previewTemplateRef.innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', nsCtx.isAt ? 'User' : 'Channel');\r\n formData.append('toId', nsCtx.chatTo);\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n initSimpleMDE(textareaDom) {\r\n this.simplemde = new SimpleMDE({\r\n element: textareaDom,\r\n spellChecker: false,\r\n status: false,\r\n autofocus: true,\r\n toolbar: false,\r\n // forceSync: true,\r\n autoDownloadFontAwesome: false,\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n return this.simplemde.markdown(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.$chatMsgInputRef = $(this.inputRef).find('.textareaWrapper .CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $(this.inputRef).find('.textareaWrapper .CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n this.initTextcomplete();\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // chat msg help\r\n match: /(|\\b)(\\/.*)$/,\r\n search: (term, callback) => {\r\n var keys = _.keys(tips);\r\n callback($.map(keys, (key) => {\r\n return key.indexOf(term) === 0 ? key : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n return tips[value].label;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n this.setCaretPosition(tips[value].line, tips[value].ch);\r\n return `$1${tips[value].value}`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n }, { // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(this.members, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(this.members, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-chat-status-bar',\r\n maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n } else if (e.ctrlKey && e.keyCode === 13) {\r\n this.sendChatMsg();\r\n } else if (e.keyCode === 27) {\r\n this.simplemde.value('');\r\n } else if (e.ctrlKey && e.keyCode == 85) {\r\n $(this.btnItemUploadRef).find('.content').click();\r\n } else if (e.ctrlKey && e.keyCode == 191) {\r\n this.emHotkeysModal.show();\r\n }\r\n });\r\n }\r\n\r\n setCaretPosition(line, ch) {\r\n (line || ch) && (_.delay(() => {\r\n let cr = this.simplemde.codemirror.getCursor();\r\n this.simplemde.codemirror.setCursor({\r\n line: cr.line - (line ? line : 0),\r\n ch: cr.line ? (ch ? ch : 0) : (cr.ch - (ch ? ch : 0))\r\n });\r\n }, 100));\r\n }\r\n\r\n sendChatMsg() {\r\n\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n return;\r\n }\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n\r\n var html = utils.md2html(content);\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/create`;\r\n data = {\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n chatTo: this.chatTo,\r\n content: content,\r\n contentHtml: html\r\n };\r\n } else {\r\n url = `/admin/chat/channel/create`;\r\n data = {\r\n url: utils.getUrl(),\r\n channelId: this.channel.id,\r\n usernames: utils.parseUsernames(content, this.members).join(','),\r\n content: content,\r\n contentHtml: html\r\n };\r\n }\r\n $.post(url, data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.simplemde.value('');\r\n ea.publish(nsCons.EVENT_CHAT_MSG_SENDED, {\r\n data: data\r\n });\r\n } else {\r\n toastr.error(data.data, '发送消息失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n sendChatMsgHandler() {\r\n this.sendChatMsg();\r\n }\r\n\r\n isTipsShow() {\r\n return $(this.chatStatusBarRef).find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n }\r\n\r\n tipsActionHandler(value) {\r\n if (value == '/upload') {\r\n $(this.btnItemUploadRef).find('.content').click();\r\n } else if (value == '/shortcuts') {\r\n this.emHotkeysModal.show();\r\n } else if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatMemberPopup {\r\n\r\n members = [];\r\n member = {};\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, (payload) => {\r\n this.channel = payload.channel;\r\n this.username = payload.username;\r\n this.target = payload.target;\r\n if (this.username == 'all') {\r\n if (!this.channel) {\r\n return;\r\n }\r\n this.members = this.channel.members;\r\n } else {\r\n this.member = utils.getUser(this.username);\r\n let user = utils.getUser(this.member.creator);\r\n this.member.creatorName = (user && (!!user.name)) ? user.name : this.member.creator;\r\n }\r\n _.defer(() => {\r\n\r\n $(this.target).popup({\r\n popup: this.popup,\r\n hoverable: true,\r\n inline: false,\r\n silent: true,\r\n movePopup: false,\r\n position: 'bottom left',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n // boundary: '.tms-content',\r\n // context: '.tms-content',\r\n // maxSearchDepth: 50,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n }).popup('show');\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatMsgPopup {\r\n\r\n chatMsg;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_POPUP_SHOW, (payload) => {\r\n this.id = payload.id;\r\n this.target = payload.target;\r\n\r\n $(this.target).popup({\r\n popup: this.popup,\r\n hoverable: true,\r\n inline: false,\r\n movePopup: false,\r\n // position: 'top left',\r\n // maxSearchDepth: 50,\r\n silent: true,\r\n position: 'bottom left',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onShow: () => {\r\n $.get('/admin/chat/channel/get', {\r\n id: this.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.chatMsg = data.data;\r\n } else {\r\n toastr.error(data.data, \"加载失败!\");\r\n }\r\n });\r\n }\r\n }).popup('show');\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatScheduleEdit {\r\n\r\n @bindable loginUser;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.actorsOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n $.post('/admin/schedule/addActors', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n actors: addedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加参与者成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n if (this.loginUser.username == removedValue) {\r\n return false;\r\n }\r\n $.post('/admin/schedule/removeActors', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n actors: removedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除参与者成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n attached() {\r\n $(this.startRef).calendar({\r\n today: true,\r\n endCalendar: $(this.endRef)\r\n });\r\n $(this.endRef).calendar({\r\n today: true,\r\n startCalendar: $(this.startRef)\r\n });\r\n\r\n }\r\n\r\n initMembersUI(last) {\r\n if (last) {\r\n _.defer(() => {\r\n let actors = [this.loginUser.username];\r\n if (this.event) {\r\n actors = _.map(this.event.actors, 'username');\r\n }\r\n\r\n $(this.actorsRef).dropdown().dropdown('clear').dropdown('set selected', actors).dropdown(this.actorsOpts);\r\n });\r\n }\r\n }\r\n\r\n titleKeyupHandler(event) {\r\n if (event.ctrlKey && event.keyCode === 13) {\r\n this.updateHandler();\r\n }\r\n }\r\n\r\n clearStartDateHandler() {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n clearEndDateHandler() {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n show(calEvent) {\r\n this.event = _.clone(calEvent);\r\n\r\n this.showHandler();\r\n\r\n $(this.scheduleEditRef).popup({\r\n on: 'click',\r\n // closable: true,\r\n inline: true,\r\n silent: true,\r\n // movePopup: false,\r\n position: 'bottom center',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n }).popup('show');\r\n }\r\n\r\n showHandler() {\r\n\r\n this.users = window.tmsUsers;\r\n $(this.actorsRef).dropdown().dropdown('clear');\r\n _.defer(() => {\r\n if (this.event.start) {\r\n $(this.startRef).calendar('set date', this.event.start.toDate());\r\n } else {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n if (this.event.end) {\r\n $(this.endRef).calendar('set date', this.event.end.toDate());\r\n } else {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n let actors = _.map(this.event.actors, 'username');\r\n\r\n $(this.actorsRef).dropdown('set selected', actors).dropdown(this.actorsOpts);\r\n\r\n if (this.event.creator.username == this.loginUser.username) {\r\n $(this.titleRef).focus();\r\n }\r\n\r\n autosize.update(this.titleRef);\r\n });\r\n\r\n }\r\n\r\n updateHandler() {\r\n if (!this.event.title) {\r\n toastr.error('日程内容不能为空!');\r\n return;\r\n }\r\n\r\n let data = {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n title: this.event.title\r\n };\r\n let start = $(this.startRef).calendar('get date');\r\n let end = $(this.endRef).calendar('get date');\r\n\r\n if (start) {\r\n data.startDate = start;\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end;\r\n }\r\n\r\n $.post('/admin/schedule/update2', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新日程成功!');\r\n $(this.scheduleEditRef).popup('hide');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler() {\r\n this.emConfirmModal.show({\r\n onapprove: () => {\r\n\r\n $.post('/admin/schedule/delete', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('日程删除成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatScheduleRemind {\n\n @bindable events;\n\n interval = 5000;\n\n headOffset = 10 * 60 * 1000;\n\n reminded = [];\n\n /**\n * 构造函数\n */\n constructor() {\n this._pollCheck();\n }\n\n /**\n * 当数据绑定引擎从视图解除绑定时被调用\n */\n unbind() {\n this.timer && clearInterval(this.timer);\n }\n\n _pollCheck() {\n this.timer = setInterval(() => {\n\n if (!this.events) {\n return;\n }\n\n let now = new Date().getTime();\n _.each(this.events, (event) => {\n if (event.start && !_.includes(this.reminded, event.id)) {\n let start = event.start;\n if (start > now && start < (now + this.headOffset)) {\n this.event = event;\n this.reminded.push(event.id);\n this._desktopPuh();\n this.show();\n }\n }\n });\n\n }, this.interval);\n }\n\n _desktopPuh() {\n push.create('TMS日程提醒通知', {\n body: `内容: ${this.event.title}`,\n icon: {\n x16: 'img/tms-x16.ico',\n x32: 'img/tms-x32.png'\n },\n timeout: 5000\n });\n }\n\n showHandler() {\n\n }\n\n approveHandler() {\n\n }\n\n show() {\n this.emModal.show({\n hideOnApprove: true,\n autoDimmer: false\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as moment\r\n} from 'moment';\r\nimport 'fullcalendar';\r\nimport 'fullcalendar/dist/locale/zh-cn';\r\n\r\n@containerless\r\nexport class EmChatSchedule {\r\n\r\n @bindable loginUser;\r\n\r\n offset = 100;\r\n\r\n show() {\r\n this.users = window.tmsUsers;\r\n\r\n _.defer(() => {\r\n $(this.scheduleRef).fullCalendar('today');\r\n });\r\n _.delay(() => {\r\n $(this.scheduleRef).fullCalendar('option', 'height', 'parent');\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n }, 500);\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.actorsOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {},\r\n onLabelRemove: (removedValue) => {\r\n if (this.loginUser.username == removedValue) {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_SCHEDULE_REFRESH, (payload) => {\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n });\r\n\r\n this._getEvents();\r\n }\r\n\r\n _getEvents(start, end, callback) {\r\n let data = {};\r\n if (start) {\r\n data.start = start.unix();\r\n }\r\n if (end) {\r\n data.start = end.unix();\r\n }\r\n $.get('/admin/schedule/listMy', data, (data) => {\r\n if (data.success) {\r\n this.events = _.map(data.data, (item) => {\r\n let event = {\r\n id: item.id,\r\n title: item.title,\r\n actors: item.actors,\r\n creator: item.creator\r\n };\r\n\r\n if (item.startDate) {\r\n event.start = item.startDate;\r\n } else {\r\n event.start = new Date().getTime();\r\n }\r\n\r\n if (item.endDate) {\r\n event.end = item.endDate;\r\n }\r\n\r\n return event;\r\n });\r\n callback && callback(this.events);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n attached() {\r\n\r\n $(this.scheduleRef).fullCalendar({\r\n header: {\r\n left: 'prev,next today',\r\n // center: '',\r\n center: 'title',\r\n right: 'month,agendaWeek,agendaDay,listWeek'\r\n },\r\n // height: $(window).height() - this.offset,\r\n height: 'parent',\r\n defaultDate: new Date(),\r\n defaultView: 'listWeek',\r\n editable: true,\r\n eventLimit: true, // allow \"more\" link when too many events\r\n navLinks: true,\r\n // timezone: 'Asia/Shanghai',\r\n // timezone: 'UTC',\r\n timezone: 'local',\r\n dayClick: (date, jsEvent, view) => {\r\n\r\n $(this.startRef).calendar('set date', date.toDate());\r\n this.isPopupShowForDayClick = true;\r\n $(this.addRef).popup('show');\r\n },\r\n eventClick: (calEvent, jsEvent, view) => {\r\n this.scheduleEditVm.show(calEvent);\r\n },\r\n eventMouseover: (event, jsEvent, view) => {},\r\n eventMouseout: (event, jsEvent, view) => {},\r\n events: (start, end, timezone, callback) => {\r\n\r\n this._getEvents(start, end, callback);\r\n },\r\n eventDrop: (event, delta, revertFunc) => {\r\n\r\n if (event.creator.username != this.loginUser.username) {\r\n toastr.error('您没有权限修改!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n return;\r\n }\r\n\r\n this._updateDate(event.id, event.start, event.end);\r\n },\r\n eventResize: (event, delta, revertFunc) => {\r\n\r\n if (event.creator.username != this.loginUser.username) {\r\n toastr.error('您没有权限修改!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n return;\r\n }\r\n\r\n this._updateDate(event.id, event.start, event.end);\r\n }\r\n });\r\n\r\n $(this.addRef)\r\n .popup({\r\n on: 'click',\r\n // closable: false,\r\n inline: true,\r\n // hoverable: true,\r\n silent: true,\r\n // movePopup: false,\r\n jitter: 300,\r\n position: 'bottom center',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.titleRef).focus();\r\n autosize.update(this.titleRef);\r\n if (!this.title && !this.isPopupShowForDayClick) {\r\n $(this.startRef).calendar('set date', new Date());\r\n }\r\n this.isPopupShowForDayClick = false;\r\n }\r\n });\r\n\r\n $(this.startRef).calendar({\r\n today: true,\r\n endCalendar: $(this.endRef)\r\n });\r\n $(this.endRef).calendar({\r\n today: true,\r\n startCalendar: $(this.startRef)\r\n });\r\n\r\n this._reset();\r\n }\r\n\r\n titleKeyupHandler(event) {\r\n if (event.ctrlKey && event.keyCode === 13) {\r\n this.addHandler();\r\n }\r\n }\r\n\r\n _updateDate(id, start, end) {\r\n let data = {\r\n id: id,\r\n basePath: utils.getBasePath()\r\n };\r\n\r\n if (start) {\r\n data.startDate = start.toDate();\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end.toDate();\r\n }\r\n\r\n $.post('/admin/schedule/updateStartEndDate', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新日程成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n initMembersUI(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.actorsRef).dropdown().dropdown('clear').dropdown(this.actorsOpts).dropdown('set selected', [this.loginUser.username]);\r\n });\r\n }\r\n }\r\n\r\n clearStartDateHandler() {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n clearEndDateHandler() {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n addHandler() {\r\n\r\n if (!this.title) {\r\n toastr.error('日程内容不能为空!');\r\n return;\r\n }\r\n\r\n let data = {\r\n title: this.title,\r\n basePath: utils.getBasePath(),\r\n actors: $(this.actorsRef).dropdown('get value')\r\n };\r\n\r\n let start = $(this.startRef).calendar('get date');\r\n let end = $(this.endRef).calendar('get date');\r\n\r\n if (start) {\r\n data.startDate = start;\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end;\r\n }\r\n\r\n $.post('/admin/schedule/create', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n toastr.success('添加日程成功!');\r\n this._reset();\r\n $(this.addRef).popup('hide');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n _reset() {\r\n this.title = '';\r\n $(this.startRef).calendar('set date', new Date());\r\n $(this.endRef).calendar('clear');\r\n $(this.actorsRef).dropdown('clear');\r\n if (this.loginUser && this.loginUser.username) {\r\n $(this.actorsRef).dropdown('set selected', [this.loginUser.username]).dropdown('set value', this.loginUser.username);\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatShare {\r\n\r\n shares = [];\r\n desc = '';\r\n\r\n @bindable chat;\r\n @bindable channel;\r\n @bindable loginUser;\r\n @bindable isAt;\r\n\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n showNoResults: false,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n result.item._type = result.item.username ? 'user' : 'channel';\r\n this.shares.push(result.item);\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n $(this.shareRef).popup({\r\n on: 'click',\r\n inline: true,\r\n silent: true,\r\n position: 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.inputSearchRef).focus();\r\n }\r\n });\r\n }\r\n\r\n shareSearchKeyupHandler(event) {\r\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\r\n let val = $(this.inputSearchRef).val();\r\n if (utils.isMail(val)) {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\r\n this.shares.push({\r\n _id: _.uniqueId('share-item-'),\r\n _type: 'mail',\r\n mail: val\r\n });\r\n $(this.inputSearchRef).val('');\r\n }\r\n }\r\n }\r\n }\r\n\r\n show() {\r\n $(this.shareRef).popup('show');\r\n }\r\n\r\n removeShareHandler(item) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n }\r\n\r\n cancelHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n this.desc = '';\r\n $(this.inputSearchRef).val('');\r\n $(this.shareRef).popup('hide');\r\n }\r\n\r\n shareHandler() {\r\n\r\n if (this.shares.length === 0) {\r\n toastr.error('请先指定沟通消息分享用户或者频道或者邮箱!');\r\n return;\r\n }\r\n\r\n this.ajaxS = $.post(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/share`, {\r\n basePath: utils.getBasePath(),\r\n href: `${this.basePath}#/chat/${this.isAt ? ('@' + this.loginUser.username) : this.channel.name}?id=${this.chat.id}`,\r\n id: this.chat.id,\r\n desc: this.desc,\r\n html: utils.md2html(this.chat.content),\r\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\r\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\r\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this._reset();\r\n toastr.success('沟通消息分享成功!');\r\n } else {\r\n toastr.error(data.data, '沟通消息分享失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSidebarLeft {\r\n\r\n @bindable users;\r\n @bindable loginUser;\r\n @bindable channels;\r\n @bindable chatTo;\r\n @bindable isAt;\r\n filter = '';\r\n isSuper = nsCtx.isSuper;\r\n\r\n usersChanged() {\r\n this._filter();\r\n }\r\n\r\n channelsChanged() {\r\n this._filter();\r\n }\r\n\r\n loginUserChanged() {\r\n if (this.loginUser) {\r\n this.isSuper = utils.isSuperUser(this.loginUser);\r\n }\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHANNEL_ACTIONS, (payload) => {\r\n this[payload.action](payload.item);\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_SYSTEM_LINKS_REFRESH, (payload) => {\r\n this._refreshSysLinks();\r\n });\r\n }\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n }\r\n\r\n bind(bindingCtx, overrideCtx) {\r\n this._refreshSysLinks();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.logoRef).on('mouseenter', (event) => {\r\n $(this.logoRef).animateCss('flip');\r\n });\r\n }\r\n\r\n _filter() {\r\n\r\n _.each(this.users, (item) => {\r\n item.hidden = item.username.indexOf(this.filter) == -1;\r\n });\r\n\r\n _.each(this.channels, (item) => {\r\n item.hidden = item.name.indexOf(this.filter) == -1;\r\n });\r\n }\r\n\r\n chatToUserFilerKeyupHanlder(evt) {\r\n this._filter();\r\n\r\n if (evt.keyCode === 13) {\r\n let user = _.find(this.users, {\r\n hidden: false\r\n });\r\n\r\n if (user) {\r\n window.location = wurl('path') + `#/chat/@${user.username}`;\r\n return;\r\n }\r\n\r\n let channel = _.find(this.channels, {\r\n hidden: false\r\n });\r\n\r\n if (channel) {\r\n window.location = wurl('path') + `#/chat/${channel.name}`;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n clearFilterHandler() {\r\n this.filter = '';\r\n _.each(this.users, (item) => {\r\n item.hidden = item.username.indexOf(this.filter) == -1;\r\n });\r\n _.each(this.channels, (item) => {\r\n item.hidden = item.name.indexOf(this.filter) == -1;\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelEditMd.show();\r\n }\r\n\r\n delHandler(item) {\r\n this.confirmMd.show({\r\n onapprove: () => {\r\n $.post('/admin/channel/delete', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('删除频道成功!');\r\n _.remove(this.channels, { id: item.id });\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_DELETED, { channel: item });\r\n } else {\r\n toastr.error(data.data, '删除频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n membersMgrHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelMembersMgrMd.show();\r\n }\r\n\r\n membersShowHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelMembersShowMd.show();\r\n }\r\n\r\n leaveHandler(item) {\r\n this.confirmMd.show({\r\n content: `确定要离开频道${item.title}吗?`,\r\n onapprove: () => {\r\n $.post('/admin/channel/leave', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('离开频道成功!');\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_LEAVED, { channel: data.data });\r\n } else {\r\n toastr.error(data.data, '离开频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n switchHandler() {\r\n ea.publish(nsCons.EVENT_SWITCH_CHAT_TO, {});\r\n }\r\n\r\n addChannelLinkHandler(event) {\r\n this.sysLinkMgrVm.show();\r\n }\r\n\r\n isSubscribed(item) {\r\n return _.some(item.subscriber, { username: this.loginUser.username });\r\n }\r\n\r\n subscribeHandler(item) {\r\n\r\n let isSub = this.isSubscribed(item);\r\n\r\n $.post(`/admin/channel/${isSub ? 'unsubscribe' : 'subscribe'}`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n item.subscriber = data.data.subscriber;\r\n toastr.success(`${isSub ? '取消订阅' : '订阅频道'}成功!`);\r\n item.isSubscribed = !isSub;\r\n } else {\r\n toastr.error(data.data, `${isSub ? '取消订阅' : '订阅频道'}失败!`);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSidebarRight {\r\n\r\n last = true;\r\n @bindable loginUser;\r\n @bindable isAt;\r\n @bindable channel;\r\n forAction = ''; // search | stow | at\r\n forShow = '';\r\n\r\n basePath = utils.getBasePath();\r\n\r\n headerMapping = {\r\n [nsCons.ACTION_TYPE_SEARCH]: '无符合检索结果',\r\n [nsCons.ACTION_TYPE_AT]: '暂无@消息',\r\n [nsCons.ACTION_TYPE_STOW]: '暂无收藏消息',\r\n };\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_SEARCH_RESULT, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n let result = payload.result;\r\n this.search = payload.search;\r\n this.page = result;\r\n this.chats = result.content;\r\n this.last = result.last;\r\n this.moreCnt = result.totalElements - (result.number + 1) * result.size;\r\n });\r\n\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_AT, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n let result = payload.result;\r\n this.page = result;\r\n this.chats = _.map(result.content, (item) => {\r\n let chatChannel = item.chatChannel;\r\n chatChannel.chatAt = item;\r\n return chatChannel;\r\n });\r\n this.last = result.last;\r\n this.moreCnt = result.totalElements - (result.number + 1) * result.size;\r\n });\r\n\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_STOW, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n this.chats = payload.result;\r\n this.last = true;\r\n });\r\n\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_DIR, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n $(this.dirRef).empty().append(payload.result);\r\n });\r\n\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_ATTACH, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n });\r\n\r\n this.subscribe5 = ea.subscribe(nsCons.EVENT_CHAT_SHOW_SCHEDULE, (payload) => {\r\n this._mappingActionShow(payload.action);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n this.subscribe5.dispose();\r\n }\r\n\r\n _mappingActionShow(forAction) {\r\n this.forAction = forAction;\r\n if (_.includes([nsCons.ACTION_TYPE_SEARCH, nsCons.ACTION_TYPE_STOW, nsCons.ACTION_TYPE_AT], this.forAction)) {\r\n this.forShow = 'chat-msg';\r\n } else if (_.includes([nsCons.ACTION_TYPE_DIR], this.forAction)) {\r\n this.forShow = 'wiki-dir';\r\n } else if (_.includes([nsCons.ACTION_TYPE_ATTACH], this.forAction)) {\r\n this.forShow = 'chat-attach';\r\n this.chatAttachVm.fetch();\r\n } else if (_.includes([nsCons.ACTION_TYPE_SCHEDULE], this.forAction)) {\r\n this.forShow = 'chat-schedule';\r\n this.chatScheduleVm.show();\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.initHotkeys();\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'o', (event) => {\r\n event.preventDefault();\r\n let item = _.find(this.chats, { isHover: true });\r\n item && (item.isOpen = !item.isOpen);\r\n });\r\n\r\n }\r\n\r\n searchItemMouseleaveHandler(item) {\r\n item.isOpen = false;\r\n item.isHover = false;\r\n }\r\n\r\n searchItemMouseenterHandler(item) {\r\n item.isHover = true;\r\n }\r\n\r\n gotoChatHandler(item) {\r\n ea.publish(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, { chatItem: item });\r\n }\r\n\r\n openSearchItemHandler(item) {\r\n item.isOpen = !item.isOpen;\r\n }\r\n\r\n searchMoreHandler() {\r\n\r\n if (this.forAction == nsCons.ACTION_TYPE_SEARCH) {\r\n this.searchMoreP = $.get('/admin/chat/direct/search', {\r\n search: this.search,\r\n size: this.page.size,\r\n page: this.page.number + 1\r\n }, (data) => {\r\n if (data.success) {\r\n this.chats = _.concat(this.chats, data.data.content);\r\n\r\n this.page = data.data;\r\n this.last = data.data.last;\r\n this.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size;\r\n }\r\n });\r\n } else {\r\n this.searchMoreP = $.get('/admin/chat/channel/getAts', {\r\n size: this.page.size,\r\n page: this.page.number + 1\r\n }, (data) => {\r\n if (data.success) {\r\n this.chats = _.concat(this.chats, _.map(data.data.content, (item) => {\r\n let chatChannel = item.chatChannel;\r\n chatChannel.chatAt = item;\r\n return chatChannel;\r\n }));\r\n\r\n this.page = data.data;\r\n this.last = data.data.last;\r\n this.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size;\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeStowHandler(item) {\r\n $.post('/admin/chat/channel/removeStow', {\r\n id: item.chatStow.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.chats = _.reject(this.chats, {\r\n id: item.id\r\n });\r\n toastr.success('移除收藏消息成功!');\r\n } else {\r\n toastr.error(data.data, '移除收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n removeAtHandler(item) {\r\n $.post('/admin/chat/channel/markAsReaded', {\r\n chatAtId: item.chatAt.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.chats = _.reject(this.chats, {\r\n id: item.id\r\n });\r\n } else {\r\n toastr.error(data.data, '移除@消息失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSystemLinkMgr {\r\n\r\n links = [];\r\n\r\n addHandler() {\r\n $.post('/admin/link/create', {\r\n title: this.title,\r\n href: this.href,\r\n type: 'App'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.title = '';\r\n this.href = '';\r\n this.links.push(data.data);\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler(item) {\r\n $.post('/admin/link/delete', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.links = _.reject(this.links, { id: item.id });\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n toastr.success('删除成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n item.oldTitle = item.title;\r\n item.oldHref = item.href;\r\n item.isEditing = true;\r\n }\r\n\r\n updateHandler(item) {\r\n $.post('/admin/link/update', {\r\n id: item.id,\r\n title: item.title,\r\n href: item.href,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.isEditing = false;\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n toastr.success('更新成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n showHandler() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.links = data.data;\r\n } else {\r\n this.links = [];\r\n }\r\n });\r\n }\r\n\r\n show() {\r\n this.emModal.show({ autoDimmer: false });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatTopMenu {\r\n\r\n @bindable loginUser;\r\n @bindable chatUser;\r\n @bindable users;\r\n @bindable channels;\r\n @bindable channel;\r\n @bindable loginUser;\r\n @bindable chatId;\r\n @bindable chatTo;\r\n @bindable isAt;\r\n isRightSidebarShow = false;\r\n activeType = ''; // 触发激活的操作类型: search | stow | at | attach\r\n\r\n ACTION_TYPE_SEARCH = nsCons.ACTION_TYPE_SEARCH;\r\n ACTION_TYPE_STOW = nsCons.ACTION_TYPE_STOW;\r\n ACTION_TYPE_AT = nsCons.ACTION_TYPE_AT;\r\n ACTION_TYPE_DIR = nsCons.ACTION_TYPE_DIR;\r\n ACTION_TYPE_ATTACH = nsCons.ACTION_TYPE_ATTACH;\r\n ACTION_TYPE_SCHEDULE = nsCons.ACTION_TYPE_SCHEDULE;\r\n\r\n countAt = null;\r\n newAtCnt = 0;\r\n\r\n channelLinks = [];\r\n\r\n loginUserChanged() {\r\n if (this.loginUser) {\r\n this.isSuper = utils.isSuperUser(this.loginUser);\r\n }\r\n }\r\n\r\n chatToChanged() {\r\n $(this.chatToDropdownRef).dropdown('set selected', this.chatId).dropdown('hide');\r\n }\r\n\r\n channelChanged() {\r\n this._refreshChannelLinks();\r\n }\r\n\r\n _refreshChannelLinks() {\r\n if (this.channel) {\r\n $.get('/admin/link/listBy', {\r\n channelId: this.channel.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.channelLinks = data.data;\r\n } else {\r\n this.channelLinks = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_WIKI_DIR, (payload) => {\r\n this.dir = payload.dir;\r\n\r\n if ((this.activeType == this.ACTION_TYPE_DIR) && this.isRightSidebarShow) {\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_DIR, {\r\n action: this.activeType,\r\n result: this.dir\r\n });\r\n }\r\n });\r\n\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_POLL_UPDATE, (payload) => {\r\n if (this.countAt !== null && this.newAtCnt <= 0) {\r\n this.newAtCnt = payload.countAt - this.countAt;\r\n }\r\n this.countAt = payload.countAt;\r\n this.countMyRecentSchedule = payload.countMyRecentSchedule;\r\n });\r\n\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_SWITCH_CHAT_TO, (payload) => {\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_CHANNEL_LINKS_REFRESH, (payload) => {\r\n this._refreshChannelLinks();\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.initHotkeys();\r\n this.initSearch();\r\n }\r\n\r\n initSearch() {\r\n var source = [];\r\n if (localStorage) {\r\n var v = localStorage.getItem('tms/chat-direct:search');\r\n source = v ? $.parseJSON(v) : [];\r\n }\r\n this.searchSource = source;\r\n $(this.searchRef).search({\r\n source: source,\r\n onSelect: (result, response) => {\r\n this.searchHandler();\r\n },\r\n onResults: () => {\r\n $(this.searchRef).search('hide results');\r\n }\r\n });\r\n\r\n }\r\n\r\n searchHandler() {\r\n\r\n $(this.searchRef).search('hide results');\r\n\r\n let search = $(this.searchInputRef).val();\r\n\r\n if (!search || search.length < 2) {\r\n toastr.error('检索条件至少需要两个字符!');\r\n return;\r\n }\r\n\r\n this.search = search;\r\n\r\n // 保存检索值\r\n var isExists = false;\r\n $.each(this.searchSource, function(index, val) {\r\n if (val.title == search) {\r\n isExists = true;\r\n return false;\r\n }\r\n });\r\n if (!isExists) {\r\n this.searchSource.splice(0, 0, {\r\n title: search\r\n });\r\n $(this.searchRef).search({\r\n source: _.clone(this.searchSource)\r\n });\r\n }\r\n localStorage && localStorage.setItem('tms/chat-direct:search', JSON.stringify(this.searchSource));\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/search`;\r\n data = {\r\n search: this.search,\r\n size: 20,\r\n page: 0\r\n };\r\n } else {\r\n url = `/admin/chat/channel/search`;\r\n data = {\r\n search: this.search,\r\n channelId: this.channel.id,\r\n size: 20,\r\n page: 0\r\n };\r\n }\r\n\r\n this.searchingP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.toggleRightSidebar(true);\r\n\r\n ea.publish(nsCons.EVENT_CHAT_SEARCH_RESULT, {\r\n action: this.activeType,\r\n result: data.data,\r\n search: this.search\r\n });\r\n }\r\n });\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 's', (event) => { // sidebar\r\n event.preventDefault();\r\n this.toggleRightSidebar();\r\n }).bind('keydown', 'ctrl+k', (event) => {\r\n event.preventDefault();\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n\r\n $(this.filterChatToUser).bind('keydown', 'ctrl+k', (event) => {\r\n event.preventDefault();\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n }\r\n\r\n initChatToDropdownHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.chatToDropdownRef).dropdown().dropdown('set selected', this.chatId).dropdown({\r\n onChange: (value, text, $choice) => {\r\n window.location = wurl('path') + `#/chat/${$choice.attr('data-id')}`;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n searchFocusHandler() {\r\n $(this.searchInputRef).css('width', 'auto');\r\n $(this.searchRemoveRef).show();\r\n this.isActiveSearch = true;\r\n }\r\n\r\n searchBlurHandler() {\r\n if (!$(this.searchInputRef).val()) {\r\n $(this.searchInputRef).css('width', '95px');\r\n $(this.searchRemoveRef).hide();\r\n this.isActiveSearch = false;\r\n }\r\n }\r\n\r\n sibebarRightHandler(event) {\r\n this.toggleRightSidebar();\r\n }\r\n\r\n toggleRightSidebar(asShow) {\r\n if (_.isUndefined(asShow)) {\r\n this.isRightSidebarShow = !this.isRightSidebarShow;\r\n } else {\r\n this.isRightSidebarShow = asShow;\r\n }\r\n\r\n ea.publish(nsCons.EVENT_CHAT_SIDEBAR_TOGGLE, {\r\n isShow: this.isRightSidebarShow\r\n });\r\n }\r\n\r\n searchKeyupHandler(evt) {\r\n if (evt.keyCode === 13) {\r\n this.activeType = nsCons.ACTION_TYPE_SEARCH;\r\n this.searchHandler();\r\n } else if (evt.keyCode === 27) {\r\n this.clearSearchHandler();\r\n }\r\n return true;\r\n }\r\n\r\n clearSearchHandler() {\r\n $(this.searchInputRef).val('').focus();\r\n }\r\n\r\n showStowHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_STOW) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_STOW;\r\n this.ajaxStow = $.get('/admin/chat/channel/getStows', (data) => {\r\n if (data.success) {\r\n let stowChats = _.map(data.data, (item) => {\r\n let chatChannel = item.chatChannel;\r\n chatChannel.chatStow = item;\r\n return chatChannel;\r\n });\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_STOW, {\r\n action: this.activeType,\r\n result: _.reverse(stowChats)\r\n });\r\n this.toggleRightSidebar(true);\r\n } else {\r\n toastr.error(data.data, '获取收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n showAtHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_AT) && (this.newAtCnt == 0) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_AT;\r\n this.newAtCnt = 0;\r\n this.ajaxAt = $.get('/admin/chat/channel/getAts', {\r\n page: 0,\r\n size: 20\r\n }, (data) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_AT, {\r\n action: this.activeType,\r\n result: data.data\r\n });\r\n this.toggleRightSidebar(true);\r\n } else {\r\n toastr.error(data.data, '获取@消息失败!');\r\n }\r\n });\r\n }\r\n\r\n logoutHandler() {\r\n $.post('/admin/logout').always(() => {\r\n utils.redirect2Login();\r\n });\r\n }\r\n\r\n showWikiDirHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_DIR) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_DIR;\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_DIR, {\r\n action: this.activeType,\r\n result: this.dir\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n showAttachHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_ATTACH) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_ATTACH;\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_ATTACH, {\r\n action: this.activeType\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n showScheduleHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_SCHEDULE) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_SCHEDULE;\r\n ea.publish(nsCons.EVENT_CHAT_SHOW_SCHEDULE, {\r\n action: this.activeType\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n userEditHandler() {\r\n this.userEditMd.show();\r\n }\r\n\r\n membersShowHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'membersShowHandler',\r\n item: item\r\n });\r\n }\r\n\r\n leaveHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'leaveHandler',\r\n item: item\r\n });\r\n }\r\n\r\n membersMgrHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'membersMgrHandler',\r\n item: item\r\n });\r\n }\r\n\r\n editHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'editHandler',\r\n item: item\r\n });\r\n }\r\n\r\n delHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'delHandler',\r\n item: item\r\n });\r\n }\r\n\r\n viewOrMgrUsersHandler(event) {\r\n\r\n if (this.channel.owner.username == this.loginUser.username) {\r\n this.membersMgrHandler(this.channel, event);\r\n } else {\r\n this.membersShowHandler(this.channel, event);\r\n }\r\n }\r\n\r\n channelInfoHandler(event) {\r\n\r\n if (this.channel.owner.username == this.loginUser.username) {\r\n this.editHandler(this.channel, event);\r\n } else {\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n userInfoHandler(event) {\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n stopImmediatePropagationHandler(event) {\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n mailToHandler(event) {\r\n event.stopImmediatePropagation();\r\n window.location = `mailto:${this.chatUser.mails}`;\r\n }\r\n\r\n channelLinksHandler(event) {\r\n event.stopImmediatePropagation();\r\n $(this.channelLinksDdRef).dropdown('toggle');\r\n }\r\n\r\n addChannelLinkHandler(event) {\r\n this.channelLinkMgrVm.show();\r\n }\r\n\r\n openChannelLinkHandler(event, item) {\r\n event.stopImmediatePropagation();\r\n utils.openNewWin(item.href);\r\n }\r\n}\r\n","import {\r\n bindable,\r\n bindingMode,\r\n containerless\r\n}\r\nfrom 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmCheckbox {\r\n\r\n @bindable label;\r\n @bindable title;\r\n @bindable classes = 'fitted';\r\n @bindable onchange;\r\n @bindable onchecked;\r\n @bindable onunchecked;\r\n @bindable emCheckboxAll;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) checked;\r\n\r\n @bindable signal;\r\n\r\n checkedChanged(news, old) {\r\n if (news) {\r\n $(this.checkbox).checkbox('set checked');\r\n } else {\r\n $(this.checkbox).checkbox('set unchecked');\r\n }\r\n\r\n this.signal && bs.signal(this.signal);\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.checkbox).checkbox({\r\n onChecked: () => {\r\n this.checked = true;\r\n _.defer(() => {\r\n this.emCheckboxAll && this.emCheckboxAll.refreshCheckedStatus();\r\n this.onchecked && this.onchecked(this);\r\n this.signal && bs.signal(this.signal);\r\n });\r\n\r\n },\r\n onUnchecked: () => {\r\n this.checked = false;\r\n _.defer(() => {\r\n this.emCheckboxAll && this.emCheckboxAll.refreshCheckedStatus();\r\n this.onunchecked && this.onunchecked(this);\r\n this.signal && bs.signal(this.signal);\r\n });\r\n\r\n },\r\n onChange: () => {\r\n _.defer(() => {\r\n this.onchange && this.onchange(this);\r\n });\r\n\r\n },\r\n });\r\n this.checkedChanged(this.checked);\r\n }\r\n}\r\n","import { bindable } from 'aurelia-framework';\n\nexport class EmConfirmModal {\n\n\tconfig = {};\n\n constructor() { // 通过构造函数注入\n }\n\n /**\n * 当视图从DOM中分离时被调用\n */\n detached() {\n $(this.md).remove();\n }\n\n attached() {\n\n $(this.md).modal({\n closable: false,\n allowMultiple: true,\n onApprove: () => {\n this.onapprove && this.onapprove();\n },\n onDeny: () => {\n this.ondeny && this.ondeny();\n }\n });\n }\n\n reset() {\n this.config = {\n title: '操作确认',\n content: '确定要执行该操作吗?',\n warning: false\n };\n }\n\n /**\n * 显示确认窗口\n * @param onapprove: 确认回调函数\n * @param ondeny: 取消回调函数\n */\n show(config) {\n\n this.reset();\n\n if (config) {\n this.config = _.extend(this.config, config);\n }\n\n if (config && config.onapprove) {\n this.onapprove = config.onapprove;\n }\n\n if (config && config.ondeny) {\n this.ondeny = config.ondeny;\n }\n\n $(this.md).modal('show');\n }\n\n /* 隐藏确认窗口 */\n hide() {\n $(this.md).modal('hide');\n }\n}\n","import { bindable, bindingMode } from 'aurelia-framework';\r\n\r\nexport class EmDropdown {\r\n\r\n @bindable name = _.uniqueId('em-dropdown-');\r\n @bindable text = '';\r\n @bindable labelProp = 'label';\r\n @bindable valueProp = 'value';\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) selectedItem;\r\n @bindable menuItems = [];\r\n @bindable classes = 'selection';\r\n\r\n selectedItemChanged(news, old) {\r\n \r\n if (news) {\r\n _.defer(() => {\r\n $(this.dropdown).dropdown('set selected', news);\r\n // console.log('selectedItemChanged: ' + news);\r\n });\r\n }\r\n\r\n }\r\n\r\n menuItemsChanged(news, old) {\r\n if (_.isEmpty(news)) {\r\n $(this.dropdown).dropdown('clear')\r\n this.selectedItem = null;\r\n }\r\n }\r\n\r\n initDropdownHandler(last) {\r\n\r\n if (last) {\r\n _.defer(() => {\r\n $(this.dropdown).dropdown({\r\n onChange: (value, text, $choice) => {\r\n // toastr.info(value + ' | ' + text);\r\n this.selectedItem = value;\r\n }\r\n }).dropdown('set selected', this.selectedItem);\r\n // console.log('initDropdownHandler: ' + this.selectedItem);\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable } from 'aurelia-framework';\r\n\r\nexport class EmHotkeysModal {\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.md).modal();\r\n }\r\n\r\n show() {\r\n $(this.md).modal('show');\r\n }\r\n}\r\n","import {\r\n bindable,\r\n containerless\r\n}\r\nfrom 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmModal {\r\n\r\n @bindable confirmLabel = '确认';\r\n @bindable cancelLabel = '取消';\r\n @bindable onapprove;\r\n @bindable ondeny;\r\n @bindable onshow;\r\n @bindable onvisible;\r\n @bindable disabled = false;\r\n @bindable classes = 'small';\r\n @bindable showConfirm = true;\r\n\r\n options = {\r\n hideOnApprove: true,\r\n autoDimmer: true\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n $(this.modal).remove();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.modal).modal({\r\n closable: false,\r\n autofocus: false,\r\n observeChanges: true,\r\n allowMultiple: true,\r\n // detachable: false,\r\n onShow: () => {\r\n this.onshow && this.onshow(this);\r\n },\r\n onVisible: () => {\r\n this.onvisible && this.onvisible(this);\r\n },\r\n onApprove: () => {\r\n this.options.autoDimmer && this.showDimmer();\r\n this.onapprove && this.onapprove(this);\r\n return this.options.hideOnApprove;\r\n },\r\n onDeny: () => {\r\n this.ondeny && this.ondeny(this);\r\n }\r\n });\r\n }\r\n\r\n showDimmer() {\r\n this.loading = true;\r\n $(this.modal).find('.dimmer').dimmer('show');\r\n }\r\n\r\n hideDimmer() {\r\n this.loading = false;\r\n $(this.modal).find('.dimmer').dimmer('hide');\r\n }\r\n\r\n show(options) {\r\n _.extend(this.options, options);\r\n $(this.modal).modal('show');\r\n }\r\n\r\n hide() {\r\n this.hideDimmer();\r\n $(this.modal).modal('hide');\r\n }\r\n\r\n refresh() {\r\n // 延迟方法\r\n _.defer(() => {\r\n $(this.modal).modal('refresh');\r\n });\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as ColorHash\r\n} from 'color-hash';\r\n\r\n@containerless\r\nexport class EmUserAvatar {\r\n\r\n @bindable user;\r\n\r\n userChanged() {\r\n if (this.user) {\r\n this._calcNameChar();\r\n // let hsl = colorHash.hsl(this.user.username);\r\n let cs = colorHash.rgb(this.user.username);\r\n this.bgColor = `rgba(${cs[0]}, ${cs[1]}, ${cs[2]}, 0.6)`;\r\n // this.bgColor = `hsl(${hsl[0]}, ${hsl[1] * 100}%, ${hsl[2] * 100}%)`;\r\n this.color = `rgba(${255 - cs[0]}, ${255 - cs[1]}, ${255 - cs[2]}, 1)`;\r\n }\r\n }\r\n\r\n _calcNameChar(lastChar = true) {\r\n if (this.user.name) {\r\n this.nameChar = lastChar ? _.last(this.user.name) : _.first(this.user.name);\r\n } else {\r\n this.nameChar = lastChar ? _.last(this.user.username) : _.first(this.user.username);\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.avatarRef).hover(() => {\r\n this._calcNameChar(false);\r\n }, () => {\r\n this._calcNameChar();\r\n });\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmUserEdit {\r\n\r\n @bindable user;\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: false,\r\n autoDimmer: true\r\n });\r\n }\r\n\r\n showHandler() {\r\n // $.get('/admin/user/get', {\r\n // username: this.user.username\r\n // }, (data) => {});\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.frm)\r\n .form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n name: 'empty',\r\n mail: ['empty', 'email'],\r\n // password: ['minLength[8]'],\r\n }\r\n });\r\n }\r\n\r\n _chkOk() {\r\n let pwd = this.user.password;\r\n if (pwd && pwd.length < 8) {\r\n toastr.error('密码长度不能少于8位字符!');\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n if (this._chkOk() && $(this.frm).form('is valid')) {\r\n $.post('/admin/user/update2', {\r\n username: this.user.username,\r\n password: this.user.password,\r\n name: this.user.name,\r\n mail: this.user.mails\r\n }, (data) => {\r\n modal.hide();\r\n this.user.password = '';\r\n if (data.success) {\r\n toastr.success('更新个人信息成功!');\r\n } else {\r\n toastr.error(data.data, '更新个人信息失败!');\r\n }\r\n });\r\n } else {\r\n modal.hideDimmer();\r\n }\r\n }\r\n}\r\n","html,\r\nbody {\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 6px;\r\n height: 6px;\r\n}\r\n\r\n::-webkit-scrollbar-thumb {\r\n border-radius: 6px;\r\n background-color: #c6c6c6;\r\n}\r\n\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #999;\r\n}\r\n\r\n@media only screen and (min-width: 768px) {\r\n .ui.modal {\r\n &.tms-md450 {\r\n width: 450px!important;\r\n margin-left: -225px!important;\r\n }\r\n &.tms-md510 {\r\n width: 510px!important;\r\n margin-left: -255px!important;\r\n }\r\n &.tms-md540 {\r\n width: 540px!important;\r\n margin-left: -275px!important;\r\n }\r\n }\r\n}\r\n\r\n\r\n/* for swipebox */\r\n\r\n#swipebox-overlay {\r\n background: rgba(13, 13, 13, 0.5)!important;\r\n}\r\n\r\n.keyboard {\r\n background: #fff;\r\n font-weight: 700;\r\n padding: 2px .35rem;\r\n font-size: .8rem;\r\n margin: 0 2px;\r\n border-radius: .25rem;\r\n color: #3d3c40;\r\n border-bottom: 2px solid #9e9ea6;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, .5);\r\n text-shadow: none;\r\n}\r\n\r\n#nprogress .spinner {\r\n display: none!important;\r\n}\r\n\r\n.tms-dropzone-preview-hidden {\r\n .dz-preview {\r\n display: none!important;\r\n }\r\n}\r\n","code.nx {\r\n background-color: #F8F8F8;\r\n border: 1px solid #EAEAEA;\r\n border-radius: 3px 3px 3px 3px;\r\n margin: 0 2px;\r\n padding: 0 5px;\r\n white-space: nowrap;\r\n}\r\n\r\n.markdown-body {\r\n .pre-code-wrapper {\r\n position: relative;\r\n > i.copy.icon {\r\n display: none;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n cursor: pointer;\r\n }\r\n &:hover {\r\n > i.copy.icon {\r\n display: block;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-disabled {\r\n cursor: default;\r\n opacity: .45!important;\r\n background-image: none!important;\r\n box-shadow: none!important;\r\n pointer-events: none!important;\r\n}\r\n\r\n.tms-hidden {\r\n display: none!important;\r\n}\r\n\r\n.animated {\r\n -webkit-animation-duration: 1s;\r\n animation-duration: 1s;\r\n -webkit-animation-fill-mode: both;\r\n animation-fill-mode: both;\r\n}\r\n\r\n@keyframes flip {\r\n from {\r\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\r\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\r\n -webkit-animation-timing-function: ease-out;\r\n animation-timing-function: ease-out;\r\n }\r\n 40% {\r\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\r\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\r\n -webkit-animation-timing-function: ease-out;\r\n animation-timing-function: ease-out;\r\n }\r\n 50% {\r\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\r\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n 80% {\r\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\r\n transform: perspective(400px) scale3d(.95, .95, .95);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n to {\r\n -webkit-transform: perspective(400px);\r\n transform: perspective(400px);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n}\r\n\r\n.animated.flip {\r\n -webkit-backface-visibility: visible;\r\n backface-visibility: visible;\r\n -webkit-animation-name: flip;\r\n animation-name: flip;\r\n}\r\n\r\n.cbutton {\r\n position: relative;\r\n}\r\n\r\n.cbutton::after {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n margin: -7px 0 0 -7px;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n content: '';\r\n opacity: 0;\r\n pointer-events: none;\r\n}\r\n\r\n\r\n/* Novak */\r\n\r\n.cbutton--effect-novak::after {\r\n background: rgba(111, 148, 182, 0.25);\r\n}\r\n\r\n.cbutton--effect-novak.cbutton--click::after {\r\n -webkit-animation: anim-effect-novak 0.5s forwards;\r\n animation: anim-effect-novak 0.5s forwards;\r\n}\r\n\r\n@-webkit-keyframes anim-effect-novak {\r\n 0% {\r\n opacity: 1;\r\n -webkit-transform: scale3d(0.1, 0.1, 1);\r\n transform: scale3d(0.1, 0.1, 1);\r\n }\r\n 100% {\r\n opacity: 0;\r\n -webkit-transform: scale3d(8, 8, 1);\r\n transform: scale3d(30, 30, 1);\r\n }\r\n}\r\n\r\n@keyframes anim-effect-novak {\r\n 0% {\r\n opacity: 1;\r\n -webkit-transform: scale3d(0.1, 0.1, 1);\r\n transform: scale3d(0.1, 0.1, 1);\r\n }\r\n 100% {\r\n opacity: 0;\r\n -webkit-transform: scale3d(8, 8, 1);\r\n transform: scale3d(30, 30, 1);\r\n }\r\n}\r\n\r\n.emoji {\r\n width: 1.5em;\r\n height: 1.5em;\r\n display: inline-block;\r\n margin-bottom: -.25em;\r\n background-size: contain;\r\n}\r\n",".ui.dimmer {\r\n background-color: rgba(0, 0, 0, 0.5)!important;\r\n &.page.modals {\r\n z-index: 10000;\r\n }\r\n}\r\n\r\n.ui.modal {\r\n > .actions {\r\n > .ui.left.floated.button {\r\n margin-left: 3.5px;\r\n }\r\n }\r\n}\r\n\r\n.ui.list .list .item {\r\n display: list-item!important;\r\n table-layout: fixed;\r\n height: auto!important;\r\n visibility: visible!important;\r\n}\r\n\r\n.ui.list .list .item:after {\r\n content: '';\r\n display: block;\r\n height: 0;\r\n clear: both;\r\n visibility: hidden;\r\n}\r\n\r\n#swipebox-bottom-bar,\r\n#swipebox-top-bar {\r\n background: rgba(0, 0, 0, 0.3)!important;\r\n}\r\n","",".tms-chat-direct {\r\n height: 100%;\r\n .ui.comments {\r\n min-height: e(\"calc(100% - 170px)\");\r\n > .comment {\r\n > .content {\r\n display: block!important;\r\n }\r\n }\r\n }\r\n .tms-edit-textarea {\r\n width: 100%;\r\n }\r\n .ui.selection.list>.item {\r\n cursor: default;\r\n }\r\n .ui.search .prompt {\r\n border-radius: .28571429rem;\r\n }\r\n .tms-content {\r\n position: relative;\r\n margin-left: 220px;\r\n top: 60px;\r\n height: e(\"calc(100% - 60px)\");\r\n // display: -webkit-box;\r\n // display: -ms-flexbox;\r\n // display: flex;\r\n // -webkit-box-align: stretch;\r\n // -ms-flex-align: stretch;\r\n // align-items: stretch;\r\n &.tms-sidebar-show {\r\n .tms-right-sidebar {\r\n width: 388px;\r\n border-left: 1px #e9e9e9 solid;\r\n -webkit-transition: width .15s ease-out 0s;\r\n transition: width .15s ease-out 0s;\r\n margin: 4px;\r\n margin-right: 0;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n .tms-content-body {\r\n .tms-comments-container {\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n }\r\n width: 100%;\r\n height: 100%;\r\n max-width: 100%;\r\n // -webkit-box-flex: 1;\r\n // -ms-flex: 1 1 0px;\r\n // flex: 1 1 0;\r\n // display: -webkit-box;\r\n // display: -ms-flexbox;\r\n // display: flex;\r\n // -webkit-box-align: stretch;\r\n // -ms-flex-align: stretch;\r\n // align-items: stretch;\r\n padding-bottom: 73px;\r\n .ui.comments {\r\n overflow: hidden;\r\n // -webkit-box-flex: 1;\r\n // -ms-flex: 1 1 0px;\r\n // flex: 1 1 0;\r\n max-width: none;\r\n margin-bottom: 12px;\r\n margin-top: 10px;\r\n > .ui.basic.button {\r\n display: block;\r\n margin-right: 0;\r\n }\r\n .tms-pre-more {\r\n margin-bottom: 10px;\r\n }\r\n .tms-next-more {\r\n margin-top: 10px;\r\n position: relative;\r\n .ui.icon.button {\r\n position: absolute;\r\n top: 2px;\r\n right: -1px;\r\n }\r\n }\r\n }\r\n .tms-go {\r\n position: fixed;\r\n left: 240px;\r\n .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: #CACBCD;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n left: 20px;\r\n }\r\n }\r\n .tms-go-head {\r\n top: 80px;\r\n }\r\n .tms-go-foot {\r\n bottom: 90px;\r\n }\r\n }\r\n }\r\n .tms-right-sidebar {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 0;\r\n // height: 100%;\r\n bottom: 0;\r\n overflow: hidden;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n .comments {\r\n .ui.button.tms-search-more {\r\n display: block;\r\n margin: 0;\r\n }\r\n .comment {\r\n .markdown-body {\r\n max-height: 65px;\r\n overflow-y: hidden;\r\n &.tms-open {\r\n max-height: none;\r\n overflow-y: auto;\r\n padding-bottom: 20px;\r\n }\r\n }\r\n .tms-btn-open-search-item {\r\n display: none;\r\n height: 25px;\r\n background-color: rgba(0, 0, 0, 0.1);\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n text-align: center;\r\n padding-top: 2px;\r\n }\r\n &:hover {\r\n .tms-btn-open-search-item {\r\n display: block;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n .tms-left-sidebar {\r\n display: none;\r\n }\r\n .tms-right-sidebar {\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n top: 59px;\r\n background-color: white;\r\n margin-left: 0!important;\r\n .panel-chat-msg {\r\n .ui.basic.segment.minimal.selection.list.segment.comments {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n }\r\n .tms-sidebar-show {\r\n .tms-right-sidebar {\r\n width: 100%!important;\r\n }\r\n }\r\n }\r\n .tms-edit-actions {\r\n .left.button {\r\n border-top-left-radius: 0;\r\n }\r\n .right.button {\r\n border-top-right-radius: 0;\r\n }\r\n }\r\n}\r\n\r\n.tms-chat-progress {\r\n position: absolute;\r\n display: inline-block;\r\n top: 60px;\r\n left: 0;\r\n width: 0;\r\n height: 2px;\r\n margin-left: 220px;\r\n background-color: #c6c6c6;\r\n box-shadow: 0px 0px 8px 0px #c6c6c6;\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n}\r\n",".markdown-body {\r\n font-size: 14px;\r\n line-height: 1.6;\r\n}\r\n\r\n.markdown-body > br,\r\n.markdown-body ul br .markdown-body ol br {\r\n display: none;\r\n}\r\n\r\n.markdown-body > *:first-child {\r\n margin-top: 0 !important;\r\n}\r\n\r\n.markdown-body > *:last-child {\r\n margin-bottom: 0 !important;\r\n}\r\n\r\n.markdown-body a {\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body a.absent {\r\n color: #CC0000;\r\n}\r\n\r\n.markdown-body a.anchor {\r\n bottom: 0;\r\n cursor: pointer;\r\n display: block;\r\n left: 0;\r\n margin-left: -30px;\r\n padding-left: 30px;\r\n position: absolute;\r\n top: 0;\r\n}\r\n\r\n.markdown-body h1,\r\n.markdown-body h2,\r\n.markdown-body h3,\r\n.markdown-body h4,\r\n.markdown-body h5,\r\n.markdown-body h6 {\r\n cursor: text;\r\n font-weight: bold;\r\n margin: 20px 0 10px;\r\n padding: 0;\r\n position: relative;\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body h1 .mini-icon-link,\r\n.markdown-body h2 .mini-icon-link,\r\n.markdown-body h3 .mini-icon-link,\r\n.markdown-body h4 .mini-icon-link,\r\n.markdown-body h5 .mini-icon-link,\r\n.markdown-body h6 .mini-icon-link {\r\n color: #000000;\r\n display: none;\r\n}\r\n\r\n.markdown-body h1:hover a.anchor,\r\n.markdown-body h2:hover a.anchor,\r\n.markdown-body h3:hover a.anchor,\r\n.markdown-body h4:hover a.anchor,\r\n.markdown-body h5:hover a.anchor,\r\n.markdown-body h6:hover a.anchor {\r\n line-height: 1;\r\n margin-left: -22px;\r\n padding-left: 0;\r\n text-decoration: none;\r\n top: 15%;\r\n}\r\n\r\n.markdown-body h1:hover a.anchor .mini-icon-link,\r\n.markdown-body h2:hover a.anchor .mini-icon-link,\r\n.markdown-body h3:hover a.anchor .mini-icon-link,\r\n.markdown-body h4:hover a.anchor .mini-icon-link,\r\n.markdown-body h5:hover a.anchor .mini-icon-link,\r\n.markdown-body h6:hover a.anchor .mini-icon-link {\r\n display: inline-block;\r\n}\r\n\r\n.markdown-body h1 tt,\r\n.markdown-body h1 code,\r\n.markdown-body h2 tt,\r\n.markdown-body h2 code,\r\n.markdown-body h3 tt,\r\n.markdown-body h3 code,\r\n.markdown-body h4 tt,\r\n.markdown-body h4 code,\r\n.markdown-body h5 tt,\r\n.markdown-body h5 code,\r\n.markdown-body h6 tt,\r\n.markdown-body h6 code {\r\n font-size: inherit;\r\n}\r\n\r\n.markdown-body h1 {\r\n color: #000000;\r\n font-size: 28px;\r\n}\r\n\r\n.markdown-body h2 {\r\n border-bottom: 1px solid #CCCCCC;\r\n color: #000000;\r\n font-size: 24px;\r\n}\r\n\r\n.markdown-body h3 {\r\n font-size: 18px;\r\n}\r\n\r\n.markdown-body h4 {\r\n font-size: 16px;\r\n}\r\n\r\n.markdown-body h5 {\r\n font-size: 14px;\r\n}\r\n\r\n.markdown-body h6 {\r\n color: #777777;\r\n font-size: 14px;\r\n}\r\n\r\n.markdown-body p,\r\n.markdown-body blockquote,\r\n.markdown-body ul,\r\n.markdown-body ol,\r\n.markdown-body dl,\r\n.markdown-body table,\r\n.markdown-body pre {\r\n margin: 15px 0;\r\n}\r\n\r\n.markdown-body hr {\r\n overflow: hidden;\r\n background: 0 0\r\n}\r\n\r\n.markdown-body hr:before {\r\n display: table;\r\n content: \"\"\r\n}\r\n\r\n.markdown-body hr:after {\r\n display: table;\r\n clear: both;\r\n content: \"\"\r\n}\r\n\r\n.markdown-body hr {\r\n height: 4px;\r\n padding: 0;\r\n margin: 16px 0;\r\n background-color: #e7e7e7;\r\n border: 0\r\n}\r\n\r\n.markdown-body hr {\r\n -moz-box-sizing: content-box;\r\n box-sizing: content-box\r\n}\r\n\r\n.markdown-body > h2:first-child,\r\n.markdown-body > h1:first-child,\r\n.markdown-body > h1:first-child + h2,\r\n.markdown-body > h3:first-child,\r\n.markdown-body > h4:first-child,\r\n.markdown-body > h5:first-child,\r\n.markdown-body > h6:first-child {\r\n margin-top: 0;\r\n padding-top: 0;\r\n}\r\n\r\n.markdown-body a:first-child h1,\r\n.markdown-body a:first-child h2,\r\n.markdown-body a:first-child h3,\r\n.markdown-body a:first-child h4,\r\n.markdown-body a:first-child h5,\r\n.markdown-body a:first-child h6 {\r\n margin-top: 0;\r\n padding-top: 0;\r\n}\r\n\r\n.markdown-body h1 + p,\r\n.markdown-body h2 + p,\r\n.markdown-body h3 + p,\r\n.markdown-body h4 + p,\r\n.markdown-body h5 + p,\r\n.markdown-body h6 + p {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body li p.first {\r\n display: inline-block;\r\n}\r\n\r\n.markdown-body ul,\r\n.markdown-body ol {\r\n padding-left: 30px;\r\n}\r\n\r\n.markdown-body ul.no-list,\r\n.markdown-body ol.no-list {\r\n list-style-type: none;\r\n padding: 0;\r\n}\r\n\r\n.markdown-body ul li > *:first-child,\r\n.markdown-body ol li > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body ul ul,\r\n.markdown-body ul ol,\r\n.markdown-body ol ol,\r\n.markdown-body ol ul {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body dl {\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt {\r\n font-size: 14px;\r\n font-style: italic;\r\n font-weight: bold;\r\n margin: 15px 0 5px;\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt:first-child {\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body dl dt > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body dl dd {\r\n margin: 0 0 15px;\r\n padding: 0 15px;\r\n}\r\n\r\n.markdown-body dl dd > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body dl dd > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body blockquote {\r\n border-left: 4px solid #DDDDDD;\r\n color: #777777;\r\n padding: 0 15px;\r\n}\r\n\r\n.markdown-body blockquote > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body blockquote > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body table th {\r\n font-weight: bold;\r\n}\r\n\r\n.markdown-body table th,\r\n.markdown-body table td {\r\n border: 1px solid #CCCCCC;\r\n padding: 6px 13px;\r\n}\r\n\r\n.markdown-body table tr {\r\n background-color: #FFFFFF;\r\n border-top: 1px solid #CCCCCC;\r\n}\r\n\r\n.markdown-body table tr:nth-child(2n) {\r\n background-color: #F8F8F8;\r\n}\r\n\r\n.markdown-body img {\r\n max-width: 100%;\r\n}\r\n\r\n.markdown-body span.frame {\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.frame > span {\r\n border: 1px solid #DDDDDD;\r\n display: block;\r\n float: left;\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n padding: 7px;\r\n width: auto;\r\n}\r\n\r\n.markdown-body span.frame span img {\r\n display: block;\r\n float: left;\r\n}\r\n\r\n.markdown-body span.frame span span {\r\n clear: both;\r\n color: #333333;\r\n display: block;\r\n padding: 5px 0 0;\r\n}\r\n\r\n.markdown-body span.align-center {\r\n clear: both;\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.align-center > span {\r\n display: block;\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: center;\r\n}\r\n\r\n.markdown-body span.align-center span img {\r\n margin: 0 auto;\r\n text-align: center;\r\n}\r\n\r\n.markdown-body span.align-right {\r\n clear: both;\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.align-right > span {\r\n display: block;\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body span.align-right span img {\r\n margin: 0;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body span.float-left {\r\n display: block;\r\n float: left;\r\n margin-right: 13px;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.float-left span {\r\n margin: 13px 0 0;\r\n}\r\n\r\n.markdown-body span.float-right {\r\n display: block;\r\n float: right;\r\n margin-left: 13px;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.float-right > span {\r\n display: block;\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body code,\r\n.markdown-body tt {\r\n background-color: #F8F8F8;\r\n border: 1px solid #EAEAEA;\r\n border-radius: 3px 3px 3px 3px;\r\n margin: 0 2px;\r\n padding: 0 5px;\r\n /* white-space: nowrap; */\r\n white-space: normal;\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body pre > code {\r\n background: none repeat scroll 0 0 transparent;\r\n border: medium none;\r\n margin: 0;\r\n padding: 0;\r\n white-space: pre;\r\n}\r\n\r\n.markdown-body .highlight pre,\r\n.markdown-body pre {\r\n background-color: #F8F8F8;\r\n border: 1px solid #CCCCCC;\r\n border-radius: 3px 3px 3px 3px;\r\n font-size: 13px;\r\n line-height: 19px;\r\n overflow: auto;\r\n padding: 6px 10px;\r\n}\r\n\r\n.markdown-body pre code,\r\n.markdown-body pre tt {\r\n background-color: transparent;\r\n border: medium none;\r\n}\r\n","/*************** SCROLLBAR BASE CSS ***************/\r\n\r\n.scroll-wrapper {\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.scroll-wrapper > .scroll-content {\r\n border: none !important;\r\n box-sizing: content-box !important;\r\n height: auto;\r\n left: 0;\r\n margin: 0;\r\n max-height: none;\r\n max-width: none !important;\r\n overflow: scroll !important;\r\n padding: 0;\r\n position: relative !important;\r\n top: 0;\r\n width: auto !important;\r\n}\r\n\r\n.scroll-wrapper > .scroll-content::-webkit-scrollbar {\r\n height: 0;\r\n width: 0;\r\n}\r\n\r\n.scroll-element {\r\n display: none;\r\n}\r\n\r\n.scroll-element,\r\n.scroll-element div {\r\n box-sizing: content-box;\r\n}\r\n\r\n.scroll-element.scroll-x.scroll-scrollx_visible,\r\n.scroll-element.scroll-y.scroll-scrolly_visible {\r\n display: block;\r\n}\r\n\r\n.scroll-element .scroll-bar,\r\n.scroll-element .scroll-arrow {\r\n cursor: default;\r\n}\r\n\r\n.scroll-textarea {\r\n border: 1px solid #cccccc;\r\n border-top-color: #999999;\r\n}\r\n\r\n.scroll-textarea > .scroll-content {\r\n overflow: hidden !important;\r\n}\r\n\r\n.scroll-textarea > .scroll-content > textarea {\r\n border: none !important;\r\n box-sizing: border-box;\r\n height: 100% !important;\r\n margin: 0;\r\n max-height: none !important;\r\n max-width: none !important;\r\n overflow: scroll !important;\r\n outline: none;\r\n padding: 2px;\r\n position: relative !important;\r\n top: 0;\r\n width: 100% !important;\r\n}\r\n\r\n.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {\r\n height: 0;\r\n width: 0;\r\n}\r\n\r\n\r\n/*************** SIMPLE OUTER SCROLLBAR ***************/\r\n\r\n.scrollbar-outer > .scroll-element,\r\n.scrollbar-outer > .scroll-element div {\r\n border: none;\r\n margin: 0;\r\n padding: 0;\r\n position: absolute;\r\n z-index: 10;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element {\r\n background-color: #ffffff;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element div {\r\n display: block;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x {\r\n bottom: 0;\r\n height: 12px;\r\n left: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y {\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n width: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer {\r\n height: 8px;\r\n top: 2px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer {\r\n left: 2px;\r\n width: 8px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_outer {\r\n overflow: hidden;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_track {\r\n background-color: #eeeeee;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_outer,\r\n.scrollbar-outer > .scroll-element .scroll-element_track,\r\n.scrollbar-outer > .scroll-element .scroll-bar {\r\n -webkit-border-radius: 8px;\r\n -moz-border-radius: 8px;\r\n border-radius: 8px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-bar {\r\n background-color: #d9d9d9;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-bar:hover {\r\n background-color: #c2c2c2;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar {\r\n background-color: #919191;\r\n}\r\n\r\n\r\n/* scrollbar height/width & offset from container borders */\r\n\r\n.scrollbar-outer > .scroll-content.scroll-scrolly_visible {\r\n left: -12px;\r\n margin-left: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-content.scroll-scrollx_visible {\r\n top: -12px;\r\n margin-top: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x .scroll-bar {\r\n min-width: 10px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y .scroll-bar {\r\n min-height: 10px;\r\n}\r\n\r\n\r\n/* update scrollbar offset if both scrolls are visible */\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {\r\n left: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {\r\n top: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\r\n left: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\r\n top: -14px;\r\n}\r\n\r\n\r\n/*************** SCROLLBAR MAC OS X ***************/\r\n\r\n.scrollbar-macosx > .scroll-element,\r\n.scrollbar-macosx > .scroll-element div {\r\n background: none;\r\n border: none;\r\n margin: 0;\r\n padding: 0;\r\n position: absolute;\r\n z-index: 10;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element div {\r\n display: block;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element .scroll-element_track {\r\n display: none;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element .scroll-bar {\r\n background-color: #6C6E71;\r\n display: block;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\r\n filter: alpha(opacity=0);\r\n opacity: 0;\r\n -webkit-border-radius: 7px;\r\n -moz-border-radius: 7px;\r\n border-radius: 7px;\r\n -webkit-transition: opacity 0.2s linear;\r\n -moz-transition: opacity 0.2s linear;\r\n -o-transition: opacity 0.2s linear;\r\n -ms-transition: opacity 0.2s linear;\r\n transition: opacity 0.2s linear;\r\n}\r\n\r\n.scrollbar-macosx:hover > .scroll-element .scroll-bar,\r\n.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar {\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\r\n filter: alpha(opacity=70);\r\n opacity: 0.7;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x {\r\n bottom: 0px;\r\n height: 0px;\r\n left: 0;\r\n min-width: 100%;\r\n overflow: visible;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y {\r\n height: 100%;\r\n min-height: 100%;\r\n right: 0px;\r\n top: 0;\r\n width: 0px;\r\n}\r\n\r\n\r\n/* scrollbar height/width & offset from container borders */\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar {\r\n height: 7px;\r\n min-width: 10px;\r\n top: -9px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar {\r\n left: -9px;\r\n min-height: 10px;\r\n width: 7px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer {\r\n left: 2px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size {\r\n left: -4px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer {\r\n top: 2px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size {\r\n top: -4px;\r\n}\r\n\r\n\r\n/* update scrollbar offset if both scrolls are visible */\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\r\n left: -11px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\r\n top: -11px;\r\n}\r\n",".tms-user-login {\r\n width: 100%;\r\n min-height: 100%;\r\n background-color: #5a3636;\r\n overflow: hidden;\r\n .container {\r\n width: 300px;\r\n top: 50px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n position: relative;\r\n }\r\n h2 {\r\n color: rgba(197, 164, 164, 0.8)!important;\r\n }\r\n .ui.form {\r\n background-color: #353131;\r\n }\r\n .ui.error.message {\r\n background-color: #5a3636;\r\n }\r\n .ui.error.message .header {\r\n color: #e0b4b4;\r\n }\r\n .ui.checkbox label {\r\n color: #ad8b8b;\r\n }\r\n .ui.checkbox input:focus~label {\r\n color: #ad8b8b;\r\n }\r\n .ui.checkbox label:hover {\r\n color: #ad8b8b;\r\n }\r\n .ui.button {\r\n background-color: #5a3636;\r\n color: #ad8b75;\r\n }\r\n}\r\n",".tms-user-pwd-reset {\r\n height: 100%;\r\n .tms-flex {\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n}\r\n",".tms-user-register {\r\n height: 100%;\r\n .tms-flex {\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n}",".em-blog-comment-popup {}",".em-blog-comment-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n textarea {\r\n /* width: 195px!important; */\r\n }\r\n .ui.search>.results .result {\r\n cursor: pointer!important;\r\n display: block!important;\r\n color: rgba(0, 0, 0, .87)!important;\r\n border-bottom: 1px solid rgba(34, 36, 38, .1)!important;\r\n margin: 0!important;\r\n }\r\n .ui.list {\r\n > .item {\r\n color: rgba(0, 0, 0, .87);\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin: 6px 0 0 8px!important;\r\n }\r\n }\r\n}\r\n",".em-blog-comment {\r\n margin-top: 32px;\r\n margin-bottom: 32px;\r\n .ui.comments {\r\n > .ui.dividing.header {\r\n margin-bottom: 0;\r\n }\r\n max-width: 100%;\r\n .comment {\r\n margin-top: 0;\r\n &:hover {\r\n background: rgba(0, 0, 0, .03);\r\n color: rgba(0, 0, 0, .8);\r\n .content {\r\n .tools {\r\n display: block;\r\n }\r\n }\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n > .ui.divider {\r\n margin-bottom: 0;\r\n }\r\n .content {\r\n .actions {}\r\n .tms-blog-comment-edit-textarea {\r\n width: 100%;\r\n }\r\n .textcomplete-container {\r\n position: relative;\r\n .append-to {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n }\r\n }\r\n > .tools {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n display: none;\r\n > .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: rgba(224, 225, 226, 1);\r\n }\r\n }\r\n }\r\n }\r\n &.active {\r\n background-color: #f5f5f5;\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n z-index: -1;\r\n top: -2px;\r\n left: -4px;\r\n bottom: 1px;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n &:nth-child(2) {\r\n &:before {\r\n top: -1px;\r\n }\r\n }\r\n }\r\n }\r\n .CodeMirror {\r\n min-height: 60px;\r\n }\r\n .CodeMirror-scroll {\r\n min-height: 60px;\r\n }\r\n .dropzone {\r\n position: relative;\r\n .tms-blog-comment-status-bar-wrapper {\r\n position: relative;\r\n width: 100%;\r\n height: 0;\r\n .tms-blog-comment-status-bar {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n }\r\n .dropzone-previews {\r\n position: absolute;\r\n left: 0;\r\n bottom: -7px;\r\n width: 100%;\r\n .dz-preview {\r\n width: 100%;\r\n margin: 0;\r\n .dz-progress {\r\n height: 2px;\r\n background-color: #aaa;\r\n border: none;\r\n }\r\n .dz-remove {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-content {\r\n transition: width 0.15s ease-out 0s;\r\n .right-sidebar-show & {\r\n width: e(\"calc(100% - 600px)\")!important;\r\n @media only screen and (max-width: 767px) {\r\n width: 100%!important;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n left: 0;\r\n width: 100%!important;\r\n }\r\n // z-index: 103;\r\n position: fixed;\r\n top: 55px;\r\n left: 300px;\r\n width: e(\"calc(100% - 300px)\")!important;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n padding: 16px;\r\n overflow: auto;\r\n > .header {\r\n .ui.header {\r\n .sub.header {\r\n color: #707070;\r\n font-size: 12px;\r\n margin-top: 8px;\r\n a.author {\r\n cursor: pointer;\r\n }\r\n .readCnt {\r\n cursor: pointer;\r\n margin-left: 16px;\r\n a {\r\n cursor: pointer;\r\n }\r\n }\r\n .commentCnt {\r\n cursor: pointer;\r\n margin-left: 16px;\r\n a {\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n }\r\n margin-bottom: 24px;\r\n }\r\n .topbar {\r\n position: relative;\r\n height: 30px;\r\n margin-bottom: 8px;\r\n > .ui.breadcrumb {\r\n line-height: 30px;\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .actions {\r\n float: right;\r\n > .ui.basic.button {\r\n padding: 8px;\r\n box-shadow: none;\r\n &:hover {\r\n box-shadow: 0 0 0 1px rgba(34, 36, 38, .35) inset, 0 0 0 0 rgba(34, 36, 38, .15) inset;\r\n }\r\n > i.icon {\r\n margin-right: 2px;\r\n &.hide {\r\n position: relative;\r\n top: -1px;\r\n }\r\n &.unhide {\r\n position: relative;\r\n top: -1px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n > .ui.message {\r\n .content {\r\n > span {\r\n display: inline-block;\r\n margin-top: 10px;\r\n }\r\n .ui.button {\r\n position: relative;\r\n top: -5px;\r\n left: 10px;\r\n }\r\n }\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n > span {\r\n font-size: 12px;\r\n }\r\n .rate {\r\n margin-right: 16px;\r\n cursor: pointer;\r\n color: #4183c4;\r\n }\r\n > .tags {\r\n float: right;\r\n .ui.selection.dropdown {\r\n border: none;\r\n &:hover {\r\n box-shadow: 0 0px 1px 0px #2185d0;\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n display: block;\r\n }\r\n }\r\n > .ui.feed {\r\n margin-bottom: 25px!important;\r\n > .event {\r\n position: relative;\r\n &.opened {\r\n > .content .extra.text {\r\n &:hover {\r\n max-height: none;\r\n overflow-y: auto;\r\n padding-bottom: 25px;\r\n }\r\n }\r\n }\r\n >.label+.content {\r\n max-width: e(\"calc(100% - 50px)\");\r\n }\r\n > .content .extra.text {\r\n position: relative;\r\n max-width: none;\r\n min-height: 25px;\r\n max-height: 60px;\r\n overflow-y: hidden;\r\n &:hover {\r\n > .btn-open {\r\n display: block;\r\n }\r\n }\r\n > .btn-open {\r\n display: none;\r\n height: 25px;\r\n background-color: rgba(0, 0, 0, 0.1);\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n text-align: center;\r\n padding-top: 2px;\r\n }\r\n pre {\r\n white-space: pre-wrap;\r\n white-space: -moz-pre-wrap;\r\n white-space: -pre-wrap;\r\n white-space: -o-pre-wrap;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n }\r\n &.active {\r\n background: rgba(0, 0, 0, .03);\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:hover {\r\n background: rgba(0, 0, 0, .03);\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: -4px;\r\n bottom: 0;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-blog-progress {\r\n position: absolute;\r\n display: inline-block;\r\n top: 55px;\r\n left: 0;\r\n width: 0;\r\n height: 2px;\r\n margin-left: 300px;\r\n background-color: #2185d0;\r\n box-shadow: 0px 0px 8px 0px #205081;\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n}\r\n\r\n.em-blog-content-wrapper {\r\n position: fixed;\r\n top: 55px;\r\n width: e(\"calc(100vw)\")!important;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n}\r\n\r\n@media only screen and (max-width: 767px) {\r\n .tms-blog {\r\n &.left-sidebar-show {\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: block;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n &.right-sidebar-show {\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: block;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: none;\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-history-diff {\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-blog-history-view {\r\n > .topbar {\r\n margin-bottom: 16px;\r\n }\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-blog-history {\r\n > .topbar {\r\n margin-bottom: 16px;\r\n }\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n .ui.table {\r\n td a {\r\n cursor: pointer;\r\n }\r\n }\r\n}\r\n",".em-blog-left-sidebar {\r\n &.ui.left.sidebar {\r\n transition: left 0.15s ease-out 0s;\r\n @media only screen and (max-width: 767px) {\r\n z-index: 104;\r\n &.mobile-hide {\r\n // width: 0;\r\n left: -300px;\r\n }\r\n }\r\n width: 300px;\r\n top: 55px;\r\n left: 0;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n background-color: #f5f5f5;\r\n box-shadow: none!important;\r\n .tms-body {\r\n .ui.space.list {\r\n padding: 16px;\r\n padding-left: 15px;\r\n margin-bottom: 0px;\r\n padding-bottom: 8px;\r\n > .item {\r\n position: relative;\r\n &:hover {\r\n box-shadow: 0px 0px 2px -1px #5791cb;\r\n > .actions {\r\n display: inline-block;\r\n }\r\n }\r\n > .icon {\r\n padding-right: 0;\r\n position: relative;\r\n top: -1px;\r\n }\r\n > .content {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 245px;\r\n }\r\n > .actions {\r\n display: none;\r\n position: absolute;\r\n right: 0;\r\n top: -2px;\r\n }\r\n }\r\n .ui.bulleted.list {\r\n padding-left: 16px;\r\n > div.item {\r\n max-width: 220px;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n > a {\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n min-width: 220px;\r\n }\r\n &:before {\r\n color: #999;\r\n }\r\n &.active {\r\n font-weight: bold;\r\n > a {\r\n color: black;\r\n }\r\n }\r\n &:hover {\r\n // box-shadow: 0px 0px 2px -1px #5791cb;\r\n background-color: rgba(232, 224, 224, 0.5);\r\n }\r\n &.aurelia-hide {\r\n display: none!important;\r\n }\r\n }\r\n }\r\n }\r\n .ui.bulleted.list.no-space {\r\n padding: 20px;\r\n margin-top: 0px;\r\n padding-top: 0px;\r\n > div.item {\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n > a {\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n min-width: 242px;\r\n }\r\n &:before {\r\n color: #999;\r\n }\r\n &.active {\r\n font-weight: bold;\r\n > a {\r\n color: black;\r\n }\r\n }\r\n &:hover {\r\n // box-shadow: 0px 0px 2px -1px #5791cb;\r\n background-color: rgba(232, 224, 224, 0.5);\r\n }\r\n }\r\n }\r\n height: e(\"calc(100% - 40px)\")!important;\r\n }\r\n .tms-footer {\r\n position: absolute;\r\n width: 100%;\r\n height: 40px;\r\n left: 0;\r\n bottom: 0;\r\n background-color: #efe4e4;\r\n .ui.menu {\r\n border: none;\r\n border-radius: 0;\r\n background-color: #e8e0e0;\r\n > .item {\r\n &.tms-search {\r\n position: relative;\r\n height: 40px;\r\n max-width: 207px;\r\n &:before {\r\n width: 0;\r\n }\r\n > .remove.icon {\r\n position: absolute;\r\n right: 5px;\r\n top: 13px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-right-sidebar {\r\n width: 300px;\r\n background-color: #f5f5f5;\r\n position: fixed;\r\n top: 55px;\r\n right: -300px;\r\n height: e(\"calc(100% - 55px)\");\r\n transition: right 0.15s ease-out 0s;\r\n .right-sidebar-show & {\r\n right: 0;\r\n }\r\n .panel-blog-dir {\r\n padding: 16px;\r\n .wiki-dir-item {\r\n &.active {\r\n background-color: #e8e0e0;\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-save {}",".em-blog-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin-top: 6px;\r\n margin-left: 8px;\r\n }\r\n }\r\n}\r\n",".em-blog-space-auth {\r\n > .ui.form {\r\n margin-bottom: 16px;\r\n }\r\n .tms-header {\r\n margin-bottom: 8px;\r\n }\r\n .ui.search .prompt {\r\n border-radius: .28571429rem;\r\n }\r\n}\r\n",".em-blog-space-create {\r\n &.ui.popup {\r\n .ui.form {\r\n width: 260px;\r\n }\r\n }\r\n}\r\n",".em-blog-space-edit {}",".em-blog-space-update {}",".em-blog-top-menu {\r\n &.ui.inverted.blue.menu {\r\n background-color: #205081;\r\n height: 55px;\r\n z-index: 103;\r\n .item {\r\n &.tms-toggle {\r\n display: none;\r\n i.icon {\r\n margin-right: 0;\r\n }\r\n }\r\n &.tms-links {\r\n i.icon {\r\n margin-right: 0;\r\n }\r\n }\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.icon.input {\r\n input {\r\n background-color: #103a65;\r\n color: white;\r\n &:focus {\r\n border-color: rgba(34, 36, 38, .15);\r\n box-shadow: none;\r\n }\r\n }\r\n i.icon.search:before {\r\n color: #a3aab0;\r\n }\r\n }\r\n .ui.search>.results {\r\n max-height: 350px;\r\n overflow-y: auto;\r\n left: -150px;\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n .item {\r\n &.tms-links {\r\n display: none;\r\n }\r\n &.tms-logo {\r\n display: none;\r\n }\r\n &.header {\r\n display: none;\r\n }\r\n &.tms-toggle {\r\n display: flex;\r\n }\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.search {\r\n .ui.input {\r\n width: 100px;\r\n }\r\n }\r\n }\r\n }\r\n &.search-focus {\r\n .tms-logo {\r\n display: none;\r\n }\r\n .tms-create {\r\n display: none;\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.search {\r\n .ui.input {\r\n width: initial;\r\n transition: width 0.15s ease-out 0s;\r\n }\r\n }\r\n }\r\n .tms-login-user {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","@top: 15px;\r\n.modaal-wrapper .modaal-close {\r\n @media only screen and (max-width: 827px) {\r\n top: initial!important;\r\n bottom: 10px;\r\n z-index: 2;\r\n }\r\n}\r\n\r\n.em-blog-write {\r\n margin-top: -30px;\r\n margin-bottom: 20px;\r\n > .wrapper {\r\n max-width: 768px;\r\n margin: auto;\r\n > .title {\r\n position: fixed;\r\n z-index: 2;\r\n margin-bottom: 8px;\r\n width: e(\"calc(100% - 60px)\");\r\n @media only screen and (min-width: 828px) {\r\n width: 768px;\r\n }\r\n background-color: white;\r\n padding-top: @top + 3px;\r\n box-shadow: 0px 1px 0px 0px #dddddd;\r\n > .ui.input {\r\n padding-right: 80px;\r\n }\r\n > .ui.button {\r\n position: absolute;\r\n right: 0;\r\n top: @top;\r\n }\r\n }\r\n > .content {\r\n padding-top: @top + 45px;\r\n .editor-toolbar {\r\n &.fullscreen {\r\n z-index: 800;\r\n }\r\n }\r\n }\r\n }\r\n .dropzone {\r\n .dropzone-previews {\r\n position: absolute;\r\n top: @top + 33px;\r\n width: 100%;\r\n .dz-preview {\r\n width: 100%;\r\n margin: 0;\r\n .dz-progress {\r\n height: 2px;\r\n background-color: #aaa;\r\n border: none;\r\n }\r\n .dz-remove {\r\n display: none;\r\n }\r\n }\r\n }\r\n position: relative;\r\n }\r\n .tms-blog-write-status-bar-wrapper {\r\n position: fixed;\r\n z-index: 800;\r\n height: 0;\r\n top: 120px;\r\n width: e(\"calc(100% - 60px)\");\r\n @media only screen and (min-width: 828px) {\r\n width: 768px;\r\n }\r\n .tms-blog-write-status-bar {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n }\r\n }\r\n}\r\n",".em-chat-attach {\r\n &.ui.basic.segment {\r\n margin-bottom: 0;\r\n padding-top: 0;\r\n }\r\n .ui.basic.button {\r\n display: block;\r\n margin-right: 0;\r\n }\r\n .ui.list {\r\n .description {\r\n font-size: 12px;\r\n margin-top: 3px;\r\n }\r\n }\r\n &.ui.menu {\r\n \tmargin-top: 0;\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n > .item {\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\r\n display: block!important;\r\n text-align: center;\r\n }\r\n }\r\n &.tms-attach-search-input {\r\n \tpadding: 0 10px;\r\n }\r\n}\r\n",".tms-em-chat-channel-create {\r\n .tms-join {\r\n max-height: 315px;\r\n overflow-y: auto;\r\n }\r\n .ui.form {\r\n > .field {\r\n > label {\r\n width: 35px!important;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-channel-link-mgr {\r\n .ui.form {\r\n .one.wide.field {\r\n @media only screen and (min-width: 768px) {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-channel-members-mgr {\r\n .ui.dropdown {\r\n span.owner + i.delete.icon {\r\n display: none;\r\n }\r\n span.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n .member-table {\r\n max-height: 315px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-chat-channel-members-show {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n}\r\n",".em-chat-content-item {\r\n .textcomplete-container {\r\n position: relative;\r\n .append-to {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n }\r\n }\r\n .ui.comments &.comment {\r\n >.avatar~.content {\r\n margin-left: 3em;\r\n }\r\n .actions {\r\n > a {\r\n margin-right: 5px;\r\n }\r\n .dropdown {\r\n > a .ellipsis.icon {\r\n margin-right: 0;\r\n }\r\n .item.tms-red {\r\n color: red;\r\n }\r\n }\r\n }\r\n &:hover {\r\n .tools {\r\n display: block;\r\n }\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &.active {\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n z-index: -1;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n }\r\n > .content {\r\n > .metadata > .rating {\r\n @media only screen and (max-width: 767px) {\r\n display: none!important;\r\n }\r\n }\r\n > .markdown-body {\r\n span.at-user {\r\n cursor: pointer;\r\n }\r\n }\r\n > .tools {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n display: none;\r\n > .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: rgba(224, 225, 226, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-input {\r\n &.ui.segment {\r\n margin: 0;\r\n position: fixed;\r\n bottom: 0;\r\n left: 220px;\r\n right: 0;\r\n background-color: white;\r\n padding-bottom: 22px;\r\n @media only screen and (max-width: 767px) {\r\n left: 0;\r\n }\r\n .tms-chat-status-bar {\r\n .dz-preview {\r\n display: block!important;\r\n width: auto!important;\r\n background: #e0e1e2;\r\n margin: 0;\r\n padding: 7px;\r\n }\r\n }\r\n .ui[class*=\"left action\"].input>textarea {\r\n border-top-left-radius: 0!important;\r\n border-bottom-left-radius: 0!important;\r\n border-left-color: transparent!important;\r\n }\r\n .textareaWrapper {\r\n width: calc(~\"100% - 35px\");\r\n border: 1px solid rgba(34, 36, 38, .15);\r\n border-top-right-radius: .28571429rem;\r\n border-bottom-right-radius: .28571429rem;\r\n .CodeMirror,\r\n .CodeMirror-scroll {\r\n min-height: 0;\r\n border: none;\r\n border-top-right-radius: .28571429rem;\r\n }\r\n .CodeMirror-scroll {\r\n max-height: 300px;\r\n }\r\n }\r\n .ui.input {\r\n margin-right: 5px;\r\n i.send.icon {\r\n z-index: 1;\r\n right: 7px!important;\r\n }\r\n textarea {\r\n resize: none;\r\n width: 100%;\r\n padding-right: 2.67142857em!important;\r\n margin: 0;\r\n max-width: 100%;\r\n outline: 0;\r\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\r\n text-align: left;\r\n display: block;\r\n padding: .67861429em 1em;\r\n background: #FFF;\r\n border: none;\r\n color: rgba(0, 0, 0, .87);\r\n box-shadow: none;\r\n border-top-right-radius: .28571429rem;\r\n border-bottom-right-radius: .28571429rem;\r\n }\r\n }\r\n }\r\n .CodeMirror-lines {\r\n margin-right: 30px;\r\n }\r\n .ui.vertical.menu.popup {\r\n width: 145px;\r\n a.item {\r\n > i.icon {\r\n float: left;\r\n margin: 0 .35714286em 0 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-chat-direct {\r\n .tms-content {\r\n &.tms-sidebar-show {\r\n @media only screen and (min-width: 768px) {\r\n .tms-em-chat-input {\r\n right: 392px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.textcomplete-dropdown {\r\n position: static!important;\r\n border: 1px solid #ddd;\r\n background-color: white;\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n border-radius: 5px;\r\n li {\r\n /* border-top: 1px solid #ddd; */\r\n padding: 2px 5px;\r\n }\r\n li:first-child {\r\n border-top: none;\r\n border-top-left-radius: 5px;\r\n border-top-right-radius: 5px;\r\n }\r\n li:last-child {\r\n border-bottom-left-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n }\r\n li:hover,\r\n .active {\r\n background-color: rgb(67, 159, 224);\r\n }\r\n a:hover {\r\n cursor: pointer;\r\n }\r\n li.textcomplete-item {\r\n a {\r\n color: black;\r\n }\r\n &:hover a,\r\n &.active a {\r\n color: white;\r\n }\r\n }\r\n}\r\n",".tms-chat-member-popup {\r\n .ui.cards {\r\n margin-top: 0!important;\r\n .card {\r\n margin-top: 0!important;\r\n .ui.list >.item {\r\n border-radius: 0!important;\r\n }\r\n }\r\n }\r\n}\r\n",".em-chat-schedule-edit {\r\n // width: 320px!important;\r\n // margin-left: -160px!important;\r\n .ui.form {\r\n width: 300px;\r\n .ui.calendar {\r\n width: 200px;\r\n }\r\n .tms-date-field {\r\n position: relative;\r\n .ui.button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n }\r\n }\r\n .ui.dropdown {\r\n width: 265px!important;\r\n min-height: 30px;\r\n > a.ui.label {\r\n > input.owner + i.delete.icon {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-schedule-edit-target {\r\n display: inline-block;\r\n width: 1px;\r\n height: 1px;\r\n position: absolute;\r\n right: 188px;\r\n top: 30px;\r\n}\r\n",".em-chat-schedule-remind {\r\n .ui.table {\r\n tr > td:first-child {\r\n font-weight: bold;\r\n }\r\n }\r\n}\r\n",".em-chat-schedule {\r\n position: relative;\r\n height: 100%;\r\n .tms-add {\r\n position: absolute;\r\n right: 170px;\r\n top: 0;\r\n }\r\n .ui.form {\r\n width: 300px;\r\n .ui.calendar {\r\n width: 200px;\r\n }\r\n .tms-date-field {\r\n position: relative;\r\n .ui.button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n }\r\n }\r\n .ui.dropdown {\r\n width: 265px!important;\r\n min-height: auto;\r\n > a.ui.label {\r\n > input.owner + i.delete.icon {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n}",".em-chat-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n textarea {\r\n width: 195px!important;\r\n }\r\n .ui.search>.results .result {\r\n cursor: pointer!important;\r\n display: block!important;\r\n color: rgba(0, 0, 0, .87)!important;\r\n border-bottom: 1px solid rgba(34, 36, 38, .1)!important;\r\n margin: 0!important;\r\n }\r\n .ui.list {\r\n > .item {\r\n color: rgba(0, 0, 0, .87);\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin: 6px 0 0 8px!important;\r\n }\r\n }\r\n}\r\n",".tms-left-sidebar {\r\n overflow: hidden;\r\n .tms-body {\r\n position: absolute;\r\n top: 98px;\r\n width: 220px;\r\n height: e(\"calc(100% - 150px)\");\r\n overflow: hidden;\r\n padding-right: 2px;\r\n i.circular.icon {\r\n box-shadow: 0 0 0 .1em rgb(65, 131, 196) inset;\r\n }\r\n .title {\r\n position: relative;\r\n margin-left: 10px;\r\n .ui.header {\r\n display: inline-block;\r\n margin-top: 2px;\r\n margin-bottom: 0;\r\n }\r\n i.plus.icon {\r\n position: absolute;\r\n right: 10px;\r\n font-size: 12px;\r\n width: 12px!important;\r\n height: 12px!important;\r\n }\r\n }\r\n .ui.list {\r\n margin-top: 10px;\r\n padding-top: 5px;\r\n box-shadow: 0px -1px 1px -1px rgba(65, 131, 196, 0.5);\r\n > .item {\r\n padding-left: 16px;\r\n border-radius: 0;\r\n > .icon+.content {\r\n padding: 0;\r\n }\r\n &.active {\r\n background: rgba(0, 0, 0, 0.2);\r\n }\r\n &:hover {\r\n background: rgba(0, 0, 0, 0.1)!important;\r\n }\r\n &.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n }\r\n .tms-name {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 160px;\r\n }\r\n .tms-users {}\r\n .tms-channels {\r\n .ui.list {\r\n a.item {\r\n position: relative;\r\n &:hover {\r\n .actions {\r\n display: inline-block;\r\n }\r\n }\r\n }\r\n }\r\n .actions {\r\n display: none;\r\n position: absolute;\r\n right: 10px;\r\n top: 5px;\r\n }\r\n }\r\n .scroll-element.scroll-y {\r\n background-color: #4d394b;\r\n }\r\n }\r\n &.ui.left.sidebar {\r\n background-color: #4d394b;\r\n width: 220px;\r\n * {\r\n color: #4183c4!important;\r\n }\r\n .tms-header {\r\n > input {\r\n background-color: transparent;\r\n border: 1px rgba(103, 104, 104, 0.5) solid;\r\n font-size: 12px;\r\n padding: 4px;\r\n width: 188px;\r\n outline: none;\r\n margin-top: 10px;\r\n border-radius: 2px;\r\n &::-webkit-input-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &::-moz-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &:-ms-input-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &:focus {\r\n &::-webkit-input-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n &::-moz-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n &:-ms-input-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n }\r\n }\r\n padding: 9px 16px;\r\n box-shadow: 0 1px 1px -1px rgb(65, 131, 196);\r\n h1.ui.header {\r\n margin: 0;\r\n img {\r\n width: 30px;\r\n height: 30px;\r\n margin: 0;\r\n }\r\n }\r\n i.close.icon {\r\n position: absolute;\r\n right: 16px;\r\n top: 57px;\r\n }\r\n }\r\n }\r\n .tms-footer {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n .ui.menu {\r\n border-radius: 0;\r\n background-color: rgba(27, 28, 29, 0.2)!important;\r\n .dropdown.item .menu {\r\n border-radius: 0;\r\n }\r\n .item {\r\n font-size: 12px!important;\r\n }\r\n .item:before {\r\n width: 0;\r\n }\r\n .ui.button.item {\r\n width: 140px;\r\n margin-right: 0;\r\n padding-left: 0;\r\n .visible.content {\r\n margin-right: 0;\r\n width: 100%;\r\n }\r\n }\r\n .right.menu {\r\n .ui.dropdown {\r\n .menu {\r\n .header {\r\n min-width: 150px;\r\n position: relative;\r\n .plus.icon {\r\n position: absolute;\r\n right: 0;\r\n top: -7px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-chat-sidebar-right {\r\n .panel-wiki-dir {\r\n \theight: 100%;\r\n padding-left: 15px;\r\n overflow-y: auto;\r\n }\r\n .panel-chat-schedule {\r\n \theight: e(\"calc(100% - 10px)\");\r\n \toverflow: hidden;\r\n }\r\n}\r\n",".tms-em-chat-system-link-mgr {\r\n .ui.form {\r\n .one.wide.field {\r\n @media only screen and (min-width: 768px) {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-top-menu {\r\n &.ui.top.menu {\r\n padding-left: 220px;\r\n height: 60px;\r\n @media only screen and (max-width: 767px) {\r\n .tms-chat-at.tms-hide {\r\n display: none;\r\n }\r\n }\r\n .item.tms-item:before {\r\n display: none;\r\n }\r\n .right.menu {\r\n .item {\r\n &.tms-login-user {\r\n @media only screen and (max-width: 767px) {\r\n &.tms-hide {\r\n display: none;\r\n }\r\n }\r\n }\r\n &.tms-item {\r\n padding-left: 0;\r\n padding-right: 5px;\r\n @media only screen and (max-width: 767px) {\r\n &.tms-hide {\r\n display: none;\r\n }\r\n &.tms-mobile-hide {\r\n display: none;\r\n }\r\n }\r\n button {\r\n .ui.floating.label {\r\n top: 0;\r\n right: 0;\r\n left: auto;\r\n }\r\n }\r\n &.ui.dropdown {\r\n @media only screen and (max-width: 767px) {\r\n display: flex;\r\n }\r\n display: none;\r\n padding-left: 5px;\r\n margin-right: 5px;\r\n > i.icon {\r\n margin-left: 5px;\r\n }\r\n .menu {\r\n > .item {\r\n .ui.button {\r\n margin: 0;\r\n i.icon {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n &.tms-search {\r\n @media only screen and (max-width: 767px) {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n }\r\n }\r\n .ui.search {\r\n input {\r\n width: 95px;\r\n transition: width .15s ease-out 0s;\r\n }\r\n i.remove.icon {\r\n display: none;\r\n position: absolute;\r\n right: 0;\r\n left: auto;\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n padding-left: 0;\r\n }\r\n .ui.basic.button {\r\n box-shadow: none;\r\n }\r\n }\r\n > .tms-chat-at {\r\n &.ui.dropdown {\r\n @media only screen and (min-width: 768px) {\r\n min-width: 175px;\r\n padding-top: 0;\r\n padding-left: 13px;\r\n padding-bottom: 20px;\r\n &.item:before {\r\n width: 0;\r\n }\r\n }\r\n > .text {\r\n > .actions {\r\n display: none;\r\n }\r\n }\r\n > .tms-metadata {\r\n position: absolute;\r\n display: flex;\r\n top: 35px;\r\n font-size: 12px;\r\n left: 0;\r\n height: 15px;\r\n .item {\r\n &:before {\r\n top: 5px;\r\n height: 50%;\r\n }\r\n &.tms-channel-info:before {\r\n width: 0;\r\n }\r\n &.tms-user-info:before {\r\n width: 0;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n display: none;\r\n }\r\n .tms-channel-links {\r\n .menu {\r\n .header {\r\n min-width: 200px;\r\n }\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n > .text {\r\n display: none;\r\n }\r\n > .dropdown.icon {\r\n margin-left: 6px;\r\n margin-right: 6px;\r\n }\r\n }\r\n .menu {\r\n > .header {\r\n i.plus.icon {\r\n position: absolute;\r\n right: 5px;\r\n top: 7px;\r\n }\r\n }\r\n > .item {\r\n &:hover {\r\n .actions {\r\n display: inline-block;\r\n }\r\n }\r\n .icon {\r\n margin-right: 4px!important;\r\n }\r\n > .actions {\r\n display: none;\r\n position: absolute;\r\n right: 5px;\r\n top: 10px;\r\n .large.ellipsis.horizontal.icon {\r\n font-size: 1.3em!important;\r\n }\r\n }\r\n &.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-checkbox {}",".tms-em-hotkeys-modal {\r\n ul {\r\n padding-left: 30px;\r\n }\r\n ul.no_bullets {\r\n margin: 0 0 2rem;\r\n }\r\n ul.no_bullets li {\r\n line-height: 2rem;\r\n list-style-type: none;\r\n padding: 0;\r\n font-size: 1rem;\r\n font-weight: 700;\r\n }\r\n &>.content {\r\n background-color: rgba(11, 7, 11, 0.78)!important;\r\n }\r\n .keyboard i.icon {\r\n margin-right: 0px!important;\r\n }\r\n .subtle_silver {\r\n color: #9e9ea6!important;\r\n }\r\n .ui.grid .column {\r\n padding: 0!important;\r\n }\r\n}\r\n",".em-user-avatar {\r\n &.avatar.ui.mini.circular.image {\r\n width: 35px;\r\n height: 35px;\r\n font-size: 35px;\r\n background-color: rgba(150, 178, 183, 0.4);\r\n text-align: center;\r\n margin: 0;\r\n padding-right: 0;\r\n }\r\n .text-char {\r\n display: inline-block;\r\n height: 35px;\r\n line-height: 35px;\r\n vertical-align: top;\r\n }\r\n}\r\n",".tms-em-user-edit {\r\n .ui.form {\r\n .field {\r\n > label {\r\n width: 45px!important;\r\n }\r\n .user-username {\r\n margin-left: 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.em-user-edit-modal {\r\n /* Tablet & PC */\r\n @media only screen and (min-width: 768px) {\r\n width: 500px!important;\r\n margin-left: -250px!important;\r\n }\r\n}\r\n"],"sourceRoot":"../src"} \ No newline at end of file +{"version":3,"sources":["app.js","environment.js","main.js","blog/blog.js","chat/chat-direct.js","chat/chat-service.js","common/common-constant.js","common/common-ctx.js","common/common-diff.js","common/common-emoji.js","common/common-imgs-loaded.js","common/common-paste.js","common/common-plugin.js","common/common-poll.js","common/common-scrollbar.js","common/common-tips.js","common/common-utils.js","init/config.js","init/index.js","resources/index.js","test/test-lifecycle.js","user/user-login.js","user/user-pwd-reset.js","user/user-register.js","resources/attributes/attr-attr.js","resources/attributes/attr-autosize.js","resources/attributes/attr-c2c.js","resources/attributes/attr-dimmer.js","resources/attributes/attr-dropzone.js","resources/attributes/attr-modaal.js","resources/attributes/attr-pastable.js","resources/attributes/attr-scrollbar.js","resources/attributes/attr-swipebox.js","resources/attributes/attr-tablesort.js","resources/attributes/attr-task.js","resources/attributes/attr-textcomplete.js","resources/attributes/attr-ui-checkbox.js","resources/attributes/attr-ui-dropdown-action.js","resources/attributes/attr-ui-dropdown-hover.js","resources/attributes/attr-ui-dropdown.js","resources/attributes/attr-ui-popup.js","resources/attributes/attr-ui-tab.js","resources/binding-behaviors/bb-key.js","resources/value-converters/vc-common.js","resources/elements/em-blog-comment-popup.js","resources/elements/em-blog-comment-share.js","resources/elements/em-blog-comment.js","resources/elements/em-blog-content.js","resources/elements/em-blog-history-diff.js","resources/elements/em-blog-history-view.js","resources/elements/em-blog-history.js","resources/elements/em-blog-left-sidebar.js","resources/elements/em-blog-right-sidebar.js","resources/elements/em-blog-save.js","resources/elements/em-blog-share.js","resources/elements/em-blog-space-auth.js","resources/elements/em-blog-space-create.js","resources/elements/em-blog-space-edit.js","resources/elements/em-blog-space-update.js","resources/elements/em-blog-top-menu.js","resources/elements/em-blog-write.js","resources/elements/em-chat-attach.js","resources/elements/em-chat-channel-create.js","resources/elements/em-chat-channel-edit.js","resources/elements/em-chat-channel-join.js","resources/elements/em-chat-channel-link-mgr.js","resources/elements/em-chat-channel-members-mgr.js","resources/elements/em-chat-channel-members-show.js","resources/elements/em-chat-content-item-footbar.js","resources/elements/em-chat-content-item.js","resources/elements/em-chat-input.js","resources/elements/em-chat-member-popup.js","resources/elements/em-chat-msg-popup.js","resources/elements/em-chat-msg.js","resources/elements/em-chat-schedule-edit.js","resources/elements/em-chat-schedule-remind.js","resources/elements/em-chat-schedule.js","resources/elements/em-chat-share.js","resources/elements/em-chat-sidebar-left.js","resources/elements/em-chat-sidebar-right.js","resources/elements/em-chat-system-link-mgr.js","resources/elements/em-chat-top-menu.js","resources/elements/em-checkbox.js","resources/elements/em-confirm-modal.js","resources/elements/em-dropdown.js","resources/elements/em-hotkeys-modal.js","resources/elements/em-modal.js","resources/elements/em-user-avatar.js","resources/elements/em-user-edit.js","common/common-tags.js","app.less","common.less","override.less","blog/blog.less","chat/chat-direct.less","chat/md-github.less","common/common-scrollbar.less","user/user-login.less","user/user-pwd-reset.less","user/user-register.less","resources/elements/em-blog-comment-popup.less","resources/elements/em-blog-comment-share.less","resources/elements/em-blog-comment.less","resources/elements/em-blog-content.less","resources/elements/em-blog-history-diff.less","resources/elements/em-blog-history-view.less","resources/elements/em-blog-history.less","resources/elements/em-blog-left-sidebar.less","resources/elements/em-blog-right-sidebar.less","resources/elements/em-blog-save.less","resources/elements/em-blog-share.less","resources/elements/em-blog-space-auth.less","resources/elements/em-blog-space-create.less","resources/elements/em-blog-space-edit.less","resources/elements/em-blog-space-update.less","resources/elements/em-blog-top-menu.less","resources/elements/em-blog-write.less","resources/elements/em-chat-attach.less","resources/elements/em-chat-channel-create.less","resources/elements/em-chat-channel-link-mgr.less","resources/elements/em-chat-channel-members-mgr.less","resources/elements/em-chat-channel-members-show.less","resources/elements/em-chat-content-item-footbar.less","resources/elements/em-chat-content-item.less","resources/elements/em-chat-input.less","resources/elements/em-chat-member-popup.less","resources/elements/em-chat-msg.less","resources/elements/em-chat-schedule-edit.less","resources/elements/em-chat-schedule-remind.less","resources/elements/em-chat-schedule.less","resources/elements/em-chat-share.less","resources/elements/em-chat-sidebar-left.less","resources/elements/em-chat-sidebar-right.less","resources/elements/em-chat-system-link-mgr.less","resources/elements/em-chat-top-menu.less","resources/elements/em-checkbox.less","resources/elements/em-hotkeys-modal.less","resources/elements/em-user-avatar.less","resources/elements/em-user-edit.less"],"names":["App","init","initCalendar","subscribe","ea","nsCons","EVENT_APP_ROUTER_NAVIGATE","payload","router","navigate","to","unbind","dispose","$","fn","dropdown","settings","forceSelection","_","extend","form","prompt","empty","checked","email","url","regExp","integer","decimal","number","is","isExactly","not","notExactly","contain","containExactly","doesntContain","doesntContainExactly","minLength","length","exactLength","maxLength","match","different","creditCard","minCount","exactCount","maxCount","calendar","text","days","months","monthsShort","today","now","am","pm","formatter","date","day","getDate","month","getMonth","year","getFullYear","format","configureRouter","config","chatTo","localStorage","getItem","KEY_REMEMBER_LAST_CHAT_TO","map","route","name","moduleId","nav","title","redirect","activate","params","routeConfig","navigationInstruction","debug","testing","configure","Promise","warnings","wForgottenReturn","aurelia","use","standardConfiguration","feature","developmentLogging","plugin","start","then","setRoot","Blog","rightSidebarShow","isHide","EVENT_BLOG_VIEW_CHANGED","navModel","setTitle","subscribe1","EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE","justRefresh","isUndefined","subscribe2","EVENT_BLOG_TOGGLE_SIDEBAR","clearInterval","timeagoTimer","attached","tg","timeago","setInterval","blogContainerRef","find","each","index","el","attr","on","event","preventDefault","$a","currentTarget","publish","EVENT_CHAT_MEMBER_POPUP_SHOW","username","target","EVENT_BLOG_COMMENT_MSG_INSERT","content","detached","nsCtx","blogId","id","EVENT_BLOG_SWITCH","all","loginUser","user","isSuper","utils","isSuperUser","isAdmin","isAdminUser","listUsers","users","window","tmsUsers","ChatDirect","offset","first","last","originalHref","wurl","channels","autoDiscover","poll","e","toastr","success","error","initSubscribeEvent","EVENT_CHAT_MSG_SENDED","reset","isAt","listChatDirect","listChatChannel","EVENT_CHAT_SIDEBAR_TOGGLE","isRightSidebarShow","isShow","wid","contentRef","width","contentBodyRef","children","css","subscribe3","EVENT_CHAT_CHANNEL_CREATED","splice","channel","subscribe4","EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM","gotoChatItem","chatItem","subscribe5","EVENT_CHAT_CHANNEL_DELETED","location","subscribe6","EVENT_CHAT_CHANNEL_JOINED","subscribe7","EVENT_CHAT_CHANNEL_LEAVED","reject","subscribe8","EVENT_CHAT_LAST_ITEM_RENDERED","item","__scroll","scrollToAfterImgLoaded","markId","subscribe9","EVENT_SCROLLBAR_SCROLL_TO_BOTTOM","scrollbarRef","element","subscribe10","EVENT_CHAT_CONTENT_SCROLL_TO","scrollTo","stop","_reset","chatId","preChatId","setItem","startsWith","getChatName","history","replaceState","removeUrlQuery","listChannels","progressWidth","chats","lastMoreHandler","data","size","channelId","lastMoreP","get","unionBy","reverse","msgs","lastCnt","firstMoreHandler","nextMoreP","firstCnt","isCareMarkId","processChats","lastChat","totalElements","numberOfElements","_scrollTo","commentsRef","parent","some","removeClass","addClass","warning","defer","ImagesLoaded","always","doPoll","resetCb","stopCb","_pollChats","_poll","pollOnGoing","lastChatChannelId","countAt","cnt","push","create","body","icon","x16","x32","timeout","EVENT_CHAT_POLL_UPDATE","countMyRecentSchedule","pollChatsOngoing","_checkPollResultOk","_checkNeedNotify","fail","xhr","sts","errorAutoTry","hasOwn","creator","chat","has","bind","ctx","chatContainerRef","initHotkeys","initFocusedComment","$item","$hoveredItem","isShowHead","isElementInViewport","$next","next","isShowFoot","$btn","setTimeout","ctrlKey","stopImmediatePropagation","copy","err","scroll","throttle","sHeight","scrollHeight","sTop","scrollTop","scale","outerHeight","outerWidth","goHeadHandler","goFootHandler","focusedComment","$t","Number","parseInt","openEdit","version","isEditing","contentOld","focus","select","autosize","update","getScrollTargetComment","isPrev","$avatar","prev","duration","onAfter","document","evt","emChatInputRef","btnItemUploadRef","click","emHotkeysModal","show","refreshLatestHandler","ChatService","useCache","EVENT_CHAT_MSG_EDIT_UPLOAD","EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE","EVENT_SHOW_HOTKEYS_MODAL","EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE","EVENT_CHAT_MSG_INSERT","EVENT_CHAT_MSG_POPUP_SHOW","EVENT_CHAT_MSG_WIKI_DIR","EVENT_SWITCH_CHAT_TO","EVENT_CHANNEL_ACTIONS","EVENT_CHANNEL_LINKS_REFRESH","EVENT_SYSTEM_LINKS_REFRESH","EVENT_SCHEDULE_REFRESH","EVENT_MODAAL_BEFORE_OPEN","EVENT_MODAAL_AFTER_OPEN","EVENT_MODAAL_BEFORE_CLOSE","EVENT_MODAAL_AFTER_CLOSE","EVENT_BLOG_ACTION","EVENT_BLOG_CHANGED","EVENT_SPACE_CHANGED","EVENT_BLOG_CREATED","EVENT_BLOG_UPDATED","EVENT_BLOG_DELETED","EVENT_BLOG_STOW_CHANGED","EVENT_BLOG_SAVE","EVENT_BLOG_HISTORY_CHANGED","EVENT_BLOG_COMMENT_POPUP_SHOW","EVENT_BLOG_LEFT_SIDEBAR_TOGGLE","EVENT_BLOG_CONTENT_DIMMER_TOGGLE","EVENT_BLOG_COMMENT_ADDED","EVENT_BLOG_COMMENT_CHANGED","ACTION_TYPE_SEARCH","ACTION_TYPE_STOW","ACTION_TYPE_PIN","ACTION_TYPE_AT","ACTION_TYPE_DIR","ACTION_TYPE_ATTACH","ACTION_TYPE_SCHEDULE","NUM_TEXT_COMPLETE_MAX_COUNT","STR_EMOJI_SEARCH_URL","KEY_LOGIN_USERNAME","KEY_BLOG_COMMON_SPACE","memberAll","enabled","mails","isModaalOpening","webpackUniversalModuleDefinition","root","factory","modules","installedModules","__webpack_require__","exports","module","loaded","call","m","c","p","__esModule","_interopRequireDefault","obj","_diffBase","_diffBase2","_diffCharacter","_diffWord","_diffLine","_diffSentence","_diffCss","_diffJson","_patchApply","_patchCreate","_convertDmp","_convertXml","Diff","diffChars","diffWords","diffWordsWithSpace","diffLines","diffTrimmedLines","diffSentences","diffCss","diffJson","structuredPatch","createTwoFilesPatch","createPatch","applyPatch","convertChangesToDMP","convertChangesToXML","canonicalize","_utilMap","_utilMap2","ignoreWhitespace","prototype","diff","oldString","newString","callback","self","done","value","undefined","castInput","removed","added","removeEmpty","tokenize","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","components","oldPos","extractCommon","join","execEditLength","diagonalPath","basePath","addPath","removePath","_oldPos","canAdd","canRemove","clonePath","pushComponent","buildValues","useLongestToken","exec","ret","count","commonCount","equals","left","right","reWhitespace","test","array","i","split","componentPos","componentLen","component","slice","oldValue","tmp","path","arr","mapper","that","Array","other","n","_base","_base2","characterDiff","oldStr","newStr","extendedWordChars","wordDiff","wordWithSpaceDiff","tokens","lineDiff","trimmedLineDiff","ignoreTrim","retLines","lines","line","lastLine","lastLineLastChar","trim","sentenceDiff","cssDiff","_line","objectPrototypeToString","Object","toString","jsonDiff","JSON","stringify","replace","oldObj","newObj","stack","replacementStack","canonicalizedObj","pop","sortedKeys","key","hasOwnProperty","sort","uniDiff","diffstr","hunks","remEOFNL","addEOFNL","chnukHeader","unshift","oldlength","newlength","substr","hunk","j","apply","concat","_diffPatch","oldFileName","newFileName","oldHeader","newHeader","options","context","patchDiff","contextLines","entry","oldRangeStart","newRangeStart","curRange","oldLine","newLine","_loop","current","contextSize","Math","min","oldStart","oldLines","newStart","newLines","oldEOFNewline","newEOFNewline","fileName","linesAndNewlines","changes","change","operation","escapeHTML","s","emojis","w","ILID","random","EVENTS","ALLOWED_NODE_TYPES","type","String","NodeList","HTMLCollection","toLowerCase","toArray","collection","l","inArray","indexOf","proxy","arguments","eventName","handler","listener","remove","events","addEventListener","attachEvent","Callbacks","callbacks","off","trigger","defaults","tIndex","images","pending","proper","broken","isPending","isDone","isFailed","cl","nodeName","nodeType","getElementsByTagName","progress","isBroken","doneLoading","clearTimeout","terminate","imgLoaded","imgLoadedHandler","tmpImg","img","pendingIndex","src","check","il","complete","naturalWidth","createElement","Paste","createHiddenEditable","dataURLtoBlob","isFocusable","jQuery","paste","pasteContainer","console","log","mountNonInputable","_container","pastableNonInputable","len","_pastable","pastableTextarea","mountTextarea","pastableContenteditable","mountContenteditable","dataURL","sliceSize","b64Data","byteArray","byteArrays","byteCharacters","byteNumbers","contentType","ref","atob","charCodeAt","Uint8Array","Blob","height","position","overflow","hasTabindex","fieldset","focusableIfVisible","mapName","parentNode","href","disabled","closest","_target","nonInputable","appendTo","_this","ev","textarea","ctlDown","ref1","DataTransfer","getOwnPropertyDescriptor","insertBefore","ref2","keyCode","metaKey","_textarea_focus_stolen","_paste_event_fired","curEnd","curStart","prop","val","setSelectionRange","contenteditable","clipboardData","file","k","len1","reader","ref3","originalEvent","items","FileReader","onload","_handleImage","result","readAsDataURL","getAsFile","getAsString","string","types","getData","_checkImagesInContainer","files","URL","createObjectURL","loader","message","Image","crossOrigin","blob","canvas","getContext","drawImage","toDataURL","onerror","cb","timespan","floor","insertAtCaret","myValue","selection","sel","createRange","selectionStart","startPos","endPos","selectionEnd","substring","minInterval","maxInterval","incInterval","tolerate","timer","inc","interval","_pollCb","_errCb","_isPause","oneHandler","_stop","_start","_pause","pollCb","errCb","pause","browser","firefox","navigator","userAgent","macosx","platform","msedge","msie","mobile","overlay","scrolls","webkit","add","instance","autoScrollSize","autoUpdate","disableBodyScroll","ignoreMobile","ignoreOverlay","isRtl","scrollStep","showArrows","stepScrolling","scrollx","scrolly","onDestroy","onFallback","onInit","onScroll","onUpdate","BaseScrollbar","container","isScrollOverlaysContent","getBrowserScrollSize","updateScrollbars","resize","namespace","jQueryScrollbarOptions","destroy","wrapper","removeData","scrollLeft","addBack","isFunction","S","cw","containerWrapper","o","x","y","cssOptions","initScroll","append","abs","scrollWidth","clientWidth","maxScroll","maxScrollOffset","visible","isVisible","bar","kx","handleMouseScroll","isVerticalScroll","mousewheel","touch","touches","originalTouch","pageX","pageY","originalScroll","top","targetTouches","d","scrollCallback","scrollForward","scrollOffset","currentOffset","scrollToValue","_getScroll","delta","wheelDelta","detail","maxScrollValue","deltaX","deltaY","animate","which","eventOffset","scrollbarOffset","scrollbarSize","hasClass","round","_handleMouseDown","eventPosition","initOffset","scrollClass","_updateScroll","cssOffset","cssFullSize","cssSize","AreaSize","AreaVisible","scrollSize","advanced","simple","track","CustomScrollbar","scrollbar","command","args","isArray","timerCounter","force","visibleHeight","visibleWidth","actualSize","outer","inner","ceil","axis","HORIZONTAL_AXIS","wheelDeltaX","label","ch","ch2","CommonUtils","regExpOS","ios","mobileChrome","cellphone","getBaseUrl","getUrl","getHash","hash","getBasePath","getResourceBase","endsWith","redirect2Login","redirectUrl","urlQuery","encodeURIComponent","query","rs","RegExp","isLoginPage","time","isRunning","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","innerWidth","preParse","plainText","txt","parseUsers","atR","isNotExists","getUser","parseUsernames","members","isExitsAll","without","md2html","emojify","html","marked","wrap","diffS","oldS","newS","way","ways","includes","delStyle","insStyle","JsDiff","nodeArr","swap","node","catalog","$e","$headers","pre","link","h","generateDir","uid","$list","prodDir","dir","$l","uniqueId","getCursortPosition","ctrl","CaretPos","Sel","moveStart","setCaretPosition","pos","createTextRange","range","collapse","moveEnd","isAbsUrl","escape","encode","unescape","charAt","fromCharCode","openNewWin","end","delay","authorities","authority","isSBCcase","str","isHanzi","getByteLen","abbreviate","maxLen","isMail","mail","emailRegex","isIE","isIE11","ActiveXObject","isIOS","isMobileChrome","isCellphone","isMobile","isChrome","isSafari","isFirefox","isOpera","diffHtml","tags","tag","encodeHtml","decodeHtml","Config","initHttp","json","param","http","withDefaults","credentials","headers","withInterceptor","request","req","requestError","response","resp","ok","status","responseError","initToastr","positionClass","preventDuplicates","initMarked","renderer","Renderer","listitem","sanitize","prot","decodeURIComponent","out","isChatLink","isCommentLink","codespan","code","lang","escaped","codeBk","highlight","langPrefix","setOptions","breaks","highlightAuto","initAjax","ajaxSetup","cache","exceptUrls","ajaxSend","jqxhr","isNotInExceptUrls","every","lastIndexOf","ajaxError","initGlobalVar","bs","colorHash","initAnimateCss","animateCss","animationName","animationEnd","one","initEmoji","setConfig","img_dir","initModaal","modaal","close_text","close_aria_label","confirm_button_text","confirm_cancel_button_text","confirm_title","accessible_title","confirm_content","globalResources","TestLifeCycle","eventAggregator","created","view","canActivate","canDeactivate","deactivate","inject","UserLogin","password","rememberMeRef","checkbox","kdHandler","loginHandler","rm","post","UserPwdReset","pwd","isReq","token","resetPwdHandler","fm","fetch","method","baseUrl","newPwdHandler","fm2","inline","fields","ViewModel","header","identifier","rules","okHandler","AttrAttr","Element","nameChanged","valueChanged","removeAttr","bindingContext","AttrAutosize","newValue","elements","AttrC2cCustomAttribute","_init","clipboard","$tp","hover","hide","AttrDimmer","$dimmer","prepend","AttrDropzone","toType","andSelf","dropzone","paramName","clickable","dictDefaultMessage","maxFilesize","addRemoveLinks","dictCancelUpload","dictCancelUploadConfirmation","dictFileTooBig","formData","uuidName","errorMessage","removeFile","AttrModaalCustomAttribute","fullscreen","overlay_close","animation","before_open","after_open","before_close","after_close","AttrPastable","toId","textStatus","AttrScrollbarCustomAttribute","cls","AttrSwipebox","$img","imgs","initialIndexOnArray","swipebox","useCSS","useSVG","hideCloseButtonOnMobile","removeBarsOnMobile","hideBarsDelay","videoMaxWidth","beforeOpen","afterOpen","afterClose","loopAtEnd","AttrTablesortCustomAttribute","tablesort","warn","AttrTask","task","bindingCtx","AttrTextcompleteCustomAttribute","tipsActionHandler","textcomplete","search","term","keys","template","member","emoji","emojiKey","cr","filter","values","AttrUiCheckboxCustomAttribute","AttrUiDropdownActionCustomAttribute","action","AttrUiDropdownHoverCustomAttribute","AttrUiDropdownCustomAttribute","AttrUiPopupCustomAttribute","popup","silent","jitter","onShow","onVisible","AttrUiTabCustomAttribute","tab","keyCodes","keyHandler","keyState","altKey","alt","shiftKey","shift","originalMethod","KeyBindingBehavior","binding","source","metaKeys","methodName","callSource","updateSource","mode","bindingMode","twoWay","originalName","isInteger","UpperValueConverter","toView","toUpperCase","LowerValueConverter","DateValueConverter","toNumber","Date","NumberValueConverter","isNumber","TimeagoValueConverter","ParseMdValueConverter","SortValueConverter","sortBy","SortUsersValueConverter","SortUsernamesValueConverter","SortChannelsValueConverter","channelAll","UserNameValueConverter","EmojiValueConverter","mkbodyDom","run","EmojiReplValueConverter","ChatLabelExistValueConverter","chatLabels","voters","ChatLabelTipValueConverter","chatLabel","vs","v","description","ChatLabelFilterValueConverter","LabelColorValueConverter","color","LabelCssValueConverter","cs","rgb","bgColor","Nl2brValueConverter","DiffHtmlValueConverter","allowedTags","allowedAttributes","EmBlogCommentPopup","hoverable","movePopup","prefer","cid","comment","EmBlogCommentShare","shares","desc","searchRef","minCharacters","selectFirstResult","showNoResults","onSelect","_id","_type","inputSearchRef","apiSettings","onResponse","results","shareRef","shareSearchKeyupHandler","removeShareHandler","cancelHandler","shareHandler","ajaxS","blog","chain","EmBlogComment","blogChanged","_refresh","comments","insertContent","page","editHandler","simplemde","codemirror","blogCommentsRef","commentRef","spellChecker","toolbar","toggleBold","className","toggleItalic","toggleStrikethrough","toggleHeadingSmaller","toggleHeadingBigger","toggleCodeBlock","toggleBlockquote","toggleUnorderedList","toggleOrderedList","editor","drawLink","drawTable","drawHorizontalRule","togglePreview","insertTexts","table","previewRender","preview","cm","addHandler","$chatMsgInputRef","markdownRef","initPaste","initTextcomplete","initUploadDropzone","isTipsShow","toTextArea","mde","cursor","getCursor","replaceRange","replyHandler","removeHandler","sending","contentHtml","$paste","domRef","getInputTargetCb","previewsContainer","previewTemplate","innerHTML","removeAllFiles","editTxtRef","refreshHandler","info","eidtKeydownHandler","txtRef","editSave","editCancelHandler","editOkHandler","htmlOld","isZanDone","voteZan","rateHandler","gotoTopHandler","EmBlogContent","getBlog","catalogHandler","blogFollower","getFollower","throttleCreateHandler","createHandler","throttleEditHandler","throttleCopyHandler","copyHandler","mkbodyRef","fixDirItem","feedRef","fixId","preId","dirItemIds","blogShareVm","followerHandler","historyHandler","authHandler","stowHandler","updateSpaceHandler","openEditHandler","deleteHandler","_dir","getMyLog","logs","isNaN","getStow","getMyTags","tagsRef","allowAdditions","onAdd","addedValue","addedText","$addedChoice","onLabelRemove","removedValue","blogStow","emConfirmModal","onapprove","blogSpaceUpdateVm","updatePrivatedHandler","privated","open","blogHistoryVm","blogSpaceAuthVm","sid","fid","dimmerHandler","commentsHandler","openFeedEventItemHandler","isOpen","feedEventItemMouseleaveHandler","refreshFeedHandler","EmBlogHistoryDiff","showHandler","approveHandler","f","fIndex","sIndex","emModal","hideOnApprove","autoDimmer","EmBlogHistoryView","blogHistory","ver","isCurrentVer","restoreHandler","ajax1","hid","EmBlogHistory","refreshHistory","viewHistoryHandler","blogHistoryViewVm","oldHistories","histories","clone","ajax2","diffHandler","list","chks","blogHistoryDiffVm","EmBlogLeftSidebar","blogs","spaces","noSpaceBlogs","spaceStow","calcTree","blogStows","space","_refreshBlogStows","_doFilerDebounce","debounce","_doFiler","leading","refresh","_refreshSysLinks","sysLinks","when","getSpaces","getBlogTree","b","spaceToggleHandler","editSpaceHandler","spaceEditVm","delSpaceHandler","confirmMd","authSpaceHandler","clearFilterHandler","filterKeyupHandler","toLower","_hidden","sysLinkHandler","EmBlogRightSidebar","dirRef","EmBlogSave","triggerChanged","blogInfo","chk","modal","spaceId","spacesRef","usernames","initSpacesHandler","EmBlogShare","EmBlogSpaceAuth","_isBlog","onChange","authO","chk2","opened","blogAuthorities","spaceAuthorities","auths","forEach","share","EmBlogSpaceCreate","ajax","ppRef","EmBlogSpaceEdit","EmBlogSpaceUpdate","EmBlogTopMenu","toggleHandler","logoRef","blur","createDate","targetId","searchBlurHandler","isSearchFocus","searchFocusHandler","userEditHandler","userEditMd","logoutHandler","searchKeyupHandler","EmBlogWrite","NAME","blogTitleInputKeyupInit","once","keyup","save","_editInit","_writeInit","ccid","cdid","ms","_copyInit","toggleSideBySide","toggleFullScreen","close","isKey","EmChatAttach","tabRef","tabPath","moreHandler","_listByPage","nextPage","moreCnt","attachs","tabClickHandler","searchHandler","keyupHandler","EmChatChannelCreate","activeTab","nameRegex","news","old","oldName","_getOldName","channelJoinVm","hideDimmer","EmChatChannelEdit","channelChanged","chkSet","EmChatChannelJoin","_getChannels","joined","joinHandler","leaveHandler","EmChatChannelLinkMgr","links","delHandler","oldTitle","oldHref","updateHandler","EmChatChannelMembersMgr","membersOpts","showDimmer","owner","membersRef","initMembersUI","EmChatChannelMembersShow","EmChatContentItemFootbar","addEmojiRef","addTagRef","onHide","isCustomTag","tagRef","toggleChatLabelHandler","meta","signal","toggleCustomTagHandler","tagKeyupHandler","EmChatContentItem","defaultBindingMode","$c","findLast","notifyRendered","isStow","unStowHandler","stowId","creatorNameHandler","likeHandler","isLike","isZanVoted","isCaiVoted","pinHandler","isPin","EmChatInput","initSimpleMDE","chatInputRef","initDropzone","inputRef","chatBtnRef","chatStatusBarRef","previewTemplateRef","textareaDom","autofocus","autoDownloadFontAwesome","markdown","sendChatMsg","setCursor","sendChatMsgHandler","togglePreviewHandler","EmChatMemberPopup","creatorName","EmChatMsgPopup","chatMsg","EmChatMsg","isHover","activedChanged","actived","chatChannel","chatAt","searchItemMouseleaveHandler","searchItemMouseenterHandler","gotoChatHandler","openSearchItemHandler","searchMoreHandler","searchMoreP","removePinHandler","removeStowHandler","chatStow","removeAtHandler","chatAtId","EmChatScheduleEdit","actorsOpts","actors","startRef","endCalendar","endRef","startCalendar","actorsRef","titleKeyupHandler","clearStartDateHandler","clearEndDateHandler","calEvent","scheduleEditRef","toDate","titleRef","startDate","endDate","EmChatScheduleRemind","headOffset","reminded","_pollCheck","getTime","_desktopPuh","EmChatSchedule","scheduleRef","fullCalendar","_getEvents","unix","center","defaultDate","defaultView","editable","eventLimit","navLinks","timezone","dayClick","jsEvent","isPopupShowForDayClick","addRef","eventClick","scheduleEditVm","eventMouseover","eventMouseout","eventDrop","revertFunc","_updateDate","eventResize","EmChatShare","EmChatSidebarLeft","usersChanged","_filter","channelsChanged","loginUserChanged","overrideCtx","hidden","chatToUserFilerKeyupHanlder","selectedChannel","channelEditMd","membersMgrHandler","channelMembersMgrMd","membersShowHandler","channelMembersShowMd","switchHandler","addChannelLinkHandler","sysLinkMgrVm","isSubscribed","subscriber","subscribeHandler","isSub","EmChatSidebarRight","actionMapping","dirHandler","nodata","attachHandler","scheduleHandler","chatAttachVm","chatScheduleVm","EmChatSystemLinkMgr","EmChatTopMenu","chatToChanged","chatToDropdownRef","_refreshChannelLinks","channelLinks","activeType","newAtCnt","initSearch","parseJSON","searchSource","onResults","searchInputRef","isExists","searchingP","toggleRightSidebar","filterChatToUser","initChatToDropdownHandler","$choice","searchRemoveRef","isActiveSearch","sibebarRightHandler","asShow","clearSearchHandler","showStowHandler","ajaxStow","stowChats","showAtHandler","ajaxAt","showWikiDirHandler","showAttachHandler","showScheduleHandler","viewOrMgrUsersHandler","channelInfoHandler","userInfoHandler","stopImmediatePropagationHandler","mailToHandler","chatUser","channelLinksHandler","channelLinksDdRef","channelLinkMgrVm","openChannelLinkHandler","showPinHandler","ajaxPin","pinChats","chatPin","EmCheckbox","checkedChanged","onChecked","emCheckboxAll","refreshCheckedStatus","onchecked","onUnchecked","onunchecked","onchange","EmConfirmModal","md","closable","allowMultiple","onApprove","onDeny","ondeny","EmDropdown","selectedItemChanged","menuItemsChanged","isEmpty","selectedItem","initDropdownHandler","EmHotkeysModal","EmModal","observeChanges","onshow","onvisible","loading","dimmer","EmUserAvatar","userChanged","_calcNameChar","lastChar","nameChar","avatarRef","EmUserEdit","frm","_chkOk"],"mappings":";;;;;;;;;;;;;;QAIaA,cAAAA;AAET,uBAAc;AAAA;;AAAA;;AACV,iBAAKC,IAAL;AACA,iBAAKC,YAAL;;AAEA,iBAAKC,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOC,yBAApB,EAA+C,UAACC,OAAD,EAAa;AACzE,sBAAKC,MAAL,IAAe,MAAKA,MAAL,CAAYC,QAAZ,MAAwBF,QAAQG,EAAhC,CAAf;AACH,aAFgB,CAAjB;AAGH;;sBAKDC,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;sBAEDX,uBAAO;;AAEHY,cAAEC,EAAF,CAAKC,QAAL,CAAcC,QAAd,CAAuBC,cAAvB,GAAwC,KAAxC;;AAGAC,cAAEC,MAAF,CAASN,EAAEC,EAAF,CAAKM,IAAL,CAAUJ,QAAV,CAAmBK,MAA5B,EAAoC;AAChCC,uBAAO,YADyB;AAEhCC,yBAAS,aAFuB;AAGhCC,uBAAO,kBAHyB;AAIhCC,qBAAK,mBAJ2B;AAKhCC,wBAAQ,eALwB;AAMhCC,yBAAS,eANuB;AAOhCC,yBAAS,eAPuB;AAQhCC,wBAAQ,iBARwB;AAShCC,oBAAI,2BAT4B;AAUhCC,2BAAW,2BAVqB;AAWhCC,qBAAK,0BAX2B;AAYhCC,4BAAY,4BAZoB;AAahCC,yBAAS,yBAbuB;AAchCC,gCAAgB,2BAdgB;AAehCC,+BAAe,yBAfiB;AAgBhCC,sCAAsB,2BAhBU;AAiBhCC,2BAAW,4BAjBqB;AAkBhCC,wBAAQ,yBAlBwB;AAmBhCC,6BAAa,yBAnBmB;AAoBhCC,2BAAW,4BApBqB;AAqBhCC,uBAAO,yBArByB;AAsBhCC,2BAAW,0BAtBqB;AAuBhCC,4BAAY,uBAvBoB;AAwBhCC,0BAAU,6BAxBsB;AAyBhCC,4BAAY,6BAzBoB;AA0BhCC,0BAAU;AA1BsB,aAApC;AA4BH;;sBAED7C,uCAAe;AACXW,cAAEC,EAAF,CAAKkC,QAAL,CAAchC,QAAd,CAAuBiC,IAAvB,GAA8B;AAC1BC,sBAAM,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CADoB;AAE1BC,wBAAQ,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,KAArE,CAFkB;AAG1BC,6BAAa,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,KAAvD,EAA8D,KAA9D,EAAqE,KAArE,CAHa;AAI1BC,uBAAO,IAJmB;AAK1BC,qBAAK,IALqB;AAM1BC,oBAAI,IANsB;AAO1BC,oBAAI;AAPsB,aAA9B;;AAUA3C,cAAEC,EAAF,CAAKkC,QAAL,CAAchC,QAAd,CAAuByC,SAAvB,CAAiCC,IAAjC,GAAwC,UAASA,IAAT,EAAe1C,QAAf,EAAyB;AAC7D,oBAAI,CAAC0C,IAAL,EAAW,OAAO,EAAP;AACX,oBAAIC,MAAMD,KAAKE,OAAL,EAAV;AACA,oBAAIC,QAAQH,KAAKI,QAAL,KAAkB,CAA9B;AACA,oBAAIC,OAAOL,KAAKM,WAAL,EAAX;;AAEA,uBAAOnD,EAAEoD,MAAF,CAASP,IAAT,CAAcA,IAAd,EAAoB,YAApB,CAAP;AACH,aAPD;;AASA,mBAAO,IAAP;AACH;;sBAODQ,2CAAgBC,QAAQ3D,QAAQ;;AAE5B,gBAAI4D,SAAS,IAAb;AACA,gBAAIC,YAAJ,EAAkB;AACdD,yBAASC,aAAaC,OAAb,CAAqBjE,OAAOkE,yBAA5B,CAAT;AACH;;AAEDJ,mBAAOK,GAAP,CAAW,CAAC;AACRC,uBAAO,CAAC,WAAD,CADC;AAERC,sBAAM,OAFE;AAGRC,0BAAU,qBAHF;AAIRC,qBAAK,KAJG;AAKRC,uBAAO;AALC,aAAD,EAMR;AACCJ,uBAAO,CAAC,UAAD,CADR;AAECC,sBAAM,UAFP;AAGCC,0BAAU,oBAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aANQ,EAYR;AACCJ,uBAAO,CAAC,gBAAD,CADR;AAECC,sBAAM,MAFP;AAGCC,0BAAU,kBAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aAZQ,EAkBR;AACCJ,uBAAO,CAAC,MAAD,CADR;AAECC,sBAAM,MAFP;AAGCC,0BAAU,WAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aAlBQ,EAwBR;AACCJ,uBAAO,CAAC,UAAD,CADR;AAECC,sBAAM,MAFP;AAGCC,0BAAU,WAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aAxBQ,EA8BR;AACCJ,uBAAO,CAAC,OAAD,CADR;AAECC,sBAAM,OAFP;AAGCC,0BAAU,iBAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aA9BQ,EAoCR;AACCJ,uBAAO,CAAC,MAAD,CADR;AAECC,sBAAM,MAFP;AAGCC,0BAAU,qBAHX;AAICC,qBAAK,KAJN;AAKCC,uBAAO;AALR,aApCQ,EA0CR;AACCJ,uBAAO,EADR;AAECK,qCAAkBV,SAASA,MAAT,GAAkB,QAApC;AAFD,aA1CQ,CAAX;;AA+CA,iBAAK5D,MAAL,GAAcA,MAAd;AAEH;;sBASDuE,6BAASC,QAAQC,aAAaC,uBAAuB,CAEpD;;;;;;;;;;;oBCxJU;AACbC,WAAO,IADM;AAEbC,aAAS;AAFI;;;;;;;;UCUCC,YAAAA;;;;;;;;;;AANhBC,UAAQnB,MAAR,CAAe;AACboB,cAAU;AACRC,wBAAkB;AADV;AADG,GAAf;;AAMO,WAASH,SAAT,CAAmBI,OAAnB,EAA4B;AACjCA,YAAQC,GAAR,CACGC,qBADH,GAEGC,OAFH,CAEW,MAFX,EAGGA,OAHH,CAGW,WAHX;;AAKA,QAAI,sBAAYT,KAAhB,EAAuB;AACrBM,cAAQC,GAAR,CAAYG,kBAAZ;AACD;;AAED,QAAI,sBAAYT,OAAhB,EAAyB;AACvBK,cAAQC,GAAR,CAAYI,MAAZ,CAAmB,iBAAnB;AACD;;AAEDL,YAAQM,KAAR,GAAgBC,IAAhB,CAAqB;AAAA,aAAMP,QAAQQ,OAAR,EAAN;AAAA,KAArB;AACD;;;;;;;;;;;;;;;;;;;;;;;;QCtBYC,eAAAA;AAQT,wBAAc;AAAA;;AAAA;;AAAA,iBANdC,gBAMc,GANK,KAML;AAAA,iBALdC,MAKc,GALL,IAKK;;AACV,iBAAKjG,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOgG,uBAApB,EAA6C,UAAC9F,OAAD,EAAa;AACvE,sBAAK0E,WAAL,IAAoB,MAAKA,WAAL,CAAiBqB,QAAjB,CAA0BC,QAA1B,CAAsChG,QAAQsE,KAA9C,2BAApB;AACH,aAFgB,CAAjB;AAGA,iBAAK2B,UAAL,GAAkBpG,GAAGD,SAAH,CAAaE,OAAOoG,+BAApB,EAAqD,UAAClG,OAAD,EAAa;AAChF,oBAAIA,QAAQmG,WAAZ,EAAyB;AACrB;AACH;AACD,oBAAInG,WAAW,CAACW,EAAEyF,WAAF,CAAcpG,QAAQ6F,MAAtB,CAAhB,EAA+C;AAC3C,0BAAKD,gBAAL,GAAwB,CAAC5F,QAAQ6F,MAAjC;AACH,iBAFD,MAEO;AACH,0BAAKD,gBAAL,GAAwB,CAAC,MAAKA,gBAA9B;AACH;AACJ,aATiB,CAAlB;AAUA,iBAAKS,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAOwG,yBAApB,EAA+C,UAACtG,OAAD,EAAa;AAC1E,sBAAK6F,MAAL,GAAc7F,OAAd;AACH,aAFiB,CAAlB;AAGH;;uBAKDI,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAK4F,UAAL,CAAgB5F,OAAhB;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;;AAEAkG,0BAAc,KAAKC,YAAnB;AACH;;uBAKDC,+BAAW;AAAA;;AAEP,gBAAIC,KAAKC,SAAT;AACA,iBAAKH,YAAL,GAAoBI,YAAY,YAAM;AAClCtG,kBAAE,OAAKuG,gBAAP,EAAyBC,IAAzB,CAA8B,gBAA9B,EAAgDC,IAAhD,CAAqD,UAACC,KAAD,EAAQC,EAAR,EAAe;AAChE3G,sBAAE2G,EAAF,EAAMvE,IAAN,CAAWgE,GAAGhD,MAAH,CAAUpD,EAAE2G,EAAF,EAAMC,IAAN,CAAW,cAAX,CAAV,EAAsC,OAAtC,CAAX;AACH,iBAFD;AAGH,aAJmB,EAIjB,IAJiB,CAApB;;AAOA5G,cAAE,WAAF,EAAe6G,EAAf,CAAkB,YAAlB,EAAgC,yEAAhC,EAA2G,UAACC,KAAD,EAAW;AAClHA,sBAAMC,cAAN;AACA,oBAAIC,KAAKhH,EAAE8G,MAAMG,aAAR,CAAT;AACA1H,mBAAG2H,OAAH,CAAW1H,OAAO2H,4BAAlB,EAAgD;AAC5CC,8BAAUJ,GAAGJ,IAAH,CAAQ,YAAR,CADkC;AAE5CS,4BAAQP,MAAMG;AAF8B,iBAAhD;AAIH,aAPD;;AASAjH,cAAE,4BAAF,EAAgC6G,EAAhC,CAAmC,OAAnC,EAA4C,kEAA5C,EAAgH,UAACC,KAAD,EAAW;AACvHA,sBAAMC,cAAN;AACAxH,mBAAG2H,OAAH,CAAW1H,OAAO8H,6BAAlB,EAAiD;AAC7CC,oCAAcvH,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,YAA5B,CAAd;AAD6C,iBAAjD;AAGH,aALD;AAOH;;uBAKDY,+BAAW,CAEV;;uBASDtD,6BAASC,QAAQC,aAAaC,uBAAuB;;AAEjD,iBAAKD,WAAL,GAAmBA,WAAnB;AACAqD,kBAAMC,MAAN,GAAevD,OAAOwD,EAAtB;;AAEApI,eAAG2H,OAAH,CAAW1H,OAAOoI,iBAAlB,EAAqC,EAAED,IAAIxD,OAAOwD,EAAb,EAArC;;AAEA,mBAAOlD,QAAQoD,GAAR,CAAY,CAAC,sBAAYC,SAAZ,GAAwB3C,IAAxB,CAA6B,UAAC4C,IAAD,EAAU;AACnDN,sBAAMK,SAAN,GAAkBC,IAAlB;AACAN,sBAAMO,OAAN,GAAgBC,MAAMC,WAAN,CAAkBH,IAAlB,CAAhB;AACAN,sBAAMU,OAAN,GAAgBF,MAAMG,WAAN,CAAkBL,IAAlB,CAAhB;AACH,aAJe,CAAD,EAKf,sBAAYM,SAAZ,GAAwBlD,IAAxB,CAA6B,UAACmD,KAAD,EAAW;AACpCb,sBAAMa,KAAN,GAAcA,KAAd;AACAC,uBAAOC,QAAP,GAAkBF,KAAlB;AACH,aAHD,CALe,CAAZ,CAAP;AAUH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCzFQG,qBAAAA;AAiBT,8BAAc;AAAA;;AAAA,iBAfdC,MAec,GAfL,CAeK;AAAA,iBAbdC,KAac,GAbN,IAaM;AAAA,iBAZdC,IAYc,GAZP,IAYO;AAAA,iBAVdC,YAUc,GAVCC,MAUD;AAAA,iBAPdR,KAOc,GAPN,EAOM;AAAA,iBANdS,QAMc,GANH,EAMG;AAAA,iBALdxF,MAKc,GALL,IAKK;;;AAEV,+BAASyF,YAAT,GAAwB,KAAxB;AACA,iBAAKC,IAAL;;AAEA,oCAAc,iCAAd,EACKpC,EADL,CACQ,SADR,EACmB,UAASqC,CAAT,EAAY;AACvBC,uBAAOC,OAAP,CAAe,WAAf;AACH,aAHL,EAGOvC,EAHP,CAGU,OAHV,EAGmB,UAASqC,CAAT,EAAY;AACvBC,uBAAOE,KAAP,CAAa,WAAb;AACH,aALL;;AAOA,iBAAKC,kBAAL;AACH;;6BAEDA,mDAAqB;AAAA;;AAEjB,iBAAKhK,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO+J,qBAApB,EAA2C,UAAC7J,OAAD,EAAa;;AAErE,qCAAK8J,KAAL;;AAEA,oBAAI,CAAC,MAAKb,KAAV,EAAiB;AACb,wBAAI,MAAKc,IAAT,EAAe;AACX,8BAAKC,cAAL,CAAoB,KAApB;AACH,qBAFD,MAEO;AACH,8BAAKC,eAAL,CAAqB,KAArB;AACH;AACJ;AACJ,aAXgB,CAAjB;;AAaA,iBAAK5D,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAOoK,yBAApB,EAA+C,UAAClK,OAAD,EAAa;;AAE1E,sBAAKmK,kBAAL,GAA0BnK,QAAQoK,MAAlC;AACA,oBAAI,MAAKD,kBAAT,EAA6B;AACzB,wBAAIE,MAAM/J,EAAE,MAAKgK,UAAP,EAAmBC,KAAnB,KAA6B,GAAvC;AACAjK,sBAAE,MAAKkK,cAAP,EAAuBD,KAAvB,CAA6BF,GAA7B;AACA/J,sBAAE,MAAKkK,cAAP,EAAuBC,QAAvB,CAAgC,iBAAhC,EAAmDF,KAAnD,CAAyDF,GAAzD;AACH,iBAJD,MAIO;AACH/J,sBAAE,MAAKkK,cAAP,EAAuBE,GAAvB,CAA2B,OAA3B,EAAoC,MAApC;AACApK,sBAAE,MAAKkK,cAAP,EAAuBC,QAAvB,CAAgC,iBAAhC,EAAmDC,GAAnD,CAAuD,OAAvD,EAAgE,MAAhE;AACH;AACJ,aAXiB,CAAlB;;AAaA,iBAAKC,UAAL,GAAkB9K,GAAGD,SAAH,CAAaE,OAAO8K,0BAApB,EAAgD,UAAC5K,OAAD,EAAa;AAC3E,sBAAKqJ,QAAL,CAAcwB,MAAd,CAAqB,CAArB,EAAwB,CAAxB,EAA2B7K,QAAQ8K,OAAnC;AACH,aAFiB,CAAlB;;AAIA,iBAAKC,UAAL,GAAkBlL,GAAGD,SAAH,CAAaE,OAAOkL,gCAApB,EAAsD,UAAChL,OAAD,EAAa;;AAEjF,sBAAKiL,YAAL,CAAkBjL,QAAQkL,QAA1B;AACH,aAHiB,CAAlB;;AAKA,iBAAKC,UAAL,GAAkBtL,GAAGD,SAAH,CAAaE,OAAOsL,0BAApB,EAAgD,UAACpL,OAAD,EAAa;;AAE3E,oBAAI,CAAC,MAAK+J,IAAN,IAAe/J,QAAQ8K,OAAR,CAAgB3G,IAAhB,IAAwB,MAAKN,MAAhD,EAAyD;AACrDgF,2BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0B,MAAKhB,SAAL,CAAeV,QAAzC,CAAlB;AACH;;AAED,sBAAK2B,QAAL,aAAoB,MAAKA,QAAzB;AAEH,aARiB,CAAlB;;AAUA,iBAAKiC,UAAL,GAAkBzL,GAAGD,SAAH,CAAaE,OAAOyL,yBAApB,EAA+C,UAACvL,OAAD,EAAa;;AAE1E,sBAAKqJ,QAAL,CAAcwB,MAAd,CAAqB,CAArB,EAAwB,CAAxB,EAA2B7K,QAAQ8K,OAAnC;AAEH,aAJiB,CAAlB;;AAMA,iBAAKU,UAAL,GAAkB3L,GAAGD,SAAH,CAAaE,OAAO2L,yBAApB,EAA+C,UAACzL,OAAD,EAAa;;AAE1E,oBAAI,CAAC,MAAK+J,IAAN,IAAe/J,QAAQ8K,OAAR,CAAgB3G,IAAhB,IAAwB,MAAKN,MAAhD,EAAyD;AACrDgF,2BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0B,MAAKhB,SAAL,CAAeV,QAAzC,CAAlB;AACH;;AAED,sBAAK2B,QAAL,GAAgB1I,EAAE+K,MAAF,CAAS,MAAKrC,QAAd,EAAwB,EAAEpB,IAAIjI,QAAQ8K,OAAR,CAAgB7C,EAAtB,EAAxB,CAAhB;AAEH,aARiB,CAAlB;;AAUA,iBAAK0D,UAAL,GAAkB9L,GAAGD,SAAH,CAAaE,OAAO8L,6BAApB,EAAmD,UAAC5L,OAAD,EAAa;;AAE9E,oBAAIA,QAAQ6L,IAAR,CAAaC,QAAjB,EAA2B;AACvB,0BAAKC,sBAAL,CAA4B,MAAKC,MAAL,GAAc,MAAKA,MAAnB,GAA4B,GAAxD;AACA,2BAAOhM,QAAQ6L,IAAR,CAAaC,QAApB;AACA,0BAAKE,MAAL,GAAc,IAAd;AACH;AAEJ,aARiB,CAAlB;;AAUA,iBAAKC,UAAL,GAAkBpM,GAAGD,SAAH,CAAaE,OAAOoM,gCAApB,EAAsD,UAAClM,OAAD,EAAa;;AAEjF,oBAAI,MAAKmM,YAAL,IAAqBnM,QAAQoM,OAAjC,EAA0C;AACtC,yCAAKtC,KAAL;AACH;AAEJ,aANiB,CAAlB;;AAQA,iBAAKuC,WAAL,GAAmBxM,GAAGD,SAAH,CAAaE,OAAOwM,4BAApB,EAAkD,UAACtM,OAAD,EAAa;;AAE9E,sBAAKuM,QAAL,CAAcvM,QAAQ2H,MAAtB;AAEH,aAJkB,CAAnB;AAKH;;6BAKDvH,2BAAS;;AAEL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACA,iBAAKsK,UAAL,CAAgBtK,OAAhB;AACA,iBAAK0K,UAAL,CAAgB1K,OAAhB;AACA,iBAAK8K,UAAL,CAAgB9K,OAAhB;AACA,iBAAKiL,UAAL,CAAgBjL,OAAhB;AACA,iBAAKmL,UAAL,CAAgBnL,OAAhB;AACA,iBAAKsL,UAAL,CAAgBtL,OAAhB;AACA,iBAAK4L,UAAL,CAAgB5L,OAAhB;AACA,iBAAKgM,WAAL,CAAiBhM,OAAjB;;AAEAkG,0BAAc,KAAKC,YAAnB;AACA,iCAAKgG,IAAL;AACH;;6BASDhI,6BAASC,QAAQC,aAAaC,uBAAuB;AAAA;;AAEjD,iBAAK8H,MAAL;;AAEA,iBAAKT,MAAL,GAAcvH,OAAOwD,EAArB;AACA,iBAAKvD,WAAL,GAAmBA,WAAnB;;AAEA,gBAAI,KAAKgI,MAAT,EAAiB;AACb,qBAAKC,SAAL,GAAiB,KAAKD,MAAtB;AACH;AACD,iBAAKA,MAAL,GAAc3E,MAAM2E,MAAN,GAAejI,OAAOiD,QAApC;;AAEA5D,4BAAgBA,aAAa8I,OAAb,CAAqB9M,OAAOkE,yBAA5B,EAAuD,KAAK0I,MAA5D,CAAhB;;AAEA,iBAAK3C,IAAL,GAAYhC,MAAMgC,IAAN,GAAapJ,EAAEkM,UAAF,CAAapI,OAAOiD,QAApB,EAA8B,GAA9B,CAAzB;AACA,iBAAK7D,MAAL,GAAckE,MAAMlE,MAAN,GAAe0E,MAAMuE,WAAN,CAAkBrI,OAAOiD,QAAzB,CAA7B;;AAEA,gBAAI,KAAKsE,MAAT,EAAiB;AACbe,wBAAQC,YAAR,CAAqB,IAArB,EAA2B,EAA3B,EAA+BzE,MAAM0E,cAAN,CAAqB,IAArB,CAA/B;AACH;;AAED,mBAAOlI,QAAQoD,GAAR,CAAY,CAAC,sBAAYC,SAAZ,CAAsB,KAAtB,EAA6B3C,IAA7B,CAAkC,UAAC4C,IAAD,EAAU;AACxD,uBAAKD,SAAL,GAAiBC,IAAjB;AACAN,sBAAMK,SAAN,GAAkBC,IAAlB;AACAN,sBAAMO,OAAN,GAAgBC,MAAMC,WAAN,CAAkB,OAAKJ,SAAvB,CAAhB;AACAL,sBAAMU,OAAN,GAAgBF,MAAMG,WAAN,CAAkB,OAAKN,SAAvB,CAAhB;AACH,aALe,CAAD,EAMf,sBAAYO,SAAZ,CAAsB,KAAtB,EAA6BlD,IAA7B,CAAkC,UAACmD,KAAD,EAAW;AACzC,uBAAKA,KAAL,GAAaA,KAAb;AACAb,sBAAMa,KAAN,GAAcA,KAAd;AACAC,uBAAOC,QAAP,GAAkBF,KAAlB;AACA,oBAAI,OAAKmB,IAAT,EAAe;AACX,2BAAKe,OAAL,GAAe,IAAf;AACA,2BAAKzC,IAAL,GAAY1H,EAAEmG,IAAF,CAAO,OAAK8B,KAAZ,EAAmB;AAC3BlB,kCAAU,OAAK7D;AADY,qBAAnB,CAAZ;;AAIA,wBAAI,OAAKwE,IAAT,EAAe;AACX,4BAAIlE,OAAO,OAAKkE,IAAL,GAAY,OAAKA,IAAL,CAAUlE,IAAtB,GAA6B,OAAKN,MAA7C;AACAa,oCAAYqB,QAAZ,CAAqBC,QAArB,CAAiC7B,IAAjC;;AAEA,+BAAK6F,cAAL,CAAoB,IAApB;AACH,qBALD,MAKO;AACHP,+BAAOE,KAAP,+BAAqB,OAAK9F,MAA1B;AACA,4BAAI,OAAK8I,SAAT,EAAoB;AAChB9D,mCAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyB,OAAKuD,SAA9B,CAAlB;AACH,yBAFD,MAEO;AACH9D,mCAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0B,OAAKhB,SAAL,CAAeV,QAAzC,CAAlB;AACH;AACJ;AAEJ;AACJ,aAzBD,CANe,EAgCf,sBAAYwF,YAAZ,CAAyB,KAAzB,EAAgCzH,IAAhC,CAAqC,UAAC4D,QAAD,EAAc;AAC/C,uBAAKA,QAAL,GAAgBA,QAAhB;AACAtB,sBAAMsB,QAAN,GAAiBA,QAAjB;AACA,oBAAI,CAAC,OAAKU,IAAV,EAAgB;AACZ,2BAAK1B,IAAL,GAAY,IAAZ;AACA,2BAAKyC,OAAL,GAAenK,EAAEmG,IAAF,CAAO,OAAKuC,QAAZ,EAAsB;AACjClF,8BAAM,OAAKN;AADsB,qBAAtB,CAAf;;AAIA,wBAAI,OAAKiH,OAAT,EAAkB;AACdpG,oCAAYqB,QAAZ,CAAqBC,QAArB,CAAiC,OAAK8E,OAAL,CAAaxG,KAA9C;;AAEA,+BAAK2F,eAAL,CAAqB,IAArB;AACH,qBAJD,MAIO;AACHR,+BAAOE,KAAP,+BAAqB,OAAK9F,MAA1B;AACA,4BAAI,OAAK8I,SAAT,EAAoB;AAChB9D,mCAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyB,OAAKuD,SAA9B,CAAlB;AACH,yBAFD,MAEO;AACH9D,mCAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0B,OAAKhB,SAAL,CAAeV,QAAzC,CAAlB;AACH;AACJ;AACJ;AACJ,aAtBD,CAhCe,CAAZ,CAAP;AAyDH;;6BAED+E,2BAAS;AACL,iBAAKU,aAAL,GAAqB,CAArB;AACA,iBAAKC,KAAL,GAAa,IAAb;AACA,iBAAKnE,KAAL,GAAa,IAAb;AACA,iBAAKC,IAAL,GAAY,IAAZ;AACH;;6BAEDmE,6CAAkB;AAAA;;AAEd,gBAAI7H,QAAQ7E,EAAEsI,KAAF,CAAQ,KAAKmE,KAAb,EAAoBnF,EAAhC;;AAEA,gBAAI/G,YAAJ;AACA,gBAAIoM,aAAJ;AACA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACHpE,0BAAM,IADH;AAEH1D,2BAAOA,KAFJ;AAGH+H,0BAAM,EAHH;AAIH1J,4BAAQ,KAAKA;AAJV,iBAAP;AAMH,aARD,MAQO;AACH3C;AACAoM,uBAAO;AACHpE,0BAAM,IADH;AAEH1D,2BAAOA,KAFJ;AAGH+H,0BAAM,EAHH;AAIHC,+BAAW,KAAK1C,OAAL,CAAa7C;AAJrB,iBAAP;AAMH;AACD,iBAAKwF,SAAL,GAAiBnN,EAAEoN,GAAF,CAAMxM,GAAN,EAAWoM,IAAX,EAAiB,UAACA,IAAD,EAAU;AACxC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK0D,KAAL,GAAazM,EAAEgN,OAAF,CAAUhN,EAAEiN,OAAF,CAAUN,KAAKA,IAAf,CAAV,EAAgC,OAAKF,KAArC,CAAb;AACA,2BAAKlE,IAAL,GAAaoE,KAAKO,IAAL,CAAU,CAAV,IAAeP,KAAKA,IAAL,CAAUtL,MAAzB,IAAmC,CAAhD;AACA,qBAAC,OAAKkH,IAAN,KAAe,OAAK4E,OAAL,GAAeR,KAAKO,IAAL,CAAU,CAAV,IAAeP,KAAKA,IAAL,CAAUtL,MAAvD;AACA,2BAAK+J,sBAAL,CAA4BvG,KAA5B;AACH,iBALD,MAKO;AACHiE,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aATgB,CAAjB;AAUH;;6BAEDS,+CAAmB;AAAA;;AAEf,gBAAIvI,QAAQ7E,EAAEuI,IAAF,CAAO,KAAKkE,KAAZ,EAAmBnF,EAA/B;AACA,gBAAI/G,YAAJ;AACA,gBAAIoM,aAAJ;AACA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACHpE,0BAAM,KADH;AAEH1D,2BAAOA,KAFJ;AAGH+H,0BAAM,EAHH;AAIH1J,4BAAQ,KAAKA;AAJV,iBAAP;AAMH,aARD,MAQO;AACH3C;AACAoM,uBAAO;AACHpE,0BAAM,KADH;AAEH1D,2BAAOA,KAFJ;AAGH+H,0BAAM,EAHH;AAIHC,+BAAW,KAAK1C,OAAL,CAAa7C;AAJrB,iBAAP;AAMH;AACD,iBAAK+F,SAAL,GAAiB1N,EAAEoN,GAAF,CAAMxM,GAAN,EAAWoM,IAAX,EAAiB,UAACA,IAAD,EAAU;AACxC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK0D,KAAL,GAAazM,EAAEgN,OAAF,CAAU,OAAKP,KAAf,EAAsBE,KAAKA,IAA3B,CAAb;AACA,2BAAKrE,KAAL,GAAcqE,KAAKO,IAAL,CAAU,CAAV,IAAeP,KAAKA,IAAL,CAAUtL,MAAzB,IAAmC,CAAjD;AACA,qBAAC,OAAKiH,KAAN,KAAgB,OAAKgF,QAAL,GAAgBX,KAAKO,IAAL,CAAU,CAAV,IAAeP,KAAKA,IAAL,CAAUtL,MAAzD;AACA,2BAAK+J,sBAAL,CAA4BvG,KAA5B;AACH,iBALD,MAKO;AACHiE,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aATgB,CAAjB;AAUH;;6BAGDrD,2CAAgBiE,cAAc;AAAA;;AAE1B,gBAAIZ,OAAO;AACPC,sBAAM,EADC;AAEPC,2BAAW,KAAK1C,OAAL,CAAa7C;AAFjB,aAAX;;AAMA,gBAAI,KAAK+D,MAAL,IAAekC,YAAnB,EAAiC;AAC7BZ,qBAAKrF,EAAL,GAAU,KAAK+D,MAAf;AACH;;AAED1L,cAAEoN,GAAF,CAAM,4BAAN,EAAoCJ,IAApC,EAA0C,UAACA,IAAD,EAAU;AAChD,uBAAKa,YAAL,CAAkBb,IAAlB;AACH,aAFD;AAGH;;6BAGDtD,yCAAekE,cAAc;AAAA;;AAEzB,gBAAIZ,OAAO;AACPC,sBAAM,EADC;AAEP1J,wBAAQ,KAAKA;AAFN,aAAX;;AAMA,gBAAI,KAAKmI,MAAL,IAAekC,YAAnB,EAAiC;AAC7BZ,qBAAKrF,EAAL,GAAU,KAAK+D,MAAf;AACH;AACD1L,cAAEoN,GAAF,CAAM,yBAAN,EAAiCJ,IAAjC,EAAuC,UAACA,IAAD,EAAU;AAC7C,uBAAKa,YAAL,CAAkBb,IAAlB;AACH,aAFD;AAGH;;6BAGDa,qCAAab,MAAM;AACf,gBAAIA,KAAK5D,OAAT,EAAkB;AACd,qBAAK0D,KAAL,GAAazM,EAAEiN,OAAF,CAAUN,KAAKA,IAAL,CAAUzF,OAApB,CAAb;AACA,oBAAIuG,WAAWzN,EAAEuI,IAAF,CAAO,KAAKkE,KAAZ,CAAf;AACAgB,6BAAaA,SAAStC,QAAT,GAAoB,IAAjC;AACA,qBAAK5C,IAAL,GAAYoE,KAAKA,IAAL,CAAUpE,IAAtB;AACA,qBAAKD,KAAL,GAAaqE,KAAKA,IAAL,CAAUrE,KAAvB;AACA,iBAAC,KAAKC,IAAN,KAAe,KAAK4E,OAAL,GAAeR,KAAKA,IAAL,CAAUe,aAAV,GAA0Bf,KAAKA,IAAL,CAAUgB,gBAAlE;AACA,iBAAC,KAAKrF,KAAN,KAAgB,KAAKgF,QAAL,GAAgBX,KAAKA,IAAL,CAAUC,IAAV,GAAiBD,KAAKA,IAAL,CAAUhM,MAA3D;AACH;AACJ;;6BAEDiN,+BAAUpO,IAAI;AACV,gBAAIA,MAAM,GAAV,EAAe;AACXG,kBAAE,KAAKkO,WAAP,EAAoBC,MAApB,CAA2B,iBAA3B,EAA8ClC,QAA9C,CAAuD,KAAvD;AACH,aAFD,MAEO,IAAIpM,MAAM,GAAV,EAAe;AAClBG,kBAAE,KAAKkO,WAAP,EAAoBC,MAApB,CAA2B,iBAA3B,EAA8ClC,QAA9C,CAAuD,CAAvD;AACH,aAFM,MAEA;AACH,oBAAI5L,EAAE+N,IAAF,CAAO,KAAKtB,KAAZ,EAAmB,EAAEnF,IAAI,CAAC9H,EAAP,EAAnB,CAAJ,EAAqC;AACjCG,sBAAE,KAAKkO,WAAP,EAAoBC,MAApB,CAA2B,iBAA3B,EAA8ClC,QAA9C,wBAA4EpM,EAA5E,SAAoF;AAChF6I,gCAAQ,KAAKA;AADmE,qBAApF;AAGA1I,sBAAE,KAAKkO,WAAP,EAAoB1H,IAApB,sBAA8C6H,WAA9C,CAA0D,QAA1D;AACArO,sBAAE,KAAKkO,WAAP,EAAoB1H,IAApB,uBAA6C3G,EAA7C,QAAoDyO,QAApD,CAA6D,QAA7D;AACH,iBAND,MAMO;AACHtO,sBAAE,KAAKkO,WAAP,EAAoBC,MAApB,CAA2B,iBAA3B,EAA8ClC,QAA9C,CAAuD,KAAvD;AACA9C,2BAAOoF,OAAP,mBAAqB1O,EAArB;AACH;AACJ;AACJ;;6BAED4L,yDAAuB5L,IAAI;AAAA;;AACvBQ,cAAEmO,KAAF,CAAQ,YAAM;AACV,oBAAIC,YAAJ,CAAiB,OAAKP,WAAtB,EAAmCQ,MAAnC,CAA0C,YAAM;AAC5C,2BAAKT,SAAL,CAAepO,EAAf;AACH,iBAFD;;AAIA,uBAAKoO,SAAL,CAAepO,EAAf;AACH,aAND;AAQH;;6BAED8O,2BAAS;AAAA;;AACL,iCAAKzJ,KAAL,CAAW,UAAC0J,OAAD,EAAUC,MAAV,EAAqB;AAC5B,uBAAKC,UAAL,CAAgBF,OAAhB,EAAyBC,MAAzB;AACA,uBAAKE,KAAL,CAAWH,OAAX,EAAoBC,MAApB;AACH,aAHD;AAIH;;6BAEDE,uBAAMH,SAASC,QAAQ;AAAA;;AAEnB,gBAAIf,WAAWzN,EAAEuI,IAAF,CAAO,KAAKkE,KAAZ,CAAf;;AAEA,gBAAI,KAAKkC,WAAL,IAAoB,KAAKvF,IAAzB,IAAiC,CAAC,KAAKe,OAAvC,IAAkD,CAACsD,QAAvD,EAAiE;AAC7D;AACH;;AAED,iBAAKkB,WAAL,GAAmB,IAAnB;;AAEAhP,cAAEoN,GAAF,CAAM,0BAAN,EAAkC;AAC9BF,2BAAW,KAAK1C,OAAL,CAAa7C,EADM;AAE9BsH,mCAAmBnB,SAASnG,EAFE;AAG9B8B,sBAAM;AAHwB,aAAlC,EAIG,UAACuD,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;;AAEd,wBAAI,OAAK8F,OAAL,IAAgBlC,KAAKA,IAAL,CAAUkC,OAAV,GAAoB,OAAKA,OAA7C,EAAsD;AAClD,4BAAIC,MAAMnC,KAAKA,IAAL,CAAUkC,OAAV,GAAoB,OAAKA,OAAnC;AACAE,6BAAKC,MAAL,CAAY,YAAZ,EAA0B;AACtBC,mDAAWH,GAAX,qCADsB;AAEtBI,kCAAM;AACFC,qCAAK,iBADH;AAEFC,qCAAK;AAFH,6BAFgB;AAMtBC,qCAAS;AANa,yBAA1B;AAQH;AACD,2BAAKR,OAAL,GAAelC,KAAKA,IAAL,CAAUkC,OAAzB;AACA3P,uBAAG2H,OAAH,CAAW1H,OAAOmQ,sBAAlB,EAA0C;AACtCT,iCAASlC,KAAKA,IAAL,CAAUkC,OADmB;AAEtCU,+CAAuB5C,KAAKA,IAAL,CAAU4C;AAFK,qBAA1C;AAIH;AACJ,aAxBD,EAwBGlB,MAxBH,CAwBU,YAAM;AACZ,uBAAKM,WAAL,GAAmB,KAAnB;AACH,aA1BD;AA2BH;;6BAGDF,iCAAWF,SAASC,QAAQ;AAAA;;AAExB,gBAAI,KAAKgB,gBAAL,IAAyB,CAAC,KAAK/C,KAA/B,IAAwC,CAAC,KAAKnE,KAAlD,EAAyD;AACrD;AACH;;AAED,gBAAImF,WAAWzN,EAAEuI,IAAF,CAAO,KAAKkE,KAAZ,CAAf;;AAEA,gBAAIlM,YAAJ;AACA,gBAAIoM,aAAJ;;AAEA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACHrF,wBAAImG,WAAWA,SAASnG,EAApB,GAAyB,CAD1B;AAEHpE,4BAAQ,KAAKA;AAFV,iBAAP;AAIH,aAND,MAMO;AACH3C;AACAoM,uBAAO;AACHrF,wBAAImG,WAAWA,SAASnG,EAApB,GAAyB,CAD1B;AAEHuF,+BAAW,KAAK1C,OAAL,CAAa7C;AAFrB,iBAAP;AAIH;;AAED,iBAAKkI,gBAAL,GAAwB,IAAxB;;AAEA7P,cAAEoN,GAAF,CAAMxM,GAAN,EAAWoM,IAAX,EAAiB,UAACA,IAAD,EAAU;AACvB,oBAAIA,KAAK5D,OAAT,EAAkB;;AAEd,wBAAI,CAAC,QAAK0G,kBAAL,CAAwB9C,IAAxB,CAAL,EAAoC;AAChC;AACH;;AAED,4BAAK+C,gBAAL,CAAsB/C,IAAtB;;AAEA,4BAAKF,KAAL,GAAazM,EAAEgN,OAAF,CAAU,QAAKP,KAAf,EAAsBE,KAAKA,IAA3B,EAAiC,IAAjC,CAAb;AACA,4BAAKvB,sBAAL,CAA4B,GAA5B;AACH,iBAVD,MAUO;AACHtC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAdD,EAcGgD,IAdH,CAcQ,UAACC,GAAD,EAAMC,GAAN,EAAc;AAClBrB;AACA5G,sBAAMkI,YAAN,CAAmB,YAAM;AACrBvB;AACH,iBAFD;AAGH,aAnBD,EAmBGF,MAnBH,CAmBU,YAAM;AACZ,wBAAKmB,gBAAL,GAAwB,KAAxB;AACH,aArBD;AAsBH;;6BAEDE,6CAAiB/C,MAAM;AAAA;;AAEnB,gBAAIA,KAAKA,IAAL,CAAUtL,MAAV,IAAoB,CAAxB,EAA2B;AACvB,uBAAO,KAAP;AACH;;AAED,gBAAI0O,SAAS/P,EAAE+N,IAAF,CAAOpB,KAAKA,IAAZ,EAAkB,UAACzB,IAAD,EAAU;AACrC,uBAAOA,KAAK8E,OAAL,CAAajJ,QAAb,IAAyB,QAAKU,SAAL,CAAeV,QAA/C;AACH,aAFY,CAAb;;AAIA,gBAAI,CAACgJ,MAAL,EAAa;AACThB,qBAAKC,MAAL,CAAY,aAAZ,EAA2B;AACvBC,4CAAY,KAAK9E,OAAL,CAAaxG,KAAzB,qCADuB;AAEvBuL,0BAAM;AACFC,6BAAK,iBADH;AAEFC,6BAAK;AAFH,qBAFiB;AAMvBC,6BAAS;AANc,iBAA3B;AAQH;AACJ;;6BAEDI,iDAAmB9C,MAAM;;AAErB,gBAAIA,KAAKA,IAAL,CAAUtL,MAAV,IAAoB,CAAxB,EAA2B;AACvB,uBAAO,KAAP;AACH;;AAED,gBAAI4O,OAAOjQ,EAAEsI,KAAF,CAAQqE,KAAKA,IAAb,CAAX;AACA,mBAAO,KAAKvD,IAAL,GAAYpJ,EAAEkQ,GAAF,CAAMD,IAAN,EAAY,QAAZ,CAAZ,GAAoCjQ,EAAEkQ,GAAF,CAAMD,IAAN,EAAY,SAAZ,CAA3C;AACH;;6BAMDE,qBAAKC,KAAK;;AAEN,iBAAK9B,MAAL;AACH;;6BAKDxI,+BAAW;AAAA;;AAEP,gBAAIC,KAAKC,SAAT;AACA,iBAAKH,YAAL,GAAoBI,YAAY,YAAM;AAClCtG,kBAAE,QAAK0Q,gBAAP,EAAyBlK,IAAzB,CAA8B,gBAA9B,EAAgDC,IAAhD,CAAqD,UAACC,KAAD,EAAQC,EAAR,EAAe;AAChE3G,sBAAE2G,EAAF,EAAMvE,IAAN,CAAWgE,GAAGhD,MAAH,CAAUpD,EAAE2G,EAAF,EAAMC,IAAN,CAAW,cAAX,CAAV,EAAsC,OAAtC,CAAX;AACH,iBAFD;AAGH,aAJmB,EAIjB,IAJiB,CAApB;;AAMA,iBAAK+J,WAAL;AACA,iBAAKC,kBAAL;;AAEA5Q,cAAE,KAAK6L,YAAP,EAAqBhF,EAArB,CAAwB,YAAxB,EAAsC,uBAAtC,EAA+D,UAACC,KAAD,EAAW;AACtEA,sBAAMC,cAAN;AACA,oBAAI8J,QAAQ7Q,EAAE8G,MAAMG,aAAR,CAAZ;AACA,wBAAK6J,YAAL,GAAoBD,KAApB;AACA,wBAAKE,UAAL,GAAkB,CAAC9I,MAAM+I,mBAAN,CAA0BH,MAAM1G,QAAN,CAAe,iBAAf,CAA1B,CAAnB;AACA,oBAAI8G,QAAQJ,MAAMK,IAAN,CAAW,uBAAX,CAAZ;AACA,oBAAID,MAAMhE,IAAN,OAAiB,CAArB,EAAwB;AACpB,4BAAKkE,UAAL,GAAkB,CAAClJ,MAAM+I,mBAAN,CAA0BC,MAAM9G,QAAN,CAAe,iBAAf,CAA1B,CAAnB;AACH,iBAFD,MAEO;AACH,4BAAKgH,UAAL,GAAkB,KAAlB;AACH;AACJ,aAXD,EAWGtK,EAXH,CAWM,YAXN,EAWoB,UAACC,KAAD,EAAW;AAC3BA,sBAAMC,cAAN;AACA,wBAAKgK,UAAL,GAAkB,KAAlB;AACA,wBAAKI,UAAL,GAAkB,KAAlB;AACH,aAfD;;AAiBAnR,cAAE,KAAKkO,WAAP,EAAoBrH,EAApB,CAAuB,OAAvB,EAAgC,UAAhC,EAA4C,UAASC,KAAT,EAAgB;AACxDA,sBAAMC,cAAN;AACA,oBAAIqK,OAAOpR,EAAE,IAAF,CAAX;AACAoR,qBAAK9C,QAAL,CAAc,gBAAd;AACA+C,2BAAW,YAAW;AAClBD,yBAAK/C,WAAL,CAAiB,gBAAjB;AACH,iBAFD,EAEG,GAFH;AAGH,aAPD;;AASArO,cAAE,KAAK0Q,gBAAP,EAAyB7J,EAAzB,CAA4B,OAA5B,EAAqC,iBAArC,EAAwD,UAASC,KAAT,EAAgB;AACpE,oBAAIA,MAAMwK,OAAV,EAAmB;AACfxK,0BAAMyK,wBAAN;AACAzK,0BAAMC,cAAN;AACA,0CAAUyK,IAAV,CAAexR,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,WAA5B,CAAf,EAAyDzB,IAAzD,CACI,YAAM;AAAEgE,+BAAOC,OAAP,CAAe,WAAf;AAA8B,qBAD1C,EAEI,UAACqI,GAAD,EAAS;AAAEtI,+BAAOE,KAAP,CAAa,WAAb;AAA4B,qBAF3C;AAIH;AACJ,aATD;;AAWArJ,cAAE,KAAK0Q,gBAAP,EAAyB7J,EAAzB,CAA4B,OAA5B,EAAqC,mBAArC,EAA0D,UAASC,KAAT,EAAgB;AACtE,oBAAIA,MAAMwK,OAAV,EAAmB;AACfxK,0BAAMyK,wBAAN;AACAzK,0BAAMC,cAAN;AACA,0CAAUyK,IAAV,CAAexR,EAAE8G,MAAMG,aAAR,EAAuBT,IAAvB,CAA4B,wBAA5B,EAAsDI,IAAtD,CAA2D,qBAA3D,CAAf,EAAkGzB,IAAlG,CACI,YAAM;AAAEgE,+BAAOC,OAAP,CAAe,WAAf;AAA8B,qBAD1C,EAEI,UAACqI,GAAD,EAAS;AAAEtI,+BAAOE,KAAP,CAAa,WAAb;AAA4B,qBAF3C;AAIH;AACJ,aATD;;AAWArJ,cAAE,6CAAF,EAAiD0R,MAAjD,CAAwDrR,EAAEsR,QAAF,CAAW,UAAC7K,KAAD,EAAW;AAC1E,oBAAI;AACA,wBAAI8K,UAAU5R,EAAE8G,MAAMG,aAAR,EAAuB,CAAvB,EAA0B4K,YAAxC;AACA,wBAAIC,OAAO9R,EAAE8G,MAAMG,aAAR,EAAuB,CAAvB,EAA0B8K,SAArC;;AAEA,wBAAIC,QAAQF,OAAO,GAAP,IAAcF,UAAU5R,EAAE8G,MAAMG,aAAR,EAAuBgL,WAAvB,EAAxB,CAAZ;AACA,4BAAKpF,aAAL,GAAqB7M,EAAE8G,MAAMG,aAAR,EAAuBiL,UAAvB,KAAsCF,KAA3D;AACH,iBAND,CAME,OAAOP,GAAP,EAAY;AAAE,4BAAK5E,aAAL,GAAqB,CAArB;AAAyB;AAE5C,aATuD,EASrD,EATqD,CAAxD;AAWH;;6BAEDsF,yCAAgB;AAAA;;AACZ,iBAAKlG,QAAL,CAAc,KAAK6E,YAAnB,EAAiC,GAAjC,EAAsC,YAAM;AAAE,wBAAKC,UAAL,GAAkB,KAAlB;AAA0B,aAAxE;AACH;;6BAEDqB,yCAAgB;AAAA;;AACZ,iBAAKnG,QAAL,CAAc,KAAK6E,YAAL,CAAkBI,IAAlB,EAAd,EAAwC,GAAxC,EAA6C,YAAM;AAAE,wBAAKC,UAAL,GAAkB,KAAlB;AAA0B,aAA/E;AACH;;6BAEDP,mDAAqB;AAAA;;AACjB5Q,cAAE,KAAKkO,WAAP,EAAoBrH,EAApB,CAAuB,OAAvB,EAAgC,eAAhC,EAAiD,UAACC,KAAD,EAAW;AACxD,wBAAKuL,cAAL,GAAsBrS,EAAE8G,MAAMG,aAAR,CAAtB;AACH,aAFD,EAEGJ,EAFH,CAEM,UAFN,EAEkB,eAFlB,EAEmC,UAACC,KAAD,EAAW;AAC1C,oBAAIA,MAAMwK,OAAV,EAAmB;AAAA;AACf,4BAAIlF,SAASpM,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,SAA5B,CAAb;AACA,4BAAI0L,KAAKtS,EAAE8G,MAAMG,aAAR,EAAuBT,IAAvB,CAA4B,qBAA5B,CAAT;AACA,4BAAI+E,OAAOlL,EAAEmG,IAAF,CAAO,QAAKsG,KAAZ,EAAmB,EAAEnF,IAAI4K,OAAOC,QAAP,CAAgBpG,MAAhB,CAAN,EAAnB,CAAX;;AAEA,4BAAI,CAACb,KAAKkH,QAAN,IAAmBlH,KAAK8E,OAAL,CAAajJ,QAAb,IAAyB,QAAKU,SAAL,CAAeV,QAA/D,EAA0E;AACtE;AAAA;AAAA;AACH;;AAEDpH,0BAAEoN,GAAF,mBAAqB,QAAK3D,IAAL,GAAY,QAAZ,GAAuB,SAA5C,YAA6D;AACzD9B,gCAAI4D,KAAK5D;AADgD,yBAA7D,EAEG,UAACqF,IAAD,EAAU;AACT,gCAAIA,KAAK5D,OAAT,EAAkB;AACd,oCAAImC,KAAKmH,OAAL,IAAgB1F,KAAKA,IAAL,CAAU0F,OAA9B,EAAuC;AACnCrS,sCAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACH;AACDzB,qCAAKoH,SAAL,GAAiB,IAAjB;AACApH,qCAAKqH,UAAL,GAAkBrH,KAAKhE,OAAvB;AACAlH,kCAAEmO,KAAF,CAAQ,YAAM;AACV8D,uCAAGO,KAAH,GAAWC,MAAX;AACAC,6CAASC,MAAT,CAAgBV,GAAGlF,GAAH,CAAO,CAAP,CAAhB;AACH,iCAHD;AAIH,6BAVD,MAUO;AACHjE,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AAEJ,yBAjBD;AATe;;AAAA;AA2BlB;AACJ,aA/BD;AAgCH;;6BAEDiG,yDAAuBC,QAAQ;AAC3B,gBAAIA,MAAJ,EAAY;AACR,oBAAI,KAAKb,cAAL,IAAuB,KAAKA,cAAL,CAAoBpF,IAApB,OAA+B,CAA1D,EAA6D;AACzD,wBAAIkG,UAAU,KAAKd,cAAL,CAAoB7L,IAApB,CAAyB,oBAAzB,CAAd;AACA,wBAAIyB,MAAM+I,mBAAN,CAA0BmC,OAA1B,CAAJ,EAAwC;AACpC,4BAAIC,OAAO,KAAKf,cAAL,CAAoBe,IAApB,CAAyB,eAAzB,CAAX;AACCA,6BAAKnG,IAAL,OAAgB,CAAjB,KAAwB,KAAKoF,cAAL,GAAsBe,IAA9C;AACH;AACJ,iBAND,MAMO;AACH,yBAAKf,cAAL,GAAsBrS,EAAE,KAAKkO,WAAP,EAAoB/D,QAApB,CAA6B,qBAA7B,CAAtB;AACH;AACJ,aAVD,MAUO;AACH,oBAAI,KAAKkI,cAAL,IAAuB,KAAKA,cAAL,CAAoBpF,IAApB,OAA+B,CAA1D,EAA6D;AACzD,wBAAIiE,OAAO,KAAKmB,cAAL,CAAoBnB,IAApB,CAAyB,eAAzB,CAAX;AACCA,yBAAKjE,IAAL,OAAgB,CAAjB,KAAwB,KAAKoF,cAAL,GAAsBnB,IAA9C;AACH,iBAHD,MAGO;AACH,yBAAKmB,cAAL,GAAsBrS,EAAE,KAAKkO,WAAP,EAAoB/D,QAApB,CAA6B,oBAA7B,CAAtB;AACH;AACJ;AACD,mBAAO,KAAKkI,cAAZ;AACH;;6BAEDpG,6BAAS5E,QAA+B;AAAA,gBAAvBgM,QAAuB,uEAAZ,CAAY;AAAA,gBAATC,OAAS;;AACpC,iBAAKjB,cAAL,GAAsBhL,MAAtB;AACArH,cAAE,KAAKkO,WAAP,EAAoBC,MAApB,CAA2B,iBAA3B,EAA8ClC,QAA9C,CAAuD5E,MAAvD,EAA+DgM,QAA/D,EAAyE;AACrE3K,wBAAQ,KAAKA,MADwD;AAErE4K,yBAASA;AAF4D,aAAzE;AAIH;;6BAED3C,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,QAA5B,EAAsC,UAACgD,GAAD,EAAS;AAC3CA,oBAAIzM,cAAJ;AACA/G,kBAAE,QAAKyT,cAAL,CAAoBC,gBAAtB,EAAwClN,IAAxC,CAA6C,UAA7C,EAAyDmN,KAAzD;AACH,aAHD,EAGGnD,IAHH,CAGQ,SAHR,EAGmB,QAHnB,EAG6B,UAACgD,GAAD,EAAS;AAClCA,oBAAIzM,cAAJ;AACA,wBAAK0M,cAAL,CAAoBG,cAApB,CAAmCC,IAAnC;AACH,aAND,EAMGrD,IANH,CAMQ,SANR,EAMmB,QANnB,EAM6B,UAACgD,GAAD,EAAS;AAClCA,oBAAIzM,cAAJ;AACA,wBAAKkF,QAAL,CAAc,QAAKgH,sBAAL,CAA4B,IAA5B,CAAd;AACH,aATD,EASGzC,IATH,CASQ,SATR,EASmB,UATnB,EAS+B,UAACgD,GAAD,EAAS;AACpCA,oBAAIzM,cAAJ;AACA,wBAAKkF,QAAL,CAAc,QAAKgH,sBAAL,EAAd;AACH,aAZD,EAYGzC,IAZH,CAYQ,SAZR,EAYmB,GAZnB,EAYwB,UAAC1J,KAAD,EAAW;AAC/BA,sBAAMC,cAAN;AACA,wBAAKkF,QAAL,CAAcjM,EAAE,QAAKkO,WAAP,EAAoB/D,QAApB,CAA6B,qBAA7B,CAAd;AACH,aAfD,EAeGqG,IAfH,CAeQ,SAfR,EAemB,GAfnB,EAewB,UAAC1J,KAAD,EAAW;AAC/BA,sBAAMC,cAAN;AACA,wBAAKkF,QAAL,CAAcjM,EAAE,QAAKkO,WAAP,EAAoB/D,QAApB,CAA6B,oBAA7B,CAAd;AACH,aAlBD;AAoBH;;6BAEDQ,qCAAaY,MAAM;;AAEf,gBAAI+E,OAAOjQ,EAAEmG,IAAF,CAAO,KAAKsG,KAAZ,EAAmB,EAAEnF,IAAI4D,KAAK5D,EAAX,EAAnB,CAAX;AACA,gBAAI2I,IAAJ,EAAU;AACN,qBAAK7E,sBAAL,CAA4BF,KAAK5D,EAAjC;AACH,aAFD,MAEO;;AAEH,oBAAIpE,eAAJ;AACA,oBAAI6I,eAAJ;;AAEA,oBAAIb,KAAKhI,MAAT,EAAiB;AACbA,6BAASgI,KAAKhI,MAAL,CAAY6D,QAArB;AACAgF,mCAAa7I,MAAb;AACH,iBAHD,MAGO,IAAIgI,KAAKf,OAAT,EAAkB;AACrBjH,6BAASgI,KAAKf,OAAL,CAAa3G,IAAtB;AACAuI,kCAAY7I,MAAZ;AACH;;AAED,oBAAI,KAAKA,MAAL,IAAeA,MAAnB,EAA2B;AACvB,yBAAKW,QAAL,CAAc;AACVyD,4BAAI4D,KAAK5D,EADC;AAEVP,kCAAUgF;AAFA,qBAAd,EAGG,KAAKhI,WAHR;AAIH,iBALD,MAKO;AACHmE,2BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyBsD,MAAzB,YAAsCb,KAAK5D,EAA3C,CAAlB;AACH;AACJ;AAEJ;;6BAEDmM,qDAAqBhN,OAAO;AACxBA,kBAAMyK,wBAAN;AACA,iBAAK7F,MAAL,GAAc,IAAd;AACA,gBAAI,KAAKjC,IAAT,EAAe;AACX,qBAAKC,cAAL,CAAoB,KAApB;AACH,aAFD,MAEO;AACH,qBAAKC,eAAL,CAAqB,KAArB;AACH;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCxuBCoK;;;;;8BAEIjM;kFAAUkM;;;;;;;sCAER,CAACA,QAAD,IAAa,CAAC,KAAKjM;;;;;;uCAGb/H,EAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AAC3C,wCAAIA,KAAK5D,OAAT,EAAkB;AACd,8CAAKrB,IAAL,GAAYiF,KAAKA,IAAjB;AACH;AACJ,iCAJK;;;iEAOH,KAAKjF;;;;;;;;;;;;;;;;;8BAGVM;oFAAU2L;;;;;;;sCAER,CAACA,QAAD,IAAa,CAAC,KAAK1L;;;;;;uCAGbtI,EAAEoN,GAAF,CAAM,iBAAN,EAAyB,EAAzB,EAEH,UAACJ,IAAD,EAAU;AACT,wCAAIA,KAAK5D,OAAT,EAAkB;AACd,+CAAKd,KAAL,GAAa0E,KAAKA,IAAlB;AACH;AACJ,iCANK;;;kEASH,KAAK1E;;;;;;;;;;;;;;;;;8BAGVsE;oFAAaoH;;;;;;;sCAEX,CAACA,QAAD,IAAa,CAAC,KAAKjL;;;;;;uCAGb/I,EAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AAC3C,wCAAIA,KAAK5D,OAAT,EAAkB;AACd,+CAAKL,QAAL,GAAgBiE,KAAKA,IAArB;AACH;AACJ,iCAJK;;;kEAQH,KAAKjE;;;;;;;;;;;;;;;;;;;;sBAIL,IAAIgL,WAAJ;;;;;ACnDfxL,WAAO/I,MAAP,GAAgB;AACZC,mCAA2B,2BADf;AAEZ8J,+BAAuB,uBAFX;AAGZ0K,oCAA4B,4BAHhB;AAIZrK,mCAA2B,2BAJf;AAKZsK,yCAAiC,iCALrB;AAMZxJ,0CAAkC,kCANtB;AAOZJ,oCAA4B,4BAPhB;AAQZQ,oCAA4B,4BARhB;AASZG,mCAA2B,2BATf;AAUZE,mCAA2B,2BAVf;AAWZgJ,kCAA0B,0BAXd;AAYZC,iDAAyC,yCAZ7B;AAaZ9I,uCAA+B,+BAbnB;AAcZM,0CAAkC,kCAdtB;AAeZyI,+BAAuB,uBAfX;AAgBZC,mCAA2B,2BAhBf;AAiBZnN,sCAA8B,8BAjBlB;AAkBZoN,iCAAyB,yBAlBb;AAmBZvI,sCAA8B,8BAnBlB;AAoBZ2D,gCAAwB,wBApBZ;AAqBZ6E,8BAAsB,sBArBV;AAsBZC,+BAAuB,uBAtBX;AAuBZC,qCAA6B,6BAvBjB;AAwBZC,oCAA4B,4BAxBhB;AAyBZC,gCAAwB,wBAzBZ;AA0BZC,kCAA0B,0BA1Bd;AA2BZC,iCAAyB,yBA3Bb;AA4BZC,mCAA2B,2BA5Bf;AA6BZC,kCAA0B,0BA7Bd;AA8BZpN,2BAAmB,mBA9BP;AA+BZqN,2BAAmB,mBA/BP;AAgCZC,4BAAoB,oBAhCR;AAiCZC,6BAAqB,qBAjCT;AAkCZC,4BAAoB,oBAlCR;AAmCZC,4BAAoB,oBAnCR;AAoCZC,4BAAoB,oBApCR;AAqCZtP,mCAA2B,2BArCf;AAsCZR,iCAAyB,yBAtCb;AAuCZ+P,iCAAyB,yBAvCb;AAwCZC,yBAAiB,iBAxCL;AAyCZC,oCAA4B,4BAzChB;AA0CZC,uCAA+B,+BA1CnB;AA2CZ9P,yCAAiC,iCA3CrB;AA4CZ+P,wCAAgC,gCA5CpB;AA6CZC,0CAAkC,kCA7CtB;AA8CZtO,uCAA+B,+BA9CnB;AA+CZuO,kCAA0B,0BA/Cd;AAgDZC,oCAA4B,4BAhDhB;AAiDZC,4BAAoB,oBAjDR;AAkDZC,0BAAkB,kBAlDN;AAmDZC,yBAAiB,iBAnDL;AAoDZC,wBAAgB,gBApDJ;AAqDZC,yBAAiB,iBArDL;AAsDZC,4BAAoB,oBAtDR;AAuDZC,8BAAsB,sBAvDV;AAwDZC,qCAA6B,EAxDjB;AAyDZC,8BAAsB,uBAzDV;AA0DZ7S,mCAA2B,2BA1Df;AA2DZ8S,4BAAoB,oBA3DR;AA4DZC,+BAAuB;AA5DX,KAAhB;;;;;;;ACAAlO,WAAOd,KAAP;AACIK,mBAAW,EADf;AAEIE,iBAAS,KAFb;AAGIG,iBAAS,KAHb;AAIIG,eAAO,EAJX;AAKIS,kBAAU,EALd;AAMI2N,mBAAW;AACPtP,sBAAU,KADH;AAEPuP,qBAAS,IAFF;AAGPC,mBAAO,EAHA;AAIP/S,kBAAM;AAJC,SANf;AAYI4F,cAAM,IAZV;AAaIlG,gBAAQ,IAbZ;AAcI6I,gBAAQ,IAdZ,+BAea,KAfb,6BAgBa,KAhBb,gBAiBI1E,MAjBJ,GAiBY,IAjBZ,gBAkBImP,eAlBJ,GAkBqB,KAlBrB;;;;;;;;;;;ACAA,GAAC,SAASC,gCAAT,CAA0CC,IAA1C,EAAgDC,OAAhD,EAAyD;AACxDD,SAAK,QAAL,IAAiBC,SAAjB;AACD,GAFD,EAEGzO,MAFH,EAEW,YAAW;AACtB,WAAiB,UAAS0O,OAAT,EAAkB;AAEzB,UAAIC,mBAAmB,EAAvB;;AAGA,eAASC,mBAAT,CAA6BrT,QAA7B,EAAuC;AAGrC,YAAGoT,iBAAiBpT,QAAjB,CAAH,EACE,OAAOoT,iBAAiBpT,QAAjB,EAA2BsT,OAAlC;;AAGF,YAAIC,SAASH,iBAAiBpT,QAAjB,IAA6B,EACxCsT,SAAS,EAD+B;AAExCzP,cAAI7D,QAFoC;AAGxCwT,kBAAQ;AAHgC,SAA1C;;AAOAL,gBAAQnT,QAAR,EAAkByT,IAAlB,CAAuBF,OAAOD,OAA9B,EAAuCC,MAAvC,EAA+CA,OAAOD,OAAtD,EAA+DD,mBAA/D;;AAGAE,eAAOC,MAAP,GAAgB,IAAhB;;AAGA,eAAOD,OAAOD,OAAd;AACD;;AAIDD,0BAAoBK,CAApB,GAAwBP,OAAxB;;AAGAE,0BAAoBM,CAApB,GAAwBP,gBAAxB;;AAGAC,0BAAoBO,CAApB,GAAwB,EAAxB;;AAGA,aAAOP,oBAAoB,CAApB,CAAP;AACA,KAxCM,CA0CN,CAEJ,UAASE,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;AAkBnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;;;AAGA,eAASC,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAIC,YAAYX,oBAAoB,CAApB,CAAhB;;AAEA,UAAIY,aAAaH,uBAAuBE,SAAvB,CAAjB;;AAEA,UAAIE,iBAAiBb,oBAAoB,CAApB,CAArB;;AAEA,UAAIc,YAAYd,oBAAoB,CAApB,CAAhB;;AAEA,UAAIe,YAAYf,oBAAoB,CAApB,CAAhB;;AAEA,UAAIgB,gBAAgBhB,oBAAoB,CAApB,CAApB;;AAEA,UAAIiB,WAAWjB,oBAAoB,CAApB,CAAf;;AAEA,UAAIkB,YAAYlB,oBAAoB,CAApB,CAAhB;;AAEA,UAAImB,cAAcnB,oBAAoB,CAApB,CAAlB;;AAEA,UAAIoB,eAAepB,oBAAoB,EAApB,CAAnB;;AAEA,UAAIqB,cAAcrB,oBAAoB,EAApB,CAAlB;;AAEA,UAAIsB,cAActB,oBAAoB,EAApB,CAAlB;;AAEAC,cAAQsB,IAAR,GAAeX,WAAW,SAAX,CAAf;AACAX,cAAQuB,SAAR,GAAoBX,eAAeW,SAAnC;AACAvB,cAAQwB,SAAR,GAAoBX,UAAUW,SAA9B;AACAxB,cAAQyB,kBAAR,GAA6BZ,UAAUY,kBAAvC;AACAzB,cAAQ0B,SAAR,GAAoBZ,UAAUY,SAA9B;AACA1B,cAAQ2B,gBAAR,GAA2Bb,UAAUa,gBAArC;AACA3B,cAAQ4B,aAAR,GAAwBb,cAAca,aAAtC;AACA5B,cAAQ6B,OAAR,GAAkBb,SAASa,OAA3B;AACA7B,cAAQ8B,QAAR,GAAmBb,UAAUa,QAA7B;AACA9B,cAAQ+B,eAAR,GAA0BZ,aAAaY,eAAvC;AACA/B,cAAQgC,mBAAR,GAA8Bb,aAAaa,mBAA3C;AACAhC,cAAQiC,WAAR,GAAsBd,aAAac,WAAnC;AACAjC,cAAQkC,UAAR,GAAqBhB,YAAYgB,UAAjC;AACAlC,cAAQmC,mBAAR,GAA8Bf,YAAYe,mBAA1C;AACAnC,cAAQoC,mBAAR,GAA8Bf,YAAYe,mBAA1C;AACApC,cAAQqC,YAAR,GAAuBpB,UAAUoB,YAAjC;AAGK,KArEG,EAuEJ,UAASpC,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ,SAAR,IAAqBsB,IAArB;;;AAGA,eAASd,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6B,WAAWvC,oBAAoB,CAApB,CAAf;;AAEA,UAAIwC,YAAY/B,uBAAuB8B,QAAvB,CAAhB;;AAEA,eAAShB,IAAT,CAAckB,gBAAd,EAAgC;AAC9B,aAAKA,gBAAL,GAAwBA,gBAAxB;AACD;;AAEDlB,WAAKmB,SAAL,GAAiB;AACfC,cAAM,SAASA,IAAT,CAAcC,SAAd,EAAyBC,SAAzB,EAAoCC,QAApC,EAA8C;AAClD,cAAIC,OAAO,IAAX;;AAEA,mBAASC,IAAT,CAAcC,KAAd,EAAqB;AACnB,gBAAIH,QAAJ,EAAc;AACZ5I,yBAAW,YAAY;AACrB4I,yBAASI,SAAT,EAAoBD,KAApB;AACD,eAFD,EAEG,CAFH;AAGA,qBAAO,IAAP;AACD,aALD,MAKO;AACL,qBAAOA,KAAP;AACD;AACF;;AAGDL,sBAAY,KAAKO,SAAL,CAAeP,SAAf,CAAZ;AACAC,sBAAY,KAAKM,SAAL,CAAeN,SAAf,CAAZ;;AAGA,cAAIA,cAAcD,SAAlB,EAA6B;AAC3B,mBAAOI,KAAK,CAAC,EAAEC,OAAOJ,SAAT,EAAD,CAAL,CAAP;AACD;AACD,cAAI,CAACA,SAAL,EAAgB;AACd,mBAAOG,KAAK,CAAC,EAAEC,OAAOL,SAAT,EAAoBQ,SAAS,IAA7B,EAAD,CAAL,CAAP;AACD;AACD,cAAI,CAACR,SAAL,EAAgB;AACd,mBAAOI,KAAK,CAAC,EAAEC,OAAOJ,SAAT,EAAoBQ,OAAO,IAA3B,EAAD,CAAL,CAAP;AACD;;AAEDR,sBAAY,KAAKS,WAAL,CAAiB,KAAKC,QAAL,CAAcV,SAAd,CAAjB,CAAZ;AACAD,sBAAY,KAAKU,WAAL,CAAiB,KAAKC,QAAL,CAAcX,SAAd,CAAjB,CAAZ;;AAEA,cAAIY,SAASX,UAAUtY,MAAvB;AAAA,cACIkZ,SAASb,UAAUrY,MADvB;AAEA,cAAImZ,aAAa,CAAjB;AACA,cAAIC,gBAAgBH,SAASC,MAA7B;AACA,cAAIG,WAAW,CAAC,EAAEC,QAAQ,CAAC,CAAX,EAAcC,YAAY,EAA1B,EAAD,CAAf;;AAGA,cAAIC,SAAS,KAAKC,aAAL,CAAmBJ,SAAS,CAAT,CAAnB,EAAgCf,SAAhC,EAA2CD,SAA3C,EAAsD,CAAtD,CAAb;AACA,cAAIgB,SAAS,CAAT,EAAYC,MAAZ,GAAqB,CAArB,IAA0BL,MAA1B,IAAoCO,SAAS,CAAT,IAAcN,MAAtD,EAA8D;AAE5D,mBAAOT,KAAK,CAAC,EAAEC,OAAOJ,UAAUoB,IAAV,CAAe,EAAf,CAAT,EAAD,CAAL,CAAP;AACD;;AAGD,mBAASC,cAAT,GAA0B;AACxB,iBAAK,IAAIC,eAAe,CAAC,CAAD,GAAKT,UAA7B,EAAyCS,gBAAgBT,UAAzD,EAAqES,gBAAgB,CAArF,EAAwF;AACtF,kBAAIC,WAAWlB,SAAf;AACA,kBAAImB,UAAUT,SAASO,eAAe,CAAxB,CAAd;AAAA,kBACIG,aAAaV,SAASO,eAAe,CAAxB,CADjB;AAAA,kBAEII,UAAU,CAACD,aAAaA,WAAWT,MAAxB,GAAiC,CAAlC,IAAuCM,YAFrD;AAGA,kBAAIE,OAAJ,EAAa;AAEXT,yBAASO,eAAe,CAAxB,IAA6BjB,SAA7B;AACD;;AAED,kBAAIsB,SAASH,WAAWA,QAAQR,MAAR,GAAiB,CAAjB,GAAqBL,MAA7C;AAAA,kBACIiB,YAAYH,cAAc,KAAKC,OAAnB,IAA8BA,UAAUd,MADxD;AAEA,kBAAI,CAACe,MAAD,IAAW,CAACC,SAAhB,EAA2B;AAEzBb,yBAASO,YAAT,IAAyBjB,SAAzB;AACA;AACD;;AAKD,kBAAI,CAACsB,MAAD,IAAWC,aAAaJ,QAAQR,MAAR,GAAiBS,WAAWT,MAAxD,EAAgE;AAC9DO,2BAAWM,UAAUJ,UAAV,CAAX;AACAvB,qBAAK4B,aAAL,CAAmBP,SAASN,UAA5B,EAAwCZ,SAAxC,EAAmD,IAAnD;AACD,eAHD,MAGO;AACLkB,2BAAWC,OAAX;AACAD,yBAASP,MAAT;AACAd,qBAAK4B,aAAL,CAAmBP,SAASN,UAA5B,EAAwC,IAAxC,EAA8CZ,SAA9C;AACD;;AAEDqB,wBAAUxB,KAAKiB,aAAL,CAAmBI,QAAnB,EAA6BvB,SAA7B,EAAwCD,SAAxC,EAAmDuB,YAAnD,CAAV;;AAGA,kBAAIC,SAASP,MAAT,GAAkB,CAAlB,IAAuBL,MAAvB,IAAiCe,UAAU,CAAV,IAAed,MAApD,EAA4D;AAC1D,uBAAOT,KAAK4B,YAAYR,SAASN,UAArB,EAAiCjB,SAAjC,EAA4CD,SAA5C,EAAuDG,KAAK8B,eAA5D,CAAL,CAAP;AACD,eAFD,MAEO;AAELjB,yBAASO,YAAT,IAAyBC,QAAzB;AACD;AACF;;AAEDV;AACD;;AAKD,cAAIZ,QAAJ,EAAc;AACZ,aAAC,SAASgC,IAAT,GAAgB;AACf5K,yBAAW,YAAY;AAGrB,oBAAIwJ,aAAaC,aAAjB,EAAgC;AAC9B,yBAAOb,UAAP;AACD;;AAED,oBAAI,CAACoB,gBAAL,EAAuB;AACrBY;AACD;AACF,eAVD,EAUG,CAVH;AAWD,aAZD;AAaD,WAdD,MAcO;AACL,mBAAOpB,cAAcC,aAArB,EAAoC;AAClC,kBAAIoB,MAAMb,gBAAV;AACA,kBAAIa,GAAJ,EAAS;AACP,uBAAOA,GAAP;AACD;AACF;AACF;AACF,SArHc;;AAuHfJ,uBAAe,SAASA,aAAT,CAAuBb,UAAvB,EAAmCT,KAAnC,EAA0CD,OAA1C,EAAmD;AAChE,cAAI3R,OAAOqS,WAAWA,WAAWvZ,MAAX,GAAoB,CAA/B,CAAX;AACA,cAAIkH,QAAQA,KAAK4R,KAAL,KAAeA,KAAvB,IAAgC5R,KAAK2R,OAAL,KAAiBA,OAArD,EAA8D;AAG5DU,uBAAWA,WAAWvZ,MAAX,GAAoB,CAA/B,IAAoC,EAAEya,OAAOvT,KAAKuT,KAAL,GAAa,CAAtB,EAAyB3B,OAAOA,KAAhC,EAAuCD,SAASA,OAAhD,EAApC;AACD,WAJD,MAIO;AACLU,uBAAW7L,IAAX,CAAgB,EAAE+M,OAAO,CAAT,EAAY3B,OAAOA,KAAnB,EAA0BD,SAASA,OAAnC,EAAhB;AACD;AACF,SAhIc;AAiIfY,uBAAe,SAASA,aAAT,CAAuBI,QAAvB,EAAiCvB,SAAjC,EAA4CD,SAA5C,EAAuDuB,YAAvD,EAAqE;AAClF,cAAIX,SAASX,UAAUtY,MAAvB;AAAA,cACIkZ,SAASb,UAAUrY,MADvB;AAAA,cAEIsZ,SAASO,SAASP,MAFtB;AAAA,cAGIE,SAASF,SAASM,YAHtB;AAAA,cAIIc,cAAc,CAJlB;AAKA,iBAAOpB,SAAS,CAAT,GAAaL,MAAb,IAAuBO,SAAS,CAAT,GAAaN,MAApC,IAA8C,KAAKyB,MAAL,CAAYrC,UAAUgB,SAAS,CAAnB,CAAZ,EAAmCjB,UAAUmB,SAAS,CAAnB,CAAnC,CAArD,EAAgH;AAC9GF;AACAE;AACAkB;AACD;;AAED,cAAIA,WAAJ,EAAiB;AACfb,qBAASN,UAAT,CAAoB7L,IAApB,CAAyB,EAAE+M,OAAOC,WAAT,EAAzB;AACD;;AAEDb,mBAASP,MAAT,GAAkBA,MAAlB;AACA,iBAAOE,MAAP;AACD,SAnJc;;AAqJfmB,gBAAQ,SAASA,MAAT,CAAgBC,IAAhB,EAAsBC,KAAtB,EAA6B;AACnC,cAAIC,eAAe,IAAnB;AACA,iBAAOF,SAASC,KAAT,IAAkB,KAAK3C,gBAAL,IAAyB,CAAC4C,aAAaC,IAAb,CAAkBH,IAAlB,CAA1B,IAAqD,CAACE,aAAaC,IAAb,CAAkBF,KAAlB,CAA/E;AACD,SAxJc;AAyJf9B,qBAAa,SAASA,WAAT,CAAqBiC,KAArB,EAA4B;AACvC,cAAIR,MAAM,EAAV;AACA,eAAK,IAAIS,IAAI,CAAb,EAAgBA,IAAID,MAAMhb,MAA1B,EAAkCib,GAAlC,EAAuC;AACrC,gBAAID,MAAMC,CAAN,CAAJ,EAAc;AACZT,kBAAI9M,IAAJ,CAASsN,MAAMC,CAAN,CAAT;AACD;AACF;AACD,iBAAOT,GAAP;AACD,SAjKc;AAkKf5B,mBAAW,SAASA,SAAT,CAAmBF,KAAnB,EAA0B;AACnC,iBAAOA,KAAP;AACD,SApKc;AAqKfM,kBAAU,SAASA,QAAT,CAAkBN,KAAlB,EAAyB;AACjC,iBAAOA,MAAMwC,KAAN,CAAY,EAAZ,CAAP;AACD;AAvKc,OAAjB;;AA0KA,eAASb,WAAT,CAAqBd,UAArB,EAAiCjB,SAAjC,EAA4CD,SAA5C,EAAuDiC,eAAvD,EAAwE;AACtE,YAAIa,eAAe,CAAnB;AAAA,YACIC,eAAe7B,WAAWvZ,MAD9B;AAAA,YAEIsZ,SAAS,CAFb;AAAA,YAGIE,SAAS,CAHb;;AAKA,eAAO2B,eAAeC,YAAtB,EAAoCD,cAApC,EAAoD;AAClD,cAAIE,YAAY9B,WAAW4B,YAAX,CAAhB;AACA,cAAI,CAACE,UAAUxC,OAAf,EAAwB;AACtB,gBAAI,CAACwC,UAAUvC,KAAX,IAAoBwB,eAAxB,EAAyC;AACvC,kBAAI5B,QAAQJ,UAAUgD,KAAV,CAAgBhC,MAAhB,EAAwBA,SAAS+B,UAAUZ,KAA3C,CAAZ;AACA/B,sBAAQT,UAAU,SAAV,EAAqBS,KAArB,EAA4B,UAAUA,KAAV,EAAiBuC,CAAjB,EAAoB;AACtD,oBAAIM,WAAWlD,UAAUmB,SAASyB,CAAnB,CAAf;AACA,uBAAOM,SAASvb,MAAT,GAAkB0Y,MAAM1Y,MAAxB,GAAiCub,QAAjC,GAA4C7C,KAAnD;AACD,eAHO,CAAR;;AAKA2C,wBAAU3C,KAAV,GAAkBA,MAAMgB,IAAN,CAAW,EAAX,CAAlB;AACD,aARD,MAQO;AACL2B,wBAAU3C,KAAV,GAAkBJ,UAAUgD,KAAV,CAAgBhC,MAAhB,EAAwBA,SAAS+B,UAAUZ,KAA3C,EAAkDf,IAAlD,CAAuD,EAAvD,CAAlB;AACD;AACDJ,sBAAU+B,UAAUZ,KAApB;;AAGA,gBAAI,CAACY,UAAUvC,KAAf,EAAsB;AACpBU,wBAAU6B,UAAUZ,KAApB;AACD;AACF,WAlBD,MAkBO;AACLY,sBAAU3C,KAAV,GAAkBL,UAAUiD,KAAV,CAAgB9B,MAAhB,EAAwBA,SAAS6B,UAAUZ,KAA3C,EAAkDf,IAAlD,CAAuD,EAAvD,CAAlB;AACAF,sBAAU6B,UAAUZ,KAApB;;AAKA,gBAAIU,gBAAgB5B,WAAW4B,eAAe,CAA1B,EAA6BrC,KAAjD,EAAwD;AACtD,kBAAI0C,MAAMjC,WAAW4B,eAAe,CAA1B,CAAV;AACA5B,yBAAW4B,eAAe,CAA1B,IAA+B5B,WAAW4B,YAAX,CAA/B;AACA5B,yBAAW4B,YAAX,IAA2BK,GAA3B;AACD;AACF;AACF;;AAED,eAAOjC,UAAP;AACD;;AAED,eAASY,SAAT,CAAmBsB,IAAnB,EAAyB;AACvB,eAAO,EAAEnC,QAAQmC,KAAKnC,MAAf,EAAuBC,YAAYkC,KAAKlC,UAAL,CAAgB+B,KAAhB,CAAsB,CAAtB,CAAnC,EAAP;AACD;AACD3F,aAAOD,OAAP,GAAiBA,QAAQ,SAAR,CAAjB;AAGK,KArTG,EAuTJ,UAASC,MAAT,EAAiBD,OAAjB,EAA0B;AAG9B;;AAEAA,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ,SAAR,IAAqBzT,GAArB;;AAGA,eAASA,GAAT,CAAayZ,GAAb,EAAkBC,MAAlB,EAA0BC,IAA1B,EAAgC;AAC9B,YAAIC,MAAM1D,SAAN,CAAgBlW,GAApB,EAAyB;AACvB,iBAAO4Z,MAAM1D,SAAN,CAAgBlW,GAAhB,CAAoB4T,IAApB,CAAyB6F,GAAzB,EAA8BC,MAA9B,EAAsCC,IAAtC,CAAP;AACD;;AAED,YAAIE,QAAQ,IAAID,KAAJ,CAAUH,IAAI1b,MAAd,CAAZ;;AAEA,aAAK,IAAIib,IAAI,CAAR,EAAWc,IAAIL,IAAI1b,MAAxB,EAAgCib,IAAIc,CAApC,EAAuCd,GAAvC,EAA4C;AAC1Ca,gBAAMb,CAAN,IAAWU,OAAO9F,IAAP,CAAY+F,IAAZ,EAAkBF,IAAIT,CAAJ,CAAlB,EAA0BA,CAA1B,EAA6BS,GAA7B,CAAX;AACD;AACD,eAAOI,KAAP;AACD;AACDnG,aAAOD,OAAP,GAAiBA,QAAQ,SAAR,CAAjB;AAGK,KA/UG,EAiVJ,UAASC,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQuB,SAAR,GAAoBA,SAApB;;;AAGA,eAASf,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAIE,gBAAgB,IAAID,OAAO,SAAP,CAAJ,EAApB;AACAvG,cAAQwG,aAAR,GAAwBA,aAAxB;;AAEA,eAASjF,SAAT,CAAmBkF,MAAnB,EAA2BC,MAA3B,EAAmC7D,QAAnC,EAA6C;AAC3C,eAAO2D,cAAc9D,IAAd,CAAmB+D,MAAnB,EAA2BC,MAA3B,EAAmC7D,QAAnC,CAAP;AACD;AAGI,KAvWG,EAyWJ,UAAS5C,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQwB,SAAR,GAAoBA,SAApB;AACAxB,cAAQyB,kBAAR,GAA6BA,kBAA7B;;;AAGA,eAASjB,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAqBA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAIK,oBAAoB,+DAAxB;;AAEA,UAAIC,WAAW,IAAIL,OAAO,SAAP,CAAJ,CAAsB,IAAtB,CAAf;AACAvG,cAAQ4G,QAAR,GAAmBA,QAAnB;AACA,UAAIC,oBAAoB,IAAIN,OAAO,SAAP,CAAJ,EAAxB;AACAvG,cAAQ6G,iBAAR,GAA4BA,iBAA5B;AACAD,eAAStD,QAAT,GAAoBuD,kBAAkBvD,QAAlB,GAA6B,UAAUN,KAAV,EAAiB;AAChE,YAAI8D,SAAS9D,MAAMwC,KAAN,CAAY,UAAZ,CAAb;;AAGA,aAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIuB,OAAOxc,MAAP,GAAgB,CAApC,EAAuCib,GAAvC,EAA4C;AAE1C,cAAI,CAACuB,OAAOvB,IAAI,CAAX,CAAD,IAAkBuB,OAAOvB,IAAI,CAAX,CAAlB,IAAmCoB,kBAAkBtB,IAAlB,CAAuByB,OAAOvB,CAAP,CAAvB,CAAnC,IAAwEoB,kBAAkBtB,IAAlB,CAAuByB,OAAOvB,IAAI,CAAX,CAAvB,CAA5E,EAAmH;AACjHuB,mBAAOvB,CAAP,KAAauB,OAAOvB,IAAI,CAAX,CAAb;AACAuB,mBAAO3T,MAAP,CAAcoS,IAAI,CAAlB,EAAqB,CAArB;AACAA;AACD;AACF;;AAED,eAAOuB,MAAP;AACD,OAdD;;AAgBA,eAAStF,SAAT,CAAmBiF,MAAnB,EAA2BC,MAA3B,EAAmC7D,QAAnC,EAA6C;AAC3C,eAAO+D,SAASlE,IAAT,CAAc+D,MAAd,EAAsBC,MAAtB,EAA8B7D,QAA9B,CAAP;AACD;;AAED,eAASpB,kBAAT,CAA4BgF,MAA5B,EAAoCC,MAApC,EAA4C7D,QAA5C,EAAsD;AACpD,eAAOgE,kBAAkBnE,IAAlB,CAAuB+D,MAAvB,EAA+BC,MAA/B,EAAuC7D,QAAvC,CAAP;AACD;AAGI,KA1aG,EA4aJ,UAAS5C,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ0B,SAAR,GAAoBA,SAApB;AACA1B,cAAQ2B,gBAAR,GAA2BA,gBAA3B;;;AAGA,eAASnB,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAIS,WAAW,IAAIR,OAAO,SAAP,CAAJ,EAAf;AACAvG,cAAQ+G,QAAR,GAAmBA,QAAnB;AACA,UAAIC,kBAAkB,IAAIT,OAAO,SAAP,CAAJ,EAAtB;AACAvG,cAAQgH,eAAR,GAA0BA,eAA1B;AACAA,sBAAgBC,UAAhB,GAA6B,IAA7B;;AAEAF,eAASzD,QAAT,GAAoB0D,gBAAgB1D,QAAhB,GAA2B,UAAUN,KAAV,EAAiB;AAC9D,YAAIkE,WAAW,EAAf;AAAA,YACIC,QAAQnE,MAAMwC,KAAN,CAAY,IAAZ,CADZ;AAEA,aAAK,IAAID,IAAI,CAAb,EAAgBA,IAAI4B,MAAM7c,MAA1B,EAAkCib,GAAlC,EAAuC;AACrC,cAAI6B,OAAOD,MAAM5B,CAAN,CAAX;AAAA,cACI8B,WAAWF,MAAM5B,IAAI,CAAV,CADf;AAAA,cAEI+B,mBAAmBD,YAAYA,SAASA,SAAS/c,MAAT,GAAkB,CAA3B,CAFnC;;AAKA,cAAI8c,SAAS,IAAT,IAAiBE,qBAAqB,IAA1C,EAAgD;AAC9CJ,qBAASA,SAAS5c,MAAT,GAAkB,CAA3B,IAAgC4c,SAASA,SAAS5c,MAAT,GAAkB,CAA3B,EAA8Bsb,KAA9B,CAAoC,CAApC,EAAuC,CAAC,CAAxC,IAA6C,MAA7E;AACD,WAFD,MAEO;AACL,gBAAI,KAAKqB,UAAT,EAAqB;AACnBG,qBAAOA,KAAKG,IAAL,EAAP;;AAEA,kBAAIhC,IAAI4B,MAAM7c,MAAN,GAAe,CAAvB,EAA0B;AACxB8c,wBAAQ,IAAR;AACD;AACF;AACDF,qBAASlP,IAAT,CAAcoP,IAAd;AACD;AACF;;AAED,eAAOF,QAAP;AACD,OAxBD;;AA0BA,eAASxF,SAAT,CAAmB+E,MAAnB,EAA2BC,MAA3B,EAAmC7D,QAAnC,EAA6C;AAC3C,eAAOkE,SAASrE,IAAT,CAAc+D,MAAd,EAAsBC,MAAtB,EAA8B7D,QAA9B,CAAP;AACD;;AAED,eAASlB,gBAAT,CAA0B8E,MAA1B,EAAkCC,MAAlC,EAA0C7D,QAA1C,EAAoD;AAClD,eAAOmE,gBAAgBtE,IAAhB,CAAqB+D,MAArB,EAA6BC,MAA7B,EAAqC7D,QAArC,CAAP;AACD;AAGI,KApeG,EAseJ,UAAS5C,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ4B,aAAR,GAAwBA,aAAxB;;;AAGA,eAASpB,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAIkB,eAAe,IAAIjB,OAAO,SAAP,CAAJ,EAAnB;AACAvG,cAAQwH,YAAR,GAAuBA,YAAvB;AACAA,mBAAalE,QAAb,GAAwB,UAAUN,KAAV,EAAiB;AACvC,eAAOA,MAAMwC,KAAN,CAAY,uBAAZ,CAAP;AACD,OAFD;;AAIA,eAAS5D,aAAT,CAAuB6E,MAAvB,EAA+BC,MAA/B,EAAuC7D,QAAvC,EAAiD;AAC/C,eAAO2E,aAAa9E,IAAb,CAAkB+D,MAAlB,EAA0BC,MAA1B,EAAkC7D,QAAlC,CAAP;AACD;AAGI,KA/fG,EAigBJ,UAAS5C,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ6B,OAAR,GAAkBA,OAAlB;;;AAGA,eAASrB,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAImB,UAAU,IAAIlB,OAAO,SAAP,CAAJ,EAAd;AACAvG,cAAQyH,OAAR,GAAkBA,OAAlB;AACAA,cAAQnE,QAAR,GAAmB,UAAUN,KAAV,EAAiB;AAClC,eAAOA,MAAMwC,KAAN,CAAY,eAAZ,CAAP;AACD,OAFD;;AAIA,eAAS3D,OAAT,CAAiB4E,MAAjB,EAAyBC,MAAzB,EAAiC7D,QAAjC,EAA2C;AACzC,eAAO4E,QAAQ/E,IAAR,CAAa+D,MAAb,EAAqBC,MAArB,EAA6B7D,QAA7B,CAAP;AACD;AAGI,KA1hBG,EA4hBJ,UAAS5C,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ8B,QAAR,GAAmBA,QAAnB;AACA9B,cAAQqC,YAAR,GAAuBA,YAAvB;;;AAGA,eAAS7B,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAIoB,QAAQ3H,oBAAoB,CAApB,CAAZ;;AAEA,UAAI4H,0BAA0BC,OAAOnF,SAAP,CAAiBoF,QAA/C;;AAEA,UAAIC,WAAW,IAAIvB,OAAO,SAAP,CAAJ,EAAf;;AAGAvG,cAAQ8H,QAAR,GAAmBA,QAAnB;AACAA,eAASlD,eAAT,GAA2B,IAA3B;;AAEAkD,eAASxE,QAAT,GAAoBoE,MAAMX,QAAN,CAAezD,QAAnC;AACAwE,eAAS5E,SAAT,GAAqB,UAAUF,KAAV,EAAiB;AACpC,eAAO,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC+E,KAAKC,SAAL,CAAe3F,aAAaW,KAAb,CAAf,EAAoCC,SAApC,EAA+C,IAA/C,CAA3C;AACD,OAFD;AAGA6E,eAAS7C,MAAT,GAAkB,UAAUC,IAAV,EAAgBC,KAAhB,EAAuB;AACvC,eAAOoB,OAAO,SAAP,EAAkB9D,SAAlB,CAA4BwC,MAA5B,CAAmCC,KAAK+C,OAAL,CAAa,YAAb,EAA2B,IAA3B,CAAnC,EAAqE9C,MAAM8C,OAAN,CAAc,YAAd,EAA4B,IAA5B,CAArE,CAAP;AACD,OAFD;;AAIA,eAASnG,QAAT,CAAkBoG,MAAlB,EAA0BC,MAA1B,EAAkCtF,QAAlC,EAA4C;AAC1C,eAAOiF,SAASpF,IAAT,CAAcwF,MAAd,EAAsBC,MAAtB,EAA8BtF,QAA9B,CAAP;AACD;;AAKD,eAASR,YAAT,CAAsB5B,GAAtB,EAA2B2H,KAA3B,EAAkCC,gBAAlC,EAAoD;AAClDD,gBAAQA,SAAS,EAAjB;AACAC,2BAAmBA,oBAAoB,EAAvC;;AAEA,YAAI9C,IAAItC,SAAR;;AAEA,aAAKsC,IAAI,CAAT,EAAYA,IAAI6C,MAAM9d,MAAtB,EAA8Bib,KAAK,CAAnC,EAAsC;AACpC,cAAI6C,MAAM7C,CAAN,MAAa9E,GAAjB,EAAsB;AACpB,mBAAO4H,iBAAiB9C,CAAjB,CAAP;AACD;AACF;;AAED,YAAI+C,mBAAmBrF,SAAvB;;AAEA,YAAI,qBAAqB0E,wBAAwBxH,IAAxB,CAA6BM,GAA7B,CAAzB,EAA4D;AAC1D2H,gBAAMpQ,IAAN,CAAWyI,GAAX;AACA6H,6BAAmB,IAAInC,KAAJ,CAAU1F,IAAInW,MAAd,CAAnB;AACA+d,2BAAiBrQ,IAAjB,CAAsBsQ,gBAAtB;AACA,eAAK/C,IAAI,CAAT,EAAYA,IAAI9E,IAAInW,MAApB,EAA4Bib,KAAK,CAAjC,EAAoC;AAClC+C,6BAAiB/C,CAAjB,IAAsBlD,aAAa5B,IAAI8E,CAAJ,CAAb,EAAqB6C,KAArB,EAA4BC,gBAA5B,CAAtB;AACD;AACDD,gBAAMG,GAAN;AACAF,2BAAiBE,GAAjB;AACD,SATD,MASO,IAAI,QAAO9H,GAAP,yCAAOA,GAAP,OAAe,QAAf,IAA2BA,QAAQ,IAAvC,EAA6C;AAClD2H,gBAAMpQ,IAAN,CAAWyI,GAAX;AACA6H,6BAAmB,EAAnB;AACAD,2BAAiBrQ,IAAjB,CAAsBsQ,gBAAtB;AACA,cAAIE,aAAa,EAAjB;AAAA,cACIC,MAAMxF,SADV;AAEA,eAAKwF,GAAL,IAAYhI,GAAZ,EAAiB;AAEf,gBAAIA,IAAIiI,cAAJ,CAAmBD,GAAnB,CAAJ,EAA6B;AAC3BD,yBAAWxQ,IAAX,CAAgByQ,GAAhB;AACD;AACF;AACDD,qBAAWG,IAAX;AACA,eAAKpD,IAAI,CAAT,EAAYA,IAAIiD,WAAWle,MAA3B,EAAmCib,KAAK,CAAxC,EAA2C;AACzCkD,kBAAMD,WAAWjD,CAAX,CAAN;AACA+C,6BAAiBG,GAAjB,IAAwBpG,aAAa5B,IAAIgI,GAAJ,CAAb,EAAuBL,KAAvB,EAA8BC,gBAA9B,CAAxB;AACD;AACDD,gBAAMG,GAAN;AACAF,2BAAiBE,GAAjB;AACD,SAnBM,MAmBA;AACLD,6BAAmB7H,GAAnB;AACD;AACD,eAAO6H,gBAAP;AACD;AAGI,KArnBG,EAunBJ,UAASrI,MAAT,EAAiBD,OAAjB,EAA0B;;AAE9B;;AAEAA,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQkC,UAAR,GAAqBA,UAArB;;AAEA,eAASA,UAAT,CAAoBuE,MAApB,EAA4BmC,OAA5B,EAAqC;AACnC,YAAIC,UAAUD,QAAQpD,KAAR,CAAc,IAAd,CAAd;AAAA,YACIsD,QAAQ,EADZ;AAAA,YAEIvD,IAAI,CAFR;AAAA,YAGIwD,WAAW,KAHf;AAAA,YAIIC,WAAW,KAJf;;AAOA,eAAOzD,IAAIsD,QAAQve,MAAZ,IAAsB,CAAC,MAAM+a,IAAN,CAAWwD,QAAQtD,CAAR,CAAX,CAA9B,EAAsD;AACpDA;AACD;;AAGD,eAAOA,IAAIsD,QAAQve,MAAnB,EAA2Bib,GAA3B,EAAgC;AAC9B,cAAIsD,QAAQtD,CAAR,EAAW,CAAX,MAAkB,GAAtB,EAA2B;AACzB,gBAAI0D,cAAcJ,QAAQtD,CAAR,EAAWC,KAAX,CAAiB,kCAAjB,CAAlB;AACAsD,kBAAMI,OAAN,CAAc;AACZpb,qBAAOmb,YAAY,CAAZ,CADK;AAEZE,yBAAW,CAACF,YAAY,CAAZ,CAFA;AAGZ9F,uBAAS,EAHG;AAIZiG,yBAAWH,YAAY,CAAZ,CAJC;AAKZ7F,qBAAO;AALK,aAAd;AAOD,WATD,MASO,IAAIyF,QAAQtD,CAAR,EAAW,CAAX,MAAkB,GAAtB,EAA2B;AAChCuD,kBAAM,CAAN,EAAS1F,KAAT,CAAepL,IAAf,CAAoB6Q,QAAQtD,CAAR,EAAW8D,MAAX,CAAkB,CAAlB,CAApB;AACD,WAFM,MAEA,IAAIR,QAAQtD,CAAR,EAAW,CAAX,MAAkB,GAAtB,EAA2B;AAChCuD,kBAAM,CAAN,EAAS3F,OAAT,CAAiBnL,IAAjB,CAAsB6Q,QAAQtD,CAAR,EAAW8D,MAAX,CAAkB,CAAlB,CAAtB;AACD,WAFM,MAEA,IAAIR,QAAQtD,CAAR,EAAW,CAAX,MAAkB,GAAtB,EAA2B;AAChCuD,kBAAM,CAAN,EAAS1F,KAAT,CAAepL,IAAf,CAAoB6Q,QAAQtD,CAAR,EAAW8D,MAAX,CAAkB,CAAlB,CAApB;AACAP,kBAAM,CAAN,EAAS3F,OAAT,CAAiBnL,IAAjB,CAAsB6Q,QAAQtD,CAAR,EAAW8D,MAAX,CAAkB,CAAlB,CAAtB;AACD,WAHM,MAGA,IAAIR,QAAQtD,CAAR,EAAW,CAAX,MAAkB,IAAtB,EAA4B;AACjC,gBAAIsD,QAAQtD,IAAI,CAAZ,EAAe,CAAf,MAAsB,GAA1B,EAA+B;AAC7BwD,yBAAW,IAAX;AACD,aAFD,MAEO,IAAIF,QAAQtD,IAAI,CAAZ,EAAe,CAAf,MAAsB,GAA1B,EAA+B;AACpCyD,yBAAW,IAAX;AACD;AACF;AACF;;AAGD,YAAI7B,QAAQV,OAAOjB,KAAP,CAAa,IAAb,CAAZ;AACA,aAAKD,IAAIuD,MAAMxe,MAAN,GAAe,CAAxB,EAA2Bib,KAAK,CAAhC,EAAmCA,GAAnC,EAAwC;AACtC,cAAI+D,OAAOR,MAAMvD,CAAN,CAAX;;AAEA,eAAK,IAAIgE,IAAI,CAAb,EAAgBA,IAAID,KAAKH,SAAzB,EAAoCI,GAApC,EAAyC;AACvC,gBAAIpC,MAAMmC,KAAKxb,KAAL,GAAa,CAAb,GAAiByb,CAAvB,MAA8BD,KAAKnG,OAAL,CAAaoG,CAAb,CAAlC,EAAmD;AACjD,qBAAO,KAAP;AACD;AACF;AACDpD,gBAAM1D,SAAN,CAAgBtP,MAAhB,CAAuBqW,KAAvB,CAA6BrC,KAA7B,EAAoC,CAACmC,KAAKxb,KAAL,GAAa,CAAd,EAAiBwb,KAAKH,SAAtB,EAAiCM,MAAjC,CAAwCH,KAAKlG,KAA7C,CAApC;AACD;;AAGD,YAAI2F,QAAJ,EAAc;AACZ,iBAAO,CAAC5B,MAAMA,MAAM7c,MAAN,GAAe,CAArB,CAAR,EAAiC;AAC/B6c,kBAAMoB,GAAN;AACD;AACF,SAJD,MAIO,IAAIS,QAAJ,EAAc;AACnB7B,gBAAMnP,IAAN,CAAW,EAAX;AACD;AACD,eAAOmP,MAAMnD,IAAN,CAAW,IAAX,CAAP;AACD;AAGI,KA9rBG,EAgsBJ,UAAS/D,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQ+B,eAAR,GAA0BA,eAA1B;AACA/B,cAAQgC,mBAAR,GAA8BA,mBAA9B;AACAhC,cAAQiC,WAAR,GAAsBA,WAAtB;;;AAGA,eAASzB,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAIiJ,aAAa3J,oBAAoB,EAApB,CAAjB;;AAEA,UAAIuC,WAAWvC,oBAAoB,CAApB,CAAf;;AAEA,UAAIwC,YAAY/B,uBAAuB8B,QAAvB,CAAhB;;AAEA,eAASP,eAAT,CAAyB4H,WAAzB,EAAsCC,WAAtC,EAAmDnD,MAAnD,EAA2DC,MAA3D,EAAmEmD,SAAnE,EAA8EC,SAA9E,EAAyFC,OAAzF,EAAkG;AAChG,YAAI,CAACA,OAAL,EAAc;AACZA,oBAAU,EAAEC,SAAS,CAAX,EAAV;AACD;;AAED,YAAItH,OAAOgH,WAAWO,SAAX,CAAqBvH,IAArB,CAA0B+D,MAA1B,EAAkCC,MAAlC,CAAX;AACAhE,aAAK1K,IAAL,CAAU,EAAEgL,OAAO,EAAT,EAAamE,OAAO,EAApB,EAAV;;AAEA,iBAAS+C,YAAT,CAAsB/C,KAAtB,EAA6B;AAC3B,iBAAO5E,UAAU,SAAV,EAAqB4E,KAArB,EAA4B,UAAUgD,KAAV,EAAiB;AAClD,mBAAO,MAAMA,KAAb;AACD,WAFM,CAAP;AAGD;;AAED,YAAIrB,QAAQ,EAAZ;AACA,YAAIsB,gBAAgB,CAApB;AAAA,YACIC,gBAAgB,CADpB;AAAA,YAEIC,WAAW,EAFf;AAAA,YAGIC,UAAU,CAHd;AAAA,YAIIC,UAAU,CAJd;;AAMA,YAAIC,QAAQ,SAARA,KAAQ,CAAUlF,CAAV,EAAa;AACvB,cAAImF,UAAUhI,KAAK6C,CAAL,CAAd;AAAA,cACI4B,QAAQuD,QAAQvD,KAAR,IAAiBuD,QAAQ1H,KAAR,CAAciF,OAAd,CAAsB,KAAtB,EAA6B,EAA7B,EAAiCzC,KAAjC,CAAuC,IAAvC,CAD7B;AAEAkF,kBAAQvD,KAAR,GAAgBA,KAAhB;;AAEA,cAAIuD,QAAQtH,KAAR,IAAiBsH,QAAQvH,OAA7B,EAAsC;AAEpC,gBAAI,CAACiH,aAAL,EAAoB;AAClB,kBAAIpO,OAAO0G,KAAK6C,IAAI,CAAT,CAAX;AACA6E,8BAAgBG,OAAhB;AACAF,8BAAgBG,OAAhB;;AAEA,kBAAIxO,IAAJ,EAAU;AACRsO,2BAAWP,QAAQC,OAAR,GAAkB,CAAlB,GAAsBE,aAAalO,KAAKmL,KAAL,CAAWvB,KAAX,CAAiB,CAACmE,QAAQC,OAA1B,CAAb,CAAtB,GAAyE,EAApF;AACAI,iCAAiBE,SAAShgB,MAA1B;AACA+f,iCAAiBC,SAAShgB,MAA1B;AACD;AACF;;AAGDggB,qBAAStS,IAAT,CAAcwR,KAAd,CAAoBc,QAApB,EAA8B/H,UAAU,SAAV,EAAqB4E,KAArB,EAA4B,UAAUgD,KAAV,EAAiB;AACzE,qBAAO,CAACO,QAAQtH,KAAR,GAAgB,GAAhB,GAAsB,GAAvB,IAA8B+G,KAArC;AACD,aAF6B,CAA9B;;AAKA,gBAAIO,QAAQtH,KAAZ,EAAmB;AACjBoH,yBAAWrD,MAAM7c,MAAjB;AACD,aAFD,MAEO;AACLigB,yBAAWpD,MAAM7c,MAAjB;AACD;AACF,WAzBD,MAyBO;AAEL,gBAAI8f,aAAJ,EAAmB;AAEjB,kBAAIjD,MAAM7c,MAAN,IAAgByf,QAAQC,OAAR,GAAkB,CAAlC,IAAuCzE,IAAI7C,KAAKpY,MAAL,GAAc,CAA7D,EAAgE;AAE9DggB,yBAAStS,IAAT,CAAcwR,KAAd,CAAoBc,QAApB,EAA8BJ,aAAa/C,KAAb,CAA9B;AACD,eAHD,MAGO;AAEL,oBAAIwD,cAAcC,KAAKC,GAAL,CAAS1D,MAAM7c,MAAf,EAAuByf,QAAQC,OAA/B,CAAlB;AACAM,yBAAStS,IAAT,CAAcwR,KAAd,CAAoBc,QAApB,EAA8BJ,aAAa/C,MAAMvB,KAAN,CAAY,CAAZ,EAAe+E,WAAf,CAAb,CAA9B;;AAEA,oBAAIrB,OAAO;AACTwB,4BAAUV,aADD;AAETW,4BAAUR,UAAUH,aAAV,GAA0BO,WAF3B;AAGTK,4BAAUX,aAHD;AAITY,4BAAUT,UAAUH,aAAV,GAA0BM,WAJ3B;AAKTxD,yBAAOmD;AALE,iBAAX;AAOA,oBAAI/E,KAAK7C,KAAKpY,MAAL,GAAc,CAAnB,IAAwB6c,MAAM7c,MAAN,IAAgByf,QAAQC,OAApD,EAA6D;AAE3D,sBAAIkB,gBAAgB,MAAM7F,IAAN,CAAWoB,MAAX,CAApB;AACA,sBAAI0E,gBAAgB,MAAM9F,IAAN,CAAWqB,MAAX,CAApB;AACA,sBAAIS,MAAM7c,MAAN,IAAgB,CAAhB,IAAqB,CAAC4gB,aAA1B,EAAyC;AAEvCZ,6BAASnX,MAAT,CAAgBmW,KAAKyB,QAArB,EAA+B,CAA/B,EAAkC,8BAAlC;AACD,mBAHD,MAGO,IAAI,CAACG,aAAD,IAAkB,CAACC,aAAvB,EAAsC;AAC3Cb,6BAAStS,IAAT,CAAc,8BAAd;AACD;AACF;AACD8Q,sBAAM9Q,IAAN,CAAWsR,IAAX;;AAEAc,gCAAgB,CAAhB;AACAC,gCAAgB,CAAhB;AACAC,2BAAW,EAAX;AACD;AACF;AACDC,uBAAWpD,MAAM7c,MAAjB;AACAkgB,uBAAWrD,MAAM7c,MAAjB;AACD;AACF,SAtED;;AAwEA,aAAK,IAAIib,IAAI,CAAb,EAAgBA,IAAI7C,KAAKpY,MAAzB,EAAiCib,GAAjC,EAAsC;AACpCkF,gBAAMlF,CAAN;AACD;;AAED,eAAO;AACLoE,uBAAaA,WADR,EACqBC,aAAaA,WADlC;AAELC,qBAAWA,SAFN,EAEiBC,WAAWA,SAF5B;AAGLhB,iBAAOA;AAHF,SAAP;AAKD;;AAED,eAAS9G,mBAAT,CAA6B2H,WAA7B,EAA0CC,WAA1C,EAAuDnD,MAAvD,EAA+DC,MAA/D,EAAuEmD,SAAvE,EAAkFC,SAAlF,EAA6FC,OAA7F,EAAsG;AACpG,YAAIrH,OAAOX,gBAAgB4H,WAAhB,EAA6BC,WAA7B,EAA0CnD,MAA1C,EAAkDC,MAAlD,EAA0DmD,SAA1D,EAAqEC,SAArE,EAAgFC,OAAhF,CAAX;;AAEA,YAAIjF,MAAM,EAAV;AACA,YAAI6E,eAAeC,WAAnB,EAAgC;AAC9B9E,cAAI9M,IAAJ,CAAS,YAAY2R,WAArB;AACD;AACD7E,YAAI9M,IAAJ,CAAS,qEAAT;AACA8M,YAAI9M,IAAJ,CAAS,SAAS0K,KAAKiH,WAAd,IAA6B,OAAOjH,KAAKmH,SAAZ,KAA0B,WAA1B,GAAwC,EAAxC,GAA6C,OAAOnH,KAAKmH,SAAtF,CAAT;AACA/E,YAAI9M,IAAJ,CAAS,SAAS0K,KAAKkH,WAAd,IAA6B,OAAOlH,KAAKoH,SAAZ,KAA0B,WAA1B,GAAwC,EAAxC,GAA6C,OAAOpH,KAAKoH,SAAtF,CAAT;;AAEA,aAAK,IAAIvE,IAAI,CAAb,EAAgBA,IAAI7C,KAAKoG,KAAL,CAAWxe,MAA/B,EAAuCib,GAAvC,EAA4C;AAC1C,cAAI+D,OAAO5G,KAAKoG,KAAL,CAAWvD,CAAX,CAAX;AACAT,cAAI9M,IAAJ,CAAS,SAASsR,KAAKwB,QAAd,GAAyB,GAAzB,GAA+BxB,KAAKyB,QAApC,GAA+C,IAA/C,GAAsDzB,KAAK0B,QAA3D,GAAsE,GAAtE,GAA4E1B,KAAK2B,QAAjF,GAA4F,KAArG;AACAnG,cAAI9M,IAAJ,CAASwR,KAAT,CAAe1E,GAAf,EAAoBwE,KAAKnC,KAAzB;AACD;;AAED,eAAOrC,IAAId,IAAJ,CAAS,IAAT,IAAiB,IAAxB;AACD;;AAED,eAAS/B,WAAT,CAAqBmJ,QAArB,EAA+B3E,MAA/B,EAAuCC,MAAvC,EAA+CmD,SAA/C,EAA0DC,SAA1D,EAAqEC,OAArE,EAA8E;AAC5E,eAAO/H,oBAAoBoJ,QAApB,EAA8BA,QAA9B,EAAwC3E,MAAxC,EAAgDC,MAAhD,EAAwDmD,SAAxD,EAAmEC,SAAnE,EAA8EC,OAA9E,CAAP;AACD;AAGI,KAn1BG,EAq1BJ,UAAS9J,MAAT,EAAiBD,OAAjB,EAA0BD,mBAA1B,EAA+C;;AAEnD;;AAEAC,cAAQO,UAAR,GAAqB,IAArB;;;AAGA,eAASC,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,eAAOA,OAAOA,IAAIF,UAAX,GAAwBE,GAAxB,GAA8B,EAAE,WAAWA,GAAb,EAArC;AAA0D;;AAEjG,UAAI6F,QAAQvG,oBAAoB,CAApB,CAAZ;;AAEA,UAAIwG,SAAS/F,uBAAuB8F,KAAvB,CAAb;;AAEA,UAAI2D,YAAY,IAAI1D,OAAO,SAAP,CAAJ,EAAhB;AACAvG,cAAQiK,SAAR,GAAoBA,SAApB;AACAA,gBAAU3G,QAAV,GAAqB,UAAUN,KAAV,EAAiB;AACpC,YAAI8B,MAAM,EAAV;AAAA,YACIuG,mBAAmBrI,MAAMwC,KAAN,CAAY,WAAZ,CADvB;;AAIA,YAAI,CAAC6F,iBAAiBA,iBAAiB/gB,MAAjB,GAA0B,CAA3C,CAAL,EAAoD;AAClD+gB,2BAAiB9C,GAAjB;AACD;;AAGD,aAAK,IAAIhD,IAAI,CAAb,EAAgBA,IAAI8F,iBAAiB/gB,MAArC,EAA6Cib,GAA7C,EAAkD;AAChD,cAAI6B,OAAOiE,iBAAiB9F,CAAjB,CAAX;;AAEA,cAAIA,IAAI,CAAR,EAAW;AACTT,gBAAIA,IAAIxa,MAAJ,GAAa,CAAjB,KAAuB8c,IAAvB;AACD,WAFD,MAEO;AACLtC,gBAAI9M,IAAJ,CAASoP,IAAT;AACD;AACF;AACD,eAAOtC,GAAP;AACD,OApBD;AAuBK,KA33BG,EA63BJ,UAAS7E,MAAT,EAAiBD,OAAjB,EAA0B;AAG9B;;AAEAA,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQmC,mBAAR,GAA8BA,mBAA9B;;AAEA,eAASA,mBAAT,CAA6BmJ,OAA7B,EAAsC;AACpC,YAAIxG,MAAM,EAAV;AAAA,YACIyG,SAAStI,SADb;AAAA,YAEIuI,YAAYvI,SAFhB;AAGA,aAAK,IAAIsC,IAAI,CAAb,EAAgBA,IAAI+F,QAAQhhB,MAA5B,EAAoCib,GAApC,EAAyC;AACvCgG,mBAASD,QAAQ/F,CAAR,CAAT;AACA,cAAIgG,OAAOnI,KAAX,EAAkB;AAChBoI,wBAAY,CAAZ;AACD,WAFD,MAEO,IAAID,OAAOpI,OAAX,EAAoB;AACzBqI,wBAAY,CAAC,CAAb;AACD,WAFM,MAEA;AACLA,wBAAY,CAAZ;AACD;;AAED1G,cAAI9M,IAAJ,CAAS,CAACwT,SAAD,EAAYD,OAAOvI,KAAnB,CAAT;AACD;AACD,eAAO8B,GAAP;AACD;AAGI,KAz5BG,EA25BJ,UAAS7E,MAAT,EAAiBD,OAAjB,EAA0B;;AAE9B;;AAEAA,cAAQO,UAAR,GAAqB,IAArB;AACAP,cAAQoC,mBAAR,GAA8BA,mBAA9B;;AAEA,eAASA,mBAAT,CAA6BkJ,OAA7B,EAAsC;AACpC,YAAIxG,MAAM,EAAV;AACA,aAAK,IAAIS,IAAI,CAAb,EAAgBA,IAAI+F,QAAQhhB,MAA5B,EAAoCib,GAApC,EAAyC;AACvC,cAAIgG,SAASD,QAAQ/F,CAAR,CAAb;AACA,cAAIgG,OAAOnI,KAAX,EAAkB;AAChB0B,gBAAI9M,IAAJ,CAAS,OAAT;AACD,WAFD,MAEO,IAAIuT,OAAOpI,OAAX,EAAoB;AACzB2B,gBAAI9M,IAAJ,CAAS,OAAT;AACD;;AAED8M,cAAI9M,IAAJ,CAASyT,WAAWF,OAAOvI,KAAlB,CAAT;;AAEA,cAAIuI,OAAOnI,KAAX,EAAkB;AAChB0B,gBAAI9M,IAAJ,CAAS,QAAT;AACD,WAFD,MAEO,IAAIuT,OAAOpI,OAAX,EAAoB;AACzB2B,gBAAI9M,IAAJ,CAAS,QAAT;AACD;AACF;AACD,eAAO8M,IAAId,IAAJ,CAAS,EAAT,CAAP;AACD;;AAED,eAASyH,UAAT,CAAoBC,CAApB,EAAuB;AACrB,YAAIrF,IAAIqF,CAAR;AACArF,YAAIA,EAAE4B,OAAF,CAAU,IAAV,EAAgB,OAAhB,CAAJ;AACA5B,YAAIA,EAAE4B,OAAF,CAAU,IAAV,EAAgB,MAAhB,CAAJ;AACA5B,YAAIA,EAAE4B,OAAF,CAAU,IAAV,EAAgB,MAAhB,CAAJ;AACA5B,YAAIA,EAAE4B,OAAF,CAAU,IAAV,EAAgB,QAAhB,CAAJ;;AAEA,eAAO5B,CAAP;AACD;AAGI,KAl8BG,CA1CM,CAAhB;AA8+BC,GAj/BD;AAk/BA;;;;;;;;ACl/BA,MAAIsF,SAAS,0oRAAb;;oBAEeA,OAAOnG,KAAP,CAAa,GAAb;;;;;;;;;;;ACFf,KAAE,WAASoG,CAAT,EAAY3I,SAAZ,EAAuB;AACrB;;AAEA,YAAI4I,OAAO,CAAC,OAAOjB,KAAKkB,MAAL,EAAR,EAAuB7D,OAAvB,CAA+B,MAA/B,EAAuC,EAAvC,CAAX;AACA,YAAI8D,SAAS,YAAb;AACA,YAAIC,qBAAqB,CACrB,CADqB,EAErB,CAFqB,EAGrB,EAHqB,CAAzB;;AAaA,iBAASC,IAAT,CAAcjJ,KAAd,EAAqB;AACjB,gBAAIA,SAAS,IAAb,EAAmB;AACf,uBAAOkJ,OAAOlJ,KAAP,CAAP;AACH;AACD,gBAAI,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,UAAlD,EAA8D;AAC1D,uBAAQA,iBAAiB4I,EAAEO,QAAnB,IAA+B,UAAhC,IACFnJ,iBAAiB4I,EAAEQ,cAAnB,IAAqC,gBADnC,IAEHxE,OAAOnF,SAAP,CAAiBoF,QAAjB,CAA0B1H,IAA1B,CAA+B6C,KAA/B,EAAsCvY,KAAtC,CAA4C,aAA5C,EAA2D,CAA3D,EAA8D4hB,WAA9D,EAFJ;AAGH;AACD,0BAAcrJ,KAAd,yCAAcA,KAAd;AACH;;AASD,iBAASsJ,OAAT,CAAiBC,UAAjB,EAA6B;AACzB,oBAAQN,KAAKM,UAAL,CAAR;AACI,qBAAK,OAAL;AACI,2BAAOA,UAAP;AACJ,qBAAK,WAAL;AACI,2BAAO,EAAP;AACJ,qBAAK,UAAL;AACA,qBAAK,gBAAL;AACA,qBAAK,WAAL;AACI,wBAAIvG,MAAM,EAAV;AACA,yBAAK,IAAIT,IAAI,CAAR,EAAWiH,IAAID,WAAWjiB,MAA/B,EAAuCib,IAAIiH,CAA3C,EAA8CjH,GAA9C,EAAmD;AAC/C,4BAAIA,KAAKgH,UAAT,EAAqB;AACjBvG,gCAAIhO,IAAJ,CAASuU,WAAWhH,CAAX,CAAT;AACH;AACJ;AACD,2BAAOS,GAAP;AACJ;AACI,2BAAO,CAACuG,UAAD,CAAP;AAhBR;AAkBH;;AAUD,iBAASE,OAAT,CAAiBzJ,KAAjB,EAAwBsC,KAAxB,EAA+B;AAC3B,gBAAI2G,KAAK3G,KAAL,MAAgB,OAApB,EAA6B;AACzB,uBAAO,CAAC,CAAR;AACH;AACD,gBAAIA,MAAMoH,OAAV,EAAmB;AACf,uBAAOpH,MAAMoH,OAAN,CAAc1J,KAAd,CAAP;AACH;AACD,iBAAK,IAAIuC,IAAE,CAAN,EAASiH,IAAIlH,MAAMhb,MAAxB,EAAgCib,IAAIiH,CAApC,EAAuCjH,GAAvC,EAA4C;AACxC,oBAAID,MAAMC,CAAN,MAAavC,KAAjB,EAAwB;AACpB,2BAAOuC,CAAP;AACH;AACJ;AACD,mBAAO,CAAC,CAAR;AACH;;AAUD,iBAASoH,KAAT,CAAe3C,OAAf,EAAwBnH,QAAxB,EAAkC;AAC9B,mBAAO,YAAY;AACf,uBAAOA,SAAS2G,KAAT,CAAeQ,OAAf,EAAwB4C,SAAxB,CAAP;AACH,aAFD;AAGH;;AAWD,iBAASxT,IAAT,CAAc1E,OAAd,EAAuBmY,SAAvB,EAAkCC,OAAlC,EAA2C;AACvCC,qBAASrY,OAAT,EAAkBmY,SAAlB,EAA6BC,OAA7B;AACH;;AAWD,iBAASpkB,MAAT,CAAgBgM,OAAhB,EAAyBmY,SAAzB,EAAoCC,OAApC,EAA6C;AACzCC,qBAASrY,OAAT,EAAkBmY,SAAlB,EAA6BC,OAA7B,EAAsC,CAAtC;AACH;;AAYD,iBAASC,QAAT,CAAkBrY,OAAlB,EAA2BmY,SAA3B,EAAsCC,OAAtC,EAA+CE,MAA/C,EAAuD;AACnD,gBAAIC,SAASJ,UAAUrH,KAAV,CAAgB,GAAhB,CAAb;AACA,iBAAK,IAAID,IAAI,CAAR,EAAWiH,IAAIS,OAAO3iB,MAA3B,EAAmCib,IAAIiH,CAAvC,EAA0CjH,GAA1C,EAA+C;AAC3C,oBAAI7Q,QAAQwY,gBAAZ,EAA8B;AAC1BxY,4BAAQsY,SAAS,qBAAT,GAAiC,kBAAzC,EAA6DC,OAAO1H,CAAP,CAA7D,EAAwEuH,OAAxE,EAAiF,KAAjF;AACH,iBAFD,MAEO,IAAIpY,QAAQyY,WAAZ,EAAyB;AAC5BzY,4BAAQsY,SAAS,aAAT,GAAyB,aAAjC,EAAgD,OAAOC,OAAO1H,CAAP,CAAvD,EAAkEuH,OAAlE;AACH;AACJ;AACJ;;AAKD,iBAASM,SAAT,GAAqB;AACjB,gBAAItK,OAAO,IAAX;AACA,gBAAIuK,YAAY,EAAhB;AACA,gBAAI9H,CAAJ,EAAOiH,CAAP;;AAUA1J,iBAAKrT,EAAL,GAAU,UAAUhD,IAAV,EAAgB5D,EAAhB,EAAoB;AAC1BwkB,0BAAU5gB,IAAV,IAAkB4gB,UAAU5gB,IAAV,KAAmB,EAArC;AACA,oBAAIwf,KAAKpjB,EAAL,MAAa,UAAb,IAA2B4jB,QAAQ5jB,EAAR,EAAYwkB,UAAU5gB,IAAV,CAAZ,MAAiC,CAAC,CAAjE,EAAoE;AAChE4gB,8BAAU5gB,IAAV,EAAgBuL,IAAhB,CAAqBnP,EAArB;AACH;AACJ,aALD;;AAeAia,iBAAKwK,GAAL,GAAW,UAAU7gB,IAAV,EAAgB5D,EAAhB,EAAoB;AAC3BwkB,0BAAU5gB,IAAV,IAAkB4gB,UAAU5gB,IAAV,KAAmB,EAArC;AACA,oBAAI5D,OAAOoa,SAAX,EAAsB;AAClBoK,8BAAU5gB,IAAV,EAAgBnC,MAAhB,GAAyB,CAAzB;AACH,iBAFD,MAEO;AACH,wBAAIgF,QAAQmd,QAAQ5jB,EAAR,EAAYwkB,UAAU5gB,IAAV,CAAZ,CAAZ;AACA,wBAAI6C,UAAU,CAAC,CAAf,EAAkB;AACd+d,kCAAU5gB,IAAV,EAAgB0G,MAAhB,CAAuB7D,KAAvB,EAA8B,CAA9B;AACH;AACJ;AACJ,aAVD;;AAqBAwT,iBAAKyK,OAAL,GAAe,UAAU9gB,IAAV,EAAgBud,OAAhB,EAAyB;AACpC,oBAAIqD,UAAU5gB,IAAV,CAAJ,EAAqB;AACjB,yBAAK8Y,IAAI,CAAJ,EAAOiH,IAAIa,UAAU5gB,IAAV,EAAgBnC,MAAhC,EAAwCib,IAAIiH,CAA5C,EAA+CjH,GAA/C,EAAoD;AAChD8H,kCAAU5gB,IAAV,EAAgB8Y,CAAhB,EAAmBiE,KAAnB,CAAyBQ,OAAzB,EAAkC7D,MAAM1D,SAAN,CAAgBmD,KAAhB,CAAsBzF,IAAtB,CAA2ByM,SAA3B,EAAsC,CAAtC,CAAlC;AACH;AACJ;AACJ,aAND;AAOH;;AAUD,iBAASvV,YAAT,CAAsBkV,UAAtB,EAAkCxC,OAAlC,EAA2C;AAEvCA,sBAAUA,WAAW,EAArB;AACA,iBAAK,IAAItB,GAAT,IAAgBpR,aAAamW,QAA7B,EAAuC;AACnC,oBAAI,CAACzD,QAAQrB,cAAR,CAAuBD,GAAvB,CAAL,EAAkC;AAC9BsB,4BAAQtB,GAAR,IAAepR,aAAamW,QAAb,CAAsB/E,GAAtB,CAAf;AACH;AACJ;;AAGD,gBAAI3F,OAAO,gBAAgBzL,YAAhB,GAA+B,IAA/B,GAAsC,EAAjD;AACA,gBAAIgW,YAAY,IAAID,SAAJ,EAAhB;AACA,gBAAIK,MAAJ;;AAGA3K,iBAAK4K,MAAL,GAAc,EAAd;AACA5K,iBAAK5C,MAAL,GAAc,EAAd;AACA4C,iBAAK6K,OAAL,GAAe,EAAf;AACA7K,iBAAK8K,MAAL,GAAc,EAAd;AACA9K,iBAAK+K,MAAL,GAAc,EAAd;;AAGA/K,iBAAKgL,SAAL,GAAiB,IAAjB;AACAhL,iBAAKiL,MAAL,GAAc,KAAd;AACAjL,iBAAKkL,QAAL,GAAgB,KAAhB;;AAGAzB,yBAAaD,QAAQC,UAAR,CAAb;AACA,iBAAK,IAAIlM,IAAI,CAAR,EAAW4N,KAAK1B,WAAWjiB,MAAhC,EAAwC+V,IAAI4N,EAA5C,EAAgD5N,GAAhD,EAAqD;AACjD,oBAAIkM,WAAWlM,CAAX,EAAc6N,QAAd,KAA2B,KAA/B,EAAsC;AAClCpL,yBAAK4K,MAAL,CAAY1V,IAAZ,CAAiBuU,WAAWlM,CAAX,CAAjB;AACH,iBAFD,MAEO,IAAIoM,QAAQF,WAAWlM,CAAX,EAAc8N,QAAtB,EAAgCnC,kBAAhC,MAAwD,CAAC,CAA7D,EAAgE;AACnElJ,yBAAK4K,MAAL,GAAc5K,KAAK4K,MAAL,CAAYjE,MAAZ,CAAmB6C,QAAQC,WAAWlM,CAAX,EAAc+N,oBAAd,CAAmC,KAAnC,CAAR,CAAnB,CAAd;AACH;AACJ;;AASDtL,iBAAKC,IAAL,GAAY,UAAUF,QAAV,EAAoB;AAC5B,oBAAIC,KAAKgL,SAAT,EAAoB;AAChBT,8BAAU5d,EAAV,CAAa,MAAb,EAAqBoT,QAArB;AACH,iBAFD,MAEO,IAAIC,KAAKiL,MAAL,IAAe9B,KAAKpJ,QAAL,MAAmB,UAAtC,EAAkD;AACrDA,6BAAS1C,IAAT,CAAc2C,IAAd;AACH;AACD,uBAAOA,IAAP;AACH,aAPD;;AAgBAA,iBAAKlK,IAAL,GAAY,UAAUiK,QAAV,EAAoB;AAC5B,oBAAIC,KAAKgL,SAAT,EAAoB;AAChBT,8BAAU5d,EAAV,CAAa,MAAb,EAAqBoT,QAArB;AACH,iBAFD,MAEO,IAAIC,KAAKkL,QAAL,IAAiB/B,KAAKpJ,QAAL,MAAmB,UAAxC,EAAoD;AACvDA,6BAAS1C,IAAT,CAAc2C,IAAd;AACH;AACD,uBAAOA,IAAP;AACH,aAPD;;AAgBAA,iBAAKxL,MAAL,GAAc,UAAUuL,QAAV,EAAoB;AAC9B,oBAAIC,KAAKgL,SAAT,EAAoB;AAChBT,8BAAU5d,EAAV,CAAa,QAAb,EAAuBoT,QAAvB;AACH,iBAFD,MAEO,IAAIoJ,KAAKpJ,QAAL,MAAmB,UAAvB,EAAmC;AACtCA,6BAAS1C,IAAT,CAAc2C,IAAd;AACH;AACD,uBAAOA,IAAP;AACH,aAPD;;AAgBAA,iBAAKuL,QAAL,GAAgB,UAAUxL,QAAV,EAAoB;AAChC,oBAAIC,KAAKgL,SAAT,EAAoB;AAChBT,8BAAU5d,EAAV,CAAa,UAAb,EAAyBoT,QAAzB;AACH;;AAED,qBAAK,IAAI0C,IAAI,CAAR,EAAWiH,IAAI1J,KAAK5C,MAAL,CAAY5V,MAAhC,EAAwCib,IAAIiH,CAA5C,EAA+CjH,GAA/C,EAAoD;AAChD1C,6BAAS1C,IAAT,CAAc2C,IAAd,EAAoBA,KAAK5C,MAAL,CAAYqF,CAAZ,CAApB,EAAoCzC,KAAK5C,MAAL,CAAYqF,CAAZ,EAAesG,IAAf,EAAqByC,QAAzD;AACH;AACD,uBAAOxL,IAAP;AACH,aATD;;AAgBA,qBAASyL,WAAT,GAAuB;AACnB,oBAAI,CAACzL,KAAKgL,SAAV,EAAqB;AACjB;AACH;;AAEDU,6BAAaf,MAAb;;AAEA3K,qBAAKgL,SAAL,GAAiB,KAAjB;AACAhL,qBAAKiL,MAAL,GAAcjL,KAAK4K,MAAL,CAAYpjB,MAAZ,KAAuBwY,KAAK8K,MAAL,CAAYtjB,MAAjD;AACAwY,qBAAKkL,QAAL,GAAgB,CAAClL,KAAKiL,MAAtB;;AAEAV,0BAAUE,OAAV,CAAkBzK,KAAKiL,MAAL,GAAc,MAAd,GAAuB,MAAzC,EAAiDjL,IAAjD;AACAuK,0BAAUE,OAAV,CAAkB,QAAlB,EAA4BzK,IAA5B;AACH;;AAOD,qBAAS2L,SAAT,GAAqB;AAEjB,uBAAO3L,KAAK6K,OAAL,CAAarjB,MAApB,EAA4B;AACxBokB,8BAAU5L,KAAK6K,OAAL,CAAa,CAAb,CAAV,EAA2B,CAA3B;AACH;AACJ;;AASD,qBAASgB,gBAAT,CAA0Bjf,KAA1B,EAAiC;AAE7BA,wBAAQA,SAASkc,EAAElc,KAAnB;;AAEAhH,uBAAO,KAAKmjB,IAAL,EAAW+C,MAAlB,EAA0B7C,MAA1B,EAAkC4C,gBAAlC;;AAEA,qBAAK9C,IAAL,EAAW+C,MAAX,GAAoB,IAApB;;AAEA,oBAAInC,QAAQ,IAAR,EAAc3J,KAAK5C,MAAnB,MAA+B,CAAC,CAApC,EAAuC;AACnCwO,8BAAU,IAAV,EAAgBhf,MAAMuc,IAAN,KAAe,MAA/B;AACH;AACJ;;AAUD,qBAASyC,SAAT,CAAmBG,GAAnB,EAAwBP,QAAxB,EAAkC;AAC9B,oBAAIQ,eAAerC,QAAQoC,GAAR,EAAa/L,KAAK6K,OAAlB,CAAnB;AACA,oBAAImB,iBAAiB,CAAC,CAAtB,EAAyB;AACrB;AACH,iBAFD,MAEO;AACHhM,yBAAK6K,OAAL,CAAaxa,MAAb,CAAoB2b,YAApB,EAAkC,CAAlC;AACH;;AAEDhM,qBAAK5C,MAAL,CAAYlI,IAAZ,CAAiB6W,GAAjB;;AAEA/L,qBAAKwL,WAAW,QAAX,GAAsB,QAA3B,EAAqCtW,IAArC,CAA0C6W,GAA1C;;AAEAA,oBAAIhD,IAAJ,EAAUyC,QAAV,GAAqBA,QAArB;AACAO,oBAAIhD,IAAJ,EAAUkD,GAAV,GAAgBF,IAAIE,GAApB;;AAEA9U,2BAAW,YAAY;AACnBoT,8BAAUE,OAAV,CAAkB,UAAlB,EAA8BzK,IAA9B,EAAoC+L,GAApC,EAAyCP,QAAzC;AACH,iBAFD;;AAIA,oBAAIxL,KAAK4K,MAAL,CAAYpjB,MAAZ,KAAuBwY,KAAK5C,MAAL,CAAY5V,MAAvC,EAA+C;AAC3C2P,+BAAWsU,WAAX;AACH;AACJ;;AAOD,qBAASS,KAAT,GAAiB;AAEb,oBAAI,CAAClM,KAAK4K,MAAL,CAAYpjB,MAAjB,EAAyB;AACrBikB;AACA;AACH;;AAED,oBAAIM,GAAJ;AACA,qBAAK,IAAItJ,IAAI,CAAR,EAAW0J,KAAKnM,KAAK4K,MAAL,CAAYpjB,MAAjC,EAAyCib,IAAI0J,EAA7C,EAAiD1J,GAAjD,EAAsD;AAClDsJ,0BAAM/L,KAAK4K,MAAL,CAAYnI,CAAZ,CAAN;AACAsJ,wBAAIhD,IAAJ,IAAYgD,IAAIhD,IAAJ,KAAa,EAAzB;;AAEA/I,yBAAK6K,OAAL,CAAa3V,IAAb,CAAkB6W,GAAlB;;AAGA,wBAAIA,IAAIhD,IAAJ,EAAUyC,QAAV,KAAuBrL,SAAvB,IAAoC4L,IAAIhD,IAAJ,EAAUkD,GAAV,KAAkBF,IAAIE,GAA9D,EAAmE;AAC/DL,kCAAUG,GAAV,EAAeA,IAAIhD,IAAJ,EAAUyC,QAAzB;AACA;AACH;;AAGD,wBAAIO,IAAIK,QAAJ,IAAgBL,IAAIM,YAAJ,KAAqBlM,SAAzC,EAAoD;AAChDyL,kCAAUG,GAAV,EAAeA,IAAIM,YAAJ,KAAqB,CAApC;AACA;AACH;;AAEDN,wBAAIhD,IAAJ,EAAU+C,MAAV,GAAmBzS,SAASiT,aAAT,CAAuB,KAAvB,CAAnB;AACAhW,yBAAKyV,IAAIhD,IAAJ,EAAU+C,MAAf,EAAuB7C,MAAvB,EAA+BY,MAAMkC,GAAN,EAAWF,gBAAX,CAA/B;AACAE,wBAAIhD,IAAJ,EAAU+C,MAAV,CAAiBG,GAAjB,GAAuBF,IAAIE,GAA3B;AACH;AACJ;;AAGD9U,uBAAW+U,KAAX;;AAEA/U,uBAAWwU,SAAX,EAAsB1E,QAAQzR,OAA9B;;AAEA,mBAAOwK,IAAP;AACH;;AAGDzL,qBAAamW,QAAb,GAAwB;AACpBlV,qBAAS,KADW,EAAxB;;AAKAsT,UAAEvU,YAAF,GAAiBA,YAAjB;AACH,KAjcC,EAicAlG,MAjcA,CAAD;;;;;ACQD,GAAC,YAAW;AACV,QAAIvI,CAAJ,EAAOymB,KAAP,EAAcC,oBAAd,EAAoCC,aAApC,EAAmDC,WAAnD;;AAEA5mB,QAAIuI,OAAOse,MAAX;;AAEA7mB,MAAE8mB,KAAF,GAAU,UAASC,cAAT,EAAyB;AACjC,UAAIpkB,EAAJ;AACA,UAAI,OAAOqkB,OAAP,KAAmB,WAAnB,IAAkCA,YAAY,IAAlD,EAAwD;AACtDA,gBAAQC,GAAR,CAAY,wFAAZ;AACD;AACDtkB,WAAK8jB,MAAMS,iBAAN,CAAwBH,cAAxB,CAAL;AACA,aAAOpkB,GAAGwkB,UAAV;AACD,KAPD;;AASAnnB,MAAEC,EAAF,CAAKmnB,oBAAL,GAA4B,YAAW;AACrC,UAAIzgB,EAAJ,EAAQga,CAAR,EAAW0G,GAAX;AACA,WAAK1G,IAAI,CAAJ,EAAO0G,MAAM,KAAK3lB,MAAvB,EAA+Bif,IAAI0G,GAAnC,EAAwC1G,GAAxC,EAA6C;AAC3Cha,aAAK,KAAKga,CAAL,CAAL;AACA,YAAIha,GAAG2gB,SAAH,IAAgBtnB,EAAE2G,EAAF,EAAM1F,EAAN,CAAS,yCAAT,CAApB,EAAyE;AACvE;AACD;AACDwlB,cAAMS,iBAAN,CAAwBvgB,EAAxB;AACAA,WAAG2gB,SAAH,GAAe,IAAf;AACD;AACD,aAAO,IAAP;AACD,KAXD;;AAaAtnB,MAAEC,EAAF,CAAKsnB,gBAAL,GAAwB,YAAW;AACjC,UAAI5gB,EAAJ,EAAQga,CAAR,EAAW0G,GAAX;AACA,WAAK1G,IAAI,CAAJ,EAAO0G,MAAM,KAAK3lB,MAAvB,EAA+Bif,IAAI0G,GAAnC,EAAwC1G,GAAxC,EAA6C;AAC3Cha,aAAK,KAAKga,CAAL,CAAL;AACA,YAAIha,GAAG2gB,SAAH,IAAgBtnB,EAAE2G,EAAF,EAAM1F,EAAN,CAAS,4BAAT,CAApB,EAA4D;AAC1D;AACD;AACDwlB,cAAMe,aAAN,CAAoB7gB,EAApB;AACAA,WAAG2gB,SAAH,GAAe,IAAf;AACD;AACD,aAAO,IAAP;AACD,KAXD;;AAaAtnB,MAAEC,EAAF,CAAKwnB,uBAAL,GAA+B,YAAW;AACxC,UAAI9gB,EAAJ,EAAQga,CAAR,EAAW0G,GAAX;AACA,WAAK1G,IAAI,CAAJ,EAAO0G,MAAM,KAAK3lB,MAAvB,EAA+Bif,IAAI0G,GAAnC,EAAwC1G,GAAxC,EAA6C;AAC3Cha,aAAK,KAAKga,CAAL,CAAL;AACA,YAAIha,GAAG2gB,SAAH,IAAgBtnB,EAAE2G,EAAF,EAAM1F,EAAN,CAAS,yBAAT,CAApB,EAAyD;AACvD;AACD;AACDwlB,cAAMiB,oBAAN,CAA2B/gB,EAA3B;AACAA,WAAG2gB,SAAH,GAAe,IAAf;AACD;AACD,aAAO,IAAP;AACD,KAXD;;AAaAX,oBAAgB,uBAASgB,OAAT,EAAkBC,SAAlB,EAA6B;AAC3C,UAAIC,OAAJ,EAAaC,SAAb,EAAwBC,UAAxB,EAAoCC,cAApC,EAAoDC,WAApD,EAAiEC,WAAjE,EAA8EvL,CAA9E,EAAiFnF,CAAjF,EAAoF9O,MAApF,EAA4Fyf,GAA5F,EAAiGnL,KAAjG;AACA,UAAI4K,aAAa,IAAjB,EAAuB;AACrBA,oBAAY,GAAZ;AACD;AACD,UAAI,EAAEpQ,IAAImQ,QAAQ9lB,KAAR,CAAc,gCAAd,CAAN,CAAJ,EAA4D;AAC1D,eAAO,IAAP;AACD;AACDsmB,YAAM3Q,CAAN,EAASA,IAAI2Q,IAAI,CAAJ,CAAb,EAAqBD,cAAcC,IAAI,CAAJ,CAAnC,EAA2CN,UAAUM,IAAI,CAAJ,CAArD;AACAH,uBAAiBI,KAAKP,OAAL,CAAjB;AACAE,mBAAa,EAAb;AACArf,eAAS,CAAT;AACA,aAAOA,SAASsf,eAAetmB,MAA/B,EAAuC;AACrCsb,gBAAQgL,eAAehL,KAAf,CAAqBtU,MAArB,EAA6BA,SAASkf,SAAtC,CAAR;AACAK,sBAAc,IAAI1K,KAAJ,CAAUP,MAAMtb,MAAhB,CAAd;AACAib,YAAI,CAAJ;AACA,eAAOA,IAAIK,MAAMtb,MAAjB,EAAyB;AACvBumB,sBAAYtL,CAAZ,IAAiBK,MAAMqL,UAAN,CAAiB1L,CAAjB,CAAjB;AACAA;AACD;AACDmL,oBAAY,IAAIQ,UAAJ,CAAeL,WAAf,CAAZ;AACAF,mBAAW3Y,IAAX,CAAgB0Y,SAAhB;AACApf,kBAAUkf,SAAV;AACD;AACD,aAAO,IAAIW,IAAJ,CAASR,UAAT,EAAqB;AAC1B1E,cAAM6E;AADoB,OAArB,CAAP;AAGD,KA3BD;;AA6BAxB,2BAAuB,gCAAW;AAChC,aAAO1mB,EAAEuT,SAASiT,aAAT,CAAuB,KAAvB,CAAF,EAAiC5f,IAAjC,CAAsC,iBAAtC,EAAyD,IAAzD,EAA+DA,IAA/D,CAAoE,aAApE,EAAmF,IAAnF,EAAyFA,IAAzF,CAA8F,UAA9F,EAA0G,CAAC,CAA3G,EAA8GwD,GAA9G,CAAkH;AACvHH,eAAO,CADgH;AAEvHue,gBAAQ,CAF+G;AAGvHC,kBAAU,OAH6G;AAIvHnM,cAAM,CAAC,GAJgH;AAKvHoM,kBAAU;AAL6G,OAAlH,CAAP;AAOD,KARD;;AAUA9B,kBAAc,qBAAS9a,OAAT,EAAkB6c,WAAlB,EAA+B;AAC3C,UAAIC,QAAJ,EAAcC,kBAAd,EAAkC5C,GAAlC,EAAuCtiB,GAAvC,EAA4CmlB,OAA5C,EAAqDxD,QAArD;AACA3hB,YAAM,KAAK,CAAX;AACAmlB,gBAAU,KAAK,CAAf;AACA7C,YAAM,KAAK,CAAX;AACA4C,2BAAqB,KAAK,CAA1B;AACAD,iBAAW,KAAK,CAAhB;AACAtD,iBAAWxZ,QAAQwZ,QAAR,CAAiB7B,WAAjB,EAAX;AACA,UAAI,WAAW6B,QAAf,EAAyB;AACvB3hB,cAAMmI,QAAQid,UAAd;AACAD,kBAAUnlB,IAAIE,IAAd;AACA,YAAI,CAACiI,QAAQkd,IAAT,IAAiB,CAACF,OAAlB,IAA6BnlB,IAAI2hB,QAAJ,CAAa7B,WAAb,OAA+B,KAAhE,EAAuE;AACrE,iBAAO,KAAP;AACD;AACDwC,cAAMjmB,EAAE,mBAAmB8oB,OAAnB,GAA6B,KAA/B,CAAN;AACA,eAAO7C,IAAIvkB,MAAJ,GAAa,CAAb,IAAkBukB,IAAIhlB,EAAJ,CAAO,UAAP,CAAzB;AACD;AACD,UAAI,0CAA0Cwb,IAA1C,CAA+C6I,QAA/C,CAAJ,EAA8D;AAC5DuD,6BAAqB,CAAC/c,QAAQmd,QAA9B;AACA,YAAIJ,kBAAJ,EAAwB;AACtBD,qBAAW5oB,EAAE8L,OAAF,EAAWod,OAAX,CAAmB,UAAnB,EAA+B,CAA/B,CAAX;AACA,cAAIN,QAAJ,EAAc;AACZC,iCAAqB,CAACD,SAASK,QAA/B;AACD;AACF;AACF,OARD,MAQO,IAAI,QAAQ3D,QAAZ,EAAsB;AAC3BuD,6BAAqB/c,QAAQkd,IAAR,IAAgBL,WAArC;AACD,OAFM,MAEA;AACLE,6BAAqBF,WAArB;AACD;AACDE,2BAAqBA,sBAAsB7oB,EAAE8L,OAAF,EAAW7K,EAAX,CAAc,mBAAd,CAA3C;AACA,aAAO4nB,sBAAsB7oB,EAAE8L,OAAF,EAAW7K,EAAX,CAAc,UAAd,CAA7B;AACD,KAhCD;;AAkCAwlB,YAAS,YAAW;AAClBA,YAAM5M,SAAN,CAAgBsP,OAAhB,GAA0B,IAA1B;;AAEA1C,YAAM5M,SAAN,CAAgBsN,UAAhB,GAA6B,IAA7B;;AAEAV,YAAMS,iBAAN,GAA0B,UAASkC,YAAT,EAAuB;AAC/C,YAAItC,KAAJ;AACAA,gBAAQ,IAAIL,KAAJ,CAAUC,uBAAuB2C,QAAvB,CAAgCD,YAAhC,CAAV,EAAyDA,YAAzD,CAAR;AACAppB,UAAEopB,YAAF,EAAgBviB,EAAhB,CAAmB,OAAnB,EAA6B,UAASyiB,KAAT,EAAgB;AAC3C,iBAAO,UAASC,EAAT,EAAa;AAClB,gBAAI,CAAC3C,YAAY2C,GAAGliB,MAAf,EAAuB,KAAvB,CAAL,EAAoC;AAClC,qBAAOyf,MAAMK,UAAN,CAAiBtU,KAAjB,EAAP;AACD;AACF,WAJD;AAKD,SAN2B,CAMzB,IANyB,CAA5B;AAOAiU,cAAMK,UAAN,CAAiBtgB,EAAjB,CAAoB,OAApB,EAA8B,UAASyiB,KAAT,EAAgB;AAC5C,iBAAO,YAAW;AAChB,mBAAOtpB,EAAEopB,YAAF,EAAgB9a,QAAhB,CAAyB,gBAAzB,CAAP;AACD,WAFD;AAGD,SAJ4B,CAI1B,IAJ0B,CAA7B;AAKA,eAAOwY,MAAMK,UAAN,CAAiBtgB,EAAjB,CAAoB,MAApB,EAA6B,UAASyiB,KAAT,EAAgB;AAClD,iBAAO,YAAW;AAChB,mBAAOtpB,EAAEopB,YAAF,EAAgB/a,WAAhB,CAA4B,gBAA5B,CAAP;AACD,WAFD;AAGD,SAJkC,CAIhC,IAJgC,CAA5B,CAAP;AAKD,OApBD;;AAsBAoY,YAAMe,aAAN,GAAsB,UAASgC,QAAT,EAAmB;AACvC,YAAIC,OAAJ,EAAa3C,KAAb,EAAoBqB,GAApB,EAAyBuB,IAAzB;AACA,YAAI,CAAC,OAAOC,YAAP,KAAwB,WAAxB,IAAuCA,iBAAiB,IAAxD,GAA+DA,aAAa9P,SAA5E,GAAwF,KAAK,CAA9F,MAAqG,CAACsO,MAAMnJ,OAAO4K,wBAAd,KAA2C,IAA3C,GAAkD,CAACF,OAAOvB,IAAI5Q,IAAJ,CAASyH,MAAT,EAAiB2K,aAAa9P,SAA9B,EAAyC,OAAzC,CAAR,KAA8D,IAA9D,GAAqE6P,KAAKtc,GAA1E,GAAgF,KAAK,CAAvI,GAA2I,KAAK,CAArP,CAAJ,EAA6P;AAC3P,iBAAO,KAAKsa,oBAAL,CAA0B8B,QAA1B,CAAP;AACD;AACD1C,gBAAQ,IAAIL,KAAJ,CAAUC,uBAAuBmD,YAAvB,CAAoCL,QAApC,CAAV,EAAyDA,QAAzD,CAAR;AACAC,kBAAU,KAAV;AACAzpB,UAAEwpB,QAAF,EAAY3iB,EAAZ,CAAe,OAAf,EAAwB,UAAS0iB,EAAT,EAAa;AACnC,cAAIO,IAAJ;AACA,cAAI,CAACA,OAAOP,GAAGQ,OAAX,MAAwB,EAAxB,IAA8BD,SAAS,GAA3C,EAAgD;AAC9CL,sBAAU,KAAV;AACD;AACD,iBAAO,IAAP;AACD,SAND;AAOAzpB,UAAEwpB,QAAF,EAAY3iB,EAAZ,CAAe,SAAf,EAA0B,UAAS0iB,EAAT,EAAa;AACrC,cAAIO,IAAJ;AACA,cAAI,CAACA,OAAOP,GAAGQ,OAAX,MAAwB,EAAxB,IAA8BD,SAAS,GAA3C,EAAgD;AAC9CL,sBAAU,IAAV;AACD;AACD,cAAKF,GAAGjY,OAAH,IAAc,IAAf,IAAyBiY,GAAGS,OAAH,IAAc,IAA3C,EAAkD;AAChDP,sBAAUF,GAAGjY,OAAH,IAAciY,GAAGS,OAA3B;AACD;AACD,cAAIP,WAAWF,GAAGQ,OAAH,KAAe,EAA9B,EAAkC;AAChCjD,kBAAMmD,sBAAN,GAA+B,IAA/B;AACAnD,kBAAMK,UAAN,CAAiBtU,KAAjB;AACAiU,kBAAMoD,kBAAN,GAA2B,KAA3B;AACA7Y,uBAAY,UAASiY,KAAT,EAAgB;AAC1B,qBAAO,YAAW;AAChB,oBAAI,CAACxC,MAAMoD,kBAAX,EAA+B;AAC7BlqB,oBAAEwpB,QAAF,EAAY3W,KAAZ;AACA,yBAAOiU,MAAMmD,sBAAN,GAA+B,KAAtC;AACD;AACF,eALD;AAMD,aAPU,CAOR,IAPQ,CAAX,EAOU,CAPV;AAQD;AACD,iBAAO,IAAP;AACD,SAtBD;AAuBAjqB,UAAEwpB,QAAF,EAAY3iB,EAAZ,CAAe,OAAf,EAAyB,UAASyiB,KAAT,EAAgB;AACvC,iBAAO,YAAW,CAAE,CAApB;AACD,SAFuB,CAErB,IAFqB,CAAxB;AAGAtpB,UAAEwpB,QAAF,EAAY3iB,EAAZ,CAAe,OAAf,EAAyB,UAASyiB,KAAT,EAAgB;AACvC,iBAAO,YAAW;AAChB,gBAAI,CAACxC,MAAMmD,sBAAX,EAAmC;AACjC,qBAAOjqB,EAAEwpB,QAAF,EAAYlb,QAAZ,CAAqB,gBAArB,CAAP;AACD;AACF,WAJD;AAKD,SANuB,CAMrB,IANqB,CAAxB;AAOAtO,UAAEwpB,QAAF,EAAY3iB,EAAZ,CAAe,MAAf,EAAwB,UAASyiB,KAAT,EAAgB;AACtC,iBAAO,YAAW;AAChB,gBAAI,CAACxC,MAAMmD,sBAAX,EAAmC;AACjC,qBAAOjqB,EAAEwpB,QAAF,EAAYnb,WAAZ,CAAwB,gBAAxB,CAAP;AACD;AACF,WAJD;AAKD,SANsB,CAMpB,IANoB,CAAvB;AAOArO,UAAE8mB,MAAMqC,OAAR,EAAiBtiB,EAAjB,CAAoB,0BAApB,EAAiD,UAASyiB,KAAT,EAAgB;AAC/D,iBAAO,YAAW;AAChBtpB,cAAEwpB,QAAF,EAAY3W,KAAZ;AACA,mBAAOiU,MAAMmD,sBAAN,GAA+B,KAAtC;AACD,WAHD;AAID,SAL+C,CAK7C,IAL6C,CAAhD;AAMA,eAAOjqB,EAAE8mB,MAAMqC,OAAR,EAAiBtiB,EAAjB,CAAoB,WAApB,EAAkC,UAASyiB,KAAT,EAAgB;AACvD,iBAAO,UAASC,EAAT,EAAavc,IAAb,EAAmB;AACxB,gBAAIzF,OAAJ,EAAa4iB,MAAb,EAAqBC,QAArB;AACAA,uBAAWpqB,EAAEwpB,QAAF,EAAYa,IAAZ,CAAiB,gBAAjB,CAAX;AACAF,qBAASnqB,EAAEwpB,QAAF,EAAYa,IAAZ,CAAiB,cAAjB,CAAT;AACA9iB,sBAAUvH,EAAEwpB,QAAF,EAAYc,GAAZ,EAAV;AACAtqB,cAAEwpB,QAAF,EAAYc,GAAZ,CAAgB,KAAK/iB,QAAQyV,KAAR,CAAc,CAAd,EAAiBoN,QAAjB,CAAL,GAAkCpd,KAAK5K,IAAvC,GAA8CmF,QAAQyV,KAAR,CAAcmN,MAAd,CAA9D;AACAnqB,cAAEwpB,QAAF,EAAY,CAAZ,EAAee,iBAAf,CAAiCH,WAAWpd,KAAK5K,IAAL,CAAUV,MAAtD,EAA8D0oB,WAAWpd,KAAK5K,IAAL,CAAUV,MAAnF;AACA,mBAAO1B,EAAEwpB,QAAF,EAAY7E,OAAZ,CAAoB,QAApB,CAAP;AACD,WARD;AASD,SAVuC,CAUrC,IAVqC,CAAjC,CAAP;AAWD,OAvED;;AAyEA8B,YAAMiB,oBAAN,GAA6B,UAAS8C,eAAT,EAA0B;AACrD,YAAI1D,KAAJ;AACAA,gBAAQ,IAAIL,KAAJ,CAAU+D,eAAV,EAA2BA,eAA3B,CAAR;AACAxqB,UAAEwqB,eAAF,EAAmB3jB,EAAnB,CAAsB,OAAtB,EAAgC,UAASyiB,KAAT,EAAgB;AAC9C,iBAAO,YAAW;AAChB,mBAAOtpB,EAAEwqB,eAAF,EAAmBlc,QAAnB,CAA4B,gBAA5B,CAAP;AACD,WAFD;AAGD,SAJ8B,CAI5B,IAJ4B,CAA/B;AAKA,eAAOtO,EAAEwqB,eAAF,EAAmB3jB,EAAnB,CAAsB,MAAtB,EAA+B,UAASyiB,KAAT,EAAgB;AACpD,iBAAO,YAAW;AAChB,mBAAOtpB,EAAEwqB,eAAF,EAAmBnc,WAAnB,CAA+B,gBAA/B,CAAP;AACD,WAFD;AAGD,SAJoC,CAIlC,IAJkC,CAA9B,CAAP;AAKD,OAbD;;AAeA,eAASoY,KAAT,CAAeU,UAAf,EAA2BgC,OAA3B,EAAoC;AAClC,aAAKhC,UAAL,GAAkBA,UAAlB;AACA,aAAKgC,OAAL,GAAeA,OAAf;AACA,aAAKhC,UAAL,GAAkBnnB,EAAE,KAAKmnB,UAAP,CAAlB;AACA,aAAKgC,OAAL,GAAenpB,EAAE,KAAKmpB,OAAP,EAAgB7a,QAAhB,CAAyB,UAAzB,CAAf;AACA,aAAK6Y,UAAL,CAAgBtgB,EAAhB,CAAmB,OAAnB,EAA6B,UAASyiB,KAAT,EAAgB;AAC3C,iBAAO,UAASC,EAAT,EAAa;AAClB,gBAAIkB,aAAJ,EAAmBC,IAAnB,EAAyBnf,IAAzB,EAA+BoV,CAA/B,EAAkCgK,CAAlC,EAAqCtD,GAArC,EAA0CuD,IAA1C,EAAgDC,MAAhD,EAAwD1C,GAAxD,EAA6DuB,IAA7D,EAAmEI,IAAnE,EAAyEgB,IAAzE,EAA+E1oB,IAA/E;AACA,gBAAImnB,GAAGtiB,aAAH,KAAqBsiB,GAAGliB,MAA5B,EAAoC;AAClC,qBAAOkiB,GAAGxiB,cAAH,EAAP;AACD;AACDuiB,kBAAMY,kBAAN,GAA2B,IAA3B;AACA,gBAAI,CAAC,CAAC/B,MAAMoB,GAAGwB,aAAV,KAA4B,IAA5B,GAAmC5C,IAAIsC,aAAvC,GAAuD,KAAK,CAA7D,KAAmE,IAAvE,EAA6E;AAC3EA,8BAAgBlB,GAAGwB,aAAH,CAAiBN,aAAjC;AACA,kBAAIA,cAAcO,KAAlB,EAAyB;AACvBtB,uBAAOe,cAAcO,KAArB;AACA,qBAAKrK,IAAI,CAAJ,EAAO0G,MAAMqC,KAAKhoB,MAAvB,EAA+Bif,IAAI0G,GAAnC,EAAwC1G,GAAxC,EAA6C;AAC3CpV,yBAAOme,KAAK/I,CAAL,CAAP;AACA,sBAAIpV,KAAK8X,IAAL,CAAUxhB,KAAV,CAAgB,UAAhB,CAAJ,EAAiC;AAC/BgpB,6BAAS,IAAII,UAAJ,EAAT;AACAJ,2BAAOK,MAAP,GAAgB,UAASpkB,KAAT,EAAgB;AAC9B,6BAAOwiB,MAAM6B,YAAN,CAAmBrkB,MAAMO,MAAN,CAAa+jB,MAAhC,CAAP;AACD,qBAFD;AAGAP,2BAAOQ,aAAP,CAAqB9f,KAAK+f,SAAL,EAArB;AACA/B,uBAAGxiB,cAAH;AACA;AACD;AACD,sBAAIwE,KAAK8X,IAAL,KAAc,YAAlB,EAAgC;AAC9B9X,yBAAKggB,WAAL,CAAiB,UAASC,MAAT,EAAiB;AAChC,6BAAOlC,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,WAAtB,EAAmC;AACxCviB,8BAAMopB;AADkC,uBAAnC,CAAP;AAGD,qBAJD;AAKD;AACF;AACF,eArBD,MAqBO;AACL,oBAAI,CAAC,CAAD,KAAOjO,MAAM1D,SAAN,CAAgBiK,OAAhB,CAAwBvM,IAAxB,CAA6BkT,cAAcgB,KAA3C,EAAkD,YAAlD,CAAX,EAA4E;AAC1ErpB,yBAAOqoB,cAAciB,OAAd,CAAsB,MAAtB,CAAP;AACAra,6BAAW,YAAW;AACpB,2BAAOiY,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,WAAtB,EAAmC;AACxCviB,4BAAMA;AADkC,qBAAnC,CAAP;AAGD,mBAJD,EAIG,CAJH;AAKD;AACDknB,sBAAMqC,uBAAN,CAA8B,UAASxF,GAAT,EAAc;AAC1C,yBAAOmD,MAAM6B,YAAN,CAAmBhF,GAAnB,CAAP;AACD,iBAFD;AAGD;AACF;AACD,gBAAIsE,gBAAgBliB,OAAOkiB,aAA3B,EAA0C;AACxC,kBAAI,CAACX,OAAQ1nB,OAAOqoB,cAAciB,OAAd,CAAsB,MAAtB,CAAhB,KAAmD,IAAnD,GAA0D5B,KAAKpoB,MAA/D,GAAwE,KAAK,CAAjF,EAAoF;AAClF2P,2BAAW,YAAW;AACpBiY,wBAAMH,OAAN,CAAcxE,OAAd,CAAsB,WAAtB,EAAmC;AACjCviB,0BAAMA;AAD2B,mBAAnC;AAGA,yBAAOknB,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,0BAAtB,CAAP;AACD,iBALD,EAKG,CALH;AAMD,eAPD,MAOO;AACLmG,uBAAOL,cAAcmB,KAArB;AACA,qBAAKjB,IAAI,CAAJ,EAAOC,OAAOE,KAAKppB,MAAxB,EAAgCipB,IAAIC,IAApC,EAA0CD,GAA1C,EAA+C;AAC7CD,yBAAOI,KAAKH,CAAL,CAAP;AACArB,wBAAM6B,YAAN,CAAmBU,IAAIC,eAAJ,CAAoBpB,IAApB,CAAnB;AACD;AACDpB,sBAAMqC,uBAAN,CAA8B,UAASxF,GAAT,EAAc,CAAE,CAA9C;AACD;AACF;AACD,mBAAO,IAAP;AACD,WA7DD;AA8DD,SA/D2B,CA+DzB,IA/DyB,CAA5B;AAgED;;AAEDM,YAAM5M,SAAN,CAAgBsR,YAAhB,GAA+B,UAAShF,GAAT,EAAc;AAC3C,YAAI4F,MAAJ;AACA,YAAI5F,IAAItkB,KAAJ,CAAU,0BAAV,CAAJ,EAA2C;AACzC,iBAAO,KAAKsnB,OAAL,CAAaxE,OAAb,CAAqB,iBAArB,EAAwC;AAC7CqH,qBAAS;AADoC,WAAxC,CAAP;AAGD;AACDD,iBAAS,IAAIE,KAAJ,EAAT;AACAF,eAAOG,WAAP,GAAqB,WAArB;AACAH,eAAOb,MAAP,GAAiB,UAAS5B,KAAT,EAAgB;AAC/B,iBAAO,YAAW;AAChB,gBAAI6C,IAAJ,EAAUC,MAAV,EAAkB3b,GAAlB,EAAuBkX,OAAvB;AACAyE,qBAAS7Y,SAASiT,aAAT,CAAuB,QAAvB,CAAT;AACA4F,mBAAOniB,KAAP,GAAe8hB,OAAO9hB,KAAtB;AACAmiB,mBAAO5D,MAAP,GAAgBuD,OAAOvD,MAAvB;AACA/X,kBAAM2b,OAAOC,UAAP,CAAkB,IAAlB,CAAN;AACA5b,gBAAI6b,SAAJ,CAAcP,MAAd,EAAsB,CAAtB,EAAyB,CAAzB,EAA4BK,OAAOniB,KAAnC,EAA0CmiB,OAAO5D,MAAjD;AACAb,sBAAU,IAAV;AACA,gBAAI;AACFA,wBAAUyE,OAAOG,SAAP,CAAiB,WAAjB,CAAV;AACAJ,qBAAOxF,cAAcgB,OAAd,CAAP;AACD,aAHD,CAGE,OAAOtN,SAAP,EAAkB,CAAE;AACtB,gBAAIsN,OAAJ,EAAa;AACX,qBAAO2B,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,YAAtB,EAAoC;AACzCwH,sBAAMA,IADmC;AAEzCxE,yBAASA,OAFgC;AAGzC1d,uBAAO8hB,OAAO9hB,KAH2B;AAIzCue,wBAAQuD,OAAOvD;AAJ0B,eAApC,CAAP;AAMD;AACF,WApBD;AAqBD,SAtBe,CAsBb,IAtBa,CAAhB;AAuBAuD,eAAOS,OAAP,GAAkB,UAASlD,KAAT,EAAgB;AAChC,iBAAO,YAAW;AAChB,mBAAOA,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,iBAAtB,EAAyC;AAC9CqH,uBAAS,+BAA+B7F,GADM;AAE9CvlB,mBAAKulB;AAFyC,aAAzC,CAAP;AAID,WALD;AAMD,SAPgB,CAOd,IAPc,CAAjB;AAQA,eAAO4F,OAAO5F,GAAP,GAAaA,GAApB;AACD,OAzCD;;AA2CAM,YAAM5M,SAAN,CAAgB8R,uBAAhB,GAA0C,UAASc,EAAT,EAAa;AACrD,YAAIxG,GAAJ,EAAStF,CAAT,EAAY0G,GAAZ,EAAiBc,GAAjB,EAAsBuE,QAAtB;AACAA,mBAAW1K,KAAK2K,KAAL,CAAW,OAAO3K,KAAKkB,MAAL,EAAlB,CAAX;AACAiF,cAAM,KAAKhB,UAAL,CAAgB3gB,IAAhB,CAAqB,KAArB,CAAN;AACA,aAAKma,IAAI,CAAJ,EAAO0G,MAAMc,IAAIzmB,MAAtB,EAA8Bif,IAAI0G,GAAlC,EAAuC1G,GAAvC,EAA4C;AAC1CsF,gBAAMkC,IAAIxH,CAAJ,CAAN;AACAsF,cAAI,mBAAmByG,QAAvB,IAAmC,IAAnC;AACD;AACD,eAAOrb,WAAY,UAASiY,KAAT,EAAgB;AACjC,iBAAO,YAAW;AAChB,gBAAIqB,CAAJ,EAAOC,IAAP,EAAalB,IAAb;AACAA,mBAAOJ,MAAMnC,UAAN,CAAiB3gB,IAAjB,CAAsB,KAAtB,CAAP;AACA,iBAAKmkB,IAAI,CAAJ,EAAOC,OAAOlB,KAAKhoB,MAAxB,EAAgCipB,IAAIC,IAApC,EAA0CD,GAA1C,EAA+C;AAC7C1E,oBAAMyD,KAAKiB,CAAL,CAAN;AACA,kBAAI,CAAC1E,IAAI,mBAAmByG,QAAvB,CAAL,EAAuC;AACrCD,mBAAGxG,IAAIE,GAAP;AACAnmB,kBAAEimB,GAAF,EAAO7B,MAAP;AACD;AACF;AACD,mBAAOkF,MAAMH,OAAN,CAAcxE,OAAd,CAAsB,0BAAtB,CAAP;AACD,WAXD;AAYD,SAbiB,CAaf,IAbe,CAAX,EAaG,CAbH,CAAP;AAcD,OAtBD;;AAwBA,aAAO8B,KAAP;AAED,KA/PO,EAAR;AAiQD,GA/XD,EA+XGlP,IA/XH;;;;;ACRA,KAAC,UAASvX,CAAT,EAAY;AACTA,UAAEC,EAAF,CAAKK,MAAL,CAAY;AACRssB,2BAAe,uBAASC,OAAT,EAAkB;AAC7B,oBAAIva,KAAKtS,EAAE,IAAF,EAAQ,CAAR,CAAT;AACA,oBAAIuT,SAASuZ,SAAb,EAAwB;AACpB,yBAAKja,KAAL;AACAka,0BAAMxZ,SAASuZ,SAAT,CAAmBE,WAAnB,EAAN;AACAD,wBAAI3qB,IAAJ,GAAWyqB,OAAX;AACA,yBAAKha,KAAL;AACH,iBALD,MAKO,IAAIP,GAAG2a,cAAH,IAAqB3a,GAAG2a,cAAH,IAAqB,GAA9C,EAAmD;AACtD,wBAAIC,WAAW5a,GAAG2a,cAAlB;AACA,wBAAIE,SAAS7a,GAAG8a,YAAhB;AACA,wBAAIrb,YAAYO,GAAGP,SAAnB;AACAO,uBAAG8H,KAAH,GAAW9H,GAAG8H,KAAH,CAASiT,SAAT,CAAmB,CAAnB,EAAsBH,QAAtB,IAAkCL,OAAlC,GAA4Cva,GAAG8H,KAAH,CAASiT,SAAT,CAAmBF,MAAnB,EAA2B7a,GAAG8H,KAAH,CAAS1Y,MAApC,CAAvD;AACA,yBAAKmR,KAAL;AACAP,uBAAG2a,cAAH,GAAoBC,WAAWL,QAAQnrB,MAAvC;AACA4Q,uBAAG8a,YAAH,GAAkBF,WAAWL,QAAQnrB,MAArC;AACA4Q,uBAAGP,SAAH,GAAeA,SAAf;AACH,iBATM,MASA;AACH,yBAAKqI,KAAL,IAAcyS,OAAd;AACA,yBAAKha,KAAL;AACH;AACJ;AArBO,SAAZ;AAuBH,KAxBD,EAwBGgU,MAxBH;;;;;;;;;ACMA,QAAIyG,cAAc,IAAlB;AACA,QAAIC,cAAc,MAAlB;AACA,QAAIC,cAAc,IAAlB;;AAEA,QAAIC,WAAW,EAAf;;AAEA,QAAIC,QAAQ,IAAZ;;AAEA,QAAIC,MAAM,CAAV;;AAEA,QAAIC,WAAWN,WAAf;;AAEA,QAAIO,UAAU,IAAd;AACA,QAAIC,SAAS,IAAb;AACA,QAAIC,WAAW,KAAf;;AAEA,aAASC,UAAT,GAAsB;;AAElB,YAAID,QAAJ,EAAc;AACV;AACH;;AAED,YAAI;AACAF,uBAAWA,QAAQ1hB,MAAR,EAAgB8hB,KAAhB,CAAX;AACH,SAFD,CAEE,OAAO/kB,CAAP,EAAU;AACR4kB,sBAAUA,OAAO3hB,MAAP,EAAe8hB,KAAf,EAAsB/kB,CAAtB,CAAV;;AAGA8d,oBAAQC,GAAR,CAAY,WAAW/d,CAAvB;AACH;AACJ;;AAOD,aAASglB,MAAT,GAAkB;;AAIdH,mBAAW,KAAX;;AAEAC;AACAN,gBAAQpnB,YAAY,YAAW;AAC3BqnB;AACAK;;;AAIA,gBAAIL,MAAMF,QAAV,EAAoB;;AAEhBG,2BAAWN,cAAeE,eAAeG,MAAMF,QAArB,CAA1B;;AAEA,oBAAIG,YAAYL,WAAhB,EAA6B;AACzBtnB,kCAAcynB,KAAd;AACAQ;AACH;AACJ;AACJ,SAfO,EAeLN,QAfK,CAAR;AAgBH;;AAED,aAASK,KAAT,GAAiB;;AAIbN,cAAM,CAAN;AACAC,mBAAWN,WAAX;AACAS,mBAAW,KAAX;AACA9nB,sBAAcynB,KAAd;AACAA,gBAAQ,IAAR;AACH;;AAED,aAASvhB,MAAT,GAAkB;;AAId8hB;AACAC;AACH;;AAED,aAASC,MAAT,GAAkB;AAGdJ,mBAAW,IAAX;AACH;;sBAEc;AACX7oB,eAAO,eAASkpB,MAAT,EAAiBC,KAAjB,EAAwB;AAC3B,gBAAIX,KAAJ,EAAW;AACPO;AACH;AACDJ,sBAAUO,MAAV;AACAN,qBAASO,KAAT;AACAH;AACH,SARU;AASX1kB,eAAO,iBAAW;AACd2C;AACH,SAXU;AAYXD,cAAM,gBAAW;AACb+hB;AACH,SAdU;AAeXK,eAAO,iBAAW;AACdH;AACH;AAjBU;;;;;AChFf;AACC,eAAUpX,IAAV,EAAgBC,OAAhB,EAAyB;AACtBA,gBAAQD,KAAK8P,MAAb;AACH,KAFA,EAECte,MAFD,EAES,UAAUvI,CAAV,EAAa;AACnB;;AAGA,YAAIsE,QAAQ,KAAZ;;AAEA,YAAIiqB,UAAU;AACVvhB,kBAAM;AACFtG,uBAAO,CADL;AAEF7C,sBAAM;AAFJ,aADI;AAKV2qB,qBAAS,WAAW/R,IAAX,CAAgBgS,UAAUC,SAA1B,CALC;AAMVC,oBAAQ,OAAOlS,IAAP,CAAYgS,UAAUG,QAAtB,CANE;AAOVC,oBAAQ,aAAapS,IAAb,CAAkBgS,UAAUC,SAA5B,CAPE;AAQVI,kBAAM,kBAAkBrS,IAAlB,CAAuBgS,UAAUC,SAAjC,CARI;AASVK,oBAAQ,6CAA6CtS,IAA7C,CAAkDgS,UAAUC,SAA5D,CATE;AAUVM,qBAAS,IAVC;AAWVtd,oBAAQ,IAXE;AAYVud,qBAAS,EAZC;AAaVC,oBAAQ,UAAUzS,IAAV,CAAegS,UAAUC,SAAzB,KAAuC,CAAC,aAAajS,IAAb,CAAkBgS,UAAUC,SAA5B;AAbtC,SAAd;;AAgBAH,gBAAQU,OAAR,CAAgBE,GAAhB,GAAsB,UAAUC,QAAV,EAAoB;AACtC,iBAAKhL,MAAL,CAAYgL,QAAZ,EAAsBhgB,IAAtB,CAA2BggB,QAA3B;AACH,SAFD;AAGAb,gBAAQU,OAAR,CAAgB7K,MAAhB,GAAyB,UAAUgL,QAAV,EAAoB;AACzC,mBAAOpvB,EAAE6jB,OAAF,CAAUuL,QAAV,EAAoB,IAApB,KAA6B,CAApC,EAAuC;AACnC,qBAAK7kB,MAAL,CAAYvK,EAAE6jB,OAAF,CAAUuL,QAAV,EAAoB,IAApB,CAAZ,EAAuC,CAAvC;AACH;AACD,mBAAO,IAAP;AACH,SALD;;AAOA,YAAIxK,WAAW;AACXyK,4BAAgB,IADL;AAEXC,wBAAY,IAFD;AAGXhrB,mBAAO,KAHI;AAIXirB,+BAAmB,KAJR;AAKXlc,sBAAU,GALC;AAMXmc,0BAAc,KANH;AAOXC,2BAAe,KAPJ;AAQXC,mBAAO,KARI;AASXC,wBAAY,EATD;AAUXC,wBAAY,KAVD;AAWXC,2BAAe,IAXJ;;AAaXC,qBAAS,IAbE;AAcXC,qBAAS,IAdE;;AAgBXC,uBAAW,IAhBA;AAiBXC,wBAAY,IAjBD;AAkBXC,oBAAQ,IAlBG;AAmBXC,sBAAU,IAnBC;AAoBXC,sBAAU,IApBC,EAAf;;AAwBA,YAAIC,gBAAgB,SAAhBA,aAAgB,CAAUC,SAAV,EAAqB;;AAErC,gBAAI,CAAC/B,QAAQ7c,MAAb,EAAqB;AACjB6c,wBAAQS,OAAR,GAAkBuB,yBAAlB;AACAhC,wBAAQ7c,MAAR,GAAiB8e,sBAAjB;AACAC;;AAcAzwB,kBAAEuI,MAAF,EAAUmoB,MAAV,CAAiB,YAAY;AACzBD,qCAAiB,IAAjB;AACH,iBAFD;AAGH;;AAED,iBAAKH,SAAL,GAAiBA,SAAjB;AACA,iBAAKK,SAAL,GAAiB,gBAAgBpC,QAAQvhB,IAAR,CAAatG,KAAb,EAAjC;AACA,iBAAKya,OAAL,GAAenhB,EAAEM,MAAF,CAAS,EAAT,EAAaskB,QAAb,EAAuBrc,OAAOqoB,sBAAP,IAAiC,EAAxD,CAAf;AACA,iBAAK3kB,QAAL,GAAgB,IAAhB;AACA,iBAAK6jB,OAAL,GAAe,EAAf;AACA,iBAAKC,OAAL,GAAe,EAAf;;AAEAO,sBAAUtjB,IAAV,CAAeuhB,QAAQvhB,IAAR,CAAanJ,IAA5B,EAAkC,IAAlC;AACA0qB,oBAAQU,OAAR,CAAgBE,GAAhB,CAAoB,IAApB;AACH,SAjCD;;AAmCAkB,sBAAcxW,SAAd,GAA0B;AACtBgX,qBAAS,mBAAY;;AAEjB,oBAAI,CAAC,KAAKC,OAAV,EAAmB;AACf;AACH;;AAED,qBAAKR,SAAL,CAAeS,UAAf,CAA0BxC,QAAQvhB,IAAR,CAAanJ,IAAvC;AACA0qB,wBAAQU,OAAR,CAAgB7K,MAAhB,CAAuB,IAAvB;;AAGA,oBAAI4M,aAAa,KAAKV,SAAL,CAAeU,UAAf,EAAjB;AACA,oBAAIjf,YAAY,KAAKue,SAAL,CAAeve,SAAf,EAAhB;;AAEA,qBAAKue,SAAL,CAAezG,YAAf,CAA4B,KAAKiH,OAAjC,EAA0C1mB,GAA1C,CAA8C;AAC1C,8BAAU,EADgC;AAE1C,8BAAU,EAFgC;AAG1C,kCAAc;AAH4B,iBAA9C,EAKKiE,WALL,CAKiB,8DALjB,EAMKqW,GANL,CAMS,KAAKiM,SANd,EAOKK,UAPL,CAOgBA,UAPhB,EAQKjf,SARL,CAQeA,SARf;;AAUA,qBAAK+d,OAAL,CAAape,MAAb,CAAoBrD,WAApB,CAAgC,wBAAhC,EAA0D7H,IAA1D,CAA+D,KAA/D,EAAsEyqB,OAAtE,GAAgFvM,GAAhF,CAAoF,KAAKiM,SAAzF;AACA,qBAAKZ,OAAL,CAAare,MAAb,CAAoBrD,WAApB,CAAgC,wBAAhC,EAA0D7H,IAA1D,CAA+D,KAA/D,EAAsEyqB,OAAtE,GAAgFvM,GAAhF,CAAoF,KAAKiM,SAAzF;;AAEA,qBAAKG,OAAL,CAAa1M,MAAb;;AAEApkB,kBAAEuT,QAAF,EAAY4b,GAAZ,CAAgB,MAAhB,EAAwBzK,GAAxB,CAA4B,KAAKiM,SAAjC;;AAEA,oBAAI3wB,EAAEkxB,UAAF,CAAa,KAAK/P,OAAL,CAAa6O,SAA1B,CAAJ,EAA0C;AACtC,yBAAK7O,OAAL,CAAa6O,SAAb,CAAuBpP,KAAvB,CAA6B,IAA7B,EAAmC,CAAC,KAAK0P,SAAN,CAAnC;AACH;AACJ,aAlCqB;AAmCtBlxB,kBAAM,cAAU+hB,OAAV,EAAmB;AAGrB,oBAAIgQ,IAAI,IAAR;AAAA,oBACI1Z,IAAI,KAAK6Y,SADb;AAAA,oBAEIc,KAAK,KAAKC,gBAAL,IAAyB5Z,CAFlC;AAAA,oBAGIkZ,YAAY,KAAKA,SAHrB;AAAA,oBAIIW,IAAItxB,EAAEM,MAAF,CAAS,KAAK6gB,OAAd,EAAuBA,WAAW,EAAlC,CAJR;AAAA,oBAKI2B,IAAI,EAACyO,GAAG,KAAKzB,OAAT,EAAkB0B,GAAG,KAAKzB,OAA1B,EALR;AAAA,oBAMA/M,IAAI,KAAK8N,OANT;AAAA,oBAOIW,aAAa,EAPjB;;AASA,oBAAIC,aAAa;AACbV,gCAAYvZ,EAAEuZ,UAAF,EADC;AAEbjf,+BAAW0F,EAAE1F,SAAF;AAFE,iBAAjB;;AAMA,oBAAKwc,QAAQQ,MAAR,IAAkBuC,EAAE9B,YAArB,IACIjB,QAAQS,OAAR,IAAmBsC,EAAE7B,aADzB,IAEIlB,QAAQI,MAAR,IAAkB,CAACJ,QAAQW,MAFnC,EAGM;AACF,4BAAIlvB,EAAEkxB,UAAF,CAAaI,EAAErB,UAAf,CAAJ,EAAgC;AAC5BqB,8BAAErB,UAAF,CAAarP,KAAb,CAAmB,IAAnB,EAAyB,CAACnJ,CAAD,CAAzB;AACH;AACD,+BAAO,KAAP;AACH;;AAGD,oBAAI,CAACuL,CAAL,EAAQ;AACJ,yBAAK8N,OAAL,GAAe9N,IAAIhjB,EAAE,OAAF,EAAWsO,QAAX,CAAoB,gBAApB,EAAsCA,QAAtC,CAA+CmJ,EAAE7Q,IAAF,CAAO,OAAP,CAA/C,EACdwD,GADc,CACV,UADU,EACEqN,EAAErN,GAAF,CAAM,UAAN,MAAsB,UAAtB,GAAmC,UAAnC,GAAgD,UADlD,EAEdyf,YAFc,CAEDpS,CAFC,EAEEka,MAFF,CAESla,CAFT,CAAnB;;AAIA,wBAAI6Z,EAAE5B,KAAN,EAAa;AACT1M,0BAAE1U,QAAF,CAAW,aAAX;AACH;;AAED,wBAAImJ,EAAExW,EAAF,CAAK,UAAL,CAAJ,EAAsB;AAClB,6BAAKowB,gBAAL,GAAwBD,KAAKpxB,EAAE,OAAF,EAAW6pB,YAAX,CAAwBpS,CAAxB,EAA2Bka,MAA3B,CAAkCla,CAAlC,CAA7B;AACAuL,0BAAE1U,QAAF,CAAW,iBAAX;AACH;;AAEDmjB,iCAAa;AACT,kCAAU,MADD;AAET,yCAAiBlD,QAAQ7c,MAAR,CAAe8W,MAAf,GAAwB,CAAC,CAAzB,GAA6B,IAFrC;AAGT,sCAAc;AAHL,qBAAb;AAKAiJ,+BAAWH,EAAE5B,KAAF,GAAU,aAAV,GAA0B,cAArC,IAAuDnB,QAAQ7c,MAAR,CAAezH,KAAf,GAAuB,CAAC,CAAxB,GAA4B,IAAnF;;AAEAmnB,uBAAG9iB,QAAH,CAAY,gBAAZ,EAA8BlE,GAA9B,CAAkCqnB,UAAlC;;AAEAha,sBAAE5Q,EAAF,CAAK,WAAW8pB,SAAhB,EAA2B,UAAU7pB,KAAV,EAAiB;AACxC,4BAAIkqB,aAAavZ,EAAEuZ,UAAF,EAAjB;AACA,4BAAIjf,YAAY0F,EAAE1F,SAAF,EAAhB;AACA,4BAAIuf,EAAE5B,KAAN,EAAa;AAIT,oCAAQ,IAAR;AACI,qCAAKnB,QAAQC,OAAb;AACIwC,iDAAahP,KAAK4P,GAAL,CAASZ,UAAT,CAAb;AACJ,qCAAKzC,QAAQM,MAAR,IAAkBN,QAAQO,IAA/B;AACIkC,iDAAavZ,EAAE,CAAF,EAAKoa,WAAL,GAAmBpa,EAAE,CAAF,EAAKqa,WAAxB,GAAsCd,UAAnD;AACA;AALR;AAOH;AACD,4BAAIhxB,EAAEkxB,UAAF,CAAaI,EAAEnB,QAAf,CAAJ,EAA8B;AAC1BmB,8BAAEnB,QAAF,CAAW5Y,IAAX,CAAgB4Z,CAAhB,EAAmB;AACfY,2CAAWjP,EAAE0O,CAAF,CAAIQ,eADA;AAEftgB,wCAAQK,SAFO;AAGf9E,sCAAM6V,EAAE0O,CAAF,CAAIvkB,IAHK;AAIfglB,yCAASnP,EAAE0O,CAAF,CAAIS;AAJE,6BAAnB,EAKG;AACCF,2CAAWjP,EAAEyO,CAAF,CAAIS,eADhB;AAECtgB,wCAAQsf,UAFT;AAGC/jB,sCAAM6V,EAAEyO,CAAF,CAAItkB,IAHX;AAICglB,yCAASnP,EAAEyO,CAAF,CAAIU;AAJd,6BALH;AAWH;AACDnP,0BAAEyO,CAAF,CAAIW,SAAJ,IAAiBpP,EAAEyO,CAAF,CAAI7f,MAAJ,CAAWygB,GAAX,CAAe/nB,GAAf,CAAmB,MAAnB,EAA2B4mB,aAAalO,EAAEyO,CAAF,CAAIa,EAAjB,GAAsB,IAAjD,CAAjB;AACAtP,0BAAE0O,CAAF,CAAIU,SAAJ,IAAiBpP,EAAE0O,CAAF,CAAI9f,MAAJ,CAAWygB,GAAX,CAAe/nB,GAAf,CAAmB,KAAnB,EAA0B2H,YAAY+Q,EAAE0O,CAAF,CAAIY,EAAhB,GAAqB,IAA/C,CAAjB;AACH,qBA9BD;;AAiCApP,sBAAEnc,EAAF,CAAK,WAAW8pB,SAAhB,EAA2B,YAAY;AACnC3N,0BAAEjR,SAAF,CAAY,CAAZ,EAAeif,UAAf,CAA0B,CAA1B;AACH,qBAFD;;AAIA,wBAAIM,EAAE/B,iBAAN,EAAyB;AACrB,4BAAI8C,oBAAoB,SAApBA,iBAAoB,CAAUvrB,KAAV,EAAiB;AACrCwrB,6CAAiBxrB,KAAjB,IACIgc,EAAE0O,CAAF,CAAIU,SAAJ,IAAiBpP,EAAE0O,CAAF,CAAIe,UAAJ,CAAezrB,KAAf,CADrB,GAEIgc,EAAEyO,CAAF,CAAIW,SAAJ,IAAiBpP,EAAEyO,CAAF,CAAIgB,UAAJ,CAAezrB,KAAf,CAFrB;AAGH,yBAJD;AAKAkc,0BAAEnc,EAAF,CAAK,wBAAwB8pB,SAA7B,EAAwC0B,iBAAxC;AACArP,0BAAEnc,EAAF,CAAK,eAAe8pB,SAApB,EAA+B0B,iBAA/B;;AAEA,4BAAI9D,QAAQQ,MAAZ,EAAoB;AAChB/L,8BAAEnc,EAAF,CAAK,eAAe8pB,SAApB,EAA+B,UAAU7pB,KAAV,EAAiB;AAC5C,oCAAI0rB,QAAQ1rB,MAAMikB,aAAN,CAAoB0H,OAApB,IAA+B3rB,MAAMikB,aAAN,CAAoB0H,OAApB,CAA4B,CAA5B,CAA/B,IAAiE3rB,KAA7E;AACA,oCAAI4rB,gBAAgB;AAChBC,2CAAOH,MAAMG,KADG;AAEhBC,2CAAOJ,MAAMI;AAFG,iCAApB;AAIA,oCAAIC,iBAAiB;AACjBvW,0CAAM7E,EAAEuZ,UAAF,EADW;AAEjB8B,yCAAKrb,EAAE1F,SAAF;AAFY,iCAArB;AAIA/R,kCAAEuT,QAAF,EAAY1M,EAAZ,CAAe,cAAc8pB,SAA7B,EAAwC,UAAU7pB,KAAV,EAAiB;AACrD,wCAAI0rB,QAAQ1rB,MAAMikB,aAAN,CAAoBgI,aAApB,IAAqCjsB,MAAMikB,aAAN,CAAoBgI,aAApB,CAAkC,CAAlC,CAArC,IAA6EjsB,KAAzF;AACA2Q,sCAAEuZ,UAAF,CAAa6B,eAAevW,IAAf,GAAsBoW,cAAcC,KAApC,GAA4CH,MAAMG,KAA/D;AACAlb,sCAAE1F,SAAF,CAAY8gB,eAAeC,GAAf,GAAqBJ,cAAcE,KAAnC,GAA2CJ,MAAMI,KAA7D;AACA9rB,0CAAMC,cAAN;AACH,iCALD;AAMA/G,kCAAEuT,QAAF,EAAY1M,EAAZ,CAAe,aAAa8pB,SAA5B,EAAuC,YAAY;AAC/C3wB,sCAAEuT,QAAF,EAAYmR,GAAZ,CAAgBiM,SAAhB;AACH,iCAFD;AAGH,6BAnBD;AAoBH;AACJ;AACD,wBAAI3wB,EAAEkxB,UAAF,CAAaI,EAAEpB,MAAf,CAAJ,EAA4B;AACxBoB,0BAAEpB,MAAF,CAAStP,KAAT,CAAe,IAAf,EAAqB,CAACnJ,CAAD,CAArB;AACH;AACJ,iBA/FD,MA+FO;AACHga,iCAAa;AACT,kCAAU,MADD;AAET,yCAAiBlD,QAAQ7c,MAAR,CAAe8W,MAAf,GAAwB,CAAC,CAAzB,GAA6B,IAFrC;AAGT,sCAAc;AAHL,qBAAb;AAKAiJ,+BAAWH,EAAE5B,KAAF,GAAU,aAAV,GAA0B,cAArC,IAAuDnB,QAAQ7c,MAAR,CAAezH,KAAf,GAAuB,CAAC,CAAxB,GAA4B,IAAnF;AACAmnB,uBAAGhnB,GAAH,CAAOqnB,UAAP;AACH;;AAGDzxB,kBAAEyG,IAAF,CAAOqc,CAAP,EAAU,UAAUkQ,CAAV,EAAalD,OAAb,EAAsB;;AAE5B,wBAAImD,iBAAiB,IAArB;AACA,wBAAIC,gBAAgB,CAApB;AACA,wBAAIC,eAAgBH,MAAM,GAAP,GAAc,YAAd,GAA6B,WAAhD;AACA,wBAAIrD,aAAa2B,EAAE3B,UAAnB;AACA,wBAAI1jB,WAAW,SAAXA,QAAW,GAAY;AACvB,4BAAImnB,gBAAgB3b,EAAE0b,YAAF,GAApB;AACA1b,0BAAE0b,YAAF,EAAgBC,gBAAgBzD,UAAhC;AACA,4BAAIuD,iBAAiB,CAAjB,IAAuBE,gBAAgBzD,UAAjB,IAAgC0D,aAA1D,EACID,gBAAgB3b,EAAE0b,YAAF,GAAhB;AACJ,4BAAID,iBAAiB,CAAC,CAAlB,IAAwBE,gBAAgBzD,UAAjB,IAAgC0D,aAA3D,EACID,gBAAgB3b,EAAE0b,YAAF,GAAhB;AACJ,4BAAI1b,EAAE0b,YAAF,OAAqBC,aAArB,IAAsCH,cAA1C,EAA0D;AACtDA;AACH;AACJ,qBAVD;AAWA,wBAAII,gBAAgB,CAApB;;AAEA,wBAAI,CAACvD,QAAQpe,MAAb,EAAqB;;AAEjBoe,gCAAQpe,MAAR,GAAiByf,EAAEmC,UAAF,CAAahC,EAAE,WAAW0B,CAAb,CAAb,EAA8B1kB,QAA9B,CAAuC,YAAY0kB,CAAnD,CAAjB;;AAEA,4BAAI1B,EAAE1B,UAAN,EAAkB;AACdE,oCAAQpe,MAAR,CAAepD,QAAf,CAAwB,+BAAxB;AACH;;AAEDwhB,gCAAQyC,UAAR,GAAqB,UAAUzrB,KAAV,EAAiB;;AAElC,gCAAI,CAACgpB,QAAQoC,SAAT,IAAuBc,MAAM,GAAN,IAAaV,iBAAiBxrB,KAAjB,CAAxC,EAAkE;AAC9D,uCAAO,IAAP;AACH;AACD,gCAAIksB,MAAM,GAAN,IAAa,CAACV,iBAAiBxrB,KAAjB,CAAlB,EAA2C;AACvCgc,kCAAEyO,CAAF,CAAIgB,UAAJ,CAAezrB,KAAf;AACA,uCAAO,IAAP;AACH;;AAED,gCAAIysB,QAAQzsB,MAAMikB,aAAN,CAAoByI,UAApB,GAAiC,CAAC,CAAlC,IAAuC1sB,MAAMikB,aAAN,CAAoB0I,MAAvE;AACA,gCAAIC,iBAAiB5D,QAAQ7iB,IAAR,GAAe6iB,QAAQmC,OAAvB,GAAiCnC,QAAQpnB,MAA9D;;AAGA,gCAAI,CAAC6qB,KAAL,EAAY;AACR,oCAAIP,MAAM,GAAN,IAAa,CAAC,CAAClsB,MAAMikB,aAAN,CAAoB4I,MAAvC,EAA+C;AAC3CJ,4CAAQzsB,MAAMikB,aAAN,CAAoB4I,MAApB,GAA6B,EAArC;AACH,iCAFD,MAEO,IAAIX,MAAM,GAAN,IAAa,CAAC,CAAClsB,MAAMikB,aAAN,CAAoB6I,MAAvC,EAA+C;AAClDL,4CAAQzsB,MAAMikB,aAAN,CAAoB6I,MAApB,GAA6B,EAArC;AACH;AACJ;;AAED,gCAAKL,QAAQ,CAAR,IAAaF,gBAAgBK,cAA9B,IAAkDH,QAAQ,CAAR,IAAaF,gBAAgB,CAAnF,EAAuF;AACnFA,gDAAgBA,gBAAgBE,KAAhC;AACA,oCAAIF,gBAAgB,CAApB,EACIA,gBAAgB,CAAhB;AACJ,oCAAIA,gBAAgBK,cAApB,EACIL,gBAAgBK,cAAhB;;AAEJvC,kCAAEllB,QAAF,GAAaklB,EAAEllB,QAAF,IAAc,EAA3B;AACAklB,kCAAEllB,QAAF,CAAWknB,YAAX,IAA2BE,aAA3B;AACAhiB,2CAAW,YAAY;AACnB,wCAAI8f,EAAEllB,QAAN,EAAgB;AACZwL,0CAAEvL,IAAF,GAAS2nB,OAAT,CAAiB1C,EAAEllB,QAAnB,EAA6B,GAA7B,EAAkC,QAAlC,EAA4C,YAAY;AACpDonB,4DAAgB5b,EAAE0b,YAAF,GAAhB;AACH,yCAFD;AAGAhC,0CAAEllB,QAAF,GAAa,IAAb;AACH;AACJ,iCAPD,EAOG,CAPH;AAQH;;AAEDnF,kCAAMC,cAAN;AACA,mCAAO,KAAP;AACH,yBA3CD;;AA6CA+oB,gCAAQpe,MAAR,CACK7K,EADL,CACQ,wBAAwB8pB,SADhC,EAC2Cb,QAAQyC,UADnD,EAEK1rB,EAFL,CAEQ,eAAe8pB,SAFvB,EAEkCb,QAAQyC,UAF1C,EAGK1rB,EAHL,CAGQ,eAAe8pB,SAHvB,EAGkC,YAAY;AACtC0C,4CAAgB5b,EAAE0b,YAAF,GAAhB;AACH,yBALL;;AAQArD,gCAAQpe,MAAR,CAAelL,IAAf,CAAoB,sCAApB,EACKK,EADL,CACQ,cAAc8pB,SADtB,EACiC,UAAU7pB,KAAV,EAAiB;;AAE1C,gCAAIA,MAAMgtB,KAAN,IAAe,CAAnB,EACI,OAAO,IAAP;;AAEJZ,4CAAgB,CAAhB;;AAEA,gCAAIlmB,OAAO;AACP+mB,6CAAajtB,MAAOksB,MAAM,GAAP,GAAc,OAAd,GAAwB,OAA9B,CADN;AAEPU,gDAAgB5D,QAAQ7iB,IAAR,GAAe6iB,QAAQmC,OAAvB,GAAiCnC,QAAQpnB,MAFlD;AAGPsrB,iDAAiBlE,QAAQpe,MAAR,CAAeygB,GAAf,CAAmBzpB,MAAnB,GAA6BsqB,MAAM,GAAP,GAAc,MAAd,GAAuB,KAAnD,CAHV;AAIPiB,+CAAenE,QAAQpe,MAAR,CAAeygB,GAAf,CAAoBa,MAAM,GAAP,GAAc,YAAd,GAA6B,aAAhD;AAJR,6BAAX;AAMA,gCAAItjB,UAAU,CAAd;AAAA,gCAAiBge,QAAQ,CAAzB;;AAEA,gCAAI1tB,EAAE,IAAF,EAAQk0B,QAAR,CAAiB,cAAjB,CAAJ,EAAsC;AAClChB,gDAAgBlzB,EAAE,IAAF,EAAQk0B,QAAR,CAAiB,mBAAjB,IAAwC,CAAxC,GAA4C,CAAC,CAA7D;AACAvE,6CAAa2B,EAAE3B,UAAF,GAAeuD,aAA5B;AACAG,gDAAgBH,gBAAgB,CAAhB,GAAoBlmB,KAAK0mB,cAAzB,GAA0C,CAA1D;AACA,oCAAIpC,EAAE5B,KAAN,EAAa;AACT,4CAAO,IAAP;AACI,6CAAKnB,QAAQC,OAAb;AACI6E,4DAAgBH,gBAAgB,CAAhB,GAAoB,CAApB,GAAuBlmB,KAAK0mB,cAAL,GAAsB,CAAC,CAA9D;AACA;AACJ,6CAAKnF,QAAQO,IAAR,IAAgBP,QAAQM,MAA7B;AACI;AALR;AAOH;AACJ,6BAbD,MAaO;AACHqE,gDAAiBlmB,KAAK+mB,WAAL,GAAoB/mB,KAAKgnB,eAAL,GAAuBhnB,KAAKinB,aAAhD,GAAiE,CAAjE,GACVjnB,KAAK+mB,WAAL,GAAmB/mB,KAAKgnB,eAAxB,GAA0C,CAAC,CAA3C,GAA+C,CADtD;AAEA,oCAAGhB,MAAM,GAAN,IAAa1B,EAAE5B,KAAf,KAAyBnB,QAAQO,IAAR,IAAgBP,QAAQM,MAAjD,CAAH,EACIqE,gBAAgBA,gBAAgB,CAAC,CAAjC;AACJvD,6CAAa3N,KAAKmS,KAAL,CAAWrE,QAAQmC,OAAR,GAAkB,IAA7B,IAAqCiB,aAAlD;AACAG,gDAAiBrmB,KAAK+mB,WAAL,GAAmB/mB,KAAKgnB,eAAxB,IACZ1C,EAAEzB,aAAF,GAAmBqD,iBAAiB,CAAjB,GAAqBlmB,KAAKinB,aAA1B,GAA0C,CAA7D,GACKjS,KAAKmS,KAAL,CAAWnnB,KAAKinB,aAAL,GAAqB,CAAhC,CAFO,CAAjB;AAGAZ,gDAAgB5b,EAAE0b,YAAF,MAAqBE,gBAAgBvD,QAAQsC,EAA7D;AACH;;AAEDjB,8BAAEllB,QAAF,GAAaklB,EAAEllB,QAAF,IAAc,EAA3B;AACAklB,8BAAEllB,QAAF,CAAWknB,YAAX,IAA2B7B,EAAEzB,aAAF,GAAkBpY,EAAE0b,YAAF,MAAoBxD,UAAtC,GAAmD0D,aAA9E;;AAEA,gCAAI/B,EAAEzB,aAAN,EAAqB;AACjBoD,iDAAiB,0BAAY;AACzBI,oDAAgB5b,EAAE0b,YAAF,GAAhB;AACAltB,kDAAcynB,KAAd;AACA9H,iDAAalW,OAAb;AACAA,8CAAU,CAAV;AACAge,4CAAQ,CAAR;AACH,iCAND;AAOAhe,0CAAU2B,WAAW,YAAY;AAC7Bqc,4CAAQpnB,YAAY2F,QAAZ,EAAsB,EAAtB,CAAR;AACH,iCAFS,EAEPqlB,EAAEje,QAAF,GAAa,GAFN,CAAV;AAGH;;AAEDhC,uCAAW,YAAY;AACnB,oCAAI8f,EAAEllB,QAAN,EAAgB;AACZwL,sCAAEoc,OAAF,CAAU1C,EAAEllB,QAAZ,EAAsBqlB,EAAEje,QAAxB;AACA8d,sCAAEllB,QAAF,GAAa,IAAb;AACH;AACJ,6BALD,EAKG,CALH;;AAOA,mCAAOklB,EAAEiD,gBAAF,CAAmBnB,cAAnB,EAAmCnsB,KAAnC,CAAP;AACH,yBAjEL;;AAoEAgpB,gCAAQpe,MAAR,CAAeygB,GAAf,CAAmBtrB,EAAnB,CAAsB,cAAc8pB,SAApC,EAA+C,UAAU7pB,KAAV,EAAiB;;AAE5D,gCAAIA,MAAMgtB,KAAN,IAAe,CAAnB,EACI,OAAO,IAAP;;AAEJ,gCAAIO,gBAAgBvtB,MAAOksB,MAAM,GAAP,GAAc,OAAd,GAAwB,OAA9B,CAApB;AACA,gCAAIsB,aAAa7c,EAAE0b,YAAF,GAAjB;;AAEArD,oCAAQpe,MAAR,CAAepD,QAAf,CAAwB,kBAAxB;;AAEAtO,8BAAEuT,QAAF,EAAY1M,EAAZ,CAAe,cAAc8pB,SAA7B,EAAwC,UAAU7pB,KAAV,EAAiB;AACrD,oCAAIgT,OAAOtH,SAAS,CAAC1L,MAAOksB,MAAM,GAAP,GAAc,OAAd,GAAwB,OAA9B,IAAyCqB,aAA1C,IAA2DvE,QAAQsC,EAA5E,EAAgF,EAAhF,CAAX;AACA,oCAAIY,MAAM,GAAN,IAAa1B,EAAE5B,KAAf,KAAyBnB,QAAQO,IAAR,IAAgBP,QAAQM,MAAjD,CAAJ,EACI/U,OAAOA,OAAO,CAAC,CAAf;AACJrC,kCAAE0b,YAAF,EAAgBmB,aAAaxa,IAA7B;AACH,6BALD;;AAOA,mCAAOqX,EAAEiD,gBAAF,CAAmB,YAAY;AAClCtE,wCAAQpe,MAAR,CAAerD,WAAf,CAA2B,kBAA3B;AACAglB,gDAAgB5b,EAAE0b,YAAF,GAAhB;AACH,6BAHM,EAGJrsB,KAHI,CAAP;AAIH,yBArBD;AAsBH;AACJ,iBA3KD;;AA8KA9G,kBAAEyG,IAAF,CAAOqc,CAAP,EAAU,UAAUkQ,CAAV,EAAalD,OAAb,EAAsB;AAC5B,wBAAIyE,cAAc,kBAAkBvB,CAAlB,GAAsB,UAAxC;AACA,wBAAIjD,UAAWiD,KAAK,GAAN,GAAalQ,EAAE0O,CAAf,GAAmB1O,EAAEyO,CAAnC;;AAEAzB,4BAAQpe,MAAR,CAAerD,WAAf,CAA2BkmB,WAA3B;AACAxE,4BAAQre,MAAR,CAAerD,WAAf,CAA2BkmB,WAA3B;AACAnD,uBAAG/iB,WAAH,CAAekmB,WAAf;AACH,iBAPD;;AAUAv0B,kBAAEyG,IAAF,CAAOqc,CAAP,EAAU,UAAUkQ,CAAV,EAAalD,OAAb,EAAsB;AAC5B9vB,sBAAEM,MAAF,CAASwvB,OAAT,EAAmBkD,KAAK,GAAN,GAAa;AAC3BtqB,gCAAQ8J,SAASiF,EAAErN,GAAF,CAAM,MAAN,CAAT,EAAwB,EAAxB,KAA+B,CADZ;AAE3B6C,8BAAMwK,EAAE4S,IAAF,CAAO,aAAP,CAFqB;AAG3B4H,iCAASjP,EAAE/Y,KAAF;AAHkB,qBAAb,GAId;AACAvB,gCAAQ8J,SAASiF,EAAErN,GAAF,CAAM,KAAN,CAAT,EAAuB,EAAvB,KAA8B,CADtC;AAEA6C,8BAAMwK,EAAE4S,IAAF,CAAO,cAAP,CAFN;AAGA4H,iCAASjP,EAAEwF,MAAF;AAHT,qBAJJ;AASH,iBAVD;;AAaA,qBAAKgM,aAAL,CAAmB,GAAnB,EAAwB,KAAK1E,OAA7B;AACA,qBAAK0E,aAAL,CAAmB,GAAnB,EAAwB,KAAKzE,OAA7B;;AAEA,oBAAI/vB,EAAEkxB,UAAF,CAAaI,EAAElB,QAAf,CAAJ,EAA8B;AAC1BkB,sBAAElB,QAAF,CAAWxP,KAAX,CAAiB,IAAjB,EAAuB,CAACnJ,CAAD,CAAvB;AACH;;AAGDzX,kBAAEyG,IAAF,CAAOqc,CAAP,EAAU,UAAUkQ,CAAV,EAAalD,OAAb,EAAsB;;AAE5B,wBAAI2E,YAAazB,MAAM,GAAP,GAAc,MAAd,GAAuB,KAAvC;AACA,wBAAI0B,cAAe1B,MAAM,GAAP,GAAc,YAAd,GAA6B,aAA/C;AACA,wBAAI2B,UAAW3B,MAAM,GAAP,GAAc,OAAd,GAAwB,QAAtC;AACA,wBAAItqB,SAAS8J,SAASiF,EAAErN,GAAF,CAAMqqB,SAAN,CAAT,EAA2B,EAA3B,KAAkC,CAA/C;;AAEA,wBAAIG,WAAW9E,QAAQ7iB,IAAvB;AACA,wBAAI4nB,cAAc/E,QAAQmC,OAAR,GAAkBvpB,MAApC;;AAEA,wBAAIosB,aAAahF,QAAQpe,MAAR,CAAezE,IAAf,CAAoBynB,WAApB,OAAsCliB,SAASsd,QAAQpe,MAAR,CAAezE,IAAf,CAAoB7C,GAApB,CAAwBqqB,SAAxB,CAAT,EAA6C,EAA7C,KAAoD,CAA1F,CAAjB;;AAEA,wBAAInD,EAAEjC,cAAN,EAAsB;AAClBS,gCAAQmE,aAAR,GAAwBzhB,SAASsiB,aAAaD,WAAb,GAA2BD,QAApC,EAA8C,EAA9C,CAAxB;AACA9E,gCAAQpe,MAAR,CAAeygB,GAAf,CAAmB/nB,GAAnB,CAAuBuqB,OAAvB,EAAgC7E,QAAQmE,aAAR,GAAwB,IAAxD;AACH;;AAEDnE,4BAAQmE,aAAR,GAAwBnE,QAAQpe,MAAR,CAAeygB,GAAf,CAAmBuC,WAAnB,GAAxB;AACA5E,4BAAQsC,EAAR,GAAc,CAAC0C,aAAahF,QAAQmE,aAAtB,KAAwCW,WAAWC,WAAnD,CAAD,IAAqE,CAAlF;AACA/E,4BAAQkC,eAAR,GAA0B4C,WAAWC,WAArC;AACH,iBApBD;;AAsBApd,kBAAEuZ,UAAF,CAAaU,WAAWV,UAAxB,EAAoCjf,SAApC,CAA8C2f,WAAW3f,SAAzD,EAAoE4S,OAApE,CAA4E,QAA5E;AACH,aA9YqB;;AAqZtB2O,wBAAY,oBAAU5hB,MAAV,EAAkB;AAC1B,oBAAI+Z,QAAQ;AACRsJ,8BAAU,CACN,8BADM,EAEN,2CAFM,EAGN,oDAHM,EAIN,oDAJM,EAKN,oCALM,EAMN,yCANM,EAON,4CAPM,EAQN,yDARM,EASN,iDATM,EAUN,QAVM,EAWN,QAXM,EAYN,0BAZM,EAaN,+BAbM,EAcN,2CAdM,EAeN,QAfM,EAgBN,uCAhBM,EAiBN,uCAjBM,EAkBN,QAlBM,EAmBN,QAnBM,EAoBN,QApBM,EAqBR3Z,IArBQ,CAqBH,EArBG,CADF;AAuBR4Z,4BAAQ,CACJ,8BADI,EAEJ,oCAFI,EAGJ,yCAHI,EAIJ,0CAJI,EAKJ,gCALI,EAMJ,QANI,EAOJ,QAPI,EAQN5Z,IARM,CAQD,EARC;AAvBA,iBAAZ;AAiCA,oBAAIqQ,MAAM/Z,MAAN,CAAJ,EAAmB;AACfA,6BAAS+Z,MAAM/Z,MAAN,CAAT;AACH;AACD,oBAAI,CAACA,MAAL,EAAa;AACTA,6BAAS+Z,MAAM,QAAN,CAAT;AACH;AACD,oBAAI,OAAQ/Z,MAAR,IAAmB,QAAvB,EAAiC;AAC7BA,6BAAS1R,EAAE0R,MAAF,EAAU2X,QAAV,CAAmB,KAAKyH,OAAxB,CAAT;AACH,iBAFD,MAEO;AACHpf,6BAAS1R,EAAE0R,MAAF,CAAT;AACH;AACD1R,kBAAEM,MAAF,CAASoR,MAAT,EAAiB;AACbygB,yBAAKzgB,OAAOlL,IAAP,CAAY,aAAZ,CADQ;AAEbyG,0BAAMyE,OAAOlL,IAAP,CAAY,sBAAZ,CAFO;AAGbyuB,2BAAOvjB,OAAOlL,IAAP,CAAY,uBAAZ;AAHM,iBAAjB;AAKA,uBAAOkL,MAAP;AACH,aAxcqB;AAyctB0iB,8BAAkB,0BAAUna,QAAV,EAAoBnT,KAApB,EAA2B;;AAEzC,oBAAI6pB,YAAY,KAAKA,SAArB;;AAEA3wB,kBAAEuT,QAAF,EAAY1M,EAAZ,CAAe,SAAS8pB,SAAxB,EAAmC,YAAY;AAC3C3wB,sBAAEuT,QAAF,EAAY4b,GAAZ,CAAgB,MAAhB,EAAwBzK,GAAxB,CAA4BiM,SAA5B;AACA1W,gCAAYA,UAAZ;AACH,iBAHD;AAIAja,kBAAEuT,QAAF,EAAY1M,EAAZ,CAAe,cAAc8pB,SAA7B,EAAwC,UAAU7pB,KAAV,EAAiB;AACrDA,0BAAMC,cAAN;AACA,2BAAO,KAAP;AACH,iBAHD;AAIA/G,kBAAEuT,QAAF,EAAY1M,EAAZ,CAAe,YAAY8pB,SAA3B,EAAsC,YAAY;AAC9C3wB,sBAAEuT,QAAF,EAAY4b,GAAZ,CAAgB,MAAhB,EAAwBzK,GAAxB,CAA4BiM,SAA5B;AACA1W,gCAAYA,UAAZ;AACH,iBAHD;AAIAja,kBAAE,MAAF,EAAU6G,EAAV,CAAa,gBAAgB8pB,SAA7B,EAAwC,UAAU7pB,KAAV,EAAiB;AACrDA,0BAAMC,cAAN;AACA,2BAAO,KAAP;AACH,iBAHD;;AAKAD,yBAASA,MAAMC,cAAN,EAAT;AACA,uBAAO,KAAP;AACH,aAheqB;AAietBytB,2BAAe,uBAAUxB,CAAV,EAAalD,OAAb,EAAsB;;AAEjC,oBAAIQ,YAAY,KAAKA,SAArB;AAAA,oBACIe,mBAAmB,KAAKA,gBAAL,IAAyBf,SADhD;AAAA,oBAEIiE,cAAc,kBAAkBvB,CAAlB,GAAsB,UAFxC;AAAA,oBAGIjD,UAAWiD,MAAM,GAAP,GAAc,KAAKjD,OAAnB,GAA6B,KAAKD,OAHhD;AAAA,oBAIIpnB,SAAS8J,SAAS,KAAK8d,SAAL,CAAelmB,GAAf,CAAoB4oB,MAAM,GAAP,GAAc,MAAd,GAAuB,KAA1C,CAAT,EAA2D,EAA3D,KAAkE,CAJ/E;AAAA,oBAKIlC,UAAU,KAAKA,OALnB;;AAOA,oBAAI8D,WAAW9E,QAAQ7iB,IAAvB;AACA,oBAAI4nB,cAAc/E,QAAQmC,OAAR,GAAkBvpB,MAApC;;AAEAonB,wBAAQoC,SAAR,GAAqB0C,WAAWC,WAAZ,GAA2B,CAA/C;AACA,oBAAI/E,QAAQoC,SAAZ,EAAuB;AACnBpC,4BAAQpe,MAAR,CAAepD,QAAf,CAAwBimB,WAAxB;AACAxE,4BAAQre,MAAR,CAAepD,QAAf,CAAwBimB,WAAxB;AACAlD,qCAAiB/iB,QAAjB,CAA0BimB,WAA1B;AACH,iBAJD,MAIO;AACHzE,4BAAQpe,MAAR,CAAerD,WAAf,CAA2BkmB,WAA3B;AACAxE,4BAAQre,MAAR,CAAerD,WAAf,CAA2BkmB,WAA3B;AACAlD,qCAAiBhjB,WAAjB,CAA6BkmB,WAA7B;AACH;;AAED,oBAAIvB,MAAM,GAAV,EAAe;AACX,wBAAI1C,UAAUrvB,EAAV,CAAa,UAAb,KAA4B2zB,WAAWC,WAA3C,EAAwD;AACpDxD,yCAAiBjnB,GAAjB,CAAqB;AACjB,sCAAWyqB,cAActG,QAAQ7c,MAAR,CAAe8W,MAA9B,GAAwC,IADjC;AAEjB,0CAAc;AAFG,yBAArB;AAIH,qBALD,MAKO;AACH6I,yCAAiBjnB,GAAjB,CAAqB;AAEjB,0CAAeyqB,cAActG,QAAQ7c,MAAR,CAAe8W,MAA9B,GAAwC;AAFrC,yBAArB;AAIH;AACJ;;AAED,oBAAIsH,QAAQ7iB,IAAR,IAAgBqjB,UAAUjG,IAAV,CAAe,aAAf,CAAhB,IACG0F,QAAQ9iB,IAAR,IAAgBqjB,UAAUjG,IAAV,CAAe,cAAf,CADnB,IAEGyF,QAAQmC,OAAR,IAAmBnB,QAAQ7mB,KAAR,EAFtB,IAGG8lB,QAAQkC,OAAR,IAAmBnB,QAAQtI,MAAR,EAHtB,IAIGsH,QAAQpnB,MAAR,KAAmB8J,SAAS8d,UAAUlmB,GAAV,CAAc,MAAd,CAAT,EAAgC,EAAhC,KAAuC,CAA1D,CAJH,IAKG2lB,QAAQrnB,MAAR,KAAmB8J,SAAS8d,UAAUlmB,GAAV,CAAc,KAAd,CAAT,EAA+B,EAA/B,KAAsC,CAAzD,CALP,EAMM;AACFpK,sBAAEM,MAAF,CAAS,KAAKwvB,OAAd,EAAuB;AACnBpnB,gCAAQ8J,SAAS8d,UAAUlmB,GAAV,CAAc,MAAd,CAAT,EAAgC,EAAhC,KAAuC,CAD5B;AAEnB6C,8BAAMqjB,UAAUjG,IAAV,CAAe,aAAf,CAFa;AAGnB4H,iCAASnB,QAAQ7mB,KAAR;AAHU,qBAAvB;AAKAjK,sBAAEM,MAAF,CAAS,KAAKyvB,OAAd,EAAuB;AACnBrnB,gCAAQ8J,SAAS8d,UAAUlmB,GAAV,CAAc,KAAd,CAAT,EAA+B,EAA/B,KAAsC,CAD3B;AAEnB6C,8BAAM,KAAKqjB,SAAL,CAAejG,IAAf,CAAoB,cAApB,CAFa;AAGnB4H,iCAASnB,QAAQtI,MAAR;AAHU,qBAAvB;AAKA,yBAAKgM,aAAL,CAAmBxB,MAAM,GAAN,GAAY,GAAZ,GAAkB,GAArC,EAA0CjD,OAA1C;AACH;AACJ;AAzhBqB,SAA1B;;AA4hBA,YAAImF,kBAAkB7E,aAAtB;;AASArwB,UAAEC,EAAF,CAAKk1B,SAAL,GAAiB,UAAUC,OAAV,EAAmBC,IAAnB,EAAyB;AACtC,gBAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;AAC7BC,uBAAOD,OAAP;AACAA,0BAAU,MAAV;AACH;AACD,gBAAI,OAAOC,IAAP,KAAgB,WAApB,EAAiC;AAC7BA,uBAAO,EAAP;AACH;AACD,gBAAI,CAACr1B,EAAEs1B,OAAF,CAAUD,IAAV,CAAL,EAAsB;AAClBA,uBAAO,CAACA,IAAD,CAAP;AACH;AACD,iBAAKl0B,GAAL,CAAS,uBAAT,EAAkCsF,IAAlC,CAAuC,YAAY;AAC/C,oBAAIqF,UAAU9L,EAAE,IAAF,CAAd;AAAA,oBACIovB,WAAWtjB,QAAQkB,IAAR,CAAauhB,QAAQvhB,IAAR,CAAanJ,IAA1B,CADf;AAEA,oBAAIurB,YAAYgG,YAAY,MAA5B,EAAoC;AAChC,wBAAI,CAAChG,QAAL,EAAe;AACXA,mCAAW,IAAI8F,eAAJ,CAAoBppB,OAApB,CAAX;AACH;AACD,wBAAIsjB,SAASgG,OAAT,CAAJ,EAAuB;AACnBhG,iCAASgG,OAAT,EAAkBxU,KAAlB,CAAwBwO,QAAxB,EAAkCiG,IAAlC;AACH;AACJ;AACJ,aAXD;AAYA,mBAAO,IAAP;AACH,SAxBD;;AA6BAr1B,UAAEC,EAAF,CAAKk1B,SAAL,CAAehU,OAAf,GAAyByD,QAAzB;;AAOA,YAAI6L,mBAAoB,YAAY;AAChC,gBAAI/C,QAAQ,CAAZ;AAAA,gBACI6H,eAAe,CADnB;;AAGA,mBAAO,UAAUC,KAAV,EAAiB;AACpB,oBAAI7Y,CAAJ,EAAO2T,SAAP,EAAkBnP,OAAlB,EAA2BzP,MAA3B,EAAmCof,OAAnC,EAA4ChB,OAA5C,EAAqDC,OAArD;AACA,qBAAKpT,IAAI,CAAT,EAAYA,IAAI4R,QAAQU,OAAR,CAAgBvtB,MAAhC,EAAwCib,GAAxC,EAA6C;AACzCjL,6BAAS6c,QAAQU,OAAR,CAAgBtS,CAAhB,CAAT;AACA2T,gCAAY5e,OAAO4e,SAAnB;AACAnP,8BAAUzP,OAAOyP,OAAjB;AACA2P,8BAAUpf,OAAOof,OAAjB;AACAhB,8BAAUpe,OAAOoe,OAAjB;AACAC,8BAAUre,OAAOqe,OAAjB;AACA,wBAAIyF,SAAUrU,QAAQmO,UAAR,IAAsBwB,OAAtB,IAAiCA,QAAQ7vB,EAAR,CAAW,UAAX,CAAjC,KACTqvB,UAAUjG,IAAV,CAAe,aAAf,KAAiCyF,QAAQ7iB,IAAzC,IAAiDqjB,UAAUjG,IAAV,CAAe,cAAf,KAAkC0F,QAAQ9iB,IAA3F,IAAmG6jB,QAAQ7mB,KAAR,MAAmB6lB,QAAQmC,OAA9H,IAAyInB,QAAQtI,MAAR,MAAoBuH,QAAQkC,OAD5J,CAAd,EACqL;AACjLvgB,+BAAOtS,IAAP;;AAEA,4BAAI+hB,QAAQ7c,KAAZ,EAAmB;AACfiE,mCAAOye,OAAP,IAAkBA,QAAQC,GAAR,CAAY;AAC1BpV,8CAAcye,UAAUjG,IAAV,CAAe,cAAf,IAAiC,GAAjC,GAAuC3Y,OAAOqe,OAAP,CAAe9iB,IAD1C;AAE1B4kB,6CAAavB,UAAUjG,IAAV,CAAe,aAAf,IAAgC,GAAhC,GAAsC3Y,OAAOoe,OAAP,CAAe7iB,IAFxC;AAG1BwoB,+CAAe3E,QAAQtI,MAAR,KAAmB,GAAnB,GAAyB9W,OAAOqe,OAAP,CAAekC,OAH7B;AAI1ByD,8CAAc5E,QAAQ7mB,KAAR,KAAkB,GAAlB,GAAwByH,OAAOoe,OAAP,CAAemC;AAJ3B,6BAAZ,EAKf,IALe,CAAlB;AAMAsD;AACH;AACJ;AACJ;AACD,oBAAIjxB,SAASixB,eAAe,EAA5B,EAAgC;AAC5BhtB,2BAAOye,OAAP,IAAkBA,QAAQC,GAAR,CAAY,0BAAZ,CAAlB;AACAwJ,uCAAmB,4BAAY,CAAE,CAAjC;AACH,iBAHD,MAGO;AACH7K,iCAAa8H,KAAb;AACAA,4BAAQrc,WAAWof,gBAAX,EAA6B,GAA7B,CAAR;AACH;AACJ,aA/BD;AAgCH,SApCsB,EAAvB;;AA6CA,iBAASD,oBAAT,CAA8BmF,UAA9B,EAA0C;;AAEtC,gBAAIpH,QAAQW,MAAR,IAAkB,CAACyG,UAAvB,EAAmC;AAC/B,uBAAO;AACHnN,4BAAQ,CADL;AAEHve,2BAAO;AAFJ,iBAAP;AAIH;;AAED,gBAAI,CAACskB,QAAQvhB,IAAR,CAAa4oB,KAAlB,EAAyB;AACrB,oBAAIxrB,MAAM;AACN,8BAAU,MADJ;AAEN,kCAAc,aAFR;AAGN,8BAAU,OAHJ;AAIN,8BAAU,GAJJ;AAKN,+BAAW,GALL;AAMN,6BAAS;AANH,iBAAV;AAQAmkB,wBAAQvhB,IAAR,CAAa6oB,KAAb,GAAqB71B,EAAE,OAAF,EAAWoK,GAAX,CAAepK,EAAEM,MAAF,CAAS,EAAT,EAAa8J,GAAb,CAAf,CAArB;AACAmkB,wBAAQvhB,IAAR,CAAa4oB,KAAb,GAAqB51B,EAAE,OAAF,EAAWoK,GAAX,CAAepK,EAAEM,MAAF,CAAS;AACzC,4BAAQ,SADiC;AAEzC,gCAAY,QAF6B;AAGzC,gCAAY,UAH6B;AAIzC,2BAAO;AAJkC,iBAAT,EAKjC8J,GALiC,CAAf,EAKZunB,MALY,CAKLpD,QAAQvhB,IAAR,CAAa6oB,KALR,EAKexM,QALf,CAKwB,MALxB,CAArB;AAMH;;AAEDkF,oBAAQvhB,IAAR,CAAa4oB,KAAb,CAAmB5E,UAAnB,CAA8B,IAA9B,EAAoCjf,SAApC,CAA8C,IAA9C;;AAEA,mBAAO;AACHyW,wBAAQxG,KAAK8T,IAAL,CAAWvH,QAAQvhB,IAAR,CAAa4oB,KAAb,CAAmBltB,MAAnB,GAA4BoqB,GAA5B,GAAkCvE,QAAQvhB,IAAR,CAAa6oB,KAAb,CAAmBntB,MAAnB,GAA4BoqB,GAA/D,IAAuE,CAAjF,CADL;AAEH7oB,uBAAO+X,KAAK8T,IAAL,CAAWvH,QAAQvhB,IAAR,CAAa4oB,KAAb,CAAmBltB,MAAnB,GAA4B4T,IAA5B,GAAmCiS,QAAQvhB,IAAR,CAAa6oB,KAAb,CAAmBntB,MAAnB,GAA4B4T,IAAhE,IAAyE,CAAnF;AAFJ,aAAP;AAIH;;AAOD,iBAASiU,uBAAT,GAAmC;AAC/B,gBAAIuE,aAAatE,qBAAqB,IAArB,CAAjB;AACA,mBAAO,EAAEsE,WAAWtM,MAAX,IAAqBsM,WAAW7qB,KAAlC,CAAP;AACH;;AAED,iBAASqoB,gBAAT,CAA0BxrB,KAA1B,EAAiC;AAC7B,gBAAIoC,IAAIpC,MAAMikB,aAAd;AACA,gBAAI7hB,EAAE6sB,IAAF,IAAU7sB,EAAE6sB,IAAF,KAAW7sB,EAAE8sB,eAA3B,EACI,OAAO,KAAP;AACJ,gBAAI9sB,EAAE+sB,WAAN,EACI,OAAO,KAAP;AACJ,mBAAO,IAAP;AACH;AACJ,KAxwBA,CAAD;;;;;;;;sBCde;;AAEX,eAAO;AACHpW,iBAAK,QADF;AAEHqW,mBAAO,oBAFJ;AAGH9b,mBAAO;AAHJ,SAFI;AAOX,eAAO;AACH8b,mBAAO,WADJ;AAEH9b,mBAAO;AAFJ,SAPI;AAWX,eAAO;AACH8b,mBAAO,WADJ;AAEH9b,mBAAO;AAFJ,SAXI;AAeX,eAAO;AACH8b,mBAAO,WADJ;AAEH9b,mBAAO;AAFJ,SAfI;AAmBX,eAAO;AACH8b,mBAAO,WADJ;AAEH9b,mBAAO;AAFJ,SAnBI;AAuBX,eAAO;AACHyF,iBAAK,cADF;AAEHqW,mBAAO,0BAFJ;AAGH9b,mBAAO;AAHJ,SAvBI;AA4BX,cAAM;AACFyF,iBAAK,QADH;AAEFqW,mBAAO,kBAFL;AAGF9b,mBAAO,MAHL;AAIF+b,gBAAI;AAJF,SA5BK;AAkCX,cAAM;AACFtW,iBAAK,QADH;AAEFqW,mBAAO,kBAFL;AAGF9b,mBAAO,IAHL;AAIF+b,gBAAI;AAJF,SAlCK;AAwCX,cAAM;AACFD,mBAAO,UADL;AAEF9b,mBAAO,MAFL;AAGF+b,gBAAI;AAHF,SAxCK;AA6CX,iBAAS;AACLtW,iBAAK,YADA;AAELqW,mBAAO,yBAFF;AAGL9b,mBAAO,cAHF;AAILoE,kBAAM,CAJD;AAKL4X,iBAAK;AALA,SA7CE;AAoDX,kBAAU;AACNvW,iBAAK,SADC;AAENqW,mBAAO,uBAFD;AAGN9b,mBAAO;AAHD,SApDC;AAyDX,iBAAS;AACLyF,iBAAK,QADA;AAELqW,mBAAO,qBAFF;AAGL9b,mBAAO;AAHF,SAzDE;AA8DX,iBAAS;AACLyF,iBAAK,QADA;AAELqW,mBAAO,qBAFF;AAGL9b,mBAAO,aAHF;AAIL+b,gBAAI;AAJC,SA9DE;AAoEX,gBAAQ;AACJtW,iBAAK,YADD;AAEJqW,mBAAO,wBAFH;AAGJ9b,mBAAO,cAHH;AAIJ+b,gBAAI;AAJA,SApEG;AA0EX,kBAAU;AACND,mBAAO,aADD;AAEN9b,mBAAO;AAFD,SA1EC;AA8EX,eAAO;AACH8b,mBAAO,WADJ;AAEH9b,mBAAO;AAFJ,SA9EI;AAkFX,iBAAS;AACL8b,mBAAO,cADF;AAEL9b,mBAAO,0BAFF;AAGLoE,kBAAM,CAHD;AAIL2X,gBAAI,EAJC;AAKLC,iBAAK;AALA,SAlFE;AAyFX,oBAAY;AACRF,mBAAO,iBADC;AAER9b,mBAAO,kDAFC;AAGRoE,kBAAM,CAHE;AAIR2X,gBAAI,EAJI;AAKRC,iBAAK;AALG,SAzFD;AAgGX,mBAAW;AACPF,mBAAO,yBADA;AAEP9b,mBAAO;AAFA,SAhGA;AAoGX,sBAAc;AACV8b,mBAAO,0BADG;AAEV9b,mBAAO;AAFG;AApGH;;;;;;;;;;;;;;;;;;;;;;;;QCMFic,sBAAAA;;;;iBAqiBTC,WAAW;AACPC,qBAAK,qBADE;AAEPC,8BAAc,UAFP;AAGPzH,wBAAQ,mKAHD;AAIP0H,2BAAW;AAJJ;;;8BA/hBXC,mCAAa;AACT,gBAAI,yBAAe,UAAnB,EAA+B;AAC3B,oBAAI,oBAAK,MAAL,KAAgB,EAAhB,IAAsB,oBAAK,MAAL,KAAgB,GAA1C,EAA+C;AAC3C,2BAAQ,oBAAK,UAAL,IAAmB,KAAnB,GAA2B,oBAAK,UAAL,CAAnC;AACH,iBAFD,MAEO;AACH,2BAAQ,oBAAK,UAAL,IAAmB,KAAnB,GAA2B,oBAAK,UAAL,CAA3B,GAA8C,GAA9C,GAAoD,oBAAK,MAAL,CAA5D;AACH;AACJ;AACD,mBAAO,EAAP;AACH;;8BAMDC,2BAAS;AACL,mBAAO,KAAKD,UAAL,KAAoB,oBAAK,MAAL,CAApB,GAAmC,GAAnC,GAAyC,KAAKE,OAAL,EAAhD;AACH;;8BAEDA,6BAAU;AACN,gBAAIC,OAAO,oBAAK,MAAL,CAAX;AACA,mBAAOA,OAAOA,KAAKja,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAP,GAA4B,EAAnC;AACH;;8BAEDka,qCAAc;AACV,mBAAO,KAAKJ,UAAL,KAAoB,oBAAK,MAAL,CAA3B;AACH;;8BAEDK,6CAAkB;AACd,gBAAIxb,WAAW,KAAKub,WAAL,EAAf;AACA,gBAAIz2B,EAAE22B,QAAF,CAAWzb,QAAX,EAAqB,aAArB,CAAJ,EAAyC;AACrCA,2BAAWlb,EAAEgf,OAAF,CAAU9D,QAAV,EAAoB,aAApB,EAAmC,EAAnC,CAAX;AACH;AACD,mBAAOA,QAAP;AACH;;8BAED0b,yCAAeC,aAAa;AACxB,gBAAIjzB,WAAW,KAAKkzB,QAAL,CAAc,UAAd,CAAf;AACA,gBAAI,CAAClzB,QAAL,EAAe;AACXizB,8BAAcA,cAAcA,WAAd,GAA4B,qBAA1C;AACA3uB,uBAAOwC,QAAP,GAAkB,KAAK2rB,UAAL,KAAoB,oBAAK,MAAL,CAApB,0BAAuDU,mBAAmBF,WAAnB,CAAvD,CAAlB;AACH,aAHD,MAGO;AACHlQ,wBAAQC,GAAR,CAAY,4BAAZ;AACH;AAEJ;;8BAODkQ,6BAAStzB,MAAMjD,KAAK;AAChB,gBAAIA,GAAJ,EAAS;AACL,oBAAIy2B,QAAQ,oBAAK,MAAMxzB,IAAX,EAAiBjD,GAAjB,CAAZ;AACA,oBAAI,CAACy2B,KAAL,EAAY;AACRA,4BAAQ,oBAAK,MAAMxzB,IAAX,EAAiB,oBAAK,MAAL,EAAajD,GAAb,CAAjB,CAAR;AACH;AACD,uBAAOy2B,KAAP;AACH;AACD,mBAAO,oBAAK,MAAMxzB,IAAX,KAAoB,oBAAK,MAAMA,IAAX,EAAiB,oBAAK,MAAL,CAAjB,CAA3B;AACH;;8BAQD8I,yCAAe9I,MAAMmlB,MAAM;;AAEvB,gBAAIlG,IAAIkG,OAAOA,IAAP,GAAczgB,OAAOwC,QAAP,CAAgBie,IAAtC;;AAEA,gBAAIsO,KAAK,IAAIC,MAAJ,CAAW,aAAa1zB,IAAb,GAAoB,cAA/B,EAA+C,GAA/C,EAAoDoY,IAApD,CAAyD6G,CAAzD,CAAT;;;AAGA,gBAAIwU,EAAJ,EAAQ;AAGJ,oBAAIA,GAAG,CAAH,KAAS,GAAb,EAAkB;AACd,2BAAOxU,EAAEzD,OAAF,CAAU,IAAIkY,MAAJ,CAAW,MAAM1zB,IAAN,GAAa,UAAxB,EAAoC,GAApC,CAAV,EAAoD,EAApD,CAAP;AACH,iBAFD,MAEO,IAAIyzB,GAAG,CAAH,KAAS,GAAb,EAAkB;AACrB,wBAAIA,GAAG,CAAH,KAAS,GAAb,EAAkB;AACd,+BAAOxU,EAAEzD,OAAF,CAAU,IAAIkY,MAAJ,CAAW,QAAQ1zB,IAAR,GAAe,UAA1B,EAAsC,GAAtC,CAAV,EAAsD,EAAtD,CAAP;AACH,qBAFD,MAEO;AACH,+BAAOif,EAAEzD,OAAF,CAAU,IAAIkY,MAAJ,CAAW,KAAK1zB,IAAL,GAAY,WAAvB,EAAoC,GAApC,CAAV,EAAoD,EAApD,CAAP;AACH;AACJ;AACJ;;AAED,mBAAOif,CAAP;AACH;;8BAED0U,qCAAc;AACV,gBAAIX,OAAO,oBAAK,MAAL,CAAX;AACA,mBAAOx2B,EAAEkM,UAAF,CAAasqB,IAAb,EAAmB,QAAnB,CAAP;AACH;;8BAOD1mB,qCAAa8J,UAAUwd,MAAM;AAAA;;AAEzB,gBAAI,KAAKC,SAAL,IAAkB,KAAKF,WAAL,EAAtB,EAA0C;AACtC;AACH;;AAED,gBAAIroB,MAAMsoB,OAAOA,IAAP,GAAc,EAAxB;AACA,gBAAI/J,QAAQ,IAAZ;AACA,gBAAIpb,KAAKnJ,OAAOE,KAAP,2CAAuB8F,GAAvB,4CAAqC,IAArC,EAA2C;AAChD,+BAAe,KADiC;AAEhD,2BAAW,GAFqC;AAGhD,qCAAqB,KAH2B;AAIhD,2BAAW,mBAAM;AACblJ,kCAAc,MAAKynB,KAAnB;AACAzT,gCAAYA,UAAZ;AACH;AAP+C,aAA3C,CAAT;;AAUA,iBAAKyd,SAAL,GAAiB,IAAjB;AACAhK,oBAAQpnB,YAAY,YAAM;AACtB,oBAAI6I,QAAQ,CAAZ,EAAe;AACXlJ,kCAAcynB,KAAd;AACA,0BAAKgK,SAAL,GAAiB,KAAjB;AACAvuB,2BAAOib,MAAP;AACAnK,gCAAYA,UAAZ;AACA;AACH;AACD3H,sBAAMA,GAAG9L,IAAH,CAAQ,gBAAR,EAA0BpE,IAA1B,2CAAyC+M,GAAzC,2CAAN;AACAA;AACH,aAVO,EAUL,IAVK,CAAR;AAWH;;8BAOD6B,mDAAoBrK,IAAI;AAGpB,gBAAI,OAAOkgB,MAAP,KAAkB,UAAlB,IAAgClgB,cAAckgB,MAAlD,EAA0D;AACtDlgB,qBAAKA,GAAG,CAAH,CAAL;AACH;;AAED,gBAAIgxB,OAAOhxB,GAAGixB,qBAAH,EAAX;;AAEA,mBACID,KAAK7E,GAAL,IAAY,CAAZ,IACA6E,KAAKrb,IAAL,IAAa,CADb,IAEAqb,KAAKE,MAAL,KAAgBtvB,OAAOuvB,WAAP,IAAsBvkB,SAASwkB,eAAT,CAAyBC,YAA/D,CAFA,IAGAL,KAAKpb,KAAL,KAAehU,OAAO0vB,UAAP,IAAqB1kB,SAASwkB,eAAT,CAAyBjG,WAA7D,CAJJ;AAMH;;8BAODtlB,mCAAY3I,MAAM;AACd,gBAAIxD,EAAEkM,UAAF,CAAa1I,IAAb,EAAmB,GAAnB,CAAJ,EAA6B;AACzB,uBAAOA,KAAK4c,MAAL,CAAY,CAAZ,CAAP;AACH,aAFD,MAEO;AACH,uBAAO5c,IAAP;AACH;AACJ;;8BAODq0B,6BAASC,WAAW;;AAEhB,gBAAIC,MAAMD,SAAV;AACAn4B,cAAEyG,IAAF,CAAO,KAAK4xB,UAAL,CAAgBF,SAAhB,CAAP,EAAmC,UAASzxB,KAAT,EAAgBqB,IAAhB,EAAsB;AACrDqwB,sBAAMA,IAAI/Y,OAAJ,CAAY,IAAIkY,MAAJ,QAAgBxvB,KAAKX,QAArB,QAAkC,GAAlC,CAAZ,yBAAyEW,KAAKX,QAA9E,8BAAgHW,KAAKlE,IAArH,gBAAN;AACH,aAFD;;AAIA,mBAAOu0B,GAAP;AACH;;8BAQDC,iCAAWF,WAAW;AAClB,gBAAI7vB,QAAQ,EAAZ;AACA,gBAAIgwB,MAAM,gBAAV;AACA,gBAAIhB,KAAKgB,IAAIrc,IAAJ,CAASkc,SAAT,CAAT;AACA,mBAAOb,EAAP,EAAW;AACP,oBAAIvvB,OAAO1H,EAAEmG,IAAF,EAAQiB,MAAMiP,SAAd,SAA6BnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAA1D,GAAgE,EAAEpB,UAAUkwB,GAAG,CAAH,CAAZ,EAAhE,CAAX;AACA,oBAAIiB,cAAc,CAACl4B,EAAE+N,IAAF,CAAO9F,KAAP,EAAc,EAAElB,UAAUkwB,GAAG,CAAH,CAAZ,EAAd,CAAnB;AACA,oBAAIvvB,QAAQwwB,WAAZ,EAAyB;AACrBjwB,0BAAM8G,IAAN,CAAWrH,IAAX;AACH;AACDuvB,qBAAKgB,IAAIrc,IAAJ,CAASkc,SAAT,CAAL;AACH;;AAED,mBAAO7vB,KAAP;AACH;;8BAEDkwB,2BAAQpxB,UAAU;AACd,mBAAO/G,EAAEmG,IAAF,CAAOgC,QAAP,EAAiB,EAAEpB,UAAUA,QAAZ,EAAjB,CAAP;AACH;;8BAODqxB,yCAAeN,WAAWO,SAAS;AAC/B,gBAAIpwB,QAAQ,KAAK+vB,UAAL,CAAgBF,SAAhB,CAAZ;AACA,gBAAIQ,aAAat4B,EAAE+N,IAAF,CAAO9F,KAAP,EAAc,EAAElB,UAAU,KAAZ,EAAd,CAAjB;AACA,gBAAIuxB,UAAJ,EAAgB;AACZ,uBAAOt4B,EAAEu4B,OAAF,CAAUv4B,EAAEsD,GAAF,CAAM+0B,OAAN,EAAe,UAAf,CAAV,EAAsC,KAAtC,CAAP;AACH;AACD,mBAAOr4B,EAAEsD,GAAF,CAAM2E,KAAN,EAAa,UAAb,CAAP,CAAgC;AACnC;;8BAODuwB,2BAAQtxB,SAAS;AACb,gBAAIuxB,OAAJ,EAAa;AACTvxB,0BAAUuxB,QAAQzZ,OAAR,CAAgB9X,OAAhB,CAAV;AACH;AACD,mBAAOvH,EAAE,8BAAF,EAAkC+4B,IAAlC,CAAuC,qxLAAqxLC,OAAO,KAAKd,QAAL,CAAc3wB,OAAd,CAAP,CAA5zL,EAA41L0xB,IAA51L,CAAi2L,QAAj2L,EAA22L9qB,MAA32L,GAAo3L4qB,IAAp3L,EAAP;AACH;;8BAQDG,uBAAMC,MAAMC,MAAMC,KAAK;AACnB,gBAAIC,OAAO,CAAC,WAAD,EAAc,WAAd,EAA2B,oBAA3B,EAAiD,WAAjD,CAAX;AACA,gBAAI,CAACA,KAAKC,QAAL,CAAcF,GAAd,CAAL,EAAyB;AACrBA,sBAAM,WAAN;AACH;AACD,gBAAIG,WAAW,mEAAf;AACA,gBAAIC,WAAW,2DAAf;AACA,gBAAI3f,OAAO4f,OAAOL,GAAP,EAAYF,IAAZ,EAAkBC,IAAlB,CAAX;AACA,gBAAIO,UAAU,EAAd;AACA,iBAAK,IAAIhd,IAAI,CAAb,EAAgBA,IAAI7C,KAAKpY,MAAzB,EAAiCib,GAAjC,EAAsC;;AAElC,oBAAI7C,KAAK6C,CAAL,EAAQnC,KAAR,IAAiBV,KAAK6C,IAAI,CAAT,CAAjB,IAAgC7C,KAAK6C,IAAI,CAAT,EAAYpC,OAAhD,EAAyD;AACrD,wBAAIqf,OAAO9f,KAAK6C,CAAL,CAAX;AACA7C,yBAAK6C,CAAL,IAAU7C,KAAK6C,IAAI,CAAT,CAAV;AACA7C,yBAAK6C,IAAI,CAAT,IAAcid,IAAd;AACH;;AAED,oBAAIC,IAAJ;AACA,oBAAI/f,KAAK6C,CAAL,EAAQpC,OAAZ,EAAqB;AACjBsf,qCAAeL,QAAf,SAA2B1f,KAAK6C,CAAL,EAAQvC,KAAnC;AACH,iBAFD,MAEO,IAAIN,KAAK6C,CAAL,EAAQnC,KAAZ,EAAmB;AACtBqf,qCAAeJ,QAAf,SAA2B3f,KAAK6C,CAAL,EAAQvC,KAAnC;AACH,iBAFM,MAEA;AACHyf,gCAAU/f,KAAK6C,CAAL,EAAQvC,KAAlB;AACH;AACDuf,wBAAQvqB,IAAR,CAAayqB,IAAb;AACH;;AAED,6BAAeF,QAAQve,IAAR,CAAa,EAAb,CAAf;AACH;;8BAOD0e,2BAAQC,IAAI;AACR,gBAAIC,WAAWh6B,EAAE,SAAF,EAAa+5B,EAAb,CAAf;;AAEA,gBAAIC,YAAYA,SAAS/sB,IAAT,MAAmB,CAAnC,EAAsC;AAClC,uBAAO,KAAP;AACH;;AAED,gBAAIgtB,MAAM,IAAV;;AAEA,gBAAIC,OAAO;AACPD,qBAAK,IADE;AAEP7c,qBAAK;AAFE,aAAX;AAIA,gBAAI0E,UAAUoY,IAAd;AACAF,qBAASvzB,IAAT,CAAc,UAASC,KAAT,EAAgByzB,CAAhB,EAAmB;AAC7B,oBAAIt2B,OAAOs2B,EAAE7U,QAAb;AACA,oBAAI,CAAC2U,GAAL,EAAU;AACNnY,4BAAQ1E,GAAR,CAAYhO,IAAZ,CAAiB+qB,CAAjB;AACAF,0BAAMp2B,IAAN;AACH,iBAHD,MAGO;AACH,wBAAIo2B,MAAMp2B,IAAV,EAAgB;AACZ,4BAAI+E,OAAOkZ,OAAX;AACAA,kCAAU;AACNmY,iCAAKrxB,IADC;AAENwU,iCAAK,CAAC+c,CAAD;AAFC,yBAAV;AAIAvxB,6BAAKwU,GAAL,CAAShO,IAAT,CAAc0S,OAAd;AACAmY,8BAAMp2B,IAAN;AACH,qBARD,MAQO,IAAIo2B,OAAOp2B,IAAX,EAAiB;AACpBie,gCAAQ1E,GAAR,CAAYhO,IAAZ,CAAiB+qB,CAAjB;AACH,qBAFM,MAEA;AACHrY,kCAAUA,QAAQmY,GAAR,GAAcnY,QAAQmY,GAAtB,GAA4BnY,OAAtC;AACAA,gCAAQ1E,GAAR,CAAYhO,IAAZ,CAAiB+qB,CAAjB;AACAF,8BAAMp2B,IAAN;AACH;AACJ;AACJ,aAtBD;;AAwBA,mBAAOq2B,IAAP;AACH;;8BAEDE,mCAAYF,MAAMG,KAAK;AACnB,gBAAIC,QAAQt6B,EAAE,sCAAF,CAAZ;AACA,iBAAKu6B,OAAL,CAAaD,KAAb,EAAoBJ,IAApB,EAA0BG,GAA1B;AACA,mBAAOC,KAAP;AACH;;8BAEDE,mBAAIT,IAAIM,KAAK;AACT,gBAAIhV,KAAK,KAAKyU,OAAL,CAAaC,EAAb,CAAT;AACA,mBAAO1U,KAAK,KAAK+U,WAAL,CAAiB/U,EAAjB,EAAqBgV,GAArB,CAAL,GAAiC,EAAxC;AACH;;8BAEDE,2BAAQD,OAAOJ,MAAMG,KAAK;AAAA;;AACtBr6B,cAAEyG,IAAF,CAAOyzB,KAAK9c,GAAZ,EAAiB,UAAC1W,KAAD,EAAQ6E,IAAR,EAAiB;AAC9B,oBAAIA,KAAKuU,cAAL,CAAoB,KAApB,CAAJ,EAAgC;AAC5B,wBAAI2a,KAAKz6B,EAAE,0BAAF,CAAT;AACAs6B,0BAAM3I,MAAN,CAAa8I,EAAb;AACA,2BAAKF,OAAL,CAAaE,EAAb,EAAiBlvB,IAAjB,EAAuB8uB,GAAvB;AACH,iBAJD,MAIO;AACH,wBAAI1yB,KAAK0yB,MAAMh6B,EAAEq6B,QAAF,CAAWL,GAAX,CAAN,GAAwBh6B,EAAEq6B,QAAF,CAAW,oBAAX,CAAjC;AACA,wBAAI7pB,QAAQ7Q,EAAE,uFAAF,EAA2FoC,IAA3F,CAAgGpC,EAAEuL,IAAF,EAAQ3E,IAAR,CAAa,IAAb,EAAmBe,EAAnB,EAAuBvF,IAAvB,EAAhG,EAA+HwE,IAA/H,CAAoI,SAApI,EAA+Ie,EAA/I,CAAZ;AACA2yB,0BAAM3I,MAAN,CAAa9gB,KAAb;AACH;AACJ,aAVD;AAWH;;8BAEDG,mDAAoBrK,IAAI;AAGpB,gBAAI,OAAOkgB,MAAP,KAAkB,UAAlB,IAAgClgB,cAAckgB,MAAlD,EAA0D;AACtDlgB,qBAAKA,GAAG,CAAH,CAAL;AACH;;AAED,gBAAIgxB,OAAOhxB,GAAGixB,qBAAH,EAAX;;AAEA,mBACID,KAAK7E,GAAL,IAAY,CAAZ,IACA6E,KAAKrb,IAAL,IAAa,CADb,IAEAqb,KAAKE,MAAL,KAAgBtvB,OAAOuvB,WAAP,IAAsBvkB,SAASwkB,eAAT,CAAyBC,YAA/D,CAFA,IAGAL,KAAKpb,KAAL,KAAehU,OAAO0vB,UAAP,IAAqB1kB,SAASwkB,eAAT,CAAyBjG,WAA7D,CAJJ;AAMH;;8BAOD6I,iDAAmBC,MAAM;AACrB,gBAAIC,WAAW,CAAf;AACA,gBAAItnB,SAASuZ,SAAb,EAAwB;AACpB8N,qBAAK/nB,KAAL;AACA,oBAAIioB,MAAMvnB,SAASuZ,SAAT,CAAmBE,WAAnB,EAAV;AACA8N,oBAAIC,SAAJ,CAAc,WAAd,EAA2B,CAACH,KAAKxgB,KAAL,CAAW1Y,MAAvC;AACAm5B,2BAAWC,IAAI14B,IAAJ,CAASV,MAApB;AACH,aALD,MAOK,IAAIk5B,KAAK3N,cAAL,IAAuB2N,KAAK3N,cAAL,IAAuB,GAAlD,EAAuD;AACxD4N,+BAAWD,KAAK3N,cAAhB;AACH;AACD,mBAAQ4N,QAAR;AACH;;8BAODG,6CAAiBJ,MAAMK,KAAK;AACxB,gBAAIL,KAAKrQ,iBAAT,EAA4B;AACxBqQ,qBAAK/nB,KAAL;AACA+nB,qBAAKrQ,iBAAL,CAAuB0Q,GAAvB,EAA4BA,GAA5B;AACH,aAHD,MAGO,IAAIL,KAAKM,eAAT,EAA0B;AAC7B,oBAAIC,QAAQP,KAAKM,eAAL,EAAZ;AACAC,sBAAMC,QAAN,CAAe,IAAf;AACAD,sBAAME,OAAN,CAAc,WAAd,EAA2BJ,GAA3B;AACAE,sBAAMJ,SAAN,CAAgB,WAAhB,EAA6BE,GAA7B;AACAE,sBAAMroB,MAAN;AACH;AACJ;;8BAODwoB,6BAAS16B,KAAK;AACV,gBAAIP,EAAEkM,UAAF,CAAa3L,GAAb,EAAkB,SAAlB,CAAJ,EAAkC;AAC9B,uBAAO,IAAP;AACH,aAFD,MAEO,IAAIP,EAAEkM,UAAF,CAAa3L,GAAb,EAAkB,UAAlB,CAAJ,EAAmC;AACtC,uBAAO,IAAP;AACH,aAFM,MAEA,IAAIP,EAAEkM,UAAF,CAAa3L,GAAb,EAAkB,IAAlB,CAAJ,EAA6B;AAChC,uBAAO,IAAP;AACH;;AAED,mBAAO,KAAP;AACH;;8BAED26B,yBAAOxC,MAAMyC,QAAQ;AACjB,mBAAOzC,KACF1Z,OADE,CACM,CAACmc,MAAD,GAAU,cAAV,GAA2B,IADjC,EACuC,OADvC,EAEFnc,OAFE,CAEM,IAFN,EAEY,MAFZ,EAGFA,OAHE,CAGM,IAHN,EAGY,MAHZ,EAIFA,OAJE,CAIM,IAJN,EAIY,QAJZ,EAKFA,OALE,CAKM,IALN,EAKY,OALZ,CAAP;AAMH;;8BAEDoc,6BAAS1C,MAAM;AAEX,mBAAOA,KAAK1Z,OAAL,CAAa,2CAAb,EAA0D,UAAShf,CAAT,EAAYod,CAAZ,EAAe;AAC5EA,oBAAIA,EAAEgG,WAAF,EAAJ;AACA,oBAAIhG,MAAM,OAAV,EAAmB,OAAO,GAAP;AACnB,oBAAIA,EAAEie,MAAF,CAAS,CAAT,MAAgB,GAApB,EAAyB;AACrB,2BAAOje,EAAEie,MAAF,CAAS,CAAT,MAAgB,GAAhB,GAAsBpY,OAAOqY,YAAP,CAAoBnpB,SAASiL,EAAE4P,SAAF,CAAY,CAAZ,CAAT,EAAyB,EAAzB,CAApB,CAAtB,GAA0E/J,OAAOqY,YAAP,CAAoB,CAACle,EAAE4P,SAAF,CAAY,CAAZ,CAArB,CAAjF;AACH;AACD,uBAAO,EAAP;AACH,aAPM,CAAP;AAQH;;8BAMDuO,iCAAWh7B,KAAK;;AAEZ,gBAAIA,GAAJ,EAAS;AAAA;AACL,wBAAIoG,KAAKhH,gBAAcY,GAAd,mDAAiEyoB,QAAjE,CAA0E,MAA1E,EAAkFwS,GAAlF,EAAT;AACA77B,+CAA2BqpB,QAA3B,CAAoCriB,EAApC,EAAwC60B,GAAxC,GAA8CloB,KAA9C;;AAEAtT,sBAAEy7B,KAAF,CAAQ,YAAM;AACV90B,2BAAGod,MAAH;AACH,qBAFD,EAEG,GAFH;AAJK;AAOR;AAEJ;;8BAEDhc,mCAAYL,MAAM;AACd,gBAAIA,QAAQA,KAAKg0B,WAAjB,EAA8B;AAC1B,uBAAO17B,EAAE+N,IAAF,CAAOrG,KAAKg0B,WAAZ,EAAyB,UAACxwB,IAAD,EAAU;AACtC,2BAAOA,KAAK5D,EAAL,CAAQq0B,SAAR,KAAsB,YAA7B;AACH,iBAFM,CAAP;AAGH;AACD,mBAAO,KAAP;AACH;;8BAED9zB,mCAAYH,MAAM;AACd,gBAAIA,QAAQA,KAAKg0B,WAAjB,EAA8B;AAC1B,uBAAO17B,EAAE+N,IAAF,CAAOrG,KAAKg0B,WAAZ,EAAyB,UAACxwB,IAAD,EAAU;AACtC,2BAAOA,KAAK5D,EAAL,CAAQq0B,SAAR,KAAsB,YAA7B;AACH,iBAFM,CAAP;AAGH;AACD,mBAAO,KAAP;AACH;;8BAODC,+BAAUC,KAAK;AAEX,mBAAO,gBAAezf,IAAf,CAAoByf,GAApB;AAAP;AACH;;8BAODC,2BAAQD,KAAK;AAET,mBAAO,qBAAoBzf,IAApB,CAAyByf,GAAzB;AAAP;AACH;;8BAODE,iCAAW9R,KAAK;AACZ,gBAAIjD,MAAM,CAAV;AACA,iBAAK,IAAI1K,IAAI,CAAb,EAAgBA,IAAI2N,IAAI5oB,MAAxB,EAAgCib,GAAhC,EAAqC;AACjC,oBAAI,KAAKwf,OAAL,CAAa7R,IAAI3N,CAAJ,CAAb,KAAwB,KAAKsf,SAAL,CAAe3R,IAAI3N,CAAJ,CAAf,CAA5B,EAAoD;AAChD0K,2BAAO,CAAP;AACH,iBAFD,MAEO;AACHA,2BAAO,CAAP;AACH;AACJ;AACD,mBAAOA,GAAP;AACH;;8BAQDgV,iCAAWjiB,OAAOkiB,QAAQ;AACtB,gBAAIliB,SAASkiB,MAAb,EAAqB;;AAEjB,oBAAIjV,MAAM,CAAV;AACA,qBAAK,IAAI1K,IAAI,CAAb,EAAgBA,IAAIvC,MAAM1Y,MAA1B,EAAkCib,GAAlC,EAAuC;AACnC,wBAAI,KAAKwf,OAAL,CAAa/hB,MAAMuC,CAAN,CAAb,KAA0B,KAAKsf,SAAL,CAAe7hB,MAAMuC,CAAN,CAAf,CAA9B,EAAwD;AACpD0K,+BAAO,CAAP;AACH,qBAFD,MAEO;AACHA,+BAAO,CAAP;AACH;;AAED,wBAAIA,MAAMiV,MAAV,EAAkB;AACd,+BAAOliB,MAAMqG,MAAN,CAAa,CAAb,EAAgB9D,CAAhB,IAAqB,KAA5B;AACH;AACJ;AACJ;AACD,mBAAOvC,KAAP;AACH;;8BAEDmiB,yBAAOC,MAAM;;AAET,gBAAIC,aAAa,4EAAjB;;AAEA,mBAAOA,WAAWhgB,IAAX,CAAgB+f,IAAhB,CAAP;AACH;;8BAWDE,uBAAO;AACH,gBACIC,SAAU,CAAEp0B,OAAOq0B,aAAT,IAA2B,mBAAmBr0B,MAD5D;AAAA,gBAEIm0B,OAAQ,mBAAmBn0B,MAF/B;AAGA,mBAAQo0B,UAAUD,IAAlB;AACH;;8BAGDC,2BAAS;AACL,mBAAQ,CAAEp0B,OAAOq0B,aAAT,IAA2B,mBAAmBr0B,MAAtD;AACH;;8BAGDs0B,yBAAQ;AACJ,gBACInO,YAAYD,UAAUC,SAD1B;AAAA,gBAEImO,QAAQnO,UAAU7sB,KAAV,CAAgB,KAAKy0B,QAAL,CAAcC,GAA9B,CAFZ;AAAA,gBAGIuG,iBAAiBpO,UAAU7sB,KAAV,CAAgB,KAAKy0B,QAAL,CAAcE,YAA9B,CAHrB;AAIA,gBAAIqG,SAAS,CAACC,cAAd,EAA8B;AAC1B,uBAAO,IAAP;AACH,aAFD,MAEO;AACH,uBAAO,KAAP;AACH;AACJ;;8BAGDC,qCAAc;AACV,mBAAO,CAAC,CAACtO,UAAUC,SAAV,CAAoB7sB,KAApB,CAA0B,KAAKy0B,QAAL,CAAcG,SAAxC,CAAT;AACH;;8BAGDuG,+BAAW;AACP,mBAAO,CAAC,CAACvO,UAAUC,SAAV,CAAoB7sB,KAApB,CAA0B,KAAKy0B,QAAL,CAAcvH,MAAxC,CAAT;AACH;;8BAGDkO,+BAAW;AACP,mBAAO,oBAAmBxgB,IAAnB,CAAwBgS,UAAUC,SAAV,CAAoBjL,WAApB,EAAxB;AAAP;AACH;;8BAGDyZ,+BAAW;AACP,mBAAO,qBAAoBzgB,IAApB,CAAyBgS,UAAUC,SAAV,CAAoBjL,WAApB,EAAzB;AAAP;AACH;;8BAGD0Z,iCAAY;AACR,mBAAO,qBAAoB1gB,IAApB,CAAyBgS,UAAUC,SAAV,CAAoBjL,WAApB,EAAzB;AAAP;AACH;;8BAGD2Z,6BAAU;AACN,mBAAO,kBAAiB3gB,IAAjB,CAAsBgS,UAAUC,SAAV,CAAoBjL,WAApB,EAAtB;AAAP;AACH;;8BAED4Z,6BAAStE,MAAM;;AAEX,gBAAIuE,OAAO,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,EAAyB,OAAzB,EAAkC,MAAlC,EAA0C,MAA1C,EAAkD,QAAlD,EAA4D,MAA5D,EAAoE,KAApE,EAA2E,MAA3E,CAAX;;AAEA,gBAAIxa,IAAI,EAAR;AACA,gBAAIiW,IAAJ,EAAU;AACNjW,oBAAIiW,IAAJ;AACA14B,kBAAEoG,IAAF,CAAO62B,IAAP,EAAa,UAACC,GAAD,EAAS;AAClBza,wBAAIA,EAAEzD,OAAF,CAAU,IAAIkY,MAAJ,QAAgBgG,GAAhB,QAAwB,IAAxB,CAAV,WAAJ;AACH,iBAFD;AAGH;;AAED,mBAAOza,CAAP;AACH;;8BAED0a,iCAAWtB,KAAK;AACZ,gBAAIpZ,IAAI,EAAR;AACA,gBAAIoZ,IAAIx6B,MAAJ,IAAc,CAAlB,EAAqB,OAAO,EAAP;AACrBohB,gBAAIoZ,IAAI7c,OAAJ,CAAY,IAAZ,EAAkB,MAAlB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,IAAV,EAAgB,MAAhB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,IAAV,EAAgB,MAAhB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,IAAV,EAAgB,QAAhB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,KAAV,EAAiB,OAAjB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,KAAV,EAAiB,QAAjB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,KAAV,EAAiB,MAAjB,CAAJ;AACA,mBAAOyD,CAAP;AACH;;8BAED2a,iCAAWvB,KAAK;AACZ,gBAAIpZ,IAAI,EAAR;AACA,gBAAIoZ,IAAIx6B,MAAJ,IAAc,CAAlB,EAAqB,OAAO,EAAP;AACrBohB,gBAAIoZ,IAAI7c,OAAJ,CAAY,OAAZ,EAAqB,GAArB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,OAAV,EAAmB,GAAnB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,OAAV,EAAmB,GAAnB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,SAAV,EAAqB,GAArB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,QAAV,EAAoB,IAApB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,SAAV,EAAqB,IAArB,CAAJ;AACAyD,gBAAIA,EAAEzD,OAAF,CAAU,OAAV,EAAmB,IAAnB,CAAJ;AACA,mBAAOyD,CAAP;AACH;;;;;sBAGU,IAAIuT,WAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QChnBFqH,iBAAAA;;;;;yBAETC,+BAAW;AACPp1B,mBAAOq1B,IAAP,GAAc,UAACC,KAAD,EAAW;AACrB7W,wBAAQC,GAAR,CAAY9H,KAAKC,SAAL,CAAeye,KAAf,CAAZ;AACA,uBAAO,8BAAKA,KAAL,CAAP;AACH,aAHD;AAIAt1B,mBAAOu1B,IAAP,GAAc,KAAKl5B,OAAL,CAAa0rB,SAAb,CAAuBvZ,IAAvB,CAA4B3J,GAA5B,gCAAd;AACA0wB,iBAAKt5B,SAAL,CAAe,kBAAU;AACrBlB,uBAEKy6B,YAFL,CAEkB;AACVC,iCAAa,aADH;AAEVC,6BAAS;AACL,kCAAU,kBADL;AAEL,wCAAgB,kBAFX;AAGL,4CAAoB;AAHf;AAFC,iBAFlB,EAUKC,eAVL,CAUqB;AACbC,2BADa,mBACLC,GADK,EACA;AACT,+CAAa,oBAAUl5B,KAAV,EAAb;AACA,+BAAOk5B,GAAP;AACH,qBAJY;AAKbC,gCALa,wBAKAD,GALA,EAKK;AACdpX,gCAAQC,GAAR,CAAYmX,GAAZ;AACH,qBAPY;AAQbE,4BARa,oBAQJC,IARI,EAQE;AACX,+CAAa,oBAAUpkB,IAAV,EAAb;AACA,4BAAI,CAACokB,KAAKC,EAAV,EAAc;AACVD,iCAAKX,IAAL,GAAYz4B,IAAZ,CAAiB,UAAC6H,IAAD,EAAU;AAEvB,iDAAO3D,KAAP,CAAa2D,KAAKgf,OAAlB;AACH,6BAHD;;AAKA,gCAAIuS,KAAKE,MAAL,IAAe,GAAnB,EAAwB;AACpB,iDAAOp1B,KAAP,CAAa,QAAb;AACA,sDAAM4tB,cAAN;AACA;AACH;AACJ;;AAED,+BAAOsH,IAAP;AACH,qBAxBY;AAyBbG,iCAzBa,yBAyBCH,IAzBD,EAyBO;AAChB,yCAAOl1B,KAAP,CAAak1B,KAAKvS,OAAlB,EAA2B,SAA3B;AACAhF,gCAAQC,GAAR,CAAYsX,IAAZ;AACH;AA5BY,iBAVrB;AAwCH,aAzCD;;AA2CA,mBAAO,IAAP;AACH;;yBAEDI,mCAAa;AAGT,6BAAOxd,OAAP,CAAeyd,aAAf,GAA+B,qBAA/B;AACA,6BAAOzd,OAAP,CAAe0d,iBAAf,GAAmC,IAAnC;;AAEA,mBAAO,IAAP;AACH;;yBAEDC,mCAAa;;AAET,gBAAIC,WAAW,IAAI,iBAAOC,QAAX,EAAf;AACAD,qBAASE,QAAT,GAAoB,UAAS78B,IAAT,EAAe;AAC/B,oBAAI,kBAAkBqa,IAAlB,CAAuBra,IAAvB,CAAJ,EAAkC;AAC9BA,2BAAOA,KACFid,OADE,CACM,cADN,EACsB,yEADtB,EAEFA,OAFE,CAEM,cAFN,EAEsB,iFAFtB,CAAP;AAGA,2BAAO,yEAAyEjd,IAAzE,GAAgF,OAAvF;AACH,iBALD,MAKO;AACH,2BAAO,SAASA,IAAT,GAAgB,OAAvB;AACH;AACJ,aATD;AAUA28B,qBAAS7E,IAAT,GAAgB,UAASlR,IAAT,EAAehlB,KAAf,EAAsB5B,IAAtB,EAA4B;AACxC,oBAAI,KAAK+e,OAAL,CAAa+d,QAAjB,EAA2B;AACvB,wBAAI;AACA,4BAAIC,OAAOC,mBAAmB3D,SAASzS,IAAT,CAAnB,EACN3J,OADM,CACE,SADF,EACa,EADb,EAENoE,WAFM,EAAX;AAGH,qBAJD,CAIE,OAAOva,CAAP,EAAU;AACR,+BAAO,EAAP;AACH;AACD,wBAAIi2B,KAAKrb,OAAL,CAAa,aAAb,MAAgC,CAAhC,IAAqCqb,KAAKrb,OAAL,CAAa,WAAb,MAA8B,CAAnE,IAAwEqb,KAAKrb,OAAL,CAAa,OAAb,MAA0B,CAAtG,EAAyG;AACrG,+BAAO,EAAP;AACH;AACJ;AACD,oBAAIub,YAAJ;AACA,oBAAIC,aAAa,qBAAqB7iB,IAArB,CAA0B,oBAAK,MAAL,EAAauM,IAAb,CAA1B,CAAjB;AACA,oBAAIuW,gBAAgB,sBAAsB9iB,IAAtB,CAA2B,oBAAK,MAAL,EAAauM,IAAb,CAA3B,CAApB;AACA,oBAAIsW,cAAcC,aAAd,IAAgC,sBAAMjE,QAAN,CAAetS,IAAf,KAAyB,oBAAK,UAAL,EAAiBA,IAAjB,KAA0B,oBAAK,UAAL,CAAvF,EAA2G;AACvGqW,0BAAM,8BAA8BrW,IAA9B,GAAqC,GAA3C;AACH,iBAFD,MAEO;AACHqW,0BAAM,cAAcrW,IAAd,GAAqB,GAA3B;AACH;AACD,oBAAIhlB,KAAJ,EAAW;AACPq7B,2BAAO,aAAar7B,KAAb,GAAqB,GAA5B;AACH;AACDq7B,uBAAO,MAAMj9B,IAAN,GAAa,MAApB;AACA,uBAAOi9B,GAAP;AACH,aA1BD;;AA4BAN,qBAASS,QAAT,GAAoB,UAASp9B,IAAT,EAAe;AAC/B,6CAA2BA,IAA3B,UAAoCA,IAApC;AACH,aAFD;;AAIA28B,qBAASU,IAAT,GAAgB,UAASA,IAAT,EAAeC,IAAf,EAAqBC,OAArB,EAA8B;AAC1C,oBAAIC,SAASH,IAAb;AACA,oBAAI,KAAKte,OAAL,CAAa0e,SAAjB,EAA4B;AACxB,wBAAIR,MAAM,KAAKle,OAAL,CAAa0e,SAAb,CAAuBJ,IAAvB,EAA6BC,IAA7B,CAAV;AACA,wBAAIL,OAAO,IAAP,IAAeA,QAAQI,IAA3B,EAAiC;AAC7BE,kCAAU,IAAV;AACAF,+BAAOJ,GAAP;AACH;AACJ;;AAED,oBAAI,CAACK,IAAL,EAAW;AACP,sFAAgE,sBAAMnE,MAAN,CAAaqE,MAAb,EAAqB,IAArB,CAAhE,2FAAqKD,UAAUF,IAAV,GAAiB,sBAAMlE,MAAN,CAAakE,IAAb,EAAmB,IAAnB,CAAtL;AACH;;AAED,kFAAgE,sBAAMlE,MAAN,CAAaqE,MAAb,EAAqB,IAArB,CAAhE,kGAA4K,KAAKze,OAAL,CAAa2e,UAAb,GAA0B,sBAAMvE,MAAN,CAAamE,IAAb,EAAmB,IAAnB,CAAtM,YAAmOC,UAAUF,IAAV,GAAiB,sBAAMlE,MAAN,CAAakE,IAAb,EAAmB,IAAnB,CAApP;AACH,aAfD;;AAkBA,6BAAOM,UAAP,CAAkB;AACdhB,0BAAUA,QADI;AAEdiB,wBAAQ,IAFM;AAGdH,2BAAW,mBAASJ,IAAT,EAAe;AACtB,2BAAO,oBAAKQ,aAAL,CAAmBR,IAAnB,EAAyBrlB,KAAhC;AACH;AALa,aAAlB;;AAQA,mBAAO,IAAP;AACH;;yBAED8lB,+BAAW;AAEPlgC,cAAEmgC,SAAF,CAAY;AAERC,uBAAO;AAFC,aAAZ;;AAKA,gBAAIC,aAAa,CACb,sBADa,EAEb,qBAFa,EAGb,oBAHa,CAAjB;;AAMArgC,cAAEuT,QAAF,EAAY+sB,QAAZ,CAAqB,UAASx5B,KAAT,EAAgBy5B,KAAhB,EAAuBpgC,QAAvB,EAAiC;;AAElD,oBAAIqgC,oBAAoBngC,EAAEogC,KAAF,CAAQJ,UAAR,EAAoB,UAACz/B,GAAD,EAAS;AACjD,2BAAQT,SAASS,GAAT,CAAa8/B,WAAb,CAAyB9/B,GAAzB,KAAiC,CAAC,CAA1C;AACH,iBAFuB,CAAxB;;AAIA,oBAAI4/B,iBAAJ,EAAuB;AACnB,2CAAa,oBAAUt7B,KAAV,EAAb;AACH;AACJ,aATD;;AAcAlF,cAAEuT,QAAF,EAAY1M,EAAZ,CAAe,UAAf,EAA2B,YAAW;AAClC,uCAAa,oBAAUsT,IAAV,EAAb;AACH,aAFD;;AAMAna,cAAEuT,QAAF,EAAYotB,SAAZ,CAAsB,UAAS75B,KAAT,EAAgBmJ,GAAhB,EAAqB9P,QAArB,EAA+B;AACjD,oBAAI8P,OAAOA,IAAIwuB,MAAJ,IAAc,GAAzB,EAA8B;AAC1B,0CAAMxH,cAAN;AACH;AACJ,aAJD;;AAMA,mBAAO,IAAP;AACH;;yBAED2J,yCAAgB;AACZr4B,mBAAOY,MAAP;AACAZ,mBAAOO,IAAP;AACAP,mBAAON,KAAP;AACAM,mBAAOywB,MAAP;AACAzwB,mBAAOwK,QAAP;AACAxK,mBAAO6G,IAAP;AACA7G,mBAAOs4B,EAAP,GAAY,KAAKj8B,OAAL,CAAa0rB,SAAb,CAAuBvZ,IAAvB,CAA4B3J,GAA5B,6CAAZ;AACA7E,mBAAOhJ,EAAP,GAAY,KAAKqF,OAAL,CAAa0rB,SAAb,CAAuBvZ,IAAvB,CAA4B3J,GAA5B,yCAAZ;AACA7E,mBAAOu4B,SAAP,GAAmB,yBAAnB;AACA,mBAAO,IAAP;AACH;;yBAEDC,2CAAiB;AACb/gC,cAAEC,EAAF,CAAKK,MAAL,CAAY;AACR0gC,4BAAY,oBAASC,aAAT,EAAwB;AAChC,wBAAIC,eAAe,8EAAnB;AACA,yBAAK5yB,QAAL,CAAc,cAAc2yB,aAA5B,EAA2CE,GAA3C,CAA+CD,YAA/C,EAA6D,YAAW;AACpElhC,0BAAE,IAAF,EAAQqO,WAAR,CAAoB,cAAc4yB,aAAlC;AACH,qBAFD;AAGH;AANO,aAAZ;AAQA,mBAAO,IAAP;AACH;;yBAEDG,iCAAY;AACRtI,uBAAWA,QAAQuI,SAAR,CAAkB;AACzBC,yBAAS,sBAAMvK,eAAN,KAA0B;AADV,aAAlB,CAAX;AAGA,mBAAO,IAAP;AACH;;yBAEDwK,mCAAa;AACTlhC,cAAEC,MAAF,CAASN,EAAEC,EAAF,CAAKuhC,MAAL,CAAYrgB,OAArB,EAA8B;AAC1BsgB,4BAAY,IADc;AAE1BC,kCAAkB,UAFQ;AAG1BC,qCAAqB,IAHK;AAI1BC,4CAA4B,IAJF;AAK1BC,+BAAe,MALW;AAM1BC,kCAAkB,OANQ;AAO1BC,iCAAiB;AAPS,aAA9B;AASA,mBAAO,IAAP;AACH;;yBAED3gB,2BAAQxc,SAAS;AACb,iBAAKA,OAAL,GAAeA,OAAf;AACA,mBAAO,IAAP;AACH;;;;;sBAIU,IAAI84B,MAAJ;;;;;;;;YChQCl5B,YAAAA;;;;;;;;;;AAAT,aAASA,SAAT,CAAmBI,OAAnB,EAA4BT,MAA5B,EAAoC;;AAEvC,yBAAOid,OAAP,CAAexc,OAAf,EACKg8B,aADL,GAEKjD,QAFL,GAGKuC,QAHL,GAIKvB,UAJL,GAKKG,UALL,GAMKiC,cANL,GAOKK,SAPL,GAQKG,UARL;AASH;;;;;;;;YCZe/8B,YAAAA;AAAT,aAASA,SAAT,CAAmBI,OAAnB,EAA4B;;AAE/BA,gBAAQo9B,eAAR,CAAwB,CACpB,sCADoB,EAEpB,oCAFoB,EAGpB,gCAHoB,EAIpB,oCAJoB,EAKpB,oCALoB,EAMpB,oCANoB,EAOpB,oCAPoB,EAQpB,gCARoB,EASpB,+BAToB,EAUpB,kCAVoB,EAWpB,uCAXoB,EAYpB,8CAZoB,EAapB,6CAboB,EAcpB,kCAdoB,EAepB,oCAfoB,EAgBpB,uCAhBoB,EAiBpB,qCAjBoB,EAkBpB,wCAlBoB,EAmBpB,qCAnBoB,EAoBpB,kCApBoB,EAqBpB,6BArBoB,EAsBpB,gCAtBoB,EAuBpB,gCAvBoB,EAwBpB,qCAxBoB,EAyBpB,qCAzBoB,EA0BpB,kCA1BoB,EA2BpB,qCA3BoB,EA4BpB,yCA5BoB,EA6BpB,yCA7BoB,EA8BpB,0CA9BoB,EA+BpB,2CA/BoB,EAgCpB,yCAhCoB,EAiCpB,yCAjCoB,EAkCpB,gDAlCoB,EAmCpB,iDAnCoB,EAoCpB,6CApCoB,EAqCpB,4CArCoB,EAsCpB,sCAtCoB,EAuCpB,yCAvCoB,EAwCpB,mCAxCoB,EAyCpB,qCAzCoB,EA0CpB,gCA1CoB,EA2CpB,0CA3CoB,EA4CpB,4CA5CoB,EA6CpB,kCA7CoB,EA8CpB,iDA9CoB,EA+CpB,kCA/CoB,EAgDpB,yCAhDoB,EAiDpB,0CAjDoB,EAkDpB,oCAlDoB,EAmDpB,qCAnDoB,EAoDpB,kCApDoB,EAqDpB,oCArDoB,EAsDpB,iCAtDoB,EAuDpB,yCAvDoB,EAwDpB,uCAxDoB,EAyDpB,yCAzDoB,EA0DpB,oCA1DoB,EA2DpB,yCA3DoB,EA4DpB,yCA5DoB,EA6DpB,0CA7DoB,EA8DpB,uCA9DoB,EA+DpB,mCA/DoB,EAgEpB,iCAhEoB,EAiEpB,0CAjEoB,CAAxB;AAmEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnEYC,wBAAAA;AAWT,+BAAYC,eAAZ,EAA6B;AAAA;;AAAA;;AACzB,iBAAKA,eAAL,GAAuBA,eAAvB;;AAEAlb,oBAAQC,GAAR,CAAY,aAAZ;AAMH;;gCAMDkb,2BAAQC,MAAM;AACVpb,oBAAQC,GAAR,CAAY,SAAZ;AACH;;gCAMDzW,qBAAKC,KAAK;AACNuW,oBAAQC,GAAR,CAAY,MAAZ;AACH;;gCAKDnnB,2BAAS;AACLknB,oBAAQC,GAAR,CAAY,QAAZ;AAEH;;gCAKD9gB,+BAAW;AACP6gB,oBAAQC,GAAR,CAAY,UAAZ;AACH;;gCAKDzf,+BAAW;AACPwf,oBAAQC,GAAR,CAAY,UAAZ;AACH;;gCASDob,mCAAYl+B,QAAQC,aAAaC,uBAAuB;AACpD2iB,oBAAQC,GAAR,CAAY,aAAZ;AACH;;gCASD/iB,6BAASC,QAAQC,aAAaC,uBAAuB;AACjD2iB,oBAAQC,GAAR,CAAY,UAAZ;AACH;;gCAMDqb,yCAAgB;AACZtb,oBAAQC,GAAR,CAAY,eAAZ;AACH;;gCAMDsb,mCAAa;AACTvb,oBAAQC,GAAR,CAAY,YAAZ;AACH;;;iBA1FMub,SAAS;;;mBAFT;;;;;;;;;;;;;;;;;QChBEC,oBAAAA;;;;iBAETr7B,WAAW;iBACXs7B,WAAW;;;4BAKXv8B,+BAAW;AACPnG,cAAE,KAAK2iC,aAAP,EAAsBC,QAAtB;AACH;;4BAEDC,+BAAUrvB,KAAK;AACX,gBAAIA,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AACpB,qBAAK+Y,YAAL;AACH;;AAED,mBAAO,IAAP;AACH;;4BAEDA,uCAAe;AAAA;;AAIX,gBAAIC,KAAK/iC,EAAE,KAAK2iC,aAAP,EAAsBC,QAAtB,CAA+B,YAA/B,IAA+C,IAA/C,GAAsD,EAA/D;;AAEA5iC,cAAEgjC,IAAF,CAAO,eAAP,EAAwB;AACpB57B,0BAAU,KAAKA,QADK;AAEpBs7B,0BAAU,KAAKA,QAFK;AAGpB,+BAAeK;AAHK,aAAxB,EAIG5oB,IAJH,CAIQ,YAAM;;AAEV3W,gCAAgBA,aAAa8I,OAAb,CAAqB9M,OAAOgX,kBAA5B,EAAgD,MAAKpP,QAArD,CAAhB;;AAEA,oBAAInD,WAAWgE,MAAMkvB,QAAN,CAAe,UAAf,CAAf;AACA,oBAAIlzB,QAAJ,EAAc;AACVsE,2BAAOwC,QAAP,GAAkBq0B,mBAAmBn7B,QAAnB,CAAlB;AACH,iBAFD,MAEO;AACH,wBAAIV,SAAS,IAAb;AACA,wBAAIC,YAAJ,EAAkB;AACdD,iCAASC,aAAaC,OAAb,CAAqBjE,OAAOkE,yBAA5B,CAAT;AACH;AACD,wBAAIH,MAAJ,EAAY;AACRgF,+BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyBvF,MAAzB,CAAlB;AACH,qBAFD,MAEO;AACHgF,+BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0B,MAAK1B,QAA/B,CAAlB;AACH;AACJ;AAEJ,aAvBD,EAuBG4I,IAvBH,CAuBQ,UAACC,GAAD,EAAMC,GAAN,EAAWuB,GAAX,EAAmB;AACvB,oBAAIxB,IAAIwuB,MAAJ,IAAc,GAAlB,EAAuB;AACnBt1B,2BAAOE,KAAP,CAAa,WAAb;AACH,iBAFD,MAEO,IAAI4G,IAAIwuB,MAAJ,IAAc,CAAlB,EAAqB;AACxBt1B,2BAAOE,KAAP,CAAa,SAAb;AACH;AACJ,aA7BD;;;AAgCA,mBAAO,IAAP;AAEH;;;;;;;;;;;;;;;;;;QCzDQ45B,uBAAAA;;;;iBAETzG,OAAO;iBACP0G,MAAM;iBAENC,QAAQ;iBAERC,QAAQn7B,MAAMkvB,QAAN,CAAe,IAAf;;;+BAERkM,6CAAkB;AAAA;;AAEd,gBAAI,CAACrjC,EAAE,KAAKsjC,EAAP,EAAW/iC,IAAX,CAAgB,UAAhB,CAAL,EAAkC;AAC9B4I,uBAAOE,KAAP,CAAa,YAAb;AACA;AACH;;AAED,iBAAK85B,KAAL,GAAa,IAAb;AACArF,iBAAKyF,KAAL,CAAW,sBAAX,EAAmC;AAC/BC,wBAAQ,MADuB;AAE/Bl0B,sBAAMsuB,KAAK;AACPpB,0BAAM,KAAKA,IADJ;AAEPiH,6BAASx7B,MAAMyuB,UAAN,EAFF;AAGPvZ,0BAAMrU,KAAK,MAAL;AAHC,iBAAL;AAFyB,aAAnC,EAOG3D,IAPH,CAOQ,UAACo5B,IAAD,EAAU;AACd,oBAAIA,KAAKC,EAAT,EAAa;AACTD,yBAAKX,IAAL,GAAYz4B,IAAZ,CAAiB,UAAC6H,IAAD,EAAU;AACvB,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,eAAf;AACA/I,8BAAEy7B,KAAF,CAAQ,YAAM;AACVvzB,uCAAOwC,QAAP,GAAkB,cAAlB;AACH,6BAFD,EAEG,IAFH;AAGH,yBALD,MAKO;AACH5B,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,eAAxB;AACA,kCAAKm2B,KAAL,GAAa,KAAb;AACH;AACJ,qBAVD;AAWH;AAEJ,aAtBD;AAuBH;;+BAEDO,yCAAgB;AAAA;;AAEZ,gBAAI,CAAC1jC,EAAE,KAAK2jC,GAAP,EAAYpjC,IAAZ,CAAiB,UAAjB,CAAL,EAAmC;AAC/B4I,uBAAOE,KAAP,CAAa,WAAb;AACA;AACH;;AAED,iBAAK85B,KAAL,GAAa,IAAb;AACArF,iBAAKyF,KAAL,CAAW,oBAAX,EAAiC;AAC7BC,wBAAQ,MADqB;AAE7Bl0B,sBAAMsuB,KAAK;AACPwF,2BAAO,KAAKA,KADL;AAEPF,yBAAK,KAAKA;AAFH,iBAAL;AAFuB,aAAjC,EAMG/9B,IANH,CAMQ,UAACo5B,IAAD,EAAU;AACd,oBAAIA,KAAKC,EAAT,EAAa;AACTD,yBAAKX,IAAL,GAAYz4B,IAAZ,CAAiB,UAAC6H,IAAD,EAAU;AACvB,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA/I,8BAAEy7B,KAAF,CAAQ,YAAM;AACVvzB,uCAAOwC,QAAP,GAAkB,cAAlB;AACH,6BAFD,EAEG,IAFH;AAGH,yBALD,MAKO;AACH5B,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACA,mCAAKm2B,KAAL,GAAa,KAAb;AACH;AACJ,qBAVD;AAWH;AAEJ,aArBD;AAsBH;;+BAKDh9B,+BAAW;;AAEPnG,cAAE,KAAKsjC,EAAP,EAAW/iC,IAAX,CAAgB;AACZsG,oBAAI,MADQ;AAEZ+8B,wBAAQ,IAFI;AAGZC,wBAAQ;AACJrH,0BAAM,CAAC,OAAD,EAAU,OAAV;AADF;AAHI,aAAhB;;AAQAx8B,cAAE,KAAK2jC,GAAP,EAAYpjC,IAAZ,CAAiB;AACbsG,oBAAI,MADS;AAEb+8B,wBAAQ,IAFK;AAGbC,wBAAQ;AACJrH,0BAAM,CAAC,OAAD,EAAU,cAAV;AADF;AAHK,aAAjB;AAOH;;;;;;;;;;;;;;;;;;QC9FQsH,oBAAAA;;;;iBAETC,SAAS;;;4BAST7/B,6BAASC,QAAQC,aAAaC,uBAAuB;AAAA;;AAEjD,gBAAIF,OAAOwD,EAAX,EAAe;AACX,qBAAKy7B,KAAL,GAAaj/B,OAAOwD,EAApB;;AAEA,qBAAKw7B,KAAL,GAAa,IAAb;AACA,qBAAKY,MAAL,GAAc,eAAd;AACAjG,qBAAKyF,KAAL,CAAW,8BAAX,EAA2C;AACvCC,4BAAQ,MAD+B;AAEvCl0B,0BAAMsuB,KAAK;AACPwF,+BAAO,KAAKA;AADL,qBAAL;AAFiC,iBAA3C,EAKGj+B,IALH,CAKQ,UAACo5B,IAAD,EAAU;AACd,wBAAIA,KAAKC,EAAT,EAAa;AACTD,6BAAKX,IAAL,GAAYz4B,IAAZ,CAAiB,UAAC6H,IAAD,EAAU;AACvB,gCAAIA,KAAK5D,OAAT,EAAkB;AACd,sCAAK26B,MAAL,GAAc,mBAAd;AACH,6BAFD,MAEO;AACH,sCAAKA,MAAL,GAAc,SAAd;AACA56B,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,yBAPD;AAQA,8BAAKm2B,KAAL,GAAa,KAAb;AACH;AACJ,iBAjBD;AAkBH;AACJ;;4BAKDh9B,+BAAW;;AAEPnG,cAAE,KAAKsjC,EAAP,EAAW/iC,IAAX,CAAgB;AACZsG,oBAAI,MADQ;AAEZ+8B,wBAAQ,IAFI;AAGZC,wBAAQ;AACJz8B,8BAAU;AACN48B,oCAAY,UADN;AAENC,+BAAO,CAAC;AACJ5gB,kCAAM;AADF,yBAAD,EAEJ;AACCA,kCAAM;AADP,yBAFI,EAIJ;AACCA,kCAAM,QADP;AAECjJ,mCAAO,iCAFR;AAGC5Z,oCAAQ;AAHT,yBAJI;AAFD,qBADN;AAaJ0iC,yBAAK;AACDc,oCAAY,KADX;AAEDC,+BAAO,CAAC;AACJ5gB,kCAAM;AADF,yBAAD,EAEJ;AACCA,kCAAM;AADP,yBAFI;AAFN,qBAbD;AAqBJxf,0BAAM;AACFmgC,oCAAY,MADV;AAEFC,+BAAO,CAAC;AACJ5gB,kCAAM;AADF,yBAAD,EAEJ;AACCA,kCAAM;AADP,yBAFI;AAFL,qBArBF;AA6BJmZ,0BAAM;AACFwH,oCAAY,MADV;AAEFC,+BAAO,CAAC;AACJ5gB,kCAAM;AADF,yBAAD,EAEJ;AACCA,kCAAM;AADP,yBAFI;AAFL;AA7BF;AAHI,aAAhB;AA2CH;;4BAED6gB,iCAAY;AAAA;;AAER,gBAAI,CAAClkC,EAAE,KAAKsjC,EAAP,EAAW/iC,IAAX,CAAgB,UAAhB,CAAL,EAAkC;AAC9B4I,uBAAOE,KAAP,CAAa,cAAb;AACA;AACH;;AAED,iBAAK85B,KAAL,GAAa,IAAb;AACArF,iBAAKyF,KAAL,CAAW,qBAAX,EAAkC;AAC9BC,wBAAQ,MADsB;AAE9Bl0B,sBAAMsuB,KAAK;AACPx2B,8BAAU,KAAKA,QADR;AAEP87B,yBAAK,KAAKA,GAFH;AAGPr/B,0BAAM,KAAKA,IAHJ;AAIP24B,0BAAM,KAAKA,IAJJ;AAKPiH,6BAASx7B,MAAMyuB,UAAN,EALF;AAMPvZ,0BAAMrU,KAAK,MAAL;AANC,iBAAL;AAFwB,aAAlC,EAUG3D,IAVH,CAUQ,UAACo5B,IAAD,EAAU;AACd,oBAAIA,KAAKC,EAAT,EAAa;AACTD,yBAAKX,IAAL,GAAYz4B,IAAZ,CAAiB,UAAC6H,IAAD,EAAU;AACvB,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,uBAAf;AACA/I,8BAAEy7B,KAAF,CAAQ,YAAM;AACVvzB,uCAAOwC,QAAP,GAAkB,cAAlB;AACH,6BAFD,EAEG,IAFH;AAGH,yBALD,MAKO;AACH5B,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACA,mCAAKm2B,KAAL,GAAa,KAAb;AACH;AACJ,qBAVD;AAYH;AACJ,aAzBD;AA2BH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC1HQgB,mBAAAA,mBAFZ,uCAAgB,MAAhB,WACA,wCAAOC,OAAP;AAMG,0BAAYt4B,OAAZ,EAAqB;AAAA;;AAAA;;AAAA;;AAEjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;2BAEDu4B,mCAAYjqB,OAAO,CAAE;;2BAErBkqB,qCAAalqB,OAAO;;AAEhB,iBAAKA,KAAL,GAAaA,KAAb;;AAEA,gBAAIA,KAAJ,EAAW;AACPpa,kBAAE,KAAK8L,OAAP,EAAgBlF,IAAhB,CAAqB,KAAK/C,IAA1B,EAAgCuW,KAAhC;AACH,aAFD,MAEO;AACHpa,kBAAE,KAAK8L,OAAP,EAAgBy4B,UAAhB,CAA2B,KAAK1gC,IAAhC;AACH;AACJ;;2BAED2M,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;2BAEDta,2BAAS,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;QC3BF2kC,uBAAAA,uBAFZ,wCAAgB,UAAhB,WACA,8BAAOL,OAAP;AAGG,8BAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;+BAEDw4B,qCAAaI,UAAUznB,UAAU;AAC7BlK,qBAAS,KAAKjH,OAAd;AACH;;+BAED0E,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;+BAKDta,2BAAS;AACLiT,qBAAS8d,OAAT,CAAiB,KAAK8T,QAAtB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnBQC,iCAAAA,iCAFZ,uCAAgB,KAAhB,WACA,8BAAOR,OAAP;AAGG,wCAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACA,iBAAK+4B,KAAL;AACH;;yCAEDA,yBAAQ;AAAA;;AAEJ7kC,cAAE,KAAK8L,OAAP,EAAgB6lB,MAAhB;AACA,iBAAKmT,SAAL,GAAiB,wBAAc9kC,EAAE,KAAK8L,OAAP,EAAgBtF,IAAhB,CAAqB,aAArB,EAAoC,CAApC,CAAd,EAAsD;AACnEpE,sBAAM,cAACuiB,OAAD,EAAa;AACf,2BAAO,MAAKvK,KAAL,GAAa,MAAKA,KAAlB,GAA0Bpa,EAAE,MAAK8L,OAAP,EAAgB1J,IAAhB,EAAjC;AACH;AAHkE,aAAtD,CAAjB;AAKA,gBAAI2iC,MAAM/kC,EAAE,KAAK8L,OAAP,EAAgBtF,IAAhB,CAAqB,gBAArB,EAAuCw+B,KAAvC,CAA6C,YAAW,CAAE,CAA1D,EAA4D,YAAW;AAC7EhlC,kBAAE,IAAF,EAAQ4G,IAAR,CAAa,cAAb,EAA6B,SAA7B;AACH,aAFS,CAAV;AAGA,iBAAKk+B,SAAL,CAAej+B,EAAf,CAAkB,SAAlB,EAA6B,UAACqC,CAAD,EAAO;AAChC67B,oBAAIn+B,IAAJ,CAAS,cAAT,EAAyB,OAAzB;AACH,aAFD,EAEGC,EAFH,CAEM,OAFN,EAEe,UAACqC,CAAD,EAAO;AAClB67B,oBAAIn+B,IAAJ,CAAS,cAAT,EAAyB,OAAzB;AACH,aAJD;;AAMA5G,cAAE,KAAK8L,OAAP,EAAgBk5B,KAAhB,CAAsB,YAAM;AACxB,oBAAI,MAAK5qB,KAAL,IAAcpa,EAAE,MAAK8L,OAAP,EAAgB1J,IAAhB,EAAlB,EAA0C;AACtC2iC,wBAAIlxB,IAAJ;AACH;AACJ,aAJD,EAIG,YAAM;AACLkxB,oBAAIE,IAAJ;AACH,aAND;AAOH;;yCAEDnlC,2BAAS;AACL,iBAAKglC,SAAL,IAAkB,KAAKA,SAAL,CAAejU,OAAf,EAAlB;AACH;;;;;;;;;;;;;;;;;;;;;QCnCQqU,qBAAAA,qBAFZ,wCAAgB,QAAhB,WACA,wCAAOd,OAAP;AAGG,4BAAYt4B,OAAZ,EAAqB;AAAA;;AAEjB,iBAAKA,OAAL,GAAeA,OAAf;AACA,iBAAKq5B,OAAL,GAAenlC,EAAE,8EAAF,CAAf;AACH;;6BAEDskC,qCAAaI,UAAU;AACnB,gBAAI,KAAKtqB,KAAT,EAAgB;AACZpa,kBAAE,KAAK8L,OAAP,EAAgBs5B,OAAhB,CAAwB,KAAKD,OAA7B;AACH,aAFD,MAEO;AACH,qBAAKA,OAAL,CAAa/gB,MAAb;AACH;AACJ;;6BAED5T,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCdQirB,uBAAAA,uBAFZ,wCAAgB,UAAhB,WACA,8BAAOjB,OAAP;AAOG,8BAAYt4B,OAAZ,EAAqBo2B,eAArB,EAAsC;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAClC,iBAAKp2B,OAAL,GAAeA,OAAf;AACA,iBAAKo2B,eAAL,GAAuBA,eAAvB;;AAEA,iBAAK5iC,SAAL,GAAiB,KAAK4iC,eAAL,CAAqB5iC,SAArB,CAA+BE,OAAOyU,0BAAtC,EAAkE,UAACvU,OAAD,EAAa;AAC5F,oBAAIA,QAAQ2H,MAAR,KAAmB,MAAKA,MAA5B,EAAoC;AAChCrH,sBAAE,MAAK8L,OAAP,EAAgB6H,KAAhB;AACH;AACJ,aAJgB,CAAjB;AAKH;;+BAED2wB,qCAAaI,UAAUznB,UAAU;;AAE7B,gBAAI5V,SAAS,KAAKA,MAAL,GAAc,KAAKA,MAAnB,GAA4B,KAAKyE,OAA9C;AACA,gBAAIw5B,SAAS,KAAKjiB,IAAL,GAAY,KAAKA,IAAjB,GAAyB5b,MAAMgC,IAAN,GAAa,MAAb,GAAsB,SAA5D;;AAEAzJ,cAAE,KAAK8L,OAAP,EAAgBqC,MAAhB,GAAyBG,QAAzB,CAAkC,6BAAlC;;AAEAtO,cAAE,KAAK8L,OAAP,EAAgB3B,QAAhB,GAA2Bo7B,OAA3B,GAAqCC,QAArC,CAA8C;AAC1C5kC,qBAAK,oBADqC;AAE1C6kC,2BAAW,MAF+B;AAG1CC,2BAAW,CAAC,CAAC,KAAKA,SAHwB;AAI1CC,oCAAoB,EAJsB;AAK1CC,6BAAa,EAL6B;AAM1CC,gCAAgB,IAN0B;;AAS1CC,kCAAkB,MATwB;AAU1CC,8CAA8B,WAVY;AAW1CC,gCAAgB,2CAX0B;AAY1C5mC,sBAAM,gBAAW;AACb,yBAAKyH,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAeza,GAAf,EAAoBg2B,QAApB,EAA8B;AAC7CA,iCAAStU,MAAT,CAAgB,QAAhB,EAA0B2T,MAA1B;AACA,4BAAG,WAAWA,MAAd,EAAsB;AAClBW,qCAAStU,MAAT,CAAgB,MAAhB,EAAwBlqB,MAAMlE,MAA9B;AACH;AACJ,qBALD;AAMA,yBAAKsD,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAe1d,IAAf,EAAqB;AACpC,4BAAIA,KAAK5D,OAAT,EAAkB;;AAEdpJ,8BAAEyG,IAAF,CAAOuG,KAAKA,IAAZ,EAAkB,UAAStG,KAAT,EAAgB6E,IAAhB,EAAsB;AACpC,oCAAIA,KAAK8X,IAAL,IAAa,OAAjB,EAA0B;AACtBrjB,sCAAEqH,MAAF,EAAUulB,aAAV,CAAwB,wCACnBvN,OADmB,CACX,WADW,EACE9T,KAAK1H,IADP,EAEnBwb,OAFmB,CAEX,cAFW,EAEKpX,MAAMyuB,UAAN,KAAqB,GAF1B,EAGnBrX,OAHmB,CAGX,WAHW,EAGE9T,KAAK4R,IAHP,EAInBkC,OAJmB,CAIX,eAJW,EAIM9T,KAAK26B,QAJX,CAAxB;AAKH,iCAND,MAMO;AACHlmC,sCAAEqH,MAAF,EAAUulB,aAAV,CAAwB,uCACnBvN,OADmB,CACX,WADW,EACE9T,KAAK1H,IADP,EAEnBwb,OAFmB,CAEX,cAFW,EAEKpX,MAAMyuB,UAAN,KAAqB,GAF1B,EAGnBrX,OAHmB,CAGX,WAHW,EAGE,sBAHF,EAInBA,OAJmB,CAIX,eAJW,EAIM9T,KAAK5D,EAJX,CAAxB;AAKH;AACJ,6BAdD;AAeAwB,mCAAOC,OAAP,CAAe,OAAf;AACH,yBAlBD,MAkBO;AACHD,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AAEJ,qBAvBD;AAwBA,yBAAKnG,EAAL,CAAQ,OAAR,EAAiB,UAAS6jB,IAAT,EAAeyb,YAAf,EAA6Bl2B,GAA7B,EAAkC;AAC/C9G,+BAAOE,KAAP,CAAa88B,YAAb,EAA2B,OAA3B;AACH,qBAFD;AAGA,yBAAKt/B,EAAL,CAAQ,UAAR,EAAoB,UAAS6jB,IAAT,EAAe;AAC/B,6BAAK0b,UAAL,CAAgB1b,IAAhB;AACH,qBAFD;AAGH;AAjDyC,aAA9C;AAmDH;;+BAEDla,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnFQisB,oCAAAA,oCAFZ,wCAAgB,QAAhB,WACA,8BAAOjC,OAAP;AAGG,2CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;4CAEDw4B,qCAAaI,UAAUznB,UAAU;AAAA;;AAE7B5c,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgB01B,MAAhB,CAAuB;AACnB8E,gCAAY,IADO;AAEnBC,mCAAe,KAFI;AAGnBC,+BAAW,MAHQ;;AAQnBC,iCAAa,uBAAM;AACflnC,2BAAG2H,OAAH,CAAW1H,OAAOqV,wBAAlB,EAA4C;AACxClN,gCAAI+8B;AADoC,yBAA5C;AAGH,qBAZkB;AAanBgC,gCAAY,sBAAM;AACdnnC,2BAAG2H,OAAH,CAAW1H,OAAOsV,uBAAlB,EAA2C;AACvCnN,gCAAI+8B;AADmC,yBAA3C;AAGH,qBAjBkB;AAkBnBiC,kCAAc,wBAAM;AAChBpnC,2BAAG2H,OAAH,CAAW1H,OAAOuV,yBAAlB,EAA6C;AACzCpN,gCAAI+8B;AADqC,yBAA7C;AAGH,qBAtBkB;AAuBnBkC,iCAAa,uBAAM;AACfrnC,2BAAG2H,OAAH,CAAW1H,OAAOwV,wBAAlB,EAA4C;AACxCrN,gCAAI+8B;AADoC,yBAA5C;AAGH;AA3BkB,iBAAvB;AA6BH,aA9BD;AAgCH;;;;;;;;;;;;;;;;;;;;;QCtCQmC,uBAAAA,uBAFZ,wCAAgB,UAAhB,WACA,8BAAOzC,OAAP;AAGG,8BAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;+BAEDw4B,qCAAaI,UAAUznB,UAAU;AAAA;;AAE7Bjd,cAAE,KAAK8L,OAAP,EAAgByb,gBAAhB,GAAmC1gB,EAAnC,CAAsC,YAAtC,EAAoD,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;;AAE9DhN,kBAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBrb,6BAAS3a,KAAK2a,OADW;AAEzBtE,0BAAMrW,KAAKmf,IAAL,CAAU9I,IAFS;AAGzBiiB,4BAAQ79B,MAAMgC,IAAN,GAAa,MAAb,GAAsB,SAHL;AAIzBq9B,0BAAMr/B,MAAMlE;AAJa,iBAA7B,EAKG,UAACyJ,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACdpJ,0BAAE,MAAK8L,OAAP,EAAgB8gB,aAAhB,CAA8B,uCACzBvN,OADyB,CACjB,WADiB,EACJrS,KAAKA,IAAL,CAAUnJ,IADN,EAEzBwb,OAFyB,CAEjB,cAFiB,EAEDpX,MAAMyuB,UAAN,KAAqB,GAFpB,EAGzBrX,OAHyB,CAGjB,WAHiB,EAGJrS,KAAKA,IAAL,CAAUmQ,IAHN,EAIzBkC,OAJyB,CAIjB,eAJiB,EAIArS,KAAKA,IAAL,CAAUk5B,QAJV,CAA9B;AAKH;AACJ,iBAbD;AAcH,aAhBD,EAgBGr/B,EAhBH,CAgBM,iBAhBN,EAgByB,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;AACnC7D,uBAAOE,KAAP,CAAa2D,KAAKgf,OAAlB,EAA2B,YAA3B;AACH,aAlBD;AAmBH;;+BAEDxb,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;;;;;;;;;;;;;;;;;;;;QChCQ4sB,uCAAAA,uCAFZ,wCAAgB,WAAhB,WACA,8BAAO5C,OAAP;AAGG,8CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;+CAEDw4B,qCAAaI,UAAUznB,UAAU;AAAA;;AAC7B,iBAAKgqB,GAAL,GAAWvC,WAAWA,QAAX,GAAuB1kC,EAAEuI,MAAF,EAAU0B,KAAV,KAAoB,GAApB,GAA0B,kBAA1B,GAA+C,iBAAjF;AACA4c,mBAAO,KAAK/a,OAAZ,EAAqBwC,QAArB,CAA8B,KAAK24B,GAAnC,EAAwC9R,SAAxC,CAAkD;AAC9C,4BAAY,kBAAC3D,CAAD,EAAID,CAAJ,EAAU;AAClB,wBAAIC,EAAE9f,MAAF,IAAY8f,EAAEO,SAAlB,EAA6B;AACzBxyB,2BAAG2H,OAAH,CAAW1H,OAAOoM,gCAAlB,EAAoD;AAChDE,qCAAS,MAAKA,OADkC;AAEhDylB,+BAAGA,CAF6C;AAGhDC,+BAAGA;AAH6C,yBAApD;AAKH;AACJ;AAT6C,aAAlD;AAWH;;+CAKD1xB,2BAAS;AACL,gBAAI;AACA+mB,uBAAO,KAAK/a,OAAZ,EAAqBuC,WAArB,CAAiC,KAAK44B,GAAtC,EAA2C9R,SAA3C,CAAqD,SAArD;AACH,aAFD,CAEE,OAAO1jB,GAAP,EAAY,CAAE;AACnB;;;;;;;;;;;;;;;;;;;;;QC5BQy1B,uBAAAA,uBAFZ,wCAAgB,UAAhB,WACA,8BAAO9C,OAAP;AAGG,8BAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;+BAEDw4B,qCAAaI,UAAUznB,UAAU;AAAA;;AAE7Bjd,cAAE,KAAK8L,OAAP,EAAgBjF,EAAhB,CAAmB,OAAnB,EAA4B,KAA5B,EAAmC,UAACC,KAAD,EAAW;AAC1CA,sBAAMC,cAAN;AACA,oBAAIogC,OAAOnnC,EAAE8G,MAAMO,MAAR,CAAX;AACA,oBAAI+/B,OAAO,EAAX;AACA,oBAAIC,sBAAsB,CAA1B;AACArnC,kBAAE,MAAK8L,OAAP,EAAgBtF,IAAhB,CAAqB,KAArB,EAA4BC,IAA5B,CAAiC,UAASC,KAAT,EAAgBuf,GAAhB,EAAqB;AAClDmhB,yBAAKh4B,IAAL,CAAU,EAAE4Z,MAAMhpB,EAAEimB,GAAF,EAAOrf,IAAP,CAAY,KAAZ,CAAR,EAA4B5C,OAAOhE,EAAEimB,GAAF,EAAOrf,IAAP,CAAY,KAAZ,CAAnC,EAAV;AACA,wBAAIE,MAAMO,MAAN,IAAgB4e,GAApB,EAAyB;AACrBohB,8CAAsB3gC,KAAtB;AACH;AACJ,iBALD;AAMA1G,kBAAEsnC,QAAF,CAAWF,IAAX,EAAiB;AACbG,4BAAQ,IADK;AAEbC,4BAAQ,IAFK;AAGbH,yCAAqBA,mBAHR;AAIbI,6CAAyB,KAJZ;AAKbC,wCAAoB,IALP;AAMbC,mCAAe,IANF;AAObC,mCAAe,IAPF;AAQbC,gCAAY,sBAAW,CAAE,CARZ;AASbC,+BAAW,IATE;AAUbC,gCAAY,sBAAW,CAAE,CAVZ;AAWbC,+BAAW,CAAC,CAACtD,QAXA,EAAjB;AAaH,aAxBD;AAyBH;;+BAEDl0B,qBAAKg0B,gBAAgB;AACjB,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;;;;;;;;;;;;;;;;;;;;QCvCQ6tB,uCAAAA,uCAFZ,uCAAgB,WAAhB,WACA,8BAAO7D,OAAP;AAGG,8CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;+CAEDw4B,qCAAaI,UAAUznB,UAAU,CAEhC;;+CAED4nB,yBAAQ;AACJ,gBAAI7kC,EAAE,KAAK8L,OAAP,EAAgB7K,EAAhB,CAAmB,OAAnB,CAAJ,EAAiC;AAC7BjB,kBAAE,KAAK8L,OAAP,EAAgBwC,QAAhB,CAAyB,UAAzB,EAAqC45B,SAArC;AACH,aAFD,MAEO;AACNlhB,wBAAQmhB,IAAR,CAAa,qCAAb;AACA;AACJ;;+CAED33B,uBAAO;AACN,iBAAKq0B,KAAL;AACA;;;;;;;;;;;;;;;;;;;;;QCZQuD,mBAAAA,mBAFZ,wCAAgB,MAAhB,WACA,wCAAOhE,OAAP;AAMG,0BAAYt4B,OAAZ,EAAqB;AAAA;;AAAA,iBAHrBu8B,IAGqB,GAHd,IAGc;AAAA,iBAFrBC,UAEqB,GAFR,IAEQ;;AACjB,iBAAKx8B,OAAL,GAAeA,OAAf;AACH;;2BAEDw4B,qCAAaI,UAAU;AACnB,iBAAK2D,IAAL,GAAY3D,QAAZ;AACA,gBAAIrkC,EAAE6wB,UAAF,CAAa,KAAKmX,IAAlB,CAAJ,EAA6B;AACzBhoC,kBAAEmQ,IAAF,CAAO,KAAK63B,IAAZ,EAAkB,KAAKC,UAAvB,EAAmC,KAAKx8B,OAAxC;AACH;AACJ;;2BAED0E,qBAAKg0B,gBAAgB;AACjB,iBAAK8D,UAAL,GAAkB9D,cAAlB;AACA,iBAAKF,YAAL,CAAkB,KAAKlqB,KAAvB;AACH;;2BAEDta,2BAAS;AACL,iBAAKgM,OAAL,GAAe,IAAf;AACA,iBAAKu8B,IAAL,GAAY,IAAZ;AACA,iBAAKC,UAAL,GAAkB,IAAlB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC9BQC,0CAAAA,0CAFZ,wCAAgB,cAAhB,WACA,8BAAOnE,OAAP;AAGG,iDAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACA,iBAAK6E,WAAL;AACH;;kDAED63B,+CAAkBpuB,OAAO;AACrB,gBAAIA,SAAS,SAAb,EAAwB;AACpBpa,kBAAE,KAAK8L,OAAP,EAAgBoF,IAAhB,CAAqB,mBAArB,EAA0C1K,IAA1C,CAA+C,uBAA/C,EAAwEmN,KAAxE;AACH,aAFD,MAEO,IAAIyG,SAAS,YAAb,EAA2B;AAC9B7a,mBAAG2H,OAAH,CAAW1H,OAAO2U,wBAAlB,EAA4C,EAA5C;AACH,aAFM,MAEA,IAAIiG,SAAS,QAAb,EAAuB;AAC1B/Z,kBAAEy7B,KAAF,CAAQ,YAAM;AAAE7zB,0BAAM2zB,UAAN,CAAiBp8B,OAAO+W,oBAAxB;AAAgD,iBAAhE,EAAkE,GAAlE;AACH,aAFM,MAEA;AACH,uBAAO,IAAP;AACH;AACD,mBAAO,KAAP;AACH;;kDAED+tB,uCAAe;AAAA;;AACX,gBAAI,KAAKlqB,KAAT,EAAgB;AACZ,qBAAKse,OAAL,GAAe,KAAKte,KAApB;AACApa,kBAAE,KAAK8L,OAAP,EAAgB28B,YAAhB,CAA6B,CAAC;AAC1B5mC,2BAAO,cADmB;AAE1B6mC,4BAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxB,4BAAI2uB,OAAOvoC,EAAEuoC,IAAF,sBAAX;AACA3uB,iCAASja,EAAE2D,GAAF,CAAMilC,IAAN,EAAY,UAAC/oB,GAAD,EAAS;AAC1B,mCAAOA,IAAIiE,OAAJ,CAAY6kB,IAAZ,MAAsB,CAAtB,GAA0B9oB,GAA1B,GAAgC,IAAvC;AACH,yBAFQ,CAAT;AAGH,qBAPyB;AAQ1BgpB,8BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,+BAAO,qBAAKvuB,KAAL,EAAY8b,KAAnB;AACH,qBAVyB;AAW1B7W,6BAAS,iBAACjF,KAAD,EAAW;AAChB,4BAAI,MAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B/Z,8BAAEmO,KAAF,CAAQ,YAAM;AACVuE,yCAASC,MAAT,CAAgB,MAAKlH,OAArB;AACH,6BAFD;AAGA,kCAAKkvB,gBAAL,CAAsB,qBAAK5gB,KAAL,EAAYgc,GAAZ,GAAkB,qBAAKhc,KAAL,EAAYgc,GAA9B,GAAoC,qBAAKhc,KAAL,EAAY+b,EAAtE;AACA,0CAAY,qBAAK/b,KAAL,EAAYA,KAAxB;AACH,yBAND,MAMO;AACH,mCAAO,EAAP;AACH;AACJ;AArByB,iBAAD,EAsB1B;AACCvY,2BAAO,eADR;AAEC6mC,4BAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxBA,iCAASja,EAAE2D,GAAF,CAAM,MAAK+0B,OAAX,EAAoB,UAACoQ,MAAD,EAAY;AACrC,mCAAQA,OAAOnyB,OAAP,IAAkBmyB,OAAO1hC,QAAP,CAAgB0c,OAAhB,CAAwB6kB,IAAxB,KAAiC,CAApD,GAAyDG,OAAO1hC,QAAhE,GAA2E,IAAlF;AACH,yBAFQ,CAAT;AAGH,qBANF;AAOCyhC,8BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,4BAAI5gC,OAAO1H,EAAEmG,IAAF,CAAO,MAAKkyB,OAAZ,EAAqB,EAAEtxB,UAAUgT,KAAZ,EAArB,CAAX;AACA,+BAAUrS,KAAKlE,IAAf,WAAyBkE,KAAK6O,KAA9B,UAAwC7O,KAAKX,QAA7C;AACH,qBAVF;AAWCiY,6BAAS,iBAACjF,KAAD,EAAW;AAChB,wCAAcA,KAAd;AACH;AAbF,iBAtB0B,EAoC1B;AACCvY,2BAAO,qBADR;AAEC6mC,4BAAQ,gBAASC,IAAT,EAAe1uB,QAAf,EAAyB;AAC7BA,iCAASja,EAAE2D,GAAF,wBAAc,UAAColC,KAAD,EAAW;AAC9B,mCAAO1oC,EAAE+N,IAAF,CAAO26B,MAAMnsB,KAAN,CAAY,GAAZ,CAAP,EAAyB,UAACrR,IAAD,EAAU;AACtC,uCAAOA,KAAKuY,OAAL,CAAa6kB,IAAb,MAAuB,CAA9B;AACH,6BAFM,IAEFI,KAFE,GAEM,IAFb;AAGH,yBAJQ,CAAT;AAKH,qBARF;AASCF,8BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,4BAAIvuB,SAAS,QAAb,EAAuB;AACnB;AACH;AACD,4BAAI4uB,iBAAe5uB,KAAf,MAAJ;AACA,+BAAU0e,QAAQzZ,OAAR,CAAgB2pB,QAAhB,CAAV,WAAyCA,QAAzC;AACH,qBAfF;AAgBC3pB,6BAAS,iBAACjF,KAAD,EAAW;AAChB,4BAAI,MAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B,mCAAO,QAAQA,KAAR,GAAgB,IAAvB;AACH,yBAFD,MAEO;AACH,mCAAO,EAAP;AACH;AACJ;AAtBF,iBApC0B,CAA7B,EA2DI;AACAiP,8BAAUrpB,EAAE,KAAK8L,OAAP,EAAgBsH,IAAhB,CAAqB,yBAArB,EAAgD5M,IAAhD,CAAqD,YAArD,CADV;AAEAtE,8BAAU1C,OAAO8W;AAFjB,iBA3DJ;AA+DH,aAjED,MAiEO;AACH,qBAAKxW,MAAL;AACH;AACJ;;kDAEDk7B,6CAAiB7E,IAAI;AAAA;;AAChBA,cAAD,IAAS91B,EAAEy7B,KAAF,CAAQ,YAAM;AACnB,oBAAImN,KAAKhhC,MAAM0yB,kBAAN,CAAyB,OAAK7uB,OAA9B,CAAT;AACA7D,sBAAM+yB,gBAAN,CAAuB,OAAKlvB,OAA5B,EAAqCm9B,KAAK9S,EAA1C;AACH,aAHQ,EAGN,GAHM,CAAT;AAIH;;kDAEDxlB,qCAAc;AAAA;;AAEVtQ,cAAEoG,IAAF,CAAOpG,EAAE6oC,MAAF,CAAS7oC,EAAE8oC,MAAF,sBAAT,EAAyB,KAAzB,CAAP,EAAwC,UAAC/uB,KAAD,EAAW;AAC/Cpa,kBAAE,OAAK8L,OAAP,EAAgB0E,IAAhB,CAAqB,SAArB,EAAgC4J,MAAMyF,GAAtC,EAA2C,UAACrM,GAAD,EAAS;AAChDA,wBAAIzM,cAAJ;AACA/G,sBAAE,OAAK8L,OAAP,EAAgB8gB,aAAhB,CAA8BxS,MAAMA,KAApC;AACA,wBAAI6uB,KAAKhhC,MAAM0yB,kBAAN,CAAyB,OAAK7uB,OAA9B,CAAT;AACA,wBAAIqqB,KAAK/b,MAAMgc,GAAN,GAAYhc,MAAMgc,GAAlB,GAAwBhc,MAAM+b,EAAvC;AACAA,0BAAOluB,MAAM+yB,gBAAN,CAAuB,OAAKlvB,OAA5B,EAAqCm9B,KAAK9S,EAA1C,CAAP;AACA91B,sBAAEmO,KAAF,CAAQ,YAAM;AACVuE,iCAASC,MAAT,CAAgB,OAAKlH,OAArB;AACH,qBAFD;AAGH,iBATD;AAUH,aAXD;AAaH;;kDAEDhM,2BAAS;AACL,gBAAI;AACAE,kBAAE,KAAK8L,OAAP,EAAgB28B,YAAhB,CAA6B,SAA7B;AACH,aAFD,CAEE,OAAOh3B,GAAP,EAAY,CAAE;AACnB;;;;;;;;;;;;;;;;;;;;;QCzHQ23B,wCAAAA,wCAFZ,wCAAgB,aAAhB,WACA,8BAAOhF,OAAP;AAGG,+CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;gDAEDw4B,qCAAaI,UAAUznB,UAAU;AAC7Bjd,cAAE,KAAK8L,OAAP,EAAgB82B,QAAhB;AACH;;;;;;;;;;;;;;;;;;;;;QCTQyG,8CAAAA,8CAFZ,uCAAgB,oBAAhB,WACA,8BAAOjF,OAAP;AAGG,qDAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;sDAEDw4B,qCAAaI,UAAUznB,UAAU,CAEhC;;sDAED4nB,uBAAMzjB,SAAS;AAAA;;AACX/gB,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgB5L,QAAhB,CAAyB;AACrBopC,4BAAQ,MADa;AAErBloB,6BAASA;AAFY,iBAAzB;AAIH,aALD;AAMH;;sDAED5Q,uBAAO;AACH,iBAAKq0B,KAAL,CAAW,KAAKzqB,KAAL,GAAa,KAAKA,KAAlB,GAA0B7R,MAArC;AACH;;;;;;;;;;;;;;;;;;;;;QCrBQghC,6CAAAA,6CAFZ,uCAAgB,mBAAhB,WACA,8BAAOnF,OAAP;AAGG,oDAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;qDAEDw4B,qCAAaI,UAAUznB,UAAU,CAEhC;;qDAED4nB,uBAAMyE,QAAQ;AAAA;;AACVjpC,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgB5L,QAAhB,CAAyB;AACrB2G,wBAAI,OADiB;AAErByiC,4BAAQA;AAFa,iBAAzB;AAIH,aALD;AAMH;;qDAED94B,uBAAO;AACH,iBAAKq0B,KAAL,CAAW,KAAKzqB,KAAL,GAAa,KAAKA,KAAlB,GAA0B,MAArC;AACH;;;;;;;;;;;;;;;;;;;;;QCrBQovB,wCAAAA,wCAFZ,uCAAgB,aAAhB,WACA,8BAAOpF,OAAP;AAGG,+CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;gDAEDw4B,qCAAaI,UAAUznB,UAAU,CAEhC;;gDAED4nB,uBAAMyE,QAAQ;AAAA;;AACVjpC,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgB5L,QAAhB,CAAyB;AACrBopC,4BAAQA;AADa,iBAAzB;AAGH,aAJD;AAKH;;gDAED94B,uBAAO;AACH,iBAAKq0B,KAAL,CAAW,KAAKzqB,KAAL,GAAa,KAAKA,KAAlB,GAA0B,MAArC;AACH;;;;;;;;;;;;;;;;;;;;;QCnBQqvB,qCAAAA,qCAFZ,wCAAgB,UAAhB,WACA,8BAAOrF,OAAP;AAGG,4CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;6CAEDw4B,qCAAaI,UAAUznB,UAAU;AAAA;;AAC7B5c,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgB49B,KAAhB,CAAsB;AACrB7iC,wBAAI,OADiB;AAElB+8B,4BAAQ,IAFU;AAGlB+F,4BAAQ,IAHU;;AAKlBlhB,8BAAUic,WAAWA,QAAX,GAAsB,cALd;AAMlBkF,4BAAQ,GANU;AAOlB9N,2BAAO;AACHjoB,8BAAM,GADH;AAEHoxB,8BAAM;AAFH,qBAPW;AAWlB4E,4BAAQ,kBAAM,CAEb,CAbiB;AAclBC,+BAAW,qBAAM,CAEhB;AAhBiB,iBAAtB;AAkBH,aAnBD;AAqBH;;;;;;;;;;;;;;;;;;;;;QC7BQC,mCAAAA,mCAFZ,uCAAgB,QAAhB,WACA,8BAAO3F,OAAP;AAGG,0CAAYt4B,OAAZ,EAAqB;AAAA;;AACjB,iBAAKA,OAAL,GAAeA,OAAf;AACH;;2CAEDw4B,qCAAaI,UAAUznB,UAAU,CAEhC;;2CAED4nB,yBAAQ;AAAA;;AACJxkC,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK8L,OAAP,EAAgBtF,IAAhB,CAAqB,OAArB,EAA8BwjC,GAA9B;AACH,aAFD;AAGH;;2CAEDx5B,uBAAO;AACH,iBAAKq0B,KAAL;AACH;;;;;;;;;;;;;;;;;;ACtBL,QAAMoF,WAAW;AACb,eAAO,EADM;AAEb,eAAO,CAFM;AAGb,iBAAS,EAHI;AAIb,iBAAS,EAJI;AAKb,cAAM,EALO;AAMb,gBAAQ,EANK;AAOb,iBAAS,EAPI;AAQb,gBAAQ,EARK;AASb,qBAAa,CATA;AAUb,kBAAU;AAVG,KAAjB;;AAaA,aAASC,UAAT,CAAoBpjC,KAApB,EAA2B;;AAEvB,YAAIA,SAASA,MAAMwK,OAAN,IAAiB,KAAK64B,QAAL,CAAcvP,IAAxC,IAAgD9zB,MAAMsjC,MAAN,IAAgB,KAAKD,QAAL,CAAcE,GAA9E,IAAqFvjC,MAAMwjC,QAAN,IAAkB,KAAKH,QAAL,CAAcI,KAArH,IAA8HzjC,MAAMijB,OAAN,IAAiB,KAAKogB,QAAL,CAAcpgB,OAAjK,EAA0K;AACtK,iBAAKygB,cAAL,CAAoB1jC,KAApB;AACH,SAFD,MAEO,CAEN;;AAED,eAAO,IAAP;AACH;;QAEY2jC,6BAAAA;;;;;qCAETj6B,qBAAKk6B,SAASC,QAA4B;AAAA,gBAApB9qB,GAAoB,uEAAd,EAAc;AAAA,gBAAV+qB,QAAU;;AAEtC,gBAAIC,aAAa,cAAjB;AACA,gBAAIH,QAAQI,UAAZ,EAAwB;AACpBD,6BAAa,YAAb;AACH,aAFD,MAEO,IAAIH,QAAQK,YAAR,IAAwBL,QAAQM,IAAR,KAAiBC,YAAYC,MAAzD,EAAiE;AACpEL,6BAAa,cAAb;AACH;;AAKDH,oBAAQF,cAAR,GAAyBE,QAAQG,UAAR,CAAzB;AACAH,oBAAQF,cAAR,CAAuBW,YAAvB,GAAsCN,UAAtC;;AAGAH,oBAAQG,UAAR,IAAsBX,UAAtB;AACA,gBAAIngB,UAAU1pB,EAAE+qC,SAAF,CAAYvrB,GAAZ,IAAmBA,GAAnB,GAA0BA,IAAIne,MAAJ,KAAe,CAAf,GAAmBme,IAAIwI,UAAJ,CAAe,CAAf,CAAnB,GAAuC4hB,SAASpqB,GAAT,CAA/E;AACA,gBAAIxf,EAAEyF,WAAF,CAAcikB,OAAd,CAAJ,EAA4B;AACxB/C,wBAAQmhB,IAAR;AACH;AACDuC,oBAAQP,QAAR,GAAmB;AACfvP,sBAAMv6B,EAAEk5B,QAAF,CAAWqR,QAAX,EAAqB,MAArB,CADS;AAEfP,qBAAKhqC,EAAEk5B,QAAF,CAAWqR,QAAX,EAAqB,KAArB,CAFU;AAGfL,uBAAOlqC,EAAEk5B,QAAF,CAAWqR,QAAX,EAAqB,OAArB,CAHQ;AAIf7gB,yBAASA;AAJM,aAAnB;AAMH;;qCAEDjqB,yBAAO4qC,SAASC,QAAQ;AAEpBD,oBAAQA,QAAQF,cAAR,CAAuBW,YAA/B,IAA+CT,QAAQF,cAAvD;AACAE,oBAAQF,cAAR,GAAyB,IAAzB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDL,QAAIpkC,KAAKC,SAAT;;QAWaglC,8BAAAA;;;;;sCACTC,yBAAOlxB,OAAO;AACV,mBAAOA,SAASA,MAAMmxB,WAAN,EAAhB;AACH;;;;;QAOQC,8BAAAA;;;;;sCACTF,yBAAOlxB,OAAO;AACV,mBAAOA,SAASA,MAAMqJ,WAAN,EAAhB;AACH;;;;;QAOQgoB,6BAAAA;;;;;qCACTH,yBAAOlxB,OAAuC;AAAA,gBAAhChX,MAAgC,uEAAvB,qBAAuB;;AAC1C,mBAAO/C,EAAE+qC,SAAF,CAAY/qC,EAAEqrC,QAAF,CAAWtxB,KAAX,CAAZ,IAAiCpa,EAAEoD,MAAF,CAASP,IAAT,CAAc,IAAI8oC,IAAJ,CAASvxB,KAAT,CAAd,EAA+BhX,MAA/B,CAAjC,GAA2EgX,QAAQA,KAAR,GAAgB,EAAlG;AACH;;;;;QAOQwxB,+BAAAA;;;;;uCACTN,yBAAOlxB,OAA4B;AAAA,gBAArBhX,MAAqB,uEAAZ,UAAY;;AAC/B,mBAAO/C,EAAEwrC,QAAF,CAAWxrC,EAAEqrC,QAAF,CAAWtxB,KAAX,CAAX,IAAgCpa,EAAEoD,MAAF,CAASpC,MAAT,CAAgBoZ,KAAhB,EAAuBhX,MAAvB,CAAhC,GAAkEgX,QAAQA,KAAR,GAAgB,EAAzF;AACH;;;;;QASQ0xB,gCAAAA;;;;;wCACTR,yBAAOlxB,OAAO;AACV,mBAAOA,QAAQhU,GAAGhD,MAAH,CAAUgX,KAAV,EAAiB,OAAjB,CAAR,GAAoC,EAA3C;AACH;;;;;QAMQ2xB,gCAAAA;;;;;wCACTT,yBAAOlxB,OAAO;AACV,mBAAOA,QAAQ4e,OAAO/wB,MAAMiwB,QAAN,CAAe9d,KAAf,CAAP,CAAR,GAAwC,EAA/C;AACH;;;;;QAGQ4xB,6BAAAA;;;;;qCACTV,yBAAOlxB,OAAOiQ,MAAM;AAChB,mBAAOhqB,EAAEi1B,OAAF,CAAUlb,KAAV,IAAmB/Z,EAAE4rC,MAAF,CAAS7xB,KAAT,EAAgBiQ,IAAhB,CAAnB,GAA2CjQ,KAAlD;AACH;;;;;QAGQ8xB,kCAAAA;;;;;0CACTZ,yBAAOlxB,OAAOhT,UAAU;AACpB,gBAAI/G,EAAEi1B,OAAF,CAAUlb,KAAV,KAAoBhT,QAAxB,EAAkC;AAC9B,oBAAIW,OAAO1H,EAAEmG,IAAF,CAAO4T,KAAP,EAAc,EAAEhT,UAAUA,QAAZ,EAAd,CAAX;AACA,oBAAIW,IAAJ,EAAU;AACN,4BAAQA,IAAR,SAAiB1H,EAAE+K,MAAF,CAASgP,KAAT,EAAgB,EAAEhT,UAAUA,QAAZ,EAAhB,CAAjB;AACH;AACJ;AACD,mBAAOgT,KAAP;AACH;;;;;QAGQ+xB,sCAAAA;;;;;8CACTb,yBAAOlxB,OAAOhT,UAAU;AACpB,gBAAI/G,EAAEi1B,OAAF,CAAUlb,KAAV,KAAoBhT,QAAxB,EAAkC;AAC9B,oBAAI/G,EAAEk5B,QAAF,CAAWnf,KAAX,EAAkBhT,QAAlB,CAAJ,EAAiC;AAC7B,4BAAQA,QAAR,SAAqB/G,EAAEu4B,OAAF,CAAUxe,KAAV,EAAiBhT,QAAjB,CAArB;AACH;AACJ;AACD,mBAAOgT,KAAP;AACH;;;;;QAGQgyB,qCAAAA;;;;;6CACTd,yBAAOlxB,OAAO;AACV,gBAAI/Z,EAAEi1B,OAAF,CAAUlb,KAAV,CAAJ,EAAsB;AAClB,oBAAIiyB,aAAahsC,EAAEmG,IAAF,CAAO4T,KAAP,EAAc,EAAEvW,MAAM,KAAR,EAAd,CAAjB;AACA,oBAAIwoC,UAAJ,EAAgB;AACZ,4BAAQA,UAAR,SAAuBhsC,EAAE+K,MAAF,CAASgP,KAAT,EAAgB,EAAEvW,MAAM,KAAR,EAAhB,CAAvB;AACH;AACJ;AACD,mBAAOuW,KAAP;AACH;;;;;QAGQkyB,iCAAAA;;;;;yCACThB,yBAAOlxB,OAAO;AACV,gBAAIrS,OAAO1H,EAAEmG,IAAF,CAAO+B,OAAOC,QAAd,EAAwB,EAAEpB,UAAUgT,KAAZ,EAAxB,CAAX;AACA,gBAAIrS,IAAJ,EAAU;AACN,uBAAOA,KAAKlE,IAAZ;AACH;AACD,mBAAOuW,KAAP;AACH;;;;;QAGQmyB,8BAAAA;;;;;sCACTjB,yBAAOlxB,OAAOoyB,WAAW;AACrB,gBAAI1T,OAAJ,EAAa;AACTz4B,kBAAEmO,KAAF,CAAQ,YAAM;AACVsqB,4BAAQ2T,GAAR,CAAYD,SAAZ;AACH,iBAFD;AAGH;AACD,mBAAOpyB,KAAP;AACH;;;;;QAGQsyB,kCAAAA;;;;;0CACTpB,yBAAOlxB,OAAO;AACV,mBAAO0e,QAAQzZ,OAAR,CAAgBjF,KAAhB,CAAP;AACH;;;;;QAGQuyB,uCAAAA;;;;;+CACTrB,yBAAOsB,YAAYvpB,MAAM;AACrB,gBAAIupB,cAAcA,WAAWlrC,MAAX,IAAqB,CAAvC,EAA0C;AACtC,oBAAIrB,EAAE+N,IAAF,CAAOw+B,UAAP,EAAmB;AAAA,2BAAM,CAACvpB,OAAOgC,GAAGhC,IAAH,IAAWA,IAAlB,GAAyB,IAA1B,KAAmCgC,GAAGwnB,MAAH,CAAUnrC,MAAV,IAAoB,CAA7D;AAAA,iBAAnB,CAAJ,EAAwF;AACpF,2BAAO,EAAP;AACH;AACJ;AACD,mBAAO,MAAP;AACH;;;;;QAGQorC,qCAAAA;;;;;6CACTxB,yBAAOyB,WAAW;AACd,gBAAIC,KAAK3sC,EAAEsD,GAAF,CAAMopC,UAAUF,MAAhB,EAAwB;AAAA,uBAAKI,EAAEppC,IAAF,GAASopC,EAAEppC,IAAX,GAAkBopC,EAAE7lC,QAAzB;AAAA,aAAxB,CAAT;AACA,wBAAU/G,EAAE+a,IAAF,CAAO4xB,EAAP,EAAW,GAAX,CAAV,GAA4BA,GAAGtrC,MAA/B,eAAyCqrC,UAAU1pB,IAAV,IAAkB,OAAlB,GAA4B,KAA5B,GAAoC,KAA7E,YAAuF0pB,UAAU1pB,IAAV,IAAkB,OAAlB,GAA4B0pB,UAAUG,WAAtC,GAAoDH,UAAUlpC,IAArJ;AACH;;;;;QAGQspC,wCAAAA;;;;;gDACT7B,yBAAOsB,YAA4B;AAAA,gBAAhBvpB,IAAgB,uEAAT,OAAS;;AAC/B,mBAAOhjB,EAAE6oC,MAAF,CAAS0D,UAAT,EAAqB,EAAEvpB,MAAMA,IAAR,EAArB,CAAP;AACH;;;;;QAGQ+pB,mCAAAA;;;;;2CAET9B,yBAAOyB,WAAW;AACd,gBAAIxP,MAAMl9B,EAAEmG,IAAF,uBAAa,EAAE4T,OAAO2yB,UAAUlpC,IAAnB,EAAb,CAAV;AACA,mBAAO05B,MAAMA,IAAI8P,KAAV,GAAkB,EAAzB;AACH;;;;;QAGQC,iCAAAA;;;;;yCAEThC,yBAAOyB,WAAW;AACd,gBAAIQ,KAAKzM,UAAU0M,GAAV,CAAcT,UAAUlpC,IAAxB,CAAT;AACA,gBAAI4pC,oBAAkBF,GAAG,CAAH,CAAlB,UAA4BA,GAAG,CAAH,CAA5B,UAAsCA,GAAG,CAAH,CAAtC,WAAJ;AACA,gBAAIF,mBAAgB,MAAME,GAAG,CAAH,CAAtB,YAAgC,MAAMA,GAAG,CAAH,CAAtC,YAAgD,MAAMA,GAAG,CAAH,CAAtD,UAAJ;;AAEA,gBAAIhQ,MAAMl9B,EAAEmG,IAAF,uBAAa,EAAE4T,OAAO2yB,UAAUlpC,IAAnB,EAAb,CAAV;AACA,mBAAO,CAAC05B,GAAD,GAAO,EAAE,oBAAoBkQ,OAAtB,EAA+B,SAASJ,KAAxC,EAAP,GAAyD,EAAhE;AACH;;;;;QAGQK,8BAAAA;;;;;sCACTpC,yBAAOlxB,OAAO;AACV,gBAAIA,KAAJ,EAAW;AACP,uBAAO/Z,EAAEgf,OAAF,CAAUjF,KAAV,EAAiB,KAAjB,EAAwB,OAAxB,CAAP;AACH;AACD,mBAAOA,KAAP;AACH;;;;;QAGQuzB,iCAAAA;;;;;yCACTrC,yBAAOlxB,OAAOwzB,aAAaC,mBAAmB;AAC1C,gBAAIzzB,KAAJ,EAAW;AACP,uBAAOnS,MAAMo1B,QAAN,CAAejjB,KAAf,CAAP;AACH;AACD,mBAAOA,KAAP;AACH;;;;;;;;;;;;;;;;;;;;;QCvMQ0zB,6BAAAA;AAOT,sCAAc;AAAA;;AAAA;;AACV,iBAAKxuC,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOkW,6BAApB,EAAmD,UAAChW,OAAD,EAAa;AAC7E,sBAAKiI,EAAL,GAAUjI,QAAQiI,EAAlB;AACA,sBAAKN,MAAL,GAAc3H,QAAQ2H,MAAtB;;AAEArH,kBAAE,MAAKqH,MAAP,EAAeqiC,KAAf,CAAqB;AACjBA,2BAAO,MAAKA,KADK;AAEjBqE,+BAAW,IAFM;AAGjBnK,4BAAQ,KAHS;AAIjBoK,+BAAW,KAJM;;AAOjBrE,4BAAQ,IAPS;AAQjBlhB,8BAAU,aARO;AASjBmhB,4BAAQ,GATS;AAUjBqE,4BAAQ,UAVS;AAWjBnS,2BAAO;AACHjoB,8BAAM,GADH;AAEHoxB,8BAAM;AAFH,qBAXU;AAejB4E,4BAAQ,kBAAM;AACV7pC,0BAAEoN,GAAF,CAAM,yBAAN,EAAiC;AAC7B8gC,iCAAK,MAAKvmC;AADmB,yBAAjC,EAEG,UAACqF,IAAD,EAAU;AACT,gCAAIA,KAAK5D,OAAT,EAAkB;AACd,sCAAK+kC,OAAL,GAAenhC,KAAKA,IAApB;AACH,6BAFD,MAEO;AACH7D,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AACJ,yBARD;AASH;AAzBgB,iBAArB,EA0BG08B,KA1BH,CA0BS,MA1BT;AA2BH,aA/BgB,CAAjB;AAgCH;;qCAKD5pC,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC/CQquC,6BAAAA;;;;iBAETC,SAAS;iBACTC,OAAO;;;;;;;;iBAMP/yB,WAAWtT,MAAM6uB,WAAN;;;qCAKX3wB,+BAAW;AAAA;;AACPnG,cAAE,KAAKuuC,SAAP,EACK7F,MADL,CACY;AACJ8F,+BAAe,CADX;AAEJpO,uBAAO,KAFH;AAGJqO,mCAAmB,IAHf;AAIJC,+BAAe,KAJX;AAKJC,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5BlT,2BAAO7f,IAAP,CAAYqjC,GAAZ,GAAkBvuC,EAAEq6B,QAAF,CAAW,aAAX,CAAlB;AACAtP,2BAAO7f,IAAP,CAAYsjC,KAAZ,GAAoBzjB,OAAO7f,IAAP,CAAYnE,QAAZ,GAAuB,MAAvB,GAAgC,SAApD;AACA,0BAAKinC,MAAL,CAAYj/B,IAAZ,CAAiBgc,OAAO7f,IAAxB;AACAlL,sBAAEmO,KAAF,CAAQ,YAAM;AAAExO,0BAAE,MAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AAAiC,qBAAjD;AACH,iBAVG;AAWJykB,6BAAa;AACTC,gCAAY,oBAACzQ,IAAD,EAAU;AAClB,4BAAID,WAAW;AACX2Q,qCAAS;AADE,yBAAf;AAGAjvC,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAU1E,KAAjB,EAAwB,UAAC5B,KAAD,EAAQ6E,IAAR,EAAiB;AACrC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,6BAAtB,CAAP,EAAsD,EAAEznC,UAAUmE,KAAKnE,QAAjB,EAAtD,CAAL,EAAyF;AACrFk3B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,0EAAoCuH,KAAK1H,IAAzC,UAAkD0H,KAAKnE,QAAvD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQApH,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAUjE,QAAjB,EAA2B,UAACrC,KAAD,EAAQ6E,IAAR,EAAiB;AACxC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,SAAhB;AAAA,6BAAtB,CAAP,EAAyD,EAAEhrC,MAAM0H,KAAK1H,IAAb,EAAzD,CAAL,EAAoF;AAChFy6B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,2EAAqCuH,KAAKvH,KAA1C,UAAoDuH,KAAK1H,IAAzD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQA,+BAAOy6B,QAAP;AACH,qBAtBQ;AAuBT19B,yBAAK;AAvBI;AAXT,aADZ;AAsCAZ,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB;AACnB7iC,oBAAI,OADe;AAEnB+8B,wBAAQ,IAFW;AAGnB+F,wBAAQ,IAHW;AAInBlhB,0BAAU,cAJS;AAKnBmhB,wBAAQ,GALW;AAMnB9N,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH,iBANY;AAUnB6E,2BAAW,qBAAM;AACb9pC,sBAAE,MAAK8uC,cAAP,EAAuBj8B,KAAvB;AACH;AAZkB,aAAvB;AAcH;;qCAEDs8B,2DAAwBroC,OAAO;AAC3B,gBAAIA,MAAMijB,OAAN,KAAkB,EAAlB,IAAwB,CAAC/pB,EAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,YAAzB,CAA7B,EAAqE;AACjE,oBAAIpe,MAAMtqB,EAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,EAAV;AACA,oBAAIriB,MAAMs0B,MAAN,CAAajS,GAAb,CAAJ,EAAuB;AACnB,wBAAI,CAACjqB,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,KAAKmF,MAAd,EAAsB;AAAA,+BAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,qBAAtB,CAAP,EAAsD,EAAErS,MAAMlS,GAAR,EAAtD,CAAL,EAA2E;AACvE,6BAAK+jB,MAAL,CAAYj/B,IAAZ,CAAiB;AACbw/B,iCAAKvuC,EAAEq6B,QAAF,CAAW,aAAX,CADQ;AAEbmU,mCAAO,MAFM;AAGbrS,kCAAMlS;AAHO,yBAAjB;AAKAtqB,0BAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACH;AACJ;AACJ;AACJ;;qCAEDzW,uBAAO;AACH7T,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;qCAED0F,iDAAmB7jC,MAAM;AACrB,iBAAK8iC,MAAL,GAAchuC,EAAE+K,MAAF,CAAS,KAAKijC,MAAd,EAAsB,EAAEO,KAAKrjC,KAAKqjC,GAAZ,EAAtB,CAAd;AACH;;qCAEDS,yCAAgB;AACZ,iBAAKljC,MAAL;AACH;;qCAEDA,2BAAS;AACL,iBAAKkiC,MAAL,GAAc,EAAd;AACA,iBAAKC,IAAL,GAAY,EAAZ;AACAtuC,cAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACAtqB,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;qCAED4F,uCAAe;AAAA;;AAEX,gBAAI,KAAKjB,MAAL,CAAY3sC,MAAZ,KAAuB,CAA3B,EAA8B;AAC1ByH,uBAAOE,KAAP,CAAa,uBAAb;AACA;AACH;;AAED,iBAAKkmC,KAAL,GAAavvC,EAAEgjC,IAAF,8BAAoC;AAC7CznB,0BAAUtT,MAAM6uB,WAAN,EADmC;AAE7C9N,sBAAS,KAAKzN,QAAd,eAAgC,KAAKi0B,IAAL,CAAU7nC,EAA1C,aAAoD,KAAKwmC,OAAL,CAAaxmC,EAFpB;AAG7CA,oBAAI,KAAKwmC,OAAL,CAAaxmC,EAH4B;AAI7C2mC,sBAAM,KAAKA,IAJkC;AAK7CvV,sBAAM9wB,MAAM4wB,OAAN,CAAc,KAAKsV,OAAL,CAAa5mC,OAA3B,CALuC;AAM7Ce,uBAAOjI,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,UAA9D,EAA0EyX,IAA1E,GAAiFhB,KAAjF,EANsC;AAO7CrR,0BAAU1I,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,SAAtB;AAAA,iBAA5B,EAA6DlrC,GAA7D,CAAiE,MAAjE,EAAyEyX,IAAzE,GAAgFhB,KAAhF,EAPmC;AAQ7CxD,uBAAOvW,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,MAA9D,EAAsEyX,IAAtE,GAA6EhB,KAA7E;AARsC,aAApC,EASV,UAACpN,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK+C,MAAL;AACAhD,2BAAOC,OAAP,CAAe,WAAf;AACH,iBAHD,MAGO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAhBY,CAAb;AAiBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCzHQ0iC,wBAAAA;gCAaTC,mCAAYjL,UAAUznB,UAAU;AAC5B,iBAAK2yB,QAAL;AACH;;AAKD,iCAAc;AAAA;;AAAA;;AAAA,iBAlBdC,QAkBc,GAlBH,EAkBG;AAAA,iBAhBdpM,OAgBc,GAhBJx7B,MAAM0uB,MAAN,EAgBI;AAAA,iBAfdpb,QAec,GAfHtT,MAAM6uB,WAAN,EAeG;AAAA,iBAddpuB,MAcc,GAdL,CAcK;AAAA,iBAbdV,OAac,GAbJP,MAAMO,OAaF;AAAA,iBAZdF,SAYc,GAZFL,MAAMK,SAYJ;AAAA,iBAXdQ,KAWc,GAXNb,MAAMa,KAWA;;AAAA;;AACV,iBAAKhJ,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO8H,6BAApB,EAAmD,UAAC5H,OAAD,EAAa;AAC7E,uBAAKowC,aAAL,MAAsBpwC,QAAQ6H,OAA9B;AACA,uBAAK0G,SAAL,CAAe,GAAf;AACH,aAHgB,CAAjB;AAIH;;gCAKDnO,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;gCAED6vC,+BAAW;AAAA;;AACP,gBAAI,CAAC,KAAKJ,IAAV,EAAgB;AACZ;AACH;AACDxvC,cAAEoN,GAAF,CAAM,2BAAN,EAAmC;AAC/BzF,oBAAI,KAAK6nC,IAAL,CAAU7nC,EADiB;AAE/BooC,sBAAM,CAFyB;AAG/B9iC,sBAAM;AAHyB,aAAnC,EAIG,UAACD,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AAAA;AACd,+BAAKymC,QAAL,GAAgB7iC,KAAKA,IAAL,CAAUzF,OAA1B;AACA,4BAAI2mC,MAAMjmC,MAAMkvB,QAAN,CAAe,KAAf,CAAV;AACA,4BAAI+W,GAAJ,EAAS;AACL7tC,8BAAEmO,KAAF,CAAQ,YAAM;AACV,uCAAK/C,sBAAL,CAA4ByiC,GAA5B;AACH,6BAFD;AAGH;AACD3uC,2BAAG2H,OAAH,CAAW1H,OAAOsW,0BAAlB,EAA8C;AAC1CwzB,oCAAQ,OADkC;AAE1CuG,sCAAU,OAAKA;AAF2B,yBAA9C;AARc;AAYjB,iBAZD,MAYO;AACH1mC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aApBD;AAqBH;;gCAKD7G,+BAAW;AAAA;;AACP,iBAAK0+B,KAAL;;AAGA7kC,cAAE,4BAAF,EAAgC6G,EAAhC,CAAmC,YAAnC,EAAiD,gDAAjD,EAAmG,UAACC,KAAD,EAAW;AAC1GA,sBAAMC,cAAN;AACA,oBAAIC,KAAKhH,EAAE8G,MAAMG,aAAR,CAAT;AACA,oBAAIinC,MAAMjmC,MAAMkvB,QAAN,CAAe,KAAf,EAAsBnwB,GAAGJ,IAAH,CAAQ,MAAR,CAAtB,CAAV;AACAsnC,uBAAO3uC,GAAG2H,OAAH,CAAW1H,OAAOkW,6BAAlB,EAAiD;AACpD/N,wBAAIumC,GADgD;AAEpD7mC,4BAAQP,MAAMG;AAFsC,iBAAjD,CAAP;AAIH,aARD;;AAUAjH,cAAE,4BAAF,EAAgC6G,EAAhC,CAAmC,UAAnC,EAA+C,UAA/C,EAA2D,UAACC,KAAD,EAAW;AAClE,oBAAIA,MAAMwK,OAAV,EAAmB;AACf,wBAAI48B,MAAMluC,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,SAA5B,CAAV;AACA,wBAAI0L,KAAKtS,EAAE8G,MAAMG,aAAR,EAAuBT,IAAvB,CAA4B,qBAA5B,CAAT;AACA,wBAAI+E,OAAOlL,EAAEmG,IAAF,CAAO,OAAKqpC,QAAZ,EAAsB,EAAEloC,IAAI,CAACumC,GAAP,EAAtB,CAAX;AACA,wBAAI,OAAKlmC,OAAL,IAAgBuD,KAAK8E,OAAL,CAAajJ,QAAb,IAAyB,OAAKU,SAAL,CAAeV,QAA5D,EAAsE;AAClE,+BAAK4oC,WAAL,CAAiBzkC,IAAjB,EAAuB+G,EAAvB;AACH;AACJ;AACJ,aATD;;AAWAtS,cAAE,4BAAF,EAAgC6G,EAAhC,CAAmC,OAAnC,EAA4C,UAA5C,EAAwD,UAACC,KAAD,EAAW;AAC/D,uBAAKuL,cAAL,GAAsBrS,EAAE8G,MAAMG,aAAR,CAAtB;AACH,aAFD;;AAIA,iBAAK0J,WAAL;AACH;;gCAEDA,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,GAA5B,EAAiC,UAACgD,GAAD,EAAS;AACtCA,oBAAIzM,cAAJ;AACA/G,kBAAE,kBAAF,EAAsBiM,QAAtB,QAAsC,GAAtC,EAA2C;AACvCvD,4BAAQ;AAD+B,iBAA3C;AAGA,uBAAKunC,SAAL,CAAeC,UAAf,CAA0Br9B,KAA1B;AACH,aAND,EAMGrC,IANH,CAMQ,SANR,EAMmB,QANnB,EAM6B,UAACgD,GAAD,EAAS;AAClCA,oBAAIzM,cAAJ;AACA/G,kBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,OAAKgH,sBAAL,CAA4B,IAA5B,CAA/B,EAAkE,GAAlE,EAAuE;AACnEvK,4BAAQ;AAD2D,iBAAvE;AAGH,aAXD,EAWG8H,IAXH,CAWQ,SAXR,EAWmB,UAXnB,EAW+B,UAACgD,GAAD,EAAS;AACpCA,oBAAIzM,cAAJ;AACA/G,kBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,OAAKgH,sBAAL,EAA/B,EAA8D,GAA9D,EAAmE;AAC/DvK,4BAAQ;AADuD,iBAAnE;AAGH,aAhBD;AAkBH;;gCAEDuK,yDAAuBC,QAAQ;AAC3B,gBAAIA,MAAJ,EAAY;AACR,oBAAI,KAAKb,cAAL,IAAuB,KAAKA,cAAL,CAAoBpF,IAApB,OAA+B,CAA1D,EAA6D;AACzD,wBAAIkG,UAAU,KAAKd,cAAL,CAAoB7L,IAApB,CAAyB,oBAAzB,CAAd;AACA,wBAAIyB,MAAM+I,mBAAN,CAA0BmC,OAA1B,CAAJ,EAAwC;AACpC,4BAAIC,OAAO,KAAKf,cAAL,CAAoBe,IAApB,CAAyB,UAAzB,CAAX;AACCA,6BAAKnG,IAAL,OAAgB,CAAjB,KAAwB,KAAKoF,cAAL,GAAsBe,IAA9C;AACH;AACJ,iBAND,MAMO;AACH,yBAAKf,cAAL,GAAsBrS,EAAE,KAAKmwC,eAAP,EAAwBhmC,QAAxB,CAAiC,gBAAjC,CAAtB;AACH;AACJ,aAVD,MAUO;AACH,oBAAI,KAAKkI,cAAL,IAAuB,KAAKA,cAAL,CAAoBpF,IAApB,OAA+B,CAA1D,EAA6D;AACzD,wBAAIiE,OAAO,KAAKmB,cAAL,CAAoBnB,IAApB,CAAyB,UAAzB,CAAX;AACCA,yBAAKjE,IAAL,OAAgB,CAAjB,KAAwB,KAAKoF,cAAL,GAAsBnB,IAA9C;AACH,iBAHD,MAGO;AACH,yBAAKmB,cAAL,GAAsBrS,EAAE,KAAKmwC,eAAP,EAAwBhmC,QAAxB,CAAiC,eAAjC,CAAtB;AACH;AACJ;AACD,mBAAO,KAAKkI,cAAZ;AACH;;gCAEDwyB,yBAAQ;AAAA;;AACJ,iBAAKoL,SAAL,GAAiB,wBAAc;AAC3BnkC,yBAAS,KAAKskC,UADa;AAE3BC,8BAAc,KAFa;AAG3B5R,wBAAQ,KAHmB;;AAQ3B6R,yBAAS,CAAC;AACFzsC,0BAAM,MADJ;AAEFylC,4BAAQ,oBAAUiH,UAFhB;AAGFC,+BAAW,YAHT;AAIFxsC,2BAAO;AAJL,iBAAD,EAKF;AACCH,0BAAM,QADP;AAECylC,4BAAQ,oBAAUmH,YAFnB;AAGCD,+BAAW,cAHZ;AAICxsC,2BAAO;AAJR,iBALE,EAUF;AACCH,0BAAM,eADP;AAECylC,4BAAQ,oBAAUoH,mBAFnB;AAGCF,+BAAW,qBAHZ;AAICxsC,2BAAO;AAJR,iBAVE,EAeF;AACCH,0BAAM,SADP;AAECylC,4BAAQ,oBAAUqH,oBAFnB;AAGCH,+BAAW,cAHZ;AAICxsC,2BAAO;AAJR,iBAfE,EAoBF;AACCH,0BAAM,iBADP;AAECylC,4BAAQ,oBAAUqH,oBAFnB;AAGCH,+BAAW,4CAHZ;AAICxsC,2BAAO;AAJR,iBApBE,EAyBF;AACCH,0BAAM,gBADP;AAECylC,4BAAQ,oBAAUsH,mBAFnB;AAGCJ,+BAAW,2CAHZ;AAICxsC,2BAAO;AAJR,iBAzBE,EA8BF,GA9BE,EA8BG;AACJH,0BAAM,MADF;AAEJylC,4BAAQ,oBAAUuH,eAFd;AAGJL,+BAAW,YAHP;AAIJxsC,2BAAO;AAJH,iBA9BH,EAmCF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAUwH,gBAFnB;AAGCN,+BAAW,kBAHZ;AAICxsC,2BAAO;AAJR,iBAnCE,EAwCF;AACCH,0BAAM,gBADP;AAECylC,4BAAQ,oBAAUyH,mBAFnB;AAGCP,+BAAW,eAHZ;AAICxsC,2BAAO;AAJR,iBAxCE,EA6CF;AACCH,0BAAM,cADP;AAECylC,4BAAQ,oBAAU0H,iBAFnB;AAGCR,+BAAW,eAHZ;AAICxsC,2BAAO;AAJR,iBA7CE,EAkDF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,gBAAC2H,MAAD,EAAY;AAChB,+BAAKnB,aAAL,CAAmB,0BAAnB;AACH,qBAJF;AAKCU,+BAAW,uBALZ;AAMCxsC,2BAAO;AANR,iBAlDE,EAyDF;AACCH,0BAAM,SADP;AAECylC,4BAAQ,gBAAC2H,MAAD,EAAY;AAChB,+BAAKnB,aAAL,CAAmB,2DAAnB;AACH,qBAJF;AAKCU,+BAAW,aALZ;AAMCxsC,2BAAO;AANR,iBAzDE,EAgEF,GAhEE,EAgEG;AACJH,0BAAM,MADF;AAEJylC,4BAAQ,oBAAU4H,QAFd;AAGJV,+BAAW,YAHP;AAIJxsC,2BAAO;AAJH,iBAhEH,EAqEF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAUhd,SAFnB;AAGCkkB,+BAAW,iBAHZ;AAICxsC,2BAAO;AAJR,iBArEE,EA0EF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAU6H,SAFnB;AAGCX,+BAAW,aAHZ;AAICxsC,2BAAO;AAJR,iBA1EE,EA+EF;AACCH,0BAAM,iBADP;AAECylC,4BAAQ,oBAAU8H,kBAFnB;AAGCZ,+BAAW,aAHZ;AAICxsC,2BAAO;AAJR,iBA/EE,EAoFF,GApFE,EAoFG;AACJH,0BAAM,QADF;AAEJylC,4BAAQ,gBAAS2H,MAAT,EAAiB,CAAE,CAFvB;AAGJT,+BAAW,cAHP;AAIJxsC,2BAAO;AAJH,iBApFH,EAyFF,GAzFE,EAyFG;AACJH,0BAAM,SADF;AAEJylC,4BAAQ,oBAAU+H,aAFd;AAGJb,+BAAW,sBAHP;AAIJxsC,2BAAO;AAJH,iBAzFH,EA0GL;AACIH,0BAAM,OADV;AAEIylC,4BAAQ,sCAFZ;AAGIkH,+BAAW,uBAHf;AAIIxsC,2BAAO;AAJX,iBA1GK,CARkB;AA0H3BstC,6BAAa;AACTC,2BAAO,CAAC,EAAD,EAAK,0EAAL;AADE,iBA1Hc;AA6H3BC,+BAAe,uBAACrZ,SAAD,EAAYsZ,OAAZ,EAAwB;AACnC,wBAAI3Y,OAAJ,EAAa;AACTX,oCAAYW,QAAQzZ,OAAR,CAAgB8Y,SAAhB,CAAZ;AACH;AACD,2BAAOa,OAAO/wB,MAAMiwB,QAAN,CAAeC,SAAf,CAAP,CAAP;AACH;AAlI0B,aAAd,CAAjB;;AAqIA,iBAAK8X,SAAL,CAAeC,UAAf,CAA0BrpC,EAA1B,CAA6B,OAA7B,EAAsC,UAAC6qC,EAAD,EAAKxoC,CAAL,EAAW;AAC7C,oBAAIA,EAAEoI,OAAF,IAAapI,EAAE6gB,OAAF,IAAa,EAA9B,EAAkC;AAC9B,2BAAK4nB,UAAL;AACH,iBAFD,MAEO,IAAIzoC,EAAE6gB,OAAF,IAAa,EAAjB,EAAqB;AACxB,2BAAKkmB,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACH;AACJ,aAND;;AAQA,iBAAKw3B,gBAAL,GAAwB5xC,EAAE,KAAK6xC,WAAP,EAAoBrrC,IAApB,CAAyB,sBAAzB,CAAxB;AACA,gBAAI,KAAKorC,gBAAL,CAAsB3kC,IAAtB,OAAiC,CAArC,EAAwC;AACpC,qBAAK2kC,gBAAL,GAAwB5xC,EAAE,KAAK6xC,WAAP,EAAoBrrC,IAApB,CAAyB,sCAAzB,CAAxB;AACH;;AAED,iBAAKsrC,SAAL;;AAEA,iBAAKC,gBAAL;;AAEA,iBAAKC,kBAAL,CAAwBhyC,EAAE,kBAAF,EAAsB,KAAK6xC,WAA3B,CAAxB,EAAiE,YAAM;AACnE,uBAAO,OAAKD,gBAAZ;AACH,aAFD,EAEG,KAFH;;AAIA,iBAAKI,kBAAL,CAAwBhyC,EAAE,+BAAF,EAAmC,KAAK6xC,WAAxC,CAAxB,EAA8E,YAAM;AAChF,uBAAO,OAAKD,gBAAZ;AACH,aAFD,EAEG,IAFH;AAIH;;gCAEDG,+CAAmB;AAAA;;AAEf/xC,cAAE,KAAK4xC,gBAAP,EAAyBnJ,YAAzB,CAAsC,CAAC;AACnC5mC,uBAAO,eAD4B;AAEnC6mC,wBAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxBA,6BAASja,EAAE2D,GAAF,CAAM8D,MAAMa,KAAZ,EAAmB,UAACwgC,MAAD,EAAY;AACpC,+BAAQA,OAAOnyB,OAAP,IAAkBmyB,OAAO1hC,QAAP,CAAgB0c,OAAhB,CAAwB6kB,IAAxB,KAAiC,CAApD,GAAyDG,OAAO1hC,QAAhE,GAA2E,IAAlF;AACH,qBAFQ,CAAT;AAGH,iBANkC;AAOnCyhC,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAI5gC,OAAO1H,EAAEmG,IAAF,CAAOiB,MAAMa,KAAb,EAAoB,EAAElB,UAAUgT,KAAZ,EAApB,CAAX;AACA,2BAAUrS,KAAKlE,IAAf,WAAyBkE,KAAK6O,KAA9B,UAAwC7O,KAAKX,QAA7C;AACH,iBAVkC;AAWnCiY,yBAAS,iBAACjF,KAAD,EAAW;AAChB,oCAAcA,KAAd;AACH;AAbkC,aAAD,EAcnC;AACCvY,uBAAO,qBADR;AAEC6mC,wBAAQ,gBAASC,IAAT,EAAe1uB,QAAf,EAAyB;AAC7BA,6BAASja,EAAE2D,GAAF,wBAAc,UAAColC,KAAD,EAAW;AAC9B,+BAAO1oC,EAAE+N,IAAF,CAAO26B,MAAMnsB,KAAN,CAAY,GAAZ,CAAP,EAAyB,UAACrR,IAAD,EAAU;AACtC,mCAAOA,KAAKuY,OAAL,CAAa6kB,IAAb,MAAuB,CAA9B;AACH,yBAFM,IAEFI,KAFE,GAEM,IAFb;AAGH,qBAJQ,CAAT;AAKH,iBARF;AASCF,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAIvuB,SAAS,QAAb,EAAuB;AACnB;AACH;AACD,wBAAI4uB,iBAAe5uB,KAAf,MAAJ;AACA,2BAAU0e,QAAQzZ,OAAR,CAAgB2pB,QAAhB,CAAV,WAAyCA,QAAzC;AACH,iBAfF;AAgBC3pB,yBAAS,iBAACjF,KAAD,EAAW;AAChB,wBAAI,OAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B,+BAAO,QAAQA,KAAR,GAAgB,IAAvB;AACH,qBAFD,MAEO;AACH,+BAAO,EAAP;AACH;AACJ;AAtBF,aAdmC,CAAtC,EAqCI;AACAiP,0BAAU;AADV,aArCJ;;AA0CA,iBAAK4mB,SAAL,CAAeC,UAAf,CAA0BrpC,EAA1B,CAA6B,SAA7B,EAAwC,UAAC6qC,EAAD,EAAKxoC,CAAL,EAAW;AAC/C,oBAAI7I,EAAEk5B,QAAF,CAAW,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAX,EAAyBrwB,EAAE6gB,OAA3B,KAAuC,OAAKkoB,UAAL,EAA3C,EAA8D;AAC1D/oC,sBAAEnC,cAAF;AACH;AACJ,aAJD;AAKH;;gCAEDkrC,mCAAa;AACT,mBAAOjyC,EAAE,8BAAF,EAAkCwG,IAAlC,CAAuC,gCAAvC,EAAyEyG,IAAzE,OAAoF,CAA3F;AACH;;gCAEDu7B,+CAAkBpuB,OAAO;;AAErB,gBAAIA,SAAS,QAAb,EAAuB;AACnB/Z,kBAAEy7B,KAAF,CAAQ,YAAM;AAAE7zB,0BAAM2zB,UAAN,CAAiBp8B,OAAO+W,oBAAxB;AAAgD,iBAAhE,EAAkE,GAAlE;AACH,aAFD,MAEO;AACH,uBAAO,IAAP;AACH;;AAED,mBAAO,KAAP;AACH;;gCAKDzW,2BAAS;AACL,iBAAKqM,MAAL;AACH;;gCAEDA,2BAAS;AACL,iBAAKqjC,IAAL,GAAY,IAAZ;AACA,iBAAKS,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACA,iBAAK61B,SAAL,CAAeiC,UAAf;AACA,iBAAKjC,SAAL,GAAiB,IAAjB;AACH;;gCAQDH,uCAAcvoC,SAAS4qC,KAAK;AACxB,gBAAI;AACA,oBAAIT,KAAKS,MAAMA,IAAIjC,UAAV,GAAuB,KAAKD,SAAL,CAAeC,UAA/C;AACA,oBAAIkC,SAASV,GAAGW,SAAH,EAAb;AACA,oBAAID,MAAJ,EAAY;AACRV,uBAAGY,YAAH,CAAgB/qC,OAAhB,EAAyB6qC,MAAzB,EAAiCA,MAAjC;AACAV,uBAAG7+B,KAAH;AACH;AACJ,aAPD,CAOE,OAAOpB,GAAP,EAAY;AAAEuV,wBAAQC,GAAR,CAAYxV,GAAZ;AAAmB;AACtC;;gCAED8gC,qCAAahnC,MAAM;AACf,iBAAKukC,aAAL,iCAA6BvkC,KAAK5D,EAAlC,UAAyC,KAAK87B,OAA9C,aAA6Dl4B,KAAK5D,EAAlE,WAA0E4D,KAAK8E,OAAL,CAAajJ,QAAvF;AACA,iBAAK6G,SAAL,CAAe,GAAf;AACH;;gCAEDukC,uCAAcjnC,MAAM;AAAA;;AAChBvL,cAAEgjC,IAAF,CAAO,4BAAP,EAAqC;AACjCkL,qBAAK3iC,KAAK5D;AADuB,aAArC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKymC,QAAL,GAAgBxvC,EAAE+K,MAAF,CAAS,OAAKykC,QAAd,EAAwB,EAAEloC,IAAI4D,KAAK5D,EAAX,EAAxB,CAAhB;AACAwB,2BAAOC,OAAP,CAAe,WAAf;AACA7J,uBAAG2H,OAAH,CAAW1H,OAAOsW,0BAAlB,EAA8C;AAC1CwzB,gCAAQ,SADkC;AAE1CuG,kCAAU,OAAKA;AAF2B,qBAA9C;AAIH,iBAPD,MAOO;AACH1mC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAbD;AAcH;;gCAED2kC,mCAAa;AAAA;;AACT,gBAAIpqC,UAAU,KAAK0oC,SAAL,CAAe71B,KAAf,EAAd;;AAEA,gBAAI,CAACpa,EAAE2e,IAAF,CAAOpX,OAAP,CAAL,EAAsB;AAClB,qBAAK0oC,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACAjR,uBAAOE,KAAP,CAAa,WAAb;AACA;AACH;;AAED,gBAAI,KAAKopC,OAAT,EAAkB;AACd;AACH;;AAED,iBAAKA,OAAL,GAAe,IAAf;;AAEA,gBAAI1Z,OAAO9wB,MAAM4wB,OAAN,CAActxB,OAAd,CAAX;AACA,gBAAIe,SAASb,MAAMiP,SAAf,SAA8BnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAA3D,CAAJ;;AAEAxI,cAAEgjC,IAAF,+BAAqC;AACjCznB,0BAAUtT,MAAM6uB,WAAN,EADuB;AAEjCnvB,oBAAI,KAAK6nC,IAAL,CAAU7nC,EAFmB;AAGjCW,uBAAOL,MAAMwwB,cAAN,CAAqBlxB,OAArB,EAA8Be,KAA9B,EAAqC8S,IAArC,CAA0C,GAA1C,CAH0B;AAIjC7T,yBAASA,OAJwB;AAKjCmrC,6BAAa3Z;AALoB,aAArC,EAMG,UAAC/rB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKymC,QAAL,aAAoB,OAAKA,QAAzB,GAAmC7iC,KAAKA,IAAxC;AACA,2BAAKijC,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACAjR,2BAAOC,OAAP,CAAe,WAAf;AACA,2BAAKqC,sBAAL,CAA4B,GAA5B;AACAlM,uBAAG2H,OAAH,CAAW1H,OAAOqW,wBAAlB,EAA4C,EAA5C;AACAtW,uBAAG2H,OAAH,CAAW1H,OAAOsW,0BAAlB,EAA8C;AAC1CwzB,gCAAQ,SADkC;AAE1CuG,kCAAU,OAAKA;AAF2B,qBAA9C;AAIH,iBAVD,MAUO;AACH1mC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aApBD,EAoBG0B,MApBH,CAoBU,YAAM;AACZ,uBAAK+jC,OAAL,GAAe,KAAf;AACH,aAtBD;AAuBH;;gCAEDX,iCAAY;AAAA;;AAER,gBAAIa,eAAJ;AACA,gBAAI,KAAKf,gBAAL,CAAsB3wC,EAAtB,CAAyB,UAAzB,CAAJ,EAA0C;AACtC0xC,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBrqB,gBAAzB,EAAT;AACH,aAFD,MAEO;AACHorB,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBnqB,uBAAzB,EAAT;AACH;;AAEDkrB,sBAAWA,OAAO9rC,EAAP,CAAU,YAAV,EAAwB,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;;AAE7ChN,kBAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBrb,6BAAS3a,KAAK2a,OADW;AAEzBtE,0BAAMrW,KAAKmf,IAAL,CAAU9I,IAFS;AAGzBiiB,4BAAQ;AAHiB,iBAA7B,EAIG,UAACt4B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,gCAAK0mC,aAAL,CAAmB,uCACdzwB,OADc,CACN,WADM,EACOrS,KAAKA,IAAL,CAAUnJ,IADjB,EAEdwb,OAFc,CAEN,cAFM,EAEUpX,MAAMyuB,UAAN,KAAqB,GAF/B,EAGdrX,OAHc,CAGN,WAHM,EAGOrS,KAAKA,IAAL,CAAUmQ,IAHjB,EAIdkC,OAJc,CAIN,eAJM,EAIWrS,KAAKA,IAAL,CAAUk5B,QAJrB,CAAnB;AAKH;AACJ,iBAZD;AAaH,aAfU,EAeRr/B,EAfQ,CAeL,iBAfK,EAec,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;AACnC7D,uBAAOE,KAAP,CAAa2D,KAAKgf,OAAlB,EAA2B,YAA3B;AACH,aAjBU,CAAX;AAkBH;;gCAEDgmB,iDAAmBY,QAAQC,kBAAkBnN,WAAW;;AAEpD,gBAAIpc,QAAQ,IAAZ;;AAEAtpB,cAAE4yC,MAAF,EAAUpN,QAAV,CAAmB;AACf5kC,qBAAK,oBADU;AAEf6kC,2BAAW,MAFI;AAGfC,2BAAW,CAAC,CAACA,SAHE;AAIfC,oCAAoB,EAJL;AAKfC,6BAAa,EALE;AAMfC,gCAAgB,IAND;AAOfiN,mCAAmB,qCAPJ;AAQfC,iCAAiB/yC,EAAE,oCAAF,EAAwC,CAAxC,EAA2CgzC,SAR7C;AASflN,kCAAkB,MATH;AAUfC,8CAA8B,WAVf;AAWfC,gCAAgB,2CAXD;AAYf5mC,sBAAM,gBAAW;AACb,yBAAKyH,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAeza,GAAf,EAAoBg2B,QAApB,EAA8B;AAC7C,4BAAI,CAAC4M,kBAAL,EAAyB;AACrB,iCAAKI,cAAL,CAAoB,IAApB;AACH,yBAFD,MAEO;AACHhN,qCAAStU,MAAT,CAAgB,QAAhB,EAA0B,MAA1B;AACH;AACJ,qBAND;AAOA,yBAAK9qB,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAe1d,IAAf,EAAqB;AACpC,4BAAIA,KAAK5D,OAAT,EAAkB;;AAEdpJ,8BAAEyG,IAAF,CAAOuG,KAAKA,IAAZ,EAAkB,UAAStG,KAAT,EAAgB6E,IAAhB,EAAsB;AACpC,oCAAIA,KAAK8X,IAAL,IAAa,OAAjB,EAA0B;AACtBiG,0CAAMwmB,aAAN,CAAoB,wCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM9T,KAAK4R,IAHX,EAIfkC,OAJe,CAIP,eAJO,EAIU9T,KAAK26B,QAJf,CAApB;AAKH,iCAND,MAMO;AACH5c,0CAAMwmB,aAAN,CAAoB,uCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM,sBAHN,EAIfA,OAJe,CAIP,eAJO,EAIU9T,KAAK5D,EAJf,CAApB;AAKH;AACJ,6BAdD;AAeAwB,mCAAOC,OAAP,CAAe,OAAf;AACH,yBAlBD,MAkBO;AACHD,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AAEJ,qBAvBD;AAwBA,yBAAKnG,EAAL,CAAQ,OAAR,EAAiB,UAAS6jB,IAAT,EAAeyb,YAAf,EAA6Bl2B,GAA7B,EAAkC;AAC/C9G,+BAAOE,KAAP,CAAa88B,YAAb,EAA2B,OAA3B;AACH,qBAFD;AAGA,yBAAKt/B,EAAL,CAAQ,UAAR,EAAoB,UAAS6jB,IAAT,EAAe;AAC/B,6BAAK0b,UAAL,CAAgB1b,IAAhB;AACH,qBAFD;AAGH;AAlDc,aAAnB;AAoDH;;gCAEDjf,yDAAuB5L,IAAI;AAAA;;AACvBQ,cAAEmO,KAAF,CAAQ,YAAM;AACV,oBAAIC,YAAJ,CAAiBzO,EAAE,kBAAF,EAAsB,CAAtB,CAAjB,EAA2C0O,MAA3C,CAAkD,YAAM;AACpD,4BAAKT,SAAL,CAAepO,EAAf;AACH,iBAFD;;AAIA,wBAAKoO,SAAL,CAAepO,EAAf;AACH,aAND;AAQH;;gCAEDoO,+BAAUpO,IAAI;AACV,gBAAIA,MAAM,GAAV,EAAe;AACXG,kBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,KAA/B;AACH,aAFD,MAEO,IAAIpM,MAAM,GAAV,EAAe;AAClBG,kBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,CAA/B;AACH,aAFM,MAEA;AACH,oBAAI5L,EAAE+N,IAAF,CAAO,KAAKyhC,QAAZ,EAAsB,EAAEloC,IAAI,CAAC9H,EAAP,EAAtB,CAAJ,EAAwC;AACpCG,sBAAE,kBAAF,EAAsBiM,QAAtB,wBAAoDpM,EAApD,SAA4D;AACxD6I,gCAAQ,KAAKA;AAD2C,qBAA5D;AAGA1I,sBAAE,kBAAF,EAAsBwG,IAAtB,sBAAgD6H,WAAhD,CAA4D,QAA5D;AACArO,sBAAE,kBAAF,EAAsBwG,IAAtB,uBAA+C3G,EAA/C,QAAsDyO,QAAtD,CAA+D,QAA/D;AACH,iBAND,MAMO;AACHtO,sBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,KAA/B;AACA9C,2BAAOoF,OAAP,+BAAuB1O,EAAvB;AACH;AACJ;AACJ;;gCAEDmwC,mCAAYzkC,MAAM2nC,YAAY;AAC1BlzC,cAAEoN,GAAF,4BAAiC;AAC7B8gC,qBAAK3iC,KAAK5D;AADmB,aAAjC,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,wBAAImC,KAAKmH,OAAL,IAAgB1F,KAAKA,IAAL,CAAU0F,OAA9B,EAAuC;AACnCrS,0BAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACH;AACDzB,yBAAKoH,SAAL,GAAiB,IAAjB;AACApH,yBAAKqH,UAAL,GAAkBrH,KAAKhE,OAAvB;AACAlH,sBAAEmO,KAAF,CAAQ,YAAM;AACVxO,0BAAEkzC,UAAF,EAAcrgC,KAAd,GAAsBC,MAAtB;AACAC,iCAASC,MAAT,CAAgBkgC,UAAhB;AACH,qBAHD;AAIH,iBAVD,MAUO;AACH/pC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AAEJ,aAjBD;AAkBH;;gCAEDmmC,yCAAe5nC,MAAM;AACjBvL,cAAEoN,GAAF,CAAM,yBAAN,EAAiC;AAC7B8gC,qBAAK3iC,KAAK5D;AADmB,aAAjC,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIzB,KAAKmH,OAAL,IAAgB1F,KAAKA,IAAL,CAAU0F,OAA9B,EAAuC;AACnCrS,sBAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACA7D,2BAAOC,OAAP,CAAe,SAAf;AACH,iBAHD,MAGO;AACHD,2BAAOiqC,IAAP,CAAY,aAAZ;AACH;AACJ,aATD;AAUH;;gCAEDC,iDAAmB7/B,KAAKjI,MAAM+nC,QAAQ;;AAElC,gBAAI,KAAKb,OAAT,EAAkB;AACd,uBAAO,KAAP;AACH;;AAED,gBAAIj/B,IAAIlC,OAAJ,IAAekC,IAAIuW,OAAJ,KAAgB,EAAnC,EAAuC;;AAEnC,qBAAKwpB,QAAL,CAAchoC,IAAd,EAAoB+nC,MAApB;;AAEA,uBAAO,KAAP;AACH,aALD,MAKO,IAAI9/B,IAAIlC,OAAJ,IAAekC,IAAIuW,OAAJ,KAAgB,EAAnC,EAAuC;AAC1C/pB,kBAAEszC,MAAF,EAAUpiC,IAAV,CAAe,gCAAf,EAAiD1K,IAAjD,CAAsD,SAAtD,EAAiEmN,KAAjE;AACA,uBAAO,KAAP;AACH,aAHM,MAGA,IAAIH,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AAC3B,qBAAKypB,iBAAL,CAAuBhgC,GAAvB,EAA4BjI,IAA5B,EAAkC+nC,MAAlC;AACH;;AAED,mBAAO,IAAP;AACH;;gCAEDG,uCAAcjgC,KAAKjI,MAAM+nC,QAAQ;AAC7B,iBAAKC,QAAL,CAAchoC,IAAd,EAAoB+nC,MAApB;AACA/nC,iBAAKoH,SAAL,GAAiB,KAAjB;AACH;;gCAED6gC,+CAAkBhgC,KAAKjI,MAAM+nC,QAAQ;AACjC/nC,iBAAKhE,OAAL,GAAegE,KAAKqH,UAApB;AACA5S,cAAEszC,MAAF,EAAUhpB,GAAV,CAAc/e,KAAKhE,OAAnB;AACAgE,iBAAKoH,SAAL,GAAiB,KAAjB;AACH;;gCAED4gC,6BAAShoC,MAAM+nC,QAAQ;AAAA;;AAEnB,iBAAKb,OAAL,GAAe,IAAf;;AAEAlnC,iBAAKhE,OAAL,GAAevH,EAAEszC,MAAF,EAAUhpB,GAAV,EAAf;;AAEA,gBAAIyO,OAAO9wB,MAAM4wB,OAAN,CAActtB,KAAKhE,OAAnB,CAAX;AACA,gBAAImsC,UAAUzrC,MAAM4wB,OAAN,CAActtB,KAAKqH,UAAnB,CAAd;;AAEA,gBAAItK,SAASb,MAAMiP,SAAf,SAA8BnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAA3D,CAAJ;AACAxI,cAAEgjC,IAAF,+BAAqC;AACjCznB,0BAAUtT,MAAM6uB,WAAN,EADuB;AAEjCnvB,oBAAI,KAAK6nC,IAAL,CAAU7nC,EAFmB;AAGjCumC,qBAAK3iC,KAAK5D,EAHuB;AAIjC+K,yBAASnH,KAAKmH,OAJmB;AAKjCpK,uBAAOL,MAAMwwB,cAAN,CAAqBltB,KAAKhE,OAA1B,EAAmCe,KAAnC,EAA0C8S,IAA1C,CAA+C,GAA/C,CAL0B;AAMjC7T,yBAASgE,KAAKhE,OANmB;AAOjCmrC,6BAAa3Z,IAPoB;AAQjCjf,sBAAM7R,MAAMixB,KAAN,CAAY3tB,KAAKqH,UAAjB,EAA6BrH,KAAKhE,OAAlC;AAR2B,aAArC,EASG,UAACyF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,WAAf;AACAmC,yBAAKoH,SAAL,GAAiB,KAAjB;AACApH,yBAAKmH,OAAL,GAAe1F,KAAKA,IAAL,CAAU0F,OAAzB;AACH,iBAJD,MAIO;AACHvJ,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAjBD,EAiBG0B,MAjBH,CAiBU,YAAM;AACZ,wBAAK+jC,OAAL,GAAe,KAAf;AACH,aAnBD;AAoBH;;gCAEDkB,+BAAUxF,SAAS;AACf,gBAAIyF,UAAUzF,QAAQyF,OAAtB;AACA,gBAAI,CAACA,OAAL,EAAc;AACV,uBAAO,KAAP;AACH;;AAED,mBAAOA,QAAQh3B,KAAR,CAAc,GAAd,EAAmB2c,QAAnB,CAA4B,KAAKzxB,SAAL,CAAeV,QAA3C,CAAP;AACH;;gCAEDysC,mCAAYtoC,MAAM;AACdvL,cAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/BkL,qBAAK3iC,KAAK5D,EADqB;AAE/B/G,qBAAKqH,MAAM6uB,WAAN,EAF0B;AAG/B4b,6BAAazqC,MAAM4wB,OAAN,CAActtB,KAAKhE,OAAnB,CAHkB;AAI/B8b,sBAAM,KAAKswB,SAAL,CAAepoC,IAAf,IAAuB,KAAvB,GAA+B;AAJN,aAAnC,EAKG,UAACyB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,sBAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACH,iBAFD,MAEO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAXD;AAaH;;gCAED8mC,2CAAiB;AACb9zC,cAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,CAA/B,EAAkC,GAAlC;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCjsBQ8nC,wBAAAA;AAWT,iCAAc;AAAA;;AAAA;;AAAA,iBAPdjsC,SAOc,GAPFL,MAAMK,SAOJ;AAAA,iBANdE,OAMc,GANJP,MAAMO,OAMF;AAAA,iBALdG,OAKc,GALJV,MAAMU,OAKF;;AACV,iBAAK7I,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOoI,iBAApB,EAAuC,UAAClI,OAAD,EAAa;AACjE,sBAAKs0C,OAAL;AACAz0C,mBAAG2H,OAAH,CAAW1H,OAAOoG,+BAAlB,EAAmD;AAC/CL,4BAAQ;AADuC,iBAAnD;AAGH,aALgB,CAAjB;AAMA,iBAAKQ,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAO0V,kBAApB,EAAwC,UAACxV,OAAD,EAAa;AACnE,oBAAIA,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AAC7BjpC,sBAAEC,MAAF,CAAS,MAAKkvC,IAAd,EAAoB9vC,QAAQ8vC,IAA5B;AACAnvC,sBAAEmO,KAAF,CAAQ;AAAA,+BAAM,MAAKylC,cAAL,CAAoB,IAApB,CAAN;AAAA,qBAAR;AACH;AACJ,aALiB,CAAlB;AAMA,iBAAK5pC,UAAL,GAAkB9K,GAAGD,SAAH,CAAaE,OAAOqW,wBAApB,EAA8C,UAACnW,OAAD,EAAa;AACzE,oBAAI,CAAC,MAAKw0C,YAAV,EAAwB;AACpB,0BAAKC,WAAL;AACH;AACJ,aAJiB,CAAlB;AAKA,iBAAK1pC,UAAL,GAAkBlL,GAAGD,SAAH,CAAaE,OAAOsW,0BAApB,EAAgD,UAACpW,OAAD,EAAa;AAC3E,sBAAKmwC,QAAL,GAAgBnwC,QAAQmwC,QAAxB;AACH,aAFiB,CAAlB;;AAIA,iBAAKuE,qBAAL,GAA6B/zC,EAAEsR,QAAF,CAAW,YAAM;AAAE,sBAAK0iC,aAAL;AAAsB,aAAzC,EAA2C,IAA3C,EAAiD,EAAE,YAAY,KAAd,EAAjD,CAA7B;AACA,iBAAKC,mBAAL,GAA2Bj0C,EAAEsR,QAAF,CAAW,YAAM;AAAE,sBAAKq+B,WAAL;AAAoB,aAAvC,EAAyC,IAAzC,EAA+C,EAAE,YAAY,KAAd,EAA/C,CAA3B;AACA,iBAAKuE,mBAAL,GAA2Bl0C,EAAEsR,QAAF,CAAW,YAAM;AAAE,sBAAK6iC,WAAL;AAAoB,aAAvC,EAAyC,IAAzC,EAA+C,EAAE,YAAY,KAAd,EAA/C,CAA3B;AACH;;gCAKD10C,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACA,iBAAKsK,UAAL,CAAgBtK,OAAhB;AACA,iBAAK0K,UAAL,CAAgB1K,OAAhB;AACH;;gCAKDoG,+BAAW;AAAA;;AACP,iBAAK6tC,OAAL;;AAEA,oCAAc,iCAAd,EACKntC,EADL,CACQ,SADR,EACmB,UAASqC,CAAT,EAAY;AACvBC,uBAAOC,OAAP,CAAe,WAAf;AACH,aAHL,EAGOvC,EAHP,CAGU,OAHV,EAGmB,UAASqC,CAAT,EAAY;AACvBC,uBAAOE,KAAP,CAAa,WAAb;AACH,aALL;;AAOArJ,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,OAAzB,EAAkC,iBAAlC,EAAqD,UAASC,KAAT,EAAgB;AACjE,oBAAIA,MAAMwK,OAAV,EAAmB;AACfxK,0BAAMyK,wBAAN;AACAzK,0BAAMC,cAAN;AACA,0CAAUyK,IAAV,CAAexR,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,WAA5B,CAAf,EAAyDzB,IAAzD,CACI,YAAM;AAAEgE,+BAAOC,OAAP,CAAe,WAAf;AAA8B,qBAD1C,EAEI,UAACqI,GAAD,EAAS;AAAEtI,+BAAOE,KAAP,CAAa,WAAb;AAA4B,qBAF3C;AAIH;AACJ,aATD;;AAWArJ,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,OAAzB,EAAkC,mBAAlC,EAAuD,UAASC,KAAT,EAAgB;AACnE,oBAAIA,MAAMwK,OAAV,EAAmB;AACfxK,0BAAMyK,wBAAN;AACAzK,0BAAMC,cAAN;AACA,0CAAUyK,IAAV,CAAexR,EAAE8G,MAAMG,aAAR,EAAuBT,IAAvB,CAA4B,wBAA5B,EAAsDI,IAAtD,CAA2D,qBAA3D,CAAf,EAAkGzB,IAAlG,CACI,YAAM;AAAEgE,+BAAOC,OAAP,CAAe,WAAf;AAA8B,qBAD1C,EAEI,UAACqI,GAAD,EAAS;AAAEtI,+BAAOE,KAAP,CAAa,WAAb;AAA4B,qBAF3C;AAIH;AACJ,aATD;;AAWArJ,cAAE,wBAAF,EAA4B6G,EAA5B,CAA+B,OAA/B,EAAwC,gCAAxC,EAA0E,UAACC,KAAD,EAAW;AACjFA,sBAAMC,cAAN;AACA,oBAAI/G,EAAEuI,MAAF,EAAU0B,KAAV,MAAqB,GAAzB,EAA8B;AAC1B1K,uBAAG2H,OAAH,CAAW1H,OAAOoG,+BAAlB,EAAmD,EAAEL,QAAQ,IAAV,EAAnD;AACH;AACDvF,kBAAE,kBAAF,EAAsBiM,QAAtB,OAAmCjM,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,SAA5B,CAAnC,EAA6E,GAA7E,EAAkF;AAC9E8B,4BAAQ;AADsE,iBAAlF;AAGH,aARD;;AAUA1I,cAAE,KAAKy0C,SAAP,EAAkB5tC,EAAlB,CAAqB,UAArB,EAAiC,UAACC,KAAD,EAAW;AACxC,oBAAIA,MAAMwK,OAAV,EAAmB;AACf,wBAAI,OAAKk+B,IAAL,CAAU/8B,QAAV,IAAsB,OAAKzK,OAA3B,IAAsC,OAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,OAAKU,SAAL,CAAeV,QAAvF,EAAiG;AAC7F,+BAAK4oC,WAAL;AACH;AACJ;AACJ,aAND;;AAQAhwC,cAAE,kBAAF,EAAsB0R,MAAtB,CAA6BrR,EAAEsR,QAAF,CAAW,UAAC7K,KAAD,EAAW;AAC/C,oBAAI;AACA,wBAAI8K,UAAU5R,EAAE,kBAAF,EAAsB,CAAtB,EAAyB6R,YAAvC;AACA,wBAAIC,OAAO9R,EAAE,kBAAF,EAAsB,CAAtB,EAAyB+R,SAApC;;AAEA,wBAAIC,QAAQF,OAAO,GAAP,IAAcF,UAAU5R,EAAE,kBAAF,EAAsBiS,WAAtB,EAAxB,CAAZ;AACA,2BAAKpF,aAAL,GAAqB7M,EAAE,kBAAF,EAAsBkS,UAAtB,KAAqCF,KAA1D;;AAEA,2BAAK0iC,UAAL;AAEH,iBATD,CASE,OAAOjjC,GAAP,EAAY;AAAE,2BAAK5E,aAAL,GAAqB,CAArB;AAAyB;AAE5C,aAZ4B,EAY1B,EAZ0B,CAA7B;;AAeA7M,cAAE,KAAK20C,OAAP,EAAgB9tC,EAAhB,CAAmB,YAAnB,EAAiC,wCAAjC,EAA2E,UAACC,KAAD,EAAW;AAClFA,sBAAMC,cAAN;AACA,oBAAIC,KAAKhH,EAAE8G,MAAMG,aAAR,CAAT;AACA,oBAAIinC,MAAMjmC,MAAMkvB,QAAN,CAAe,KAAf,EAAsBnwB,GAAGJ,IAAH,CAAQ,MAAR,CAAtB,CAAV;AACAsnC,uBAAO3uC,GAAG2H,OAAH,CAAW1H,OAAOkW,6BAAlB,EAAiD;AACpD/N,wBAAIumC,GADgD;AAEpD7mC,4BAAQP,MAAMG;AAFsC,iBAAjD,CAAP;AAIH,aARD;;AAUA,iBAAK0J,WAAL;AACH;;gCAED+jC,mCAAa;AACT,gBAAIE,QAAQ,IAAZ;AACA,gBAAIC,QAAQ,IAAZ;AACAx0C,cAAEoG,IAAF,CAAO,KAAKquC,UAAZ,EAAwB,UAACntC,EAAD,EAAQ;AAC5B,oBAAI,CAACktC,KAAL,EAAY;AACR,wBAAI5sC,MAAM+I,mBAAN,CAA0BhR,QAAM2H,EAAN,CAA1B,CAAJ,EAA4C;AACxCitC,gCAAQjtC,EAAR;AACA,+BAAO,KAAP;AACH;AACJ,iBALD,MAKO;AACH,wBAAIM,MAAM+I,mBAAN,CAA0BhR,QAAM2H,EAAN,CAA1B,KAA0C,CAACM,MAAM+I,mBAAN,CAA0BhR,QAAM60C,KAAN,CAA1B,CAA/C,EAA0F;AACtFD,gCAAQjtC,EAAR;AACA,+BAAO,KAAP;AACH;AACJ;AACJ,aAZD;;AAcA,gBAAIitC,KAAJ,EAAW;AACP,oBAAIF,aAAa10C,EAAE,wCAAF,EAA4CwG,IAA5C,8BAA4EouC,KAA5E,QAAjB;AACA,oBAAIF,UAAJ,EAAgB;AACZ10C,sBAAE,wCAAF,EAA4CwG,IAA5C,4BAA4E6H,WAA5E,CAAwF,QAAxF;AACAqmC,+BAAWpmC,QAAX,CAAoB,QAApB;;AAEAtO,sBAAE,gFAAF,EAAoFiM,QAApF,CAA6FyoC,UAA7F,EAAyG,EAAzG,EAA6G;AACzGhsC,gCAAQ,CAAC;AADgG,qBAA7G;AAGH;AACJ;AACJ;;gCAEDiI,qCAAc;AAAA;;AACV,gBAAI;AACA3Q,kBAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,OAAjB,EAA0B,GAA1B,EAA+B,UAACgD,GAAD,EAAS;AACpCA,wBAAIzM,cAAJ;AACA,wBAAI,OAAKyoC,IAAL,CAAU/8B,QAAV,IAAsB,OAAKzK,OAA3B,IAAsC,OAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,OAAKU,SAAL,CAAeV,QAAvF,EAAiG;AAC7F,+BAAKktC,mBAAL;AACH;AACJ,iBALD,EAKG9jC,IALH,CAKQ,OALR,EAKiB,GALjB,EAKsB,UAACgD,GAAD,EAAS;AAC3BA,wBAAIzM,cAAJ;AACA,2BAAKqtC,qBAAL;AACH,iBARD,EAQG5jC,IARH,CAQQ,SARR,EAQmB,GARnB,EAQwB,UAACgD,GAAD,EAAS;AAC7BA,wBAAIzM,cAAJ;AACA,wBAAI,OAAKyzB,GAAT,EAAc;AACV,+BAAKyZ,cAAL;AACH;AACJ,iBAbD,EAaGzjC,IAbH,CAaQ,SAbR,EAamB,GAbnB,EAawB,UAACgD,GAAD,EAAS;AAC7BA,wBAAIzM,cAAJ;AACA,2BAAKguC,WAAL,CAAiBlhC,IAAjB;AACH,iBAhBD,EAgBGrD,IAhBH,CAgBQ,SAhBR,EAgBmB,GAhBnB,EAgBwB,UAACgD,GAAD,EAAS;AAC7BA,wBAAIzM,cAAJ;AACA,2BAAKiuC,eAAL;AACH,iBAnBD,EAmBGxkC,IAnBH,CAmBQ,SAnBR,EAmBmB,GAnBnB,EAmBwB,UAAC1J,KAAD,EAAW;AAC/BA,0BAAMC,cAAN;AACA/G,sBAAE,kBAAF,EAAsBiM,QAAtB,CAA+B,CAA/B,EAAkC,GAAlC,EAAuC;AACnCvD,gCAAQ;AAD2B,qBAAvC;AAGH,iBAxBD,EAwBG8H,IAxBH,CAwBQ,SAxBR,EAwBmB,GAxBnB,EAwBwB,UAAC1J,KAAD,EAAW;AAC/BA,0BAAMC,cAAN;AACA/G,sBAAE,kBAAF,EAAsBiM,QAAtB,QAAsC,GAAtC,EAA2C;AACvCvD,gCAAQ;AAD+B,qBAA3C;AAGH,iBA7BD,EA6BG8H,IA7BH,CA6BQ,SA7BR,EA6BmB,OA7BnB,EA6B4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKosC,cAAL;AACH,iBAhCD,EAgCG3iC,IAhCH,CAgCQ,SAhCR,EAgCmB,OAhCnB,EAgC4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKkuC,cAAL;AACH,iBAnCD,EAmCGzkC,IAnCH,CAmCQ,SAnCR,EAmCmB,OAnCnB,EAmC4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKmuC,WAAL;AACH,iBAtCD,EAsCG1kC,IAtCH,CAsCQ,SAtCR,EAsCmB,OAtCnB,EAsC4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKouC,WAAL;AACH,iBAzCD,EAyCG3kC,IAzCH,CAyCQ,SAzCR,EAyCmB,OAzCnB,EAyC4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKwtC,mBAAL;AACH,iBA5CD,EA4CG/jC,IA5CH,CA4CQ,SA5CR,EA4CmB,OA5CnB,EA4C4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKquC,kBAAL;AACH,iBA/CD,EA+CG5kC,IA/CH,CA+CQ,SA/CR,EA+CmB,OA/CnB,EA+C4B,UAAC1J,KAAD,EAAW;AACnCA,0BAAMC,cAAN;AACA,2BAAKsuC,eAAL;AACH,iBAlDD,EAkDG7kC,IAlDH,CAkDQ,SAlDR,EAkDmB,YAlDnB,EAkDiC,UAAC1J,KAAD,EAAW;AACxCA,0BAAMC,cAAN;AACA,2BAAKuuC,aAAL;AACH,iBArDD;AAsDH,aAvDD,CAuDE,OAAO7jC,GAAP,EAAY;AAAEuV,wBAAQC,GAAR,CAAYxV,GAAZ;AAAmB;AAEtC;;gCAED8jC,uBAAO;AAAA;;AACH,iBAAK/a,GAAL,GAAWvyB,MAAMuyB,GAAN,CAAUx6B,EAAE,KAAKy0C,SAAP,CAAV,EAA6B,oBAA7B,CAAX;AACA,iBAAKK,UAAL,GAAkB,EAAlB;AACA,gBAAI,KAAKta,GAAT,EAAc;AACVx6B,kBAAE,KAAKw6B,GAAP,EAAYh0B,IAAZ,CAAiB,sBAAjB,EAAyCC,IAAzC,CAA8C,UAACC,KAAD,EAAQC,EAAR,EAAe;AACzD,2BAAKmuC,UAAL,CAAgB1lC,IAAhB,CAAqBpP,EAAE2G,EAAF,EAAMC,IAAN,CAAW,SAAX,CAArB;AACH,iBAFD;AAGH;AACD,mBAAO,KAAK4zB,GAAZ;AACH;;gCAEDgb,+BAAW;AAAA;;AACP,iBAAKjG,KAAL,GAAavvC,EAAEoN,GAAF,CAAM,oBAAN,EAA4B,UAACJ,IAAD,EAAU;AAC/C,oBAAIA,KAAK5D,OAAT,EAAkB;AAEd,2BAAKqsC,IAAL,GAAYzoC,KAAKA,IAAjB;AACH,iBAHD,MAGO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAPY,CAAb;AAQH;;gCAEDgnC,6BAAU;AAAA;;AACN,iBAAKnnC,aAAL,GAAqB,CAArB;AACA,gBAAI,CAACpF,MAAMC,MAAP,IAAiBguC,MAAM,IAAInjC,MAAJ,CAAW9K,MAAMC,MAAjB,CAAN,CAArB,EAAsD;AAClD,qBAAK8nC,IAAL,GAAY,IAAZ;AACA,qBAAKgG,QAAL;AACA;AACH;;AAED,iBAAKG,OAAL;AACA,iBAAKxB,WAAL;;AAEA,mBAAOn0C,EAAEoN,GAAF,CAAM,iBAAN,EAAyB;AAC5BzF,oBAAIF,MAAMC;AADkB,aAAzB,EAEJ,UAACsF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKomC,IAAL,GAAYxiC,KAAKA,IAAjB;AACAzN,uBAAG2H,OAAH,CAAW1H,OAAOgG,uBAAlB,EAA2C,OAAKgqC,IAAhD;AACAnvC,sBAAEmO,KAAF,CAAQ;AAAA,+BAAM,OAAKylC,cAAL,CAAoB,IAApB,CAAN;AAAA,qBAAR;AACA,2BAAK2B,SAAL;AACH,iBALD,MAKO;AACHzsC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAXM,CAAP;AAYH;;gCAED4oC,iCAAY;AAAA;;AACR51C,cAAEoN,GAAF,CAAM,oBAAN,EAA4B,UAACJ,IAAD,EAAU;AAClC,oBAAIswB,OAAO,EAAX;AACA,oBAAItwB,KAAK5D,OAAT,EAAkB;AACdk0B,2BAAOtwB,KAAKA,IAAZ;AACH;AACD,uBAAKswB,IAAL,GAAYj9B,EAAEgN,OAAF,CAAUiwB,IAAV,EAAgB,OAAKkS,IAAL,CAAUlS,IAA1B,EAAgC,MAAhC,CAAZ;;AAEAj9B,kBAAEmO,KAAF,CAAQ,YAAM;AACV,wBAAI8uB,OAAOj9B,EAAEsD,GAAF,CAAM,OAAK6rC,IAAL,CAAUlS,IAAhB,EAAsB,MAAtB,CAAX;AACAt9B,sBAAE,OAAK61C,OAAP,EAAgB31C,QAAhB,CAAyB,EAAzB,EAA6BA,QAA7B,CAAsC,OAAtC,EAA+CA,QAA/C,CAAwD,cAAxD,EAAwEo9B,IAAxE,EAA8Ep9B,QAA9E,CAAuF;AACnF41C,wCAAgB,IADmE;AAEnFC,+BAAO,eAACC,UAAD,EAAaC,SAAb,EAAwBC,YAAxB,EAAyC;AAC5Cl2C,8BAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,oCAAI,OAAK6nC,IAAL,CAAU7nC,EADY;AAE1B21B,sCAAM0Y;AAFoB,6BAA9B,EAGG,UAAChpC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oCAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2CAAOC,OAAP,CAAe,SAAf;AACH,iCAFD,MAEO;AACHD,2CAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,6BATD;AAUH,yBAbkF;AAcnFmpC,uCAAe,uBAACC,YAAD,EAAkB;AAC7Bp2C,8BAAEgjC,IAAF,CAAO,wBAAP,EAAiC;AAC7Br7B,oCAAI,OAAK6nC,IAAL,CAAU7nC,EADe;AAE7B21B,sCAAM8Y;AAFuB,6BAAjC,EAGG,UAACppC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oCAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2CAAOC,OAAP,CAAe,SAAf;AACH,iCAFD,MAEO;AACHD,2CAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,6BATD;AAUH;AAzBkF,qBAAvF;AA2BH,iBA7BD;AA8BH,aArCD;AAsCH;;gCAED2oC,6BAAU;AAAA;;AACN31C,cAAEoN,GAAF,CAAM,sBAAN,EAA8B;AAC1BzF,oBAAIF,MAAMC;AADgB,aAA9B,EAEG,UAACsF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKitC,QAAL,GAAgBrpC,KAAKA,IAArB;AACH,iBAFD,MAEO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aARD;AASH;;gCAEDmnC,qCAAc;AAAA;;AACVn0C,cAAEoN,GAAF,CAAM,0BAAN,EAAkC;AAC9BzF,oBAAIF,MAAMC;AADoB,aAAlC,EAEG,UAACsF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK8qC,YAAL,GAAoBlnC,KAAKA,IAAzB;AACH,iBAFD,MAEO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aARD;AASH;;gCAEDgjC,qCAAc;AACV,gBAAI,CAACvoC,MAAMoP,eAAX,EAA4B;AACxBtX,mBAAG2H,OAAH,CAAW1H,OAAOyV,iBAAlB,EAAqC,EAAEq0B,QAAQ,MAAV,EAAkB3hC,IAAI,KAAK6nC,IAAL,CAAU7nC,EAAhC,EAArC;AACH;AACJ;;gCAED2tC,yCAAgB;AAAA;;AACZ,gBAAI,KAAKttC,OAAL,IAAgB,KAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,KAAKU,SAAL,CAAeV,QAAjE,EAA2E;AACvE,qBAAKkvC,cAAL,CAAoBziC,IAApB,CAAyB;AACrB7P,2BAAO,MADc;AAErBuD,6BAAS,YAFY;AAGrBgvC,+BAAW,qBAAM;AACbv2C,0BAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBr7B,gCAAI,QAAK6nC,IAAL,CAAU7nC;AADW,yBAA7B,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,gCAAIjD,KAAK5D,OAAT,EAAkB;AACdD,uCAAOC,OAAP,CAAe,SAAf;AACA7J,mCAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,4CAAQ,SAD0B;AAElCkG,0CAAM,QAAKA;AAFuB,iCAAtC;AAIAjwC,mCAAG2H,OAAH,CAAW1H,OAAOC,yBAAlB,EAA6C;AACzCI,wCAAI;AADqC,iCAA7C;AAGH,6BATD,MASO;AACHsJ,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,yBAfD;AAgBH;AApBoB,iBAAzB;AAsBH;AACJ;;gCAEDqnC,yCAAgB;AACZ,gBAAI,CAAC5sC,MAAMoP,eAAX,EAA4B;AACxB7W,kBAAE,8BAAF,EAAkC2T,KAAlC;AACH;AACJ;;gCAEDyhC,mDAAqB;AACjB,gBAAI,KAAKptC,OAAL,IAAgB,KAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,KAAKU,SAAL,CAAeV,QAAjE,EAA2E;AACvE,qBAAKovC,iBAAL,CAAuB3iC,IAAvB,CAA4B,KAAK27B,IAAjC;AACH;AACJ;;gCAEDiH,yDAAwB;AAAA;;AACpBz2C,cAAEgjC,IAAF,CAAO,6BAAP,EAAsC;AAClCr7B,oBAAI,KAAK6nC,IAAL,CAAU7nC,EADoB;AAElC+uC,0BAAU,CAAC,KAAKlH,IAAL,CAAUkH;AAFa,aAAtC,EAGG,UAAC1pC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,sBAAEC,MAAF,CAAS,QAAKkvC,IAAd,EAAoBxiC,KAAKA,IAAzB;AACAzN,uBAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,gCAAQ,SAD0B;AAElCkG,8BAAM,QAAKA;AAFuB,qBAAtC;AAIArmC,2BAAOC,OAAP,CAAe,YAAf;AACH,iBAPD,MAOO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,YAAxB;AACH;AACJ,aAdD;AAeH;;gCAED2mC,iCAAY;AACR,gBAAIC,UAAU,KAAKpE,IAAL,CAAUoE,OAAxB;AACA,gBAAI,CAACA,OAAL,EAAc;AACV,uBAAO,KAAP;AACH;;AAED,mBAAOA,QAAQh3B,KAAR,CAAc,GAAd,EAAmB2c,QAAnB,CAA4B,KAAKzxB,SAAL,CAAeV,QAA3C,CAAP;AACH;;gCAEDysC,qCAAc;AAAA;;AACV7zC,cAAEgjC,IAAF,CAAO,kBAAP,EAA2B;AACvBr7B,oBAAI,KAAK6nC,IAAL,CAAU7nC,EADS;AAEvB/G,qBAAKqH,MAAM6uB,WAAN,EAFkB;AAGvB4b,6BAAazqC,MAAM4wB,OAAN,CAAc,KAAK2W,IAAL,CAAUjoC,OAAxB,CAHU;AAIvB8b,sBAAM,KAAKswB,SAAL,KAAmB,KAAnB,GAA2B;AAJV,aAA3B,EAKG,UAAC3mC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,sBAAEC,MAAF,CAAS,QAAKkvC,IAAd,EAAoBxiC,KAAKA,IAAzB;AACH,iBAFD,MAEO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAXD;AAYH;;gCAEDqoC,6CAAkB;AAAA;;AACd,gBAAI,KAAKrtC,OAAL,IAAgB,KAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,KAAKU,SAAL,CAAeV,QAAjE,EAA2E;AACvEpH,kBAAEgjC,IAAF,CAAO,sBAAP,EAA+B;AAC3Br7B,wBAAI,KAAK6nC,IAAL,CAAU7nC,EADa;AAE3BgvC,0BAAM,CAAC,KAAKnH,IAAL,CAAU/8B;AAFU,iBAA/B,EAGG,UAACzF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,gCAAKomC,IAAL,CAAU/8B,QAAV,GAAqB,CAAC,QAAK+8B,IAAL,CAAU/8B,QAAhC;AACAlT,2BAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,oCAAQ,SAD0B;AAElCkG,kCAAM,QAAKA;AAFuB,yBAAtC;AAIArmC,+BAAOC,OAAP,CAAe,QAAKomC,IAAL,CAAU/8B,QAAV,GAAqB,WAArB,GAAmC,WAAlD;AACH,qBAPD,MAOO;AACHtJ,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,iBAdD;AAeH;AACJ;;gCAEDmmC,2CAAiB;AACb,gBAAIz7B,IAAI,KAAKs8B,OAAL,EAAR;AACAt8B,iBAAKA,EAAEyC,IAAF,CAAO,YAAM;AAAEhR,uBAAOC,OAAP,CAAe,SAAf;AAA4B,aAA3C,CAAL;AACH;;gCAED6rC,2CAAiB;AACb,iBAAK2B,aAAL,CAAmB/iC,IAAnB,CAAwB,KAAK27B,IAA7B;AACH;;gCAEDyE,2CAAoC;AAAA,gBAArBpuC,WAAqB,uEAAP,KAAO;;AAChCtG,eAAG2H,OAAH,CAAW1H,OAAOoG,+BAAlB,EAAmD;AAC/CC,6BAAaA,WADkC;AAE/CyjC,wBAAQ,KAFuC;AAG/C9O,qBAAK,KAAK+a,IAAL;AAH0C,aAAnD;AAKH;;gCAEDL,qCAAc;AACV,gBAAI,KAAKltC,OAAL,IAAgB,KAAKwnC,IAAL,CAAUn/B,OAAV,CAAkBjJ,QAAlB,IAA8B,KAAKU,SAAL,CAAeV,QAAjE,EAA2E;AACvE,qBAAKyvC,eAAL,CAAqBhjC,IAArB,CAA0B,MAA1B,EAAkC,KAAK27B,IAAvC;AACH;AACJ;;gCAEDgF,qCAAc;AACV,gBAAI,CAAC/sC,MAAMoP,eAAX,EAA4B;AACxBtX,mBAAG2H,OAAH,CAAW1H,OAAOyV,iBAAlB,EAAqC,EAAEq0B,QAAQ,MAAV,EAAkB3hC,IAAI,KAAK6nC,IAAL,CAAU7nC,EAAhC,EAArC;AACH;AACJ;;gCAEDwtC,qCAAc;AAAA;;AACV,gBAAI,CAAC,KAAKkB,QAAV,EAAoB;AAChBr2C,kBAAEgjC,IAAF,CAAO,sBAAP,EAA+B;AAC3Br7B,wBAAI,KAAK6nC,IAAL,CAAU7nC;AADa,iBAA/B,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,gCAAKitC,QAAL,GAAgBrpC,KAAKA,IAArB;AACAzN,2BAAG2H,OAAH,CAAW1H,OAAO+V,uBAAlB,EAA2C,EAAE+zB,QAAQ,KAAV,EAAiBt8B,MAAM,QAAKqpC,QAA5B,EAA3C;AACAltC,+BAAOC,OAAP,CAAe,SAAf;AACH,qBAJD,MAIO;AACHD,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBAVD;AAWH,aAZD,MAYO;AACHhN,kBAAEgjC,IAAF,CAAO,yBAAP,EAAkC;AAC9B8T,yBAAK,KAAKT,QAAL,CAAc1uC;AADW,iBAAlC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd7J,2BAAG2H,OAAH,CAAW1H,OAAO+V,uBAAlB,EAA2C,EAAE+zB,QAAQ,QAAV,EAAoBt8B,MAAM,QAAKqpC,QAA/B,EAA3C;AACA,gCAAKA,QAAL,GAAgB,IAAhB;AACAltC,+BAAOC,OAAP,CAAe,WAAf;AACH,qBAJD,MAIO;AACHD,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBAVD;AAWH;AAEJ;;gCAEDgoC,6CAAkB;AAAA;;AACd,gBAAI,CAAC,KAAKd,YAAV,EAAwB;AACpBl0C,kBAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/Br7B,wBAAI,KAAK6nC,IAAL,CAAU7nC;AADiB,iBAAnC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,gCAAK8qC,YAAL,GAAoBlnC,KAAKA,IAAzB;AACA7D,+BAAOC,OAAP,CAAe,SAAf;AACH,qBAHD,MAGO;AACHD,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBATD;AAUH,aAXD,MAWO;AACHhN,kBAAEgjC,IAAF,CAAO,6BAAP,EAAsC;AAClC+T,yBAAK,KAAK7C,YAAL,CAAkBvsC;AADW,iBAAtC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,gCAAK8qC,YAAL,GAAoB,IAApB;AACA/qC,+BAAOC,OAAP,CAAe,WAAf;AACH,qBAHD,MAGO;AACHD,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBATD;AAUH;AAEJ;;gCAEDgqC,yCAAgB;AACZz3C,eAAG2H,OAAH,CAAW1H,OAAOmW,8BAAlB,EAAkD,EAAEpQ,QAAQ,IAAV,EAAlD;AACAhG,eAAG2H,OAAH,CAAW1H,OAAOoG,+BAAlB,EAAmD,EAAEL,QAAQ,IAAV,EAAnD;AACH;;gCAED0xC,6CAAkB;AACdj3C,cAAE,kBAAF,EAAsBiM,QAAtB,sBAAoD,GAApD,EAAyD;AACrDvD,wBAAQ,CAAC;AAD4C,aAAzD;AAGH;;gCAEDwuC,6DAAyB3rC,MAAM;AAC3BA,iBAAK4rC,MAAL,GAAc,CAAC5rC,KAAK4rC,MAApB;AACH;;gCAEDC,yEAA+B7rC,MAAM;AACjCA,iBAAK4rC,MAAL,GAAc,KAAd;AACH;;gCAEDE,mDAAqB;AACjB,iBAAK7B,QAAL;AACH;;;;;;;;;;;;;;;;;;;;;QCtiBQ8B,4BAAAA;;;;;oCAETC,qCAAc,CAAE;;oCAEhBC,2CAAiB,CAEhB;;oCAED3jC,qBAAK4jC,GAAG30B,GAAG40B,QAAQC,QAAQ;AACvB,iBAAKF,CAAL,GAASA,CAAT;AACA,iBAAK30B,CAAL,GAASA,CAAT;AACA,iBAAK40B,MAAL,GAAcA,MAAd;AACA,iBAAKC,MAAL,GAAcA,MAAd;AACA,iBAAKta,QAAL,GAAgBp1B,MAAMixB,KAAN,CAAYpW,EAAEvb,OAAd,EAAuBkwC,EAAElwC,OAAzB,CAAhB;AACA,iBAAKqwC,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,IAAjB,EAAuBC,YAAY,KAAnC,EAAlB;AACH;;;;;;;;;;;;;;;;;;;;;QCfQC,4BAAAA;;;;iBAET/vC,UAAUP,MAAMO;iBAChBF,YAAYL,MAAMK;;;oCAElByvC,qCAAc,CAAE;;oCAEhBC,2CAAiB,CAEhB;;oCAED3jC,qBAAKmkC,aAAaC,KAAKC,cAAc;AACjC,iBAAKF,WAAL,GAAmBA,WAAnB;AACA,iBAAKxI,IAAL,GAAYwI,YAAYxI,IAAxB;AACA,iBAAKyI,GAAL,GAAWA,GAAX;AACA,iBAAKC,YAAL,GAAoBA,YAApB;AACA,iBAAKN,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,IAAjB,EAAuBC,YAAY,KAAnC,EAAlB;AACH;;oCAEDK,2CAAiB;AAAA;;AACb,iBAAKC,KAAL,GAAap4C,EAAEgjC,IAAF,CAAO,6BAAP,EAAsC,EAAEqV,KAAK,KAAKL,WAAL,CAAiBrwC,EAAxB,EAAtC,EAAoE,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AACxG,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd7J,uBAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC,EAAEo0B,QAAQ,SAAV,EAAqBkG,MAAMxiC,KAAKA,IAAhC,EAAtC;AACAzN,uBAAG2H,OAAH,CAAW1H,OAAOiW,0BAAlB,EAA8C,EAA9C;AACAtM,2BAAOC,OAAP,CAAe,aAAf;AACA,0BAAKwuC,OAAL,CAAa3S,IAAb;AACH,iBALD,MAKO;AACH97B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,aAAxB;AACH;AACJ,aATY,CAAb;AAUH;;;;;;;;;;;;;;;;;;;;;QC9BQsrC,wBAAAA;AAQT,iCAAc;AAAA;;AAAA;;AAAA,iBANdtwC,OAMc,GANJP,MAAMO,OAMF;AAAA,iBALdF,SAKc,GALFL,MAAMK,SAKJ;;AACV,iBAAKxI,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOiW,0BAApB,EAAgD,UAAC/V,OAAD,EAAa;AAC1E,sBAAK64C,cAAL;AACH,aAFgB,CAAjB;AAGH;;gCAKDz4C,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;gCAEDy4C,iDAAmBR,aAAaC,KAAKC,cAAc;AAC/C,iBAAKO,iBAAL,CAAuB5kC,IAAvB,CAA4BmkC,WAA5B,EAAyCC,GAAzC,EAA8CC,YAA9C;AACH;;gCAEDK,2CAAiB;AAAA;;AACbv4C,cAAEoN,GAAF,CAAM,0BAAN,EAAkC;AAC9BzF,oBAAI,KAAK6nC,IAAL,CAAU7nC;AADgB,aAAlC,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACjB,2BAAKsvC,YAAL,GAAoB1rC,KAAKA,IAAzB;AACG,2BAAK2rC,SAAL,GAAiBt4C,EAAEiN,OAAF,CAAUjN,EAAEu4C,KAAF,CAAQ5rC,KAAKA,IAAb,CAAV,CAAjB;AACH,iBAHD,MAGO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aATD;AAUH;;gCAEDuqC,qCAAc;AACV,iBAAKgB,cAAL;AACH;;gCAEDf,2CAAiB,CAEhB;;gCAED3jC,qBAAK27B,MAAM;AACP,iBAAKA,IAAL,GAAYA,IAAZ;AACA,iBAAKoI,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,IAAjB,EAAuBC,YAAY,KAAnC,EAAlB;AACH;;gCAEDK,yCAAe5sC,MAAM;AAAA;;AACjB,iBAAK6sC,KAAL,GAAap4C,EAAEgjC,IAAF,CAAO,6BAAP,EAAsC,EAAEqV,KAAK9sC,KAAK5D,EAAZ,EAAtC,EAAwD,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC5F,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd7J,uBAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC,EAAEo0B,QAAQ,SAAV,EAAqBkG,MAAMxiC,KAAKA,IAAhC,EAAtC;AACA,2BAAKurC,cAAL;AACApvC,2BAAOC,OAAP,CAAe,aAAf;AACH,iBAJD,MAIO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,aAAxB;AACH;AACJ,aARY,CAAb;AASH;;gCAEDwlC,uCAAcjnC,MAAM;AAAA;;AAChB,iBAAKstC,KAAL,GAAa74C,EAAEgjC,IAAF,CAAO,4BAAP,EAAqC,EAAEqV,KAAK9sC,KAAK5D,EAAZ,EAArC,EAAuD,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC3F,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKmvC,cAAL;AACApvC,2BAAOC,OAAP,CAAe,aAAf;AACH,iBAHD,MAGO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,aAAxB;AACH;AACJ,aAPY,CAAb;AAQH;;gCAED8rC,qCAAc;AACV,gBAAIC,iBAAW,KAAKL,YAAhB,GAA8B,KAAKlJ,IAAnC,EAAJ;AACA,gBAAIwJ,OAAO34C,EAAE6oC,MAAF,CAAS6P,IAAT,EAAe,SAAf,CAAX;AACA,gBAAIC,QAAQA,KAAKt3C,MAAL,GAAc,CAA1B,EAA6B;AACzB,oBAAI+1C,IAAIuB,KAAKA,KAAKt3C,MAAL,GAAc,CAAnB,CAAR;AACA,oBAAIohB,IAAIk2B,KAAKA,KAAKt3C,MAAL,GAAc,CAAnB,CAAR;AACA,oBAAIg2C,SAASr3C,EAAEyjB,OAAF,CAAUi1B,IAAV,EAAgBtB,CAAhB,CAAb;AACA,oBAAIE,SAASt3C,EAAEyjB,OAAF,CAAUi1B,IAAV,EAAgBj2B,CAAhB,CAAb;AACA,qBAAKm2B,iBAAL,CAAuBplC,IAAvB,CAA4B4jC,CAA5B,EAA+B30B,CAA/B,EAAkC40B,MAAlC,EAA0CC,MAA1C;AACH,aAND,MAMO;AACHxuC,uBAAOE,KAAP,CAAa,WAAb;AACH;AACJ;;;;;;;;;;;;;;;;;;;;;QCtFQ6vC,4BAAAA;AAoBT,qCAAc;AAAA;;AAAA;;AAAA,iBAlBd3zC,MAkBc,GAlBL,IAkBK;AAAA,iBAjBd4zC,KAiBc,GAjBN,EAiBM;AAAA,iBAhBdC,MAgBc,GAhBL,EAgBK;AAAA,iBAfdC,YAec,GAfC,EAeD;AAAA,iBAbdvxC,SAac,GAbFL,MAAMK,SAaJ;AAAA,iBAZdE,OAYc,GAZJP,MAAMO,OAYF;AAAA,iBAVdkhC,MAUc,GAVL,EAUK;AAAA,iBARdoQ,SAQc,GARF;AACRz1C,sBAAM,MADE;AAER8yC,sBAAM;AAFE,aAQE;;AACV,iBAAKr3C,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO0V,kBAApB,EAAwC,UAACxV,OAAD,EAAa;AAClE,oBAAIA,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AAC7B,0BAAK6P,KAAL,IAAcz5C,QAAQ8vC,IAAtB,SAA+B,MAAK2J,KAApC;AACA,0BAAKI,QAAL;AACAh6C,uBAAG2H,OAAH,CAAW1H,OAAOC,yBAAlB,EAA6C,EAAEI,gBAAcH,QAAQ8vC,IAAR,CAAa7nC,EAA7B,EAA7C;AACH,iBAJD,MAIO,IAAIjI,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AACpCjpC,sBAAEC,MAAF,CAASD,EAAEmG,IAAF,CAAO,MAAK2yC,KAAZ,EAAmB,EAAExxC,IAAIjI,QAAQ8vC,IAAR,CAAa7nC,EAAnB,EAAnB,CAAT,EAAsDjI,QAAQ8vC,IAA9D;AACA,0BAAK+J,QAAL;AACH,iBAHM,MAGA,IAAI75C,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AACpC,0BAAKkQ,SAAL,GAAiBn5C,EAAE+K,MAAF,CAAS,MAAKouC,SAAd,EAAyB;AAAA,+BAAM3Y,GAAG2O,IAAH,CAAQ7nC,EAAR,IAAcjI,QAAQ8vC,IAAR,CAAa7nC,EAAjC;AAAA,qBAAzB,CAAjB;AACA,0BAAKwxC,KAAL,GAAa94C,EAAE+K,MAAF,CAAS,MAAK+tC,KAAd,EAAqB,EAAExxC,IAAIjI,QAAQ8vC,IAAR,CAAa7nC,EAAnB,EAArB,CAAb;AACA,0BAAK4xC,QAAL;AACH;AACJ,aAbgB,CAAjB;AAcA,iBAAK9uC,UAAL,GAAkBlL,GAAGD,SAAH,CAAaE,OAAO2V,mBAApB,EAAyC,UAACzV,OAAD,EAAa;AACpE,oBAAIA,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AAC7B,0BAAK8P,MAAL,IAAe15C,QAAQ+5C,KAAvB,SAAiC,MAAKL,MAAtC;AACA,0BAAKG,QAAL;AACH,iBAHD,MAGO,IAAI75C,QAAQ4pC,MAAR,IAAkB,SAAtB,EAAiC;AACpCjpC,sBAAEC,MAAF,CAASD,EAAEmG,IAAF,CAAO,MAAK4yC,MAAZ,EAAoB,EAAEzxC,IAAIjI,QAAQ+5C,KAAR,CAAc9xC,EAApB,EAApB,CAAT,EAAwDjI,QAAQ+5C,KAAhE;AACA,0BAAKF,QAAL;AACH;AACJ,aARiB,CAAlB;AASA,iBAAKxzC,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAOoI,iBAApB,EAAuC,UAAClI,OAAD,EAAa;AAClE,sBAAK8vC,IAAL,GAAYnvC,EAAEmG,IAAF,CAAO,MAAK2yC,KAAZ,EAAmB,EAAExxC,IAAI,CAACF,MAAMC,MAAb,EAAnB,CAAZ;AACH,aAFiB,CAAlB;AAGA,iBAAK2C,UAAL,GAAkB9K,GAAGD,SAAH,CAAaE,OAAOwG,yBAApB,EAA+C,UAACtG,OAAD,EAAa;AAC1E,sBAAK6F,MAAL,GAAc7F,OAAd;AACH,aAFiB,CAAlB;AAGA,iBAAKmL,UAAL,GAAkBtL,GAAGD,SAAH,CAAaE,OAAO+V,uBAApB,EAA6C,UAAC7V,OAAD,EAAa;AACxE,sBAAKg6C,iBAAL;AACH,aAFiB,CAAlB;;AAIA,iBAAKC,gBAAL,GAAwBt5C,EAAEu5C,QAAF,CAAW;AAAA,uBAAM,MAAKC,QAAL,EAAN;AAAA,aAAX,EAAkC,GAAlC,EAAuC,EAAEC,SAAS,IAAX,EAAvC,CAAxB;AACH;;oCAKDh6C,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACA,iBAAKsK,UAAL,CAAgBtK,OAAhB;AACA,iBAAK0K,UAAL,CAAgB1K,OAAhB;AACA,iBAAK8K,UAAL,CAAgB9K,OAAhB;AACH;;oCAKDoG,+BAAW;;AAEP,iBAAK4zC,OAAL;AACA,iBAAKC,gBAAL;AACA,iBAAKN,iBAAL;AACH;;oCAGDM,+CAAmB;AAAA;;AACfh6C,cAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AACrC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK6wC,QAAL,GAAgBjtC,KAAKA,IAArB;AACH,iBAFD,MAEO;AACH,2BAAKitC,QAAL,GAAgB,EAAhB;AACH;AACJ,aAND;AAOH;;oCAEDP,iDAAoB;AAAA;;AAChB15C,cAAEoN,GAAF,CAAM,yBAAN,EAAiC,UAACJ,IAAD,EAAU;AACvC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKowC,SAAL,GAAiBxsC,KAAKA,IAAtB;AACH,iBAFD,MAEO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAND;AAOH;;oCAED+sC,6BAAU;AAAA;;AACN/5C,cAAEk6C,IAAF,CAAO,KAAKC,SAAL,EAAP,EAAyB,KAAKC,WAAL,EAAzB,EAA6CjgC,IAA7C,CAAkD,YAAM;AACpD,uBAAKo/B,QAAL;AACH,aAFD;AAGH;;oCAEDA,+BAAW;AAAA;;AACP,iBAAKF,YAAL,GAAoB,EAApB;AACAr5C,cAAEyG,IAAF,CAAO,KAAK2yC,MAAZ,EAAoB,UAAC1yC,KAAD,EAAQ+yC,KAAR,EAAkB;AAClCA,sBAAMN,KAAN,GAAc,EAAd;AACAn5C,kBAAEyG,IAAF,CAAO,OAAK0yC,KAAZ,EAAmB,UAACzyC,KAAD,EAAQ8oC,IAAR,EAAiB;AAChC,wBAAIA,KAAKiK,KAAT,EAAgB;AACZ,4BAAIjK,KAAKiK,KAAL,CAAW9xC,EAAX,KAAkB8xC,MAAM9xC,EAA5B,EAAgC;AAC5B8xC,kCAAMN,KAAN,CAAY/pC,IAAZ,CAAiBogC,IAAjB;AACA,gCAAI/nC,MAAMC,MAAN,IAAgB8nC,KAAK7nC,EAAzB,EAA6B;AACzB8xC,sCAAM9C,IAAN,GAAa,IAAb;AACH;AACJ;AACJ;AACJ,iBATD;AAUH,aAZD;;AAcA,iBAAK0C,YAAL,GAAoBh5C,EAAE6oC,MAAF,CAAS,KAAKiQ,KAAd,EAAqB;AAAA,uBAAK,CAACkB,EAAEZ,KAAR;AAAA,aAArB,CAApB;AACH;;oCAEDa,iDAAmBb,OAAO;AACtBA,kBAAM9C,IAAN,GAAa,CAAC8C,MAAM9C,IAApB;AACH;;oCAEDyD,qCAAc;AAAA;;AACV,mBAAOp6C,EAAEoN,GAAF,CAAM,oBAAN,EAA4B,UAACJ,IAAD,EAAU;AACzC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK+vC,KAAL,GAAansC,KAAKA,IAAlB;AACA,2BAAKwiC,IAAL,GAAYnvC,EAAEmG,IAAF,CAAO,OAAK2yC,KAAZ,EAAmB,EAAExxC,IAAI,CAACF,MAAMC,MAAb,EAAnB,CAAZ;AACH;AACJ,aALM,CAAP;AAMH;;oCAEDyyC,iCAAY;AAAA;;AACR,mBAAOn6C,EAAEoN,GAAF,CAAM,qBAAN,EAA6B,EAA7B,EAAiC,UAACJ,IAAD,EAAU;AAC9C,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKgwC,MAAL,GAAcpsC,KAAKA,IAAnB;AACH;AACJ,aAJM,CAAP;AAKH;;oCAEDutC,6CAAiBd,OAAO;AACpB,iBAAKe,WAAL,CAAiB3mC,IAAjB,CAAsB4lC,KAAtB;AACH;;oCAEDgB,2CAAgBhB,OAAO;AAAA;;AACnB,iBAAKiB,SAAL,CAAe7mC,IAAf,CAAoB;AAChB0iC,2BAAW,qBAAM;AACbv2C,sBAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,4BAAI8xC,MAAM9xC;AADgB,qBAA9B,EAEG,UAACqF,IAAD,EAAU;AACT,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA,mCAAKgwC,MAAL,GAAc/4C,EAAE+K,MAAF,CAAS,OAAKguC,MAAd,EAAsB,EAAEzxC,IAAI8xC,MAAM9xC,EAAZ,EAAtB,CAAd;AACH,yBAHD,MAGO;AACHwB,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBATD;AAUH;AAZe,aAApB;AAcH;;oCAED2tC,6CAAiBlB,OAAO;AACpB,iBAAK5C,eAAL,CAAqBhjC,IAArB,CAA0B,OAA1B,EAAmC4lC,KAAnC;AACH;;oCAEDmB,mDAAqB;AACjB,iBAAK1R,MAAL,GAAc,EAAd;AACA,iBAAKyQ,gBAAL;AACH;;oCAEDkB,iDAAmB/zC,OAAO;AACtB,iBAAK6yC,gBAAL;AACH;;oCAEDE,+BAAW;AAAA;;AACPx5C,cAAEoG,IAAF,CAAO,KAAK0yC,KAAZ,EAAmB,aAAK;AACpB,oBAAI,CAAC94C,EAAEk5B,QAAF,CAAWl5B,EAAEy6C,OAAF,CAAUT,EAAEr2C,KAAZ,CAAX,EAA+B3D,EAAEy6C,OAAF,CAAU,OAAK5R,MAAf,CAA/B,CAAL,EAA6D;AACzDmR,sBAAEU,OAAF,GAAY,IAAZ;AACH,iBAFD,MAEO;AACHV,sBAAEU,OAAF,GAAY,KAAZ;AACH;AACJ,aAND;;AAQA16C,cAAEoG,IAAF,CAAO,KAAK2yC,MAAZ,EAAoB,aAAK;AACrB,oBAAI,CAAC/4C,EAAE+N,IAAF,CAAO0U,EAAEq2B,KAAT,EAAgB;AAAA,2BAAK,CAACkB,EAAEU,OAAR;AAAA,iBAAhB,CAAL,EAAuC;AACnCj4B,sBAAEi4B,OAAF,GAAY,IAAZ;AACH,iBAFD,MAEO;AACHj4B,sBAAEi4B,OAAF,GAAY,KAAZ;AACAj4B,sBAAE6zB,IAAF,GAAS,IAAT;AACH;AACJ,aAPD;;AASAt2C,cAAEoG,IAAF,CAAO,KAAK+yC,SAAZ,EAAuB,cAAM;AACzB,oBAAI,CAACn5C,EAAEk5B,QAAF,CAAWl5B,EAAEy6C,OAAF,CAAUja,GAAG2O,IAAH,CAAQxrC,KAAlB,CAAX,EAAqC3D,EAAEy6C,OAAF,CAAU,OAAK5R,MAAf,CAArC,CAAL,EAAmE;AAC/DrI,uBAAGka,OAAH,GAAa,IAAb;AACH,iBAFD,MAEO;AACHla,uBAAGka,OAAH,GAAa,KAAb;AACH;AACJ,aAND;;AAQA,gBAAI,CAAC16C,EAAE+N,IAAF,CAAO,KAAKorC,SAAZ,EAAuB;AAAA,uBAAM,CAAC3Y,GAAGka,OAAV;AAAA,aAAvB,CAAL,EAAgD;AAC5C,qBAAKzB,SAAL,CAAe3C,IAAf,GAAsB,KAAtB;AACH,aAFD,MAEO;AACH,qBAAK2C,SAAL,CAAe3C,IAAf,GAAsB,IAAtB;AACH;;AAED,gBAAI,CAAC,KAAKzN,MAAV,EAAkB;AACd7oC,kBAAEoG,IAAF,CAAO,KAAK2yC,MAAZ,EAAoB,aAAK;AACrB,wBAAI/4C,EAAEmG,IAAF,CAAOsc,EAAEq2B,KAAT,EAAgB,EAAExxC,IAAI,CAACF,MAAMC,MAAb,EAAhB,CAAJ,EAA4C;AACxCob,0BAAE6zB,IAAF,GAAS,IAAT;AACH,qBAFD,MAEO;AACH7zB,0BAAE6zB,IAAF,GAAS,KAAT;AACH;AACJ,iBAND;AAOA,qBAAK2C,SAAL,CAAe3C,IAAf,GAAsB,KAAtB;AACH;AACJ;;oCAEDqE,yCAAezvC,MAAM;AACjBvL,cAAEgjC,IAAF,CAAO,uBAAP,EAAgC,EAAEr7B,IAAI4D,KAAK5D,EAAX,EAAhC;AACA,mBAAO,IAAP;AACH;;;;;;;;;;;;;;;;;;;;;QClOQszC,6BAAAA;AAKT,sCAAc;AAAA;;AAAA;;AACV,iBAAK37C,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOoG,+BAApB,EAAqD,UAAClG,OAAD,EAAa;AAC/E,oBAAIA,QAAQ4pC,MAAR,IAAkB,KAAtB,EAA6B;AACzBtpC,sBAAE,MAAKk7C,MAAP,EAAez6C,KAAf,GAAuBkxB,MAAvB,CAA8BjyB,QAAQ86B,GAAtC;AACH;AACJ,aAJgB,CAAjB;AAKH;;qCAKD16B,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QClBQo7C,qBAAAA;6BAOTC,2CAAiB;AAAA;;AAEbp7C,cAAE,KAAK2kB,OAAP,EAAgBhR,KAAhB,CAAsB,UAAC7M,KAAD,EAAW;AAC7B,sBAAK+M,IAAL;AACH,aAFD;AAIH;;AAKD,8BAAc;AAAA;;AAAA;;AAAA;;AAAA,iBAdd/L,SAcc,GAdFL,MAAMK,SAcJ;AAAA,iBAbdE,OAac,GAbJP,MAAMO,OAaF;;AACV,iBAAK1I,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOgW,eAApB,EAAqC,UAAC9V,OAAD,EAAa;AAC/D,uBAAK27C,QAAL,GAAgB37C,OAAhB;AACA,uBAAKmU,IAAL;AACH,aAHgB,CAAjB;AAIH;;6BAKD1N,+BAAW;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ;AACH;;6BAKD9iC,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;6BAED8T,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,KAAjB,EAAwBC,YAAY,IAApC,EAAlB;AACH;;6BAEDP,qCAAc;AAAA;;AACVv3C,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,eAArB;AACA5iC,cAAEoN,GAAF,CAAM,qBAAN,EAA6B,UAACJ,IAAD,EAAU;AACnC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKgwC,MAAL,GAAcpsC,KAAKA,IAAnB;AACH;AACJ,aAJD;AAKH;;6BAEDwqC,yCAAe+D,OAAO;AAAA;;AAElB,gBAAIxiB,OAAO9wB,MAAM4wB,OAAN,CAAc,KAAKwiB,QAAL,CAAc9zC,OAA5B,CAAX;AACA,gBAAIe,SAASb,MAAMiP,SAAf,SAA8BnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAA3D,CAAJ;;AAEA,gBAAIgzC,UAAUx7C,EAAE,KAAKy7C,SAAP,EAAkBv7C,QAAlB,CAA2B,WAA3B,CAAd;;AAEAsD,4BAAgBA,aAAa8I,OAAb,CAAqB9M,OAAOiX,qBAA5B,EAAmD+kC,OAAnD,CAAhB;;AAEAx7C,cAAEgjC,IAAF,uBAA6B;AACzBpiC,qBAAKqH,MAAM6uB,WAAN,EADoB;AAEzB4kB,2BAAWzzC,MAAMwwB,cAAN,CAAqB,KAAK4iB,QAAL,CAAc9zC,OAAnC,EAA4Ce,KAA5C,EAAmD8S,IAAnD,CAAwD,GAAxD,CAFc;AAGzBpX,uBAAO,KAAKq3C,QAAL,CAAcr3C,KAHI;AAIzBuD,yBAAS,KAAK8zC,QAAL,CAAc9zC,OAJE;AAKzBi0C,yBAASA,OALgB;AAMzB9E,0BAAU12C,EAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB,CANe;AAOzB8P,6BAAa3Z;AAPY,aAA7B,EAQG,UAAC/rB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKomC,IAAL,GAAYxiC,KAAKA,IAAjB;AACA7D,2BAAOC,OAAP,CAAe,SAAf;AACA7J,uBAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,gCAAQ,SAD0B;AAElCkG,8BAAM,OAAKA;AAFuB,qBAAtC;AAIA+L,0BAAMtW,IAAN;AACAjlC,sBAAE,8BAAF,EAAkCwhC,MAAlC,CAAyC,OAAzC;AACH,iBATD,MASO;AACHr4B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aArBD;AAsBH;;6BAED2uC,+CAAkB/yC,MAAM;AAAA;;AACpB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,OAAKy7C,SAAP,EAAkBv7C,QAAlB,CAA2B,OAA3B;AACA,wBAAIsD,YAAJ,EAAkB;AACd,4BAAIszC,MAAMtzC,aAAaC,OAAb,CAAqBjE,OAAOiX,qBAA5B,CAAV;AACA,4BAAIqgC,GAAJ,EAAS;AACL92C,8BAAE,OAAKy7C,SAAP,EAAkBv7C,QAAlB,CAA2B,cAA3B,EAA2C42C,GAA3C;AACH;AACJ;AACJ,iBARD;AASH;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCjGQ8E,sBAAAA;;;;iBAETvN,SAAS;iBACTC,OAAO;;;;iBAIP/yB,WAAWtT,MAAM6uB,WAAN;;;8BAKX3wB,+BAAW;AAAA;;AACPnG,cAAE,KAAKuuC,SAAP,EACK7F,MADL,CACY;AACJ8F,+BAAe,CADX;AAEJpO,uBAAO,KAFH;AAGJqO,mCAAmB,IAHf;AAIJC,+BAAe,KAJX;AAKJC,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5BlT,2BAAO7f,IAAP,CAAYqjC,GAAZ,GAAkBvuC,EAAEq6B,QAAF,CAAW,aAAX,CAAlB;AACAtP,2BAAO7f,IAAP,CAAYsjC,KAAZ,GAAoBzjB,OAAO7f,IAAP,CAAYnE,QAAZ,GAAuB,MAAvB,GAAgC,SAApD;AACA,0BAAKinC,MAAL,CAAYj/B,IAAZ,CAAiBgc,OAAO7f,IAAxB;AACAlL,sBAAEmO,KAAF,CAAQ,YAAM;AAAExO,0BAAE,MAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AAAiC,qBAAjD;AACH,iBAVG;AAWJykB,6BAAa;AACTC,gCAAY,oBAACzQ,IAAD,EAAU;AAClB,4BAAID,WAAW;AACX2Q,qCAAS;AADE,yBAAf;AAGAjvC,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAU1E,KAAjB,EAAwB,UAAC5B,KAAD,EAAQ6E,IAAR,EAAiB;AACrC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,6BAAtB,CAAP,EAAsD,EAAEznC,UAAUmE,KAAKnE,QAAjB,EAAtD,CAAL,EAAyF;AACrFk3B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,0EAAoCuH,KAAK1H,IAAzC,UAAkD0H,KAAKnE,QAAvD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQApH,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAUjE,QAAjB,EAA2B,UAACrC,KAAD,EAAQ6E,IAAR,EAAiB;AACxC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,SAAhB;AAAA,6BAAtB,CAAP,EAAyD,EAAEhrC,MAAM0H,KAAK1H,IAAb,EAAzD,CAAL,EAAoF;AAChFy6B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,2EAAqCuH,KAAKvH,KAA1C,UAAoDuH,KAAK1H,IAAzD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQA,+BAAOy6B,QAAP;AACH,qBAtBQ;AAuBT19B,yBAAK;AAvBI;AAXT,aADZ;AAsCAZ,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB;AACnB7iC,oBAAI,OADe;AAEnB+8B,wBAAQ,IAFW;AAGnB+F,wBAAQ,IAHW;AAInBlhB,0BAAU,cAJS;AAKnBmhB,wBAAQ,GALW;AAMnB9N,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH,iBANY;AAUnB6E,2BAAW,qBAAM;AACb9pC,sBAAE,MAAK8uC,cAAP,EAAuBj8B,KAAvB;AACH;AAZkB,aAAvB;AAcH;;8BAEDs8B,2DAAwBroC,OAAO;AAC3B,gBAAIA,MAAMijB,OAAN,KAAkB,EAAlB,IAAwB,CAAC/pB,EAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,YAAzB,CAA7B,EAAqE;AACjE,oBAAIpe,MAAMtqB,EAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,EAAV;AACA,oBAAIriB,MAAMs0B,MAAN,CAAajS,GAAb,CAAJ,EAAuB;AACnB,wBAAI,CAACjqB,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,KAAKmF,MAAd,EAAsB;AAAA,+BAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,qBAAtB,CAAP,EAAsD,EAAErS,MAAMlS,GAAR,EAAtD,CAAL,EAA2E;AACvE,6BAAK+jB,MAAL,CAAYj/B,IAAZ,CAAiB;AACbw/B,iCAAKvuC,EAAEq6B,QAAF,CAAW,aAAX,CADQ;AAEbmU,mCAAO,MAFM;AAGbrS,kCAAMlS;AAHO,yBAAjB;AAKAtqB,0BAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACH;AACJ;AACJ;AACJ;;8BAEDzW,uBAAO;AACH7T,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;8BAED0F,iDAAmB7jC,MAAM;AACrB,iBAAK8iC,MAAL,GAAchuC,EAAE+K,MAAF,CAAS,KAAKijC,MAAd,EAAsB,EAAEO,KAAKrjC,KAAKqjC,GAAZ,EAAtB,CAAd;AACH;;8BAEDS,yCAAgB;AACZ,iBAAKljC,MAAL;AACH;;8BAEDA,2BAAS;AACL,iBAAKkiC,MAAL,GAAc,EAAd;AACA,iBAAKC,IAAL,GAAY,EAAZ;AACAtuC,cAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACAtqB,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;8BAED4F,uCAAe;AAAA;;AAEX,gBAAI,KAAKjB,MAAL,CAAY3sC,MAAZ,KAAuB,CAA3B,EAA8B;AAC1ByH,uBAAOE,KAAP,CAAa,qBAAb;AACA;AACH;;AAED,iBAAKkmC,KAAL,GAAavvC,EAAEgjC,IAAF,CAAO,mBAAP,EAA4B;AACrCznB,0BAAUtT,MAAM6uB,WAAN,EAD2B;AAErCnvB,oBAAI,KAAK6nC,IAAL,CAAU7nC,EAFuB;AAGrC2mC,sBAAM,KAAKA,IAH0B;AAIrCtqC,uBAAO,KAAKwrC,IAAL,CAAUxrC,KAJoB;AAKrC+0B,sBAAM9wB,MAAM4wB,OAAN,CAAc,KAAK2W,IAAL,CAAUjoC,OAAxB,CAL+B;AAMrCe,uBAAOjI,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,UAA9D,EAA0EyX,IAA1E,GAAiFhB,KAAjF,EAN8B;AAOrCrR,0BAAU1I,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,SAAtB;AAAA,iBAA5B,EAA6DlrC,GAA7D,CAAiE,MAAjE,EAAyEyX,IAAzE,GAAgFhB,KAAhF,EAP2B;AAQrCxD,uBAAOvW,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,MAA9D,EAAsEyX,IAAtE,GAA6EhB,KAA7E;AAR8B,aAA5B,EASV,UAACpN,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK+C,MAAL;AACAhD,2BAAOC,OAAP,CAAe,SAAf;AACH,iBAHD,MAGO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAhBY,CAAb;AAiBH;;;;;;;;;;;;;;;;;;;;;;;;QC9HQ6uC,0BAAAA;;;;iBAETxN,SAAS;;;kCAKTyN,6BAAU;AACN,mBAAO,KAAKz4B,IAAL,IAAa,MAApB;AACH;;kCAKDld,+BAAW;AAAA;;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB;AACjBmZ,0BAAU,oBAAM;AACZ,wBAAI,MAAKD,OAAL,EAAJ,EAAoB;AAChB97C,0BAAEgjC,IAAF,CAAO,6BAAP,EAAsC;AAClCr7B,gCAAI,MAAKq0C,KAAL,CAAWr0C,EADmB;AAElC+uC,sCAAU12C,EAAE,MAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAFwB,yBAAtC,EAGG,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,kCAAEC,MAAF,CAAS,MAAK07C,KAAd,EAAqBhvC,KAAKA,IAA1B;AACAzN,mCAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,4CAAQ,SAD0B;AAElCkG,0CAAMxiC,KAAKA;AAFuB,iCAAtC;AAIA7D,uCAAOC,OAAP,CAAe,YAAf;AACH,6BAPD,MAOO;AACHD,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,YAAxB;AACH;AACJ,yBAdD;AAeH,qBAhBD,MAgBO;AACHhN,0BAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,gCAAI,MAAKq0C,KAAL,CAAWr0C,EADW;AAE1B+uC,sCAAU12C,EAAE,MAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAFgB,yBAA9B,EAGG,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,kCAAEC,MAAF,CAAS,MAAK07C,KAAd,EAAqBhvC,KAAKA,IAA1B;AACAzN,mCAAG2H,OAAH,CAAW1H,OAAO2V,mBAAlB,EAAuC;AACnCm0B,4CAAQ,SAD2B;AAEnCmQ,2CAAOzsC,KAAKA;AAFuB,iCAAvC;AAIA7D,uCAAOC,OAAP,CAAe,YAAf;AACH,6BAPD,MAOO;AACHD,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,YAAxB;AACH;AACJ,yBAdD;AAeH;AACJ;AAnCgB,aAArB;AAqCAhN,cAAE,KAAKi8C,IAAP,EAAarZ,QAAb,CAAsB;AAClBmZ,0BAAU,oBAAM;AACZ,wBAAI,MAAKD,OAAL,EAAJ,EAAoB;AAChB97C,0BAAEgjC,IAAF,CAAO,2BAAP,EAAoC;AAChCr7B,gCAAI,MAAKq0C,KAAL,CAAWr0C,EADiB;AAEhCu0C,oCAAQl8C,EAAE,MAAKi8C,IAAP,EAAarZ,QAAb,CAAsB,YAAtB;AAFwB,yBAApC,EAGG,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,kCAAEC,MAAF,CAAS,MAAK07C,KAAd,EAAqBhvC,KAAKA,IAA1B;AACAzN,mCAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,4CAAQ,SAD0B;AAElCkG,0CAAMxiC,KAAKA;AAFuB,iCAAtC;AAIA7D,uCAAOC,OAAP,CAAe,YAAf;AACH,6BAPD,MAOO;AACHD,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,YAAxB;AACH;AACJ,yBAdD;AAeH,qBAhBD,MAgBO;AACHhN,0BAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,gCAAI,MAAKq0C,KAAL,CAAWr0C,EADW;AAE1Bu0C,oCAAQl8C,EAAE,MAAKi8C,IAAP,EAAarZ,QAAb,CAAsB,YAAtB;AAFkB,yBAA9B,EAGG,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,kCAAEC,MAAF,CAAS,MAAK07C,KAAd,EAAqBhvC,KAAKA,IAA1B;AACAzN,mCAAG2H,OAAH,CAAW1H,OAAO2V,mBAAlB,EAAuC;AACnCm0B,4CAAQ,SAD2B;AAEnCmQ,2CAAOzsC,KAAKA;AAFuB,iCAAvC;AAIA7D,uCAAOC,OAAP,CAAe,YAAf;AACH,6BAPD,MAOO;AACHD,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,YAAxB;AACH;AACJ,yBAdD;AAeH;AACJ;AAnCiB,aAAtB;;AAsCAhN,cAAE,KAAKuuC,SAAP,EACK7F,MADL,CACY;AACJ8F,+BAAe,CADX;AAEJpO,uBAAO,KAFH;AAGJqO,mCAAmB,IAHf;AAIJE,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5BlT,2BAAO7f,IAAP,CAAYqjC,GAAZ,GAAkBvuC,EAAEq6B,QAAF,CAAW,aAAX,CAAlB;AACAr6B,sBAAEmO,KAAF,CAAQ,YAAM;AAAExO,0BAAE,MAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AAAiC,qBAAjD;;AAEA,wBAAIuT,QAAQ,EAAEl2B,IAAI,MAAKq0C,KAAL,CAAWr0C,EAAjB,EAAZ;AACA,wBAAIyjB,OAAO7f,IAAP,CAAYnE,QAAhB,EAA0B;AACtB/G,0BAAEC,MAAF,CAASu9B,KAAT,EAAgB,EAAEv1B,OAAO8iB,OAAO7f,IAAP,CAAYnE,QAArB,EAAhB;AACH,qBAFD,MAEO;AACH/G,0BAAEC,MAAF,CAASu9B,KAAT,EAAgB,EAAE90B,UAAUqiB,OAAO7f,IAAP,CAAY5D,EAAxB,EAAhB;AACH;;AAED,wBAAI,MAAKm0C,OAAL,EAAJ,EAAoB;AAChB97C,0BAAEgjC,IAAF,CAAO,sBAAP,EAA+BnF,KAA/B,EAAsC,UAAC7wB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC7D,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd,sCAAKilC,MAAL,CAAYj/B,IAAZ,CAAiBgc,OAAO7f,IAAxB;AACA,sCAAKywC,KAAL,CAAWG,eAAX,GAA6BnvC,KAAKA,IAAL,CAAUmvC,eAAvC;AACH,6BAHD,MAGO;AACHhzC,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,yBAPD;AAQH,qBATD,MASO;AACHhN,0BAAEgjC,IAAF,CAAO,uBAAP,EAAgCnF,KAAhC,EAAuC,UAAC7wB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC9D,gCAAIjD,KAAK5D,OAAT,EAAkB;AACd,sCAAKilC,MAAL,CAAYj/B,IAAZ,CAAiBgc,OAAO7f,IAAxB;AACA,sCAAKywC,KAAL,CAAWI,gBAAX,GAA8BpvC,KAAKA,IAAL,CAAUovC,gBAAxC;AACH,6BAHD,MAGO;AACHjzC,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,yBAPD;AAQH;AACJ,iBAlCG;AAmCJ+hC,6BAAa;AACTC,gCAAY,oBAACzQ,IAAD,EAAU;AAClB,4BAAID,WAAW;AACX2Q,qCAAS;AADE,yBAAf;AAGAjvC,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAU1E,KAAjB,EAAwB,UAAC5B,KAAD,EAAQ6E,IAAR,EAAiB;AACrC,gCAAI,CAAClL,EAAEmG,IAAF,CAAO,MAAK6nC,MAAZ,EAAoB,EAAEjnC,UAAUmE,KAAKnE,QAAjB,EAApB,CAAL,EAAuD;AACnDk3B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,0EAAoCuH,KAAK1H,IAAzC,UAAkD0H,KAAKnE,QAAvD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQApH,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAUjE,QAAjB,EAA2B,UAACrC,KAAD,EAAQ6E,IAAR,EAAiB;AACxC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK,CAAC52B,EAAErQ,QAAR;AAAA,6BAAtB,CAAP,EAAgD,EAAEvD,MAAM0H,KAAK1H,IAAb,EAAhD,CAAL,EAA2E;AACvEy6B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,2EAAqCuH,KAAKvH,KAA1C,UAAoDuH,KAAK1H,IAAzD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQA,+BAAOy6B,QAAP;AACH,qBAtBQ;AAuBT19B,yBAAK;AAvBI;AAnCT,aADZ;AA8DH;;kCAEDwuC,iDAAmB7jC,MAAM;AAAA;;AACrB,gBAAIsyB,QAAQ,EAAEl2B,IAAI,KAAKq0C,KAAL,CAAWr0C,EAAjB,EAAZ;AACA,gBAAI4D,KAAKnE,QAAT,EAAmB;AACf/G,kBAAEC,MAAF,CAASu9B,KAAT,EAAgB,EAAEv1B,OAAOiD,KAAKnE,QAAd,EAAhB;AACH,aAFD,MAEO;AACH/G,kBAAEC,MAAF,CAASu9B,KAAT,EAAgB,EAAE90B,UAAUwC,KAAK5D,EAAjB,EAAhB;AACH;;AAED,gBAAI,KAAKm0C,OAAL,EAAJ,EAAoB;AAChB97C,kBAAEgjC,IAAF,CAAO,yBAAP,EAAkCnF,KAAlC,EAAyC,UAAC7wB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAChE,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,+BAAKilC,MAAL,GAAchuC,EAAE+K,MAAF,CAAS,OAAKijC,MAAd,EAAsB,EAAEO,KAAKrjC,KAAKqjC,GAAZ,EAAtB,CAAd;AACA,+BAAKoN,KAAL,CAAWG,eAAX,GAA6BnvC,KAAKA,IAAL,CAAUmvC,eAAvC;AACH,qBAHD,MAGO;AACHhzC,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBAPD;AAQH,aATD,MASO;AACHhN,kBAAEgjC,IAAF,CAAO,0BAAP,EAAmCnF,KAAnC,EAA0C,UAAC7wB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AACjE,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,+BAAKilC,MAAL,GAAchuC,EAAE+K,MAAF,CAAS,OAAKijC,MAAd,EAAsB,EAAEO,KAAKrjC,KAAKqjC,GAAZ,EAAtB,CAAd;AACA,+BAAKoN,KAAL,CAAWI,gBAAX,GAA8BpvC,KAAKA,IAAL,CAAUovC,gBAAxC;AACH,qBAHD,MAGO;AACHjzC,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,iBAPD;AAQH;AACJ;;kCAEDb,2BAAS;AACL,iBAAKkiC,MAAL,GAAc,EAAd;AACAruC,cAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACH;;kCAEDzW,qBAAKwP,MAAM24B,OAAO;AACd,iBAAK34B,IAAL,GAAYA,IAAZ;AACA,iBAAK24B,KAAL,GAAaA,KAAb;AACA,iBAAKpE,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,IAAjB,EAAuBC,YAAY,KAAnC,EAAlB;AACH;;kCAEDP,qCAAc;AAAA;;AACV,iBAAKprC,MAAL;AACAnM,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,KAAKoZ,KAAL,CAAWtF,QAAX,GAAsB,aAAtB,GAAsC,eAA3D;AACA12C,cAAE,KAAKi8C,IAAP,EAAarZ,QAAb,CAAsB,KAAKoZ,KAAL,CAAWE,MAAX,GAAoB,aAApB,GAAoC,eAA1D;AACA,gBAAIG,cAAJ;AACA,gBAAI,KAAKP,OAAL,EAAJ,EAAoB;AAChBO,wBAAQ,KAAKL,KAAL,CAAWG,eAAnB;AACH,aAFD,MAEO;AACHE,wBAAQ,KAAKL,KAAL,CAAWI,gBAAnB;AACH;AACD/7C,cAAEi8C,OAAF,CAAUD,KAAV,EAAiB,UAAC9wC,IAAD,EAAU;AACvB,oBAAIgxC,QAAQhxC,KAAKxD,IAAL,GAAYwD,KAAKxD,IAAjB,GAAwBwD,KAAKf,OAAzC;AACA+xC,sBAAM3N,GAAN,GAAYvuC,EAAEq6B,QAAF,CAAW,aAAX,CAAZ;AACA,uBAAK2T,MAAL,CAAYj/B,IAAZ,CAAiBmtC,KAAjB;AACH,aAJD;AAKH;;kCAED/E,2CAAiB,CAEhB;;;;;;;;;;;;;;;;;;;;;QCrNQgF,4BAAAA;;;;;oCAKTr2C,+BAAW;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ;AACH;;oCAEDyR,yCAAgB;AAAA;;AACZ,iBAAKoI,IAAL,GAAYz8C,EAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AACtCn/B,sBAAM,KAAKA,IAD2B;AAEtCyqC,sBAAM,KAAKA,IAF2B;AAGtCoI,0BAAU12C,EAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAH4B,aAA9B,EAIT,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,0BAAKvF,IAAL,GAAY,EAAZ;AACA,0BAAKyqC,IAAL,GAAY,EAAZ;AACAtuC,sBAAE,MAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,eAArB;AACAz5B,2BAAOC,OAAP,CAAe,SAAf;AACApJ,sBAAE,MAAK08C,KAAP,EAAchT,KAAd,CAAoB,MAApB;AACAnqC,uBAAG2H,OAAH,CAAW1H,OAAO2V,mBAAlB,EAAuC,EAAEm0B,QAAQ,SAAV,EAAqBmQ,OAAOzsC,KAAKA,IAAjC,EAAvC;AACH,iBAPD,MAOO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAfW,CAAZ;AAgBH;;;;;;;;;;;;;;;;;;;;;QC1BQ2vC,0BAAAA;;;;;kCAOTx2C,+BAAW;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ;AACH;;kCAED/uB,qBAAK4lC,OAAO;AACR,iBAAKA,KAAL,GAAaA,KAAb;AACA,iBAAK7B,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,KAAjB,EAAwBC,YAAY,IAApC,EAAlB;AACH;;kCAEDP,qCAAc;AAAA;;AACVv3C,cAAEoN,GAAF,CAAM,kBAAN,EAA0B;AACtBzF,oBAAI,KAAK8xC,KAAL,CAAW9xC;AADO,aAA1B,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,0BAAKqwC,KAAL,GAAazsC,KAAKA,IAAlB;AACAhN,sBAAE,MAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,MAAK6W,KAAL,CAAW/C,QAAX,GAAsB,aAAtB,GAAsC,eAA3D;AACH;AACJ,aAPD;AAQH;;kCAEDc,yCAAe+D,OAAO;AAClBv7C,cAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,oBAAI,KAAK8xC,KAAL,CAAW9xC,EADW;AAE1B9D,sBAAM,KAAK41C,KAAL,CAAW51C,IAFS;AAG1ByqC,sBAAM,KAAKmL,KAAL,CAAWvM,WAHS;AAI1BwJ,0BAAU12C,EAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAJgB,aAA9B,EAKG,UAAC51B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,SAAf;AACA7J,uBAAG2H,OAAH,CAAW1H,OAAO2V,mBAAlB,EAAuC;AACnCm0B,gCAAQ,SAD2B;AAEnCmQ,+BAAOzsC,KAAKA;AAFuB,qBAAvC;AAIAuuC,0BAAMtW,IAAN;AACH,iBAPD,MAOO;AACH97B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAhBD;AAiBH;;;;;;;;;;;;;;;;;;;;;QC7CQ4vC,4BAAAA;;;;iBAIT90C,YAAYL,MAAMK;iBAClBE,UAAUP,MAAMO;;;oCAKhB7B,+BAAW,CAAE;;oCAEb0N,qBAAK27B,MAAM;AACP,iBAAKA,IAAL,GAAYA,IAAZ;AACA,iBAAKoI,OAAL,CAAa/jC,IAAb,CAAkB,EAAEgkC,eAAe,KAAjB,EAAwBC,YAAY,IAApC,EAAlB;AACH;;oCAEDP,qCAAc;AAAA;;AACVv3C,cAAEoN,GAAF,CAAM,qBAAN,EAA6B,UAACJ,IAAD,EAAU;AACnC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,0BAAKgwC,MAAL,GAAcpsC,KAAKA,IAAnB;AACH;AACJ,aAJD;AAKH;;oCAEDwqC,yCAAe+D,OAAO;AAClB,gBAAIzE,MAAM92C,EAAE,KAAKy7C,SAAP,EAAkBv7C,QAAlB,CAA2B,WAA3B,CAAV;AACAF,cAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/Br7B,oBAAI,KAAK6nC,IAAL,CAAU7nC,EADiB;AAE/BmvC,qBAAKA,MAAMA,GAAN,GAAY;AAFc,aAAnC,EAGG,UAAC9pC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,WAAf;AACA,wBAAI,CAAC4D,KAAKA,IAAL,CAAUysC,KAAf,EAAsB;AAClBzsC,6BAAKA,IAAL,CAAUysC,KAAV,GAAkB,IAAlB;AACH;AACDl6C,uBAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,gCAAQ,SAD0B;AAElCkG,8BAAMxiC,KAAKA;AAFuB,qBAAtC;AAIAuuC,0BAAMtW,IAAN;AACH,iBAVD,MAUO;AACH97B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAjBD;AAkBH;;oCAED2uC,+CAAkB/yC,MAAM;AAAA;;AACpB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,OAAKy7C,SAAP,EAAkBv7C,QAAlB,CAA2B,OAA3B,EAAoCA,QAApC,CAA6C,cAA7C,EAA6D,OAAKsvC,IAAL,CAAUiK,KAAV,GAAkB,OAAKjK,IAAL,CAAUiK,KAAV,CAAgB9xC,EAAhB,GAAqB,EAAvC,GAA4C,EAAzG;AACH,iBAFD;AAGH;AACJ;;;;;;;;;;;;;;;;;;;;;ACtDL,QAAIvB,KAAKC,SAAT;;QAGaw2C,wBAAAA;AAST,iCAAc;AAAA;;AAAA;;AAAA,iBAPdt3C,MAOc,GAPL,IAOK;AAAA,iBALduC,SAKc,GALFL,MAAMK,SAKJ;;AACV,iBAAKxI,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOoI,iBAApB,EAAuC,UAAClI,OAAD,EAAa;AACjE,sBAAKo9C,aAAL,CAAmB,IAAnB;AACH,aAFgB,CAAjB;AAGA,iBAAKx9C,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOmW,8BAApB,EAAoD,UAACjW,OAAD,EAAa;AAC9E,sBAAKo9C,aAAL,CAAmBp9C,QAAQ6F,MAA3B;AACH,aAFgB,CAAjB;AAGH;;gCAKDzF,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;gCAKDoG,+BAAW;AAAA;;AACPnG,cAAE,KAAK+8C,OAAP,EAAgBl2C,EAAhB,CAAmB,YAAnB,EAAiC,UAACC,KAAD,EAAW;AACxC9G,kBAAE,OAAK+8C,OAAP,EAAgB/b,UAAhB,CAA2B,MAA3B;AACH,aAFD;;AAIAhhC,cAAE,KAAKuuC,SAAP,EACK7F,MADL,CACY;AACJrlB,sBAAM,UADF;AAEJmrB,+BAAe,CAFX;AAGJC,mCAAmB,IAHf;AAIJE,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5Bt+B,sBAAE,OAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,cAAzB;AACAroC,sBAAEmO,KAAF,CAAQ,YAAM;AACVxO,0BAAE,OAAKuuC,SAAP,EAAkB/nC,IAAlB,CAAuB,OAAvB,EAAgCw2C,IAAhC;AACAz9C,2BAAG2H,OAAH,CAAW1H,OAAOC,yBAAlB,EAA6C,EAAEI,IAAIurB,OAAOxqB,GAAb,EAA7C;AACH,qBAHD;AAIA,2BAAO,KAAP;AACH,iBAXG;AAYJmuC,6BAAa;AACTC,gCAAY,oBAASzQ,IAAT,EAAe;AAYvB,4BAAID,WAAW;AACX2Q,qCAAS;AACLkK,uCAAO;AACHt1C,6DAAa06B,KAAKvxB,IAAL,CAAUmsC,KAAV,CAAgBz3C,MAA7B,MADG;AAEHutC,6CAAS;AAFN,iCADF;AAKLY,0CAAU;AACNhsC,6DAAa06B,KAAKvxB,IAAL,CAAU6iC,QAAV,CAAmBnuC,MAAhC,MADM;AAENutC,6CAAS;AAFH;AALL;AADE,yBAAf;AAYAjvC,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAUmsC,KAAjB,EAAwB,UAACzyC,KAAD,EAAQ6E,IAAR,EAAiB;AACrC+yB,qCAAS2Q,OAAT,CAAiBkK,KAAjB,CAAuBlK,OAAvB,CAA+B7/B,IAA/B,CAAoC;AAChCpL,uCAAOuH,KAAKvH,KADoB;;AAGhCkpC,2EAAyC3hC,KAAK8E,OAAL,CAAaxM,IAAtD,4BAAkEuC,GAAGhD,MAAH,CAAUmI,KAAK0xC,UAAf,EAA2B,OAA3B,CAHlC;AAIhCr8C,iDAAe2K,KAAK5D;AAJY,6BAApC;AAMH,yBAPD;AAQA3H,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAU6iC,QAAjB,EAA2B,UAACnpC,KAAD,EAAQ6E,IAAR,EAAiB;AACxC+yB,qCAAS2Q,OAAT,CAAiBY,QAAjB,CAA0BZ,OAA1B,CAAkC7/B,IAAlC,CAAuC;AACnCpL,mDAAiBuH,KAAK2xC,QAAtB,aAAsC3xC,KAAK5D,EADR;;AAGnCulC,2EAAyC3hC,KAAK8E,OAAL,CAAaxM,IAAtD,4BAAkEuC,GAAGhD,MAAH,CAAUmI,KAAK0xC,UAAf,EAA2B,OAA3B,CAAlE,aAA6Gh1C,MAAMu1B,UAAN,CAAiBjyB,KAAKhE,OAAtB,CAH1E;AAInC3G,iDAAe2K,KAAK2xC,QAApB,aAAoC3xC,KAAK5D;AAJN,6BAAvC;AAMH,yBAPD;AAQA,+BAAO22B,QAAP;AACH,qBA1CQ;AA2CT19B,yBAAK;AA3CI;AAZT,aADZ;;AA4DA,iBAAKo5C,gBAAL;;AAEA,gBAAIvyC,MAAMC,MAAN,IAAgB,QAApB,EAA8B;AAC1BrH,kBAAEmO,KAAF,CAAQ,YAAM;AAAExO,sBAAE,8BAAF,EAAkC2T,KAAlC;AAA4C,iBAA5D;AACH;AACJ;;gCAEDqmC,+CAAmB;AAAA;;AACfh6C,cAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AACrC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK6wC,QAAL,GAAgBjtC,KAAKA,IAArB;AACH,iBAFD,MAEO;AACH,2BAAKitC,QAAL,GAAgB,EAAhB;AACH;AACJ,aAND;AAOH;;gCAEDkD,iDAAoB;AAChB,iBAAKC,aAAL,GAAqB,KAArB;AACH;;gCAEDC,mDAAqB;AACjB,iBAAKD,aAAL,GAAqB,IAArB;AACH;;gCAEDN,uCAAcv3C,QAAQ;AAClB,gBAAI,KAAKA,MAAL,KAAgBA,MAApB,EAA4B;AACxB;AACH;AACD,iBAAKA,MAAL,GAAcA,SAASA,MAAT,GAAkB,CAAC,KAAKA,MAAtC;AACAhG,eAAG2H,OAAH,CAAW1H,OAAOwG,yBAAlB,EAA6C,KAAKT,MAAlD;AACH;;gCAED+3C,6CAAkB;AACd,iBAAKC,UAAL,CAAgB1pC,IAAhB;AACH;;gCAED2pC,yCAAgB;AACZx9C,cAAEgjC,IAAF,CAAO,eAAP,EAAwBt0B,MAAxB,CAA+B,YAAM;AACjCzG,sBAAMgvB,cAAN;AACH,aAFD;AAGH;;gCAEDwmB,iDAAmB32C,OAAO;AACtB,gBAAIA,MAAMijB,OAAN,IAAiB,EAArB,EAAyB;AACrB/pB,kBAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,WAAzB,EAAsC,EAAtC;AACH;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCvIQgV,sBAAAA;AAST,+BAAc;AAAA;;AAAA;;AAAA;;AAEV,iBAAKp+C,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOsV,uBAApB,EAA6C,UAACpV,OAAD,EAAa;AACvE,oBAAIA,QAAQiI,EAAR,IAAc+1C,YAAYC,IAA9B,EAAoC;AAChCl2C,0BAAMoP,eAAN,GAAwB,IAAxB;AACA,2BAAKzX,IAAL;AACH;AACJ,aALgB,CAAjB;AAMA,iBAAK2G,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAOuV,yBAApB,EAA+C,UAACrV,OAAD,EAAa;AAC1E,oBAAIA,QAAQiI,EAAR,IAAc+1C,YAAYC,IAA9B,EAAoC;AAChC,2BAAK9sB,OAAL;AACAppB,0BAAMoP,eAAN,GAAwB,KAAxB;AACH;AACJ,aALiB,CAAlB;AAMA,iBAAKxM,UAAL,GAAkB9K,GAAGD,SAAH,CAAaE,OAAOyV,iBAApB,EAAuC,UAACvV,OAAD,EAAa;AAClE,uBAAK4pC,MAAL,GAAc5pC,QAAQ4pC,MAAtB;AACAtpC,kBAAEoN,GAAF,CAAM,iBAAN,EAAyB,EAAEzF,IAAIjI,QAAQiI,EAAd,EAAzB,EAA6C,UAACqF,IAAD,EAAU;AACnD,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,+BAAKomC,IAAL,GAAYxiC,KAAKA,IAAjB;AACAhN,0BAAE,8BAAF,EAAkC2T,KAAlC;AACH;AACJ,iBALD;AAOH,aATiB,CAAlB;AAUA,iBAAKlJ,UAAL,GAAkBlL,GAAGD,SAAH,CAAaE,OAAO0V,kBAApB,EAAwC,UAACxV,OAAD,EAAa;AACnE,uBAAK4pC,MAAL,GAAc5pC,QAAQ4pC,MAAtB;AACA,oBAAI5pC,QAAQ4pC,MAAR,KAAmB,SAAvB,EAAkC;AAC9B,2BAAKkG,IAAL,GAAY9vC,QAAQ8vC,IAApB;AACAxvC,sBAAE,qBAAF,EAAyBoC,IAAzB,CAA8B,IAA9B;AACApC,sBAAE,gBAAF,EAAoB4G,IAApB,CAAyB,OAAzB,EAAkC,mBAAlC;AACH;AAEJ,aARiB,CAAlB;;AAUA,iBAAKg3C,uBAAL,GAA+Bv9C,EAAEw9C,IAAF,CAAO,YAAM;AACxC79C,kBAAE,mBAAF,EAAuB89C,KAAvB,CAA6B,UAAC50C,CAAD,EAAO;AAChC,wBAAIoJ,KAAKtS,EAAEkJ,EAAEjC,aAAJ,CAAT;;AAEA,wBAAI,CAACiC,EAAEohC,QAAH,IAAephC,EAAE6gB,OAAF,IAAa,EAAhC,EAAoC;AAChC,4BAAI,OAAKkmB,SAAL,CAAe71B,KAAf,EAAJ,EAA4B;AACxB,mCAAK2jC,IAAL,CAAU70C,CAAV,EAAa,IAAb;AACH,yBAFD,MAEO;AACH,mCAAK+mC,SAAL,CAAeC,UAAf,CAA0Br9B,KAA1B;AACH;AAEJ,qBAPD,MAOO,IAAI3J,EAAEohC,QAAF,IAAcphC,EAAE6gB,OAAF,IAAa,EAA/B,EAAmC;AACtC,+BAAKkmB,SAAL,CAAeC,UAAf,CAA0Br9B,KAA1B;AACH,qBAFM,MAEA,IAAI3J,EAAE6gB,OAAF,IAAa,EAAjB,EAAqB;AACxBzX,2BAAGgY,GAAH,CAAO,EAAP;AACH;AACJ,iBAfD;AAgBH,aAjB8B,CAA/B;AAkBH;;8BAKDxqB,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACA,iBAAKsK,UAAL,CAAgBtK,OAAhB;AACA,iBAAK0K,UAAL,CAAgB1K,OAAhB;AACH;;8BAEDoM,2BAAS;AACL,iBAAKm9B,MAAL,GAAc,IAAd;AACA,iBAAKkG,IAAL,GAAY,IAAZ;AACAxvC,cAAE,qBAAF,EAAyBoC,IAAzB,CAA8B,IAA9B;AACApC,cAAE,gBAAF,EAAoB4G,IAApB,CAAyB,OAAzB,EAAkC,gBAAlC;AACA5G,cAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B,EAA3B;AACA,iBAAK2lB,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACA,iBAAK61B,SAAL,CAAeiC,UAAf;AACA,iBAAKjC,SAAL,GAAiB,IAAjB;AACH;;8BAED+N,iCAAY;AACRh+C,cAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B,KAAKklB,IAAL,CAAUxrC,KAArC;AACA,iBAAKisC,SAAL,CAAe71B,KAAf,CAAqB,KAAKo1B,IAAL,CAAUjoC,OAA/B;AACAvH,cAAE,qBAAF,EAAyBoC,IAAzB,CAA8B,IAA9B;AACApC,cAAE,gBAAF,EAAoB4G,IAApB,CAAyB,OAAzB,EAAkC,mBAAlC;AACH;;8BAEDq3C,mCAAa;AAAA;;AACT,gBAAIC,OAAOj2C,MAAMkvB,QAAN,CAAe,MAAf,CAAX;AACA,gBAAIgnB,OAAOl2C,MAAMkvB,QAAN,CAAe,MAAf,CAAX;AACA,gBAAIv2B,MAAM,IAAV;AACA,gBAAI+G,KAAK,IAAT;AACA,gBAAIu2C,IAAJ,EAAU;AACNt9C;AACA+G,qBAAKu2C,IAAL;AACH,aAHD,MAGO,IAAIC,IAAJ,EAAU;AACbv9C;AACA+G,qBAAKw2C,IAAL;AACH;;AAED,gBAAIv9C,GAAJ,EAAS;AACLZ,kBAAEoN,GAAF,CAAMxM,GAAN,EAAW,EAAE+G,IAAI,CAACA,EAAP,EAAX,EAAwB,UAACqF,IAAD,EAAU;AAC9B,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,+BAAK6mC,SAAL,CAAe71B,KAAf,CAAqBpN,KAAKA,IAAL,CAAUzF,OAA/B;AACA,4BAAI+iB,MAAMtqB,EAAE,mBAAF,EAAuBsqB,GAAvB,EAAV;AACA,4BAAI,CAACA,GAAL,EAAU;AACN,gCAAI8zB,KAAK,sBAAsBniC,IAAtB,CAA2BjP,KAAKA,IAAL,CAAUzF,OAArC,CAAT;AACA,gCAAI62C,MAAMA,GAAG18C,MAAH,GAAY,CAAtB,EAAyB;AACrB1B,kCAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B8zB,GAAG,CAAH,CAA3B;AACH;AACJ;AACJ,qBATD,MASO;AACHj1C,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,iBAbD;AAcH;AACJ;;8BAEDqxC,iCAAY;AACRr+C,cAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B,KAAKklB,IAAL,CAAUxrC,KAAV,GAAkB,OAA7C;AACA,iBAAKisC,SAAL,CAAe71B,KAAf,CAAqB,KAAKo1B,IAAL,CAAUjoC,OAA/B;AACA,iBAAKioC,IAAL,GAAY,IAAZ;AACH;;8BAEDpwC,uBAAO;AAAA;;AAEH,iBAAK6wC,SAAL,GAAiB,wBAAc;AAC3BnkC,yBAAS9L,EAAE,iBAAF,EAAqB,CAArB,CADkB;AAE3BqwC,8BAAc,KAFa;;AAQ3BC,yBAAS,CAAC;AACFzsC,0BAAM,MADJ;AAEFylC,4BAAQ,oBAAUiH,UAFhB;AAGFC,+BAAW,YAHT;AAIFxsC,2BAAO;AAJL,iBAAD,EAKF;AACCH,0BAAM,QADP;AAECylC,4BAAQ,oBAAUmH,YAFnB;AAGCD,+BAAW,cAHZ;AAICxsC,2BAAO;AAJR,iBALE,EAUF;AACCH,0BAAM,eADP;AAECylC,4BAAQ,oBAAUoH,mBAFnB;AAGCF,+BAAW,qBAHZ;AAICxsC,2BAAO;AAJR,iBAVE,EAeF;AACCH,0BAAM,SADP;AAECylC,4BAAQ,oBAAUqH,oBAFnB;AAGCH,+BAAW,cAHZ;AAICxsC,2BAAO;AAJR,iBAfE,EAoBF;AACCH,0BAAM,iBADP;AAECylC,4BAAQ,oBAAUqH,oBAFnB;AAGCH,+BAAW,4CAHZ;AAICxsC,2BAAO;AAJR,iBApBE,EAyBF;AACCH,0BAAM,gBADP;AAECylC,4BAAQ,oBAAUsH,mBAFnB;AAGCJ,+BAAW,2CAHZ;AAICxsC,2BAAO;AAJR,iBAzBE,EA8BF,GA9BE,EA8BG;AACJH,0BAAM,MADF;AAEJylC,4BAAQ,oBAAUuH,eAFd;AAGJL,+BAAW,YAHP;AAIJxsC,2BAAO;AAJH,iBA9BH,EAmCF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAUwH,gBAFnB;AAGCN,+BAAW,kBAHZ;AAICxsC,2BAAO;AAJR,iBAnCE,EAwCF;AACCH,0BAAM,gBADP;AAECylC,4BAAQ,oBAAUyH,mBAFnB;AAGCP,+BAAW,eAHZ;AAICxsC,2BAAO;AAJR,iBAxCE,EA6CF;AACCH,0BAAM,cADP;AAECylC,4BAAQ,oBAAU0H,iBAFnB;AAGCR,+BAAW,eAHZ;AAICxsC,2BAAO;AAJR,iBA7CE,EAkDF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,gBAAC2H,MAAD,EAAY;AAChB,+BAAKnB,aAAL,CAAmB,0BAAnB;AACH,qBAJF;AAKCU,+BAAW,uBALZ;AAMCxsC,2BAAO;AANR,iBAlDE,EAyDF;AACCH,0BAAM,SADP;AAECylC,4BAAQ,gBAAC2H,MAAD,EAAY;AAChB,+BAAKnB,aAAL,CAAmB,2DAAnB;AACH,qBAJF;AAKCU,+BAAW,aALZ;AAMCxsC,2BAAO;AANR,iBAzDE,EAgEF,GAhEE,EAgEG;AACJH,0BAAM,MADF;AAEJylC,4BAAQ,oBAAU4H,QAFd;AAGJV,+BAAW,YAHP;AAIJxsC,2BAAO;AAJH,iBAhEH,EAqEF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAUhd,SAFnB;AAGCkkB,+BAAW,iBAHZ;AAICxsC,2BAAO;AAJR,iBArEE,EA0EF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,oBAAU6H,SAFnB;AAGCX,+BAAW,aAHZ;AAICxsC,2BAAO;AAJR,iBA1EE,EA+EF;AACCH,0BAAM,iBADP;AAECylC,4BAAQ,oBAAU8H,kBAFnB;AAGCZ,+BAAW,aAHZ;AAICxsC,2BAAO;AAJR,iBA/EE,EAoFF,GApFE,EAoFG;AACJH,0BAAM,QADF;AAEJylC,4BAAQ,gBAAS2H,MAAT,EAAiB,CAAE,CAFvB;AAGJT,+BAAW,cAHP;AAIJxsC,2BAAO;AAJH,iBApFH,EAyFF,GAzFE,EAyFG;AACJH,0BAAM,SADF;AAEJylC,4BAAQ,oBAAU+H,aAFd;AAGJb,+BAAW,sBAHP;AAIJxsC,2BAAO;AAJH,iBAzFH,EA8FF;AACCH,0BAAM,cADP;AAECylC,4BAAQ,oBAAUgV,gBAFnB;AAGC9N,+BAAW,oCAHZ;AAICxsC,2BAAO;AAJR,iBA9FE,EAmGF;AACCH,0BAAM,YADP;AAECylC,4BAAQ,oBAAUiV,gBAFnB;AAGC/N,+BAAW,uCAHZ;AAICxsC,2BAAO;AAJR,iBAnGE,EAwGF;AACCH,0BAAM,OADP;AAECylC,4BAAQ,sCAFT;AAGCkH,+BAAW,uBAHZ;AAICxsC,2BAAO;AAJR,iBAxGE,CARkB;AAwH3BstC,6BAAa;AACTC,2BAAO,CAAC,EAAD,EAAK,0EAAL;AADE,iBAxHc;AA2H3BC,+BAAe,uBAACrZ,SAAD,EAAYsZ,OAAZ,EAAwB;AACnC,wBAAI3Y,OAAJ,EAAa;AACTX,oCAAYW,QAAQzZ,OAAR,CAAgB8Y,SAAhB,CAAZ;AACH;AACD,2BAAOa,OAAO/wB,MAAMiwB,QAAN,CAAeC,SAAf,CAAP,CAAP;AACH;AAhI0B,aAAd,CAAjB;;AAmIA,iBAAK8X,SAAL,CAAeC,UAAf,CAA0BrpC,EAA1B,CAA6B,OAA7B,EAAsC,UAAC6qC,EAAD,EAAKxoC,CAAL,EAAW;AAC7C,oBAAIA,EAAEoI,OAAF,IAAapI,EAAE6gB,OAAF,IAAa,EAA9B,EAAkC;AAC9B,2BAAKg0B,IAAL,CAAU70C,CAAV,EAAa,IAAb;AACH,iBAFD,MAEO,IAAIA,EAAE6gB,OAAF,IAAa,EAAjB,EAAqB;AACxB,2BAAKkmB,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACH,iBAFM,MAEA,IAAIlR,EAAE6gB,OAAF,IAAa,EAAjB,EAAqB;AACxB,wBAAIO,MAAMtqB,EAAE,mBAAF,EAAuBsqB,GAAvB,EAAV;AACA,wBAAI,CAACA,GAAL,EAAU;AACN,4BAAI8zB,KAAK,sBAAsBniC,IAAtB,CAA2B,OAAKg0B,SAAL,CAAe71B,KAAf,EAA3B,CAAT;AACA,4BAAIgkC,MAAMA,GAAG18C,MAAH,GAAY,CAAtB,EAAyB;AACrB1B,8BAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B8zB,GAAG,CAAH,CAA3B;AACH;AACJ;AACJ;AACJ,aAdD;;AAgBA,iBAAKxM,gBAAL,GAAwB5xC,EAAE,yBAAF,EAA6BwG,IAA7B,CAAkC,sBAAlC,CAAxB;AACA,gBAAI,KAAKorC,gBAAL,CAAsB3kC,IAAtB,OAAiC,CAArC,EAAwC;AACpC,qBAAK2kC,gBAAL,GAAwB5xC,EAAE,yBAAF,EAA6BwG,IAA7B,CAAkC,sCAAlC,CAAxB;AACH;;AAED,gBAAI,KAAK8iC,MAAL,IAAe,MAAnB,EAA2B;AACvB,qBAAK0U,SAAL;AACH,aAFD,MAEO,IAAI,KAAK1U,MAAL,IAAe,MAAnB,EAA2B;AAC9B,qBAAK+U,SAAL;AACH,aAFM,MAEA;AACH,qBAAKJ,UAAL;AACH;;AAEDj+C,cAAE,mBAAF,EAAuB6S,KAAvB;;AAEA,iBAAKi/B,SAAL;AACA,iBAAKC,gBAAL;;AAEA,iBAAKC,kBAAL,CAAwBhyC,EAAE,kBAAF,EAAsB,yBAAtB,CAAxB,EAA0E,YAAM;AAC5E,uBAAO,OAAK4xC,gBAAZ;AACH,aAFD,EAEG,KAFH;;AAIA,iBAAKI,kBAAL,CAAwBhyC,EAAE,+BAAF,EAAmC,yBAAnC,CAAxB,EAAuF,YAAM;AACzF,uBAAO,OAAK4xC,gBAAZ;AACH,aAFD,EAEG,IAFH;;AAIA,iBAAKgM,uBAAL;AAEH;;8BAEDY,yBAAQ;AACJx+C,cAAE,8BAAF,EAAkCwhC,MAAlC,CAAyC,OAAzC;AACH;;8BAEDuQ,+CAAmB;AAAA;;AAEf/xC,cAAE,KAAK4xC,gBAAP,EAAyBnJ,YAAzB,CAAsC,CAAC;AACnC5mC,uBAAO,eAD4B;AAEnC6mC,wBAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxBA,6BAASja,EAAE2D,GAAF,CAAM8D,MAAMa,KAAZ,EAAmB,UAACwgC,MAAD,EAAY;AACpC,+BAAQA,OAAOnyB,OAAP,IAAkBmyB,OAAO1hC,QAAP,CAAgB0c,OAAhB,CAAwB6kB,IAAxB,KAAiC,CAApD,GAAyDG,OAAO1hC,QAAhE,GAA2E,IAAlF;AACH,qBAFQ,CAAT;AAGH,iBANkC;AAOnCyhC,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAI5gC,OAAO1H,EAAEmG,IAAF,CAAOiB,MAAMa,KAAb,EAAoB,EAAElB,UAAUgT,KAAZ,EAApB,CAAX;AACA,2BAAUrS,KAAKlE,IAAf,WAAyBkE,KAAK6O,KAA9B,UAAwC7O,KAAKX,QAA7C;AACH,iBAVkC;AAWnCiY,yBAAS,iBAACjF,KAAD,EAAW;AAChB,oCAAcA,KAAd;AACH;AAbkC,aAAD,EAcnC;AACCvY,uBAAO,qBADR;AAEC6mC,wBAAQ,gBAASC,IAAT,EAAe1uB,QAAf,EAAyB;AAC7BA,6BAASja,EAAE2D,GAAF,wBAAc,UAAColC,KAAD,EAAW;AAC9B,+BAAO1oC,EAAE+N,IAAF,CAAO26B,MAAMnsB,KAAN,CAAY,GAAZ,CAAP,EAAyB,UAACrR,IAAD,EAAU;AACtC,mCAAOA,KAAKuY,OAAL,CAAa6kB,IAAb,MAAuB,CAA9B;AACH,yBAFM,IAEFI,KAFE,GAEM,IAFb;AAGH,qBAJQ,CAAT;AAKH,iBARF;AASCF,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAIvuB,SAAS,QAAb,EAAuB;AACnB;AACH;AACD,wBAAI4uB,iBAAe5uB,KAAf,MAAJ;AACA,2BAAU0e,QAAQzZ,OAAR,CAAgB2pB,QAAhB,CAAV,WAAyCA,QAAzC;AACH,iBAfF;AAgBC3pB,yBAAS,iBAACjF,KAAD,EAAW;AAChB,wBAAI,OAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B,+BAAO,QAAQA,KAAR,GAAgB,IAAvB;AACH,qBAFD,MAEO;AACH,+BAAO,EAAP;AACH;AACJ;AAtBF,aAdmC,CAAtC,EAqCI;AACAiP,0BAAU,4BADV;AAEAnnB,0BAAU;AAFV,aArCJ;;AA0CA,iBAAK+tC,SAAL,CAAeC,UAAf,CAA0BrpC,EAA1B,CAA6B,SAA7B,EAAwC,UAAC6qC,EAAD,EAAKxoC,CAAL,EAAW;AAC/C,oBAAI7I,EAAEk5B,QAAF,CAAW,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAX,EAAyBrwB,EAAE6gB,OAA3B,KAAuC,OAAKkoB,UAAL,EAA3C,EAA8D;AAC1D/oC,sBAAEnC,cAAF;AACH;AACJ,aAJD;AAKH;;8BAEDkrC,mCAAa;AACT,mBAAOjyC,EAAE,4BAAF,EAAgCwG,IAAhC,CAAqC,gCAArC,EAAuEyG,IAAvE,OAAkF,CAAzF;AACH;;8BAEDu7B,+CAAkBpuB,OAAO;;AAErB,gBAAIA,SAAS,QAAb,EAAuB;AACnB/Z,kBAAEy7B,KAAF,CAAQ,YAAM;AAAE7zB,0BAAM2zB,UAAN,CAAiBp8B,OAAO+W,oBAAxB;AAAgD,iBAAhE,EAAkE,GAAlE;AACH,aAFD,MAEO;AACH,uBAAO,IAAP;AACH;;AAED,mBAAO,KAAP;AACH;;8BAEDu7B,iCAAY;AAAA;;AAER,gBAAIa,eAAJ;AACA,gBAAI,KAAKf,gBAAL,CAAsB3wC,EAAtB,CAAyB,UAAzB,CAAJ,EAA0C;AACtC0xC,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBrqB,gBAAzB,EAAT;AACH,aAFD,MAEO;AACHorB,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBnqB,uBAAzB,EAAT;AACH;;AAEDkrB,sBAAWA,OAAO9rC,EAAP,CAAU,YAAV,EAAwB,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;;AAE7ChN,kBAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBrb,6BAAS3a,KAAK2a,OADW;AAEzBtE,0BAAMrW,KAAKmf,IAAL,CAAU9I,IAFS;AAGzBiiB,4BAAQ;AAHiB,iBAA7B,EAIG,UAACt4B,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,+BAAK0mC,aAAL,CAAmB,uCACdzwB,OADc,CACN,WADM,EACOrS,KAAKA,IAAL,CAAUnJ,IADjB,EAEdwb,OAFc,CAEN,cAFM,EAEUpX,MAAMyuB,UAAN,KAAqB,GAF/B,EAGdrX,OAHc,CAGN,WAHM,EAGOrS,KAAKA,IAAL,CAAUmQ,IAHjB,EAIdkC,OAJc,CAIN,eAJM,EAIWrS,KAAKA,IAAL,CAAUk5B,QAJrB,CAAnB;AAKH;AACJ,iBAZD;AAaH,aAfU,EAeRr/B,EAfQ,CAeL,iBAfK,EAec,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;AACnC7D,uBAAOE,KAAP,CAAa2D,KAAKgf,OAAlB,EAA2B,YAA3B;AACH,aAjBU,CAAX;AAkBH;;8BAEDgmB,iDAAmBY,QAAQC,kBAAkBnN,WAAW;;AAEpD,gBAAIpc,QAAQ,IAAZ;;AAEAtpB,cAAE4yC,MAAF,EAAUpN,QAAV,CAAmB;AACf5kC,qBAAK,oBADU;AAEf6kC,2BAAW,MAFI;AAGfC,2BAAW,CAAC,CAACA,SAHE;AAIfC,oCAAoB,EAJL;AAKfC,6BAAa,EALE;AAMfC,gCAAgB,IAND;AAOfiN,mCAAmB,mCAPJ;AAQfC,iCAAiB/yC,EAAE,kCAAF,EAAsC,CAAtC,EAAyCgzC,SAR3C;AASflN,kCAAkB,MATH;AAUfC,8CAA8B,WAVf;AAWfC,gCAAgB,2CAXD;AAYf5mC,sBAAM,gBAAW;AACb,yBAAKyH,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAeza,GAAf,EAAoBg2B,QAApB,EAA8B;AAC7C,4BAAI,CAAC4M,kBAAL,EAAyB;AACrB,iCAAKI,cAAL,CAAoB,IAApB;AACH,yBAFD,MAEO;AACHhN,qCAAStU,MAAT,CAAgB,QAAhB,EAA0B,MAA1B;AACH;AACJ,qBAND;AAOA,yBAAK9qB,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAe1d,IAAf,EAAqB;AACpC,4BAAIA,KAAK5D,OAAT,EAAkB;;AAEdpJ,8BAAEyG,IAAF,CAAOuG,KAAKA,IAAZ,EAAkB,UAAStG,KAAT,EAAgB6E,IAAhB,EAAsB;AACpC,oCAAIA,KAAK8X,IAAL,IAAa,OAAjB,EAA0B;AACtBiG,0CAAMwmB,aAAN,CAAoB,wCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM9T,KAAK4R,IAHX,EAIfkC,OAJe,CAIP,eAJO,EAIU9T,KAAK26B,QAJf,CAApB;AAKH,iCAND,MAMO;AACH5c,0CAAMwmB,aAAN,CAAoB,uCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM,sBAHN,EAIfA,OAJe,CAIP,eAJO,EAIU9T,KAAK5D,EAJf,CAApB;AAKH;AACJ,6BAdD;AAeAwB,mCAAOC,OAAP,CAAe,OAAf;AACH,yBAlBD,MAkBO;AACHD,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AAEJ,qBAvBD;AAwBA,yBAAKnG,EAAL,CAAQ,OAAR,EAAiB,UAAS6jB,IAAT,EAAeyb,YAAf,EAA6Bl2B,GAA7B,EAAkC;AAC/C9G,+BAAOE,KAAP,CAAa88B,YAAb,EAA2B,OAA3B;AACH,qBAFD;AAGA,yBAAKt/B,EAAL,CAAQ,UAAR,EAAoB,UAAS6jB,IAAT,EAAe;AAC/B,6BAAK0b,UAAL,CAAgB1b,IAAhB;AACH,qBAFD;AAGH;AAlDc,aAAnB;AAoDH;;8BAQDolB,uCAAcvoC,SAAS4qC,KAAK;AACxB,gBAAI;AACA,oBAAIT,KAAKS,MAAMA,IAAIjC,UAAV,GAAuB,KAAKD,SAAL,CAAeC,UAA/C;AACA,oBAAIkC,SAASV,GAAGW,SAAH,EAAb;AACA,oBAAID,MAAJ,EAAY;AACRV,uBAAGY,YAAH,CAAgB/qC,OAAhB,EAAyB6qC,MAAzB,EAAiCA,MAAjC;AACAV,uBAAG7+B,KAAH;AACH;AACJ,aAPD,CAOE,OAAOpB,GAAP,EAAY;AAAEuV,wBAAQC,GAAR,CAAYxV,GAAZ;AAAmB;AAEtC;;8BAEDof,6BAAU;AACN,iBAAK1kB,MAAL;AACH;;8BAKDhG,+BAAW;AAAA;;AACPnG,cAAE,gBAAF,EAAoB2T,KAApB,CAA0B,UAAC7M,KAAD,EAAW;AACjC,uBAAKi3C,IAAL,CAAUj3C,KAAV;AACH,aAFD;AAGH;;8BAEDi3C,qBAAKj3C,OAAO23C,OAAO;AAAA;;AAEf,gBAAIz6C,QAAQhE,EAAE,mBAAF,EAAuBsqB,GAAvB,EAAZ;AACA,gBAAI/iB,UAAU,KAAK0oC,SAAL,CAAe71B,KAAf,EAAd;;AAEA,gBAAI,CAACpa,EAAE2e,IAAF,CAAO3a,KAAP,CAAL,EAAoB;AAChBhE,kBAAE,mBAAF,EAAuBsqB,GAAvB,CAA2B,EAA3B;AACAnhB,uBAAOE,KAAP,CAAa,SAAb;AACA;AACH;;AAED,gBAAI,CAACrJ,EAAE2e,IAAF,CAAOpX,OAAP,CAAL,EAAsB;AAClB,qBAAK0oC,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACAjR,uBAAOE,KAAP,CAAa,SAAb;AACA;AACH;;AAED,gBAAI,CAAC,KAAKmmC,IAAV,EAAgB;AACZ,oBAAI1oC,MAAMwK,OAAV,EAAmB;AACftR,sBAAEgjC,IAAF,uBAA6B;AACzBpiC,6BAAKqH,MAAM6uB,WAAN,EADoB;AAEzB4kB,mCAAWzzC,MAAMwwB,cAAN,CAAqBlxB,OAArB,GAA+BE,MAAMiP,SAArC,SAAoDnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAAjF,GAAuF4S,IAAvF,CAA4F,GAA5F,CAFc;AAGzBpX,+BAAOA,KAHkB;AAIzBuD,iCAASA,OAJgB;AAKzBi0C,iCAAS,EALgB;AAMzB9E,kCAAU,KANe;AAOzBhE,qCAAazqC,MAAM4wB,OAAN,CAActxB,OAAd;AAPY,qBAA7B,EAQG,UAACyF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACd,mCAAKomC,IAAL,GAAYxiC,KAAKA,IAAjB;AACA7D,mCAAOC,OAAP,CAAe,SAAf;AACA7J,+BAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,wCAAQ,SAD0B;AAElCkG,sCAAM,OAAKA;AAFuB,6BAAtC;AAIAxvC,8BAAE,8BAAF,EAAkCwhC,MAAlC,CAAyC,OAAzC;AACH,yBARD,MAQO;AACHr4B,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBApBD;AAqBH,iBAtBD,MAsBO;AACHzN,uBAAG2H,OAAH,CAAW1H,OAAOgW,eAAlB,EAAmC;AAC/BxR,+BAAOA,KADwB;AAE/BuD,iCAASA;AAFsB,qBAAnC;AAIH;AACJ,aA7BD,MA6BO;;AAEH,oBAAI,KAAKkrC,OAAT,EAAkB;AACd;AACH;;AAED,qBAAKA,OAAL,GAAe,IAAf;AACAzyC,kBAAE,kBAAF,EAAsB6T,IAAtB;;AAEA,oBAAIklB,OAAO9wB,MAAM4wB,OAAN,CAActxB,OAAd,CAAX;AACA,oBAAIe,SAASb,MAAMiP,SAAf,SAA8BnO,OAAOC,QAAP,GAAkBA,QAAlB,GAA6B,EAA3D,CAAJ;;AAEAxI,kBAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBpiC,yBAAKqH,MAAM6uB,WAAN,EADoB;AAEzBnvB,wBAAI,KAAK6nC,IAAL,CAAU7nC,EAFW;AAGzB+K,6BAAS,KAAK88B,IAAL,CAAU98B,OAHM;AAIzBgpC,+BAAWzzC,MAAMwwB,cAAN,CAAqBlxB,OAArB,EAA8Be,KAA9B,EAAqC8S,IAArC,CAA0C,GAA1C,CAJc;AAKzBpX,2BAAOA,KALkB;AAMzBuD,6BAASA,OANgB;AAOzBuS,0BAAM7R,MAAMixB,KAAN,CAAY,KAAKsW,IAAL,CAAUjoC,OAAtB,EAA+BA,OAA/B;AAPmB,iBAA7B,EAUG,UAACyF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,+BAAKomC,IAAL,GAAYxiC,KAAKA,IAAjB;AACA7D,+BAAOC,OAAP,CAAe,SAAf;AACA7J,2BAAG2H,OAAH,CAAW1H,OAAO0V,kBAAlB,EAAsC;AAClCo0B,oCAAQ,SAD0B;AAElCkG,kCAAM,OAAKA;AAFuB,yBAAtC;AAIA,4BAAI,CAACiP,KAAL,EAAY;AACP33C,qCAASA,MAAMwK,OAAhB,IAA4B,OAAKktC,KAAL,EAA5B;AACH,yBAFD,MAEO;AACF13C,qCAASA,MAAMwK,OAAf,IAA0BxK,MAAMwjC,QAAjC,IAA8C,OAAKkU,KAAL,EAA9C;AACH;AACJ,qBAZD,MAYO;AACHr1C,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,iBA1BD,EA0BG0B,MA1BH,CA0BU,YAAM;AACZ,2BAAK+jC,OAAL,GAAe,KAAf;AACAzyC,sBAAE,kBAAF,EAAsBilC,IAAtB;AACH,iBA7BD;AA8BH;AAEJ;;;iBArkBM0Y,OAAO;;;;;;;;;;;;;;;;;;;;;QCXLe,uBAAAA;;;;iBAETr7B,OAAO;iBACPqlB,SAAS;;;+BAKTviC,+BAAW;AACPnG,cAAE,KAAK2+C,MAAP,EAAen4C,IAAf,CAAoB,OAApB,EAA6BwjC,GAA7B,CAAiC;AAC7BF,2BAAW,mBAAC8U,OAAD,EAAa,CAGvB;AAJ4B,aAAjC;AAMH;;+BAEDC,qCAAc;AACV,iBAAKC,WAAL,CAAiB,IAAjB;AACH;;+BAEDA,qCAA8B;AAAA;;AAAA,gBAAlBC,QAAkB,uEAAP,KAAO;;AAC1B,gBAAIn+C,MAAM6G,MAAMgC,IAAN,GAAa,wBAAb,GAAwC,2BAAlD;AACA,iBAAKgzC,IAAL,GAAYz8C,EAAEoN,GAAF,CAAMxM,GAAN,EAAW;AACnBiD,sBAAM4D,MAAMlE,MADO;AAEnB8f,sBAAM,KAAKA,IAFQ;AAGnB0sB,sBAAM,KAAKA,IAAL,GAAagP,WAAW,KAAKhP,IAAL,CAAU/uC,MAAV,GAAmB,CAA9B,GAAkC,KAAK+uC,IAAL,CAAU/uC,MAAzD,GAAmE,CAHtD;AAInBiM,sBAAM,EAJa;AAKnBy7B,wBAAQ,KAAKA;AALM,aAAX,EAMT,UAAC17B,IAAD,EAAU;AACT,sBAAK+iC,IAAL,GAAY/iC,KAAKA,IAAjB;AACA,sBAAKgyC,OAAL,GAAe,MAAKjP,IAAL,CAAUnnC,IAAV,GAAiB,CAAjB,GAAqB,MAAKmnC,IAAL,CAAUhiC,aAAV,GAA0B,CAAC,MAAKgiC,IAAL,CAAU/uC,MAAV,GAAmB,CAApB,IAAyB,MAAK+uC,IAAL,CAAU9iC,IAAjG;AACA,oBAAI,CAAC8xC,QAAL,EAAe;AACX,0BAAKE,OAAL,GAAejyC,KAAKA,IAAL,CAAUzF,OAAzB;AACH,iBAFD,MAEO;AACH,0BAAK03C,OAAL,GAAe5+C,EAAEwgB,MAAF,CAAS,MAAKo+B,OAAd,EAAuBjyC,KAAKA,IAAL,CAAUzF,OAAjC,CAAf;AACH;AAEJ,aAfW,CAAZ;AAgBH;;+BAEDg8B,yBAAQ;AACJ,iBAAKwM,IAAL,GAAY,IAAZ;AACA,iBAAKiP,OAAL,GAAe,CAAf;AACA,iBAAKC,OAAL,GAAe,IAAf;AACA,gBAAIj/C,EAAEuI,MAAF,EAAU0B,KAAV,KAAoB,GAAxB,EAA6B;AACzBjK,kBAAE,KAAKuuC,SAAP,EAAkB17B,KAAlB;AACH;AACD,iBAAKisC,WAAL;AACH;;+BAEDI,2CAAgBN,SAAS;AACrB,iBAAKv7B,IAAL,GAAYu7B,OAAZ;AACA,iBAAKrb,KAAL;AACH;;+BAED4b,yCAAgB;AACZ,iBAAK5b,KAAL;AACH;;+BAED6b,qCAAat4C,OAAO;AAChB,gBAAIA,MAAMijB,OAAN,IAAiB,EAArB,EAAyB;AACrB,qBAAKwZ,KAAL;AACH,aAFD,MAEO,IAAIz8B,MAAMijB,OAAN,IAAiB,EAArB,EAAyB;AAC5B,qBAAK2e,MAAL,GAAc,EAAd;AACA,qBAAKnF,KAAL;AACH;AACD,mBAAO,IAAP;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCpEQ8b,8BAAAA;;;;;;;;;;iBAKTC,YAAY;iBAEZC,YAAY;;;sCAEZlb,mCAAYmb,MAAMC,KAAK;AACnB,iBAAKC,OAAL,GAAeD,GAAf;AACA,gBAAID,QAAQ,CAAC,KAAKD,SAAL,CAAe9iC,IAAf,CAAoB+iC,IAApB,CAAb,EAAwC;AACpC,qBAAK37C,IAAL,GAAY,KAAK87C,WAAL,EAAZ;AACH;AACJ;;sCAEDA,qCAAc;AACV,gBAAI,CAAC,KAAKJ,SAAL,CAAe9iC,IAAf,CAAoB,KAAKijC,OAAzB,CAAL,EAAwC;AACpC,qBAAKA,OAAL,GAAe,EAAf;AACH;;AAED,mBAAO,KAAKA,OAAZ;AACH;;sCAEDtE,yCAAe1W,UAAUznB,UAAU;AAAA;;AAC/Bjd,cAAE,KAAK2kB,OAAP,EAAgBhR,KAAhB,CAAsB,YAAM;AACxB,sBAAKikC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,mCAAe,KADD;AAEdC,gCAAY;AAFE,iBAAlB;AAIH,aALD;AAMH;;sCAEDP,qCAAc;AACV,iBAAKprC,MAAL;AACH;;sCAEDA,2BAAS;AACL,iBAAKtI,IAAL,GAAY,EAAZ;AACA,iBAAKG,KAAL,GAAa,EAAb;AACA,iBAAKsqC,IAAL,GAAY,EAAZ;AACAtuC,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,aAArB;AACA,iBAAKgd,aAAL,CAAmB7F,OAAnB;AACH;;sCAKD5zC,+BAAW;AAAA;;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ;AACA5iC,cAAE,KAAK2+C,MAAP,EAAen4C,IAAf,CAAoB,OAApB,EAA6BwjC,GAA7B,CAAiC;AAC7BF,2BAAW,mBAAC8U,OAAD,EAAa;AACpB,2BAAKU,SAAL,GAAiBV,OAAjB;AACH;AAH4B,aAAjC;AAKH;;sCAEDpH,yCAAe+D,OAAO;;AAElBv7C,cAAEgjC,IAAF,CAAO,uBAAP,EAAgC;AAC5Bn/B,sBAAM,KAAKA,IADiB;AAE5BG,uBAAO,KAAKA,KAFgB;AAG5BsqC,sBAAM,KAAKA,IAHiB;AAI5BoI,0BAAU12C,EAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAJkB,aAAhC,EAKG,UAAC51B,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACdmyC,0BAAMtW,IAAN;AACA97B,2BAAOC,OAAP,CAAe,SAAf;AACA7J,uBAAG2H,OAAH,CAAW1H,OAAO8K,0BAAlB,EAA8C;AAC1CE,iCAASwC,KAAKA;AAD4B,qBAA9C;AAGH,iBAND,MAMO;AACHuuC,0BAAMsE,UAAN;AACA12C,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAhBD;AAkBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC7EQ8yC,4BAAAA;;;;;;;oCAITC,2CAAiB;;AAEb,gBAAI,KAAKv1C,OAAT,EAAkB;AACd,oBAAIw1C,SAAS,KAAKx1C,OAAL,CAAaksC,QAAb,GAAwB,aAAxB,GAAwC,eAArD;AACA12C,kBAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqBod,MAArB;AACH;AAEJ;;oCAEDnsC,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,+BAAe,KADD;AAEdC,4BAAY;AAFE,aAAlB;AAIH;;oCAEDP,qCAAc,CAAE;;oCAKhBpxC,+BAAW;AACPnG,cAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ;AACH;;oCAED4U,yCAAe+D,OAAO;;AAElBv7C,cAAEgjC,IAAF,CAAO,uBAAP,EAAgC;AAC5Br7B,oBAAI,KAAK6C,OAAL,CAAa7C,EADW;AAE5B3D,uBAAO,KAAKwG,OAAL,CAAaxG,KAFQ;AAG5BsqC,sBAAM,KAAK9jC,OAAL,CAAa0iC,WAHS;AAI5BwJ,0BAAU12C,EAAE,KAAKs7C,GAAP,EAAY1Y,QAAZ,CAAqB,YAArB;AAJkB,aAAhC,EAKG,UAAC51B,IAAD,EAAU;AACTuuC,sBAAMtW,IAAN;AACA,oBAAIj4B,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,SAAf;AACH,iBAFD,MAEO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aAZD;AAcH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC7CQizC,4BAAAA;;;;;;;oCAITC,uCAAe;AAAA;;AACXlgD,cAAEoN,GAAF,CAAM,qBAAN,EAA6B,UAACJ,IAAD,EAAU;AACnC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,0BAAKL,QAAL,GAAgBiE,KAAKA,IAArB;AACA3M,sBAAEoG,IAAF,CAAO,MAAKsC,QAAZ,EAAsB,UAACwC,IAAD,EAAU;AAC5BA,6BAAK40C,MAAL,GAAc9/C,EAAE+N,IAAF,CAAO7C,KAAKmtB,OAAZ,EAAqB,UAAClhB,CAAD,EAAO;AACtC,mCAAOA,EAAEpQ,QAAF,IAAc,MAAKU,SAAL,CAAeV,QAApC;AACH,yBAFa,CAAd;AAGH,qBAJD;AAKH,iBAPD,MAOO;AACH+B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAXD;AAYH;;oCAED+sC,6BAAU;AACN,iBAAKmG,YAAL;AACH;;oCAEDE,mCAAY70C,MAAM;AACd,iBAAKmvC,SAAL,CAAe7mC,IAAf,CAAoB;AAChBtM,yFAAoCgE,KAAKvH,KAAzC,mBADgB;AAEhBuyC,2BAAW,qBAAM;AACbv2C,sBAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1Br7B,4BAAI4D,KAAK5D;AADiB,qBAA9B,EAEG,UAACqF,IAAD,EAAU;AACT,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACAmC,iCAAK40C,MAAL,GAAc,IAAd;AACA5gD,+BAAG2H,OAAH,CAAW1H,OAAOyL,yBAAlB,EAA6C,EAAET,SAASwC,KAAKA,IAAhB,EAA7C;AACH,yBAJD,MAIO;AACH7D,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAVD;AAWH;AAde,aAApB;AAgBH;;oCAEDqzC,qCAAa90C,MAAM;AACf,iBAAKmvC,SAAL,CAAe7mC,IAAf,CAAoB;AAChBtM,yFAAoCgE,KAAKvH,KAAzC,mBADgB;AAEhBuyC,2BAAW,qBAAM;AACbv2C,sBAAEgjC,IAAF,CAAO,sBAAP,EAA+B;AAC3Br7B,4BAAI4D,KAAK5D;AADkB,qBAA/B,EAEG,UAACqF,IAAD,EAAU;AACT,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACAmC,iCAAK40C,MAAL,GAAc,KAAd;AACA5gD,+BAAG2H,OAAH,CAAW1H,OAAO2L,yBAAlB,EAA6C,EAAEX,SAASwC,KAAKA,IAAhB,EAA7C;AACH,yBAJD,MAIO;AACH7D,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAVD;AAWH;AAde,aAApB;AAgBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC3DQszC,+BAAAA;;;;;;;;iBAMTC,QAAQ;;;uCAERR,yCAAeP,MAAMC,KAAK;AAAA;;AACtB,gBAAI,KAAKj1C,OAAT,EAAkB;AACdxK,kBAAEoN,GAAF,CAAM,oBAAN,EAA4B;AACxBF,+BAAW,KAAK1C,OAAL,CAAa7C;AADA,iBAA5B,EAEG,UAACqF,IAAD,EAAU;AACT,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,8BAAKm3C,KAAL,GAAavzC,KAAKA,IAAlB;AACH,qBAFD,MAEO;AACH,8BAAKuzC,KAAL,GAAa,EAAb;AACH;AACJ,iBARD;AASH;AACJ;;uCAED5O,mCAAa;AAAA;;AACT3xC,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBh/B,uBAAO,KAAKA,KADa;AAEzBglB,sBAAM,KAAKA,IAFc;AAGzB9b,2BAAW,KAAK1C,OAAL,CAAa7C;AAHC,aAA7B,EAIG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKpF,KAAL,GAAa,EAAb;AACA,2BAAKglB,IAAL,GAAY,EAAZ;AACA,2BAAKu3B,KAAL,CAAWnxC,IAAX,CAAgBpC,KAAKA,IAArB;AACAzN,uBAAG2H,OAAH,CAAW1H,OAAOkV,2BAAlB,EAA+C,EAA/C;AACH,iBALD,MAKO;AACHvL,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAbD;AAcH;;uCAEDwzC,iCAAWj1C,MAAM;AAAA;;AACbvL,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBr7B,oBAAI4D,KAAK5D;AADgB,aAA7B,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKm3C,KAAL,GAAalgD,EAAE+K,MAAF,CAAS,OAAKm1C,KAAd,EAAqB,EAAE54C,IAAI4D,KAAK5D,EAAX,EAArB,CAAb;AACApI,uBAAG2H,OAAH,CAAW1H,OAAOkV,2BAAlB,EAA+C,EAA/C;AACAvL,2BAAOC,OAAP,CAAe,OAAf;AACH,iBAJD,MAIO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAVD;AAWH;;uCAEDgjC,mCAAYzkC,MAAM;AACdA,iBAAKk1C,QAAL,GAAgBl1C,KAAKvH,KAArB;AACAuH,iBAAKm1C,OAAL,GAAen1C,KAAKyd,IAApB;AACAzd,iBAAKoH,SAAL,GAAiB,IAAjB;AACH;;uCAEDguC,uCAAcp1C,MAAM;AAChBvL,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBr7B,oBAAI4D,KAAK5D,EADgB;AAEzB3D,uBAAOuH,KAAKvH,KAFa;AAGzBglB,sBAAMzd,KAAKyd;AAHc,aAA7B,EAIG,UAAChc,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdmC,yBAAKoH,SAAL,GAAiB,KAAjB;AACApT,uBAAG2H,OAAH,CAAW1H,OAAOkV,2BAAlB,EAA+C,EAA/C;AACAvL,2BAAOC,OAAP,CAAe,OAAf;AACH,iBAJD,MAIO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAZD;AAaH;;uCAEDuqC,qCAAc;AACV,iBAAKprC,MAAL;AACH;;uCAEDA,2BAAS,CAAE;;uCAKXhG,+BAAW,CAAE;;uCAEb0N,uBAAO;AACH,iBAAKksC,cAAL;AACA,iBAAKnI,OAAL,CAAa/jC,IAAb,CAAkB,EAAEikC,YAAY,KAAd,EAAlB;AACH;;uCAEDN,yCAAe+D,OAAO,CAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC7FQqF,kCAAAA;AAQT,2CAAc;AAAA;;AAAA;;AAAA;;AAAA;;AACV,iBAAKC,WAAL,GAAmB;AACf9K,uBAAO,eAACC,UAAD,EAAaC,SAAb,EAAwBC,YAAxB,EAAyC;AAC5C,0BAAK0B,OAAL,CAAakJ,UAAb;AACA9gD,sBAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/Br7B,4BAAI,MAAK6C,OAAL,CAAa7C,EADc;AAE/B+wB,iCAASsd,UAFsB;AAG/BvS,iCAASx7B,MAAMyuB,UAAN,EAHsB;AAI/BvZ,8BAAMrU,KAAK,MAAL;AAJyB,qBAAnC,EAKG,UAACkE,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA,kCAAKoB,OAAL,CAAakuB,OAAb,GAAuB1rB,KAAKA,IAAL,CAAU0rB,OAAjC;AACAn5B,+BAAG2H,OAAH,CAAW1H,OAAO4U,uCAAlB,EAA2D;AACvDiP,sCAAM,KADiD;AAEvDqV,yCAAS1rB,KAAKA,IAAL,CAAU0rB;AAFoC,6BAA3D;AAIH,yBAPD,MAOO;AACHvvB,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAhBD,EAgBG0B,MAhBH,CAgBU,YAAM;AACZ,8BAAKkpC,OAAL,CAAaiI,UAAb;AACH,qBAlBD;AAmBH,iBAtBc;AAuBf1J,+BAAe,uBAACC,YAAD,EAAkB;AAC7B,wBAAI,MAAK5rC,OAAL,CAAau2C,KAAb,CAAmB35C,QAAnB,IAA+BgvC,YAAnC,EAAiD;AAC7C,+BAAO,KAAP;AACH;;AAED,0BAAKwB,OAAL,CAAakJ,UAAb;AACA9gD,sBAAEgjC,IAAF,CAAO,6BAAP,EAAsC;AAClCr7B,4BAAI,MAAK6C,OAAL,CAAa7C,EADiB;AAElC+wB,iCAAS0d,YAFyB;AAGlC3S,iCAASx7B,MAAMyuB,UAAN,EAHyB;AAIlCvZ,8BAAMrU,KAAK,MAAL;AAJ4B,qBAAtC,EAKG,UAACkE,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA,kCAAKoB,OAAL,CAAakuB,OAAb,GAAuB1rB,KAAKA,IAAL,CAAU0rB,OAAjC;AACAn5B,+BAAG2H,OAAH,CAAW1H,OAAO4U,uCAAlB,EAA2D;AACvDiP,sCAAM,QADiD;AAEvDqV,yCAAS1rB,KAAKA,IAAL,CAAU0rB;AAFoC,6BAA3D;AAIH,yBAPD,MAOO;AACHvvB,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAhBD,EAgBG0B,MAhBH,CAgBU,YAAM;AACZ,8BAAKkpC,OAAL,CAAaiI,UAAb;AACH,qBAlBD;AAmBH;AAhDc,aAAnB;AAkDH;;0CAEDE,2CAAiB;AAAA;;AACb,gBAAI,KAAKv1C,OAAT,EAAkB;AAAA;AACd,wBAAIkxC,YAAYr7C,EAAE4rC,MAAF,CAAS5rC,EAAEsD,GAAF,CAAM,OAAK6G,OAAL,CAAakuB,OAAnB,EAA4B,UAA5B,CAAT,CAAhB;;AAEAr4B,sBAAEmO,KAAF,CAAQ,YAAM;AACVxO,0BAAE,OAAKghD,UAAP,EAAmB9gD,QAAnB,GAA8BA,QAA9B,CAAuC,OAAvC,EAAgDA,QAAhD,CAAyD,cAAzD,EAAyEw7C,SAAzE,EAAoFx7C,QAApF,CAA6F,OAAK2gD,WAAlG;AACH,qBAFD;AAHc;AAOjB;AACJ;;0CAKD16C,+BAAW,CAEV;;0CAED86C,uCAAcr4C,MAAM;AAAA;;AAEhB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACV,2BAAKuxC,cAAL;AACH,iBAFD;AAGH;AACJ;;0CAEDxI,qCAAc;AACVv3C,cAAE,KAAKghD,UAAP,EAAmB9gD,QAAnB,GAA8BA,QAA9B,CAAuC,OAAvC;AACA,iBAAK6/C,cAAL;AACH;;0CAEDvI,yCAAe+D,OAAO,CAErB;;0CAED1nC,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,+BAAe,IADD;AAEdC,4BAAY;AAFE,aAAlB;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCtGQoJ,mCAAAA;;;;;;;2CAIT3J,qCAAc,CAEb;;2CAEDC,yCAAe+D,OAAO,CAErB;;2CAED1nC,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,+BAAe,IADD;AAEdC,4BAAY;AAFE,aAAlB;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QChBQqJ,mCAAAA;AAyCT,4CAAc;AAAA;;AAAA;;AAAA,iBArCdp+B,MAqCc,GArCL,CAAC;AACNmT,uBAAO,IADD;AAEN9b,uBAAO,MAFD;AAGNiJ,sBAAM;AAHA,aAAD,EAIN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,MAFR;AAGCiJ,sBAAM;AAHP,aAJM,EAQN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,WAFR;AAGCiJ,sBAAM;AAHP,aARM,EAYN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,QAFR;AAGCiJ,sBAAM;AAHP,aAZM,EAgBN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,SAFR;AAGCiJ,sBAAM;AAHP,aAhBM,EAoBN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,YAFR;AAGCiJ,sBAAM;AAHP,aApBM,EAwBN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,YAFR;AAGCiJ,sBAAM;AAHP,aAxBM,EA4BN;AACC6S,uBAAO,IADR;AAEC9b,uBAAO,OAFR;AAGCiJ,sBAAM;AAHP,aA5BM,CAqCK;;AACV,iBAAKia,IAAL;AACH;;2CAKDn3B,+BAAW;AAAA;;AACPnG,cAAE,CAAC,KAAKohD,WAAN,CAAF,EACK1X,KADL,CACW;AACH9F,wBAAQ,IADL;AAEHmK,2BAAW;AAFR,aADX;AAKA/tC,cAAE,CAAC,KAAKqhD,SAAN,CAAF,EACK3X,KADL,CACW;AACH9F,wBAAQ,IADL;AAEHmK,2BAAW,IAFR;;AAIHuT,wBAAQ,kBAAM;AACV,0BAAKC,WAAL,GAAmB,KAAnB;AACAvhD,sBAAE,MAAKwhD,MAAP,EAAel3B,GAAf,CAAmB,EAAnB;AACH;AAPE,aADX;AAUH;;2CAEDm3B,yDAAuBl2C,MAAM;AAAA;;AACzBvL,cAAEgjC,IAAF,mBAAsBv7B,MAAMgC,IAAN,GAAa,QAAb,GAAwB,SAA9C,qBAAwE;AACpE7I,qBAAK6G,MAAMgC,IAAN,GAAaxB,MAAM6uB,WAAN,EAAb,GAAmC7uB,MAAM0uB,MAAN,EAD4B;AAEpE+qB,sBAAMn2C,KAAK8X,IAAL,IAAa,OAAb,GAAuBrjB,EAAE84B,QAAQzZ,OAAR,CAAgB9T,KAAK6O,KAArB,CAAF,EAA+BxT,IAA/B,CAAoC,KAApC,CAAvB,GAAoE2E,KAAK6O,KAFX;AAGpEiJ,sBAAM9X,KAAK8X,IAAL,IAAa,OAAb,GAAuB,OAAvB,GAAiC,KAH6B;AAIpEqvB,6BAAazqC,MAAM4wB,OAAN,CAAc,KAAKvoB,IAAL,CAAU/I,OAAxB,CAJuD;AAKpE1D,sBAAM0H,KAAK6O,KALyD;AAMpEk0B,sBAAM/iC,KAAK2qB,KANyD;AAOpEvuB,oBAAI,KAAK2I,IAAL,CAAU3I;AAPsD,aAAxE,EAQG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,wBAAIic,KAAKhlB,EAAEmG,IAAF,CAAO,OAAK8J,IAAL,CAAUs8B,UAAjB,EAA6B,EAAEjlC,IAAIqF,KAAKA,IAAL,CAAUrF,EAAhB,EAA7B,CAAT;AACA,wBAAI0d,EAAJ,EAAQ;AACJA,2BAAGwnB,MAAH,GAAY7/B,KAAKA,IAAL,CAAU6/B,MAAtB;AACH,qBAFD,MAEO;AACH,+BAAKv8B,IAAL,CAAUs8B,UAAV,aAA2B,OAAKt8B,IAAL,CAAUs8B,UAArC,GAAiD5/B,KAAKA,IAAtD;AACH;AACD6zB,uBAAG8gB,MAAH,CAAU,sBAAV;AACH,iBARD,MAQO;AACHx4C,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aApBD;AAqBH;;2CAED40C,2DAAyB;AAAA;;AACrB,gBAAI,KAAKL,WAAT,EAAsB;AAClB,oBAAItU,IAAIjtC,EAAE,KAAKwhD,MAAP,EAAel3B,GAAf,EAAR;AACA,oBAAI2iB,CAAJ,EAAO;AACH,yBAAKwU,sBAAL,CAA4B;AACxBvrB,+BAAO+W,CADiB;AAExB7yB,+BAAO6yB,CAFiB;AAGxB5pB,8BAAM;AAHkB,qBAA5B;AAKArjB,sBAAE,KAAKwhD,MAAP,EAAel3B,GAAf,CAAmB,EAAnB;AACH;AACJ,aAVD,MAUO;AACHjqB,kBAAEmO,KAAF,CAAQ;AAAA,2BAAMxO,EAAE,OAAKwhD,MAAP,EAAe3uC,KAAf,EAAN;AAAA,iBAAR;AACH;AACD,iBAAK0uC,WAAL,GAAmB,CAAC,KAAKA,WAAzB;AACH;;2CAEDM,6CAAkB;AACd,iBAAKD,sBAAL;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC9GQE,4BAAAA,4BAER,gCAAS,EAAEC,oBAAoB,8BAAY7W,MAAlC,EAAT;AAYD,qCAAc;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,iBANdxS,OAMc,GANJ,EAMI;AAAA,iBALdnd,QAKc,GALHtT,MAAM6uB,WAAN,EAKG;;AACV,iBAAKx3B,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO4U,uCAApB,EAA6D,UAAC1U,OAAD,EAAa;AACvF,sBAAKg5B,OAAL,IAAgBjxB,MAAMiP,SAAtB,SAAoChX,QAAQg5B,OAA5C;AACH,aAFgB,CAAjB;AAGH;;oCAKD54B,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;oCAKDoG,+BAAW;AAAA;;AACPnG,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,OAAzB,EAAkC,yBAAlC,EAA6D,UAACC,KAAD,EAAW;AACpEA,sBAAMC,cAAN;AACAxH,mBAAG2H,OAAH,CAAW1H,OAAO6U,qBAAlB,EAAyC;AACrC9M,oCAAcvH,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,YAA5B,CAAd;AADqC,iBAAzC;AAGH,aALD;;AAQA5G,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,YAAzB,EAAuC,gDAAvC,EAAyF,UAACC,KAAD,EAAW;AAChGA,sBAAMC,cAAN;AACA,oBAAIC,KAAKhH,EAAE8G,MAAMG,aAAR,CAAT;AACA1H,mBAAG2H,OAAH,CAAW1H,OAAO8U,yBAAlB,EAA6C;AACzC3M,wBAAIM,MAAMkvB,QAAN,CAAe,IAAf,EAAqBnwB,GAAGJ,IAAH,CAAQ,MAAR,CAArB,CADqC;AAEzCS,4BAAQP,MAAMG;AAF2B,iBAA7C;AAIH,aAPD;;AAUAjH,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,YAAzB,EAAuC,yCAAvC,EAAkF,UAACC,KAAD,EAAW;AACzFA,sBAAMC,cAAN;AACA,oBAAIi7C,KAAKhiD,EAAE8G,MAAMG,aAAR,CAAT;;AAEA1H,mBAAG2H,OAAH,CAAW1H,OAAO+U,uBAAlB,EAA2C;AACvCimB,yBAAKvyB,MAAMuyB,GAAN,CAAUwnB,GAAGx7C,IAAH,CAAQ,6BAAR,CAAV;AADkC,iBAA3C;AAGH,aAPD;;AASAxG,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,OAAzB,EAAkC,gCAAlC,EAAoE,UAACC,KAAD,EAAW;AAC3EA,sBAAMC,cAAN;AACAxH,mBAAG2H,OAAH,CAAW1H,OAAOwM,4BAAlB,EAAgD,EAAE3E,QAAQrH,EAAE,MAAMA,EAAE8G,MAAMG,aAAR,EAAuBL,IAAvB,CAA4B,SAA5B,CAAR,CAAV,EAAhD;AACH,aAHD;;AAMA5G,cAAE,kBAAF,EAAsB6G,EAAtB,CAAyB,YAAzB,EAAuC,yEAAvC,EAAkH,UAACC,KAAD,EAAW;AACzHA,sBAAMC,cAAN;AACA,oBAAIC,KAAKhH,EAAE8G,MAAMG,aAAR,CAAT;AACA1H,mBAAG2H,OAAH,CAAW1H,OAAO2H,4BAAlB,EAAgD;AAC5CqD,6BAAS,OAAKA,OAD8B;AAE5CpD,8BAAUJ,GAAGJ,IAAH,CAAQ,YAAR,CAFkC;AAG5CS,4BAAQP,MAAMG;AAH8B,iBAAhD;AAKH,aARD;;AAUA,iBAAK0J,WAAL;AACH;;oCAEDovC,2CAAiB;;AAEb,gBAAI,KAAKv1C,OAAT,EAAkB;AACd,qBAAKkuB,OAAL,IAAgBjxB,MAAMiP,SAAtB,SAAoC,KAAKlM,OAAL,CAAakuB,OAAjD;AACH,aAFD,MAEO;AACH,qBAAKA,OAAL,GAAe,EAAf;AACH;AACJ;;oCAED4c,uCAAc/pC,MAAM;AAAA;;AAEhB,iBAAK+qC,cAAL,CAAoBziC,IAApB,CAAyB;AACrB0iC,2BAAW,qBAAM;;AAEb,wBAAI31C,YAAJ;;AAEA,wBAAI,OAAK6I,IAAT,EAAe;AACX7I;AACH,qBAFD,MAEO;AACHA;AACH;;AAEDZ,sBAAEgjC,IAAF,CAAOpiC,GAAP,EAAY;AACR+G,4BAAI4D,KAAK5D;AADD,qBAAZ,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACd,mCAAK0D,KAAL,GAAazM,EAAE+K,MAAF,CAAS,OAAK0B,KAAd,EAAqB;AAC9BnF,oCAAI4D,KAAK5D;AADqB,6BAArB,CAAb;AAGAwB,mCAAOC,OAAP,CAAe,SAAf;AACH,yBALD,MAKO;AACHD,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAXD;AAYH;AAvBoB,aAAzB;AA0BH;;oCAED2D,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,GAA5B,EAAiC,UAACgD,GAAD,EAAS;AACtCA,oBAAIzM,cAAJ;AACA,oBAAIuJ,OAAOjQ,EAAE4hD,QAAF,CAAW,OAAKn1C,KAAhB,EAAuB;AAAA,2BAAK2K,EAAEpH,OAAF,CAAUjJ,QAAV,IAAsB,OAAKU,SAAL,CAAeV,QAA1C;AAAA,iBAAvB,CAAX;AACA,oBAAIkJ,IAAJ,EAAU;AACN,2BAAK0/B,WAAL,CAAiB1/B,IAAjB,EAAuBtQ,sCAAoCsQ,KAAK3I,EAAzC,SAAiDnB,IAAjD,CAAsD,uBAAtD,CAAvB;AACH;AACJ,aAND;AAOH;;oCAEDwpC,mCAAYzkC,MAAM2nC,YAAY;;AAE1BlzC,cAAEoN,GAAF,mBAAqB,KAAK3D,IAAL,GAAY,QAAZ,GAAuB,SAA5C,YAA6D;AACzD9B,oBAAI4D,KAAK5D;AADgD,aAA7D,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,wBAAImC,KAAKmH,OAAL,IAAgB1F,KAAKA,IAAL,CAAU0F,OAA9B,EAAuC;AACnCrS,0BAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACH;AACDzB,yBAAKoH,SAAL,GAAiB,IAAjB;AACApH,yBAAKqH,UAAL,GAAkBrH,KAAKhE,OAAvB;AACAlH,sBAAEmO,KAAF,CAAQ,YAAM;AACVxO,0BAAEkzC,UAAF,EAAcrgC,KAAd,GAAsBC,MAAtB;AACAC,iCAASC,MAAT,CAAgBkgC,UAAhB;AACH,qBAHD;AAIH,iBAVD,MAUO;AACH/pC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AAEJ,aAjBD;AAkBH;;oCAEDymC,uCAAcjgC,KAAKjI,MAAM+nC,QAAQ;AAC7B,iBAAKC,QAAL,CAAchoC,IAAd,EAAoB+nC,MAApB;AACA/nC,iBAAKoH,SAAL,GAAiB,KAAjB;AACH;;oCAED6gC,+CAAkBhgC,KAAKjI,MAAM+nC,QAAQ;AACjC/nC,iBAAKhE,OAAL,GAAegE,KAAKqH,UAApB;AACA5S,cAAEszC,MAAF,EAAUhpB,GAAV,CAAc/e,KAAKhE,OAAnB;AACAgE,iBAAKoH,SAAL,GAAiB,KAAjB;AACH;;oCAED4gC,6BAAShoC,MAAM+nC,QAAQ;AAAA;;AAEnB,iBAAKb,OAAL,GAAe,IAAf;;AAEAlnC,iBAAKhE,OAAL,GAAevH,EAAEszC,MAAF,EAAUhpB,GAAV,EAAf;;AAEA,gBAAIyO,OAAO9wB,MAAM4wB,OAAN,CAActtB,KAAKhE,OAAnB,CAAX;AACA,gBAAImsC,UAAUzrC,MAAM4wB,OAAN,CAActtB,KAAKqH,UAAnB,CAAd;;AAEA,gBAAIhS,YAAJ;AACA,gBAAIoM,aAAJ;;AAEA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACHy2B,6BAASx7B,MAAMyuB,UAAN,EADN;AAEHvZ,0BAAMrU,KAAK,MAAL,CAFH;AAGHnB,wBAAI4D,KAAK5D,EAHN;AAIHJ,6BAASgE,KAAKhE,OAJX;AAKHuS,0BAAM7R,MAAMixB,KAAN,CAAY3tB,KAAKqH,UAAjB,EAA6BrH,KAAKhE,OAAlC;AALH,iBAAP;AASH,aAXD,MAWO;AACH3G;AACAoM,uBAAO;AACHpM,yBAAKqH,MAAM0uB,MAAN,EADF;AAEHhvB,wBAAI4D,KAAK5D,EAFN;AAGH+K,6BAASnH,KAAKmH,OAHX;AAIHgpC,+BAAWzzC,MAAMwwB,cAAN,CAAqBltB,KAAKhE,OAA1B,EAAmC,KAAKmxB,OAAxC,EAAiDtd,IAAjD,CAAsD,GAAtD,CAJR;AAKH7T,6BAASgE,KAAKhE,OALX;AAMHuS,0BAAM7R,MAAMixB,KAAN,CAAY3tB,KAAKqH,UAAjB,EAA6BrH,KAAKhE,OAAlC;AANH,iBAAP;AAUH;;AAEDvH,cAAEgjC,IAAF,CAAOpiC,GAAP,EAAYoM,IAAZ,EAAkB,UAACA,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AACzC,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,SAAf;AACAmC,yBAAKoH,SAAL,GAAiB,KAAjB;AACApH,yBAAKmH,OAAL,GAAe1F,KAAKA,IAAL,CAAU0F,OAAzB;AACH,iBAJD,MAIO;AACHvJ,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aARD,EAQG0B,MARH,CAQU,YAAM;AACZ,uBAAK+jC,OAAL,GAAe,KAAf;AACH,aAVD;AAWH;;oCAEDY,iDAAmB7/B,KAAKjI,MAAM+nC,QAAQ;;AAElC,gBAAI,KAAKb,OAAT,EAAkB;AACd,uBAAO,KAAP;AACH;;AAED,gBAAIj/B,IAAIlC,OAAJ,IAAekC,IAAIuW,OAAJ,KAAgB,EAAnC,EAAuC;;AAEnC,qBAAKwpB,QAAL,CAAchoC,IAAd,EAAoB+nC,MAApB;;AAEA,uBAAO,KAAP;AACH,aALD,MAKO,IAAI9/B,IAAIlC,OAAJ,IAAekC,IAAIuW,OAAJ,KAAgB,EAAnC,EAAuC;AAC1C/pB,kBAAEszC,MAAF,EAAUpiC,IAAV,CAAe,mBAAf,EAAoC1K,IAApC,CAAyC,SAAzC,EAAoDmN,KAApD;AACA,uBAAO,KAAP;AACH,aAHM,MAGA,IAAIH,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AAC3B,qBAAKypB,iBAAL,CAAuBhgC,GAAvB,EAA4BjI,IAA5B,EAAkC+nC,MAAlC;AACH;;AAED,mBAAO,IAAP;AACH;;oCAED4O,yCAAet5C,MAAM2C,MAAM;AACvB,gBAAI3C,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVjP,uBAAG2H,OAAH,CAAW1H,OAAO8L,6BAAlB,EAAiD;AAC7CC,8BAAMA;AADuC,qBAAjD;AAGH,iBAJD;AAKH;AACJ;;oCAED4pC,mCAAY5pC,MAAM;;AAEd,gBAAIA,KAAK42C,MAAT,EAAiB;AACb,qBAAKC,aAAL,CAAmB72C,IAAnB;AACA;AACH;;AAEDvL,cAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/Br7B,oBAAI4D,KAAK5D;AADsB,aAAnC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B1E,qBAAK42C,MAAL,GAAc,IAAd;AACA,oBAAIn1C,KAAK5D,OAAT,EAAkB;AACdmC,yBAAK82C,MAAL,GAAcr1C,KAAKA,IAAL,CAAUrF,EAAxB;AACAwB,2BAAOC,OAAP,CAAe,SAAf;AACH,iBAHD,MAGO;AACHmC,yBAAK82C,MAAL,GAAer1C,KAAKO,IAAL,IAAaP,KAAKO,IAAL,CAAU7L,MAAV,GAAmB,CAAjC,GAAsCsL,KAAKO,IAAL,CAAU,CAAV,EAAa5F,EAAnD,GAAwD,EAAtE;AAEH;AACJ,aAXD;AAYH;;oCAEDy6C,uCAAc72C,MAAM;AAChB,gBAAI,CAACA,KAAK82C,MAAV,EAAkB;AACd;AACH;AACDriD,cAAEgjC,IAAF,CAAO,gCAAP,EAAyC;AACrCr7B,oBAAI4D,KAAK82C;AAD4B,aAAzC,EAEG,UAACr1C,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B1E,qBAAK42C,MAAL,GAAc,KAAd;AACA52C,qBAAK82C,MAAL,GAAc,EAAd;AACA,oBAAIr1C,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,WAAf;AACH,iBAFD,MAEO,CAEN;AACJ,aAVD;AAWH;;oCAEDisC,2CAAgB9pC,MAAM;AAClBvL,cAAEgjC,IAAF,CAAO,8BAAP,EAAuC;AACnCr7B,oBAAI4D,KAAK5D,EAD0B;AAEnCgvC,sBAAM,CAACprC,KAAKkH;AAFuB,aAAvC,EAGG,UAACzF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdmC,yBAAKkH,QAAL,GAAgB,CAAClH,KAAKkH,QAAtB;AACAtJ,2BAAOC,OAAP,EAAkBmC,KAAKkH,QAAL,GAAgB,IAAhB,GAAuB,IAAzC;AACH,iBAHD,MAGO;AACHtJ,2BAAOC,OAAP,EAAkB,CAACmC,KAAKkH,QAAN,GAAiB,IAAjB,GAAwB,IAA1C;AACH;AACJ,aAVD;AAWH;;oCAED8/B,qCAAahnC,MAAM;AACfhM,eAAG2H,OAAH,CAAW1H,OAAO6U,qBAAlB,EAAyC;AACrC9M,6CAAiBgE,KAAK5D,EAAtB,UAA6BM,MAAM0uB,MAAN,EAA7B,YAAkDprB,KAAK5D,EAAvD,WAA+D4D,KAAK8E,OAAL,CAAajJ,QAA5E;AADqC,aAAzC;;AAKApH,cAAEgjC,IAAF,CAAO,wCAAP,EAAiD;AAC7C52B,wBAAQb,KAAK5D;AADgC,aAAjD;AAGH;;oCAED26C,iDAAmB/2C,MAAM;AACrBhM,eAAG2H,OAAH,CAAW1H,OAAO6U,qBAAlB,EAAyC;AACrC9M,gCAAcgE,KAAK8E,OAAL,CAAajJ,QAA3B;AADqC,aAAzC;AAGH;;oCAED+rC,yCAAe5nC,MAAM;AACjBvL,cAAEoN,GAAF,CAAM,yBAAN,EAAiC;AAC7BzF,oBAAI4D,KAAK5D;AADoB,aAAjC,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIzB,KAAKmH,OAAL,IAAgB1F,KAAKA,IAAL,CAAU0F,OAA9B,EAAuC;AACnCrS,sBAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACA7D,2BAAOC,OAAP,CAAe,SAAf;AACH,iBAHD,MAGO;AACHD,2BAAOiqC,IAAP,CAAY,WAAZ;AACH;AACJ,aATD;AAUH;;oCAEDmP,mCAAYh3C,MAAMi3C,QAAQ;;AAEtB,gBAAKA,UAAUj3C,KAAKk3C,UAAhB,IAAgC,CAACD,MAAD,IAAWj3C,KAAKm3C,UAApD,EAAiE;AAC7D;AACH;;AAED1iD,cAAEgjC,IAAF,CAAO,0BAAP,EAAmC;AAC/Br7B,oBAAI4D,KAAK5D,EADsB;AAE/B/G,qBAAKqH,MAAM0uB,MAAN,EAF0B;AAG/B+b,6BAAazqC,MAAM4wB,OAAN,CAActtB,KAAKhE,OAAnB,CAHkB;AAI/B8b,sBAAMm/B,SAAS,KAAT,GAAiB;AAJQ,aAAnC,EAKG,UAACx1C,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd/I,sBAAEC,MAAF,CAASiL,IAAT,EAAeyB,KAAKA,IAApB;AACA,wBAAIw1C,MAAJ,EAAY;AACRj3C,6BAAKk3C,UAAL,GAAkB,IAAlB;AACH,qBAFD,MAEO;AACHl3C,6BAAKm3C,UAAL,GAAkB,IAAlB;AACH;AACJ,iBAPD,MAOO;AACHv5C,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAhBD;AAiBH;;oCAED21C,iCAAWp3C,MAAM;AACbvL,cAAEgjC,IAAF,CAAO,gCAAP,EAAyC;AACrCr7B,oBAAI4D,KAAK5D,EAD4B;AAErCumC,qBAAK,KAAK1jC,OAAL,CAAa7C;AAFmB,aAAzC,EAGG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,OAAkB4D,KAAKyyB,IAAL,IAAa,GAAb,GAAmB,WAAnB,GAAiC,aAAnD;AACAl0B,yBAAKq3C,KAAL,GAAc51C,KAAKyyB,IAAL,IAAa,GAA3B;AACH,iBAHD,MAGO;AACHt2B,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAVD;AAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCjWQ61C,sBAAAA;8BAQT9C,2CAAiB;;AAEb,gBAAI,KAAKv1C,OAAT,EAAkB;AACd,qBAAKkuB,OAAL,IAAgBjxB,MAAMiP,SAAtB,SAAoC,KAAKlM,OAAL,CAAakuB,OAAjD;AACH,aAFD,MAEO;AACH,qBAAKA,OAAL,GAAe,EAAf;AACH;AAEJ;;AAKD,+BAAc;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,iBAhBdA,OAgBc,GAhBJ,EAgBI;AAAA,iBAfdsE,QAec,GAfH/0B,MAAM+0B,QAAN,EAeG;;AACV,iBAAK19B,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO2U,wBAApB,EAA8C,UAACzU,OAAD,EAAa;AACxE,uBAAKkU,cAAL,CAAoBC,IAApB;AACH,aAFgB,CAAjB;AAGA,iBAAKlO,UAAL,GAAkBpG,GAAGD,SAAH,CAAaE,OAAO4U,uCAApB,EAA6D,UAAC1U,OAAD,EAAa;AACxF,uBAAKg5B,OAAL,IAAgBjxB,MAAMiP,SAAtB,SAAoChX,QAAQg5B,OAA5C;AACH,aAFiB,CAAlB;AAGA,iBAAK3yB,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAO6U,qBAApB,EAA2C,UAAC3U,OAAD,EAAa;AACtE,uBAAKowC,aAAL,CAAmBpwC,QAAQ6H,OAA3B;AACH,aAFiB,CAAlB;AAGH;;8BAKDzH,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAK4F,UAAL,CAAgB5F,OAAhB;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACH;;8BAED4Q,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,GAA5B,EAAiC,YAAM;AACnC1J,sBAAMC,cAAN;AACA,uBAAKkpC,SAAL,CAAeC,UAAf,CAA0Br9B,KAA1B;AACH,aAHD;AAIH;;8BAKD1M,+BAAW;AACP,iBAAK28C,aAAL,CAAmB,KAAKC,YAAxB;AACA,iBAAKC,YAAL;AACA,iBAAKlR,SAAL;AACA,iBAAKnhC,WAAL;AACH;;8BAEDmhC,iCAAY;AAAA;;AAER,gBAAIa,eAAJ;AACA,gBAAI,KAAKf,gBAAL,CAAsB3wC,EAAtB,CAAyB,UAAzB,CAAJ,EAA0C;AACtC0xC,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBrqB,gBAAzB,EAAT;AACH,aAFD,MAEO;AACHorB,yBAAS3yC,EAAE,KAAK4xC,gBAAP,EAAyBnqB,uBAAzB,EAAT;AACH;;AAEDkrB,sBAAWA,OAAO9rC,EAAP,CAAU,YAAV,EAAwB,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;;AAE7ChN,kBAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBrb,6BAAS3a,KAAK2a,OADW;AAEzBtE,0BAAMrW,KAAKmf,IAAL,CAAU9I,IAFS;AAGzBiiB,4BAAQ79B,MAAMgC,IAAN,GAAa,MAAb,GAAsB,SAHL;AAIzBq9B,0BAAMr/B,MAAMlE;AAJa,iBAA7B,EAKG,UAACyJ,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,wBAAIjD,KAAK5D,OAAT,EAAkB;AACd,+BAAK0mC,aAAL,CAAmB,uCACdzwB,OADc,CACN,WADM,EACOrS,KAAKA,IAAL,CAAUnJ,IADjB,EAEdwb,OAFc,CAEN,cAFM,EAEUpX,MAAMyuB,UAAN,KAAqB,GAF/B,EAGdrX,OAHc,CAGN,WAHM,EAGOrS,KAAKA,IAAL,CAAUmQ,IAHjB,EAIdkC,OAJc,CAIN,eAJM,EAIWrS,KAAKA,IAAL,CAAUk5B,QAJrB,CAAnB;AAKH;AACJ,iBAbD;AAcH,aAhBU,EAgBRr/B,EAhBQ,CAgBL,iBAhBK,EAgBc,UAAC0iB,EAAD,EAAKvc,IAAL,EAAc;AACnC7D,uBAAOE,KAAP,CAAa2D,KAAKgf,OAAlB,EAA2B,YAA3B;AACH,aAlBU,CAAX;AAmBH;;8BAEDg3B,uCAAe;AAAA;;AACX,iBAAKhR,kBAAL,CAAwBhyC,EAAE,kBAAF,EAAsB,KAAKijD,QAA3B,CAAxB,EAA8D,YAAM;AAChE,uBAAO,OAAKrR,gBAAZ;AACH,aAFD,EAEG,KAFH;AAGA,iBAAKI,kBAAL,CAAwBhyC,EAAE,KAAK0T,gBAAP,EAAyBvJ,QAAzB,GAAoCo7B,OAApC,EAAxB,EAAuE,YAAM;AACzE,uBAAO,OAAKqM,gBAAZ;AACH,aAFD,EAEG,IAFH;;AAIA5xC,cAAE,KAAKkjD,UAAP,EAAmBxZ,KAAnB,CAAyB;AACrB9F,wBAAQ,IADa;AAErBmK,2BAAW,IAFU;AAGrBtlB,0BAAU,aAHW;AAIrBqT,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH;AAJc,aAAzB;AAUH;;8BAED+M,iDAAmBY,QAAQC,kBAAkBnN,WAAW;;AAEpD,gBAAIpc,QAAQ,IAAZ;;AAEAtpB,cAAE4yC,MAAF,EAAUpN,QAAV,CAAmB;AACf5kC,qBAAK,oBADU;AAEf6kC,2BAAW,MAFI;AAGfC,2BAAW,CAAC,CAACA,SAHE;AAIfC,oCAAoB,EAJL;AAKfC,6BAAa,EALE;AAMfC,gCAAgB,IAND;AAOfiN,mCAAmB,KAAKqQ,gBAPT;AAQfpQ,iCAAiB,KAAKqQ,kBAAL,CAAwBpQ,SAR1B;AASflN,kCAAkB,MATH;AAUfC,8CAA8B,WAVf;AAWfC,gCAAgB,2CAXD;AAYf5mC,sBAAM,gBAAW;AACb,yBAAKyH,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAeza,GAAf,EAAoBg2B,QAApB,EAA8B;AAC7C,4BAAI,CAAC4M,kBAAL,EAAyB;AACrB,iCAAKI,cAAL,CAAoB,IAApB;AACH,yBAFD,MAEO;AACHhN,qCAAStU,MAAT,CAAgB,QAAhB,EAA0BlqB,MAAMgC,IAAN,GAAa,MAAb,GAAsB,SAAhD;AACAw8B,qCAAStU,MAAT,CAAgB,MAAhB,EAAwBlqB,MAAMlE,MAA9B;AACH;AACJ,qBAPD;AAQA,yBAAKsD,EAAL,CAAQ,SAAR,EAAmB,UAAS6jB,IAAT,EAAe1d,IAAf,EAAqB;AACpC,4BAAIA,KAAK5D,OAAT,EAAkB;;AAEdpJ,8BAAEyG,IAAF,CAAOuG,KAAKA,IAAZ,EAAkB,UAAStG,KAAT,EAAgB6E,IAAhB,EAAsB;AACpC,oCAAIA,KAAK8X,IAAL,IAAa,OAAjB,EAA0B;AACtBiG,0CAAMwmB,aAAN,CAAoB,wCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM9T,KAAK4R,IAHX,EAIfkC,OAJe,CAIP,eAJO,EAIU9T,KAAK26B,QAJf,CAApB;AAKH,iCAND,MAMO;AACH5c,0CAAMwmB,aAAN,CAAoB,uCACfzwB,OADe,CACP,WADO,EACM9T,KAAK1H,IADX,EAEfwb,OAFe,CAEP,cAFO,EAESpX,MAAMyuB,UAAN,KAAqB,GAF9B,EAGfrX,OAHe,CAGP,WAHO,EAGM,sBAHN,EAIfA,OAJe,CAIP,eAJO,EAIU9T,KAAK5D,EAJf,CAApB;AAKH;AACJ,6BAdD;AAeAwB,mCAAOC,OAAP,CAAe,OAAf;AACH,yBAlBD,MAkBO;AACHD,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AAEJ,qBAvBD;AAwBA,yBAAKnG,EAAL,CAAQ,OAAR,EAAiB,UAAS6jB,IAAT,EAAeyb,YAAf,EAA6Bl2B,GAA7B,EAAkC;AAC/C9G,+BAAOE,KAAP,CAAa88B,YAAb,EAA2B,OAA3B;AACH,qBAFD;AAGA,yBAAKt/B,EAAL,CAAQ,UAAR,EAAoB,UAAS6jB,IAAT,EAAe;AAC/B,6BAAK0b,UAAL,CAAgB1b,IAAhB;AACH,qBAFD;AAGH;AAnDc,aAAnB;AAqDH;;8BAEDo4B,uCAAcO,aAAa;AAAA;;AACvB,iBAAKpT,SAAL,GAAiB,wBAAc;AAC3BnkC,yBAASu3C,WADkB;AAE3BhT,8BAAc,KAFa;AAG3B5R,wBAAQ,KAHmB;AAI3B6kB,2BAAW,IAJgB;AAK3BhT,yBAAS,KALkB;;AAO3BiT,yCAAyB,KAPE;AAQ3BjS,6BAAa;AACTC,2BAAO,CAAC,EAAD,EAAK,0EAAL;AADE,iBARc;AAW3BC,+BAAe,uBAACrZ,SAAD,EAAYsZ,OAAZ,EAAwB;AACnC,2BAAO,OAAKxB,SAAL,CAAeuT,QAAf,CAAwBv7C,MAAMiwB,QAAN,CAAeC,SAAf,CAAxB,CAAP;AACH;AAb0B,aAAd,CAAjB;;AAgBA,iBAAKyZ,gBAAL,GAAwB5xC,EAAE,KAAKijD,QAAP,EAAiBz8C,IAAjB,CAAsB,uCAAtB,CAAxB;AACA,gBAAI,KAAKorC,gBAAL,CAAsB3kC,IAAtB,OAAiC,CAArC,EAAwC;AACpC,qBAAK2kC,gBAAL,GAAwB5xC,EAAE,KAAKijD,QAAP,EAAiBz8C,IAAjB,CAAsB,uDAAtB,CAAxB;AACH;;AAED,iBAAKurC,gBAAL;AACH;;8BAEDA,+CAAmB;AAAA;;AAEf/xC,cAAE,KAAK4xC,gBAAP,EAAyBnJ,YAAzB,CAAsC,CAAC;AACnC5mC,uBAAO,cAD4B;AAEnC6mC,wBAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxB,wBAAI2uB,OAAOvoC,EAAEuoC,IAAF,sBAAX;AACA3uB,6BAASja,EAAE2D,GAAF,CAAMilC,IAAN,EAAY,UAAC/oB,GAAD,EAAS;AAC1B,+BAAOA,IAAIiE,OAAJ,CAAY6kB,IAAZ,MAAsB,CAAtB,GAA0B9oB,GAA1B,GAAgC,IAAvC;AACH,qBAFQ,CAAT;AAGH,iBAPkC;AAQnCgpB,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,2BAAO,qBAAKvuB,KAAL,EAAY8b,KAAnB;AACH,iBAVkC;AAWnC7W,yBAAS,iBAACjF,KAAD,EAAW;AAChB,wBAAI,OAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B,+BAAK4gB,gBAAL,CAAsB,qBAAK5gB,KAAL,EAAYoE,IAAlC,EAAwC,qBAAKpE,KAAL,EAAY+b,EAApD;AACA,sCAAY,qBAAK/b,KAAL,EAAYA,KAAxB;AACH,qBAHD,MAGO;AACH,+BAAO,EAAP;AACH;AACJ;AAlBkC,aAAD,EAmBnC;AACCvY,uBAAO,eADR;AAEC6mC,wBAAQ,gBAACC,IAAD,EAAO1uB,QAAP,EAAoB;AACxBA,6BAASja,EAAE2D,GAAF,CAAM,OAAK+0B,OAAX,EAAoB,UAACoQ,MAAD,EAAY;AACrC,+BAAQA,OAAOnyB,OAAP,IAAkBmyB,OAAO1hC,QAAP,CAAgB0c,OAAhB,CAAwB6kB,IAAxB,KAAiC,CAApD,GAAyDG,OAAO1hC,QAAhE,GAA2E,IAAlF;AACH,qBAFQ,CAAT;AAGH,iBANF;AAOCyhC,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAI5gC,OAAO1H,EAAEmG,IAAF,CAAO,OAAKkyB,OAAZ,EAAqB,EAAEtxB,UAAUgT,KAAZ,EAArB,CAAX;AACA,2BAAUrS,KAAKlE,IAAf,WAAyBkE,KAAK6O,KAA9B,UAAwC7O,KAAKX,QAA7C;AACH,iBAVF;AAWCiY,yBAAS,iBAACjF,KAAD,EAAW;AAChB,oCAAcA,KAAd;AACH;AAbF,aAnBmC,EAiCnC;AACCvY,uBAAO,qBADR;AAEC6mC,wBAAQ,gBAASC,IAAT,EAAe1uB,QAAf,EAAyB;AAC7BA,6BAASja,EAAE2D,GAAF,wBAAc,UAAColC,KAAD,EAAW;AAC9B,+BAAO1oC,EAAE+N,IAAF,CAAO26B,MAAMnsB,KAAN,CAAY,GAAZ,CAAP,EAAyB,UAACrR,IAAD,EAAU;AACtC,mCAAOA,KAAKuY,OAAL,CAAa6kB,IAAb,MAAuB,CAA9B;AACH,yBAFM,IAEFI,KAFE,GAEM,IAFb;AAGH,qBAJQ,CAAT;AAKH,iBARF;AASCF,0BAAU,kBAACzuB,KAAD,EAAQuuB,IAAR,EAAiB;AACvB,wBAAIvuB,SAAS,QAAb,EAAuB;AACnB;AACH;AACD,wBAAI4uB,iBAAe5uB,KAAf,MAAJ;AACA,2BAAU0e,QAAQzZ,OAAR,CAAgB2pB,QAAhB,CAAV,WAAyCA,QAAzC;AACH,iBAfF;AAgBC3pB,yBAAS,iBAACjF,KAAD,EAAW;AAChB,wBAAI,OAAKouB,iBAAL,CAAuBpuB,KAAvB,CAAJ,EAAmC;AAC/B,+BAAO,QAAQA,KAAR,GAAgB,IAAvB;AACH,qBAFD,MAEO;AACH,+BAAO,EAAP;AACH;AACJ;AAtBF,aAjCmC,CAAtC,EAwDI;AACAiP,0BAAU,sBADV;AAEAnnB,0BAAU1C,OAAO8W;AAFjB,aAxDJ;;AA6DA,iBAAK25B,SAAL,CAAeC,UAAf,CAA0BrpC,EAA1B,CAA6B,SAA7B,EAAwC,UAAC6qC,EAAD,EAAKxoC,CAAL,EAAW;AAC/C,oBAAI7I,EAAEk5B,QAAF,CAAW,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAX,EAAyBrwB,EAAE6gB,OAA3B,KAAuC,OAAKkoB,UAAL,EAA3C,EAA8D;AAC1D/oC,sBAAEnC,cAAF;AACH,iBAFD,MAEO,IAAImC,EAAEoI,OAAF,IAAapI,EAAE6gB,OAAF,KAAc,EAA/B,EAAmC;AACtC,2BAAK05B,WAAL;AACH,iBAFM,MAEA,IAAIv6C,EAAE6gB,OAAF,KAAc,EAAlB,EAAsB;AACzB,2BAAKkmB,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACH,iBAFM,MAEA,IAAIlR,EAAEoI,OAAF,IAAapI,EAAE6gB,OAAF,IAAa,EAA9B,EAAkC;AACrC/pB,sBAAE,OAAK0T,gBAAP,EAAyBlN,IAAzB,CAA8B,UAA9B,EAA0CmN,KAA1C;AACH,iBAFM,MAEA,IAAIzK,EAAEoI,OAAF,IAAapI,EAAE6gB,OAAF,IAAa,GAA9B,EAAmC;AACtC,2BAAKnW,cAAL,CAAoBC,IAApB;AACH;AACJ,aAZD;AAaH;;8BAEDmnB,6CAAiBxc,MAAM2X,IAAI;AAAA;;AACvB,aAAC3X,QAAQ2X,EAAT,KAAiB91B,EAAEy7B,KAAF,CAAQ,YAAM;AAC3B,oBAAImN,KAAK,OAAKgH,SAAL,CAAeC,UAAf,CAA0BmC,SAA1B,EAAT;AACA,uBAAKpC,SAAL,CAAeC,UAAf,CAA0BwT,SAA1B,CAAoC;AAChCllC,0BAAMyqB,GAAGzqB,IAAH,IAAWA,OAAOA,IAAP,GAAc,CAAzB,CAD0B;AAEhC2X,wBAAI8S,GAAGzqB,IAAH,GAAW2X,KAAKA,EAAL,GAAU,CAArB,GAA2B8S,GAAG9S,EAAH,IAASA,KAAKA,EAAL,GAAU,CAAnB;AAFC,iBAApC;AAIH,aANgB,EAMd,GANc,CAAjB;AAOH;;8BAEDstB,qCAAc;AAAA;;AAEV,gBAAIl8C,UAAU,KAAK0oC,SAAL,CAAe71B,KAAf,EAAd;;AAEA,gBAAI,CAACpa,EAAE2e,IAAF,CAAOpX,OAAP,CAAL,EAAsB;AAClB,qBAAK0oC,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACA;AACH;;AAED,gBAAI,KAAKq4B,OAAT,EAAkB;AACd;AACH;;AAED,iBAAKA,OAAL,GAAe,IAAf;;AAEA,gBAAI1Z,OAAO9wB,MAAM4wB,OAAN,CAActxB,OAAd,CAAX;;AAEA,gBAAI3G,YAAJ;AACA,gBAAIoM,aAAJ;AACA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACHy2B,6BAASx7B,MAAMyuB,UAAN,EADN;AAEHvZ,0BAAMrU,KAAK,MAAL,CAFH;AAGHvF,4BAAQ,KAAKA,MAHV;AAIHgE,6BAASA,OAJN;AAKHmrC,iCAAa3Z;AALV,iBAAP;AAOH,aATD,MASO;AACHn4B;AACAoM,uBAAO;AACHpM,yBAAKqH,MAAM0uB,MAAN,EADF;AAEHzpB,+BAAW,KAAK1C,OAAL,CAAa7C,EAFrB;AAGH+zC,+BAAWzzC,MAAMwwB,cAAN,CAAqBlxB,OAArB,EAA8B,KAAKmxB,OAAnC,EAA4Ctd,IAA5C,CAAiD,GAAjD,CAHR;AAIH7T,6BAASA,OAJN;AAKHmrC,iCAAa3Z;AALV,iBAAP;AAOH;AACD/4B,cAAEgjC,IAAF,CAAOpiC,GAAP,EAAYoM,IAAZ,EAAkB,UAACA,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AACzC,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK6mC,SAAL,CAAe71B,KAAf,CAAqB,EAArB;AACA7a,uBAAG2H,OAAH,CAAW1H,OAAO+J,qBAAlB,EAAyC;AACrCyD,8BAAMA;AAD+B,qBAAzC;AAGH,iBALD,MAKO;AACH7D,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,aATD,EASG0B,MATH,CASU,YAAM;AACZ,uBAAK+jC,OAAL,GAAe,KAAf;AACH,aAXD;AAYH;;8BAEDkR,mDAAqB;AACjB,iBAAKF,WAAL;AACH;;8BAEDxR,mCAAa;AACT,mBAAOjyC,EAAE,KAAKmjD,gBAAP,EAAyB38C,IAAzB,CAA8B,gCAA9B,EAAgEyG,IAAhE,OAA2E,CAAlF;AACH;;8BAQD6iC,uCAAcvoC,SAAS4qC,KAAK;AACxB,gBAAI;AACA,oBAAIT,KAAKS,MAAMA,IAAIjC,UAAV,GAAuB,KAAKD,SAAL,CAAeC,UAA/C;AACA,oBAAIkC,SAASV,GAAGW,SAAH,EAAb;AACA,oBAAID,MAAJ,EAAY;AACRV,uBAAGY,YAAH,CAAgB/qC,OAAhB,EAAyB6qC,MAAzB,EAAiCA,MAAjC;AACAV,uBAAG7+B,KAAH;AACH;AACJ,aAPD,CAOE,OAAOpB,GAAP,EAAY;AAAEuV,wBAAQC,GAAR,CAAYxV,GAAZ;AAAmB;AACtC;;8BAED+2B,+CAAkBpuB,OAAO;AACrB,gBAAIA,SAAS,SAAb,EAAwB;AACpBpa,kBAAE,KAAK0T,gBAAP,EAAyBlN,IAAzB,CAA8B,UAA9B,EAA0CmN,KAA1C;AACH,aAFD,MAEO,IAAIyG,SAAS,YAAb,EAA2B;AAC9B,qBAAKxG,cAAL,CAAoBC,IAApB;AACH,aAFM,MAEA,IAAIuG,SAAS,QAAb,EAAuB;AAC1B/Z,kBAAEy7B,KAAF,CAAQ,YAAM;AAAE7zB,0BAAM2zB,UAAN,CAAiBp8B,OAAO+W,oBAAxB;AAAgD,iBAAhE,EAAkE,GAAlE;AACH,aAFM,MAEA;AACH,uBAAO,IAAP;AACH;;AAED,mBAAO,KAAP;AACH;;8BAEDqtC,uDAAuB;AACnB,iBAAK3T,SAAL,CAAeoB,aAAf;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC5XQwS,4BAAAA;AAQT,qCAAc;AAAA;;AAAA;;AAAA,iBANdnrB,OAMc,GANJ,EAMI;AAAA,iBALdoQ,MAKc,GALL,EAKK;;AACV,iBAAKxpC,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO2H,4BAApB,EAAkD,UAACzH,OAAD,EAAa;AAC5E,sBAAK8K,OAAL,GAAe9K,QAAQ8K,OAAvB;AACA,sBAAKpD,QAAL,GAAgB1H,QAAQ0H,QAAxB;AACA,sBAAKC,MAAL,GAAc3H,QAAQ2H,MAAtB;AACA,oBAAI,MAAKD,QAAL,IAAiB,KAArB,EAA4B;AACxB,wBAAI,CAAC,MAAKoD,OAAV,EAAmB;AACf;AACH;AACD,0BAAKkuB,OAAL,GAAe,MAAKluB,OAAL,CAAakuB,OAA5B;AACH,iBALD,MAKO;AACH,0BAAKoQ,MAAL,GAAc7gC,MAAMuwB,OAAN,CAAc,MAAKpxB,QAAnB,CAAd;AACA,wBAAIW,OAAOE,MAAMuwB,OAAN,CAAc,MAAKsQ,MAAL,CAAYz4B,OAA1B,CAAX;AACA,0BAAKy4B,MAAL,CAAYgb,WAAZ,GAA2B/7C,QAAS,CAAC,CAACA,KAAKlE,IAAjB,GAA0BkE,KAAKlE,IAA/B,GAAsC,MAAKilC,MAAL,CAAYz4B,OAA5E;AACH;AACDhQ,kBAAEmO,KAAF,CAAQ,YAAM;;AAEVxO,sBAAE,MAAKqH,MAAP,EAAeqiC,KAAf,CAAqB;AACjBA,+BAAO,MAAKA,KADK;AAEjBqE,mCAAW,IAFM;AAGjBnK,gCAAQ,KAHS;AAIjB+F,gCAAQ,IAJS;AAKjBqE,mCAAW,KALM;AAMjBvlB,kCAAU,aANO;AAOjBmhB,gCAAQ,GAPS;AAQjBqE,gCAAQ,UARS;;AAYjBnS,+BAAO;AACHjoB,kCAAM,GADH;AAEHoxB,kCAAM;AAFH;AAZU,qBAArB,EAgBGyE,KAhBH,CAgBS,MAhBT;AAiBH,iBAnBD;AAoBH,aAlCgB,CAAjB;AAmCH;;oCAKD5pC,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;;;;;;;;;;;;;;;;;;;;QCnDQgkD,yBAAAA;AAOT,kCAAc;AAAA;;AAAA;;AACV,iBAAKzkD,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO8U,yBAApB,EAA+C,UAAC5U,OAAD,EAAa;AACzE,sBAAKiI,EAAL,GAAUjI,QAAQiI,EAAlB;AACA,sBAAKN,MAAL,GAAc3H,QAAQ2H,MAAtB;;AAEA,oBAAI,CAAC,MAAKM,EAAV,EAAc;AACV;AACH;;AAED3H,kBAAE,MAAKqH,MAAP,EAAeqiC,KAAf,CAAqB;AACjBA,2BAAO,MAAKA,KADK;AAEjBqE,+BAAW,IAFM;AAGjBnK,4BAAQ,KAHS;AAIjBoK,+BAAW,KAJM;;AAOjBrE,4BAAQ,IAPS;AAQjBlhB,8BAAU,aARO;AASjBmhB,4BAAQ,GATS;AAUjBqE,4BAAQ,UAVS;AAWjBnS,2BAAO;AACHjoB,8BAAM,GADH;AAEHoxB,8BAAM;AAFH,qBAXU;AAejB4E,4BAAQ,kBAAM;AACV7pC,0BAAEoN,GAAF,CAAM,yBAAN,EAAiC;AAC7BzF,gCAAI,MAAKA;AADoB,yBAAjC,EAEG,UAACqF,IAAD,EAAU;AACT,gCAAIA,KAAK5D,OAAT,EAAkB;AACd,sCAAK46C,OAAL,GAAeh3C,KAAKA,IAApB;AACH,6BAFD,MAEO;AACH7D,uCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,OAAxB;AACH;AACJ,yBARD;AASH;AAzBgB,iBAArB,EA0BG08B,KA1BH,CA0BS,MA1BT;AA2BH,aAnCgB,CAAjB;AAoCH;;iCAKD5pC,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnDQkkD,oBAAAA;;;;iBAETr7C,OAAO;;;;;;;;;;;;iBAQP2S,WAAWtT,MAAM6uB,WAAN;;;4BAKX3wB,+BAAW;AACP,iBAAKwK,WAAL;AACH;;4BAEDA,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,GAA5B,EAAiC,UAAC1J,KAAD,EAAW;AACxCA,sBAAMC,cAAN;AACA,oBAAIwE,OAAOlL,EAAEmG,IAAF,CAAO,MAAKsG,KAAZ,EAAmB,EAAEo3C,SAAS,IAAX,EAAnB,CAAX;AACA34C,yBAASA,KAAK4rC,MAAL,GAAc,CAAC5rC,KAAK4rC,MAA7B;AACH,aAJD;AAMH;;4BAEDgN,2CAAiB;AACb,gBAAI,CAAC,KAAKC,OAAV,EAAmB;AACf;AACH;;AAED,gBAAI1kD,UAAU,KAAK0kD,OAAL,CAAa1kD,OAA3B;AACA,gBAAI0rB,SAAS1rB,QAAQ0rB,MAArB;;AAEA,gBAAI,KAAKg5B,OAAL,CAAa1kD,OAAb,CAAqB4pC,MAArB,IAA+B9pC,OAAO0W,cAA1C,EAA0D;AACtD,qBAAK65B,IAAL,GAAY3kB,MAAZ;AACA,qBAAKte,KAAL,GAAazM,EAAEsD,GAAF,CAAMynB,OAAO7jB,OAAb,EAAsB,UAACgE,IAAD,EAAU;AACzC,wBAAI84C,cAAc94C,KAAK84C,WAAvB;AACAA,gCAAYC,MAAZ,GAAqB/4C,IAArB;AACA,2BAAO84C,WAAP;AACH,iBAJY,CAAb;AAKA,qBAAKz7C,IAAL,GAAYwiB,OAAOxiB,IAAnB;AACA,qBAAKo2C,OAAL,GAAe5zB,OAAOrd,aAAP,GAAuB,CAACqd,OAAOpqB,MAAP,GAAgB,CAAjB,IAAsBoqB,OAAOne,IAAnE;AACH,aATD,MASO,IAAI,KAAKm3C,OAAL,CAAa1kD,OAAb,CAAqB4pC,MAArB,IAA+B9pC,OAAOwW,gBAA1C,EAA4D;AAC/D,qBAAKlJ,KAAL,GAAapN,QAAQ0rB,MAArB;AACA,qBAAKxiB,IAAL,GAAY,IAAZ;AACH,aAHM,MAGA,IAAI,KAAKw7C,OAAL,CAAa1kD,OAAb,CAAqB4pC,MAArB,IAA+B9pC,OAAOyW,eAA1C,EAA2D;AAC9D,qBAAKnJ,KAAL,GAAapN,QAAQ0rB,MAArB;AACA,qBAAKxiB,IAAL,GAAY,IAAZ;AACH,aAHM,MAGA,IAAI,KAAKw7C,OAAL,CAAa1kD,OAAb,CAAqB4pC,MAArB,IAA+B9pC,OAAOuW,kBAA1C,EAA8D;AACjE,qBAAK2yB,MAAL,GAAchpC,QAAQgpC,MAAtB;AACA,qBAAKqH,IAAL,GAAY3kB,MAAZ;AACA,qBAAKte,KAAL,GAAase,OAAO7jB,OAApB;AACA,qBAAKqB,IAAL,GAAYwiB,OAAOxiB,IAAnB;AACA,qBAAKo2C,OAAL,GAAe5zB,OAAOrd,aAAP,GAAuB,CAACqd,OAAOpqB,MAAP,GAAgB,CAAjB,IAAsBoqB,OAAOne,IAAnE;AACH;AACJ;;4BAEDs3C,mEAA4Bh5C,MAAM;AAC9BA,iBAAK4rC,MAAL,GAAc,KAAd;AACA5rC,iBAAK24C,OAAL,GAAe,KAAf;AACH;;4BAEDM,mEAA4Bj5C,MAAM;AAC9BA,iBAAK24C,OAAL,GAAe,IAAf;AACH;;4BAEDO,2CAAgBl5C,MAAM;AAClBhM,eAAG2H,OAAH,CAAW1H,OAAOkL,gCAAlB,EAAoD,EAAEE,UAAUW,IAAZ,EAApD;AACH;;4BAEDm5C,uDAAsBn5C,MAAM;AACxBA,iBAAK4rC,MAAL,GAAc,CAAC5rC,KAAK4rC,MAApB;AACH;;4BAEDwN,iDAAoB;AAAA;;AAEhB,gBAAI,KAAKP,OAAL,CAAa1kD,OAAb,CAAqB4pC,MAArB,IAA+B9pC,OAAOuW,kBAA1C,EAA8D;AAC1D,qBAAK6uC,WAAL,GAAmB5kD,EAAEoN,GAAF,CAAM,2BAAN,EAAmC;AAClDs7B,4BAAQ,KAAKA,MADqC;AAElDz7B,0BAAM,KAAK8iC,IAAL,CAAU9iC,IAFkC;AAGlD8iC,0BAAM,KAAKA,IAAL,CAAU/uC,MAAV,GAAmB;AAHyB,iBAAnC,EAIhB,UAACgM,IAAD,EAAU;AACT,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,+BAAK0D,KAAL,GAAazM,EAAEwgB,MAAF,CAAS,OAAK/T,KAAd,EAAqBE,KAAKA,IAAL,CAAUzF,OAA/B,CAAb;;AAEA,+BAAKwoC,IAAL,GAAY/iC,KAAKA,IAAjB;AACA,+BAAKpE,IAAL,GAAYoE,KAAKA,IAAL,CAAUpE,IAAtB;AACA,+BAAKo2C,OAAL,GAAehyC,KAAKA,IAAL,CAAUe,aAAV,GAA0B,CAACf,KAAKA,IAAL,CAAUhM,MAAV,GAAmB,CAApB,IAAyBgM,KAAKA,IAAL,CAAUC,IAA5E;AACH;AACJ,iBAZkB,CAAnB;AAaH,aAdD,MAcO;AACH,qBAAK23C,WAAL,GAAmB5kD,EAAEoN,GAAF,CAAM,4BAAN,EAAoC;AACnDH,0BAAM,KAAK8iC,IAAL,CAAU9iC,IADmC;AAEnD8iC,0BAAM,KAAKA,IAAL,CAAU/uC,MAAV,GAAmB;AAF0B,iBAApC,EAGhB,UAACgM,IAAD,EAAU;AACT,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,+BAAK0D,KAAL,GAAazM,EAAEwgB,MAAF,CAAS,OAAK/T,KAAd,EAAqBzM,EAAEsD,GAAF,CAAMqJ,KAAKA,IAAL,CAAUzF,OAAhB,EAAyB,UAACgE,IAAD,EAAU;AACjE,gCAAI84C,cAAc94C,KAAK84C,WAAvB;AACAA,wCAAYC,MAAZ,GAAqB/4C,IAArB;AACA,mCAAO84C,WAAP;AACH,yBAJiC,CAArB,CAAb;;AAMA,+BAAKtU,IAAL,GAAY/iC,KAAKA,IAAjB;AACA,+BAAKpE,IAAL,GAAYoE,KAAKA,IAAL,CAAUpE,IAAtB;AACA,+BAAKo2C,OAAL,GAAehyC,KAAKA,IAAL,CAAUe,aAAV,GAA0B,CAACf,KAAKA,IAAL,CAAUhM,MAAV,GAAmB,CAApB,IAAyBgM,KAAKA,IAAL,CAAUC,IAA5E;AACH;AACJ,iBAfkB,CAAnB;AAgBH;AACJ;;4BAED43C,6CAAiBt5C,MAAM;AAAA;;AACnBvL,cAAEgjC,IAAF,CAAO,gCAAP,EAAyC;AACrCr7B,oBAAI4D,KAAK5D,EAD4B;AAErCumC,qBAAK,KAAK1jC,OAAL,CAAa7C;AAFmB,aAAzC,EAGG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK0D,KAAL,GAAazM,EAAE+K,MAAF,CAAS,OAAK0B,KAAd,EAAqB;AAC9BnF,4BAAI4D,KAAK5D;AADqB,qBAArB,CAAb;AAGAwB,2BAAOC,OAAP,CAAe,WAAf;AACH,iBALD,MAKO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAZD;AAaH;;4BAED83C,+CAAkBv5C,MAAM;AAAA;;AACpBvL,cAAEgjC,IAAF,CAAO,gCAAP,EAAyC;AACrCr7B,oBAAI4D,KAAKw5C,QAAL,CAAcp9C;AADmB,aAAzC,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK0D,KAAL,GAAazM,EAAE+K,MAAF,CAAS,OAAK0B,KAAd,EAAqB;AAC9BnF,4BAAI4D,KAAK5D;AADqB,qBAArB,CAAb;AAGAwB,2BAAOC,OAAP,CAAe,WAAf;AACH,iBALD,MAKO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAXD;AAYH;;4BAEDg4C,2CAAgBz5C,MAAM;AAAA;;AAClBvL,cAAEgjC,IAAF,CAAO,kCAAP,EAA2C;AACvCiiB,0BAAU15C,KAAK+4C,MAAL,CAAY38C;AADiB,aAA3C,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK0D,KAAL,GAAazM,EAAE+K,MAAF,CAAS,OAAK0B,KAAd,EAAqB;AAC9BnF,4BAAI4D,KAAK5D;AADqB,qBAArB,CAAb;AAGH,iBAJD,MAIO;AACHwB,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,UAAxB;AACH;AACJ,aAVD;AAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC5JQk4C,6BAAAA;AAOT,sCAAc;AAAA;;AAAA;;AAAA;;AACV,iBAAKC,UAAL,GAAkB;AACdpP,uBAAO,eAACC,UAAD,EAAaC,SAAb,EAAwBC,YAAxB,EAAyC;AAC5Cl2C,sBAAEgjC,IAAF,CAAO,2BAAP,EAAoC;AAChCr7B,4BAAI,MAAKb,KAAL,CAAWa,EADiB;AAEhC4T,kCAAUtT,MAAM6uB,WAAN,EAFsB;AAGhCsuB,gCAAQpP;AAHwB,qBAApC,EAIG,UAAChpC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,UAAf;AACA7J,+BAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACH,yBAHD,MAGO;AACHzL,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,qBAXD;AAYH,iBAda;AAedmpC,+BAAe,uBAACC,YAAD,EAAkB;AAC7B,wBAAI,MAAKtuC,SAAL,CAAeV,QAAf,IAA2BgvC,YAA/B,EAA6C;AACzC,+BAAO,KAAP;AACH;AACDp2C,sBAAEgjC,IAAF,CAAO,8BAAP,EAAuC;AACnCr7B,4BAAI,MAAKb,KAAL,CAAWa,EADoB;AAEnC4T,kCAAUtT,MAAM6uB,WAAN,EAFyB;AAGnCsuB,gCAAQhP;AAH2B,qBAAvC,EAIG,UAACppC,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,UAAf;AACA7J,+BAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACH,yBAHD,MAGO;AACHzL,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,qBAXD;AAYH;AA/Ba,aAAlB;AAiCH;;qCAED7G,+BAAW;AACPnG,cAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B;AACtBK,uBAAO,IADe;AAEtB8iD,6BAAatlD,EAAE,KAAKulD,MAAP;AAFS,aAA1B;AAIAvlD,cAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB;AACpBK,uBAAO,IADa;AAEpBgjD,+BAAexlD,EAAE,KAAKqlD,QAAP;AAFK,aAAxB;AAKH;;qCAEDpE,uCAAcr4C,MAAM;AAAA;;AAChB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACV,wBAAI42C,SAAS,CAAC,OAAKt9C,SAAL,CAAeV,QAAhB,CAAb;AACA,wBAAI,OAAKN,KAAT,EAAgB;AACZs+C,iCAAS/kD,EAAEsD,GAAF,CAAM,OAAKmD,KAAL,CAAWs+C,MAAjB,EAAyB,UAAzB,CAAT;AACH;;AAEDplD,sBAAE,OAAKylD,SAAP,EAAkBvlD,QAAlB,GAA6BA,QAA7B,CAAsC,OAAtC,EAA+CA,QAA/C,CAAwD,cAAxD,EAAwEklD,MAAxE,EAAgFllD,QAAhF,CAAyF,OAAKilD,UAA9F;AACH,iBAPD;AAQH;AACJ;;qCAEDO,+CAAkB5+C,OAAO;AACrB,gBAAIA,MAAMwK,OAAN,IAAiBxK,MAAMijB,OAAN,KAAkB,EAAvC,EAA2C;AACvC,qBAAK42B,aAAL;AACH;AACJ;;qCAEDgF,yDAAwB;AACpB3lD,cAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,OAA1B;AACH;;qCAEDyjD,qDAAsB;AAClB5lD,cAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB,OAAxB;AACH;;qCAED0R,qBAAKgyC,UAAU;AACX,iBAAK/+C,KAAL,GAAazG,EAAEu4C,KAAF,CAAQiN,QAAR,CAAb;;AAEA,iBAAKtO,WAAL;;AAEAv3C,cAAE,KAAK8lD,eAAP,EAAwBpc,KAAxB,CAA8B;AAC1B7iC,oBAAI,OADsB;;AAG1B+8B,wBAAQ,IAHkB;AAI1B+F,wBAAQ,IAJkB;;AAM1BlhB,0BAAU,eANgB;AAO1BmhB,wBAAQ,GAPkB;AAQ1BqE,wBAAQ,UARkB;AAS1BnS,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH;AATmB,aAA9B,EAaGyE,KAbH,CAaS,MAbT;AAcH;;qCAED6N,qCAAc;AAAA;;AAEV,iBAAKjvC,KAAL,GAAaC,OAAOC,QAApB;AACAxI,cAAE,KAAKylD,SAAP,EAAkBvlD,QAAlB,GAA6BA,QAA7B,CAAsC,OAAtC;AACAG,cAAEmO,KAAF,CAAQ,YAAM;AACV,oBAAI,OAAK1H,KAAL,CAAW5B,KAAf,EAAsB;AAClBlF,sBAAE,OAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,EAAsC,OAAK2E,KAAL,CAAW5B,KAAX,CAAiB6gD,MAAjB,EAAtC;AACH,iBAFD,MAEO;AACH/lD,sBAAE,OAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,OAA1B;AACH;;AAED,oBAAI,OAAK2E,KAAL,CAAW+0B,GAAf,EAAoB;AAChB77B,sBAAE,OAAKulD,MAAP,EAAepjD,QAAf,CAAwB,UAAxB,EAAoC,OAAK2E,KAAL,CAAW+0B,GAAX,CAAekqB,MAAf,EAApC;AACH,iBAFD,MAEO;AACH/lD,sBAAE,OAAKulD,MAAP,EAAepjD,QAAf,CAAwB,OAAxB;AACH;;AAED,oBAAIijD,SAAS/kD,EAAEsD,GAAF,CAAM,OAAKmD,KAAL,CAAWs+C,MAAjB,EAAyB,UAAzB,CAAb;;AAEAplD,kBAAE,OAAKylD,SAAP,EAAkBvlD,QAAlB,CAA2B,cAA3B,EAA2CklD,MAA3C,EAAmDllD,QAAnD,CAA4D,OAAKilD,UAAjE;;AAEA,oBAAI,OAAKr+C,KAAL,CAAWuJ,OAAX,CAAmBjJ,QAAnB,IAA+B,OAAKU,SAAL,CAAeV,QAAlD,EAA4D;AACxDpH,sBAAE,OAAKgmD,QAAP,EAAiBnzC,KAAjB;AACH;;AAEDE,yBAASC,MAAT,CAAgB,OAAKgzC,QAArB;AACH,aAtBD;AAwBH;;qCAEDrF,yCAAgB;AAAA;;AACZ,gBAAI,CAAC,KAAK75C,KAAL,CAAW9C,KAAhB,EAAuB;AACnBmF,uBAAOE,KAAP,CAAa,WAAb;AACA;AACH;;AAED,gBAAI2D,OAAO;AACPrF,oBAAI,KAAKb,KAAL,CAAWa,EADR;AAEP4T,0BAAUtT,MAAM6uB,WAAN,EAFH;AAGP9yB,uBAAO,KAAK8C,KAAL,CAAW9C;AAHX,aAAX;AAKA,gBAAIkB,QAAQlF,EAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,CAAZ;AACA,gBAAI05B,MAAM77B,EAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB,UAAxB,CAAV;;AAEA,gBAAI+C,KAAJ,EAAW;AACP8H,qBAAKi5C,SAAL,GAAiB/gD,KAAjB;AACH,aAFD,MAEO;AACH8H,qBAAKi5C,SAAL,GAAiB,IAAIta,IAAJ,EAAjB;AACH;;AAED,gBAAI9P,GAAJ,EAAS;AACL7uB,qBAAKk5C,OAAL,GAAerqB,GAAf;AACH;;AAED77B,cAAEgjC,IAAF,CAAO,yBAAP,EAAkCh2B,IAAlC,EAAwC,UAACA,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC/D,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,SAAf;AACApJ,sBAAE,OAAK8lD,eAAP,EAAwBpc,KAAxB,CAA8B,MAA9B;AACAnqC,uBAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACH,iBAJD,MAIO;AACHzL,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aARD;AASH;;qCAEDwzC,mCAAa;AAAA;;AACT,iBAAKlK,cAAL,CAAoBziC,IAApB,CAAyB;AACrB0iC,2BAAW,qBAAM;;AAEbv2C,sBAAEgjC,IAAF,CAAO,wBAAP,EAAiC;AAC7Br7B,4BAAI,OAAKb,KAAL,CAAWa,EADc;AAE7B4T,kCAAUtT,MAAM6uB,WAAN;AAFmB,qBAAjC,EAGG,UAAC9pB,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,4BAAIjD,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA7J,+BAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACH,yBAHD,MAGO;AACHzL,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,qBAVD;AAYH;AAfoB,aAAzB;AAiBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC1LQm5C,+BAAAA;AAaT,wCAAc;AAAA;;AAAA;;AAAA,iBATdv4B,QASc,GATH,IASG;AAAA,iBAPdw4B,UAOc,GAPD,KAAK,EAAL,GAAU,IAOT;AAAA,iBALdC,QAKc,GALH,EAKG;;AACV,iBAAKC,UAAL;AACH;;uCAKDxmD,2BAAS;AACL,iBAAK4tB,KAAL,IAAcznB,cAAc,KAAKynB,KAAnB,CAAd;AACH;;uCAED44B,mCAAa;AAAA;;AACT,iBAAK54B,KAAL,GAAapnB,YAAY,YAAM;;AAE3B,oBAAI,CAAC,MAAK+d,MAAV,EAAkB;AACd;AACH;;AAED,oBAAI5hB,MAAM,IAAIkpC,IAAJ,GAAW4a,OAAX,EAAV;AACAlmD,kBAAEoG,IAAF,CAAO,MAAK4d,MAAZ,EAAoB,UAACvd,KAAD,EAAW;AAC3B,wBAAIA,MAAM5B,KAAN,IAAe,CAAC7E,EAAEk5B,QAAF,CAAW,MAAK8sB,QAAhB,EAA0Bv/C,MAAMa,EAAhC,CAApB,EAAyD;AACrD,4BAAIzC,QAAQ4B,MAAM5B,KAAlB;AACA,4BAAIA,QAAQzC,GAAR,IAAeyC,QAASzC,MAAM,MAAK2jD,UAAvC,EAAoD;AAChD,kCAAKt/C,KAAL,GAAaA,KAAb;AACA,kCAAKu/C,QAAL,CAAcj3C,IAAd,CAAmBtI,MAAMa,EAAzB;AACA,kCAAK6+C,WAAL;AACA,kCAAK3yC,IAAL;AACH;AACJ;AACJ,iBAVD;AAYH,aAnBY,EAmBV,KAAK+Z,QAnBK,CAAb;AAoBH;;uCAED44B,qCAAc;AACVp3C,iBAAKC,MAAL,CAAY,WAAZ,EAAyB;AACrBC,yCAAa,KAAKxI,KAAL,CAAW9C,KADH;AAErBuL,sBAAM;AACFC,yBAAK,iBADH;AAEFC,yBAAK;AAFH,iBAFe;AAMrBC,yBAAS;AANY,aAAzB;AAQH;;uCAED6nC,qCAAc,CAEb;;uCAEDC,2CAAiB,CAEhB;;uCAED3jC,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,+BAAe,IADD;AAEdC,4BAAY;AAFE,aAAlB;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QClEQ2O,yBAAAA;iCAMT5yC,uBAAO;AAAA;;AACH,iBAAKvL,KAAL,GAAaC,OAAOC,QAApB;;AAEAnI,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,MAAK0mD,WAAP,EAAoBC,YAApB,CAAiC,OAAjC;AACH,aAFD;AAGAtmD,cAAEy7B,KAAF,CAAQ,YAAM;AACV97B,kBAAE,MAAK0mD,WAAP,EAAoBC,YAApB,CAAiC,QAAjC,EAA2C,QAA3C,EAAqD,QAArD;AACA3mD,kBAAE,MAAK0mD,WAAP,EAAoBC,YAApB,CAAiC,eAAjC;AACH,aAHD,EAGG,GAHH;AAIH;;AAKD,kCAAc;AAAA;;AAAA;;AAAA;;AAAA,iBAjBdj+C,MAiBc,GAjBL,GAiBK;;AACV,iBAAKy8C,UAAL,GAAkB;AACdpP,uBAAO,eAACC,UAAD,EAAaC,SAAb,EAAwBC,YAAxB,EAAyC,CAAE,CADpC;AAEdC,+BAAe,uBAACC,YAAD,EAAkB;AAC7B,wBAAI,OAAKtuC,SAAL,CAAeV,QAAf,IAA2BgvC,YAA/B,EAA6C;AACzC,+BAAO,KAAP;AACH;AACJ;AANa,aAAlB;;AASA,iBAAK92C,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOoV,sBAApB,EAA4C,UAAClV,OAAD,EAAa;AACtEM,kBAAE,OAAK0mD,WAAP,EAAoBC,YAApB,CAAiC,eAAjC;AACH,aAFgB,CAAjB;;AAIA,iBAAKC,UAAL;AACH;;iCAEDA,iCAAW1hD,OAAO22B,KAAK5hB,UAAU;AAAA;;AAC7B,gBAAIjN,OAAO,EAAX;AACA,gBAAI9H,KAAJ,EAAW;AACP8H,qBAAK9H,KAAL,GAAaA,MAAM2hD,IAAN,EAAb;AACH;AACD,gBAAIhrB,GAAJ,EAAS;AACL7uB,qBAAK9H,KAAL,GAAa22B,IAAIgrB,IAAJ,EAAb;AACH;AACD7mD,cAAEoN,GAAF,CAAM,wBAAN,EAAgCJ,IAAhC,EAAsC,UAACA,IAAD,EAAU;AAC5C,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKib,MAAL,GAAchkB,EAAEsD,GAAF,CAAMqJ,KAAKA,IAAX,EAAiB,UAACzB,IAAD,EAAU;AACrC,4BAAIzE,QAAQ;AACRa,gCAAI4D,KAAK5D,EADD;AAER3D,mCAAOuH,KAAKvH,KAFJ;AAGRohD,oCAAQ75C,KAAK65C,MAHL;AAIR/0C,qCAAS9E,KAAK8E;AAJN,yBAAZ;;AAOA,4BAAI9E,KAAK06C,SAAT,EAAoB;AAChBn/C,kCAAM5B,KAAN,GAAcqG,KAAK06C,SAAnB;AACH,yBAFD,MAEO;AACHn/C,kCAAM5B,KAAN,GAAc,IAAIymC,IAAJ,GAAW4a,OAAX,EAAd;AACH;;AAED,4BAAIh7C,KAAK26C,OAAT,EAAkB;AACdp/C,kCAAM+0B,GAAN,GAAYtwB,KAAK26C,OAAjB;AACH;;AAED,+BAAOp/C,KAAP;AACH,qBAnBa,CAAd;AAoBAmT,gCAAYA,SAAS,OAAKoK,MAAd,CAAZ;AACH;AACJ,aAxBD;AAyBH;;iCAKDvkB,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;iCAEDoG,+BAAW;AAAA;;AAEPnG,cAAE,KAAK0mD,WAAP,EAAoBC,YAApB,CAAiC;AAC7B5iB,wBAAQ;AACJznB,0BAAM,iBADF;;AAGJwqC,4BAAQ,OAHJ;AAIJvqC,2BAAO;AAJH,iBADqB;;AAQ7BiM,wBAAQ,QARqB;AAS7Bu+B,6BAAa,IAAIpb,IAAJ,EATgB;AAU7Bqb,6BAAa,UAVgB;AAW7BC,0BAAU,IAXmB;AAY7BC,4BAAY,IAZiB;AAa7BC,0BAAU,IAbmB;;AAgB7BC,0BAAU,OAhBmB;AAiB7BC,0BAAU,kBAACxkD,IAAD,EAAOykD,OAAP,EAAgBllB,IAAhB,EAAyB;;AAE/BpiC,sBAAE,OAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,EAAsCU,KAAKkjD,MAAL,EAAtC;AACA,2BAAKwB,sBAAL,GAA8B,IAA9B;AACAvnD,sBAAE,OAAKwnD,MAAP,EAAe9d,KAAf,CAAqB,MAArB;AACH,iBAtB4B;AAuB7B+d,4BAAY,oBAAC5B,QAAD,EAAWyB,OAAX,EAAoBllB,IAApB,EAA6B;AACrC,2BAAKslB,cAAL,CAAoB7zC,IAApB,CAAyBgyC,QAAzB;AACH,iBAzB4B;AA0B7B8B,gCAAgB,wBAAC7gD,KAAD,EAAQwgD,OAAR,EAAiBllB,IAAjB,EAA0B,CAAE,CA1Bf;AA2B7BwlB,+BAAe,uBAAC9gD,KAAD,EAAQwgD,OAAR,EAAiBllB,IAAjB,EAA0B,CAAE,CA3Bd;AA4B7B/d,wBAAQ,gBAACnf,KAAD,EAAQ22B,GAAR,EAAaurB,QAAb,EAAuBntC,QAAvB,EAAoC;;AAExC,2BAAK2sC,UAAL,CAAgB1hD,KAAhB,EAAuB22B,GAAvB,EAA4B5hB,QAA5B;AACH,iBA/B4B;AAgC7B4tC,2BAAW,mBAAC/gD,KAAD,EAAQysB,KAAR,EAAeu0B,UAAf,EAA8B;;AAErC,wBAAIhhD,MAAMuJ,OAAN,CAAcjJ,QAAd,IAA0B,OAAKU,SAAL,CAAeV,QAA7C,EAAuD;AACnD+B,+BAAOE,KAAP,CAAa,UAAb;AACA9J,2BAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACA;AACH;;AAED,2BAAKmzC,WAAL,CAAiBjhD,MAAMa,EAAvB,EAA2Bb,MAAM5B,KAAjC,EAAwC4B,MAAM+0B,GAA9C;AACH,iBAzC4B;AA0C7BmsB,6BAAa,qBAAClhD,KAAD,EAAQysB,KAAR,EAAeu0B,UAAf,EAA8B;;AAEvC,wBAAIhhD,MAAMuJ,OAAN,CAAcjJ,QAAd,IAA0B,OAAKU,SAAL,CAAeV,QAA7C,EAAuD;AACnD+B,+BAAOE,KAAP,CAAa,UAAb;AACA9J,2BAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACA;AACH;;AAED,2BAAKmzC,WAAL,CAAiBjhD,MAAMa,EAAvB,EAA2Bb,MAAM5B,KAAjC,EAAwC4B,MAAM+0B,GAA9C;AACH;AAnD4B,aAAjC;;AAsDA77B,cAAE,KAAKwnD,MAAP,EACK9d,KADL,CACW;AACH7iC,oBAAI,OADD;;AAGH+8B,wBAAQ,IAHL;;AAKH+F,wBAAQ,IALL;;AAOHC,wBAAQ,GAPL;AAQHnhB,0BAAU,eARP;AASHqT,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH,iBATJ;AAaH6E,2BAAW,qBAAM;AACb9pC,sBAAE,OAAKgmD,QAAP,EAAiBnzC,KAAjB;AACAE,6BAASC,MAAT,CAAgB,OAAKgzC,QAArB;AACA,wBAAI,CAAC,OAAKhiD,KAAN,IAAe,CAAC,OAAKujD,sBAAzB,EAAiD;AAC7CvnD,0BAAE,OAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,EAAsC,IAAIwpC,IAAJ,EAAtC;AACH;AACD,2BAAK4b,sBAAL,GAA8B,KAA9B;AACH;AApBE,aADX;;AAwBAvnD,cAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B;AACtBK,uBAAO,IADe;AAEtB8iD,6BAAatlD,EAAE,KAAKulD,MAAP;AAFS,aAA1B;AAIAvlD,cAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB;AACpBK,uBAAO,IADa;AAEpBgjD,+BAAexlD,EAAE,KAAKqlD,QAAP;AAFK,aAAxB;;AAKA,iBAAKl5C,MAAL;AACH;;iCAEDu5C,+CAAkB5+C,OAAO;AACrB,gBAAIA,MAAMwK,OAAN,IAAiBxK,MAAMijB,OAAN,KAAkB,EAAvC,EAA2C;AACvC,qBAAK4nB,UAAL;AACH;AACJ;;iCAEDoW,mCAAYpgD,IAAIzC,OAAO22B,KAAK;AACxB,gBAAI7uB,OAAO;AACPrF,oBAAIA,EADG;AAEP4T,0BAAUtT,MAAM6uB,WAAN;AAFH,aAAX;;AAKA,gBAAI5xB,KAAJ,EAAW;AACP8H,qBAAKi5C,SAAL,GAAiB/gD,MAAM6gD,MAAN,EAAjB;AACH,aAFD,MAEO;AACH/4C,qBAAKi5C,SAAL,GAAiB,IAAIta,IAAJ,EAAjB;AACH;;AAED,gBAAI9P,GAAJ,EAAS;AACL7uB,qBAAKk5C,OAAL,GAAerqB,IAAIkqB,MAAJ,EAAf;AACH;;AAED/lD,cAAEgjC,IAAF,CAAO,oCAAP,EAA6Ch2B,IAA7C,EAAmD,UAACA,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1E,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdD,2BAAOC,OAAP,CAAe,SAAf;AACA7J,uBAAG2H,OAAH,CAAW1H,OAAOoV,sBAAlB,EAA0C,EAA1C;AACH,iBAHD,MAGO;AACHzL,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAPD;AAQH;;iCAEDi0C,uCAAcr4C,MAAM;AAAA;;AAChB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,OAAKylD,SAAP,EAAkBvlD,QAAlB,GAA6BA,QAA7B,CAAsC,OAAtC,EAA+CA,QAA/C,CAAwD,OAAKilD,UAA7D,EAAyEjlD,QAAzE,CAAkF,cAAlF,EAAkG,CAAC,OAAK4H,SAAL,CAAeV,QAAhB,CAAlG;AACH,iBAFD;AAGH;AACJ;;iCAEDu+C,yDAAwB;AACpB3lD,cAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,OAA1B;AACH;;iCAEDyjD,qDAAsB;AAClB5lD,cAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB,OAAxB;AACH;;iCAEDwvC,mCAAa;AAAA;;AAET,gBAAI,CAAC,KAAK3tC,KAAV,EAAiB;AACbmF,uBAAOE,KAAP,CAAa,WAAb;AACA;AACH;;AAED,gBAAI2D,OAAO;AACPhJ,uBAAO,KAAKA,KADL;AAEPuX,0BAAUtT,MAAM6uB,WAAN,EAFH;AAGPsuB,wBAAQplD,EAAE,KAAKylD,SAAP,EAAkBvlD,QAAlB,CAA2B,WAA3B;AAHD,aAAX;;AAMA,gBAAIgF,QAAQlF,EAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,CAAZ;AACA,gBAAI05B,MAAM77B,EAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB,UAAxB,CAAV;;AAEA,gBAAI+C,KAAJ,EAAW;AACP8H,qBAAKi5C,SAAL,GAAiB/gD,KAAjB;AACH,aAFD,MAEO;AACH8H,qBAAKi5C,SAAL,GAAiB,IAAIta,IAAJ,EAAjB;AACH;;AAED,gBAAI9P,GAAJ,EAAS;AACL7uB,qBAAKk5C,OAAL,GAAerqB,GAAf;AACH;;AAED77B,cAAEgjC,IAAF,CAAO,wBAAP,EAAiCh2B,IAAjC,EAAuC,UAACA,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC9D,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdpJ,sBAAE,OAAK0mD,WAAP,EAAoBC,YAApB,CAAiC,eAAjC;AACAx9C,2BAAOC,OAAP,CAAe,SAAf;AACA,2BAAK+C,MAAL;AACAnM,sBAAE,OAAKwnD,MAAP,EAAe9d,KAAf,CAAqB,MAArB;AACH,iBALD,MAKO;AACHvgC,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aATD;AAUH;;iCAEDb,2BAAS;AACL,iBAAKnI,KAAL,GAAa,EAAb;AACAhE,cAAE,KAAKqlD,QAAP,EAAiBljD,QAAjB,CAA0B,UAA1B,EAAsC,IAAIwpC,IAAJ,EAAtC;AACA3rC,cAAE,KAAKulD,MAAP,EAAepjD,QAAf,CAAwB,OAAxB;AACAnC,cAAE,KAAKylD,SAAP,EAAkBvlD,QAAlB,CAA2B,OAA3B;AACA,gBAAI,KAAK4H,SAAL,IAAkB,KAAKA,SAAL,CAAeV,QAArC,EAA+C;AAC3CpH,kBAAE,KAAKylD,SAAP,EAAkBvlD,QAAlB,CAA2B,cAA3B,EAA2C,CAAC,KAAK4H,SAAL,CAAeV,QAAhB,CAA3C,EAAsElH,QAAtE,CAA+E,WAA/E,EAA4F,KAAK4H,SAAL,CAAeV,QAA3G;AACH;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC/QQ6gD,sBAAAA;;;;iBAET5Z,SAAS;iBACTC,OAAO;;;;;;;;;;iBAOP/yB,WAAWtT,MAAM6uB,WAAN;;;8BAKX3wB,+BAAW;AAAA;;AACPnG,cAAE,KAAKuuC,SAAP,EACK7F,MADL,CACY;AACJ8F,+BAAe,CADX;AAEJpO,uBAAO,KAFH;AAGJqO,mCAAmB,IAHf;AAIJC,+BAAe,KAJX;AAKJC,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5BlT,2BAAO7f,IAAP,CAAYqjC,GAAZ,GAAkBvuC,EAAEq6B,QAAF,CAAW,aAAX,CAAlB;AACAtP,2BAAO7f,IAAP,CAAYsjC,KAAZ,GAAoBzjB,OAAO7f,IAAP,CAAYnE,QAAZ,GAAuB,MAAvB,GAAgC,SAApD;AACA,0BAAKinC,MAAL,CAAYj/B,IAAZ,CAAiBgc,OAAO7f,IAAxB;AACAlL,sBAAEmO,KAAF,CAAQ,YAAM;AAAExO,0BAAE,MAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AAAiC,qBAAjD;AACH,iBAVG;AAWJykB,6BAAa;AACTC,gCAAY,oBAACzQ,IAAD,EAAU;AAClB,4BAAID,WAAW;AACX2Q,qCAAS;AADE,yBAAf;AAGAjvC,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAU1E,KAAjB,EAAwB,UAAC5B,KAAD,EAAQ6E,IAAR,EAAiB;AACrC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,6BAAtB,CAAP,EAAsD,EAAEznC,UAAUmE,KAAKnE,QAAjB,EAAtD,CAAL,EAAyF;AACrFk3B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,0EAAoCuH,KAAK1H,IAAzC,UAAkD0H,KAAKnE,QAAvD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQApH,0BAAEyG,IAAF,CAAO83B,KAAKvxB,IAAL,CAAUjE,QAAjB,EAA2B,UAACrC,KAAD,EAAQ6E,IAAR,EAAiB;AACxC,gCAAI,CAAClL,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,MAAKmF,MAAd,EAAsB;AAAA,uCAAK52B,EAAEo3B,KAAF,IAAW,SAAhB;AAAA,6BAAtB,CAAP,EAAyD,EAAEhrC,MAAM0H,KAAK1H,IAAb,EAAzD,CAAL,EAAoF;AAChFy6B,yCAAS2Q,OAAT,CAAiB7/B,IAAjB,CAAsB;AAClB7D,0CAAMA,IADY;AAElBvH,2EAAqCuH,KAAKvH,KAA1C,UAAoDuH,KAAK1H,IAAzD;AAFkB,iCAAtB;AAIH;AACJ,yBAPD;AAQA,+BAAOy6B,QAAP;AACH,qBAtBQ;AAuBT19B,yBAAK;AAvBI;AAXT,aADZ;AAsCAZ,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB;AACnB7iC,oBAAI,OADe;AAEnB+8B,wBAAQ,IAFW;AAGnB+F,wBAAQ,IAHW;AAInBlhB,0BAAU,cAJS;AAKnBmhB,wBAAQ,GALW;AAMnB9N,uBAAO;AACHjoB,0BAAM,GADH;AAEHoxB,0BAAM;AAFH,iBANY;AAUnB6E,2BAAW,qBAAM;AACb9pC,sBAAE,MAAK8uC,cAAP,EAAuBj8B,KAAvB;AACH;AAZkB,aAAvB;AAcH;;8BAEDs8B,2DAAwBroC,OAAO;AAC3B,gBAAIA,MAAMijB,OAAN,KAAkB,EAAlB,IAAwB,CAAC/pB,EAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,YAAzB,CAA7B,EAAqE;AACjE,oBAAIpe,MAAMtqB,EAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,EAAV;AACA,oBAAIriB,MAAMs0B,MAAN,CAAajS,GAAb,CAAJ,EAAuB;AACnB,wBAAI,CAACjqB,EAAEmG,IAAF,CAAOnG,EAAE6oC,MAAF,CAAS,KAAKmF,MAAd,EAAsB;AAAA,+BAAK52B,EAAEo3B,KAAF,IAAW,MAAhB;AAAA,qBAAtB,CAAP,EAAsD,EAAErS,MAAMlS,GAAR,EAAtD,CAAL,EAA2E;AACvE,6BAAK+jB,MAAL,CAAYj/B,IAAZ,CAAiB;AACbw/B,iCAAKvuC,EAAEq6B,QAAF,CAAW,aAAX,CADQ;AAEbmU,mCAAO,MAFM;AAGbrS,kCAAMlS;AAHO,yBAAjB;AAKAtqB,0BAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACH;AACJ;AACJ;AACJ;;8BAEDzW,uBAAO;AACH7T,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;8BAED0F,iDAAmB7jC,MAAM;AACrB,iBAAK8iC,MAAL,GAAchuC,EAAE+K,MAAF,CAAS,KAAKijC,MAAd,EAAsB,EAAEO,KAAKrjC,KAAKqjC,GAAZ,EAAtB,CAAd;AACH;;8BAEDS,yCAAgB;AACZ,iBAAKljC,MAAL;AACH;;8BAEDA,2BAAS;AACL,iBAAKkiC,MAAL,GAAc,EAAd;AACA,iBAAKC,IAAL,GAAY,EAAZ;AACAtuC,cAAE,KAAK8uC,cAAP,EAAuBxkB,GAAvB,CAA2B,EAA3B;AACAtqB,cAAE,KAAKkvC,QAAP,EAAiBxF,KAAjB,CAAuB,MAAvB;AACH;;8BAED4F,uCAAe;AAAA;;AAEX,gBAAI,KAAKjB,MAAL,CAAY3sC,MAAZ,KAAuB,CAA3B,EAA8B;AAC1ByH,uBAAOE,KAAP,CAAa,uBAAb;AACA;AACH;;AAED,iBAAKkmC,KAAL,GAAavvC,EAAEgjC,IAAF,mBAAsB,KAAKv5B,IAAL,GAAY,QAAZ,GAAuB,SAA7C,cAAgE;AACzE8R,0BAAUtT,MAAM6uB,WAAN,EAD+D;AAEzE9N,sBAAS,KAAKzN,QAAd,gBAAgC,KAAK9R,IAAL,GAAa,MAAM,KAAK3B,SAAL,CAAeV,QAAlC,GAA8C,KAAKoD,OAAL,CAAa3G,IAA3F,aAAsG,KAAKyM,IAAL,CAAU3I,EAFvC;AAGzEA,oBAAI,KAAK2I,IAAL,CAAU3I,EAH2D;AAIzE2mC,sBAAM,KAAKA,IAJ8D;AAKzEvV,sBAAM9wB,MAAM4wB,OAAN,CAAc,KAAKvoB,IAAL,CAAU/I,OAAxB,CALmE;AAMzEe,uBAAOjI,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,UAA9D,EAA0EyX,IAA1E,GAAiFhB,KAAjF,EANkE;AAOzErR,0BAAU1I,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,SAAtB;AAAA,iBAA5B,EAA6DlrC,GAA7D,CAAiE,MAAjE,EAAyEyX,IAAzE,GAAgFhB,KAAhF,EAP+D;AAQzExD,uBAAOvW,EAAEovC,KAAF,CAAQ,KAAKpB,MAAb,EAAqBnF,MAArB,CAA4B;AAAA,2BAAQ39B,KAAKsjC,KAAL,IAAc,MAAtB;AAAA,iBAA5B,EAA0DlrC,GAA1D,CAA8D,MAA9D,EAAsEyX,IAAtE,GAA6EhB,KAA7E;AARkE,aAAhE,EASV,UAACpN,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAK+C,MAAL;AACAhD,2BAAOC,OAAP,CAAe,WAAf;AACH,iBAHD,MAGO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAhBY,CAAb;AAiBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCjIQk7C,4BAAAA;oCAUTC,uCAAe;AACX,iBAAKC,OAAL;AACH;;oCAEDC,6CAAkB;AACd,iBAAKD,OAAL;AACH;;oCAEDE,+CAAmB;AACf,gBAAI,KAAKxgD,SAAT,EAAoB;AAChB,qBAAKE,OAAL,GAAeC,MAAMC,WAAN,CAAkB,KAAKJ,SAAvB,CAAf;AACH;AACJ;;AAKD,qCAAc;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,iBApBdohC,MAoBc,GApBL,EAoBK;AAAA,iBAnBdlhC,OAmBc,GAnBJP,MAAMO,OAmBF;;AACV,iBAAK1I,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAOiV,qBAApB,EAA2C,UAAC/U,OAAD,EAAa;AACrE,sBAAKA,QAAQ4pC,MAAb,EAAqB5pC,QAAQ6L,IAA7B;AACH,aAFgB,CAAjB;AAGA,iBAAK5F,UAAL,GAAkBpG,GAAGD,SAAH,CAAaE,OAAOmV,0BAApB,EAAgD,UAACjV,OAAD,EAAa;AAC3E,sBAAKs6C,gBAAL;AACH,aAFiB,CAAlB;AAGH;;oCAEDA,+CAAmB;AAAA;;AACfh6C,cAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AACrC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK6wC,QAAL,GAAgBjtC,KAAKA,IAArB;AACH,iBAFD,MAEO;AACH,2BAAKitC,QAAL,GAAgB,EAAhB;AACH;AACJ,aAND;AAOH;;oCAKDn6C,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAK4F,UAAL,CAAgB5F,OAAhB;AACH;;oCAEDyQ,qBAAK83B,YAAYigB,aAAa;AAC1B,iBAAKvO,gBAAL;AACH;;oCAKD7zC,+BAAW;AAAA;;AACPnG,cAAE,KAAK+8C,OAAP,EAAgBl2C,EAAhB,CAAmB,YAAnB,EAAiC,UAACC,KAAD,EAAW;AACxC9G,kBAAE,OAAK+8C,OAAP,EAAgB/b,UAAhB,CAA2B,MAA3B;AACH,aAFD;AAGH;;oCAEDonB,6BAAU;AAAA;;AAEN/nD,cAAEoG,IAAF,CAAO,KAAK6B,KAAZ,EAAmB,UAACiD,IAAD,EAAU;AACzBA,qBAAKi9C,MAAL,GAAcj9C,KAAKnE,QAAL,CAAc0c,OAAd,CAAsB,OAAKolB,MAA3B,KAAsC,CAAC,CAArD;AACH,aAFD;;AAIA7oC,cAAEoG,IAAF,CAAO,KAAKsC,QAAZ,EAAsB,UAACwC,IAAD,EAAU;AAC5BA,qBAAKi9C,MAAL,GAAcj9C,KAAK1H,IAAL,CAAUigB,OAAV,CAAkB,OAAKolB,MAAvB,KAAkC,CAAC,CAAjD;AACH,aAFD;AAGH;;oCAEDuf,mEAA4Bj1C,KAAK;AAC7B,iBAAK40C,OAAL;;AAEA,gBAAI50C,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AACpB,oBAAIhiB,OAAO1H,EAAEmG,IAAF,CAAO,KAAK8B,KAAZ,EAAmB;AAC1BkgD,4BAAQ;AADkB,iBAAnB,CAAX;;AAIA,oBAAIzgD,IAAJ,EAAU;AACNQ,2BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,kBAA0Bf,KAAKX,QAA/B,CAAlB;AACA;AACH;;AAED,oBAAIoD,UAAUnK,EAAEmG,IAAF,CAAO,KAAKuC,QAAZ,EAAsB;AAChCy/C,4BAAQ;AADwB,iBAAtB,CAAd;;AAIA,oBAAIh+C,OAAJ,EAAa;AACTjC,2BAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyB0B,QAAQ3G,IAAjC,CAAlB;AACA;AACH;AACJ;AACJ;;oCAED+2C,mDAAqB;AAAA;;AACjB,iBAAK1R,MAAL,GAAc,EAAd;AACA7oC,cAAEoG,IAAF,CAAO,KAAK6B,KAAZ,EAAmB,UAACiD,IAAD,EAAU;AACzBA,qBAAKi9C,MAAL,GAAcj9C,KAAKnE,QAAL,CAAc0c,OAAd,CAAsB,OAAKolB,MAA3B,KAAsC,CAAC,CAArD;AACH,aAFD;AAGA7oC,cAAEoG,IAAF,CAAO,KAAKsC,QAAZ,EAAsB,UAACwC,IAAD,EAAU;AAC5BA,qBAAKi9C,MAAL,GAAcj9C,KAAK1H,IAAL,CAAUigB,OAAV,CAAkB,OAAKolB,MAAvB,KAAkC,CAAC,CAAjD;AACH,aAFD;AAGH;;oCAED8G,mCAAYzkC,MAAM;AACd,iBAAKm9C,eAAL,GAAuBn9C,IAAvB;AACA,iBAAKo9C,aAAL,CAAmB90C,IAAnB;AACH;;oCAED2sC,iCAAWj1C,MAAM;AAAA;;AACb,iBAAKmvC,SAAL,CAAe7mC,IAAf,CAAoB;AAChB0iC,2BAAW,qBAAM;AACbv2C,sBAAEgjC,IAAF,CAAO,uBAAP,EAAgC;AAC5Br7B,4BAAI4D,KAAK5D;AADmB,qBAAhC,EAEG,UAACqF,IAAD,EAAU;AACT,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA/I,8BAAE+jB,MAAF,CAAS,OAAKrb,QAAd,EAAwB,EAAEpB,IAAI4D,KAAK5D,EAAX,EAAxB;AACApI,+BAAG2H,OAAH,CAAW1H,OAAOsL,0BAAlB,EAA8C,EAAEN,SAASe,IAAX,EAA9C;AACH,yBAJD,MAIO;AACHpC,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBAVD;AAWH;AAbe,aAApB;AAeH;;oCAED47C,+CAAkBr9C,MAAM;AACpB,iBAAKm9C,eAAL,GAAuBn9C,IAAvB;AACA,iBAAKs9C,mBAAL,CAAyBh1C,IAAzB;AACH;;oCAEDi1C,iDAAmBv9C,MAAM;AACrB,iBAAKm9C,eAAL,GAAuBn9C,IAAvB;AACA,iBAAKw9C,oBAAL,CAA0Bl1C,IAA1B;AACH;;oCAEDwsC,qCAAa90C,MAAM;AACf,iBAAKmvC,SAAL,CAAe7mC,IAAf,CAAoB;AAChBtM,yFAAoCgE,KAAKvH,KAAzC,mBADgB;AAEhBuyC,2BAAW,qBAAM;AACbv2C,sBAAEgjC,IAAF,CAAO,sBAAP,EAA+B;AAC3Br7B,4BAAI4D,KAAK5D;AADkB,qBAA/B,EAEG,UAACqF,IAAD,EAAU;AACT,4BAAIA,KAAK5D,OAAT,EAAkB;AACdD,mCAAOC,OAAP,CAAe,SAAf;AACA7J,+BAAG2H,OAAH,CAAW1H,OAAO2L,yBAAlB,EAA6C,EAAEX,SAASwC,KAAKA,IAAhB,EAA7C;AACH,yBAHD,MAGO;AACH7D,mCAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,SAAxB;AACH;AACJ,qBATD;AAUH;AAbe,aAApB;AAeH;;oCAEDg8C,yCAAgB;AACZzpD,eAAG2H,OAAH,CAAW1H,OAAOgV,oBAAlB,EAAwC,EAAxC;AACH;;oCAEDy0C,uDAAsBniD,OAAO;AACzB,iBAAKoiD,YAAL,CAAkBr1C,IAAlB;AACH;;oCAEDs1C,qCAAa59C,MAAM;AACf,mBAAOlL,EAAE+N,IAAF,CAAO7C,KAAK69C,UAAZ,EAAwB,EAAEhiD,UAAU,KAAKU,SAAL,CAAeV,QAA3B,EAAxB,CAAP;AACH;;oCAEDiiD,6CAAiB99C,MAAM;;AAEnB,gBAAI+9C,QAAQ,KAAKH,YAAL,CAAkB59C,IAAlB,CAAZ;;AAEAvL,cAAEgjC,IAAF,sBAAyBsmB,QAAQ,aAAR,GAAwB,WAAjD,GAAgE;AAC5D3hD,oBAAI4D,KAAK5D;AADmD,aAAhE,EAEG,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACdmC,yBAAK69C,UAAL,GAAkBp8C,KAAKA,IAAL,CAAUo8C,UAA5B;AACAjgD,2BAAOC,OAAP,EAAkBkgD,QAAQ,MAAR,GAAiB,MAAnC;AACA/9C,yBAAK49C,YAAL,GAAoB,CAACG,KAArB;AACH,iBAJD,MAIO;AACHngD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,GAA2Bs8C,QAAQ,MAAR,GAAiB,MAA5C;AACH;AACJ,aAVD;AAWH;;oCAEDtO,yCAAezvC,MAAM;AACjBvL,cAAEgjC,IAAF,CAAO,uBAAP,EAAgC,EAAEr7B,IAAI4D,KAAK5D,EAAX,EAAhC;AACA,mBAAO,IAAP;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnMQ4hD,6BAAAA;AAmBT,sCAAc;AAAA;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,iBAbdC,aAac,wCAZThqD,OAAO2W,eAYE,IAZgB,EAAE+N,SAAS,KAAKulC,UAAhB,EAA4BC,QAAQ,EAApC,EAAwC71C,MAAM,KAA9C,EAYhB,iBAXTrU,OAAO0W,cAWE,IAXe,EAAEwzC,QAAQ,OAAV,EAAmB71C,MAAM,KAAzB,EAWf,iBAVTrU,OAAOwW,gBAUE,IAViB,EAAE0zC,QAAQ,QAAV,EAAoB71C,MAAM,KAA1B,EAUjB,iBATTrU,OAAO4W,kBASE,IATmB,EAAE8N,SAAS,KAAKylC,aAAhB,EAA+BD,QAAQ,EAAvC,EAA2C71C,MAAM,QAAjD,EASnB,iBARTrU,OAAO6W,oBAQE,IARqB,EAAE6N,SAAS,KAAK0lC,eAAhB,EAAiCF,QAAQ,EAAzC,EAA6C71C,MAAM,UAAnD,EAQrB,iBAPTrU,OAAOuW,kBAOE,IAPmB,EAAE2zC,QAAQ,SAAV,EAAqB71C,MAAM,KAA3B,EAOnB,iBANTrU,OAAOyW,eAME,IANgB,EAAEyzC,QAAQ,UAAV,EAAsB71C,MAAM,KAA5B,EAMhB;;;AAEV,iBAAKvU,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO0U,+BAApB,EAAqD,UAACxU,OAAD,EAAa;AAC/E,sBAAK0kD,OAAL,GAAe/jD,EAAEu4C,KAAF,CAAQ,MAAK4Q,aAAL,CAAmB9pD,QAAQ4pC,MAA3B,CAAR,CAAf;AACA,sBAAK8a,OAAL,CAAa1kD,OAAb,GAAuBA,OAAvB;AACA,oBAAI,MAAK0kD,OAAL,CAAalgC,OAAjB,EAA0B;AACtB7jB,sBAAEmQ,IAAF,CAAO,MAAK4zC,OAAL,CAAalgC,OAApB,SAAmCxkB,OAAnC;AACH;AACJ,aANgB,CAAjB;AAQH;;qCAKDI,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACH;;qCAED4pD,uCAAcjqD,SAAS;AACnB,iBAAKmqD,YAAL,CAAkBtmB,KAAlB;AACH;;qCAEDkmB,iCAAW/pD,SAAS;AAChBM,cAAE,KAAKk7C,MAAP,EAAez6C,KAAf,GAAuBkxB,MAAvB,CAA8BjyB,QAAQ0rB,MAAtC;AACH;;qCAEDw+B,2CAAgBlqD,SAAS;AACrB,iBAAKoqD,cAAL,CAAoBj2C,IAApB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QChDQk2C,8BAAAA;;;;iBAETxJ,QAAQ;;;sCAER5O,mCAAa;AAAA;;AACT3xC,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBh/B,uBAAO,KAAKA,KADa;AAEzBglB,sBAAM,KAAKA,IAFc;AAGzB3F,sBAAM;AAHmB,aAA7B,EAIG,UAACrW,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,0BAAKpF,KAAL,GAAa,EAAb;AACA,0BAAKglB,IAAL,GAAY,EAAZ;AACA,0BAAKu3B,KAAL,CAAWnxC,IAAX,CAAgBpC,KAAKA,IAArB;AACAzN,uBAAG2H,OAAH,CAAW1H,OAAOmV,0BAAlB,EAA8C,EAA9C;AACH,iBALD,MAKO;AACHxL,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAbD;AAcH;;sCAEDwzC,iCAAWj1C,MAAM;AAAA;;AACbvL,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBr7B,oBAAI4D,KAAK5D;AADgB,aAA7B,EAEG,UAACqF,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACd,2BAAKm3C,KAAL,GAAalgD,EAAE+K,MAAF,CAAS,OAAKm1C,KAAd,EAAqB,EAAE54C,IAAI4D,KAAK5D,EAAX,EAArB,CAAb;AACApI,uBAAG2H,OAAH,CAAW1H,OAAOmV,0BAAlB,EAA8C,EAA9C;AACAxL,2BAAOC,OAAP,CAAe,OAAf;AACH,iBAJD,MAIO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAVD;AAWH;;sCAEDgjC,mCAAYzkC,MAAM;AACdA,iBAAKk1C,QAAL,GAAgBl1C,KAAKvH,KAArB;AACAuH,iBAAKm1C,OAAL,GAAen1C,KAAKyd,IAApB;AACAzd,iBAAKoH,SAAL,GAAiB,IAAjB;AACH;;sCAEDguC,uCAAcp1C,MAAM;AAChBvL,cAAEgjC,IAAF,CAAO,oBAAP,EAA6B;AACzBr7B,oBAAI4D,KAAK5D,EADgB;AAEzB3D,uBAAOuH,KAAKvH,KAFa;AAGzBglB,sBAAMzd,KAAKyd;AAHc,aAA7B,EAIG,UAAChc,IAAD,EAAO+5B,UAAP,EAAmB92B,GAAnB,EAA2B;AAC1B,oBAAIjD,KAAK5D,OAAT,EAAkB;AACdmC,yBAAKoH,SAAL,GAAiB,KAAjB;AACApT,uBAAG2H,OAAH,CAAW1H,OAAOmV,0BAAlB,EAA8C,EAA9C;AACAxL,2BAAOC,OAAP,CAAe,OAAf;AACH,iBAJD,MAIO;AACHD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB;AACH;AACJ,aAZD;AAaH;;sCAEDuqC,qCAAc;AAAA;;AACVv3C,cAAEoN,GAAF,CAAM,uBAAN,EAA+B,UAACJ,IAAD,EAAU;AACrC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAKm3C,KAAL,GAAavzC,KAAKA,IAAlB;AACH,iBAFD,MAEO;AACH,2BAAKuzC,KAAL,GAAa,EAAb;AACH;AACJ,aAND;AAOH;;sCAED1sC,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB,EAAEikC,YAAY,KAAd,EAAlB;AACH;;sCAEDN,yCAAe+D,OAAO,CAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCzEQyO,wBAAAA;gCA2BT1B,+CAAmB;AACf,gBAAI,KAAKxgD,SAAT,EAAoB;AAChB,qBAAKE,OAAL,GAAeC,MAAMC,WAAN,CAAkB,KAAKJ,SAAvB,CAAf;AACH;AACJ;;gCAEDmiD,yCAAgB;AACZjqD,cAAE,KAAKkqD,iBAAP,EAA0BhqD,QAA1B,CAAmC,cAAnC,EAAmD,KAAKkM,MAAxD,EAAgElM,QAAhE,CAAyE,MAAzE;AACH;;gCAED6/C,2CAAiB;AACb,iBAAKoK,oBAAL;AACH;;gCAEDA,uDAAuB;AAAA;;AACnB,gBAAI,KAAK3/C,OAAT,EAAkB;AACdxK,kBAAEoN,GAAF,CAAM,oBAAN,EAA4B;AACxBF,+BAAW,KAAK1C,OAAL,CAAa7C;AADA,iBAA5B,EAEG,UAACqF,IAAD,EAAU;AACT,wBAAIA,KAAK5D,OAAT,EAAkB;AACd,8BAAKghD,YAAL,GAAoBp9C,KAAKA,IAAzB;AACH,qBAFD,MAEO;AACH,8BAAKo9C,YAAL,GAAoB,EAApB;AACH;AACJ,iBARD;AASH;AACJ;;AAKD,iCAAc;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,iBA/CdvgD,kBA+Cc,GA/CO,KA+CP;AAAA,iBA9CdwgD,UA8Cc,GA9CD,EA8CC;AAAA,iBA5Cdt0C,kBA4Cc,GA5COvW,OAAOuW,kBA4Cd;AAAA,iBA3CdC,gBA2Cc,GA3CKxW,OAAOwW,gBA2CZ;AAAA,iBA1CdC,eA0Cc,GA1CIzW,OAAOyW,eA0CX;AAAA,iBAzCdC,cAyCc,GAzCG1W,OAAO0W,cAyCV;AAAA,iBAxCdC,eAwCc,GAxCI3W,OAAO2W,eAwCX;AAAA,iBAvCdC,kBAuCc,GAvCO5W,OAAO4W,kBAuCd;AAAA,iBAtCdC,oBAsCc,GAtCS7W,OAAO6W,oBAsChB;AAAA,iBApCdnH,OAoCc,GApCJ,IAoCI;AAAA,iBAnCdo7C,QAmCc,GAnCH,CAmCG;AAAA,iBAjCdF,YAiCc,GAjCC,EAiCD;;AACV,iBAAK9qD,SAAL,GAAiBC,GAAGD,SAAH,CAAaE,OAAO+U,uBAApB,EAA6C,UAAC7U,OAAD,EAAa;AACvE,uBAAK86B,GAAL,GAAW96B,QAAQ86B,GAAnB;;AAEA,oBAAK,OAAK6vB,UAAL,IAAmB,OAAKl0C,eAAzB,IAA6C,OAAKtM,kBAAtD,EAA0E;AACtEtK,uBAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,gCAAQ,OAAK+gB,UADkC;AAE/Cj/B,gCAAQ,OAAKoP;AAFkC,qBAAnD;AAIH;AACJ,aATgB,CAAjB;;AAWA,iBAAK70B,UAAL,GAAkBpG,GAAGD,SAAH,CAAaE,OAAOmQ,sBAApB,EAA4C,UAACjQ,OAAD,EAAa;AACvE,oBAAI,OAAKwP,OAAL,KAAiB,IAAjB,IAAyB,OAAKo7C,QAAL,IAAiB,CAA9C,EAAiD;AAC7C,2BAAKA,QAAL,GAAgB5qD,QAAQwP,OAAR,GAAkB,OAAKA,OAAvC;AACH;AACD,uBAAKA,OAAL,GAAexP,QAAQwP,OAAvB;AACA,uBAAKU,qBAAL,GAA6BlQ,QAAQkQ,qBAArC;AACH,aANiB,CAAlB;;AAQA,iBAAK7J,UAAL,GAAkBxG,GAAGD,SAAH,CAAaE,OAAOgV,oBAApB,EAA0C,UAAC9U,OAAD,EAAa;AACrEM,kBAAE,OAAKkqD,iBAAP,EAA0BhqD,QAA1B,CAAmC,QAAnC;AACH,aAFiB,CAAlB;;AAIA,iBAAKmK,UAAL,GAAkB9K,GAAGD,SAAH,CAAaE,OAAOkV,2BAApB,EAAiD,UAAChV,OAAD,EAAa;AAC5E,uBAAKyqD,oBAAL;AACH,aAFiB,CAAlB;AAGH;;gCAKDrqD,2BAAS;AACL,iBAAKR,SAAL,CAAeS,OAAf;AACA,iBAAK4F,UAAL,CAAgB5F,OAAhB;AACA,iBAAKgG,UAAL,CAAgBhG,OAAhB;AACA,iBAAKsK,UAAL,CAAgBtK,OAAhB;AACH;;gCAKDoG,+BAAW;AACP,iBAAKwK,WAAL;AACA,iBAAK45C,UAAL;AACH;;gCAEDA,mCAAa;AAAA;;AACT,gBAAI5f,SAAS,EAAb;AACA,gBAAInnC,YAAJ,EAAkB;AACd,oBAAIypC,IAAIzpC,aAAaC,OAAb,CAAqB,wBAArB,CAAR;AACAknC,yBAASsC,IAAIjtC,EAAEwqD,SAAF,CAAYvd,CAAZ,CAAJ,GAAqB,EAA9B;AACH;AACD,iBAAKwd,YAAL,GAAoB9f,MAApB;AACA3qC,cAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB;AACrBiC,wBAAQA,MADa;AAErBgE,0BAAU,kBAACvjB,MAAD,EAASkT,QAAT,EAAsB;AAC5B,2BAAK6gB,aAAL;AACH,iBAJoB;AAKrBuL,2BAAW,qBAAM;AACb1qD,sBAAE,OAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,cAAzB;AACH;AAPoB,aAAzB;AAUH;;gCAEDyW,yCAAgB;AAAA;;AAEZn/C,cAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB,cAAzB;;AAEA,gBAAIA,SAAS1oC,EAAE,KAAK2qD,cAAP,EAAuBrgC,GAAvB,EAAb;;AAEA,gBAAI,CAACoe,MAAD,IAAWA,OAAOhnC,MAAP,GAAgB,CAA/B,EAAkC;AAC9ByH,uBAAOE,KAAP,CAAa,eAAb;AACA;AACH;;AAED,iBAAKq/B,MAAL,GAAcA,MAAd;;AAGA,gBAAIkiB,WAAW,KAAf;AACA5qD,cAAEyG,IAAF,CAAO,KAAKgkD,YAAZ,EAA0B,UAAS/jD,KAAT,EAAgB4jB,GAAhB,EAAqB;AAC3C,oBAAIA,IAAItmB,KAAJ,IAAa0kC,MAAjB,EAAyB;AACrBkiB,+BAAW,IAAX;AACA,2BAAO,KAAP;AACH;AACJ,aALD;AAMA,gBAAI,CAACA,QAAL,EAAe;AACX,qBAAKH,YAAL,CAAkBlgD,MAAlB,CAAyB,CAAzB,EAA4B,CAA5B,EAA+B;AAC3BvG,2BAAO0kC;AADoB,iBAA/B;AAGA1oC,kBAAE,KAAKuuC,SAAP,EAAkB7F,MAAlB,CAAyB;AACrBiC,4BAAQtqC,EAAEu4C,KAAF,CAAQ,KAAK6R,YAAb;AADa,iBAAzB;AAGH;AACDjnD,4BAAgBA,aAAa8I,OAAb,CAAqB,wBAArB,EAA+C6S,KAAKC,SAAL,CAAe,KAAKqrC,YAApB,CAA/C,CAAhB;;AAEA,gBAAI7pD,YAAJ;AACA,gBAAIoM,aAAJ;AACA,gBAAI,KAAKvD,IAAT,EAAe;AACX7I;AACAoM,uBAAO;AACH07B,4BAAQ,KAAKA,MADV;AAEHz7B,0BAAM,EAFH;AAGH8iC,0BAAM;AAHH,iBAAP;AAKH,aAPD,MAOO;AACHnvC;AACAoM,uBAAO;AACH07B,4BAAQ,KAAKA,MADV;AAEHx7B,+BAAW,KAAK1C,OAAL,CAAa7C,EAFrB;AAGHsF,0BAAM,EAHH;AAIH8iC,0BAAM;AAJH,iBAAP;AAMH;;AAED,iBAAK8a,UAAL,GAAkB7qD,EAAEoN,GAAF,CAAMxM,GAAN,EAAWoM,IAAX,EAAiB,UAACA,IAAD,EAAU;AACzC,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,2BAAK0hD,kBAAL,CAAwB,IAAxB;;AAEAvrD,uBAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,gCAAQ,OAAK+gB,UADkC;AAE/Cj/B,gCAAQpe,KAAKA,IAFkC;AAG/C07B,gCAAQ,OAAKA;AAHkC,qBAAnD;AAKH;AACJ,aAViB,CAAlB;AAWH;;gCAED/3B,qCAAc;AAAA;;AACV3Q,cAAEuT,QAAF,EAAY/C,IAAZ,CAAiB,SAAjB,EAA4B,GAA5B,EAAiC,UAAC1J,KAAD,EAAW;AACxCA,sBAAMC,cAAN;AACA,uBAAK+jD,kBAAL;AACH,aAHD,EAGGt6C,IAHH,CAGQ,SAHR,EAGmB,QAHnB,EAG6B,UAAC1J,KAAD,EAAW;AACpCA,sBAAMC,cAAN;AACA/G,kBAAE,OAAKkqD,iBAAP,EAA0BhqD,QAA1B,CAAmC,QAAnC;AACH,aAND;;AAQAF,cAAE,KAAK+qD,gBAAP,EAAyBv6C,IAAzB,CAA8B,SAA9B,EAAyC,QAAzC,EAAmD,UAAC1J,KAAD,EAAW;AAC1DA,sBAAMC,cAAN;AACA/G,kBAAE,OAAKkqD,iBAAP,EAA0BhqD,QAA1B,CAAmC,QAAnC;AACH,aAHD;AAIH;;gCAED8qD,+DAA0BpiD,MAAM;AAAA;;AAC5B,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,OAAKkqD,iBAAP,EAA0BhqD,QAA1B,GAAqCA,QAArC,CAA8C,cAA9C,EAA8D,OAAKkM,MAAnE,EAA2ElM,QAA3E,CAAoF;AAChF67C,kCAAU,kBAAC3hC,KAAD,EAAQhY,IAAR,EAAc6oD,OAAd,EAA0B;AAChC1iD,mCAAOwC,QAAP,GAAkBjC,KAAK,MAAL,iBAAyBmiD,QAAQrkD,IAAR,CAAa,SAAb,CAAzB,CAAlB;AACH;AAH+E,qBAApF;AAKH,iBAND;AAOH;AACJ;;gCAEDy2C,mDAAqB;AACjBr9C,cAAE,KAAK2qD,cAAP,EAAuBvgD,GAAvB,CAA2B,OAA3B,EAAoC,MAApC;AACApK,cAAE,KAAKkrD,eAAP,EAAwBr3C,IAAxB;AACA,iBAAKs3C,cAAL,GAAsB,IAAtB;AACH;;gCAEDhO,iDAAoB;AAChB,gBAAI,CAACn9C,EAAE,KAAK2qD,cAAP,EAAuBrgC,GAAvB,EAAL,EAAmC;AAC/BtqB,kBAAE,KAAK2qD,cAAP,EAAuBvgD,GAAvB,CAA2B,OAA3B,EAAoC,MAApC;AACApK,kBAAE,KAAKkrD,eAAP,EAAwBjmB,IAAxB;AACA,qBAAKkmB,cAAL,GAAsB,KAAtB;AACH;AACJ;;gCAEDC,mDAAoBtkD,OAAO;AACvB,iBAAKgkD,kBAAL;AACH;;gCAEDA,iDAAmBO,QAAQ;AACvB,gBAAIhrD,EAAEyF,WAAF,CAAculD,MAAd,CAAJ,EAA2B;AACvB,qBAAKxhD,kBAAL,GAA0B,CAAC,KAAKA,kBAAhC;AACH,aAFD,MAEO;AACH,qBAAKA,kBAAL,GAA0BwhD,MAA1B;AACH;;AAED9rD,eAAG2H,OAAH,CAAW1H,OAAOoK,yBAAlB,EAA6C;AACzCE,wBAAQ,KAAKD;AAD4B,aAA7C;AAGH;;gCAED4zC,iDAAmBjqC,KAAK;AACpB,gBAAIA,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AACpB,qBAAKsgC,UAAL,GAAkB7qD,OAAOuW,kBAAzB;AACA,qBAAKopC,aAAL;AACH,aAHD,MAGO,IAAI3rC,IAAIuW,OAAJ,KAAgB,EAApB,EAAwB;AAC3B,qBAAKuhC,kBAAL;AACH;AACD,mBAAO,IAAP;AACH;;gCAEDA,mDAAqB;AACjBtrD,cAAE,KAAK2qD,cAAP,EAAuBrgC,GAAvB,CAA2B,EAA3B,EAA+BzX,KAA/B;AACH;;gCAED04C,2CAAgBzkD,OAAO;AAAA;;AAEnB,gBAAI,KAAK+C,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAOwW,gBAAtD,IAA2E,CAAClP,MAAMwK,OAAtF,EAA+F;AAC3F,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAOwW,gBAAzB;AACA,iBAAKw1C,QAAL,GAAgBxrD,EAAEoN,GAAF,CAAM,8BAAN,EAAsC,UAACJ,IAAD,EAAU;AAC5D,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,wBAAIqiD,YAAYprD,EAAEsD,GAAF,CAAMqJ,KAAKA,IAAX,EAAiB,UAACzB,IAAD,EAAU;AACvC,4BAAI84C,cAAc94C,KAAK84C,WAAvB;AACAA,oCAAYU,QAAZ,GAAuBx5C,IAAvB;AACA,+BAAO84C,WAAP;AACH,qBAJe,CAAhB;AAKA9kD,uBAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,gCAAQ,OAAK+gB,UADkC;AAE/Cj/B,gCAAQ/qB,EAAEiN,OAAF,CAAUm+C,SAAV;AAFuC,qBAAnD;AAIA,2BAAKX,kBAAL,CAAwB,IAAxB;AACH,iBAXD,MAWO;AACH3hD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,aAfe,CAAhB;AAgBH;;gCAED0+C,uCAAc5kD,OAAO;AAAA;;AAEjB,gBAAI,KAAK+C,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAO0W,cAAtD,IAA0E,KAAKo0C,QAAL,IAAiB,CAA3F,IAAiG,CAACxjD,MAAMwK,OAA5G,EAAqH;AACjH,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAO0W,cAAzB;AACA,iBAAKo0C,QAAL,GAAgB,CAAhB;AACA,iBAAKqB,MAAL,GAAc3rD,EAAEoN,GAAF,CAAM,4BAAN,EAAoC;AAC9C2iC,sBAAM,CADwC;AAE9C9iC,sBAAM;AAFwC,aAApC,EAGX,UAACD,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd7J,uBAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,gCAAQ,OAAK+gB,UADkC;AAE/Cj/B,gCAAQpe,KAAKA;AAFkC,qBAAnD;AAIA,2BAAK89C,kBAAL,CAAwB,IAAxB;AACH,iBAND,MAMO;AACH3hD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,UAAxB;AACH;AACJ,aAba,CAAd;AAcH;;gCAEDwwC,yCAAgB;AACZx9C,cAAEgjC,IAAF,CAAO,eAAP,EAAwBt0B,MAAxB,CAA+B,YAAM;AACjCzG,sBAAMgvB,cAAN;AACH,aAFD;AAGH;;gCAED20B,iDAAmB9kD,OAAO;;AAEtB,gBAAI,KAAK+C,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAO2W,eAAtD,IAA0E,CAACrP,MAAMwK,OAArF,EAA8F;AAC1F,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAO2W,eAAzB;AACA5W,eAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,wBAAQ,KAAK+gB,UADkC;AAE/Cj/B,wBAAQ,KAAKoP;AAFkC,aAAnD;AAIA,iBAAKswB,kBAAL,CAAwB,IAAxB;AACH;;gCAEDe,+CAAkB/kD,OAAO;;AAErB,gBAAI,KAAK+C,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAO4W,kBAAtD,IAA6E,CAACtP,MAAMwK,OAAxF,EAAiG;AAC7F,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAO4W,kBAAzB;AACA7W,eAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,wBAAQ,KAAK+gB;AADkC,aAAnD;AAGA,iBAAKS,kBAAL,CAAwB,IAAxB;AACH;;gCAEDgB,mDAAoBhlD,OAAO;;AAEvB,gBAAI,KAAK+C,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAO6W,oBAAtD,IAA+E,CAACvP,MAAMwK,OAA1F,EAAmG;AAC/F,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAO6W,oBAAzB;AACA9W,eAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,wBAAQ,KAAK+gB;AADkC,aAAnD;AAGA,iBAAKS,kBAAL,CAAwB,IAAxB;AACH;;gCAEDxN,6CAAkB;AACd,iBAAKC,UAAL,CAAgB1pC,IAAhB;AACH;;gCAEDi1C,iDAAmBv9C,MAAMzE,OAAO;AAC5BA,kBAAMyK,wBAAN;AACAhS,eAAG2H,OAAH,CAAW1H,OAAOiV,qBAAlB,EAAyC;AACrC60B,wBAAQ,oBAD6B;AAErC/9B,sBAAMA;AAF+B,aAAzC;AAIH;;gCAED80C,qCAAa90C,MAAMzE,OAAO;AACtBA,kBAAMyK,wBAAN;AACAhS,eAAG2H,OAAH,CAAW1H,OAAOiV,qBAAlB,EAAyC;AACrC60B,wBAAQ,cAD6B;AAErC/9B,sBAAMA;AAF+B,aAAzC;AAIH;;gCAEDq9C,+CAAkBr9C,MAAMzE,OAAO;AAC3BA,kBAAMyK,wBAAN;AACAhS,eAAG2H,OAAH,CAAW1H,OAAOiV,qBAAlB,EAAyC;AACrC60B,wBAAQ,mBAD6B;AAErC/9B,sBAAMA;AAF+B,aAAzC;AAIH;;gCAEDykC,mCAAYzkC,MAAMzE,OAAO;AACrBA,kBAAMyK,wBAAN;AACAhS,eAAG2H,OAAH,CAAW1H,OAAOiV,qBAAlB,EAAyC;AACrC60B,wBAAQ,aAD6B;AAErC/9B,sBAAMA;AAF+B,aAAzC;AAIH;;gCAEDi1C,iCAAWj1C,MAAMzE,OAAO;AACpBA,kBAAMyK,wBAAN;AACAhS,eAAG2H,OAAH,CAAW1H,OAAOiV,qBAAlB,EAAyC;AACrC60B,wBAAQ,YAD6B;AAErC/9B,sBAAMA;AAF+B,aAAzC;AAIH;;gCAEDwgD,uDAAsBjlD,OAAO;;AAEzB,gBAAI,KAAK0D,OAAL,CAAau2C,KAAb,CAAmB35C,QAAnB,IAA+B,KAAKU,SAAL,CAAeV,QAAlD,EAA4D;AACxD,qBAAKwhD,iBAAL,CAAuB,KAAKp+C,OAA5B,EAAqC1D,KAArC;AACH,aAFD,MAEO;AACH,qBAAKgiD,kBAAL,CAAwB,KAAKt+C,OAA7B,EAAsC1D,KAAtC;AACH;AACJ;;gCAEDklD,iDAAmBllD,OAAO;;AAEtB,gBAAI,KAAK0D,OAAL,CAAau2C,KAAb,CAAmB35C,QAAnB,IAA+B,KAAKU,SAAL,CAAeV,QAAlD,EAA4D;AACxD,qBAAK4oC,WAAL,CAAiB,KAAKxlC,OAAtB,EAA+B1D,KAA/B;AACH,aAFD,MAEO;AACHA,sBAAMyK,wBAAN;AACH;AACJ;;gCAED06C,2CAAgBnlD,OAAO;AACnBA,kBAAMyK,wBAAN;AACH;;gCAED26C,2EAAgCplD,OAAO;AACnCA,kBAAMyK,wBAAN;AACH;;gCAED46C,uCAAcrlD,OAAO;AACjBA,kBAAMyK,wBAAN;AACAhJ,mBAAOwC,QAAP,eAA4B,KAAKqhD,QAAL,CAAcx1C,KAA1C;AACH;;gCAEDy1C,mDAAoBvlD,OAAO;AACvBA,kBAAMyK,wBAAN;AACAvR,cAAE,KAAKssD,iBAAP,EAA0BpsD,QAA1B,CAAmC,QAAnC;AACH;;gCAED+oD,uDAAsBniD,OAAO;AACzB,iBAAKylD,gBAAL,CAAsB14C,IAAtB;AACH;;gCAED24C,yDAAuB1lD,OAAOyE,MAAM;AAChCzE,kBAAMyK,wBAAN;AACAvR,cAAE,KAAKssD,iBAAP,EAA0BpsD,QAA1B,CAAmC,MAAnC;AACA+H,kBAAM2zB,UAAN,CAAiBrwB,KAAKyd,IAAtB;AACAhpB,cAAEgjC,IAAF,CAAO,uBAAP,EAAgC,EAAEr7B,IAAI4D,KAAK5D,EAAX,EAAhC;AACH;;gCAED8kD,yCAAe3lD,OAAO;AAAA;;AAClBA,kBAAMyK,wBAAN;AACA,gBAAI,KAAK1H,kBAAL,IAA4B,KAAKwgD,UAAL,IAAmB7qD,OAAOyW,eAAtD,IAA0E,CAACnP,MAAMwK,OAArF,EAA8F;AAC1F,qBAAKw5C,kBAAL;AACA;AACH;;AAED,iBAAKT,UAAL,GAAkB7qD,OAAOyW,eAAzB;;AAEA,iBAAKy2C,OAAL,GAAe1sD,EAAEoN,GAAF,CAAM,8BAAN,EAAsC;AACjD8gC,qBAAK,KAAK1jC,OAAL,CAAa7C;AAD+B,aAAtC,EAEZ,UAACqF,IAAD,EAAU;AACT,oBAAIA,KAAK5D,OAAT,EAAkB;AACd,wBAAIujD,WAAWtsD,EAAEsD,GAAF,CAAMqJ,KAAKA,IAAX,EAAiB,UAACzB,IAAD,EAAU;AACtC,4BAAI84C,cAAc94C,KAAK84C,WAAvB;AACAA,oCAAYuI,OAAZ,GAAsBrhD,IAAtB;AACA,+BAAO84C,WAAP;AACH,qBAJc,CAAf;AAKA9kD,uBAAG2H,OAAH,CAAW1H,OAAO0U,+BAAlB,EAAmD;AAC/Co1B,gCAAQ,OAAK+gB,UADkC;AAE/Cj/B,gCAAQ/qB,EAAEiN,OAAF,CAAUq/C,QAAV;AAFuC,qBAAnD;AAIA,2BAAK7B,kBAAL,CAAwB,IAAxB;AACH,iBAXD,MAWO;AACH3hD,2BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,aAAxB;AACH;AACJ,aAjBc,CAAf;AAkBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCvdQ6/C,qBAAAA,qBASR,gCAAS,EAAE9K,oBAAoB,8BAAY7W,MAAlC,EAAT;;;;;;;;;;;;;;;;;;;;;;;6BAID4hB,yCAAetN,MAAMC,KAAK;AACtB,gBAAID,IAAJ,EAAU;AACNx/C,kBAAE,KAAK4iC,QAAP,EAAiBA,QAAjB,CAA0B,aAA1B;AACH,aAFD,MAEO;AACH5iC,kBAAE,KAAK4iC,QAAP,EAAiBA,QAAjB,CAA0B,eAA1B;AACH;;AAED,iBAAK+e,MAAL,IAAe9gB,GAAG8gB,MAAH,CAAU,KAAKA,MAAf,CAAf;AACH;;6BAKDx7C,+BAAW;AAAA;;AACPnG,cAAE,KAAK4iC,QAAP,EAAiBA,QAAjB,CAA0B;AACtBmqB,2BAAW,qBAAM;AACb,0BAAKrsD,OAAL,GAAe,IAAf;AACAL,sBAAEmO,KAAF,CAAQ,YAAM;AACV,8BAAKw+C,aAAL,IAAsB,MAAKA,aAAL,CAAmBC,oBAAnB,EAAtB;AACA,8BAAKC,SAAL,IAAkB,MAAKA,SAAL,OAAlB;AACA,8BAAKvL,MAAL,IAAe9gB,GAAG8gB,MAAH,CAAU,MAAKA,MAAf,CAAf;AACH,qBAJD;AAMH,iBATqB;AAUtBwL,6BAAa,uBAAM;AACf,0BAAKzsD,OAAL,GAAe,KAAf;AACAL,sBAAEmO,KAAF,CAAQ,YAAM;AACV,8BAAKw+C,aAAL,IAAsB,MAAKA,aAAL,CAAmBC,oBAAnB,EAAtB;AACA,8BAAKG,WAAL,IAAoB,MAAKA,WAAL,OAApB;AACA,8BAAKzL,MAAL,IAAe9gB,GAAG8gB,MAAH,CAAU,MAAKA,MAAf,CAAf;AACH,qBAJD;AAMH,iBAlBqB;AAmBtB5F,0BAAU,oBAAM;AACZ17C,sBAAEmO,KAAF,CAAQ,YAAM;AACV,8BAAK6+C,QAAL,IAAiB,MAAKA,QAAL,OAAjB;AACH,qBAFD;AAIH;AAxBqB,aAA1B;AA0BA,iBAAKP,cAAL,CAAoB,KAAKpsD,OAAzB;AACH;;;;;;;;;;;;mBAlDmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCVX4sD,yBAAAA;AAIT,kCAAc;AAAA;;AAAA,iBAFjBhqD,MAEiB,GAFR,EAEQ;AACb;;iCAKDkE,+BAAW;AACPxH,cAAE,KAAKutD,EAAP,EAAWnpC,MAAX;AACH;;iCAEDje,+BAAW;AAAA;;AAEPnG,cAAE,KAAKutD,EAAP,EAAWhS,KAAX,CAAiB;AACbiS,0BAAU,KADG;AAEbC,+BAAe,IAFF;AAGbC,2BAAW,qBAAM;AACb,0BAAKnX,SAAL,IAAkB,MAAKA,SAAL,EAAlB;AACH,iBALY;AAMboX,wBAAQ,kBAAM;AACV,0BAAKC,MAAL,IAAe,MAAKA,MAAL,EAAf;AACH;AARY,aAAjB;AAUH;;iCAEDpkD,yBAAQ;AACJ,iBAAKlG,MAAL,GAAc;AACVU,uBAAO,MADG;AAEVuD,yBAAS,YAFC;AAGVgH,yBAAS;AAHC,aAAd;AAKH;;iCAODsF,qBAAKvQ,QAAQ;;AAET,iBAAKkG,KAAL;;AAEA,gBAAIlG,MAAJ,EAAY;AACR,qBAAKA,MAAL,GAAcjD,EAAEC,MAAF,CAAS,KAAKgD,MAAd,EAAsBA,MAAtB,CAAd;AACH;;AAED,gBAAIA,UAAUA,OAAOizC,SAArB,EAAgC;AAC5B,qBAAKA,SAAL,GAAiBjzC,OAAOizC,SAAxB;AACH;;AAED,gBAAIjzC,UAAUA,OAAOsqD,MAArB,EAA6B;AACzB,qBAAKA,MAAL,GAActqD,OAAOsqD,MAArB;AACH;;AAED5tD,cAAE,KAAKutD,EAAP,EAAWhS,KAAX,CAAiB,MAAjB;AACH;;iCAGDtW,uBAAO;AACHjlC,cAAE,KAAKutD,EAAP,EAAWhS,KAAX,CAAiB,MAAjB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QC/DQsS,qBAAAA,qBAMR,gCAAS,EAAE9L,oBAAoB,8BAAY7W,MAAlC,EAAT;;;;;;;;;;;;;;;;;;;6BAID4iB,mDAAoBtO,MAAMC,KAAK;AAAA;;AAE3B,gBAAID,IAAJ,EAAU;AACNn/C,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,MAAKE,QAAP,EAAiBA,QAAjB,CAA0B,cAA1B,EAA0Cs/C,IAA1C;AAEH,iBAHD;AAIH;AAEJ;;6BAEDuO,6CAAiBvO,MAAMC,KAAK;AACxB,gBAAIp/C,EAAE2tD,OAAF,CAAUxO,IAAV,CAAJ,EAAqB;AACjBx/C,kBAAE,KAAKE,QAAP,EAAiBA,QAAjB,CAA0B,OAA1B;AACA,qBAAK+tD,YAAL,GAAoB,IAApB;AACH;AACJ;;6BAEDC,mDAAoBtlD,MAAM;AAAA;;AAEtB,gBAAIA,IAAJ,EAAU;AACNvI,kBAAEmO,KAAF,CAAQ,YAAM;AACVxO,sBAAE,OAAKE,QAAP,EAAiBA,QAAjB,CAA0B;AACtB67C,kCAAU,kBAAC3hC,KAAD,EAAQhY,IAAR,EAAc6oD,OAAd,EAA0B;AAEhC,mCAAKgD,YAAL,GAAoB7zC,KAApB;AACH;AAJqB,qBAA1B,EAKGla,QALH,CAKY,cALZ,EAK4B,OAAK+tD,YALjC;AAOH,iBARD;AASH;AACJ;;;;;;mBAvCgB5tD,EAAEq6B,QAAF,CAAW,cAAX;;;;;mBACA;;;;;mBACK;;;;;mBACA;;;;;;;;mBAEA;;;;;mBACF;;;;;;;;;;;;;;;;;;QCRXyzB,yBAAAA;;;;;iCAKThoD,+BAAW;AACPnG,cAAE,KAAKutD,EAAP,EAAWhS,KAAX;AACH;;iCAED1nC,uBAAO;AACH7T,cAAE,KAAKutD,EAAP,EAAWhS,KAAX,CAAiB,MAAjB;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCNQ6S,kBAAAA;;;;;;;;;;;;;;;;;;;;;;iBAYTjtC,UAAU;AACN02B,+BAAe,IADT;AAENC,4BAAY;AAFN;;;0BAQVtwC,+BAAW;AACPxH,cAAE,KAAKu7C,KAAP,EAAcn3B,MAAd;AACH;;0BAKDje,+BAAW;AAAA;;AAEPnG,cAAE,KAAKu7C,KAAP,EAAcA,KAAd,CAAoB;AAChBiS,0BAAU,KADM;AAEhBlK,2BAAW,KAFK;AAGhB+K,gCAAgB,IAHA;AAIhBZ,+BAAe,IAJC;;AAMhB5jB,wBAAQ,kBAAM;AACV,0BAAKykB,MAAL,IAAe,MAAKA,MAAL,OAAf;AACH,iBARe;AAShBxkB,2BAAW,qBAAM;AACb,0BAAKykB,SAAL,IAAkB,MAAKA,SAAL,OAAlB;AACH,iBAXe;AAYhBb,2BAAW,qBAAM;AACb,0BAAKvsC,OAAL,CAAa22B,UAAb,IAA2B,MAAKgJ,UAAL,EAA3B;AACA,0BAAKvK,SAAL,IAAkB,MAAKA,SAAL,OAAlB;AACA,2BAAO,MAAKp1B,OAAL,CAAa02B,aAApB;AACH,iBAhBe;AAiBhB8V,wBAAQ,kBAAM;AACV,0BAAKC,MAAL,IAAe,MAAKA,MAAL,OAAf;AACH;AAnBe,aAApB;AAqBH;;0BAED9M,mCAAa;AACT,iBAAK0N,OAAL,GAAe,IAAf;AACAxuD,cAAE,KAAKu7C,KAAP,EAAc/0C,IAAd,CAAmB,SAAnB,EAA8BioD,MAA9B,CAAqC,MAArC;AACH;;0BAED5O,mCAAa;AACT,iBAAK2O,OAAL,GAAe,KAAf;AACAxuD,cAAE,KAAKu7C,KAAP,EAAc/0C,IAAd,CAAmB,SAAnB,EAA8BioD,MAA9B,CAAqC,MAArC;AACH;;0BAED56C,qBAAKsN,SAAS;AACV9gB,cAAEC,MAAF,CAAS,KAAK6gB,OAAd,EAAuBA,OAAvB;AACAnhB,cAAE,KAAKu7C,KAAP,EAAcA,KAAd,CAAoB,MAApB;AACH;;0BAEDtW,uBAAO;AACH,iBAAK4a,UAAL;AACA7/C,cAAE,KAAKu7C,KAAP,EAAcA,KAAd,CAAoB,MAApB;AACH;;0BAEDxB,6BAAU;AAAA;;AAEN15C,cAAEmO,KAAF,CAAQ,YAAM;AACVxO,kBAAE,OAAKu7C,KAAP,EAAcA,KAAd,CAAoB,SAApB;AACH,aAFD;AAGH;;;;;;mBA3EwB;;;;;mBACD;;;;;;;;;;;;;;;;;mBAKH;;;;;mBACD;;;;;mBACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCXfmT,uBAAAA;;;;;;;+BAITC,qCAAc;AACV,gBAAI,KAAK5mD,IAAT,EAAe;AACX,qBAAK6mD,aAAL;;AAEA,oBAAIrhB,KAAKzM,UAAU0M,GAAV,CAAc,KAAKzlC,IAAL,CAAUX,QAAxB,CAAT;AACA,qBAAKqmC,OAAL,aAAuBF,GAAG,CAAH,CAAvB,UAAiCA,GAAG,CAAH,CAAjC,UAA2CA,GAAG,CAAH,CAA3C;;AAEA,qBAAKF,KAAL,cAAqB,MAAME,GAAG,CAAH,CAA3B,YAAqC,MAAMA,GAAG,CAAH,CAA3C,YAAqD,MAAMA,GAAG,CAAH,CAA3D;AACH;AACJ;;+BAEDqhB,yCAA+B;AAAA,gBAAjBC,QAAiB,uEAAN,IAAM;;AAC3B,gBAAI,KAAK9mD,IAAL,CAAUlE,IAAd,EAAoB;AAChB,qBAAKirD,QAAL,GAAgBD,WAAWxuD,EAAEuI,IAAF,CAAO,KAAKb,IAAL,CAAUlE,IAAjB,CAAX,GAAoCxD,EAAEsI,KAAF,CAAQ,KAAKZ,IAAL,CAAUlE,IAAlB,CAApD;AACH,aAFD,MAEO;AACH,qBAAKirD,QAAL,GAAgBD,WAAWxuD,EAAEuI,IAAF,CAAO,KAAKb,IAAL,CAAUX,QAAjB,CAAX,GAAwC/G,EAAEsI,KAAF,CAAQ,KAAKZ,IAAL,CAAUX,QAAlB,CAAxD;AACH;AACJ;;+BAKDjB,+BAAW;AAAA;;AACPnG,cAAE,KAAK+uD,SAAP,EAAkB/pB,KAAlB,CAAwB,YAAM;AAC1B,sBAAK4pB,aAAL,CAAmB,KAAnB;AACH,aAFD,EAEG,YAAM;AACL,sBAAKA,aAAL;AACH,aAJD;AAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCnCQI,qBAAAA;;;;;;;6BAITn7C,uBAAO;AACH,iBAAK+jC,OAAL,CAAa/jC,IAAb,CAAkB;AACdgkC,+BAAe,KADD;AAEdC,4BAAY;AAFE,aAAlB;AAIH;;6BAEDP,qCAAc,CAIb;;6BAKDpxC,+BAAW;AACPnG,cAAE,KAAKivD,GAAP,EACK1uD,IADL,CACU;AACFsG,oBAAI,MADF;AAEF+8B,wBAAQ,IAFN;AAGFC,wBAAQ;AACJhgC,0BAAM,OADF;AAEJ24B,0BAAM,CAAC,OAAD,EAAU,OAAV;AAFF;AAHN,aADV;AAUH;;6BAED0yB,2BAAS;AACL,gBAAIhsB,MAAM,KAAKn7B,IAAL,CAAU26B,QAApB;AACA,gBAAIQ,OAAOA,IAAIxhC,MAAJ,GAAa,CAAxB,EAA2B;AACvByH,uBAAOE,KAAP,CAAa,eAAb;AACA,uBAAO,KAAP;AACH;;AAED,mBAAO,IAAP;AACH;;6BAEDmuC,yCAAe+D,OAAO;AAAA;;AAElB,gBAAI,KAAK2T,MAAL,MAAiBlvD,EAAE,KAAKivD,GAAP,EAAY1uD,IAAZ,CAAiB,UAAjB,CAArB,EAAmD;AAC/CP,kBAAEgjC,IAAF,CAAO,qBAAP,EAA8B;AAC1B57B,8BAAU,KAAKW,IAAL,CAAUX,QADM;AAE1Bs7B,8BAAU,KAAK36B,IAAL,CAAU26B,QAFM;AAG1B7+B,0BAAM,KAAKkE,IAAL,CAAUlE,IAHU;AAI1B24B,0BAAM,KAAKz0B,IAAL,CAAU6O;AAJU,iBAA9B,EAKG,UAAC5J,IAAD,EAAU;AACTuuC,0BAAMtW,IAAN;AACA,0BAAKl9B,IAAL,CAAU26B,QAAV,GAAqB,EAArB;AACA,wBAAI11B,KAAK5D,OAAT,EAAkB;AACdD,+BAAOC,OAAP,CAAe,WAAf;AACH,qBAFD,MAEO;AACHD,+BAAOE,KAAP,CAAa2D,KAAKA,IAAlB,EAAwB,WAAxB;AACH;AACJ,iBAbD;AAcH,aAfD,MAeO;AACHuuC,sBAAMsE,UAAN;AACH;AACJ;;;;;;;;;;;;;;sBClEU,CAAC;AACZ3pB,eAAO,KADK;AAEZ9b,eAAO,KAFK;AAGZizB,eAAO,OAHK;AAIZhqB,cAAM;AAJM,KAAD,EAKZ;AACC6S,eAAO,KADR;AAEC9b,eAAO,KAFR;AAGCizB,eAAO,QAHR;AAIChqB,cAAM;AAJP,KALY,EAUZ;AACC6S,eAAO,KADR;AAEC9b,eAAO,KAFR;AAGCizB,eAAO,MAHR;AAIChqB,cAAM;AAJP,KAVY,EAeZ;AACC6S,eAAO,KADR;AAEC9b,eAAO,KAFR;AAGCizB,eAAO,MAHR;AAIChqB,cAAM;AAJP,KAfY;;ACAf;AACA,ACDA,IAAI;ACAJ,EFEI,ACDA,CCDD,WFEC,aCDA;AEDJ,EHGI,ACDA,ACDA,gBFEA,SCDA,WCDA;AEDJ,EHGI,8BAAA;ADGJ,AKNA,AHEI,EEDA,AHGA,CCJD,OAEE,IEDD,CHGA,ACFM;EFKN,AKNA,AJIA,ACFI,UFIJ,ICFA,ACFI,CGFJ;ADDJ,AEEA,ACFA,EPQI,AKNA,AJIA,WDEA,GINA,ECAA,EDAG,CHIH;ACCJ,AMPA,EJGQ,AEAJ,ACFA,CLMD,MACC,IKPA,CHEgB,MFMZ,MAAK,GINT,EJMc,CENV,OFMkB;AFE1B,AKNA,AJIA,AQTA,EHII,AJMQ,AKRR,ACDA,YHIW,AJKX,AOTA,IDCA,ELQQ,GINR;AFJJ,ACMA,AKNA,EVYI,ACDI,AKNJ,ACFA,AEFA,YJKW,AILX,ELCA,CCIc,GLMd,AIVG,ACIc,AJKb,AKNJ,OCFA,EHCI,MCE4B,GAAG,EDD3B;AFUZ,ASdI,AHDJ,ERaI,AIPY,ACCZ,ACDA,ACFA,CLWD,KAAM,KITL,CJSW,CGRX,GEHA,CCFA,GGDC,GAAG,CPKQ,CJOZ;ACJJ,AWTA,AHAA,EHOI,AJSA,ASdI,AHCA,YPOJ,AKHA,AEJI,GGDA,CFAJ,EPcA,YDJI,IAAG,KAAK;ADIhB,AIhBA,ACUA,AQVA,ANAA,ENaY,ACIR,ASdI,ACFJ,AJGI,ACDA,YJOO,AMPP,AFAA,CRUI,AMRR,ACDI,CJMJ,ECAc,AOTd,GVgBA,IFDqB;AMNzB,AQVA,EdiBI,AINI,ACAJ,AJGQ,ACIR,AUhBA,ACDA,ANKI,ACDA,ACDA,WLOA,CGLA,CDIQ,AGNR,GTaJ,ECHQ,CWZR,AEDA,GZiBA,CMbI,CHMJ,WQVA;AFAA,AIDJ,EdeY,AKJR,AJQA,AWNA,ACXI,APKA,ACDA,ACDA,MRUI,GMRJ,MMMJ,ECXI,ECDJ,APKI,CGLH,GLUD,AKVI,AFIA,MPcJ,ASfI,IAAG;AXgBX,AIpBA,ACcA,AOdA,AIAA,EfgBY,AKJR,AKPQ,AESR,ACXI,ACDA,ARMA,AEFA,QRUI,CYFR,GRAW,AMTH,EPQR,AQVA,AIFA,EXac,ASXV,CPKA,CHKD,AQVA,CGDC,ANIA,GTckC,CMRtC,KFCa,KAAK;AFStB,AerBI,EjBqBI,AIRA,ACCJ,AJEQ,AKJR,AMNI,ACQJ,AGbI,ATOA,CLaL,EFDI,GECE,GFAA,EaPL,CPFA,AJSW,GERP,AHGI,AWVJ,GVeY,AKbZ,CSPA,ACDH,GAAG,KZcJ,AYdS;ANAT,AIDJ,AGAA,EZcI,AJSA,AWPA,AIdI,AVQA,EPaI,KMTR,AOEO,EXOE,EAAT,OKbI,CQNJ,CJHC,GAAG,CXsBI,CaPR,IFTI,KMLA;AbFR,ACkBA,AJCQ,AWnBR,AIAA,AGAA,EbeI,AJSA,AWPA,AEZI,AEKA,ACTJ,ElBuBQ,MaPA,CPFR,GDGW,AJRX,AgBAI,ACTJ,EdeA,AFQA,AUrBA,AICA,GDCI,CXWD,AQbA,GZqBK,IIRG,ASCX,EDbI,GXeC,GWfI,GXgBD,IAAG,EWhBO,GXgBF;AmBnBhB,AbDJ,EHiBQ,ACEJ,AJEY,AKLZ,AJSA,AUpBQ,ACaR,AEZI,ACDA,ACMA,ACTJ,ShBuBA,AedI,GGVH,CPiBD,ANNA,CNSY,CmBpBR,CdeJ,AMXQ,AGCJ,CCDA,IXcJ,IajBA,EdeI;AOhBJ,AUDJ,ErB0BQ,AMTJ,AJSA,AWPA,AGbI,ACMA,ACTJ,AEDI,AbWA,GPQD,IiBTC,EjBcC,EEAL,GWPA,CKhBA,AEDI,CJIA,CKLJ,GVAC,GAAG,AUAC,GfgBL,GKPI,EJGA,EIHG,OAAO,WAAU;APV5B,ACsBA,AJKA,AW3BA,AUCI,EhBiBA,AJSA,AShBQ,AMEJ,ACTJ,AEDI,ACDA,ErByBI,MiBdI,CCTZ,GbkBW,AenBP,EhBgBJ,ACGY,AOnBZ,IVwBA,AUxBG,CSDC,ACDH,GAAG,EtB0BI,CWhBA,AMEJ,EXKJ,AMVI,CUNA,IAAG;ATAP,AGFJ,AOAA,AhBAA,EHoBQ,ACGJ,AJKA,AKTA,AKPQ,ACHA,AKKJ,ACTJ,AIFQ,EtByBA,QMTR,EgBhBQ,CVMA,AMJR,AXUA,CFQA,AWfA,CfoBA,EY1BoB,ANajB,CHKC,AYZD,GhBoBK,GWhBA,AKHJ,CCKA,EDLG;AdqBX,AkB7BI,ACDJ,AGAA,EpBqBQ,AHQJ,AKTA,AKPQ,AEVJ,AGOI,ACKJ,ACTJ,AXUI,OMbO,CKGH,IELP,GJSO,AITJ,ECGJ,CjBiBI,GgBjBA,CnByBJ,GY1BI,AKGJ,AEFO,AbYH,CIHI,AMEJ,GXKJ;ADMJ,AHKA,AUrBY,AaTR,EzB6BI,AIRA,AHQJ,AKTA,AKPQ,AMEJ,ACTJ,AEFQ,ACAJ,GrBgBD,GMAH,GNSK,AIRD,GCIO,AerBH,EfqBI,AOvBZ,CaFC,GbEE,AKaC,AIXA,AIJA,SbOA,AaPS,KxB6Bb,AwB7BkB,GPMlB,CNGS,UDID;AEVJ,AaFJ,AnBFJ,EHuBQ,ACIJ,AJIA,AKTA,AJUA,ASjBQ,ACJI,AaTR,EzB6BI,MIRI,CCIZ,IETA,IAAG,EIHK,GLOR,AOlB8C,AaFJ,CnBgBjC,CPaD,CIRJ,AqBrBA,CxB6BJ,ICCA,CUrBY;AKRR,ACKJ,AEAA,ACRJ,AMCI,EtB2BA,AJIA,AWpBY,ACuOhB,AYhPQ,AC8ER,AnB9DQ,EPaI,UoBxBP,AKLG,CEFH,EtB2BD,AqB3BY,CCAR,CTOgB,AGDpB,ERLoB,Eb8BZ,AqBzBL,CJJ2C,AUFpC,GfWE,ALOR,GcZO,EpByBX;AGFI,AELR,AKxBI,AiBDJ,EvB6BI,AYiHJ,ACrIQ,AEAA,ACDA,AIJA,AEFA,EdGI,AaFJ,MRMA,CEAS,EAAT,CKLA,CnBqBQ,CFNZ,ACUA,EsB3BI,IhBDH,CMAA,ENAG,AEII,CIJJ,ASEA,CEFJ,ExB6BK,AiBtBD,EVSA,AMhBK,EXwBoB,EKRtB,KACC,MPaA;AHIZ,AWzBY,AiBPA,AtBHZ,EHgCgB,ACFZ,ACJA,AKPY,ASTR,AOPA,ACDA,EXEI,ASAJ,KrB0BJ,ECJA,EchBI,ChBsBQ,CGXZ,CKlBA,AKCQ,ASAJ,ACDA,GCDA,ArBmBD,CKlBA,IiBA+C,CtBkBzC,GIFG,CCXR,ILac,KKXT,MAGG,SACI;AMdpB,AOMY,AKNZ,E1BiCgB,ACFZ,AJKA,AKTA,AMZoB,AgBZhB,ACMR,AtBaQ,EmBjBA,MpBsBJ,IoBtBI,EdUgB,ALOhB,CkBrBH,CGEG,EvB4BJ,AoB9BI,EPUJ,GjByBA,IwBnCa,EIAb,CzBgCY,A0BhCZ,ELAkB,CIAf,CCAA,GLIC,CIHA,KJIK,AIJD,ACAJ,KDAS,ACAL,MAAO,IAAG,OAAO;A9BsC7B,AWjBI,AEfA,AORJ,AOAA,AIAA,E3BkCgB,ACFZ,AY3BQ,ACOJ,AOLQ,AKJJ,EDCI,UTQZ,ASRY,CXQR,AOLQ,AEFZ,AGFQ,IHEL,CtB2BH,EMTC,CMtBA,CJOyC,CcHjC,CVJL,KAAK,QAIA,Mb6BG;AHKhB,AKTA,AMZgB,AgBlBhB,AIAA,AzBAA,EPyCI,AINY,ACFZ,AMTI,AE2NR,AOtOQ,AOPA,AILJ,EdMY,ONiBC,EAAT,EJAJ,CKrBA,AKIY,AUDR,EPOA,CWZJ,AxBuBG,CFSH,AO9BG,OgBEH,CrBmBa,CKhBT,EgBHD,I5BoCH,C4BnCI,CxB6BQ,CQzBH,MAQI,CgBXL;AVOA,AORA,ACGZ,AITA,AGAA,E7BoCgB,ACFZ,AJMA,AKTA,AKNI,ACNY,AeZZ,ACCQ,AGNZ,ACDA,AzBwBI,EMhBA,IRyBJ,GQzBI,CDUY,CRiBJ,AOXR,ELMJ,CCNI,CkBxBH,AEMG,AKNJ,CDCA,ENDI,CQAJ,CfUA,CUHY,MHPC,GxBuCb,A6BvCA,ELAkB,EKAf,EZYC,CORA,MACK,AKDL,KAAI,GZSC,GONG,EAAC;AzBoCjB,AoB5CA,AcCI,E9BoCY,AHIZ,AiB1BY,AONI,ACChB,AIJQ,AEJR,ACAI,EpBQA,UOEJ,GhByBY,AqB5BI,COPhB,AEDC,CRSD,CORI,CCDA,CdaA,EnB2BJ,CY/BI,EKKQ,IYTJ;AzB+BZ,ACHA,AKlCA,ACAA,AKCI,AUDJ,AQAA,A5BAA,EP6CI,ACHA,AmB3BQ,AMJR,AIJQ,AEJR,AEDI,SAAA,G7BmCO,AetBH,CONR,ApBkBA,CKxBA,EZ0CA,C2BpCG,ApBkBA,CKxBA,AkBIK,AEJR,CfFC,ASUD,CfgBA,AwB1BA,ElBAI,AUSA,EQTD,E5B0BU,CKnBT,AKPK,KV0BS,CNelB,EgBzBI,CLKI,ELKgB,IKLX;ARkBT,ACFR,ACHA,AmBvBY,AQZZ,AGAA,EpC8CI,ACHA,AUfI,ACLQ,AKuFJ,AG9FA,AOLA,AORJ,ACDA,A5B0BA,QUkFY,EmB7GhB,E/BqCW,CCHC,C8BlCT,A7B2BC,CaZI,AKfP,AEUO,AORJ,ClC2CJ,AWlBI,ACLQ,EatBR,CQAJ,G7BuC8C,C+BtC1C,ACDS,EnC0Cb,AgBmEQ,EQ7GK,KAAK,AWAI,KXIlB,IWJ2B,EXWtB,AQTL,URUQ,EAAC;ApB0BjB,AQvCA,AaSA,AITA,AEAA,AKAA,ErC+CI,AI+JJ,AE1KI,AcnBQ,AKHQ,AEFR,AMRA,ACAJ,AEFA,SFEA,G7BmCO,AqB3BX,EbQA,CYNgB,AEFR,CvBOR,AgBFQ,CgBfJ,CHEI,CjC2CR,CqC5CA,G/BiCA,C+BjCG,GLCH,GFMA;AzB8BJ,AJMA,AU9CA,AC4BwB,AK3BpB,AkBDJ,AGAA,A/BAA,EPgDI,AaHI,AahCA,AIFA,AENA,ACAI,ACAJ,AGDA,EjCqCI,K6BpCA,ICAJ,C7BmCO,AgCpCP,CLCA,AzByBJ,GPkBA,AIPQ,AsB5BJ,CIFA,AvBmBD,EMeC,AI5CH,CN0BD,AwB1BA,EvB2B8D,AK3B1D,AqBAJ,EHAG,EGAA,A/B6BU,CU7BJ,CN4BL,EwB1BA,EGDA,A/B4Bc,GUbd,AqBfG,KAAI,KrBgBH,IAAG,MAAM;AZuBrB,ACFA,AmBtCI,AEcA,AYfJ,EvCiDI,ACFA,AUjBQ,ACmGZ,AK9GgB,ASLR,AIFA,AENA,ACAI,ACAJ,ACFI,AGDA,A/B4BJ,Q2BzBA,CDAI,G5BmCG,AMXH,AehBJ,C1BmCJ,AMVW,AWpBC,AUJX,CKTG,AzByBA,CkB9BH,CbED,AeYI,AGHA,CQTI,CbFJ,EbED,ENoCiB,C6BnCZ,IVHK,EbOT,GaPc,KAiBd,CbOI,MaPE,GbQE,EaPJ,MACI,IAAG,GbOC,EaPI,MACJ;ApBqBpB,ACFA,AOxCA,AwBAA,AGCI,ExCiDA,AWnBQ,AMXI,AQEQ,AENnB,AMTO,ACAJ,AKNJ,EtC+CI,AWnBoB,SqBtBhB,C5BmCG,AmCzCV,ClCuCU,AqBxBV,CdID,C2BnBI,G5B4BoB,AKTZ,AsBnBZ,EFEA,CrC+CA,ACFuB,CKRH,C4BjChB,CrBcA,AwBlBD,CZmBiB,GZDb,CFUC,A0B1BJ,IAAG,ExBiBC,KZ0BkC,AY1B9B,0BZ0BR;AGhDR,AsBSA,AMFQ,AGPR,AMAA,AlCAA,EPmDI,AKRA,ACFA,AOlBY,AIFA,AQEQ,AENhB,AOTA,AGFI,AEJR,ACAI,EvC+CA,AWnBoB,UPaxB,AoBpBoB,ACXpB,AWNQ,AEJR,CtC+Ce,AMhBf,CPkBA,AIhCA,AEsBA,AOlBY,C2BrBR,EjC+BD,CUZS,CLSY,CebpB,AOTA,ACPJ,GTcI,CSdD,G/B0CC,A4BvCJ,GGDI,ElC8C8B,I+B1C7B,AGFG,IAAG,KAAM,alC4Cb;AgCvCJ,ASVJ,E1CoDI,AIHQ,ACLR,AQpBY,AIFA,ASNJ,ACEJ,AKVI,AGFI,AKHR,ACFJ,AlCiCI,C0BxBD,ChCwCC,QgCxCS,C7BuCL,CoC9CJ,G3BqBQ,AaRJ,CefR,CpC2CA,C2BpCQ,CfcI,CUJR,AejBJ,KnCiCI,C4B5BQ,MnC8CZ,AiC1Cc,QACV,KhCuCA,KgCvCQ;A3BiChB,AmBpBwB,ASfhB,AGTR,AEAA,AIGY,E3CkDR,AIHQ,ACLR,AQpBY,AaRJ,ACEJ,AKVI,ACGA,ASVP,AnCiCG,ENgBA,O+B1CI,CNQA,EtBiCA,AsChDP,CpC0CW,AqBzBR,CpBgBA,CMVQ,AYxBX,AcED,CNSQ,ERXJ,CpB4CJ,CgC1CA,EHM8C,ASNI,ENA/C,GZFU,EYOT,GZPc,KxBkDd,AwBjCA,GzBmCJ,IyBnCU,KACF,MACI,IAAG,KAAK,MACJ,MAGK;AnBqBzB,AM7CA,AKCI,AuBAA,ACDJ,AGCI,E5CqDA,AIHQ,ACLR,AoBrBwB,ACPhB,AQyHZ,AGlIY,AELJ,AGDA,ACMR,UtCqCI,EmC7CC,ClC4CW,CM1CZ,CRgDQ,AoClDJ,ACCJ,EzCoDA,CYnDG,AceK,AQjBP,AGQO,AELJ,AGDA,CzBFH,A2BAA,EVAG,AMGA,CvBHA,A2BAA,GJGG,CIHC,ChCOJ,AKPK,C0BAT,IAAG,G1BgBC,CLQI,AaAgB,CkBvBpB,KAAI,G/BiCI,AKjBJ,E0BhBK,E1BgBF,MAAM,KAKL;AJvBhB,AceI,AKFI,ACHJ,AYVJ,EzC6DY,ACdR,AJMA,AKPA,AMVgB,AKZA,AQEQ,ACPhB,AadJ,ACAI,ACFJ,ACCA,AEFA,CXQD,CCAK,ASNI,KjBeG,EQTP,CDAK,CrB0BG,C2B/BZ,ACAI,AGDI,ChBWX,CdKD,CP0BA,CmBpBwB,AEXpB,AeXA,ErC2CJ,AYvBgB,AwBrBZ,CGDA,CxC2DI,CuBzCJ,GdCA,AaFI,GMPR,CnBSO,IoBXO,GpBYN,KAAI,AoBRR,EDDC,KnBaO,EAAC,AoBXL;AjC0CZ,AqCzDA,ASAA,EzCgDI,AQrBgB,AaJR,ACFA,AKPA,ACEI,AMVR,AEFA,AGDA,E3CmDA,IsChDA,EvCmDG,CgC3CC,ASVJ,GGDA,G/BwBY,EoBXJ,ENKJ,AmBpBR,CTEA,ChC6CA,AJMuB,EyB/Bf,CWpBL,KAKC,WpC8CsC,KoC5ClC,IAAG,gBpC4CwD,0BAA/D;AGtDR,AEiDA,AMjDA,AKyBoB,AQxBhB,AeAA,AEDJ,AKCI,E/CyDA,A0BlCQ,ACFI,AUXA,AINR,AKHA,E7CqDA,S0BjCQ,CarBX,ACIG,CxCkDW,A8CtDd,C3CkBD,AQhBA,CaFC,AeAG,EduBI,CdrBL,AaFC,AYUQ,ASTR,C7BDH,CyBKD,AKLQ,CPMJ,CvBNA,CjByDJ,A+CzDW,I3C0CP,AQnCA,AKPK,AQAI,CsBAG,I9CsDkB,AwBtDhB,GRgBd,CLQI,CaPJ,AsBjBqB,OtBiBf,CrB0BF,AQNI,AKpBJ,IAAG,AQCH,MRDS,AQEL,ExBmC+C,EwBnC5C,CRGH,IQHQ,IRKH,EQID,EAAC,KAAK,MxB0BlB,CwB1ByB;ApBsBjC,AQnDA,AmBkBQ,ACRJ,ACTA,AKDJ,AKIQ,AIJR,E5C6CgB,AEKZ,AMXgB,AKbI,AQIA,ACLZ,ACFQ,AUXJ,AGJJ,ACFJ,ACCH,AKLG,CdQD,ChC8CC,IoC5CQ,CVWI,CcjBJ,ACCH,ETGI,C7BmCD,A2C3CR,C1CiDO,EQ/BX,AYUoB,CpBqBN,AkC3Cd,ASPA,CdAC,EtBsCe,CsBtCZ,AKOD,ASPA,GROK,AIJsC,E/BiB1C,AmCnBA,C1CgDJ,AoC3CC,CDDG,CTWJ,AELI,CrBSG,GmClBC,CfOM,GpBYN,AaGA,CTCY,IJJR,AmBJP,ACJD,KhC0CA,EY3BQ,CqBhBJ,CDKA,UACI,IAAI,UAAS;AjC0C7B,AKTA,AyCpDA,E1C8CgB,AEKZ,AOrBgB,AcNR,AKLA,ACCQ,ACNJ,AGDA,AEJR,AEFA,ACCH,AE0KL,AG/KQ,ACCQ,E/CqDR,MoC5CQ,ELMJ,E5B2BI,ACMD,AkC3CP,AQNA,G1CiDU,AQtBE,AoBVA,CQbZ,ACCH,GIJD,EFHC,AIGW,CFAV,EnBoBM,AOVI,AUbR,CtCkDJ,CNWA,E4C7DQ,KAIA,I3CoDJ,S2CpDgB;AvCgDxB,AOrDA,AKyBoB,AQxBhB,ACmBQ,AcnBR,ExC8DI,AIhBQ,AShBI,AcNR,AOVI,AOPR,AKHA,ACDA,EHEQ,UvC+CD,AmCpDV,EpC8CW,AQ5CZ,CPkDc,AoBpDb,AeAG,AIKQ,AGFR,CDCA,CjC0BY,CD5Bb,AaFC,AEwBI,AcjBJ,CxBPH,EiBcW,AMLR,CvBTA,ASmB8C,C1B2C9C,EwCrDG,E5BFH,AKPK,AQAI,KAAK,AeSJ,GvBOV,CLQI,CaPJ,MeRoB,CfQd,CboBE,AKpBJ,IAAG,AQCH,MRDS,AQeL,IAAG,CRVH,MQUU,ERRL,CLeD,KKbI;AZ2BxB,ACAA,A0BtDA,ACUI,AIVJ,AEAA,ASAA,E/C2DI,AWlBoB,AKbI,AQMR,AC+CpB,AQjEgB,AMLJ,AONJ,CdKD,SAAU,E5B4CF,ECAE,AoB1Cb,CrB0Cc,AkC9Cd,ASPA,EvBiCgB,CbOI,CsBzBR,AKRT,ASPA,CXEH,CpByBwB,GoBzBrB,AEOC,ASRA,CtBaA,AcJI,ERWR,COZO,CFMH,EWVI,CfIM,CDYT,AKNE,OJFH,EcTA,OdaI,UAII,MAAK;A7BtBrB,ACuDA,AQvDA,Ac4BI,Ac5BJ,AKAA,ExCuDI,AMboB,AaPJ,AOZZ,ACAY,ACNJ,AGAJ,AENA,ACCA,AONJ,ACCQ,E/CqDR,AyBvCQ,KdqBQ,EsBzBR,CDMI,E5BgCL,AkC5CH,CZiBP,CvBTD,ASCA,AaCY,AsBdA,C3CgDE,A2BhCV,ASrBJ,ChBiCgB,EsB7BZ,CDCJ,E7CqDuB,CoC3Cf,ASVN,EjCcE,A2BTI,CCHJ,ErCkCA,AEYJ,AmC9CK,C5BYE,KiCdO,EjCeN,C4BbM,IxCmD4B,AYtC9B,KTwCJ,ESjCI,ETiCD,OS9BK,SZ4BmD,0BAA/D;AIJR,AYvDI,A2BAA,ExC8DY,AQpBQ,ACVA,AYGJ,AEPf,AOXW,AGAJ,AGLA,ACHA,AKFJ,ACDA,E9CsDA,OWlBgB,AmCpChB,G1CiDO,AoBpBK,ASlBJ,CjC2CG,EILD,AQvBM,AcJnB,CvBkCW,AiC7CJ,CSVJ,E7BPH,A2BAA,G3BAG,A2BAA,IJYI,AIZA,C3BAC,I2BQL,C3CoD8B,GgB5C9B,EwBPI,AGDC,Q3BSD,C2BTU,G3BSP,MAAM,EhB2C0C,GgBtC/C,QAQI,ehB8BZ;AKHR,A0B1DA,AC2BQ,AM3BR,ASaA,E5CsDgB,ACVZ,AOboB,AKZA,AuBlBZ,AIJA,AEDJ,ACDA,CdED,ChCoDC,QgCpDS,CrBkCO,EgClCZ,CvC+CR,ACCa,CFSD,AmC3DZ,CtBwBoB,A8BxBhB,GRAD,EOCC,GPIA,GPYJ,K1BiC+B,A2BhDjB,QAiBT,IhCmCD,EgClCI,AOdA;A3BdZ,AYwCQ,AC/BR,AQRI,AGDJ,AIAA,ErCoEgB,ACVZ,ACCA,AW1BoB,AePhB,ACGQ,AMfJ,ACCA,AMLJ,E7CqDA,Q6CrDA,EpBEJ,CrB8CA,CQtCA,AoBSY,CQ3BZ,CPDC,CFyBG,CfOgB,AsBnBZ,CnCsDI,A8BnER,AMcI,CHZR,EZqC8C,CnBmB9C,AoB5CI,CbMA,AwBlBD,CISC,EPSA,CrBAG,CwBLH,EHKG,CRKC,CWVD,ExBMC,CZyCJ,EyBrCS,EbJD,EwBHJ,IAAG,CxBiBC,EwBjBE,IHEe,EGDjB,IHCuB,IGDhB,MAAO,IAAG,OAAO;AzBpBxC,AgCeoB,AGfpB,E3CqEgB,AETZ,AOvBgB,AIHI,AQQR,ACfA,AQLJ,AGDQ,AIRR,AKFJ,S7BuBgB,IoBbJ,AUXhB,CnCPA,CCkCgB,AiC1BZ,C1C0DQ,CqBpEX,CbEE,A6BUK,CfcI,CD1BR,EnB2DJ,AsC7C0D,KhCPtD,EaPS,KAAK,CSqBV,CtBGA,GagBA,MbMI,AaLC;ApBmBjB,A2B7DA,AC+BY,AM/BZ,ACCI,AQcA,E/CkDA,AKJA,AMbgB,ACVA,AqBfR,AOTA,AGEY,AEJhB,ACDA,CdDD,CRiCa,QQjCH,E5BmDF,AmC5DV,GnC4DY,AoBlBG,AcnChB,ACPI,CMWA,CjC0BY,A4BxBR,C7BkCQ,C2BxCb,ElCqDiB,AmC5ChB,AIhBH,AGUG,CCIsC,C3C8CrB,ACArB,CiChDI,AKZA,CJgBG,ERQP,CYxBQ,EJiBA,EPRM,CWEV,KVWI,CFIJ,CCAC,AMZG,AKHE,ILGC,CKFH,CXkBC,KWjBI,eAEQ;AxChBzB,AC8DA,AY7DI,ASQJ,AWmBA,E/BkCI,AMbgB,AoBrBR,ACII,ACRJ,AKRI,ACGA,AOPR,ACQR,E/C8CQ,A2CjDoB,MhCgCR,CNahB,C2B9BY,E5B8BD,AqBlDX,AqBAI,E3COJ,CC2Ca,A2BlCL,AYXgB,GLDZ,CtBfX,EZ6DmB,AJIG,CgBjEnB,CZ6DiB,AqB/CjB,GcIQ,CpCwBR,Aa1CK,KS4BD,GTZJ,GSYS,EzBqC6B,AiC1ClC,K9BsCA,Aa5CA,Ib4CG,Aa5CA,MAAM,GboDL,Ea/CA,Ib+CK,CHJb,GgB9BY,EbkCO;ACP3B,AQ/DA,A4BAA,AKcI,E1CyDgB,AERhB,AMbgB,AKbI,AQQR,ACfA,AWDZ,AEZY,AQJR,E9CsDA,A+CnDA,ITCQ,G3BiCI,GPaL,CJII,CGIC,ASnDhB,CR2Ca,AoC7Db,EhBDC,AsBYG,CrBiBQ,CTOQ,A6BvBnB,CrBbG,CpB8DgB,AgClCpB,EhCkCqB,CQ1CjB,AmCLA,CPJA,EnCmDJ,CO1CO,CYpBM,GxBkEqB,AwCpD1B,EhBdU,CZqBV,C4BPG,GhB0BH,CZnBI,KYuBC,EZTD,UZ+BR,EY5BY;ARyBpB,A2BlCQ,ACHA,AC1BJ,AMsBA,EpCiDgB,AERhB,AMbgB,ACXI,AIFA,ASPR,AWDZ,AEZY,AEFA,AKDR,ACDA,CdJD,ChC0DC,AwBtBY,AuB7BZ,MtBcQ,AabA,ENRC,AIoBb,EhCkCW,AmCzCV,C5B4Be,ERqBA,ACRH,AQxBO,AYMJ,CRRI,AiBrCnB,GAAG,AaaA,E1CkDgB,AoChDR,AOCR,E3C+CiB,GCArB,C0BvCA,AECI,KDhBU,ODoBT,AcfD,CbYC,IhCyCD,EgClCI,8BACI;A5B8BhB,AuC5CgB,EtC4CZ,AW1BoB,ASPR,AMDJ,ACKQ,ACTR,AGIR,AGPI,ACPQ,ExCoDR,KiC1CW,ERKH,AcRC,EHOb,AGPI,CnCyCO,GAAE,A2BlCL,ASdI,IGhBX,EvCgEmB,A4B7BJ,CWnCZ,CvCgEiB,AY1BD,CiBZZ,EU1BA,CtCgER,IsCrDI,K3CyDA,E2CzDM,KACF,MAQK;AxCrBjB,ACkEA,AOlEA,ACAA,A0BAA,AOAA,ExCkEI,AW1BoB,AQQR,ASpBJ,AGIR,AGPI,ACPQ,AGII,WJGZ,CnCyCO,CCAX,CF/CA,AQhBA,AC4CA,CRmBa,AkC1Db,AKcgB,C3BkBI,AwBtBR,ChBjBX,CbEE,AyB6BH,CExBG,AOSH,CrBhBI,CpBiEgB,EAAC,CkC7CjB,GnCsBA,AQnCA,C2BaG,CdpBM,AqBgBH,EAAC,GrBhBO,EbwBV,GagBA,CSbA,K9BkCA,AQfI,AaCC,IrBcF,KQVK,IRsBJ,EQtBS;Ac3CzB,AMTA,ACyCY,E7BkCQ,ACRhB,AJIA,AKJA,AMdoB,ACLhB,AqBnBI,AGIR,AEXQ,AKCQ,AELZ,CbRD,CRuCa,ObII,CqB3CP,E3ByDb,AoBvDA,AWqBA,EhCkCA,CoBlBgB,GZDZ,A+BzBY,CxCoDA,GmCrDR,CbaJ,IMDJ,AchBI,IdgBD,CCxBW,KDwBL,AELD,GDWH,EDLD,KCMK;AhBxCT,AuBDJ,ACAA,EpCoEI,ACAA,AMdoB,ACLhB,AabI,AMAA,ACMI,ACZJ,AGIR,AEXQ,EtCiDJ,OoCtCJ,CJQY,EpBOR,AmBbI,AQTR,GCzBA,CFqBQ,CbaA,CrBgCR,CYnEC,EhBuEsB,CgBvEnB,GwBWA,ExBXK,EXmET,GmChDQ,EAAC,CxBHL,IhBuDA,AwCpDU,CPUN,EtBwBY,GKpCZ,IAAG,MAAM,KAKL,QAmBI;Ab1CpB,AwCwBoB,AExBpB,EzCqEI,ACAA,AOnBI,AIPgB,AQQR,AevBR,ACPQ,ExCoDR,IKJJ,OLIe,AgB9BK,CbxBpB,CCkDA,CmCzCI,Cf3BH,CZiDG,A4B7BQ,CKDZ,CrBnBI,EmBuBsD,KxCmBtD,EqB1CS,ExBwET,GwBxEc,KAwCV,MrBqBA,AqBXK,IrBWF,SAeC;AQtBQ,AcjBR,AMtChB,AC6CQ,AC5CJ,AKDJ,EnC8EoB,ACRhB,ACAA,AW1BoB,AwBtBR,AGGQ,AEJhB,CbXD,ChCgEC,AwBtBY,QQ1CH,CQYD,CfVZ,EdTA,CaiDgB,Ac5ChB,CnCsEgB,A8B7Ef,EtBEE,AKyCiB,CiB3ChB,AKOD,ElC8DH,AuCrEC,CtCqED,CoBnCI,CadA,AKpBA,AEoBA,GlCbA,AoB0BJ,AERI,CKLG,AKpBC,GZiCL,CCxBW,CWEV,ClByBI,EdZA,CoBSC,AOVD,GNqBH,AWjCK,CLYC,CPWP,E/BuCA,AiC3CI,AKPM,C3BuBF,AgClCJ,KlByBK,AabD,CKJC,EZgBL,CpBeQ,I2B3BG,CPYN,CpBeQ,AgC3BA,ILAK,G3B8BL,C2B9BQ,OAAO;A1BzBxC,AqBCI,AMDJ,EpC+EoB,ACRhB,AOfwB,AKXJ,ASNJ,AMDJ,ACQJ,AMpBQ,AEHJ,ExCoDR,A2CjDoB,MvC6CxB,AY1BoB,CgBCH,EDRL,ACQJ,CPPQ,AcZhB,CDDgB,C1BqBhB,C4BxBY,AGGY,CVzBvB,E9B8Ee,C8B9EZ,CM4BA,E3BsBA,GDKoB,EsB9BpB,CrByBK,QZwBL,QiC3CI;A5ByCZ,AwCzEA,EjCoDY,AINY,AQ0CxB,AQzCY,ACdI,AMHJ,ACNI,SxBsBQ,GuBhBZ,CNGI,C5BwCC,GOrBL,AYnDP,CQ8CO,CaxBR,CrBtBI,CgBuBQ,EKDT,KAAM,CrBtBI,GnBwEkB,EmBxEb,KAsDV,InBkBiC,GmBlB3B,KACF,MACI,IAAG,OACC,IAAG;ArB1D3B,AC0EA,AObY,AcpDZ,AMgCQ,E1BiCJ,A2B1BQ,ACdI,AMHJ,ACNI,AGGQ,AEJhB,ErBmCoB,OnBexB,E2B1BQ,C5B0BG,AqB9BX,AQVY,E9BfZ,AQhBA,AawDwB,CpBeX,GOvEV,EkCqBC,CzCkDgB,AuCzEnB,CHwBW,CpCiDS,CuCzEjB,GxC0CA,AQnCA,AoB0BJ,CYjCQ,CJ8BA,CnC2CqB,C2BxC1B,EYtBC,GhCiDK,CoB3BA,GYtBC,EZ6BL,G5BqBG,AwCjDA,IxCiDG,EwCzCE,CZqBL,M5BmCI,EwCjDS,GZeT,MAAK,I5BqCD,IAAG,KAAK;ACL5B,AJIA,AYzBQ,AIrDJ,EbgFoB,AENpB,AMbY,AcAR,AMlBY,ACKR,ACdI,EUNY,IXoBhB,ChC8BH,CKJL,IDAW,C2B/BK,CnBGhB,CR4Ba,AuC9CW,GxCoDJ,AsBnBhB,CT7DH,EZ0EmB,CQrBf,AIrDD,CZ0EiB,EObT,EK7DH,GZ0EoB,KY1DzB,EiBkBQ,QjBjBJ,IAAG,MAAM,KA+BL,IAAG,SAAS;AZ2B5B,AoC5EA,ErCkFwB,AHFpB,AYzBQ,AILQ,AQcR,AQdA,OAAA,C7BgCY,CS3BH,EAAT,CRqBG,GAAE,AoC1Eb,EhBDC,CRiDe,EQjDZ,CpB2EgB,EAAC,EoChDjB,IhB3BS,AgB2BN,CpCgDsB,IoB3EX,ExB+ElB,GwBhBS,aACG;ApBYhB,AOdgB,ActDhB,AMgCQ,AExCJ,E9BkFoB,AHFpB,AYzBQ,AoBLA,AQtBA,EhBqCQ,OQfR,E7BgCY,AS3BZ,CRqBG,AqBjCX,EdzCA,CP0Ea,AoBXG,CSjEf,AO4BO,E7B1BL,CsBFC,E7B4EgB,CqBhChB,CrBgCiB,IOrEjB,AoB0BJ,AERI,CjCuDJ,EIJ6B,C2B3C1B,KpB2BM,CoB3BA,KAOJ,CpBsBQ,CsB1BL,QFKA,WAII,MAAK;A3BgCrB,ACGA,AWhFI,A2BoBY,E3C6DZ,AWlBgB,AclBR,AMCQ,ACKR,ACdI,AORJ,U7BkCQ,EPcL,A2B/BK,E1BkCH,CDHA,CoChDL,CPQI,CRQJ,CT7CP,AgBmDO,AWnDP,EvC6EmB,CY7EhB,A2BAA,CvC6EiB,GuC7Eb,C3BAC,ChBiFT,EIJ6B,CuClEzB,I3BKA,G2BLM,KACF,E3BKA,IAAG,A2BGE,M3BHI,G2BcD,E3BiBJ,IAAG,C2BhBK,IAAG,I3BgBC,KAER,A2BlBgB,M3BkBX;AbnDzB,AC+EA,ACGA,AOlFA,EZmFI,AgB/BoB,AQYZ,ACjBA,AOMA,AQtBA,AGGgB,MAAA,EXmBhB,CPNA,GrBgCG,ED5DX,AE+Da,AOnCb,CRgCa,CY3BO,CQnDnB,GxBkFD,AwBlFI,CpB8EgB,CQrBhB,CRqBiB,IDpCjB,EqB1CS,CpB8EgB,ECGE,EmBjFb,KA+DT,MrBuBD,OqBnBI,CgBrCJ;A7BoCA,AsBlER,E9BuFY,ACRZ,ACGA,AOxBQ,AINY,ASLZ,AOMA,AWnBgB,EnBkCR,MmBlCQ,GlBahB,CpBmCR,AOxBQ,EDxDR,CRqFY,AqBnBI,CRhBI,AiBpDnB,EtBEE,CsBFC,E7B+EJ,MOxEI,AsBiCA,IAAG,GDaC,ErBaC;AXmBb,AwCtFA,ErCyFgB,AELZ,AMhBY,AKdQ,AgBCZ,ACbA,AUNgB,StCgDxB,AMhBqB,CgChCG,CxCqDZ,AQrBA,I6BlEZ,EPwCQ,EjBYY,MwB1BhB,CR2BI,GQ3BD,KAIC;ApCmDZ,AQnFA,AaSA,EzB8EI,AKFA,AMhBY,AaLJ,AQRA,AQvBI,UnCoDZ,EDFW,AqBvCX,EbGA,CRoCc,EoBlFb,CxBsFD,AWlBY,A6BpCA,EhBhCR,EZyDA,AabA,OD5CS,EZ2DL,EoBJA,CRvDU,GZ2DL,EYIJ,ECfD,EbWW,SYWP,OAAM,KACF,MACI,IAAG,OACC,IAAG;ArB1E/B,ACoFA,AYnFI,AiBAA,AUsCgB,EtC+ChB,AMhBY,ACTA,AaXA,AOOJ,AQvBI,EhByCgB,SbLhB,AcpBA,CrBkCD,AQvBC,ET1CZ,CCiEc,CoBTc,AS1E3B,AOiCW,EnCoDZ,CWrFC,AiBAG,AUAH,G3BAG,A2BAA,GXwDI,CWxDA,CxC0CJ,Aa1CK,AiBwCL,IAAG,AU7BH,I3BKA,EiB0BI,CU/BE,CV+BD,IU9BD,CV8BM,C9B4CN,AarEA,IAAG,A2BGE,IxCqED,EaxEK,EbwEF,CwCnDE,E3BUL,C2BVQ,G3BUL,SAAS,KAER,MAAK,KAID;AZ8BxB,AJKA,EGCoB,AEJhB,AMhBY,ACTA,AINY,ASLZ,AOOJ,ACdI,AUDQ,EnBiCQ,IxBcxB,GGCY,AQpBJ,AcpBA,CQPA,C5B2CZ,CDFW,CuC1CS,C3BaI,CZ6BV,CQvBF,qBYcgB,OQlBpB;A5B4BZ,AoCtFA,ErC4FoB,AHDhB,AWnBY,AKfY,AgBEhB,ACdI,AUDQ,UhC4BR,EPcD,GAAG,AoCpFd,EG0CoB,C3C+CpB,CgBlCwB,CiBZZ,KOjBR,IAAG,KAIC,ER2BA,M7BiCQ,AqCzDJ,QAAO;ApCoDvB,ACGA,AO3BgB,AatDhB,EzBmFI,AWnBY,AKfY,AQMhB,AgB5BQ,AGSI,Q3C+CpB,EwCxDgB,C7BqCJ,CPcD,AqB3CX,EpB8Ca,AO3Cb,CRwCc,CY7BU,CQzDvB,AmB4CmB,GnB5ChB,EZyDA,AabA,OD5CS,EZ2DL,GY3DU,GZ2DL,EYIJ,ECfD,EbWW,OAGN,EYQD,CCnBA,MDmBM,KASF;ArBaA,ACLpB,A4BxBY,AC/DR,EjC4FA,AKFA,AMjBY,ACVI,AILQ,ASNR,ED4BI,OxBYpB,EyBxCgB,CrBmCL,EDrEX,CCqEc,AoBPM,CShFnB,GtByEW,AsBzER,GD+D8C,ChBL1B,EXgCxB,EFhDI,A8BFA,IAAG,MAMC,Q9BwCA,QAGI,IAAG,OAGE,wBS7BD;ARyBpB,AoCnDgB,AGEQ,ExCsDA,AHApB,AWnBY,AKfY,ASNR,AOwCpB,AC9CgB,QtB2BA,IPcD,A6BzCC,G7ByCE,AoCvFd,CxB0DwB,KhBkCxB,AgChCA,CPRgB,AkBd8C,GxCsD1C,AqClEhB,IAAG,GRmCH,EQ/BI,QAMK,ERyBG;A5B2BpB,ACIA,AO9FA,EZ+FI,AWnBY,AcrBI,AQNJ,AOVI,AG2IpB,EXjHgB,ShC8BZ,AiC9CY,C7ByCD,AqBnCK,EpBuCH,AO/Cb,CR2Cc,MuCzFb,C/ByDG,E+BzDA,CXgEQ,GWhEJ,EHsCQ,C5BqBR,CPkCuB,CsClF3B,ChCgEQ,GChBC,G+BhDH,G/BgDS,E+B/CX,K/BqDI,C+B7CC,G/B6CE,M+B3BE,GAAG;AxC0DR,ACNhB,AY7BwB,EhBkCpB,AKDA,AMlBY,ACVI,AqBjBJ,EUTY,UvCkDb,AJKX,EKDA,CDJc,AuClDU,E/B0BR,EIlEf,GbgGqD,AahGlD,IL4EQ,CK5EH,QAgBL,EiBiCQ,QjBhCJ,IAAG,MAAM,KA+BL,IAAG,SAAS,KAER,MAAK,KAWA;AZ8BzB,AqBnFA,AegCgB,ErCqKhB,AH7GI,AKDA,AMlBY,AKfY,AiBZZ,SAAA,EjBYY,CZ6Bb,ACIX,AoBpDA,GrBgDc,AoC1Fd,CrCiBA,EH8EA,IyBpDI,GejBA,IrCeA,AqCfG,I7BkDK,C6B9CJ,OfiBA,CeRK,KrC8CL,MsB9BI;ArBoChB,AQzBoB,AoBpEpB,EhCkGI,AKDA,AMlBY,AcrBI,AQNJ,AOVI,ErCwDA,KEDhB,ELCS,EAAT,CGAgB,ACLL,CqBnCK,CbXhB,CR8Cc,A6BzCF,IDUZ,GpBJI,GDqBQ,KqBXR,AQ1BY,C5BkBR,MAAK,MAAM,IoBSX,GpBHI,EoBGA,EpBHG,KAEE;AR0BrB,AY7BwB,A2B1BJ,E3C4DhB,AKDA,AMlBY,ACXQ,AoBCR,ACjBA,M5B6CZ,ILCA,AiC9CY,E7ByCD,GAAG,A4BxBF,GpBDQ,CIpEnB,A2BAA,G3BAG,A2BAA,IAAI,C3BAC,I2BWL,I3BKA,G2BLM,KACF,ChCmEI,CK9DJ,IAAG,A2BGE,M3BHI,G2BqBA,E3BUL,C2BVQ,G3BUL,M2BHK,G3BGI,C2BHD,I3BKP,MAAK,KAcA;ASxDzB,AemCgB,EpCmDZ,AJKA,AKDA,AMlBY,ACXQ,AIJI,AiBZZ,AUPY,S/BuBJ,EP6BpB,CoBnCA,Ge9DA,CG6CwB,C3BmBA,CZ6BxB,EJKA,KwCxEI,IAAG,KAIC,E7BiDI,M6BrCC,SPUD;A9BtDhB,A6ByEgB,EPRR,AQVQ,AOVI,crC1BhB,CsB8CI,CQVQ,MDkB0C,K7B9BlD,EqCEY,gBrCwDR;ACHZ,ACIA,AMlBgB,ACZI,AIPI,A2B1BJ,ExC+DJ,AsBpCR,AO4BR,ACtCgB,AOVI,SrCwDJ,GCJD,AqBhCP,EpBoCS,AMnGb,AC4CA,AqBSY,ItBrDT,A6B2Ca,CxB7Cf,A2BAA,EX6DD,CpBJI,AIzDA,A2BAA,IAAI,ChCOJ,AKPK,IJ2DD,A+BhDJ,CtC0F0B,A2BlC1B,GhBnDA,CLkEK,CCvBI,C+BhDH,K/BgDS,A+B/CX,E3BKA,CLiEW,GACN,AKlEF,AgBsDH,AWnDK,C/B6CD,IAAG,CIhDE,G2BqBA,C/BiCA,CIvBL,C2BVQ,G3BUL,M2BAK,G3BAI,G2BCA,E3BCR,MAAK,A2BAO,IAAG,C3BcV,OAEG;AhBuC5B,EIPI,ACIA,AMlBgB,ACZI,AILQ,ASDxB,AQVQ,AULoB,EXsBhB,O3B6BhB,AMlBgB,AclBZ,AkBf4B,G3BgBJ,EZ+B5B,IQ1BoB,AoBCJ,EhCgCE,IiCjDN;A9BzDhB,AqCAA,EpCoGI,AJOA,AKHA,AO9BoB,AaNhB,AQVQ,EDiBI,OpBDI,CaNhB,EpBoCJ,EFrFA,CCiFA,AoClGA,CPwDY,GDiBI,MQzBZ,ErCPA,UHgEJ,QGHQ;AQxGZ,AKuEwB,A2BhCJ,ExCkEJ,AEAZ,AoBpCI,AQVQ,AORJ,OnCsDR,AoBpCW,KtBoCC,A8B9CA,EtB+BZ,KKzFC,AwBkDO,AGlDP,G3BAG,A2BAA,ElBoEA,EkBpEI,C3BAC,I2BWL,I3BKA,G2BLM,KACF,E3BKA,IAAG,A2BGE,M3BHI,G2BqBA,E3BUL,C2BVQ,G3BUL,M2BAK,G3BAI,G2BCA,E3BCR,MAAK,A2BAO,IAAG,C3BoBV,M2BlBW,EAAC;AvCkDrC,AJOA,AY9GA,EP0GI,AMfI,AKlBoB,AiBbZ,AORJ,AGE4B,SAAA,EtCoDpC,CDHW,EQvBX,EDWI,A6BvCI,IxC0DU,AY9Bb,MqBpBO,ErBqBR,OZ6B6B,EY5BzB,KITgB;AbzE5B,AsBsEQ,AOtER,E5BwGI,AJOA,AY5BY,AqBtBA,AORJ,crCwDR,E8BhDY,GDCZ,EpBqBY,CabkC,CejBtC,OR0BJ,E5ByBJ,kBJOA;AKFJ,AM7GA,AK2EwB,A2BbJ,ExCgDZ,ACLJ,AJOA,AY5BY,AaHhB,AODY,AClBI,AORJ,cpCmDR,ACIa,AMhBb,Ac7BA,EboBY,A4B9BJ,ErCwDJ,A6B9BI,ChB/EP,GAAG,A2B6DsD,K3B7DjD,KX4GqB,GW5F1B,EiB6CQ,KjCkDZ,GgB9FQ,IAAG,MAAM,KA+BL,IAAG,SAAS,KAER,MAAK,KAwBA;EboCjB,ACLJ,ACIA,AMhBI,AKlBoB,AgBKhB,AClBI,AUmHhB,ElB3GY,ItBwCJ,E6B9BI,I3B6BR,EoBvCQ,CrBmCR,COZI,KgC7FH,E3B2EuB,C2B3EpB,IAAI,KAWJ,OVmDQ,AUnDF,KACF,MAgDK;A3CsDjB,AYnHA,A4BAA,ErCgHQ,AEDJ,A2B7BQ,EWnBY,MxCiDhB,AEDJ,C2B7BQ,KpBFR,C4B9EA,K5B8EK,A+BjBe,KHNhB,G5BwBA,SAKI,E4B5BA,E5B4BG,E4B5BA,KACC,EAAC;ApCkDjB,AO7GA,AKCI,AiBDJ,E9BiHQ,AHGJ,AKJA,AOzBY,AoBJJ,AQvBQ,EGII,ItCgDpB,EFCI,ICJO,C4B1BH,CrBaR,EsB7BA,ErBoBY,A4B3BI,CxB3Df,E2B+DmB,C3B/DhB,KAAK,QAgBL,UAgEI,IAAG,SAAS,KAAK;ASxE7B,EtB0GQ,ACLJ,ACGA,AMhBI,ACTQ,AINA,AiBdR,EjCiDA,OGFA,AS3BQ,EPyBZ,CLII,AyBrDJ,CTkBY,EZ4BZ,GObI,AsB7BA,6BRKA;AOzER,AQ6DoB,ErCuDZ,AS3BQ,AINA,ASTJ,EzB4CJ,QY7BQ,KINA,AwBjFZ,CrCkHI,EsB1CI,COZR,EhCwDuB,IwC7DnB,KRsBA,SAKI,AQ1BA,ExC4DJ,EwC5DO,ER0BE,GQzBD,EAAC,KAEI,MACG;ApCmDxB,ACGA,AMpHA,AsBAA,AUCI,ExCoHI,AajCQ,ASTJ,AOUI,AQtBY,ExCwDpB,OyB5CI,AOUI,G5B4BD,CJMI,CKHF,AMpBb,EKZY,AiBdZ,C9B+CI,EwCpHH,CVqEE,COPqB,CG9DpB,EhCiGA,EgCjGI,GVqEI,EU1DR,CtCwG0B,CLG1B,CiCjDa,IU1DP,GtCwG8B,EsChDhC,IAAG,OACC;A/BrEhB,ETsHQ,ACJJ,ACGA,AMlBQ,AcvBA,AOUI,ACfR,AUDY,OlBMR,IpByCR,AsC/CgB,CVCZ,ErBsBJ,CRqBA,GOfQ,ERmBJ,sB6BhCQ;AhBrFZ,AwBDJ,ExCyHI,AKHA,AMlBQ,ACNJ,AajBI,AkBNQ,QtC+ChB,GMlBQ,AcvBA,Ie3ER,C5B4FI,GI7FH,GAAG,GwBwDA,ExBxDK,QAgBL,A2BsDY,IHHR,MxBaA,IAAG,SAAS,KAAK,SAIb,MAAK;AbrFrB,ACqHA,A4B9BgB,ACvFhB,EtBqGY,AKfQ,AwBjBJ,ExCqDR,OWrBI,GPgBG,AJKP,CwCrDQ,CrCwCZ,EavBgB,AiBhBhB,GDRA,CCQG,SAAS,CDSR,G7BwCA,C8BjDa,KDcT,CCZJ,EAAC,C9BgDG,E6BpCK,E7BoCF,A8B/CH,IAAG,CDcE,E7BiCK;AECtB,AOzHA,A+BCI,ExCwHY,ACHZ,AY/BgB,AgBCA,ACdJ,AOJA,ExCqDR,SiCjDQ,G9B+CA,AEAC,AO5Bb,CRyBA,GoChDY,CxBiBI,A2BtFf,E3C0HsB,CY5BnB,A+B9FA,GXuFY,CWvFR,KAWJ,CtC6G0B,KLE1B,C2C/GM,GtC6G8B,EsCrDhC,IAAG,OAKC,EAAC,OAAO;AhCzExB,ER0HgB,AEAZ,AO1BQ,AqBrBI,AOJA,AGGI,E3CkDZ,OGFQ,AEAZ,EmCnDY,ExCqDG,A2ClDC,ChCsBhB,CCAQ,SDEJ,CsBvBQ,MjCiDR,8BWtBI;APmBZ,AYxHI,EX0HA,AMpBY,A6B/BA,AGGI,QHHJ,EnCmDZ,EDFW,MOlBC,AgC5BI,C3B1Ef,GAAG,KAAK,QAgBL,UAgEI,IAAG,SAAS,KAAK,SAIb,MAAK,KAGD;AbxFpB,ASAA,AqBoFY,E7BsCR,AOlBY,AKfQ,A2BbJ,QAAA,ChC4BJ,KRKZ,ACaA,AQ7BA,AIJoB,QJShB,AqBd8C,W9BmC9C,UAKI,SACI;AHGhB,AKFA,AmC9HA,ErC8HoB,ACHhB,AOlBY,ACNJ,AITY,AiBiDxB,AU9DoB,OhC4BJ,GgC5BI,ItCiDH,CDHb,AoCzHA,CrC4HgB,A8B5ChB,ErBiBQ,CITY,MwBfhB,IPQC,G5B2C0B,SmCnDZ,KPUP;E9B0CI,AHEhB,AKFA,AMrBY,ACNJ,AITY,AwBfZ,EPUQ,StBoBJ,GsBpBI,CrBcR,CP2BR,AWpCoB,EboCJ,OqCnDR;ApCkDZ,AuC7CQ,E/BoBI,AITY,EhBsChB,UIJO,AJIP,EY7BI,Q+BpBsC,C3BW1B;AboCJ,ACDpB,ACGA,AMlIA,A6B+EI,ExBcoB,A2BqFxB,E3C/CQ,UIJO,EDlBX,AEqBa,AMlCb,C6BjBC,CxBcmB,EwBdhB,GxCoDmB,A2ClItB,EH8EQ,C7BmBL,AgCjGA,IAAI,ItCiIuB,CFX3B,QHYA,EGPI,SACI,SQjBJ,MRoBS;ACArB,AQhIA,AqB6FA,E9BoCwB,AEEpB,AMtBY,A6B7BR,ExCoDA,A2ClDI,UvC8CG,CJII,CYvCf,EToCoB,CwC/CZ,ChC2BI,ICNR,GP4BJ,AmCnDI,QxCoDA;AIHR,AYlCoB,EbmCI,AQpBR,ACNJ,AqBVR,AObI,O7B6BQ,KPmBD,AQzBH,A4BvBJ,IrCiDgB,GajInB,GAAG,IiB6FJ,CjB7FS,QAgBL,UAgEI,IAAG,SAAS,KAAK,SAIb,MAAK,KAUA;AZmCrB,ACIA,EFHwB,AHGpB,AWvBY,AKfQ,AiBDpB,WjBCoB,CZkCT,AOnBC,ENuBC,MFHO,E8BpCpB,U5BuC+B;ADHnC,ACIA,AOvIA,A4B+EI,AG9EA,EhC+GY,AsBhBZ,EjCuCI,SWvBQ,CPmBD,AJIP,EKAS,AO1Cb,C4BdC,GAAG,CG9EH,G/BsGG,A+BtGA,CV+FJ,AOjBS,GG9ED,I/BwGA,C4BvBJ,AGEA,CtCmD2B,EO9BpB,C+BrBJ,MAAM,G/BqBQ;ATzGzB,ACoIA,ACIA,AWtCoB,EJQJ,AqBTZ,AOdQ,AGEA,E3CmDJ,UIJO,AQ1BC,ETGZ,AE2Ba,E4BvCb,AUZQ,G3BpFP,EhBuIsB,CgBvInB,EwBkFI,GxBlFC,KXuIsB,CFjB3B,EatGA,EhBuHA,MGZI,Ea3CA,IAAG,GbqDC,MarDQ,KAAK,SAIb,MAAK,KAaA;ALlGrB,ERuIoB,ACFhB,ACIA,AWtCoB,AiBDpB,EjCuCI,QiCvCJ,G9BqCgB,AHED,CIJf,AOrCA,GKGoB,OLDhB,ENuCJ,KLAI,8BW7BI,mBAKI;ACNA,A4B5BZ,AGWQ,ExC8CQ,AEEhB,AMxBgB,AsBfhB,SAAA,EtBegB,CRsBA,ES3ChB,C4BdC,GAAG,I5BwBA,A+Bb8C,CtCgDlD,AmC3DS,O5B0BD,C4BpBJ,G5BoBO,UAAU,SAER;AR6BjB,AYtCoB,EbwCA,AEChB,AMxBgB,ACPA,AqBRhB,AOgBQ,AG8DZ,ShC/DoB,GPqBL,KoCpBH,CrCsBQ,AEChB,A4BvCA,CjBnGC,E2BuFD,C3BvFI,KAAK,MJ2GO,EI3FZ,C2BwEC,GAAG,M3BRA,IAAG,SAAS,KAAK,SAIb,MAAK,KAaA,OAEG;AhByCxB,EGFoB,ACFhB,AYpCwB,AwBgBhB,EG1BI,OxCgDI,GatCQ,IZoCxB,EuC9CY,gBH0BJ;AnCyBZ,AM9IA,ACgHQ,AqBnBR,E9B+CoB,ACFhB,AJIA,E2ClDY,MxCgDI,IHEhB,EKAa,AM9Cb,ACHA,CR6CA,CuC9CY,IVSZ,ErBWK,EDdD,QN4C2B,6BMlCvB,mBAKI,YAGI;AKZA,AwBzBhB,ErC8DgB,AHEhB,AKAA,AM1BoB,ACJZ,E+BpBI,KxCgDI,ES5BC,EDIG,ACJZ,EZ8BR,EwChEC,GAAG,CxB9EH,C2B4FW,E3B5FR,CwB8EK,EnCgET,EW9IS,IwBoFL,IxBpEA,QwBqEI,ExBLA,IAAG,SAAS,KAAK,SAIb,MAAK,KAmBA;AZqCrB,EDCoB,AHEhB,AW1BoB,ACJZ,AIRY,AiBHhB,AOhBQ,EGOA,S/BoBJ,CR2BG,GAAE,C6BtCT,E9BuCY,GHEhB,CW1BoB,AgCxBR,OHPA,axBmBQ;AXwCxB,EFHoB,ACDhB,AJGA,AW1BoB,ACJZ,A4B3BI,Y7B+BQ,EPuBpB,ACIa,AO/BL,ET4BQ,MHEhB,UKC+B,UmC1DnB,EnC0D8B;AWjJ1C,AiB4FJ,E9BmDoB,ACDhB,AJGA,AKCA,AmC1DY,AGMA,SvCgDH,EAAT,IoCtDY,GrCuDsB,Ca/IjC,CiBwGD,CUjBA,C3BvFI,CiBwGF,CjCyCF,CKCA,EWlJS,QA+GL,C2BvBC,GAAG,SAMK,KAAK,iCxCiDF;AQhJpB,ACAA,ETiJoB,AahCR,AiBPJ,AOhBQ,EGMI,QAAA,EHNJ,E7BMZ,ACsBA,EqBZI,E9BuC8B,AahC1B,EJKH,IDpBD,qCAUI,mBAKI,GRgCI,SQxBA;APyBpB,ACIA,EFJoB,AQxBI,ACHhB,AILI,AiBPJ,AOhBQ,WxBuBJ,CZgCG,AoCvDC,C7B+BQ,CN4BP,CDJA,GDAqB,S8BvC9B,ErBYA,GP+B0B,iBAAkB,gCFJhC;EACA,ACAhB,ACIA,AWpCQ,AiBPJ,AOhBQ,YxBuBJ,CwBvBI,CpCuDZ,IDAkC,OEIlC,G4B3CI,kD9BuCY;ASnJpB,A+ByFQ,EvC2DJ,AYhCQ,AwBvBI,OxBuBJ,IZgCR,GQ9BA,E4BzBY,GGLZ,C/B8BK,KAED,S+B/BC,GAAG,SAUA,QACI;AxCiDA,A8BxDhB,E7BwDI,AQ5BQ,AIJA,AwBvBI,AGOI,SvCgDP,AYhCD,EZgCR,EuChDgB,CxCQhB,ISYQ,A4B3BI,EPgBZ,GAAE,U9BSE,UAKI,SAyBK,MACG;AEOpB,EFNwB,AajCZ,AiBPJ,c9BwCgB,AEMP,WWvCL,KiBPJ,E5B8C0B;ADLlC,AQ5BoB,A4B7BJ,AGNR,EtCqEJ,A4B9CI,W5B8CJ,CDNW,EQlCX,C4BvCC,GAAG,CGSJ,C/B8BK,G4BvCI,E5ByCL,MqBRA,AO3BA,G5BqCK,A+BjCJ,GAAG,I/BkCI,E4BrCJ,GGkBA,KHTK,C5B4BU,OAAM,KACZ;ATiCjB,Aa5JA,EZwJA,ACMA,AOlCoB,A4B7BJ,AGSJ,WvCgDZ,KQ5BoB,CPkCpB,CsCtDY,C3BxGX,Gb4JyC,Aa5JtC,KAAK,IwB+FO,IxBgBZ,YAOI,IAAG;AiB1Bf,E9BiHA,ACpDI,AQ5BoB,AINR,A2BdA,UvCgDZ,EYlCY,C2BdA,GxCoDR,AShCgB,IqBZpB,GAAE;A5BgDN,A4BrEA,AOKgB,EpCyDZ,AQ5BoB,AINR,A2BdA,ExCoDJ,OwCpDI,KvCgDZ,ACOa,CFHL,AqChFP,CxB0CW,EwB1CR,E5BgDgB,AqBZpB,GOpCS,QAML,CnC6E0B,WmC5EtB,QAYK;EpC0Db,ACOA,AWzCY,AiBNR,AOjBY,AGSJ,UtCuDZ,KsCvDY,UvCgDZ,AYlCY,AiBNR,MOjBY;A5BnGpB,ET8MA,ACjDI,ACOA,AsCvDY,OAAA,EvCgDZ,KQvCA,ET2CI,AEGJ,IO9CK,KAED,SAWI,SAAO;AIPC,AiB/BpB,AOQgB,E5B+BA,A+BtBA,ExCoDJ,SS9Be,C+BtBX,GH/BX,ErCmFO,CqCnFJ,CxB9EH,CiBqHD,EjBrHI,AiBqHH,COvCQ,IxB9EA,CJmIG,G4B/CR,IxB2BA,QwB1BI,IxBiCA,IAAG,AwBlBE,KxBsBD,QACK;AZoCrB,ACOA,EW1CwB,AiBNhB,AOjBY,ErC6DR,OAAA,GCHG,ECOE,C4BhDT,GjBMgB,awBvBJ,CnCiEc,SAAU;AOvK5C,A+BgHoB,EvCiDhB,ACOA,AW1CoB,EbsCZ,QAAA,EatCY,EJRpB,CPkDA,IsChFA,C/B8BK,KAED,GRyCJ,MQ3BQ,A+B7CH,GAAG,Q/B6CW,C+B9BX,M/B8BiB,U+BvBb,MACK;AVnBrB,AOYoB,EpCyDhB,AQ3BY,AIRQ,A2BdA,ExCoDZ,MwCpDY,GxCoDZ,IqCtFP,CxBgDmB,EJQR,A4BxDR,EP0CJ,G7ByCA,A6BzCE,AO1CO,QAML,UPqCA,EOpCI,QAkBK,MACI;AnCkErB,EOnCgB,AqBbJ,AOjBY,AGQA,ExCoDZ,SAAA,AwCpDY,CVSZ,E5BgDK,AmCjEO,C5B8BR,iBPmCkB,SAAU;ADN5C,AYrCwB,EX4CpB,AOnCY,ET8BJ,UCFG,ICOX,AOnCY,CR4BG,EYpKd,GAAG,GbsKI,EatKC,QA+GL,YAOI,IAAG,KAIC,QACK,WAII;AZsCzB,A6BzCQ,AOjBY,AGQA,E/BsBJ,AITY,EbuChB,MavCgB,IZqCb,GoCvFV,C5B2DW,CR4BG,CoCvFX,CGSJ,CViCA,GAAE,AO1CO,GrCyFD,KqCnFJ,GGIC,GAAG,IVoCH,EOvCG,GGkBA,CVqBI,IOrBC,MAII,KGGL,MAKK,iBAAiB;AvCmDtC,A6BzCQ,ErBaQ,A4B9BQ,AGQA,QAAA,IvCkDT,EoC1DS,GpC0DL,CQ5BH,EqBlBZ,GAAE,M7B8C0B,Y6BzCvB,OAAQ;A7B0CjB,ACUA,AWtDoB,EbkFpB,A8B/EY,Y7ByCG,A6BzCH,E5BmDK,EFjBT,CCOW,EYvKd,GAAG,KAAK,KXiLqB,GFTtB,AazDJ,MXkEmC,MW3D/B,IbmDI,AanDD,IbmDI,Ca/CH,Kb+CS,GEQ0C,AWtD9C,Kb8CY,MavCT,EbuCiB,QavCR,EbuCkB,KAAK,QAAQ;ACDhE,AQ7BgB,A4B7BI,AGQA,EtC4DhB,AW/CwB,EbuCR,SEQhB,CDVW,EQnDX,C4BvCC,ErC4Fe,ACFD,CYrCS,AwBrDpB,CGSJ,C/B8BK,G4BvCI,E5ByCL,M4BnCA,G5BiDI,A+B7CH,GAAG,MHHA,E5BgDW,C+B9BX,KHAK,C5B8BY,KAMZ,A4B7BI,KGAL,C/B8BI,K+BtBC,cAAc;AvCmDnC,A6BtCA,ErBUwB,AITI,AwBrBJ,AGQA,ExCoDJ,MwCpDI,E3BaI,EZqCb,EQ5BS,A4B9BA,GpC0DL,CDEC;ACDpB,ACWA,EWhD4B,AiBDxB,SjBCwB,GZqCb,ECWE,GDXE,C6BtCf,c5BiD8B,SAAS,uBAAwB;AOtLnE,A4B+EI,AG4CY,ExCmFhB,AClCI,ACWA,A4BjDA,SAAA,C5BiDA,GDXA,CQtDA,C4BvCC,CrCiGG,EqCjGA,E5BuCC,E+BKiD,CH5C7C,E5ByCL,M4BnCA,GrC4FI,AS3CA,S4BhBA,E5BgBW,C4BhBT,GAAG,G5BgBY,KAWb;ER4BZ,AQ3BgB,AqBXhB,AOhBY,AG2DhB,ExCAgB,OqC3DA,CPgBZ,GrBWgB,CR2BhB,OuCrFA,ExC0FY,awCzFP,GAAG,SAeA;AtCkFZ,EOvCoB,AqBXhB,EUZgB,U/BuBA,EPuCH,C4BlDb,AUZgB,iBtC8Dc,SAAS,uBAAwB;ADVnE,AoCjGI,EnC4GA,AOvCgB,AqBXhB,W5BkDA,CDXW,EAAC,CoCjGX,CP0DD,EO1DI,KAAK,GpCiGgB,KoC3FrB,K5B+DY,O4B9BR,GAAE,GAAG,OAED;ArCxHhB,ACiLA,EQ5BoB,A4B5BA,WAAA,CpCwDL,EDKX,ACLY,IQ5BI,QR4BS,MDMrB,MAAK;ACLb,ACYA,AsCrGQ,ExC+FI,ASlCQ,A4B5BA,S5B4BA,GR4BL,AoCxDK,EpCwDJ,ACYC,KsCtGb,MxCgGQ,CCNiB,MCYK,EsCrGzB,GAAG,ItCqG+B,KsCtF/B,gBAsBI,EtCgEmD,iBsC/D/C,MACI;AvCmDxB,ECYI,AOxCgB,A4B5BA,AGMQ,Q/BsBR,C4B5BA,CnCoEhB,EDZW,EAAC,EuClDY,UvCkDC;ADnL7B,ACoLA,EQ5BoB,OAAA,KR4BL,EDEX,ACFY,YAAa,MDMrB,OAAM;ACLd,AoCtGI,AGuDQ,ExCqDA,ASlCQ,YR4BL,EAAC,CoCtGX,G5B0Ee,A4B1EZ,IGuD8C,CHvDzC,GrC4GD,ACNiB,KoChGrB,YAyCI,EAAC,MAAM;AnCuEnB,EDfI,AQ5BgB,A4B3BJ,AGmDhB,avCII,ECec,CO3CE,E4B3BJ,GGvCZ,eACK,GAAG,SA8CI;AxCyDhB,AEMA,EDfI,AoCvDY,EGQI,SHRJ,GpCuDZ,CCec,AsC9DE,kBtC8DgB;AOtMpC,ETiMI,AEMA,AmCtEY,SAAA,K5BXZ,EPiFA,EFNA,ES3EK,KAED,SAcI,WAAW,OAAM,KAsBb;AR8BhB,EDQI,AEMA,AO3CgB,A+BqBpB,YvCQe,ACcX,GDdc,MDQd,ASrCgB,A+BrEhB,eACK,GAAG,SAiDI,YAAW;AvCiD3B,AoC3LA,ErCmMI,AEMA,AO3CgB,E+BnBA,OxCwDhB,AEMA,GDdW,GAAG,AoCtDd,GGMgB,Q/BmBA;AR8BpB,EDQI,AEMA,AO3CgB,A4BzBZ,EGMY,KxCwDhB,GEMA,EDdW,GAAG,GoCtDV,CGMY,G/BmBA;AR8BpB,EDQI,AEMA,AO3CgB,A4BzBZ,QrC8DJ,CqC9DI,GpCsDO,GAAG,GCcd,MO3CgB;AR8BpB,EDQI,AEMA,AO3CgB,A4BzBZ,OAAA,IrC8DJ,AEMA,CDdW,GAAG,MQ7BE;AR8BpB,AuCtGQ,ExC8GJ,ASrCgB,A4BzBZ,QAAA,IpCsDO,GAAG,GDQd,CwC/GA,E/B0EgB,a+BzEX,GAAG,SAsDA,MACI,UACI,EAAC,KAAK;AtC8D1B,EFPI,ACRA,AuC9CoB,avC8CpB,ECec,GsC7DM,OxCsDpB,QEOgC;AO1CxB,A4BrKZ,ErCyMI,AEOA,AsC7DoB,UAAA,ItC6DpB,AO1FA,C4BeA,K5BfK,KAED,E4BkBA,IAAG,G5B2BE,CToCT;ACNJ,ECcI,AO3CY,A4B3BJ,AGSY,QAAA,IvC+CT,ACcX,GDdc,CoCxDN,CpCwDO,cQ7BH;AToCZ,ECNA,ACcA,AmCtEQ,OnCsER,cDdA,CDM0C,iBqC9DlC;A5B2BI,A+BfI,ExCsDpB,AEKI,MAAA,QO7FA,K+B9BA,C/B8BK,KAED,SA6CK,A+B5EJ,GAAG,I/B8EK,K+BxBL,MAQI,QACK,MACG;AvC8CxB,AoCvMA,EnCoNI,AO5CgB,A+BdQ,ExCiDpB,QSnCY,CP4ChB,CDbW,GoClEX,CrCsEI,KwCjDoB,MHhBpB,IAAG,KAGC,UAAS,KAAM;ApC2D3B,EoC1DgB,YpC0DD,IoC1DC;AnCyEhB,AO5CY,A+BlFJ,EvCgHJ,cQnFA,CPiGc,GDdd,CuCjHA,C/B8BK,KAED,QP+F4B,CO5CvB,A+BlFJ,GAAG,SAsDA,MAQI,QAMI;AH7JpB,EnCwNI,AO5CY,A+BdQ,atC0DpB,EmCnFA,YAKI,AGoBgB,I/BcR,A4BlCL,KAMC;ApC4DZ,EoC3DgB,YpC2DD,GAAE,UoC3DD;ApC4DhB,ACcA,AO9CgB,A+BpFR,cvCoHO,EQvFX,CRuFa,ACcC,IsCnId,C/B8BK,KAED,QPmG4B,COhDvB,A+BlFJ,GAAG,G/BoFK,M+B9BL,MAQI,QASI;AHhKpB,EpC8MI,ACcA,AO9CgB,A+BbI,U/BaJ,G+BbI,EH5BpB,MpCyEA,ICcA,EmClFI,IAAG,KASC,MAAK;EpC4Db,ACcA,AmCzEY,AGcQ,QHdR,EpC2DZ,ICcA,IsC3DoB;A/BeZ,EP6CR,AsC3DoB,UAAA,EtC2DR,EOxGZ,MAAK,KAED,SAyDK,8BP6CT;ADZJ,AoClNA,EnC+NI,AO7CY,A+BdQ,S/BcC,A+BdD,E/BcR,CRgCD,GAAG,AoC7Ed,GpC6EiB,IAAG,ECapB,GmCrFI,IAAG,KAYC,IAAG,OAAO;ApC6DtB,ECaI,AO7CY,A4B5BA,UnCyEZ,EDbW,AoC5DC,GpC4DE,GAAG,AQhCL,IRgCQ;AuC1HhB,EvC2HJ,ACaA,AO7CY,A4B5BA,M5B4BA,ORgCZ,EoC5DY,IGhEZ,OtCyIA,QsCxIK,GAAG,SAsDA,MAQI,QASI,WAKI,OAAM,SAAS,WAAW;EtC6D9C,AO7CY,A4B5BA,AGaY,U/BeZ,K4B5BA,QnCyEZ,GsC5DwB;AvCiD5B,ECYI,AO7CY,SAAA,GRiCD,GAAG,GCYd;ADXJ,AoCxNA,AGyKoB,EtC2DhB,AO7CY,YRiCD,GAAG,AoCnFd,I5BkDY,A+B/FZ,QHkDI,IAAG,GGjDF,EH6DG,CG7DA,EtC2IR,CmC9EW,MGPH,CHOU,KAIN,AGHA,QAkBK,CHfG;ApC+DxB,ECYI,AO7CY,A4B7BI,AGeI,Q/BcR,IRiCD,GAAG,AoC9DE,cGeI,OtC2DpB;ADXJ,ECYI,AO7CY,A4B7BI,AGeI,WHfJ,CpC8DL,GAAG,GuC/CM,gBtC2DpB,AO7CY;ERkCZ,ACYA,AO7CY,gBRiCZ,UQjCY,SP6CZ;AmCvOJ,EnCwOI,AO7CY,e4BtDZ,YAKI,InC8FJ,AmC9FO,E5BiDK,G4B5BJ,OAAM,KACF,IAAG,SACC,MACI;ApC4DxB,EQlCgB,A4BzBY,YpC2Db,IoC3Da,S5ByBZ;AP+ChB,EDZI,AQlCY,A4BzBY,UpC2DxB,KCYa,GmCvEW,GnCuEJ,kBAAkB,KO9C1B;AP+ChB,EO9CgB,eP8CE,kBAAiB,GO9CnB,cP8CqC;ADVrD,AoClOA,EnC6OI,YDXW,ACWC,GDXE,AoC7Fd,YAKI,IAAG,KAqBC,OAAM,KACF,IAAG,SACC,InC4EhB,EmC3EoB,QAGI,MAAK;A5B+BjC,ER+BI,ACWA,AmCxE4B,epC6D5B,GoC7D4B,OnCwE5B;EDVA,ACWA,AO1CA,A4B9B4B,QAAA,InCwE5B,MDXA,AQ/BA;ERgCA,AQ/BA,A4B9B4B,SAAA,QpC6D5B,IQ/BA;AP4CJ,EDZI,AQ/BA,SAAA,MP2Cc,GDZd,eCY+B;EDX/B,ACYA,AO3CA,OAAA,GR+BA,CCYA;EACA,AO3CA,QAAA,GP2CA;ADVJ,ECWI,AO3CA,OP2CA,IO3CA,CRgCW,GAAG,GAAE;EAChB,ACWA,AO3CA,URgCA,KCWA,GO3CA;EP4CA,AO3CA,iBP2CA,QO3CA;ARkCJ,ECUI,AO3CA,WP2CA,CDVW,GAAG,GAAG,IAAG,aQjCpB;ERkCA,aAAA;ACYJ,AO7CI,iBP6Cc,OO7C4B,WP6CX;ADTnC,ECUI,AOTJ,YRDe,ACUX,GDVc,GAAG,IAAG;EACpB,ACUA,EO9CI,cRoCJ,ACUA,AO9CI;EP+CJ,UAAA;ADRJ,ECSI,MAAA,MDTW,GAAG;AQnClB,ERoCI,ACSA,UAAA,MDTA;EACA,AQpCA,eRoCA,AQpCA;EACA,SAAA;ARsCJ,ACWA,EOhDI,OAAO,KRqCI,GAAG,ACWA,GDXG,AQrCjB,IRqCoB,WCWW,SAAU;EDVzC,ACWA,AOhDA,QAAQ,GPgDR,EDXA,YQrCA;EPiDA,eAAA;ADTJ,AQrCA,EP+CI,SAAA,GDVW,GAAG,GAAG,IAAG,AQrCkB;ERsCtC,AQpCI,SAAC,ORoCL,WQnCQ,yBACI,MAAK;AP8CrB,IO7CoB,aP6CF,CO7CE,iBP6Ce,SAAU;ADT7C,ECUI,EO7CgB,QP6ChB,EDVW,AQnCK;ERoChB,ACUA,gBAAA,cDVA;EACA,ACUA,AO3CI,SAAC,CP2CL,IDVA,cQhCQ,yBACI,MAAK;ERgCjB,EQ/BgB,aR+BhB,CQ/BgB;AP2CpB,IO1CoB,UAAA,GP0CF,kBAAiB,SAAU;ADT7C,ECUI,SAAA,GDVW,WAAW,IAAG;EACzB,AQ/CA,SAiBI,IR8BJ,qBQ7BQ,MAAK;APyCjB,IOxCgB,aPwCE,AOxCF,kBPwCmB,SAAU;ADT7C,ECUI,UAAA,EDVW,WAAW,IAAG;EACzB,gBAAA;ACYJ,iBAAkB,kBAAiB,SAAU;ADT7C,ECUI,QAAA,IDVW,MAAM;EACjB,iBAAA;ACYJ,iBAAkB,kBAAiB,SAAU;ADT7C,ECUI,SAAA,GDVW,MAAM;AACrB,cAAe,MAAM;EACjB,yBAAA;ACcJ,EDbI,eCac,EDbd,gBCa+B,SAAS,uBAAwB;EAChE,WAAA;ADXJ,cAAe,MAAM;ACcrB,EDbI,eCac,UDbd,QCa+B,SAAS,uBAAwB;EDZhE,ACaA,UAAA,mBDbA;;AAGJ,cAAe,MAAM,GAAE,UAAU;EAC7B,yBAAA;;AAGJ,cAAe;EACX,eAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,MAAO;EACtB,yBAAA;EACA,cAAA;EACA,WAAA;EACA,gBAAA;EACA,gBAAA;EACA,YAAA;EACA,WAAA;;AAGJ,cAAe,KAAI,MAAO,KAAK;EAC3B,cAAA;EACA,WAAA;;AAGJ,cAAe,KAAI,MAAO,KAAK;EAC3B,WAAA;EACA,cAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI;EACf,WAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,aAAc;EAC7B,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;;AAGJ,cAAe,KAAI,aAAc,KAAK;EAClC,cAAA;EACA,kBAAA;;AAGJ,cAAe,KAAI;EACf,WAAA;EACA,cAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,YAAa;EAC5B,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,iBAAA;;AAGJ,cAAe,KAAI,YAAa,KAAK;EACjC,SAAA;EACA,iBAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,WAAY;EAC3B,gBAAA;;AAGJ,cAAe,KAAI;EACf,cAAA;EACA,YAAA;EACA,iBAAA;EACA,gBAAA;;AAGJ,cAAe,KAAI,YAAa;EAC5B,cAAA;EACA,mBAAA;EACA,gBAAA;EACA,iBAAA;;AAGJ,cAAe;AACf,cAAe;EACX,yBAAA;EACA,yBAAA;EACA,8BAAA;EACA,aAAA;EACA,cAAA;;EAEA,mBAAA;EACA,qBAAA;;AAGJ,cAAe,IAAI;EACf,8CAAA;EACA,mBAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;;AAGJ,cAAe,WAAW;AAC1B,cAAe;EACX,yBAAA;EACA,yBAAA;EACA,8BAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,iBAAA;;AAGJ,cAAe,IAAI;AACnB,cAAe,IAAI;EACf,6BAAA;EACA,mBAAA","file":"app-bundle.js","sourcesContent":["import 'tms-semantic-ui';\r\nimport 'semantic-ui-calendar';\r\nimport 'jquery-format';\r\n\r\nexport class App {\r\n\r\n constructor() {\r\n this.init();\r\n this.initCalendar();\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_APP_ROUTER_NAVIGATE, (payload) => {\r\n this.router && this.router.navigate(`${payload.to}`);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n init() {\r\n\r\n $.fn.dropdown.settings.forceSelection = false;\r\n\r\n // ui form 验证提示信息国际化\r\n _.extend($.fn.form.settings.prompt, {\r\n empty: '{name}不能为空',\r\n checked: '{name}必须被勾选',\r\n email: '{name}必须是正确的邮件格式',\r\n url: '{name}必须是正确的URL格式',\r\n regExp: '{name}验证格式不正确',\r\n integer: '{name}必须为一个整数',\r\n decimal: '{name}必须为一个小数',\r\n number: '{name}必须设置为一个数字',\r\n is: '{name}必须符合规则\"{ruleValue}\"',\r\n isExactly: '{name}必须精确匹配\"{ruleValue}\"',\r\n not: '{name}不能设置为\"{ruleValue}\"',\r\n notExactly: '{name}不能准确设置为\"{ruleValue}\"',\r\n contain: '{name}需要包含\"{ruleValue}\"',\r\n containExactly: '{name}需要精确包含\"{ruleValue}\"',\r\n doesntContain: '{name}不能包含\"{ruleValue}\"',\r\n doesntContainExactly: '{name}不能精确包含\"{ruleValue}\"',\r\n minLength: '{name}必须至少包含{ruleValue}个字符',\r\n length: '{name}必须为{ruleValue}个字符',\r\n exactLength: '{name}必须为{ruleValue}个字符',\r\n maxLength: '{name}必须不能超过{ruleValue}个字符',\r\n match: '{name}必须匹配{ruleValue}字段',\r\n different: '{name}必须不同于{ruleValue}字段',\r\n creditCard: '{name}必须是一个正确的信用卡数字格式',\r\n minCount: '{name}必须至少包含{ruleValue}个选择项',\r\n exactCount: '{name}必须准确包含{ruleValue}个选择项',\r\n maxCount: '{name} 必须有{ruleValue}或者更少个选择项'\r\n });\r\n }\r\n\r\n initCalendar() {\r\n $.fn.calendar.settings.text = {\r\n days: ['日', '一', '二', '三', '四', '五', '六'],\r\n months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n monthsShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n today: '今天',\r\n now: '现在',\r\n am: '上午',\r\n pm: '下午'\r\n };\r\n\r\n $.fn.calendar.settings.formatter.date = function(date, settings) {\r\n if (!date) return '';\r\n var day = date.getDate();\r\n var month = date.getMonth() + 1;\r\n var year = date.getFullYear();\r\n // return year + '/' + month + '/' + day;\r\n return $.format.date(date, 'yyyy-MM-dd');\r\n };\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * 配置路由\r\n * @param {[object]} config 路由配置\r\n * @param {[object]} router 路由\r\n */\r\n configureRouter(config, router) {\r\n\r\n let chatTo = null;\r\n if (localStorage) {\r\n chatTo = localStorage.getItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO);\r\n }\r\n\r\n config.map([{\r\n route: ['pwd-reset'],\r\n name: 'reset',\r\n moduleId: 'user/user-pwd-reset',\r\n nav: false,\r\n title: '密码重置 | TMS'\r\n }, {\r\n route: ['register'],\r\n name: 'register',\r\n moduleId: 'user/user-register',\r\n nav: false,\r\n title: '用户注册 | TMS'\r\n }, {\r\n route: ['chat/:username'],\r\n name: 'chat',\r\n moduleId: 'chat/chat-direct',\r\n nav: false,\r\n title: '私聊 | TMS'\r\n }, {\r\n route: ['blog'],\r\n name: 'chat',\r\n moduleId: 'blog/blog',\r\n nav: false,\r\n title: '博文 | TMS'\r\n }, {\r\n route: ['blog/:id'],\r\n name: 'chat',\r\n moduleId: 'blog/blog',\r\n nav: false,\r\n title: '博文 | TMS'\r\n }, {\r\n route: ['login'],\r\n name: 'login',\r\n moduleId: 'user/user-login',\r\n nav: false,\r\n title: '登录 | TMS'\r\n }, {\r\n route: ['test'],\r\n name: 'test',\r\n moduleId: 'test/test-lifecycle',\r\n nav: false,\r\n title: '测试 | TMS'\r\n }, {\r\n route: '',\r\n redirect: `chat/${chatTo ? chatTo : '@admin'}`\r\n }]);\r\n\r\n this.router = router;\r\n\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n }\r\n}\r\n","export default {\r\n debug: true,\r\n testing: true\r\n};\r\n","import environment from './environment';\r\n\r\n//Configure Bluebird Promises.\r\n//Note: You may want to use environment-specific configuration.\r\nPromise.config({\r\n warnings: {\r\n wForgottenReturn: false\r\n }\r\n});\r\n\r\nexport function configure(aurelia) {\r\n aurelia.use\r\n .standardConfiguration()\r\n .feature('init')\r\n .feature('resources');\r\n\r\n if (environment.debug) {\r\n aurelia.use.developmentLogging();\r\n }\r\n\r\n if (environment.testing) {\r\n aurelia.use.plugin('aurelia-testing');\r\n }\r\n\r\n aurelia.start().then(() => aurelia.setRoot());\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport chatService from 'chat/chat-service';\r\n\r\nexport class Blog {\r\n\r\n rightSidebarShow = false;\r\n isHide = true;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_VIEW_CHANGED, (payload) => {\r\n this.routeConfig && this.routeConfig.navModel.setTitle(`${payload.title} | 博文 | TMS`);\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, (payload) => {\r\n if (payload.justRefresh) {\r\n return;\r\n }\r\n if (payload && !_.isUndefined(payload.isHide)) {\r\n this.rightSidebarShow = !payload.isHide;\r\n } else {\r\n this.rightSidebarShow = !this.rightSidebarShow;\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, (payload) => {\r\n this.isHide = payload;\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n\r\n clearInterval(this.timeagoTimer);\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n let tg = timeago();\r\n this.timeagoTimer = setInterval(() => {\r\n $(this.blogContainerRef).find('[data-timeago]').each((index, el) => {\r\n $(el).text(tg.format($(el).attr('data-timeago'), 'zh_CN'));\r\n });\r\n }, 5000);\r\n\r\n // 用户信息popup\r\n $('.tms-blog').on('mouseenter', 'span[data-value].at-user:not(.pp-not),a[data-value].author:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, {\r\n username: $a.attr('data-value'),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n $('.tms-blog .em-blog-content').on('click', 'a.avatar[data-value], a.author[data-value], .at-user[data-value]', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_MSG_INSERT, {\r\n content: `{~${$(event.currentTarget).attr('data-value')}} `\r\n });\r\n });\r\n\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n this.routeConfig = routeConfig;\r\n nsCtx.blogId = params.id;\r\n\r\n ea.publish(nsCons.EVENT_BLOG_SWITCH, { id: params.id });\r\n\r\n return Promise.all([chatService.loginUser().then((user) => {\r\n nsCtx.loginUser = user;\r\n nsCtx.isSuper = utils.isSuperUser(user);\r\n nsCtx.isAdmin = utils.isAdminUser(user);\r\n }),\r\n chatService.listUsers().then((users) => {\r\n nsCtx.users = users;\r\n window.tmsUsers = users;\r\n })\r\n ]);\r\n }\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport poll from \"common/common-poll\";\r\nimport {\r\n default as Clipboard\r\n} from 'clipboard';\r\nimport {\r\n default as clipboard\r\n} from 'clipboard-js';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\n\r\nimport chatService from './chat-service';\r\n\r\nexport class ChatDirect {\r\n\r\n offset = 0;\r\n\r\n first = true; // 第一页\r\n last = true; // 最后一页\r\n\r\n originalHref = wurl();\r\n\r\n loginUser;\r\n users = [];\r\n channels = [];\r\n chatTo = null;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n Dropzone.autoDiscover = false;\r\n this.poll = poll;\r\n\r\n new Clipboard('.tms-chat-direct .tms-clipboard')\r\n .on('success', function(e) {\r\n toastr.success('复制到剪贴板成功!');\r\n }).on('error', function(e) {\r\n toastr.error('复制到剪贴板失败!');\r\n });\r\n\r\n this.initSubscribeEvent();\r\n }\r\n\r\n initSubscribeEvent() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_SENDED, (payload) => {\r\n\r\n poll.reset();\r\n\r\n if (!this.first) { // 不是第一页\r\n if (this.isAt) {\r\n this.listChatDirect(false);\r\n } else {\r\n this.listChatChannel(false);\r\n }\r\n }\r\n });\r\n\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_SIDEBAR_TOGGLE, (payload) => {\r\n\r\n this.isRightSidebarShow = payload.isShow;\r\n if (this.isRightSidebarShow) {\r\n let wid = $(this.contentRef).width() - 392;\r\n $(this.contentBodyRef).width(wid);\r\n $(this.contentBodyRef).children('.scroll-wrapper').width(wid);\r\n } else {\r\n $(this.contentBodyRef).css('width', '100%');\r\n $(this.contentBodyRef).children('.scroll-wrapper').css('width', '100%');\r\n }\r\n });\r\n\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_CREATED, (payload) => {\r\n this.channels.splice(0, 0, payload.channel);\r\n });\r\n\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, (payload) => {\r\n\r\n this.gotoChatItem(payload.chatItem);\r\n });\r\n\r\n this.subscribe5 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_DELETED, (payload) => {\r\n\r\n if (!this.isAt && (payload.channel.name == this.chatTo)) {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n\r\n this.channels = [...this.channels];\r\n\r\n });\r\n\r\n this.subscribe6 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_JOINED, (payload) => {\r\n\r\n this.channels.splice(0, 0, payload.channel);\r\n\r\n });\r\n\r\n this.subscribe7 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_LEAVED, (payload) => {\r\n\r\n if (!this.isAt && (payload.channel.name == this.chatTo)) {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n\r\n this.channels = _.reject(this.channels, { id: payload.channel.id });\r\n\r\n });\r\n\r\n this.subscribe8 = ea.subscribe(nsCons.EVENT_CHAT_LAST_ITEM_RENDERED, (payload) => {\r\n\r\n if (payload.item.__scroll) {\r\n this.scrollToAfterImgLoaded(this.markId ? this.markId : 'b');\r\n delete payload.item.__scroll;\r\n this.markId = null;\r\n }\r\n\r\n });\r\n\r\n this.subscribe9 = ea.subscribe(nsCons.EVENT_SCROLLBAR_SCROLL_TO_BOTTOM, (payload) => {\r\n\r\n if (this.scrollbarRef == payload.element) {\r\n poll.reset();\r\n }\r\n\r\n });\r\n\r\n this.subscribe10 = ea.subscribe(nsCons.EVENT_CHAT_CONTENT_SCROLL_TO, (payload) => {\r\n\r\n this.scrollTo(payload.target);\r\n\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n this.subscribe5.dispose();\r\n this.subscribe6.dispose();\r\n this.subscribe7.dispose();\r\n this.subscribe8.dispose();\r\n this.subscribe9.dispose();\r\n this.subscribe10.dispose();\r\n\r\n clearInterval(this.timeagoTimer);\r\n poll.stop();\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n this._reset();\r\n\r\n this.markId = params.id;\r\n this.routeConfig = routeConfig;\r\n\r\n if (this.chatId) {\r\n this.preChatId = this.chatId; // 记录切换前的沟通对象\r\n }\r\n this.chatId = nsCtx.chatId = params.username;\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO, this.chatId);\r\n\r\n this.isAt = nsCtx.isAt = _.startsWith(params.username, '@');\r\n this.chatTo = nsCtx.chatTo = utils.getChatName(params.username);\r\n\r\n if (this.markId) {\r\n history.replaceState(null, '', utils.removeUrlQuery('id'));\r\n }\r\n\r\n return Promise.all([chatService.loginUser(false).then((user) => {\r\n this.loginUser = user;\r\n nsCtx.loginUser = user;\r\n nsCtx.isSuper = utils.isSuperUser(this.loginUser);\r\n nsCtx.isAdmin = utils.isAdminUser(this.loginUser);\r\n }),\r\n chatService.listUsers(false).then((users) => {\r\n this.users = users;\r\n nsCtx.users = users;\r\n window.tmsUsers = users;\r\n if (this.isAt) {\r\n this.channel = null;\r\n this.user = _.find(this.users, {\r\n username: this.chatTo\r\n });\r\n\r\n if (this.user) {\r\n let name = this.user ? this.user.name : this.chatTo;\r\n routeConfig.navModel.setTitle(`${name} | 私聊 | TMS`);\r\n\r\n this.listChatDirect(true);\r\n } else {\r\n toastr.error(`聊天用户[${this.chatTo}]不存在或者没有权限访问!`);\r\n if (this.preChatId) {\r\n window.location = wurl('path') + `#/chat/${this.preChatId}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n }\r\n\r\n }\r\n }),\r\n chatService.listChannels(false).then((channels) => {\r\n this.channels = channels;\r\n nsCtx.channels = channels;\r\n if (!this.isAt) {\r\n this.user = null;\r\n this.channel = _.find(this.channels, {\r\n name: this.chatTo\r\n });\r\n\r\n if (this.channel) {\r\n routeConfig.navModel.setTitle(`${this.channel.title} | 频道 | TMS`);\r\n\r\n this.listChatChannel(true);\r\n } else {\r\n toastr.error(`聊天频道[${this.chatTo}]不存在或者没有权限访问!`);\r\n if (this.preChatId) {\r\n window.location = wurl('path') + `#/chat/${this.preChatId}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.loginUser.username}`;\r\n }\r\n }\r\n }\r\n })\r\n ]);\r\n\r\n }\r\n\r\n _reset() {\r\n this.progressWidth = 0;\r\n this.chats = null;\r\n this.first = true; // 第一页\r\n this.last = true; // 最后一页\r\n }\r\n\r\n lastMoreHandler() { // 上面的老消息\r\n\r\n let start = _.first(this.chats).id;\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/more`;\r\n data = {\r\n last: true,\r\n start: start,\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/more`;\r\n data = {\r\n last: true,\r\n start: start,\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n }\r\n this.lastMoreP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.chats = _.unionBy(_.reverse(data.data), this.chats);\r\n this.last = (data.msgs[0] - data.data.length <= 0);\r\n !this.last && (this.lastCnt = data.msgs[0] - data.data.length);\r\n this.scrollToAfterImgLoaded(start);\r\n } else {\r\n toastr.error(data.data, '获取更多消息失败!');\r\n }\r\n });\r\n }\r\n\r\n firstMoreHandler() { // 前面的新消息\r\n\r\n let start = _.last(this.chats).id;\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/more`;\r\n data = {\r\n last: false,\r\n start: start,\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/more`;\r\n data = {\r\n last: false,\r\n start: start,\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n }\r\n this.nextMoreP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.chats = _.unionBy(this.chats, data.data);\r\n this.first = (data.msgs[0] - data.data.length <= 0);\r\n !this.first && (this.firstCnt = data.msgs[0] - data.data.length);\r\n this.scrollToAfterImgLoaded(start);\r\n } else {\r\n toastr.error(data.data, '获取更多消息失败!');\r\n }\r\n });\r\n }\r\n\r\n // 获取频道消息\r\n listChatChannel(isCareMarkId) {\r\n\r\n var data = {\r\n size: 20,\r\n channelId: this.channel.id\r\n };\r\n\r\n // 如果设定了获取消息界限\r\n if (this.markId && isCareMarkId) {\r\n data.id = this.markId;\r\n }\r\n\r\n $.get('/admin/chat/channel/listBy', data, (data) => {\r\n this.processChats(data);\r\n });\r\n }\r\n\r\n // 获取私聊消息\r\n listChatDirect(isCareMarkId) {\r\n\r\n var data = {\r\n size: 20,\r\n chatTo: this.chatTo\r\n };\r\n\r\n // 如果设定了获取消息界限\r\n if (this.markId && isCareMarkId) {\r\n data.id = this.markId;\r\n }\r\n $.get('/admin/chat/direct/list', data, (data) => {\r\n this.processChats(data);\r\n });\r\n }\r\n\r\n // 共同返回消息处理\r\n processChats(data) {\r\n if (data.success) {\r\n this.chats = _.reverse(data.data.content);\r\n let lastChat = _.last(this.chats);\r\n lastChat && (lastChat.__scroll = true); // 标记消息列表渲染完成需要执行消息滚动定位.\r\n this.last = data.data.last;\r\n this.first = data.data.first;\r\n !this.last && (this.lastCnt = data.data.totalElements - data.data.numberOfElements);\r\n !this.first && (this.firstCnt = data.data.size * data.data.number);\r\n }\r\n }\r\n\r\n _scrollTo(to) {\r\n if (to == 'b') {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo('max');\r\n } else if (to == 't') {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(0);\r\n } else {\r\n if (_.some(this.chats, { id: +to })) {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(`.comment[data-id=\"${to}\"]`, {\r\n offset: this.offset\r\n });\r\n $(this.commentsRef).find(`.comment[data-id]`).removeClass('active');\r\n $(this.commentsRef).find(`.comment[data-id=${to}]`).addClass('active');\r\n } else {\r\n $(this.commentsRef).parent('.scroll-content').scrollTo('max');\r\n toastr.warning(`消息[${to}]不存在,可能已经被删除!`);\r\n }\r\n }\r\n }\r\n\r\n scrollToAfterImgLoaded(to) {\r\n _.defer(() => {\r\n new ImagesLoaded(this.commentsRef).always(() => {\r\n this._scrollTo(to);\r\n });\r\n\r\n this._scrollTo(to);\r\n });\r\n\r\n }\r\n\r\n doPoll() {\r\n poll.start((resetCb, stopCb) => {\r\n this._pollChats(resetCb, stopCb);\r\n this._poll(resetCb, stopCb);\r\n });\r\n }\r\n\r\n _poll(resetCb, stopCb) {\r\n\r\n let lastChat = _.last(this.chats);\r\n\r\n if (this.pollOnGoing || this.isAt || !this.channel || !lastChat) {\r\n return;\r\n }\r\n\r\n this.pollOnGoing = true;\r\n\r\n $.get('/admin/chat/channel/poll', {\r\n channelId: this.channel.id,\r\n lastChatChannelId: lastChat.id,\r\n isAt: true\r\n }, (data) => {\r\n if (data.success) {\r\n\r\n if (this.countAt && data.data.countAt > this.countAt) {\r\n let cnt = data.data.countAt - this.countAt;\r\n push.create('TMS沟通@消息通知', {\r\n body: `你有${cnt}条新的@消息!`,\r\n icon: {\r\n x16: 'img/tms-x16.ico',\r\n x32: 'img/tms-x32.png'\r\n },\r\n timeout: 5000\r\n });\r\n }\r\n this.countAt = data.data.countAt;\r\n ea.publish(nsCons.EVENT_CHAT_POLL_UPDATE, {\r\n countAt: data.data.countAt,\r\n countMyRecentSchedule: data.data.countMyRecentSchedule\r\n });\r\n }\r\n }).always(() => {\r\n this.pollOnGoing = false;\r\n });\r\n }\r\n\r\n // 消息轮询处理\r\n _pollChats(resetCb, stopCb) {\r\n\r\n if (this.pollChatsOngoing || !this.chats || !this.first) {\r\n return;\r\n }\r\n\r\n let lastChat = _.last(this.chats);\r\n\r\n let url;\r\n let data;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/latest`;\r\n data = {\r\n id: lastChat ? lastChat.id : 0,\r\n chatTo: this.chatTo\r\n };\r\n } else {\r\n url = `/admin/chat/channel/latest`;\r\n data = {\r\n id: lastChat ? lastChat.id : 0,\r\n channelId: this.channel.id\r\n };\r\n }\r\n\r\n this.pollChatsOngoing = true;\r\n\r\n $.get(url, data, (data) => {\r\n if (data.success) {\r\n\r\n if (!this._checkPollResultOk(data)) {\r\n return;\r\n }\r\n\r\n this._checkNeedNotify(data);\r\n\r\n this.chats = _.unionBy(this.chats, data.data, 'id');\r\n this.scrollToAfterImgLoaded('b');\r\n } else {\r\n toastr.error(data.data, '轮询获取消息失败!');\r\n }\r\n }).fail((xhr, sts) => {\r\n stopCb();\r\n utils.errorAutoTry(() => {\r\n resetCb();\r\n });\r\n }).always(() => {\r\n this.pollChatsOngoing = false;\r\n });\r\n }\r\n\r\n _checkNeedNotify(data) {\r\n\r\n if (data.data.length == 0) {\r\n return false;\r\n }\r\n\r\n let hasOwn = _.some(data.data, (item) => {\r\n return item.creator.username == this.loginUser.username;\r\n });\r\n\r\n if (!hasOwn) {\r\n push.create('TMS沟通频道消息通知', {\r\n body: `频道[${this.channel.title}]有新消息了!`,\r\n icon: {\r\n x16: 'img/tms-x16.ico',\r\n x32: 'img/tms-x32.png'\r\n },\r\n timeout: 5000\r\n });\r\n }\r\n }\r\n\r\n _checkPollResultOk(data) {\r\n\r\n if (data.data.length == 0) {\r\n return false;\r\n }\r\n\r\n let chat = _.first(data.data);\r\n return this.isAt ? _.has(chat, 'chatTo') : _.has(chat, 'channel');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎绑定到视图时被调用\r\n * @param {[object]} ctx 视图绑定上下文环境对象\r\n */\r\n bind(ctx) {\r\n\r\n this.doPoll();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n let tg = timeago();\r\n this.timeagoTimer = setInterval(() => {\r\n $(this.chatContainerRef).find('[data-timeago]').each((index, el) => {\r\n $(el).text(tg.format($(el).attr('data-timeago'), 'zh_CN'));\r\n });\r\n }, 5000);\r\n\r\n this.initHotkeys();\r\n this.initFocusedComment();\r\n\r\n $(this.scrollbarRef).on('mouseenter', '.em-chat-content-item', (event) => {\r\n event.preventDefault();\r\n let $item = $(event.currentTarget);\r\n this.$hoveredItem = $item;\r\n this.isShowHead = !utils.isElementInViewport($item.children('.em-user-avatar'));\r\n let $next = $item.next('.em-chat-content-item');\r\n if ($next.size() === 1) {\r\n this.isShowFoot = !utils.isElementInViewport($next.children('.em-user-avatar'));\r\n } else {\r\n this.isShowFoot = false;\r\n }\r\n }).on('mouseleave', (event) => {\r\n event.preventDefault();\r\n this.isShowHead = false;\r\n this.isShowFoot = false;\r\n });\r\n\r\n $(this.commentsRef).on('click', '.cbutton', function(event) {\r\n event.preventDefault();\r\n let $btn = $(this);\r\n $btn.addClass('cbutton--click');\r\n setTimeout(function() {\r\n $btn.removeClass('cbutton--click');\r\n }, 500);\r\n });\r\n\r\n $(this.chatContainerRef).on('click', 'code[data-code]', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).attr('data-code')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $(this.chatContainerRef).on('click', '.pre-code-wrapper', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).find('i[data-clipboard-text]').attr('data-clipboard-text')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.tms-comments-container[ref=\"scrollbarRef\"]').scroll(_.throttle((event) => {\r\n try {\r\n let sHeight = $(event.currentTarget)[0].scrollHeight;\r\n let sTop = $(event.currentTarget)[0].scrollTop;\r\n\r\n let scale = sTop * 1.0 / (sHeight - $(event.currentTarget).outerHeight());\r\n this.progressWidth = $(event.currentTarget).outerWidth() * scale;\r\n } catch (err) { this.progressWidth = 0; }\r\n\r\n }, 10));\r\n\r\n }\r\n\r\n goHeadHandler() {\r\n this.scrollTo(this.$hoveredItem, 500, () => { this.isShowHead = false; });\r\n }\r\n\r\n goFootHandler() {\r\n this.scrollTo(this.$hoveredItem.next(), 500, () => { this.isShowFoot = false; });\r\n }\r\n\r\n initFocusedComment() {\r\n $(this.commentsRef).on('click', '.comment.item', (event) => {\r\n this.focusedComment = $(event.currentTarget);\r\n }).on('dblclick', '.comment.item', (event) => {\r\n if (event.ctrlKey) {\r\n let chatId = $(event.currentTarget).attr('data-id');\r\n let $t = $(event.currentTarget).find('.content > textarea');\r\n let item = _.find(this.chats, { id: Number.parseInt(chatId) });\r\n\r\n if (!item.openEdit && (item.creator.username != this.loginUser.username)) {\r\n return;\r\n }\r\n\r\n $.get(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/get`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $t.focus().select();\r\n autosize.update($t.get(0));\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n getScrollTargetComment(isPrev) {\r\n if (isPrev) {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let $avatar = this.focusedComment.find('> a.em-user-avatar');\r\n if (utils.isElementInViewport($avatar)) {\r\n let prev = this.focusedComment.prev('.comment.item');\r\n (prev.size() === 1) && (this.focusedComment = prev);\r\n }\r\n } else {\r\n this.focusedComment = $(this.commentsRef).children('.comment.item:first');\r\n }\r\n } else {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let next = this.focusedComment.next('.comment.item');\r\n (next.size() === 1) && (this.focusedComment = next);\r\n } else {\r\n this.focusedComment = $(this.commentsRef).children('.comment.item:last');\r\n }\r\n }\r\n return this.focusedComment;\r\n }\r\n\r\n scrollTo(target, duration = 0, onAfter) {\r\n this.focusedComment = target;\r\n $(this.commentsRef).parent('.scroll-content').scrollTo(target, duration, {\r\n offset: this.offset,\r\n onAfter: onAfter\r\n });\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'ctrl+u', (evt) => {\r\n evt.preventDefault();\r\n $(this.emChatInputRef.btnItemUploadRef).find('.content').click();\r\n }).bind('keydown', 'ctrl+/', (evt) => {\r\n evt.preventDefault();\r\n this.emChatInputRef.emHotkeysModal.show();\r\n }).bind('keydown', 'alt+up', (evt) => {\r\n evt.preventDefault();\r\n this.scrollTo(this.getScrollTargetComment(true));\r\n }).bind('keydown', 'alt+down', (evt) => {\r\n evt.preventDefault();\r\n this.scrollTo(this.getScrollTargetComment());\r\n }).bind('keydown', 't', (event) => {\r\n event.preventDefault();\r\n this.scrollTo($(this.commentsRef).children('.comment.item:first'));\r\n }).bind('keydown', 'b', (event) => {\r\n event.preventDefault();\r\n this.scrollTo($(this.commentsRef).children('.comment.item:last'));\r\n });\r\n\r\n }\r\n\r\n gotoChatItem(item) {\r\n\r\n let chat = _.find(this.chats, { id: item.id });\r\n if (chat) {\r\n this.scrollToAfterImgLoaded(item.id);\r\n } else {\r\n\r\n let chatTo;\r\n let chatId;\r\n\r\n if (item.chatTo) {\r\n chatTo = item.chatTo.username;\r\n chatId = `@${chatTo}`;\r\n } else if (item.channel) {\r\n chatTo = item.channel.name;\r\n chatId = `${chatTo}`;\r\n }\r\n\r\n if (this.chatTo == chatTo) { // 当前定位消息就在当前聊天对象里,只是没有获取显示出来\r\n this.activate({\r\n id: item.id,\r\n username: chatId\r\n }, this.routeConfig);\r\n } else { // 定位消息在非当前聊天对象中\r\n window.location = wurl('path') + `#/chat/${chatId}?id=${item.id}`;\r\n }\r\n }\r\n\r\n }\r\n\r\n refreshLatestHandler(event) {\r\n event.stopImmediatePropagation();\r\n this.markId = null;\r\n if (this.isAt) {\r\n this.listChatDirect(false);\r\n } else {\r\n this.listChatChannel(false);\r\n }\r\n }\r\n\r\n}\r\n","class ChatService {\r\n\r\n async loginUser(useCache) {\r\n\r\n if (!useCache || !this.user) {\r\n\r\n // login user\r\n await $.get('/admin/user/loginUser', (data) => {\r\n if (data.success) {\r\n this.user = data.data;\r\n }\r\n });\r\n }\r\n\r\n return this.user;\r\n }\r\n\r\n async listUsers(useCache) {\r\n\r\n if (!useCache || !this.users) {\r\n\r\n // users\r\n await $.get('/admin/user/all', {\r\n // enabled: true\r\n }, (data) => {\r\n if (data.success) {\r\n this.users = data.data;\r\n }\r\n });\r\n }\r\n\r\n return this.users;\r\n }\r\n\r\n async listChannels(useCache) {\r\n\r\n if (!useCache || !this.channels) {\r\n\r\n // channels\r\n await $.get('/admin/channel/listMy', (data) => {\r\n if (data.success) {\r\n this.channels = data.data;\r\n }\r\n });\r\n\r\n }\r\n\r\n return this.channels;\r\n }\r\n}\r\n\r\nexport default new ChatService();\r\n","window.nsCons = {\r\n EVENT_APP_ROUTER_NAVIGATE: 'event_app_router_navigate',\r\n EVENT_CHAT_MSG_SENDED: 'event_chat_msg_sended',\r\n EVENT_CHAT_MSG_EDIT_UPLOAD: 'event_chat_msg_edit_upload',\r\n EVENT_CHAT_SIDEBAR_TOGGLE: 'event_chat_sidebar_toggle',\r\n EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE: 'event_chat_right_sidebar_toggle',\r\n EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM: 'event_chat_search_goto_chat_item',\r\n EVENT_CHAT_CHANNEL_CREATED: 'event_chat_channel_created',\r\n EVENT_CHAT_CHANNEL_DELETED: 'event_chat_channel_deleted',\r\n EVENT_CHAT_CHANNEL_JOINED: 'event_chat_channel_joined',\r\n EVENT_CHAT_CHANNEL_LEAVED: 'event_chat_channel_leaved',\r\n EVENT_SHOW_HOTKEYS_MODAL: 'event_show_hotkeys_modal',\r\n EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE: 'event_chat_channel_member_add_or_remove',\r\n EVENT_CHAT_LAST_ITEM_RENDERED: 'event_chat_last_item_rendered',\r\n EVENT_SCROLLBAR_SCROLL_TO_BOTTOM: 'event_scrollbar_scroll_to_bottom',\r\n EVENT_CHAT_MSG_INSERT: 'event_chat_msg_insert',\r\n EVENT_CHAT_MSG_POPUP_SHOW: 'event_chat_msg_popup_show',\r\n EVENT_CHAT_MEMBER_POPUP_SHOW: 'event_chat_member_popup_show',\r\n EVENT_CHAT_MSG_WIKI_DIR: 'event_chat_msg_wiki_dir',\r\n EVENT_CHAT_CONTENT_SCROLL_TO: 'event_chat_content_scroll_to',\r\n EVENT_CHAT_POLL_UPDATE: 'event_chat_poll_update',\r\n EVENT_SWITCH_CHAT_TO: 'event_switch_chat_to',\r\n EVENT_CHANNEL_ACTIONS: 'event_channel_actions',\r\n EVENT_CHANNEL_LINKS_REFRESH: 'event_channel_links_refresh',\r\n EVENT_SYSTEM_LINKS_REFRESH: 'event_system_links_refresh',\r\n EVENT_SCHEDULE_REFRESH: 'event_schedule_refresh',\r\n EVENT_MODAAL_BEFORE_OPEN: 'event_modaal_before_open',\r\n EVENT_MODAAL_AFTER_OPEN: 'event_modaal_after_open',\r\n EVENT_MODAAL_BEFORE_CLOSE: 'event_modaal_before_close',\r\n EVENT_MODAAL_AFTER_CLOSE: 'event_modaal_after_close',\r\n EVENT_BLOG_SWITCH: 'event_blog_switch',\r\n EVENT_BLOG_ACTION: 'event_blog_action',\r\n EVENT_BLOG_CHANGED: 'event_blog_changed',\r\n EVENT_SPACE_CHANGED: 'event_space_changed',\r\n EVENT_BLOG_CREATED: 'event_blog_created',\r\n EVENT_BLOG_UPDATED: 'event_blog_updated',\r\n EVENT_BLOG_DELETED: 'event_blog_deleted',\r\n EVENT_BLOG_TOGGLE_SIDEBAR: 'event_blog_toggle_sidebar',\r\n EVENT_BLOG_VIEW_CHANGED: 'event_blog_view_changed',\r\n EVENT_BLOG_STOW_CHANGED: 'event_blog_stow_changed',\r\n EVENT_BLOG_SAVE: 'event_blog_save',\r\n EVENT_BLOG_HISTORY_CHANGED: 'event_blog_history_changed',\r\n EVENT_BLOG_COMMENT_POPUP_SHOW: 'event_blog_comment_popup_show',\r\n EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE: 'event_blog_right_sidebar_toggle',\r\n EVENT_BLOG_LEFT_SIDEBAR_TOGGLE: 'event_blog_left_sidebar_toggle',\r\n EVENT_BLOG_CONTENT_DIMMER_TOGGLE: 'event_blog_content_dimmer_toggle',\r\n EVENT_BLOG_COMMENT_MSG_INSERT: 'event_blog_comment_msg_insert',\r\n EVENT_BLOG_COMMENT_ADDED: 'event_blog_comment_added',\r\n EVENT_BLOG_COMMENT_CHANGED: 'event_blog_comment_changed',\r\n ACTION_TYPE_SEARCH: 'action_type_search',\r\n ACTION_TYPE_STOW: 'action_type_stow',\r\n ACTION_TYPE_PIN: 'action_type_pin',\r\n ACTION_TYPE_AT: 'action_type_at',\r\n ACTION_TYPE_DIR: 'action_type_dir',\r\n ACTION_TYPE_ATTACH: 'action_type_attach',\r\n ACTION_TYPE_SCHEDULE: 'action_type_schedule',\r\n NUM_TEXT_COMPLETE_MAX_COUNT: 20,\r\n STR_EMOJI_SEARCH_URL: 'http://emoji.muan.co/',\r\n KEY_REMEMBER_LAST_CHAT_TO: 'tms/remember_last_chat_to',\r\n KEY_LOGIN_USERNAME: 'tms/login_username',\r\n KEY_BLOG_COMMON_SPACE: 'tms/blog/common_space',\r\n}\r\n","window.nsCtx = {\r\n loginUser: {},\r\n isSuper: false,\r\n isAdmin: false,\r\n users: [],\r\n channels: [],\r\n memberAll: {\r\n username: 'all',\r\n enabled: true,\r\n mails: '',\r\n name: '全员'\r\n },\r\n isAt: true, // is channel or user chat\r\n chatTo: null, // chat to channel name or username\r\n chatId: null, // chat to channel name or @username \r\n isSuper: false,\r\n isAdmin: false,\r\n blogId: null,\r\n isModaalOpening: false,\r\n}\r\n","(function webpackUniversalModuleDefinition(root, factory) {\r\n root[\"JsDiff\"] = factory();\r\n})(window, function() {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ // The module cache\r\n/******/ var installedModules = {};\r\n\r\n/******/ // The require function\r\n/******/ function __webpack_require__(moduleId) {\r\n\r\n/******/ // Check if module is in cache\r\n/******/ if(installedModules[moduleId])\r\n/******/ return installedModules[moduleId].exports;\r\n\r\n/******/ // Create a new module (and put it into the cache)\r\n/******/ var module = installedModules[moduleId] = {\r\n/******/ exports: {},\r\n/******/ id: moduleId,\r\n/******/ loaded: false\r\n/******/ };\r\n\r\n/******/ // Execute the module function\r\n/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n\r\n/******/ // Flag the module as loaded\r\n/******/ module.loaded = true;\r\n\r\n/******/ // Return the exports of the module\r\n/******/ return module.exports;\r\n/******/ }\r\n\r\n\r\n/******/ // expose the modules object (__webpack_modules__)\r\n/******/ __webpack_require__.m = modules;\r\n\r\n/******/ // expose the module cache\r\n/******/ __webpack_require__.c = installedModules;\r\n\r\n/******/ // __webpack_public_path__\r\n/******/ __webpack_require__.p = \"\";\r\n\r\n/******/ // Load entry module and return exports\r\n/******/ return __webpack_require__(0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n /* See LICENSE file for terms of use */\r\n\r\n /*\r\n * Text diff implementation.\r\n *\r\n * This library supports the following APIS:\r\n * JsDiff.diffChars: Character by character diff\r\n * JsDiff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\r\n * JsDiff.diffLines: Line based diff\r\n *\r\n * JsDiff.diffCss: Diff targeted at CSS content\r\n *\r\n * These methods are based on the implementation proposed in\r\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\r\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\r\n */\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _diffBase = __webpack_require__(1);\r\n\r\n var _diffBase2 = _interopRequireDefault(_diffBase);\r\n\r\n var _diffCharacter = __webpack_require__(3);\r\n\r\n var _diffWord = __webpack_require__(4);\r\n\r\n var _diffLine = __webpack_require__(5);\r\n\r\n var _diffSentence = __webpack_require__(6);\r\n\r\n var _diffCss = __webpack_require__(7);\r\n\r\n var _diffJson = __webpack_require__(8);\r\n\r\n var _patchApply = __webpack_require__(9);\r\n\r\n var _patchCreate = __webpack_require__(10);\r\n\r\n var _convertDmp = __webpack_require__(12);\r\n\r\n var _convertXml = __webpack_require__(13);\r\n\r\n exports.Diff = _diffBase2['default'];\r\n exports.diffChars = _diffCharacter.diffChars;\r\n exports.diffWords = _diffWord.diffWords;\r\n exports.diffWordsWithSpace = _diffWord.diffWordsWithSpace;\r\n exports.diffLines = _diffLine.diffLines;\r\n exports.diffTrimmedLines = _diffLine.diffTrimmedLines;\r\n exports.diffSentences = _diffSentence.diffSentences;\r\n exports.diffCss = _diffCss.diffCss;\r\n exports.diffJson = _diffJson.diffJson;\r\n exports.structuredPatch = _patchCreate.structuredPatch;\r\n exports.createTwoFilesPatch = _patchCreate.createTwoFilesPatch;\r\n exports.createPatch = _patchCreate.createPatch;\r\n exports.applyPatch = _patchApply.applyPatch;\r\n exports.convertChangesToDMP = _convertDmp.convertChangesToDMP;\r\n exports.convertChangesToXML = _convertXml.convertChangesToXML;\r\n exports.canonicalize = _diffJson.canonicalize;\r\n\r\n\r\n/***/ },\r\n/* 1 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports['default'] = Diff;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _utilMap = __webpack_require__(2);\r\n\r\n var _utilMap2 = _interopRequireDefault(_utilMap);\r\n\r\n function Diff(ignoreWhitespace) {\r\n this.ignoreWhitespace = ignoreWhitespace;\r\n }\r\n\r\n Diff.prototype = {\r\n diff: function diff(oldString, newString, callback) {\r\n var self = this;\r\n\r\n function done(value) {\r\n if (callback) {\r\n setTimeout(function () {\r\n callback(undefined, value);\r\n }, 0);\r\n return true;\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n // Allow subclasses to massage the input prior to running\r\n oldString = this.castInput(oldString);\r\n newString = this.castInput(newString);\r\n\r\n // Handle the identity case (this is due to unrolling editLength == 0\r\n if (newString === oldString) {\r\n return done([{ value: newString }]);\r\n }\r\n if (!newString) {\r\n return done([{ value: oldString, removed: true }]);\r\n }\r\n if (!oldString) {\r\n return done([{ value: newString, added: true }]);\r\n }\r\n\r\n newString = this.removeEmpty(this.tokenize(newString));\r\n oldString = this.removeEmpty(this.tokenize(oldString));\r\n\r\n var newLen = newString.length,\r\n oldLen = oldString.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n\r\n // Seed editLength = 0, i.e. the content starts with the same values\r\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n // Identity per the equality and tokenizer\r\n return done([{ value: newString.join('') }]);\r\n }\r\n\r\n // Main worker method. checks all permutations of a given edit length for acceptance.\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath = undefined;\r\n var addPath = bestPath[diagonalPath - 1],\r\n removePath = bestPath[diagonalPath + 1],\r\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n // No one else is going to attempt to use this value, clear it\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n\r\n var canAdd = addPath && addPath.newPos + 1 < newLen,\r\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n // If this path is a terminal then prune\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n\r\n // Select the diagonal that we want to branch from. We select the prior\r\n // path whose position in the new string is the farthest from the origin\r\n // and does not pass the bounds of the diff graph\r\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\r\n basePath = clonePath(removePath);\r\n self.pushComponent(basePath.components, undefined, true);\r\n } else {\r\n basePath = addPath; // No need to clone, we've pulled it from the list\r\n basePath.newPos++;\r\n self.pushComponent(basePath.components, true, undefined);\r\n }\r\n\r\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);\r\n\r\n // If we have hit the end of both strings, then we are done\r\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\r\n return done(buildValues(basePath.components, newString, oldString, self.useLongestToken));\r\n } else {\r\n // Otherwise track this path as a potential candidate and continue.\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n\r\n editLength++;\r\n }\r\n\r\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\r\n // sync and async mode which is never fun. Loops over execEditLength until a value\r\n // is produced.\r\n if (callback) {\r\n (function exec() {\r\n setTimeout(function () {\r\n // This should not happen, but we want to be safe.\r\n /* istanbul ignore next */\r\n if (editLength > maxEditLength) {\r\n return callback();\r\n }\r\n\r\n if (!execEditLength()) {\r\n exec();\r\n }\r\n }, 0);\r\n })();\r\n } else {\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n },\r\n\r\n pushComponent: function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n // We need to clone here as the component clone operation is just\r\n // as shallow array clone\r\n components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };\r\n } else {\r\n components.push({ count: 1, added: added, removed: removed });\r\n }\r\n },\r\n extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\r\n var newLen = newString.length,\r\n oldLen = oldString.length,\r\n newPos = basePath.newPos,\r\n oldPos = newPos - diagonalPath,\r\n commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n\r\n if (commonCount) {\r\n basePath.components.push({ count: commonCount });\r\n }\r\n\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n },\r\n\r\n equals: function equals(left, right) {\r\n var reWhitespace = /\\S/;\r\n return left === right || this.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\r\n },\r\n removeEmpty: function removeEmpty(array) {\r\n var ret = [];\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i]) {\r\n ret.push(array[i]);\r\n }\r\n }\r\n return ret;\r\n },\r\n castInput: function castInput(value) {\r\n return value;\r\n },\r\n tokenize: function tokenize(value) {\r\n return value.split('');\r\n }\r\n };\r\n\r\n function buildValues(components, newString, oldString, useLongestToken) {\r\n var componentPos = 0,\r\n componentLen = components.length,\r\n newPos = 0,\r\n oldPos = 0;\r\n\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n if (!component.added && useLongestToken) {\r\n var value = newString.slice(newPos, newPos + component.count);\r\n value = _utilMap2['default'](value, function (value, i) {\r\n var oldValue = oldString[oldPos + i];\r\n return oldValue.length > value.length ? oldValue : value;\r\n });\r\n\r\n component.value = value.join('');\r\n } else {\r\n component.value = newString.slice(newPos, newPos + component.count).join('');\r\n }\r\n newPos += component.count;\r\n\r\n // Common case\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n } else {\r\n component.value = oldString.slice(oldPos, oldPos + component.count).join('');\r\n oldPos += component.count;\r\n\r\n // Reverse add and remove so removes are output first to match common convention\r\n // The diffing algorithm is tied to add then remove output and this is the simplest\r\n // route to get the desired output with minimal overhead.\r\n if (componentPos && components[componentPos - 1].added) {\r\n var tmp = components[componentPos - 1];\r\n components[componentPos - 1] = components[componentPos];\r\n components[componentPos] = tmp;\r\n }\r\n }\r\n }\r\n\r\n return components;\r\n }\r\n\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n module.exports = exports['default'];\r\n\r\n\r\n/***/ },\r\n/* 2 */\r\n/***/ function(module, exports) {\r\n\r\n // Following this pattern to make sure the ignore next is in the correct place after babel builds\r\n \"use strict\";\r\n\r\n exports.__esModule = true;\r\n exports[\"default\"] = map;\r\n\r\n /* istanbul ignore next */\r\n function map(arr, mapper, that) {\r\n if (Array.prototype.map) {\r\n return Array.prototype.map.call(arr, mapper, that);\r\n }\r\n\r\n var other = new Array(arr.length);\r\n\r\n for (var i = 0, n = arr.length; i < n; i++) {\r\n other[i] = mapper.call(that, arr[i], i, arr);\r\n }\r\n return other;\r\n }\r\n module.exports = exports[\"default\"];\r\n\r\n\r\n/***/ },\r\n/* 3 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffChars = diffChars;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var characterDiff = new _base2['default']();\r\n exports.characterDiff = characterDiff;\r\n\r\n function diffChars(oldStr, newStr, callback) {\r\n return characterDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 4 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffWords = diffWords;\r\n exports.diffWordsWithSpace = diffWordsWithSpace;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\r\n //\r\n // Ranges and exceptions:\r\n // Latin-1 Supplement, 0080–00FF\r\n // - U+00D7 × Multiplication sign\r\n // - U+00F7 ÷ Division sign\r\n // Latin Extended-A, 0100–017F\r\n // Latin Extended-B, 0180–024F\r\n // IPA Extensions, 0250–02AF\r\n // Spacing Modifier Letters, 02B0–02FF\r\n // - U+02C7 ˇ ˇ Caron\r\n // - U+02D8 ˘ ˘ Breve\r\n // - U+02D9 ˙ ˙ Dot Above\r\n // - U+02DA ˚ ˚ Ring Above\r\n // - U+02DB ˛ ˛ Ogonek\r\n // - U+02DC ˜ ˜ Small Tilde\r\n // - U+02DD ˝ ˝ Double Acute Accent\r\n // Latin Extended Additional, 1E00–1EFF\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\r\n\r\n var wordDiff = new _base2['default'](true);\r\n exports.wordDiff = wordDiff;\r\n var wordWithSpaceDiff = new _base2['default']();\r\n exports.wordWithSpaceDiff = wordWithSpaceDiff;\r\n wordDiff.tokenize = wordWithSpaceDiff.tokenize = function (value) {\r\n var tokens = value.split(/(\\s+|\\b)/);\r\n\r\n // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\r\n for (var i = 0; i < tokens.length - 1; i++) {\r\n // If we have an empty string in the next field and we have only word chars before and after, merge\r\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\r\n tokens[i] += tokens[i + 2];\r\n tokens.splice(i + 1, 2);\r\n i--;\r\n }\r\n }\r\n\r\n return tokens;\r\n };\r\n\r\n function diffWords(oldStr, newStr, callback) {\r\n return wordDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n function diffWordsWithSpace(oldStr, newStr, callback) {\r\n return wordWithSpaceDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 5 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffLines = diffLines;\r\n exports.diffTrimmedLines = diffTrimmedLines;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var lineDiff = new _base2['default']();\r\n exports.lineDiff = lineDiff;\r\n var trimmedLineDiff = new _base2['default']();\r\n exports.trimmedLineDiff = trimmedLineDiff;\r\n trimmedLineDiff.ignoreTrim = true;\r\n\r\n lineDiff.tokenize = trimmedLineDiff.tokenize = function (value) {\r\n var retLines = [],\r\n lines = value.split(/^/m);\r\n for (var i = 0; i < lines.length; i++) {\r\n var line = lines[i],\r\n lastLine = lines[i - 1],\r\n lastLineLastChar = lastLine && lastLine[lastLine.length - 1];\r\n\r\n // Merge lines that may contain windows new lines\r\n if (line === '\\n' && lastLineLastChar === '\\r') {\r\n retLines[retLines.length - 1] = retLines[retLines.length - 1].slice(0, -1) + '\\r\\n';\r\n } else {\r\n if (this.ignoreTrim) {\r\n line = line.trim();\r\n // add a newline unless this is the last line.\r\n if (i < lines.length - 1) {\r\n line += '\\n';\r\n }\r\n }\r\n retLines.push(line);\r\n }\r\n }\r\n\r\n return retLines;\r\n };\r\n\r\n function diffLines(oldStr, newStr, callback) {\r\n return lineDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n function diffTrimmedLines(oldStr, newStr, callback) {\r\n return trimmedLineDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 6 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffSentences = diffSentences;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var sentenceDiff = new _base2['default']();\r\n exports.sentenceDiff = sentenceDiff;\r\n sentenceDiff.tokenize = function (value) {\r\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\r\n };\r\n\r\n function diffSentences(oldStr, newStr, callback) {\r\n return sentenceDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 7 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffCss = diffCss;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var cssDiff = new _base2['default']();\r\n exports.cssDiff = cssDiff;\r\n cssDiff.tokenize = function (value) {\r\n return value.split(/([{}:;,]|\\s+)/);\r\n };\r\n\r\n function diffCss(oldStr, newStr, callback) {\r\n return cssDiff.diff(oldStr, newStr, callback);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 8 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.diffJson = diffJson;\r\n exports.canonicalize = canonicalize;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var _line = __webpack_require__(5);\r\n\r\n var objectPrototypeToString = Object.prototype.toString;\r\n\r\n var jsonDiff = new _base2['default']();\r\n // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\r\n // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\r\n exports.jsonDiff = jsonDiff;\r\n jsonDiff.useLongestToken = true;\r\n\r\n jsonDiff.tokenize = _line.lineDiff.tokenize;\r\n jsonDiff.castInput = function (value) {\r\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, ' ');\r\n };\r\n jsonDiff.equals = function (left, right) {\r\n return _base2['default'].prototype.equals(left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'));\r\n };\r\n\r\n function diffJson(oldObj, newObj, callback) {\r\n return jsonDiff.diff(oldObj, newObj, callback);\r\n }\r\n\r\n // This function handles the presence of circular references by bailing out when encountering an\r\n // object that is already on the \"stack\" of items being processed.\r\n\r\n function canonicalize(obj, stack, replacementStack) {\r\n stack = stack || [];\r\n replacementStack = replacementStack || [];\r\n\r\n var i = undefined;\r\n\r\n for (i = 0; i < stack.length; i += 1) {\r\n if (stack[i] === obj) {\r\n return replacementStack[i];\r\n }\r\n }\r\n\r\n var canonicalizedObj = undefined;\r\n\r\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\r\n stack.push(obj);\r\n canonicalizedObj = new Array(obj.length);\r\n replacementStack.push(canonicalizedObj);\r\n for (i = 0; i < obj.length; i += 1) {\r\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);\r\n }\r\n stack.pop();\r\n replacementStack.pop();\r\n } else if (typeof obj === 'object' && obj !== null) {\r\n stack.push(obj);\r\n canonicalizedObj = {};\r\n replacementStack.push(canonicalizedObj);\r\n var sortedKeys = [],\r\n key = undefined;\r\n for (key in obj) {\r\n /* istanbul ignore else */\r\n if (obj.hasOwnProperty(key)) {\r\n sortedKeys.push(key);\r\n }\r\n }\r\n sortedKeys.sort();\r\n for (i = 0; i < sortedKeys.length; i += 1) {\r\n key = sortedKeys[i];\r\n canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);\r\n }\r\n stack.pop();\r\n replacementStack.pop();\r\n } else {\r\n canonicalizedObj = obj;\r\n }\r\n return canonicalizedObj;\r\n }\r\n\r\n\r\n/***/ },\r\n/* 9 */\r\n/***/ function(module, exports) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.applyPatch = applyPatch;\r\n\r\n function applyPatch(oldStr, uniDiff) {\r\n var diffstr = uniDiff.split('\\n'),\r\n hunks = [],\r\n i = 0,\r\n remEOFNL = false,\r\n addEOFNL = false;\r\n\r\n // Skip to the first change hunk\r\n while (i < diffstr.length && !/^@@/.test(diffstr[i])) {\r\n i++;\r\n }\r\n\r\n // Parse the unified diff\r\n for (; i < diffstr.length; i++) {\r\n if (diffstr[i][0] === '@') {\r\n var chnukHeader = diffstr[i].split(/@@ -(\\d+),(\\d+) \\+(\\d+),(\\d+) @@/);\r\n hunks.unshift({\r\n start: chnukHeader[3],\r\n oldlength: +chnukHeader[2],\r\n removed: [],\r\n newlength: chnukHeader[4],\r\n added: []\r\n });\r\n } else if (diffstr[i][0] === '+') {\r\n hunks[0].added.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === '-') {\r\n hunks[0].removed.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === ' ') {\r\n hunks[0].added.push(diffstr[i].substr(1));\r\n hunks[0].removed.push(diffstr[i].substr(1));\r\n } else if (diffstr[i][0] === '\\\\') {\r\n if (diffstr[i - 1][0] === '+') {\r\n remEOFNL = true;\r\n } else if (diffstr[i - 1][0] === '-') {\r\n addEOFNL = true;\r\n }\r\n }\r\n }\r\n\r\n // Apply the diff to the input\r\n var lines = oldStr.split('\\n');\r\n for (i = hunks.length - 1; i >= 0; i--) {\r\n var hunk = hunks[i];\r\n // Sanity check the input string. Bail if we don't match.\r\n for (var j = 0; j < hunk.oldlength; j++) {\r\n if (lines[hunk.start - 1 + j] !== hunk.removed[j]) {\r\n return false;\r\n }\r\n }\r\n Array.prototype.splice.apply(lines, [hunk.start - 1, hunk.oldlength].concat(hunk.added));\r\n }\r\n\r\n // Handle EOFNL insertion/removal\r\n if (remEOFNL) {\r\n while (!lines[lines.length - 1]) {\r\n lines.pop();\r\n }\r\n } else if (addEOFNL) {\r\n lines.push('');\r\n }\r\n return lines.join('\\n');\r\n }\r\n\r\n\r\n/***/ },\r\n/* 10 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.structuredPatch = structuredPatch;\r\n exports.createTwoFilesPatch = createTwoFilesPatch;\r\n exports.createPatch = createPatch;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _diffPatch = __webpack_require__(11);\r\n\r\n var _utilMap = __webpack_require__(2);\r\n\r\n var _utilMap2 = _interopRequireDefault(_utilMap);\r\n\r\n function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n if (!options) {\r\n options = { context: 4 };\r\n }\r\n\r\n var diff = _diffPatch.patchDiff.diff(oldStr, newStr);\r\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\r\n\r\n function contextLines(lines) {\r\n return _utilMap2['default'](lines, function (entry) {\r\n return ' ' + entry;\r\n });\r\n }\r\n\r\n var hunks = [];\r\n var oldRangeStart = 0,\r\n newRangeStart = 0,\r\n curRange = [],\r\n oldLine = 1,\r\n newLine = 1;\r\n\r\n var _loop = function (i) {\r\n var current = diff[i],\r\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\r\n current.lines = lines;\r\n\r\n if (current.added || current.removed) {\r\n // If we have previous context, start with that\r\n if (!oldRangeStart) {\r\n var prev = diff[i - 1];\r\n oldRangeStart = oldLine;\r\n newRangeStart = newLine;\r\n\r\n if (prev) {\r\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\r\n oldRangeStart -= curRange.length;\r\n newRangeStart -= curRange.length;\r\n }\r\n }\r\n\r\n // Output our changes\r\n curRange.push.apply(curRange, _utilMap2['default'](lines, function (entry) {\r\n return (current.added ? '+' : '-') + entry;\r\n }));\r\n\r\n // Track the updated file position\r\n if (current.added) {\r\n newLine += lines.length;\r\n } else {\r\n oldLine += lines.length;\r\n }\r\n } else {\r\n // Identical context lines. Track line changes\r\n if (oldRangeStart) {\r\n // Close out any changes that have been output (or join overlapping)\r\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\r\n // Overlapping\r\n curRange.push.apply(curRange, contextLines(lines));\r\n } else {\r\n // end the range and output\r\n var contextSize = Math.min(lines.length, options.context);\r\n curRange.push.apply(curRange, contextLines(lines.slice(0, contextSize)));\r\n\r\n var hunk = {\r\n oldStart: oldRangeStart,\r\n oldLines: oldLine - oldRangeStart + contextSize,\r\n newStart: newRangeStart,\r\n newLines: newLine - newRangeStart + contextSize,\r\n lines: curRange\r\n };\r\n if (i >= diff.length - 2 && lines.length <= options.context) {\r\n // EOF is inside this hunk\r\n var oldEOFNewline = /\\n$/.test(oldStr);\r\n var newEOFNewline = /\\n$/.test(newStr);\r\n if (lines.length == 0 && !oldEOFNewline) {\r\n // special case: old has no eol and no trailing context; no-nl can end up before adds\r\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\r\n } else if (!oldEOFNewline || !newEOFNewline) {\r\n curRange.push('\\\\ No newline at end of file');\r\n }\r\n }\r\n hunks.push(hunk);\r\n\r\n oldRangeStart = 0;\r\n newRangeStart = 0;\r\n curRange = [];\r\n }\r\n }\r\n oldLine += lines.length;\r\n newLine += lines.length;\r\n }\r\n };\r\n\r\n for (var i = 0; i < diff.length; i++) {\r\n _loop(i);\r\n }\r\n\r\n return {\r\n oldFileName: oldFileName, newFileName: newFileName,\r\n oldHeader: oldHeader, newHeader: newHeader,\r\n hunks: hunks\r\n };\r\n }\r\n\r\n function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\r\n\r\n var ret = [];\r\n if (oldFileName == newFileName) {\r\n ret.push('Index: ' + oldFileName);\r\n }\r\n ret.push('===================================================================');\r\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\r\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\r\n\r\n for (var i = 0; i < diff.hunks.length; i++) {\r\n var hunk = diff.hunks[i];\r\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\r\n ret.push.apply(ret, hunk.lines);\r\n }\r\n\r\n return ret.join('\\n') + '\\n';\r\n }\r\n\r\n function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\r\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\r\n }\r\n\r\n\r\n/***/ },\r\n/* 11 */\r\n/***/ function(module, exports, __webpack_require__) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n // istanbul ignore next\r\n\r\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\n var _base = __webpack_require__(1);\r\n\r\n var _base2 = _interopRequireDefault(_base);\r\n\r\n var patchDiff = new _base2['default']();\r\n exports.patchDiff = patchDiff;\r\n patchDiff.tokenize = function (value) {\r\n var ret = [],\r\n linesAndNewlines = value.split(/(\\n|\\r\\n)/);\r\n\r\n // Ignore the final empty token that occurs if the string ends with a new line\r\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\r\n linesAndNewlines.pop();\r\n }\r\n\r\n // Merge the content and line separators into single tokens\r\n for (var i = 0; i < linesAndNewlines.length; i++) {\r\n var line = linesAndNewlines[i];\r\n\r\n if (i % 2) {\r\n ret[ret.length - 1] += line;\r\n } else {\r\n ret.push(line);\r\n }\r\n }\r\n return ret;\r\n };\r\n\r\n\r\n/***/ },\r\n/* 12 */\r\n/***/ function(module, exports) {\r\n\r\n // See: http://code.google.com/p/google-diff-match-patch/wiki/API\r\n \"use strict\";\r\n\r\n exports.__esModule = true;\r\n exports.convertChangesToDMP = convertChangesToDMP;\r\n\r\n function convertChangesToDMP(changes) {\r\n var ret = [],\r\n change = undefined,\r\n operation = undefined;\r\n for (var i = 0; i < changes.length; i++) {\r\n change = changes[i];\r\n if (change.added) {\r\n operation = 1;\r\n } else if (change.removed) {\r\n operation = -1;\r\n } else {\r\n operation = 0;\r\n }\r\n\r\n ret.push([operation, change.value]);\r\n }\r\n return ret;\r\n }\r\n\r\n\r\n/***/ },\r\n/* 13 */\r\n/***/ function(module, exports) {\r\n\r\n 'use strict';\r\n\r\n exports.__esModule = true;\r\n exports.convertChangesToXML = convertChangesToXML;\r\n\r\n function convertChangesToXML(changes) {\r\n var ret = [];\r\n for (var i = 0; i < changes.length; i++) {\r\n var change = changes[i];\r\n if (change.added) {\r\n ret.push('');\r\n } else if (change.removed) {\r\n ret.push('');\r\n }\r\n\r\n ret.push(escapeHTML(change.value));\r\n\r\n if (change.added) {\r\n ret.push('');\r\n } else if (change.removed) {\r\n ret.push('');\r\n }\r\n }\r\n return ret.join('');\r\n }\r\n\r\n function escapeHTML(s) {\r\n var n = s;\r\n n = n.replace(/&/g, '&');\r\n n = n.replace(//g, '>');\r\n n = n.replace(/\"/g, '"');\r\n\r\n return n;\r\n }\r\n\r\n\r\n/***/ }\r\n/******/ ])\r\n});\r\n;","let emojis = 'search,+1,-1,100,1234,8ball,a,ab,abc,abcd,accept,aerial_tramway,airplane,alarm_clock,alien,ambulance,anchor,angel,anger,angry,anguished,ant,apple,aquarius,aries,arrow_backward,arrow_double_down,arrow_double_up,arrow_down,arrow_down_small,arrow_forward,arrow_heading_down,arrow_heading_up,arrow_left,arrow_lower_left,arrow_lower_right,arrow_right,arrow_right_hook,arrow_up,arrow_up_down,arrow_up_small,arrow_upper_left,arrow_upper_right,arrows_clockwise,arrows_counterclockwise,art,articulated_lorry,astonished,atm,b,baby,baby_bottle,baby_chick,baby_symbol,back,baggage_claim,balloon,ballot_box_with_check,bamboo,banana,bangbang,bank,bar_chart,barber,baseball,basketball,bath,bathtub,battery,bear,bee,beer,beers,beetle,beginner,bell,bento,bicyclist,bike,bikini,bird,birthday,black_circle,black_joker,black_medium_small_square,black_medium_square,black_nib,black_small_square,black_square,black_square_button,blossom,blowfish,blue_book,blue_car,blue_heart,blush,boar,boat,bomb,book,bookmark,bookmark_tabs,books,boom,boot,bouquet,bow,bowling,bowtie,boy,bread,bride_with_veil,bridge_at_night,briefcase,broken_heart,bug,bulb,bullettrain_front,bullettrain_side,bus,busstop,bust_in_silhouette,busts_in_silhouette,cactus,cake,calendar,calling,camel,camera,cancer,candy,capital_abcd,capricorn,car,card_index,carousel_horse,cat,cat2,cd,chart,chart_with_downwards_trend,chart_with_upwards_trend,checkered_flag,cherries,cherry_blossom,chestnut,chicken,children_crossing,chocolate_bar,christmas_tree,church,cinema,circus_tent,city_sunrise,city_sunset,cl,clap,clapper,clipboard,clock1,clock10,clock1030,clock11,clock1130,clock12,clock1230,clock130,clock2,clock230,clock3,clock330,clock4,clock430,clock5,clock530,clock6,clock630,clock7,clock730,clock8,clock830,clock9,clock930,closed_book,closed_lock_with_key,closed_umbrella,cloud,clubs,cn,cocktail,coffee,cold_sweat,collision,computer,confetti_ball,confounded,confused,congratulations,construction,construction_worker,convenience_store,cookie,cool,cop,copyright,corn,couple,couple_with_heart,couplekiss,cow,cow2,credit_card,crescent_moon,crocodile,crossed_flags,crown,cry,crying_cat_face,crystal_ball,cupid,curly_loop,currency_exchange,curry,custard,customs,cyclone,dancer,dancers,dango,dart,dash,date,de,deciduous_tree,department_store,diamond_shape_with_a_dot_inside,diamonds,disappointed,disappointed_relieved,dizzy,dizzy_face,do_not_litter,dog,dog2,dollar,dolls,dolphin,donut,door,doughnut,dragon,dragon_face,dress,dromedary_camel,droplet,dvd,e-mail,ear,ear_of_rice,earth_africa,earth_americas,earth_asia,egg,eggplant,eight,eight_pointed_black_star,eight_spoked_asterisk,electric_plug,elephant,email,end,envelope,es,euro,european_castle,european_post_office,evergreen_tree,exclamation,expressionless,eyeglasses,eyes,facepunch,factory,fallen_leaf,family,fast_forward,fax,fearful,feelsgood,feet,ferris_wheel,file_folder,finnadie,fire,fire_engine,fireworks,first_quarter_moon,first_quarter_moon_with_face,fish,fish_cake,fishing_pole_and_fish,fist,five,flags,flashlight,floppy_disk,flower_playing_cards,flushed,foggy,football,fork_and_knife,fountain,four,four_leaf_clover,fr,free,fried_shrimp,fries,frog,frowning,fu,fuelpump,full_moon,full_moon_with_face,game_die,gb,gem,gemini,ghost,gift,gift_heart,girl,globe_with_meridians,goat,goberserk,godmode,golf,grapes,green_apple,green_book,green_heart,grey_exclamation,grey_question,grimacing,grin,grinning,guardsman,guitar,gun,haircut,hamburger,hammer,hamster,hand,handbag,hankey,hash,hatched_chick,hatching_chick,headphones,hear_no_evil,heart,heart_decoration,heart_eyes,heart_eyes_cat,heartbeat,heartpulse,hearts,heavy_check_mark,heavy_division_sign,heavy_dollar_sign,heavy_exclamation_mark,heavy_minus_sign,heavy_multiplication_x,heavy_plus_sign,helicopter,herb,hibiscus,high_brightness,high_heel,hocho,honey_pot,honeybee,horse,horse_racing,hospital,hotel,hotsprings,hourglass,hourglass_flowing_sand,house,house_with_garden,hurtrealbad,hushed,ice_cream,icecream,id,ideograph_advantage,imp,inbox_tray,incoming_envelope,information_desk_person,information_source,innocent,interrobang,iphone,it,izakaya_lantern,jack_o_lantern,japan,japanese_castle,japanese_goblin,japanese_ogre,jeans,joy,joy_cat,jp,key,keycap_ten,kimono,kiss,kissing,kissing_cat,kissing_closed_eyes,kissing_face,kissing_heart,kissing_smiling_eyes,koala,koko,kr,large_blue_circle,large_blue_diamond,large_orange_diamond,last_quarter_moon,last_quarter_moon_with_face,laughing,leaves,ledger,left_luggage,left_right_arrow,leftwards_arrow_with_hook,lemon,leo,leopard,libra,light_rail,link,lips,lipstick,lock,lock_with_ink_pen,lollipop,loop,loudspeaker,love_hotel,love_letter,low_brightness,m,mag,mag_right,mahjong,mailbox,mailbox_closed,mailbox_with_mail,mailbox_with_no_mail,man,man_with_gua_pi_mao,man_with_turban,mans_shoe,maple_leaf,mask,massage,meat_on_bone,mega,melon,memo,mens,metal,metro,microphone,microscope,milky_way,minibus,minidisc,mobile_phone_off,money_with_wings,moneybag,monkey,monkey_face,monorail,mortar_board,mount_fuji,mountain_bicyclist,mountain_cableway,mountain_railway,mouse,mouse2,movie_camera,moyai,muscle,mushroom,musical_keyboard,musical_note,musical_score,mute,nail_care,name_badge,neckbeard,necktie,negative_squared_cross_mark,neutral_face,new,new_moon,new_moon_with_face,newspaper,ng,nine,no_bell,no_bicycles,no_entry,no_entry_sign,no_good,no_mobile_phones,no_mouth,no_pedestrians,no_smoking,non-potable_water,nose,notebook,notebook_with_decorative_cover,notes,nut_and_bolt,o,o2,ocean,octocat,octopus,oden,office,ok,ok_hand,ok_woman,older_man,older_woman,on,oncoming_automobile,oncoming_bus,oncoming_police_car,oncoming_taxi,one,open_file_folder,open_hands,open_mouth,ophiuchus,orange_book,outbox_tray,ox,package,page_facing_up,page_with_curl,pager,palm_tree,panda_face,paperclip,parking,part_alternation_mark,partly_sunny,passport_control,paw_prints,peach,pear,pencil,pencil2,penguin,pensive,performing_arts,persevere,person_frowning,person_with_blond_hair,person_with_pouting_face,phone,pig,pig2,pig_nose,pill,pineapple,pisces,pizza,plus1,point_down,point_left,point_right,point_up,point_up_2,police_car,poodle,poop,post_office,postal_horn,postbox,potable_water,pouch,poultry_leg,pound,pouting_cat,pray,princess,punch,purple_heart,purse,pushpin,put_litter_in_its_place,question,rabbit,rabbit2,racehorse,radio,radio_button,rage,rage1,rage2,rage3,rage4,railway_car,rainbow,raised_hand,raised_hands,raising_hand,ram,ramen,rat,recycle,red_car,red_circle,registered,relaxed,relieved,repeat,repeat_one,restroom,revolving_hearts,rewind,ribbon,rice,rice_ball,rice_cracker,rice_scene,ring,rocket,roller_coaster,rooster,rose,rotating_light,round_pushpin,rowboat,ru,rugby_football,runner,running,running_shirt_with_sash,sa,sagittarius,sailboat,sake,sandal,santa,satellite,satisfied,saxophone,school,school_satchel,scissors,scorpius,scream,scream_cat,scroll,seat,secret,see_no_evil,seedling,seven,shaved_ice,sheep,shell,ship,shipit,shirt,shit,shoe,shower,signal_strength,six,six_pointed_star,ski,skull,sleeping,sleepy,slot_machine,small_blue_diamond,small_orange_diamond,small_red_triangle,small_red_triangle_down,smile,smile_cat,smiley,smiley_cat,smiling_imp,smirk,smirk_cat,smoking,snail,snake,snowboarder,snowflake,snowman,sob,soccer,soon,sos,sound,space_invader,spades,spaghetti,sparkle,sparkler,sparkles,sparkling_heart,speak_no_evil,speaker,speech_balloon,speedboat,squirrel,star,star2,stars,station,statue_of_liberty,steam_locomotive,stew,straight_ruler,strawberry,stuck_out_tongue,stuck_out_tongue_closed_eyes,stuck_out_tongue_winking_eye,sun_with_face,sunflower,sunglasses,sunny,sunrise,sunrise_over_mountains,surfer,sushi,suspect,suspension_railway,sweat,sweat_drops,sweat_smile,sweet_potato,swimmer,symbols,syringe,tada,tanabata_tree,tangerine,taurus,taxi,tea,telephone,telephone_receiver,telescope,tennis,tent,thought_balloon,three,thumbsdown,thumbsup,ticket,tiger,tiger2,tired_face,tm,toilet,tokyo_tower,tomato,tongue,top,tophat,tractor,traffic_light,train,train2,tram,triangular_flag_on_post,triangular_ruler,trident,triumph,trolleybus,trollface,trophy,tropical_drink,tropical_fish,truck,trumpet,tshirt,tulip,turtle,tv,twisted_rightwards_arrows,two,two_hearts,two_men_holding_hands,two_women_holding_hands,u5272,u5408,u55b6,u6307,u6708,u6709,u6e80,u7121,u7533,u7981,u7a7a,uk,umbrella,unamused,underage,unlock,up,us,v,vertical_traffic_light,vhs,vibration_mode,video_camera,video_game,violin,virgo,volcano,vs,walking,waning_crescent_moon,waning_gibbous_moon,warning,watch,water_buffalo,watermelon,wave,wavy_dash,waxing_crescent_moon,waxing_gibbous_moon,wc,weary,wedding,whale,whale2,wheelchair,white_check_mark,white_circle,white_flower,white_large_square,white_medium_small_square,white_medium_square,white_small_square,white_square_button,wind_chime,wine_glass,wink,wolf,woman,womans_clothes,womans_hat,womens,worried,wrench,x,yellow_heart,yen,yum,zap,zero,zzz';\r\n\r\nexport default emojis.split(',');\r\n",";(function(w, undefined) {\r\n 'use strict';\r\n\r\n var ILID = ('il' + Math.random()).replace(/0\\./g, '');\r\n var EVENTS = 'load error';\r\n var ALLOWED_NODE_TYPES = [\r\n 1, // ELEMENT_NODE\r\n 9, // DOCUMENT_NODE\r\n 11 // DOCUMENT_FRAGMENT_NODE\r\n ];\r\n\r\n /**\r\n * Return type of the value.\r\n *\r\n * @param {Mixed} value\r\n *\r\n * @return {String}\r\n */\r\n function type(value) {\r\n if (value == null) {\r\n return String(value);\r\n }\r\n if (typeof value === 'object' || typeof value === 'function') {\r\n return (value instanceof w.NodeList && 'nodelist') ||\r\n (value instanceof w.HTMLCollection && 'htmlcollection') ||\r\n Object.prototype.toString.call(value).match(/\\s([a-z]+)/i)[1].toLowerCase();\r\n }\r\n return typeof value;\r\n }\r\n\r\n /**\r\n * Convert array-like objects into an array.\r\n *\r\n * @param {Mixed} collection\r\n *\r\n * @return {Array}\r\n */\r\n function toArray(collection) {\r\n switch (type(collection)) {\r\n case 'array':\r\n return collection;\r\n case 'undefined':\r\n return [];\r\n case 'nodelist':\r\n case 'htmlcollection':\r\n case 'arguments':\r\n var arr = [];\r\n for (var i = 0, l = collection.length; i < l; i++) {\r\n if (i in collection) {\r\n arr.push(collection[i]);\r\n }\r\n }\r\n return arr;\r\n default:\r\n return [collection];\r\n }\r\n }\r\n\r\n /**\r\n * Check whether the value is in an array.\r\n *\r\n * @param {Mixed} value\r\n * @param {Array} array\r\n *\r\n * @return {Boolean}\r\n */\r\n function inArray(value, array) {\r\n if (type(array) !== 'array') {\r\n return -1;\r\n }\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i=0, l = array.length; i < l; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Callback proxy.\r\n *\r\n * Ensures that callback will receive a specific context.\r\n *\r\n * @param {Mixed} context\r\n * @param {Function} callback\r\n */\r\n function proxy(context, callback) {\r\n return function () {\r\n return callback.apply(context, arguments);\r\n };\r\n }\r\n\r\n /**\r\n * Add event listeners to element.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n *\r\n * @return {Void}\r\n */\r\n function bind(element, eventName, handler) {\r\n listener(element, eventName, handler);\r\n }\r\n\r\n /**\r\n * Remove event listeners from element.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n *\r\n * @return {Void}\r\n */\r\n function unbind(element, eventName, handler) {\r\n listener(element, eventName, handler, 1);\r\n }\r\n\r\n /**\r\n * Manage element event listeners.\r\n *\r\n * @param {Node} element\r\n * @param {Event} eventName\r\n * @param {Function} handler\r\n * @param {Bool} remove\r\n *\r\n * @return {Void}\r\n */\r\n function listener(element, eventName, handler, remove) {\r\n var events = eventName.split(' ');\r\n for (var i = 0, l = events.length; i < l; i++) {\r\n if (element.addEventListener) {\r\n element[remove ? 'removeEventListener' : 'addEventListener'](events[i], handler, false);\r\n } else if (element.attachEvent) {\r\n element[remove ? 'detachEvent' : 'attachEvent']('on' + events[i], handler);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Callbacks handler.\r\n */\r\n function Callbacks() {\r\n var self = this;\r\n var callbacks = {};\r\n var i, l;\r\n\r\n /**\r\n * Registers callbacks.\r\n *\r\n * @param {Mixed} name\r\n * @param {Mixed} fn\r\n *\r\n * @return {Void}\r\n */\r\n self.on = function (name, fn) {\r\n callbacks[name] = callbacks[name] || [];\r\n if (type(fn) === 'function' && inArray(fn, callbacks[name]) === -1) {\r\n callbacks[name].push(fn);\r\n }\r\n };\r\n\r\n /**\r\n * Remove one or all callbacks.\r\n *\r\n * @param {String} name\r\n * @param {Mixed} fn\r\n *\r\n * @return {Void}\r\n */\r\n self.off = function (name, fn) {\r\n callbacks[name] = callbacks[name] || [];\r\n if (fn === undefined) {\r\n callbacks[name].length = 0;\r\n } else {\r\n var index = inArray(fn, callbacks[name]);\r\n if (index !== -1) {\r\n callbacks[name].splice(index, 1);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Trigger callbacks for event.\r\n *\r\n * @param {String} name\r\n * @param {Mixed} context\r\n * @param {Mixed} argN\r\n *\r\n * @return {Void}\r\n */\r\n self.trigger = function (name, context) {\r\n if (callbacks[name]) {\r\n for (i = 0, l = callbacks[name].length; i < l; i++) {\r\n callbacks[name][i].apply(context, Array.prototype.slice.call(arguments, 2));\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Executes callback(s) when images have finished with loading.\r\n *\r\n * @param {NodeList} collection Collection of containers, images, or both.\r\n * @param {Function} options ImagesLoaded options.\r\n *\r\n * @return {Void}\r\n */\r\n function ImagesLoaded(collection, options) {\r\n // Fill unassigned options with defaults\r\n options = options || {};\r\n for (var key in ImagesLoaded.defaults) {\r\n if (!options.hasOwnProperty(key)) {\r\n options[key] = ImagesLoaded.defaults[key];\r\n }\r\n }\r\n\r\n // Private variables\r\n var self = this instanceof ImagesLoaded ? this : {};\r\n var callbacks = new Callbacks();\r\n var tIndex;\r\n\r\n // Element holders\r\n self.images = [];\r\n self.loaded = [];\r\n self.pending = [];\r\n self.proper = [];\r\n self.broken = [];\r\n\r\n // States\r\n self.isPending = true;\r\n self.isDone = false;\r\n self.isFailed = false;\r\n\r\n // Extract images\r\n collection = toArray(collection);\r\n for (var c = 0, cl = collection.length; c < cl; c++) {\r\n if (collection[c].nodeName === 'IMG') {\r\n self.images.push(collection[c]);\r\n } else if (inArray(collection[c].nodeType, ALLOWED_NODE_TYPES) !== -1) {\r\n self.images = self.images.concat(toArray(collection[c].getElementsByTagName('img')));\r\n }\r\n }\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.done = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('done', callback);\r\n } else if (self.isDone && type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for fail state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.fail = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('fail', callback);\r\n } else if (self.isFailed && type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.always = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('always', callback);\r\n } else if (type(callback) === 'function') {\r\n callback.call(self);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Registers or executes callback for done state.\r\n *\r\n * @param {Function} callback\r\n *\r\n * @return {ImagesLoaded}\r\n */\r\n self.progress = function (callback) {\r\n if (self.isPending) {\r\n callbacks.on('progress', callback);\r\n }\r\n // Retroactivity\r\n for (var i = 0, l = self.loaded.length; i < l; i++) {\r\n callback.call(self, self.loaded[i], self.loaded[i][ILID].isBroken);\r\n }\r\n return self;\r\n };\r\n\r\n /**\r\n * Executes proper callbacks when all images has finished with loading.\r\n *\r\n * @return {Void}\r\n */\r\n function doneLoading() {\r\n if (!self.isPending) {\r\n return;\r\n }\r\n // Clear timeout\r\n clearTimeout(tIndex);\r\n // Mark states\r\n self.isPending = false;\r\n self.isDone = self.images.length === self.proper.length;\r\n self.isFailed = !self.isDone;\r\n // Trigger callbacks\r\n callbacks.trigger(self.isDone ? 'done' : 'fail', self);\r\n callbacks.trigger('always', self);\r\n }\r\n\r\n /**\r\n * Terminates the determination process prematurely.\r\n *\r\n * @return {Void}\r\n */\r\n function terminate() {\r\n // Mark still pending images as broken\r\n while (self.pending.length) {\r\n imgLoaded(self.pending[0], 1);\r\n }\r\n }\r\n\r\n /**\r\n * Image load event handler.\r\n *\r\n * @param {Event} event\r\n *\r\n * @return {Void}\r\n */\r\n function imgLoadedHandler(event) {\r\n /*jshint validthis:true */\r\n event = event || w.event;\r\n // Unbind loaded handler from temporary image\r\n unbind(this[ILID].tmpImg, EVENTS, imgLoadedHandler);\r\n // Leave the temporary image for garbage collection\r\n this[ILID].tmpImg = null;\r\n // Don't proceed if image is already loaded\r\n if (inArray(this, self.loaded) === -1) {\r\n imgLoaded(this, event.type !== 'load');\r\n }\r\n }\r\n\r\n /**\r\n * Mark image as loaded.\r\n *\r\n * @param {Node} img Image element.\r\n * @param {Boolean} isBroken Whether the image is broken.\r\n *\r\n * @return {Void}\r\n */\r\n function imgLoaded(img, isBroken) {\r\n var pendingIndex = inArray(img, self.pending);\r\n if (pendingIndex === -1) {\r\n return;\r\n } else {\r\n self.pending.splice(pendingIndex, 1);\r\n }\r\n // Store element in loaded images array\r\n self.loaded.push(img);\r\n // Keep track of broken and properly loaded images\r\n self[isBroken ? 'broken' : 'proper'].push(img);\r\n // Cache image state for future calls\r\n img[ILID].isBroken = isBroken;\r\n img[ILID].src = img.src;\r\n // Trigger progress callback\r\n setTimeout(function () {\r\n callbacks.trigger('progress', self, img, isBroken);\r\n });\r\n // Call doneLoading\r\n if (self.images.length === self.loaded.length) {\r\n setTimeout(doneLoading);\r\n }\r\n }\r\n\r\n /**\r\n * Checks the status of all images.\r\n *\r\n * @return {Void}\r\n */\r\n function check() {\r\n // If no images, trigger immediately\r\n if (!self.images.length) {\r\n doneLoading();\r\n return;\r\n }\r\n // Actually check the images\r\n var img;\r\n for (var i = 0, il = self.images.length; i < il; i++) {\r\n img = self.images[i];\r\n img[ILID] = img[ILID] || {};\r\n // Add image to pending array\r\n self.pending.push(img);\r\n // Find out whether this image has been already checked for status.\r\n // If it was, and src has not changed, call imgLoaded.\r\n if (img[ILID].isBroken !== undefined && img[ILID].src === img.src) {\r\n imgLoaded(img, img[ILID].isBroken);\r\n continue;\r\n }\r\n // If complete is true and browser supports natural sizes,\r\n // try to check for image status manually.\r\n if (img.complete && img.naturalWidth !== undefined) {\r\n imgLoaded(img, img.naturalWidth === 0);\r\n continue;\r\n }\r\n // If none of the checks above matched, simulate loading on detached element.\r\n img[ILID].tmpImg = document.createElement('img');\r\n bind(img[ILID].tmpImg, EVENTS, proxy(img, imgLoadedHandler));\r\n img[ILID].tmpImg.src = img.src;\r\n }\r\n }\r\n\r\n // Defer the images check to next process tick to give people time to bind progress callbacks.\r\n setTimeout(check);\r\n // Set the timeout\r\n setTimeout(terminate, options.timeout);\r\n // Return the instance\r\n return self;\r\n }\r\n\r\n // Default options\r\n ImagesLoaded.defaults = {\r\n timeout: 10000 // Automatically fail images loading when this time has passed.\r\n };\r\n\r\n // Expose globally\r\n w.ImagesLoaded = ImagesLoaded;\r\n}(window));\r\n","// Generated by CoffeeScript 1.10.0\r\n\r\n/*\r\npaste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.\r\n\r\nhttps://github.com/layerssss/paste.js\r\n */\r\n\r\n(function() {\r\n var $, Paste, createHiddenEditable, dataURLtoBlob, isFocusable;\r\n\r\n $ = window.jQuery;\r\n\r\n $.paste = function(pasteContainer) {\r\n var pm;\r\n if (typeof console !== \"undefined\" && console !== null) {\r\n console.log(\"DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.\");\r\n }\r\n pm = Paste.mountNonInputable(pasteContainer);\r\n return pm._container;\r\n };\r\n\r\n $.fn.pastableNonInputable = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is('textarea, input:text, [contenteditable]')) {\r\n continue;\r\n }\r\n Paste.mountNonInputable(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n $.fn.pastableTextarea = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is(':not(textarea, input:text)')) {\r\n continue;\r\n }\r\n Paste.mountTextarea(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n $.fn.pastableContenteditable = function() {\r\n var el, j, len;\r\n for (j = 0, len = this.length; j < len; j++) {\r\n el = this[j];\r\n if (el._pastable || $(el).is(':not([contenteditable])')) {\r\n continue;\r\n }\r\n Paste.mountContenteditable(el);\r\n el._pastable = true;\r\n }\r\n return this;\r\n };\r\n\r\n dataURLtoBlob = function(dataURL, sliceSize) {\r\n var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, ref, slice;\r\n if (sliceSize == null) {\r\n sliceSize = 512;\r\n }\r\n if (!(m = dataURL.match(/^data\\:([^\\;]+)\\;base64\\,(.+)$/))) {\r\n return null;\r\n }\r\n ref = m, m = ref[0], contentType = ref[1], b64Data = ref[2];\r\n byteCharacters = atob(b64Data);\r\n byteArrays = [];\r\n offset = 0;\r\n while (offset < byteCharacters.length) {\r\n slice = byteCharacters.slice(offset, offset + sliceSize);\r\n byteNumbers = new Array(slice.length);\r\n i = 0;\r\n while (i < slice.length) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n i++;\r\n }\r\n byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n offset += sliceSize;\r\n }\r\n return new Blob(byteArrays, {\r\n type: contentType\r\n });\r\n };\r\n\r\n createHiddenEditable = function() {\r\n return $(document.createElement('div')).attr('contenteditable', true).attr('aria-hidden', true).attr('tabindex', -1).css({\r\n width: 1,\r\n height: 1,\r\n position: 'fixed',\r\n left: -100,\r\n overflow: 'hidden'\r\n });\r\n };\r\n\r\n isFocusable = function(element, hasTabindex) {\r\n var fieldset, focusableIfVisible, img, map, mapName, nodeName;\r\n map = void 0;\r\n mapName = void 0;\r\n img = void 0;\r\n focusableIfVisible = void 0;\r\n fieldset = void 0;\r\n nodeName = element.nodeName.toLowerCase();\r\n if ('area' === nodeName) {\r\n map = element.parentNode;\r\n mapName = map.name;\r\n if (!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {\r\n return false;\r\n }\r\n img = $('img[usemap=\\'#' + mapName + '\\']');\r\n return img.length > 0 && img.is(':visible');\r\n }\r\n if (/^(input|select|textarea|button|object)$/.test(nodeName)) {\r\n focusableIfVisible = !element.disabled;\r\n if (focusableIfVisible) {\r\n fieldset = $(element).closest('fieldset')[0];\r\n if (fieldset) {\r\n focusableIfVisible = !fieldset.disabled;\r\n }\r\n }\r\n } else if ('a' === nodeName) {\r\n focusableIfVisible = element.href || hasTabindex;\r\n } else {\r\n focusableIfVisible = hasTabindex;\r\n }\r\n focusableIfVisible = focusableIfVisible || $(element).is('[contenteditable]');\r\n return focusableIfVisible && $(element).is(':visible');\r\n };\r\n\r\n Paste = (function() {\r\n Paste.prototype._target = null;\r\n\r\n Paste.prototype._container = null;\r\n\r\n Paste.mountNonInputable = function(nonInputable) {\r\n var paste;\r\n paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);\r\n $(nonInputable).on('click', (function(_this) {\r\n return function(ev) {\r\n if (!isFocusable(ev.target, false)) {\r\n return paste._container.focus();\r\n }\r\n };\r\n })(this));\r\n paste._container.on('focus', (function(_this) {\r\n return function() {\r\n return $(nonInputable).addClass('pastable-focus');\r\n };\r\n })(this));\r\n return paste._container.on('blur', (function(_this) {\r\n return function() {\r\n return $(nonInputable).removeClass('pastable-focus');\r\n };\r\n })(this));\r\n };\r\n\r\n Paste.mountTextarea = function(textarea) {\r\n var ctlDown, paste, ref, ref1;\r\n if ((typeof DataTransfer !== \"undefined\" && DataTransfer !== null ? DataTransfer.prototype : void 0) && ((ref = Object.getOwnPropertyDescriptor) != null ? (ref1 = ref.call(Object, DataTransfer.prototype, 'items')) != null ? ref1.get : void 0 : void 0)) {\r\n return this.mountContenteditable(textarea);\r\n }\r\n paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);\r\n ctlDown = false;\r\n $(textarea).on('keyup', function(ev) {\r\n var ref2;\r\n if ((ref2 = ev.keyCode) === 17 || ref2 === 224) {\r\n ctlDown = false;\r\n }\r\n return null;\r\n });\r\n $(textarea).on('keydown', function(ev) {\r\n var ref2;\r\n if ((ref2 = ev.keyCode) === 17 || ref2 === 224) {\r\n ctlDown = true;\r\n }\r\n if ((ev.ctrlKey != null) && (ev.metaKey != null)) {\r\n ctlDown = ev.ctrlKey || ev.metaKey;\r\n }\r\n if (ctlDown && ev.keyCode === 86) {\r\n paste._textarea_focus_stolen = true;\r\n paste._container.focus();\r\n paste._paste_event_fired = false;\r\n setTimeout((function(_this) {\r\n return function() {\r\n if (!paste._paste_event_fired) {\r\n $(textarea).focus();\r\n return paste._textarea_focus_stolen = false;\r\n }\r\n };\r\n })(this), 1);\r\n }\r\n return null;\r\n });\r\n $(textarea).on('paste', (function(_this) {\r\n return function() {};\r\n })(this));\r\n $(textarea).on('focus', (function(_this) {\r\n return function() {\r\n if (!paste._textarea_focus_stolen) {\r\n return $(textarea).addClass('pastable-focus');\r\n }\r\n };\r\n })(this));\r\n $(textarea).on('blur', (function(_this) {\r\n return function() {\r\n if (!paste._textarea_focus_stolen) {\r\n return $(textarea).removeClass('pastable-focus');\r\n }\r\n };\r\n })(this));\r\n $(paste._target).on('_pasteCheckContainerDone', (function(_this) {\r\n return function() {\r\n $(textarea).focus();\r\n return paste._textarea_focus_stolen = false;\r\n };\r\n })(this));\r\n return $(paste._target).on('pasteText', (function(_this) {\r\n return function(ev, data) {\r\n var content, curEnd, curStart;\r\n curStart = $(textarea).prop('selectionStart');\r\n curEnd = $(textarea).prop('selectionEnd');\r\n content = $(textarea).val();\r\n $(textarea).val(\"\" + content.slice(0, curStart) + data.text + content.slice(curEnd));\r\n $(textarea)[0].setSelectionRange(curStart + data.text.length, curStart + data.text.length);\r\n return $(textarea).trigger('change');\r\n };\r\n })(this));\r\n };\r\n\r\n Paste.mountContenteditable = function(contenteditable) {\r\n var paste;\r\n paste = new Paste(contenteditable, contenteditable);\r\n $(contenteditable).on('focus', (function(_this) {\r\n return function() {\r\n return $(contenteditable).addClass('pastable-focus');\r\n };\r\n })(this));\r\n return $(contenteditable).on('blur', (function(_this) {\r\n return function() {\r\n return $(contenteditable).removeClass('pastable-focus');\r\n };\r\n })(this));\r\n };\r\n\r\n function Paste(_container, _target) {\r\n this._container = _container;\r\n this._target = _target;\r\n this._container = $(this._container);\r\n this._target = $(this._target).addClass('pastable');\r\n this._container.on('paste', (function(_this) {\r\n return function(ev) {\r\n var clipboardData, file, item, j, k, len, len1, reader, ref, ref1, ref2, ref3, text;\r\n if (ev.currentTarget !== ev.target) {\r\n return ev.preventDefault();\r\n }\r\n _this._paste_event_fired = true;\r\n if (((ref = ev.originalEvent) != null ? ref.clipboardData : void 0) != null) {\r\n clipboardData = ev.originalEvent.clipboardData;\r\n if (clipboardData.items) {\r\n ref1 = clipboardData.items;\r\n for (j = 0, len = ref1.length; j < len; j++) {\r\n item = ref1[j];\r\n if (item.type.match(/^image\\//)) {\r\n reader = new FileReader();\r\n reader.onload = function(event) {\r\n return _this._handleImage(event.target.result);\r\n };\r\n reader.readAsDataURL(item.getAsFile());\r\n ev.preventDefault();\r\n break;\r\n }\r\n if (item.type === 'text/plain') {\r\n item.getAsString(function(string) {\r\n return _this._target.trigger('pasteText', {\r\n text: string\r\n });\r\n });\r\n }\r\n }\r\n } else {\r\n if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {\r\n text = clipboardData.getData('Text');\r\n setTimeout(function() {\r\n return _this._target.trigger('pasteText', {\r\n text: text\r\n });\r\n }, 1);\r\n }\r\n _this._checkImagesInContainer(function(src) {\r\n return _this._handleImage(src);\r\n });\r\n }\r\n }\r\n if (clipboardData = window.clipboardData) {\r\n if ((ref2 = (text = clipboardData.getData('Text'))) != null ? ref2.length : void 0) {\r\n setTimeout(function() {\r\n _this._target.trigger('pasteText', {\r\n text: text\r\n });\r\n return _this._target.trigger('_pasteCheckContainerDone');\r\n }, 1);\r\n } else {\r\n ref3 = clipboardData.files;\r\n for (k = 0, len1 = ref3.length; k < len1; k++) {\r\n file = ref3[k];\r\n _this._handleImage(URL.createObjectURL(file));\r\n }\r\n _this._checkImagesInContainer(function(src) {});\r\n }\r\n }\r\n return null;\r\n };\r\n })(this));\r\n }\r\n\r\n Paste.prototype._handleImage = function(src) {\r\n var loader;\r\n if (src.match(/^webkit\\-fake\\-url\\:\\/\\//)) {\r\n return this._target.trigger('pasteImageError', {\r\n message: \"You are trying to paste an image in Safari, however we are unable to retieve its data.\"\r\n });\r\n }\r\n loader = new Image();\r\n loader.crossOrigin = \"anonymous\";\r\n loader.onload = (function(_this) {\r\n return function() {\r\n var blob, canvas, ctx, dataURL;\r\n canvas = document.createElement('canvas');\r\n canvas.width = loader.width;\r\n canvas.height = loader.height;\r\n ctx = canvas.getContext('2d');\r\n ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);\r\n dataURL = null;\r\n try {\r\n dataURL = canvas.toDataURL('image/png');\r\n blob = dataURLtoBlob(dataURL);\r\n } catch (undefined) {}\r\n if (dataURL) {\r\n return _this._target.trigger('pasteImage', {\r\n blob: blob,\r\n dataURL: dataURL,\r\n width: loader.width,\r\n height: loader.height\r\n });\r\n }\r\n };\r\n })(this);\r\n loader.onerror = (function(_this) {\r\n return function() {\r\n return _this._target.trigger('pasteImageError', {\r\n message: \"Failed to get image from: \" + src,\r\n url: src\r\n });\r\n };\r\n })(this);\r\n return loader.src = src;\r\n };\r\n\r\n Paste.prototype._checkImagesInContainer = function(cb) {\r\n var img, j, len, ref, timespan;\r\n timespan = Math.floor(1000 * Math.random());\r\n ref = this._container.find('img');\r\n for (j = 0, len = ref.length; j < len; j++) {\r\n img = ref[j];\r\n img[\"_paste_marked_\" + timespan] = true;\r\n }\r\n return setTimeout((function(_this) {\r\n return function() {\r\n var k, len1, ref1;\r\n ref1 = _this._container.find('img');\r\n for (k = 0, len1 = ref1.length; k < len1; k++) {\r\n img = ref1[k];\r\n if (!img[\"_paste_marked_\" + timespan]) {\r\n cb(img.src);\r\n $(img).remove();\r\n }\r\n }\r\n return _this._target.trigger('_pasteCheckContainerDone');\r\n };\r\n })(this), 1);\r\n };\r\n\r\n return Paste;\r\n\r\n })();\r\n\r\n}).call(this);\r\n","(function($) {\r\n $.fn.extend({\r\n insertAtCaret: function(myValue) {\r\n var $t = $(this)[0];\r\n if (document.selection) {\r\n this.focus();\r\n sel = document.selection.createRange();\r\n sel.text = myValue;\r\n this.focus();\r\n } else if ($t.selectionStart || $t.selectionStart == '0') {\r\n var startPos = $t.selectionStart;\r\n var endPos = $t.selectionEnd;\r\n var scrollTop = $t.scrollTop;\r\n $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);\r\n this.focus();\r\n $t.selectionStart = startPos + myValue.length;\r\n $t.selectionEnd = startPos + myValue.length;\r\n $t.scrollTop = scrollTop;\r\n } else {\r\n this.value += myValue;\r\n this.focus();\r\n }\r\n }\r\n })\r\n})(jQuery);","/**\r\n * 轮询插件\r\n * 原理:轮询最小间隔 6s, 最大间隔5min, 轮询节能模式, 当连续1min(10次)获取不到新数据, 轮询间隔 时间 +6s, \r\n * 接着递增 +6/次, 直到最大间隔, 不再递增轮询间隔. 一旦有一次获得新数据, 轮询间隔恢复到最小间隔6s.\r\n * @return {[type]} [description]\r\n */\r\nvar minInterval = 6000; // 轮询最小间隔 6s\r\nvar maxInterval = 300000; // 轮询最大间隔5min\r\nvar incInterval = 6000; // 递增轮询间隔时间 6s\r\n\r\nvar tolerate = 10; // 容忍连续获取不到新数据的(次数), 超过, 就会开始递增轮询间隔时间.\r\n\r\nvar timer = null; // 轮询对象引用\r\n\r\nvar inc = 0; // 轮询次数计数器\r\n\r\nvar interval = minInterval; // 轮询实际轮询间隔\r\n\r\nvar _pollCb = null;\r\nvar _errCb = null;\r\nvar _isPause = false; // 是否暂停\r\n\r\nfunction oneHandler() {\r\n\r\n if (_isPause) {\r\n return;\r\n }\r\n\r\n try { // 捕获轮询执行方法体中的异常, 防止破坏轮询的持续性.\r\n _pollCb && _pollCb(_reset, _stop);\r\n } catch (e) {\r\n _errCb && _errCb(_reset, _stop, e);\r\n\r\n // TODO for debugging\r\n console.log('轮询异常: ' + e);\r\n }\r\n}\r\n\r\n/**\r\n * 轮询处理递归逻辑\r\n * @param {[Function]} pollCb 轮询业务回调\r\n * @param {[Function]} errCb 轮询业务处理异常回到\r\n */\r\nfunction _start() {\r\n // TODO for debugging\r\n // console.log('poll start...');\r\n\r\n _isPause = false;\r\n\r\n oneHandler();\r\n timer = setInterval(function() {\r\n inc++;\r\n oneHandler();\r\n // TODO for debugging\r\n // console.log(interval);\r\n\r\n if (inc > tolerate) { // 超过轮询容忍次数内\r\n\r\n interval = minInterval + (incInterval * (inc - tolerate));\r\n\r\n if (interval <= maxInterval) { // 最大轮询间隔范围内, 逐次递增轮询间隔\r\n clearInterval(timer);\r\n _start();\r\n }\r\n }\r\n }, interval);\r\n}\r\n\r\nfunction _stop() {\r\n // TODO for debugging\r\n // console.log(\"poll stop...\");\r\n\r\n inc = 0;\r\n interval = minInterval;\r\n _isPause = false;\r\n clearInterval(timer);\r\n timer = null;\r\n}\r\n\r\nfunction _reset() {\r\n // TODO for debugging\r\n // console.log(\"poll reset...\");\r\n\r\n _stop();\r\n _start();\r\n}\r\n\r\nfunction _pause() {\r\n // TODO for debugging\r\n // console.log(\"pause reset...\");\r\n _isPause = true;\r\n}\r\n\r\nexport default {\r\n start: function(pollCb, errCb) {\r\n if (timer) {\r\n _stop();\r\n }\r\n _pollCb = pollCb;\r\n _errCb = errCb;\r\n _start();\r\n },\r\n reset: function() {\r\n _reset();\r\n },\r\n stop: function() {\r\n _stop();\r\n },\r\n pause: function() {\r\n _pause();\r\n }\r\n};\r\n","/**\r\n * jQuery CSS Customizable Scrollbar\r\n *\r\n * Copyright 2015, Yuriy Khabarov\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n *\r\n * If you found bug, please contact me via email <13real008@gmail.com>\r\n *\r\n * @author Yuriy Khabarov aka Gromo\r\n * @version 0.2.11\r\n * @url https://github.com/gromo/jquery.scrollbar/\r\n *\r\n */\r\n;\r\n(function (root, factory) {\r\n factory(root.jQuery);\r\n}(window, function ($) {\r\n 'use strict';\r\n\r\n // init flags & variables\r\n var debug = false;\r\n\r\n var browser = {\r\n data: {\r\n index: 0,\r\n name: 'scrollbar'\r\n },\r\n firefox: /firefox/i.test(navigator.userAgent),\r\n macosx: /mac/i.test(navigator.platform),\r\n msedge: /edge\\/\\d+/i.test(navigator.userAgent),\r\n msie: /(msie|trident)/i.test(navigator.userAgent),\r\n mobile: /android|webos|iphone|ipad|ipod|blackberry/i.test(navigator.userAgent),\r\n overlay: null,\r\n scroll: null,\r\n scrolls: [],\r\n webkit: /webkit/i.test(navigator.userAgent) && !/edge\\/\\d+/i.test(navigator.userAgent)\r\n };\r\n\r\n browser.scrolls.add = function (instance) {\r\n this.remove(instance).push(instance);\r\n };\r\n browser.scrolls.remove = function (instance) {\r\n while ($.inArray(instance, this) >= 0) {\r\n this.splice($.inArray(instance, this), 1);\r\n }\r\n return this;\r\n };\r\n\r\n var defaults = {\r\n autoScrollSize: true, // automatically calculate scrollsize\r\n autoUpdate: true, // update scrollbar if content/container size changed\r\n debug: false, // debug mode\r\n disableBodyScroll: false, // disable body scroll if mouse over container\r\n duration: 200, // scroll animate duration in ms\r\n ignoreMobile: false, // ignore mobile devices\r\n ignoreOverlay: false, // ignore browsers with overlay scrollbars (mobile, MacOS)\r\n isRtl: false, // is RTL\r\n scrollStep: 30, // scroll step for scrollbar arrows\r\n showArrows: false, // add class to show arrows\r\n stepScrolling: true, // when scrolling to scrollbar mousedown position\r\n\r\n scrollx: null, // horizontal scroll element\r\n scrolly: null, // vertical scroll element\r\n\r\n onDestroy: null, // callback function on destroy,\r\n onFallback: null, // callback function if scrollbar is not initialized\r\n onInit: null, // callback function on first initialization\r\n onScroll: null, // callback function on content scrolling\r\n onUpdate: null // callback function on init/resize (before scrollbar size calculation)\r\n };\r\n\r\n\r\n var BaseScrollbar = function (container) {\r\n\r\n if (!browser.scroll) {\r\n browser.overlay = isScrollOverlaysContent();\r\n browser.scroll = getBrowserScrollSize();\r\n updateScrollbars();\r\n\r\n // $(window).resize(function () {\r\n // var forceUpdate = false;\r\n // if (browser.scroll && (browser.scroll.height || browser.scroll.width)) {\r\n // var scroll = getBrowserScrollSize();\r\n // if (scroll.height !== browser.scroll.height || scroll.width !== browser.scroll.width) {\r\n // browser.scroll = scroll;\r\n // forceUpdate = true; // handle page zoom\r\n // }\r\n // }\r\n // updateScrollbars(forceUpdate);\r\n // });\r\n \r\n $(window).resize(function () {\r\n updateScrollbars(true);\r\n });\r\n }\r\n\r\n this.container = container;\r\n this.namespace = '.scrollbar_' + browser.data.index++;\r\n this.options = $.extend({}, defaults, window.jQueryScrollbarOptions || {});\r\n this.scrollTo = null;\r\n this.scrollx = {};\r\n this.scrolly = {};\r\n\r\n container.data(browser.data.name, this);\r\n browser.scrolls.add(this);\r\n };\r\n\r\n BaseScrollbar.prototype = {\r\n destroy: function () {\r\n\r\n if (!this.wrapper) {\r\n return;\r\n }\r\n\r\n this.container.removeData(browser.data.name);\r\n browser.scrolls.remove(this);\r\n\r\n // init variables\r\n var scrollLeft = this.container.scrollLeft();\r\n var scrollTop = this.container.scrollTop();\r\n\r\n this.container.insertBefore(this.wrapper).css({\r\n \"height\": \"\",\r\n \"margin\": \"\",\r\n \"max-height\": \"\"\r\n })\r\n .removeClass('scroll-content scroll-scrollx_visible scroll-scrolly_visible')\r\n .off(this.namespace)\r\n .scrollLeft(scrollLeft)\r\n .scrollTop(scrollTop);\r\n\r\n this.scrollx.scroll.removeClass('scroll-scrollx_visible').find('div').addBack().off(this.namespace);\r\n this.scrolly.scroll.removeClass('scroll-scrolly_visible').find('div').addBack().off(this.namespace);\r\n\r\n this.wrapper.remove();\r\n\r\n $(document).add('body').off(this.namespace);\r\n\r\n if ($.isFunction(this.options.onDestroy)) {\r\n this.options.onDestroy.apply(this, [this.container]);\r\n }\r\n },\r\n init: function (options) {\r\n\r\n // init variables\r\n var S = this,\r\n c = this.container,\r\n cw = this.containerWrapper || c,\r\n namespace = this.namespace,\r\n o = $.extend(this.options, options || {}),\r\n s = {x: this.scrollx, y: this.scrolly},\r\n w = this.wrapper,\r\n cssOptions = {};\r\n\r\n var initScroll = {\r\n scrollLeft: c.scrollLeft(),\r\n scrollTop: c.scrollTop()\r\n };\r\n\r\n // do not init if in ignorable browser\r\n if ((browser.mobile && o.ignoreMobile)\r\n || (browser.overlay && o.ignoreOverlay)\r\n || (browser.macosx && !browser.webkit) // still required to ignore nonWebKit browsers on Mac\r\n ) {\r\n if ($.isFunction(o.onFallback)) {\r\n o.onFallback.apply(this, [c]);\r\n }\r\n return false;\r\n }\r\n\r\n // init scroll container\r\n if (!w) {\r\n this.wrapper = w = $('
    ').addClass('scroll-wrapper').addClass(c.attr('class'))\r\n .css('position', c.css('position') === 'absolute' ? 'absolute' : 'relative')\r\n .insertBefore(c).append(c);\r\n\r\n if (o.isRtl) {\r\n w.addClass('scroll--rtl');\r\n }\r\n\r\n if (c.is('textarea')) {\r\n this.containerWrapper = cw = $('
    ').insertBefore(c).append(c);\r\n w.addClass('scroll-textarea');\r\n }\r\n\r\n cssOptions = {\r\n \"height\": \"auto\",\r\n \"margin-bottom\": browser.scroll.height * -1 + 'px',\r\n \"max-height\": \"\"\r\n };\r\n cssOptions[o.isRtl ? 'margin-left' : 'margin-right'] = browser.scroll.width * -1 + 'px';\r\n\r\n cw.addClass('scroll-content').css(cssOptions);\r\n\r\n c.on('scroll' + namespace, function (event) {\r\n var scrollLeft = c.scrollLeft();\r\n var scrollTop = c.scrollTop();\r\n if (o.isRtl) {\r\n // webkit 0:100\r\n // ie/edge 100:0\r\n // firefox -100:0\r\n switch (true) {\r\n case browser.firefox:\r\n scrollLeft = Math.abs(scrollLeft);\r\n case browser.msedge || browser.msie:\r\n scrollLeft = c[0].scrollWidth - c[0].clientWidth - scrollLeft;\r\n break;\r\n }\r\n }\r\n if ($.isFunction(o.onScroll)) {\r\n o.onScroll.call(S, {\r\n maxScroll: s.y.maxScrollOffset,\r\n scroll: scrollTop,\r\n size: s.y.size,\r\n visible: s.y.visible\r\n }, {\r\n maxScroll: s.x.maxScrollOffset,\r\n scroll: scrollLeft,\r\n size: s.x.size,\r\n visible: s.x.visible\r\n });\r\n }\r\n s.x.isVisible && s.x.scroll.bar.css('left', scrollLeft * s.x.kx + 'px');\r\n s.y.isVisible && s.y.scroll.bar.css('top', scrollTop * s.y.kx + 'px');\r\n });\r\n\r\n /* prevent native scrollbars to be visible on #anchor click */\r\n w.on('scroll' + namespace, function () {\r\n w.scrollTop(0).scrollLeft(0);\r\n });\r\n\r\n if (o.disableBodyScroll) {\r\n var handleMouseScroll = function (event) {\r\n isVerticalScroll(event) ?\r\n s.y.isVisible && s.y.mousewheel(event) :\r\n s.x.isVisible && s.x.mousewheel(event);\r\n };\r\n w.on('MozMousePixelScroll' + namespace, handleMouseScroll);\r\n w.on('mousewheel' + namespace, handleMouseScroll);\r\n\r\n if (browser.mobile) {\r\n w.on('touchstart' + namespace, function (event) {\r\n var touch = event.originalEvent.touches && event.originalEvent.touches[0] || event;\r\n var originalTouch = {\r\n pageX: touch.pageX,\r\n pageY: touch.pageY\r\n };\r\n var originalScroll = {\r\n left: c.scrollLeft(),\r\n top: c.scrollTop()\r\n };\r\n $(document).on('touchmove' + namespace, function (event) {\r\n var touch = event.originalEvent.targetTouches && event.originalEvent.targetTouches[0] || event;\r\n c.scrollLeft(originalScroll.left + originalTouch.pageX - touch.pageX);\r\n c.scrollTop(originalScroll.top + originalTouch.pageY - touch.pageY);\r\n event.preventDefault();\r\n });\r\n $(document).on('touchend' + namespace, function () {\r\n $(document).off(namespace);\r\n });\r\n });\r\n }\r\n }\r\n if ($.isFunction(o.onInit)) {\r\n o.onInit.apply(this, [c]);\r\n }\r\n } else {\r\n cssOptions = {\r\n \"height\": \"auto\",\r\n \"margin-bottom\": browser.scroll.height * -1 + 'px',\r\n \"max-height\": \"\"\r\n };\r\n cssOptions[o.isRtl ? 'margin-left' : 'margin-right'] = browser.scroll.width * -1 + 'px';\r\n cw.css(cssOptions);\r\n }\r\n\r\n // init scrollbars & recalculate sizes\r\n $.each(s, function (d, scrollx) {\r\n\r\n var scrollCallback = null;\r\n var scrollForward = 1;\r\n var scrollOffset = (d === 'x') ? 'scrollLeft' : 'scrollTop';\r\n var scrollStep = o.scrollStep;\r\n var scrollTo = function () {\r\n var currentOffset = c[scrollOffset]();\r\n c[scrollOffset](currentOffset + scrollStep);\r\n if (scrollForward == 1 && (currentOffset + scrollStep) >= scrollToValue)\r\n currentOffset = c[scrollOffset]();\r\n if (scrollForward == -1 && (currentOffset + scrollStep) <= scrollToValue)\r\n currentOffset = c[scrollOffset]();\r\n if (c[scrollOffset]() == currentOffset && scrollCallback) {\r\n scrollCallback();\r\n }\r\n }\r\n var scrollToValue = 0;\r\n\r\n if (!scrollx.scroll) {\r\n\r\n scrollx.scroll = S._getScroll(o['scroll' + d]).addClass('scroll-' + d);\r\n\r\n if (o.showArrows) {\r\n scrollx.scroll.addClass('scroll-element_arrows_visible');\r\n }\r\n\r\n scrollx.mousewheel = function (event) {\r\n\r\n if (!scrollx.isVisible || (d === 'x' && isVerticalScroll(event))) {\r\n return true;\r\n }\r\n if (d === 'y' && !isVerticalScroll(event)) {\r\n s.x.mousewheel(event);\r\n return true;\r\n }\r\n\r\n var delta = event.originalEvent.wheelDelta * -1 || event.originalEvent.detail;\r\n var maxScrollValue = scrollx.size - scrollx.visible - scrollx.offset;\r\n\r\n // fix new mozilla\r\n if (!delta) {\r\n if (d === 'x' && !!event.originalEvent.deltaX) {\r\n delta = event.originalEvent.deltaX * 40;\r\n } else if (d === 'y' && !!event.originalEvent.deltaY) {\r\n delta = event.originalEvent.deltaY * 40;\r\n }\r\n }\r\n\r\n if ((delta > 0 && scrollToValue < maxScrollValue) || (delta < 0 && scrollToValue > 0)) {\r\n scrollToValue = scrollToValue + delta;\r\n if (scrollToValue < 0)\r\n scrollToValue = 0;\r\n if (scrollToValue > maxScrollValue)\r\n scrollToValue = maxScrollValue;\r\n\r\n S.scrollTo = S.scrollTo || {};\r\n S.scrollTo[scrollOffset] = scrollToValue;\r\n setTimeout(function () {\r\n if (S.scrollTo) {\r\n c.stop().animate(S.scrollTo, 240, 'linear', function () {\r\n scrollToValue = c[scrollOffset]();\r\n });\r\n S.scrollTo = null;\r\n }\r\n }, 1);\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n };\r\n\r\n scrollx.scroll\r\n .on('MozMousePixelScroll' + namespace, scrollx.mousewheel)\r\n .on('mousewheel' + namespace, scrollx.mousewheel)\r\n .on('mouseenter' + namespace, function () {\r\n scrollToValue = c[scrollOffset]();\r\n });\r\n\r\n // handle arrows & scroll inner mousedown event\r\n scrollx.scroll.find('.scroll-arrow, .scroll-element_track')\r\n .on('mousedown' + namespace, function (event) {\r\n\r\n if (event.which != 1) // lmb\r\n return true;\r\n\r\n scrollForward = 1;\r\n\r\n var data = {\r\n eventOffset: event[(d === 'x') ? 'pageX' : 'pageY'],\r\n maxScrollValue: scrollx.size - scrollx.visible - scrollx.offset,\r\n scrollbarOffset: scrollx.scroll.bar.offset()[(d === 'x') ? 'left' : 'top'],\r\n scrollbarSize: scrollx.scroll.bar[(d === 'x') ? 'outerWidth' : 'outerHeight']()\r\n };\r\n var timeout = 0, timer = 0;\r\n\r\n if ($(this).hasClass('scroll-arrow')) {\r\n scrollForward = $(this).hasClass(\"scroll-arrow_more\") ? 1 : -1;\r\n scrollStep = o.scrollStep * scrollForward;\r\n scrollToValue = scrollForward > 0 ? data.maxScrollValue : 0;\r\n if (o.isRtl) {\r\n switch(true){\r\n case browser.firefox:\r\n scrollToValue = scrollForward > 0 ? 0: data.maxScrollValue * -1;\r\n break;\r\n case browser.msie || browser.msedge:\r\n break;\r\n }\r\n }\r\n } else {\r\n scrollForward = (data.eventOffset > (data.scrollbarOffset + data.scrollbarSize) ? 1\r\n : (data.eventOffset < data.scrollbarOffset ? -1 : 0));\r\n if(d === 'x' && o.isRtl && (browser.msie || browser.msedge))\r\n scrollForward = scrollForward * -1;\r\n scrollStep = Math.round(scrollx.visible * 0.75) * scrollForward;\r\n scrollToValue = (data.eventOffset - data.scrollbarOffset -\r\n (o.stepScrolling ? (scrollForward == 1 ? data.scrollbarSize : 0)\r\n : Math.round(data.scrollbarSize / 2)));\r\n scrollToValue = c[scrollOffset]() + (scrollToValue / scrollx.kx);\r\n }\r\n\r\n S.scrollTo = S.scrollTo || {};\r\n S.scrollTo[scrollOffset] = o.stepScrolling ? c[scrollOffset]() + scrollStep : scrollToValue;\r\n\r\n if (o.stepScrolling) {\r\n scrollCallback = function () {\r\n scrollToValue = c[scrollOffset]();\r\n clearInterval(timer);\r\n clearTimeout(timeout);\r\n timeout = 0;\r\n timer = 0;\r\n };\r\n timeout = setTimeout(function () {\r\n timer = setInterval(scrollTo, 40);\r\n }, o.duration + 100);\r\n }\r\n\r\n setTimeout(function () {\r\n if (S.scrollTo) {\r\n c.animate(S.scrollTo, o.duration);\r\n S.scrollTo = null;\r\n }\r\n }, 1);\r\n\r\n return S._handleMouseDown(scrollCallback, event);\r\n });\r\n\r\n // handle scrollbar drag'n'drop\r\n scrollx.scroll.bar.on('mousedown' + namespace, function (event) {\r\n\r\n if (event.which != 1) // lmb\r\n return true;\r\n\r\n var eventPosition = event[(d === 'x') ? 'pageX' : 'pageY'];\r\n var initOffset = c[scrollOffset]();\r\n\r\n scrollx.scroll.addClass('scroll-draggable');\r\n\r\n $(document).on('mousemove' + namespace, function (event) {\r\n var diff = parseInt((event[(d === 'x') ? 'pageX' : 'pageY'] - eventPosition) / scrollx.kx, 10);\r\n if (d === 'x' && o.isRtl && (browser.msie || browser.msedge))\r\n diff = diff * -1;\r\n c[scrollOffset](initOffset + diff);\r\n });\r\n\r\n return S._handleMouseDown(function () {\r\n scrollx.scroll.removeClass('scroll-draggable');\r\n scrollToValue = c[scrollOffset]();\r\n }, event);\r\n });\r\n }\r\n });\r\n\r\n // remove classes & reset applied styles\r\n $.each(s, function (d, scrollx) {\r\n var scrollClass = 'scroll-scroll' + d + '_visible';\r\n var scrolly = (d == \"x\") ? s.y : s.x;\r\n\r\n scrollx.scroll.removeClass(scrollClass);\r\n scrolly.scroll.removeClass(scrollClass);\r\n cw.removeClass(scrollClass);\r\n });\r\n\r\n // calculate init sizes\r\n $.each(s, function (d, scrollx) {\r\n $.extend(scrollx, (d == \"x\") ? {\r\n offset: parseInt(c.css('left'), 10) || 0,\r\n size: c.prop('scrollWidth'),\r\n visible: w.width()\r\n } : {\r\n offset: parseInt(c.css('top'), 10) || 0,\r\n size: c.prop('scrollHeight'),\r\n visible: w.height()\r\n });\r\n });\r\n\r\n // update scrollbar visibility/dimensions\r\n this._updateScroll('x', this.scrollx);\r\n this._updateScroll('y', this.scrolly);\r\n\r\n if ($.isFunction(o.onUpdate)) {\r\n o.onUpdate.apply(this, [c]);\r\n }\r\n\r\n // calculate scroll size\r\n $.each(s, function (d, scrollx) {\r\n\r\n var cssOffset = (d === 'x') ? 'left' : 'top';\r\n var cssFullSize = (d === 'x') ? 'outerWidth' : 'outerHeight';\r\n var cssSize = (d === 'x') ? 'width' : 'height';\r\n var offset = parseInt(c.css(cssOffset), 10) || 0;\r\n\r\n var AreaSize = scrollx.size;\r\n var AreaVisible = scrollx.visible + offset;\r\n\r\n var scrollSize = scrollx.scroll.size[cssFullSize]() + (parseInt(scrollx.scroll.size.css(cssOffset), 10) || 0);\r\n\r\n if (o.autoScrollSize) {\r\n scrollx.scrollbarSize = parseInt(scrollSize * AreaVisible / AreaSize, 10);\r\n scrollx.scroll.bar.css(cssSize, scrollx.scrollbarSize + 'px');\r\n }\r\n\r\n scrollx.scrollbarSize = scrollx.scroll.bar[cssFullSize]();\r\n scrollx.kx = ((scrollSize - scrollx.scrollbarSize) / (AreaSize - AreaVisible)) || 1;\r\n scrollx.maxScrollOffset = AreaSize - AreaVisible;\r\n });\r\n\r\n c.scrollLeft(initScroll.scrollLeft).scrollTop(initScroll.scrollTop).trigger('scroll');\r\n },\r\n /**\r\n * Get scrollx/scrolly object\r\n *\r\n * @param {Mixed} scroll\r\n * @returns {jQuery} scroll object\r\n */\r\n _getScroll: function (scroll) {\r\n var types = {\r\n advanced: [\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ', // required! used for scrollbar size calculation !\r\n '
    ',\r\n '
    ', // used for handling scrollbar click\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ', // required\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    ',\r\n '
    '\r\n ].join(''),\r\n simple: [\r\n '
    ',\r\n '
    ',\r\n '
    ', // required! used for scrollbar size calculation !\r\n '
    ', // used for handling scrollbar click\r\n '
    ', // required\r\n '
    ',\r\n '
    '\r\n ].join('')\r\n };\r\n if (types[scroll]) {\r\n scroll = types[scroll];\r\n }\r\n if (!scroll) {\r\n scroll = types['simple'];\r\n }\r\n if (typeof (scroll) == 'string') {\r\n scroll = $(scroll).appendTo(this.wrapper);\r\n } else {\r\n scroll = $(scroll);\r\n }\r\n $.extend(scroll, {\r\n bar: scroll.find('.scroll-bar'),\r\n size: scroll.find('.scroll-element_size'),\r\n track: scroll.find('.scroll-element_track')\r\n });\r\n return scroll;\r\n },\r\n _handleMouseDown: function (callback, event) {\r\n\r\n var namespace = this.namespace;\r\n\r\n $(document).on('blur' + namespace, function () {\r\n $(document).add('body').off(namespace);\r\n callback && callback();\r\n });\r\n $(document).on('dragstart' + namespace, function (event) {\r\n event.preventDefault();\r\n return false;\r\n });\r\n $(document).on('mouseup' + namespace, function () {\r\n $(document).add('body').off(namespace);\r\n callback && callback();\r\n });\r\n $('body').on('selectstart' + namespace, function (event) {\r\n event.preventDefault();\r\n return false;\r\n });\r\n\r\n event && event.preventDefault();\r\n return false;\r\n },\r\n _updateScroll: function (d, scrollx) {\r\n\r\n var container = this.container,\r\n containerWrapper = this.containerWrapper || container,\r\n scrollClass = 'scroll-scroll' + d + '_visible',\r\n scrolly = (d === 'x') ? this.scrolly : this.scrollx,\r\n offset = parseInt(this.container.css((d === 'x') ? 'left' : 'top'), 10) || 0,\r\n wrapper = this.wrapper;\r\n\r\n var AreaSize = scrollx.size;\r\n var AreaVisible = scrollx.visible + offset;\r\n\r\n scrollx.isVisible = (AreaSize - AreaVisible) > 1; // bug in IE9/11 with 1px diff\r\n if (scrollx.isVisible) {\r\n scrollx.scroll.addClass(scrollClass);\r\n scrolly.scroll.addClass(scrollClass);\r\n containerWrapper.addClass(scrollClass);\r\n } else {\r\n scrollx.scroll.removeClass(scrollClass);\r\n scrolly.scroll.removeClass(scrollClass);\r\n containerWrapper.removeClass(scrollClass);\r\n }\r\n\r\n if (d === 'y') {\r\n if (container.is('textarea') || AreaSize < AreaVisible) {\r\n containerWrapper.css({\r\n \"height\": (AreaVisible + browser.scroll.height) + 'px',\r\n \"max-height\": \"none\"\r\n });\r\n } else {\r\n containerWrapper.css({\r\n //\"height\": \"auto\", // do not reset height value: issue with height:100%!\r\n \"max-height\": (AreaVisible + browser.scroll.height) + 'px'\r\n });\r\n }\r\n }\r\n\r\n if (scrollx.size != container.prop('scrollWidth')\r\n || scrolly.size != container.prop('scrollHeight')\r\n || scrollx.visible != wrapper.width()\r\n || scrolly.visible != wrapper.height()\r\n || scrollx.offset != (parseInt(container.css('left'), 10) || 0)\r\n || scrolly.offset != (parseInt(container.css('top'), 10) || 0)\r\n ) {\r\n $.extend(this.scrollx, {\r\n offset: parseInt(container.css('left'), 10) || 0,\r\n size: container.prop('scrollWidth'),\r\n visible: wrapper.width()\r\n });\r\n $.extend(this.scrolly, {\r\n offset: parseInt(container.css('top'), 10) || 0,\r\n size: this.container.prop('scrollHeight'),\r\n visible: wrapper.height()\r\n });\r\n this._updateScroll(d === 'x' ? 'y' : 'x', scrolly);\r\n }\r\n }\r\n };\r\n\r\n var CustomScrollbar = BaseScrollbar;\r\n\r\n /*\r\n * Extend jQuery as plugin\r\n *\r\n * @param {Mixed} command to execute\r\n * @param {Mixed} arguments as Array\r\n * @return {jQuery}\r\n */\r\n $.fn.scrollbar = function (command, args) {\r\n if (typeof command !== 'string') {\r\n args = command;\r\n command = 'init';\r\n }\r\n if (typeof args === 'undefined') {\r\n args = [];\r\n }\r\n if (!$.isArray(args)) {\r\n args = [args];\r\n }\r\n this.not('body, .scroll-wrapper').each(function () {\r\n var element = $(this),\r\n instance = element.data(browser.data.name);\r\n if (instance || command === 'init') {\r\n if (!instance) {\r\n instance = new CustomScrollbar(element);\r\n }\r\n if (instance[command]) {\r\n instance[command].apply(instance, args);\r\n }\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Connect default options to global object\r\n */\r\n $.fn.scrollbar.options = defaults;\r\n\r\n\r\n /**\r\n * Check if scroll content/container size is changed\r\n */\r\n\r\n var updateScrollbars = (function () {\r\n var timer = 0,\r\n timerCounter = 0;\r\n\r\n return function (force) {\r\n var i, container, options, scroll, wrapper, scrollx, scrolly;\r\n for (i = 0; i < browser.scrolls.length; i++) {\r\n scroll = browser.scrolls[i];\r\n container = scroll.container;\r\n options = scroll.options;\r\n wrapper = scroll.wrapper;\r\n scrollx = scroll.scrollx;\r\n scrolly = scroll.scrolly;\r\n if (force || (options.autoUpdate && wrapper && wrapper.is(':visible') &&\r\n (container.prop('scrollWidth') != scrollx.size || container.prop('scrollHeight') != scrolly.size || wrapper.width() != scrollx.visible || wrapper.height() != scrolly.visible))) {\r\n scroll.init();\r\n\r\n if (options.debug) {\r\n window.console && console.log({\r\n scrollHeight: container.prop('scrollHeight') + ':' + scroll.scrolly.size,\r\n scrollWidth: container.prop('scrollWidth') + ':' + scroll.scrollx.size,\r\n visibleHeight: wrapper.height() + ':' + scroll.scrolly.visible,\r\n visibleWidth: wrapper.width() + ':' + scroll.scrollx.visible\r\n }, true);\r\n timerCounter++;\r\n }\r\n }\r\n }\r\n if (debug && timerCounter > 10) {\r\n window.console && console.log('Scroll updates exceed 10');\r\n updateScrollbars = function () {};\r\n } else {\r\n clearTimeout(timer);\r\n timer = setTimeout(updateScrollbars, 300);\r\n }\r\n };\r\n })();\r\n\r\n /* ADDITIONAL FUNCTIONS */\r\n /**\r\n * Get native browser scrollbar size (height/width)\r\n *\r\n * @param {Boolean} actual size or CSS size, default - CSS size\r\n * @returns {Object} with height, width\r\n */\r\n function getBrowserScrollSize(actualSize) {\r\n\r\n if (browser.webkit && !actualSize) {\r\n return {\r\n height: 0,\r\n width: 0\r\n };\r\n }\r\n\r\n if (!browser.data.outer) {\r\n var css = {\r\n \"border\": \"none\",\r\n \"box-sizing\": \"content-box\",\r\n \"height\": \"200px\",\r\n \"margin\": \"0\",\r\n \"padding\": \"0\",\r\n \"width\": \"200px\"\r\n };\r\n browser.data.inner = $(\"
    \").css($.extend({}, css));\r\n browser.data.outer = $(\"
    \").css($.extend({\r\n \"left\": \"-1000px\",\r\n \"overflow\": \"scroll\",\r\n \"position\": \"absolute\",\r\n \"top\": \"-1000px\"\r\n }, css)).append(browser.data.inner).appendTo(\"body\");\r\n }\r\n\r\n browser.data.outer.scrollLeft(1000).scrollTop(1000);\r\n\r\n return {\r\n height: Math.ceil((browser.data.outer.offset().top - browser.data.inner.offset().top) || 0),\r\n width: Math.ceil((browser.data.outer.offset().left - browser.data.inner.offset().left) || 0)\r\n };\r\n }\r\n\r\n /**\r\n * Check if native browser scrollbars overlay content\r\n *\r\n * @returns {Boolean}\r\n */\r\n function isScrollOverlaysContent() {\r\n var scrollSize = getBrowserScrollSize(true);\r\n return !(scrollSize.height || scrollSize.width);\r\n }\r\n\r\n function isVerticalScroll(event) {\r\n var e = event.originalEvent;\r\n if (e.axis && e.axis === e.HORIZONTAL_AXIS)\r\n return false;\r\n if (e.wheelDeltaX)\r\n return false;\r\n return true;\r\n }\r\n}));\r\n","export default {\r\n\r\n '/h1': {\r\n key: 'ctrl+h',\r\n label: '/h1 [标题1] (ctrl+h)',\r\n value: '# ',\r\n },\r\n '/h2': {\r\n label: '/h2 [标题2]',\r\n value: '## ',\r\n },\r\n '/h3': {\r\n label: '/h3 [标题3]',\r\n value: '### ',\r\n },\r\n '/h4': {\r\n label: '/h4 [标题4]',\r\n value: '#### ',\r\n },\r\n '/h5': {\r\n label: '/h5 [标题5]',\r\n value: '##### ',\r\n },\r\n '/h6': {\r\n key: 'ctrl+shift+h',\r\n label: '/h6 [标题6] (ctrl+shift+h)',\r\n value: '###### ',\r\n },\r\n '/b': {\r\n key: 'ctrl+b',\r\n label: '/b [粗体] (ctrl+b)',\r\n value: '****',\r\n ch: 2,\r\n },\r\n '/i': {\r\n key: 'ctrl+i',\r\n label: '/i [斜体] (ctrl+i)',\r\n value: '**',\r\n ch: 1,\r\n },\r\n '/s': {\r\n label: '/s [删除线]',\r\n value: '~~~~',\r\n ch: 2,\r\n },\r\n '/code': {\r\n key: 'alt+ctrl+c',\r\n label: '/code [代码] (alt+ctrl+c)',\r\n value: '```\\n\\n```\\n',\r\n line: 2,\r\n ch2: 5\r\n },\r\n '/quote': {\r\n key: 'ctrl+\\'',\r\n label: '/quote [引用] (ctrl+\\')',\r\n value: '> ',\r\n },\r\n '/list': {\r\n key: 'ctrl+l',\r\n label: '/list [列表] (ctrl+l)',\r\n value: '* ',\r\n },\r\n '/href': {\r\n key: 'ctrl+k',\r\n label: '/href [链接] (ctrl+k)',\r\n value: '[](http://)',\r\n ch: 1,\r\n },\r\n '/img': {\r\n key: 'alt+ctrl+i',\r\n label: '/img [图片] (ctrl+alt+i)',\r\n value: '![](http://)',\r\n ch: 1,\r\n },\r\n '/table': {\r\n label: '/table [表格]',\r\n value: '| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n',\r\n },\r\n '/hr': {\r\n label: '/hr [分隔线]',\r\n value: '\\n-----\\n',\r\n },\r\n '/task': {\r\n label: '/task [任务列表]',\r\n value: '- [ ] 未完成任务\\n- [x] 已完成任务',\r\n line: 1,\r\n ch: 11,\r\n ch2: 12\r\n },\r\n '/details': {\r\n label: '/details [折叠详情]',\r\n value: '
    \\n标题详情内容\\n
    ',\r\n line: 1,\r\n ch: 11,\r\n ch2: 25\r\n },\r\n '/upload': {\r\n label: '/upload [上传文件] (ctrl+u)',\r\n value: '',\r\n },\r\n '/shortcuts': {\r\n label: '/shortcuts [热键] (ctrl+/)',\r\n value: '',\r\n },\r\n}\r\n","import {\r\n default as wurl\r\n}\r\nfrom 'wurl';\r\nimport 'common/common-diff';\r\n\r\nexport class CommonUtils {\r\n\r\n /**\r\n * 获取浏览器BaseUrl\r\n * @return {[type]} [description]\r\n */\r\n getBaseUrl() {\r\n if (typeof wurl == 'function') {\r\n if (wurl('port') == 80 || wurl('port') == 443) {\r\n return (wurl('protocol') + '://' + wurl('hostname'));\r\n } else {\r\n return (wurl('protocol') + '://' + wurl('hostname') + ':' + wurl('port'));\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * 获取浏览器Url(不含参数)\r\n * @return {[type]} [description]\r\n */\r\n getUrl() {\r\n return this.getBaseUrl() + wurl('path') + '#' + this.getHash();\r\n }\r\n\r\n getHash() {\r\n let hash = wurl('hash');\r\n return hash ? hash.split('?')[0] : '';\r\n }\r\n\r\n getBasePath() {\r\n return this.getBaseUrl() + wurl('path');\r\n }\r\n\r\n getResourceBase() {\r\n let basePath = this.getBasePath();\r\n if (_.endsWith(basePath, '/index.html')) {\r\n basePath = _.replace(basePath, '/index.html', '');\r\n }\r\n return basePath;\r\n }\r\n\r\n redirect2Login(redirectUrl) {\r\n let redirect = this.urlQuery('redirect');\r\n if (!redirect) {\r\n redirectUrl = redirectUrl ? redirectUrl : wurl();\r\n window.location = this.getBaseUrl() + wurl('path') + `#/login?redirect=${encodeURIComponent(redirectUrl)}`;\r\n } else {\r\n console.log('url has contains ?redirect');\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 获取url中的查询参数值\r\n * @param {[type]} name 查询参数名称\r\n * @return {[type]} 查询参数值\r\n */\r\n urlQuery(name, url) {\r\n if (url) {\r\n let query = wurl('?' + name, url);\r\n if (!query) {\r\n query = wurl('?' + name, wurl('hash', url));\r\n }\r\n return query;\r\n }\r\n return wurl('?' + name) || wurl('?' + name, wurl('hash'));\r\n }\r\n\r\n /**\r\n * 移除url中的指定查询参数\r\n * name: 查询参数名称\r\n * href: 操作的url(可选, 不设置时为当前浏览器页面地址)\r\n * return: 移除指定查询参数的url地址\r\n */\r\n removeUrlQuery(name, href) {\r\n\r\n var s = href ? href : window.location.href;\r\n\r\n var rs = new RegExp('(&|\\\\?)?' + name + '=?[^&#]*(.)?', 'g').exec(s);\r\n // eg: [\"?accessToken=YUNqUkxiZ3owWXdYdDFaVUp2VmNEM0JTZTNERlowWUhPTUVVbDU1RUROOWROMmcwUlVJeXRGQ2M4ZVBqdmpkSA%3D%3D&\", \"?\", \"&\"]\r\n\r\n if (rs) {\r\n // case3: ?name2=value2&name=value => ?name2=value2\r\n // case4: ?name2=value2&name=value&name3=value3 => ?name2=value2&name3=value3\r\n if (rs[1] == '&') {\r\n return s.replace(new RegExp('&' + name + '=?[^&#]+', 'g'), '');\r\n } else if (rs[1] == '?') {\r\n if (rs[2] != '&') { // case1: ?name=value => \r\n return s.replace(new RegExp('\\\\?' + name + '=?[^&#]*', 'g'), '');\r\n } else { // case2: ?name=value&name2=value2 => ?name2=value2\r\n return s.replace(new RegExp('' + name + '=?[^&#]*&', 'g'), '');\r\n }\r\n }\r\n }\r\n\r\n return s;\r\n }\r\n\r\n isLoginPage() {\r\n let hash = wurl('hash');\r\n return _.startsWith(hash, '/login');\r\n }\r\n\r\n /**\r\n * 网络连接错误后自动重试\r\n * @param {Function} callback 重试回调\r\n * @return {[type]} [description]\r\n */\r\n errorAutoTry(callback, time) {\r\n\r\n if (this.isRunning || this.isLoginPage()) {\r\n return;\r\n }\r\n\r\n let cnt = time ? time : 10;\r\n let timer = null;\r\n let $t = toastr.error(`网络连接错误,${cnt}秒后自动重试!`, null, {\r\n \"closeButton\": false,\r\n \"timeOut\": \"0\",\r\n \"preventDuplicates\": false,\r\n \"onclick\": () => {\r\n clearInterval(this.timer);\r\n callback && callback();\r\n }\r\n });\r\n\r\n this.isRunning = true;\r\n timer = setInterval(() => {\r\n if (cnt === 0) {\r\n clearInterval(timer);\r\n this.isRunning = false;\r\n toastr.remove();\r\n callback && callback();\r\n return;\r\n }\r\n $t && $t.find('.toast-message').text(`网络连接错误,${cnt}秒后自动重试!`);\r\n cnt--;\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * 判断视图元素是否在可视区域中\r\n * @param {[type]} el [description]\r\n * @return {Boolean} [description]\r\n */\r\n isElementInViewport(el) {\r\n\r\n //special bonus for those using jQuery\r\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\r\n el = el[0];\r\n }\r\n\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n }\r\n\r\n /**\r\n * 获取聊天对象标识\r\n * @param {[type]} name [description]\r\n * @return {[type]} [description]\r\n */\r\n getChatName(name) {\r\n if (_.startsWith(name, '@')) {\r\n return name.substr(1);\r\n } else {\r\n return name;\r\n }\r\n }\r\n\r\n /**\r\n * 替换@user解析\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n preParse(plainText) {\r\n\r\n var txt = plainText;\r\n $.each(this.parseUsers(plainText), function(index, user) {\r\n txt = txt.replace(new RegExp(`{~${user.username}}`, 'g'), `**\\`@${user.name}\\`**`);\r\n });\r\n\r\n return txt;\r\n }\r\n\r\n\r\n /**\r\n * 解析@users\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n parseUsers(plainText) {\r\n var users = [];\r\n var atR = /\\{~([^\\}]*)\\}/g;\r\n var rs = atR.exec(plainText);\r\n while (rs) {\r\n let user = _.find([nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])], { username: rs[1] });\r\n let isNotExists = !_.some(users, { username: rs[1] });\r\n if (user && isNotExists) {\r\n users.push(user);\r\n }\r\n rs = atR.exec(plainText);\r\n }\r\n\r\n return users;\r\n }\r\n\r\n getUser(username) {\r\n return _.find(tmsUsers, { username: username });\r\n }\r\n\r\n /**\r\n * 解析要发送邮件的用户们\r\n * @param {[type]} plainText [description]\r\n * @return {[type]} [description]\r\n */\r\n parseUsernames(plainText, members) {\r\n let users = this.parseUsers(plainText);\r\n let isExitsAll = _.some(users, { username: 'all' });\r\n if (isExitsAll) {\r\n return _.without(_.map(members, 'username'), 'all');\r\n }\r\n return _.map(users, 'username');;\r\n }\r\n\r\n /**\r\n * markdown to html\r\n * @param {[type]} content [description]\r\n * @return {[type]} [description]\r\n */\r\n md2html(content) {\r\n if (emojify) {\r\n content = emojify.replace(content);\r\n }\r\n return $('
    ').html('' + marked(this.preParse(content))).wrap('
    ').parent().html();\r\n }\r\n\r\n /**\r\n * 文本比较\r\n * @param {[type]} oldS [description]\r\n * @param {[type]} newS [description]\r\n * @return {[type]} [description]\r\n */\r\n diffS(oldS, newS, way) {\r\n var ways = ['diffChars', 'diffWords', 'diffWordsWithSpace', 'diffLines'];\r\n if (!ways.includes(way)) {\r\n way = 'diffWords';\r\n }\r\n var delStyle = 'style=\"background-color: #e6cf56; text-decoration: line-through;\"';\r\n var insStyle = 'style=\"background-color: #98e287; text-decoration: none;\"';\r\n var diff = JsDiff[way](oldS, newS);\r\n var nodeArr = [];\r\n for (var i = 0; i < diff.length; i++) {\r\n\r\n if (diff[i].added && diff[i + 1] && diff[i + 1].removed) {\r\n var swap = diff[i];\r\n diff[i] = diff[i + 1];\r\n diff[i + 1] = swap;\r\n }\r\n\r\n var node;\r\n if (diff[i].removed) {\r\n node = `${diff[i].value}`;\r\n } else if (diff[i].added) {\r\n node = `${diff[i].value}`;\r\n } else {\r\n node = `${diff[i].value}`;\r\n }\r\n nodeArr.push(node);\r\n }\r\n\r\n return `
    ${nodeArr.join('')}
    `;\r\n }\r\n\r\n /**\r\n * 解析wiki目录\r\n * @param {[type]} $e [description]\r\n * @return {[type]} [description]\r\n */\r\n catalog($e) {\r\n var $headers = $(\":header\", $e);\r\n\r\n if ($headers && $headers.size() == 0) {\r\n return false;\r\n }\r\n\r\n var pre = null;\r\n\r\n var link = {\r\n pre: null,\r\n arr: []\r\n };\r\n var current = link;\r\n $headers.each(function(index, h) {\r\n var name = h.nodeName;\r\n if (!pre) {\r\n current.arr.push(h);\r\n pre = name;\r\n } else {\r\n if (pre < name) {\r\n var last = current;\r\n current = {\r\n pre: last,\r\n arr: [h]\r\n };\r\n last.arr.push(current);\r\n pre = name;\r\n } else if (pre == name) {\r\n current.arr.push(h);\r\n } else {\r\n current = current.pre ? current.pre : current;\r\n current.arr.push(h);\r\n pre = name;\r\n }\r\n }\r\n });\r\n\r\n return link;\r\n }\r\n\r\n generateDir(link, uid) {\r\n var $list = $('
    ');\r\n this.prodDir($list, link, uid);\r\n return $list;\r\n }\r\n\r\n dir($e, uid) {\r\n let cl = this.catalog($e);\r\n return cl ? this.generateDir(cl, uid) : '';\r\n }\r\n\r\n prodDir($list, link, uid) {\r\n $.each(link.arr, (index, item) => {\r\n if (item.hasOwnProperty('arr')) {\r\n var $l = $('
    ');\r\n $list.append($l);\r\n this.prodDir($l, item, uid);\r\n } else {\r\n var id = uid ? _.uniqueId(uid) : _.uniqueId('tms-wiki-dir-item-');\r\n var $item = $('').text($(item).attr('id', id).text()).attr('data-id', id);\r\n $list.append($item);\r\n }\r\n });\r\n }\r\n\r\n isElementInViewport(el) {\r\n\r\n //special bonus for those using jQuery\r\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\r\n el = el[0];\r\n }\r\n\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n }\r\n\r\n /**\r\n * 获取光标位置函数\r\n * @param {[type]} ctrl [description]\r\n * @return {[type]} [description]\r\n */\r\n getCursortPosition(ctrl) {\r\n var CaretPos = 0; // IE Support\r\n if (document.selection) {\r\n ctrl.focus();\r\n var Sel = document.selection.createRange();\r\n Sel.moveStart('character', -ctrl.value.length);\r\n CaretPos = Sel.text.length;\r\n }\r\n // Firefox support\r\n else if (ctrl.selectionStart || ctrl.selectionStart == '0') {\r\n CaretPos = ctrl.selectionStart;\r\n }\r\n return (CaretPos);\r\n }\r\n\r\n /**\r\n * 设置光标位置函数\r\n * @param {[type]} ctrl [description]\r\n * @param {[type]} pos [description]\r\n */\r\n setCaretPosition(ctrl, pos) {\r\n if (ctrl.setSelectionRange) {\r\n ctrl.focus();\r\n ctrl.setSelectionRange(pos, pos);\r\n } else if (ctrl.createTextRange) {\r\n var range = ctrl.createTextRange();\r\n range.collapse(true);\r\n range.moveEnd('character', pos);\r\n range.moveStart('character', pos);\r\n range.select();\r\n }\r\n }\r\n\r\n /**\r\n * 是否为绝对url\r\n * @param {[type]} url [description]\r\n * @return {Boolean} [description]\r\n */\r\n isAbsUrl(url) {\r\n if (_.startsWith(url, 'http://')) {\r\n return true;\r\n } else if (_.startsWith(url, 'https://')) {\r\n return true;\r\n } else if (_.startsWith(url, '//')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n escape(html, encode) {\r\n return html\r\n .replace(!encode ? /&(?!#?\\w+;)/g : /&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n }\r\n\r\n unescape(html) {\r\n // explicitly match decimal, hex, and named HTML entities \r\n return html.replace(/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/g, function(_, n) {\r\n n = n.toLowerCase();\r\n if (n === 'colon') return ':';\r\n if (n.charAt(0) === '#') {\r\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\r\n }\r\n return '';\r\n });\r\n }\r\n\r\n /**\r\n * 打开新的浏览器窗口,并跳转到指定页面\r\n * url:需要跳转的地址\r\n */\r\n openNewWin(url) {\r\n\r\n if (url) {\r\n let $a = $(`
    `).appendTo('body').end();\r\n $(``).appendTo($a).end().click();\r\n\r\n _.delay(() => {\r\n $a.remove();\r\n }, 200);\r\n }\r\n\r\n }\r\n\r\n isAdminUser(user) {\r\n if (user && user.authorities) {\r\n return _.some(user.authorities, (item) => {\r\n return item.id.authority === 'ROLE_ADMIN';\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n isSuperUser(user) {\r\n if (user && user.authorities) {\r\n return _.some(user.authorities, (item) => {\r\n return item.id.authority === 'ROLE_SUPER';\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * 判断是否为全角字符\r\n * @param {[type]} str 待判断字符\r\n * @return {Boolean} true: 全角 false: 半角 \r\n */\r\n isSBCcase(str) {\r\n // [^\\x00-\\xff]全角字符\r\n return /[^\\x00-\\xff]/.test(str);\r\n }\r\n\r\n /**\r\n * 判断是否为汉字\r\n * @param {[type]} str 待判断字符\r\n * @return {Boolean} true: 汉字 false: 非汉字\r\n */\r\n isHanzi(str) {\r\n // [\\u4e00-\\u9fa5]汉字 \r\n return /[\\u4e00-\\u9fa5]/ig.test(str);\r\n }\r\n\r\n /**\r\n * 获取字符串byte长度\r\n * val: 要计算的字符串\r\n * return: 字符串byte长度\r\n */\r\n getByteLen(val) {\r\n var len = 0;\r\n for (var i = 0; i < val.length; i++) {\r\n if (this.isHanzi(val[i]) || this.isSBCcase(val[i])) {\r\n len += 2;\r\n } else {\r\n len += 1;\r\n }\r\n }\r\n return len;\r\n }\r\n\r\n /**\r\n * 制字符串的最大显示长度\r\n * value: 要处理的字符串\r\n * maxLen: 限制长度\r\n * return: 处理截取后的字符串\r\n */\r\n abbreviate(value, maxLen) {\r\n if (value && maxLen) {\r\n\r\n var len = 0;\r\n for (var i = 0; i < value.length; i++) {\r\n if (this.isHanzi(value[i]) || this.isSBCcase(value[i])) {\r\n len += 2;\r\n } else {\r\n len += 1;\r\n }\r\n\r\n if (len > maxLen) {\r\n return value.substr(0, i) + '...';\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n isMail(mail) {\r\n\r\n var emailRegex = /^([_a-z0-9-]+)(\\.[_a-z0-9-]+)*@([a-z0-9-]+)(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$/i;\r\n\r\n return emailRegex.test(mail);\r\n }\r\n\r\n // 浏览器OS判断正则表达式\r\n regExpOS = {\r\n ios: /(iPad|iPhone|iPod)/g,\r\n mobileChrome: /(CriOS)/g,\r\n mobile: /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g,\r\n cellphone: /iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g\r\n }\r\n\r\n // 是否为IE\r\n isIE() {\r\n var\r\n isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),\r\n isIE = ('ActiveXObject' in window);\r\n return (isIE11 || isIE);\r\n }\r\n\r\n // 是否为IE11\r\n isIE11() {\r\n return (!(window.ActiveXObject) && 'ActiveXObject' in window);\r\n }\r\n\r\n // 是否为IOS\r\n isIOS() {\r\n var\r\n userAgent = navigator.userAgent,\r\n isIOS = userAgent.match(this.regExpOS.ios),\r\n isMobileChrome = userAgent.match(this.regExpOS.mobileChrome);\r\n if (isIOS && !isMobileChrome) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // 是否为cellphone\r\n isCellphone() {\r\n return !!navigator.userAgent.match(this.regExpOS.cellphone);\r\n }\r\n\r\n // 是否为Mobile\r\n isMobile() {\r\n return !!navigator.userAgent.match(this.regExpOS.mobile)\r\n }\r\n\r\n // 是否为Chrome\r\n isChrome() {\r\n return /chrome\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Safari\r\n isSafari() {\r\n return /version\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Firefox\r\n isFirefox() {\r\n return /firefox\\/([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n // 是否为Opera\r\n isOpera() {\r\n return /opera.([\\d.]+)/.test(navigator.userAgent.toLowerCase());\r\n }\r\n\r\n diffHtml(html) {\r\n\r\n var tags = ['html', 'head', 'meta', 'title', 'base', 'link', 'script', 'body', 'div', 'span'];\r\n\r\n var s = '';\r\n if (html) {\r\n s = html;\r\n _.each(tags, (tag) => {\r\n s = s.replace(new RegExp(`<(${tag})`, \"gi\"), `<$1`);\r\n });\r\n }\r\n\r\n return s;\r\n }\r\n\r\n encodeHtml(str) {\r\n var s = \"\";\r\n if (str.length == 0) return \"\";\r\n s = str.replace(/&/g, \">\");\r\n s = s.replace(//g, \">\");\r\n s = s.replace(/ /g, \" \");\r\n s = s.replace(/\\'/g, \"'\");\r\n s = s.replace(/\\\"/g, \""\");\r\n s = s.replace(/\\n/g, \"
    \");\r\n return s;\r\n }\r\n\r\n decodeHtml(str) {\r\n var s = \"\";\r\n if (str.length == 0) return \"\";\r\n s = str.replace(/>/g, \"&\");\r\n s = s.replace(/</g, \"<\");\r\n s = s.replace(/>/g, \">\");\r\n s = s.replace(/ /g, \" \");\r\n s = s.replace(/'/g, \"\\'\");\r\n s = s.replace(/"/g, \"\\\"\");\r\n s = s.replace(/
    /g, \"\\n\");\r\n return s;\r\n }\r\n}\r\n\r\nexport default new CommonUtils();\r\n","import { BindingSignaler } from 'aurelia-templating-resources';\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport 'isomorphic-fetch';\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\nimport {\r\n default as toastr\r\n} from 'toastr';\r\nimport {\r\n default as wurl\r\n} from 'wurl';\r\nimport utils from 'common/common-utils';\r\nimport 'common/common-plugin'\r\nimport 'common/common-constant';\r\nimport 'common/common-ctx';\r\nimport 'common/common-imgs-loaded';\r\nimport {\r\n default as marked\r\n} from 'marked'; // https://github.com/chjj/marked\r\nimport {\r\n default as hljs\r\n} from 'highlight';\r\nimport {\r\n default as autosize\r\n} from 'autosize';\r\nimport {\r\n default as NProgress\r\n}\r\nfrom 'nprogress';\r\nimport {\r\n default as push\r\n} from 'push';\r\nimport {\r\n default as ColorHash\r\n} from 'color-hash';\r\nimport 'modaal';\r\n\r\nexport class Config {\r\n\r\n initHttp() {\r\n window.json = (param) => {\r\n console.log(JSON.stringify(param));\r\n return json(param);\r\n };\r\n window.http = this.aurelia.container.root.get(HttpClient);\r\n http.configure(config => {\r\n config\r\n // .withBaseUrl(nsParam.baseUrl)\r\n .withDefaults({\r\n credentials: 'same-origin',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n 'X-Requested-With': 'fetch'\r\n }\r\n })\r\n .withInterceptor({\r\n request(req) {\r\n NProgress && NProgress.start();\r\n return req;\r\n },\r\n requestError(req) {\r\n console.log(req);\r\n },\r\n response(resp) {\r\n NProgress && NProgress.done();\r\n if (!resp.ok) {\r\n resp.json().then((data) => {\r\n // toastr.error('PATH: ' + data.path + '
    STATUS: ' + data.status + '
    EXCEPTION:
    ' + data.exception + '
    MESSAGE:
    ' + data.message, data.error);\r\n toastr.error(data.message);\r\n });\r\n\r\n if (resp.status == 401) {\r\n toastr.error('用户未登录!');\r\n utils.redirect2Login();\r\n return;\r\n }\r\n }\r\n\r\n return resp;\r\n },\r\n responseError(resp) {\r\n toastr.error(resp.message, '网络请求错误!');\r\n console.log(resp);\r\n }\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initToastr() {\r\n\r\n // toastr弹出消息提示插件全局配置设置\r\n toastr.options.positionClass = 'toast-bottom-center';\r\n toastr.options.preventDuplicates = true;\r\n\r\n return this;\r\n }\r\n\r\n initMarked() {\r\n\r\n let renderer = new marked.Renderer();\r\n renderer.listitem = function(text) {\r\n if (/^\\s*\\[[x ]\\]\\s*/.test(text)) {\r\n text = text\r\n .replace(/^\\s*\\[ \\]\\s*/, ' ')\r\n .replace(/^\\s*\\[x\\]\\s*/, ' ');\r\n return '
  • ' + text + '
  • ';\r\n } else {\r\n return '
  • ' + text + '
  • ';\r\n }\r\n };\r\n renderer.link = function(href, title, text) {\r\n if (this.options.sanitize) {\r\n try {\r\n var prot = decodeURIComponent(unescape(href))\r\n .replace(/[^\\w:]/g, '')\r\n .toLowerCase();\r\n } catch (e) {\r\n return '';\r\n }\r\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\r\n return '';\r\n }\r\n }\r\n let out;\r\n let isChatLink = /\\/chat\\/.+\\?id=.+/g.test(wurl('hash', href));\r\n let isCommentLink = /\\/blog\\/.+\\?cid=.+/g.test(wurl('hash', href));\r\n if (isChatLink || isCommentLink || (utils.isAbsUrl(href) && (wurl('hostname', href) != wurl('hostname')))) {\r\n out = '';\r\n return out;\r\n };\r\n\r\n renderer.codespan = function(text) {\r\n return `${text}`;\r\n };\r\n\r\n renderer.code = function(code, lang, escaped) {\r\n let codeBk = code;\r\n if (this.options.highlight) {\r\n var out = this.options.highlight(code, lang);\r\n if (out != null && out !== code) {\r\n escaped = true;\r\n code = out;\r\n }\r\n }\r\n\r\n if (!lang) {\r\n return `
    ${escaped ? code : utils.escape(code, true)}\\n
    `;\r\n }\r\n\r\n return `
    ${escaped ? code : utils.escape(code, true)}\\n
    \\n`;\r\n };\r\n\r\n // https://github.com/chjj/marked\r\n marked.setOptions({\r\n renderer: renderer,\r\n breaks: true,\r\n highlight: function(code) {\r\n return hljs.highlightAuto(code).value;\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initAjax() {\r\n // ajax全局配置选项设置\r\n $.ajaxSetup({\r\n // ajax请求不缓存\r\n cache: false,\r\n });\r\n\r\n let exceptUrls = [\r\n '/chat/channel/latest',\r\n '/chat/direct/latest',\r\n '/chat/channel/poll'\r\n ];\r\n\r\n $(document).ajaxSend(function(event, jqxhr, settings) {\r\n\r\n let isNotInExceptUrls = _.every(exceptUrls, (url) => {\r\n return (settings.url.lastIndexOf(url) == -1);\r\n });\r\n\r\n if (isNotInExceptUrls) {\r\n NProgress && NProgress.start();\r\n }\r\n });\r\n\r\n // $(document).on('ajaxStart', function() {\r\n // NProgress && NProgress.start();\r\n // });\r\n $(document).on('ajaxStop', function() {\r\n NProgress && NProgress.done();\r\n });\r\n // $(document).ajaxComplete(function(event, request, settings) {\r\n // console.log(request);\r\n // });\r\n $(document).ajaxError(function(event, xhr, settings) {\r\n if (xhr && xhr.status == 401) {\r\n utils.redirect2Login();\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n initGlobalVar() {\r\n window.toastr = toastr;\r\n window.wurl = wurl;\r\n window.utils = utils;\r\n window.marked = marked;\r\n window.autosize = autosize;\r\n window.push = push;\r\n window.bs = this.aurelia.container.root.get(BindingSignaler);\r\n window.ea = this.aurelia.container.root.get(EventAggregator);\r\n window.colorHash = new ColorHash();\r\n return this;\r\n }\r\n\r\n initAnimateCss() {\r\n $.fn.extend({\r\n animateCss: function(animationName) {\r\n var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\r\n this.addClass('animated ' + animationName).one(animationEnd, function() {\r\n $(this).removeClass('animated ' + animationName);\r\n });\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n initEmoji() {\r\n emojify && emojify.setConfig({\r\n img_dir: utils.getResourceBase() + '/img/emoji'\r\n });\r\n return this;\r\n }\r\n\r\n initModaal() {\r\n _.extend($.fn.modaal.options, {\r\n close_text: '关闭',\r\n close_aria_label: '按[esc]关闭',\r\n confirm_button_text: '确认',\r\n confirm_cancel_button_text: '取消',\r\n confirm_title: '操作确认',\r\n accessible_title: '对话框窗口',\r\n confirm_content: '

    默认确认对话框内容.

    ',\r\n });\r\n return this;\r\n }\r\n\r\n context(aurelia) {\r\n this.aurelia = aurelia;\r\n return this;\r\n }\r\n\r\n}\r\n\r\nexport default new Config();\r\n","/**\r\n * 程序初次加载启动,进行一些初始化操作:\r\n */\r\nimport 'jquery';\r\nimport 'jquery.scrollto'; // https://github.com/flesler/jquery.scrollTo\r\nimport 'timeago';\r\nimport 'lodash';\r\nimport 'hotkeys';\r\n\r\nimport config from './config';\r\n\r\nexport function configure(aurelia, params) {\r\n\r\n config.context(aurelia)\r\n .initGlobalVar()\r\n .initHttp()\r\n .initAjax()\r\n .initToastr()\r\n .initMarked()\r\n .initAnimateCss()\r\n .initEmoji()\r\n .initModaal();\r\n}\r\n","/* \r\n代码生成常用命令:\r\nau generate element\r\nau generate attribute\r\nau generate value-converter\r\nau generate binding-behavior\r\nau generate task\r\nau generate generator\r\n*/\r\n/* 加载全局资源 */\r\nexport function configure(aurelia) {\r\n\r\n aurelia.globalResources([\r\n 'resources/value-converters/vc-common',\r\n 'resources/binding-behaviors/bb-key',\r\n 'resources/attributes/attr-task',\r\n 'resources/attributes/attr-swipebox',\r\n 'resources/attributes/attr-pastable',\r\n 'resources/attributes/attr-autosize',\r\n 'resources/attributes/attr-dropzone',\r\n 'resources/attributes/attr-attr',\r\n 'resources/attributes/attr-c2c',\r\n 'resources/attributes/attr-dimmer',\r\n 'resources/attributes/attr-ui-dropdown',\r\n 'resources/attributes/attr-ui-dropdown-action',\r\n 'resources/attributes/attr-ui-dropdown-hover',\r\n 'resources/attributes/attr-ui-tab',\r\n 'resources/attributes/attr-ui-popup',\r\n 'resources/attributes/attr-ui-checkbox',\r\n 'resources/attributes/attr-tablesort',\r\n 'resources/attributes/attr-textcomplete',\r\n 'resources/attributes/attr-scrollbar',\r\n 'resources/attributes/attr-modaal',\r\n 'resources/elements/em-modal',\r\n 'resources/elements/em-dropdown',\r\n 'resources/elements/em-checkbox',\r\n 'resources/elements/em-confirm-modal',\r\n 'resources/elements/em-hotkeys-modal',\r\n 'resources/elements/em-chat-input',\r\n 'resources/elements/em-chat-top-menu',\r\n 'resources/elements/em-chat-sidebar-left',\r\n 'resources/elements/em-chat-content-item',\r\n 'resources/elements/em-chat-sidebar-right',\r\n 'resources/elements/em-chat-channel-create',\r\n 'resources/elements/em-chat-channel-join',\r\n 'resources/elements/em-chat-channel-edit',\r\n 'resources/elements/em-chat-channel-members-mgr',\r\n 'resources/elements/em-chat-channel-members-show',\r\n 'resources/elements/em-chat-channel-link-mgr',\r\n 'resources/elements/em-chat-system-link-mgr',\r\n 'resources/elements/em-chat-msg-popup',\r\n 'resources/elements/em-chat-member-popup',\r\n 'resources/elements/em-chat-attach',\r\n 'resources/elements/em-chat-schedule',\r\n 'resources/elements/em-chat-msg',\r\n 'resources/elements/em-chat-schedule-edit',\r\n 'resources/elements/em-chat-schedule-remind',\r\n 'resources/elements/em-chat-share',\r\n 'resources/elements/em-chat-content-item-footbar',\r\n 'resources/elements/em-blog-write',\r\n 'resources/elements/em-blog-left-sidebar',\r\n 'resources/elements/em-blog-right-sidebar',\r\n 'resources/elements/em-blog-content',\r\n 'resources/elements/em-blog-top-menu',\r\n 'resources/elements/em-blog-share',\r\n 'resources/elements/em-blog-comment',\r\n 'resources/elements/em-blog-save',\r\n 'resources/elements/em-blog-space-create',\r\n 'resources/elements/em-blog-space-edit',\r\n 'resources/elements/em-blog-space-update',\r\n 'resources/elements/em-blog-history',\r\n 'resources/elements/em-blog-history-view',\r\n 'resources/elements/em-blog-history-diff',\r\n 'resources/elements/em-blog-comment-popup',\r\n 'resources/elements/em-blog-space-auth',\r\n 'resources/elements/em-user-avatar',\r\n 'resources/elements/em-user-edit',\r\n 'resources/elements/em-blog-comment-share',\r\n ]);\r\n}\r\n","import {\r\n bindable\r\n}\r\nfrom 'aurelia-framework';\r\nimport {\r\n EventAggregator\r\n}\r\nfrom 'aurelia-event-aggregator';\r\n\r\n/**\r\n * description\r\n */\r\nexport class TestLifeCycle {\r\n\r\n @\r\n bindable\r\n prop = null;\r\n\r\n static inject = [EventAggregator];\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor(eventAggregator) {\r\n this.eventAggregator = eventAggregator;\r\n\r\n console.log('constructor');\r\n\r\n // this.subscribe1 = this.eventAggregator.subscribe('', (payload) => {\r\n\r\n // });\r\n\r\n }\r\n\r\n /**\r\n * 在视图和视图模型都被创建后调用, 允许访问视图实例对象.\r\n * @param {[object]} view 视图实例对象\r\n */\r\n created(view) {\r\n console.log('created');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎绑定到视图时被调用\r\n * @param {[object]} ctx 视图绑定上下文环境对象\r\n */\r\n bind(ctx) {\r\n console.log('bind');\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n console.log('unbind');\r\n // this.subscribe1.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n console.log('attached');\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n console.log('detached');\r\n }\r\n\r\n /**\r\n * 控制是否可以导航到当前路由视图模型(ViewModel)\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[boolean | promise]} 返回一个boolean类型, 一个boolean类型延迟许诺(promise)或者一个导航(navigation)命令.\r\n */\r\n canActivate(params, routeConfig, navigationInstruction) {\r\n console.log('canActivate');\r\n }\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n console.log('activate');\r\n }\r\n\r\n /**\r\n * 控制是否可以导航离开当前路由视图模型(ViewModel)到其它路由视图模型(ViewModel)\r\n * @return {[boolean | promise]} 返回一个boolean类型, 一个boolean类型延迟许诺(promise)或者一个导航(navigation)命令.\r\n */\r\n canDeactivate() {\r\n console.log('canDeactivate');\r\n }\r\n\r\n /**\r\n * 在当前视图模型(ViewModel)切换离开后执行一些自定义代码逻辑\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待, 直到你完成你的处理工作.\r\n */\r\n deactivate() {\r\n console.log('deactivate');\r\n }\r\n}\r\n","export class UserLogin {\r\n\r\n username = '';\r\n password = '';\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.rememberMeRef).checkbox();\r\n }\r\n\r\n kdHandler(evt) {\r\n if (evt.keyCode === 13) {\r\n this.loginHandler();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n loginHandler() {\r\n\r\n // $.get('/admin/login', (data) => {\r\n\r\n let rm = $(this.rememberMeRef).checkbox('is checked') ? 'on' : '';\r\n\r\n $.post('/admin/signin', {\r\n username: this.username,\r\n password: this.password,\r\n \"remember-me\": rm\r\n }).done(() => {\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_LOGIN_USERNAME, this.username);\r\n\r\n let redirect = utils.urlQuery('redirect');\r\n if (redirect) {\r\n window.location = decodeURIComponent(redirect);\r\n } else {\r\n let chatTo = null;\r\n if (localStorage) {\r\n chatTo = localStorage.getItem(nsCons.KEY_REMEMBER_LAST_CHAT_TO);\r\n }\r\n if (chatTo) {\r\n window.location = wurl('path') + `#/chat/${chatTo}`;\r\n } else {\r\n window.location = wurl('path') + `#/chat/@${this.username}`;\r\n }\r\n }\r\n\r\n }).fail((xhr, sts, err) => {\r\n if (xhr.status == 401) {\r\n toastr.error('用户名密码不正确!');\r\n } else if (xhr.status != 0) {\r\n toastr.error('网络连接错误!');\r\n }\r\n });\r\n // });\r\n\r\n return true;\r\n\r\n }\r\n}\r\n","/**\r\n * 用户密码重置\r\n */\r\nexport class UserPwdReset {\r\n\r\n mail = '';\r\n pwd = '';\r\n\r\n isReq = false;\r\n\r\n token = utils.urlQuery('id');\r\n\r\n resetPwdHandler() {\r\n\r\n if (!$(this.fm).form('is valid')) {\r\n toastr.error('邮件地址输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/pwd/reset', {\r\n method: 'post',\r\n body: json({\r\n mail: this.mail,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path')\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('重置密码邮件链接发送成功!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '重置密码邮件链接发送失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n newPwdHandler() {\r\n\r\n if (!$(this.fm2).form('is valid')) {\r\n toastr.error('新密码输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/pwd/new', {\r\n method: 'post',\r\n body: json({\r\n token: this.token,\r\n pwd: this.pwd\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('重置密码成功!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '重置密码失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n \r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.fm).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n mail: ['empty', 'email']\r\n }\r\n });\r\n\r\n $(this.fm2).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n mail: ['empty', 'minLength[8]']\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\r\n * 账户注册\r\n */\r\nexport class ViewModel {\r\n\r\n header = '账户激活页面';\r\n\r\n /**\r\n * 在视图模型(ViewModel)展示前执行一些自定义代码逻辑\r\n * @param {[object]} params 参数\r\n * @param {[object]} routeConfig 路由配置\r\n * @param {[object]} navigationInstruction 导航指令\r\n * @return {[promise]} 你可以可选的返回一个延迟许诺(promise), 告诉路由等待执行bind和attach视图(view), 直到你完成你的处理工作.\r\n */\r\n activate(params, routeConfig, navigationInstruction) {\r\n\r\n if (params.id) {\r\n this.token = params.id;\r\n\r\n this.isReq = true;\r\n this.header = '账户激活中,请稍后...!';\r\n http.fetch('/free/user/register/activate', {\r\n method: 'post',\r\n body: json({\r\n token: this.token\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n this.header = '账户激活成功,请返回登录页面登录!';\r\n } else {\r\n this.header = '账户激活失败!';\r\n toastr.error(data.data, '账户激活失败!');\r\n }\r\n });\r\n this.isReq = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.fm).form({\r\n on: 'blur',\r\n inline: true,\r\n fields: {\r\n username: {\r\n identifier: 'username',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'minLength[3]'\r\n }, {\r\n type: 'regExp',\r\n value: /^[a-z]+[a-z0-9\\.\\-_]*[a-z0-9]+$/,\r\n prompt: '小写字母数字.-_组合,字母开头,字母数字结尾'\r\n }]\r\n },\r\n pwd: {\r\n identifier: 'pwd',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'minLength[8]'\r\n }]\r\n },\r\n name: {\r\n identifier: 'name',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'maxLength[20]'\r\n }]\r\n },\r\n mail: {\r\n identifier: 'mail',\r\n rules: [{\r\n type: 'empty'\r\n }, {\r\n type: 'email'\r\n }]\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n okHandler() {\r\n\r\n if (!$(this.fm).form('is valid')) {\r\n toastr.error('账户注册信息输入不合法!');\r\n return;\r\n }\r\n\r\n this.isReq = true;\r\n http.fetch('/free/user/register', {\r\n method: 'post',\r\n body: json({\r\n username: this.username,\r\n pwd: this.pwd,\r\n name: this.name,\r\n mail: this.mail,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path')\r\n })\r\n }).then((resp) => {\r\n if (resp.ok) {\r\n resp.json().then((data) => {\r\n if (data.success) {\r\n toastr.success('注册成功,请通过接收到的激活邮件激活账户!');\r\n _.delay(() => {\r\n window.location = \"/admin/login\";\r\n }, 2000);\r\n } else {\r\n toastr.error(data.data, '注册失败!');\r\n this.isReq = false;\r\n }\r\n });\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { customAttribute, bindable } from 'aurelia-framework';\r\nimport { inject } from 'aurelia-dependency-injection';\r\n\r\n@customAttribute('attr')\r\n@inject(Element)\r\nexport class AttrAttr {\r\n\r\n @bindable name;\r\n @bindable value;\r\n\r\n constructor(element) {\r\n\r\n this.element = element;\r\n }\r\n\r\n nameChanged(value) {}\r\n\r\n valueChanged(value) {\r\n\r\n this.value = value;\r\n\r\n if (value) {\r\n $(this.element).attr(this.name, value);\r\n } else {\r\n $(this.element).removeAttr(this.name);\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n unbind() {}\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('autosize')\r\n@inject(Element)\r\nexport class AttrAutosize {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n autosize(this.element);\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n autosize.destroy(this.elements)\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\nimport Clipboard from 'clipboard';\r\n\r\n@customAttribute('c2c')\r\n@inject(Element)\r\nexport class AttrC2cCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n this._init();\r\n }\r\n\r\n _init() {\r\n\r\n $(this.element).append(``);\r\n this.clipboard = new Clipboard($(this.element).find('i.copy.icon')[0], {\r\n text: (trigger) => {\r\n return this.value ? this.value : $(this.element).text();\r\n }\r\n });\r\n let $tp = $(this.element).find('[data-tooltip]').hover(function() {}, function() {\r\n $(this).attr('data-tooltip', '复制到剪贴板!');\r\n });\r\n this.clipboard.on('success', (e) => {\r\n $tp.attr('data-tooltip', '复制成功!');\r\n }).on('error', (e) => {\r\n $tp.attr('data-tooltip', '复制失败!');\r\n });\r\n\r\n $(this.element).hover(() => {\r\n if (this.value || $(this.element).text()) {\r\n $tp.show();\r\n }\r\n }, () => {\r\n $tp.hide();\r\n });\r\n }\r\n\r\n unbind() {\r\n this.clipboard && this.clipboard.destroy();\r\n }\r\n}\r\n","import { inject } from 'aurelia-dependency-injection';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('dimmer')\r\n@inject(Element)\r\nexport class AttrDimmer {\r\n\r\n constructor(element) {\r\n\r\n this.element = element;\r\n this.$dimmer = $('
    ');\r\n }\r\n\r\n valueChanged(newValue) {\r\n if (this.value) {\r\n $(this.element).prepend(this.$dimmer);\r\n } else {\r\n this.$dimmer.remove();\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","import { bindable, inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport {\r\n EventAggregator\r\n}\r\nfrom 'aurelia-event-aggregator';\r\n\r\n@customAttribute('dropzone')\r\n@inject(Element, EventAggregator)\r\nexport class AttrDropzone {\r\n\r\n @bindable clickable;\r\n @bindable target;\r\n @bindable type;\r\n\r\n constructor(element, eventAggregator) {\r\n this.element = element;\r\n this.eventAggregator = eventAggregator;\r\n\r\n this.subscribe = this.eventAggregator.subscribe(nsCons.EVENT_CHAT_MSG_EDIT_UPLOAD, (payload) => {\r\n if (payload.target === this.target) {\r\n $(this.element).click();\r\n }\r\n });\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n let target = this.target ? this.target : this.element;\r\n let toType = this.type ? this.type : (nsCtx.isAt ? 'User' : 'Channel');\r\n\r\n $(this.element).parent().addClass('tms-dropzone-preview-hidden');\r\n\r\n $(this.element).children().andSelf().dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!this.clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n // previewsContainer: this.chatStatusBarRef,\r\n // previewTemplate: this.previewTemplateRef.innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n formData.append('toType', toType);\r\n if('Blog' !== toType) {\r\n formData.append('toId', nsCtx.chatTo);\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n $(target).insertAtCaret('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n $(target).insertAtCaret('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('modaal')\r\n@inject(Element)\r\nexport class AttrModaalCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n // https://github.com/humaan/Modaal\r\n _.defer(() => {\r\n $(this.element).modaal({\r\n fullscreen: true,\r\n overlay_close: false,\r\n animation: 'none',\r\n // animation_speed: 100,\r\n // after_callback_delay: 120,\r\n // is_locked: true,\r\n // start_open: true,\r\n before_open: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_BEFORE_OPEN, {\r\n id: newValue\r\n });\r\n },\r\n after_open: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_AFTER_OPEN, {\r\n id: newValue\r\n });\r\n },\r\n before_close: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_BEFORE_CLOSE, {\r\n id: newValue\r\n });\r\n },\r\n after_close: () => {\r\n ea.publish(nsCons.EVENT_MODAAL_AFTER_CLOSE, {\r\n id: newValue\r\n });\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport 'common/common-plugin';\r\nimport 'common/common-paste';\r\n\r\n@customAttribute('pastable')\r\n@inject(Element)\r\nexport class AttrPastable {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n // clipboard paste image\r\n $(this.element).pastableTextarea().on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: nsCtx.isAt ? 'User' : 'Channel',\r\n toId: nsCtx.chatTo\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n $(this.element).insertAtCaret('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport 'common/common-scrollbar';\r\n\r\n@customAttribute('scrollbar')\r\n@inject(Element)\r\nexport class AttrScrollbarCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n this.cls = newValue ? newValue : ($(window).width() < 768 ? 'scrollbar-macosx' : 'scrollbar-outer');\r\n jQuery(this.element).addClass(this.cls).scrollbar({\r\n \"onScroll\": (y, x) => {\r\n if (y.scroll == y.maxScroll) { // Scrolled to bottom\r\n ea.publish(nsCons.EVENT_SCROLLBAR_SCROLL_TO_BOTTOM, {\r\n element: this.element,\r\n x: x,\r\n y: y\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n try {\r\n jQuery(this.element).removeClass(this.cls).scrollbar('destroy');\r\n } catch (err) {}\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport 'swipebox';\r\n\r\n@customAttribute('swipebox')\r\n@inject(Element)\r\nexport class AttrSwipebox {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n $(this.element).on('click', 'img', (event) => {\r\n event.preventDefault();\r\n let $img = $(event.target);\r\n var imgs = [];\r\n var initialIndexOnArray = 0;\r\n $(this.element).find('img').each(function(index, img) {\r\n imgs.push({ href: $(img).attr('src'), title: $(img).attr('alt') });\r\n if (event.target == img) {\r\n initialIndexOnArray = index;\r\n }\r\n });\r\n $.swipebox(imgs, {\r\n useCSS: true, // false will force the use of jQuery for animations\r\n useSVG: true, // false to force the use of png for buttons\r\n initialIndexOnArray: initialIndexOnArray, // which image index to init when a array is passed\r\n hideCloseButtonOnMobile: false, // true will hide the close button on mobile devices\r\n removeBarsOnMobile: true, // false will show top bar on mobile devices\r\n hideBarsDelay: 3000, // delay before hiding bars on desktop\r\n videoMaxWidth: 1140, // videos max width\r\n beforeOpen: function() {}, // called before opening\r\n afterOpen: null, // called after opening\r\n afterClose: function() {}, // called after closing\r\n loopAtEnd: !!newValue // true will return to the first image after the last image is reached\r\n });\r\n });\r\n }\r\n\r\n bind(bindingContext) {\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('tablesort')\r\n@inject(Element)\r\nexport class AttrTablesortCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init() {\r\n if ($(this.element).is('table')) {\r\n $(this.element).addClass('sortable').tablesort();\r\n } else {\r\n \tconsole.warn('tablesort element is not table tag!');\r\n }\r\n }\r\n\r\n bind() {\r\n \tthis._init();\r\n }\r\n}\r\n","import {\r\n inject\r\n}\r\nfrom 'aurelia-dependency-injection';\r\nimport {\r\n customAttribute\r\n}\r\nfrom 'aurelia-templating';\r\n\r\n\r\n@customAttribute('task')\r\n@inject(Element)\r\nexport class AttrTask {\r\n\r\n task = null;\r\n bindingCtx = null;\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue) {\r\n this.task = newValue;\r\n if (_.isFunction(this.task)) {\r\n _.bind(this.task, this.bindingCtx, this.element)();\r\n }\r\n }\r\n\r\n bind(bindingContext) {\r\n this.bindingCtx = bindingContext;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n unbind() {\r\n this.element = null;\r\n this.task = null;\r\n this.bindingCtx = null;\r\n }\r\n\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\nimport tips from 'common/common-tips';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@customAttribute('textcomplete')\r\n@inject(Element)\r\nexport class AttrTextcompleteCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n this.initHotkeys();\r\n }\r\n\r\n tipsActionHandler(value) {\r\n if (value == '/upload') {\r\n $(this.element).next('.tms-edit-actions').find('button > .upload.icon').click();\r\n } else if (value == '/shortcuts') {\r\n ea.publish(nsCons.EVENT_SHOW_HOTKEYS_MODAL, {});\r\n } else if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n valueChanged() {\r\n if (this.value) {\r\n this.members = this.value;\r\n $(this.element).textcomplete([{ // chat msg help\r\n match: /(|\\b)(\\/.*)$/,\r\n search: (term, callback) => {\r\n var keys = _.keys(tips);\r\n callback($.map(keys, (key) => {\r\n return key.indexOf(term) === 0 ? key : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n return tips[value].label;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n _.defer(() => {\r\n autosize.update(this.element);\r\n });\r\n this.setCaretPosition(tips[value].ch2 ? tips[value].ch2 : tips[value].ch);\r\n return `$1${tips[value].value}`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n }, { // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(this.members, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(this.members, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: $(this.element).prev('.textcomplete-container').find('.append-to'),\r\n maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n } else {\r\n this.unbind();\r\n }\r\n }\r\n\r\n setCaretPosition(ch) {\r\n (ch) && (_.delay(() => {\r\n let cr = utils.getCursortPosition(this.element);\r\n utils.setCaretPosition(this.element, cr - ch);\r\n }, 100));\r\n }\r\n\r\n initHotkeys() {\r\n\r\n _.each(_.filter(_.values(tips), 'key'), (value) => {\r\n $(this.element).bind('keydown', value.key, (evt) => {\r\n evt.preventDefault();\r\n $(this.element).insertAtCaret(value.value);\r\n let cr = utils.getCursortPosition(this.element);\r\n let ch = value.ch2 ? value.ch2 : value.ch;\r\n ch && (utils.setCaretPosition(this.element, cr - ch));\r\n _.defer(() => {\r\n autosize.update(this.element);\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n unbind() {\r\n try {\r\n $(this.element).textcomplete('destroy');\r\n } catch (err) {}\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\nimport { customAttribute } from 'aurelia-templating';\n\n@customAttribute('ui-checkbox')\n@inject(Element)\nexport class AttrUiCheckboxCustomAttribute {\n\n constructor(element) {\n this.element = element;\n }\n\n valueChanged(newValue, oldValue) {\n $(this.element).checkbox();\n }\n}\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown-action')\r\n@inject(Element)\r\nexport class AttrUiDropdownActionCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(context) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n action: 'hide',\r\n context: context\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : window);\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown-hover')\r\n@inject(Element)\r\nexport class AttrUiDropdownHoverCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(action) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n on: 'hover',\r\n action: action\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : 'hide');\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-dropdown')\r\n@inject(Element)\r\nexport class AttrUiDropdownCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init(action) {\r\n _.defer(() => {\r\n $(this.element).dropdown({\r\n action: action\r\n });\r\n });\r\n }\r\n\r\n bind() {\r\n this._init(this.value ? this.value : 'hide');\r\n }\r\n}\r\n","import { inject } from 'aurelia-framework';\r\nimport { customAttribute } from 'aurelia-templating';\r\n\r\n@customAttribute('ui-popup')\r\n@inject(Element)\r\nexport class AttrUiPopupCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n _.defer(() => {\r\n $(this.element).popup({\r\n \ton: 'click',\r\n inline: true,\r\n silent: true,\r\n // hoverable: true,\r\n position: newValue ? newValue : 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onShow: () => {\r\n \t\r\n },\r\n onVisible: () => {\r\n\r\n }\r\n });\r\n });\r\n\r\n }\r\n}\r\n","import { customAttribute, inject } from 'aurelia-framework';\r\n\r\n@customAttribute('ui-tab')\r\n@inject(Element)\r\nexport class AttrUiTabCustomAttribute {\r\n\r\n constructor(element) {\r\n this.element = element;\r\n }\r\n\r\n valueChanged(newValue, oldValue) {\r\n\r\n }\r\n\r\n _init() {\r\n _.defer(() => {\r\n $(this.element).find('.item').tab();\r\n });\r\n }\r\n\r\n bind() {\r\n this._init();\r\n }\r\n}\r\n","const keyCodes = {\r\n 'esc': 27,\r\n 'tab': 9,\r\n 'enter': 13,\r\n 'space': 32,\r\n 'up': 38,\r\n 'left': 37,\r\n 'right': 39,\r\n 'down': 40,\r\n 'backspace': 8,\r\n 'delete': 46\r\n}\r\n\r\nfunction keyHandler(event) {\r\n\r\n if (event && event.ctrlKey == this.keyState.ctrl && event.altKey == this.keyState.alt && event.shiftKey == this.keyState.shift && event.keyCode == this.keyState.keyCode) {\r\n this.originalMethod(event);\r\n } else {\r\n // console.warn(`Unknown event [${event}] for KeyBindingBehavior!`);\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport class KeyBindingBehavior {\r\n\r\n bind(binding, source, key = 13, metaKeys) {\r\n // determine which method to throttle.\r\n let methodName = 'updateTarget'; // one-way bindings or interpolation bindings\r\n if (binding.callSource) {\r\n methodName = 'callSource'; // listener and call bindings\r\n } else if (binding.updateSource && binding.mode === bindingMode.twoWay) {\r\n methodName = 'updateSource'; // two-way bindings\r\n }\r\n\r\n // stash the original method and it's name.\r\n // note: a generic name like \"originalMethod\" is not used to avoid collisions\r\n // with other binding behavior types.\r\n binding.originalMethod = binding[methodName];\r\n binding.originalMethod.originalName = methodName;\r\n\r\n // replace the original method with the throttling version.\r\n binding[methodName] = keyHandler;\r\n let keyCode = _.isInteger(key) ? key : (key.length === 1 ? key.charCodeAt(0) : keyCodes[key]);\r\n if (_.isUndefined(keyCode)) {\r\n console.warn(`Unmapping keyCode for KeyBindingBehavior!`);\r\n }\r\n binding.keyState = {\r\n ctrl: _.includes(metaKeys, 'ctrl'),\r\n alt: _.includes(metaKeys, 'alt'),\r\n shift: _.includes(metaKeys, 'shift'),\r\n keyCode: keyCode,\r\n };\r\n }\r\n\r\n unbind(binding, source) {\r\n // restore the state of the binding.\r\n binding[binding.originalMethod.originalName] = binding.originalMethod;\r\n binding.originalMethod = null;\r\n }\r\n}\r\n","import 'jquery-format';\r\nimport 'timeago';\r\nimport {\r\n default as ColorHash\r\n} from 'color-hash';\r\nimport tags from 'common/common-tags';\r\n\r\nlet tg = timeago();\r\n\r\n/**\r\n * 该文件用于定义值的过滤转换器\r\n *\r\n */\r\n// ============================================================\r\n/**\r\n * 转换为大写形式\r\n * eg:

    ${name | upper}

    \r\n */\r\nexport class UpperValueConverter {\r\n toView(value) {\r\n return value && value.toUpperCase();\r\n }\r\n}\r\n\r\n/**\r\n * 转换为小写形式\r\n * eg:

    ${name | lower}

    \r\n */\r\nexport class LowerValueConverter {\r\n toView(value) {\r\n return value && value.toLowerCase();\r\n }\r\n}\r\n\r\n/**\r\n * 时间格式化值转换器, using as: 4234234234 | dateFormat\r\n * doc: https://www.npmjs.com/package/jquery-format\r\n */\r\nexport class DateValueConverter {\r\n toView(value, format = 'yyyy-MM-dd hh:mm:ss') {\r\n return _.isInteger(_.toNumber(value)) ? $.format.date(new Date(value), format) : (value ? value : '');\r\n }\r\n}\r\n\r\n/**\r\n * 数值格式化值转换器, using as: 4234234234 | numberFormat\r\n * doc: https://www.npmjs.com/package/jquery-format\r\n */\r\nexport class NumberValueConverter {\r\n toView(value, format = '#,##0.00') {\r\n return _.isNumber(_.toNumber(value)) ? $.format.number(value, format) : (value ? value : '');\r\n }\r\n}\r\n\r\n/**\r\n * 日期timeago值转换器\r\n * doc: \r\n * https://www.npmjs.com/package/better-timeago\r\n * https://www.npmjs.com/package/better-timeago-locale-zh-cn\r\n */\r\nexport class TimeagoValueConverter {\r\n toView(value) {\r\n return value ? tg.format(value, 'zh_CN') : '';\r\n }\r\n}\r\n\r\n/**\r\n * markdown内容解析处理\r\n */\r\nexport class ParseMdValueConverter {\r\n toView(value) {\r\n return value ? marked(utils.preParse(value)) : '';\r\n }\r\n}\r\n\r\nexport class SortValueConverter {\r\n toView(value, prop) {\r\n return _.isArray(value) ? _.sortBy(value, prop) : value;\r\n }\r\n}\r\n\r\nexport class SortUsersValueConverter {\r\n toView(value, username) {\r\n if (_.isArray(value) && username) {\r\n let user = _.find(value, { username: username });\r\n if (user) {\r\n return [user, ..._.reject(value, { username: username })];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class SortUsernamesValueConverter {\r\n toView(value, username) {\r\n if (_.isArray(value) && username) {\r\n if (_.includes(value, username)) {\r\n return [username, ..._.without(value, username)];\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class SortChannelsValueConverter {\r\n toView(value) {\r\n if (_.isArray(value)) {\r\n let channelAll = _.find(value, { name: 'all' });\r\n if (channelAll) {\r\n return [channelAll, ..._.reject(value, { name: 'all' })]\r\n }\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class UserNameValueConverter {\r\n toView(value) {\r\n let user = _.find(window.tmsUsers, { username: value });\r\n if (user) {\r\n return user.name;\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class EmojiValueConverter {\r\n toView(value, mkbodyDom) {\r\n if (emojify) {\r\n _.defer(() => {\r\n emojify.run(mkbodyDom);\r\n });\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class EmojiReplValueConverter {\r\n toView(value) {\r\n return emojify.replace(value);\r\n }\r\n}\r\n\r\nexport class ChatLabelExistValueConverter {\r\n toView(chatLabels, type) {\r\n if (chatLabels && chatLabels.length != 0) {\r\n if (_.some(chatLabels, cl => (type ? cl.type == type : true) && cl.voters.length != 0)) {\r\n return '';\r\n }\r\n }\r\n return 'none';\r\n }\r\n}\r\n\r\nexport class ChatLabelTipValueConverter {\r\n toView(chatLabel) {\r\n let vs = _.map(chatLabel.voters, v => v.name ? v.name : v.username);\r\n return `${_.join(vs, ',')}${vs.length}人${chatLabel.type == 'Emoji' ? '表示了' : '标记了'} [${chatLabel.type == 'Emoji' ? chatLabel.description : chatLabel.name}]`\r\n }\r\n}\r\n\r\nexport class ChatLabelFilterValueConverter {\r\n toView(chatLabels, type = 'Emoji') {\r\n return _.filter(chatLabels, { type: type });\r\n }\r\n}\r\n\r\nexport class LabelColorValueConverter {\r\n\r\n toView(chatLabel) {\r\n let tag = _.find(tags, { value: chatLabel.name });\r\n return tag ? tag.color : '';\r\n }\r\n}\r\n\r\nexport class LabelCssValueConverter {\r\n\r\n toView(chatLabel) {\r\n let cs = colorHash.rgb(chatLabel.name);\r\n let bgColor = `rgba(${cs[0]}, ${cs[1]}, ${cs[2]}, 0.6)`;\r\n let color = `rgba(${255 - cs[0]}, ${255 - cs[1]}, ${255 - cs[2]}, 1)`;\r\n\r\n let tag = _.find(tags, { value: chatLabel.name });\r\n return !tag ? { \"background-color\": bgColor, \"color\": color } : '';\r\n }\r\n}\r\n\r\nexport class Nl2brValueConverter {\r\n toView(value) {\r\n if (value) {\r\n return _.replace(value, /\\n/g, '
    ');\r\n }\r\n return value;\r\n }\r\n}\r\n\r\nexport class DiffHtmlValueConverter {\r\n toView(value, allowedTags, allowedAttributes) {\r\n if (value) {\r\n return utils.diffHtml(value);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogCommentPopup {\n\n comment;\n\n /**\n * 构造函数\n */\n constructor() {\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, (payload) => {\n this.id = payload.id;\n this.target = payload.target;\n\n $(this.target).popup({\n popup: this.popup,\n hoverable: true,\n inline: false,\n movePopup: false,\n // position: 'top left',\n // maxSearchDepth: 50,\n silent: true,\n position: 'bottom left',\n jitter: 300,\n prefer: 'opposite',\n delay: {\n show: 300,\n hide: 300\n },\n onShow: () => {\n $.get('/admin/blog/comment/get', {\n cid: this.id\n }, (data) => {\n if (data.success) {\n this.comment = data.data;\n } else {\n toastr.error(data.data, \"加载失败!\");\n }\n });\n }\n }).popup('show');\n });\n }\n\n /**\n * 当数据绑定引擎从视图解除绑定时被调用\n */\n unbind() {\n this.subscribe.dispose();\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogCommentShare {\n\n shares = [];\n desc = '';\n\n @bindable blog;\n @bindable comment;\n @bindable loginUser;\n\n basePath = utils.getBasePath();\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.searchRef)\n .search({\n minCharacters: 2,\n cache: false,\n selectFirstResult: true,\n showNoResults: false,\n onSelect: (result, response) => {\n result.item._id = _.uniqueId('share-item-');\n result.item._type = result.item.username ? 'user' : 'channel';\n this.shares.push(result.item);\n _.defer(() => { $(this.inputSearchRef).val(''); });\n },\n apiSettings: {\n onResponse: (resp) => {\n var response = {\n results: []\n };\n $.each(resp.data.users, (index, item) => {\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\n response.results.push({\n item: item,\n title: ` ${item.name} (${item.username})`,\n });\n }\n });\n $.each(resp.data.channels, (index, item) => {\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\n response.results.push({\n item: item,\n title: ` ${item.title} (${item.name})`,\n });\n }\n });\n return response;\n },\n url: '/admin/blog/share/to/search?search={query}'\n }\n });\n $(this.shareRef).popup({\n on: 'click',\n inline: true,\n silent: true,\n position: 'bottom right',\n jitter: 300,\n delay: {\n show: 300,\n hide: 300\n },\n onVisible: () => {\n $(this.inputSearchRef).focus();\n }\n });\n }\n\n shareSearchKeyupHandler(event) {\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\n let val = $(this.inputSearchRef).val();\n if (utils.isMail(val)) {\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\n this.shares.push({\n _id: _.uniqueId('share-item-'),\n _type: 'mail',\n mail: val\n });\n $(this.inputSearchRef).val('');\n }\n }\n }\n }\n\n show() {\n $(this.shareRef).popup('show');\n }\n\n removeShareHandler(item) {\n this.shares = _.reject(this.shares, { _id: item._id });\n }\n\n cancelHandler() {\n this._reset();\n }\n\n _reset() {\n this.shares = [];\n this.desc = '';\n $(this.inputSearchRef).val('');\n $(this.shareRef).popup('hide');\n }\n\n shareHandler() {\n\n if (this.shares.length === 0) {\n toastr.error('请先指定博文评论分享用户或者频道或者邮箱!');\n return;\n }\n\n this.ajaxS = $.post(`/admin/blog/comment/share`, {\n basePath: utils.getBasePath(),\n href: `${this.basePath}#/blog/${this.blog.id}?cid=${this.comment.id}`,\n id: this.comment.id,\n desc: this.desc,\n html: utils.md2html(this.comment.content),\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this._reset();\n toastr.success('博文评论分享成功!');\n } else {\n toastr.error(data.data, '博文评论分享失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@containerless\r\nexport class EmBlogComment {\r\n\r\n comments = [];\r\n\r\n baseUrl = utils.getUrl();\r\n basePath = utils.getBasePath();\r\n offset = 0;\r\n isSuper = nsCtx.isSuper;\r\n loginUser = nsCtx.loginUser;\r\n users = nsCtx.users;\r\n\r\n @bindable blog;\r\n\r\n blogChanged(newValue, oldValue) {\r\n this._refresh();\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_MSG_INSERT, (payload) => {\r\n this.insertContent(`${payload.content}`);\r\n this._scrollTo('b');\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n _refresh() {\r\n if (!this.blog) {\r\n return;\r\n }\r\n $.get('/admin/blog/comment/query', {\r\n id: this.blog.id,\r\n page: 0,\r\n size: 1000\r\n }, (data) => {\r\n if (data.success) {\r\n this.comments = data.data.content;\r\n let cid = utils.urlQuery('cid');\r\n if (cid) {\r\n _.defer(() => {\r\n this.scrollToAfterImgLoaded(cid);\r\n });\r\n }\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'query',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this._init();\r\n\r\n // 消息popup\r\n $('.em-blog-comment .comments').on('mouseenter', '.markdown-body a[href*=\"#/blog/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n let cid = utils.urlQuery('cid', $a.attr('href'));\r\n cid && ea.publish(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, {\r\n id: cid,\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n $('.em-blog-comment .comments').on('dblclick', '.comment', (event) => {\r\n if (event.ctrlKey) {\r\n let cid = $(event.currentTarget).attr('data-id');\r\n let $t = $(event.currentTarget).find('.content > textarea');\r\n let item = _.find(this.comments, { id: +cid });\r\n if (this.isSuper || item.creator.username == this.loginUser.username) {\r\n this.editHandler(item, $t);\r\n }\r\n }\r\n });\r\n\r\n $('.em-blog-comment .comments').on('click', '.comment', (event) => {\r\n this.focusedComment = $(event.currentTarget);\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'r', (evt) => { // reply\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(`max`, 120, {\r\n offset: 0\r\n });\r\n this.simplemde.codemirror.focus();\r\n }).bind('keydown', 'alt+up', (evt) => { // comment pre\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(this.getScrollTargetComment(true), 120, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'alt+down', (evt) => { // comment next\r\n evt.preventDefault();\r\n $('.em-blog-content').scrollTo(this.getScrollTargetComment(), 120, {\r\n offset: 0\r\n });\r\n });\r\n\r\n }\r\n\r\n getScrollTargetComment(isPrev) {\r\n if (isPrev) {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let $avatar = this.focusedComment.find('> a.em-user-avatar');\r\n if (utils.isElementInViewport($avatar)) {\r\n let prev = this.focusedComment.prev('.comment');\r\n (prev.size() === 1) && (this.focusedComment = prev);\r\n }\r\n } else {\r\n this.focusedComment = $(this.blogCommentsRef).children('.comment:first');\r\n }\r\n } else {\r\n if (this.focusedComment && this.focusedComment.size() === 1) {\r\n let next = this.focusedComment.next('.comment');\r\n (next.size() === 1) && (this.focusedComment = next);\r\n } else {\r\n this.focusedComment = $(this.blogCommentsRef).children('.comment:last');\r\n }\r\n }\r\n return this.focusedComment;\r\n }\r\n\r\n _init() {\r\n this.simplemde = new SimpleMDE({\r\n element: this.commentRef,\r\n spellChecker: false,\r\n status: false,\r\n // autofocus: true,\r\n // toolbar: false,\r\n // forceSync: true,\r\n // autoDownloadFontAwesome: false,\r\n toolbar: [{\r\n name: \"bold\",\r\n action: SimpleMDE.toggleBold,\r\n className: \"fa fa-bold\",\r\n title: \"粗体\",\r\n }, {\r\n name: \"italic\",\r\n action: SimpleMDE.toggleItalic,\r\n className: \"fa fa-italic\",\r\n title: \"斜体\",\r\n }, {\r\n name: \"strikethrough\",\r\n action: SimpleMDE.toggleStrikethrough,\r\n className: \"fa fa-strikethrough\",\r\n title: \"删除线\",\r\n }, {\r\n name: \"heading\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header\",\r\n title: \"标题\",\r\n }, {\r\n name: \"heading-smaller\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header fa-header-x fa-header-smaller\",\r\n title: \"变小标题\",\r\n }, {\r\n name: \"heading-bigger\",\r\n action: SimpleMDE.toggleHeadingBigger,\r\n className: \"fa fa-header fa-header-x fa-header-bigger\",\r\n title: \"变大标题\",\r\n }, \"|\", {\r\n name: \"code\",\r\n action: SimpleMDE.toggleCodeBlock,\r\n className: \"fa fa-code\",\r\n title: \"代码\",\r\n }, {\r\n name: \"quote\",\r\n action: SimpleMDE.toggleBlockquote,\r\n className: \"fa fa-quote-left\",\r\n title: \"引用\",\r\n }, {\r\n name: \"unordered-list\",\r\n action: SimpleMDE.toggleUnorderedList,\r\n className: \"fa fa-list-ul\",\r\n title: \"无序列表\",\r\n }, {\r\n name: \"ordered-list\",\r\n action: SimpleMDE.toggleOrderedList,\r\n className: \"fa fa-list-ol\",\r\n title: \"有序列表\",\r\n }, {\r\n name: \"tasks\",\r\n action: (editor) => {\r\n this.insertContent('- [ ] 未完成任务\\n- [x] 已完成任务');\r\n },\r\n className: \"fa fa-check-square-o \",\r\n title: \"任务列表\",\r\n }, {\r\n name: \"details\",\r\n action: (editor) => {\r\n this.insertContent('
    \\n标题\\n

    详情内容

    \\n
    ');\r\n },\r\n className: \"fa fa-play \",\r\n title: \"折叠详情\",\r\n }, \"|\", {\r\n name: \"link\",\r\n action: SimpleMDE.drawLink,\r\n className: \"fa fa-link\",\r\n title: \"创建链接\",\r\n }, {\r\n name: \"image\",\r\n action: SimpleMDE.drawImage,\r\n className: \"fa fa-picture-o\",\r\n title: \"插入图片\",\r\n }, {\r\n name: \"table\",\r\n action: SimpleMDE.drawTable,\r\n className: \"fa fa-table\",\r\n title: \"插入表格\",\r\n }, {\r\n name: \"horizontal-rule\",\r\n action: SimpleMDE.drawHorizontalRule,\r\n className: \"fa fa-minus\",\r\n title: \"插入水平分割线\",\r\n }, \"|\", {\r\n name: \"upload\",\r\n action: function(editor) {},\r\n className: \"fa fa-upload\",\r\n title: \"上传文件\",\r\n }, \"|\", {\r\n name: \"preview\",\r\n action: SimpleMDE.togglePreview,\r\n className: \"fa fa-eye no-disable\",\r\n title: \"切换预览\",\r\n },\r\n // {\r\n // name: \"side-by-side\",\r\n // action: SimpleMDE.toggleSideBySide,\r\n // className: \"fa fa-columns no-disable no-mobile\",\r\n // title: \"实时预览\",\r\n // }, {\r\n // name: \"fullscreen\",\r\n // action: SimpleMDE.toggleFullScreen,\r\n // className: \"fa fa-arrows-alt no-disable no-mobile\",\r\n // title: \"全屏\",\r\n // }, \r\n {\r\n name: \"guide\",\r\n action: 'https://simplemde.com/markdown-guide',\r\n className: \"fa fa-question-circle\",\r\n title: \"Markdown指南\",\r\n }\r\n\r\n ],\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n if (emojify) {\r\n plainText = emojify.replace(plainText);\r\n }\r\n return marked(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.simplemde.codemirror.on('keyup', (cm, e) => {\r\n if (e.ctrlKey && e.keyCode == 13) { // Ctrl+Enter\r\n this.addHandler();\r\n } else if (e.keyCode == 27) { // Esc\r\n this.simplemde.value('');\r\n }\r\n });\r\n\r\n this.$chatMsgInputRef = $(this.markdownRef).find('.CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $(this.markdownRef).find('.CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n this.initPaste();\r\n\r\n this.initTextcomplete();\r\n\r\n this.initUploadDropzone($('.CodeMirror-wrap', this.markdownRef), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n\r\n this.initUploadDropzone($('.editor-toolbar .fa.fa-upload', this.markdownRef), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(nsCtx.users, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(nsCtx.users, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-blog-comment-status-bar',\r\n // maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n isTipsShow() {\r\n return $('.tms-blog-comment-status-bar').find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n tipsActionHandler(value) {\r\n\r\n if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.blog = null;\r\n this.simplemde.value('');\r\n this.simplemde.toTextArea();\r\n this.simplemde = null;\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n }\r\n\r\n replyHandler(item) {\r\n this.insertContent(`[[回复评论#${item.id}](${this.baseUrl}?cid=${item.id}){~${item.creator.username}}]\\n\\n`);\r\n this._scrollTo('b');\r\n }\r\n\r\n removeHandler(item) {\r\n $.post('/admin/blog/comment/remove', {\r\n cid: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.comments = _.reject(this.comments, { id: item.id });\r\n toastr.success('博文评论移除成功!');\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'removed',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data, '博文评论移除失败!');\r\n }\r\n });\r\n }\r\n\r\n addHandler() {\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n toastr.error('评论内容不能为空!');\r\n return;\r\n }\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n\r\n var html = utils.md2html(content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n $.post(`/admin/blog/comment/create`, {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n users: utils.parseUsernames(content, users).join(','),\r\n content: content,\r\n contentHtml: html\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.comments = [...this.comments, data.data];\r\n this.simplemde.value('');\r\n toastr.success('博文评论提交成功!');\r\n this.scrollToAfterImgLoaded('b');\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_ADDED, {});\r\n ea.publish(nsCons.EVENT_BLOG_COMMENT_CHANGED, {\r\n action: 'created',\r\n comments: this.comments\r\n });\r\n } else {\r\n toastr.error(data.data, '博文评论提交失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: 'Blog'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: '.em-blog-comment .dropzone-previews',\r\n previewTemplate: $('.em-blog-comment .preview-template')[0].innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', 'Blog');\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n scrollToAfterImgLoaded(to) {\r\n _.defer(() => {\r\n new ImagesLoaded($('.em-blog-content')[0]).always(() => {\r\n this._scrollTo(to);\r\n });\r\n\r\n this._scrollTo(to);\r\n });\r\n\r\n }\r\n\r\n _scrollTo(to) {\r\n if (to == 'b') {\r\n $('.em-blog-content').scrollTo('max');\r\n } else if (to == 't') {\r\n $('.em-blog-content').scrollTo(0);\r\n } else {\r\n if (_.some(this.comments, { id: +to })) {\r\n $('.em-blog-content').scrollTo(`.comment[data-id=\"${to}\"]`, {\r\n offset: this.offset\r\n });\r\n $('.em-blog-content').find(`.comment[data-id]`).removeClass('active');\r\n $('.em-blog-content').find(`.comment[data-id=${to}]`).addClass('active');\r\n } else {\r\n $('.em-blog-content').scrollTo('max');\r\n toastr.warning(`博文评论[${to}]不存在,可能已经被删除!`);\r\n }\r\n }\r\n }\r\n\r\n editHandler(item, editTxtRef) {\r\n $.get(`/admin/blog/comment/get`, {\r\n cid: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $(editTxtRef).focus().select();\r\n autosize.update(editTxtRef);\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n\r\n refreshHandler(item) {\r\n $.get('/admin/blog/comment/get', {\r\n cid: item.id\r\n }, (data) => {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n toastr.success('刷新同步成功!');\r\n } else {\r\n toastr.info('博文评论内容暂无变更!');\r\n }\r\n });\r\n }\r\n\r\n eidtKeydownHandler(evt, item, txtRef) {\r\n\r\n if (this.sending) {\r\n return false;\r\n }\r\n\r\n if (evt.ctrlKey && evt.keyCode === 13) {\r\n\r\n this.editSave(item, txtRef);\r\n\r\n return false;\r\n } else if (evt.ctrlKey && evt.keyCode === 85) {\r\n $(txtRef).next('.tms-blog-comment-edit-actions').find('.upload').click();\r\n return false;\r\n } else if (evt.keyCode === 27) {\r\n this.editCancelHandler(evt, item, txtRef);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n editOkHandler(evt, item, txtRef) {\r\n this.editSave(item, txtRef);\r\n item.isEditing = false;\r\n }\r\n\r\n editCancelHandler(evt, item, txtRef) {\r\n item.content = item.contentOld;\r\n $(txtRef).val(item.content);\r\n item.isEditing = false;\r\n }\r\n\r\n editSave(item, txtRef) {\r\n\r\n this.sending = true;\r\n\r\n item.content = $(txtRef).val();\r\n\r\n var html = utils.md2html(item.content);\r\n var htmlOld = utils.md2html(item.contentOld);\r\n\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n $.post(`/admin/blog/comment/update`, {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n cid: item.id,\r\n version: item.version,\r\n users: utils.parseUsernames(item.content, users).join(','),\r\n content: item.content,\r\n contentHtml: html,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('博文评论更新成功!');\r\n item.isEditing = false;\r\n item.version = data.data.version;\r\n } else {\r\n toastr.error(data.data, '博文评论更新失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n isZanDone(comment) {\r\n let voteZan = comment.voteZan;\r\n if (!voteZan) {\r\n return false;\r\n }\r\n\r\n return voteZan.split(',').includes(this.loginUser.username);\r\n }\r\n\r\n rateHandler(item) {\r\n $.post('/admin/blog/comment/vote', {\r\n cid: item.id,\r\n url: utils.getBasePath(),\r\n contentHtml: utils.md2html(item.content),\r\n type: this.isZanDone(item) ? 'Cai' : 'Zan'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(item, data.data);\r\n } else {\r\n toastr.error(data.data, '博文投票失败!');\r\n }\r\n });\r\n\r\n }\r\n\r\n gotoTopHandler() {\r\n $('.em-blog-content').scrollTo(0, 120);\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as clipboard\r\n} from 'clipboard-js';\r\nimport {\r\n default as Clipboard\r\n} from 'clipboard';\r\n\r\n@containerless\r\nexport class EmBlogContent {\r\n\r\n blog;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n isAdmin = nsCtx.isAdmin;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.getBlog();\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, {\r\n isHide: true\r\n });\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n if (payload.action == 'updated') {\r\n _.extend(this.blog, payload.blog);\r\n _.defer(() => this.catalogHandler(true));\r\n }\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_ADDED, (payload) => {\r\n if (!this.blogFollower) {\r\n this.getFollower();\r\n }\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_BLOG_COMMENT_CHANGED, (payload) => {\r\n this.comments = payload.comments;\r\n });\r\n\r\n this.throttleCreateHandler = _.throttle(() => { this.createHandler() }, 1000, { 'trailing': false });\r\n this.throttleEditHandler = _.throttle(() => { this.editHandler() }, 1000, { 'trailing': false });\r\n this.throttleCopyHandler = _.throttle(() => { this.copyHandler() }, 1000, { 'trailing': false });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.getBlog();\r\n\r\n new Clipboard('.em-blog-content .tms-clipboard')\r\n .on('success', function(e) {\r\n toastr.success('复制到剪贴板成功!');\r\n }).on('error', function(e) {\r\n toastr.error('复制到剪贴板失败!');\r\n });\r\n\r\n $('.em-blog-content').on('click', 'code[data-code]', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).attr('data-code')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.em-blog-content').on('click', '.pre-code-wrapper', function(event) {\r\n if (event.ctrlKey) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n clipboard.copy($(event.currentTarget).find('i[data-clipboard-text]').attr('data-clipboard-text')).then(\r\n () => { toastr.success('复制到剪贴板成功!'); },\r\n (err) => { toastr.error('复制到剪贴板失败!'); }\r\n );\r\n }\r\n });\r\n\r\n $('.em-blog-right-sidebar').on('click', '.panel-blog-dir .wiki-dir-item', (event) => {\r\n event.preventDefault();\r\n if ($(window).width() <= 768) {\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, { isHide: true });\r\n }\r\n $('.em-blog-content').scrollTo(`#${$(event.currentTarget).attr('data-id')}`, 200, {\r\n offset: 0\r\n });\r\n });\r\n\r\n $(this.mkbodyRef).on('dblclick', (event) => {\r\n if (event.ctrlKey) {\r\n if (this.blog.openEdit || this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.editHandler();\r\n }\r\n }\r\n });\r\n\r\n $('.em-blog-content').scroll(_.throttle((event) => {\r\n try {\r\n let sHeight = $('.em-blog-content')[0].scrollHeight;\r\n let sTop = $('.em-blog-content')[0].scrollTop;\r\n\r\n let scale = sTop * 1.0 / (sHeight - $('.em-blog-content').outerHeight());\r\n this.progressWidth = $('.em-blog-content').outerWidth() * scale;\r\n\r\n this.fixDirItem();\r\n\r\n } catch (err) { this.progressWidth = 0; }\r\n\r\n }, 10));\r\n\r\n // 消息popup\r\n $(this.feedRef).on('mouseenter', '.event a[href*=\"#/blog/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n let cid = utils.urlQuery('cid', $a.attr('href'));\r\n cid && ea.publish(nsCons.EVENT_BLOG_COMMENT_POPUP_SHOW, {\r\n id: cid,\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n fixDirItem() {\r\n let fixId = null;\r\n let preId = null;\r\n _.each(this.dirItemIds, (id) => {\r\n if (!preId) {\r\n if (utils.isElementInViewport($(`#${id}`))) {\r\n fixId = id;\r\n return false;\r\n }\r\n } else {\r\n if (utils.isElementInViewport($(`#${id}`)) && !utils.isElementInViewport($(`#${preId}`))) {\r\n fixId = id;\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (fixId) {\r\n let fixDirItem = $('.em-blog-right-sidebar .panel-blog-dir').find(`.wiki-dir-item[data-id=\"${fixId}\"]`);\r\n if (fixDirItem) {\r\n $('.em-blog-right-sidebar .panel-blog-dir').find(`.wiki-dir-item[data-id]`).removeClass('active');\r\n fixDirItem.addClass('active');\r\n\r\n $('.em-blog-right-sidebar .scrollbar-macosx.scroll-content.scroll-scrolly_visible').scrollTo(fixDirItem, 10, {\r\n offset: -120\r\n });\r\n }\r\n }\r\n }\r\n\r\n initHotkeys() {\r\n try {\r\n $(document).bind('keyup', 'e', (evt) => { // edit\r\n evt.preventDefault();\r\n if (this.blog.openEdit || this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.throttleEditHandler();\r\n }\r\n }).bind('keyup', 'c', (evt) => { // create\r\n evt.preventDefault();\r\n this.throttleCreateHandler();\r\n }).bind('keydown', 'd', (evt) => { // dir\r\n evt.preventDefault();\r\n if (this.dir) {\r\n this.catalogHandler();\r\n }\r\n }).bind('keydown', 's', (evt) => { // share\r\n evt.preventDefault();\r\n this.blogShareVm.show();\r\n }).bind('keydown', 'f', (evt) => { // follow\r\n evt.preventDefault();\r\n this.followerHandler();\r\n }).bind('keydown', 't', (event) => { // scroll top\r\n event.preventDefault();\r\n $('.em-blog-content').scrollTo(0, 200, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'b', (event) => { // scroll bottom\r\n event.preventDefault();\r\n $('.em-blog-content').scrollTo(`max`, 200, {\r\n offset: 0\r\n });\r\n }).bind('keydown', 'alt+r', (event) => { // refresh\r\n event.preventDefault();\r\n this.refreshHandler();\r\n }).bind('keydown', 'alt+h', (event) => { // history\r\n event.preventDefault();\r\n this.historyHandler();\r\n }).bind('keydown', 'alt+l', (event) => { // history\r\n event.preventDefault();\r\n this.authHandler();\r\n }).bind('keydown', 'alt+s', (event) => { // stow\r\n event.preventDefault();\r\n this.stowHandler();\r\n }).bind('keydown', 'alt+c', (event) => { // copy\r\n event.preventDefault();\r\n this.throttleCopyHandler();\r\n }).bind('keydown', 'alt+m', (event) => { // move space\r\n event.preventDefault();\r\n this.updateSpaceHandler();\r\n }).bind('keydown', 'alt+o', (event) => { // open edit\r\n event.preventDefault();\r\n this.openEditHandler();\r\n }).bind('keydown', 'alt+ctrl+d', (event) => { // delete\r\n event.preventDefault();\r\n this.deleteHandler();\r\n });\r\n } catch (err) { console.log(err); }\r\n\r\n }\r\n\r\n _dir() {\r\n this.dir = utils.dir($(this.mkbodyRef), 'tms-blog-dir-item-');\r\n this.dirItemIds = [];\r\n if (this.dir) {\r\n $(this.dir).find('a.item.wiki-dir-item').each((index, el) => {\r\n this.dirItemIds.push($(el).attr('data-id'));\r\n });\r\n }\r\n return this.dir;\r\n }\r\n\r\n getMyLog() {\r\n this.ajaxS = $.get('/admin/blog/log/my', (data) => {\r\n if (data.success) {\r\n // this.logs = _.reverse(data.data);\r\n this.logs = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n getBlog() {\r\n this.progressWidth = 0;\r\n if (!nsCtx.blogId || isNaN(new Number(nsCtx.blogId))) {\r\n this.blog = null;\r\n this.getMyLog();\r\n return;\r\n }\r\n\r\n this.getStow();\r\n this.getFollower();\r\n\r\n return $.get('/admin/blog/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n ea.publish(nsCons.EVENT_BLOG_VIEW_CHANGED, this.blog);\r\n _.defer(() => this.catalogHandler(true));\r\n this.getMyTags();\r\n } else {\r\n toastr.error(data.data, \"获取博文失败!\");\r\n }\r\n });\r\n }\r\n\r\n getMyTags() {\r\n $.get('/admin/blog/tag/my', (data) => {\r\n let tags = [];\r\n if (data.success) {\r\n tags = data.data;\r\n }\r\n this.tags = _.unionBy(tags, this.blog.tags, 'name');\r\n\r\n _.defer(() => {\r\n let tags = _.map(this.blog.tags, \"name\");\r\n $(this.tagsRef).dropdown({}).dropdown('clear').dropdown('set selected', tags).dropdown({\r\n allowAdditions: true,\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n $.post('/admin/blog/tag/add', {\r\n id: this.blog.id,\r\n tags: addedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加标签成功!');\r\n } else {\r\n toastr.error(data.data, '添加标签失败!');\r\n }\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n $.post('/admin/blog/tag/remove', {\r\n id: this.blog.id,\r\n tags: removedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除标签成功!');\r\n } else {\r\n toastr.error(data.data, '移除标签失败!');\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n getStow() {\r\n $.get('/admin/blog/stow/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blogStow = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n getFollower() {\r\n $.get('/admin/blog/follower/get', {\r\n id: nsCtx.blogId\r\n }, (data) => {\r\n if (data.success) {\r\n this.blogFollower = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n ea.publish(nsCons.EVENT_BLOG_ACTION, { action: 'edit', id: this.blog.id });\r\n }\r\n }\r\n\r\n deleteHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.emConfirmModal.show({\r\n title: '删除确认',\r\n content: '确认要删除该博文吗?',\r\n onapprove: () => {\r\n $.post(\"/admin/blog/delete\", {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('删除博文成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'deleted',\r\n blog: this.blog\r\n });\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, {\r\n to: '#/blog'\r\n });\r\n } else {\r\n toastr.error(data.data, '删除博文失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n createHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n $('a[href=\"#modaal-blog-write\"]').click();\r\n }\r\n }\r\n\r\n updateSpaceHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.blogSpaceUpdateVm.show(this.blog);\r\n }\r\n }\r\n\r\n updatePrivatedHandler() {\r\n $.post('/admin/blog/privated/update', {\r\n id: this.blog.id,\r\n privated: !this.blog.privated\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.blog, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n }\r\n\r\n isZanDone() {\r\n let voteZan = this.blog.voteZan;\r\n if (!voteZan) {\r\n return false;\r\n }\r\n\r\n return voteZan.split(',').includes(this.loginUser.username);\r\n }\r\n\r\n rateHandler() {\r\n $.post('/admin/blog/vote', {\r\n id: this.blog.id,\r\n url: utils.getBasePath(),\r\n contentHtml: utils.md2html(this.blog.content),\r\n type: this.isZanDone() ? 'Cai' : 'Zan'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.blog, data.data);\r\n } else {\r\n toastr.error(data.data, '博文投票失败!');\r\n }\r\n });\r\n }\r\n\r\n openEditHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n $.post('/admin/blog/openEdit', {\r\n id: this.blog.id,\r\n open: !this.blog.openEdit\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog.openEdit = !this.blog.openEdit;\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n toastr.success(this.blog.openEdit ? '开放协作编辑成功!' : '关闭协作编辑成功!');\r\n } else {\r\n toastr.error(data.data, '协作编辑操作失败!');\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshHandler() {\r\n let p = this.getBlog();\r\n p && p.done(() => { toastr.success('刷新操作成功!'); });\r\n }\r\n\r\n historyHandler() {\r\n this.blogHistoryVm.show(this.blog);\r\n }\r\n\r\n catalogHandler(justRefresh = false) {\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, {\r\n justRefresh: justRefresh,\r\n action: 'dir',\r\n dir: this._dir()\r\n });\r\n }\r\n\r\n authHandler() {\r\n if (this.isSuper || this.blog.creator.username == this.loginUser.username) {\r\n this.blogSpaceAuthVm.show('blog', this.blog);\r\n }\r\n }\r\n\r\n copyHandler() {\r\n if (!nsCtx.isModaalOpening) {\r\n ea.publish(nsCons.EVENT_BLOG_ACTION, { action: 'copy', id: this.blog.id });\r\n }\r\n }\r\n\r\n stowHandler() {\r\n if (!this.blogStow) {\r\n $.post('/admin/blog/stow/add', {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogStow = data.data;\r\n ea.publish(nsCons.EVENT_BLOG_STOW_CHANGED, { action: 'add', data: this.blogStow });\r\n toastr.success('博文收藏成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/blog/stow/remove', {\r\n sid: this.blogStow.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_BLOG_STOW_CHANGED, { action: 'remove', data: this.blogStow });\r\n this.blogStow = null;\r\n toastr.success('删除博文收藏成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n followerHandler() {\r\n if (!this.blogFollower) {\r\n $.post('/admin/blog/follower/add', {\r\n id: this.blog.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogFollower = data.data;\r\n toastr.success('博文关注成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/blog/follower/remove', {\r\n fid: this.blogFollower.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blogFollower = null;\r\n toastr.success('取消博文关注成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n dimmerHandler() {\r\n ea.publish(nsCons.EVENT_BLOG_LEFT_SIDEBAR_TOGGLE, { isHide: true });\r\n ea.publish(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, { isHide: true });\r\n }\r\n\r\n commentsHandler() {\r\n $('.em-blog-content').scrollTo(`.em-blog-comment `, 120, {\r\n offset: -16\r\n });\r\n }\r\n\r\n openFeedEventItemHandler(item) {\r\n item.isOpen = !item.isOpen;\r\n }\r\n\r\n feedEventItemMouseleaveHandler(item) {\r\n item.isOpen = false;\r\n }\r\n\r\n refreshFeedHandler() {\r\n this.getMyLog();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogHistoryDiff {\n\n showHandler() {}\n\n approveHandler() {\n\n }\n\n show(f, s, fIndex, sIndex) {\n this.f = f;\n this.s = s;\n this.fIndex = fIndex;\n this.sIndex = sIndex;\n this.diffHtml = utils.diffS(s.content, f.content);\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogHistoryView {\n\n isSuper = nsCtx.isSuper;\n loginUser = nsCtx.loginUser;\n\n showHandler() {}\n\n approveHandler() {\n\n }\n\n show(blogHistory, ver, isCurrentVer) {\n this.blogHistory = blogHistory;\n this.blog = blogHistory.blog;\n this.ver = ver;\n this.isCurrentVer = isCurrentVer;\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\n }\n\n restoreHandler() {\n this.ajax1 = $.post('/admin/blog/history/restore', { hid: this.blogHistory.id }, (data, textStatus, xhr) => {\n if (data.success) {\n ea.publish(nsCons.EVENT_BLOG_CHANGED, { action: 'updated', blog: data.data });\n ea.publish(nsCons.EVENT_BLOG_HISTORY_CHANGED, {});\n toastr.success('博文历史记录还原成功!');\n this.emModal.hide();\n } else {\n toastr.error(data.data, '博文历史记录还原失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogHistory {\n\n isSuper = nsCtx.isSuper;\n loginUser = nsCtx.loginUser;\n\n /**\n * 构造函数\n */\n constructor() {\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_HISTORY_CHANGED, (payload) => {\n this.refreshHistory();\n });\n }\n\n /**\n * 当数据绑定引擎从视图解除绑定时被调用\n */\n unbind() {\n this.subscribe.dispose();\n }\n\n viewHistoryHandler(blogHistory, ver, isCurrentVer) {\n this.blogHistoryViewVm.show(blogHistory, ver, isCurrentVer);\n }\n\n refreshHistory() {\n $.get('/admin/blog/history/list', {\n id: this.blog.id\n }, (data) => {\n if (data.success) {\n \tthis.oldHistories = data.data;\n this.histories = _.reverse(_.clone(data.data));\n } else {\n toastr.error(data.data, '获取博文历史失败!');\n }\n });\n }\n\n showHandler() {\n this.refreshHistory();\n }\n\n approveHandler() {\n\n }\n\n show(blog) {\n this.blog = blog;\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\n }\n\n restoreHandler(item) {\n this.ajax1 = $.post('/admin/blog/history/restore', { hid: item.id }, (data, textStatus, xhr) => {\n if (data.success) {\n ea.publish(nsCons.EVENT_BLOG_CHANGED, { action: 'updated', blog: data.data });\n this.refreshHistory();\n toastr.success('博文历史记录还原成功!');\n } else {\n toastr.error(data.data, '博文历史记录还原失败!');\n }\n });\n }\n\n removeHandler(item) {\n this.ajax2 = $.post('/admin/blog/history/remove', { hid: item.id }, (data, textStatus, xhr) => {\n if (data.success) {\n this.refreshHistory();\n toastr.success('博文历史记录删除成功!');\n } else {\n toastr.error(data.data, '博文历史记录删除失败!');\n }\n });\n }\n\n diffHandler() {\n let list = [...this.oldHistories, this.blog];\n let chks = _.filter(list, 'checked');\n if (chks && chks.length > 1) {\n let f = chks[chks.length - 1];\n let s = chks[chks.length - 2];\n let fIndex = _.indexOf(list, f);\n let sIndex = _.indexOf(list, s);\n this.blogHistoryDiffVm.show(f, s, fIndex, sIndex);\n } else {\n toastr.error('请先选择要比较版本');\n }\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogLeftSidebar {\r\n\r\n isHide = true;\r\n blogs = [];\r\n spaces = [];\r\n noSpaceBlogs = [];\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n filter = ''; // 过滤查找条件\r\n\r\n spaceStow = {\r\n name: '我的收藏',\r\n open: false\r\n };\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n if (payload.action == 'created') {\r\n this.blogs = [payload.blog, ...this.blogs];\r\n this.calcTree();\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, { to: `#/blog/${payload.blog.id}` });\r\n } else if (payload.action == 'updated') {\r\n _.extend(_.find(this.blogs, { id: payload.blog.id }), payload.blog);\r\n this.calcTree();\r\n } else if (payload.action == 'deleted') {\r\n this.blogStows = _.reject(this.blogStows, bs => bs.blog.id == payload.blog.id);\r\n this.blogs = _.reject(this.blogs, { id: payload.blog.id });\r\n this.calcTree();\r\n }\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_SPACE_CHANGED, (payload) => {\r\n if (payload.action == 'created') {\r\n this.spaces = [payload.space, ...this.spaces];\r\n this.calcTree();\r\n } else if (payload.action == 'updated') {\r\n _.extend(_.find(this.spaces, { id: payload.space.id }), payload.space);\r\n this.calcTree();\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.blog = _.find(this.blogs, { id: +nsCtx.blogId });\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, (payload) => {\r\n this.isHide = payload;\r\n });\r\n this.subscribe5 = ea.subscribe(nsCons.EVENT_BLOG_STOW_CHANGED, (payload) => {\r\n this._refreshBlogStows();\r\n });\r\n\r\n this._doFilerDebounce = _.debounce(() => this._doFiler(), 120, { leading: true });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n this.subscribe5.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n this.refresh();\r\n this._refreshSysLinks();\r\n this._refreshBlogStows();\r\n }\r\n\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n _refreshBlogStows() {\r\n $.get('/admin/blog/stow/listMy', (data) => {\r\n if (data.success) {\r\n this.blogStows = data.data;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n refresh() {\r\n $.when(this.getSpaces(), this.getBlogTree()).done(() => {\r\n this.calcTree();\r\n });\r\n }\r\n\r\n calcTree() {\r\n this.noSpaceBlogs = [];\r\n $.each(this.spaces, (index, space) => {\r\n space.blogs = [];\r\n $.each(this.blogs, (index, blog) => {\r\n if (blog.space) {\r\n if (blog.space.id === space.id) {\r\n space.blogs.push(blog);\r\n if (nsCtx.blogId == blog.id) {\r\n space.open = true;\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.noSpaceBlogs = _.filter(this.blogs, b => !b.space);\r\n }\r\n\r\n spaceToggleHandler(space) {\r\n space.open = !space.open;\r\n }\r\n\r\n getBlogTree() {\r\n return $.get('/admin/blog/listMy', (data) => {\r\n if (data.success) {\r\n this.blogs = data.data;\r\n this.blog = _.find(this.blogs, { id: +nsCtx.blogId });\r\n }\r\n });\r\n }\r\n\r\n getSpaces() {\r\n return $.get('/admin/space/listMy', {}, (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n editSpaceHandler(space) {\r\n this.spaceEditVm.show(space);\r\n }\r\n\r\n delSpaceHandler(space) {\r\n this.confirmMd.show({\r\n onapprove: () => {\r\n $.post('/admin/space/delete', {\r\n id: space.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('删除空间成功!');\r\n this.spaces = _.reject(this.spaces, { id: space.id });\r\n } else {\r\n toastr.error(data.data, '删除空间失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n authSpaceHandler(space) {\r\n this.blogSpaceAuthVm.show('space', space);\r\n }\r\n\r\n clearFilterHandler() {\r\n this.filter = '';\r\n this._doFilerDebounce();\r\n }\r\n\r\n filterKeyupHandler(event) {\r\n this._doFilerDebounce();\r\n }\r\n\r\n _doFiler() {\r\n _.each(this.blogs, b => {\r\n if (!_.includes(_.toLower(b.title), _.toLower(this.filter))) {\r\n b._hidden = true;\r\n } else {\r\n b._hidden = false;\r\n }\r\n });\r\n\r\n _.each(this.spaces, s => {\r\n if (!_.some(s.blogs, b => !b._hidden)) {\r\n s._hidden = true;\r\n } else {\r\n s._hidden = false;\r\n s.open = true;\r\n }\r\n });\r\n\r\n _.each(this.blogStows, bs => {\r\n if (!_.includes(_.toLower(bs.blog.title), _.toLower(this.filter))) {\r\n bs._hidden = true;\r\n } else {\r\n bs._hidden = false;\r\n }\r\n });\r\n\r\n if (!_.some(this.blogStows, bs => !bs._hidden)) {\r\n this.spaceStow.open = false;\r\n } else {\r\n this.spaceStow.open = true;\r\n }\r\n\r\n if (!this.filter) {\r\n _.each(this.spaces, s => {\r\n if (_.find(s.blogs, { id: +nsCtx.blogId })) {\r\n s.open = true;\r\n } else {\r\n s.open = false;\r\n }\r\n });\r\n this.spaceStow.open = false;\r\n }\r\n }\r\n\r\n sysLinkHandler(item) {\r\n $.post('/admin/link/count/inc', { id: item.id });\r\n return true;\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogRightSidebar {\n\n /**\n * 构造函数\n */\n constructor() {\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_RIGHT_SIDEBAR_TOGGLE, (payload) => {\n if (payload.action == 'dir') {\n $(this.dirRef).empty().append(payload.dir);\n }\n });\n }\n\n /**\n * 当数据绑定引擎从视图解除绑定时被调用\n */\n unbind() {\n this.subscribe.dispose();\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSave {\r\n\r\n @bindable trigger;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n triggerChanged() {\r\n\r\n $(this.trigger).click((event) => {\r\n this.show();\r\n });\r\n\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SAVE, (payload) => {\r\n this.blogInfo = payload;\r\n this.show();\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n show() {\r\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\r\n }\r\n\r\n showHandler() {\r\n $(this.chk).checkbox('set unchecked');\r\n $.get('/admin/space/listMy', (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n var html = utils.md2html(this.blogInfo.content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n let spaceId = $(this.spacesRef).dropdown('get value');\r\n\r\n localStorage && localStorage.setItem(nsCons.KEY_BLOG_COMMON_SPACE, spaceId);\r\n\r\n $.post(`/admin/blog/create`, {\r\n url: utils.getBasePath(),\r\n usernames: utils.parseUsernames(this.blogInfo.content, users).join(','),\r\n title: this.blogInfo.title,\r\n content: this.blogInfo.content,\r\n spaceId: spaceId,\r\n privated: $(this.chk).checkbox('is checked'),\r\n contentHtml: html\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文保存成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'created',\r\n blog: this.blog\r\n });\r\n modal.hide();\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n } else {\r\n toastr.error(data.data, '博文保存失败!');\r\n }\r\n });\r\n }\r\n\r\n initSpacesHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.spacesRef).dropdown('clear');\r\n if (localStorage) {\r\n let sid = localStorage.getItem(nsCons.KEY_BLOG_COMMON_SPACE);\r\n if (sid) {\r\n $(this.spacesRef).dropdown('set selected', sid);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogShare {\r\n\r\n shares = [];\r\n desc = '';\r\n\r\n @bindable blog;\r\n\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n showNoResults: false,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n result.item._type = result.item.username ? 'user' : 'channel';\r\n this.shares.push(result.item);\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n $(this.shareRef).popup({\r\n on: 'click',\r\n inline: true,\r\n silent: true,\r\n position: 'bottom right',\r\n jitter: 300,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.inputSearchRef).focus();\r\n }\r\n });\r\n }\r\n\r\n shareSearchKeyupHandler(event) {\r\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\r\n let val = $(this.inputSearchRef).val();\r\n if (utils.isMail(val)) {\r\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\r\n this.shares.push({\r\n _id: _.uniqueId('share-item-'),\r\n _type: 'mail',\r\n mail: val\r\n });\r\n $(this.inputSearchRef).val('');\r\n }\r\n }\r\n }\r\n }\r\n\r\n show() {\r\n $(this.shareRef).popup('show');\r\n }\r\n\r\n removeShareHandler(item) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n }\r\n\r\n cancelHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n this.desc = '';\r\n $(this.inputSearchRef).val('');\r\n $(this.shareRef).popup('hide');\r\n }\r\n\r\n shareHandler() {\r\n\r\n if (this.shares.length === 0) {\r\n toastr.error('请先指定博文分享用户或者频道或者邮箱!');\r\n return;\r\n }\r\n\r\n this.ajaxS = $.post('/admin/blog/share', {\r\n basePath: utils.getBasePath(),\r\n id: this.blog.id,\r\n desc: this.desc,\r\n title: this.blog.title,\r\n html: utils.md2html(this.blog.content),\r\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\r\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\r\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this._reset();\r\n toastr.success('博文分享成功!');\r\n } else {\r\n toastr.error(data.data, '博文分享失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceAuth {\r\n\r\n shares = [];\r\n\r\n type; // blog | space\r\n authO;\r\n\r\n _isBlog() {\r\n return this.type == 'blog';\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox({ // privated\r\n onChange: () => {\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/privated/update', {\r\n id: this.authO.id,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/update', {\r\n id: this.authO.id,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\r\n action: 'updated',\r\n space: data.data\r\n });\r\n toastr.success('更新空间可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新空间可见性失败!');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n $(this.chk2).checkbox({ // opened\r\n onChange: () => {\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/opened/update', {\r\n id: this.authO.id,\r\n opened: $(this.chk2).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n toastr.success('更新博文可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新博文可见性失败!');\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/update', {\r\n id: this.authO.id,\r\n opened: $(this.chk2).checkbox('is checked')\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(this.authO, data.data);\r\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\r\n action: 'updated',\r\n space: data.data\r\n });\r\n toastr.success('更新空间可见性成功!');\r\n } else {\r\n toastr.error(data.data, '更新空间可见性失败!');\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n $(this.searchRef)\r\n .search({\r\n minCharacters: 2,\r\n cache: false,\r\n selectFirstResult: true,\r\n onSelect: (result, response) => {\r\n result.item._id = _.uniqueId('share-item-');\r\n _.defer(() => { $(this.inputSearchRef).val(''); });\r\n\r\n let param = { id: this.authO.id };\r\n if (result.item.username) {\r\n _.extend(param, { users: result.item.username });\r\n } else {\r\n _.extend(param, { channels: result.item.id });\r\n }\r\n\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/auth/add', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares.push(result.item);\r\n this.authO.blogAuthorities = data.data.blogAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/auth/add', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares.push(result.item);\r\n this.authO.spaceAuthorities = data.data.spaceAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n },\r\n apiSettings: {\r\n onResponse: (resp) => {\r\n var response = {\r\n results: []\r\n };\r\n $.each(resp.data.users, (index, item) => {\r\n if (!_.find(this.shares, { username: item.username })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.name} (${item.username})`,\r\n });\r\n }\r\n });\r\n $.each(resp.data.channels, (index, item) => {\r\n if (!_.find(_.filter(this.shares, c => !c.username), { name: item.name })) {\r\n response.results.push({\r\n item: item,\r\n title: ` ${item.title} (${item.name})`,\r\n });\r\n }\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/share/to/search?search={query}'\r\n }\r\n });\r\n }\r\n\r\n removeShareHandler(item) {\r\n let param = { id: this.authO.id };\r\n if (item.username) {\r\n _.extend(param, { users: item.username });\r\n } else {\r\n _.extend(param, { channels: item.id });\r\n }\r\n\r\n if (this._isBlog()) {\r\n $.post('/admin/blog/auth/remove', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n this.authO.blogAuthorities = data.data.blogAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n } else {\r\n $.post('/admin/space/auth/remove', param, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.shares = _.reject(this.shares, { _id: item._id });\r\n this.authO.spaceAuthorities = data.data.spaceAuthorities;\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n _reset() {\r\n this.shares = [];\r\n $(this.inputSearchRef).val('');\r\n }\r\n\r\n show(type, authO) {\r\n this.type = type;\r\n this.authO = authO;\r\n this.emModal.show({ hideOnApprove: true, autoDimmer: false });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n $(this.chk).checkbox(this.authO.privated ? 'set checked' : 'set unchecked');\r\n $(this.chk2).checkbox(this.authO.opened ? 'set checked' : 'set unchecked');\r\n let auths;\r\n if (this._isBlog()) {\r\n auths = this.authO.blogAuthorities;\r\n } else {\r\n auths = this.authO.spaceAuthorities;\r\n }\r\n _.forEach(auths, (item) => {\r\n let share = item.user ? item.user : item.channel;\r\n share._id = _.uniqueId('share-item-');\r\n this.shares.push(share);\r\n });\r\n }\r\n\r\n approveHandler() {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogSpaceCreate {\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.chk).checkbox();\n }\n\n createHandler() {\n this.ajax = $.post('/admin/space/create', {\n name: this.name,\n desc: this.desc,\n privated: $(this.chk).checkbox('is checked'),\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this.name = '';\n this.desc = '';\n $(this.chk).checkbox('set unchecked');\n toastr.success('空间创建成功!');\n $(this.ppRef).popup('hide');\n ea.publish(nsCons.EVENT_SPACE_CHANGED, { action: 'created', space: data.data });\n } else {\n toastr.error(data.data, '空间创建失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmBlogSpaceEdit {\n\n space;\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.chk).checkbox();\n }\n\n show(space) {\n this.space = space;\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\n }\n\n showHandler() {\n $.get('/admin/space/get', {\n id: this.space.id\n }, (data) => {\n if (data.success) {\n this.space = data.data;\n $(this.chk).checkbox(this.space.privated ? 'set checked' : 'set unchecked');\n }\n });\n }\n\n approveHandler(modal) {\n $.post('/admin/space/update', {\n id: this.space.id,\n name: this.space.name,\n desc: this.space.description,\n privated: $(this.chk).checkbox('is checked')\n }, (data, textStatus, xhr) => {\n if (data.success) {\n toastr.success('空间更新成功!');\n ea.publish(nsCons.EVENT_SPACE_CHANGED, {\n action: 'updated',\n space: data.data\n });\n modal.hide();\n } else {\n toastr.error(data.data, '空间更新失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmBlogSpaceUpdate {\r\n\r\n blog;\r\n\r\n loginUser = nsCtx.loginUser;\r\n isSuper = nsCtx.isSuper;\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {}\r\n\r\n show(blog) {\r\n this.blog = blog;\r\n this.emModal.show({ hideOnApprove: false, autoDimmer: true });\r\n }\r\n\r\n showHandler() {\r\n $.get('/admin/space/listMy', (data) => {\r\n if (data.success) {\r\n this.spaces = data.data;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n let sid = $(this.spacesRef).dropdown('get value');\r\n $.post('/admin/blog/space/update', {\r\n id: this.blog.id,\r\n sid: sid ? sid : null,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('博文空间更新成功!');\r\n if (!data.data.space) {\r\n data.data.space = null; // 确保_.extend(oldBlog, blog)更新空间属性\r\n }\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: data.data\r\n });\r\n modal.hide();\r\n } else {\r\n toastr.error(data.data, '博文空间更新失败!');\r\n }\r\n });\r\n }\r\n\r\n initSpacesHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.spacesRef).dropdown('clear').dropdown('set selected', this.blog.space ? this.blog.space.id + '' : '');\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport 'timeago';\r\nlet tg = timeago();\r\n\r\n@containerless\r\nexport class EmBlogTopMenu {\r\n\r\n isHide = true;\r\n\r\n loginUser = nsCtx.loginUser;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_SWITCH, (payload) => {\r\n this.toggleHandler(true);\r\n });\r\n this.subscribe = ea.subscribe(nsCons.EVENT_BLOG_LEFT_SIDEBAR_TOGGLE, (payload) => {\r\n this.toggleHandler(payload.isHide);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.logoRef).on('mouseenter', (event) => {\r\n $(this.logoRef).animateCss('flip');\r\n });\r\n\r\n $(this.searchRef)\r\n .search({\r\n type: 'category',\r\n minCharacters: 2,\r\n selectFirstResult: true,\r\n onSelect: (result, response) => {\r\n $(this.searchRef).search('hide results');\r\n _.defer(() => {\r\n $(this.searchRef).find('input').blur();\r\n ea.publish(nsCons.EVENT_APP_ROUTER_NAVIGATE, { to: result.url });\r\n });\r\n return false;\r\n },\r\n apiSettings: {\r\n onResponse: function(resp) {\r\n // var response = {\r\n // results: []\r\n // };\r\n // $.each(resp.data, (index, item) => {\r\n // response.results.push({\r\n // title: item.title,\r\n // // description: utils.abbreviate(item.content, 65),\r\n // description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}`,\r\n // url: `#/blog/${item.id}`\r\n // });\r\n // });\r\n var response = {\r\n results: {\r\n blogs: {\r\n name: `博文 (${resp.data.blogs.length})`,\r\n results: []\r\n },\r\n comments: {\r\n name: `评论 (${resp.data.comments.length})`,\r\n results: []\r\n }\r\n }\r\n };\r\n $.each(resp.data.blogs, (index, item) => {\r\n response.results.blogs.results.push({\r\n title: item.title,\r\n // description: utils.abbreviate(item.content, 65),\r\n description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}`,\r\n url: `#/blog/${item.id}`\r\n });\r\n });\r\n $.each(resp.data.comments, (index, item) => {\r\n response.results.comments.results.push({\r\n title: `#/blog/${item.targetId}?cid=${item.id}`,\r\n // description: item.content,\r\n description: `${item.creator.name} 创建于 ${tg.format(item.createDate, 'zh_CN')}
    ${utils.encodeHtml(item.content)}`,\r\n url: `#/blog/${item.targetId}?cid=${item.id}`\r\n });\r\n });\r\n return response;\r\n },\r\n url: '/admin/blog/search?search={query}&comment=true&ellipsis=60'\r\n }\r\n });\r\n\r\n this._refreshSysLinks();\r\n\r\n if (nsCtx.blogId == 'create') {\r\n _.defer(() => { $('a[href=\"#modaal-blog-write\"]').click(); });\r\n }\r\n }\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n searchBlurHandler() {\r\n this.isSearchFocus = false;\r\n }\r\n\r\n searchFocusHandler() {\r\n this.isSearchFocus = true;\r\n }\r\n\r\n toggleHandler(isHide) {\r\n if (this.isHide === isHide) {\r\n return;\r\n }\r\n this.isHide = isHide ? isHide : !this.isHide;\r\n ea.publish(nsCons.EVENT_BLOG_TOGGLE_SIDEBAR, this.isHide);\r\n }\r\n\r\n userEditHandler() {\r\n this.userEditMd.show();\r\n }\r\n\r\n logoutHandler() {\r\n $.post('/admin/logout').always(() => {\r\n utils.redirect2Login();\r\n });\r\n }\r\n\r\n searchKeyupHandler(event) {\r\n if (event.keyCode == 27) {\r\n $(this.searchRef).search('set value', '');\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\nimport {\r\n default as Dropzone\r\n} from 'dropzone';\r\nimport emojis from 'common/common-emoji';\r\n\r\n@containerless\r\nexport class EmBlogWrite {\r\n\r\n @bindable members;\r\n\r\n static NAME = 'blog-create';\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_MODAAL_AFTER_OPEN, (payload) => {\r\n if (payload.id == EmBlogWrite.NAME) {\r\n nsCtx.isModaalOpening = true;\r\n this.init();\r\n }\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_MODAAL_BEFORE_CLOSE, (payload) => {\r\n if (payload.id == EmBlogWrite.NAME) {\r\n this.destroy();\r\n nsCtx.isModaalOpening = false;\r\n }\r\n });\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_BLOG_ACTION, (payload) => {\r\n this.action = payload.action;\r\n $.get('/admin/blog/get', { id: payload.id }, (data) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n $('a[href=\"#modaal-blog-write\"]').click();\r\n }\r\n });\r\n\r\n });\r\n this.subscribe4 = ea.subscribe(nsCons.EVENT_BLOG_CHANGED, (payload) => {\r\n this.action = payload.action;\r\n if (payload.action === 'created') {\r\n this.blog = payload.blog;\r\n $('#blog-save-btn span').text('更新');\r\n $('#blog-save-btn').attr('title', 'ctrl+click更新后关闭窗口');\r\n }\r\n\r\n });\r\n\r\n this.blogTitleInputKeyupInit = _.once(() => {\r\n $('#blog-title-input').keyup((e) => {\r\n let $t = $(e.currentTarget);\r\n\r\n if (!e.shiftKey && e.keyCode == 13) { // Enter\r\n if (this.simplemde.value()) {\r\n this.save(e, true);\r\n } else {\r\n this.simplemde.codemirror.focus();\r\n }\r\n\r\n } else if (e.shiftKey && e.keyCode == 13) { // Esc\r\n this.simplemde.codemirror.focus();\r\n } else if (e.keyCode == 27) { // Esc\r\n $t.val('');\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n this.subscribe4.dispose();\r\n }\r\n\r\n _reset() {\r\n this.action = null;\r\n this.blog = null;\r\n $('#blog-save-btn span').text('保存');\r\n $('#blog-save-btn').attr('title', 'ctrl+click快速保存');\r\n $('#blog-title-input').val('');\r\n this.simplemde.value('');\r\n this.simplemde.toTextArea();\r\n this.simplemde = null;\r\n }\r\n\r\n _editInit() {\r\n $('#blog-title-input').val(this.blog.title);\r\n this.simplemde.value(this.blog.content);\r\n $('#blog-save-btn span').text('更新');\r\n $('#blog-save-btn').attr('title', 'ctrl+click更新后关闭窗口');\r\n }\r\n\r\n _writeInit() {\r\n let ccid = utils.urlQuery('ccid'); // chat channel id\r\n let cdid = utils.urlQuery('cdid'); // chat direct id\r\n let url = null;\r\n let id = null;\r\n if (ccid) {\r\n url = `/admin/chat/channel/get`;\r\n id = ccid;\r\n } else if (cdid) {\r\n url = `/admin/chat/direct/get`;\r\n id = cdid;\r\n }\r\n\r\n if (url) {\r\n $.get(url, { id: +id }, (data) => {\r\n if (data.success) {\r\n this.simplemde.value(data.data.content);\r\n let val = $('#blog-title-input').val();\r\n if (!val) {\r\n let ms = /#{1,6}[\\s]+(.+)\\n?/g.exec(data.data.content);\r\n if (ms && ms.length > 1) {\r\n $('#blog-title-input').val(ms[1]);\r\n }\r\n }\r\n } else {\r\n toastr.error(data.data, '获取沟通消息失败!');\r\n }\r\n });\r\n }\r\n }\r\n\r\n _copyInit() {\r\n $('#blog-title-input').val(this.blog.title + ' (副本)');\r\n this.simplemde.value(this.blog.content);\r\n this.blog = null;\r\n }\r\n\r\n init() {\r\n\r\n this.simplemde = new SimpleMDE({\r\n element: $('#txt-blog-write')[0],\r\n spellChecker: false,\r\n // status: false,\r\n // autofocus: true,\r\n // toolbar: false,\r\n // forceSync: true,\r\n // autoDownloadFontAwesome: false,\r\n toolbar: [{\r\n name: \"bold\",\r\n action: SimpleMDE.toggleBold,\r\n className: \"fa fa-bold\",\r\n title: \"粗体\",\r\n }, {\r\n name: \"italic\",\r\n action: SimpleMDE.toggleItalic,\r\n className: \"fa fa-italic\",\r\n title: \"斜体\",\r\n }, {\r\n name: \"strikethrough\",\r\n action: SimpleMDE.toggleStrikethrough,\r\n className: \"fa fa-strikethrough\",\r\n title: \"删除线\",\r\n }, {\r\n name: \"heading\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header\",\r\n title: \"标题\",\r\n }, {\r\n name: \"heading-smaller\",\r\n action: SimpleMDE.toggleHeadingSmaller,\r\n className: \"fa fa-header fa-header-x fa-header-smaller\",\r\n title: \"变小标题\",\r\n }, {\r\n name: \"heading-bigger\",\r\n action: SimpleMDE.toggleHeadingBigger,\r\n className: \"fa fa-header fa-header-x fa-header-bigger\",\r\n title: \"变大标题\",\r\n }, \"|\", {\r\n name: \"code\",\r\n action: SimpleMDE.toggleCodeBlock,\r\n className: \"fa fa-code\",\r\n title: \"代码\",\r\n }, {\r\n name: \"quote\",\r\n action: SimpleMDE.toggleBlockquote,\r\n className: \"fa fa-quote-left\",\r\n title: \"引用\",\r\n }, {\r\n name: \"unordered-list\",\r\n action: SimpleMDE.toggleUnorderedList,\r\n className: \"fa fa-list-ul\",\r\n title: \"无序列表\",\r\n }, {\r\n name: \"ordered-list\",\r\n action: SimpleMDE.toggleOrderedList,\r\n className: \"fa fa-list-ol\",\r\n title: \"有序列表\",\r\n }, {\r\n name: \"tasks\",\r\n action: (editor) => {\r\n this.insertContent('- [ ] 未完成任务\\n- [x] 已完成任务');\r\n },\r\n className: \"fa fa-check-square-o \",\r\n title: \"任务列表\",\r\n }, {\r\n name: \"details\",\r\n action: (editor) => {\r\n this.insertContent('
    \\n标题\\n

    详情内容

    \\n
    ');\r\n },\r\n className: \"fa fa-play \",\r\n title: \"折叠详情\",\r\n }, \"|\", {\r\n name: \"link\",\r\n action: SimpleMDE.drawLink,\r\n className: \"fa fa-link\",\r\n title: \"创建链接\",\r\n }, {\r\n name: \"image\",\r\n action: SimpleMDE.drawImage,\r\n className: \"fa fa-picture-o\",\r\n title: \"插入图片\",\r\n }, {\r\n name: \"table\",\r\n action: SimpleMDE.drawTable,\r\n className: \"fa fa-table\",\r\n title: \"插入表格\",\r\n }, {\r\n name: \"horizontal-rule\",\r\n action: SimpleMDE.drawHorizontalRule,\r\n className: \"fa fa-minus\",\r\n title: \"插入水平分割线\",\r\n }, \"|\", {\r\n name: \"upload\",\r\n action: function(editor) {},\r\n className: \"fa fa-upload\",\r\n title: \"上传文件\",\r\n }, \"|\", {\r\n name: \"preview\",\r\n action: SimpleMDE.togglePreview,\r\n className: \"fa fa-eye no-disable\",\r\n title: \"切换预览\",\r\n }, {\r\n name: \"side-by-side\",\r\n action: SimpleMDE.toggleSideBySide,\r\n className: \"fa fa-columns no-disable no-mobile\",\r\n title: \"实时预览\",\r\n }, {\r\n name: \"fullscreen\",\r\n action: SimpleMDE.toggleFullScreen,\r\n className: \"fa fa-arrows-alt no-disable no-mobile\",\r\n title: \"全屏\",\r\n }, {\r\n name: \"guide\",\r\n action: 'https://simplemde.com/markdown-guide',\r\n className: \"fa fa-question-circle\",\r\n title: \"Markdown指南\",\r\n }\r\n\r\n ],\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n if (emojify) {\r\n plainText = emojify.replace(plainText);\r\n }\r\n return marked(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.simplemde.codemirror.on('keyup', (cm, e) => {\r\n if (e.ctrlKey && e.keyCode == 13) { // Ctrl+Enter\r\n this.save(e, true);\r\n } else if (e.keyCode == 27) { // Esc\r\n this.simplemde.value('');\r\n } else if (e.keyCode == 13) { // Enter\r\n let val = $('#blog-title-input').val();\r\n if (!val) {\r\n let ms = /#{1,6}[\\s]+(.+)\\n?/g.exec(this.simplemde.value());\r\n if (ms && ms.length > 1) {\r\n $('#blog-title-input').val(ms[1]);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.$chatMsgInputRef = $('#txt-blog-write-wrapper').find('.CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $('#txt-blog-write-wrapper').find('.CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n if (this.action == 'edit') { // edit\r\n this._editInit();\r\n } else if (this.action == 'copy') {\r\n this._copyInit();\r\n } else {\r\n this._writeInit();\r\n }\r\n\r\n $('#blog-title-input').focus();\r\n\r\n this.initPaste();\r\n this.initTextcomplete();\r\n\r\n this.initUploadDropzone($('.CodeMirror-wrap', '#txt-blog-write-wrapper'), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n\r\n this.initUploadDropzone($('.editor-toolbar .fa.fa-upload', '#txt-blog-write-wrapper'), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n this.blogTitleInputKeyupInit();\r\n\r\n }\r\n\r\n close() {\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(nsCtx.users, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(nsCtx.users, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-blog-write-status-bar',\r\n maxCount: 5\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n isTipsShow() {\r\n return $('.tms-blog-write-status-bar').find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n tipsActionHandler(value) {\r\n\r\n if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: 'Blog'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: '.em-blog-write .dropzone-previews',\r\n previewTemplate: $('.em-blog-write .preview-template')[0].innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', 'Blog');\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n\r\n }\r\n\r\n destroy() {\r\n this._reset();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $('#blog-save-btn').click((event) => {\r\n this.save(event);\r\n });\r\n }\r\n\r\n save(event, isKey) {\r\n\r\n let title = $('#blog-title-input').val();\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(title)) {\r\n $('#blog-title-input').val('');\r\n toastr.error('标题不能为空!');\r\n return;\r\n }\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n toastr.error('内容不能为空!');\r\n return;\r\n }\r\n\r\n if (!this.blog) {\r\n if (event.ctrlKey) {\r\n $.post(`/admin/blog/create`, {\r\n url: utils.getBasePath(),\r\n usernames: utils.parseUsernames(content, [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])]).join(','),\r\n title: title,\r\n content: content,\r\n spaceId: '',\r\n privated: false,\r\n contentHtml: utils.md2html(content)\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文保存成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'created',\r\n blog: this.blog\r\n });\r\n $('a[href=\"#modaal-blog-write\"]').modaal('close');\r\n } else {\r\n toastr.error(data.data, '博文保存失败!');\r\n }\r\n });\r\n } else {\r\n ea.publish(nsCons.EVENT_BLOG_SAVE, {\r\n title: title,\r\n content: content,\r\n });\r\n }\r\n } else {\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n $('#blog-save-btn i').show();\r\n\r\n var html = utils.md2html(content);\r\n let users = [nsCtx.memberAll, ...(window.tmsUsers ? tmsUsers : [])];\r\n\r\n $.post('/admin/blog/update', {\r\n url: utils.getBasePath(),\r\n id: this.blog.id,\r\n version: this.blog.version,\r\n usernames: utils.parseUsernames(content, users).join(','),\r\n title: title,\r\n content: content,\r\n diff: utils.diffS(this.blog.content, content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.blog = data.data;\r\n toastr.success('博文更新成功!');\r\n ea.publish(nsCons.EVENT_BLOG_CHANGED, {\r\n action: 'updated',\r\n blog: this.blog\r\n });\r\n if (!isKey) {\r\n (event && event.ctrlKey) && this.close();\r\n } else {\r\n (event && event.ctrlKey && event.shiftKey) && this.close();\r\n }\r\n } else {\r\n toastr.error(data.data, '博文更新失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n $('#blog-save-btn i').hide();\r\n });\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatAttach {\r\n\r\n type = 'Image'; //Image | Attachment\r\n search = '';\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.tabRef).find('.item').tab({\r\n onVisible: (tabPath) => {\r\n // this.type = tabPath;\r\n // this.fetch();\r\n }\r\n });\r\n }\r\n\r\n moreHandler() {\r\n this._listByPage(true);\r\n }\r\n\r\n _listByPage(nextPage = false) {\r\n let url = nsCtx.isAt ? '/admin/file/listByUser' : '/admin/file/listByChannel';\r\n this.ajax = $.get(url, {\r\n name: nsCtx.chatTo,\r\n type: this.type,\r\n page: this.page ? (nextPage ? this.page.number + 1 : this.page.number) : 0,\r\n size: 10,\r\n search: this.search\r\n }, (data) => {\r\n this.page = data.data;\r\n this.moreCnt = this.page.last ? 0 : this.page.totalElements - (this.page.number + 1) * this.page.size;\r\n if (!nextPage) {\r\n this.attachs = data.data.content;\r\n } else {\r\n this.attachs = _.concat(this.attachs, data.data.content);\r\n }\r\n\r\n });\r\n }\r\n\r\n fetch() {\r\n this.page = null;\r\n this.moreCnt = 0;\r\n this.attachs = null;\r\n if ($(window).width() > 991) {\r\n $(this.searchRef).focus();\r\n }\r\n this._listByPage();\r\n }\r\n\r\n tabClickHandler(tabPath) {\r\n this.type = tabPath;\r\n this.fetch();\r\n }\r\n\r\n searchHandler() {\r\n this.fetch();\r\n }\r\n\r\n keyupHandler(event) {\r\n if (event.keyCode == 13) {\r\n this.fetch();\r\n } else if (event.keyCode == 27) {\r\n this.search = '';\r\n this.fetch();\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelCreate {\r\n\r\n @bindable loginUser;\r\n @bindable trigger;\r\n @bindable name;\r\n activeTab = 'channel-create';\r\n\r\n nameRegex = /^[a-z][a-z0-9_\\-]{0,49}$/;\r\n\r\n nameChanged(news, old) {\r\n this.oldName = old;\r\n if (news && !this.nameRegex.test(news)) {\r\n this.name = this._getOldName();\r\n }\r\n }\r\n\r\n _getOldName() {\r\n if (!this.nameRegex.test(this.oldName)) {\r\n this.oldName = '';\r\n }\r\n\r\n return this.oldName;\r\n }\r\n\r\n triggerChanged(newValue, oldValue) {\r\n $(this.trigger).click(() => {\r\n this.emModal.show({\r\n hideOnApprove: false,\r\n autoDimmer: true\r\n });\r\n });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {\r\n this.name = '';\r\n this.title = '';\r\n this.desc = '';\r\n $(this.chk).checkbox('set checked');\r\n this.channelJoinVm.refresh();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.chk).checkbox();\r\n $(this.tabRef).find('.item').tab({\r\n onVisible: (tabPath) => {\r\n this.activeTab = tabPath;\r\n }\r\n });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n $.post('/admin/channel/create', {\r\n name: this.name,\r\n title: this.title,\r\n desc: this.desc,\r\n privated: $(this.chk).checkbox('is checked')\r\n }, (data) => {\r\n if (data.success) {\r\n modal.hide();\r\n toastr.success('创建频道成功!');\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_CREATED, {\r\n channel: data.data\r\n });\r\n } else {\r\n modal.hideDimmer();\r\n toastr.error(data.data, '创建频道失败!');\r\n }\r\n });\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatChannelEdit {\n\n @bindable channel;\n\n channelChanged() {\n\n if (this.channel) {\n let chkSet = this.channel.privated ? 'set checked' : 'set unchecked';\n $(this.chk).checkbox(chkSet);\n }\n\n }\n\n show() {\n this.emModal.show({\n hideOnApprove: false,\n autoDimmer: true\n });\n }\n\n showHandler() {}\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.chk).checkbox();\n }\n\n approveHandler(modal) {\n\n $.post('/admin/channel/update', {\n id: this.channel.id,\n title: this.channel.title,\n desc: this.channel.description,\n privated: $(this.chk).checkbox('is checked')\n }, (data) => {\n modal.hide();\n if (data.success) {\n toastr.success('更新频道成功!');\n } else {\n toastr.error(data.data, '编辑频道失败!');\n }\n });\n\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelJoin {\r\n\r\n @bindable loginUser;\r\n\r\n _getChannels() {\r\n $.get('/admin/channel/list', (data) => {\r\n if (data.success) {\r\n this.channels = data.data;\r\n _.each(this.channels, (item) => {\r\n item.joined = _.some(item.members, (m) => {\r\n return m.username == this.loginUser.username;\r\n });\r\n });\r\n } else {\r\n toastr.error(data.data, '获取频道列表失败!');\r\n }\r\n });\r\n }\r\n\r\n refresh() {\r\n this._getChannels();\r\n }\r\n\r\n joinHandler(item) {\r\n this.confirmMd.show({\r\n content: `确定要加入频道${item.title}吗?`,\r\n onapprove: () => {\r\n $.post('/admin/channel/join', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('加入频道成功!');\r\n item.joined = true;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_JOINED, { channel: data.data });\r\n } else {\r\n toastr.error(data.data, '加入频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n leaveHandler(item) {\r\n this.confirmMd.show({\r\n content: `确定要离开频道${item.title}吗?`,\r\n onapprove: () => {\r\n $.post('/admin/channel/leave', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('离开频道成功!');\r\n item.joined = false;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_LEAVED, { channel: data.data });\r\n } else {\r\n toastr.error(data.data, '离开频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelLinkMgr {\r\n\r\n @bindable channel;\r\n\r\n @bindable loginUser;\r\n\r\n links = [];\r\n\r\n channelChanged(news, old) {\r\n if (this.channel) {\r\n $.get('/admin/link/listBy', {\r\n channelId: this.channel.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.links = data.data;\r\n } else {\r\n this.links = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n addHandler() {\r\n $.post('/admin/link/create', {\r\n title: this.title,\r\n href: this.href,\r\n channelId: this.channel.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.title = '';\r\n this.href = '';\r\n this.links.push(data.data);\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler(item) {\r\n $.post('/admin/link/delete', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.links = _.reject(this.links, { id: item.id });\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n toastr.success('删除成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n item.oldTitle = item.title;\r\n item.oldHref = item.href;\r\n item.isEditing = true;\r\n }\r\n\r\n updateHandler(item) {\r\n $.post('/admin/link/update', {\r\n id: item.id,\r\n title: item.title,\r\n href: item.href,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.isEditing = false;\r\n ea.publish(nsCons.EVENT_CHANNEL_LINKS_REFRESH, {});\r\n toastr.success('更新成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n showHandler() {\r\n this._reset();\r\n }\r\n\r\n _reset() {}\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {}\r\n\r\n show() {\r\n this.channelChanged();\r\n this.emModal.show({ autoDimmer: false });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatChannelMembersMgr {\r\n\r\n @bindable channel;\r\n @bindable users;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.membersOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n this.emModal.showDimmer();\r\n $.post('/admin/channel/addMember', {\r\n id: this.channel.id,\r\n members: addedValue,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加成员成功!');\r\n this.channel.members = data.data.members;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, {\r\n type: 'add',\r\n members: data.data.members\r\n });\r\n } else {\r\n toastr.error(data.data, '添加成员失败!');\r\n }\r\n }).always(() => {\r\n this.emModal.hideDimmer();\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n if (this.channel.owner.username == removedValue) {\r\n return false;\r\n }\r\n\r\n this.emModal.showDimmer();\r\n $.post('/admin/channel/removeMember', {\r\n id: this.channel.id,\r\n members: removedValue,\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除成员成功!');\r\n this.channel.members = data.data.members;\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, {\r\n type: 'remove',\r\n members: data.data.members\r\n });\r\n } else {\r\n toastr.error(data.data, '移除成员失败!');\r\n }\r\n }).always(() => {\r\n this.emModal.hideDimmer();\r\n });\r\n }\r\n };\r\n }\r\n\r\n channelChanged() {\r\n if (this.channel) {\r\n let usernames = _.sortBy(_.map(this.channel.members, 'username'));\r\n // usernames = [this.channel.owner.username, ..._.without(usernames, this.channel.owner.username)];\r\n _.defer(() => {\r\n $(this.membersRef).dropdown().dropdown('clear').dropdown('set selected', usernames).dropdown(this.membersOpts);\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n }\r\n\r\n initMembersUI(last) {\r\n\r\n if (last) {\r\n _.defer(() => {\r\n this.channelChanged();\r\n });\r\n }\r\n }\r\n\r\n showHandler() {\r\n $(this.membersRef).dropdown().dropdown('clear');\r\n this.channelChanged();\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: true,\r\n autoDimmer: false\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatChannelMembersShow {\n\n @bindable channel;\n\n showHandler() {\n\n }\n\n approveHandler(modal) {\n\n }\n\n show() {\n this.emModal.show({\n hideOnApprove: true,\n autoDimmer: false\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport tags from 'common/common-tags';\r\n\r\n@containerless\r\nexport class EmChatContentItemFootbar {\r\n\r\n @bindable chat;\r\n\r\n emojis = [{\r\n label: '赞同',\r\n value: ':+1:',\r\n type: 'emoji'\r\n }, {\r\n label: '反对',\r\n value: ':-1:',\r\n type: 'emoji'\r\n }, {\r\n label: '知悉',\r\n value: ':ok_hand:',\r\n type: 'emoji'\r\n }, {\r\n label: '关注',\r\n value: ':eyes:',\r\n type: 'emoji'\r\n }, {\r\n label: '爱心',\r\n value: ':heart:',\r\n type: 'emoji'\r\n }, {\r\n label: '开心',\r\n value: ':laughing:',\r\n type: 'emoji'\r\n }, {\r\n label: '困惑',\r\n value: ':confused:',\r\n type: 'emoji'\r\n }, {\r\n label: '悲伤',\r\n value: ':cry:',\r\n type: 'emoji'\r\n }];\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.tags = tags;\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $([this.addEmojiRef])\r\n .popup({\r\n inline: true,\r\n hoverable: true\r\n });\r\n $([this.addTagRef])\r\n .popup({\r\n inline: true,\r\n hoverable: true,\r\n // position: 'top center',\r\n onHide: () => {\r\n this.isCustomTag = false;\r\n $(this.tagRef).val('');\r\n }\r\n });\r\n }\r\n\r\n toggleChatLabelHandler(item) {\r\n $.post(`/admin/chat/${nsCtx.isAt ? 'direct' : 'channel'}/label/toggle`, {\r\n url: nsCtx.isAt ? utils.getBasePath() : utils.getUrl(),\r\n meta: item.type == 'emoji' ? $(emojify.replace(item.value)).attr('src') : item.value,\r\n type: item.type == 'emoji' ? 'Emoji' : 'Tag',\r\n contentHtml: utils.md2html(this.chat.content),\r\n name: item.value,\r\n desc: item.label,\r\n id: this.chat.id,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n let cl = _.find(this.chat.chatLabels, { id: data.data.id });\r\n if (cl) {\r\n cl.voters = data.data.voters;\r\n } else {\r\n this.chat.chatLabels = [...this.chat.chatLabels, data.data];\r\n }\r\n bs.signal('sg-chatlabel-refresh');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n toggleCustomTagHandler() {\r\n if (this.isCustomTag) {\r\n let v = $(this.tagRef).val();\r\n if (v) {\r\n this.toggleChatLabelHandler({\r\n label: v,\r\n value: v,\r\n type: 'Tag'\r\n });\r\n $(this.tagRef).val('');\r\n }\r\n } else {\r\n _.defer(() => $(this.tagRef).focus());\r\n }\r\n this.isCustomTag = !this.isCustomTag;\r\n }\r\n\r\n tagKeyupHandler() {\r\n this.toggleCustomTagHandler();\r\n }\r\n}\r\n","import { bindable, containerless, bindingMode } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatContentItem {\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) chats;\r\n @bindable loginUser;\r\n @bindable isAt;\r\n @bindable channel;\r\n @bindable markId;\r\n @bindable chatTo;\r\n members = [];\r\n basePath = utils.getBasePath();\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, (payload) => {\r\n this.members = [nsCtx.memberAll, ...payload.members];\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $('.tms-chat-direct').on('click', '.markdown-body .at-user', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `{~${$(event.currentTarget).attr('data-value')}} `\r\n });\r\n });\r\n\r\n // 消息popup\r\n $('.tms-chat-direct').on('mouseenter', '.markdown-body a[href*=\"#/chat/\"]:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MSG_POPUP_SHOW, {\r\n id: utils.urlQuery('id', $a.attr('href')),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n // wiki dir\r\n $('.tms-chat-direct').on('mouseenter', '.tms-content-body .em-chat-content-item', (event) => {\r\n event.preventDefault();\r\n var $c = $(event.currentTarget);\r\n\r\n ea.publish(nsCons.EVENT_CHAT_MSG_WIKI_DIR, {\r\n dir: utils.dir($c.find('> .content > .markdown-body'))\r\n });\r\n });\r\n\r\n $('.tms-chat-direct').on('click', '.panel-wiki-dir .wiki-dir-item', (event) => {\r\n event.preventDefault();\r\n ea.publish(nsCons.EVENT_CHAT_CONTENT_SCROLL_TO, { target: $('#' + $(event.currentTarget).attr('data-id')) });\r\n });\r\n\r\n // 用户信息popup\r\n $('.tms-chat-direct').on('mouseenter', 'span[data-value].at-user:not(.pp-not),a[data-value].author:not(.pp-not)', (event) => {\r\n event.preventDefault();\r\n var $a = $(event.currentTarget);\r\n ea.publish(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, {\r\n channel: this.channel,\r\n username: $a.attr('data-value'),\r\n target: event.currentTarget\r\n });\r\n });\r\n\r\n this.initHotkeys();\r\n }\r\n\r\n channelChanged() {\r\n\r\n if (this.channel) {\r\n this.members = [nsCtx.memberAll, ...this.channel.members];\r\n } else {\r\n this.members = [];\r\n }\r\n }\r\n\r\n deleteHandler(item) {\r\n\r\n this.emConfirmModal.show({\r\n onapprove: () => {\r\n\r\n let url;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/delete`;\r\n } else {\r\n url = `/admin/chat/channel/delete`;\r\n }\r\n\r\n $.post(url, {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.chats = _.reject(this.chats, {\r\n id: item.id\r\n });\r\n toastr.success('删除消息成功!');\r\n } else {\r\n toastr.error(data.data, '删除消息失败!');\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'e', (evt) => {\r\n evt.preventDefault();\r\n let chat = _.findLast(this.chats, c => c.creator.username == this.loginUser.username);\r\n if (chat) {\r\n this.editHandler(chat, $(`.em-chat-content-item[data-id=\"${chat.id}\"]`).find('> .content > textarea'));\r\n }\r\n });\r\n }\r\n\r\n editHandler(item, editTxtRef) {\r\n\r\n $.get(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/get`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n }\r\n item.isEditing = true;\r\n item.contentOld = item.content;\r\n _.defer(() => {\r\n $(editTxtRef).focus().select();\r\n autosize.update(editTxtRef);\r\n });\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n\r\n });\r\n }\r\n\r\n editOkHandler(evt, item, txtRef) {\r\n this.editSave(item, txtRef);\r\n item.isEditing = false;\r\n }\r\n\r\n editCancelHandler(evt, item, txtRef) {\r\n item.content = item.contentOld;\r\n $(txtRef).val(item.content);\r\n item.isEditing = false;\r\n }\r\n\r\n editSave(item, txtRef) {\r\n\r\n this.sending = true;\r\n\r\n item.content = $(txtRef).val();\r\n\r\n var html = utils.md2html(item.content);\r\n var htmlOld = utils.md2html(item.contentOld);\r\n\r\n let url;\r\n let data;\r\n\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/update`;\r\n data = {\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n id: item.id,\r\n content: item.content,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n };\r\n } else {\r\n url = `/admin/chat/channel/update`;\r\n data = {\r\n url: utils.getUrl(),\r\n id: item.id,\r\n version: item.version,\r\n usernames: utils.parseUsernames(item.content, this.members).join(','),\r\n content: item.content,\r\n diff: utils.diffS(item.contentOld, item.content),\r\n // contentHtml: html,\r\n // contentHtmlOld: htmlOld\r\n };\r\n }\r\n\r\n $.post(url, data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新消息成功!');\r\n item.isEditing = false;\r\n item.version = data.data.version;\r\n } else {\r\n toastr.error(data.data, '更新消息失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n eidtKeydownHandler(evt, item, txtRef) {\r\n\r\n if (this.sending) {\r\n return false;\r\n }\r\n\r\n if (evt.ctrlKey && evt.keyCode === 13) {\r\n\r\n this.editSave(item, txtRef);\r\n\r\n return false;\r\n } else if (evt.ctrlKey && evt.keyCode === 85) {\r\n $(txtRef).next('.tms-edit-actions').find('.upload').click();\r\n return false;\r\n } else if (evt.keyCode === 27) {\r\n this.editCancelHandler(evt, item, txtRef);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n notifyRendered(last, item) {\r\n if (last) {\r\n _.defer(() => {\r\n ea.publish(nsCons.EVENT_CHAT_LAST_ITEM_RENDERED, {\r\n item: item\r\n });\r\n });\r\n }\r\n }\r\n\r\n stowHandler(item) {\r\n\r\n if (item.isStow) {\r\n this.unStowHandler(item);\r\n return;\r\n }\r\n\r\n $.post('/admin/chat/channel/stow', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n item.isStow = true;\r\n if (data.success) {\r\n item.stowId = data.data.id;\r\n toastr.success('收藏消息成功!');\r\n } else {\r\n item.stowId = (data.msgs && data.msgs.length > 0) ? data.msgs[0].id : '';\r\n // toastr.error(data.data, '收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n unStowHandler(item) {\r\n if (!item.stowId) {\r\n return;\r\n }\r\n $.post('/admin/chat/channel/removeStow', {\r\n id: item.stowId\r\n }, (data, textStatus, xhr) => {\r\n item.isStow = false;\r\n item.stowId = '';\r\n if (data.success) {\r\n toastr.success('移除收藏消息成功!');\r\n } else {\r\n // toastr.error(data.data, '移除收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n openEditHandler(item) {\r\n $.post('/admin/chat/channel/openEdit', {\r\n id: item.id,\r\n open: !item.openEdit\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.openEdit = !item.openEdit;\r\n toastr.success(`${item.openEdit ? '开启' : '关闭'}协作编辑成功!`);\r\n } else {\r\n toastr.success(`${!item.openEdit ? '开启' : '关闭'}协作编辑失败!`);\r\n }\r\n });\r\n }\r\n\r\n replyHandler(item) {\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `[[回复#${item.id}](${utils.getUrl()}?id=${item.id}){~${item.creator.username}}]\\n\\n`\r\n });\r\n\r\n // 标记@自己的该消息为已读\r\n $.post('/admin/chat/channel/markAsReadedByChat', {\r\n chatId: item.id\r\n });\r\n }\r\n\r\n creatorNameHandler(item) {\r\n ea.publish(nsCons.EVENT_CHAT_MSG_INSERT, {\r\n content: `{~${item.creator.username}} `\r\n });\r\n }\r\n\r\n refreshHandler(item) {\r\n $.get('/admin/chat/channel/get', {\r\n id: item.id\r\n }, (data) => {\r\n if (item.version != data.data.version) {\r\n _.extend(item, data.data);\r\n toastr.success('刷新同步成功!');\r\n } else {\r\n toastr.info('消息内容暂无变更!');\r\n }\r\n });\r\n }\r\n\r\n likeHandler(item, isLike) {\r\n\r\n if ((isLike && item.isZanVoted) || (!isLike && item.isCaiVoted)) {\r\n return;\r\n }\r\n\r\n $.post('/admin/chat/channel/vote', {\r\n id: item.id,\r\n url: utils.getUrl(),\r\n contentHtml: utils.md2html(item.content),\r\n type: isLike ? 'Zan' : 'Cai'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n _.extend(item, data.data);\r\n if (isLike) {\r\n item.isZanVoted = true;\r\n } else {\r\n item.isCaiVoted = true;\r\n }\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n pinHandler(item) {\r\n $.post('/admin/chat/channel/pin/toggle', {\r\n id: item.id,\r\n cid: this.channel.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success(`${data.code == 200 ? '固定频道消息成功!' : '解除固定频道消息成功!'}`);\r\n item.isPin = (data.code == 200);\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless, inject } from 'aurelia-framework';\r\nimport 'textcomplete';\r\nimport tips from 'common/common-tips';\r\nimport emojis from 'common/common-emoji';\r\nimport {\r\n default as SimpleMDE\r\n} from 'simplemde';\r\n\r\n@containerless\r\nexport class EmChatInput {\r\n\r\n @bindable chatTo;\r\n @bindable isAt;\r\n @bindable channel;\r\n members = [];\r\n isMobile = utils.isMobile();\r\n\r\n channelChanged() {\r\n\r\n if (this.channel) {\r\n this.members = [nsCtx.memberAll, ...this.channel.members];\r\n } else {\r\n this.members = [];\r\n }\r\n\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_SHOW_HOTKEYS_MODAL, (payload) => {\r\n this.emHotkeysModal.show();\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE, (payload) => {\r\n this.members = [nsCtx.memberAll, ...payload.members];\r\n });\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_CHAT_MSG_INSERT, (payload) => {\r\n this.insertContent(payload.content);\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 'r', () => { // reply message\r\n event.preventDefault();\r\n this.simplemde.codemirror.focus();\r\n });\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.initSimpleMDE(this.chatInputRef);\r\n this.initDropzone();\r\n this.initPaste();\r\n this.initHotkeys();\r\n }\r\n\r\n initPaste() {\r\n\r\n let $paste;\r\n if (this.$chatMsgInputRef.is('textarea')) {\r\n $paste = $(this.$chatMsgInputRef).pastableTextarea();\r\n } else {\r\n $paste = $(this.$chatMsgInputRef).pastableContenteditable();\r\n }\r\n\r\n $paste && ($paste.on('pasteImage', (ev, data) => {\r\n\r\n $.post('/admin/file/base64', {\r\n dataURL: data.dataURL,\r\n type: data.blob.type,\r\n toType: nsCtx.isAt ? 'User' : 'Channel',\r\n toId: nsCtx.chatTo\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.insertContent('![{name}]({baseURL}{path}{uuidName})'\r\n .replace(/\\{name\\}/g, data.data.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, data.data.path)\r\n .replace(/\\{uuidName\\}/g, data.data.uuidName));\r\n }\r\n });\r\n }).on('pasteImageError', (ev, data) => {\r\n toastr.error(data.message, '剪贴板粘贴图片错误!');\r\n }));\r\n }\r\n\r\n initDropzone() {\r\n this.initUploadDropzone($('.CodeMirror-wrap', this.inputRef), () => {\r\n return this.$chatMsgInputRef\r\n }, false);\r\n this.initUploadDropzone($(this.btnItemUploadRef).children().andSelf(), () => {\r\n return this.$chatMsgInputRef\r\n }, true);\r\n\r\n $(this.chatBtnRef).popup({\r\n inline: true,\r\n hoverable: true,\r\n position: 'bottom left',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n });\r\n\r\n }\r\n\r\n initUploadDropzone(domRef, getInputTargetCb, clickable) {\r\n\r\n let _this = this;\r\n\r\n $(domRef).dropzone({\r\n url: \"/admin/file/upload\",\r\n paramName: 'file',\r\n clickable: !!clickable,\r\n dictDefaultMessage: '',\r\n maxFilesize: 10,\r\n addRemoveLinks: true,\r\n previewsContainer: this.chatStatusBarRef,\r\n previewTemplate: this.previewTemplateRef.innerHTML,\r\n dictCancelUpload: '取消上传',\r\n dictCancelUploadConfirmation: '确定要取消上传吗?',\r\n dictFileTooBig: '文件过大({{filesize}}M),最大限制:{{maxFilesize}}M',\r\n init: function() {\r\n this.on(\"sending\", function(file, xhr, formData) {\r\n if (!getInputTargetCb()) {\r\n this.removeAllFiles(true);\r\n } else {\r\n formData.append('toType', nsCtx.isAt ? 'User' : 'Channel');\r\n formData.append('toId', nsCtx.chatTo);\r\n }\r\n });\r\n this.on(\"success\", function(file, data) {\r\n if (data.success) {\r\n\r\n $.each(data.data, function(index, item) {\r\n if (item.type == 'Image') {\r\n _this.insertContent('![{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, item.path)\r\n .replace(/\\{uuidName\\}/g, item.uuidName));\r\n } else {\r\n _this.insertContent('[{name}]({baseURL}{path}{uuidName}) '\r\n .replace(/\\{name\\}/g, item.name)\r\n .replace(/\\{baseURL\\}/g, utils.getBaseUrl() + '/')\r\n .replace(/\\{path\\}/g, \"admin/file/download/\")\r\n .replace(/\\{uuidName\\}/g, item.id));\r\n }\r\n });\r\n toastr.success('上传成功!');\r\n } else {\r\n toastr.error(data.data, '上传失败!');\r\n }\r\n\r\n });\r\n this.on(\"error\", function(file, errorMessage, xhr) {\r\n toastr.error(errorMessage, '上传失败!');\r\n });\r\n this.on(\"complete\", function(file) {\r\n this.removeFile(file);\r\n });\r\n }\r\n });\r\n }\r\n\r\n initSimpleMDE(textareaDom) {\r\n this.simplemde = new SimpleMDE({\r\n element: textareaDom,\r\n spellChecker: false,\r\n status: false,\r\n autofocus: true,\r\n toolbar: false,\r\n // forceSync: true,\r\n autoDownloadFontAwesome: false,\r\n insertTexts: {\r\n table: [\"\", \"\\n\\n| 列1 | 列2 | 列3 |\\n| ------ | ------ | ------ |\\n| 文本 | 文本 | 文本 |\\n\\n\"],\r\n },\r\n previewRender: (plainText, preview) => { // Async method\r\n return this.simplemde.markdown(utils.preParse(plainText));\r\n },\r\n });\r\n\r\n this.$chatMsgInputRef = $(this.inputRef).find('.textareaWrapper .CodeMirror textarea');\r\n if (this.$chatMsgInputRef.size() === 0) {\r\n this.$chatMsgInputRef = $(this.inputRef).find('.textareaWrapper .CodeMirror [contenteditable=\"true\"]');\r\n }\r\n\r\n this.initTextcomplete();\r\n }\r\n\r\n initTextcomplete() {\r\n\r\n $(this.$chatMsgInputRef).textcomplete([{ // chat msg help\r\n match: /(|\\b)(\\/.*)$/,\r\n search: (term, callback) => {\r\n var keys = _.keys(tips);\r\n callback($.map(keys, (key) => {\r\n return key.indexOf(term) === 0 ? key : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n return tips[value].label;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n this.setCaretPosition(tips[value].line, tips[value].ch);\r\n return `$1${tips[value].value}`;\r\n } else {\r\n return '';\r\n }\r\n }\r\n }, { // @user\r\n match: /(^|\\s)@(\\w*)$/,\r\n search: (term, callback) => {\r\n callback($.map(this.members, (member) => {\r\n return (member.enabled && member.username.indexOf(term) >= 0) ? member.username : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n let user = _.find(this.members, { username: value });\r\n return `${user.name} - ${user.mails} (${user.username})`;\r\n },\r\n replace: (value) => {\r\n return `$1{~${value}}`;\r\n }\r\n }, { // emoji\r\n match: /(^|\\s):([\\+\\-\\w]*)$/,\r\n search: function(term, callback) {\r\n callback($.map(emojis, (emoji) => {\r\n return _.some(emoji.split('_'), (item) => {\r\n return item.indexOf(term) === 0;\r\n }) ? emoji : null;\r\n }));\r\n },\r\n template: (value, term) => {\r\n if (value == 'search') {\r\n return `表情查找 - :search`;\r\n }\r\n let emojiKey = `:${value}:`;\r\n return `${emojify.replace(emojiKey)} - ${emojiKey}`;\r\n },\r\n replace: (value) => {\r\n if (this.tipsActionHandler(value)) {\r\n return '$1:' + value + ': ';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }], {\r\n appendTo: '.tms-chat-status-bar',\r\n maxCount: nsCons.NUM_TEXT_COMPLETE_MAX_COUNT\r\n });\r\n\r\n this.simplemde.codemirror.on('keydown', (cm, e) => {\r\n if (_.includes([13, 38, 40], e.keyCode) && this.isTipsShow()) { // enter | up | down\r\n e.preventDefault();\r\n } else if (e.ctrlKey && e.keyCode === 13) {\r\n this.sendChatMsg();\r\n } else if (e.keyCode === 27) {\r\n this.simplemde.value('');\r\n } else if (e.ctrlKey && e.keyCode == 85) {\r\n $(this.btnItemUploadRef).find('.content').click();\r\n } else if (e.ctrlKey && e.keyCode == 191) {\r\n this.emHotkeysModal.show();\r\n }\r\n });\r\n }\r\n\r\n setCaretPosition(line, ch) {\r\n (line || ch) && (_.delay(() => {\r\n let cr = this.simplemde.codemirror.getCursor();\r\n this.simplemde.codemirror.setCursor({\r\n line: cr.line - (line ? line : 0),\r\n ch: cr.line ? (ch ? ch : 0) : (cr.ch - (ch ? ch : 0))\r\n });\r\n }, 100));\r\n }\r\n\r\n sendChatMsg() {\r\n\r\n let content = this.simplemde.value();\r\n\r\n if (!$.trim(content)) {\r\n this.simplemde.value('');\r\n return;\r\n }\r\n\r\n if (this.sending) {\r\n return;\r\n }\r\n\r\n this.sending = true;\r\n\r\n var html = utils.md2html(content);\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/create`;\r\n data = {\r\n baseUrl: utils.getBaseUrl(),\r\n path: wurl('path'),\r\n chatTo: this.chatTo,\r\n content: content,\r\n contentHtml: html\r\n };\r\n } else {\r\n url = `/admin/chat/channel/create`;\r\n data = {\r\n url: utils.getUrl(),\r\n channelId: this.channel.id,\r\n usernames: utils.parseUsernames(content, this.members).join(','),\r\n content: content,\r\n contentHtml: html\r\n };\r\n }\r\n $.post(url, data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.simplemde.value('');\r\n ea.publish(nsCons.EVENT_CHAT_MSG_SENDED, {\r\n data: data\r\n });\r\n } else {\r\n toastr.error(data.data, '发送消息失败!');\r\n }\r\n }).always(() => {\r\n this.sending = false;\r\n });\r\n }\r\n\r\n sendChatMsgHandler() {\r\n this.sendChatMsg();\r\n }\r\n\r\n isTipsShow() {\r\n return $(this.chatStatusBarRef).find('.textcomplete-dropdown:visible').size() === 1;\r\n }\r\n\r\n /**\r\n * 编辑器插入自定义沟通内容\r\n * @param {[type]} cm [description]\r\n * @param {[type]} comment [description]\r\n * @return {[type]} [description]\r\n */\r\n insertContent(content, mde) {\r\n try {\r\n let cm = mde ? mde.codemirror : this.simplemde.codemirror;\r\n var cursor = cm.getCursor();\r\n if (cursor) {\r\n cm.replaceRange(content, cursor, cursor);\r\n cm.focus();\r\n }\r\n } catch (err) { console.log(err); }\r\n }\r\n\r\n tipsActionHandler(value) {\r\n if (value == '/upload') {\r\n $(this.btnItemUploadRef).find('.content').click();\r\n } else if (value == '/shortcuts') {\r\n this.emHotkeysModal.show();\r\n } else if (value == 'search') {\r\n _.delay(() => { utils.openNewWin(nsCons.STR_EMOJI_SEARCH_URL); }, 200);\r\n } else {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n togglePreviewHandler() {\r\n this.simplemde.togglePreview();\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatMemberPopup {\r\n\r\n members = [];\r\n member = {};\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MEMBER_POPUP_SHOW, (payload) => {\r\n this.channel = payload.channel;\r\n this.username = payload.username;\r\n this.target = payload.target;\r\n if (this.username == 'all') {\r\n if (!this.channel) {\r\n return;\r\n }\r\n this.members = this.channel.members;\r\n } else {\r\n this.member = utils.getUser(this.username);\r\n let user = utils.getUser(this.member.creator);\r\n this.member.creatorName = (user && (!!user.name)) ? user.name : this.member.creator;\r\n }\r\n _.defer(() => {\r\n\r\n $(this.target).popup({\r\n popup: this.popup,\r\n hoverable: true,\r\n inline: false,\r\n silent: true,\r\n movePopup: false,\r\n position: 'bottom left',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n // boundary: '.tms-content',\r\n // context: '.tms-content',\r\n // maxSearchDepth: 50,\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n }).popup('show');\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatMsgPopup {\r\n\r\n chatMsg;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_POPUP_SHOW, (payload) => {\r\n this.id = payload.id;\r\n this.target = payload.target;\r\n\r\n if (!this.id) {\r\n return;\r\n }\r\n\r\n $(this.target).popup({\r\n popup: this.popup,\r\n hoverable: true,\r\n inline: false,\r\n movePopup: false,\r\n // position: 'top left',\r\n // maxSearchDepth: 50,\r\n silent: true,\r\n position: 'bottom left',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onShow: () => {\r\n $.get('/admin/chat/channel/get', {\r\n id: this.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.chatMsg = data.data;\r\n } else {\r\n toastr.error(data.data, \"加载失败!\");\r\n }\r\n });\r\n }\r\n }).popup('show');\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatMsg {\n\n last = true;\n @bindable loginUser;\n @bindable isAt;\n @bindable channel;\n\n @bindable chats;\n @bindable actived;\n\n basePath = utils.getBasePath();\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n this.initHotkeys();\n }\n\n initHotkeys() {\n $(document).bind('keydown', 'o', (event) => {\n event.preventDefault();\n let item = _.find(this.chats, { isHover: true });\n item && (item.isOpen = !item.isOpen);\n });\n\n }\n\n activedChanged() {\n if (!this.actived) {\n return;\n }\n\n let payload = this.actived.payload;\n let result = payload.result;\n\n if (this.actived.payload.action == nsCons.ACTION_TYPE_AT) {\n this.page = result;\n this.chats = _.map(result.content, (item) => {\n let chatChannel = item.chatChannel;\n chatChannel.chatAt = item;\n return chatChannel;\n });\n this.last = result.last;\n this.moreCnt = result.totalElements - (result.number + 1) * result.size;\n } else if (this.actived.payload.action == nsCons.ACTION_TYPE_STOW) {\n this.chats = payload.result;\n this.last = true;\n } else if (this.actived.payload.action == nsCons.ACTION_TYPE_PIN) {\n this.chats = payload.result;\n this.last = true;\n } else if (this.actived.payload.action == nsCons.ACTION_TYPE_SEARCH) {\n this.search = payload.search;\n this.page = result;\n this.chats = result.content;\n this.last = result.last;\n this.moreCnt = result.totalElements - (result.number + 1) * result.size;\n }\n }\n\n searchItemMouseleaveHandler(item) {\n item.isOpen = false;\n item.isHover = false;\n }\n\n searchItemMouseenterHandler(item) {\n item.isHover = true;\n }\n\n gotoChatHandler(item) {\n ea.publish(nsCons.EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM, { chatItem: item });\n }\n\n openSearchItemHandler(item) {\n item.isOpen = !item.isOpen;\n }\n\n searchMoreHandler() {\n\n if (this.actived.payload.action == nsCons.ACTION_TYPE_SEARCH) {\n this.searchMoreP = $.get('/admin/chat/direct/search', {\n search: this.search,\n size: this.page.size,\n page: this.page.number + 1\n }, (data) => {\n if (data.success) {\n this.chats = _.concat(this.chats, data.data.content);\n\n this.page = data.data;\n this.last = data.data.last;\n this.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size;\n }\n });\n } else {\n this.searchMoreP = $.get('/admin/chat/channel/getAts', {\n size: this.page.size,\n page: this.page.number + 1\n }, (data) => {\n if (data.success) {\n this.chats = _.concat(this.chats, _.map(data.data.content, (item) => {\n let chatChannel = item.chatChannel;\n chatChannel.chatAt = item;\n return chatChannel;\n }));\n\n this.page = data.data;\n this.last = data.data.last;\n this.moreCnt = data.data.totalElements - (data.data.number + 1) * data.data.size;\n }\n });\n }\n }\n\n removePinHandler(item) {\n $.post('/admin/chat/channel/pin/toggle', {\n id: item.id,\n cid: this.channel.id\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this.chats = _.reject(this.chats, {\n id: item.id\n });\n toastr.success('移除固定消息成功!');\n } else {\n toastr.error(data.data, '移除固定消息失败!');\n }\n });\n }\n\n removeStowHandler(item) {\n $.post('/admin/chat/channel/removeStow', {\n id: item.chatStow.id\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this.chats = _.reject(this.chats, {\n id: item.id\n });\n toastr.success('移除收藏消息成功!');\n } else {\n toastr.error(data.data, '移除收藏消息失败!');\n }\n });\n }\n\n removeAtHandler(item) {\n $.post('/admin/chat/channel/markAsReaded', {\n chatAtId: item.chatAt.id\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this.chats = _.reject(this.chats, {\n id: item.id\n });\n } else {\n toastr.error(data.data, '移除@消息失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatScheduleEdit {\r\n\r\n @bindable loginUser;\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.actorsOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {\r\n $.post('/admin/schedule/addActors', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n actors: addedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('添加参与者成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n },\r\n onLabelRemove: (removedValue) => {\r\n if (this.loginUser.username == removedValue) {\r\n return false;\r\n }\r\n $.post('/admin/schedule/removeActors', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n actors: removedValue\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('移除参与者成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n attached() {\r\n $(this.startRef).calendar({\r\n today: true,\r\n endCalendar: $(this.endRef)\r\n });\r\n $(this.endRef).calendar({\r\n today: true,\r\n startCalendar: $(this.startRef)\r\n });\r\n\r\n }\r\n\r\n initMembersUI(last) {\r\n if (last) {\r\n _.defer(() => {\r\n let actors = [this.loginUser.username];\r\n if (this.event) {\r\n actors = _.map(this.event.actors, 'username');\r\n }\r\n\r\n $(this.actorsRef).dropdown().dropdown('clear').dropdown('set selected', actors).dropdown(this.actorsOpts);\r\n });\r\n }\r\n }\r\n\r\n titleKeyupHandler(event) {\r\n if (event.ctrlKey && event.keyCode === 13) {\r\n this.updateHandler();\r\n }\r\n }\r\n\r\n clearStartDateHandler() {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n clearEndDateHandler() {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n show(calEvent) {\r\n this.event = _.clone(calEvent);\r\n\r\n this.showHandler();\r\n\r\n $(this.scheduleEditRef).popup({\r\n on: 'click',\r\n // closable: true,\r\n inline: true,\r\n silent: true,\r\n // movePopup: false,\r\n position: 'bottom center',\r\n jitter: 300,\r\n prefer: 'opposite',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n }\r\n }).popup('show');\r\n }\r\n\r\n showHandler() {\r\n\r\n this.users = window.tmsUsers;\r\n $(this.actorsRef).dropdown().dropdown('clear');\r\n _.defer(() => {\r\n if (this.event.start) {\r\n $(this.startRef).calendar('set date', this.event.start.toDate());\r\n } else {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n if (this.event.end) {\r\n $(this.endRef).calendar('set date', this.event.end.toDate());\r\n } else {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n let actors = _.map(this.event.actors, 'username');\r\n\r\n $(this.actorsRef).dropdown('set selected', actors).dropdown(this.actorsOpts);\r\n\r\n if (this.event.creator.username == this.loginUser.username) {\r\n $(this.titleRef).focus();\r\n }\r\n\r\n autosize.update(this.titleRef);\r\n });\r\n\r\n }\r\n\r\n updateHandler() {\r\n if (!this.event.title) {\r\n toastr.error('日程内容不能为空!');\r\n return;\r\n }\r\n\r\n let data = {\r\n id: this.event.id,\r\n basePath: utils.getBasePath(),\r\n title: this.event.title\r\n };\r\n let start = $(this.startRef).calendar('get date');\r\n let end = $(this.endRef).calendar('get date');\r\n\r\n if (start) {\r\n data.startDate = start;\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end;\r\n }\r\n\r\n $.post('/admin/schedule/update2', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新日程成功!');\r\n $(this.scheduleEditRef).popup('hide');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler() {\r\n this.emConfirmModal.show({\r\n onapprove: () => {\r\n\r\n $.post('/admin/schedule/delete', {\r\n id: this.event.id,\r\n basePath: utils.getBasePath()\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('日程删除成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n\r\n }\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatScheduleRemind {\r\n\r\n @bindable events;\r\n\r\n interval = 5000;\r\n\r\n headOffset = 10 * 60 * 1000;\r\n\r\n reminded = [];\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this._pollCheck();\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.timer && clearInterval(this.timer);\r\n }\r\n\r\n _pollCheck() {\r\n this.timer = setInterval(() => {\r\n\r\n if (!this.events) {\r\n return;\r\n }\r\n\r\n let now = new Date().getTime();\r\n _.each(this.events, (event) => {\r\n if (event.start && !_.includes(this.reminded, event.id)) {\r\n let start = event.start;\r\n if (start > now && start < (now + this.headOffset)) {\r\n this.event = event;\r\n this.reminded.push(event.id);\r\n this._desktopPuh();\r\n this.show();\r\n }\r\n }\r\n });\r\n\r\n }, this.interval);\r\n }\r\n\r\n _desktopPuh() {\r\n push.create('TMS日程提醒通知', {\r\n body: `内容: ${this.event.title}`,\r\n icon: {\r\n x16: 'img/tms-x16.ico',\r\n x32: 'img/tms-x32.png'\r\n },\r\n timeout: 5000\r\n });\r\n }\r\n\r\n showHandler() {\r\n\r\n }\r\n\r\n approveHandler() {\r\n\r\n }\r\n\r\n show() {\r\n this.emModal.show({\r\n hideOnApprove: true,\r\n autoDimmer: false\r\n });\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as moment\r\n} from 'moment';\r\nimport 'fullcalendar';\r\nimport 'fullcalendar/dist/locale/zh-cn';\r\n\r\n@containerless\r\nexport class EmChatSchedule {\r\n\r\n @bindable loginUser;\r\n\r\n offset = 100;\r\n\r\n show() {\r\n this.users = window.tmsUsers;\r\n\r\n _.defer(() => {\r\n $(this.scheduleRef).fullCalendar('today');\r\n });\r\n _.delay(() => {\r\n $(this.scheduleRef).fullCalendar('option', 'height', 'parent');\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n }, 500);\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.actorsOpts = {\r\n onAdd: (addedValue, addedText, $addedChoice) => {},\r\n onLabelRemove: (removedValue) => {\r\n if (this.loginUser.username == removedValue) {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_SCHEDULE_REFRESH, (payload) => {\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n });\r\n\r\n this._getEvents();\r\n }\r\n\r\n _getEvents(start, end, callback) {\r\n let data = {};\r\n if (start) {\r\n data.start = start.unix();\r\n }\r\n if (end) {\r\n data.start = end.unix();\r\n }\r\n $.get('/admin/schedule/listMy', data, (data) => {\r\n if (data.success) {\r\n this.events = _.map(data.data, (item) => {\r\n let event = {\r\n id: item.id,\r\n title: item.title,\r\n actors: item.actors,\r\n creator: item.creator\r\n };\r\n\r\n if (item.startDate) {\r\n event.start = item.startDate;\r\n } else {\r\n event.start = new Date().getTime();\r\n }\r\n\r\n if (item.endDate) {\r\n event.end = item.endDate;\r\n }\r\n\r\n return event;\r\n });\r\n callback && callback(this.events);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n attached() {\r\n\r\n $(this.scheduleRef).fullCalendar({\r\n header: {\r\n left: 'prev,next today',\r\n // center: '',\r\n center: 'title',\r\n right: 'month,agendaWeek,agendaDay,listWeek'\r\n },\r\n // height: $(window).height() - this.offset,\r\n height: 'parent',\r\n defaultDate: new Date(),\r\n defaultView: 'listWeek',\r\n editable: true,\r\n eventLimit: true, // allow \"more\" link when too many events\r\n navLinks: true,\r\n // timezone: 'Asia/Shanghai',\r\n // timezone: 'UTC',\r\n timezone: 'local',\r\n dayClick: (date, jsEvent, view) => {\r\n\r\n $(this.startRef).calendar('set date', date.toDate());\r\n this.isPopupShowForDayClick = true;\r\n $(this.addRef).popup('show');\r\n },\r\n eventClick: (calEvent, jsEvent, view) => {\r\n this.scheduleEditVm.show(calEvent);\r\n },\r\n eventMouseover: (event, jsEvent, view) => {},\r\n eventMouseout: (event, jsEvent, view) => {},\r\n events: (start, end, timezone, callback) => {\r\n\r\n this._getEvents(start, end, callback);\r\n },\r\n eventDrop: (event, delta, revertFunc) => {\r\n\r\n if (event.creator.username != this.loginUser.username) {\r\n toastr.error('您没有权限修改!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n return;\r\n }\r\n\r\n this._updateDate(event.id, event.start, event.end);\r\n },\r\n eventResize: (event, delta, revertFunc) => {\r\n\r\n if (event.creator.username != this.loginUser.username) {\r\n toastr.error('您没有权限修改!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n return;\r\n }\r\n\r\n this._updateDate(event.id, event.start, event.end);\r\n }\r\n });\r\n\r\n $(this.addRef)\r\n .popup({\r\n on: 'click',\r\n // closable: false,\r\n inline: true,\r\n // hoverable: true,\r\n silent: true,\r\n // movePopup: false,\r\n jitter: 300,\r\n position: 'bottom center',\r\n delay: {\r\n show: 300,\r\n hide: 300\r\n },\r\n onVisible: () => {\r\n $(this.titleRef).focus();\r\n autosize.update(this.titleRef);\r\n if (!this.title && !this.isPopupShowForDayClick) {\r\n $(this.startRef).calendar('set date', new Date());\r\n }\r\n this.isPopupShowForDayClick = false;\r\n }\r\n });\r\n\r\n $(this.startRef).calendar({\r\n today: true,\r\n endCalendar: $(this.endRef)\r\n });\r\n $(this.endRef).calendar({\r\n today: true,\r\n startCalendar: $(this.startRef)\r\n });\r\n\r\n this._reset();\r\n }\r\n\r\n titleKeyupHandler(event) {\r\n if (event.ctrlKey && event.keyCode === 13) {\r\n this.addHandler();\r\n }\r\n }\r\n\r\n _updateDate(id, start, end) {\r\n let data = {\r\n id: id,\r\n basePath: utils.getBasePath()\r\n };\r\n\r\n if (start) {\r\n data.startDate = start.toDate();\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end.toDate();\r\n }\r\n\r\n $.post('/admin/schedule/updateStartEndDate', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n toastr.success('更新日程成功!');\r\n ea.publish(nsCons.EVENT_SCHEDULE_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n initMembersUI(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.actorsRef).dropdown().dropdown('clear').dropdown(this.actorsOpts).dropdown('set selected', [this.loginUser.username]);\r\n });\r\n }\r\n }\r\n\r\n clearStartDateHandler() {\r\n $(this.startRef).calendar('clear');\r\n }\r\n\r\n clearEndDateHandler() {\r\n $(this.endRef).calendar('clear');\r\n }\r\n\r\n addHandler() {\r\n\r\n if (!this.title) {\r\n toastr.error('日程内容不能为空!');\r\n return;\r\n }\r\n\r\n let data = {\r\n title: this.title,\r\n basePath: utils.getBasePath(),\r\n actors: $(this.actorsRef).dropdown('get value')\r\n };\r\n\r\n let start = $(this.startRef).calendar('get date');\r\n let end = $(this.endRef).calendar('get date');\r\n\r\n if (start) {\r\n data.startDate = start;\r\n } else {\r\n data.startDate = new Date();\r\n }\r\n\r\n if (end) {\r\n data.endDate = end;\r\n }\r\n\r\n $.post('/admin/schedule/create', data, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n $(this.scheduleRef).fullCalendar('refetchEvents');\r\n toastr.success('添加日程成功!');\r\n this._reset();\r\n $(this.addRef).popup('hide');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n _reset() {\r\n this.title = '';\r\n $(this.startRef).calendar('set date', new Date());\r\n $(this.endRef).calendar('clear');\r\n $(this.actorsRef).dropdown('clear');\r\n if (this.loginUser && this.loginUser.username) {\r\n $(this.actorsRef).dropdown('set selected', [this.loginUser.username]).dropdown('set value', this.loginUser.username);\r\n }\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmChatShare {\n\n shares = [];\n desc = '';\n\n @bindable chat;\n @bindable channel;\n @bindable loginUser;\n @bindable isAt;\n\n basePath = utils.getBasePath();\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.searchRef)\n .search({\n minCharacters: 2,\n cache: false,\n selectFirstResult: true,\n showNoResults: false,\n onSelect: (result, response) => {\n result.item._id = _.uniqueId('share-item-');\n result.item._type = result.item.username ? 'user' : 'channel';\n this.shares.push(result.item);\n _.defer(() => { $(this.inputSearchRef).val(''); });\n },\n apiSettings: {\n onResponse: (resp) => {\n var response = {\n results: []\n };\n $.each(resp.data.users, (index, item) => {\n if (!_.find(_.filter(this.shares, c => c._type == 'user'), { username: item.username })) {\n response.results.push({\n item: item,\n title: ` ${item.name} (${item.username})`,\n });\n }\n });\n $.each(resp.data.channels, (index, item) => {\n if (!_.find(_.filter(this.shares, c => c._type == 'channel'), { name: item.name })) {\n response.results.push({\n item: item,\n title: ` ${item.title} (${item.name})`,\n });\n }\n });\n return response;\n },\n url: '/admin/blog/share/to/search?search={query}'\n }\n });\n $(this.shareRef).popup({\n on: 'click',\n inline: true,\n silent: true,\n position: 'bottom right',\n jitter: 300,\n delay: {\n show: 300,\n hide: 300\n },\n onVisible: () => {\n $(this.inputSearchRef).focus();\n }\n });\n }\n\n shareSearchKeyupHandler(event) {\n if (event.keyCode === 13 && !$(this.searchRef).search('is visible')) {\n let val = $(this.inputSearchRef).val();\n if (utils.isMail(val)) {\n if (!_.find(_.filter(this.shares, c => c._type == 'mail'), { mail: val })) {\n this.shares.push({\n _id: _.uniqueId('share-item-'),\n _type: 'mail',\n mail: val\n });\n $(this.inputSearchRef).val('');\n }\n }\n }\n }\n\n show() {\n $(this.shareRef).popup('show');\n }\n\n removeShareHandler(item) {\n this.shares = _.reject(this.shares, { _id: item._id });\n }\n\n cancelHandler() {\n this._reset();\n }\n\n _reset() {\n this.shares = [];\n this.desc = '';\n $(this.inputSearchRef).val('');\n $(this.shareRef).popup('hide');\n }\n\n shareHandler() {\n\n if (this.shares.length === 0) {\n toastr.error('请先指定沟通消息分享用户或者频道或者邮箱!');\n return;\n }\n\n this.ajaxS = $.post(`/admin/chat/${this.isAt ? 'direct' : 'channel'}/share`, {\n basePath: utils.getBasePath(),\n href: `${this.basePath}#/chat/${this.isAt ? ('@' + this.loginUser.username) : this.channel.name}?id=${this.chat.id}`,\n id: this.chat.id,\n desc: this.desc,\n html: utils.md2html(this.chat.content),\n users: _.chain(this.shares).filter(item => item._type == 'user').map('username').join().value(),\n channels: _.chain(this.shares).filter(item => item._type == 'channel').map('name').join().value(),\n mails: _.chain(this.shares).filter(item => item._type == 'mail').map('mail').join().value()\n }, (data, textStatus, xhr) => {\n if (data.success) {\n this._reset();\n toastr.success('沟通消息分享成功!');\n } else {\n toastr.error(data.data, '沟通消息分享失败!');\n }\n });\n }\n}\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSidebarLeft {\r\n\r\n @bindable users;\r\n @bindable loginUser;\r\n @bindable channels;\r\n @bindable chatTo;\r\n @bindable isAt;\r\n filter = '';\r\n isSuper = nsCtx.isSuper;\r\n\r\n usersChanged() {\r\n this._filter();\r\n }\r\n\r\n channelsChanged() {\r\n this._filter();\r\n }\r\n\r\n loginUserChanged() {\r\n if (this.loginUser) {\r\n this.isSuper = utils.isSuperUser(this.loginUser);\r\n }\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHANNEL_ACTIONS, (payload) => {\r\n this[payload.action](payload.item);\r\n });\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_SYSTEM_LINKS_REFRESH, (payload) => {\r\n this._refreshSysLinks();\r\n });\r\n }\r\n\r\n _refreshSysLinks() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.sysLinks = data.data;\r\n } else {\r\n this.sysLinks = [];\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n }\r\n\r\n bind(bindingCtx, overrideCtx) {\r\n this._refreshSysLinks();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.logoRef).on('mouseenter', (event) => {\r\n $(this.logoRef).animateCss('flip');\r\n });\r\n }\r\n\r\n _filter() {\r\n\r\n _.each(this.users, (item) => {\r\n item.hidden = item.username.indexOf(this.filter) == -1;\r\n });\r\n\r\n _.each(this.channels, (item) => {\r\n item.hidden = item.name.indexOf(this.filter) == -1;\r\n });\r\n }\r\n\r\n chatToUserFilerKeyupHanlder(evt) {\r\n this._filter();\r\n\r\n if (evt.keyCode === 13) {\r\n let user = _.find(this.users, {\r\n hidden: false\r\n });\r\n\r\n if (user) {\r\n window.location = wurl('path') + `#/chat/@${user.username}`;\r\n return;\r\n }\r\n\r\n let channel = _.find(this.channels, {\r\n hidden: false\r\n });\r\n\r\n if (channel) {\r\n window.location = wurl('path') + `#/chat/${channel.name}`;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n clearFilterHandler() {\r\n this.filter = '';\r\n _.each(this.users, (item) => {\r\n item.hidden = item.username.indexOf(this.filter) == -1;\r\n });\r\n _.each(this.channels, (item) => {\r\n item.hidden = item.name.indexOf(this.filter) == -1;\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelEditMd.show();\r\n }\r\n\r\n delHandler(item) {\r\n this.confirmMd.show({\r\n onapprove: () => {\r\n $.post('/admin/channel/delete', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('删除频道成功!');\r\n _.remove(this.channels, { id: item.id });\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_DELETED, { channel: item });\r\n } else {\r\n toastr.error(data.data, '删除频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n membersMgrHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelMembersMgrMd.show();\r\n }\r\n\r\n membersShowHandler(item) {\r\n this.selectedChannel = item;\r\n this.channelMembersShowMd.show();\r\n }\r\n\r\n leaveHandler(item) {\r\n this.confirmMd.show({\r\n content: `确定要离开频道${item.title}吗?`,\r\n onapprove: () => {\r\n $.post('/admin/channel/leave', {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n toastr.success('离开频道成功!');\r\n ea.publish(nsCons.EVENT_CHAT_CHANNEL_LEAVED, { channel: data.data });\r\n } else {\r\n toastr.error(data.data, '离开频道失败!');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n switchHandler() {\r\n ea.publish(nsCons.EVENT_SWITCH_CHAT_TO, {});\r\n }\r\n\r\n addChannelLinkHandler(event) {\r\n this.sysLinkMgrVm.show();\r\n }\r\n\r\n isSubscribed(item) {\r\n return _.some(item.subscriber, { username: this.loginUser.username });\r\n }\r\n\r\n subscribeHandler(item) {\r\n\r\n let isSub = this.isSubscribed(item);\r\n\r\n $.post(`/admin/channel/${isSub ? 'unsubscribe' : 'subscribe'}`, {\r\n id: item.id\r\n }, (data) => {\r\n if (data.success) {\r\n item.subscriber = data.data.subscriber;\r\n toastr.success(`${isSub ? '取消订阅' : '订阅频道'}成功!`);\r\n item.isSubscribed = !isSub;\r\n } else {\r\n toastr.error(data.data, `${isSub ? '取消订阅' : '订阅频道'}失败!`);\r\n }\r\n });\r\n }\r\n\r\n sysLinkHandler(item) {\r\n $.post('/admin/link/count/inc', { id: item.id });\r\n return true;\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSidebarRight {\r\n\r\n @bindable loginUser;\r\n @bindable isAt;\r\n @bindable channel;\r\n\r\n actionMapping = {\r\n [nsCons.ACTION_TYPE_DIR]: { handler: this.dirHandler, nodata: '', show: 'dir' },\r\n [nsCons.ACTION_TYPE_AT]: { nodata: '暂无@消息', show: 'msg' },\r\n [nsCons.ACTION_TYPE_STOW]: { nodata: '暂无收藏消息', show: 'msg' },\r\n [nsCons.ACTION_TYPE_ATTACH]: { handler: this.attachHandler, nodata: '', show: 'attach' },\r\n [nsCons.ACTION_TYPE_SCHEDULE]: { handler: this.scheduleHandler, nodata: '', show: 'schedule' },\r\n [nsCons.ACTION_TYPE_SEARCH]: { nodata: '无符合检索结果', show: 'msg' },\r\n [nsCons.ACTION_TYPE_PIN]: { nodata: '暂无频道固定消息', show: 'msg' },\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, (payload) => {\r\n this.actived = _.clone(this.actionMapping[payload.action]);\r\n this.actived.payload = payload;\r\n if (this.actived.handler) {\r\n _.bind(this.actived.handler, this, payload)();\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n }\r\n\r\n attachHandler(payload) {\r\n this.chatAttachVm.fetch();\r\n }\r\n\r\n dirHandler(payload) {\r\n $(this.dirRef).empty().append(payload.result);\r\n }\r\n\r\n scheduleHandler(payload) {\r\n this.chatScheduleVm.show();\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatSystemLinkMgr {\r\n\r\n links = [];\r\n\r\n addHandler() {\r\n $.post('/admin/link/create', {\r\n title: this.title,\r\n href: this.href,\r\n type: 'App'\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.title = '';\r\n this.href = '';\r\n this.links.push(data.data);\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n delHandler(item) {\r\n $.post('/admin/link/delete', {\r\n id: item.id\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n this.links = _.reject(this.links, { id: item.id });\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n toastr.success('删除成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n editHandler(item) {\r\n item.oldTitle = item.title;\r\n item.oldHref = item.href;\r\n item.isEditing = true;\r\n }\r\n\r\n updateHandler(item) {\r\n $.post('/admin/link/update', {\r\n id: item.id,\r\n title: item.title,\r\n href: item.href,\r\n }, (data, textStatus, xhr) => {\r\n if (data.success) {\r\n item.isEditing = false;\r\n ea.publish(nsCons.EVENT_SYSTEM_LINKS_REFRESH, {});\r\n toastr.success('更新成功!');\r\n } else {\r\n toastr.error(data.data);\r\n }\r\n });\r\n }\r\n\r\n showHandler() {\r\n $.get('/admin/link/listByApp', (data) => {\r\n if (data.success) {\r\n this.links = data.data;\r\n } else {\r\n this.links = [];\r\n }\r\n });\r\n }\r\n\r\n show() {\r\n this.emModal.show({ autoDimmer: false });\r\n }\r\n\r\n approveHandler(modal) {\r\n\r\n }\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmChatTopMenu {\r\n\r\n @bindable loginUser;\r\n @bindable chatUser;\r\n @bindable users;\r\n @bindable channels;\r\n @bindable channel;\r\n @bindable loginUser;\r\n @bindable chatId;\r\n @bindable chatTo;\r\n @bindable isAt;\r\n isRightSidebarShow = false;\r\n activeType = ''; // 触发激活的操作类型: search | stow | at | attach\r\n\r\n ACTION_TYPE_SEARCH = nsCons.ACTION_TYPE_SEARCH;\r\n ACTION_TYPE_STOW = nsCons.ACTION_TYPE_STOW;\r\n ACTION_TYPE_PIN = nsCons.ACTION_TYPE_PIN;\r\n ACTION_TYPE_AT = nsCons.ACTION_TYPE_AT;\r\n ACTION_TYPE_DIR = nsCons.ACTION_TYPE_DIR;\r\n ACTION_TYPE_ATTACH = nsCons.ACTION_TYPE_ATTACH;\r\n ACTION_TYPE_SCHEDULE = nsCons.ACTION_TYPE_SCHEDULE;\r\n\r\n countAt = null;\r\n newAtCnt = 0;\r\n\r\n channelLinks = [];\r\n\r\n loginUserChanged() {\r\n if (this.loginUser) {\r\n this.isSuper = utils.isSuperUser(this.loginUser);\r\n }\r\n }\r\n\r\n chatToChanged() {\r\n $(this.chatToDropdownRef).dropdown('set selected', this.chatId).dropdown('hide');\r\n }\r\n\r\n channelChanged() {\r\n this._refreshChannelLinks();\r\n }\r\n\r\n _refreshChannelLinks() {\r\n if (this.channel) {\r\n $.get('/admin/link/listBy', {\r\n channelId: this.channel.id\r\n }, (data) => {\r\n if (data.success) {\r\n this.channelLinks = data.data;\r\n } else {\r\n this.channelLinks = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 构造函数\r\n */\r\n constructor() {\r\n this.subscribe = ea.subscribe(nsCons.EVENT_CHAT_MSG_WIKI_DIR, (payload) => {\r\n this.dir = payload.dir;\r\n\r\n if ((this.activeType == this.ACTION_TYPE_DIR) && this.isRightSidebarShow) {\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: this.dir\r\n });\r\n }\r\n });\r\n\r\n this.subscribe1 = ea.subscribe(nsCons.EVENT_CHAT_POLL_UPDATE, (payload) => {\r\n if (this.countAt !== null && this.newAtCnt <= 0) {\r\n this.newAtCnt = payload.countAt - this.countAt;\r\n }\r\n this.countAt = payload.countAt;\r\n this.countMyRecentSchedule = payload.countMyRecentSchedule;\r\n });\r\n\r\n this.subscribe2 = ea.subscribe(nsCons.EVENT_SWITCH_CHAT_TO, (payload) => {\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n\r\n this.subscribe3 = ea.subscribe(nsCons.EVENT_CHANNEL_LINKS_REFRESH, (payload) => {\r\n this._refreshChannelLinks();\r\n });\r\n }\r\n\r\n /**\r\n * 当数据绑定引擎从视图解除绑定时被调用\r\n */\r\n unbind() {\r\n this.subscribe.dispose();\r\n this.subscribe1.dispose();\r\n this.subscribe2.dispose();\r\n this.subscribe3.dispose();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n this.initHotkeys();\r\n this.initSearch();\r\n }\r\n\r\n initSearch() {\r\n var source = [];\r\n if (localStorage) {\r\n var v = localStorage.getItem('tms/chat-direct:search');\r\n source = v ? $.parseJSON(v) : [];\r\n }\r\n this.searchSource = source;\r\n $(this.searchRef).search({\r\n source: source,\r\n onSelect: (result, response) => {\r\n this.searchHandler();\r\n },\r\n onResults: () => {\r\n $(this.searchRef).search('hide results');\r\n }\r\n });\r\n\r\n }\r\n\r\n searchHandler() {\r\n\r\n $(this.searchRef).search('hide results');\r\n\r\n let search = $(this.searchInputRef).val();\r\n\r\n if (!search || search.length < 2) {\r\n toastr.error('检索条件至少需要两个字符!');\r\n return;\r\n }\r\n\r\n this.search = search;\r\n\r\n // 保存检索值\r\n var isExists = false;\r\n $.each(this.searchSource, function(index, val) {\r\n if (val.title == search) {\r\n isExists = true;\r\n return false;\r\n }\r\n });\r\n if (!isExists) {\r\n this.searchSource.splice(0, 0, {\r\n title: search\r\n });\r\n $(this.searchRef).search({\r\n source: _.clone(this.searchSource)\r\n });\r\n }\r\n localStorage && localStorage.setItem('tms/chat-direct:search', JSON.stringify(this.searchSource));\r\n\r\n let url;\r\n let data;\r\n if (this.isAt) {\r\n url = `/admin/chat/direct/search`;\r\n data = {\r\n search: this.search,\r\n size: 20,\r\n page: 0\r\n };\r\n } else {\r\n url = `/admin/chat/channel/search`;\r\n data = {\r\n search: this.search,\r\n channelId: this.channel.id,\r\n size: 20,\r\n page: 0\r\n };\r\n }\r\n\r\n this.searchingP = $.get(url, data, (data) => {\r\n if (data.success) {\r\n this.toggleRightSidebar(true);\r\n\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: data.data,\r\n search: this.search\r\n });\r\n }\r\n });\r\n }\r\n\r\n initHotkeys() {\r\n $(document).bind('keydown', 's', (event) => { // sidebar\r\n event.preventDefault();\r\n this.toggleRightSidebar();\r\n }).bind('keydown', 'ctrl+k', (event) => {\r\n event.preventDefault();\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n\r\n $(this.filterChatToUser).bind('keydown', 'ctrl+k', (event) => {\r\n event.preventDefault();\r\n $(this.chatToDropdownRef).dropdown('toggle');\r\n });\r\n }\r\n\r\n initChatToDropdownHandler(last) {\r\n if (last) {\r\n _.defer(() => {\r\n $(this.chatToDropdownRef).dropdown().dropdown('set selected', this.chatId).dropdown({\r\n onChange: (value, text, $choice) => {\r\n window.location = wurl('path') + `#/chat/${$choice.attr('data-id')}`;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n searchFocusHandler() {\r\n $(this.searchInputRef).css('width', 'auto');\r\n $(this.searchRemoveRef).show();\r\n this.isActiveSearch = true;\r\n }\r\n\r\n searchBlurHandler() {\r\n if (!$(this.searchInputRef).val()) {\r\n $(this.searchInputRef).css('width', '95px');\r\n $(this.searchRemoveRef).hide();\r\n this.isActiveSearch = false;\r\n }\r\n }\r\n\r\n sibebarRightHandler(event) {\r\n this.toggleRightSidebar();\r\n }\r\n\r\n toggleRightSidebar(asShow) {\r\n if (_.isUndefined(asShow)) {\r\n this.isRightSidebarShow = !this.isRightSidebarShow;\r\n } else {\r\n this.isRightSidebarShow = asShow;\r\n }\r\n\r\n ea.publish(nsCons.EVENT_CHAT_SIDEBAR_TOGGLE, {\r\n isShow: this.isRightSidebarShow\r\n });\r\n }\r\n\r\n searchKeyupHandler(evt) {\r\n if (evt.keyCode === 13) {\r\n this.activeType = nsCons.ACTION_TYPE_SEARCH;\r\n this.searchHandler();\r\n } else if (evt.keyCode === 27) {\r\n this.clearSearchHandler();\r\n }\r\n return true;\r\n }\r\n\r\n clearSearchHandler() {\r\n $(this.searchInputRef).val('').focus();\r\n }\r\n\r\n showStowHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_STOW) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_STOW;\r\n this.ajaxStow = $.get('/admin/chat/channel/getStows', (data) => {\r\n if (data.success) {\r\n let stowChats = _.map(data.data, (item) => {\r\n let chatChannel = item.chatChannel;\r\n chatChannel.chatStow = item;\r\n return chatChannel;\r\n });\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: _.reverse(stowChats)\r\n });\r\n this.toggleRightSidebar(true);\r\n } else {\r\n toastr.error(data.data, '获取收藏消息失败!');\r\n }\r\n });\r\n }\r\n\r\n showAtHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_AT) && (this.newAtCnt == 0) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_AT;\r\n this.newAtCnt = 0;\r\n this.ajaxAt = $.get('/admin/chat/channel/getAts', {\r\n page: 0,\r\n size: 20\r\n }, (data) => {\r\n if (data.success) {\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: data.data\r\n });\r\n this.toggleRightSidebar(true);\r\n } else {\r\n toastr.error(data.data, '获取@消息失败!');\r\n }\r\n });\r\n }\r\n\r\n logoutHandler() {\r\n $.post('/admin/logout').always(() => {\r\n utils.redirect2Login();\r\n });\r\n }\r\n\r\n showWikiDirHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_DIR) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_DIR;\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: this.dir\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n showAttachHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_ATTACH) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_ATTACH;\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n showScheduleHandler(event) {\r\n\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_SCHEDULE) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_SCHEDULE;\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType\r\n });\r\n this.toggleRightSidebar(true);\r\n }\r\n\r\n userEditHandler() {\r\n this.userEditMd.show();\r\n }\r\n\r\n membersShowHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'membersShowHandler',\r\n item: item\r\n });\r\n }\r\n\r\n leaveHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'leaveHandler',\r\n item: item\r\n });\r\n }\r\n\r\n membersMgrHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'membersMgrHandler',\r\n item: item\r\n });\r\n }\r\n\r\n editHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'editHandler',\r\n item: item\r\n });\r\n }\r\n\r\n delHandler(item, event) {\r\n event.stopImmediatePropagation();\r\n ea.publish(nsCons.EVENT_CHANNEL_ACTIONS, {\r\n action: 'delHandler',\r\n item: item\r\n });\r\n }\r\n\r\n viewOrMgrUsersHandler(event) {\r\n\r\n if (this.channel.owner.username == this.loginUser.username) {\r\n this.membersMgrHandler(this.channel, event);\r\n } else {\r\n this.membersShowHandler(this.channel, event);\r\n }\r\n }\r\n\r\n channelInfoHandler(event) {\r\n\r\n if (this.channel.owner.username == this.loginUser.username) {\r\n this.editHandler(this.channel, event);\r\n } else {\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n userInfoHandler(event) {\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n stopImmediatePropagationHandler(event) {\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n mailToHandler(event) {\r\n event.stopImmediatePropagation();\r\n window.location = `mailto:${this.chatUser.mails}`;\r\n }\r\n\r\n channelLinksHandler(event) {\r\n event.stopImmediatePropagation();\r\n $(this.channelLinksDdRef).dropdown('toggle');\r\n }\r\n\r\n addChannelLinkHandler(event) {\r\n this.channelLinkMgrVm.show();\r\n }\r\n\r\n openChannelLinkHandler(event, item) {\r\n event.stopImmediatePropagation();\r\n $(this.channelLinksDdRef).dropdown('hide');\r\n utils.openNewWin(item.href);\r\n $.post('/admin/link/count/inc', { id: item.id });\r\n }\r\n\r\n showPinHandler(event) {\r\n event.stopImmediatePropagation();\r\n if (this.isRightSidebarShow && (this.activeType == nsCons.ACTION_TYPE_PIN) && !event.ctrlKey) {\r\n this.toggleRightSidebar();\r\n return;\r\n }\r\n\r\n this.activeType = nsCons.ACTION_TYPE_PIN;\r\n\r\n this.ajaxPin = $.get('/admin/chat/channel/pin/list', {\r\n cid: this.channel.id\r\n }, (data) => {\r\n if (data.success) {\r\n let pinChats = _.map(data.data, (item) => {\r\n let chatChannel = item.chatChannel;\r\n chatChannel.chatPin = item;\r\n return chatChannel;\r\n });\r\n ea.publish(nsCons.EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE, {\r\n action: this.activeType,\r\n result: _.reverse(pinChats)\r\n });\r\n this.toggleRightSidebar(true);\r\n } else {\r\n toastr.error(data.data, '获取频道固定消息失败!');\r\n }\r\n });\r\n }\r\n}\r\n","import {\n bindable,\n bindingMode,\n containerless\n}\nfrom 'aurelia-framework';\n\n@containerless\nexport class EmCheckbox {\n\n @bindable label;\n @bindable title;\n @bindable classes = 'fitted';\n @bindable onchange;\n @bindable onchecked;\n @bindable onunchecked;\n @bindable emCheckboxAll;\n @bindable({ defaultBindingMode: bindingMode.twoWay }) checked;\n\n @bindable signal;\n\n checkedChanged(news, old) {\n if (news) {\n $(this.checkbox).checkbox('set checked');\n } else {\n $(this.checkbox).checkbox('set unchecked');\n }\n\n this.signal && bs.signal(this.signal);\n }\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.checkbox).checkbox({\n onChecked: () => {\n this.checked = true;\n _.defer(() => {\n this.emCheckboxAll && this.emCheckboxAll.refreshCheckedStatus();\n this.onchecked && this.onchecked(this);\n this.signal && bs.signal(this.signal);\n });\n\n },\n onUnchecked: () => {\n this.checked = false;\n _.defer(() => {\n this.emCheckboxAll && this.emCheckboxAll.refreshCheckedStatus();\n this.onunchecked && this.onunchecked(this);\n this.signal && bs.signal(this.signal);\n });\n\n },\n onChange: () => {\n _.defer(() => {\n this.onchange && this.onchange(this);\n });\n\n },\n });\n this.checkedChanged(this.checked);\n }\n}\n","import { bindable } from 'aurelia-framework';\r\n\r\nexport class EmConfirmModal {\r\n\r\n\tconfig = {};\r\n\r\n constructor() { // 通过构造函数注入\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n $(this.md).remove();\r\n }\r\n\r\n attached() {\r\n\r\n $(this.md).modal({\r\n closable: false,\r\n allowMultiple: true,\r\n onApprove: () => {\r\n this.onapprove && this.onapprove();\r\n },\r\n onDeny: () => {\r\n this.ondeny && this.ondeny();\r\n }\r\n });\r\n }\r\n\r\n reset() {\r\n this.config = {\r\n title: '操作确认',\r\n content: '确定要执行该操作吗?',\r\n warning: false\r\n };\r\n }\r\n\r\n /**\r\n * 显示确认窗口\r\n * @param onapprove: 确认回调函数\r\n * @param ondeny: 取消回调函数\r\n */\r\n show(config) {\r\n\r\n this.reset();\r\n\r\n if (config) {\r\n this.config = _.extend(this.config, config);\r\n }\r\n\r\n if (config && config.onapprove) {\r\n this.onapprove = config.onapprove;\r\n }\r\n\r\n if (config && config.ondeny) {\r\n this.ondeny = config.ondeny;\r\n }\r\n\r\n $(this.md).modal('show');\r\n }\r\n\r\n /* 隐藏确认窗口 */\r\n hide() {\r\n $(this.md).modal('hide');\r\n }\r\n}\r\n","import { bindable, bindingMode } from 'aurelia-framework';\r\n\r\nexport class EmDropdown {\r\n\r\n @bindable name = _.uniqueId('em-dropdown-');\r\n @bindable text = '';\r\n @bindable labelProp = 'label';\r\n @bindable valueProp = 'value';\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) selectedItem;\r\n @bindable menuItems = [];\r\n @bindable classes = 'selection';\r\n\r\n selectedItemChanged(news, old) {\r\n \r\n if (news) {\r\n _.defer(() => {\r\n $(this.dropdown).dropdown('set selected', news);\r\n // console.log('selectedItemChanged: ' + news);\r\n });\r\n }\r\n\r\n }\r\n\r\n menuItemsChanged(news, old) {\r\n if (_.isEmpty(news)) {\r\n $(this.dropdown).dropdown('clear')\r\n this.selectedItem = null;\r\n }\r\n }\r\n\r\n initDropdownHandler(last) {\r\n\r\n if (last) {\r\n _.defer(() => {\r\n $(this.dropdown).dropdown({\r\n onChange: (value, text, $choice) => {\r\n // toastr.info(value + ' | ' + text);\r\n this.selectedItem = value;\r\n }\r\n }).dropdown('set selected', this.selectedItem);\r\n // console.log('initDropdownHandler: ' + this.selectedItem);\r\n });\r\n }\r\n }\r\n}\r\n","import { bindable } from 'aurelia-framework';\r\n\r\nexport class EmHotkeysModal {\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.md).modal();\r\n }\r\n\r\n show() {\r\n $(this.md).modal('show');\r\n }\r\n}\r\n","import {\r\n bindable,\r\n containerless\r\n}\r\nfrom 'aurelia-framework';\r\n\r\n@containerless\r\nexport class EmModal {\r\n\r\n @bindable confirmLabel = '确认';\r\n @bindable cancelLabel = '取消';\r\n @bindable onapprove;\r\n @bindable ondeny;\r\n @bindable onshow;\r\n @bindable onvisible;\r\n @bindable disabled = false;\r\n @bindable classes = 'small';\r\n @bindable showConfirm = true;\r\n\r\n options = {\r\n hideOnApprove: true,\r\n autoDimmer: true\r\n }\r\n\r\n /**\r\n * 当视图从DOM中分离时被调用\r\n */\r\n detached() {\r\n $(this.modal).remove();\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n\r\n $(this.modal).modal({\r\n closable: false,\r\n autofocus: false,\r\n observeChanges: true,\r\n allowMultiple: true,\r\n // detachable: false,\r\n onShow: () => {\r\n this.onshow && this.onshow(this);\r\n },\r\n onVisible: () => {\r\n this.onvisible && this.onvisible(this);\r\n },\r\n onApprove: () => {\r\n this.options.autoDimmer && this.showDimmer();\r\n this.onapprove && this.onapprove(this);\r\n return this.options.hideOnApprove;\r\n },\r\n onDeny: () => {\r\n this.ondeny && this.ondeny(this);\r\n }\r\n });\r\n }\r\n\r\n showDimmer() {\r\n this.loading = true;\r\n $(this.modal).find('.dimmer').dimmer('show');\r\n }\r\n\r\n hideDimmer() {\r\n this.loading = false;\r\n $(this.modal).find('.dimmer').dimmer('hide');\r\n }\r\n\r\n show(options) {\r\n _.extend(this.options, options);\r\n $(this.modal).modal('show');\r\n }\r\n\r\n hide() {\r\n this.hideDimmer();\r\n $(this.modal).modal('hide');\r\n }\r\n\r\n refresh() {\r\n // 延迟方法\r\n _.defer(() => {\r\n $(this.modal).modal('refresh');\r\n });\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\r\nimport {\r\n default as ColorHash\r\n} from 'color-hash';\r\n\r\n@containerless\r\nexport class EmUserAvatar {\r\n\r\n @bindable user;\r\n\r\n userChanged() {\r\n if (this.user) {\r\n this._calcNameChar();\r\n // let hsl = colorHash.hsl(this.user.username);\r\n let cs = colorHash.rgb(this.user.username);\r\n this.bgColor = `rgba(${cs[0]}, ${cs[1]}, ${cs[2]}, 0.6)`;\r\n // this.bgColor = `hsl(${hsl[0]}, ${hsl[1] * 100}%, ${hsl[2] * 100}%)`;\r\n this.color = `rgba(${255 - cs[0]}, ${255 - cs[1]}, ${255 - cs[2]}, 1)`;\r\n }\r\n }\r\n\r\n _calcNameChar(lastChar = true) {\r\n if (this.user.name) {\r\n this.nameChar = lastChar ? _.last(this.user.name) : _.first(this.user.name);\r\n } else {\r\n this.nameChar = lastChar ? _.last(this.user.username) : _.first(this.user.username);\r\n }\r\n }\r\n\r\n /**\r\n * 当视图被附加到DOM中时被调用\r\n */\r\n attached() {\r\n $(this.avatarRef).hover(() => {\r\n this._calcNameChar(false);\r\n }, () => {\r\n this._calcNameChar();\r\n });\r\n }\r\n\r\n}\r\n","import { bindable, containerless } from 'aurelia-framework';\n\n@containerless\nexport class EmUserEdit {\n\n @bindable user;\n\n show() {\n this.emModal.show({\n hideOnApprove: false,\n autoDimmer: true\n });\n }\n\n showHandler() {\n // $.get('/admin/user/get', {\n // username: this.user.username\n // }, (data) => {});\n }\n\n /**\n * 当视图被附加到DOM中时被调用\n */\n attached() {\n $(this.frm)\n .form({\n on: 'blur',\n inline: true,\n fields: {\n name: 'empty',\n mail: ['empty', 'email'],\n // password: ['minLength[8]'],\n }\n });\n }\n\n _chkOk() {\n let pwd = this.user.password;\n if (pwd && pwd.length < 8) {\n toastr.error('密码长度不能少于8位字符!');\n return false;\n }\n\n return true;\n }\n\n approveHandler(modal) {\n\n if (this._chkOk() && $(this.frm).form('is valid')) {\n $.post('/admin/user/update2', {\n username: this.user.username,\n password: this.user.password,\n name: this.user.name,\n mail: this.user.mails\n }, (data) => {\n modal.hide();\n this.user.password = '';\n if (data.success) {\n toastr.success('更新个人信息成功!');\n } else {\n toastr.error(data.data, '更新个人信息失败!');\n }\n });\n } else {\n modal.hideDimmer();\n }\n }\n}\n","export default [{\r\n label: '待处理',\r\n value: '待处理',\r\n color: 'green',\r\n type: 'tag'\r\n}, {\r\n label: '进行中',\r\n value: '进行中',\r\n color: 'yellow',\r\n type: 'tag'\r\n}, {\r\n label: '已完成',\r\n value: '已完成',\r\n color: 'blue',\r\n type: 'tag'\r\n}, {\r\n label: '已验收',\r\n value: '已验收',\r\n color: 'grey',\r\n type: 'tag'\r\n}];\r\n","html,\r\nbody {\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 6px;\r\n height: 6px;\r\n}\r\n\r\n::-webkit-scrollbar-thumb {\r\n border-radius: 6px;\r\n background-color: #c6c6c6;\r\n}\r\n\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #999;\r\n}\r\n\r\n@media only screen and (min-width: 768px) {\r\n .ui.modal {\r\n &.tms-md450 {\r\n width: 450px!important;\r\n margin-left: -225px!important;\r\n }\r\n &.tms-md510 {\r\n width: 510px!important;\r\n margin-left: -255px!important;\r\n }\r\n &.tms-md540 {\r\n width: 540px!important;\r\n margin-left: -275px!important;\r\n }\r\n }\r\n}\r\n\r\n\r\n/* for swipebox */\r\n\r\n#swipebox-overlay {\r\n background: rgba(13, 13, 13, 0.5)!important;\r\n}\r\n\r\n.keyboard {\r\n background: #fff;\r\n font-weight: 700;\r\n padding: 2px .35rem;\r\n font-size: .8rem;\r\n margin: 0 2px;\r\n border-radius: .25rem;\r\n color: #3d3c40;\r\n border-bottom: 2px solid #9e9ea6;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, .5);\r\n text-shadow: none;\r\n}\r\n\r\n#nprogress .spinner {\r\n display: none!important;\r\n}\r\n\r\n.tms-dropzone-preview-hidden {\r\n .dz-preview {\r\n display: none!important;\r\n }\r\n}\r\n","code.nx {\r\n background-color: #F8F8F8;\r\n border: 1px solid #EAEAEA;\r\n border-radius: 3px 3px 3px 3px;\r\n margin: 0 2px;\r\n padding: 0 5px;\r\n white-space: nowrap;\r\n}\r\n\r\n.markdown-body {\r\n .pre-code-wrapper {\r\n position: relative;\r\n > i.copy.icon {\r\n display: none;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n cursor: pointer;\r\n }\r\n &:hover {\r\n > i.copy.icon {\r\n display: block;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-disabled {\r\n cursor: default;\r\n opacity: .45!important;\r\n background-image: none!important;\r\n box-shadow: none!important;\r\n pointer-events: none!important;\r\n}\r\n\r\n.tms-hidden {\r\n display: none!important;\r\n}\r\n\r\n.animated {\r\n -webkit-animation-duration: 1s;\r\n animation-duration: 1s;\r\n -webkit-animation-fill-mode: both;\r\n animation-fill-mode: both;\r\n}\r\n\r\n@keyframes flip {\r\n from {\r\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\r\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\r\n -webkit-animation-timing-function: ease-out;\r\n animation-timing-function: ease-out;\r\n }\r\n 40% {\r\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\r\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\r\n -webkit-animation-timing-function: ease-out;\r\n animation-timing-function: ease-out;\r\n }\r\n 50% {\r\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\r\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n 80% {\r\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\r\n transform: perspective(400px) scale3d(.95, .95, .95);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n to {\r\n -webkit-transform: perspective(400px);\r\n transform: perspective(400px);\r\n -webkit-animation-timing-function: ease-in;\r\n animation-timing-function: ease-in;\r\n }\r\n}\r\n\r\n.animated.flip {\r\n -webkit-backface-visibility: visible;\r\n backface-visibility: visible;\r\n -webkit-animation-name: flip;\r\n animation-name: flip;\r\n}\r\n\r\n.cbutton {\r\n position: relative;\r\n}\r\n\r\n.cbutton::after {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n margin: -7px 0 0 -7px;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n content: '';\r\n opacity: 0;\r\n pointer-events: none;\r\n}\r\n\r\n\r\n/* Novak */\r\n\r\n.cbutton--effect-novak::after {\r\n background: rgba(111, 148, 182, 0.25);\r\n}\r\n\r\n.cbutton--effect-novak.cbutton--click::after {\r\n -webkit-animation: anim-effect-novak 0.5s forwards;\r\n animation: anim-effect-novak 0.5s forwards;\r\n}\r\n\r\n@-webkit-keyframes anim-effect-novak {\r\n 0% {\r\n opacity: 1;\r\n -webkit-transform: scale3d(0.1, 0.1, 1);\r\n transform: scale3d(0.1, 0.1, 1);\r\n }\r\n 100% {\r\n opacity: 0;\r\n -webkit-transform: scale3d(8, 8, 1);\r\n transform: scale3d(30, 30, 1);\r\n }\r\n}\r\n\r\n@keyframes anim-effect-novak {\r\n 0% {\r\n opacity: 1;\r\n -webkit-transform: scale3d(0.1, 0.1, 1);\r\n transform: scale3d(0.1, 0.1, 1);\r\n }\r\n 100% {\r\n opacity: 0;\r\n -webkit-transform: scale3d(8, 8, 1);\r\n transform: scale3d(30, 30, 1);\r\n }\r\n}\r\n\r\n.emoji {\r\n width: 1.5em;\r\n height: 1.5em;\r\n display: inline-block;\r\n margin-bottom: -.25em;\r\n background-size: contain;\r\n}\r\n",".ui.dimmer {\r\n background-color: rgba(0, 0, 0, 0.5)!important;\r\n &.page.modals {\r\n z-index: 10000;\r\n }\r\n}\r\n\r\n.ui.modal {\r\n > .actions {\r\n > .ui.left.floated.button {\r\n margin-left: 3.5px;\r\n }\r\n }\r\n}\r\n\r\n.ui.list .list .item {\r\n display: list-item!important;\r\n table-layout: fixed;\r\n height: auto!important;\r\n visibility: visible!important;\r\n}\r\n\r\n.ui.list .list .item:after {\r\n content: '';\r\n display: block;\r\n height: 0;\r\n clear: both;\r\n visibility: hidden;\r\n}\r\n\r\n#swipebox-bottom-bar,\r\n#swipebox-top-bar {\r\n background: rgba(0, 0, 0, 0.3)!important;\r\n}\r\n","",".tms-chat-direct {\r\n height: 100%;\r\n .ui.comments {\r\n min-height: e(\"calc(100% - 170px)\");\r\n > .comment {\r\n > .content {\r\n display: block!important;\r\n }\r\n }\r\n }\r\n .tms-edit-textarea {\r\n width: 100%;\r\n }\r\n .ui.selection.list>.item {\r\n cursor: default;\r\n }\r\n .ui.search .prompt {\r\n border-radius: .28571429rem;\r\n }\r\n .tms-content {\r\n position: relative;\r\n margin-left: 220px;\r\n top: 60px;\r\n height: e(\"calc(100% - 60px)\");\r\n // display: -webkit-box;\r\n // display: -ms-flexbox;\r\n // display: flex;\r\n // -webkit-box-align: stretch;\r\n // -ms-flex-align: stretch;\r\n // align-items: stretch;\r\n &.tms-sidebar-show {\r\n .tms-right-sidebar {\r\n width: 388px;\r\n border-left: 1px #e9e9e9 solid;\r\n -webkit-transition: width .15s ease-out 0s;\r\n transition: width .15s ease-out 0s;\r\n margin: 4px;\r\n margin-right: 0;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n .tms-content-body {\r\n .tms-comments-container {\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n }\r\n width: 100%;\r\n height: 100%;\r\n max-width: 100%;\r\n // -webkit-box-flex: 1;\r\n // -ms-flex: 1 1 0px;\r\n // flex: 1 1 0;\r\n // display: -webkit-box;\r\n // display: -ms-flexbox;\r\n // display: flex;\r\n // -webkit-box-align: stretch;\r\n // -ms-flex-align: stretch;\r\n // align-items: stretch;\r\n padding-bottom: 73px;\r\n .ui.comments {\r\n overflow: hidden;\r\n // -webkit-box-flex: 1;\r\n // -ms-flex: 1 1 0px;\r\n // flex: 1 1 0;\r\n max-width: none;\r\n margin-bottom: 12px;\r\n margin-top: 10px;\r\n > .ui.basic.button {\r\n display: block;\r\n margin-right: 0;\r\n }\r\n .tms-pre-more {\r\n margin-bottom: 10px;\r\n }\r\n .tms-next-more {\r\n margin-top: 10px;\r\n position: relative;\r\n .ui.icon.button {\r\n position: absolute;\r\n top: 2px;\r\n right: -1px;\r\n }\r\n }\r\n }\r\n .tms-go {\r\n position: fixed;\r\n left: 240px;\r\n .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: #CACBCD;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n left: 20px;\r\n }\r\n }\r\n .tms-go-head {\r\n top: 80px;\r\n }\r\n .tms-go-foot {\r\n bottom: 90px;\r\n }\r\n }\r\n }\r\n .tms-right-sidebar {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 0;\r\n // height: 100%;\r\n bottom: 0;\r\n overflow: hidden;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n .comments {\r\n .ui.button.tms-search-more {\r\n display: block;\r\n margin: 0;\r\n }\r\n .comment {\r\n .markdown-body {\r\n max-height: 65px;\r\n overflow-y: hidden;\r\n &.tms-open {\r\n max-height: none;\r\n overflow-y: auto;\r\n padding-bottom: 20px;\r\n }\r\n }\r\n .tms-btn-open-search-item {\r\n display: none;\r\n height: 25px;\r\n // background-color: rgba(0, 0, 0, 0.1);\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n text-align: center;\r\n padding-top: 2px;\r\n background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\r\n background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\r\n background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\r\n background-image: linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%);\r\n }\r\n &:hover {\r\n .tms-btn-open-search-item {\r\n display: block;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n .tms-left-sidebar {\r\n display: none;\r\n }\r\n .tms-right-sidebar {\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n top: 59px;\r\n background-color: white;\r\n margin-left: 0!important;\r\n .panel-chat-msg {\r\n .ui.basic.segment.minimal.selection.list.segment.comments {\r\n padding-left: 0;\r\n padding-right: 0;\r\n }\r\n }\r\n }\r\n .tms-sidebar-show {\r\n .tms-right-sidebar {\r\n width: 100%!important;\r\n }\r\n }\r\n }\r\n .tms-edit-actions {\r\n .left.button {\r\n border-top-left-radius: 0;\r\n }\r\n .right.button {\r\n border-top-right-radius: 0;\r\n }\r\n }\r\n}\r\n\r\n.tms-chat-progress {\r\n position: absolute;\r\n display: inline-block;\r\n top: 60px;\r\n left: 0;\r\n width: 0;\r\n height: 2px;\r\n margin-left: 220px;\r\n background-color: #c6c6c6;\r\n box-shadow: 0px 0px 8px 0px #c6c6c6;\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n}\r\n",".markdown-body {\r\n font-size: 14px;\r\n line-height: 1.6;\r\n}\r\n\r\n.markdown-body > br,\r\n.markdown-body ul br .markdown-body ol br {\r\n display: none;\r\n}\r\n\r\n.markdown-body > *:first-child {\r\n margin-top: 0 !important;\r\n}\r\n\r\n.markdown-body > *:last-child {\r\n margin-bottom: 0 !important;\r\n}\r\n\r\n.markdown-body a {\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body a.absent {\r\n color: #CC0000;\r\n}\r\n\r\n.markdown-body a.anchor {\r\n bottom: 0;\r\n cursor: pointer;\r\n display: block;\r\n left: 0;\r\n margin-left: -30px;\r\n padding-left: 30px;\r\n position: absolute;\r\n top: 0;\r\n}\r\n\r\n.markdown-body h1,\r\n.markdown-body h2,\r\n.markdown-body h3,\r\n.markdown-body h4,\r\n.markdown-body h5,\r\n.markdown-body h6 {\r\n cursor: text;\r\n font-weight: bold;\r\n margin: 20px 0 10px;\r\n padding: 0;\r\n position: relative;\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body h1 .mini-icon-link,\r\n.markdown-body h2 .mini-icon-link,\r\n.markdown-body h3 .mini-icon-link,\r\n.markdown-body h4 .mini-icon-link,\r\n.markdown-body h5 .mini-icon-link,\r\n.markdown-body h6 .mini-icon-link {\r\n color: #000000;\r\n display: none;\r\n}\r\n\r\n.markdown-body h1:hover a.anchor,\r\n.markdown-body h2:hover a.anchor,\r\n.markdown-body h3:hover a.anchor,\r\n.markdown-body h4:hover a.anchor,\r\n.markdown-body h5:hover a.anchor,\r\n.markdown-body h6:hover a.anchor {\r\n line-height: 1;\r\n margin-left: -22px;\r\n padding-left: 0;\r\n text-decoration: none;\r\n top: 15%;\r\n}\r\n\r\n.markdown-body h1:hover a.anchor .mini-icon-link,\r\n.markdown-body h2:hover a.anchor .mini-icon-link,\r\n.markdown-body h3:hover a.anchor .mini-icon-link,\r\n.markdown-body h4:hover a.anchor .mini-icon-link,\r\n.markdown-body h5:hover a.anchor .mini-icon-link,\r\n.markdown-body h6:hover a.anchor .mini-icon-link {\r\n display: inline-block;\r\n}\r\n\r\n.markdown-body h1 tt,\r\n.markdown-body h1 code,\r\n.markdown-body h2 tt,\r\n.markdown-body h2 code,\r\n.markdown-body h3 tt,\r\n.markdown-body h3 code,\r\n.markdown-body h4 tt,\r\n.markdown-body h4 code,\r\n.markdown-body h5 tt,\r\n.markdown-body h5 code,\r\n.markdown-body h6 tt,\r\n.markdown-body h6 code {\r\n font-size: inherit;\r\n}\r\n\r\n.markdown-body h1 {\r\n color: #000000;\r\n font-size: 28px;\r\n}\r\n\r\n.markdown-body h2 {\r\n border-bottom: 1px solid #CCCCCC;\r\n color: #000000;\r\n font-size: 24px;\r\n}\r\n\r\n.markdown-body h3 {\r\n font-size: 18px;\r\n}\r\n\r\n.markdown-body h4 {\r\n font-size: 16px;\r\n}\r\n\r\n.markdown-body h5 {\r\n font-size: 14px;\r\n}\r\n\r\n.markdown-body h6 {\r\n color: #777777;\r\n font-size: 14px;\r\n}\r\n\r\n.markdown-body p,\r\n.markdown-body blockquote,\r\n.markdown-body ul,\r\n.markdown-body ol,\r\n.markdown-body dl,\r\n.markdown-body table,\r\n.markdown-body pre {\r\n margin: 15px 0;\r\n}\r\n\r\n.markdown-body hr {\r\n overflow: hidden;\r\n background: 0 0\r\n}\r\n\r\n.markdown-body hr:before {\r\n display: table;\r\n content: \"\"\r\n}\r\n\r\n.markdown-body hr:after {\r\n display: table;\r\n clear: both;\r\n content: \"\"\r\n}\r\n\r\n.markdown-body hr {\r\n height: 4px;\r\n padding: 0;\r\n margin: 16px 0;\r\n background-color: #e7e7e7;\r\n border: 0\r\n}\r\n\r\n.markdown-body hr {\r\n -moz-box-sizing: content-box;\r\n box-sizing: content-box\r\n}\r\n\r\n.markdown-body > h2:first-child,\r\n.markdown-body > h1:first-child,\r\n.markdown-body > h1:first-child + h2,\r\n.markdown-body > h3:first-child,\r\n.markdown-body > h4:first-child,\r\n.markdown-body > h5:first-child,\r\n.markdown-body > h6:first-child {\r\n margin-top: 0;\r\n padding-top: 0;\r\n}\r\n\r\n.markdown-body a:first-child h1,\r\n.markdown-body a:first-child h2,\r\n.markdown-body a:first-child h3,\r\n.markdown-body a:first-child h4,\r\n.markdown-body a:first-child h5,\r\n.markdown-body a:first-child h6 {\r\n margin-top: 0;\r\n padding-top: 0;\r\n}\r\n\r\n.markdown-body h1 + p,\r\n.markdown-body h2 + p,\r\n.markdown-body h3 + p,\r\n.markdown-body h4 + p,\r\n.markdown-body h5 + p,\r\n.markdown-body h6 + p {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body li p.first {\r\n display: inline-block;\r\n}\r\n\r\n.markdown-body ul,\r\n.markdown-body ol {\r\n padding-left: 30px;\r\n}\r\n\r\n.markdown-body ul.no-list,\r\n.markdown-body ol.no-list {\r\n list-style-type: none;\r\n padding: 0;\r\n}\r\n\r\n.markdown-body ul li > *:first-child,\r\n.markdown-body ol li > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body ul ul,\r\n.markdown-body ul ol,\r\n.markdown-body ol ol,\r\n.markdown-body ol ul {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body dl {\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt {\r\n font-size: 14px;\r\n font-style: italic;\r\n font-weight: bold;\r\n margin: 15px 0 5px;\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt:first-child {\r\n padding: 0;\r\n}\r\n\r\n.markdown-body dl dt > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body dl dt > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body dl dd {\r\n margin: 0 0 15px;\r\n padding: 0 15px;\r\n}\r\n\r\n.markdown-body dl dd > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body dl dd > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body blockquote {\r\n border-left: 4px solid #DDDDDD;\r\n color: #777777;\r\n padding: 0 15px;\r\n}\r\n\r\n.markdown-body blockquote > *:first-child {\r\n margin-top: 0;\r\n}\r\n\r\n.markdown-body blockquote > *:last-child {\r\n margin-bottom: 0;\r\n}\r\n\r\n.markdown-body table th {\r\n font-weight: bold;\r\n}\r\n\r\n.markdown-body table th,\r\n.markdown-body table td {\r\n border: 1px solid #CCCCCC;\r\n padding: 6px 13px;\r\n}\r\n\r\n.markdown-body table tr {\r\n background-color: #FFFFFF;\r\n border-top: 1px solid #CCCCCC;\r\n}\r\n\r\n.markdown-body table tr:nth-child(2n) {\r\n background-color: #F8F8F8;\r\n}\r\n\r\n.markdown-body img {\r\n max-width: 100%;\r\n}\r\n\r\n.markdown-body span.frame {\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.frame > span {\r\n border: 1px solid #DDDDDD;\r\n display: block;\r\n float: left;\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n padding: 7px;\r\n width: auto;\r\n}\r\n\r\n.markdown-body span.frame span img {\r\n display: block;\r\n float: left;\r\n}\r\n\r\n.markdown-body span.frame span span {\r\n clear: both;\r\n color: #333333;\r\n display: block;\r\n padding: 5px 0 0;\r\n}\r\n\r\n.markdown-body span.align-center {\r\n clear: both;\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.align-center > span {\r\n display: block;\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: center;\r\n}\r\n\r\n.markdown-body span.align-center span img {\r\n margin: 0 auto;\r\n text-align: center;\r\n}\r\n\r\n.markdown-body span.align-right {\r\n clear: both;\r\n display: block;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.align-right > span {\r\n display: block;\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body span.align-right span img {\r\n margin: 0;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body span.float-left {\r\n display: block;\r\n float: left;\r\n margin-right: 13px;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.float-left span {\r\n margin: 13px 0 0;\r\n}\r\n\r\n.markdown-body span.float-right {\r\n display: block;\r\n float: right;\r\n margin-left: 13px;\r\n overflow: hidden;\r\n}\r\n\r\n.markdown-body span.float-right > span {\r\n display: block;\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: right;\r\n}\r\n\r\n.markdown-body code,\r\n.markdown-body tt {\r\n background-color: #F8F8F8;\r\n border: 1px solid #EAEAEA;\r\n border-radius: 3px 3px 3px 3px;\r\n margin: 0 2px;\r\n padding: 0 5px;\r\n /* white-space: nowrap; */\r\n white-space: normal;\r\n word-break: break-all;\r\n}\r\n\r\n.markdown-body pre > code {\r\n background: none repeat scroll 0 0 transparent;\r\n border: medium none;\r\n margin: 0;\r\n padding: 0;\r\n white-space: pre;\r\n}\r\n\r\n.markdown-body .highlight pre,\r\n.markdown-body pre {\r\n background-color: #F8F8F8;\r\n border: 1px solid #CCCCCC;\r\n border-radius: 3px 3px 3px 3px;\r\n font-size: 13px;\r\n line-height: 19px;\r\n overflow: auto;\r\n padding: 6px 10px;\r\n}\r\n\r\n.markdown-body pre code,\r\n.markdown-body pre tt {\r\n background-color: transparent;\r\n border: medium none;\r\n}\r\n","/*************** SCROLLBAR BASE CSS ***************/\r\n\r\n.scroll-wrapper {\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.scroll-wrapper > .scroll-content {\r\n border: none !important;\r\n box-sizing: content-box !important;\r\n height: auto;\r\n left: 0;\r\n margin: 0;\r\n max-height: none;\r\n max-width: none !important;\r\n overflow: scroll !important;\r\n padding: 0;\r\n position: relative !important;\r\n top: 0;\r\n width: auto !important;\r\n}\r\n\r\n.scroll-wrapper > .scroll-content::-webkit-scrollbar {\r\n height: 0;\r\n width: 0;\r\n}\r\n\r\n.scroll-element {\r\n display: none;\r\n}\r\n\r\n.scroll-element,\r\n.scroll-element div {\r\n box-sizing: content-box;\r\n}\r\n\r\n.scroll-element.scroll-x.scroll-scrollx_visible,\r\n.scroll-element.scroll-y.scroll-scrolly_visible {\r\n display: block;\r\n}\r\n\r\n.scroll-element .scroll-bar,\r\n.scroll-element .scroll-arrow {\r\n cursor: default;\r\n}\r\n\r\n.scroll-textarea {\r\n border: 1px solid #cccccc;\r\n border-top-color: #999999;\r\n}\r\n\r\n.scroll-textarea > .scroll-content {\r\n overflow: hidden !important;\r\n}\r\n\r\n.scroll-textarea > .scroll-content > textarea {\r\n border: none !important;\r\n box-sizing: border-box;\r\n height: 100% !important;\r\n margin: 0;\r\n max-height: none !important;\r\n max-width: none !important;\r\n overflow: scroll !important;\r\n outline: none;\r\n padding: 2px;\r\n position: relative !important;\r\n top: 0;\r\n width: 100% !important;\r\n}\r\n\r\n.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {\r\n height: 0;\r\n width: 0;\r\n}\r\n\r\n\r\n/*************** SIMPLE OUTER SCROLLBAR ***************/\r\n\r\n.scrollbar-outer > .scroll-element,\r\n.scrollbar-outer > .scroll-element div {\r\n border: none;\r\n margin: 0;\r\n padding: 0;\r\n position: absolute;\r\n z-index: 10;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element {\r\n background-color: #ffffff;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element div {\r\n display: block;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x {\r\n bottom: 0;\r\n height: 12px;\r\n left: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y {\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n width: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x .scroll-element_outer {\r\n height: 8px;\r\n top: 2px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y .scroll-element_outer {\r\n left: 2px;\r\n width: 8px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_outer {\r\n overflow: hidden;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_track {\r\n background-color: #eeeeee;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-element_outer,\r\n.scrollbar-outer > .scroll-element .scroll-element_track,\r\n.scrollbar-outer > .scroll-element .scroll-bar {\r\n -webkit-border-radius: 8px;\r\n -moz-border-radius: 8px;\r\n border-radius: 8px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-bar {\r\n background-color: #d9d9d9;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element .scroll-bar:hover {\r\n background-color: #c2c2c2;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-draggable .scroll-bar {\r\n background-color: #919191;\r\n}\r\n\r\n\r\n/* scrollbar height/width & offset from container borders */\r\n\r\n.scrollbar-outer > .scroll-content.scroll-scrolly_visible {\r\n left: -12px;\r\n margin-left: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-content.scroll-scrollx_visible {\r\n top: -12px;\r\n margin-top: 12px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x .scroll-bar {\r\n min-width: 10px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y .scroll-bar {\r\n min-height: 10px;\r\n}\r\n\r\n\r\n/* update scrollbar offset if both scrolls are visible */\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {\r\n left: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {\r\n top: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\r\n left: -14px;\r\n}\r\n\r\n.scrollbar-outer > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\r\n top: -14px;\r\n}\r\n\r\n\r\n/*************** SCROLLBAR MAC OS X ***************/\r\n\r\n.scrollbar-macosx > .scroll-element,\r\n.scrollbar-macosx > .scroll-element div {\r\n background: none;\r\n border: none;\r\n margin: 0;\r\n padding: 0;\r\n position: absolute;\r\n z-index: 10;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element div {\r\n display: block;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element .scroll-element_track {\r\n display: none;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element .scroll-bar {\r\n background-color: #6C6E71;\r\n display: block;\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";\r\n filter: alpha(opacity=0);\r\n opacity: 0;\r\n -webkit-border-radius: 7px;\r\n -moz-border-radius: 7px;\r\n border-radius: 7px;\r\n -webkit-transition: opacity 0.2s linear;\r\n -moz-transition: opacity 0.2s linear;\r\n -o-transition: opacity 0.2s linear;\r\n -ms-transition: opacity 0.2s linear;\r\n transition: opacity 0.2s linear;\r\n}\r\n\r\n.scrollbar-macosx:hover > .scroll-element .scroll-bar,\r\n.scrollbar-macosx > .scroll-element.scroll-draggable .scroll-bar {\r\n -ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)\";\r\n filter: alpha(opacity=70);\r\n opacity: 0.7;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x {\r\n bottom: 0px;\r\n height: 0px;\r\n left: 0;\r\n min-width: 100%;\r\n overflow: visible;\r\n width: 100%;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y {\r\n height: 100%;\r\n min-height: 100%;\r\n right: 0px;\r\n top: 0;\r\n width: 0px;\r\n}\r\n\r\n\r\n/* scrollbar height/width & offset from container borders */\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-bar {\r\n height: 7px;\r\n min-width: 10px;\r\n top: -9px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-bar {\r\n left: -9px;\r\n min-height: 10px;\r\n width: 7px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_outer {\r\n left: 2px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x .scroll-element_size {\r\n left: -4px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_outer {\r\n top: 2px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y .scroll-element_size {\r\n top: -4px;\r\n}\r\n\r\n\r\n/* update scrollbar offset if both scrolls are visible */\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {\r\n left: -11px;\r\n}\r\n\r\n.scrollbar-macosx > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {\r\n top: -11px;\r\n}\r\n",".tms-user-login {\r\n width: 100%;\r\n min-height: 100%;\r\n background-color: #5a3636;\r\n overflow: hidden;\r\n .container {\r\n width: 300px;\r\n top: 50px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n position: relative;\r\n }\r\n h2 {\r\n color: rgba(197, 164, 164, 0.8)!important;\r\n }\r\n .ui.form {\r\n background-color: #353131;\r\n }\r\n .ui.error.message {\r\n background-color: #5a3636;\r\n }\r\n .ui.error.message .header {\r\n color: #e0b4b4;\r\n }\r\n .ui.checkbox label {\r\n color: #ad8b8b;\r\n }\r\n .ui.checkbox input:focus~label {\r\n color: #ad8b8b;\r\n }\r\n .ui.checkbox label:hover {\r\n color: #ad8b8b;\r\n }\r\n .ui.button {\r\n background-color: #5a3636;\r\n color: #ad8b75;\r\n }\r\n}\r\n",".tms-user-pwd-reset {\r\n height: 100%;\r\n .tms-flex {\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n}\r\n",".tms-user-register {\r\n height: 100%;\r\n .tms-flex {\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n}",".em-blog-comment-popup {}",".em-blog-comment-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n textarea {\r\n /* width: 195px!important; */\r\n }\r\n .ui.search>.results .result {\r\n cursor: pointer!important;\r\n display: block!important;\r\n color: rgba(0, 0, 0, .87)!important;\r\n border-bottom: 1px solid rgba(34, 36, 38, .1)!important;\r\n margin: 0!important;\r\n }\r\n .ui.list {\r\n > .item {\r\n color: rgba(0, 0, 0, .87);\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin: 6px 0 0 8px!important;\r\n }\r\n }\r\n}\r\n",".em-blog-comment {\r\n margin-top: 32px;\r\n margin-bottom: 32px;\r\n .ui.comments {\r\n > .ui.dividing.header {\r\n margin-bottom: 0;\r\n }\r\n max-width: 100%;\r\n .comment {\r\n margin-top: 0;\r\n &:hover {\r\n background: rgba(0, 0, 0, .03);\r\n color: rgba(0, 0, 0, .8);\r\n .content {\r\n .tools {\r\n display: block;\r\n }\r\n }\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n > .ui.divider {\r\n margin-bottom: 0;\r\n }\r\n .content {\r\n .markdown-body {\r\n img {\r\n @media only screen and (min-width: 768px) {\r\n max-width: 360px;\r\n max-height: 360px;\r\n }\r\n }\r\n }\r\n .actions {}\r\n .tms-blog-comment-edit-textarea {\r\n width: 100%;\r\n }\r\n .textcomplete-container {\r\n position: relative;\r\n .append-to {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n }\r\n }\r\n > .tools {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n display: none;\r\n > .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: rgba(224, 225, 226, 1);\r\n }\r\n }\r\n }\r\n }\r\n &.active {\r\n background-color: #f5f5f5;\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n z-index: -1;\r\n top: -2px;\r\n left: -4px;\r\n bottom: 1px;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n &:nth-child(2) {\r\n &:before {\r\n top: -1px;\r\n }\r\n }\r\n }\r\n }\r\n .CodeMirror {\r\n min-height: 60px;\r\n }\r\n .CodeMirror-scroll {\r\n min-height: 60px;\r\n }\r\n .dropzone {\r\n position: relative;\r\n .tms-blog-comment-status-bar-wrapper {\r\n position: relative;\r\n width: 100%;\r\n height: 0;\r\n .tms-blog-comment-status-bar {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n }\r\n .dropzone-previews {\r\n position: absolute;\r\n left: 0;\r\n bottom: -7px;\r\n width: 100%;\r\n .dz-preview {\r\n width: 100%;\r\n margin: 0;\r\n .dz-progress {\r\n height: 2px;\r\n background-color: #aaa;\r\n border: none;\r\n }\r\n .dz-remove {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-content {\r\n transition: width 0.15s ease-out 0s;\r\n .right-sidebar-show & {\r\n width: e(\"calc(100% - 600px)\")!important;\r\n @media only screen and (max-width: 767px) {\r\n width: 100%!important;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n left: 0;\r\n width: 100%!important;\r\n }\r\n // z-index: 103;\r\n position: fixed;\r\n top: 55px;\r\n left: 300px;\r\n width: e(\"calc(100% - 300px)\")!important;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n padding: 16px;\r\n overflow: auto;\r\n > .header {\r\n .ui.header {\r\n .sub.header {\r\n color: #707070;\r\n font-size: 12px;\r\n margin-top: 8px;\r\n a.author {\r\n cursor: pointer;\r\n }\r\n .readCnt {\r\n cursor: pointer;\r\n margin-left: 16px;\r\n a {\r\n cursor: pointer;\r\n }\r\n }\r\n .commentCnt {\r\n cursor: pointer;\r\n margin-left: 16px;\r\n a {\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n }\r\n margin-bottom: 24px;\r\n }\r\n .topbar {\r\n position: relative;\r\n height: 30px;\r\n margin-bottom: 8px;\r\n > .ui.breadcrumb {\r\n line-height: 30px;\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .actions {\r\n float: right;\r\n > .ui.basic.button {\r\n padding: 8px;\r\n box-shadow: none;\r\n &:hover {\r\n box-shadow: 0 0 0 1px rgba(34, 36, 38, .35) inset, 0 0 0 0 rgba(34, 36, 38, .15) inset;\r\n }\r\n > i.icon {\r\n margin-right: 2px;\r\n &.hide {\r\n position: relative;\r\n top: -1px;\r\n }\r\n &.unhide {\r\n position: relative;\r\n top: -1px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n > .ui.message {\r\n .content {\r\n > span {\r\n display: inline-block;\r\n margin-top: 10px;\r\n }\r\n .ui.button {\r\n position: relative;\r\n top: -5px;\r\n left: 10px;\r\n }\r\n }\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n > span {\r\n font-size: 12px;\r\n }\r\n .rate {\r\n margin-right: 16px;\r\n cursor: pointer;\r\n color: #4183c4;\r\n }\r\n > .tags {\r\n float: right;\r\n .ui.selection.dropdown {\r\n border: none;\r\n &:hover {\r\n box-shadow: 0 0px 1px 0px #2185d0;\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n display: block;\r\n }\r\n }\r\n > .ui.feed {\r\n margin-bottom: 25px!important;\r\n > .event {\r\n position: relative;\r\n &.opened {\r\n > .content .extra.text {\r\n &:hover {\r\n max-height: none;\r\n overflow-y: auto;\r\n padding-bottom: 25px;\r\n }\r\n }\r\n }\r\n >.label+.content {\r\n max-width: e(\"calc(100% - 50px)\");\r\n }\r\n > .content .extra.text {\r\n position: relative;\r\n max-width: none;\r\n min-height: 25px;\r\n max-height: 60px;\r\n overflow-y: hidden;\r\n &:hover {\r\n > .btn-open {\r\n display: block;\r\n }\r\n }\r\n > .btn-open {\r\n display: none;\r\n height: 25px;\r\n background-color: rgba(0, 0, 0, 0.1);\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n left: 0;\r\n text-align: center;\r\n padding-top: 2px;\r\n }\r\n pre {\r\n white-space: pre-wrap;\r\n white-space: -moz-pre-wrap;\r\n white-space: -pre-wrap;\r\n white-space: -o-pre-wrap;\r\n word-wrap: break-word;\r\n word-break: break-all;\r\n }\r\n }\r\n &.active {\r\n background: rgba(0, 0, 0, .03);\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:hover {\r\n background: rgba(0, 0, 0, .03);\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: -4px;\r\n bottom: 0;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-blog-progress {\r\n position: absolute;\r\n display: inline-block;\r\n top: 55px;\r\n left: 0;\r\n width: 0;\r\n height: 2px;\r\n margin-left: 300px;\r\n background-color: #2185d0;\r\n box-shadow: 0px 0px 8px 0px #205081;\r\n @media only screen and (max-width: 767px) {\r\n margin-left: 0;\r\n }\r\n}\r\n\r\n.em-blog-content-wrapper {\r\n position: fixed;\r\n top: 55px;\r\n width: e(\"calc(100vw)\")!important;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n}\r\n\r\n@media only screen and (max-width: 767px) {\r\n .tms-blog {\r\n &.left-sidebar-show {\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: block;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n &.right-sidebar-show {\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: block;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n .em-blog-content-wrapper {\r\n > .ui.dimmer {\r\n display: none;\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-history-diff {\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-blog-history-view {\r\n > .topbar {\r\n margin-bottom: 16px;\r\n }\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-blog-history {\r\n > .topbar {\r\n margin-bottom: 16px;\r\n }\r\n > .content {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n }\r\n .ui.table {\r\n td a {\r\n cursor: pointer;\r\n }\r\n }\r\n}\r\n",".em-blog-left-sidebar {\r\n &.ui.left.sidebar {\r\n transition: left 0.15s ease-out 0s;\r\n @media only screen and (max-width: 767px) {\r\n z-index: 104;\r\n &.mobile-hide {\r\n // width: 0;\r\n left: -300px;\r\n }\r\n }\r\n width: 300px;\r\n top: 55px;\r\n left: 0;\r\n height: e(\"calc(100% - 55px)\")!important;\r\n background-color: #f5f5f5;\r\n box-shadow: none!important;\r\n overflow-x: hidden;\r\n .tms-body {\r\n .ui.space.list {\r\n padding: 16px;\r\n padding-left: 15px;\r\n margin-bottom: 0px;\r\n padding-bottom: 8px;\r\n > .item {\r\n position: relative;\r\n &:hover {\r\n box-shadow: 0px 0px 2px -1px #5791cb;\r\n > .actions {\r\n display: inline-block;\r\n }\r\n }\r\n > .icon {\r\n padding-right: 0;\r\n position: relative;\r\n top: -1px;\r\n }\r\n > .content {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 245px;\r\n }\r\n > .actions {\r\n display: none;\r\n position: absolute;\r\n right: 0;\r\n top: -2px;\r\n }\r\n }\r\n .ui.bulleted.list {\r\n padding-left: 16px;\r\n > div.item {\r\n max-width: 220px;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n > a {\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n min-width: 220px;\r\n }\r\n &:before {\r\n color: #999;\r\n }\r\n &.active {\r\n font-weight: bold;\r\n > a {\r\n color: black;\r\n }\r\n }\r\n &:hover {\r\n // box-shadow: 0px 0px 2px -1px #5791cb;\r\n background-color: rgba(232, 224, 224, 0.5);\r\n }\r\n &.aurelia-hide {\r\n display: none!important;\r\n }\r\n }\r\n }\r\n }\r\n .ui.bulleted.list.no-space {\r\n padding: 20px;\r\n margin-top: 0px;\r\n padding-top: 0px;\r\n > div.item {\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n > a {\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n min-width: 242px;\r\n }\r\n &:before {\r\n color: #999;\r\n }\r\n &.active {\r\n font-weight: bold;\r\n > a {\r\n color: black;\r\n }\r\n }\r\n &:hover {\r\n // box-shadow: 0px 0px 2px -1px #5791cb;\r\n background-color: rgba(232, 224, 224, 0.5);\r\n }\r\n }\r\n }\r\n height: e(\"calc(100% - 40px)\")!important;\r\n }\r\n .tms-footer {\r\n position: absolute;\r\n width: 100%;\r\n height: 40px;\r\n left: 0;\r\n bottom: 0;\r\n background-color: #efe4e4;\r\n .ui.menu {\r\n border: none;\r\n border-radius: 0;\r\n background-color: #e8e0e0;\r\n > .item {\r\n &.tms-search {\r\n position: relative;\r\n height: 40px;\r\n max-width: 207px;\r\n &:before {\r\n width: 0;\r\n }\r\n > .remove.icon {\r\n position: absolute;\r\n right: 5px;\r\n top: 13px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-right-sidebar {\r\n width: 300px;\r\n background-color: #f5f5f5;\r\n position: fixed;\r\n top: 55px;\r\n right: -300px;\r\n height: e(\"calc(100% - 55px)\");\r\n transition: right 0.15s ease-out 0s;\r\n .right-sidebar-show & {\r\n right: 0;\r\n }\r\n .panel-blog-dir {\r\n padding: 16px;\r\n .wiki-dir-item {\r\n &.active {\r\n background-color: #e8e0e0;\r\n }\r\n }\r\n }\r\n}\r\n",".em-blog-save {}",".em-blog-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin-top: 6px;\r\n margin-left: 8px;\r\n }\r\n }\r\n}\r\n",".em-blog-space-auth {\r\n > .ui.form {\r\n margin-bottom: 16px;\r\n }\r\n .tms-header {\r\n margin-bottom: 8px;\r\n }\r\n .ui.search .prompt {\r\n border-radius: .28571429rem;\r\n }\r\n}\r\n",".em-blog-space-create {\r\n &.ui.popup {\r\n .ui.form {\r\n width: 260px;\r\n }\r\n }\r\n}\r\n",".em-blog-space-edit {}",".em-blog-space-update {}",".em-blog-top-menu {\r\n &.ui.inverted.blue.menu {\r\n background-color: #205081;\r\n height: 55px;\r\n z-index: 103;\r\n .item {\r\n &.tms-toggle {\r\n display: none;\r\n i.icon {\r\n margin-right: 0;\r\n }\r\n }\r\n &.tms-links {\r\n i.icon {\r\n margin-right: 0;\r\n }\r\n }\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.icon.input {\r\n input {\r\n background-color: #103a65;\r\n color: white;\r\n &:focus {\r\n border-color: rgba(34, 36, 38, .15);\r\n box-shadow: none;\r\n }\r\n }\r\n i.icon.search:before {\r\n color: #a3aab0;\r\n }\r\n }\r\n .ui.search>.results {\r\n max-height: 350px;\r\n overflow-y: auto;\r\n left: -150px;\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n .item {\r\n &.tms-links {\r\n display: none;\r\n }\r\n &.tms-logo {\r\n display: none;\r\n }\r\n &.header {\r\n display: none;\r\n }\r\n &.tms-toggle {\r\n display: flex;\r\n }\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.search {\r\n .ui.input {\r\n width: 100px;\r\n }\r\n }\r\n }\r\n }\r\n &.search-focus {\r\n .tms-logo {\r\n display: none;\r\n }\r\n .tms-create {\r\n display: none;\r\n }\r\n .right.menu {\r\n .item {\r\n .ui.search {\r\n .ui.input {\r\n width: initial;\r\n transition: width 0.15s ease-out 0s;\r\n }\r\n }\r\n }\r\n .tms-login-user {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","@top: 15px;\r\n.modaal-wrapper .modaal-close {\r\n @media only screen and (max-width: 827px) {\r\n top: initial!important;\r\n bottom: 10px;\r\n z-index: 2;\r\n }\r\n}\r\n\r\n.em-blog-write {\r\n margin-top: -30px;\r\n margin-bottom: 20px;\r\n > .wrapper {\r\n max-width: 768px;\r\n margin: auto;\r\n > .title {\r\n position: fixed;\r\n z-index: 2;\r\n margin-bottom: 8px;\r\n width: e(\"calc(100% - 60px)\");\r\n @media only screen and (min-width: 828px) {\r\n width: 768px;\r\n }\r\n background-color: white;\r\n padding-top: @top + 3px;\r\n box-shadow: 0px 1px 0px 0px #dddddd;\r\n > .ui.input {\r\n padding-right: 80px;\r\n }\r\n > .ui.button {\r\n position: absolute;\r\n right: 0;\r\n top: @top;\r\n }\r\n }\r\n > .content {\r\n padding-top: @top + 45px;\r\n .editor-toolbar {\r\n &.fullscreen {\r\n z-index: 800;\r\n }\r\n }\r\n }\r\n }\r\n .dropzone {\r\n .dropzone-previews {\r\n position: absolute;\r\n top: @top + 33px;\r\n width: 100%;\r\n .dz-preview {\r\n width: 100%;\r\n margin: 0;\r\n .dz-progress {\r\n height: 2px;\r\n background-color: #aaa;\r\n border: none;\r\n }\r\n .dz-remove {\r\n display: none;\r\n }\r\n }\r\n }\r\n position: relative;\r\n }\r\n .tms-blog-write-status-bar-wrapper {\r\n position: fixed;\r\n z-index: 800;\r\n height: 0;\r\n top: 120px;\r\n width: e(\"calc(100% - 60px)\");\r\n @media only screen and (min-width: 828px) {\r\n width: 768px;\r\n }\r\n .tms-blog-write-status-bar {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n }\r\n }\r\n}\r\n",".em-chat-attach {\r\n &.ui.basic.segment {\r\n margin-bottom: 0;\r\n padding-top: 0;\r\n }\r\n .ui.basic.button {\r\n display: block;\r\n margin-right: 0;\r\n }\r\n .ui.list {\r\n .description {\r\n font-size: 12px;\r\n margin-top: 3px;\r\n }\r\n }\r\n &.ui.menu {\r\n \tmargin-top: 0;\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n > .item {\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\r\n display: block!important;\r\n text-align: center;\r\n }\r\n }\r\n &.tms-attach-search-input {\r\n \tpadding: 0 10px;\r\n }\r\n}\r\n",".tms-em-chat-channel-create {\r\n .tms-join {\r\n max-height: 315px;\r\n overflow-y: auto;\r\n }\r\n .ui.form {\r\n > .field {\r\n > label {\r\n width: 35px!important;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-channel-link-mgr {\r\n .ui.form {\r\n .one.wide.field {\r\n @media only screen and (min-width: 768px) {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-channel-members-mgr {\r\n .ui.dropdown {\r\n span.owner + i.delete.icon {\r\n display: none;\r\n }\r\n span.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n .member-table {\r\n max-height: 315px;\r\n overflow-y: auto;\r\n }\r\n}\r\n",".em-chat-channel-members-show {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n}\r\n",".em-chat-content-item-footbar {\r\n margin-top: 8px;\r\n padding-top: 8px;\r\n padding-left: 50px;\r\n .add-btn {\r\n display: none;\r\n color: rgb(88, 96, 105);\r\n &.none {\r\n position: absolute;\r\n bottom: 0;\r\n }\r\n }\r\n .add-emoji-btn {\r\n &.none {\r\n left: 8px;\r\n }\r\n }\r\n .add-tag-btn {\r\n &.none {\r\n left: 45px;\r\n }\r\n }\r\n > .ui.label {\r\n cursor: pointer;\r\n }\r\n .emoji-item {\r\n margin-right: 8px;\r\n img {\r\n cursor: pointer;\r\n }\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n }\r\n .ui.popup.tags {\r\n > .content {\r\n width: 265px;\r\n > .ui.input {\r\n width: 20px;\r\n }\r\n }\r\n &.customTag {\r\n > .content {\r\n > .ui.label {\r\n display: none;\r\n }\r\n > .ui.input {\r\n width: 265px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-chat-content-item {\r\n .textcomplete-container {\r\n position: relative;\r\n .append-to {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n }\r\n }\r\n .ui.comments &.comment {\r\n >.avatar~.content {\r\n margin-left: 3em;\r\n }\r\n .actions {\r\n > a {\r\n margin-right: 5px;\r\n }\r\n .dropdown {\r\n > a .ellipsis.icon {\r\n margin-right: 0;\r\n }\r\n .item.tms-red {\r\n color: red;\r\n }\r\n }\r\n }\r\n &:hover {\r\n .tools {\r\n display: block;\r\n }\r\n &:before {\r\n width: 4px;\r\n }\r\n .em-chat-content-item-footbar {\r\n .add-btn {\r\n display: inline-block;\r\n }\r\n }\r\n }\r\n &.active {\r\n &:before {\r\n width: 4px;\r\n }\r\n }\r\n &:before {\r\n content: \"\";\r\n position: absolute;\r\n z-index: -1;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n background: #2098D1;\r\n width: 0;\r\n -webkit-transition-property: width;\r\n transition-property: width;\r\n -webkit-transition-duration: 0.3s;\r\n transition-duration: 0.3s;\r\n -webkit-transition-timing-function: ease-out;\r\n transition-timing-function: ease-out;\r\n }\r\n }\r\n > .content {\r\n > .metadata > .rating {\r\n @media only screen and (max-width: 767px) {\r\n display: none!important;\r\n }\r\n }\r\n > .markdown-body {\r\n span.at-user {\r\n cursor: pointer;\r\n }\r\n img {\r\n @media only screen and (min-width: 768px) {\r\n max-width: 360px;\r\n max-height: 360px;\r\n }\r\n }\r\n }\r\n > .tools {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n display: none;\r\n > .ui.button {\r\n margin: 0;\r\n background-color: rgba(224, 225, 226, 0.5);\r\n &:hover {\r\n background-color: rgba(224, 225, 226, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-input {\r\n &.ui.segment {\r\n margin: 0;\r\n position: fixed;\r\n bottom: 0;\r\n left: 220px;\r\n right: 0;\r\n background-color: white;\r\n padding-bottom: 22px;\r\n @media only screen and (max-width: 767px) {\r\n left: 0;\r\n }\r\n .tms-chat-status-bar {\r\n .dz-preview {\r\n display: block!important;\r\n width: auto!important;\r\n background: #e0e1e2;\r\n margin: 0;\r\n padding: 7px;\r\n }\r\n }\r\n .ui[class*=\"left action\"].input>textarea {\r\n border-top-left-radius: 0!important;\r\n border-bottom-left-radius: 0!important;\r\n border-left-color: transparent!important;\r\n }\r\n .textareaWrapper {\r\n width: calc(~\"100% - 35px\");\r\n border: 1px solid rgba(34, 36, 38, .15);\r\n border-top-right-radius: .28571429rem;\r\n border-bottom-right-radius: .28571429rem;\r\n .CodeMirror,\r\n .CodeMirror-scroll {\r\n min-height: 0;\r\n border: none;\r\n border-top-right-radius: .28571429rem;\r\n }\r\n .CodeMirror-scroll {\r\n max-height: 300px;\r\n }\r\n }\r\n .ui.input {\r\n margin-right: 5px;\r\n i.send.icon {\r\n z-index: 1;\r\n right: 7px!important;\r\n }\r\n textarea {\r\n resize: none;\r\n width: 100%;\r\n padding-right: 2.67142857em!important;\r\n margin: 0;\r\n max-width: 100%;\r\n outline: 0;\r\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\r\n text-align: left;\r\n display: block;\r\n padding: .67861429em 1em;\r\n background: #FFF;\r\n border: none;\r\n color: rgba(0, 0, 0, .87);\r\n box-shadow: none;\r\n border-top-right-radius: .28571429rem;\r\n border-bottom-right-radius: .28571429rem;\r\n }\r\n }\r\n }\r\n .CodeMirror-lines {\r\n margin-right: 30px;\r\n }\r\n .ui.vertical.menu.popup {\r\n width: 145px;\r\n a.item {\r\n > i.icon {\r\n float: left;\r\n margin: 0 .35714286em 0 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-chat-direct {\r\n .tms-content {\r\n &.tms-sidebar-show {\r\n @media only screen and (min-width: 768px) {\r\n .tms-em-chat-input {\r\n right: 392px;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.textcomplete-dropdown {\r\n position: static!important;\r\n border: 1px solid #ddd;\r\n background-color: white;\r\n list-style: none;\r\n padding: 0;\r\n margin: 0;\r\n border-radius: 5px;\r\n li {\r\n /* border-top: 1px solid #ddd; */\r\n padding: 2px 5px;\r\n }\r\n li:first-child {\r\n border-top: none;\r\n border-top-left-radius: 5px;\r\n border-top-right-radius: 5px;\r\n }\r\n li:last-child {\r\n border-bottom-left-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n }\r\n li:hover,\r\n .active {\r\n background-color: rgb(67, 159, 224);\r\n }\r\n a:hover {\r\n cursor: pointer;\r\n }\r\n li.textcomplete-item {\r\n a {\r\n color: black;\r\n }\r\n &:hover a,\r\n &.active a {\r\n color: white;\r\n }\r\n }\r\n}\r\n\r\n.tms-chat-input-help-meta {\r\n position: absolute;\r\n bottom: 0;\r\n left: 60px;\r\n font-size: 12px;\r\n color: lightgray;\r\n}\r\n",".tms-chat-member-popup {\r\n .ui.cards {\r\n margin-top: 0!important;\r\n .card {\r\n margin-top: 0!important;\r\n .ui.list >.item {\r\n border-radius: 0!important;\r\n }\r\n }\r\n }\r\n}\r\n",".em-chat-msg {\r\n .ui.comments .comment .actions a {\r\n margin-right: 5px;\r\n }\r\n}\r\n",".em-chat-schedule-edit {\r\n // width: 320px!important;\r\n // margin-left: -160px!important;\r\n .ui.form {\r\n width: 300px;\r\n .ui.calendar {\r\n width: 200px;\r\n }\r\n .tms-date-field {\r\n position: relative;\r\n .ui.button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n }\r\n }\r\n .ui.dropdown {\r\n width: 265px!important;\r\n min-height: 30px;\r\n > a.ui.label {\r\n > input.owner + i.delete.icon {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.tms-schedule-edit-target {\r\n display: inline-block;\r\n width: 1px;\r\n height: 1px;\r\n position: absolute;\r\n right: 188px;\r\n top: 30px;\r\n}\r\n",".em-chat-schedule-remind {\r\n .ui.table {\r\n tr > td:first-child {\r\n font-weight: bold;\r\n }\r\n }\r\n}\r\n",".em-chat-schedule {\r\n position: relative;\r\n height: 100%;\r\n .tms-add {\r\n position: absolute;\r\n right: 170px;\r\n top: 0;\r\n }\r\n .ui.form {\r\n width: 300px;\r\n .ui.calendar {\r\n width: 200px;\r\n }\r\n .tms-date-field {\r\n position: relative;\r\n .ui.button {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n }\r\n }\r\n .ui.dropdown {\r\n width: 265px!important;\r\n min-height: auto;\r\n > a.ui.label {\r\n > input.owner + i.delete.icon {\r\n display: none;\r\n }\r\n }\r\n }\r\n }\r\n}",".em-chat-share {\r\n &.ui.popup {\r\n max-width: 100%;\r\n width: 255px;\r\n .ui.input {\r\n width: 225px;\r\n }\r\n textarea {\r\n width: 195px!important;\r\n }\r\n .ui.search>.results .result {\r\n cursor: pointer!important;\r\n display: block!important;\r\n color: rgba(0, 0, 0, .87)!important;\r\n border-bottom: 1px solid rgba(34, 36, 38, .1)!important;\r\n margin: 0!important;\r\n }\r\n .ui.list {\r\n > .item {\r\n color: rgba(0, 0, 0, .87);\r\n }\r\n }\r\n }\r\n &:after {\r\n content: '';\r\n clear: both;\r\n }\r\n .footer {\r\n margin-top: 16px;\r\n .btn-cancel {\r\n float: right;\r\n margin: 6px 0 0 8px!important;\r\n }\r\n }\r\n}\r\n",".tms-left-sidebar {\r\n overflow: hidden;\r\n .tms-body {\r\n position: absolute;\r\n top: 98px;\r\n width: 220px;\r\n height: e(\"calc(100% - 150px)\");\r\n overflow: hidden;\r\n padding-right: 2px;\r\n i.circular.icon {\r\n box-shadow: 0 0 0 .1em rgb(65, 131, 196) inset;\r\n }\r\n .title {\r\n position: relative;\r\n margin-left: 10px;\r\n .ui.header {\r\n display: inline-block;\r\n margin-top: 2px;\r\n margin-bottom: 0;\r\n }\r\n i.plus.icon {\r\n position: absolute;\r\n right: 10px;\r\n font-size: 12px;\r\n width: 12px!important;\r\n height: 12px!important;\r\n }\r\n }\r\n .ui.list {\r\n margin-top: 10px;\r\n padding-top: 5px;\r\n box-shadow: 0px -1px 1px -1px rgba(65, 131, 196, 0.5);\r\n > .item {\r\n padding-left: 16px;\r\n border-radius: 0;\r\n > .icon+.content {\r\n padding: 0;\r\n }\r\n &.active {\r\n background: rgba(0, 0, 0, 0.2);\r\n }\r\n &:hover {\r\n background: rgba(0, 0, 0, 0.1)!important;\r\n }\r\n &.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n }\r\n .tms-name {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 160px;\r\n }\r\n .tms-users {}\r\n .tms-channels {\r\n .ui.list {\r\n a.item {\r\n position: relative;\r\n &:hover {\r\n .actions {\r\n display: inline-block;\r\n }\r\n }\r\n }\r\n }\r\n .actions {\r\n display: none;\r\n position: absolute;\r\n right: 10px;\r\n top: 5px;\r\n }\r\n }\r\n .scroll-element.scroll-y {\r\n background-color: #4d394b;\r\n }\r\n }\r\n &.ui.left.sidebar {\r\n background-color: #4d394b;\r\n width: 220px;\r\n * {\r\n color: #4183c4!important;\r\n }\r\n .tms-header {\r\n > input {\r\n background-color: transparent;\r\n border: 1px rgba(103, 104, 104, 0.5) solid;\r\n font-size: 12px;\r\n padding: 4px;\r\n width: 188px;\r\n outline: none;\r\n margin-top: 10px;\r\n border-radius: 2px;\r\n &::-webkit-input-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &::-moz-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &:-ms-input-placeholder {\r\n color: rgba(103, 104, 104, 0.5)!important;\r\n }\r\n &:focus {\r\n &::-webkit-input-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n &::-moz-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n &:-ms-input-placeholder {\r\n color: rgb(103, 104, 104)!important;\r\n }\r\n }\r\n }\r\n padding: 9px 16px;\r\n box-shadow: 0 1px 1px -1px rgb(65, 131, 196);\r\n h1.ui.header {\r\n margin: 0;\r\n img {\r\n width: 30px;\r\n height: 30px;\r\n margin: 0;\r\n }\r\n }\r\n i.close.icon {\r\n position: absolute;\r\n right: 16px;\r\n top: 60px;\r\n }\r\n }\r\n }\r\n .tms-footer {\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n .ui.menu {\r\n border-radius: 0;\r\n background-color: rgba(27, 28, 29, 0.2)!important;\r\n .dropdown.item .menu {\r\n border-radius: 0;\r\n }\r\n .item {\r\n font-size: 12px!important;\r\n }\r\n .item:before {\r\n width: 0;\r\n }\r\n .ui.button.item {\r\n width: 140px;\r\n margin-right: 0;\r\n padding-left: 0;\r\n .visible.content {\r\n margin-right: 0;\r\n width: 100%;\r\n }\r\n }\r\n .right.menu {\r\n .ui.dropdown {\r\n .menu {\r\n .header {\r\n min-width: 150px;\r\n position: relative;\r\n .plus.icon {\r\n position: absolute;\r\n right: 0;\r\n top: -7px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-chat-sidebar-right {\r\n .panel-wiki-dir {\r\n \theight: 100%;\r\n padding-left: 15px;\r\n overflow-y: auto;\r\n }\r\n .panel-chat-schedule {\r\n \theight: e(\"calc(100% - 10px)\");\r\n \toverflow: hidden;\r\n }\r\n}\r\n",".tms-em-chat-system-link-mgr {\r\n .ui.form {\r\n .one.wide.field {\r\n @media only screen and (min-width: 768px) {\r\n padding: 0;\r\n }\r\n }\r\n }\r\n}\r\n",".tms-em-chat-top-menu {\r\n &.ui.top.menu {\r\n padding-left: 220px;\r\n height: 60px;\r\n @media only screen and (max-width: 767px) {\r\n .tms-chat-at.tms-hide {\r\n display: none;\r\n }\r\n }\r\n .item.tms-item:before {\r\n display: none;\r\n }\r\n .right.menu {\r\n .item {\r\n &.tms-login-user {\r\n @media only screen and (max-width: 767px) {\r\n &.tms-hide {\r\n display: none;\r\n }\r\n }\r\n }\r\n &.tms-item {\r\n padding-left: 0;\r\n padding-right: 5px;\r\n @media only screen and (max-width: 767px) {\r\n &.tms-hide {\r\n display: none;\r\n }\r\n &.tms-mobile-hide {\r\n display: none;\r\n }\r\n }\r\n button {\r\n .ui.floating.label {\r\n top: 0;\r\n right: 0;\r\n left: auto;\r\n }\r\n }\r\n &.ui.dropdown {\r\n @media only screen and (max-width: 767px) {\r\n display: flex;\r\n }\r\n display: none;\r\n padding-left: 5px;\r\n margin-right: 5px;\r\n > i.icon {\r\n margin-left: 5px;\r\n }\r\n .menu {\r\n > .item {\r\n .ui.button {\r\n margin: 0;\r\n i.icon {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n &.tms-search {\r\n @media only screen and (max-width: 767px) {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n }\r\n }\r\n .ui.search {\r\n input {\r\n width: 95px;\r\n transition: width .15s ease-out 0s;\r\n }\r\n i.remove.icon {\r\n display: none;\r\n position: absolute;\r\n right: 0;\r\n left: auto;\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n padding-left: 0;\r\n }\r\n .ui.basic.button {\r\n box-shadow: none;\r\n }\r\n }\r\n > .tms-chat-at {\r\n &.ui.dropdown {\r\n @media only screen and (min-width: 768px) {\r\n min-width: 175px;\r\n padding-top: 0;\r\n padding-left: 13px;\r\n padding-bottom: 20px;\r\n &.item:before {\r\n width: 0;\r\n }\r\n }\r\n > .text {\r\n > .actions {\r\n display: none;\r\n }\r\n }\r\n > .tms-metadata {\r\n position: absolute;\r\n display: flex;\r\n top: 35px;\r\n font-size: 12px;\r\n left: 0;\r\n height: 15px;\r\n .item {\r\n &:before {\r\n top: 5px;\r\n height: 50%;\r\n }\r\n &.tms-channel-info:before {\r\n width: 0;\r\n }\r\n &.tms-user-info:before {\r\n width: 0;\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n display: none;\r\n }\r\n .tms-channel-links {\r\n .menu {\r\n .header {\r\n min-width: 200px;\r\n }\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 767px) {\r\n > .text {\r\n display: none;\r\n }\r\n > .dropdown.icon {\r\n margin-left: 6px;\r\n margin-right: 6px;\r\n }\r\n }\r\n .menu {\r\n > .header {\r\n i.plus.icon {\r\n position: absolute;\r\n right: 5px;\r\n top: 7px;\r\n }\r\n }\r\n > .item {\r\n &:hover {\r\n .actions {\r\n display: inline-block;\r\n }\r\n }\r\n .icon {\r\n margin-right: 4px!important;\r\n }\r\n > .actions {\r\n display: none;\r\n position: absolute;\r\n right: 5px;\r\n top: 10px;\r\n .large.ellipsis.horizontal.icon {\r\n font-size: 1.3em!important;\r\n }\r\n }\r\n &.disabled-user {\r\n text-decoration: line-through;\r\n font-style: italic;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",".em-checkbox {}",".tms-em-hotkeys-modal {\r\n ul {\r\n padding-left: 30px;\r\n }\r\n ul.no_bullets {\r\n margin: 0 0 2rem;\r\n }\r\n ul.no_bullets li {\r\n line-height: 2rem;\r\n list-style-type: none;\r\n padding: 0;\r\n font-size: 1rem;\r\n font-weight: 700;\r\n }\r\n &>.content {\r\n background-color: rgba(11, 7, 11, 0.78)!important;\r\n }\r\n .keyboard i.icon {\r\n margin-right: 0px!important;\r\n }\r\n .subtle_silver {\r\n color: #9e9ea6!important;\r\n }\r\n .ui.grid .column {\r\n padding: 0!important;\r\n }\r\n}\r\n",".em-user-avatar {\r\n &.avatar.ui.mini.circular.image {\r\n width: 35px;\r\n height: 35px;\r\n font-size: 35px;\r\n background-color: rgba(150, 178, 183, 0.4);\r\n text-align: center;\r\n margin: 0;\r\n padding-right: 0;\r\n }\r\n .text-char {\r\n display: inline-block;\r\n height: 35px;\r\n line-height: 35px;\r\n vertical-align: top;\r\n }\r\n}\r\n",".tms-em-user-edit {\r\n .ui.form {\r\n .field {\r\n > label {\r\n width: 45px!important;\r\n }\r\n .user-username {\r\n margin-left: 0;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.em-user-edit-modal {\r\n /* Tablet & PC */\r\n @media only screen and (min-width: 768px) {\r\n width: 500px!important;\r\n margin-left: -250px!important;\r\n }\r\n}\r\n"],"sourceRoot":"../src"} \ No newline at end of file diff --git a/scripts/deps-bundle.js b/scripts/deps-bundle.js index 2ac6b0f65952b0bf675b1b8924f793ef22df60e4..3741a96937d11cd324869492bff3627d5b64f58f 100644 --- a/scripts/deps-bundle.js +++ b/scripts/deps-bundle.js @@ -1286,7 +1286,7 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { }()); /*! - Autosize 3.0.17 + Autosize 3.0.19 license: MIT http://www.jacklmoore.com/autosize */ @@ -1305,23 +1305,35 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { })(this, function (exports, module) { 'use strict'; - var set = typeof Set === 'function' ? new Set() : (function () { - var list = []; + var map = typeof Map === "function" ? new Map() : (function () { + var keys = []; + var values = []; return { has: function has(key) { - return Boolean(list.indexOf(key) > -1); + return keys.indexOf(key) > -1; }, - add: function add(key) { - list.push(key); + get: function get(key) { + return values[keys.indexOf(key)]; + }, + set: function set(key, value) { + if (keys.indexOf(key) === -1) { + keys.push(key); + values.push(value); + } }, 'delete': function _delete(key) { - list.splice(list.indexOf(key), 1); - } }; + var index = keys.indexOf(key); + if (index > -1) { + keys.splice(index, 1); + values.splice(index, 1); + } + } + }; })(); var createEvent = function createEvent(name) { - return new Event(name); + return new Event(name, { bubbles: true }); }; try { new Event('test'); @@ -1335,7 +1347,7 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { } function assign(ta) { - if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || set.has(ta)) return; + if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return; var heightOffset = null; var clientWidth = ta.clientWidth; @@ -1389,7 +1401,8 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { if (el.parentNode.scrollTop) { arr.push({ node: el.parentNode, - scrollTop: el.parentNode.scrollTop }); + scrollTop: el.parentNode.scrollTop + }); } el = el.parentNode; } @@ -1450,7 +1463,12 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { if (cachedHeight !== computedHeight) { cachedHeight = computedHeight; var evt = createEvent('autosize:resized'); - ta.dispatchEvent(evt); + try { + ta.dispatchEvent(evt); + } catch (err) { + // Firefox will throw an error on dispatchEvent for a detached element + // https://bugzilla.mozilla.org/show_bug.cgi?id=889376 + } } } @@ -1466,17 +1484,19 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { ta.removeEventListener('keyup', update, false); ta.removeEventListener('autosize:destroy', destroy, false); ta.removeEventListener('autosize:update', update, false); - set['delete'](ta); Object.keys(style).forEach(function (key) { ta.style[key] = style[key]; }); + + map['delete'](ta); }).bind(ta, { height: ta.style.height, resize: ta.style.resize, overflowY: ta.style.overflowY, overflowX: ta.style.overflowX, - wordWrap: ta.style.wordWrap }); + wordWrap: ta.style.wordWrap + }); ta.addEventListener('autosize:destroy', destroy, false); @@ -1490,23 +1510,29 @@ if (typeof module !== 'undefined' && typeof exports === 'object') { window.addEventListener('resize', pageResize, false); ta.addEventListener('input', update, false); ta.addEventListener('autosize:update', update, false); - set.add(ta); ta.style.overflowX = 'hidden'; ta.style.wordWrap = 'break-word'; + map.set(ta, { + destroy: destroy, + update: update + }); + init(); } function destroy(ta) { - if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA')) return; - var evt = createEvent('autosize:destroy'); - ta.dispatchEvent(evt); + var methods = map.get(ta); + if (methods) { + methods.destroy(); + } } function update(ta) { - if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA')) return; - var evt = createEvent('autosize:update'); - ta.dispatchEvent(evt); + var methods = map.get(ta); + if (methods) { + methods.update(); + } } var autosize = null; @@ -6202,14 +6228,14 @@ module.exports = ColorHash; (function(global,factory){"use strict";if(typeof define==="function"&&define.amd){define('push/push.min',[],function(){return new(factory(global,global.document))})}else if(typeof module!=="undefined"&&module.exports){module.exports=new(factory(global,global.document))}else{global.Push=new(factory(global,global.document))}})(typeof window!=="undefined"?window:this,function(w,d){var Push=function(){var self=this,isUndefined=function(obj){return obj===undefined},isString=function(obj){return String(obj)===obj},isFunction=function(obj){return obj&&{}.toString.call(obj)==="[object Function]"},currentId=0,incompatibilityErrorMessage="PushError: push.js is incompatible with browser.",hasPermission=false,notifications={},lastWorkerPath=null,closeNotification=function(id){var errored=false,notification=notifications[id];if(typeof notification!=="undefined"){if(notification.close){notification.close()}else if(notification.cancel){notification.cancel()}else if(w.external&&w.external.msIsSiteMode){w.external.msSiteModeClearIconOverlay()}else{errored=true;throw new Error("Unable to close notification: unknown interface")}if(!errored){return removeNotification(id)}}return false},addNotification=function(notification){var id=currentId;notifications[id]=notification;currentId++;return id},removeNotification=function(id){var dict={},success=false,key;for(key in notifications){if(notifications.hasOwnProperty(key)){if(key!=id){dict[key]=notifications[key]}else{success=true}}}notifications=dict;return success},createCallback=function(title,options){var notification,wrapper,id,onClose;options=options||{};self.lastWorkerPath=options.serviceWorker||"sw.js";if(w.Notification){try{notification=new w.Notification(title,{icon:isString(options.icon)||isUndefined(options.icon)?options.icon:options.icon.x32,body:options.body,tag:options.tag,requireInteraction:options.requireInteraction})}catch(e){if(w.navigator){w.navigator.serviceWorker.register(options.serviceWorker||"sw.js");w.navigator.serviceWorker.ready.then(function(registration){registration.showNotification(title,{body:options.body,vibrate:options.vibrate,tag:options.tag,requireInteraction:options.requireInteraction})})}}}else if(w.webkitNotifications){notification=w.webkitNotifications.createNotification(options.icon,title,options.body);notification.show()}else if(navigator.mozNotification){notification=navigator.mozNotification.createNotification(title,options.body,options.icon);notification.show()}else if(w.external&&w.external.msIsSiteMode()){w.external.msSiteModeClearIconOverlay();w.external.msSiteModeSetIconOverlay(isString(options.icon)||isUndefined(options.icon)?options.icon:options.icon.x16,title);w.external.msSiteModeActivate();notification={}}else{throw new Error("Unable to create notification: unknown interface")}id=addNotification(notification);wrapper={get:function(){return notification},close:function(){closeNotification(id)}};if(options.timeout){setTimeout(function(){wrapper.close()},options.timeout)}if(isFunction(options.onShow))notification.addEventListener("show",options.onShow);if(isFunction(options.onError))notification.addEventListener("error",options.onError);if(isFunction(options.onClick))notification.addEventListener("click",options.onClick);onClose=function(){removeNotification(id);if(isFunction(options.onClose)){options.onClose.call(this)}};notification.addEventListener("close",onClose);notification.addEventListener("cancel",onClose);return wrapper},Permission={DEFAULT:"default",GRANTED:"granted",DENIED:"denied"},Permissions=[Permission.GRANTED,Permission.DEFAULT,Permission.DENIED];self.Permission=Permission;self.Permission.request=function(onGranted,onDenied){if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}callback=function(result){switch(result){case self.Permission.GRANTED:hasPermission=true;if(onGranted)onGranted();break;case self.Permission.DENIED:hasPermission=false;if(onDenied)onDenied();break}};if(w.Notification&&w.Notification.requestPermission){Notification.requestPermission(callback)}else if(w.webkitNotifications&&w.webkitNotifications.checkPermission){w.webkitNotifications.requestPermission(callback)}else{throw new Error(incompatibilityErrorMessage)}};self.Permission.has=function(){return hasPermission};self.Permission.get=function(){var permission;if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}if(w.Notification&&w.Notification.permissionLevel){permission=w.Notification.permissionLevel}else if(w.webkitNotifications&&w.webkitNotifications.checkPermission){permission=Permissions[w.webkitNotifications.checkPermission()]}else if(w.Notification&&w.Notification.permission){permission=w.Notification.permission}else if(navigator.mozNotification){permission=Permissions.GRANTED}else if(w.external&&w.external.msIsSiteMode()!==undefined){permission=w.external.msIsSiteMode()?Permission.GRANTED:Permission.DEFAULT}else{throw new Error(incompatibilityErrorMessage)}return permission};self.isSupported=function(){var isSupported=false;try{isSupported=!!(w.Notification||w.webkitNotifications||navigator.mozNotification||w.external&&w.external.msIsSiteMode()!==undefined)}catch(e){}return isSupported}();self.create=function(title,options){if(!self.isSupported){throw new Error(incompatibilityErrorMessage)}if(!isString(title)){throw new Error("PushError: Title of notification must be a string")}if(!self.Permission.has()){return new Promise(function(resolve,reject){self.Permission.request(function(){try{resolve(createCallback(title,options))}catch(e){reject(e)}},function(){reject("Permission request declined")})})}else{return new Promise(function(resolve,reject){try{resolve(createCallback(title,options))}catch(e){reject(e)}})}};self.count=function(){var count=0,key;for(key in notifications){count++}return count},self.__lastWorkerPath=function(){return self.lastWorkerPath},self.close=function(tag){var key;for(key in notifications){notification=notifications[key];if(notification.tag===tag){return closeNotification(key)}}};self.clear=function(){var i,success=true;for(key in notifications){var didClose=closeNotification(key);success=success&&didClose}return success}};return Push});;define('push', ['push/push.min'], function (main) { return main; }); /*! - * clipboard.js v1.5.12 + * clipboard.js v1.5.15 * https://zenorocha.github.io/clipboard.js * * Licensed MIT © Zeno Rocha */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define('clipboard/dist/clipboard.min',[],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(r)return r(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;ao;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;a>r;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if("undefined"!=typeof o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.addEventListener("focus",window.scrollTo(0,i)),this.fakeElem.style.top=i+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,i){!function(o,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof i)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,o.clipboardAction,o.tinyEmitter,o.goodListener),o.clipboard=a.exports}}(this,function(e,t,n,i){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var s=o(t),u=o(n),f=o(i),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}]),t}(u.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)});;define('clipboard', ['clipboard/dist/clipboard.min'], function (main) { return main; }); -!function(t,e){"object"==typeof module&&module.exports?module.exports=e(t):t.timeago=e(t)}("undefined"!=typeof window?window:this,function(){function t(t){return t instanceof Date?t:isNaN(t)?/^\d+$/.test(t)?new Date(e(t,10)):(t=(t||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/T/," ").replace(/Z/," UTC").replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"),new Date(t)):new Date(e(t))}function e(t){return parseInt(t)}function n(t,n,r){n=d[n]?n:d[r]?r:"en";var i=0;for(agoin=t<0?1:0,t=Math.abs(t);t>=l[i]&&i(0===i?9:1)&&(i+=1),d[n](t,i)[agoin].replace("%s",t)}function r(e,n){return n=n?t(n):new Date,(n-t(e))/1e3}function i(t){for(var e=1,n=0,r=Math.abs(t);t>=l[n]&&n1&&(n+="s"),[t+" "+n+" ago","in "+t+" "+n]},zh_CN:function(t,e){if(0===e)return["刚刚","片刻后"];var n=s[parseInt(e/2)];return[t+n+"前",t+n+"后"]}},l=[60,60,24,7,365/7/12,12],p=6,h="datetime";return u.register=function(t,e){d[t]=e},u}); +!function(t,e){"object"==typeof module&&module.exports?module.exports=e(t):t.timeago=e(t)}("undefined"!=typeof window?window:this,function(){function t(t){return t instanceof Date?t:isNaN(t)?/^\d+$/.test(t)?new Date(e(t)):(t=(t||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/T/," ").replace(/Z/," UTC").replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"),new Date(t)):new Date(e(t))}function e(t){return parseInt(t)}function n(t,n,r){n=d[n]?n:d[r]?r:"en";var i=0,o=t<0?1:0;for(t=Math.abs(t);t>=l[i]&&i(0===i?9:1)&&(i+=1),d[n](t,i)[o].replace("%s",t)}function r(e,n){return n=n?t(n):new Date,(n-t(e))/1e3}function i(t){for(var e=1,n=0,r=Math.abs(t);t>=l[n]&&n1&&(n+="s"),[t+" "+n+" ago","in "+t+" "+n]},zh_CN:function(t,e){if(0===e)return["刚刚","片刻后"];var n=s[parseInt(e/2)];return[t+n+"前",t+n+"后"]}},l=[60,60,24,7,365/7/12,12],p=6,h="datetime";return u.register=function(t,e){d[t]=e},u}); define("timeago/dist/timeago.min", [],function(){}); ;define('timeago', ['timeago/dist/timeago.min'], function (main) { return main; }); @@ -8008,7 +8034,7 @@ header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\ }(navigator.userAgent||navigator.vendor||window.opera),e},V="",K={bold:{name:"bold",action:c,className:"fa fa-bold",title:"Bold","default":!0},italic:{name:"italic",action:u,className:"fa fa-italic",title:"Italic","default":!0},strikethrough:{name:"strikethrough",action:f,className:"fa fa-strikethrough",title:"Strikethrough"},heading:{name:"heading",action:p,className:"fa fa-header",title:"Heading","default":!0},"heading-smaller":{name:"heading-smaller",action:p,className:"fa fa-header fa-header-x fa-header-smaller",title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:m,className:"fa fa-header fa-header-x fa-header-bigger",title:"Bigger Heading"},"heading-1":{name:"heading-1",action:g,className:"fa fa-header fa-header-x fa-header-1",title:"Big Heading"},"heading-2":{name:"heading-2",action:v,className:"fa fa-header fa-header-x fa-header-2",title:"Medium Heading"},"heading-3":{name:"heading-3",action:y,className:"fa fa-header fa-header-x fa-header-3",title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:h,className:"fa fa-code",title:"Code"},quote:{name:"quote",action:d,className:"fa fa-quote-left",title:"Quote","default":!0},"unordered-list":{name:"unordered-list",action:x,className:"fa fa-list-ul",title:"Generic List","default":!0},"ordered-list":{name:"ordered-list",action:b,className:"fa fa-list-ol",title:"Numbered List","default":!0},"clean-block":{name:"clean-block",action:w,className:"fa fa-eraser fa-clean-block",title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:k,className:"fa fa-link",title:"Create Link","default":!0},image:{name:"image",action:S,className:"fa fa-picture-o",title:"Insert Image","default":!0},table:{name:"table",action:C,className:"fa fa-table",title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:L,className:"fa fa-minus",title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:A,className:"fa fa-eye no-disable",title:"Toggle Preview","default":!0},"side-by-side":{name:"side-by-side",action:N,className:"fa fa-columns no-disable no-mobile",title:"Toggle Side by Side","default":!0},fullscreen:{name:"fullscreen",action:s,className:"fa fa-arrows-alt no-disable no-mobile",title:"Toggle Fullscreen","default":!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://simplemde.com/markdown-guide",className:"fa fa-question-circle",title:"Markdown Guide","default":!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:T,className:"fa fa-undo no-disable",title:"Undo"},redo:{name:"redo",action:M,className:"fa fa-repeat no-disable",title:"Redo"}},X={link:["[","](#url#)"],image:["![](","#url#)"],table:["","\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text | Text | Text |\n\n"],horizontalRule:["","\n\n-----\n\n"]},Z={link:"URL for the link:",image:"URL of the image:"},J={bold:"**",code:"```",italic:"*"};B.prototype.markdown=function(e){if(j){var t={};return this.options&&this.options.renderingConfig&&this.options.renderingConfig.singleLineBreaks===!1?t.breaks=!1:t.breaks=!0,this.options&&this.options.renderingConfig&&this.options.renderingConfig.codeSyntaxHighlighting===!0&&window.hljs&&(t.highlight=function(e){return window.hljs.highlightAuto(e).value}),j.setOptions(t),j(e)}},B.prototype.render=function(e){if(e||(e=this.element||document.getElementsByTagName("textarea")[0]),!this._rendered||this._rendered!==e){this.element=e;var t=this.options,n=this,i={};for(var o in t.shortcuts)null!==t.shortcuts[o]&&null!==q[o]&&!function(e){i[r(t.shortcuts[e])]=function(){q[e](n)}}(o);i.Enter="newlineAndIndentContinueMarkdownList",i.Tab="tabAndIndentMarkdownList",i["Shift-Tab"]="shiftTabAndUnindentMarkdownList",i.Esc=function(e){e.getOption("fullScreen")&&s(n)},document.addEventListener("keydown",function(e){e=e||window.event,27==e.keyCode&&n.codemirror.getOption("fullScreen")&&s(n)},!1);var a,l;if(t.spellChecker!==!1?(a="spell-checker",l=t.parsingConfig,l.name="gfm",l.gitHubSpice=!1,z({codeMirrorInstance:F})):(a=t.parsingConfig,a.name="gfm",a.gitHubSpice=!1),this.codemirror=F.fromTextArea(e,{mode:a,backdrop:l,theme:"paper",tabSize:void 0!=t.tabSize?t.tabSize:2,indentUnit:void 0!=t.tabSize?t.tabSize:2,indentWithTabs:t.indentWithTabs!==!1,lineNumbers:!1,autofocus:t.autofocus===!0,extraKeys:i,lineWrapping:t.lineWrapping!==!1,allowDropFileTypes:["text/plain"],placeholder:t.placeholder||e.getAttribute("placeholder")||"",styleSelectedText:void 0!=t.styleSelectedText?t.styleSelectedText:!0}),t.forceSync===!0){var c=this.codemirror;c.on("change",function(){c.save()})}this.gui={},t.toolbar!==!1&&(this.gui.toolbar=this.createToolbar()),t.status!==!1&&(this.gui.statusbar=this.createStatusbar()),void 0!=t.autosave&&t.autosave.enabled===!0&&this.autosave(),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element;var u=this.codemirror;setTimeout(function(){u.refresh()}.bind(u),0)}},B.prototype.autosave=function(){if(_()){var e=this;if(void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to use the autosave feature");null!=e.element.form&&void 0!=e.element.form&&e.element.form.addEventListener("submit",function(){localStorage.removeItem("smde_"+e.options.autosave.uniqueId)}),this.options.autosave.loaded!==!0&&("string"==typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&""!=localStorage.getItem("smde_"+this.options.autosave.uniqueId)&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0),localStorage.setItem("smde_"+this.options.autosave.uniqueId,e.value());var t=document.getElementById("autosaved");if(null!=t&&void 0!=t&&""!=t){var n=new Date,r=n.getHours(),i=n.getMinutes(),o="am",a=r;a>=12&&(a=r-12,o="pm"),0==a&&(a=12),i=10>i?"0"+i:i,t.innerHTML="Autosaved: "+a+":"+i+" "+o}this.autosaveTimeoutId=setTimeout(function(){e.autosave()},this.options.autosave.delay||1e4)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.clearAutosavedValue=function(){if(_()){if(void 0==this.options.autosave||void 0==this.options.autosave.uniqueId||""==this.options.autosave.uniqueId)return void console.log("SimpleMDE: You must set a uniqueId to clear the autosave value");localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("SimpleMDE: localStorage not available, cannot autosave")},B.prototype.createSideBySide=function(){var e=this.codemirror,t=e.getWrapperElement(),n=t.nextSibling;n&&/editor-preview-side/.test(n.className)||(n=document.createElement("div"),n.className="editor-preview-side",t.parentNode.insertBefore(n,t.nextSibling));var r=!1,i=!1;return e.on("scroll",function(e){if(r)return void(r=!1);i=!0;var t=e.getScrollInfo().height-e.getScrollInfo().clientHeight,o=parseFloat(e.getScrollInfo().top)/t,a=(n.scrollHeight-n.clientHeight)*o;n.scrollTop=a}),n.onscroll=function(){if(i)return void(i=!1);r=!0;var t=n.scrollHeight-n.clientHeight,o=parseFloat(n.scrollTop)/t,a=(e.getScrollInfo().height-e.getScrollInfo().clientHeight)*o;e.scrollTo(0,a)},n},B.prototype.createToolbar=function(e){if(e=e||this.options.toolbar,e&&0!==e.length){var t;for(t=0;tp,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}"; }); -define('highlight/lib/index',['require','exports','module','./highlight','./languages/1c','./languages/abnf','./languages/accesslog','./languages/actionscript','./languages/ada','./languages/apache','./languages/applescript','./languages/cpp','./languages/arduino','./languages/armasm','./languages/xml','./languages/asciidoc','./languages/aspectj','./languages/autohotkey','./languages/autoit','./languages/avrasm','./languages/awk','./languages/axapta','./languages/bash','./languages/basic','./languages/bnf','./languages/brainfuck','./languages/cal','./languages/capnproto','./languages/ceylon','./languages/clojure','./languages/clojure-repl','./languages/cmake','./languages/coffeescript','./languages/coq','./languages/cos','./languages/crmsh','./languages/crystal','./languages/cs','./languages/csp','./languages/css','./languages/d','./languages/markdown','./languages/dart','./languages/delphi','./languages/diff','./languages/django','./languages/dns','./languages/dockerfile','./languages/dos','./languages/dsconfig','./languages/dts','./languages/dust','./languages/ebnf','./languages/elixir','./languages/elm','./languages/ruby','./languages/erb','./languages/erlang-repl','./languages/erlang','./languages/excel','./languages/fix','./languages/fortran','./languages/fsharp','./languages/gams','./languages/gauss','./languages/gcode','./languages/gherkin','./languages/glsl','./languages/go','./languages/golo','./languages/gradle','./languages/groovy','./languages/haml','./languages/handlebars','./languages/haskell','./languages/haxe','./languages/hsp','./languages/htmlbars','./languages/http','./languages/inform7','./languages/ini','./languages/irpf90','./languages/java','./languages/javascript','./languages/json','./languages/julia','./languages/kotlin','./languages/lasso','./languages/ldif','./languages/less','./languages/lisp','./languages/livecodeserver','./languages/livescript','./languages/lsl','./languages/lua','./languages/makefile','./languages/mathematica','./languages/matlab','./languages/maxima','./languages/mel','./languages/mercury','./languages/mipsasm','./languages/mizar','./languages/perl','./languages/mojolicious','./languages/monkey','./languages/moonscript','./languages/nginx','./languages/nimrod','./languages/nix','./languages/nsis','./languages/objectivec','./languages/ocaml','./languages/openscad','./languages/oxygene','./languages/parser3','./languages/pf','./languages/php','./languages/pony','./languages/powershell','./languages/processing','./languages/profile','./languages/prolog','./languages/protobuf','./languages/puppet','./languages/purebasic','./languages/python','./languages/q','./languages/qml','./languages/r','./languages/rib','./languages/roboconf','./languages/rsl','./languages/ruleslanguage','./languages/rust','./languages/scala','./languages/scheme','./languages/scilab','./languages/scss','./languages/smali','./languages/smalltalk','./languages/sml','./languages/sqf','./languages/sql','./languages/stan','./languages/stata','./languages/step21','./languages/stylus','./languages/subunit','./languages/swift','./languages/taggerscript','./languages/yaml','./languages/tap','./languages/tcl','./languages/tex','./languages/thrift','./languages/tp','./languages/twig','./languages/typescript','./languages/vala','./languages/vbnet','./languages/vbscript','./languages/vbscript-html','./languages/verilog','./languages/vhdl','./languages/vim','./languages/x86asm','./languages/xl','./languages/xquery','./languages/zephir'],function (require, exports, module) {var hljs = require('./highlight'); +define('highlight/lib/index',['require','exports','module','./highlight','./languages/1c','./languages/abnf','./languages/accesslog','./languages/actionscript','./languages/ada','./languages/apache','./languages/applescript','./languages/cpp','./languages/arduino','./languages/armasm','./languages/xml','./languages/asciidoc','./languages/aspectj','./languages/autohotkey','./languages/autoit','./languages/avrasm','./languages/awk','./languages/axapta','./languages/bash','./languages/basic','./languages/bnf','./languages/brainfuck','./languages/cal','./languages/capnproto','./languages/ceylon','./languages/clean','./languages/clojure','./languages/clojure-repl','./languages/cmake','./languages/coffeescript','./languages/coq','./languages/cos','./languages/crmsh','./languages/crystal','./languages/cs','./languages/csp','./languages/css','./languages/d','./languages/markdown','./languages/dart','./languages/delphi','./languages/diff','./languages/django','./languages/dns','./languages/dockerfile','./languages/dos','./languages/dsconfig','./languages/dts','./languages/dust','./languages/ebnf','./languages/elixir','./languages/elm','./languages/ruby','./languages/erb','./languages/erlang-repl','./languages/erlang','./languages/excel','./languages/fix','./languages/flix','./languages/fortran','./languages/fsharp','./languages/gams','./languages/gauss','./languages/gcode','./languages/gherkin','./languages/glsl','./languages/go','./languages/golo','./languages/gradle','./languages/groovy','./languages/haml','./languages/handlebars','./languages/haskell','./languages/haxe','./languages/hsp','./languages/htmlbars','./languages/http','./languages/inform7','./languages/ini','./languages/irpf90','./languages/java','./languages/javascript','./languages/json','./languages/julia','./languages/kotlin','./languages/lasso','./languages/ldif','./languages/less','./languages/lisp','./languages/livecodeserver','./languages/livescript','./languages/lsl','./languages/lua','./languages/makefile','./languages/mathematica','./languages/matlab','./languages/maxima','./languages/mel','./languages/mercury','./languages/mipsasm','./languages/mizar','./languages/perl','./languages/mojolicious','./languages/monkey','./languages/moonscript','./languages/nginx','./languages/nimrod','./languages/nix','./languages/nsis','./languages/objectivec','./languages/ocaml','./languages/openscad','./languages/oxygene','./languages/parser3','./languages/pf','./languages/php','./languages/pony','./languages/powershell','./languages/processing','./languages/profile','./languages/prolog','./languages/protobuf','./languages/puppet','./languages/purebasic','./languages/python','./languages/q','./languages/qml','./languages/r','./languages/rib','./languages/roboconf','./languages/rsl','./languages/ruleslanguage','./languages/rust','./languages/scala','./languages/scheme','./languages/scilab','./languages/scss','./languages/smali','./languages/smalltalk','./languages/sml','./languages/sqf','./languages/sql','./languages/stan','./languages/stata','./languages/step21','./languages/stylus','./languages/subunit','./languages/swift','./languages/taggerscript','./languages/yaml','./languages/tap','./languages/tcl','./languages/tex','./languages/thrift','./languages/tp','./languages/twig','./languages/typescript','./languages/vala','./languages/vbnet','./languages/vbscript','./languages/vbscript-html','./languages/verilog','./languages/vhdl','./languages/vim','./languages/x86asm','./languages/xl','./languages/xquery','./languages/zephir'],function (require, exports, module) {var hljs = require('./highlight'); hljs.registerLanguage('1c', require('./languages/1c')); hljs.registerLanguage('abnf', require('./languages/abnf')); @@ -8035,6 +8061,7 @@ hljs.registerLanguage('brainfuck', require('./languages/brainfuck')); hljs.registerLanguage('cal', require('./languages/cal')); hljs.registerLanguage('capnproto', require('./languages/capnproto')); hljs.registerLanguage('ceylon', require('./languages/ceylon')); +hljs.registerLanguage('clean', require('./languages/clean')); hljs.registerLanguage('clojure', require('./languages/clojure')); hljs.registerLanguage('clojure-repl', require('./languages/clojure-repl')); hljs.registerLanguage('cmake', require('./languages/cmake')); @@ -8067,6 +8094,7 @@ hljs.registerLanguage('erlang-repl', require('./languages/erlang-repl')); hljs.registerLanguage('erlang', require('./languages/erlang')); hljs.registerLanguage('excel', require('./languages/excel')); hljs.registerLanguage('fix', require('./languages/fix')); +hljs.registerLanguage('flix', require('./languages/flix')); hljs.registerLanguage('fortran', require('./languages/fortran')); hljs.registerLanguage('fsharp', require('./languages/fsharp')); hljs.registerLanguage('gams', require('./languages/gams')); diff --git a/scripts/vendor-bundle.js b/scripts/vendor-bundle.js index b83aa1e7022876f328134842be6b16fe83368d61..d17d55b3454edd4f39423b107d8d203de91c2056 100644 --- a/scripts/vendor-bundle.js +++ b/scripts/vendor-bundle.js @@ -7825,21 +7825,12 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- return LiteralObject; }(Expression); - var evalListCache = [[], [0], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0]]; - function evalList(scope, list, lookupFunctions) { var length = list.length; - - for (var cacheLength = evalListCache.length; cacheLength <= length; ++cacheLength) { - evalListCache.push([]); - } - - var result = evalListCache[length]; - - for (var _i14 = 0; _i14 < length; ++_i14) { + var result = []; + for (var _i14 = 0; _i14 < length; _i14++) { result[_i14] = list[_i14].evaluate(scope, lookupFunctions); } - return result; } @@ -8922,7 +8913,7 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- if (this.optional('.')) { name = this.peek.key; this.advance(); - } else if (this.peek === EOF || this.peek.text === '(' || this.peek.text === '[' || this.peek.text === '}') { + } else if (this.peek === EOF || this.peek.text === '(' || this.peek.text === '[' || this.peek.text === '}' || this.peek.text === ',') { return new AccessThis(ancestor); } else { this.error('Unexpected token ' + this.peek.text); @@ -9603,6 +9594,16 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- return this.element.style.cssText; }; + StyleObserver.prototype._setProperty = function _setProperty(style, value) { + var priority = ''; + + if (value !== null && value !== undefined && typeof value.indexOf === 'function' && value.indexOf('!important') !== -1) { + priority = 'important'; + value = value.replace('!important', ''); + } + this.element.style.setProperty(style, value, priority); + }; + StyleObserver.prototype.setValue = function setValue(newValue) { var styles = this.styles || {}; var style = void 0; @@ -9613,7 +9614,7 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- for (style in newValue) { if (newValue.hasOwnProperty(style)) { styles[style] = version; - this.element.style[style] = newValue[style]; + this._setProperty(style, newValue[style]); } } } else if (newValue.length) { @@ -9626,7 +9627,7 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- } styles[style] = version; - this.element.style[style] = pair[2]; + this._setProperty(style, pair[2]); } } } @@ -9644,7 +9645,7 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- continue; } - this.element.style[style] = ''; + this.element.style.removeProperty(style); } }; @@ -10506,7 +10507,7 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- if (xlinkResult) { return new XLinkAttributeObserver(obj, propertyName, xlinkResult[1]); } - if (/^\w+:|^data-|^aria-/.test(propertyName) || obj instanceof _aureliaPal.DOM.SVGElement && this.svgAnalyzer.isStandardSvgAttribute(obj.nodeName, propertyName)) { + if (propertyName === 'role' && (obj instanceof _aureliaPal.DOM.Element || obj instanceof _aureliaPal.DOM.SVGElement) || /^\w+:|^data-|^aria-/.test(propertyName) || obj instanceof _aureliaPal.DOM.SVGElement && this.svgAnalyzer.isStandardSvgAttribute(obj.nodeName, propertyName)) { return new DataAttributeObserver(obj, propertyName); } } @@ -11033,7 +11034,9 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- return; } this.isBound = false; - this.sourceExpression.assign(this.source, null, this.lookupFunctions); + if (this.sourceExpression.evaluate(this.source, this.lookupFunctions) === this.target) { + this.sourceExpression.assign(this.source, null, this.lookupFunctions); + } if (this.sourceExpression.unbind) { this.sourceExpression.unbind(this, this.source); } @@ -11209,32 +11212,48 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- function observable(targetOrConfig, key, descriptor) { function deco(target, key, descriptor, config) { - if (key === undefined) { + var isClassDecorator = key === undefined; + if (isClassDecorator) { target = target.prototype; key = typeof config === 'string' ? config : config.name; } var innerPropertyName = '_' + key; + var innerPropertyDescriptor = { + configurable: true, + enumerable: false, + writable: true + }; var callbackName = config && config.changeHandler || key + 'Changed'; if (descriptor) { if (typeof descriptor.initializer === 'function') { - target[innerPropertyName] = descriptor.initializer(); + innerPropertyDescriptor.value = descriptor.initializer(); } } else { descriptor = {}; } + if (!('enumerable' in descriptor)) { + descriptor.enumerable = true; + } + + delete descriptor.value; delete descriptor.writable; delete descriptor.initializer; + Reflect.defineProperty(target, innerPropertyName, innerPropertyDescriptor); + descriptor.get = function () { return this[innerPropertyName]; }; descriptor.set = function (newValue) { var oldValue = this[innerPropertyName]; + this[innerPropertyName] = newValue; + Reflect.defineProperty(this, innerPropertyName, { enumerable: false }); + if (this[callbackName]) { this[callbackName](newValue, oldValue, key); } @@ -11242,7 +11261,11 @@ define('aurelia-binding',['exports', 'aurelia-logging', 'aurelia-pal', 'aurelia- descriptor.get.dependencies = [innerPropertyName]; - Reflect.defineProperty(target, key, descriptor); + if (isClassDecorator) { + Reflect.defineProperty(target, key, descriptor); + } else { + return descriptor; + } } if (key === undefined) { @@ -11357,7 +11380,11 @@ define('aurelia-bootstrapper',['exports', 'aurelia-pal', 'aurelia-pal-browser', if (configModuleId) { return loader.loadModule(configModuleId).then(function (customConfig) { - return customConfig.configure(aurelia); + if (!customConfig.configure) { + throw new Error("Cannot initialize module '" + configModuleId + "' without a configure function."); + } + + customConfig.configure(aurelia); }); } @@ -11413,7 +11440,7 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p exports.factory = factory; exports.newInstance = newInstance; exports.invoker = invoker; - exports.factory = factory; + exports.invokeAsFactory = invokeAsFactory; exports.registration = registration; exports.transient = transient; exports.singleton = singleton; @@ -11576,10 +11603,19 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p this.key = key; this.asKey = key; + + for (var _len2 = arguments.length, dynamicDependencies = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + dynamicDependencies[_key2 - 1] = arguments[_key2]; + } + + this.dynamicDependencies = dynamicDependencies; } NewInstance.prototype.get = function get(container) { - var instance = container.invoke(this.key); + var dynamicDependencies = this.dynamicDependencies.length > 0 ? this.dynamicDependencies.map(function (dependency) { + return dependency['protocol:aurelia:resolver'] ? dependency.get(container) : container.get(dependency); + }) : undefined; + var instance = container.invoke(this.key, dynamicDependencies); container.registerInstance(this.asKey, instance); return instance; }; @@ -11590,7 +11626,11 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p }; NewInstance.of = function of(key) { - return new NewInstance(key); + for (var _len3 = arguments.length, dynamicDependencies = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { + dynamicDependencies[_key3 - 1] = arguments[_key3]; + } + + return new (Function.prototype.bind.apply(NewInstance, [null].concat([key], dynamicDependencies)))(); }; return NewInstance; @@ -11651,16 +11691,20 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p } function newInstance(asKeyOrTarget) { + for (var _len4 = arguments.length, dynamicDependencies = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { + dynamicDependencies[_key4 - 1] = arguments[_key4]; + } + var deco = function deco(asKey) { return function (target, key, index) { var params = getDecoratorDependencies(target, 'newInstance'); - params[index] = NewInstance.of(params[index]); + params[index] = NewInstance.of.apply(NewInstance, [params[index]].concat(dynamicDependencies)); if (!!asKey) { params[index].as(asKey); } }; }; - if (arguments.length === 1) { + if (arguments.length >= 1) { return deco(asKeyOrTarget); } return deco(); @@ -11672,7 +11716,7 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p }; } - function factory(potentialTarget) { + function invokeAsFactory(potentialTarget) { var deco = function deco(target) { _aureliaMetadata.metadata.define(_aureliaMetadata.metadata.invoker, FactoryInvoker.instance, target); }; @@ -11767,7 +11811,11 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p return SingletonRegistration; }(); - var badKeyError = 'key/value cannot be null or undefined. Are you trying to inject/register something that doesn\'t exist with DI?'; + function validateKey(key) { + if (key === null || key === undefined) { + throw new Error('key/value cannot be null or undefined. Are you trying to inject/register something that doesn\'t exist with DI?'); + } + } var _emptyParameters = exports._emptyParameters = Object.freeze([]); _aureliaMetadata.metadata.registration = 'aurelia:registration'; @@ -11906,9 +11954,7 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p }; Container.prototype.registerResolver = function registerResolver(key, resolver) { - if (key === null || key === undefined) { - throw new Error(badKeyError); - } + validateKey(key); var allResolvers = this._resolvers; var result = allResolvers.get(key); @@ -11954,17 +12000,13 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p Container.prototype.hasResolver = function hasResolver(key) { var checkParent = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; - if (key === null || key === undefined) { - throw new Error(badKeyError); - } + validateKey(key); return this._resolvers.has(key) || checkParent && this.parent !== null && this.parent.hasResolver(key, checkParent); }; Container.prototype.get = function get(key) { - if (key === null || key === undefined) { - throw new Error(badKeyError); - } + validateKey(key); if (key === Container) { return this; @@ -12002,9 +12044,7 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p }; Container.prototype.getAll = function getAll(key) { - if (key === null || key === undefined) { - throw new Error(badKeyError); - } + validateKey(key); var resolver = this._resolvers.get(key); @@ -12085,8 +12125,14 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p if (!previousInject) { target.inject = autoInject; } else { - for (var i = 0; i++; i < autoInject.length) { - if (!previousInject[i]) { + for (var i = 0; i < autoInject.length; i++) { + if (previousInject[i] && previousInject[i] !== autoInject[i]) { + var prevIndex = previousInject.indexOf(autoInject[i]); + if (prevIndex > -1) { + previousInject.splice(prevIndex, 1); + } + previousInject.splice(prevIndex > -1 && prevIndex < i ? i - 1 : i, 0, autoInject[i]); + } else if (!previousInject[i]) { previousInject[i] = autoInject[i]; } } @@ -12097,8 +12143,8 @@ define('aurelia-dependency-injection',['exports', 'aurelia-metadata', 'aurelia-p } function inject() { - for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - rest[_key2] = arguments[_key2]; + for (var _len5 = arguments.length, rest = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { + rest[_key5] = arguments[_key5]; } return function (target, key, descriptor) { @@ -13887,10 +13933,10 @@ define('aurelia-logging',['exports'], function (exports) { }; var loggers = {}; - var currentLevel = logLevel.none; var appenders = []; var slice = Array.prototype.slice; var loggerConstructionKey = {}; + var globalDefaultLevel = logLevel.none; function log(logger, level, args) { var i = appenders.length; @@ -13906,7 +13952,7 @@ define('aurelia-logging',['exports'], function (exports) { } function debug() { - if (currentLevel < 4) { + if (this.level < 4) { return; } @@ -13914,7 +13960,7 @@ define('aurelia-logging',['exports'], function (exports) { } function info() { - if (currentLevel < 3) { + if (this.level < 3) { return; } @@ -13922,7 +13968,7 @@ define('aurelia-logging',['exports'], function (exports) { } function warn() { - if (currentLevel < 2) { + if (this.level < 2) { return; } @@ -13930,7 +13976,7 @@ define('aurelia-logging',['exports'], function (exports) { } function error() { - if (currentLevel < 1) { + if (this.level < 1) { return; } @@ -13946,6 +13992,7 @@ define('aurelia-logging',['exports'], function (exports) { function createLogger(id) { var logger = new Logger(id, loggerConstructionKey); + logger.setLevel(globalDefaultLevel); if (appenders.length) { connectLogger(logger); @@ -13969,13 +14016,18 @@ define('aurelia-logging',['exports'], function (exports) { } function setLevel(level) { - currentLevel = level; + globalDefaultLevel = level; + for (var key in loggers) { + loggers[key].setLevel(level); + } } var Logger = exports.Logger = function () { function Logger(id, key) { + this.level = logLevel.none; + if (key !== loggerConstructionKey) { throw new Error('Cannot instantiate "Logger". Use "getLogger" instead.'); } @@ -13991,6 +14043,10 @@ define('aurelia-logging',['exports'], function (exports) { Logger.prototype.error = function error(message) {}; + Logger.prototype.setLevel = function setLevel(level) { + this.level = level; + }; + return Logger; }(); }); @@ -14078,6 +14134,12 @@ define('aurelia-metadata',['exports', 'aurelia-pal'], function (exports, _aureli return target; }; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + }; + var metadata = exports.metadata = { @@ -14129,11 +14191,13 @@ define('aurelia-metadata',['exports', 'aurelia-pal'], function (exports, _aureli if (origin === undefined) { _aureliaPal.PLATFORM.eachModule(function (key, value) { - for (var name in value) { - var exp = value[name]; - if (exp === fn) { - originStorage.set(fn, origin = new Origin(key, name)); - return true; + if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { + for (var name in value) { + var exp = value[name]; + if (exp === fn) { + originStorage.set(fn, origin = new Origin(key, name)); + return true; + } } } @@ -15028,17 +15092,21 @@ define('aurelia-path',['exports'], function (exports) { return encode(k).replace('%24', '$'); }; - function buildParam(key, value) { + function buildParam(key, value, traditional) { var result = []; if (value === null || value === undefined) { return result; } if (Array.isArray(value)) { for (var i = 0, l = value.length; i < l; i++) { - var arrayKey = key + '[' + (_typeof(value[i]) === 'object' && value[i] !== null ? i : '') + ']'; - result = result.concat(buildParam(arrayKey, value[i])); + if (traditional) { + result.push(encodeKey(key) + '=' + encode(value[i])); + } else { + var arrayKey = key + '[' + (_typeof(value[i]) === 'object' && value[i] !== null ? i : '') + ']'; + result = result.concat(buildParam(arrayKey, value[i])); + } } - } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') { + } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !traditional) { for (var propertyName in value) { result = result.concat(buildParam(key + '[' + propertyName + ']', value[propertyName])); } @@ -15048,12 +15116,12 @@ define('aurelia-path',['exports'], function (exports) { return result; } - function buildQueryString(params) { + function buildQueryString(params, traditional) { var pairs = []; var keys = Object.keys(params || {}).sort(); for (var i = 0, len = keys.length; i < len; i++) { var key = keys[i]; - pairs = pairs.concat(buildParam(key, params[key])); + pairs = pairs.concat(buildParam(key, params[key], traditional)); } if (pairs.length === 0) { @@ -15063,13 +15131,13 @@ define('aurelia-path',['exports'], function (exports) { return pairs.join('&'); } - function processScalarParam(existedParam, value, isPrimitive) { + function processScalarParam(existedParam, value) { if (Array.isArray(existedParam)) { existedParam.push(value); return existedParam; } if (existedParam !== undefined) { - return isPrimitive ? value : [existedParam, value]; + return [existedParam, value]; } return value; @@ -15081,7 +15149,8 @@ define('aurelia-path',['exports'], function (exports) { for (var j = 0; j <= keysLastIndex; j++) { var key = keys[j] === '' ? currentParams.length : keys[j]; if (j < keysLastIndex) { - currentParams = currentParams[key] = currentParams[key] || (isNaN(keys[j + 1]) ? {} : []); + var prevValue = !currentParams[key] || _typeof(currentParams[key]) === 'object' ? currentParams[key] : [currentParams[key]]; + currentParams = currentParams[key] = prevValue || (isNaN(keys[j + 1]) ? {} : []); } else { currentParams = currentParams[key] = value; } @@ -15103,7 +15172,6 @@ define('aurelia-path',['exports'], function (exports) { for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split('='); var key = decodeURIComponent(pair[0]); - var isPrimitive = false; if (!key) { continue; } @@ -15116,7 +15184,6 @@ define('aurelia-path',['exports'], function (exports) { keys = keys.shift().split('[').concat(keys); keysLastIndex = keys.length - 1; } else { - isPrimitive = true; keysLastIndex = 0; } @@ -15125,7 +15192,7 @@ define('aurelia-path',['exports'], function (exports) { if (keysLastIndex) { parseComplexParam(queryParams, keys, value); } else { - queryParams[key] = processScalarParam(queryParams[key], value, isPrimitive); + queryParams[key] = processScalarParam(queryParams[key], value); } } else { queryParams[key] = true; @@ -16061,10 +16128,11 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports }(); var DynamicSegment = exports.DynamicSegment = function () { - function DynamicSegment(name) { + function DynamicSegment(name, optional) { this.name = name; + this.optional = optional; } DynamicSegment.prototype.eachChar = function eachChar(callback) { @@ -16072,7 +16140,7 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports }; DynamicSegment.prototype.regex = function regex() { - return '([^/]+)'; + return this.optional ? '([^/]+)?' : '([^/]+)'; }; DynamicSegment.prototype.generate = function generate(params, consumed) { @@ -16148,6 +16216,7 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports var names = []; var routeName = route.handler.name; var isEmpty = true; + var isAllOptional = true; var segments = parse(route.path, names, types, route.caseSensitive); for (var i = 0, ii = segments.length; i < ii; i++) { @@ -16157,17 +16226,22 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports } isEmpty = false; - - currentState = currentState.put({ validChars: '/' }); - regex += '/'; + isAllOptional = isAllOptional && segment.optional; currentState = addSegment(currentState, segment); + regex += segment.optional ? '/?' : '/'; regex += segment.regex(); } - if (isEmpty) { - currentState = currentState.put({ validChars: '/' }); - regex += '/'; + if (isAllOptional) { + if (isEmpty) { + currentState = currentState.put({ validChars: '/' }); + regex += '/'; + } else { + var finalState = this.rootState.put({ validChars: '/' }); + currentState.epsilon = [finalState]; + currentState = finalState; + } } var handlers = [{ handler: route.handler, names: names }]; @@ -16225,13 +16299,15 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports continue; } - output += '/'; var segmentValue = segment.generate(routeParams, consumed); if (segmentValue === null || segmentValue === undefined) { - throw new Error('A value is required for route parameter \'' + segment.name + '\' in route \'' + name + '\'.'); + if (!segment.optional) { + throw new Error('A value is required for route parameter \'' + segment.name + '\' in route \'' + name + '\'.'); + } + } else { + output += '/'; + output += segmentValue; } - - output += segmentValue; } if (output.charAt(0) !== '/') { @@ -16325,15 +16401,23 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports var splitRoute = normalizedRoute.split('/'); for (var i = 0, ii = splitRoute.length; i < ii; ++i) { var segment = splitRoute[i]; - var match = segment.match(/^:([^\/]+)$/); + + var match = segment.match(/^:([^?]+)(\?)?$/); if (match) { - results.push(new DynamicSegment(match[1])); - names.push(match[1]); + var _match = match; + var _name = _match[1]; + var optional = _match[2]; + + if (_name.indexOf('=') !== -1) { + throw new Error('Parameter ' + _name + ' in route ' + route + ' has a default value, which is not supported.'); + } + results.push(new DynamicSegment(_name, !!optional)); + names.push(_name); types.dynamics++; continue; } - match = segment.match(/^\*([^\/]+)$/); + match = segment.match(/^\*(.+)$/); if (match) { results.push(new StarSegment(match[1])); names.push(match[1]); @@ -16384,6 +16468,25 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports nextStates.push.apply(nextStates, state.match(ch)); } + var skippableStates = nextStates.filter(function (s) { + return s.epsilon; + }); + + var _loop = function _loop() { + var newStates = []; + skippableStates.forEach(function (s) { + nextStates.push.apply(nextStates, s.epsilon); + newStates.push.apply(newStates, s.epsilon); + }); + skippableStates = newStates.filter(function (s) { + return s.epsilon; + }); + }; + + while (skippableStates.length > 0) { + _loop(); + } + return nextStates; } @@ -16410,11 +16513,16 @@ define('aurelia-route-recognizer',['exports', 'aurelia-path'], function (exports } function addSegment(currentState, segment) { - var state = currentState; + var state = currentState.put({ validChars: '/' }); segment.eachChar(function (ch) { state = state.put(ch); }); + if (segment.optional) { + currentState.epsilon = currentState.epsilon || []; + currentState.epsilon.push(state); + } + return state; } }); @@ -18307,6 +18415,8 @@ define('aurelia-task-queue',['exports', 'aurelia-pal'], function (exports, _aure + this.flushing = false; + this.microTaskQueue = []; this.microTaskQueueCapacity = 1024; this.taskQueue = []; @@ -18350,6 +18460,7 @@ define('aurelia-task-queue',['exports', 'aurelia-pal'], function (exports, _aure this.taskQueue = []; try { + this.flushing = true; while (index < queue.length) { task = queue[index]; task.call(); @@ -18357,6 +18468,8 @@ define('aurelia-task-queue',['exports', 'aurelia-pal'], function (exports, _aure } } catch (error) { onError(error, task); + } finally { + this.flushing = false; } }; @@ -18367,6 +18480,7 @@ define('aurelia-task-queue',['exports', 'aurelia-pal'], function (exports, _aure var task = void 0; try { + this.flushing = true; while (index < queue.length) { task = queue[index]; task.call(); @@ -18383,6 +18497,8 @@ define('aurelia-task-queue',['exports', 'aurelia-pal'], function (exports, _aure } } catch (error) { onError(error, task); + } finally { + this.flushing = false; } queue.length = 0; @@ -21907,13 +22023,17 @@ define('aurelia-templating',['exports', 'aurelia-logging', 'aurelia-metadata', ' var oldValue = this.currentValue; if (oldValue !== newValue) { - if (this.publishing && this.notqueued) { - this.notqueued = false; - this.taskQueue.queueMicroTask(this); - } - this.oldValue = oldValue; this.currentValue = newValue; + + if (this.publishing && this.notqueued) { + if (this.taskQueue.flushing) { + this.call(); + } else { + this.notqueued = false; + this.taskQueue.queueMicroTask(this); + } + } } }; @@ -23134,6 +23254,10 @@ define('aurelia-templating',['exports', 'aurelia-logging', 'aurelia-metadata', ' } function viewResources() { + for (var _len = arguments.length, resources = Array(_len), _key = 0; _key < _len; _key++) { + resources[_key] = arguments[_key]; + } + return function (target) { _aureliaMetadata.metadata.define(ViewEngine.viewModelRequireMetadataKey, resources, target); }; @@ -24881,6 +25005,11 @@ if (typeof jQuery === 'undefined') { switch (clickEvent.keyCode) { case 9: // TAB case 13: // ENTER + case 16: // SHIFT + case 17: // CTRL + case 18: // ALT + case 33: // PAGEUP + case 34: // PAGEDOWN case 40: // DOWN case 38: // UP case 27: // ESC @@ -25597,6 +25726,28 @@ define('wurl',['require','exports','module'],function (require, exports, module) arrayBuffer: 'ArrayBuffer' in self } + if (support.arrayBuffer) { + var viewClasses = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]' + ] + + var isDataView = function(obj) { + return obj && DataView.prototype.isPrototypeOf(obj) + } + + var isArrayBufferView = ArrayBuffer.isView || function(obj) { + return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 + } + } + function normalizeName(name) { if (typeof name !== 'string') { name = String(name) @@ -25650,12 +25801,8 @@ define('wurl',['require','exports','module'],function (require, exports, module) Headers.prototype.append = function(name, value) { name = normalizeName(name) value = normalizeValue(value) - var list = this.map[name] - if (!list) { - list = [] - this.map[name] = list - } - list.push(value) + var oldValue = this.map[name] + this.map[name] = oldValue ? oldValue+','+value : value } Headers.prototype['delete'] = function(name) { @@ -25663,12 +25810,8 @@ define('wurl',['require','exports','module'],function (require, exports, module) } Headers.prototype.get = function(name) { - var values = this.map[normalizeName(name)] - return values ? values[0] : null - } - - Headers.prototype.getAll = function(name) { - return this.map[normalizeName(name)] || [] + name = normalizeName(name) + return this.has(name) ? this.map[name] : null } Headers.prototype.has = function(name) { @@ -25676,15 +25819,15 @@ define('wurl',['require','exports','module'],function (require, exports, module) } Headers.prototype.set = function(name, value) { - this.map[normalizeName(name)] = [normalizeValue(value)] + this.map[normalizeName(name)] = normalizeValue(value) } Headers.prototype.forEach = function(callback, thisArg) { - Object.getOwnPropertyNames(this.map).forEach(function(name) { - this.map[name].forEach(function(value) { - callback.call(thisArg, value, name, this) - }, this) - }, this) + for (var name in this.map) { + if (this.map.hasOwnProperty(name)) { + callback.call(thisArg, this.map[name], name, this) + } + } } Headers.prototype.keys = function() { @@ -25729,14 +25872,36 @@ define('wurl',['require','exports','module'],function (require, exports, module) function readBlobAsArrayBuffer(blob) { var reader = new FileReader() + var promise = fileReaderReady(reader) reader.readAsArrayBuffer(blob) - return fileReaderReady(reader) + return promise } function readBlobAsText(blob) { var reader = new FileReader() + var promise = fileReaderReady(reader) reader.readAsText(blob) - return fileReaderReady(reader) + return promise + } + + function readArrayBufferAsText(buf) { + var view = new Uint8Array(buf) + var chars = new Array(view.length) + + for (var i = 0; i < view.length; i++) { + chars[i] = String.fromCharCode(view[i]) + } + return chars.join('') + } + + function bufferClone(buf) { + if (buf.slice) { + return buf.slice(0) + } else { + var view = new Uint8Array(buf.byteLength) + view.set(new Uint8Array(buf)) + return view.buffer + } } function Body() { @@ -25744,7 +25909,9 @@ define('wurl',['require','exports','module'],function (require, exports, module) this._initBody = function(body) { this._bodyInit = body - if (typeof body === 'string') { + if (!body) { + this._bodyText = '' + } else if (typeof body === 'string') { this._bodyText = body } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { this._bodyBlob = body @@ -25752,11 +25919,12 @@ define('wurl',['require','exports','module'],function (require, exports, module) this._bodyFormData = body } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { this._bodyText = body.toString() - } else if (!body) { - this._bodyText = '' - } else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) { - // Only support ArrayBuffers for POST method. - // Receiving ArrayBuffers happens via Blobs, instead. + } else if (support.arrayBuffer && support.blob && isDataView(body)) { + this._bodyArrayBuffer = bufferClone(body.buffer) + // IE 10-11 can't handle a DataView body. + this._bodyInit = new Blob([this._bodyArrayBuffer]) + } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { + this._bodyArrayBuffer = bufferClone(body) } else { throw new Error('unsupported BodyInit type') } @@ -25781,6 +25949,8 @@ define('wurl',['require','exports','module'],function (require, exports, module) if (this._bodyBlob) { return Promise.resolve(this._bodyBlob) + } else if (this._bodyArrayBuffer) { + return Promise.resolve(new Blob([this._bodyArrayBuffer])) } else if (this._bodyFormData) { throw new Error('could not read FormData body as blob') } else { @@ -25789,27 +25959,28 @@ define('wurl',['require','exports','module'],function (require, exports, module) } this.arrayBuffer = function() { - return this.blob().then(readBlobAsArrayBuffer) - } - - this.text = function() { - var rejected = consumed(this) - if (rejected) { - return rejected - } - - if (this._bodyBlob) { - return readBlobAsText(this._bodyBlob) - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as text') + if (this._bodyArrayBuffer) { + return consumed(this) || Promise.resolve(this._bodyArrayBuffer) } else { - return Promise.resolve(this._bodyText) + return this.blob().then(readBlobAsArrayBuffer) } } - } else { - this.text = function() { - var rejected = consumed(this) - return rejected ? rejected : Promise.resolve(this._bodyText) + } + + this.text = function() { + var rejected = consumed(this) + if (rejected) { + return rejected + } + + if (this._bodyBlob) { + return readBlobAsText(this._bodyBlob) + } else if (this._bodyArrayBuffer) { + return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) + } else if (this._bodyFormData) { + throw new Error('could not read FormData body as text') + } else { + return Promise.resolve(this._bodyText) } } @@ -25837,7 +26008,10 @@ define('wurl',['require','exports','module'],function (require, exports, module) function Request(input, options) { options = options || {} var body = options.body - if (Request.prototype.isPrototypeOf(input)) { + + if (typeof input === 'string') { + this.url = input + } else { if (input.bodyUsed) { throw new TypeError('Already read') } @@ -25848,12 +26022,10 @@ define('wurl',['require','exports','module'],function (require, exports, module) } this.method = input.method this.mode = input.mode - if (!body) { + if (!body && input._bodyInit != null) { body = input._bodyInit input.bodyUsed = true } - } else { - this.url = input } this.credentials = options.credentials || this.credentials || 'omit' @@ -25871,7 +26043,7 @@ define('wurl',['require','exports','module'],function (require, exports, module) } Request.prototype.clone = function() { - return new Request(this) + return new Request(this, { body: this._bodyInit }) } function decode(body) { @@ -25887,16 +26059,17 @@ define('wurl',['require','exports','module'],function (require, exports, module) return form } - function headers(xhr) { - var head = new Headers() - var pairs = (xhr.getAllResponseHeaders() || '').trim().split('\n') - pairs.forEach(function(header) { - var split = header.trim().split(':') - var key = split.shift().trim() - var value = split.join(':').trim() - head.append(key, value) + function parseHeaders(rawHeaders) { + var headers = new Headers() + rawHeaders.split('\r\n').forEach(function(line) { + var parts = line.split(':') + var key = parts.shift().trim() + if (key) { + var value = parts.join(':').trim() + headers.append(key, value) + } }) - return head + return headers } Body.call(Request.prototype) @@ -25907,10 +26080,10 @@ define('wurl',['require','exports','module'],function (require, exports, module) } this.type = 'default' - this.status = options.status + this.status = 'status' in options ? options.status : 200 this.ok = this.status >= 200 && this.status < 300 - this.statusText = options.statusText - this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers) + this.statusText = 'statusText' in options ? options.statusText : 'OK' + this.headers = new Headers(options.headers) this.url = options.url || '' this._initBody(bodyInit) } @@ -25948,35 +26121,16 @@ define('wurl',['require','exports','module'],function (require, exports, module) self.fetch = function(input, init) { return new Promise(function(resolve, reject) { - var request - if (Request.prototype.isPrototypeOf(input) && !init) { - request = input - } else { - request = new Request(input, init) - } - + var request = new Request(input, init) var xhr = new XMLHttpRequest() - function responseURL() { - if ('responseURL' in xhr) { - return xhr.responseURL - } - - // Avoid security warnings on getResponseHeader when not allowed by CORS - if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) { - return xhr.getResponseHeader('X-Request-URL') - } - - return - } - xhr.onload = function() { var options = { status: xhr.status, statusText: xhr.statusText, - headers: headers(xhr), - url: responseURL() + headers: parseHeaders(xhr.getAllResponseHeaders() || '') } + options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') var body = 'response' in xhr ? xhr.response : xhr.responseText resolve(new Response(body, options)) } @@ -26023,8 +26177,8 @@ module.exports = self.fetch.bind(self); /** * @license - * lodash - * Copyright jQuery Foundation and other contributors + * Lodash + * Copyright JS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors @@ -26035,42 +26189,51 @@ module.exports = self.fetch.bind(self); var undefined; /** Used as the semantic version number. */ - var VERSION = '4.15.0'; + var VERSION = '4.17.2'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; + /** Error message constants. */ + var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', + FUNC_ERROR_TEXT = 'Expected a function'; /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + /** Used as the internal argument placeholder. */ var PLACEHOLDER = '__lodash_placeholder__'; + /** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + /** Used to compose bitmasks for function metadata. */ - var BIND_FLAG = 1, - BIND_KEY_FLAG = 2, - CURRY_BOUND_FLAG = 4, - CURRY_FLAG = 8, - CURRY_RIGHT_FLAG = 16, - PARTIAL_FLAG = 32, - PARTIAL_RIGHT_FLAG = 64, - ARY_FLAG = 128, - REARG_FLAG = 256, - FLIP_FLAG = 512; - - /** Used to compose bitmasks for comparison styles. */ - var UNORDERED_COMPARE_FLAG = 1, - PARTIAL_COMPARE_FLAG = 2; + var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256, + WRAP_FLIP_FLAG = 512; /** Used as default options for `_.truncate`. */ var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = '...'; /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 150, + var HOT_COUNT = 800, HOT_SPAN = 16; /** Used to indicate the type of lazy iteratees. */ @@ -26091,33 +26254,38 @@ module.exports = self.fetch.bind(self); /** Used to associate wrap methods with their bit flags. */ var wrapFlags = [ - ['ary', ARY_FLAG], - ['bind', BIND_FLAG], - ['bindKey', BIND_KEY_FLAG], - ['curry', CURRY_FLAG], - ['curryRight', CURRY_RIGHT_FLAG], - ['flip', FLIP_FLAG], - ['partial', PARTIAL_FLAG], - ['partialRight', PARTIAL_RIGHT_FLAG], - ['rearg', REARG_FLAG] + ['ary', WRAP_ARY_FLAG], + ['bind', WRAP_BIND_FLAG], + ['bindKey', WRAP_BIND_KEY_FLAG], + ['curry', WRAP_CURRY_FLAG], + ['curryRight', WRAP_CURRY_RIGHT_FLAG], + ['flip', WRAP_FLIP_FLAG], + ['partial', WRAP_PARTIAL_FLAG], + ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], + ['rearg', WRAP_REARG_FLAG] ]; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', boolTag = '[object Boolean]', dateTag = '[object Date]', + domExcTag = '[object DOMException]', errorTag = '[object Error]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', mapTag = '[object Map]', numberTag = '[object Number]', + nullTag = '[object Null]', objectTag = '[object Object]', promiseTag = '[object Promise]', + proxyTag = '[object Proxy]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]', + undefinedTag = '[object Undefined]', weakMapTag = '[object WeakMap]', weakSetTag = '[object WeakSet]'; @@ -26139,8 +26307,8 @@ module.exports = self.fetch.bind(self); reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39|#96);/g, - reUnescapedHtml = /[&<>"'`]/g, + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, + reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); @@ -26187,9 +26355,6 @@ module.exports = self.fetch.bind(self); /** Used to match `RegExp` flags from their coerced string values. */ var reFlags = /\w*$/; - /** Used to detect hexadecimal string values. */ - var reHasHexPrefix = /^0x/i; - /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; @@ -26216,8 +26381,10 @@ module.exports = self.fetch.bind(self); /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', - rsComboSymbolsRange = '\\u20d0-\\u20f0', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = '\\u2700-\\u27bf', rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', @@ -26232,7 +26399,7 @@ module.exports = self.fetch.bind(self); var rsApos = "['\u2019]", rsAstral = '[' + rsAstralRange + ']', rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', + rsCombo = '[' + rsComboRange + ']', rsDigits = '\\d+', rsDingbat = '[' + rsDingbatRange + ']', rsLower = '[' + rsLowerRange + ']', @@ -26246,13 +26413,15 @@ module.exports = self.fetch.bind(self); rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ - var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')', - rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)', + rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; @@ -26271,16 +26440,18 @@ module.exports = self.fetch.bind(self); /** Used to match complex or compound words. */ var reUnicodeWord = RegExp([ - rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', - rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')', - rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr, - rsUpper + '+' + rsOptUpperContr, + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, rsDigits, rsEmoji ].join('|'), 'g'); /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); + var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); /** Used to detect strings that need a more robust regexp to match words. */ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; @@ -26384,7 +26555,7 @@ module.exports = self.fetch.bind(self); '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', '\u0132': 'IJ', '\u0133': 'ij', '\u0152': 'Oe', '\u0153': 'oe', - '\u0149': "'n", '\u017f': 'ss' + '\u0149': "'n", '\u017f': 's' }; /** Used to map characters to HTML entities. */ @@ -26393,8 +26564,7 @@ module.exports = self.fetch.bind(self); '<': '<', '>': '>', '"': '"', - "'": ''', - '`': '`' + "'": ''' }; /** Used to map HTML entities to characters. */ @@ -26403,8 +26573,7 @@ module.exports = self.fetch.bind(self); '<': '<', '>': '>', '"': '"', - ''': "'", - '`': '`' + ''': "'" }; /** Used to escape characters for inclusion in compiled string literals. */ @@ -26445,7 +26614,7 @@ module.exports = self.fetch.bind(self); /** Used to access faster Node.js helpers. */ var nodeUtil = (function() { try { - return freeProcess && freeProcess.binding('util'); + return freeProcess && freeProcess.binding && freeProcess.binding('util'); } catch (e) {} }()); @@ -26519,7 +26688,7 @@ module.exports = self.fetch.bind(self); */ function arrayAggregator(array, setter, iteratee, accumulator) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; while (++index < length) { var value = array[index]; @@ -26539,7 +26708,7 @@ module.exports = self.fetch.bind(self); */ function arrayEach(array, iteratee) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; while (++index < length) { if (iteratee(array[index], index, array) === false) { @@ -26559,7 +26728,7 @@ module.exports = self.fetch.bind(self); * @returns {Array} Returns `array`. */ function arrayEachRight(array, iteratee) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; while (length--) { if (iteratee(array[length], length, array) === false) { @@ -26581,7 +26750,7 @@ module.exports = self.fetch.bind(self); */ function arrayEvery(array, predicate) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; while (++index < length) { if (!predicate(array[index], index, array)) { @@ -26602,7 +26771,7 @@ module.exports = self.fetch.bind(self); */ function arrayFilter(array, predicate) { var index = -1, - length = array ? array.length : 0, + length = array == null ? 0 : array.length, resIndex = 0, result = []; @@ -26625,7 +26794,7 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if `target` is found, else `false`. */ function arrayIncludes(array, value) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return !!length && baseIndexOf(array, value, 0) > -1; } @@ -26640,7 +26809,7 @@ module.exports = self.fetch.bind(self); */ function arrayIncludesWith(array, value, comparator) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; while (++index < length) { if (comparator(value, array[index])) { @@ -26661,7 +26830,7 @@ module.exports = self.fetch.bind(self); */ function arrayMap(array, iteratee) { var index = -1, - length = array ? array.length : 0, + length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { @@ -26703,7 +26872,7 @@ module.exports = self.fetch.bind(self); */ function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index]; @@ -26727,7 +26896,7 @@ module.exports = self.fetch.bind(self); * @returns {*} Returns the accumulated value. */ function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[--length]; } @@ -26749,7 +26918,7 @@ module.exports = self.fetch.bind(self); */ function arraySome(array, predicate) { var index = -1, - length = array ? array.length : 0; + length = array == null ? 0 : array.length; while (++index < length) { if (predicate(array[index], index, array)) { @@ -26845,18 +27014,9 @@ module.exports = self.fetch.bind(self); * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return baseFindIndex(array, baseIsNaN, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); } /** @@ -26902,7 +27062,7 @@ module.exports = self.fetch.bind(self); * @returns {number} Returns the mean. */ function baseMean(array, iteratee) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? (baseSum(array, iteratee) / length) : NAN; } @@ -27061,7 +27221,7 @@ module.exports = self.fetch.bind(self); } /** - * Checks if a cache value for `key` exists. + * Checks if a `cache` value for `key` exists. * * @private * @param {Object} cache The cache to query. @@ -27119,7 +27279,7 @@ module.exports = self.fetch.bind(self); while (length--) { if (array[length] === placeholder) { - result++; + ++result; } } return result; @@ -27189,25 +27349,6 @@ module.exports = self.fetch.bind(self); return reHasUnicodeWord.test(string); } - /** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ - function isHostObject(value) { - // Many host objects are `Object` objects that can coerce to strings - // despite having improperly defined `toString` methods. - var result = false; - if (value != null && typeof value.toString != 'function') { - try { - result = !!(value + ''); - } catch (e) {} - } - return result; - } - /** * Converts `iterator` to an array. * @@ -27315,6 +27456,48 @@ module.exports = self.fetch.bind(self); return result; } + /** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + /** * Gets the number of symbols in `string`. * @@ -27360,7 +27543,7 @@ module.exports = self.fetch.bind(self); function unicodeSize(string) { var result = reUnicode.lastIndex = 0; while (reUnicode.test(string)) { - result++; + ++result; } return result; } @@ -27415,18 +27598,11 @@ module.exports = self.fetch.bind(self); * lodash.isFunction(lodash.bar); * // => true * - * // Use `context` to stub `Date#getTime` use in `_.now`. - * var stubbed = _.runInContext({ - * 'Date': function() { - * return { 'getTime': stubGetTime }; - * } - * }); - * * // Create a suped-up `defer` in Node.js. * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; */ - function runInContext(context) { - context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root; + var runInContext = (function runInContext(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); /** Built-in constructor references. */ var Array = context.Array, @@ -27447,12 +27623,6 @@ module.exports = self.fetch.bind(self); /** Used to detect overreaching core-js shims. */ var coreJsData = context['__core-js_shared__']; - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; @@ -27462,15 +27632,21 @@ module.exports = self.fetch.bind(self); /** Used to generate unique IDs. */ var idCounter = 0; - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ - var objectToString = objectProto.toString; + var nativeObjectToString = objectProto.toString; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); /** Used to restore the original `_` reference in `_.noConflict`. */ var oldDash = root._; @@ -27485,12 +27661,22 @@ module.exports = self.fetch.bind(self); var Buffer = moduleExports ? context.Buffer : undefined, Symbol = context.Symbol, Uint8Array = context.Uint8Array, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, getPrototype = overArg(Object.getPrototypeOf, Object), - iteratorSymbol = Symbol ? Symbol.iterator : undefined, objectCreate = Object.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, + symIterator = Symbol ? Symbol.iterator : undefined, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); /** Mocked built-ins. */ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, @@ -27507,6 +27693,7 @@ module.exports = self.fetch.bind(self); nativeKeys = overArg(Object.keys, Object), nativeMax = Math.max, nativeMin = Math.min, + nativeNow = Date.now, nativeParseInt = context.parseInt, nativeRandom = Math.random, nativeReverse = arrayProto.reverse; @@ -27519,20 +27706,9 @@ module.exports = self.fetch.bind(self); WeakMap = getNative(context, 'WeakMap'), nativeCreate = getNative(Object, 'create'); - /* Used to set `toString` methods. */ - var defineProperty = (function() { - var func = getNative(Object, 'defineProperty'), - name = getNative.name; - - return (name && name.length > 2) ? func : undefined; - }()); - /** Used to store function metadata. */ var metaMap = WeakMap && new WeakMap; - /** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */ - var nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf'); - /** Used to lookup unminified function names. */ var realNames = {}; @@ -27679,6 +27855,30 @@ module.exports = self.fetch.bind(self); return new LodashWrapper(value); } + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + /** * The function whose prototype chain sequence wrappers inherit from. * @@ -27902,7 +28102,7 @@ module.exports = self.fetch.bind(self); */ function Hash(entries) { var index = -1, - length = entries ? entries.length : 0; + length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { @@ -27920,6 +28120,7 @@ module.exports = self.fetch.bind(self); */ function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; } /** @@ -27933,7 +28134,9 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function hashDelete(key) { - return this.has(key) && delete this.__data__[key]; + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; } /** @@ -27980,6 +28183,7 @@ module.exports = self.fetch.bind(self); */ function hashSet(key, value) { var data = this.__data__; + this.size += this.has(key) ? 0 : 1; data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; return this; } @@ -28002,7 +28206,7 @@ module.exports = self.fetch.bind(self); */ function ListCache(entries) { var index = -1, - length = entries ? entries.length : 0; + length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { @@ -28020,6 +28224,7 @@ module.exports = self.fetch.bind(self); */ function listCacheClear() { this.__data__ = []; + this.size = 0; } /** @@ -28044,6 +28249,7 @@ module.exports = self.fetch.bind(self); } else { splice.call(data, index, 1); } + --this.size; return true; } @@ -28091,6 +28297,7 @@ module.exports = self.fetch.bind(self); index = assocIndexOf(data, key); if (index < 0) { + ++this.size; data.push([key, value]); } else { data[index][1] = value; @@ -28116,7 +28323,7 @@ module.exports = self.fetch.bind(self); */ function MapCache(entries) { var index = -1, - length = entries ? entries.length : 0; + length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { @@ -28133,6 +28340,7 @@ module.exports = self.fetch.bind(self); * @memberOf MapCache */ function mapCacheClear() { + this.size = 0; this.__data__ = { 'hash': new Hash, 'map': new (Map || ListCache), @@ -28150,7 +28358,9 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function mapCacheDelete(key) { - return getMapData(this, key)['delete'](key); + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; } /** @@ -28190,7 +28400,11 @@ module.exports = self.fetch.bind(self); * @returns {Object} Returns the map cache instance. */ function mapCacheSet(key, value) { - getMapData(this, key).set(key, value); + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; return this; } @@ -28213,7 +28427,7 @@ module.exports = self.fetch.bind(self); */ function SetCache(values) { var index = -1, - length = values ? values.length : 0; + length = values == null ? 0 : values.length; this.__data__ = new MapCache; while (++index < length) { @@ -28263,7 +28477,8 @@ module.exports = self.fetch.bind(self); * @param {Array} [entries] The key-value pairs to cache. */ function Stack(entries) { - this.__data__ = new ListCache(entries); + var data = this.__data__ = new ListCache(entries); + this.size = data.size; } /** @@ -28275,6 +28490,7 @@ module.exports = self.fetch.bind(self); */ function stackClear() { this.__data__ = new ListCache; + this.size = 0; } /** @@ -28287,7 +28503,11 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function stackDelete(key) { - return this.__data__['delete'](key); + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; } /** @@ -28327,16 +28547,18 @@ module.exports = self.fetch.bind(self); * @returns {Object} Returns the stack cache instance. */ function stackSet(key, value) { - var cache = this.__data__; - if (cache instanceof ListCache) { - var pairs = cache.__data__; + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { pairs.push([key, value]); + this.size = ++data.size; return this; } - cache = this.__data__ = new MapCache(pairs); + data = this.__data__ = new MapCache(pairs); } - cache.set(key, value); + data.set(key, value); + this.size = data.size; return this; } @@ -28358,24 +28580,67 @@ module.exports = self.fetch.bind(self); * @returns {Array} Returns the array of property names. */ function arrayLikeKeys(value, inherited) { - // Safari 8.1 makes `arguments.callee` enumerable in strict mode. - // Safari 9 makes `arguments.length` enumerable in strict mode. - var result = (isArray(value) || isArguments(value)) - ? baseTimes(value.length, String) - : []; - - var length = result.length, - skipIndexes = !!length; + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && (key == 'length' || isIndex(key, length)))) { + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { result.push(key); } } return result; } + /** + * A specialized version of `_.sample` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @returns {*} Returns the random element. + */ + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined; + } + + /** + * A specialized version of `_.sampleSize` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + + /** + * A specialized version of `_.shuffle` for arrays. + * + * @private + * @param {Array} array The array to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + /** * Used by `_.defaults` to customize its `_.assignIn` use. * @@ -28405,8 +28670,8 @@ module.exports = self.fetch.bind(self); */ function assignMergeValue(object, key, value) { if ((value !== undefined && !eq(object[key], value)) || - (typeof key == 'number' && value === undefined && !(key in object))) { - object[key] = value; + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); } } @@ -28424,7 +28689,7 @@ module.exports = self.fetch.bind(self); var objValue = object[key]; if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) { - object[key] = value; + baseAssignValue(object, key, value); } } @@ -28477,22 +28742,57 @@ module.exports = self.fetch.bind(self); return object && copyObject(source, keys(source), object); } + /** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + /** * The base implementation of `_.at` without support for individual paths. * * @private * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths of elements to pick. + * @param {string[]} paths The property paths to pick. * @returns {Array} Returns the picked elements. */ function baseAt(object, paths) { var index = -1, - isNil = object == null, length = paths.length, - result = Array(length); + result = Array(length), + skip = object == null; while (++index < length) { - result[index] = isNil ? undefined : get(object, paths[index]); + result[index] = skip ? undefined : get(object, paths[index]); } return result; } @@ -28524,16 +28824,22 @@ module.exports = self.fetch.bind(self); * * @private * @param {*} value The value to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @param {boolean} [isFull] Specify a clone including symbols. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols * @param {Function} [customizer] The function to customize cloning. * @param {string} [key] The key of `value`. * @param {Object} [object] The parent object of `value`. * @param {Object} [stack] Tracks traversed objects and their clone counterparts. * @returns {*} Returns the cloned value. */ - function baseClone(value, isDeep, isFull, customizer, key, object, stack) { - var result; + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { result = object ? customizer(value, key, object, stack) : customizer(value); } @@ -28557,12 +28863,11 @@ module.exports = self.fetch.bind(self); return cloneBuffer(value, isDeep); } if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - if (isHostObject(value)) { - return object ? value : {}; - } - result = initCloneObject(isFunc ? {} : value); + result = (isFlat || isFunc) ? {} : initCloneObject(value); if (!isDeep) { - return copySymbols(value, baseAssign(result, value)); + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); } } else { if (!cloneableTags[tag]) { @@ -28579,16 +28884,18 @@ module.exports = self.fetch.bind(self); } stack.set(value, result); - if (!isArr) { - var props = isFull ? getAllKeys(value) : keys(value); - } + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); arrayEach(props || value, function(subValue, key) { if (props) { key = subValue; subValue = value[key]; } // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack)); + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); }); return result; } @@ -28633,18 +28940,6 @@ module.exports = self.fetch.bind(self); return true; } - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. - */ - function baseCreate(proto) { - return isObject(proto) ? objectCreate(proto) : {}; - } - /** * The base implementation of `_.delay` and `_.defer` which accepts `args` * to provide to `func`. @@ -28699,7 +28994,7 @@ module.exports = self.fetch.bind(self); outer: while (++index < length) { var value = array[index], - computed = iteratee ? iteratee(value) : value; + computed = iteratee == null ? value : iteratee(value); value = (comparator || value !== 0) ? value : 0; if (isCommon && computed === computed) { @@ -28938,7 +29233,7 @@ module.exports = self.fetch.bind(self); * @returns {*} Returns the resolved value. */ function baseGet(object, path) { - path = isKey(path, object) ? [path] : castPath(path); + path = castPath(path, object); var index = 0, length = path.length; @@ -28966,14 +29261,20 @@ module.exports = self.fetch.bind(self); } /** - * The base implementation of `getTag`. + * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { - return objectToString.call(value); + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + value = Object(value); + return (symToStringTag && symToStringTag in value) + ? getRawTag(value) + : objectToString(value); } /** @@ -29118,15 +29419,23 @@ module.exports = self.fetch.bind(self); * @returns {*} Returns the result of the invoked method. */ function baseInvoke(object, path, args) { - if (!isKey(path, object)) { - path = castPath(path); - object = parent(object, path); - path = last(path); - } - var func = object == null ? object : object[toKey(path)]; + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; return func == null ? undefined : apply(func, object, args); } + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + /** * The base implementation of `_.isArrayBuffer` without Node.js optimizations. * @@ -29135,7 +29444,7 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. */ function baseIsArrayBuffer(value) { - return isObjectLike(value) && objectToString.call(value) == arrayBufferTag; + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; } /** @@ -29146,7 +29455,7 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if `value` is a date object, else `false`. */ function baseIsDate(value) { - return isObjectLike(value) && objectToString.call(value) == dateTag; + return isObjectLike(value) && baseGetTag(value) == dateTag; } /** @@ -29156,22 +29465,21 @@ module.exports = self.fetch.bind(self); * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison * @param {Function} [customizer] The function to customize comparisons. - * @param {boolean} [bitmask] The bitmask of comparison flags. - * The bitmask may be composed of the following flags: - * 1 - Unordered comparison - * 2 - Partial comparison * @param {Object} [stack] Tracks traversed `value` and `other` objects. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ - function baseIsEqual(value, other, customizer, bitmask, stack) { + function baseIsEqual(value, other, bitmask, customizer, stack) { if (value === other) { return true; } if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { return value !== value && other !== other; } - return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack); + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } /** @@ -29182,14 +29490,13 @@ module.exports = self.fetch.bind(self); * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparisons. - * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` - * for more details. * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) { + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = arrayTag, @@ -29203,17 +29510,24 @@ module.exports = self.fetch.bind(self); othTag = getTag(other); othTag = othTag == argsTag ? objectTag : othTag; } - var objIsObj = objTag == objectTag && !isHostObject(object), - othIsObj = othTag == objectTag && !isHostObject(other), + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } if (isSameTag && !objIsObj) { stack || (stack = new Stack); return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, equalFunc, customizer, bitmask, stack) - : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack); + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); } - if (!(bitmask & PARTIAL_COMPARE_FLAG)) { + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); @@ -29222,14 +29536,14 @@ module.exports = self.fetch.bind(self); othUnwrapped = othIsWrapped ? other.value() : other; stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack); - return equalObjects(object, other, equalFunc, customizer, bitmask, stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); } /** @@ -29287,7 +29601,7 @@ module.exports = self.fetch.bind(self); var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === undefined - ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack) + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result )) { return false; @@ -29309,7 +29623,7 @@ module.exports = self.fetch.bind(self); if (!isObject(value) || isMasked(value)) { return false; } - var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } @@ -29321,7 +29635,7 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. */ function baseIsRegExp(value) { - return isObject(value) && objectToString.call(value) == regexpTag; + return isObjectLike(value) && baseGetTag(value) == regexpTag; } /** @@ -29344,7 +29658,7 @@ module.exports = self.fetch.bind(self); */ function baseIsTypedArray(value) { return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[objectToString.call(value)]; + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; } /** @@ -29477,7 +29791,7 @@ module.exports = self.fetch.bind(self); var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG); + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); }; } @@ -29496,14 +29810,7 @@ module.exports = self.fetch.bind(self); if (object === source) { return; } - if (!(isArray(source) || isTypedArray(source))) { - var props = baseKeysIn(source); - } - arrayEach(props || source, function(srcValue, key) { - if (props) { - key = srcValue; - srcValue = source[key]; - } + baseFor(source, function(srcValue, key) { if (isObject(srcValue)) { stack || (stack = new Stack); baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); @@ -29518,7 +29825,7 @@ module.exports = self.fetch.bind(self); } assignMergeValue(object, key, newValue); } - }); + }, keysIn); } /** @@ -29552,29 +29859,37 @@ module.exports = self.fetch.bind(self); var isCommon = newValue === undefined; if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; - if (isArray(srcValue) || isTypedArray(srcValue)) { + if (isArr || isBuff || isTyped) { if (isArray(objValue)) { newValue = objValue; } else if (isArrayLikeObject(objValue)) { newValue = copyArray(objValue); } - else { + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { isCommon = false; - newValue = baseClone(srcValue, true); + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; if (isArguments(objValue)) { newValue = toPlainObject(objValue); } else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { - isCommon = false; - newValue = baseClone(srcValue, true); - } - else { - newValue = objValue; + newValue = initCloneObject(srcValue); } } else { @@ -29638,13 +29953,13 @@ module.exports = self.fetch.bind(self); * * @private * @param {Object} object The source object. - * @param {string[]} props The property identifiers to pick. + * @param {string[]} paths The property paths to pick. * @returns {Object} Returns the new object. */ - function basePick(object, props) { + function basePick(object, paths) { object = Object(object); - return basePickBy(object, props, function(value, key) { - return key in object; + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); }); } @@ -29653,21 +29968,21 @@ module.exports = self.fetch.bind(self); * * @private * @param {Object} object The source object. - * @param {string[]} props The property identifiers to pick from. + * @param {string[]} paths The property paths to pick. * @param {Function} predicate The function invoked per property. * @returns {Object} Returns the new object. */ - function basePickBy(object, props, predicate) { + function basePickBy(object, paths, predicate) { var index = -1, - length = props.length, + length = paths.length, result = {}; while (++index < length) { - var key = props[index], - value = object[key]; + var path = paths[index], + value = baseGet(object, path); - if (predicate(value, key)) { - result[key] = value; + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); } } return result; @@ -29743,17 +30058,8 @@ module.exports = self.fetch.bind(self); var previous = index; if (isIndex(index)) { splice.call(array, index, 1); - } - else if (!isKey(index, array)) { - var path = castPath(index), - object = parent(array, path); - - if (object != null) { - delete object[toKey(last(path))]; - } - } - else { - delete array[toKey(index)]; + } else { + baseUnset(array, index); } } } @@ -29833,24 +30139,31 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new function. */ function baseRest(func, start) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + return setToString(overRest(func, start, identity), func + ''); + } - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = array; - return apply(func, this, otherArgs); - }; + /** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */ + function baseSample(collection) { + return arraySample(values(collection)); + } + + /** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); } /** @@ -29867,7 +30180,7 @@ module.exports = self.fetch.bind(self); if (!isObject(object)) { return object; } - path = isKey(path, object) ? [path] : castPath(path); + path = castPath(path, object); var index = -1, length = path.length, @@ -29894,7 +30207,7 @@ module.exports = self.fetch.bind(self); } /** - * The base implementation of `setData` without support for hot loop detection. + * The base implementation of `setData` without support for hot loop shorting. * * @private * @param {Function} func The function to associate metadata with. @@ -29906,6 +30219,34 @@ module.exports = self.fetch.bind(self); return func; }; + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; + + /** + * The base implementation of `_.shuffle`. + * + * @private + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + /** * The base implementation of `_.slice` without an iteratee call guard. * @@ -29969,7 +30310,7 @@ module.exports = self.fetch.bind(self); */ function baseSortedIndex(array, value, retHighest) { var low = 0, - high = array ? array.length : low; + high = array == null ? low : array.length; if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { while (low < high) { @@ -30005,7 +30346,7 @@ module.exports = self.fetch.bind(self); value = iteratee(value); var low = 0, - high = array ? array.length : 0, + high = array == null ? 0 : array.length, valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), @@ -30099,6 +30440,10 @@ module.exports = self.fetch.bind(self); if (typeof value == 'string') { return value; } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ''; } @@ -30172,15 +30517,13 @@ module.exports = self.fetch.bind(self); * * @private * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. + * @param {Array|string} path The property path to unset. * @returns {boolean} Returns `true` if the property is deleted, else `false`. */ function baseUnset(object, path) { - path = isKey(path, object) ? [path] : castPath(path); + path = castPath(path, object); object = parent(object, path); - - var key = toKey(last(path)); - return !(object != null && hasOwnProperty.call(object, key)) || delete object[key]; + return object == null || delete object[toKey(last(path))]; } /** @@ -30251,18 +30594,24 @@ module.exports = self.fetch.bind(self); * @returns {Array} Returns the new array of values. */ function baseXor(arrays, iteratee, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } var index = -1, - length = arrays.length; + result = Array(length); while (++index < length) { - var result = result - ? arrayPush( - baseDifference(result, arrays[index], iteratee, comparator), - baseDifference(arrays[index], result, iteratee, comparator) - ) - : arrays[index]; + var array = arrays[index], + othIndex = -1; + + while (++othIndex < length) { + if (othIndex != index) { + result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); + } + } } - return (result && result.length) ? baseUniq(result, iteratee, comparator) : []; + return baseUniq(baseFlatten(result, 1), iteratee, comparator); } /** @@ -30314,12 +30663,27 @@ module.exports = self.fetch.bind(self); * * @private * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. * @returns {Array} Returns the cast property path array. */ - function castPath(value) { - return isArray(value) ? value : stringToPath(value); + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); } + /** + * A `baseRest` alias which can be replaced with `identity` by module + * replacement plugins. + * + * @private + * @type {Function} + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + var castRest = baseRest; + /** * Casts `array` to a slice if it's needed. * @@ -30357,7 +30721,9 @@ module.exports = self.fetch.bind(self); if (isDeep) { return buffer.slice(); } - var result = new buffer.constructor(buffer.length); + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result); return result; } @@ -30398,7 +30764,7 @@ module.exports = self.fetch.bind(self); * @returns {Object} Returns the cloned map. */ function cloneMap(map, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map); + var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); return arrayReduce(array, addMapEntry, new map.constructor); } @@ -30425,7 +30791,7 @@ module.exports = self.fetch.bind(self); * @returns {Object} Returns the cloned set. */ function cloneSet(set, isDeep, cloneFunc) { - var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set); + var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set); return arrayReduce(array, addSetEntry, new set.constructor); } @@ -30634,6 +31000,7 @@ module.exports = self.fetch.bind(self); * @returns {Object} Returns `object`. */ function copyObject(source, props, object, customizer) { + var isNew = !object; object || (object = {}); var index = -1, @@ -30646,13 +31013,20 @@ module.exports = self.fetch.bind(self); ? customizer(object[key], source[key], key, object, source) : undefined; - assignValue(object, key, newValue === undefined ? source[key] : newValue); + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } } return object; } /** - * Copies own symbol properties of `source` to `object`. + * Copies own symbols of `source` to `object`. * * @private * @param {Object} source The object to copy symbols from. @@ -30663,6 +31037,18 @@ module.exports = self.fetch.bind(self); return copyObject(source, getSymbols(source), object); } + /** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + /** * Creates a function like `_.groupBy`. * @@ -30777,7 +31163,7 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new wrapped function. */ function createBind(func, bitmask, thisArg) { - var isBind = bitmask & BIND_FLAG, + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); function wrapper() { @@ -30925,9 +31311,7 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new flow function. */ function createFlow(fromRight) { - return baseRest(function(funcs) { - funcs = baseFlatten(funcs, 1); - + return flatRest(function(funcs) { var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; @@ -30952,7 +31336,7 @@ module.exports = self.fetch.bind(self); data = funcName == 'wrapper' ? getData(func) : undefined; if (data && isLaziable(data[0]) && - data[1] == (ARY_FLAG | CURRY_FLAG | PARTIAL_FLAG | REARG_FLAG) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1 ) { wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); @@ -31001,11 +31385,11 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new wrapped function. */ function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & ARY_FLAG, - isBind = bitmask & BIND_FLAG, - isBindKey = bitmask & BIND_KEY_FLAG, - isCurried = bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG), - isFlip = bitmask & FLIP_FLAG, + var isAry = bitmask & WRAP_ARY_FLAG, + isBind = bitmask & WRAP_BIND_FLAG, + isBindKey = bitmask & WRAP_BIND_KEY_FLAG, + isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), + isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined : createCtor(func); function wrapper() { @@ -31110,11 +31494,8 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new over function. */ function createOver(arrayFunc) { - return baseRest(function(iteratees) { - iteratees = (iteratees.length == 1 && isArray(iteratees[0])) - ? arrayMap(iteratees[0], baseUnary(getIteratee())) - : arrayMap(baseFlatten(iteratees, 1), baseUnary(getIteratee())); - + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); return baseRest(function(args) { var thisArg = this; return arrayFunc(iteratees, function(iteratee) { @@ -31159,7 +31540,7 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new wrapped function. */ function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & BIND_FLAG, + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); function wrapper() { @@ -31241,17 +31622,17 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new wrapped function. */ function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & CURRY_FLAG, + var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined, newHoldersRight = isCurry ? undefined : holders, newPartials = isCurry ? partials : undefined, newPartialsRight = isCurry ? undefined : partials; - bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); + bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - if (!(bitmask & CURRY_BOUND_FLAG)) { - bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); } var newData = [ func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, @@ -31329,17 +31710,16 @@ module.exports = self.fetch.bind(self); * @private * @param {Function|string} func The function or method name to wrap. * @param {number} bitmask The bitmask flags. - * The bitmask may be composed of the following flags: - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * 512 - `_.flip` * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to be partially applied. * @param {Array} [holders] The `partials` placeholder indexes. @@ -31349,20 +31729,20 @@ module.exports = self.fetch.bind(self); * @returns {Function} Returns the new wrapped function. */ function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & BIND_KEY_FLAG; + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; if (!isBindKey && typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } var length = partials ? partials.length : 0; if (!length) { - bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); partials = holders = undefined; } ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); arity = arity === undefined ? arity : toInteger(arity); length -= holders ? holders.length : 0; - if (bitmask & PARTIAL_RIGHT_FLAG) { + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { var partialsRight = partials, holdersRight = holders; @@ -31387,14 +31767,14 @@ module.exports = self.fetch.bind(self); ? (isBindKey ? 0 : func.length) : nativeMax(newData[9] - length, 0); - if (!arity && bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG)) { - bitmask &= ~(CURRY_FLAG | CURRY_RIGHT_FLAG); + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); } - if (!bitmask || bitmask == BIND_FLAG) { + if (!bitmask || bitmask == WRAP_BIND_FLAG) { var result = createBind(func, bitmask, thisArg); - } else if (bitmask == CURRY_FLAG || bitmask == CURRY_RIGHT_FLAG) { + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { result = createCurry(func, bitmask, arity); - } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !holders.length) { + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { result = createPartial(func, bitmask, thisArg, partials); } else { result = createHybrid.apply(undefined, newData); @@ -31410,15 +31790,14 @@ module.exports = self.fetch.bind(self); * @private * @param {Array} array The array to compare. * @param {Array} other The other array to compare. - * @param {Function} equalFunc The function to determine equivalents of values. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` - * for more details. + * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `array` and `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ - function equalArrays(array, other, equalFunc, customizer, bitmask, stack) { - var isPartial = bitmask & PARTIAL_COMPARE_FLAG, + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; @@ -31432,7 +31811,7 @@ module.exports = self.fetch.bind(self); } var index = -1, result = true, - seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined; + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; stack.set(array, other); stack.set(other, array); @@ -31457,9 +31836,9 @@ module.exports = self.fetch.bind(self); // Recursively compare arrays (susceptible to call stack limits). if (seen) { if (!arraySome(other, function(othValue, othIndex) { - if (!seen.has(othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) { - return seen.add(othIndex); + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); } })) { result = false; @@ -31467,7 +31846,7 @@ module.exports = self.fetch.bind(self); } } else if (!( arrValue === othValue || - equalFunc(arrValue, othValue, customizer, bitmask, stack) + equalFunc(arrValue, othValue, bitmask, customizer, stack) )) { result = false; break; @@ -31489,14 +31868,13 @@ module.exports = self.fetch.bind(self); * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {string} tag The `toStringTag` of the objects to compare. - * @param {Function} equalFunc The function to determine equivalents of values. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` - * for more details. + * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) { + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { switch (tag) { case dataViewTag: if ((object.byteLength != other.byteLength) || @@ -31534,7 +31912,7 @@ module.exports = self.fetch.bind(self); var convert = mapToArray; case setTag: - var isPartial = bitmask & PARTIAL_COMPARE_FLAG; + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { @@ -31545,11 +31923,11 @@ module.exports = self.fetch.bind(self); if (stacked) { return stacked == other; } - bitmask |= UNORDERED_COMPARE_FLAG; + bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits). stack.set(object, other); - var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); stack['delete'](object); return result; @@ -31568,15 +31946,14 @@ module.exports = self.fetch.bind(self); * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. - * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` - * for more details. + * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function equalObjects(object, other, equalFunc, customizer, bitmask, stack) { - var isPartial = bitmask & PARTIAL_COMPARE_FLAG, + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = keys(object), objLength = objProps.length, othProps = keys(other), @@ -31614,7 +31991,7 @@ module.exports = self.fetch.bind(self); } // Recursively compare objects (susceptible to call stack limits). if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack)) + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) : compared )) { result = false; @@ -31639,6 +32016,17 @@ module.exports = self.fetch.bind(self); return result; } + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + /** * Creates an array of own enumerable property names and symbols of `object`. * @@ -31773,7 +32161,34 @@ module.exports = self.fetch.bind(self); } /** - * Creates an array of the own enumerable symbol properties of `object`. + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; + } + + /** + * Creates an array of the own enumerable symbols of `object`. * * @private * @param {Object} object The object to query. @@ -31782,8 +32197,7 @@ module.exports = self.fetch.bind(self); var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray; /** - * Creates an array of the own and inherited enumerable symbol properties - * of `object`. + * Creates an array of the own and inherited enumerable symbols of `object`. * * @private * @param {Object} object The object to query. @@ -31807,17 +32221,16 @@ module.exports = self.fetch.bind(self); */ var getTag = baseGetTag; - // Fallback for data views, maps, sets, and weak maps in IE 11, - // for data views in Edge < 14, and promises in Node.js. + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || (Map && getTag(new Map) != mapTag) || (Promise && getTag(Promise.resolve()) != promiseTag) || (Set && getTag(new Set) != setTag) || (WeakMap && getTag(new WeakMap) != weakMapTag)) { getTag = function(value) { - var result = objectToString.call(value), + var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : undefined; + ctorString = Ctor ? toSource(Ctor) : ''; if (ctorString) { switch (ctorString) { @@ -31882,11 +32295,11 @@ module.exports = self.fetch.bind(self); * @returns {boolean} Returns `true` if `path` exists, else `false`. */ function hasPath(object, path, hasFunc) { - path = isKey(path, object) ? [path] : castPath(path); + path = castPath(path, object); - var result, - index = -1, - length = path.length; + var index = -1, + length = path.length, + result = false; while (++index < length) { var key = toKey(path[index]); @@ -31895,10 +32308,10 @@ module.exports = self.fetch.bind(self); } object = object[key]; } - if (result) { + if (result || ++index != length) { return result; } - var length = object ? object.length : 0; + length = object == null ? 0 : object.length; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } @@ -31993,9 +32406,11 @@ module.exports = self.fetch.bind(self); * @returns {string} Returns the modified source. */ function insertWrapDetails(source, details) { - var length = details.length, - lastIndex = length - 1; - + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; details = details.join(length > 2 ? ', ' : ' '); return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); @@ -32174,6 +32589,26 @@ module.exports = self.fetch.bind(self); }; } + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + /** * Merges the function metadata of `source` into `data`. * @@ -32194,22 +32629,22 @@ module.exports = self.fetch.bind(self); var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (BIND_FLAG | BIND_KEY_FLAG | ARY_FLAG); + isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); var isCombo = - ((srcBitmask == ARY_FLAG) && (bitmask == CURRY_FLAG)) || - ((srcBitmask == ARY_FLAG) && (bitmask == REARG_FLAG) && (data[7].length <= source[8])) || - ((srcBitmask == (ARY_FLAG | REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == CURRY_FLAG)); + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || + ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); // Exit early if metadata can't be merged. if (!(isCommon || isCombo)) { return data; } // Use source `thisArg` if available. - if (srcBitmask & BIND_FLAG) { + if (srcBitmask & WRAP_BIND_FLAG) { data[2] = source[2]; // Set when currying a bound function. - newBitmask |= bitmask & BIND_FLAG ? 0 : CURRY_BOUND_FLAG; + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; } // Compose partial arguments. var value = source[3]; @@ -32231,7 +32666,7 @@ module.exports = self.fetch.bind(self); data[7] = value; } // Use source `ary` if it's smaller. - if (srcBitmask & ARY_FLAG) { + if (srcBitmask & WRAP_ARY_FLAG) { data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); } // Use source `arity` if one is not provided. @@ -32287,6 +32722,47 @@ module.exports = self.fetch.bind(self); return result; } + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + /** * Gets the parent value at `path` of `object`. * @@ -32296,7 +32772,7 @@ module.exports = self.fetch.bind(self); * @returns {*} Returns the parent value. */ function parent(object, path) { - return path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); } /** @@ -32335,25 +32811,7 @@ module.exports = self.fetch.bind(self); * @param {*} data The metadata. * @returns {Function} Returns `func`. */ - var setData = (function() { - var count = 0, - lastCalled = 0; - - return function(key, value) { - var stamp = now(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return key; - } - } else { - count = 0; - } - return baseSetData(key, value); - }; - }()); + var setData = shortOut(baseSetData); /** * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). @@ -32367,6 +32825,16 @@ module.exports = self.fetch.bind(self); return root.setTimeout(func, wait); }; + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + /** * Sets the `toString` method of `wrapper` to mimic the source of `reference` * with wrapper details in a comment at the top of the source body. @@ -32377,14 +32845,64 @@ module.exports = self.fetch.bind(self); * @param {number} bitmask The bitmask flags. See `createWrap` for more details. * @returns {Function} Returns `wrapper`. */ - var setWrapToString = !defineProperty ? identity : function(wrapper, reference, bitmask) { + function setWrapToString(wrapper, reference, bitmask) { var source = (reference + ''); - return defineProperty(wrapper, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))) - }); - }; + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; + } + + /** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */ + function shuffleSelf(array, size) { + var index = -1, + length = array.length, + lastIndex = length - 1; + + size = size === undefined ? length : size; + while (++index < size) { + var rand = baseRandom(index, lastIndex), + value = array[rand]; + + array[rand] = array[index]; + array[index] = value; + } + array.length = size; + return array; + } /** * Converts `string` to a property path array. @@ -32393,9 +32911,7 @@ module.exports = self.fetch.bind(self); * @param {string} string The string to convert. * @returns {Array} Returns the property path array. */ - var stringToPath = memoize(function(string) { - string = toString(string); - + var stringToPath = memoizeCapped(function(string) { var result = []; if (reLeadingDot.test(string)) { result.push(''); @@ -32425,7 +32941,7 @@ module.exports = self.fetch.bind(self); * Converts `func` to its source code. * * @private - * @param {Function} func The function to process. + * @param {Function} func The function to convert. * @returns {string} Returns the source code. */ function toSource(func) { @@ -32505,7 +33021,7 @@ module.exports = self.fetch.bind(self); } else { size = nativeMax(toInteger(size), 0); } - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length || size < 1) { return []; } @@ -32536,7 +33052,7 @@ module.exports = self.fetch.bind(self); */ function compact(array) { var index = -1, - length = array ? array.length : 0, + length = array == null ? 0 : array.length, resIndex = 0, result = []; @@ -32572,24 +33088,25 @@ module.exports = self.fetch.bind(self); * // => [1] */ function concat() { - var length = arguments.length, - args = Array(length ? length - 1 : 0), + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), array = arguments[0], index = length; while (index--) { args[index - 1] = arguments[index]; } - return length - ? arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)) - : []; + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); } /** * Creates an array of `array` values not included in the other given arrays * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order of result values is determined by the - * order they occur in the first array. + * for equality comparisons. The order and references of result values are + * determined by the first array. * * **Note:** Unlike `_.pullAll`, this method returns a new array. * @@ -32615,8 +33132,9 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.difference` except that it accepts `iteratee` which * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. Result values are chosen from the first array. - * The iteratee is invoked with one argument: (value). + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). * * **Note:** Unlike `_.pullAllBy`, this method returns a new array. * @@ -32649,9 +33167,9 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. Result values - * are chosen from the first array. The comparator is invoked with two arguments: - * (arrVal, othVal). + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). * * **Note:** Unlike `_.pullAllWith`, this method returns a new array. * @@ -32706,7 +33224,7 @@ module.exports = self.fetch.bind(self); * // => [1, 2, 3] */ function drop(array, n, guard) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -32740,7 +33258,7 @@ module.exports = self.fetch.bind(self); * // => [1, 2, 3] */ function dropRight(array, n, guard) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -32800,8 +33318,7 @@ module.exports = self.fetch.bind(self); * @since 3.0.0 * @category Array * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * @@ -32862,7 +33379,7 @@ module.exports = self.fetch.bind(self); * // => [4, '*', '*', 10] */ function fill(array, value, start, end) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -32882,8 +33399,7 @@ module.exports = self.fetch.bind(self); * @since 1.1.0 * @category Array * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example @@ -32910,7 +33426,7 @@ module.exports = self.fetch.bind(self); * // => 2 */ function findIndex(array, predicate, fromIndex) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return -1; } @@ -32930,8 +33446,7 @@ module.exports = self.fetch.bind(self); * @since 2.0.0 * @category Array * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=array.length-1] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example @@ -32958,7 +33473,7 @@ module.exports = self.fetch.bind(self); * // => 0 */ function findLastIndex(array, predicate, fromIndex) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return -1; } @@ -32987,7 +33502,7 @@ module.exports = self.fetch.bind(self); * // => [1, 2, [3, [4]], 5] */ function flatten(array) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? baseFlatten(array, 1) : []; } @@ -33006,7 +33521,7 @@ module.exports = self.fetch.bind(self); * // => [1, 2, 3, 4, 5] */ function flattenDeep(array) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? baseFlatten(array, INFINITY) : []; } @@ -33031,7 +33546,7 @@ module.exports = self.fetch.bind(self); * // => [1, 2, 3, [4], 5] */ function flattenDepth(array, depth) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -33056,7 +33571,7 @@ module.exports = self.fetch.bind(self); */ function fromPairs(pairs) { var index = -1, - length = pairs ? pairs.length : 0, + length = pairs == null ? 0 : pairs.length, result = {}; while (++index < length) { @@ -33112,7 +33627,7 @@ module.exports = self.fetch.bind(self); * // => 3 */ function indexOf(array, value, fromIndex) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return -1; } @@ -33138,15 +33653,15 @@ module.exports = self.fetch.bind(self); * // => [1, 2] */ function initial(array) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? baseSlice(array, 0, -1) : []; } /** * Creates an array of unique values that are included in all given arrays * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order of result values is determined by the - * order they occur in the first array. + * for equality comparisons. The order and references of result values are + * determined by the first array. * * @static * @memberOf _ @@ -33169,8 +33684,9 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.intersection` except that it accepts `iteratee` * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. Result values are chosen from the first array. - * The iteratee is invoked with one argument: (value). + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). * * @static * @memberOf _ @@ -33204,9 +33720,9 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. Result values are chosen - * from the first array. The comparator is invoked with two arguments: - * (arrVal, othVal). + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). * * @static * @memberOf _ @@ -33227,9 +33743,8 @@ module.exports = self.fetch.bind(self); var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); - if (comparator === last(mapped)) { - comparator = undefined; - } else { + comparator = typeof comparator == 'function' ? comparator : undefined; + if (comparator) { mapped.pop(); } return (mapped.length && mapped[0] === arrays[0]) @@ -33253,7 +33768,7 @@ module.exports = self.fetch.bind(self); * // => 'a~b~c' */ function join(array, separator) { - return array ? nativeJoin.call(array, separator) : ''; + return array == null ? '' : nativeJoin.call(array, separator); } /** @@ -33271,7 +33786,7 @@ module.exports = self.fetch.bind(self); * // => 3 */ function last(array) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? array[length - 1] : undefined; } @@ -33297,28 +33812,18 @@ module.exports = self.fetch.bind(self); * // => 1 */ function lastIndexOf(array, value, fromIndex) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = length; if (fromIndex !== undefined) { index = toInteger(fromIndex); - index = ( - index < 0 - ? nativeMax(length + index, 0) - : nativeMin(index, length - 1) - ) + 1; + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); } - if (value !== value) { - return baseFindIndex(array, baseIsNaN, index - 1, true); - } - while (index--) { - if (array[index] === value) { - return index; - } - } - return -1; + return value === value + ? strictLastIndexOf(array, value, index) + : baseFindIndex(array, baseIsNaN, index, true); } /** @@ -33410,8 +33915,7 @@ module.exports = self.fetch.bind(self); * @category Array * @param {Array} array The array to modify. * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns `array`. * @example * @@ -33480,10 +33984,8 @@ module.exports = self.fetch.bind(self); * console.log(pulled); * // => ['b', 'd'] */ - var pullAt = baseRest(function(array, indexes) { - indexes = baseFlatten(indexes, 1); - - var length = array ? array.length : 0, + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, result = baseAt(array, indexes); basePullAt(array, arrayMap(indexes, function(index) { @@ -33506,8 +34008,7 @@ module.exports = self.fetch.bind(self); * @since 2.0.0 * @category Array * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the new array of removed elements. * @example * @@ -33567,7 +34068,7 @@ module.exports = self.fetch.bind(self); * // => [3, 2, 1] */ function reverse(array) { - return array ? nativeReverse.call(array) : array; + return array == null ? array : nativeReverse.call(array); } /** @@ -33587,7 +34088,7 @@ module.exports = self.fetch.bind(self); * @returns {Array} Returns the slice of `array`. */ function slice(array, start, end) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -33634,8 +34135,7 @@ module.exports = self.fetch.bind(self); * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example @@ -33670,7 +34170,7 @@ module.exports = self.fetch.bind(self); * // => 1 */ function sortedIndexOf(array, value) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (length) { var index = baseSortedIndex(array, value); if (index < length && eq(array[index], value)) { @@ -33713,8 +34213,7 @@ module.exports = self.fetch.bind(self); * @category Array * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {number} Returns the index at which `value` should be inserted * into `array`. * @example @@ -33749,7 +34248,7 @@ module.exports = self.fetch.bind(self); * // => 3 */ function sortedLastIndexOf(array, value) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (length) { var index = baseSortedIndex(array, value, true) - 1; if (eq(array[index], value)) { @@ -33817,7 +34316,7 @@ module.exports = self.fetch.bind(self); * // => [2, 3] */ function tail(array) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; return length ? baseSlice(array, 1, length) : []; } @@ -33880,7 +34379,7 @@ module.exports = self.fetch.bind(self); * // => [] */ function takeRight(array, n, guard) { - var length = array ? array.length : 0; + var length = array == null ? 0 : array.length; if (!length) { return []; } @@ -33899,8 +34398,7 @@ module.exports = self.fetch.bind(self); * @since 3.0.0 * @category Array * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * @@ -33941,8 +34439,7 @@ module.exports = self.fetch.bind(self); * @since 3.0.0 * @category Array * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the slice of `array`. * @example * @@ -34005,8 +34502,7 @@ module.exports = self.fetch.bind(self); * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of combined values. * @example * @@ -34048,17 +34544,16 @@ module.exports = self.fetch.bind(self); */ var unionWith = baseRest(function(arrays) { var comparator = last(arrays); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } + comparator = typeof comparator == 'function' ? comparator : undefined; return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); }); /** * Creates a duplicate-free version of an array, using * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each - * element is kept. + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. * * @static * @memberOf _ @@ -34072,23 +34567,22 @@ module.exports = self.fetch.bind(self); * // => [2, 1] */ function uniq(array) { - return (array && array.length) - ? baseUniq(array) - : []; + return (array && array.length) ? baseUniq(array) : []; } /** * This method is like `_.uniq` except that it accepts `iteratee` which is * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The iteratee is invoked with one argument: (value). + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new duplicate free array. * @example * @@ -34100,15 +34594,14 @@ module.exports = self.fetch.bind(self); * // => [{ 'x': 1 }, { 'x': 2 }] */ function uniqBy(array, iteratee) { - return (array && array.length) - ? baseUniq(array, getIteratee(iteratee, 2)) - : []; + return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; } /** * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The comparator is invoked with - * two arguments: (arrVal, othVal). + * is invoked to compare elements of `array`. The order of result values is + * determined by the order they occur in the array.The comparator is invoked + * with two arguments: (arrVal, othVal). * * @static * @memberOf _ @@ -34125,9 +34618,8 @@ module.exports = self.fetch.bind(self); * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] */ function uniqWith(array, comparator) { - return (array && array.length) - ? baseUniq(array, undefined, comparator) - : []; + comparator = typeof comparator == 'function' ? comparator : undefined; + return (array && array.length) ? baseUniq(array, undefined, comparator) : []; } /** @@ -34250,16 +34742,16 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.xor` except that it accepts `iteratee` which is * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The iteratee is invoked with one argument: - * (value). + * which by which they're compared. The order of result values is determined + * by the order they occur in the arrays. The iteratee is invoked with one + * argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Array * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] - * The iteratee invoked per element. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. * @returns {Array} Returns the new array of filtered values. * @example * @@ -34280,8 +34772,9 @@ module.exports = self.fetch.bind(self); /** * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The comparator is invoked with - * two arguments: (arrVal, othVal). + * invoked to compare elements of `arrays`. The order of result values is + * determined by the order they occur in the arrays. The comparator is invoked + * with two arguments: (arrVal, othVal). * * @static * @memberOf _ @@ -34300,9 +34793,7 @@ module.exports = self.fetch.bind(self); */ var xorWith = baseRest(function(arrays) { var comparator = last(arrays); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } + comparator = typeof comparator == 'function' ? comparator : undefined; return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); }); @@ -34373,7 +34864,8 @@ module.exports = self.fetch.bind(self); * @since 3.8.0 * @category Array * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine grouped values. + * @param {Function} [iteratee=_.identity] The function to combine + * grouped values. * @returns {Array} Returns the new array of grouped elements. * @example * @@ -34489,7 +34981,7 @@ module.exports = self.fetch.bind(self); * @memberOf _ * @since 1.0.0 * @category Seq - * @param {...(string|string[])} [paths] The property paths of elements to pick. + * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * @@ -34498,8 +34990,7 @@ module.exports = self.fetch.bind(self); * _(object).at(['a[0].b.c', 'a[1]']).value(); * // => [3, 4] */ - var wrapperAt = baseRest(function(paths) { - paths = baseFlatten(paths, 1); + var wrapperAt = flatRest(function(paths) { var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, @@ -34751,8 +35242,7 @@ module.exports = self.fetch.bind(self); * @since 0.5.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The iteratee to transform keys. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * @@ -34764,7 +35254,11 @@ module.exports = self.fetch.bind(self); * // => { '3': 2, '5': 1 } */ var countBy = createAggregator(function(result, value, key) { - hasOwnProperty.call(result, key) ? ++result[key] : (result[key] = 1); + if (hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + baseAssignValue(result, key, 1); + } }); /** @@ -34782,8 +35276,7 @@ module.exports = self.fetch.bind(self); * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false`. @@ -34829,8 +35322,7 @@ module.exports = self.fetch.bind(self); * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the new filtered array. * @see _.reject * @example @@ -34870,8 +35362,7 @@ module.exports = self.fetch.bind(self); * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example @@ -34908,8 +35399,7 @@ module.exports = self.fetch.bind(self); * @since 2.0.0 * @category Collection * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] - * The function invoked per iteration. + * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=collection.length-1] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example @@ -34931,8 +35421,7 @@ module.exports = self.fetch.bind(self); * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The function invoked per iteration. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array} Returns the new flattened array. * @example * @@ -34956,8 +35445,7 @@ module.exports = self.fetch.bind(self); * @since 4.7.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The function invoked per iteration. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array} Returns the new flattened array. * @example * @@ -34981,8 +35469,7 @@ module.exports = self.fetch.bind(self); * @since 4.7.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The function invoked per iteration. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {number} [depth=1] The maximum recursion depth. * @returns {Array} Returns the new flattened array. * @example @@ -35019,7 +35506,7 @@ module.exports = self.fetch.bind(self); * @see _.forEachRight * @example * - * _([1, 2]).forEach(function(value) { + * _.forEach([1, 2], function(value) { * console.log(value); * }); * // => Logs `1` then `2`. @@ -35071,8 +35558,7 @@ module.exports = self.fetch.bind(self); * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The iteratee to transform keys. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * @@ -35087,7 +35573,7 @@ module.exports = self.fetch.bind(self); if (hasOwnProperty.call(result, key)) { result[key].push(value); } else { - result[key] = [value]; + baseAssignValue(result, key, [value]); } }); @@ -35160,12 +35646,10 @@ module.exports = self.fetch.bind(self); var invokeMap = baseRest(function(collection, path, args) { var index = -1, isFunc = typeof path == 'function', - isProp = isKey(path), result = isArrayLike(collection) ? Array(collection.length) : []; baseEach(collection, function(value) { - var func = isFunc ? path : ((isProp && value != null) ? value[path] : undefined); - result[++index] = func ? apply(func, value, args) : baseInvoke(value, path, args); + result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); }); return result; }); @@ -35181,8 +35665,7 @@ module.exports = self.fetch.bind(self); * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] - * The iteratee to transform keys. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * @@ -35200,7 +35683,7 @@ module.exports = self.fetch.bind(self); * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } */ var keyBy = createAggregator(function(result, value, key) { - result[key] = value; + baseAssignValue(result, key, value); }); /** @@ -35460,10 +35943,8 @@ module.exports = self.fetch.bind(self); * // => 2 */ function sample(collection) { - var array = isArrayLike(collection) ? collection : values(collection), - length = array.length; - - return length > 0 ? array[baseRandom(0, length - 1)] : undefined; + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); } /** @@ -35487,25 +35968,13 @@ module.exports = self.fetch.bind(self); * // => [2, 3, 1] */ function sampleSize(collection, n, guard) { - var index = -1, - result = toArray(collection), - length = result.length, - lastIndex = length - 1; - if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { n = 1; } else { - n = baseClamp(toInteger(n), 0, length); - } - while (++index < n) { - var rand = baseRandom(index, lastIndex), - value = result[rand]; - - result[rand] = result[index]; - result[index] = value; + n = toInteger(n); } - result.length = n; - return result; + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); } /** @@ -35524,7 +35993,8 @@ module.exports = self.fetch.bind(self); * // => [4, 1, 3, 2] */ function shuffle(collection) { - return sampleSize(collection, MAX_ARRAY_LENGTH); + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); } /** @@ -35629,16 +36099,11 @@ module.exports = self.fetch.bind(self); * { 'user': 'barney', 'age': 34 } * ]; * - * _.sortBy(users, function(o) { return o.user; }); + * _.sortBy(users, [function(o) { return o.user; }]); * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] * * _.sortBy(users, ['user', 'age']); * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] - * - * _.sortBy(users, 'user', function(o) { - * return Math.floor(o.age / 10); - * }); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] */ var sortBy = baseRest(function(collection, iteratees) { if (collection == null) { @@ -35733,7 +36198,7 @@ module.exports = self.fetch.bind(self); function ary(func, n, guard) { n = guard ? undefined : n; n = (func && n == null) ? func.length : n; - return createWrap(func, ARY_FLAG, undefined, undefined, undefined, undefined, n); + return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); } /** @@ -35806,10 +36271,10 @@ module.exports = self.fetch.bind(self); * // => 'hi fred!' */ var bind = baseRest(function(func, thisArg, partials) { - var bitmask = BIND_FLAG; + var bitmask = WRAP_BIND_FLAG; if (partials.length) { var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= PARTIAL_FLAG; + bitmask |= WRAP_PARTIAL_FLAG; } return createWrap(func, bitmask, thisArg, partials, holders); }); @@ -35860,10 +36325,10 @@ module.exports = self.fetch.bind(self); * // => 'hiya fred!' */ var bindKey = baseRest(function(object, key, partials) { - var bitmask = BIND_FLAG | BIND_KEY_FLAG; + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; if (partials.length) { var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= PARTIAL_FLAG; + bitmask |= WRAP_PARTIAL_FLAG; } return createWrap(key, bitmask, object, partials, holders); }); @@ -35911,7 +36376,7 @@ module.exports = self.fetch.bind(self); */ function curry(func, arity, guard) { arity = guard ? undefined : arity; - var result = createWrap(func, CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); result.placeholder = curry.placeholder; return result; } @@ -35956,7 +36421,7 @@ module.exports = self.fetch.bind(self); */ function curryRight(func, arity, guard) { arity = guard ? undefined : arity; - var result = createWrap(func, CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); result.placeholder = curryRight.placeholder; return result; } @@ -36153,7 +36618,7 @@ module.exports = self.fetch.bind(self); * _.defer(function(text) { * console.log(text); * }, 'deferred'); - * // => Logs 'deferred' after one or more milliseconds. + * // => Logs 'deferred' after one millisecond. */ var defer = baseRest(function(func, args) { return baseDelay(func, 1, args); @@ -36201,7 +36666,7 @@ module.exports = self.fetch.bind(self); * // => ['d', 'c', 'b', 'a'] */ function flip(func) { - return createWrap(func, FLIP_FLAG); + return createWrap(func, WRAP_FLIP_FLAG); } /** @@ -36215,7 +36680,7 @@ module.exports = self.fetch.bind(self); * function. Its creation may be customized by replacing the `_.memoize.Cache` * constructor with one whose instances implement the * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `delete`, `get`, `has`, and `set`. + * method interface of `clear`, `delete`, `get`, `has`, and `set`. * * @static * @memberOf _ @@ -36249,7 +36714,7 @@ module.exports = self.fetch.bind(self); * _.memoize.Cache = WeakMap; */ function memoize(func, resolver) { - if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { throw new TypeError(FUNC_ERROR_TEXT); } var memoized = function() { @@ -36261,14 +36726,14 @@ module.exports = self.fetch.bind(self); return cache.get(key); } var result = func.apply(this, args); - memoized.cache = cache.set(key, result); + memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new (memoize.Cache || MapCache); return memoized; } - // Assign cache to `_.memoize`. + // Expose `MapCache`. memoize.Cache = MapCache; /** @@ -36360,7 +36825,7 @@ module.exports = self.fetch.bind(self); * func(10, 5); * // => [100, 10] */ - var overArgs = baseRest(function(func, transforms) { + var overArgs = castRest(function(func, transforms) { transforms = (transforms.length == 1 && isArray(transforms[0])) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); @@ -36412,7 +36877,7 @@ module.exports = self.fetch.bind(self); */ var partial = baseRest(function(func, partials) { var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, PARTIAL_FLAG, undefined, partials, holders); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); }); /** @@ -36449,7 +36914,7 @@ module.exports = self.fetch.bind(self); */ var partialRight = baseRest(function(func, partials) { var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, PARTIAL_RIGHT_FLAG, undefined, partials, holders); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); }); /** @@ -36474,8 +36939,8 @@ module.exports = self.fetch.bind(self); * rearged('b', 'c', 'a') * // => ['a', 'b', 'c'] */ - var rearg = baseRest(function(func, indexes) { - return createWrap(func, REARG_FLAG, undefined, undefined, undefined, baseFlatten(indexes, 1)); + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); }); /** @@ -36665,8 +37130,7 @@ module.exports = self.fetch.bind(self); * // => '

    fred, barney, & pebbles

    ' */ function wrap(value, wrapper) { - wrapper = wrapper == null ? identity : wrapper; - return partial(wrapper, value); + return partial(castFunction(wrapper), value); } /*------------------------------------------------------------------------*/ @@ -36739,7 +37203,7 @@ module.exports = self.fetch.bind(self); * // => true */ function clone(value) { - return baseClone(value, false, true); + return baseClone(value, CLONE_SYMBOLS_FLAG); } /** @@ -36774,7 +37238,8 @@ module.exports = self.fetch.bind(self); * // => 0 */ function cloneWith(value, customizer) { - return baseClone(value, false, true, customizer); + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); } /** @@ -36796,7 +37261,7 @@ module.exports = self.fetch.bind(self); * // => false */ function cloneDeep(value) { - return baseClone(value, true, true); + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); } /** @@ -36828,7 +37293,8 @@ module.exports = self.fetch.bind(self); * // => 20 */ function cloneDeepWith(value, customizer) { - return baseClone(value, true, true, customizer); + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); } /** @@ -36965,11 +37431,10 @@ module.exports = self.fetch.bind(self); * _.isArguments([1, 2, 3]); * // => false */ - function isArguments(value) { - // Safari 8.1 makes `arguments.callee` enumerable in strict mode. - return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && - (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag); - } + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; /** * Checks if `value` is classified as an `Array` object. @@ -37092,7 +37557,7 @@ module.exports = self.fetch.bind(self); */ function isBoolean(value) { return value === true || value === false || - (isObjectLike(value) && objectToString.call(value) == boolTag); + (isObjectLike(value) && baseGetTag(value) == boolTag); } /** @@ -37151,7 +37616,7 @@ module.exports = self.fetch.bind(self); * // => false */ function isElement(value) { - return !!value && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value); + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); } /** @@ -37188,17 +37653,20 @@ module.exports = self.fetch.bind(self); * // => false */ function isEmpty(value) { + if (value == null) { + return true; + } if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || - typeof value.splice == 'function' || isBuffer(value) || isArguments(value))) { + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { return !value.length; } var tag = getTag(value); if (tag == mapTag || tag == setTag) { return !value.size; } - if (nonEnumShadows || isPrototype(value)) { - return !nativeKeys(value).length; + if (isPrototype(value)) { + return !baseKeys(value).length; } for (var key in value) { if (hasOwnProperty.call(value, key)) { @@ -37275,7 +37743,7 @@ module.exports = self.fetch.bind(self); function isEqualWith(value, other, customizer) { customizer = typeof customizer == 'function' ? customizer : undefined; var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, customizer) : !!result; + return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; } /** @@ -37300,8 +37768,9 @@ module.exports = self.fetch.bind(self); if (!isObjectLike(value)) { return false; } - return (objectToString.call(value) == errorTag) || - (typeof value.message == 'string' && typeof value.name == 'string'); + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || + (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); } /** @@ -37352,10 +37821,13 @@ module.exports = self.fetch.bind(self); * // => false */ function isFunction(value) { + if (!isObject(value)) { + return false; + } // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8-9 which returns 'object' for typed array and other constructors. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } /** @@ -37446,7 +37918,7 @@ module.exports = self.fetch.bind(self); */ function isObject(value) { var type = typeof value; - return !!value && (type == 'object' || type == 'function'); + return value != null && (type == 'object' || type == 'function'); } /** @@ -37474,7 +37946,7 @@ module.exports = self.fetch.bind(self); * // => false */ function isObjectLike(value) { - return !!value && typeof value == 'object'; + return value != null && typeof value == 'object'; } /** @@ -37628,7 +38100,7 @@ module.exports = self.fetch.bind(self); */ function isNative(value) { if (isMaskable(value)) { - throw new Error('This method is not supported with core-js. Try https://github.com/es-shims.'); + throw new Error(CORE_ERROR_TEXT); } return baseIsNative(value); } @@ -37706,7 +38178,7 @@ module.exports = self.fetch.bind(self); */ function isNumber(value) { return typeof value == 'number' || - (isObjectLike(value) && objectToString.call(value) == numberTag); + (isObjectLike(value) && baseGetTag(value) == numberTag); } /** @@ -37738,8 +38210,7 @@ module.exports = self.fetch.bind(self); * // => true */ function isPlainObject(value) { - if (!isObjectLike(value) || - objectToString.call(value) != objectTag || isHostObject(value)) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { return false; } var proto = getPrototype(value); @@ -37747,8 +38218,8 @@ module.exports = self.fetch.bind(self); return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return (typeof Ctor == 'function' && - Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; } /** @@ -37839,7 +38310,7 @@ module.exports = self.fetch.bind(self); */ function isString(value) { return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag); + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); } /** @@ -37861,7 +38332,7 @@ module.exports = self.fetch.bind(self); */ function isSymbol(value) { return typeof value == 'symbol' || - (isObjectLike(value) && objectToString.call(value) == symbolTag); + (isObjectLike(value) && baseGetTag(value) == symbolTag); } /** @@ -37943,7 +38414,7 @@ module.exports = self.fetch.bind(self); * // => false */ function isWeakSet(value) { - return isObjectLike(value) && objectToString.call(value) == weakSetTag; + return isObjectLike(value) && baseGetTag(value) == weakSetTag; } /** @@ -38028,8 +38499,8 @@ module.exports = self.fetch.bind(self); if (isArrayLike(value)) { return isString(value) ? stringToArray(value) : copyArray(value); } - if (iteratorSymbol && value[iteratorSymbol]) { - return iteratorToArray(value[iteratorSymbol]()); + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); } var tag = getTag(value), func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); @@ -38244,8 +38715,8 @@ module.exports = self.fetch.bind(self); * @memberOf _ * @since 4.0.0 * @category Lang - * @param {*} value The value to process. - * @returns {string} Returns the string. + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. * @example * * _.toString(null); @@ -38296,7 +38767,7 @@ module.exports = self.fetch.bind(self); * // => { 'a': 1, 'c': 3 } */ var assign = createAssigner(function(object, source) { - if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) { + if (isPrototype(source) || isArrayLike(source)) { copyObject(source, keys(source), object); return; } @@ -38415,7 +38886,7 @@ module.exports = self.fetch.bind(self); * @since 1.0.0 * @category Object * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths of elements to pick. + * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Array} Returns the picked values. * @example * @@ -38424,9 +38895,7 @@ module.exports = self.fetch.bind(self); * _.at(object, ['a[0].b.c', 'a[1]']); * // => [3, 4] */ - var at = baseRest(function(object, paths) { - return baseAt(object, baseFlatten(paths, 1)); - }); + var at = flatRest(baseAt); /** * Creates an object that inherits from the `prototype` object. If a @@ -38464,7 +38933,7 @@ module.exports = self.fetch.bind(self); */ function create(prototype, properties) { var result = baseCreate(prototype); - return properties ? baseAssign(result, properties) : result; + return properties == null ? result : baseAssign(result, properties); } /** @@ -39029,7 +39498,7 @@ module.exports = self.fetch.bind(self); iteratee = getIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { - result[iteratee(value, key, object)] = value; + baseAssignValue(result, iteratee(value, key, object), value); }); return result; } @@ -39067,7 +39536,7 @@ module.exports = self.fetch.bind(self); iteratee = getIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { - result[key] = iteratee(value, key, object); + baseAssignValue(result, key, iteratee(value, key, object)); }); return result; } @@ -39111,7 +39580,7 @@ module.exports = self.fetch.bind(self); * This method is like `_.merge` except that it accepts `customizer` which * is invoked to produce the merged values of the destination and source * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with seven arguments: + * method instead. The `customizer` is invoked with six arguments: * (objValue, srcValue, key, object, source, stack). * * **Note:** This method mutates `object`. @@ -39144,15 +39613,16 @@ module.exports = self.fetch.bind(self); /** * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable string keyed properties of `object` that are - * not omitted. + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The source object. - * @param {...(string|string[])} [props] The property identifiers to omit. + * @param {...(string|string[])} [paths] The property paths to omit. * @returns {Object} Returns the new object. * @example * @@ -39161,12 +39631,26 @@ module.exports = self.fetch.bind(self); * _.omit(object, ['a', 'c']); * // => { 'b': '2' } */ - var omit = baseRest(function(object, props) { + var omit = flatRest(function(object, paths) { + var result = {}; if (object == null) { - return {}; + return result; } - props = arrayMap(baseFlatten(props, 1), toKey); - return basePick(object, baseDifference(getAllKeysIn(object), props)); + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG); + } + var length = paths.length; + while (length--) { + baseUnset(result, paths[length]); + } + return result; }); /** @@ -39201,7 +39685,7 @@ module.exports = self.fetch.bind(self); * @memberOf _ * @category Object * @param {Object} object The source object. - * @param {...(string|string[])} [props] The property identifiers to pick. + * @param {...(string|string[])} [paths] The property paths to pick. * @returns {Object} Returns the new object. * @example * @@ -39210,8 +39694,8 @@ module.exports = self.fetch.bind(self); * _.pick(object, ['a', 'c']); * // => { 'a': 1, 'c': 3 } */ - var pick = baseRest(function(object, props) { - return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey)); + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); }); /** @@ -39233,7 +39717,16 @@ module.exports = self.fetch.bind(self); * // => { 'a': 1, 'c': 3 } */ function pickBy(object, predicate) { - return object == null ? {} : basePickBy(object, getAllKeysIn(object), getIteratee(predicate)); + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); } /** @@ -39266,15 +39759,15 @@ module.exports = self.fetch.bind(self); * // => 'default' */ function result(object, path, defaultValue) { - path = isKey(path, object) ? [path] : castPath(path); + path = castPath(path, object); var index = -1, length = path.length; // Ensure the loop is entered when path is empty. if (!length) { - object = undefined; length = 1; + object = undefined; } while (++index < length) { var value = object == null ? undefined : object[toKey(path[index])]; @@ -39431,22 +39924,23 @@ module.exports = self.fetch.bind(self); * // => { '1': ['a', 'c'], '2': ['b'] } */ function transform(object, iteratee, accumulator) { - var isArr = isArray(object) || isTypedArray(object); - iteratee = getIteratee(iteratee, 4); + var isArr = isArray(object), + isArrLike = isArr || isBuffer(object) || isTypedArray(object); + iteratee = getIteratee(iteratee, 4); if (accumulator == null) { - if (isArr || isObject(object)) { - var Ctor = object.constructor; - if (isArr) { - accumulator = isArray(object) ? new Ctor : []; - } else { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } - } else { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor : []; + } + else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } + else { accumulator = {}; } } - (isArr ? arrayEach : baseForOwn)(object, function(value, index, object) { + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { return iteratee(accumulator, value, index, object); }); return accumulator; @@ -39570,7 +40064,7 @@ module.exports = self.fetch.bind(self); * // => ['h', 'i'] */ function values(object) { - return object ? baseValues(object, keys(object)) : []; + return object == null ? [] : baseValues(object, keys(object)); } /** @@ -39865,8 +40359,8 @@ module.exports = self.fetch.bind(self); } /** - * Converts the characters "&", "<", ">", '"', "'", and "\`" in `string` to - * their corresponding HTML entities. + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. * * **Note:** No other characters are escaped. To escape additional * characters use a third-party library like [_he_](https://mths.be/he). @@ -39877,12 +40371,6 @@ module.exports = self.fetch.bind(self); * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) * (under "semi-related fun fact") for more details. * - * Backticks are escaped because in IE < 9, they can break out of - * attribute values or HTML comments. See [#59](https://html5sec.org/#59), - * [#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and - * [#133](https://html5sec.org/#133) of the - * [HTML5 Security Cheatsheet](https://html5sec.org/) for more details. - * * When working with HTML you should always * [quote attribute values](http://wonko.com/post/html-escaping) to reduce * XSS vectors. @@ -40125,15 +40613,12 @@ module.exports = self.fetch.bind(self); * // => [6, 8, 10] */ function parseInt(string, radix, guard) { - // Chrome fails to trim leading whitespace characters. - // See https://bugs.chromium.org/p/v8/issues/detail?id=3109 for more details. if (guard || radix == null) { radix = 0; } else if (radix) { radix = +radix; } - string = toString(string).replace(reTrim, ''); - return nativeParseInt(string, radix || (reHasHexPrefix.test(string) ? 16 : 10)); + return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); } /** @@ -40372,7 +40857,8 @@ module.exports = self.fetch.bind(self); * compiled({ 'user': 'barney' }); * // => 'hello barney!' * - * // Use the ES delimiter as an alternative to the default "interpolate" delimiter. + * // Use the ES template literal delimiter as an "interpolate" delimiter. + * // Disable support by replacing the "interpolate" delimiter. * var compiled = _.template('hello ${ user }!'); * compiled({ 'user': 'pebbles' }); * // => 'hello pebbles!' @@ -40773,7 +41259,7 @@ module.exports = self.fetch.bind(self); /** * The inverse of `_.escape`; this method converts the HTML entities - * `&`, `<`, `>`, `"`, `'`, and ``` in `string` to + * `&`, `<`, `>`, `"`, and `'` in `string` to * their corresponding characters. * * **Note:** No other HTML entities are unescaped. To unescape additional @@ -40927,10 +41413,10 @@ module.exports = self.fetch.bind(self); * jQuery(element).on('click', view.click); * // => Logs 'clicked docs' when clicked. */ - var bindAll = baseRest(function(object, methodNames) { - arrayEach(baseFlatten(methodNames, 1), function(key) { + var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { key = toKey(key); - object[key] = bind(object[key], object); + baseAssignValue(object, key, bind(object[key], object)); }); return object; }); @@ -40965,7 +41451,7 @@ module.exports = self.fetch.bind(self); * // => 'no match' */ function cond(pairs) { - var length = pairs ? pairs.length : 0, + var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee(); pairs = !length ? [] : arrayMap(pairs, function(pair) { @@ -41011,7 +41497,7 @@ module.exports = self.fetch.bind(self); * // => [{ 'a': 1, 'b': 2 }] */ function conforms(source) { - return baseConforms(baseClone(source, true)); + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); } /** @@ -41173,7 +41659,7 @@ module.exports = self.fetch.bind(self); * // => ['def'] */ function iteratee(func) { - return baseIteratee(typeof func == 'function' ? func : baseClone(func, true)); + return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG)); } /** @@ -41205,7 +41691,7 @@ module.exports = self.fetch.bind(self); * // => [{ 'a': 4, 'b': 5, 'c': 6 }] */ function matches(source) { - return baseMatches(baseClone(source, true)); + return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); } /** @@ -41235,7 +41721,7 @@ module.exports = self.fetch.bind(self); * // => { 'a': 4, 'b': 5, 'c': 6 } */ function matchesProperty(path, srcValue) { - return baseMatchesProperty(path, baseClone(srcValue, true)); + return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); } /** @@ -41791,7 +42277,7 @@ module.exports = self.fetch.bind(self); if (isArray(value)) { return arrayMap(value, toKey); } - return isSymbol(value) ? [value] : copyArray(stringToPath(value)); + return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value))); } /** @@ -42695,7 +43181,7 @@ module.exports = self.fetch.bind(self); } }); - realNames[createHybrid(undefined, BIND_KEY_FLAG).name] = [{ + realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{ 'name': 'wrapper', 'func': undefined }]; @@ -42717,11 +43203,11 @@ module.exports = self.fetch.bind(self); // Add lazy aliases. lodash.prototype.first = lodash.prototype.head; - if (iteratorSymbol) { - lodash.prototype[iteratorSymbol] = wrapperToIterator; + if (symIterator) { + lodash.prototype[symIterator] = wrapperToIterator; } return lodash; - } + }); /*--------------------------------------------------------------------------*/ @@ -55460,19 +55946,19 @@ define('text!toastr/build/toastr.css', ['module'], function(module) { module.exp define('text!nprogress/nprogress.css', ['module'], function(module) { module.exports = "/* Make clicks pass-through */\n#nprogress {\n pointer-events: none;\n}\n\n#nprogress .bar {\n background: #29d;\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n}\n\n/* Fancy blur effect */\n#nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px #29d, 0 0 5px #29d;\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n}\n\n/* Remove these to get rid of the spinner */\n#nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n}\n\n#nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: #29d;\n border-left-color: #29d;\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n}\n\n.nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n}\n\n.nprogress-custom-parent #nprogress .spinner,\n.nprogress-custom-parent #nprogress .bar {\n position: absolute;\n}\n\n@-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n}\n@keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n"; }); define('text',{}); -define('aurelia-templating-resources/aurelia-templating-resources',['exports', './compose', './if', './with', './repeat', './show', './hide', './sanitize-html', './replaceable', './focus', 'aurelia-templating', './css-resource', './html-sanitizer', './binding-mode-behaviors', './throttle-binding-behavior', './debounce-binding-behavior', './signal-binding-behavior', './binding-signaler', './update-trigger-binding-behavior', './abstract-repeater', './repeat-strategy-locator', './html-resource-plugin', './null-repeat-strategy', './array-repeat-strategy', './map-repeat-strategy', './set-repeat-strategy', './number-repeat-strategy', './repeat-utilities', './analyze-view-factory', './aurelia-hide-style'], function (exports, _compose, _if, _with, _repeat, _show, _hide, _sanitizeHtml, _replaceable, _focus, _aureliaTemplating, _cssResource, _htmlSanitizer, _bindingModeBehaviors, _throttleBindingBehavior, _debounceBindingBehavior, _signalBindingBehavior, _bindingSignaler, _updateTriggerBindingBehavior, _abstractRepeater, _repeatStrategyLocator, _htmlResourcePlugin, _nullRepeatStrategy, _arrayRepeatStrategy, _mapRepeatStrategy, _setRepeatStrategy, _numberRepeatStrategy, _repeatUtilities, _analyzeViewFactory, _aureliaHideStyle) { +define('aurelia-templating-resources/aurelia-templating-resources',['exports', './compose', './if', './with', './repeat', './show', './hide', './sanitize-html', './replaceable', './focus', 'aurelia-templating', './css-resource', './html-sanitizer', './attr-binding-behavior', './binding-mode-behaviors', './throttle-binding-behavior', './debounce-binding-behavior', './signal-binding-behavior', './binding-signaler', './update-trigger-binding-behavior', './abstract-repeater', './repeat-strategy-locator', './html-resource-plugin', './null-repeat-strategy', './array-repeat-strategy', './map-repeat-strategy', './set-repeat-strategy', './number-repeat-strategy', './repeat-utilities', './analyze-view-factory', './aurelia-hide-style'], function (exports, _compose, _if, _with, _repeat, _show, _hide, _sanitizeHtml, _replaceable, _focus, _aureliaTemplating, _cssResource, _htmlSanitizer, _attrBindingBehavior, _bindingModeBehaviors, _throttleBindingBehavior, _debounceBindingBehavior, _signalBindingBehavior, _bindingSignaler, _updateTriggerBindingBehavior, _abstractRepeater, _repeatStrategyLocator, _htmlResourcePlugin, _nullRepeatStrategy, _arrayRepeatStrategy, _mapRepeatStrategy, _setRepeatStrategy, _numberRepeatStrategy, _repeatUtilities, _analyzeViewFactory, _aureliaHideStyle) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); - exports.viewsRequireLifecycle = exports.unwrapExpression = exports.updateOneTimeBinding = exports.isOneTime = exports.getItemsSourceExpression = exports.updateOverrideContext = exports.createFullOverrideContext = exports.NumberRepeatStrategy = exports.SetRepeatStrategy = exports.MapRepeatStrategy = exports.ArrayRepeatStrategy = exports.NullRepeatStrategy = exports.RepeatStrategyLocator = exports.AbstractRepeater = exports.UpdateTriggerBindingBehavior = exports.BindingSignaler = exports.SignalBindingBehavior = exports.DebounceBindingBehavior = exports.ThrottleBindingBehavior = exports.TwoWayBindingBehavior = exports.OneWayBindingBehavior = exports.OneTimeBindingBehavior = exports.configure = exports.Focus = exports.Replaceable = exports.SanitizeHTMLValueConverter = exports.HTMLSanitizer = exports.Hide = exports.Show = exports.Repeat = exports.With = exports.If = exports.Compose = undefined; + exports.viewsRequireLifecycle = exports.unwrapExpression = exports.updateOneTimeBinding = exports.isOneTime = exports.getItemsSourceExpression = exports.updateOverrideContext = exports.createFullOverrideContext = exports.NumberRepeatStrategy = exports.SetRepeatStrategy = exports.MapRepeatStrategy = exports.ArrayRepeatStrategy = exports.NullRepeatStrategy = exports.RepeatStrategyLocator = exports.AbstractRepeater = exports.UpdateTriggerBindingBehavior = exports.BindingSignaler = exports.SignalBindingBehavior = exports.DebounceBindingBehavior = exports.ThrottleBindingBehavior = exports.TwoWayBindingBehavior = exports.OneWayBindingBehavior = exports.OneTimeBindingBehavior = exports.AttrBindingBehavior = exports.configure = exports.Focus = exports.Replaceable = exports.SanitizeHTMLValueConverter = exports.HTMLSanitizer = exports.Hide = exports.Show = exports.Repeat = exports.With = exports.If = exports.Compose = undefined; function configure(config) { (0, _aureliaHideStyle.injectAureliaHideStyleAtHead)(); - config.globalResources('./compose', './if', './with', './repeat', './show', './hide', './replaceable', './sanitize-html', './focus', './binding-mode-behaviors', './throttle-binding-behavior', './debounce-binding-behavior', './signal-binding-behavior', './update-trigger-binding-behavior'); + config.globalResources('./compose', './if', './with', './repeat', './show', './hide', './replaceable', './sanitize-html', './focus', './binding-mode-behaviors', './throttle-binding-behavior', './debounce-binding-behavior', './signal-binding-behavior', './update-trigger-binding-behavior', './attr-binding-behavior'); (0, _htmlResourcePlugin.configure)(config); @@ -55497,6 +55983,7 @@ define('aurelia-templating-resources/aurelia-templating-resources',['exports', ' exports.Replaceable = _replaceable.Replaceable; exports.Focus = _focus.Focus; exports.configure = configure; + exports.AttrBindingBehavior = _attrBindingBehavior.AttrBindingBehavior; exports.OneTimeBindingBehavior = _bindingModeBehaviors.OneTimeBindingBehavior; exports.OneWayBindingBehavior = _bindingModeBehaviors.OneWayBindingBehavior; exports.TwoWayBindingBehavior = _bindingModeBehaviors.TwoWayBindingBehavior; @@ -56208,4 +56695,4 @@ define('aurelia-testing/component-tester',['exports', 'aurelia-templating', 'aur return ComponentTester; }(); }); -function _aureliaConfigureModuleLoader(){requirejs.config({"baseUrl":"src/","paths":{"marked":"..\\node_modules\\marked\\lib\\marked","aurelia-dependency-injection":"..\\node_modules\\aurelia-dependency-injection\\dist\\amd\\aurelia-dependency-injection","moment":"..\\node_modules\\moment\\moment","autosize":"..\\node_modules\\autosize\\dist\\autosize","clipboard-js":"..\\node_modules\\clipboard-js\\clipboard","aurelia-binding":"..\\node_modules\\aurelia-binding\\dist\\amd\\aurelia-binding","aurelia-event-aggregator":"..\\node_modules\\aurelia-event-aggregator\\dist\\amd\\aurelia-event-aggregator","aurelia-fetch-client":"..\\node_modules\\aurelia-fetch-client\\dist\\amd\\aurelia-fetch-client","aurelia-framework":"..\\node_modules\\aurelia-framework\\dist\\amd\\aurelia-framework","aurelia-history":"..\\node_modules\\aurelia-history\\dist\\amd\\aurelia-history","aurelia-metadata":"..\\node_modules\\aurelia-metadata\\dist\\amd\\aurelia-metadata","aurelia-pal":"..\\node_modules\\aurelia-pal\\dist\\amd\\aurelia-pal","aurelia-history-browser":"..\\node_modules\\aurelia-history-browser\\dist\\amd\\aurelia-history-browser","aurelia-loader":"..\\node_modules\\aurelia-loader\\dist\\amd\\aurelia-loader","aurelia-polyfills":"..\\node_modules\\aurelia-polyfills\\dist\\amd\\aurelia-polyfills","aurelia-loader-default":"..\\node_modules\\aurelia-loader-default\\dist\\amd\\aurelia-loader-default","aurelia-logging":"..\\node_modules\\aurelia-logging\\dist\\amd\\aurelia-logging","aurelia-bootstrapper":"..\\node_modules\\aurelia-bootstrapper\\dist\\amd\\aurelia-bootstrapper","aurelia-logging-console":"..\\node_modules\\aurelia-logging-console\\dist\\amd\\aurelia-logging-console","aurelia-route-recognizer":"..\\node_modules\\aurelia-route-recognizer\\dist\\amd\\aurelia-route-recognizer","aurelia-path":"..\\node_modules\\aurelia-path\\dist\\amd\\aurelia-path","aurelia-templating":"..\\node_modules\\aurelia-templating\\dist\\amd\\aurelia-templating","lodash":"..\\node_modules\\lodash\\lodash","aurelia-pal-browser":"..\\node_modules\\aurelia-pal-browser\\dist\\amd\\aurelia-pal-browser","aurelia-task-queue":"..\\node_modules\\aurelia-task-queue\\dist\\amd\\aurelia-task-queue","aurelia-router":"..\\node_modules\\aurelia-router\\dist\\amd\\aurelia-router","jquery.scrollto":"..\\node_modules\\jquery.scrollto\\jquery.scrollTo","jquery":"..\\node_modules\\jquery\\dist\\jquery","wurl":"..\\node_modules\\wurl\\wurl","aurelia-templating-binding":"..\\node_modules\\aurelia-templating-binding\\dist\\amd\\aurelia-templating-binding","whatwg-fetch":"..\\node_modules\\whatwg-fetch\\fetch","text":"..\\node_modules\\text\\text","app-bundle":"../scripts/app-bundle","deps-bundle":"../scripts/deps-bundle"},"packages":[{"name":"color-hash","location":"../node_modules/color-hash","main":"dist/color-hash"},{"name":"push","location":"../node_modules/push.js","main":"push.min"},{"name":"dropzone","location":"../node_modules/dropzone","main":"dist/dropzone"},{"name":"timeago","location":"../node_modules/timeago.js","main":"dist/timeago.min"},{"name":"clipboard","location":"../node_modules/clipboard","main":"dist/clipboard.min"},{"name":"highlight","location":"../node_modules/highlight.js","main":"lib/index"},{"name":"swipebox","location":"../node_modules/swipebox","main":"src/js/jquery.swipebox.min"},{"name":"hotkeys","location":"../node_modules/jquery.hotkeys","main":"jquery.hotkeys"},{"name":"tablesort","location":"../node_modules/jquery-tablesort","main":"jquery.tablesort"},{"name":"modaal","location":"../node_modules/modaal","main":"dist/js/modaal.min"},{"name":"isomorphic-fetch","location":"../node_modules/isomorphic-fetch","main":"fetch-npm-browserify"},{"name":"simplemde","location":"../node_modules/simplemde","main":"dist/simplemde.min"},{"name":"fullcalendar","location":"../node_modules/fullcalendar","main":"dist/fullcalendar.min"},{"name":"textcomplete","location":"../node_modules/jquery-textcomplete","main":"dist/jquery.textcomplete"},{"name":"semantic-ui-calendar","location":"../node_modules/semantic-ui-calendar","main":"dist/calendar.min"},{"name":"toastr","location":"../node_modules/toastr","main":"toastr"},{"name":"nprogress","location":"../node_modules/nprogress","main":"nprogress"},{"name":"jquery-format","location":"../node_modules/jquery-format","main":"src/jquery.format"},{"name":"tms-semantic-ui","location":"../node_modules/tms-semantic-ui","main":"semantic.min"},{"name":"aurelia-templating-resources","location":"../node_modules/aurelia-templating-resources/dist/amd","main":"aurelia-templating-resources"},{"name":"aurelia-testing","location":"../node_modules/aurelia-testing/dist/amd","main":"aurelia-testing"},{"name":"aurelia-templating-router","location":"../node_modules/aurelia-templating-router/dist/amd","main":"aurelia-templating-router"}],"stubModules":["text"],"shim":{"swipebox":{"deps":["jquery"]},"hotkeys":{"deps":["jquery"]},"tablesort":{"deps":["jquery"]},"modaal":{"deps":["jquery"]},"isomorphic-fetch":{"deps":["whatwg-fetch"]},"fullcalendar":{"deps":["jquery","moment"]},"textcomplete":{"deps":["jquery"]},"semantic-ui-calendar":{"deps":["jquery"]},"jquery-format":{"deps":["jquery"],"exports":"$"},"tms-semantic-ui":{"deps":["jquery"],"exports":"$"}},"waitSeconds":60,"bundles":{"app-bundle":["app","environment","main","blog/blog","chat/chat-direct","chat/chat-service","common/common-constant","common/common-ctx","common/common-diff","common/common-emoji","common/common-imgs-loaded","common/common-paste","common/common-plugin","common/common-poll","common/common-scrollbar","common/common-tips","common/common-utils","init/config","init/index","test/test-lifecycle","resources/index","user/user-login","user/user-pwd-reset","user/user-register","resources/attributes/attr-attr","resources/attributes/attr-autosize","resources/attributes/attr-c2c","resources/attributes/attr-dimmer","resources/attributes/attr-dropzone","resources/attributes/attr-modaal","resources/attributes/attr-pastable","resources/attributes/attr-scrollbar","resources/attributes/attr-swipebox","resources/attributes/attr-tablesort","resources/attributes/attr-task","resources/attributes/attr-textcomplete","resources/attributes/attr-ui-checkbox","resources/attributes/attr-ui-dropdown-action","resources/attributes/attr-ui-dropdown-hover","resources/attributes/attr-ui-dropdown","resources/attributes/attr-ui-popup","resources/attributes/attr-ui-tab","resources/binding-behaviors/bb-key","resources/value-converters/vc-common","resources/elements/em-blog-comment-popup","resources/elements/em-blog-comment-share","resources/elements/em-blog-comment","resources/elements/em-blog-content","resources/elements/em-blog-history-diff","resources/elements/em-blog-history-view","resources/elements/em-blog-history","resources/elements/em-blog-left-sidebar","resources/elements/em-blog-right-sidebar","resources/elements/em-blog-save","resources/elements/em-blog-share","resources/elements/em-blog-space-auth","resources/elements/em-blog-space-create","resources/elements/em-blog-space-edit","resources/elements/em-blog-space-update","resources/elements/em-blog-top-menu","resources/elements/em-blog-write","resources/elements/em-chat-attach","resources/elements/em-chat-channel-create","resources/elements/em-chat-channel-edit","resources/elements/em-chat-channel-join","resources/elements/em-chat-channel-link-mgr","resources/elements/em-chat-channel-members-mgr","resources/elements/em-chat-channel-members-show","resources/elements/em-chat-content-item","resources/elements/em-chat-input","resources/elements/em-chat-member-popup","resources/elements/em-chat-msg-popup","resources/elements/em-chat-schedule-edit","resources/elements/em-chat-schedule-remind","resources/elements/em-chat-schedule","resources/elements/em-chat-share","resources/elements/em-chat-sidebar-left","resources/elements/em-chat-sidebar-right","resources/elements/em-chat-system-link-mgr","resources/elements/em-chat-top-menu","resources/elements/em-checkbox","resources/elements/em-confirm-modal","resources/elements/em-dropdown","resources/elements/em-hotkeys-modal","resources/elements/em-modal","resources/elements/em-user-avatar","resources/elements/em-user-edit","aurelia-templating-resources/compose","aurelia-templating-resources/if","aurelia-templating-resources/with","aurelia-templating-resources/repeat","aurelia-templating-resources/repeat-strategy-locator","aurelia-templating-resources/null-repeat-strategy","aurelia-templating-resources/array-repeat-strategy","aurelia-templating-resources/repeat-utilities","aurelia-templating-resources/map-repeat-strategy","aurelia-templating-resources/set-repeat-strategy","aurelia-templating-resources/number-repeat-strategy","aurelia-templating-resources/analyze-view-factory","aurelia-templating-resources/abstract-repeater","aurelia-templating-resources/show","aurelia-templating-resources/aurelia-hide-style","aurelia-templating-resources/hide","aurelia-templating-resources/sanitize-html","aurelia-templating-resources/html-sanitizer","aurelia-templating-resources/replaceable","aurelia-templating-resources/focus","aurelia-templating-resources/css-resource","aurelia-templating-resources/binding-mode-behaviors","aurelia-templating-resources/throttle-binding-behavior","aurelia-templating-resources/debounce-binding-behavior","aurelia-templating-resources/signal-binding-behavior","aurelia-templating-resources/binding-signaler","aurelia-templating-resources/update-trigger-binding-behavior","aurelia-templating-resources/html-resource-plugin","aurelia-templating-resources/dynamic-element","highlight/lib/highlight","highlight/lib/languages/1c","highlight/lib/languages/abnf","highlight/lib/languages/accesslog","highlight/lib/languages/actionscript","highlight/lib/languages/ada","highlight/lib/languages/apache","highlight/lib/languages/applescript","highlight/lib/languages/cpp","highlight/lib/languages/arduino","highlight/lib/languages/armasm","highlight/lib/languages/xml","highlight/lib/languages/asciidoc","highlight/lib/languages/aspectj","highlight/lib/languages/autohotkey","highlight/lib/languages/autoit","highlight/lib/languages/avrasm","highlight/lib/languages/awk","highlight/lib/languages/axapta","highlight/lib/languages/bash","highlight/lib/languages/basic","highlight/lib/languages/bnf","highlight/lib/languages/brainfuck","highlight/lib/languages/cal","highlight/lib/languages/capnproto","highlight/lib/languages/ceylon","highlight/lib/languages/clojure","highlight/lib/languages/clojure-repl","highlight/lib/languages/cmake","highlight/lib/languages/coffeescript","highlight/lib/languages/coq","highlight/lib/languages/cos","highlight/lib/languages/crmsh","highlight/lib/languages/crystal","highlight/lib/languages/cs","highlight/lib/languages/csp","highlight/lib/languages/css","highlight/lib/languages/d","highlight/lib/languages/markdown","highlight/lib/languages/dart","highlight/lib/languages/delphi","highlight/lib/languages/diff","highlight/lib/languages/django","highlight/lib/languages/dns","highlight/lib/languages/dockerfile","highlight/lib/languages/dos","highlight/lib/languages/dsconfig","highlight/lib/languages/dts","highlight/lib/languages/dust","highlight/lib/languages/ebnf","highlight/lib/languages/elixir","highlight/lib/languages/elm","highlight/lib/languages/ruby","highlight/lib/languages/erb","highlight/lib/languages/erlang-repl","highlight/lib/languages/erlang","highlight/lib/languages/excel","highlight/lib/languages/fix","highlight/lib/languages/fortran","highlight/lib/languages/fsharp","highlight/lib/languages/gams","highlight/lib/languages/gauss","highlight/lib/languages/gcode","highlight/lib/languages/gherkin","highlight/lib/languages/glsl","highlight/lib/languages/go","highlight/lib/languages/golo","highlight/lib/languages/gradle","highlight/lib/languages/groovy","highlight/lib/languages/haml","highlight/lib/languages/handlebars","highlight/lib/languages/haskell","highlight/lib/languages/haxe","highlight/lib/languages/hsp","highlight/lib/languages/htmlbars","highlight/lib/languages/http","highlight/lib/languages/inform7","highlight/lib/languages/ini","highlight/lib/languages/irpf90","highlight/lib/languages/java","highlight/lib/languages/javascript","highlight/lib/languages/json","highlight/lib/languages/julia","highlight/lib/languages/kotlin","highlight/lib/languages/lasso","highlight/lib/languages/ldif","highlight/lib/languages/less","highlight/lib/languages/lisp","highlight/lib/languages/livecodeserver","highlight/lib/languages/livescript","highlight/lib/languages/lsl","highlight/lib/languages/lua","highlight/lib/languages/makefile","highlight/lib/languages/mathematica","highlight/lib/languages/matlab","highlight/lib/languages/maxima","highlight/lib/languages/mel","highlight/lib/languages/mercury","highlight/lib/languages/mipsasm","highlight/lib/languages/mizar","highlight/lib/languages/perl","highlight/lib/languages/mojolicious","highlight/lib/languages/monkey","highlight/lib/languages/moonscript","highlight/lib/languages/nginx","highlight/lib/languages/nimrod","highlight/lib/languages/nix","highlight/lib/languages/nsis","highlight/lib/languages/objectivec","highlight/lib/languages/ocaml","highlight/lib/languages/openscad","highlight/lib/languages/oxygene","highlight/lib/languages/parser3","highlight/lib/languages/pf","highlight/lib/languages/php","highlight/lib/languages/pony","highlight/lib/languages/powershell","highlight/lib/languages/processing","highlight/lib/languages/profile","highlight/lib/languages/prolog","highlight/lib/languages/protobuf","highlight/lib/languages/puppet","highlight/lib/languages/purebasic","highlight/lib/languages/python","highlight/lib/languages/q","highlight/lib/languages/qml","highlight/lib/languages/r","highlight/lib/languages/rib","highlight/lib/languages/roboconf","highlight/lib/languages/rsl","highlight/lib/languages/ruleslanguage","highlight/lib/languages/rust","highlight/lib/languages/scala","highlight/lib/languages/scheme","highlight/lib/languages/scilab","highlight/lib/languages/scss","highlight/lib/languages/smali","highlight/lib/languages/smalltalk","highlight/lib/languages/sml","highlight/lib/languages/sqf","highlight/lib/languages/sql","highlight/lib/languages/stan","highlight/lib/languages/stata","highlight/lib/languages/step21","highlight/lib/languages/stylus","highlight/lib/languages/subunit","highlight/lib/languages/swift","highlight/lib/languages/taggerscript","highlight/lib/languages/yaml","highlight/lib/languages/tap","highlight/lib/languages/tcl","highlight/lib/languages/tex","highlight/lib/languages/thrift","highlight/lib/languages/tp","highlight/lib/languages/twig","highlight/lib/languages/typescript","highlight/lib/languages/vala","highlight/lib/languages/vbnet","highlight/lib/languages/vbscript","highlight/lib/languages/vbscript-html","highlight/lib/languages/verilog","highlight/lib/languages/vhdl","highlight/lib/languages/vim","highlight/lib/languages/x86asm","highlight/lib/languages/xl","highlight/lib/languages/xquery","highlight/lib/languages/zephir","common","override","chat/md-github"],"deps-bundle":["marked","autosize","clipboard-js","moment","color-hash/dist/color-hash","push/push.min","clipboard/dist/clipboard.min","timeago/dist/timeago.min","dropzone/dist/dropzone","dropzone/dist/basic","swipebox/src/js/jquery.swipebox.min","swipebox/src/css/swipebox.min","simplemde/dist/simplemde.min","highlight/lib/index","highlight/styles/github","hotkeys/jquery.hotkeys","tablesort","modaal/dist/js/modaal.min","modaal/dist/css/modaal.min","fullcalendar/dist/fullcalendar.min","fullcalendar/dist/locale/zh-cn"]}})} \ No newline at end of file +function _aureliaConfigureModuleLoader(){requirejs.config({"baseUrl":"src/","paths":{"marked":"..\\node_modules\\marked\\lib\\marked","autosize":"..\\node_modules\\autosize\\dist\\autosize","clipboard-js":"..\\node_modules\\clipboard-js\\clipboard","moment":"..\\node_modules\\moment\\moment","aurelia-binding":"..\\node_modules\\aurelia-binding\\dist\\amd\\aurelia-binding","aurelia-bootstrapper":"..\\node_modules\\aurelia-bootstrapper\\dist\\amd\\aurelia-bootstrapper","aurelia-dependency-injection":"..\\node_modules\\aurelia-dependency-injection\\dist\\amd\\aurelia-dependency-injection","aurelia-event-aggregator":"..\\node_modules\\aurelia-event-aggregator\\dist\\amd\\aurelia-event-aggregator","aurelia-framework":"..\\node_modules\\aurelia-framework\\dist\\amd\\aurelia-framework","aurelia-fetch-client":"..\\node_modules\\aurelia-fetch-client\\dist\\amd\\aurelia-fetch-client","aurelia-history":"..\\node_modules\\aurelia-history\\dist\\amd\\aurelia-history","aurelia-history-browser":"..\\node_modules\\aurelia-history-browser\\dist\\amd\\aurelia-history-browser","aurelia-loader":"..\\node_modules\\aurelia-loader\\dist\\amd\\aurelia-loader","aurelia-loader-default":"..\\node_modules\\aurelia-loader-default\\dist\\amd\\aurelia-loader-default","aurelia-logging":"..\\node_modules\\aurelia-logging\\dist\\amd\\aurelia-logging","aurelia-logging-console":"..\\node_modules\\aurelia-logging-console\\dist\\amd\\aurelia-logging-console","aurelia-metadata":"..\\node_modules\\aurelia-metadata\\dist\\amd\\aurelia-metadata","aurelia-pal":"..\\node_modules\\aurelia-pal\\dist\\amd\\aurelia-pal","aurelia-pal-browser":"..\\node_modules\\aurelia-pal-browser\\dist\\amd\\aurelia-pal-browser","aurelia-path":"..\\node_modules\\aurelia-path\\dist\\amd\\aurelia-path","aurelia-polyfills":"..\\node_modules\\aurelia-polyfills\\dist\\amd\\aurelia-polyfills","aurelia-route-recognizer":"..\\node_modules\\aurelia-route-recognizer\\dist\\amd\\aurelia-route-recognizer","aurelia-router":"..\\node_modules\\aurelia-router\\dist\\amd\\aurelia-router","aurelia-task-queue":"..\\node_modules\\aurelia-task-queue\\dist\\amd\\aurelia-task-queue","aurelia-templating":"..\\node_modules\\aurelia-templating\\dist\\amd\\aurelia-templating","aurelia-templating-binding":"..\\node_modules\\aurelia-templating-binding\\dist\\amd\\aurelia-templating-binding","wurl":"..\\node_modules\\wurl\\wurl","whatwg-fetch":"..\\node_modules\\whatwg-fetch\\fetch","lodash":"..\\node_modules\\lodash\\lodash","jquery":"..\\node_modules\\jquery\\dist\\jquery","jquery.scrollto":"..\\node_modules\\jquery.scrollto\\jquery.scrollTo","text":"..\\node_modules\\text\\text","app-bundle":"../scripts/app-bundle","deps-bundle":"../scripts/deps-bundle"},"packages":[{"name":"color-hash","location":"../node_modules/color-hash","main":"dist/color-hash"},{"name":"push","location":"../node_modules/push.js","main":"push.min"},{"name":"clipboard","location":"../node_modules/clipboard","main":"dist/clipboard.min"},{"name":"timeago","location":"../node_modules/timeago.js","main":"dist/timeago.min"},{"name":"dropzone","location":"../node_modules/dropzone","main":"dist/dropzone"},{"name":"swipebox","location":"../node_modules/swipebox","main":"src/js/jquery.swipebox.min"},{"name":"simplemde","location":"../node_modules/simplemde","main":"dist/simplemde.min"},{"name":"highlight","location":"../node_modules/highlight.js","main":"lib/index"},{"name":"hotkeys","location":"../node_modules/jquery.hotkeys","main":"jquery.hotkeys"},{"name":"tablesort","location":"../node_modules/jquery-tablesort","main":"jquery.tablesort"},{"name":"modaal","location":"../node_modules/modaal","main":"dist/js/modaal.min"},{"name":"fullcalendar","location":"../node_modules/fullcalendar","main":"dist/fullcalendar.min"},{"name":"textcomplete","location":"../node_modules/jquery-textcomplete","main":"dist/jquery.textcomplete"},{"name":"isomorphic-fetch","location":"../node_modules/isomorphic-fetch","main":"fetch-npm-browserify"},{"name":"tms-semantic-ui","location":"../node_modules/tms-semantic-ui","main":"semantic.min"},{"name":"semantic-ui-calendar","location":"../node_modules/semantic-ui-calendar","main":"dist/calendar.min"},{"name":"jquery-format","location":"../node_modules/jquery-format","main":"src/jquery.format"},{"name":"toastr","location":"../node_modules/toastr","main":"toastr"},{"name":"nprogress","location":"../node_modules/nprogress","main":"nprogress"},{"name":"aurelia-templating-resources","location":"../node_modules/aurelia-templating-resources/dist/amd","main":"aurelia-templating-resources"},{"name":"aurelia-templating-router","location":"../node_modules/aurelia-templating-router/dist/amd","main":"aurelia-templating-router"},{"name":"aurelia-testing","location":"../node_modules/aurelia-testing/dist/amd","main":"aurelia-testing"}],"stubModules":["text"],"shim":{"swipebox":{"deps":["jquery"]},"hotkeys":{"deps":["jquery"]},"tablesort":{"deps":["jquery"]},"modaal":{"deps":["jquery"]},"fullcalendar":{"deps":["jquery","moment"]},"textcomplete":{"deps":["jquery"]},"isomorphic-fetch":{"deps":["whatwg-fetch"]},"tms-semantic-ui":{"deps":["jquery"],"exports":"$"},"semantic-ui-calendar":{"deps":["jquery"]},"jquery-format":{"deps":["jquery"],"exports":"$"}},"waitSeconds":60,"bundles":{"app-bundle":["app","environment","main","blog/blog","chat/chat-direct","chat/chat-service","common/common-constant","common/common-ctx","common/common-diff","common/common-emoji","common/common-imgs-loaded","common/common-paste","common/common-plugin","common/common-poll","common/common-scrollbar","common/common-tips","common/common-utils","init/config","init/index","resources/index","test/test-lifecycle","user/user-login","user/user-pwd-reset","user/user-register","resources/attributes/attr-attr","resources/attributes/attr-autosize","resources/attributes/attr-c2c","resources/attributes/attr-dimmer","resources/attributes/attr-dropzone","resources/attributes/attr-modaal","resources/attributes/attr-pastable","resources/attributes/attr-scrollbar","resources/attributes/attr-swipebox","resources/attributes/attr-tablesort","resources/attributes/attr-task","resources/attributes/attr-textcomplete","resources/attributes/attr-ui-checkbox","resources/attributes/attr-ui-dropdown-action","resources/attributes/attr-ui-dropdown-hover","resources/attributes/attr-ui-dropdown","resources/attributes/attr-ui-popup","resources/attributes/attr-ui-tab","resources/binding-behaviors/bb-key","resources/value-converters/vc-common","resources/elements/em-blog-comment-popup","resources/elements/em-blog-comment-share","resources/elements/em-blog-comment","resources/elements/em-blog-content","resources/elements/em-blog-history-diff","resources/elements/em-blog-history-view","resources/elements/em-blog-history","resources/elements/em-blog-left-sidebar","resources/elements/em-blog-right-sidebar","resources/elements/em-blog-save","resources/elements/em-blog-share","resources/elements/em-blog-space-auth","resources/elements/em-blog-space-create","resources/elements/em-blog-space-edit","resources/elements/em-blog-space-update","resources/elements/em-blog-top-menu","resources/elements/em-blog-write","resources/elements/em-chat-attach","resources/elements/em-chat-channel-create","resources/elements/em-chat-channel-edit","resources/elements/em-chat-channel-join","resources/elements/em-chat-channel-link-mgr","resources/elements/em-chat-channel-members-mgr","resources/elements/em-chat-channel-members-show","resources/elements/em-chat-content-item-footbar","resources/elements/em-chat-content-item","resources/elements/em-chat-input","resources/elements/em-chat-member-popup","resources/elements/em-chat-msg-popup","resources/elements/em-chat-msg","resources/elements/em-chat-schedule-edit","resources/elements/em-chat-schedule-remind","resources/elements/em-chat-schedule","resources/elements/em-chat-share","resources/elements/em-chat-sidebar-left","resources/elements/em-chat-sidebar-right","resources/elements/em-chat-system-link-mgr","resources/elements/em-chat-top-menu","resources/elements/em-checkbox","resources/elements/em-confirm-modal","resources/elements/em-dropdown","resources/elements/em-hotkeys-modal","resources/elements/em-modal","resources/elements/em-user-avatar","resources/elements/em-user-edit","aurelia-templating-resources/compose","aurelia-templating-resources/if","aurelia-templating-resources/with","aurelia-templating-resources/repeat","aurelia-templating-resources/repeat-strategy-locator","aurelia-templating-resources/null-repeat-strategy","aurelia-templating-resources/array-repeat-strategy","aurelia-templating-resources/repeat-utilities","aurelia-templating-resources/map-repeat-strategy","aurelia-templating-resources/set-repeat-strategy","aurelia-templating-resources/number-repeat-strategy","aurelia-templating-resources/analyze-view-factory","aurelia-templating-resources/abstract-repeater","aurelia-templating-resources/show","aurelia-templating-resources/aurelia-hide-style","aurelia-templating-resources/hide","aurelia-templating-resources/sanitize-html","aurelia-templating-resources/html-sanitizer","aurelia-templating-resources/replaceable","aurelia-templating-resources/focus","aurelia-templating-resources/css-resource","aurelia-templating-resources/attr-binding-behavior","aurelia-templating-resources/binding-mode-behaviors","aurelia-templating-resources/throttle-binding-behavior","aurelia-templating-resources/debounce-binding-behavior","aurelia-templating-resources/signal-binding-behavior","aurelia-templating-resources/binding-signaler","aurelia-templating-resources/update-trigger-binding-behavior","aurelia-templating-resources/html-resource-plugin","aurelia-templating-resources/dynamic-element","highlight/lib/highlight","highlight/lib/languages/1c","highlight/lib/languages/abnf","highlight/lib/languages/accesslog","highlight/lib/languages/actionscript","highlight/lib/languages/ada","highlight/lib/languages/apache","highlight/lib/languages/applescript","highlight/lib/languages/cpp","highlight/lib/languages/arduino","highlight/lib/languages/armasm","highlight/lib/languages/xml","highlight/lib/languages/asciidoc","highlight/lib/languages/aspectj","highlight/lib/languages/autohotkey","highlight/lib/languages/autoit","highlight/lib/languages/avrasm","highlight/lib/languages/awk","highlight/lib/languages/axapta","highlight/lib/languages/bash","highlight/lib/languages/basic","highlight/lib/languages/bnf","highlight/lib/languages/brainfuck","highlight/lib/languages/cal","highlight/lib/languages/capnproto","highlight/lib/languages/ceylon","highlight/lib/languages/clean","highlight/lib/languages/clojure","highlight/lib/languages/clojure-repl","highlight/lib/languages/cmake","highlight/lib/languages/coffeescript","highlight/lib/languages/coq","highlight/lib/languages/cos","highlight/lib/languages/crmsh","highlight/lib/languages/crystal","highlight/lib/languages/cs","highlight/lib/languages/csp","highlight/lib/languages/css","highlight/lib/languages/d","highlight/lib/languages/markdown","highlight/lib/languages/dart","highlight/lib/languages/delphi","highlight/lib/languages/diff","highlight/lib/languages/django","highlight/lib/languages/dns","highlight/lib/languages/dockerfile","highlight/lib/languages/dos","highlight/lib/languages/dsconfig","highlight/lib/languages/dts","highlight/lib/languages/dust","highlight/lib/languages/ebnf","highlight/lib/languages/elixir","highlight/lib/languages/elm","highlight/lib/languages/ruby","highlight/lib/languages/erb","highlight/lib/languages/erlang-repl","highlight/lib/languages/erlang","highlight/lib/languages/excel","highlight/lib/languages/fix","highlight/lib/languages/flix","highlight/lib/languages/fortran","highlight/lib/languages/fsharp","highlight/lib/languages/gams","highlight/lib/languages/gauss","highlight/lib/languages/gcode","highlight/lib/languages/gherkin","highlight/lib/languages/glsl","highlight/lib/languages/go","highlight/lib/languages/golo","highlight/lib/languages/gradle","highlight/lib/languages/groovy","highlight/lib/languages/haml","highlight/lib/languages/handlebars","highlight/lib/languages/haskell","highlight/lib/languages/haxe","highlight/lib/languages/hsp","highlight/lib/languages/htmlbars","highlight/lib/languages/http","highlight/lib/languages/inform7","highlight/lib/languages/ini","highlight/lib/languages/irpf90","highlight/lib/languages/java","highlight/lib/languages/javascript","highlight/lib/languages/json","highlight/lib/languages/julia","highlight/lib/languages/kotlin","highlight/lib/languages/lasso","highlight/lib/languages/ldif","highlight/lib/languages/less","highlight/lib/languages/lisp","highlight/lib/languages/livecodeserver","highlight/lib/languages/livescript","highlight/lib/languages/lsl","highlight/lib/languages/lua","highlight/lib/languages/makefile","highlight/lib/languages/mathematica","highlight/lib/languages/matlab","highlight/lib/languages/maxima","highlight/lib/languages/mel","highlight/lib/languages/mercury","highlight/lib/languages/mipsasm","highlight/lib/languages/mizar","highlight/lib/languages/perl","highlight/lib/languages/mojolicious","highlight/lib/languages/monkey","highlight/lib/languages/moonscript","highlight/lib/languages/nginx","highlight/lib/languages/nimrod","highlight/lib/languages/nix","highlight/lib/languages/nsis","highlight/lib/languages/objectivec","highlight/lib/languages/ocaml","highlight/lib/languages/openscad","highlight/lib/languages/oxygene","highlight/lib/languages/parser3","highlight/lib/languages/pf","highlight/lib/languages/php","highlight/lib/languages/pony","highlight/lib/languages/powershell","highlight/lib/languages/processing","highlight/lib/languages/profile","highlight/lib/languages/prolog","highlight/lib/languages/protobuf","highlight/lib/languages/puppet","highlight/lib/languages/purebasic","highlight/lib/languages/python","highlight/lib/languages/q","highlight/lib/languages/qml","highlight/lib/languages/r","highlight/lib/languages/rib","highlight/lib/languages/roboconf","highlight/lib/languages/rsl","highlight/lib/languages/ruleslanguage","highlight/lib/languages/rust","highlight/lib/languages/scala","highlight/lib/languages/scheme","highlight/lib/languages/scilab","highlight/lib/languages/scss","highlight/lib/languages/smali","highlight/lib/languages/smalltalk","highlight/lib/languages/sml","highlight/lib/languages/sqf","highlight/lib/languages/sql","highlight/lib/languages/stan","highlight/lib/languages/stata","highlight/lib/languages/step21","highlight/lib/languages/stylus","highlight/lib/languages/subunit","highlight/lib/languages/swift","highlight/lib/languages/taggerscript","highlight/lib/languages/yaml","highlight/lib/languages/tap","highlight/lib/languages/tcl","highlight/lib/languages/tex","highlight/lib/languages/thrift","highlight/lib/languages/tp","highlight/lib/languages/twig","highlight/lib/languages/typescript","highlight/lib/languages/vala","highlight/lib/languages/vbnet","highlight/lib/languages/vbscript","highlight/lib/languages/vbscript-html","highlight/lib/languages/verilog","highlight/lib/languages/vhdl","highlight/lib/languages/vim","highlight/lib/languages/x86asm","highlight/lib/languages/xl","highlight/lib/languages/xquery","highlight/lib/languages/zephir","common","override","chat/md-github"],"deps-bundle":["marked","autosize","clipboard-js","moment","color-hash/dist/color-hash","push/push.min","clipboard/dist/clipboard.min","timeago/dist/timeago.min","dropzone/dist/dropzone","dropzone/dist/basic","swipebox/src/js/jquery.swipebox.min","swipebox/src/css/swipebox.min","simplemde/dist/simplemde.min","highlight/lib/index","highlight/styles/github","hotkeys/jquery.hotkeys","tablesort","modaal/dist/js/modaal.min","modaal/dist/css/modaal.min","fullcalendar/dist/fullcalendar.min","fullcalendar/dist/locale/zh-cn"]}})} \ No newline at end of file diff --git a/src/chat/chat-direct.less b/src/chat/chat-direct.less index 9bbfd90cf4723dab8302ad16ac72e9e86fa32347..9738a696027c8a3d6bd84748f5b40c28dc912f4b 100644 --- a/src/chat/chat-direct.less +++ b/src/chat/chat-direct.less @@ -135,13 +135,17 @@ .tms-btn-open-search-item { display: none; height: 25px; - background-color: rgba(0, 0, 0, 0.1); + // background-color: rgba(0, 0, 0, 0.1); position: absolute; bottom: 0; right: 0; left: 0; text-align: center; padding-top: 2px; + background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%); + background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%); + background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%); + background-image: linear-gradient(top, rgba(255, 255, 255, 0) 0, #bbbbbb 100%); } &:hover { .tms-btn-open-search-item { diff --git a/src/common/common-constant.js b/src/common/common-constant.js index 3631860e204fe8d24160c43ec541c8a779b965de..272f1998c85aa5544493deb484ec540e61411c5d 100644 --- a/src/common/common-constant.js +++ b/src/common/common-constant.js @@ -3,7 +3,7 @@ window.nsCons = { EVENT_CHAT_MSG_SENDED: 'event_chat_msg_sended', EVENT_CHAT_MSG_EDIT_UPLOAD: 'event_chat_msg_edit_upload', EVENT_CHAT_SIDEBAR_TOGGLE: 'event_chat_sidebar_toggle', - EVENT_CHAT_SEARCH_RESULT: 'event_chat_search_result', + EVENT_CHAT_RIGHT_SIDEBAR_TOGGLE: 'event_chat_right_sidebar_toggle', EVENT_CHAT_SEARCH_GOTO_CHAT_ITEM: 'event_chat_search_goto_chat_item', EVENT_CHAT_CHANNEL_CREATED: 'event_chat_channel_created', EVENT_CHAT_CHANNEL_DELETED: 'event_chat_channel_deleted', @@ -12,11 +12,6 @@ window.nsCons = { EVENT_SHOW_HOTKEYS_MODAL: 'event_show_hotkeys_modal', EVENT_CHAT_CHANNEL_MEMBER_ADD_OR_REMOVE: 'event_chat_channel_member_add_or_remove', EVENT_CHAT_LAST_ITEM_RENDERED: 'event_chat_last_item_rendered', - EVENT_CHAT_SHOW_STOW: 'event_chat_show_stow', - EVENT_CHAT_SHOW_AT: 'event_chat_show_at', - EVENT_CHAT_SHOW_DIR: 'event_chat_show_dir', - EVENT_CHAT_SHOW_ATTACH: 'event_chat_show_attach', - EVENT_CHAT_SHOW_SCHEDULE: 'event_chat_show_schedule', EVENT_SCROLLBAR_SCROLL_TO_BOTTOM: 'event_scrollbar_scroll_to_bottom', EVENT_CHAT_MSG_INSERT: 'event_chat_msg_insert', EVENT_CHAT_MSG_POPUP_SHOW: 'event_chat_msg_popup_show', @@ -54,6 +49,7 @@ window.nsCons = { EVENT_BLOG_COMMENT_CHANGED: 'event_blog_comment_changed', ACTION_TYPE_SEARCH: 'action_type_search', ACTION_TYPE_STOW: 'action_type_stow', + ACTION_TYPE_PIN: 'action_type_pin', ACTION_TYPE_AT: 'action_type_at', ACTION_TYPE_DIR: 'action_type_dir', ACTION_TYPE_ATTACH: 'action_type_attach', diff --git a/src/common/common-tags.js b/src/common/common-tags.js new file mode 100644 index 0000000000000000000000000000000000000000..1674ef04f991583367e2589b00325655ae73efd7 --- /dev/null +++ b/src/common/common-tags.js @@ -0,0 +1,21 @@ +export default [{ + label: '待处理', + value: '待处理', + color: 'green', + type: 'tag' +}, { + label: '进行中', + value: '进行中', + color: 'yellow', + type: 'tag' +}, { + label: '已完成', + value: '已完成', + color: 'blue', + type: 'tag' +}, { + label: '已验收', + value: '已验收', + color: 'grey', + type: 'tag' +}]; diff --git a/src/init/index.js b/src/init/index.js index 427372ec24f8a47dc76eba1094f16e40acb790e9..3bb33b43d86d484491ee9d9f57e4086f58e9e325 100644 --- a/src/init/index.js +++ b/src/init/index.js @@ -13,6 +13,7 @@ export function configure(aurelia, params) { config.context(aurelia) .initGlobalVar() + .initHttp() .initAjax() .initToastr() .initMarked() diff --git a/src/resources/attributes/attr-modaal.js b/src/resources/attributes/attr-modaal.js index e393fa3e59714584ae2fdcd5ac09f4f52dcff7dd..417772afc74be52e528762d60828a7bd94951031 100644 --- a/src/resources/attributes/attr-modaal.js +++ b/src/resources/attributes/attr-modaal.js @@ -15,6 +15,9 @@ export class AttrModaalCustomAttribute { $(this.element).modaal({ fullscreen: true, overlay_close: false, + animation: 'none', + // animation_speed: 100, + // after_callback_delay: 120, // is_locked: true, // start_open: true, before_open: () => { diff --git a/src/resources/elements/em-blog-comment.less b/src/resources/elements/em-blog-comment.less index 6d588619677a31b419052ae5abf1f1ac3b28af16..2f60df25c548ce3b203e897ba7c3a8b03dd489fe 100644 --- a/src/resources/elements/em-blog-comment.less +++ b/src/resources/elements/em-blog-comment.less @@ -24,6 +24,14 @@ margin-bottom: 0; } .content { + .markdown-body { + img { + @media only screen and (min-width: 768px) { + max-width: 360px; + max-height: 360px; + } + } + } .actions {} .tms-blog-comment-edit-textarea { width: 100%; diff --git a/src/resources/elements/em-blog-left-sidebar.html b/src/resources/elements/em-blog-left-sidebar.html index 3cca4b7753673c0dd14dc20c3e71a1e173a48517..d07ec82f9ae5ecbbc2c46e7c9361beb674e6b9fb 100644 --- a/src/resources/elements/em-blog-left-sidebar.html +++ b/src/resources/elements/em-blog-left-sidebar.html @@ -12,7 +12,7 @@ ${spaceStow.name}
    -