VTTES Userscript Auto Update

🧩 Syntax:
// ==UserScript==
// @name         VTT Enhancement Suite
// @namespace    https://justas-d.github.io/
// @version      1.28.19
// @description  aka R20ES. Provides quality-of-life and workflow speed improvements to Roll20.
// @author       @Justas_Dabrila
// @updateURL    https://justas-d.github.io/roll20-enhancement-suite/vttes.meta.js
// @downloadURL  https://justas-d.github.io/roll20-enhancement-suite/vttes.user.js
// @match        https://app.roll20.net/editor
// @match        https://app.roll20.net/editor#*
// @match        https://app.roll20.net/editor?*
// @match        https://app.roll20.net/editor/
// @match        https://app.roll20.net/editor/#*
// @match        https://app.roll20.net/editor/?*
// @grant        GM.xmlHttpRequest
// @connect      cdn.roll20.net
// @run-at       document-start
// @webRequest [{"selector":{"include":"*://browser.sentry-cdn.com/*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://www.datadoghq-browser-agent.com/datadog-rum.js"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://cdn.userleap.com/*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://www.google-analytics.com/*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/js/jquery-ui.1.9.0.custom.min.js?*","exclude":"*://app.roll20.net/js/jquery-ui.1.9.0.custom.min.js?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/v2/js/jquery-1.9.1.js","exclude":"*://app.roll20.net/v2/js/jquery-1.9.1.js?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/v2/js/jquery.migrate.js","exclude":"*://app.roll20.net/v2/js/jquery.migrate.js?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/js/featuredetect.js?2","exclude":"*://app.roll20.net/js/featuredetect.js?2n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/v2/js/patience.js","exclude":"*://app.roll20.net/v2/js/patience.js?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/editor/startjs/?timestamp*","exclude":"*://app.roll20.net/editor/startjs/?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/js/d20/loading.js?v=11","exclude":"*://app.roll20.net/js/d20/loading.js?n=11&v=11"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://cdn.roll20.net/production/vtt.bundle.js","exclude":"*://cdn.roll20.net/production/vtt.bundle.js?n*"},"action":"cancel"}]
// @webRequest [{"selector":{"include":"*://app.roll20.net/js/tutorial_tips.js","exclude":"*://app.roll20.net/js/tutorial_tips.js?n*"},"action":"cancel"}]
// ==/UserScript==



unsafeWindow.enhancementSuiteEnabled = true;

const now = Date.now();

// @UserscriptScriptFetching
GM.xmlHttpRequest({
  method: "GET",
  url: `https://cdn.roll20.net/production/vtt.bundle.js?n${now}`,
  onload: (response) => {
    console.log("Userscript got vtt.bundle.js response:", response);
    unsafeWindow.USERSCRIPT_VTT_BUNDLE_DATA = response.responseText;
  }
});

function boot() {
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=42)}([function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){var t=e.replace(/\\/g,"/").split("/");if(t.length<=0)throw new Error("Invalid dirname given.");return t[t.length-1]+".js"}},function(e,t,n){"use strict";var o,r=this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};t.__esModule=!0,function(e){e.rerender=function(e,t){var n=e.nextSibling,o=e.parentNode;e.remove();var r=t();return n?o.insertBefore(r,n):o.appendChild(r),r},e.createElement=function(t,n){for(var o,a=[],l=2;l<arguments.length;l++)a[l-2]=arguments[l];var s=null,c="function"==typeof t;c&&t.name&&t.prototype instanceof e.ElementBase?s=new t(n).render():s=c?t(n):document.createElement(t);if(!(s instanceof HTMLElement))return console.error($(i||(i=r(["JSX Render must return a valid element: elem is not an instance of HTMLElement"],["JSX Render must return a valid element: elem is not an instance of HTMLElement"])))),console.table(((o={})['"type" argument']=t,o.Type=typeof s,o.Value=s,o)),console.trace(),null;if(a){var d=document.createDocumentFragment(),u=function(e){for(var t=0,n=e;t<n.length;t++){var o=n[t];if(o instanceof HTMLElement)d.appendChild(o);else if(Array.isArray(o))u(o);else if("number"==typeof o)d.appendChild(document.createTextNode(o.toString()));else if("string"==typeof o)d.appendChild(document.createTextNode(o));else if(null===o||void 0===o||"boolean"==typeof o)console.log("JSX got an unrenderable child value, assuming it's control flow related: type: "+typeof o+" value: "+o+".");else{var r=[];for(var i in o)r.push(o[i]);u(r)}}};u(a),s.appendChild(d)}var p=function(e){return e.startsWith("on")},h=function(e){return e.substring(2).toLowerCase()};for(var m in n)if(n.hasOwnProperty(m)){var f=n[m];if(p(m))s.addEventListener(h(m),f);else if("className"===m)if(f&&Array.isArray(f))for(var g=0,M=f;g<M.length;g++){var y=M[g];!y||y.length<=0||s.classList.add(y)}else"string"==typeof f&&f.length>0&&(s.className=s.className&&s.classList.length>0?s.className+" "+f:f);else"style"===m?"string"==typeof f?s.style.cssText=f:"object"==typeof f?e.apply_style(s,f):void 0!==f&&console.error("Unknown style attribute type: "+typeof f+", "+f):m.startsWith("data")?s.setAttribute(m,f):s[m]=f}return s};var t=function(){return function(){var t=this;this.elementRoot=null,this.render=function(){var e=t.internalRender();return t.setRoot(e),e},this.rerender=function(){return e.rerender(t.getRoot(),function(){return t.render()})},this.setRoot=function(e){return t.elementRoot=e},this.getRoot=function(){return t.elementRoot},this.dispose=function(){t.getRoot().remove()}}}();e.ElementBase=t,e.apply_style=function(e,t){for(var n in t)t.hasOwnProperty(n)&&n&&(e.style[n]=t[n])}}(o||(o={})),t.DOM=o;t.SidebarSeparator=function(e){var t=e&&e.big;return o.createElement("div",null,t&&o.createElement("div",{className:"clear",style:{height:t}}),o.createElement("hr",null),t&&o.createElement("div",{className:"clear",style:{height:t}}))};var i;t.SidebarCategoryTitle=function(e){return o.createElement("h3",{style:{marginBottom:"5px",marginLeft:"5px"}})}},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(0);!function(e){var t=function(){function e(e){this.getAllHooks=function(){return window.r20es.hooks},this.filename=r.default(e),this.isDisposed=!0}return e.prototype.installFirstTime=function(){},e.prototype.installUpdate=function(){},e.prototype.dispose=function(){},e.prototype.internalCanInstall=function(){return!!this.getHook().config.enabled&&(!!this.isDisposed||(console.error("Attempted to install module when it's not disposed."),console.table({"Module filename":this.filename}),console.trace(),!1))},e.prototype.internalInstallFirstTime=function(){if(this.internalCanInstall()){try{this.installFirstTime()}catch(e){console.error(e)}this.isDisposed=!1}},e.prototype.internalInstallUpdate=function(){if(this.internalCanInstall()){try{this.installUpdate()}catch(e){console.error(e)}this.isDisposed=!1}},e.prototype.internalDispose=function(){if(console.log(this),this.isDisposed)return console.error("internalDispose called on module that is already disposed!"),console.table({"Module filename":this.filename}),void console.trace();try{this.dispose()}catch(e){console.error(e)}this.isDisposed=!0},e.prototype.setConfigValue=function(e,t){var n=this.getHook(),o=this.getHook().config;if(e in o){var r=o[e];o[e]=t,window.r20es.save_configs(),o.enabled&&"onSettingChange"in this&&"function"==typeof this.onSettingChange&&this.onSettingChange(e,r,t)}else console.error("Tried to set config of key "+e+" to value "+t+" but key was not found in the config of module id "+n.id+'"')},e.prototype.getHook=function(){if(!("hooks"in window.r20es))return null;for(var e in window.r20es.hooks){var t=window.r20es.hooks[e];if(t.filename&&t.filename===this.filename)return t}return null},e.prototype.toggleEnabledState=function(e){var t=this.getHook(),n=void 0===e||null===e?!t.config.enabled:e;if(!t.config.enabled||!n){var o=t.config.enabled;t.config.enabled=n,window.r20es.save_configs(),o&&!n?(console.log("disabling"),this.internalDispose()):!o&&n&&(console.log("enabling"),this.internalInstallUpdate())}},e.prototype.install=function(){var e=this;"r20esInstalledModuleTable"in window&&("r20esDisposeTable"in window&&(console.log("Installing module filename: "+this.filename),!(this.filename in window.r20esInstalledModuleTable)?(console.log("First run"),this.internalInstallFirstTime()):(this.filename in window.r20esDisposeTable&&console.error("DUPLICATE MODULE FOUND: "+this.filename),console.log("Calling install update"),this.internalInstallUpdate()),window.r20esDisposeTable[this.filename]=function(){e.dispose()},window.r20esInstalledModuleTable[this.filename]=this,console.log("DONE! module ID: "+this.filename)))},e}();e.Base=t;var n=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t.prototype.installFirstTime=function(){this.setup()},t.prototype.installUpdate=function(){this.setup()},t.prototype.setup=function(){},t}(t);e.SimpleBase=n;var i=function(e){function t(t){var n=e.call(this,t)||this;return n.setup=n.setup.bind(n),n}return o(t,e),t.prototype.installFirstTime=function(){window.r20es.isLoading?(this.earlySetup(),window.r20es.onAppLoad.addEventListener(this.setup)):(this.earlySetup(),this.setup())},t.prototype.earlySetup=function(){},t.prototype.setup=function(){},t.prototype.installUpdate=function(){this.installFirstTime()},t.prototype.dispose=function(){window.r20es.onAppLoad.removeEventListener(this.setup)},t}(t);e.OnAppLoadBase=i,e.getModule=function(e){return"r20esInstalledModuleTable"in window?window.r20esInstalledModuleTable[e]:null}}(t.R20Module||(t.R20Module={}))},function(e,t,n){"use strict";var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},r=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var i,a=n(15);!function(e){var t,n=this;function i(){return window.d20.engine.unselect()}function l(e){window.d20.engine.select(e)}function s(){return window.currentPlayer}function c(){return window.currentEditingLayer}function d(){try{var e=window.d20.Campaign.attributes.jukeboxfolder;return JSON.parse(e||"[]")}catch(e){console.error("[getJukeboxFileStructure] failed to get fs due to exception",e)}return[]}function u(e){return window.Jukebox.playlist.get(e)}function p(){return window.d20.Campaign.activePage()}function h(){return window.d20.engine.canvas.getObjects()}function m(t){for(var n=0,o=h();n<o.length;n++){var r=o[n],i=e.try_get_canvas_object_model(r);if(i&&i.get("id")===t)return r}return null}function f(e,t,n){n?($(document).on("mancerroll:"+t,function(e,o){$(document).off("mancerroll:"+t),n(e,o)}),window.d20.textchat.doChatInput(e,"chatbox",t)):window.d20.textchat.doChatInput(e)}function g(e){window.d20.textchat.incoming(!1,{who:"system",type:"system",content:e})}function M(){window.d20.engine.redrawScreenNextTick(!1)}!function(e){e[e.NumericAscending=0]="NumericAscending",e[e.NumericDescending=1]="NumericDescending",e[e.Alphabetical=2]="Alphabetical",e[e.AlphabeticalDescending=3]="AlphabeticalDescending",e[e.Card=4]="Card"}(t=e.InitiativeOrdering||(e.InitiativeOrdering={})),function(e){e.Map="map",e.PlayerTokens="objects",e.GMTokens="gmlayer",e.Lighting="walls",e.B20Foreground="foreground",e.B20Weather="weather",e.B20Background="background"}(e.CanvasLayer||(e.CanvasLayer={})),e.is_using_new_ui_preview=function(){return null!==document.body.querySelector("#master-toolbar")},e.getBackgroundStyle=function(){return window.d20.engine.backgroundColor},e.setBackgroundStyle=function(e){window.d20.engine.backgroundColor=e},e.setupImageDropTarget=function(e,t,n){var o={model:{save:t},updateModel:n};window.d20.utils.setupAvatar(e,o)},e.getCanvasMousePos=function(){return window.d20.engine.mousePos.slice()},e.onInitiativeChange=function(t){return new a.EventSubscriber("change:turnorder",t,function(){return e.getInitiativeWindow().model})},e.setCanvasObjectLocation=function(t,n,o){var r=e.try_get_canvas_object_model(t);r&&r.save({top:o,left:n})},e.getBlob=function(e,t,n){return void 0===n&&(n=5e3),new Promise(function(o,r){e._getLatestBlob(t,o),setTimeout(r,n)})},e.getCampaign=function(){return window.Campaign},e.canEditCharacter=function(t){var n=t.attributes.controlledby;return!!e.isGM()||(!!n.includes("all")||!!n.includes(e.getCurrentPlayer().id))},e.getHandout=function(e){return window.Campaign.handouts.get(e)},e.createCharacter=function(e){return window.Campaign.characters.create(e)},e.create_handout=function(e){return window.Campaign.handouts.create(e)},e.setCanvasObjectDimensions=function(t,n,o){var r=e.try_get_canvas_object_model(t);r&&r.save({width:n,height:o})},e.getCharacter=function(e){return window.Campaign.characters.get(e)},e.getAllCharacters=function(){return window.Campaign.characters.models},e.rerender_character_sheet=function(e){try{e.view.$el.dialog("close"),setTimeout(function(){e.view.showDialog()},500)}catch(e){console.log(e)}},e.getAllPages=function(){return window.Campaign.pages.models},e.createRollableTable=function(e){return window.d20.Campaign.rollabletables.create(e)},e.getRollableTable=function(e){return window.d20.Campaign.rollabletables.get(e)},e.getSelectedTokens=function(){return window.d20.engine.selected()},e.unselectTokens=i,e.addTokenToSelection=l,e.selectToken=function(e){i(),l(e)},e.hideTokenRadialMenu=function(){window.d20.token_editor.removeRadialMenu()},e.hideTokenContextMenu=function(){window.d20.token_editor.closeContextMenu()},e.getCurrentPlayer=s,e.set_zoom=function(e){e>2.5&&(e=2.5),.1>e&&(e=.1),window.d20.engine.setZoom(e)},e.getCanvasZoom=function(){return window.d20.engine.canvasZoom},e.getCanvasWidth=function(){return window.d20.engine.canvas.width},e.getCanvasHeight=function(){return window.d20.engine.canvas.height},e.getCanvasOffsetX=function(){return window.d20.engine.currentCanvasOffset[0]},e.getCanvasOffsetY=function(){return window.d20.engine.currentCanvasOffset[1]},e.getPageById=function(e){return window.Campaign.pages.get(e)},e.isGM=function(){return window.is_gm},e.getCurrentLayer=c,e.generateUUID=function(){return window.generateUUID()},e.generate_repeating_uuid=function(){return window.generateUUID().replace(/_/g,"Z")},e.getCurrentToolName=function(){return window.d20.engine.mode},e.advanceInitiative=function(){window.d20.Campaign.initiativewindow.nextTurn()},e.addTokenToInitiative=function(e){window.d20.Campaign.initiativewindow.addTokenToList(e)},e.addCustomItemToInitiative=function(e,t){window.d20.Campaign.initiativewindow.addTokenToList("-1",e,t)},e.rerenderMacroBar=function(){window.d20.player_settings.refreshMacroBar()},e.rerenderJournalMacros=function(){window.d20.player_settings.refreshRollsList()},e.orderInitiativeBy=function(e){var n,o=((n={})[t.NumericAscending]=".sortlist_numeric",n[t.NumericDescending]=".sortlist_numericdesc",n[t.Alphabetical]=".sortlist_alpha",n[t.AlphabeticalDescending]=".sortlist_alphadesc",n[t.Card]=".sortlist_card",n);if(e in o){var r=o[e];$("#initiativewindow_settings").dialog({modal:!1,title:"Turn Order Settings",beforeClose:function(){}}),$(r).click()}else console.error("Invalid initiative ordering: "+e)},e.getInitiativeWindow=function(){return window.d20.Campaign.initiativewindow},e.getJukeboxFileStructure=d,e.setJukeboxFileStructure=function(t){e.getCampaign().save({jukeboxfolder:JSON.stringify(t)})},e.createPlaylist=function(e){return window.d20.jukebox.addFolderToFolderStructure(e)},e.addTrackToPlaylist=function(e,t){return window.d20.jukebox.addItemToFolderStructure(e,t)},e.getSongById=u,e.getJukeboxPlaylists=function(){for(var e=[],t=0,n=d();t<n.length;t++){var o=n[t];if("string"!=typeof o){for(var r=o,i={id:r.id,name:r.n,mode:r.s,songs:[]},a=0,l=r.i;a<l.length;a++){var s=l[a],c=u(s);c?i.songs.push(c):console.warn("Tried to get song id "+s+" but the query returned a falsy value. Skipping")}e.push(i)}}return e},e.playAudio=function(e,t){window.Jukebox.soundObjs[e]=window.soundManager.createSound({id:e,url:t})},e.createSong=function(e){return window.Jukebox.playlist.create(e)},e.makePlaylistStructure=function(e,t,n){return{id:window.generateUUID(),n:e,s:t,i:n||[]}},e.getInitiativeData=function(){return window.d20.Campaign.initiativewindow.cleanList()},e.setInitiativeData=function(e){window.d20.Campaign.initiativewindow.model.save({turnorder:JSON.stringify(e)})},e.getCurrentPage=p,e.getCurrentPageTokens=h,e.doesTokenContainMouse=function(e,t){return window.d20.engine.canvas.containsPoint(e,t)},e.getCurrentPageTokenByUUID=m,e.try_get_canvas_object_model=function(e){return e._model?e._model:e.model?e.model:null},e.isUsing5EOGLSheet=function(){try{return window.d20.journal.customSheets.workerScripts[0].includes("5th Edition OGL by Roll20")}catch(e){return!1}},e.enter_measure_mode=function(){$("#measure").trigger("click")},e.get_camera_x=function(){return $("#editor-wrapper").scrollLeft()},e.get_camera_y=function(){return $("#editor-wrapper").scrollTop()},e.set_camera_x=function(e){return $("#editor-wrapper").scrollLeft(e)},e.set_camera_y=function(e){return $("#editor-wrapper").scrollTop(e)},e.moveCameraToTokenByUUID=function(e){if(e){var t=m(e);if(t){var n=$("#editor-wrapper")[0];n.scrollTop=Math.floor(t.top*window.d20.engine.canvasZoom)-Math.floor(window.d20.engine.canvasHeight/2)+125*window.d20.engine.canvasZoom,n.scrollLeft=Math.floor(t.left*window.d20.engine.canvasZoom)-Math.floor(window.d20.engine.canvasWidth/2)+125*window.d20.engine.canvasZoom}}},e.primitiveSay=function(e,t){window.d20.textchat.doChatInput(e,t)},e.say=f,e.say_async=function(t){return new Promise(function(n,o){var r=e.generateUUID();$(document).on("mancerroll:"+r,function(e,t){$(document).off("mancerroll:"+r),n({event:e,roll_data:t})}),window.d20.textchat.doChatInput(t,"chatbox",r)})},e.sayToSelf=function(t,n){var o='/w "'+s().get("displayname")+'" '+t;n?f(o,e.generateUUID(),n):f(o)},e.saySystemRaw=g,e.saySystem=function(e){g('<span style="background: rgba(6,26,45,255);\n    color: whitesmoke;\n    border: none;\n    display: inline-block;\n    padding: 8px;\n    box-shadow: 0px 0px 10px rgb(6, 26, 45);\n    "\n>\n'+e+"\n</span>\n        ")},e.ping=function(e,t,n,o,r){n=n||s().id,window.d20.engine.pings[n]={left:e,top:t,radius:-5,player:n,pageid:o||p().id,currentLayer:r||c()},window.d20.engine.pinging={downx:e,downy:t},M()},e.getFabric=function(){return window.exports.fabric},e.renderAll=M,e.setGMLayerOpacity=function(e){window.d20.engine.gm_layer_opacity=e},e.hasBetteR20=function(){return void 0!==window.d20plus},e.set_drawing_brush_size=function(e){window.d20.engine.canvas.freeDrawingBrush.width=e},e.ensure_character_attributes_are_loaded=function(e){return o(n,void 0,void 0,function(){return r(this,function(t){switch(t.label){case 0:return e.attribs.backboneFirebase?[2]:(e.attribs.backboneFirebase=new BackboneFirebase(e.attribs),[4,e.attribs.backboneFirebase.reference.once("value")]);case 1:return t.sent(),[2]}})})},e.wipeObjectStorage=function(e){for(var t=e.length,n=0;n<t;n++){var o=e.length-1;if(0>o)break;var r=e.models[o];if(!r||void 0===r)break;r.destroy()}e.length<0&&console.error("FAILED TO WIPE OBJECT STORAGE!")}}(i||(i={})),t.R20=i},function(e,t,n){"use strict";t.__esModule=!0;t.copy=function(e,t){var n=Object.assign({},e);return t&&(n=Object.assign(n,t)),n};var o=function(e){if("currentTransform"in e)return e.currentTransform;if("getTransform"in e)return e.getTransform();if(e.mozCurrentTransform){var t=e.mozCurrentTransform;return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}};t.getTransform=o,t.nearly_format_file_url=function(e){var t="";try{var n=function(e,t){var n=e.indexOf(t);return n>0?e.substring(0,n):e},o=e.lastIndexOf("/");t=n(t=n(t=n(t=e.substring(o+1),"."),"?"),"#"),t=decodeURIComponent(t)}catch(n){t=e}return t};t.getRotation=function(e){var t=o(e),n=Math.atan2(t.b,t.a);return n<0&&(n+=2*Math.PI),n};t.findByIdAndRemove=function(e){var t=document.getElementById(e);t&&t.remove()};t.mapObj=function(e,t){return Object.keys(e).reduce(function(n,o){var r=t(e[o],o);return void 0!==r&&null!==r&&n.push(r),n},[])};t.safeCall=function(e){try{e()}catch(e){console.error(e)}};t.removeAllChildren=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},t.escapeRegExp=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")};t.replaceAll=function(e,n,o){return e.replace(new RegExp(t.escapeRegExp(n),"g"),o)},t.replace_all_and_count=function(e,n,o){var r=0,i=new RegExp(t.escapeRegExp(n),"g");return{result:e.replace(i,function(e,t,n,i,a){return r+=1,o}),count:r}};t.safeParseJson=function(e){try{return JSON.parse(e)}catch(e){alert("File is not a valid JSON file.")}return null};t.readFile=function(e){return new Promise(function(t,n){if(e){var o=new FileReader;o.readAsText(e),o.onload=function(e){t(e.target.result)}}else n("No file given.")})};var r=function(){return console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.log("====================="),console.error("getBrowser call in userscript!"),console.trace(),chrome||browser};t.getBrowser=r;t.injectScript=function(e){console.log("Injecting "+e);var t=document.createElement("script");t.async=!1,t.src=r().extension.getURL(e),t.onload=function(){t.remove()},document.head.appendChild(t)};t.strIsNullOrEmpty=function(e){return null===e||void 0===e||e.length<=0||e.trim().length<=0};t.createCSSElement=function(e,t){var n=document.createElement("style");return n.innerHTML=e,n.id=t,n},t.LOGO_SVG_B64="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzMuNTYxbW0iIGhlaWdodD0iNTQuMjkzbW0iIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMzLjU2MSA1NC4yOTMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48dGl0bGU+UjIwRVMgTG9nbzwvdGl0bGU+PG1ldGFkYXRhPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+PGRjOnRpdGxlPlIyMEVTIExvZ288L2RjOnRpdGxlPjxjYzpsaWNlbnNlIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyIvPjxkYzpkYXRlPjIwMTgtMDgtMjI8L2RjOmRhdGU+PGRjOmNyZWF0b3I+PGNjOkFnZW50PjxkYzp0aXRsZT5KdXN0YXMgRGFicmlsYWE8L2RjOnRpdGxlPjwvY2M6QWdlbnQ+PC9kYzpjcmVhdG9yPjxkYzpkZXNjcmlwdGlvbj5odHRwczovL2dpdGh1Yi5jb20vU1NTdG9ybXk8L2RjOmRlc2NyaXB0aW9uPjxkYzpjb250cmlidXRvcj48Y2M6QWdlbnQ+PGRjOnRpdGxlPkpheSAiVmFuZ3VhcmQiIEZvdGhlcmdpbGw8L2RjOnRpdGxlPjwvY2M6QWdlbnQ+PC9kYzpjb250cmlidXRvcj48L2NjOldvcms+PGNjOkxpY2Vuc2UgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIj48Y2M6cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI1JlcHJvZHVjdGlvbiIvPjxjYzpwZXJtaXRzIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjRGlzdHJpYnV0aW9uIi8+PGNjOnJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjTm90aWNlIi8+PGNjOnJlcXVpcmVzIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjQXR0cmlidXRpb24iLz48Y2M6cGVybWl0cyByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI0Rlcml2YXRpdmVXb3JrcyIvPjxjYzpyZXF1aXJlcyByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zI1NoYXJlQWxpa2UiLz48L2NjOkxpY2Vuc2U+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY2LjYwNCAtNDYuOTQ1KSIgZGlzcGxheT0ibm9uZSIgb3BhY2l0eT0iLjIzNTkiPjxpbWFnZSB4PSI2My41MzYiIHk9IjQ1LjgxMSIgd2lkdGg9IjQxLjQ4OCIgaGVpZ2h0PSI1OC4wNSIgb3BhY2l0eT0iMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFQTUFBQUZVQ0FJQUFBQisrcDJLQUFBQUNYQklXWE1BQUZ4R0FBQmNSZ0VVbEVOQkFBQWcgQUVsRVFWUjQydXlkZDN4VTFicitjN2oyQnRLa2QwTHZ2VGZwWFJDa2lBS0MwanNvZ2lnZHBVZ1ZsQzZJVkpFbVNPL1NEbFdRTHIxRSBRSnJvOFp6cjcvdkxjMTEzM3owek8zc21rNUNFckQveW1jenNzc3F6bnZkNVYzblhQLzc2NjYrUUdKK1V5WC84NHg4aDhTbGFhanNPIFZIV0NXSkZMVlhTczZJVHhzSTVIZGp5NFl6cXNZM1Z0L3lNZUsvRXBUdEoyUExMalU5eE1zVUNOL1A3NzcvSHRGRi9uY1pDelc3Um8gOGRSVFQ1VXNXYkpldlhxSkVpV0toMTNVcGYvODV6L3IxcTNic0dIRHlaTW5SNHdZa1RWcjFuaGtSMkU2ZXZSby8vNzlmL3Z0Tno3WCByRm16VFpzMlR6NzVaRHdLZzU3QTlOU3BVKy9jdWZQZi8vM2ZyNzMyMnB0dnZobXZScUkyNWN5WnMyblRwbi8rK2Vmenp6OC9aODZjIFNwVXFmZjMxMS9GQURHSTZkZXBVL2ZyMWUvWHFkZS9ldmNjZWV5eExsaXl4SGRheHlZUDg4TU1QcjEyNzl2UFBQeU1CYjl5NGtTNWQgdXVIRGgrZk9uVHNlbDVGSjkrL2ZwMkpYcjE2ZE1HSENmL3pqSDhXTEZ3OExDNXN3WWNKenp6MFg3MEZHVStyZHV6ZC9VWDdnKyt6WiBzOGVPSFd2Y3VERmYvdnJyci9FQURVeFN6NTA3dDBLRkNpdFhycnh3NGNLNWMrZW8yK3ZYcjcvMTFsdHhBTlloc1d2VUQ2TUp3ZUJFIExscTBDRUQvKzkvL1RwRWlSZHEwYWZ2MDZWT3JWaTNNYUR4ZVhXTDY5T25UdUM1NzkrNjllUEVpMytDZ2x5aFJJblhxMUdYS2xJa0QgT2lRMmNUYnU0K1hMbDlGL2lPeC8vZXRmcjc3Nktwb2I2M25seXBVSER4NTA2ZElGaitmNDhlTm84WGpnT2lSY3c1czNidzRkT3JSNiA5ZW9ZdlV1WEx2SE40NDgvbmo4OHZmRENDODJhTmFPZTVhekhJenM2MGpQUFBKTXFWYXFyVjY5V3FWSUZibjd4eFJmTGxpMzd4Qk5QIEFPNHpaODZVTGwwYTVWMitmUGxPblRyUllMUldQSWc5RXdKNnlwUXBSWW9VbVRkdkhuVjE5KzVkakY2Q0JBbVNKMC9ldm4xN1VONm8gVVNOZ1RUMVQyM0dndlArRmZZOHRlVVgvd1N1b2tXKy8vUmJhUG5ueUpLMEZoU083TWFQZ2U4T0dEV3ZYcmdYbE1CQzRqMGV6b2VvMSBhOWIwNk5Gang0NGRCUW9VcUZhdDJsZGZmUVdVZ1RXbWI4R0NCYk5uejg2WEx4OVZDbVhFbVZMSHl0bjFVYU5HYmR5NHNYdjM3bSsvIC9UYXVEeTMzNUpOUERoZ3dJRjI2ZE52Q1U4YU1HWWNQSDU0dFd6YlBlK1BNV2piM294L1VESDArWjg2Y2hRb1Z3aTBCNHNDYVNuajIgMldmSGpoMjdaY3VXUC83NFk4YU1HY2lTdUZUd1dJbHM5SFRMbGkxaDYvcjE2OU5PTURmMEEwbFBuandaTGY3enp6OVBuRGdSMGNJMSB6WnMzOThSeG5BUTMzWnRLc0gySk5zTlRwUFBYcmwyN2N1WEtYTk82ZFd0TW5MamdyYmZlZ3JOMzd0ejU2YWVmeHIzeDA5aWtSdjQzIDAvLzFYK25UcDErMmJObnZ2LytPR1QxNjlDZ2ZBQ3ZNaEZnc1hMaHdqaHc1ME4rWTRQUG56NWNxVllycjdSMDZiaUdidnVvSmF6VGIgNE1HRGYvMzExN1p0MitKaFV3bmR1blVENjhocjZMbGd3WUxBZmRHaVJiVnExYXBYcjE3Y00xYXhFdGtrSEoxcjE2NnRYNzhlVjVJMiBnNWFnY0toby8vNzlOQmlXTjNIaXhGRDc5OTkvZi9EZ3daSWxTOXE4b3JqSDJkWVMvZWMvL3hrM2Jod0M0Nm1ubmtLd1ZhOWVIWVllIE9YSWtYZjNCZ3dkVUY1YXRiOSsra3laTnlwQWh3OENCQStPWURvbmR5Q2JoREczZnZoMVYvY1liYnh3NmRFZ2ozTGR2Mzc1dzRRSWsgQkttblNKRUN1SzlidDI3djNyMVkyNlJKazhaaHpqWWwrdTIzMzFBZ0sxYXNTSklrU2NlT0hTdFdySWpudlhqeFlpUUhWY1JsQ1JNbSBiTldxRmE0MlYvYnIxdzl3eDBrSEl4WWpHNlpKblRyMTVzMmJVU1A0OWNBWFRRSlBYNzE2Tlh2MjdOQTJVT1lDQ0F6ZGN2anc0Y3laIE02ZEprMGF3NWt0UDh4MnJZUzFrZzkyZVBYdGlxU2dwSDRvVUtRS3NiOTY4MmFaTm00c1hMMkxUWUhFb0hIQlRYZlQveG8wYngxbmYgK2E5WW5nWU5HcFFuVHg1YUVYQS8vZlRUajRXbjBOQlFyVm1EczQ4ZlB6NTA2RkQ0KytXWFgwYUk2eTdZL2ErNGtreFpybCsvM3FKRiBpN1JwMHpaczJCQlRkdmZ1WFdxQVB0eWtTUk1BalFqQnljNmJOKytjT1hOd1RsRGU5KzdkK3l2dXBsaVBiQkJNSTBIU3lFb2dEcEdyIENWOS8vWFhhVlEyUENzZVhTcDQ4ZVpreVpiWnMyY0tYL0FUQnh3MVlDOW0zYnQxcTJyUnB5cFFwNjlldnYydlhyai8rK0VQRjM3bHogNS9QUFAwK2QwT0h4UFVhTkdvVkxYYUpFaWExYnQvNFZwMU5JSENnRHhyZHc0Y0tsUzVmR1NhTHhhRVdVQnZ3Tld3dkVKUGhzeUpBaCBnSnQyeGN2a2U5bytEcFJkL1JQRlRFL0dxOFo3eG1NRzY0STEvbUs2ZE9uK0t6emhSRFpyMXF4RGh3NFlOTnpIditKNkNva2J4VUNOIDRBbDE2dFNwVHAwNkVMYmFNbVBHakFhK3REVHMzcnQzYjVxZlBuRDU4bVdFQ3BZNnRoZWNBb0xqMXExYmcyQTZMWjJaUWduV2ZLQ3IgUC9aM3lwbzE2OVNwVTdOa3lZTE92bkhqUmp5eVkwY0NxZVhLbGNOSG5EZHZIaEEzelRsNThtVEJWOHlOOUd6WnNtVzJiTm1xVmFzRyAyMEZwc1YySzNMOS9mOFNJRVRseTVNQnFBV3NWVTcvaU1qN3p6RE5VQXAwY1FUSnMyTEN5WmN1Qzd3VUxGdnoxQ0tRNE1qNkF2c1I1IG9xVlIyKys4OHc0dHFoRURTUHJLbFN2NnpGL05KK05qd2Q5anhveEJtOGJxcmZ1VTR0aXhZK3ZXcmNOTVRaOCtIVDYyVHRQaVVtdnggSThpR3pxbUJVNmRPRlN0V3JFR0RCby9FdW9JNDAwZXh5OWpaMUtsVDQvdlhxRkhqcWFlZXdwc0U0bHI0cW12K0U1NnVYYnRXcUZBaCBHdnZUVHo5RmY4ZlM4b0xhNWN1WFU5SzhlZk91WHIxYVJUTTZCS0JUZGhCUEpTQ3NWNjFhbFR0M2JvelZnUU1IL25vMFVvSTQwMFZwIHhmYnQyL05oeXBRcFhidDJ6WlFwazRaNGQrM2F0WERoUWkxdEZYTW5TWktFYXlDOFJZc1dqUm8xS3BhV0Y3OTU0c1NKbHk1ZHFsKy8gZm9VS0ZVem9RdzMvRFJnd1FET0xDUk1tckZ1MzdxRkRoOExDd2xBaitmTGxDM2xFVWx6cXBxaVI4dVhMNHlQQ1RCMDdkb1MvNGExRSBpUkxseXBYcmwxOStNWHdtZVlvc3laOC9mOEdDQlhHellsMUpUNTQ4V2JSb1VmS1BtYUpvOExmRy9pZ2puOXUyYll1dzFxSmZTUDNxIDFhdndPbDM5eHg5Ly9PdVJTUW5pVWk5RlVQYnMyVE5CZ2dUWTRsYXRXaUU1bm56eVNmN0ZseG85ZXJTUXpiOFFHM3pXdUhGajhUb1ggWTlaalVURlJVNjFidDc1Mzd4NzlGcjhRRUt2czRxbjkrL2RUSElySk4vaUxFUGFKRXlkKy9mWFgwcVZMNTh5Wk0rU1JTUW5pV0hscSAxcXdKYlo4NWM0WjJoYTV3RmlGcDRMdGd3WUt6WjgvK1QyOE9UNGtUSng0NGNDQzN3SFpEaGd6WnVuVnJyQ2pnN2R1M08zZnVmUDc4ICthZWZmcnBObXpaZ2w5STk5dGhqNnJjUU5tWEJJbEZBY0YreVpFbElIYTg2UTRZTU9CVWhqMUpLRVBlS1JIdnpkK3JVcWJCVXVYTGwgY0NWcFprejJtREZqQUxGaGR3Q0JhelYrL0hnUUFBc0NDRFJNREMvYWI3LzkxcVZMRjFnWnBWRzdkdTFHalJyaFhXaHJNOFVCM0JzMyBidHk5ZTdkS2x5ZFBIdnI1OXUzYk1WbmdPeTd0bDNsRWtZMmZsRDU5ZWczdVZxNWNPWFBtekdwNFdoMjdMRzRUdUVGODRjS0ZKMDJhIGhCYi8rZWVmOGJyNEcyUExCUi8zNmRNSHJVd1JtalZyMXF0WEx6cXRXUXVsMFNFNjZvTUhEeWdYMEs5VnF4YnlldFdxVmJBNzZpWGsgRVVzSjRtU3BLbFNvQUE2Kyt1cXJoQWtUdnY3NjZ5QUFZb09ZSjA2Y2FQYTNDeE9BQURtT040a2l2M0Rod3Z2dnYzL3IxcTJZV2FqaCB3NGZ2M2J2M3pwMDc3ZHExNjlDaGcwTEFtVTBWSUp1dWUrVElFYTFocEh2VHBZOGVQUXBoSTBXU0pVc1dqK3k0a0twVXFZSmZkZWpRIG9TUkprbUNVb1M0TjkrN2N1UlA0bXMzdDhpYjVXNlJJRVhDRFd3blQ5K3ZYejRpV21KTm16NTY5ZHUzYTMzLy92VVdMRm0rKytTWTAgL0pkbEh3MmYvL1d2ZitFS2czdStwRCtEL3VUSmsydTZFY01WOHVpbHVJbHNZSTJHeHRsYXVYSWxyQVpZUmR1WEwxLys4c3N2cldFYiBCRzUrS2xHaUJBSWRIT3pidDIvY3VIRXhxamhrYWU3Y3ViLysraXM5c0huejV0YkJFQ1U2TGZRTVlRdmxkZXZXbGRRK2ZmcjBDeSs4IGdBV0xSM2JjU2ZoTW9IYkhqaDNRR3pLNlFJRUNHdXVGK1VDOGRWSmRnaHMvc2xxMWFpKy8vRElBV3JaczJhWk5tMkxPWU1pSUVTTXUgWGJxVU5tM2F0bTNid3NRYTBiTnVDNkpjRUhaWVdCaGZVbGdrK1AzNzkrZlBuNC9IbVQxNzltZWZmVFllMlhFbmxTcFZLbW5TcEdqciBYYnQyMGVRalI0NUVtQUxvYytmT2JkaXd3YVkzTkE3STlhKzg4a3JxMUttdlhMa0NiZCs4ZVRNbUZHVG8wS0hIamgzRHFyejY2cXRaIHNtVFJBblRiYVRLZ2Y5dTJiUnJmckZldjNvMGJON0JSQnc4ZTVLNDZkZXFFUEpJcHppSWJIS093YVd5YW5MYkhuY3FkT3pjTkQ0M2ggV2ZLOTlXSysxOXA4R0s1eDQ4WWdBd0V3ZXZUb2gxNEtPdUg2OWVzUlViZ0tGU3RXeExCNGJuS2pMR3ZXcktFM1NvWjk4TUVIVjY5ZSBKZi9BSFlJdldyUm9QTExqb0NCNTRva25MbDY4Q01xaFBTMmxBQWQ0bHZDeExVaWFYRW1rQzVxa2ZQbnl2L3p5eTV3NWM4REhROHcvIC9pSitMVGxIVHFCRGtpVkxKcmEyYlUvRy9zeWJOKytQUC80Zy8waHFoRFVmZHUvZXpmYzVjdVNJay92U0gzVms1OCtmUDNIaXhIZnUgM0VHUVhMOSt2V1RKa2hrelpnUVdLT2tsUzVaNHJsK1Zma1dUZE83Y0dmS0QrUkNzRDNHWjY3UnAwN1p2MzA2R08zYnNxSTF3OG5ldCAxOUEvc1RENGp2UllHTDFMbHk0Ly9mUVRYOUtmNmRYbHlwVUxlVlJUWEVZMldoTW8wK1JRcjVRMGZDemEvdnp6ejIyQ3hJQWJRT1RMIGx3OXdjK1dlUFhzMmI5NzhVREtQYXRKYWwyTEZpcGt0dWw2RFNTeGF0QWgva1orUVVvZ1dPdVNQUC81NDc5NjloQWtURmk5ZVBCN1ogY2RhUEJLQjRqY2dQb0Z5N2R1MFhYM3dSTTMzMjdGbnRtTEpkTDhFTmpGNTc3VFVwMUVHREJqMlVuRStlUEJsRmxDSkZpdDY5ZXlkSiBrb1JTZUlVMVpmbnNzODhvR2gyeVRKa3k5RXl1aE9uNUpuMzY5SEVqeG5zOHNyMGtHaHZkK2VEQmc0TUhENTQ2ZFFwOUVob2FLa0F2IFhyellxOUlBUUtBRTM2dE5tellwVTZhRS8vRFBvbDloVDVreUJYbU40aTljdURENThSb2RoZnpUUDArZlBnMk9VZUdha2VIZmE5ZXUgY2YyalROaHhIOWtwdzlPZmYvNkordFR4UWpoVlVES1ltRFJwa3ErNVJzRE5OWGhqMEI3WDRIcEdjN1pIamh3SlpOSDZLR3p3N1JtWCAwS1JseTVacE5KT3MwZ2NvS2Y0eHJnWDMwaXZpa1IyWEU5SVRaSVNGaFVGbS9BdVRZZHlCd3ZuejU4RzZyN3U0QmJMdjA2Y1BFRWU2IGJOaXdJZG95L01jZmY4eWRPNWZlVmFWS2xTeFpzaWdBdnRjcm9lb1pNMllvdmdvZUJSRC8rZWVmRldvVm14Tlh3NXJGSS90L3BmYlQgVHo4TmpRRmwvaTFSb2dUaWxiYUh2MUVhdnU0Q1RBQ2xRSUVDdUdYUTlzY2ZmeHh0Z3lTQUZZVU5XTnUxYS9mTU04ODRoQ0NrRDBpSyB3TkNGQ2hYaUc5eUpXN2R1Y1l0MXQyODhzdU5teXBVckZ3WWRYQ0pJK0RkMTZ0UXZ2ZlFTTWhSd2E4R1FBN2hCVFAvKy9ibm02TkdqIDBiTTE0YmZmZnBzOWV6WjVhOVNvVWRxMGFaMlBsYnB5NVFyZ0J0bUtFTVEzbEpFbjBDc0tGaXdZait3NG5oSW1UQWhKMC95WExsMFMgWHBHa21yOVFKRFFIWkFPc1BIbnk1TXlaRXgvMHl5Ky9qSWJjTGxteTVNS0ZDK1RxcmJmZUVtRTdjUGEyYmR2b0ExeUEreWlTUG56NCBNTjRuTnhZcFVpUWUyWEUvWmM2Y1dSRUFCVzdBaXRJQUU2aFNPTS9oUmtDRDJuNzMzWGRCOXY3d0ZLWDV4UDlic1dJRjc2cFdyUnE2IEdjUGkwUEg0YWZYcTFTSGhZL0NwVXFYU3VUd29MdnB3NHNTSjRmdDRaTWY5aEFhRnhqRFQvL3puUC9tM2NPSENva05nSGVGQnFlQUcgUTQvVGlmYkZzWXZTZkg3Ly9mZG56cHk1Zi85K2x5NWR0TEhBZ2JCQjlzR0RCelVBcjMxREZKQk04bSthTkdrZXFiTjRIbDFrNTgrZiBIeWZ5WC8vNjE1NDllL2czVTZaTVNKU1E4S25wMjdkdk8zTTI2Ym5ubmdOcWVHYW83YXRYcjBaZFBwY3ZYNDRMbURWclZpM2VjcjRZIHYxWXhybEJXaWlLQ0ZNRXVnV3lNVXNnam54NEpaT00xUXJwODBEWkhDRHRwMHFReTlGb2lGeUZ0TjI3Y0dDUkI4Q3RYcm95aVRGNjggZUJIQ3ZuYnRXdS9ldlNGc1o0VWRFajdrQjd2emdVNnJVOVFRUzFnaDdzVW94U1A3a1VBMkVBSFpBQlJHMU93TUxwZDhyd2c1V0FpaiBKMVNzV0JIZkx1cEdTQ0RzR3pkdWtNbXFWYXU2MFJJVVJIczZnWEs2ZE9uNFFNZlF2MmowZUdRbmVFVEttVEpsU3N6MHZYdjNJRVd4IHVMN0g1WXB3b0ZwYXRrK2ZQam9FNStUSmsxR1J3eDA3ZHVEZ05tellFSjgxUXNJT0NUKzRRK0ZUTUVFUzVTcGFva1NKcExYaWtmMUkgSksxZmZmRGd3Ymx6NS9nM1E0WU1DdENCQnJENlpMNlFEWlhteXBVTDVrYlBSTVV5a3JObnp3SnJYTUQyN2R2N1d0TW5uamFmMFZFcSBnamFENlV4MUlUdmVmWHlFa0kxYjlzUVRUMkMrVDV3NGdac0ZHdFQ4di96eWl4WEJEclROTFIwN2RrUXdIRHg0TU9qWjI3eDU4K25UIHArbHZtVE5uOWx5RTdUV0hWbVRUMzhMQ3dwRGQ5SW9VS1ZMRXcvb1JRbmJhdEdtZmV1b3BPQTh4aXJsLzdMSEhoQktIcFNNMlNIRkwgelpvMThkdFFJODRqS2dHa3ZYdjNvaTdhdFd2bnZPN1V1alJLeUpZZ29Vc2dxNkI4dnBIbWprK1BDckpmZlBGRmhZdS9mdjI2L2xXNCBlSkR0M25hblQ1OWVwd09qaVlPWU54Q3B5RTgxYXRSd0lHeGJ3dHJvU3MzUm9HZis5YTkvQWYzNE9acEhDOW5hVHdDYVJkTFF0dlpCIG1wQlJibWo3OGNjZjc5cTFLNFM5ZS9mdUlPWU5XTk5iY3ViTWlaQnc0enNxM2IxN1Y3NEI1ZUlEYW9RU2tVUHJnYTd4eUk3N1NRY0EgaElRdjZnOEpEK0toNzNWaW9udHdseXRYamxzMGx4bXM5TU1QUHlCRjZEUE82NTlzQ1c5WWFrUjM2WEJIN2VPTWgvVWpoR3k0V2R3bSBramFSS1UwQVN6ZXdsb3pKbGkwYmJtZ1F3Ly90MjdlUFBCUXZYdHk5TGxLSWUxMnZwUzhHMmVyQThlbFJRYmEyeVFqWitKRWE3Qk15IDNFZngwMGF5cGsyYm9uRWQxbmI3bFhqN3dZTUhreWRQbmpoeDRoQi9Eb1EzVjBMZTlFK2RrMGIyRWlaTUdBUGpFc1lqTzZvU0psc3ggZVdsMVNFNVRqeHFvOW10TEFiY1VMRmlRN3JGMzc5NmdaT3pjdVhNNHRRMGJObFQyL08ydS9MMS8vejVQQU5rcXBvN29qa2QyZ2tlbiBxRExUMEJ2SWxwYVF1K1l2c2xPbVRNbWpncldpRldHRDlDOVFvQUJ3OURjblFqYVl2bkRoZ3M1UGs1c2JEK3RIQzlrbVFkZ21KSVBpIGtQakZrUys4OEVLT0hEbU9IVHNXbE16QS9XU0EzdUorVk9SL1d1N3Y4VUU2NnA0OWUvVFozNDRhait3WW5WeTJwWWI1QU1UaHc0YzEgcWFINUY0ZWQ0VjdUYzg4OWh4K0pBT0Foa2MvOG9VT0gwQTg2YXNNdlpIT1hpb0EwT25Ma2lEbUJ5UmJWTFI3WnNkczdkT21yNmVKOSArL2FoVFdXN25iZlFlazEzNzk3RjRVTkNhTXR3Sk5PWk0yZm9LdTVISGszU0FnRWhtNXpvczA2bmpvZjFvNlZHaEI2YVgzRUxCSVdFIENSUDZpMno0VmF1NnRmY3NNZ2xRb291d0d6cEsySy9PbkRadFdpTklidDY4cWJYYWZnM1B4eU03RmlzUUc0eUU3MnZYcmduWi9PdnYgeGlvTi9KMDdkNDRQUjQ4ZWpXUXB3c0xDeU5VdnYvd1N3TUJJNXN5WnphcEF6QWlQMGpnUHJtUThyR014c2dOWXFJbW54VjIzYjk5VyBSQTRSWHZiczJmMUZ0aDZGR29uOG9yL0xseS96S0xBWUFMSXpaY3FrZFYzZys4R0RCN0ErSlRJYmJlTFRJNlJHRExMNVlDTDI1c2lSIEk0Qk9CVzBEeDhoUDFzRDZtdTNYTkkxZktVbVNKQW9meFY4QWpUdXJVNlpjcmw2TVIzYWNRalpPSlBURzM2ZWZmbHJIMDJUTGxpMkEgK1JFOFNQUk01SFgyL3YzN0ZVWTFnRjB3WkQ1Um9rVElEeHhRUHRQVHdIUThzaDg1Wk5Qa0lCczlxcUVEdkVBK0FDbE51ZnVidExxZiBwMFZ5OFBqdzRjUGFPcURqd3Z4RmRvWU1HWFE3QlNFbm91MFllNTVsUExLakpOMjVjd2RXMC9tMm9CazBnQW5ZenQvQmJLVzBhZE5xIHVDMlNwelNKOVNGc2g3Q1VEcVlqZGVyVTVKOXkwVEcwY0FDUnJkMlE4ZWxSUVRidC9jc3Z2MEJwS0d5UXBOTzNBdkRiakJxaGg0Q2sgU0E2UGFERXRIU3l3bllzS3EzbjE2bFV0N09ZYnloV2xFVkhpa1IyekVwWWFaR3MzRFNTWExsMDZ5RklITmx0SGY3WHp5czBENlJzOCBoM3VQSHo4ZWNLNjBRQzhrL0VBd2w4aTI1bERlc0lKeGtwbG5ubm1HVHFzMUpQR3dmaVNRclJYWWUvYnNVWkRTRjE1NDRkZGZmMzNzIHNjY2tVb1V0WGZiNzc3OXJSV2lFRU5mcGRTYSthMkJKUTM0aDRiT0piZ0NOK0VGVFdhY1k2YTQ0a2FHaG9YU3dsQ2xUYXFObmNQZjcgeENNNzVySzFQcXhhdFVyT0ZzUzJZOGVPL1Buenc5bFcrR290djlFbldvRGhhNllhRFFCTmNzM1BQLytzWFZzQnBCOS8vRkc3QitnbiB2akt2UENpZjlFWjVpaWJiZEl3a1NaTFVyMS8vL1BuemlCQ3RYNFd6VFhjTlNnWEcwaVZXajRRYXVYTGx5dW5UcDJGWjJCbzgwVlJkIHUzYlZTTEFraW93N3lOQzZQN1dsbG1Gb2RhanRnV2J5RDEwYjhLclJzTEF3QTFuUFg3VkR3bE5WRzkyaTZVWVVkcWxTcFRKbnpvejEgMERUa3ZYdjNnaHNRT1phQys1SGc3RW1USnQyNmRRdXhvYm5EMHFWTEZ5MWFGRVFpY0UxY1B4MEdHZkwzTEtQNUM2MENNaHQ1RzNXTyAwZzFzM05DS2JFL2NBRm05MFN4dDFWL3JpZXZpY3AyazA2RkRCODArL2hhZTVzK2ZIMFRhRGdsb0xVTThzcU1jMWxqcUpVdVdhS29QIEVFQ1EvZnIxUTBJQWtaZGVlc25yUEtLbUowM3lsQ1ZnM2NydWdTVVR1dHYya1AvK094bGtlMTFCZnZic1dZVk94dFM4L3ZycldiTm0gbGJiaHhuMzc5czJZTVNPS2RGMDhzbU5LQXNmbnpwMHpDNWNyVnF3SVp3TUlrSjB3WVVLRXN2T3hCMTZ4eGUxNldtUjJIQ3JVaVZ4RCAyMHUxYXR4NVN3UmU0M1BQUFllcWxvN3EwNmNQZDVFZlRkbE1tREFoV0pPUnh2R0lYZUNPNDV4Tjg2OWZ2eDdvbUlVaUFKMmZVcVZLIDlWL2g2ZUxGaXc3b2xCYlh3aU5ydTJxMkx5U2doVmttYWQ3UjYrbzhOMXNpRGgwNnBLTXVGUlNxVWFOR0ZDb2tmRk1jejZSY0kwYU0gQ0Jhc1l5TnRKNGpEc09adjM3NTlFUjVJWWVnTjk2dHk1Y3FLTGMyWDhCeGUxNTA3ZDZ5aC9idzJyUlZoZWl6SVZuK0l6Q0c1R3B3aCBTUk5iY2VObUR4dUdDSWVZSHF1dFBaVHh3dzgvUko5UUxoQlBaNTQzYjU1ejBRTEFkeXdDZDF6bTdPM2J0MnR3RjB5anM1OTk5dG5KIGt5ZHJJQUlkQWhTMDd1L0VpUk4rVWRmTm16ZnBHSklRa1FrUG1TRkRCZzJLeTdzMVV0N2xoc2pyMTYrZk9YTUdoalk3elpvMmJWcXMgV0RFeXBzQlJYREJtekppZzAzWnNBWGVjUlRhYytzVVhYK2pjWG5BRGh0cTNieTk3TFZJRTZQeTlkT21TeTJYV1JtNmVQbjBhTHRUZSBoY2lFaCtSZUlmdkdqUnM3ZCs3MGF5OE12ZXZxMWF0YTFHWFluZndncitGc3VxdEdUdGF1WGV1bTM4WkpUUkpua2YzdHQ5OXFLa1FEIDBwa3laWHIzM1hldEZ5UlBuaHlaQVFnT0hEamcxNU12WDc2czgwVnA3OXk1YzBkR2pTalVJS0ppMzc1OWZqbWorL2Z2cHovb0RCM3IgOTFteVpIbm5uWGZvekpTYUhJTCtzV1BIQmxlUXhCWnd4MDFrMzc5L2YrN2N1VUFRMDB3RG96MldMMTl1YzhneVo4Nk1TRVdvK0xVNCBEaTdrc2VmUG45Y3B3RG81TjdCRXJyUmlCTU55OXV4WjUvUDdiRWxNckpNZ2JUOTk4TUVIT1hQbTFFZzhjbXZ2M3IxQk9ZRWsxbW1TIHVJbnNLVk9tSERseWhIWUZmemhWQXdZTU1NZDNXTVVBbElrcDl5c1FIbDNsNHNXTFdxUEhrOU9uVHgrWmZISTdpSUZmRVVVNm5jUGwgalZ5TW1xSnJlY1lVcGtUTGxpMlRlMHB2b2MvZ1hRUWxIbHJzb3UwNGlPeHo1ODR0WHJ6NHlwVXJvSkMycjFTcFV0dTJiVDB2UzVreSBKYVpjQzZIY3Q5TnZ2LzBHWnl0Y1NaSWtTZVM5Qlp6eTVjdUhKU0dmUEZDUkZWemVxQlc1OU1uczJiTjcxVGtqUjQ1VXNBZWNYVHpwIG9NeTMyN0lYdzhFZEI1RTlhTkFnQ0Z2R0hSMDhaODRjcjRoQmlpQzErUW5wWWtLenVuRk1BZlNEQnc5MHZtZ2tUNFFwVXFRSTZGVHYgaXZETVZXdWkzNEphc090ckgrZXJyNzdhcGswYnpkMWN2MzU5MHFSSlFSa0J0STVGeGlNN1d0T0tGU3Z3SFJXWUZPRHkyV0ZkQjNvVSBmTU5xN3M4d29HbkR3c0kwU3gvNVl4ZUxGeS8rOU5OUGsxV1FXcUJBQVpkM2tRSDVCaFRRalBaNHBoRWpSbUN2UXNKWG9SdzdkcXhiIHQyNlBsQ3NacDVDTld1M1NwUXNpR0Q0RE1jaE5KSWZEOWVYTGw0ZjJFQVB1a1kzYjk5TlBQOUdpdUo1VnExYU5aSWF6Wk1tQ25xRzMgUUtqdVk2bHQyN1pOUzh4MXdLbERRcFhwYkVoc3dxcFZxMmJPbkJtUDdOaVhzT25ObWpXN2NPR0NCT2pFaVJNalpNSDgrZk1uVFpvVSBBajV4NG9SWnp1cWNGUFNNMW4zKytlY2pmd2cwa2dZbkVtUURhL2ZCWGIvNzdqdTBGdjZyS05raDBmMzI3Tm1EZkFLQ2RQaisvZnNIIEpleDNyQUIzM0VGMnYzNzlmdmpoQjJBTm1UVnMyTEI1OCtZaEVhM3JvQU1BYnBvZit6NS8vbnczN3RIaHc0ZUJpSUtQQmVWQTBSbzEgYW1qajJmZmZmKy8xQWx0T3pwdzVnOUdnRzJPT1NwUW80Y2JJNEQ1aW1xUjU2UHp4eUk1TmFlZk9uV1BHakVGWGdCSnM5R2VmZlJiaSBicmtTSFNCUm9rUlE0THAxNjJ4NndHdWJnVCs5QlVRR0plY3Z2L3l5RGozYnZYdTM1eHYvK2p1WmJ6Ny8vSE9rQ0ZxclhMbHlMc2NyIHExU3AwclJwVXpvd3o0R3pHelJvOENpQU95NGdHeXFxVnEyYXpveER0bjc2NmFlKzlsOTVwdERRVVB4SWFCNk5NVzdjT09mVzRrdVUgQUh3SnNDSlVBaTRUL1RCejVzd2hmMGYxZHI0WXhZSkxRRW1USlV2V3BFa1Q5MjhaT1hKazl1elp0UXh3K2ZMbFU2ZE9qVHl5WS9neSBxVmlQYklpMmR1M2E5KzdkQTliUTBtdXZ2WVpmNk1rckRxbERodzZvYlFUMG1qVnJ6S0ZoWHUrOWMrZU9EcmZHODR1OHlGWjYvUEhIIFM1Y3VqZFMrZi8vK3BrMmJITHJXZ3djUEFDam9wOS9TazE5NjZTWDNiM24yMldkSGpScjF3Z3N2S1BaZjkrN2RnM3M4V2d3RTk4TkIgZGhBcllzU0lFWWNPSGRMbUFNanZ3dzgvOUF2V0llRmozdGhyYUJnbmNzaVFJUnBRTTV4a0ZRUGJ0MjhIM0x3SUNSSGhobk9ib25DNCBvRzdkdXVoZ0hOazVjK2JZYmpTUk5mbE0wZEFTaXJMNXpqdnYrRnRSRlNwVXFGZXZIclFOQmRDTE9uZnU3TmNJZXV3VEpIOUZleks3IG9TTC9xRzNidHFWSWtZSzJSMDRrVHB4NDJiSmxDaUJOOHVzNUVQOGJiN3lSSzFjdVVJNlBoYnk1ZGV1V2Z1SlJKcXV2dnZxcWpoTEYgVlhWZldPc1R2S2E3ZCs5QzJ3QXVkZXJVT3Z6T2RoY083a2NmZlZTb1VDRXdUYWRDa3dSV1hSUUs4WU5sMDVvQ3VuSGttL0kvZjZlZyBOR2dRVXl4R05yVUpDc0cwQXByQmZDNlI1RFZkdkhpeGZ2MzZhQXpBelljbFM1YmN2SGxUYjlFRFlYU1FCN0pSQXNLZnkwenFkdWNzIElYd3BBakpqNWNxVnV0aVVZdlBtelIwN2RpeFlzQ0N3TGxPbXpNS0ZDeU5UYWZQbno4ZGoxbjRpTk5YWnMyZmprUjE4WkVleUxyWnUgM1VvamFUdDNxbFNwOE1BaWcyelNzV1BIR2pSb2tEZHZYc2k3Yk5teXNEak9GaUtCQi9KMzdkcTEycTd5N2JmZnVpK21TMlQvOU5OUCBHVE5taEVjYk5teW9ONUpPblRyVnFWT25PblhxNU11WGp5emhQOHljT1RQeTlZOTlFRzNUUy92MTZ4ZDVmakhwa1VhMndYVGtLK0wxIDExL1hObGlvRHBmSVd0RUJQNVB1MGFaTm15SkZpdVRNbVROLy92enAwNmVITE9mTm0zZisvUG5LbFN1RHZENU5xa0VBQUNBQVNVUkIgVktKRmk1NDhlVExDbm1NNm1FdGtJMGlRMGZRY3BNNkpFeWZRRzdWcTFjcVFJUU0yUkRuQkltM2N1REVvVFhEMDZGSGVvZzFwYWRPbSAvZU9QUCtJa2JUOEVaQWVsRmc0ZlBxekZ6WUFiQkdnSnFFMFdCNWIrL1BQUGFkT213WlNBR0dXU0pFbVN3b1VMdzVyU3B1UEhqNzk5ICs3WjdFV0p0ZFllTXdkTUFOMW15WkRwdnNsS2xTcGdqMUFMOXFtTEZpbjM2OU5GQk5zRktOV3ZXMUdZY3ROeDc3NzBYait5Z3dUcnkgdFZDMWFsVkQyRjI3ZHJVYWhLQmtGU1dOb3UzU3BRdXFPa2VPSEJvSlFUQ2dldjNxdlM2UnJXMzJtQXVKcTlEUVVIaWFmOGVPSGF1USBFc0ZOMjdkdlZ6aFpPaEl1T0ZZb1dJSWs1b0E3NUtIQU9wSlZNR3ZXTENoTmhKMHBVNllqUjQ0RUhkbld0R0hEQnV3RHFuVGt5SkZJIEJYL2x0Zld6US9ad1dOZXZYNTg0Y1dKNDlLT1BQdEp5eFNoS21BaDZySUoyVXk0ODVyaEgydzl0cGlZeUs1dEhqeDZ0TURGUFBmVVUgOWhydktpaVBkWmdNUW95bVNaTUczOHQ1ZnNRV3pjeXZ6Q1JNbUJEbGd3cmk5aDA3ZGdRY1ZNM2xTcXdxVmFyUWk3U3BEQW9QMXNSTiB6Qm5ZVGhDZEErZEJ3ZCtYWDM1NTVzd1piUjFIbUNJWm94VFdwSUVEQjlMODdkdTNCM2t2dlBCQ0ZMVXIyb0J1Z3dKQitRQTFiVWlMIHV0U2tTUlBjUndpYlBOKzVjNmR2Mzc1eGJENHlRZlRET2pJSjl3N3BxU0I5VHo3NVpPclVxV3ZYcmgybE9iOTI3ZHFCQXdjUW8vNU8gYUFlUTZLaThBbTJBbFFqV25uTmZpUkxoRnROUmRRekkzcjE3RHgwNkZCS0hVaXhiTjRMQ2xydWpnQVRvRUhnMFN0L1lyMTgvR3I1YiB0MjZwVXFXS01DSlVoRWJEZWFZZGtaQXlaY3BPblRvaFJTWk1tQkRWNTB4ckJFYUJ3RkYzZ3dZTkNveUFvc2hVUGtMSXhrQXJmaTROIGdKdUZNRFdMbjZJb0lhOFhMbHlZTkduUzFxMWJpOTdjMjZYQTJodE01ODZkdTNIanhyZHUzVnExYWxXVWxnNnBUWGZGOUlXRTcrL2MgczJmUHQ5OStHNVExSkRGQmtFUUhzajJMR2xpcmp4OC8vdmp4NC9LK2FROEFWNkZDaFNqTithZWZma3BIZ3N5ZWYvNzV3RTRoODFlUCBhWXg1eUpBaFFMeG56NTVSV2pvOHlBd1pNanp6ekROYWNSVVdGalpuenB5Z3hHOTRSRGs3TUZqLyt1dXZtelp0b3ZaQnRvYXhVNFNuIHFNc25YdVBvMGFPeERNMmJOOWZRYjlEN3VWZTQ4eTdLVmE5ZXZYUG56a1gxb1RPWk1tVjY4Y1VYRmVzUUE4VWJ2L25tbTNoa1IydWEgUEhueTJiTm5GWkNYbGdqS05rVG5OR1hLRlBSUGx5NWRubjc2YWZld2R1Wm1OOC9STllNSER3YmlYaU9sQkRGVnIxNGQ1MEY3YzZDTSAwNmRQZi9ubGw3WjQza0d4MG5FUTJVRXBKSVM5Yk5teUN4Y3V5SGQ4L1BISDRleGl4WXBGWGJacFppVEJzODgrMjY1ZHU4aXd0Zk85IHZuN1ZQc3Q4K2ZMaExrY3BiZU9DdzlubWdCN3ErZENoUXhzM2Jvd0RUbVNVSXpzb1pWNjZkT24rL2Z2RkpUd1F3Q0ZEczJiTkduWFogMXRFMmxTdFhqbVFVcUlCN3U0TFlZNTBDMkdUZzNwNUFFSEMyRGdIVUJkQUhaWTg4YlQ4U2FzUUdibit4RHBFTUd6Wk1ZOWdoNFVOaiBpc2NYZGNoR2NVTFlPRmc5ZXZRSXVHZWFHNjFQY1A4MHJuejU1WmNMRkNnQWJmdmExaDRVbHFHWVd1eGxEdVZadlhyMXZuMzdJdk53IGx5SEE0NExPamt3NVY2MWFSZXVhaDlBRytIYlFkdFRWM2FCQmcrN2R1MWVwVXFVaVJZb0VsNnBETEhHNEl4eXVwcVN0V3JXaUcydkogVnhRVnRtREJnbmd2MXMxdmRPejMzMy9mODR5Uk9NalprZFRLa1lIZ3paczNPM2Z1ek51bHJTVkZIang0a0NGRGhpaXFFYnpHYWRPbSBwVW1UQm9VZEdkSnlNL1lTNFRXTkdqVXFWYXJVbFN0WDVzeVpFMFhnTGx1MkxDRFcva2orNnZTY1RaczJiZG15NWVGSzBEak8yZWdRIHhTb29WS2hRcWxTcHRCUGszLy8rTjB3VFJZNGpCTW5mOHVYTEZ5OWVQUEpDMXRjRkxtRUtZVGR1M0RoWnNtUURCdzZNb3BGbStqQlYgaXRnRDFrbVRKcVVqOFM4MTBMRmp4OEFPbFl3aDNtUUNONjFsRGtpTzVvVGFtekpsQ2g5ZWVPR0Z0OTkrRzNmcXlTZWZ4RlpTZHpseiA1b3dLeCs3aXhZdHIxNjRORFExOTQ0MDNZa2duZitXVlYvTG56My8vL3YyaFE0ZjZkZUtIeXdSSjZ3QVFIVytTTVdOR0RUcWRPSEVpIEtLZVR4V2pPRGtvdjlQY2hpa053OSs1ZGJvUzNZQlFhQUE2akRmZ2JGWXVUNk1EZHVuWFRjcFFnRXJabndjMFprMjc0Z3M1Y3AwNmQgZE9uU0xWaXdJRmhIUEZvVGZKRWtTUkw2REZTdDRiLysvZnNyNXM3VXFWUFBuRGtUbUNQeHFLaVJBTktTSlVzMHNKb2lSUW9jbXV2WCByK3VVUkxtUDJNMmd2M0g3OXUySERoM0M5Tk9SWWxSVk5HellNR1hLbEgvKytXZmZ2bjNsZHdaM0tpUjU4dVRhSm9mZ3hqaWd4QkRmIFFCeDlqek1kemJBT1Z0RVNCRXhGQVhDMis4RWdGTjdZc1dOLysrMDM2TGxaczJZd2xqYW82NHhhbmZBU1hQVDg4c3N2bjN6eUNZUU4gaHNxVUtSTmNBMlVMRkdhT1VuZlppbFJDa1NKRmtHUjc5dXhSeU5iZzhxSTIvR0lNcVdRNk52UUJsZWc4a0ZXclZya1B3ZXkxTExkdSAzUXE2dXhKa3p2YnJmV2I0T2JBMGUvWnNSRFp2eEw5NTU1MTNkSll1VkswWkJPM2RDaTZ5TjIvZURMaHAycElsUzJvZFJZeHlxUnMwIGFLQ3pSNlpQbjY3eHVDQ0NHK0xRNlFoMEllcVdEM0EycnFRQ2U0OGNPZEpsMDN2Tmt2TmVqYWdEZDRLZ3Q0RlJid0UvQ29NNFk4WU0gYUJ2NFZxcFVLVk9tVENIaDh6VTZ5Sm5xMXE3MTRQcU9xRmhJaTJhSWZLaFN2eGE3dW16Q2JObXlVUTkwN0ZPblR1M2R1emU0M1N4MSA2dFNhSmNDcm9XNTFJR0RUcGsycERmclN0bTNiMXE5Zkg3Qk45aGVqc21PUmI5OEVMbk5zdFpzZ0wwcWR6bG16WnYzNDQ0KzhEaXRKIC9hcTB6enp6VEZoWW1NSmphd05mRUZYYXQ5OStpNDZIcTBKRFF6MVA2NHBxem5hWjRhcFZxNEsvbXpkdkJyQ0sybXk4OWFXekZZTVkgRHhWa1M4clhxRkVqYjk2ODVKTTNUcHc0MGMxeUFLK040ckQ2MTR4aldzL1FDWmI2VGVDK0pVaDM3dHk1ZHUwYXpDR3hvV05rdlQvWCB4N0hoRVNJZWJUMXo1a3orVWlPRkNoVkNHeGhrSzlZZVJJN085aHovc2dZSklKL3VLNGdyRVQvWUJHeHg5ZXJWbzAxNytOdjV5UnZhIEY4T3laY3VXeTVjdnV5OGRoazdoY3J6aWhtK2s3clNuWGVkY1N0d0RiaDFRaHRTR3VRTW91T2pmNjA5a1NTODZkKzRjT1lTMlFpeEIgT3FOdjFFOExsREZQTDczMEVqb0JUQjg1Y2lSRmloUys0bmtHUFBLcXVYVHFGL2dpRE1BM0wzcnZ2ZmVtVEpuQzk3S1l1M2J0Z2tpOCBBa1doR3Z4UzRULzg4QU92NE1sSmtpU3BYTGx5Vk9QWVYvajNDQjlMNVdOU3hIQ2pSNC8yS3o5YUZ1STFieFNjcmlLVGhUV2VNR0ZDIHAwNmRsaTFieHIvTm16ZlhpWlZ3eXVUSmt3T0JsdytNM3I1OVc1N2xoZzBiVXFWS0pjL1ZpclNITStwSEY4ZCswYWZwYlhRN3IwY0ggOFgxZzIvaFEyQnJEenBFalI3bHk1ZnIzNzkraFE0Y1ZLMWJBVWpxNGtiOUhqeDd0MWF1WDU4a3lSdXE1WDFGTnU0NGZQMTduTzJiUCBudDE5U1BsSXl2b1FqK0RxYnNDTklLRm9ZRzdObWpWbno1NTFDV3Y2T2REeHFoWW9QZzdpdkhuendMVENvV0NUQWZyUW9VUGZldXN0IGFyaE1tVEwwQ3Q0SVo3czBGRmF5ODFVb2tBMStWcTVjV2FSSUVmSVdGYk1UZ1NCYjZ4NHpaTWlBWXdHNHQyL2Y3a3hkN3BkRUF0bjkgKy9kVDNUdy9TNVlzd0JmeXVITGxpbVNpWkpuWmE4MnZiaFMvYzFxNmRPbWVQWHUwL2N3TllidVJtNEhsUkFPYXp0ZUFNNFhhd1hZSCBaWE03RDFteVpJbkJvcVMydERXR3NWdTNialFFam9mMmtrRTZic3B1alpUaXRVVDBTUnFPOXlaS2xNaUIxeDhDc2cwcm94YSsrKzY3IEd6ZHVIRDU4Mkt2WEVnQmhVNmNVRldId1kzaWlDckRDK2ZMbEsxKyt2T3lVaHY5UVpnY09IUEJyK3RlVEZ3SFRnZ1VMZEFJZHRSemggTUhiUWw0WFplRFRDNVhWd1N1Yk1tYWtCcmtSRTJhcmRYKzhaYnY3bW0yK29jT3lBb3JPU0dRaUxldEEydklzWEx5cmFHNnlQTElZRiAzS3hkTVVnRkFGN2RSL3JNMnJWcmVWR3BVcVdDUGk4UkJHU0hoSWMxQW5OMHdjOCsrOHhoNGxjcmJDSjhHcTFGZ1hXSUtOY0RPTDVKIG1qUnArL2J0eDQwYlY3Um9VV3BmQXlNb00rQ09oRUNsK2JzQnhOcjJ4NDhmLyttbm4zZ0xqMDJYTHAxekxVZCtic3lyMURaRFQyWjEgcS9ORFNwUW9vZm9FZGhpMGdET0RrdzFodzhUMEUxZ1pLRk85UERscjFxeGR1M1pGb2tqVGczdmNLdTNiUDMzNk5OMHBZRzJ0OVBYWCBYeU9sYUR1TkRVUmRTaERKSmtUNUZTeFk4UHo1OHdNSER2UWM3akYrcEJ0a2I5MjY5ZWVmZjlZcWVQRE5CM3BPang0OVhudnROUjF2IGg1TkIxY3ZWSzFTb0VGL0tLSHQ2a3c3QXNpNk1QbmJzR0ZLU0I1SlZYOGM4UnppcUZlR0FyaHY2MTEwSy9lRmMrWVVMRjlaWlpGQUogUGRNb1BYOHQ1T0RCZzdtZDU5Q2xxY3ovSHdndlFRSVFUSU5pRW5QbnpqMW16QmpjUjZTRkZqWG9HRzgzNTdjYm52WXNDTzA3YXRRbyBkR2JkdW5Xak5MeWJGMlNic1NIMzRNNlpNMmU5ZXZVd1ZYUkhCK2tTNFhQbXpwMkxkNmlsT2FBV0ZtbmR1aldBRGduZjFGUzhlSEV0IGl1SUNXTFp2Mzc0MENaazhjK2JNc0dIREFsQzAydEFLZWVpTmJvNmFqcUsxUHYrd3BBZ3ZSbzI4K09LTFpKNUtvT3h5MzNYSXZQc2MgcmxxMUNvK1F1K0NPRmkxYUFGbnFoRW9BM0tCY0I2UWd6enAxNmdSekszNlFYQjN1aXZDc1lkUEhQTFhmbTIrK2liM0ZhNHlRUjRLUCBiUGxuSWY0c1hzV1dGU3RXakx3T0dUTGsxS2xUWHFFUTRTQWdETFJ2M3o0eEVHWVJaeGtSQXRxQThoUGhTYTRKU2NNakVFUExsaTFwIEdENWpJbDFPeXlrL1pFWmRDR1R3UnJtUEx1czZXTHQ5UFRuYkpiTGhDQzFnSXYrWExsMUNWRkFFOVZXWGVRUFFzMmJOK3VXWFh5ZzEgRGRla1NaTnIxNjd4Tk9wVzRINHlQT2xFbnA0OWUwS3gvQ1FMTE9YdGJJdkUyWnBUcy83VXZYdDNNdHl1WGJ2ZzdsVHlRNDJRSWVzQyBlVGZnenA0OSs5dHZ2MDFoOEtiUkJsUzN2L25ZczJjUHBrcmRIYjNickZrenlnODV3UnhtY0JvY3ErcFJmaWRQbm16VXFCRkNpSHBFIGt5RDBYWnBqTlQ5bzRDR0lLSFU1dFdJVWpXUzdCTGY3Y1Z4b1Q3ZmZEMC8rTG0zRk5wNDRjWUozOFp6MzMzK2ZlcnQ3OXk1L01ZencgaU9iZ3lBeWFCSmRHQ3kxTmJFdGV0MjdkT3VkUlZFK25BcHFmTTJjT1RoUytLVkJ4czJrNlN0YU4yQ2FCM0lDYllxUE1VQTcwL284LyAvdGpVdFU0ZkRIR3hRQXBuU0VONElCVW5xWEhqeGhoQnlNbDRkYkFJS09jdi9FRk42Znh3SGVVSVl4MDVjZ1E1NU43MGt5czZFZ3lrIDBubmRWUm45UVROY01uZmV2SG1WUGRqM3dvVUxtbDkwT1hZR0N5eGV2SmlxcGhxclZLa0NjQzlmdmd3VDZVd21LWGdqbHpOa3lJRHkgUnYrMGJkdVdocEFaWDc5K3ZRT0plQTZlVU1sWTQyblRwdEY4eUVzM1Izb0hwZVlUdVBHVzNDZ1RPbUtEQmczZys1OSsrbW5CZ2dVSCBEeDYwL2txVk9ZTWI1V2NJdTNQbnpscDBwdkZPazVBb1pncEc4WjVwNDlLbFMvUGxyNy8raW5QamtyMWtXR2xSSFpFUkVyNXd3b2FuIEtJSjFoTXRGM05BMmpwMGh5UDM3OXdNbVRjUzR5Y0M0Y2VPd1ZDSGg1emNvVEE5Qzd2YnQyem9uRnBLMlRwcFFzVFFCYlZHeFlzVnMgMmJJcHoyZlBublhRZnJZNWZKeUJjK2ZPZmY3NTV6d2NFNUVzV2JJSUNUdksxMmQ3OG9mekt3RWlYS3N0L2hEcTFxMWJFVlhHbjlEQSBscTk3bHk5ZnJwUEJKR3lnWVRtTG5vSWVDaEV1WVZ6UkErb3RUWm8wZk1BZG5EUnBrc3VSZUcwTU16TVVjUFpmUG82akRqcSsvVjBMIDVaa0hqVlJJVXgwNGNBRE9kcm1hQUxwQkpVTXhWQ09PbzlhWGJ0KytuWnJVMW1uQXA4cTBXbU9RRFM3Tk9mT291TUdEQnpzUEZTaEMgSFI5V3IxNzl4UmRmZ0FyTVF0MjZkWkhzemlVTjRyN0VCSDRaUitlV2h2bWFObTBLRjRKT3VqVjQxWUNhL0VJSGN6bCsvSGpENkhBRCBWZXdKYTRFZVJxR1dLZitOR3plMEJoOGF3RlpvUS90MzMzMkhMSEdETGRvUzJ5TDNVY2lPem1paWtRekhZWGlSVW1DN0tMaWJvU2RxIGVQVG8wYWdSV2lSZnZuejE2dFVUNng4NmRFaGlCa0xCR25qV3ZGZ21kZXJVVmtPaGs0NDlNMmE2SEgvcGRVaEU3Q3EwalFoNTdiWFggSERBUTlEcFA0Rzh6T09TQSttM1lzQ0gyYThlT0hXKzk5ZGEyYmR2d0d5aU15dWxyTmVQUm8wZVBIVHRtcEJ2V0NvWHR0ZUh4UDZnbSBuVkNEMDJPRTlldXZ2NTRyVnk3ZVRxY2FPSENnZFVta3I4VHR2TmNVME9vMFI0K1lqdENPT2JTNm1kdmpTd3dqbWlwQzcxbkIzSUFhIHVFUmJkKzNhVlNDRGdMQ1dmQWxmUUtnRkNoVHdlanZJVHBreXBma1g5VEpyMWl6UHkyaG9XVlFlamkrRUNkV0NxaXRYcnJScTFjcGggdU5CV3dLQUU0a2tRQU1mWThtSDlESDgwYjk0Y2hOR3RtelZyaGw5NDh1Ukp4SmJEcU4vOCtmUEJtZmxYWTB4ZXI0UTJTcFlzeVYrcSBUL0dlemVFSFBYcjAwSWpCNGNPSDI3ZHZiMURySzBGVUdzQVJ6Vmc1ejFvNjV5cU8vR1M3ZTNEYnhoK00vQ0RuR3pkdU5PUFp2a1pVIGUvZnV2WExsU2h4SFJHT2RPblZNc004bFM1YW84dUZVaUtOY3VYTGVVWklnUVdob3FHRmNFTHh1M1RyUDVVQ3FMaEFNemIvNzdyc1UgRFREczNMa1QyWU5TdDNwTk52eDR3anFha08wTWJtdnpVRUUxYTliRVgwUm5ZL0tLRlN2V3MyZFBhc1FjSis3WlNEak9tbkVVcjFNRiBEdG1BYjRvV0xhcWQxZENWR1lIS256OC8vaERLaEFjQ2JqakpPYXc2K285bU5vVUtqTE1qV2Z2K3psbWFIRDRlbnN4RDZPRU9zN0M0IEUzVDE3Ny8vbnA0TXJJRnZwMDZkOUJNMWdKZ0JvRlIraGd3WkVIdm9TVi9QZ1ZBMHJLRU00K2RnQWJ4bWtxNHlZOFlNRkVpZlBuMVcgckZoQk0ybXJtOWVxaXdxMjlnL1pFWUxiZkU4WnFsU3BBbTNEQjIrODhRWlVPbWpRSUdRWjEzajI4Z3NYTGxCeW5XRVFFcjRFV1Q2NCBRLzFXcTFZTnhhTHBaZXZDaWNhTkczZm8wRUVMMDNEL2h3OGZQblhxVkFlZ2FCR3NKS1kxOXBkTHduNklDZUl3VGlSV1M0ZFIrVEpOIEhUdDJSSEp3R1c3Y3l5Ky9QSFRvVU5NcmdCMFZwVVcvc0xYemVCeTFWTFpzV2ZNWitOS2piTmRnbkJFcXRDbDJ1SFBuemp3V3dzYWkgMGpRNldTRWFSRWdneUxhOTIyd2hzN0VkRlljTmduM1IyVnhEelNKSThPMm9YTStZUXppQzFKSG1YL2czd3RNNXFIM01ZczZjT2JXMiBoSmFEUE15dlRabzArZVNUVDNMa3lNSFQ2RXNnRzNIcFZRako0L3lmZ3dQREY2akVUQkI3VFpxOVVyVnJ5TTgyUEtxRVFldlZxeGVPIHNyUTFTdmZqano4MkM5QzVIVjZnRWlnNFZJMkRGT0dKUDEyNmRLR3U2RWh5NG0zK0RHL1JOczNCZ3dkamVBc1dMTGhvMFNKb3EwYU4gR2w0ZDNDaUZkVWdBYS8xTURuenRQcExEVWFKRUNVb09LOEN5TFZ1MnBCTFhyMTh2VFdMek9iUkVRZHVLOEFVanpBQVByMTI3dG1MOCA4UW9iTVZPaGt5ZFBMbEtrQ0dJZEc3MTQ4ZUp1M2JwNWpuTkRZR2JKS0ZuaTN4aEwySjRyQk1tdDJkZklCMHJxdVdGaSt2VHBJSXh1IHorMlpNbVg2NElNUEZBTEFYSUNYanplaWFrZDJhNjdBT1Nmb1FLMXVnQmUwM3NHYTBEWUlucEVqUjlKUHNOVmM5c01QUC9Cd2JLem4gSWtvenVtZjhqYURYZG9MQTZ0cTY5Y2lUdHFuNlNwVXFVV3ViTjI5V25BT2NiZ0NIOXJMNU9qU0puRzZLQ2c4VktsVElUUWFnQVZxTCBKME01MkR0dG9iTk82RXljT0xGQ2hRcm9JakM5YWRNbUpQanAwNmV0MTZSTGw4NkFReUh0WWxxUVhBY2RDQVZhTjNwYXBaVDB5ZnZ2IHZ6OWx5cFFyVjY1d0pSWU10S0ZEYk0rY1BYczJCbE5uYXVMcnU4a0dMMUljQWFvT0kyRERLMC83L1BQUDRScGtQUjBBVDRadjh1Yk4gYTRZTGZibVBVVlRiQ1lKUzE1N2doZ2FRdkpSenk1WXRHQzlvbStvWU1HQ0FiUndVR2FCZDAzUUQxTE50bXNCWG91SXFWNjVNUld2SyBSckgvckFsTTA1eFkyS1JKazlMU0J3OGVSQlJoUU13RjZCa3pDcWtsRThIeUM2T090cTNrclkxeitsZURRa29JdjNidDJ1RTkzN3AxIGkvckJnNmVUVzg4NFZzTDVrKzlJSmVBNHVnLzFoa21VQ3VWZWEyUFJFSWdmM2x1L2ZuMUZMMW03ZGkyWElTK05QZlExOUJSRkZaNGcgaU5WdEJUZDlHZ0wrN2JmZjZMdVVFeDdGUWgwL2ZuekJnZ1hXaDBDNldrZkt2ZkNCKzQxRFNIbHFrRjZCVEllVjRTZlB3ZlcrZmZzaSBORFVYZmZic1dSeFpPaGk4OHRWWFg5RUd4cDNsMWZSQW0zR01nZUMyN3I0em8weDhvRmJSSGhTcVo4K2VTSTVkdTNaUnBkQUVsZzFZIFc4ZWhUWG41SGhlZkJ3STczRHYzMVk3NUZiS3h2ZFp0a1ZldlhoMDllalJjVnJWcVZYaUhub01oaFZaczI1U0NkY3FjbS9SWTVMbkUgRmpuWDVMVlVxVklBQ084YjhNRWZhTi84K2ZPUEd6Y09pSnZSSlZ4cE00RHZTUzBPaVpaRDhGeThlSkZteGtuQ2NmUzZuUnNLd2VORSBjUjQ3ZGd3YVExenUzYnRYYnBCMUNOSTYvaDN6WFVudE03ZG1YbTcwdjhNVG9nNDJwZWUzYU5IQzYrM2ZmLzg5Nk1mTlFFNmdWZndLIFJJRVJrRHNJR1ZsRjRMQmh3L2lYeHRWSlpSQTJMVXMzc01yeHFIWVpnOGJaWHFGZ3pUMDhuU1ZMRnVpUXF0UXVMeFFZZm9ZVmduQ3QgcHJpMVdkMnY5Nzc5OXR2UVBIV0hhY1lVK2pxQWdnNkRsNG1VekpvMXEyWTM1WFZaUjFqZGg2NkxDVW1ib1BVWk9RR1kxQVJhZFlRQSBnSko5d1JxdS9mVFRUNkZZclg5cTFhcVZYNkhlc0pPYVRLQU96U0E2SUY2MmJGblpzbVV6WnN5b0pXdEhqaHlob2EwTFZxTVoxcEhsIGJHZm14alpCSHV2WHI5KzZkU3ZBa3Q0b1hicjAwcVZMdTNmdkx0cW1kaVJGQWtDMklwVkJWL1NOUzVjdWRlclVDWHg3RGF1QXhVQ1cgNEVlQ1lBaGVXNlQyN05rRDB5dTNmQm1Ma0kzQU03Vk5KY09YV0NSMEhRb1FPeWtuejFmcTM3OC9CVmNrY3R4NjdKNWZyd2FweGk4eSBnUVBHakJuRDU3ZmVla3ZyNFRBSU5BY0d3WnhMRWYydy90KzNSajdSaWY5alNmeUw5YWNydzVRVktsVEFWTUVXOFBlaVJZdmdja2hVIDNqMlZRcy9XOWxLYXg5K1hnbW42VE9iTW1YSHdnVytkT25YYzM0c1JOMDRrTFMyZkxPWW5LbFo3YjgzOGxQdDc1ODZkaTh1ZUtGRWkgK2dNVXF4QnovaVpJQVZiQ2U5R3JVWnU0bFZBTTlVbnZvdWsvK09BREd2MlZWMTR4dS9LczJEQkRVbEdkZ2hicXdYTzBoRXFFb2JINyBGeTVjd0tVQVBZQ1BNdWZMbCsrYmI3N1J4ZHJOb2NCT0FSekl5elA3OU9tRFpkQlNFK1JkNTg2ZFhkNEx0NWtKRHRwZ3c0WU5zWUt3IDBjY21oZzdGTjR0TEkwdzdkKzdFckNtdVBnVUhlWUdkRzZHUXNCcWY0VjlzOG8wYk4wQTJjRThRbmhSTEE4STI2emNmeW9FWndReGkgNG1sbDhHYW9DT0M3ZS9kdXlxeG9RTlFDOGxxbklPTSttaGtmMjlJQ2x5bFBuanpRTm5aUW0zOW56SmdCMXQzY2lGNkU2VTJHaHc0ZCArdENQblhXVGNGck1xQTVGZGluaGdIVzlldlVBSEoyQmVzYWI3OUNoUTJBWk1KUHo5TEY3OSs3UnNsZ0F6QWkweGNOLy9mVlhwQjNYIGFBVDk0ZWlRb0NQYlUrZWdlc0VjZ05ZV0dENGd2M0RwNE1nelo4NGdWK1EreW1ZRkhDc0loWWR4MEVaR09Bbi9DWEp5Z0treFdObXkgWlRNVlRkdDdYWE1jb3hLMTlONTc3NWwvcVZ1dGszSHVrOUJxM2JwMXFXMnFuZnJIclI4NGNHREFNY0kxbGlXcHZYRGhRdFFJZlNabCB5cFE4a0JZOGRPZ1FMd0xaK2ZQbk4yRXlveC9Xd1VlMkxmY0lhK1FIZ0Q1eDRvUW0waWt6L252bHlwWHAzSGhDSWY5M0hYM0FMeDAwIGFGRHUzTG5SUDdROUZUcHo1a3l6b3MyR0RPczBRZEdpUlEwRDBVNGpSb3lJNGJSOUxEejlUOHVGcnl3MTQ2ZStEcGpjdEdsVGt5Wk4gYnQrK3JiV3ZhTENlUFh0NnpndTZUMXI4by9WdDE2OWZ4NE1IeE5TOG5KYkRody9MT0tNdHJSdkRvbjlhTi9pY2JaMTdwMnd3TkI5QSBteGhSbzFRbFNwVFl2SGt6OWFJTjIycVZpeGN2QnZ4U25qbHMyRENRcXZoU0tMelpzMmQzN2RyVlJ0WFdhRXo4clZLbGluV0c3UFBQIFB3L2c2SWxvUzBDemVmUG1CcjZVdEdUSmtxcEFYL05sMjdkdkI5WTQ2OW9QQnN1MGJkdlczL0VRejNGRGZZQ2JVSFM0ajlyWnJqeG8gbEFsYnJhbjdxRnNXOG5EVWlKazFSWXJoTDhwRkUzQnBDVHdZUE9zbm4zd1NtYXU1UTdXSHkxQlB2bExtekprRmJtMU54MmlpdWJYRSBTZ09MMW1ENitrdXJ3UFNtMG1HamhnMGJCaFpDTmhvU25vbDI3Q3NsU1pJRWpXR3Jkc0ZhUlZpeVpBa3VEYldxdFYrdyt6dnZ2T05tIHpabHowb2lIMHBvMWE4cVZLMGRPakxiQnU0VzgrRVplVTVUT256OGNuYTNDNExKb2hRYUExb1pmdVNDWXFqSmx5dUFNbVQwSFZKT3YgVU54K2VaTWpSNDdFNEdvNlJnRS9rZUR3dDQ0bXM5VXlyNlpoVEt1UWgxMjdkZ1Z3NUhnMEpIb2Qrc29JTmtwUm9FQUJoV2V3c1FrRiAzN2h4STVodTA2WU54Q2wzRXhMdDBhTkgrL2J0SXc5clRSTFJXMkFvbkNWcW00ZWJScVFqOFJlMTQvWFkrWmlPYkpkaWxDcE9sQ2lSIHR1dFNjak9EcldXcjhDVnVOWjNiYkxPTkpHY3JZM0QyMUtsVDZUbHFZMlFKcmlFbUdESWVNMllNdnBRdDNpbmZXemVTQUNETXQvdXcgeU5HVEtCYytIekMxYnFzcFg3NjhiV3NwR3BleXQyN2RHaTVmdW5TcHRMVmczYVZMbCs3ZHUwYytKMGdSalU5cjZ3WlNFeWxpcUFFNyBTZlZTODJuU3BOSEs0WWRvQUI4TG1JOGo3alFKRXBnVHE2QlBBeGZGS3MrUUlRUEZQblhxbE5uQkVNbWhDV09MeTVZdE8zLysvRnExIGFxRXY2VlMwS3pXTzRvU1BGV0FBdWRtclY2LzY5ZXR6TVU1WW9VS0ZMbCsrYkJ6WkN4Y3VZUGNiTldvVWM1Qk5uNTg4ZWJLVnNPbTYgdFd2WDFyL0hqeDhmTUdEQXRtM2I3dDY5U3lVTGZIQUg5VSsxSzNEWGUrKzlGOWllUzArdEx6TkxUZEp6OEpkMDRwNSs1UnQ5MERMQSBvQnlrRkJOSC9VTCszbGFrYlVobTZGcmZJN1d6WjgrdU5jUWhmNThNSFpTWDZvQXNiRUs2ZE9uZzdMQ3dNTTBEMHlRUUNacG43OTY5IEVETnZSNnZ3ZmZIaXhhMTdpZ0VIVUxCdU9uN29qbVAvL3YydEM3SWxSYkpseTRZWXFGYXRHajJUZ3NBTGxNNnNicVdZOUllVUtWTnEgc05rTWFFUWVhcHBLNUlIUU0xSlRnYmYxRXdTaFdGUDBLN25tY1JiWndwTUNaMWtIOWFnTFBJekNoUXZmRFU4eW1vcGRGRW5haHJFTyBIRGlBOGRWNHVTWTRyZlVyKzhoZkxtalpzaVhNVjdKa3lWU3BVbG1IRjBESm5EbHpBaDZGREs0T29WcG16WnBsaGJXMkxRSjNmSlVOIEd6WklYMGtoMk1ZaUlBdXFldWpRb1lnVHMxSTNNb25Pb3hseVhrb0wwcnVzc3hDUGhTY2htejcyY0ZkTkpuQmZ4YmJrOGtZSVc3R0kgckFpVFQxbXFWQ21xeVl6bld4My9nQlBhL2YzMzN3ZmN3QnBlb1ZONUJxWFdVSWxVOWFaTm0yQm9ESWpaTXl1VThCQ2c4SERIU1JRaCBzbmZ2M3RxeWFlb1FXNzl1M2JwSmt5WnBKNklaeWJidFRLWG1LUlFkQTRIKzRZY2ZlbzBRNG04NmVQQWc3NUt3eEg4Vk1adTYxZDR6IHBLYmk5dnNGclNCR2gvS09iRitvOVRSa0x2TkJPVkc2dHZPKzlCYWt0cGJ6cXFZZ21JQlBKRE11MUFjZmZMQm56eDZxRlZPQXhzaVQgSncvRUpoZlcydmFtSHJVcDlkS2xTOXBZYVU0Z3dKcERkWkU4aVRqeTV1N1FvVU1tWUpBMWdBU0NDdEJieTJJbGJLNUJnV0NMTkhWRiBXZkQyNXM2ZEcvbWpiWlFadmJGU3BVcm1iQ2RqaW1sQkhiZmlzaWxOdG9OMXBKaFBaRnUzTm5yZEFXSGJCT2xHSVNodXZ1ZFBFQ3FlIGtJS3A2c3JJRFB5ZE8zZXVaOCtlT3AxREc4QXcyZlBtemNOZTkrblRSOGYrV2cvTk1LdlBNQm9RbEljQ3BnQUFJQUJKUkVGVXZKV3ogOVFGU1BIcjA2TVBTSkVMa3E2KytLb2hZendTa2dKSndXa05uWUMzcEJiQW9PTzd5Z2dVTE1FZlFxdHkrSTBlT2ZQMzExN1k5VFg0bCAzcXQ5TkFxU1hiUm9VWkcwVlNrcC9MYlgyTFlPb3hFTzU5WUdVNDNZNXJUTUtJOXREWUQ3ZDJpQ1NodFJ6VU5BSG54SnY0ZDdSS2hVIG5Kc1F0TDZHZTd0MjdZcmxSU0tyM25IYjBjbzZrQmNpYjlDZ0FTYVNGOW0ybDhxMllxL05FVVJXYkZXdlhoMTRSYjhtMFhhc1hyMTYgWGIxNjFWYm5XRGtzak1LTVdETW1jRk9LZlBueVRaa3loWnBFQjlPbDhaVzFwRkhXYWVUSWtZcUhHRURTQ2NJaGZ3ZHBTWjA2TmMrMCAxcGdPcTRESWJEdW1BeWkrVjlRRmlHd2JUOXZtTmF5R3p5OUpwQ2tyS3NLNmlzRElYSHg4bzdQNTRQV01NamRwNE1DQng0OGZwK1hVIHdPam1oZzBibW43Q04rUEdqUVBjWm5tRHJSN2huaXRYcnRpV1pPbndPTzRpbjlFSmJxMDdCNTNvQjl1WUpwblhHY3BlelNtaUszLysgL0pNblQ4NmNPYlA1dmtlUEhrZ3lhUWFLZ3l3Qjd2NEdremZKakYveEl1ckVHcUpFMFJwQy9qNEsxT0ZRYWplQTlxV0JBMEcyMStpMyBubWVxV2creWNZTnZtVXN0enJhT092TVhLUUt2cEVxVnlnU0YwUm9wZjlPTUdUTldybHdKazJsMUJQS21YYnQyclZxMXNsN0Qyd0YzIHg0NGRhUXliNGpmNkJLTmhLeEgvN3RpeGc2ZDUvaFNsOG5yTm1qWFlHZXZSenFhS3JPTEVOdGFFQVp3NWM2WXQ2bVM2ZE9rQU44NjYgYWg1b0l0c0NXOEtLWmpPemFWV3JWdlhNbnV5ZWdPRnlMYUZoVEJ0ZFJ2NHczd1JlWmJUdGlWNWZZM05mSElhMGRaUzN0YWptU0V4byBwa0tGQ2diclc3WnM4YmNBMk9XSkV5ZFM0eHFCUnVSTW16WU5FK3daVXBxZlB2cm9JN3lvVEpreW1XQmNOdkZ0NjdFYVY1ay9mejQzIFJnKzRGWW56elRmZjFNbnp0bU5WakRtMWZzOWxpR202Myt6WnM2M2JiVXlxVXFYS2tDRkRrTVVpR2hRTzNYWDU4dVgrNW0zbnpwMGEgRjZjcHMyZlBibDFBSzh4b0xXdUlpNmxIQi9BRTY0QnEvK0w2ZVYxQ2JUWnVtZEUwbThoV0R6YlQyc1lYNW50a0F6VnVIdXNtK3JVdCBEUjQ4bUtZS0N3c1RRQUZ1MXF4WmRZaTMxOVM0Y2VQRml4ZWp3clZqMGxla0src0tLc28xZXZUb1VhTkdSVFc0Z1RWNnJGNjllb2g3IDZ4Q2VqY3lzTVFKUXRHblNwTUhaSFRac21DOHZoVzZjTVdQR1R6NzVSRVdHQW5qUmh4OSs2Ry8ycURkQkZpbUNZZFJtWGhzUG1qRlcgcjZlMld0V3MxOEdKSUk2UStEMVRZNVpOMmpLaHdNbWFtckoyV1NwUnFzczJES1FuNkJnVWM1Z0c5czdsNGQ3R2NadzNieDRDWGVPRyAyYkpsSzFhc0dNemhMUEp5NXN5NWF0V3ExcTFiNndCUFo5bG5CZ2NIREJqdzZhZWZSaDI0Tlh4UnNXSkZNMHJ0MVJoYXZ3R3loUW9WIDJyeDVNMDZGYzBFQUlxcVBJcWhqSU5hUkpTRFYzN2tDdlIwemk4Z0o4YkdMeXJndTFneFFPbm05WG9WdVZDd0pEREQ2bVZmRG9WMFYgZ0lBeW1GVWlKbmkybGUrdDVVRWIwSno2Qm94dTI3Yk5mVTRHRFJwME96ekpTVVdXYUt0dmhBWVJJUVM3TDF5NDBMa2JxSVhFM0xUTiBlKys5WjUwM0NXTFNhZFBGaXhjMzQ1NjJvUS9QSmtCWXYvUE9PMVNYUU9aUUJBRU9CNk4yN2RxS3EwOEQ4VVljRC9jckduQTZGYjJXIGVzNlJJNGRXODNraVVwOTV1S2xWa0tDVlVvS0h6VFdNdW1XdWdVYy84enJJVFExS2FTbU9rYXlTMXFwNzNjZkJYZFExcm8vS0RIcVEgMmk2SGtIRVpvVjV3SnNjeFE0WU0wRCt3ZHUrVlY2NWMrZGl4WStYS2xYTSs1MFVnRTl1Tkh6LytsVmRlTVFmOEJTVmR1WElGaVZ5KyBmSGxWVklTalQ5UVZHbmZGaWhWanhveUpjSXVkOFNMb3pEQjMzNzU5VlJEUWR1Yk1HZmRuZXg4L2Zsd0xudWhJNkJCZlp6NmhqbVM2IEZid0JHQUFBN2FYeTdBQUJqQ0JIT2JLOURvR0x3aW16eG4zTVFsNU50RG9jdUZpbVRCa1RKK1NmLy95blMyUWpMbS9jdUNFOXg2dUggRHgrTzBEUkJpVFJ6RWVGREVDVHIxNi8vNG9zdjNKeDVwYjlyMXF3cFc3YXNqcm1KL0FBZjZxdGJ0MjV0MjdaMU9Xa0hSUENQVDU4KyBiYUpadTRHMU1FZHEwS0FCbU5OZUwyaVlncnRVU2djT0hGQlZvMyswSnNRckltRVdMc2J5S0JLeEJyekYxbGFRUk1NUVUzRGVZWFdRIFZRek5tVk0yYWhNcUF1NE9zekFwVXFUQXBWTk4wV1lhVG9ud3BVdVhMdFVDSGQ2dVJVTFdPWHhiZkIvbjlNWWJiNXcvZi83bGwxOTIgeVI4WThUeDU4cUJ1STdPS2l3NlArNHUvTzMvK2ZKZjV4Q0doSDg2Wk04ZjltSnBWT2xJNWlSTW5OdkVweWNEUDRjbk5jOWF0VzZkTSBob2FHT2pqb09xVU4zU0lWYXM1c3R5STdlZ1pQbzZUM0tBUVI5UWk0SVVYKzh0a1hzbFhqcFVxVjBrZ2MvaE5NSE9FclRwMDZ4V1ZhIG5zb1RpaFFwQXJpdE0rUWhmcDRDZzJ5ZEZaNDhJMFA3a2lqTGxpMmptZDk4ODgydFc3ZjZwYnpQblR2MzRZY2Zac21TQlpmTzVjb2gga0ZHalJvMzkrL2ZiWWtDNmhMWHhPSG1PRVNTU0N2Mzc5NDl3Um9LSzNiNTl1MW9XK25DSXdFZzFhbWNOcEFONTYzcEpsMmhlK3ZkWSA1Tm5hYTQ2RlY0ckhYNnBQNjc4Y21pMWJ0bXd3d1lVTEYwRE1wazJiSWx6NFAzTGtTRXlCY2U5dzdQaGdBNlVaT0hOLzZqUEdHaytyIFRaczJMb2RveUFNU2VmSGl4VkI0bFNwVjBNcklVSGlSNzFVRHRDNEFvdGZ4RFk3QnZuMzd2dnZ1dTUwN2Q1cERWdDBrSkhMNzl1MTcgOWVybFB0aVExNEpyaVNVc1FNYWs2ZmxMdDR4UWF1cU05NUR3Z3d2UjBKVFJWNVVxcUxZMi84cnBjbDRURW9Wd2oyU01LYTNMOFJYUyA2bVo0b3IzcjFLbGozV1pyQytjbHVaay9mMzRaV1Z4dmpSTTV2QmRuMFJ5dVJ3MWV2WG9WL3ZiTWh1Uyt2eEczdnZycUt3ZzFBRG1vIEZVczBLZ1lLdjRLK1NqOUJ3UnVYeTkrRzVIb1lBVmo3V3dRdDl2TDhIb2w4NTg0ZGMrSW9XZVg1V3JydEs5RVFDeGN1Vk1mQWUwYWEgTzJSbTRzU0pDRXVJUm9zbXZEYTNDWVlXbzZPZnlSZnhPa2NURXI1OEIwK0xxa0YrT1FDRkN3QkIwNlpOdFZjVXBXR2R1ZlZNdk5GcyB5UlpQS0VCUnNKYU00YUwxN05rVGduUi82ck4xbEZBSEVRR1hzTEF3SkpOV2lwdUc5R3Rlak41YnExYXRNV1BHK0pzTlgzUW9lWUN3IDBhK0FUSlA1RHFLTDY5OTk5MTJaRHVxRS9EaVVnZ3ZJTnB6dG9MTCtERTlSTFU2Q2cyeGZhNFpvMUxObno5S290c0QzdHFSemZsOTcgN2JYY3VYTkR3Rnh2allUa2RjcEF1LzFVeFFyVzQzV3d6M2FxanZ2VXRtMWI4SzIxcjhHZEczTURhRE8vQ1ArTkhUdldwZlMzR21GZiB5Slp6WDdkdVhXc0FJN01FM0d1Q1JQQXlNVHMwSW5XQ09YSWdxWXdaTTlJUTNPTHJVRTkxKzJpb3p5QjRrSlQ1UVhqeUJIZWlSSW53IGxxZys2em4xWG9mR3FRZ0kvdU9QUDRhOHdkUFVxVk1kL0wrVksxZEtxNWhCUXlsSU4rM3RIbUU0ZVNic0FjWkVVVFdpcmowTVNWTlggZWd1R2FPalFvUTZqcFM0bkhEeTdPa0xaeEZHZzFSU1UxZGVqOERyNE5XWEtsQWg5cU1mNW9DYUVPSDRxaEsxZ3ZKN09LS0xSRnczRiBPR1Jyc2JrY2JVL09WcXdjclpOMjlsSEFUYzZjT1lzVkswYUwwcTN4ekh3MXp3OC8vR0Nkb2l0ZHVuUlV1TjZBakd4cnFUR1doSTVIIHMybjdXWERmSlV6VHQzRWVNbVhLSkNYR1cvQm9YUjdjNDFjSDF0SnFvMFowbUFrSzBPdkY2UExWcTFkVENScmxoS3FjbjY5Z0FkQWMganBQbmtXSjhyNUpHZ3dFTXpxZ2ZXS1FZdHBOd29WWHNGNGFKNzYwcmhqMUxTL1hKZDZSRGQrM2FsZHFoeHZ2Mzd5L256elptVEpWZCB2SGpST2t1SEJYU29LYXNnOFl1MkR4dzR3SXZBRmdoVGhBT0tDWFhwOU1wZzlTVTlCMm9vWHJ4NGhnd1p4SFBRTmlZQ1BNMmNPVE80IHNBNzVlenVaOVFBcUtOYTJxT0YrZU9KRDM3NTlhU0JhcEZtelpzbVRKOWRjckFtSzVHdDRCSTY3Y09HQ0oyZnpISjI0RjJ1UUxURmcgMHdOYVZncjdhajJhUXk4SDJWUVdyY3RuT0Q1OSt2VGN3amVMRmkwQzNEWnpqT25reWRhRk5hRE4vUm5QN2d1MWVQRmlYa1Mzd2QvUyBFbnZ5aHI1LzRZVVh6TkdzUVlFMWhhWG44MERrTE9XbEVqRDZ2SlRQV0Nmbk05V2RPN1BEcjlZRkJWcGphS01xN1hLZ2ExRnBWSUpPIERhYzFvU3JyYVdaZXA1UEkrWWtUSnp6UFg3VjFxbGlBYk92ZVdDdU1hQ3E2UGo2SHN4cWhDbUNwNDhlUFkvSHo1Y3RIOVlrZUVIWWEgR2JWZVRCdFlRNWZvZG1ka2U5MVU0WngwSmpsNW9KdU5HVE9tVktsU0FCb0U4UDI5ZS9jUUtqQ1QyVFVjR0FPcG1Ya09sbzBpNDVEQSBqaFEyTkRSMCtQRGhsU3BWNGxmNmtzdWxIZTR0a2czWm1yTHhwR0crSHpKa3lKMDdkMkFjcERaWWg0T3BlWExyWEY1NktSZDRYWDBRIG5kT1F3VHp6d0lZYkdwNVdnWExvNGhIT0Jtc3hPMG9EY0xkbzBRTDAwTE9wYmlyWGR1WFpzMmV0Tk9adkhHaVhDRml6WmsxWVdCZ1AgQjlNSVI3ekpnZ1VMYXV3U1FsSWIwNlBNQ0lDME10ZHI2TnBhSjBLdzU5b0p1b3FPajZLd0FFaVNETi91M1hmZjFRa3lpbTFnUGNiUyBwVGx5QXgydEhqR0NCSHEyblIyK1o4K2VhZE9tYWV0VGd3WU5xSFp5NnlZOGNZVUtGYmdTTmFJNFVpRVBLUVUvZnJaUnp6VDh3WU1IIHFScXZHejI4SmtRTERWeXVYRG5NbjJwODFxeFp1M2J0c2w0RDRLeExwcVRGQXhqdWRVNzBTWW9BbEJXN240ekJvN2x5NVlLdEFad0cgeTBBaytKQkRxUWthSzNDMXhNRDhLaXRzOEUwSGtNK3Q5YmRLeUtvZVBYcVVMRmxTQThPOFZBSGlJZ3hZRmNDcVdqSmd2UXZiYUYzUiBTdWs2ZHV3b2gyL1FvRUYwUEZyRVlSYlpOanpDbFdDYXpoQnRwejlHT2JKTmtvU2dzdVJXaDdqZU9xa1R5VHAxNmlUbW80TGF0bTFyIGpyRUtDVjhvYk9NbjY2OE9Bd0loM3M0dzl6VWdjT2JNR1ExV3lrUGdkcUEyZVBCZ2VJZ01hRW1qMmZDbkNScW9uY3liWTF3MFpXTjIga2ZDVE5saVlzRlU4QVhqcENHMHdoSlYvL2ZYWGtkZkdEcUMyZVRqMkFiWHRjZ0RiUFhSc0dnL3NXaU9Hb2dPUEhqM0tZOHVXTFpzdCBXellFaHEveGFhL3NSa2twa1E2NmlBdWNiYTFXQkFQQ0VTYWcrK29zRmZmMWpydldxRkdqRGgwNlNMaWoySm8wYWFKRm5yTGRWbHpTIDlwaHNOMDgyZ1pRaVJQYisvZnV4REZ4cEhkTFJvS1FXeXNsUWFGd1dvYXdkY1VEdy9QbnpzSjFSSXdad2tEZktDcTJsZ1ZGdWtWTG4gbVlxWXlvZktsU3UvODg0NzFtem8vQ3I2N2RxMWExMVd2dnREVWF3cVRzdTF6Y21sOCtmUC8reXp6OGdWSnF0bno1N2FRT2xYeXBJbCBDem5adDI4ZlpYeFkwWWlpU28zUXdPdldyUVBmU1pNbWhlMk1QWFVKYnVyMG80OCthdHk0c1paNnIxcTFxbWJObWp5RXJtSWRHQW41IE81YWZ5d0VjQTI3blpZRExsaTJqcFdFMUNRTnJ6aWRNbUFDNHlaVW9XYzJtZUtUaWFYSm9sZ2FZVi9BMHN4TkhoNndxZGoxTXFSNVMgc1dKRkRJSXlhZDZZTjI5ZW5HK3VQSExraUsvY21wVlBadm1YU3oxbUc2Q2dMTm95Zzd2OHhodHZxRXJKa3Z1enk0eEY1Vy9od29XcCBQUVhKZUZnSHBFUUpza1hWMkZBRnRBNEpLSTR5M1gzaXhJbTFhOWZHVFBPYzlldlg4eG1SWUhOMFhLcVJrTDhYQWhnY09EQTNWZ0k4IEthQ3I3UW5na3B6QXIxcEV6Z1BwYWRoeDIrNTNxd3F5N3BIUnJqUHh0Slp3Q1FmVHAwLzNIT1hWOERrZmJ0eTRnUUYwSHV2UUVJZjcgZGR1MmI4Z1ZwZWpkdTNlL2Z2MjBzK3Y5OTk5SEUvcXJqT20wMks0U0pVb0FBTEo5Nk5DaGh4V01QRXAwdHB4aWlleENoUXBoNWdJTCAvZ1NtY2MrcEp1MUIycjE3ZDVjdVhUeWp3TUI4TGgrSUtqQmJkSDIxR1U5VG9DbmU3blhnbGh2bnpwMnIzWWRtSzZ0dFlORXpySVVWIDY5UVBaQy9aZ0RxSEduMnRxOG1VS1JNZ284aDc5KzcxQ2xEVFM4bUcreUYyVDg0RzJRc1dMSmd4WTRiVzZIWHUzTGwvLy82QkRUeFQgTlBvazljT2pzTnZhWlJNWGtFMjlBS0FOR3piQVNkQWVsdHFvaFFBTTA0c3Z2cmh3NGNJeVpjclFmckQxc1dQSHRMWGIyaVMyYjV4cCAyN3FMM2l1NDhad1VrTTFoTVRRZDllT1BQOVlKNUdwK1BwdFpkNjk3Vjgya0RKVmpvcS93RGYzV2JIRDJUSElpRlRyWlFmdHBYYWp6IGJrNWJwZGtrbkE1UWhXNTVEbDdOOE9IRFRVZ1dmeE4yaHVma3laT0huTVBaUVYrTThEQTVtNUpzM2JwVkFYUXdvMll1eWk4dGFCMmYgV3JwMEtRSUFxa09iMmp3U0dzbWNXT0FteWR0elVFZDc5dXdSb1pwanc3MFdzRUdEQnVuVHB6ZTdMYlVzMDZ6VUV6RS9IcDdNOXhJdyBHdDdXcGdTdW1USmxpa051Y2I0MVBIZjgrSEVIS3VHeDdtR3RucUQxUE5adkVBLzhiZE9tRFJiSnI2ZDVjcFlPTzZXVG9OMHhnTWJEIGljWElOZ0VNYUFuS2MvWHFWZGttRzgzNEMyNU05dUxGaStFMmpTWGIzbmp3NEVIL3l2eDNoQzZ2djhMWndCUnloUytkZXk4cVFxNmsgbWZXdzdXUlJpMW9kVmw0TjMzTzlwakMwVnNTQjBqSm16S2lWdEFEUjE2aTJlYkw3R29Dd2JYTW95dmJRb1VNblRacmtMOFY2MW1TMiBiTmwyN2RvbFgyTG56cDMrWmkvbWVwQ0FBN1dLU0tBR2FUd0Rvd0NHWGEzZy92cnJyOHVYTCsvcEpLRjgvS0lFNlFldnlPWkxNTVRUIFlFcWF4L2s1ZGV2V2hiWTFaRVpQTUdkYm1yMDhrcjhobGdNSjBHWWdXNitBc0VHU2MxVm9jUzhaQnRZblQ1NzBSZGorQ21McllVNm0gNFZxMGFOR2pSdytYMjZzOVhWaHJsckRTNkd6dGlGdXpaazNRbzc0L05EV0NlQkN5OCtiTmF3NDhNRll2QUVHaTYvRzdKMDZjNkxsSyBSQ2NQQllXMkVZZ2F5UWJaRWE0Z3hlQml1MlYyRlZYRE1KUFpGbVgxODZCcU9nRFBWMVNEZ2dVTEZpNWNPTUtzNm5CNGJ2RVVKUCt6IExjci9WZnkyOGFXUThPZ1VkZXJVMGRxQkFEamJNMFpLeDQ0ZGFaUUxGeTZnVEhSa1lheEhObTJ3YWRNbTVEVkVNbnIwYUd0N2U0WXQgZG44QW44Z3ZjZUxFb2FHaHRtcUNnZHc3a2JhUk11dVhHT2hMbHk3SmZhUVhSZWhDOFlTV0xWc3FSSUdteXEzei9KNEYxSEhPMm5RSSB4TnUyYmVzR2xFSTI5K3JrSFU5VUJXRG9iVk0vV21HZktWTW1jK1NOWDVpMk5hNmNDa3hUdVhMbGJ0NjhpUmNFSHVLQ0Ivbmpqei9TIFRUSFErRmp5SGIxR1JMWkpsQWoxZzhZME5IT3J2UzBHRTN4ZnZYcjFFeWRPUkpLMjZTRS8vL3d6UFpOMzZRaGFaMWh6YjVJa1NTcFUgcUdBTzJMWXRkYlE5SC9kREd5SkR3aU5tNlFUZUNJdi8wa3N2cWV4b0dDdXk5Y1lBWUwxaXhRb1QwYzhNNFBBS09yYUs0Q2J1bE5kbyA2eUgvTjhBVmtoMThVNlhUcDAvM0dpY29TaVZLa0pGTnFTZ1B6S1Q0aUtiNmJHRXNiZmgybzhQTWlqa05idGlpRGRHWGF0ZXU3Vy80IGJXbEs4MnFRQnkvcXJFN25qWnZXaER3MWF5bzhEMVR3eW5DYWROU1JheEZ5Tm9KVmdnZXlOd1BEMXFsSHY0cjh6VGZmREJ3NDBJeU8gbXdxRVhQRXJGRXJCK1ptK01HMVl4cFFhaGRPOGVYTXV3NG4wRlhMSUdpNzVZU0k3UXYyQWwvUFZWMS9SY3ZnaVpzZUFKS1p6VEc2WCBCZVBKV2JObU5VRURqUy9Jb3dCbCsvYnRuUWZSdkdvU0kvMGgxSXNYTCtva1QvZklMbHUyYk02Y09YMXRwL1Y2aTVyYy9mQ3dCczV4IEo4eHNxMUhZZmpYZm9rV0wrdmJ0dTMvL2ZvSFA3SUhTY2k2ZGh1VUcxdFlDZW9ZMHNUN2tndzgreUpFakJ4VTdlUEJnVDlxMkxnb0kgK2p4OEFyOWdIZUlZZU9tUFAvNW8wcVFKeU1CQWV4N3g3U3Znam1rZWw4eGRvRUFCc3p0VmppUGtoNGtBTHVCeXlKQWhIMzMwa1h1SCAwanJFZnUvZVBhaExRdzBPVzVKdDkwSnlsTmUyQ3NxSVY2OXd6NVVybHdsQkZtSFNJUTA2UWUvcTFhdld3TjcrdXZYdnZ2dXVCbGdxIFY2NU1iMVFBYUdWWWIzRVBhMS9oK1d4UFFOUk5tREFCbXpacjFpd3RhZmI2NUFEYzFtQWkyekNjcjh4MTZ0VHA4T0hETk52OCtmUDkgR29jeVhkLzVFQVY5bVRkdlhsdWRvcnpwVVhueTVFRzhJb1NtVHAzYXUzZHZsMGV4cUlYMDVEdDM3bWpUTmQrNDNER3UybWpZc0tGTyBlcmNpRzZCWVp6SE45MUFhTkMrK2ROT2NTRlZoRHViVEFkNHUxYkExMFNLOWV2WENyZWU5eUVVMENhYlBlZ0gvdWd3bDdtK01pakpsIHluejg4Y2ZnQVlmU2VxQ1V0UW5NeEhBUWFkcy96dlkxeGtTeFAvend3eGt6WmtDb0N4Y3VER0NWaU9lQlpwNHFSUmVrU1pQR0ZoZ0EgUUdNaTJyWnRDK2hEUTBQaFhUeWtidDI2dVlrUEdHSlp0R1JPZDZhaVhZWm1WVDRwdGRhZ1d4T01xTlZ6dGdUY1gzMzFWVFBVSFdGeiBQdnZzczBJMkRvREdvZjBkd0VhRTlPelpFMCtPZGxtMmJGbnIxcTE1b0EzSytmTGxjMURBa1R3UzZlMjMzOGFXVXQ3Q2hRdDczUjBzIEp5cGdFSHV0d0FTQmdjLzJYR0E5YXRRbzJIcjgrUEUyTWdqcytZclQ0Rlg4QUd2cllkSWg0V2VBWU84Z1RveEcvdno1eVVCWVdOaDMgMzMzSHY4NjdySzNxVU9jdmFqMFF0ZXh5LzRqYWc5dTFsdHBhMGVUZjAyNlFiWEtvMlUzYjhaTU9lWk9xUVdMQjJZSzFlM2doQnZCNSBJRXRndldEQkFqeFhjWk9XUFpvTVdFOEpDL20vaTdvQ1BpM1JXb1IyN2RxOTk5NTdPTUVJSVYraldKSFpVZW9Ic2wzYUJYSkpqaEVBIGI3NzU1b1lORzRvVkt4WVpDK0lHM1B4cjZ6eVE5T25UcDJYbHFjRXFWYW9BL1Z1M2JtM2N1TEZyMTY1dW91aktJRkx2Mmp2c0J0bTIgSXpxYk5XdG0xcGs0SE1FQkFaTTlzN2JFWmJVb1FJZUd3ODBpUVRkcDRNQ0JLSUVyVjY3Z0lPSmJGeWxTUkYzUmN5R0tMNC9aNWk4RyAzTElVdkUrZlB1dlhyK2VCR05nNWMrYTRIRFVQd25tUWJ2cUJOVkhSbUxuUFB2c01Ya1RHalJrekprSUxIckJsc0JVUDc4ZG1qb0d2IHBqK3dxdGo2amgwN2FsdlgxcTFiMFpmZzNvMG1vWWNvR3AxMnl2aVY1M1RwMHRXclY4ODZCK2xaQkczU2FkeTRzYi84cDVFbExhSDIgZXJLUjE0Uy9PSDM2ZEdnZVdGTUo1Y3VYTjRkT0tUQ2lOZjlXdjhMTU4xbGQxY2d2L0tCMWloWXRTb3RnTnlDZER6NzQ0TUtGQzRIeCBjUlNPWng4NmRBaXF4aVBCdGxhb1VHSDM3dDNEaGczREwrRjdFNTB4OHVCV2M1cUJaM05CcVZLbGJCVjk5dXhaZmFEeHdEM2FRR0doIHlReFZTVmJQbkRrVDRYdDFuSXJEc0lheksvbnl5eStiRVJWZlZJZmkxQVpFditwSFJLdFRNandueHIybTd0MjdRemZBR3ZGV3YzNTkgM211Tng2ZmQ4dFljV2xuSnFrUDhPb25jbDI5R0kySTNObTNhTkczYU5QUXFuaElObENWTEZ0aVF2dWV5UlA0bXYyVTcrU0EzSUNsOSArdlNvTjNDajQzejRIZ3JuNzNQUFBmZmFhNis5OWRaYkdMaUFZNmJZaGtwc1JJNGpRb05aMld2SGpoMTZ0Y0NOWE1GSkdqUm9FSmdHIEZ0dTJiY01UR0RGaWhMYW9PQlROTFBid3R5M0pESzZoOXFGWWo1TzBLbHJZdW1EQmdscTI3aGM0ekJ5bmdvTkdlQXVGeGMzQTJhQVMgcUt2Um8wY0RheXRmWEw1ODJUcDFRaFdaUFJabVhqTW84YTNCQm1TSER0RjRKUm9QV2ZMRER6L3dSdkFOQjlIMyt2YnQyN0psU3hOQyA4U0VnVzV2OGFKaGF0V3Bwd0ZneEJoUXdpYXp6Szhwa3hZb1ZxS2pKa3lmWHFGRUR0OUljUUJNd3VMR2IrRGZpYjdGWHF2QmtYWWRKIEI2T096SlE0TlFoOUlnL3UzcjA3ZE9oUUVMWnUzYnArL2ZvaE9tMnVrazFmYVdEVnJ6RmpFM0dUTml0VXFGRFRwazExcXJSdCtESjEgNnRUTm16ZUhHZ01ZT0RMMlNuSG1uUyttdkV1V0xBRzdsRHB0MnJTTEZ5K1d6MkE5MFBYWXNXT21oMmdMbkRqYmVrMWdVL2ZXUEcvWiBza1doSFpBNlRabzB3UWVqOHZrTUpQNGRucWh0L2lxQXZFTE5PSWZERE1SZXVJazAvdSsvazBOZ2NNVmozcmR2SHg1VmFHZ29UcFdKIHdSZEE0a1k2L2RHalIwMXNBL01vN1d5M2VuSTQvdVpHVGVaaldIQUt1UkpwUVozU0dUREsydnJ1TlpIbmJObXlVZlhZU2lyYTMyeFQgY0hvWHdreUhsVm1YWk5ETnZ2MzJXMFdCc2gxZkcyRU5VUE92di82NmdsV1VLRkZDd1JKOHBYSGp4bWxmTUdhQjZ5bitmLytkVEtUOSBQLzc0bzJIRGh0YWVTYzNvVnhQazJ4cndPNEJFcTlIQjZNellxQysvL05JY0orUlFSb1AxZ05GaVg4M2lzbjc5UFR5QVhBNFlNQURGIEFsQzJiOTh1aXh4QW9vcFBuRGhoZGtHYkN0cXpaNCtramtFMk1sZDdISFdaWnVBaEp5aS9VYU5HMEZLeVpNbHc0TkFudms1VHdQVkUgL0pIaE1tWEs0Tnc0OTJGZmlmZlNvM3IzN28yM2hDaktuVHMzTEU0TmFOVEZkdEtERzFpRGtoWXRXZ0JUZ0lLMG9FUytydWN0dUQzMCBZVzNTTTV6Q1gxTXpKRndPeVNIakdxSUtiTys5Y2VOR1lNaFdjR0dzSlZvVWdxRGgzTmVoOEIyczR4QkNJZ1MwU1FFVUVpY0dQT2tzIGRHdmwrZ1VVRktIT1JiYjFIQk8yWFMwRVVRRjM2d1VDOS83OSs5RWtnQlcxUUdZQXg5aXhZNzIrcTI3ZHVrQWZaSEF4NGtxODVhYmcgVVhRd0JZK0ZYeW5JRzIrOElRR1dKMDhlWDhpbS8rTllZeVRSSGxTRmR1dnBJZWJ3WENWVW1kbUZLVWxadFdwVjY2TlFsZmlYQVJTSyB0OEFJZEdhTUpFU2pFMmo5ZlVLd09EdUJHeDBaMkJBNnQwQ1cyaXVBM2hvNGNHQUFHL1JoRkc0SGNEYlBDY0sybmwycktUbzZrdlVDIENkTWNPWElnTFpZdlg1NHhZMGIraGNtV0xWdUdOdkNsRG8ybWV1S0pKNnp4NXgyU3YzdXozUXpsR3FWTFFXUTlWRXl2NXgrQTNhNWQgdTk0TlQ5eUl5d2pLNVRDb0lLYjVxS1cxYTlkYUJ6MTBKcE5OblFZUTRscnlIU1dHeVlJYXFIQ1hzMTFCbWF4eE8rb1g4Q0pKejZUUiBaZEE1WnN3WVZLQy9JS0RlNFZyTXVtZTRIQWpNNnVMdzVKMDdkMXIzLzVxVEtWT21UTW12R3pkdVZJalg0OGVQejU0OW0yYXdQZEI2IFpyajJIeWlPVDRSQTlEY01Vb1JqMG1aOWdjaFZSNWVvdTNyZGU5dXJWNit3c0RCVU5UbkhyMmpac3FVYVRqNjN0UkdwSXR1R2FIQVAgWjl0bVZRS0lBM3JwMHFWWFhua0Y3WmM5ZS9hRkN4ZTZqNVlXUlNsQlZIY2RFdEtXVGd5NEJ3MGF0SFRwMGdDMjJTbm1nZTE3MnNQYSB6RHlXMWwyL2ZyMk4yalVPaU16Rjc0YXRhVGFhSHg5MzFLaFJ0ajJ6T25aV1BwWiswb2FnQ0JkWTZrWlBwenpFMi80RHhVbHpEK3VRIDhKREg1Rm5iTHp3NUc3NUFpbHkvZnAweTFxNWRlOGlRSVZaWTI4WTN2dm5tRzF2MGNhcWxVS0ZDdGtyekZ3QUltQ1pObXRDMTBIdXogWnMzeWpKd2RVNUFkOVBURkYxL2cwNkNNdTNUcDRtYlN4SVpzR1dYYjkxV3FWQUd5MW1rRnJZWHlYTFRBVDdoZjE2NWRDdzBOL2V5eiB6d1NkTFZ1MmpCdzUwb3JJRjE5OFVhTitNdXZHYUVRWVRBSmtlOUsyMGQrZVVzUWg1b0d4bHRiRnZVQld1c2h6czgrbVRadm96RGhxIDkrN2R3NFdZTkdtU2JsUlBzS0VUdHFaTFd5MkdCa2FzWTIwQnJJL2xYZjM3OStmSlZDQXVnY001cUhFUTJVaXVQbjM2MENwMDY4R0QgQi9zN1ErbDFiSlVtTVd0SDFTU2FGd0N5bm5ONEN0d1BzZEVmdW5mdkRuQ0JDd1MyWU1FQ2M5bExMNzBrWktQcHJiUnFaaTRjc20xViBXZFlqNkwyZSt4SGhNZ1RyTFJRS3poYmdkQnFHdVF3M2Q4S0VDVC85OUJNWFVCVURCZ3dRN2swb0NOdGo4WG00eGVydFVETW80MGl1IDA4QnJoS2VwUGVqai9mZmZENGtaS2ZxaVFHQ3Q4TnhwMU5XclY3dVBWMloxN0R5L3IxaXhvcFhMYVRNUU9YYnNXRThHRlhOak5IRFkgZS9Ub1VhZE9IY1hqbXpsenBqbDhDRXVxWmJvMlpJZTRPSDNQL1JTRFJyamR1emVnVm9NTUdnNnlYbytnT25mdW5DcXpkKy9lZUkwaCB2c09Qd0trS0NtN01sT1pvM243N2JWdFYreVVYZWQzVXFWT3BlUlFJRlJzU1kxSzB4amRwM3J4NWtpUkpJTXZ2di8vZXY1bFNINGViIHRHdlh6aXBJTk1LRmF3aTR2VHFqV2xwRTRvS1NKVXVpcHlHOFljT0d5VDNWU1Vza2hVaHN3aWdRQUFBZ0FFbEVRVlQybkdoMDluVGQgUThIaGUwK3VCYmc2UUpIU1dROUZtVEZqQm1CVnJDTEVRTE5tell4cThzd00xOUFOcmx5NUl2cTNTaEhGZ0hiVDhYeEpFVnFUSGdKdCBWYTllUFM0ajI4R2NWYXRXRGJWTjNhMWN1ZEl2cXdjbGFFK0E3ZnVjT1hOYVl5eVowNWRYckZqaE5abzZWMEo3S0tLRUNSTisrZVdYIEFJVnVobFRWN2trZUpXMUthM21HclhIZXN1a2VEZTZQMURIaUdLTFZiaVl6MElub1dyaHdJZDBQeTBQM3JsV3Jsa0d6MXo3MnlTZWYgL1Bqamo2cEc2MWpRSzYrOFludWoxM3AyU1BBSU9VUWplUTF5RktlUTdkQnlFSGFlUEhtNGdGcjJ5K1NaV1RUUG43UjZ6a2dGQmFtQiB5VWFNR0lIRDdsVy9DcjcwTVlVTndQZjYvUFBQRHg4K0RJRnBySXJYZVhWekk5d202SEljMDRHd1BYODZlUEFnaUpSa0Y3THB1dVBHIGpUdDkralJjWHJ0MjdWYXRXdkc5Q052ckU5YXVYZnZkZDk5Ukc5Yk5mcG9vNk5xMXF5ZUorTlhjdTNidDBocXZNbVhLaE1Ta0ZMVnEgeEhPN2NzR0NCVFhMNWU5aGNMNXFIR2RjNTNZYVd3d0lwRW53V1QzZndtVm9mVDJ0V0xGaVE0WU0wWXIrOXUzYjQzNEJkUG1DdnVKViBPeHp0N3JXdjJ1RHVzSXZaMTVOMzc5NXQxbWxweXdYdTJ2YnQyM0VTVXFaTU9YejRjSmxCWDdBK2Z2eTRkSWpHMFkyVWgxOHJWYXJrIHVkM1QzM2JSSXI3a3laUEhrQ0dSYUVLMjJUeHJrb0phYVBtTFh3ckhsNURGZFlPMGpBT254c000WXNFUkpJTUdEZkpFa2tZLzlMbCsgL2ZxREJ3OVdqTjErL2ZxbFNaTkdVUm5nUlUvS2Q0YWduRlFiamwyT29EbGNwaGtsd0kwOVFUNWhURkRZd0pwdmdIaml4SWtkQm85diAzTGp4L3Z2dnkvNW9BN3haN3c0V0thOGJNbkp1RjYyQTRHbCtIUTRmNjVIdDZROUJFcmh4MUs5ZlMvc1Y0Y1hYcisrODgwNysvUG1sIGRMVWlSd0Y4Z1NaV2VNeVlNVjdiejFCWDA2Wk5jUUF3cVNoWHVvUjZFYTExNU1pUnlIZHNyOS80SldRMVpVamZ3OVJRYWQyN2Q3OTQgOFNLUVJaRGt5NWZQUkZ6eDdCdVVxRWVQSHBSQ3A3UHlsd3JScXlHQ21qVnJacytlM2ZOMS9pNnlUWllzR1hXdVpjWXhDdG5STGZteCArRnJTYmJZVTJDN1EwYjA3ZHV3NGNlSUV4RWw3YUlzck5WaWtTQkVvRm9zTVVWa25iMm55VjE5OUZkMnBzd3B3Q2xFWHVQdzBQN1p5IHdZSUZ2TFJ0MjdhMkVXV2FXZXZ4K1lzbVFTL3lPcDFBSXVQT2phVkxsdzZXanhIQVplcW9talBpQXc3dXpKa3o5K3paUTlmRlRHbHogbWd5RjV3TXhTc0NhNHVpa1dYd0poWmlTbTRIbmJWWFkvSXI2MnJKbHkvcjE2M0dkRlFHVUs1OTU1aGw4andJRkN0QU5rTkdlNUFKQiA1TTZkMnprZStVTkxmMFZ2MnJkdkgrNU8wYUpGclVGaE5LRk50YUxDcWMwbnc1Tk9Lc0xVZ2tMdHhRRFF3QnBoRGJuaVYybWZ1UksrIFZQWHExYzJKakRRZXpWbW9VS0VzV2JJZ01ORFRPclRUMStJeW1uemx5cFc4bE5meFZ5ZWEydFoyUnJoSUxlaFhrclp1M1FxLzZnRFYgTm0zYVpNNmNtVElDY1oxajdXdGxISDI3WGJ0MjlHM0tEakh6Z2NvMDI0cXB6QUVEQnVoS2VPVG8wYVBJa3BJbFM2TGFkZWdabFVCViBVNEZxQzk3STdYenp3UWNmMEdyV045Si9JQlF1YTlpdzRWOHhMRVUzWisvY3VSUGN5T2N6TGd0T0VsNE9MandNa1RkdlhxQ3NneGlwIFlsb0Njc1VCT24vKy9JWHdORy9lUEVoZCt3T1EwVG9UbGZiQVROTnRGTGhmVkVmejgwREY5NTgwYVJJRzNYWXNuWFZrdDJMRml2RDYgNTU5L2JvNU9wZFUxUngwWURmdHk2Znl5Mmt1WExqWENDWlNqUS9oM3lwUXBEaEdRSVdEWWV2UG16Y0NPL3FDVnBXWmtpZUxnNnZUcyAyWk4veDQ0ZFMyV2VPblZLUWRWUUZCQXd2TVBEdGZPRlI2R0ZNSUJVQmIyRjY1SDR2WHIxYXRDZ2djNjYxNndXbGM4VDhOb2YraXFvIC8xUFAwUnl5dTArZlB0QnRpaFFweG84ZkQ4UkJiZS9ldmVuM2NBTWNTWjJDTUlVeWt5VFY4UjF5YXpDUjlBRWFHL1ZzWWdHWEtGR0MgdWdibDhDN2duajU5dWhteXBlcnBHelNZNGx1alo1bzBhYUxnNXpad3E1ZlRpanhOdENSRHYyYk5tdkxseXorc3RpSGJsU3RYQnRCOCBVT1I1aW9ZT29lcjByMmRYb1dOVEc5cm9RSlVxenFXQWF5SUUwVEYrK3Vrbk1FcUgxeGdSV0cvVXFCRkdEMExoeWRRcUhxcU9BcFN3IFFmL3MzNzhmNHNEUEJ1VmNvMVZ1MmdMU29VT0hVcVZLOFlTeVpjdkdmVFZDMVdoTm1UWGh6WHo3N2JlZ3AxdTNibUFhTzFpN2R1MEsgRlNwOC9QSEhpaXJ0Yk1SQkp5d0M4bERoTFZ1MmhGUlFmdkFFa3FOMTY5WWJOMjVFa3hRdlhseHkwTWdTMmpKdDJyUlFlL3IwNlhHNSBvQ3ZQN1MzYVBFdWFOV3VXZGRWSCsvYnRINkk5M2J0M3IwNWdVa0UwQWcwTG1EMTdOaWx5N05neFZFRm9hQ2k4UzNreGpIQ0hkV012IE5WYXVYTGthTldwQUhOUVNBS1hxWnMrZURXM1RIRnFnNGl5VzZDb2JObXpBNTZhZUoweVlRSVhUUFhnbTd1eXlaY3RpbEJxSkVtUlQgTzhPR0RaczhlYksxbXFnNGV2enExYXRSdldpRG9VT0hvclpoVVB3MmY1OFB4TUUzYXB0V3BMVUFOMFlBMnU3VXFST2dwN1hNUmpLTiBmaUFaWWFOMDRRbCtRcWxqMWoybE5zaW1nVFZpb0hzTEZ5NGM4RDYzeUtjUkkwWm9XdFFRODhDQkF4VXB3SE5MRlJWYnRXclZUSmt5IDBZRXhmY21USjBlSy9NT1NnRElTZ3RKQnlkUVk0RWFMSHpwMENMTHdkeHNMMS9NNnJDdWQ1UERodzd3WFMwS1hRL1pFeHFtSTZjalcgN2ozRjdyRDlSUC9HVm1xSWcrcWdkaUw1SWp4NitFUHJZMG0wYTcxNjlUNzk5Rk5JMmdwdVJjWkJsdEMwZ0J1NDREQWhhV3g1MXBtOCBabU9PbGxYczJyWHJvVFFNbVhuOTlkZDFWTHZ5QXdjREhkd1NJZHVBaGp6akVlYktsVXRkbDF2dzlvQzFXV1pvWEdyTWx4eEVQRkZFIG5jMTIrWnVRS05nMDFCcUdGNUpDMlVmUnJybVl4ZG1laGVTYkgzNzRBZk5LdGRKbUowNmNDTXE3NEZwa0pScGR2angvNFJMSUczRGIgbWhhV2t1em1KMUJDTnVobVdpRms5azJpS2VsK0p2Z0dVclZyMTY2QjdlQjBMOXU4ZnI5Ky9YcjZ2M1hERlM0S0FnOGNXN2NldzVUViBxbFdUMjBlMk5YR2p2VjRtNlFnL3NBNnN3VDFVcmNVaFFhbDhlSVFLaHl3d3YyQTk3aVBiMXJrMUZJVU13RlpDcTRvcEdxeksxVjVyIGFoYkpRZU1wVEJTZGg1YTJuajRxNWs0WW5pQnZjb0pQeVpVSUdLUGpRVGFQNGw1RDIzU0FDSDJBcUVoZHVuVEIxaHMzRWJ4Ky8vMzMgSUp0TVNpQlI4Q0ZEaHRCRlpZaDBhaG1YR2JZTytYdlRCbm9NWlBNcjF2TGt5Wk5CeDkrY09YTkN3OU0vLy9uUGh5Zy9vZ1BaWHJHKyBjdVZLRkRBRUV5ekNzQ2FhSERkbyt2VHB5R2dkbmdTSE5XalFnTDltNzVNWnphWDVnVGowQm5uemwyL29iTWhObld3TGpxZE5tMmJjIFVEQXhjdVRJYUc0VnlvS0pCeXVHc092VXFhTzVKQzJ3UG5EZ2dFb0tyT25BQ2pDQzJLQlhXeTJWL0dDRlcrbllzU09hR0lzVWVhcnkgVEd2V3JJRzJNVExvd3hpQzdBVFJNL3lDN3poMjdOaUNCUXN1WHJ3NHdubjFBQVlpYVdQSUZjM1h2SGx6eUJpdi8vcjE2NUF4N0FzKyByQWNTeUdIaUc4Z1AxMTRydjlIY0FHWHUzTGxhbmdHWEswNmFwcENtVHAzcTd6cWhTQ2EwUHN4cWdoWHEzQ25LcUgzc2I3LzlkcGt5IFpjNmZQMDlXNFc5NnRVcEVKcTFyVUkzalNFL21saFl0V3NBc0RrZHVPeVNGQVhHNG9FcVZLdVBIajhjZ25EbHp4bXZVOExnNUIwbTkgTEZ1MkRMOCtRc0dxb0ZDUmNVVFFQTHlJSm9URHdEY1luVHg1TWw2bVZYb0NnbWVmZlJhZUF5dFNuenBYZ0ErVktsVTZlUEFnTFlUaCBOcTRiMXd3ZlBqeUszRVRQTDBFR05zUzZmWWEraWpoQkpuMzU1WmRaczJiVnZDQU1UU25JbXdLTVdGMUc3YkhRdUI1ZDlMMzMzanQrIC9IZ2s4eGtXRmhaaDg2Rkcyclp0RzBCNHJWaXBSaWdrOXAyYWpYRDRqQ3N4dGI0Q09MbFB2RWpESXhyd2hxVysrT0lMekhldVhMbU0gTXBHTkJoT2cyUnhacHAzaG9LUkVpUkxseXBVejYraWx0azNnc3VET24zdW1vVU9IOGpxanNNa0dIUlZsaFpnMnVTV2Z5clA2cHpLdiBvdkdUUVQ4ZEcxZ0hSZjVSZkFrMjU4dm9manFoK0pIUTJmUjFOM2pWZEVsUWNFTmJUcHc0RVV6VHdDQWdiOTY4VzdkdTVmc05HemFnIE9CUDhuYlFlQTNZVU12U2xUc2ZTWElhaGJUNzM2ZE1uNkRXanhYZldoRTR0VmFxVWRVcGZPYVNYV25Pb25xbVJhWDJwN3BvL2YvN08gblR0ek1VVkFoUFR1M2R0bDFDV3Z3MW1ldHRkTlJEaFIrME1IZDBpVXNyVVo3d3N1MWJrRTk3dnZ2Z3VPbndoUDJIZGxnODdUdDI5ZiBRQzhwQWliNFZXYmQwL2V5cmIrTmhrR1M3dDI3a3pIcndRL21IRHFUK0pkcmRINk5QZ1A5SERseWZQLzk5MHVYTG9XbnVRVnc0M0s0IHdhc2c2eERJMDkrYWp5SERJeUYveGRUa1REWVJWcDhXUlRWcDBvUldCNmI4eFhtMXpoazFhdFFvVmFwVThzdzBMaWIrODdWMGlYL0wgbGkwTHB3YWw1YncrWk0yYU5TKzk5SkwxdmJhRHZQU3ZWSmFFRTBYSWxDblRpQkVqWk83d0xLVlY4QlA0eG8ycGRJQjFFS1BzeFNQNyBmeE9ldmkrK0FaZHU1czlvczB1WExpR2FGV0lLUzIzOWxZZi85Tk5QTld2V0RBME5CZC9TTGJhVDAyemc1Z0tkdEJLVTB0bStJVDhsIFM1YTBHZ3BiUkVVek9LMkJlUndKUEFmMGhsbWVzR3JWS25WT3VzZTFhOWZjd0ZyOTRlclZxMTRuakRUR0gwdkJIVU9SN1lZdDNBUksgUlpPQVJlMzRBTi9XWUsxbUxHWDU4dVUxYXRUQW1vTnZxeUR4dWdCVkMrMGpiM3c5NDVST21UTEZxa004ZHlRWkJ4RlhNaytlUEsxYSB0YUpuV2p1L2p1L2hnczgrKzh5TklOWWlzTmlpTHVJT1o3dEpFWXBJV2dWS2UrKzk5K1IrL2IvMnJqVW1xbXNMRXpXbHBVVkFRZVNwIHZLMGdEeEVxNWFFQzFqZkVJR3BibFZKREt0UkVLMDByVmxBd210RDZTS1ZOYUZTS1NsdHFOYlEyZ0Vhd0dJdUZVa05GRUpBTFdrUkUgUU1SSEVVcDZ1VjltdGVlZW5ETno1c3d3dlBmM2c4d2N6dXpaTS9QdHRiKzE5MTVyVVh5eEdOQXRodzRkZ25WM2RIVGtaeTRWQXpJZyBKeWVuL3o4OEphSGtqMEFYRnhkQlZnTkJXVDA2bE92azVCUWVIZzVYV0xEaTBkRFFRSEljWTA5T1huYzZCTmIvbFNqRzdLRmsvNjFiIHQraWtQRmdyWG83Z2JudjQ4Q0djVHNoV2dlQVdBTlRocit4cXgyekJoSVAzcFhUZ3FzSWEwQi9NUEJCVUdGZEsxNVZEUWtMb3RxS2kgb21GMU1va3hld0FCeS9UeHh4L1RiQTRPU1ZzeVNIT3doTEpKS1E4ZG5UQUJCbDZIM2F1cnEvUHk4bEtWaG9hNmJXWm10bVBIRGdueCBRQjNHc0J6UTgxdU0yY01PYlcxdHRPd3dhZElrT2NvU0EwQkNkanM0T01oY0pwT0R4TVJFZmg1S2dmdUlQbmg3ZTRzOUJEN2dLdEROIFdWbFpqTk5qaTlrQTFEYmxSYUN5cU5LQTVkdTZkZXUwYWRPb2NocUJuMW9rTlRWVko3MXFhbXB5ZDNjWHJEYlNpS0pkUnFqL3Fxb3EgNlVhZzBlbHN5YkE2UjhxWVBVaW9yS3cwTVRFQkF6WnQyaVRuL3ZiMjlwaVlHRk5UVThodTJ0UG1XMjVyYTJ2NSsrMFNTRTVPRmhRVyBwS1U5Mm1CeWRuYVdLTG5FTFhIUWRtbFNVdEx3V2NjUTkyU1FWOGZINlkwQmRIZDM0K2UzczdPTGlvckMwL3o4ZkRtdmdzY0daaTlZIHNJRGJadWRiMXBhV2xyUzB0SDUyRENZMk56ZVhuMFdTTTlnZ0FZVFRnUU1IK0dkWmxhSzR1QmlPQlBSTVdGZ1l6VGJESW5SY1dUQy8gekxvL0l5QkhsTnBqaGhKNTduUUlHRjFhNkYyMmJCbk00ZjM3OS9sVlVpWGc0K096WXNXSzVjdVg5LzJibEpxZjBUZ2pJME5PTGorSiBjN25mZi85OVRVME52eEZpTnE2Z3o3REJpeFl0VXB1LytNaVJJM3FLOU9TVXFtRzRaU0hqZnpUK1VaelJ6R3c5cldwSFNHZFVra2hFIEJuTERiSHQ1ZWNHcVhiMTZWV2FiNjlhdHM3Q3dDQTRPRmhRUzZGTWNPaGUwdzUrRkJlZUV4V01ZVjA2ZE9rVXBFL2o5cERmYXVIRWogM2xvaTV4c0g5QUd2d3ZDai9GdkRkdVljNVBSbzQ0YjJvMnBkbUYwVmZhWGZEam9iRGhuZTlPTEZpL0k3bVpLU0FrTUlMMDJRV0FjaiBKRDA5WGRVNm5maXBnTmszYnR3b0t5dmpqMGJ5VS9FdVFVRkJFRUtDa2pTcVlnS2VQSGxpWm1aR3BlYjFHSWFKelI1azZPdnJlM3A2IGdnSGw1ZVh5WHdVSkd4OGZEOHROZVE3NDQ2ZWdvRUJPVWxtbDV1cTc3NzZqSXgvODIwQnJTMHRMR093Wk0yYklNWEwxOWZXdytyYTIgdG5URWp4RjZaRE5iYTJrT1VqbzRPRURDTmpZMnFtcE5hZVB6NTgrSHNZZVNvUnpFM0oydHJhMVZWVlVTQmx2VmRaanF2THc4U293dCA4QjNYcjE4ZkhoNHVrNmFWbFpWd2pqRVhZZFQxRFc2Nkw4YnM0WVhKa3llRE5Qd1NVUHhLQUJKSVRrNDJORFIwZEhUazIyQUlrdXpzIGJLNWNrMFFaUmNHL0dob2F1SnJrM0tqRHNKazNieDdrdFhqalJ0WFlvK1FXbEtsc3VPWDVaY3pXMkdBTFhEU05iRFpseUJaRTdQTEogTFpINGZjZU9IY2JHeG53SEg2ODZlL2JzaFFzWE5Pb0dUSFZXVnRiVHAwOEZud3VqRGdaYlVCSkovRnIrMDQ2T0RqMUZvS1M0K2lOaiA5bGlSSW4yS2xPOEdCZ2FVT2t5c2c5VmFibjkvLzltelo5dloyZkU1OU1jZmY1U1dsbXBVS2dDMldWRExtREoycjFCQWxSL2Nwd2k4IEY5aG1TamtKTmNKRTlzaG1Oa2RyN2ZoTmhrMXBrUTJPM05JdDc5MjdsL1FNZCtYWnMyZFhybHpoeW9QSUFkUjVVMU9UWUNCTm1UTGwgelRmZm5EUnBrcW9QRHZVaXJqcEp1bVhZcm1Felptc003V1plTW8yMER5SXhlQ1MyOGNDOGdJQUFTMHRML3NKMlRVMk4vTEk3ZVBlSyBpZ3BCeVhjZ01qSVNIcXFxTHQyOWU5ZmEybG9zcGpFZSt2bWRNR1lQRjBKci9mdlJhekY5MDhhMXRCeVhJSGQ4ZkR5WCtJOFRDWUlOIEYya3BjdnIwYWNGSWdHOGFFUkdodEdwMUg2OUlqZmkvcnE2dStGQVVPOGVZUGJKdHRpRG9WVk14UXlSd2NYR1JtQVJvdzFKVlhpaU0gQ3ZDSm4rbUdvaGJrZDRQeXUvS3ZMRjY4bUQ4UDhBMDh4WDJwbW1UczdlMG5USmdBZVRNY0s4VXdaZyttVEc5dmJ3ZUJsSlpXRXBDYiAvRE14WTNCYmRIUzB3R3hETGNqc1EyZG5KOVhvNFRlNFpNa1NjWUVPTGh4T0lvQU4zY0FZZ3dUWHFBb2hZL1pvQTJoYVhWME5vdmo1ICthbVZPclM2Ujl3UzNEbHIxaXhCK2dTeGJsYUY3dTV1d2MxUUdsWldWbUx2a0t2ZEtCRjNERnMrWThhTW16ZHZZaTVpYkI2N3pJYkEgT0gvK1BHams2ZW1wVnVwd2o4WG0wTURBZ01wczgxZElaT29CaXUzbFgwRm5ZTENWU2hHTzFoSU80cXBWcXpBSk5EWTJNa0V5UnBsTiBtdUhTcFVzeE1UR3FnZzc1c29RTDFoTGJiRnpjdUhFamY2ZFF6RmVKZVVNZ1JUdzhQQ2oxcTZDM1hKMDc2WFdQMWF0WG01cWEvdmpqIGo1cVdUR2ZNSGowR096czcyOEhCWWUzYXRYTDhWRDFlTUtLWTNEWTJOdnl5MFByNituS1cyTGxRWFA2VnVYUG44djFSeml1bHpENXEgMjBRM0VoTVRqeDgvVG1WaUdLZkhGck5CbEtxcXFxKy8vam9sSlFVV1RxT2xtUEhqeDR2dE1SVys0WjZLaTY1TDJHeitVem8xTHQ1QiBsTDlianR0ZWUrMjFwVXVYcHFXbE1iVTl0cGpkcDBqdzllR0hIKzdjdWRQTnpVM1Q0L2xLRnhuaGh2SnR0c3cyYVorSWY1QWFJOFRNIHpFeDZvVVl0MEFMVTBZMGJOODZkT3pmSVNld1pzNGR5UGFTdHJTMHBLU2s0T05qSHgwZDZqMGFDM0VwbGdLYk1wc1VXN21hcWdhMWQgbC9pQWJvRmJuSkNRY1BEZ3daS1NrbUVTQ3NtWVBiRFcrdEdqUjBlT0hNRnZ2MlRKRXVnSGFkOVJJNENSL0xvSU1xMHNmd2JBWTR3MyBPYkV6Y2pwamEydTdiZHUyUFh2MlZGWldzdVh0VWM3czd1NXVXT3ZjM053MzNuZ0RCSkp2SGVXSVpqQ0pleXd6QnBHeWlQQ3YrUG41IDZTUjRrYkxaT3pzN1EzQkhSa2FXbHBZeVpvOWEzTGx6QitRN2VmSmtmSHk4a1pFUjVtdjVIRks2SGlKaGZhRk1aRFpPVlVTNEZzUmIgajFxTU1jS1VLVk9lZi83NXVYUG4rdnI2WWlyWXQyK2ZSbWRyR2JOSEJ1cnE2cUtqbzhFOC9NRHU3dTZRczRLRU5XckRGOVJPNkIwZCBIZndzcVRJN1J1VllPVGVVZTZ5SzFocTVrazVPVHZiMjlsdTNidlgwOUlRRysrS0xMOGJzOXMyRTBmUmhRRFU0VHpDRUxTMHRjWEZ4IHNJNzUrZm11cnE1S2p4T3B0Y3BxUThHNXFuWW1KaVlncUV3Szhwa05DVUdKcG5SNFRHL3ExS2xtWm1ZUVlKOSsrdW1YWDM1WlgxOVAgMVdvbzZrSzhjTTZZUFFJQUdZMzVGMXdCVVE0Y09ORGIyM3YvL3YzcjE2L2psdzRORFJXZkFsWExKMm5PdGJXMTBRTXdWVHB5VVNDSSBxUjRwN1RJK2VQQkE0aTAwWlR6YXJLMnQvZVdYWDlDZmtKQVF5aHlFeWNmYzNGeVFtcEF4ZTRSaC9QanhjT2JjM055b0VzV2pSNDlBIDd1TGlZa3pUNE4vNzc3Ky9ZY01HK1hTUnBqV2RYS1UwZlBKemZWQStXRENQYXE3VzFOVDQrL3YzLzRQalk4Ykd4cGFWbGZuNCtHemUgdk5uT3pvNEtSZ3JTRVRLZFBiSkJHNGN2dlBBQ3B1WlpzMmE5OWRaYkdSa1pJRHBjU1ZDOHBLUkV2bHVtNms3b2VJb1FnOVRSS0trWCBaYm1tRlJMTU1HaW5ueDhXM1hqOTlkY3htUEc1QWdNRDA5UFQ4WGY2OU9tQ1lHVEc3RkgzQ2NlTkEvbTh2THhBN2syYk5zRnBDdzhQIFQwbEo2ZXJxa3VOZHFXSkdWVlVWWlpxazRyOGFFV2o1OHVWMFA1amQwTkNnOVVlRHpLaXNyQXdJQ0xoOCtUSmN4a09IRHUzZXZSdUUgSHJOMmVzU29rWC9TeGZaYkhWTGVNMTlmWHdjSEJ4c2JtejE3OXFTbHBZRVdXN1pzb2JyVVdyUjU4K1pOcWhTRDRhRTJYYW9Bc0trMCBxNERaemMzTjZJbW0rMGNVb3RiVTFMUjY5ZW8vLy96VDNkMTk3OTY5NkFiVklXRzAvajk3Um5TWkpma1puZEVVNlBqcnI3OVN5dmVvIHFLajI5bmJ0cWhDdFc3Y09hZ2ZzbkRoeDR1SERoelY5T1ZlbjcrV1hYNzUxNjVhbUwzLzgrSEZCUVFGRlAwQml3UTJWVTB5TVpZWWYgemFBYTJMZHYzdzRMQ3dPNVBUdzhmdi85ZHkwR1QxQlFFS1dMaHp1SW9TS2RGRjBNZUhoa1h6SEc0T0JxU3V0ZHUzYkJPOFJiWjJWbCBZYXl5a2t1ampkbGFXeW1RdTYydDdiUFBQb05FaGtRNWNlSUU1blQ1cmVGbU9qT0lzUUVuRlU4MTdkVzhlZlBBYkpKSjMzenpqZnpQIEN3VVNIUjBOZSsvdjcxOVJVUUZ2Z2RGNnhOYzhFQzlUYUMwb1lXc25UNTY4WWNPR0gzNzRvYk96Yy92MjdlbnA2YkNGTW5mczZ1dnIgcWZvZUxhSUxkamZsd01mSGgvd0hVQk9TWGViSEI1WGZmdnZ0a3lkUG91ZW5UcDF5Y1hHaGN2Rk1WSTlJblUycEZKNDhlVElRSmg5KyBXRmxaR1VXQXYvZmVlNURkY3NyYUhqdDJER0lBNHdxMmM5V3FWVnE4ZFg1K1BvWVc3WjdJYVFHRytmTGx5ek5uenNUOWlZbUpNb3RQIE16VXlwb0ZoYy9YcVZXdHJhMGlMTld2V3RMYTJxaVgzcGsyYktPWUY0K0dUVHo3UlFqVTlldlFJVXB2V01TQnN4TVdxK1FDSkwxeTQgUUlkbTkrM2IxOUxTd2hRSVk3WmMyWDN0MmpWUUJ5cGw1Y3FWMHBhN3A2Y0hXb0ppYjYyc3JHamZSNHZsSFFobFduaUcxRDUvL3J3RSByWC83N1RkU0hidDM3MGJmMk8vRmFvdHBJTHRuelpwVldsb0tua0Y1UTNQRGlLbzZBdnJ6enovZnZuMmJWRDRzUFJTQ3pHMUxBZHpkIDNTblRKQlNScWp6RjVESXVYTGl3dTd0NzY5YXQyN1p0NHdkZk1venBQVWo1dXprT0RnNUZSVVdRenJ0MjdTb29LRkRsVU1LK1Vpb2MgOE5MSnlVbnIwM093MlhSQ0VGWVpjb2hmTzQ4YkljM056VkZSVVJobTRlSGhIMzMwMGRnNXFjZVlyV055Ky9uNUhUOStISUliTkNvdiBMeGZ2d0Q5OCtCQ21IWUtFUlBiY3VYTmx0aXkrK09xcnIwSnEwK1BxNnVxOHZEekJEUkFlUjQ4ZXZYTGxTbkJ3Y0ZwYW10SjhsZ3dqIGUyMWtrRFgzL3YzN0tkY2VUS2xnclRvMU5YWHExS20wTnc3UGo3OUh3M2NUQlM2anFoWHVzTEF3MnErQitWKzdkaTF0MTNOK2JXWm0gcG9XRmhaZVhGOFlTV3dsaE9sc0htbnZkdW5YcjE2K0h6VTVPVG01c2JPU0sydHkvZjcrd3NCQm1HOHdHRjIxc2JLRE90VkRZSEh4OSBmZWswRlloYlZWVjErdlJwdWc2Si85TlBQMkdBUFh2MkxDa3B5ZFhWbFpVMFlHcEVCekEzTjQrTGl6TXdNSUN6ZVBqd1lmaHdsRmdzIEl5TURSTWRqaWsveDlQUlVsZnhYSUQ4RVNhRzR4Nis4OGdwWDdlN2V2WHR3WGlsRXJiS3lNaUVoNGU3ZHV4QkZFQzN5d3hvWUdMUFYgN3hGdTM3NGRybHQrZmo2VU53d3FPQWZ0UVhFMHRJVUp6Z240MmljdkFScjNlTjY4ZVk2T2pqRC9HQ3FZR1RDRUlMamhudTdidDYrdSByczdEdzJQUm9rVWFaYlJpK1AvY3k3NEM1U04rM0RqbzdNV0xGNFBabjMvK09hZ01yZHphMmdyKzRWLzYrdnJPenM3OEpOeDlpcmd5IENqZVVTV3M5eGRsdWIyOXZESmhlQmFCMklJRnljbklnUlhCbmJHd3Mzb1Z0bmpPYnJXTllXMXRIUjBkVEVHNXVibTU2ZWpydGFVTTggR0JzYno1a3pSeEN2L3MvV2x6eXZuWHNjR0Job2FXa0ppdmNwNnFZV0tZQzVZdlhxMVpnVFdHa2x4dXdCUVdob2FFUkVSSitpcmhmcyBLS1N3bmlJZEZDUUUvcVcxRk9IZkdSd2NQSHYyN0VtVEpzRTJZd2dWRnhmWDF0YlNZUkphaEdHL0FtTzI3bUZrWkxSbXpSb1k2YTZ1IHJwYVdGdHBNc2JHeEFSZmgvSEczY1l0NmFvOEtjbmZ5TC9yNStVRjF3RHpqdjNmdTNJR1VYN2x5SlZTS0RoTzFNV1l6Q0xGdzRVSUkgajc1L1N6ZFJTQ1VkK2VETU1KVk9sWE1DbG02bXhXbnVJdHhFRnhlWDZkT242eW5TdFVGd0wxMjZsRjhPajRFeFcvY3dNRERZdkhreiBaMjR0TEN3Z0VoWXNXQ0J3TndHMTdxT2VJaWFYamxMeGg0R1ZsVlZRVU5DMGFkUEluT01weGhJejJHeHRaTUFSRmhZR3FVQ3BleUdJIElSNzQyVlBCUlc0YlJlMStDZ1dZQ2RRSXVPN3U3bzRoUkRHLzgrZlA1M2JkR1pqTkhrQVlHaHJHeGNWeFR4MGNIUGlPSFpmYVQwNlYgQWpxMktxNFNCdTBCVFU4bVB5UWtSR2xSVXdiR2JOM2pndzgrNE9UQjlldlhCY3lXcnYwbE1NOTZ5aW9STnpVMTJkdmJrMWFCN0daZiBPR1AySUFIYU9qdzhYRSt4QjY2VFJPNENHQnNiUDNqd0FBOG1UcHlJOTJKZk9HUDJJQUdtTkRrNUdXYjc4ZVBIQTFIbENQSzlzTEFRIDc1S1FrTUEySFJtekJ4VXVMaTV1Ym02OXZiMEZCUVU2Yjd5a3BLUzF0UlZLZmVQR2pleXJac3dlVk1CZ0p5VWx3YUJXVjFjM056ZnIgdHZHc3JLeWVucDdBd01EK1YyTmlZTXpXREgvLy9iZS92ejlFZGtkSHg0a1RKM1RZY2sxTlRWVlZGYVRJenAwN1dlVWt4dXpCQnFRQyBEUGI2OWV2eHQ2aW9TQnkycUIzNit2b3lNek9mUG4xcWJtN3U0ZUhCTm1nWXM0Y0FNTmd4TVRGZ05qUnhmbjYrVHRxRVMxcGFXZ3BDIHYvUE9PMzI2U0R6THdKaXRNZlQxOVdHNXAwMmIxdFhWZGZic1daMjBlZWJNbVljUEg2SkJYMTlmK1dXY0dCaXpkUWxJWVZ0YjI5RFEgVUJqYS95alEvelloYkNCRkhCMGRuWnljV0xBalkvYVE0Ym5ubm91SWlPanQ3VzFzYkN3c0xPeG5hM2Z1M0ttdHJiMTM3eDVFRG9zSyBZOHdlYkFpT3AxcFpXYjM3N3J2TnpjM0hqaDNUTkZoZGdPenM3SXFLQ2hNVGs2VkxsN0lnQXgyREphWlFDM0d1RDZnUktyd1VIQno4IDRNRUQ3WnFsbkU5d0dTOWR1c1MrWkpheGNtZ2dTRGtKS3c0UGttbzdXVnBheHNmSFN5ZFRGWXlUcjc3NmF1Yk1tUysrK0NLRU5heTEgT0RzbXE4dlJmNml2THM0QS9QWFhYNEpnVzF6WnNtWEwwYU5IOVJRaDZKTW5UdzRNREZ5elprMVFVSkRTTkdXNHY3eTgvTXlaTTNsNSBlZERvbEE0S1h1UEZpeGZGUjZENmRGclZkNHk2KzR6Wjh0VTJmN0daY21EdjM3OC9OVFdWaUVoSnpLaDhqTGUzTnd5NXA2ZG5SMGZIIHdZTUh6NTA3MTlMUzh2VHAwNTZlSGk1VXpNZkhKek16MDlIUmtTMkpNR1lQR2MxNG1jZ0FBQUZlU1VSQlZMcTZ1c0JhL2dZaGFRYVEgdTc2K0hzb2tKeWVucHFibUg2OWNVZFVYbGpzMk52YmJiNys5ZmZzMkREWW5NR0RkVjZ4WXNXelpzb0NBQUNNakl6UXJNTTl5b3M0WSBHTE4xS1VqQVY0SFovcThDY0NqQjc5cmFXaWdOeWtFTXN1Sm1Nek16Mkd5aU5RenpuRGx6SWlNajNkM2Q3ZXpzTEN3c3hpc2dvUFUvIDJSWVpzeG16QjNNUnFiVzExZHpjWEhDUkhzREZCS0U3T3p1Ym1wckE4bXZYcmxWVVZCZ2FHb0xaOXZiMnMyZlBkbloydHJHeE1UVTEgNVJlTkZvdHBhcENKYk1ic1FXVTJ0REtvS2FqNXkzR1I3RGNsWGFDU1ViMjl2YkRLVU40dnZmUVNYaVV3MGtycHk1ak5tRDBFZ00yZSBPSEVpT0NwUkFacjdQbW10VUtBM0dHVVpzNGNqcUFJMHlJcS9GSVd1azZtQTBaMHhlMWhvRW1hQUdiTVpHSVlNYkhXSmdUR2JnWUV4IG00R0JNWnVCZ1RHYmdVRWVXQTZBL2tLY01sam16V3pSY0VEQlZ2MTBSbTZaMzZUOHhLME1qTmtNREV4bk00d04vQStZVWljUVB0bWcgYVFBQUFBQkpSVTVFcmtKZ2dnPT0gIi8+PC9nPjxnIGRpc3BsYXk9Im5vbmUiPjxpbWFnZSB4PSIzNS42MjYiIHk9IjMyLjUwMiIgd2lkdGg9IjExLjQzIiBoZWlnaHQ9IjE2LjU5NSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFRNEFBQUdJQ0FJQUFBQS9PcGszQUFBQUNYQklXWE1BQUZ4R0FBQmNSZ0VVbEVOQkFBQWcgQUVsRVFWUjQydTJkQjRCY1IzMy9aMTdaZHJ2WHEwN2xWR3hKbG1STHRsemtLa3cxdGdNWUI1S1lHb2lwQ1NWL3dqOGgvQWsxRUFpZCBtQjRnQm96cHhYYkFCdHh0ZGF0YlhTZGQwZlhiMi9yMmxmblB6SHRicnQvdWJabDVPK1BsV0oydDNmZmV6R2UrdisrVTMwQ0VFT0N0IElGcndHMGhMS1Q1NU1hWG9WN1g0bThyOGRHVXB6d09YK0gwNmtpUVYvUUc1anhQN2tqSS9SYWtpVkRKNlVxSlBkaGtuZ3BicVJhVjAgelhHUnFERExTUzR0cml6bGlTMGxJRW9WY01MUlJRcFZjWFBocVAwSldnUXFpNVdVeGF1S29NWGRNWmhBcFJwYlhvbkdENFdxQ0tQaSBXc2dGTUFLVk1uSGlnbUJHQUxQQW9vaEhVREFxYmdyNk16ZFNuUUlyVUJHaGw2QkZCR0RDelpmeXZyaTd0VExnTFZSRjlLQkNYb1NxIENKY2laRk9nSWlSRjBDSlFFUTFJM0t4QVJVaUtvRVdnVWlXb1ZHZTdzYWNwcXh3VlJYQlNobUlZNXA3OWh3OGVQWDZtKy96dzZIZ2sgRmtza2t2aGxXcFpwbXZnL2tHVlpWWENSL1g1L1RjQmZYeHRhMXRteFlkMmFHN2R0OVhtOTdBQlR6VklzVU1tN3VjejJyOElUMFo2KyBDMmZQOTBhaXNYZ2lnYjlpZEh6aXhLbXovUU5EbytQaFJES0pmNnRwS2NNd0xBdmxGdHhoNDUvcEJTWUFFNFBmWTNnQ2ZsOXRLTmhZIFg3ZWt2WFhMcHZVdjJYN2RxcTVsbFVXRjVjRFZmb1lsdlAzcTdDY3N5MXA4OUxWejc0SEhudGw5N09UcEVZekNSQ1NlU0dvcFRBTFcgQ1F0VGdmL1JOTjMrSWdTY2h3enhBd2NJVHB2b3kxUUNoTmx2d2VUSUVpbFViWHlZbVk2MmxqVXJWOXg4d3pXM3ZQQ0dTc1dCUmNuVSB3YU9ucWtaVUN1TUVsN0h3eEFOL2VHekgzdjNkNS9zR2gwZkh3bUdzRWhZSm9peFNFSG1qNjRacG1YazFwd3dldWYyaUJDVktDLzRsIERzL0lleHFoS1RZem5SMnRtOVpmZk5lZHQ2KzdhSldnSmV1OFMybW9xZzZWQXFwWlMrbmZ2KytYanorNysreTUzckh4Q1J4S3BWSTYgaWFNUXNwMkdqUW9sWkpFMURhY2syWERTUjZSVmlLNEFocGdaajBmRnpMUzNObDl5OFpvM3ZQWVYxMTExdWFCRm9GTEpPc1l5OHU5ZiAvT2JlQTRjdkRJNVFwNkZoSG5DSVJTUUVPVkU3L2czK1V3bkNDUktWMllKanEwMnU0RWowZng1VjlmbThiUzNONnk5ZTlaNjczM0Q1IHBaZFVPUzBsamNHcUM1V0YxeTVXa3ZkLytOTjc5aDhlR2hsTkpqV3NIZ2JWRHZ5RGZvU1RoSzRVa015TlRhWk5ZRmhzbmNGUm1jL3IgYVc5dHdkYi8vNzduNzFaM0xhOWFXZ1FxWmExYTNQci80VjgrOGV5ZS9VUERvempRMG0yZmJvOVpBWlRKMUZpcHg1WnBDVTVJbGdOTSB3TzliMXRteGJldm1qM3pnWGFGZ2pVQkZvRkxDZXYzQXYzMzI4V2QyOXc4TUpyV1VhWnEyQ2Nsb1NHVWhtUmNZN1A2eGphbXREYTFkIDNYWG5YN3owelg5OVJ4WFNVanE3SWxCeHlsZStmZSt2SC9yanFiTTk4VVRjRVJJS1NlN2ZZdk5SWlFiUWJHQVVoVXpJWUFOenhXVWIgc0x4MGRyUlZGUzJsUTZXS3BpQm5xODY5QjQ1ODltdmYzWC80K1hBNGtzVEdmUm9rakhjbWRseEl6RDhrN2gvcEtHTEdjT0E0UGhIcCA3Ujk0eTEydnZ1TzJsd0JSaEtvc3N1Zjc5SmUvOWVBamozZWY3MDBrTlYzWGlXdm5CNUk1RkVhV1pGdGVzS3JjK3VLYi90Ly9lVmVWIENFdnA3RXExb0RKOTJoRlQ4WGZ2Ly9DT1BRZkd4c1AyTERzWjBVSVdwNUJNc1RGMlBJWnA4WG84alEzMTI2Kzc2cDdQZnFUTVQxaWcgNGdaVTloMDgrbS8vOGRXRFI0L0g0c1Naa0trU1pEbUxVRnp4UERMeW9zaXlxcXExb2VCVmwxLzZ3M3MrYTAvOHUxaFlCQ3JGck1XZiAvZmIzOS96M2ZTZE9uOFZCbDJFUUR3L0tPRWxTcVdDc0p1RGZ2SEg5bHovMW9aVXJscnFZRm9GSzBTVGw2OS8veWYvYy8rdnU4MzJKIFpOSTByZlI2TGI2RHJubHB3Y0dZcWlwK24vZVN0V3MrL0kvdnZISGJWb0dLUUdXdSt2djgxNzkzM3k4ZTdPbTc0SXgwb2N4cStFcGUgM3ZUS0xvVjF3ZHFDbzYrQTMzL0oydFh2ZS9zYmIzM3hkbGZTVWpwVTNEOVluTXZKajM3K3U3NytRWnNUVzA4cUxpWlQ2blZLVTF0OCByV2ZtaE96N2pTY1N6NTg0L2RtdmZoZC85cTB2dmdtSUlsQ1pVcjd5N1h0LzhzdUhNQ2QyM0lVWW0yV2Vqc1QwczA0WGc0MzlZUmF3IFRCUEc0b21UWjdvL2Y4OS8rLzIrbTYrL3VoUTM0c3BReGVVYnB1MDZ1KytYRCtMWGxMaUxKVWNCcDcrZm51Vng4WERqdjQ2MVJkZU4gYUN5T3RlVXpYLzdXOFZObjNScEVDRlR5TGp2Mkh2alcvL3pVOXZIMm9IREYvVWtCd1hkdXhzZkNMcDFPNmdONzdnZy9CNnd0UjQ2ZCAvS2VQZnJib0Q4S3RtVHBjanNydzZQZ25QLzkxSEcvWW5HVGlMaDREaEtJb1RDNHRXRnYySFh6K3pmL3dMOEtIQ0ZUQSt6Lzg2VVBQIG44QTlhRVpQR0k4WjVyN0M2ZkpTd0IybDl4SWcvRXdpMGVnVHorNzU1MDk4dnRUV1M2RENkUG5YVDMxeDEzTUg3Zmw0eHVPdXZOcjkgOUpDc0FGcnNNVUQ4WkNZaWtRY2VmdXpYRC8zUkhiU1U3bnRkaThvRER6LzZ5T1BQakkyRlV5bmR5dTdNY3M4Tkx0Njk0S2RpbUFaKyBQZ09EdzUrLzUzdmpFeEVoTE5XSXlqZSsvNVB6dmYxYUtzWGdrQmVhdlJUbStBc094dkNqU2VrNmZrcll6cjN0SHo5U0lwZ0ZLdXlXIDkzN29VNGVQbmFKTHZFeDJwbERzNjdDbUpNeWJYREwvTmw5Z0ZtTmRNQ3JZenUzWmZ4aUhyTUsrVnhFcU9PNTZkcy8rYURTV1dTOWMgY1U3eVlxQUFacWJJUzJHMGpJNk5QL3pZMDQ4OXZVdW9TcldnOHMwZjNOL2JQMEJDcnp4VDExWGNyeGZGNnhkTVN5S1o3RDdmOTlYdiAvRkRFWUZXQnlwZSsrWU5EUjAvRUUwbG4zeStybk1DWnl0eUt0UERXV1RBdGtWaHMxNzZEbi9uS3QwVzQ1WEpVTUI0UFAvcjBlSGlDIDdrSXhXT0JrUmtMc2MrS25sOHp2Ri9ocGMvVGloZEdDSCtEb1dQaFhEejZDK3hxaEttNUc1Uk9mLzYvanA4OXFORTBxYTV6TVRjS00gTEJWTXkySWFxRzdvSjA1My8wdnhKaVZkUTR0N1ZoYmpIdkhwWGM5TlRFU1RtbGJaL1l3emNwSnZpNW5SZUV6SmFEeDM2MXpnZnp3OSBESXNuRXIvLzgxT2NOZ014QlRsLytlUVg3amx6cnNkZVk4ODdKM1A4M2J5MHBlREpscDYrQysvOHA0OEtUbHlvS3RqNDd0eDdFTWZaIEtWMW5oNU9pckxHZDN1anprb3ZDdEFVN3ZmLzkwNVBGYXI3dTJMN2lFbFg1d2YyL1BuYnFESmFVeW03OW5hNG5SZXd2ODExWnZCaFEgOFdjUERvMzgwMGMvSyt5SzIxQjU2STlQakl5T1Z6ejBLbW43S0hpblY0R2pZWmI1Mjk4L0NrUnhFeXFIanA3WWQvQUlkdk5NY1ZLSyByalJmV2hZcExIMFhCcjU5NzgrRVYzRVBLbC82NWc5d3RGRHhVYTlTY3pKamExaTRzQlR3WGJwaGZPKytYd3BPWElKS0pCcDdjc2RlIExaV3FCazRLb0NWelBZVU5oUjAvZWFhNGkvTkZBRmF4OHEvLy9xVUxnME1WbjNBc2MvZFpnR2twN0NMamllUUhQL281WWV1NVI2WDcgZk4rVHorNWh4NldVTFFQRGRGcEtoTFNGckozN0RvZ0FqSHRVUHZYRmIzVDM5RldWcEJSd0dZc0JHTWRnL1JlR29yRjRsWFBDTnlwSCBqNS9hZStCSUlwbGtwSUdXT2FsUFljSlNXQXoyeVM5OFhYZ1ZqbEg1ajY5KzUzeHZmMlhuVXBqcVN1ZWxwVENjVE12RVhSTGp2YjVRIGxWbkxqajBIOWgwOFdxeTE0c1ZTbGNyU1VpSnpiMW5XdVo3K0tvKytPRWJscTkvNTRjRGdzR0VhMWN6SndvVmxrZm1Pd3hPUjUwK2MgRmdFWWYrWFJwM1llUG5aQ1M2V3E1M2preGZlcGk2RWxxV2xZdzVtOWZhRXFzNWJ2LytSWFE4T2o5UFJHUVVwKzhWV0IwL2E2Y2VqbyBjYUVxbkpYZHp4MDZjdXdrU1Z4VTBlaUxrUUFNRkxyVUpUKzdncXh6dlJlcVdWSzRST1VIOS85NmNIaFUxL1hLUmwrTWNGS2VDOERPIGZuQjRSS2dLVDJWb1pBejd5MlJTc3l6aFV3cGh1MkNvSXRGWU5Vc0tmNmo4OURmLzI5TTNJQXo5SEtwU29pY1RpeWRLYXFLRXFoUzUgUExWamJ5UWFOY2tSZFJhYkxkV3QxNENkZlRWTENtZW9YQmdjN3U3cG81bnRLNStFbU9WdWN2cTFMZjVxVGN0a1ZrZ0ZLbFBMejMvMyBoNkdSMFpTdTA4ejJJdXdxZHlsNERWRXB6dEFyZjZmREV5cTc5aDJNUm1PV3hkYWlMMWVlVURXOXlKSmM4ZEg1U29WZS9LSFNmYjVQIEU5Rlgvc1RtN3YwcXVKSEpzbFFsbmNKc3Rjd05LanYzSGhnWUdyRU52UmorS3JNQTRyL29VVlZGbHF0V1VuaEM1VmNQL25FaUVpR2sgQ0U0cTBVQzlYbzhrRmRoYWlsVmw1ZWNrOSt1NFFlWG9pZE9aNlJRQnk4SkZJeE45TGFhZFNWRHkrN3l1Q1ZiZEhJQmhLOTkzWVlDdSBqeFNVVkNMMmtHQmRiVzNWaGw0OG9mS0wzejA4RnA1d0Rna1d0T1RUTHhibGNjbXlIQW9HcW9vVC9OeW1mQ01mcUR5NVkwODhubUQzIDJIbm1JN0ZGTmpWVlVab2E2cXRXVDNoQ3BidW5uNXlCYWdtamtnY25SZXhac0tmdld0NVpFVm1yRkNmVEw1c0RWRWJIdzhPam82ek4gUExKdlE0dlkyandlejZXWHJLMWFQZUVHbGVjT1BUOFJpWkZUVU1XTVNrSGQrZUpiVzdBbWNPV1dUZFhEeVl3YkZqaEE1Y0RoWS9RcyBMaE1DS0JoWVNQTXFMaWU0MUlVd0xQNXlSbDhWMTVQcDM4NEJLdDNuZXpXTjdIa1VxeVRuYnBkRmQvT1pVaHNLVm0zY3habFhNZWxDIFBTWWZJSE9xVW9weHdrRCtrc0kxSnpNK1FBN09naVJHaGF4bkFXS3NlTjZBWVVyb1ZaUTJoejlEa21BQnJhMkEybUtXRXo1VUpaNGcgTXlwaUJDemYxbG1zTm9jL0o1bE1sWWQyZHNJR0xyMEtSc1V3VGVDSy9kbmNjV0ovVkNyL2s1N3lyU3pHT2VFREZkeWxrWUZpSURqSiBnNU1pTmp0Wmt2TTlib0JyVG5nTndCSkpyYkpIMFMrODEzRWxKNEN1bFV6cGhtR1lwVUFGWDZva01iZHBqRXRWR1ErSGRkMWcyYWhVIFBITmZxYzk0d1UxWjEvVklMRllLVGxpRFpNWXhkejVRR1IyYk1DMlRydzI2YnVMRVJnVi9TWExCTWRoQ0tvdE5NWm5uT1RCK2ZjT2ogWTNsSmYvVUlTM2s0c1QvU3Nxd0ZublcrUUU1WWhtUzJhMk45WG1Wc1BDeW1VK2FHcEtTTmozVC9WQUVXdUZ0NDNwUEJBYmM1YmxoSCBKUnlKNGc1TlROSlhoQk5BdHdvRG1xN0Y2L1VzbmhPdVYxdXdqZ3I3Wjl1NkwraWEzcjVWUmZIN2ZQa3l6QjBrYzNoNkRyeUtuU3FYIHdRZGRudE45Szh0SjVsdDhQcTl2QWFveTIxL25SVXptdms2SithdG5ON1F0R3kzMnVwNUtjQUxvTUJYRW5NejlkVE5LQ2wrY3pGdUogckFkZ01pMzJndG5xakxpbVYySDVUaitrb0NpS1hGTVRtUGRDWFdCTDVyNW0xbEd4MDAvWlFTUnJ0T1JlMHR4aGJoRWRmRG5EVWF6byBkT2hMYnF5dm01Y1RtRU9KSzdzdDFnTXdYRW15TE1rTXBBQXRad3cyUGVJcWZ6eGpoNzc0R3ZEelg3cWtmUzVPY0RkaFg1N2s1cnpHIHJLdEtSM3VycWlqVkUzM05GbkdWZjJ6RHhoSnpFZ3JXekpxRGduSmlVK1g2cW1FZGxhNWxuWXFpa0tDWnlZMzFVMkt3eFRUb0dTR3AgWU54dmY2MGlLM1doNEkzYnRzNWhhS3FrRjJNZGxmYldabXhYTXEyUXpjVmdpNlJsdGhtSkNzNXRFNTJnUmdWNytwYm1SaXdzczBvSyBBS0E2Wm9nNTJEQmNFL0E3UFN1VmV0Wmd5ZXpVelplVzJXUUVNTEFBSkhNQkhvOW54ZElsYzNGU05iUndnRXB0S0NTblZaNEx6ekpIIFlxRXBSREVJU2FiWlo0ekt0VmR1bVpXVEtiWGlhbUE0UUtXdHBTblRnTmljWDVraUxITXJ4cndkT1NOM2hPMmhxcWdkcmMwdnZHbmIgVkU1bUZCbTMwOElCS3F1Nmx0bW5xeUdMWFUyWlRndW5rRGhkRXYzaDhhZ3JsblUyMU5YT0NzYU12M2NwTFJ5Z2NzVmxHMVJWSllzcyBvR1FpazJWYThrckR4ZWFLOUV6MHBTaEtmVjN0UzdaZk8xZm9WVTIwY0REU2Q5V1dUZGpaeTdLTWE0bjlHYTdNL3I3cGc3d3dwMlQrIEd6YUJ4ekt1S3NxS3BSMTMzUGFTUERqSjZ6OFRxQlM5QkdzQ2RiVWhzc0FDU3J6TVJlWWlrU201cUxCNjJmUW5IU1lPQlB4Yk4yOHMgRUFEOFgxcVd5NERoWS82b3FhRmVvWXNtUlM3V01rQ09KUVUvN1dWTDJqL3c3cmRrSVNtZzNidExYdmhBcGJPalRWRmt1MThXcmJsMCBrbUliZWl3cGZyL3YwZzFyZlY1djRaeTRqaFkrVUxsazdXcXYxeXRhYzdtTWlyeWt2ZlZENzN0N2NScTZXMmpoQTVVWFhIKzE3ZXlkIGprK1Uwa2dLb052b2F3S0J5emFzYTJ0dUxGb1Rkd1V0ZktDeWFmM0YySzdJNlRYZUFwWlN0UVlvZVQyZXBVdmEzditPTnhXNWNmTlAgQ3pmTFFwY3Y3ZkI0MUFKT0x4QmxJWklDbkxrVXN1SHhjdHd6clZ3dUhndXZxTnk0YlN1MksvYVFzYWkyVXJnVVdaS3hwSFF0Vy9LZSB1MTlma3UvZ1hGaTRhWFp2dWV2T2VqcTdJb2FNUytGU2NBZWtxa3BqUS8wTjEyeGQwMVV5U2VHWkZvV2phMTNWdGF5M2Y4QXdEQXV4IHQ4OGVnQm9BZlFBR0lQQUFxQ0NrNHAvMFg2VUFXWTFqUUlqZnhCRklBaFJqcWIxa3B1Y0RmdC82aTFaOTBKNUxLVjNoZHVVTFQ2aTggWlB0MU8vY2UwRklwYUZwVVZpckFpMHFSYUFWd09aQmFvUlRBYkFEb1FVaWhZTWgwcjZaRVd3SktJNFRveTZLTkJET0RYenFHQjBJTiBvQ1FBY1lCR2tUVUlVQzlBSTZEY0MwSXprdUx6ZXBlMHQ3NytMMi9Id0pUOFcrMDl4dHpKTDEvYjFpOS80UjNuZXZvMUxXVWhtbkc2IGxOZGVCMkFuZVVtTlVBb0JHQVN3QmdFL0JGNUtoVVJlcE1KaGpyQmtHd1BJbnB5VWVXOEhIMU5lSnFVSXc1UENnZ01KT1JNQURTRHIgREVUbmtLbVhuaE5zVVR3ZXRiR2g3cllYYi8vQ3h6NVlUa2FGcXBTd3JGMno4c0xBc0s3cmxnbEtJU3hOQUs0SGNoZVU2ckZjSUlBRCBLaS9FWVJWNVRES0F1Y052Y0w1NGJPYU9LWWNmKzhnWWkzS0V5TUlyOGh0OFd4YUoxdVJ0Q01XQk1nSEJFTEJPSVBOSUNRVEgxaE1jIGV2bThua3N2V1ZzK1R2Z013emhENVJVdmUrR09QUWNTeWFTRVpRVll4UUpsR1pTdUFrbzdnTFVJK215ekFZQUhVandXQUVaZWxpYnogUm5LWWdSbUZVUnlFeUUzVlFJaHhiY2NPRFVpWFFUbUswRGdFV0dmMkFXc1lXTVhneEZudWhkMzh5aFhMUHY3QnZ5OTNYZklXaHZHWCB0ZkdtdjNqOThWTm43Yk5VRVZyVUtlMU5RTm9PbGFVQWE0aURoNUlSRUZDQkRERzIxTUJzd0dhL2tCMm5tWFNFd0dibVBMTDJRN01IIFdZdmloSVplMktMOC9WdGZkL2ZyN3F6SWtBSkh0SENtS3JoczNyVCs3UG0rcEtZVkxDeTRjcTRGeWlZb3R5Sm9HdytadnRRS0VaSjcgWVhJYWtoeVRROWViVUxYQlBQc2hiQVJnS1lRYmtUUUN3UmxrN2dMbUJFRDVjbUtQRHRmWDFkNTh3elYzdi80dkt6TW14MVVZeHArcSBuRHpUL1pxM3ZxKzNid0RUa3Erd1lHdCtFMUF1aG5JREJVTjJOQVQvWkhSZWM2YXhBV0NsZGNZQVFBTW9ERUFmc0hZRDg4VEN0b2phIFUxT3FvdFRWaHE2OWFzdVB2LzY1Q285ZGM1SkpqRDlWV2JOeUJmYWdJNlBobEs0dlhGaENBTjRNbFRWQXJnUE9FQmFraENnQXNOeW4gd1dudkVkMTZCUndaeFBjQ0FnQTBBM2tsa2dhaDhod3lkZ056RGoyeDNid2l5elVCLzRhMWE3NzY2UTlYL2lZdGl3dGErRU1GbDdlOSA4YlVIamh4THBWSnhLMEZtS09ZY0NzTk42b1ZBdlFUS09HN3hwY2Q1WlNvcEhKbktIRTZ5NzIxc0tEUElSNGNCT3FGNkZWQU9JL014IElqa3p4RjFwVGdJWHIxNzV6Kzk5VzFOOUhSUFRvVHhZZkM1UjJiWjE4K2FONjBmSHdycGhJS1RibVZ4bVpPVXlJRytEWkdnTFE2SlMgYkNUYXRqaGRSZ1p6NGpFNFdXZm9QQStaQ2NWQlpodDJNa0ErTkJrWVoxWmVrbjFlNy9LbEhYZS80VFUzWEhNRks4c0dlREF0dko1YiBjdnJzK2J2ZThZSHU4MzJKWk5MQWxzVXlwemlXQUlDdmhDb09TMExRZ1FSV2JtaXJ6R2JHcEV0cG9nQU5BclFQbVUrVFZUWGtzQlRNIGlkL25YZGJaOGVhL3VlTmRmL3MzekszSVludEFUT0cwaWF6cVdyYjl1cXQrL3JzL0dFUllTTWsxTFZ1QmZCMVVXM0FvRDZHY0l5YnUgVzJPWk8xR0RKb3RNSFYyRDAwd1Y1bG5KZWw0Q1BxOW5TVWZyMzd6Nk5oWTVzYytvWVZoYitENE42eFd2Zitkemg1NlB4dUtHclN4RSBXOEJyb2VjaUpBVmhOdUtTMG9Pd1ZWWHNXUnFzTURvQUV3RDBLZEtoSlUyMzNmV3EvL1BPdjJWemhTL0tpUlFaZko1ODcvMTQzOXZmIDFOblI1dlY0N0VQd09pWDViZEM3Q1VoMUVIclNrNGxLVlhJQzByTTBIcnFnc3hYQVRRaThRVVBYZGc5YWhzRTA0WXVaVkJhcU1rZjUgMk9lKzlwTmZQVFF5T3I0eG9WOXR3aVpFeGsvZDZrd1dWZFBFck1peTF4Tm9iMm5ac21ITlg3NjgvZXJOREtvS1l2VW9TVGNjUi9yVyA5LzByK3YyVEsyTmFDQUVWSVNrTmlkZ3RtV09ZMDQyUCtCaFo4WHNEN2ExTkd5OXV1M3J6Nmp0ZUpudFVwbEFCVE5LaThONEl6SlQrIGxtRERia0FDTUJraG1icEN3VWt1SlZKdW04TW14VFQxV0h6aXpQbmt5T2pZODZmNm50alpkdFhtMWE5NnFhYzJ5RlFZQmhoTDZNeTMgcXVqUitLNVBmR1ZneDc3NHlIZzhFZ1dtQmFtcWlLQnJaazZtaDJRZTFWc1g4cmMyQlpkMWRHN2YxblhieldvWnRuWXRRRlZzcndWWiBtc1huR0JWdGZHTDN4Nzh5dU9jQWZtTnF1cW5qWWtETEVwd3NoSk5NZThRR1JnbjRQWFVoWDFORDNlcmxLMjkvVWVkTlYxY1FsUXduIDlpMndNM2JNS3lxcGllaXVqMzVwY085QmJUU01ZekFjVk9DWFpaaVdTOU93bDRTVEhIbVJ2YW9hQ3FyQkdxd3dyVmRzV3ZlR093S3QgVFJXaEJVNjdFVVpvNGRLcldJYXg2K05meG5xU0hBMWJ1bzRKQVJiWlFReEkwamV5aTdES2FjblhFK05IWjJvcHk1d2dEMVBYKzZMeCBTSGZ2bWp0dktiKzhNTDEwbFVkVjJmSGgvK3g3Y3BjMkZzWVZqTENRWUVraHFHUnZwSHExSlI4eG1TMFlVL3crcFNaUTA5R3k1TWFyIE45NzkxeXpjRkF2Q3doOHFlejl6ei9tSG4weU1qSm5KbEIxM1RlR2thbWtwd2dCcmVpZ1oweUw3dkw3Ryt1WXRHeTc3aHpmNUd1b0UgS3B5aGN2UjdQenYxMHdkamZRTWtZRENNMlRoeDRvcjA0YVZDVFBMN01Ld3RQcS9zOWNoK242Y3UyTGgremFYdmZrTnQxN0pLM2lBRCBRMkU4VFQ5Y2VIcFA5d04vaWwwWU1rbkdGbHRQMEJ4bnFVSzdBYms3RWFWOU5saFI3eEUvV0NPUk5KS2FtVWlteGlNakI1N2Y5NS9mIEdYcnVTQ1Z2azRIK2podFVqSGppOExmdnczYlRUQ1l0bmVvSkFyYVZuK2NPNlNsejdnU0dRbEtLZVRwaTlKTWFwc1ZJSkZJVDBiSG4gVHgzNnhvOEdkaCtvWmxTNEdRSGI4WkV2akIwOVJYeThSWDA4R1JiT0kxK0oyMGJHaXEwa3M5SGlXSVZJTkh5eSsvQzM3cE05bnVaTCAxMVdNbG9yMmQzeW95cUY3N2gxKzdnanU0YkNlRUVteDZQNlVQSnU5MHdIekxpLzJVYXhsdVF2OGtISGZaQ1pUWmlxbFIyTVRwODhmIHZPZmU4S2x1VUpXRkExU0c5aDN1ZWZSWmJYeUN6REFhUnZwMHdnSURlNDdkU3hraFNiT0N0Y1cwVWluY1BabWFwc2N3TGVmMmYrWDcgV2pnaVVHR3VZRGFlLzk3UG91ZjdjVEJBOWNSeUpHVXg5OHlkdkpRZmtoeGFMTk0wVXpxbEpaV0tSTWVQbmQ3M3VXOFYyRmZ4YkZkWSBSK1hvZCs4ZlBYclNUQ1N4cE5oRFhyU3ZXM3piUzhzTDQ4QlVFSkpjV3VpU0NCTDlhbm9xRXNQQjhNR3YzVnR0NXA1cFZMRGM5ejJSIG1aVTNhZHhsb2VMbHVaYVlCY1llQXE0NEpMbTAwSVYyV09TeHZHTnQ2WHQ4UjgrZm54RUJHQ3ZsMkwyL3BLUERtcFdlYWl6RmhDbEQgd05CcmtOSkhrekZWRitTUWpwUnUyMFVqbmtnTWo1NjQvNEhrNkxoQXBmS2wvNm5kSXdlUDZkRTRtWlYzcHVSTEdDSGJ3RGd6TUdWdSBwam1FU0F3SGhCWlZGZVRRa3B3NGMvN2dQVDhVcUZTK25QbnRIK01YaGt4Tkk1QllGaWhYZGdJcE02OVhVbWJTeVI3Wkp5UTNEQ1BUIFdSYVoxTUlLbzBkaVEvc09uZi9UMHdLVlNwYStKM2FPSHp1bHh4TE9na2o3dUo0eW1qcmI5OXM2azhWbU1RMDYvUW01ZUhCMytpc1ogTzhibUhnc0xWWmpreVBpcFgveXZRS1dTNWV6di9wUVlHclYwbW1TVlRxUWdxMktqSDFsczdGWStCWjVaWGpCRFJmcnZjSXJIVkdFaCB5eVFzT3d6RG1oODUyM1AwZXo4cjE3ZUxFYkRKWldqUG9mREpiajJXZGltMnBMQlVKc0V6eTh1dFI0WVRmNjhiQkJmczhsTUdEc042IEg5OXAyRXRnaEtxVVcxSWV3Skl5UXRkRVdvNmtpRDNBak9GQzFaN0VZMlpLai9VTkhQbk8vYTYvYWVhV1MySi9NdmE4N1ZLc3JLUUkgVWhnamhSaElDQ3dEQzZkdUpyWEIzUWR3Q0NBcGlvdnZtamxWT1hIZmIyTDlnOVNsQ0VsaG1CWjdFd1R0enN4VUtuNWg2TVI5dnkxRCA0Q3RReVpiQlBRZjFhTXhaN2pVbE01UW9UQWtMNmNzc09qVkovSDNmVTN1RVZ5bGZDWjg4RytzZFFJWkpsMUxZWng0S1VGaWx4WEIyIDE5bHI5YkZqd2QyY1FLVk01ZlN2SGs0T2oxbk96aTJRMlI0dkNwdXdPS3VOeU1DeGFjU1QzUTg5SmxBcFV4azdkZ29IdnJTN1NoTWkgU0dIYXNUZ3hHSjIvVDQyZk9NTW0wVzVEWmVUZ01ld095V2k5YVpaekpZc29CZHNWZTJyWUhoQXpkVDA1TXU3aUdJd2hWUHFmM0pVYSBuM0FXRVF0R09PSEZnWVlLQzNZc1BYOSt0bFJmVmVtbDN3eWhNbmJzdEpIVW5HbEhFWHZ4WVZhY003WXlTMTJpNTNwZEdYMHhoQXJXIGJoeDlrYkV2WkdWUEtoU3dNQzhxcEd1ejN5Q3k0Q1UrTUp5S3hrUUFWc0l5dE8rd0ZwNGdpNzVRdHNjU1RaRVQwMEw5Q25Vc1JpSTUgdlArb1FLV1UwZGZSazBZMG5oTjlpY0pORUpaZStrM3lzMkZoR1Q5V2duR3dRbzBLS2w3Mk1GWlFpWFQza0dOU1VPWjhXYkh1aXlkbiBUK2VLU2NYaFNzUlZLVlNsVklWc0Vob2R4eDJTWTFTY2prUzBRajZjZmJiS2lMazN0TEZ3U1ZTbG9wNmVGVlJpZlFPcGNOVFo3U2c4IFBiOFduem9XUFJaZlNDN3BrblBpU2xXSm5PM1JvekhIeDlQbklqdzlYMjZGUmwrV3ZZUEZTR3FwQ1JlbW4yUUNsWW51WHBwdUltZVkgV0JSK3hBUjNicmxkbTZYcGVqUmVjVU52ZDdoRjNJaktCQ3J4dmdFelpZQWNUdytoY0NwY3FVcE82N1JNTTFrS3V5SlVCZEQ1UjJ3SCBwNXBGVWZqQ0JkazdXT2hKUnJGRXhTV2w2T0VKRTZoZ3ZjNmVVeWNnNGExTWI4eG1TaGVxVXBKU0RmaytYQjZBWlhDeEEyakxyTENrIHVCVVZlaGJYWkVrUjBzS25YNkhUTE9TWTRvcHpnbHdaZ0ZtNlBsWE9oYXZuTFFpejNRb1pqNUdnN0ZIWmpRNzVSWVhrTVRKTVIwckUgWURIUGpzVWV0NVJVUlFuNEt4eDZsZUxFQkFZOGZjemVTcGM1RjFNTWYvR05peVQ1R3V0WXNDakZuWEtvUENxbXB0RU12OW56c3NXayBDbmVBWlA0UGN5SjdQSjc2V25kWWViWlFTZThObXF3a1FsZTRBV1Z5THc2aFV1TlhnNEZLanpLNE1RQ0RNa21IblgzcXd0WnpKaWt3IEN3MjI5TEtrMWdSZ1lmWEg5dEdjbFVkRlVsVW80V2NzcFhNYUNFSGhyQkNQNlp6SkowRkY5aFlXZlJXUmsrdytEdWd5VkJUOElyUXcgMzYrSU1tT29rL1lxdERabE9kalo3akk5WVFVVnhlZVZ2UjZxNHdJU2JvTXdTSC9La2hMdzE2OWJ4UUluUlI4Y3Fqd3FPTFJWL0g3cSBXQVFxdktJQzZOZ1hmcW5CbXNaTExuS1puckNDaWoxbUFtWFo2WjZnTVBVODBrSjZPbXc3L1MyTnZvYTZ5bkpTb25tNVNwNGRZOFFUIGVqU0dEYjIzcnBhZ0lnbWp3bTM4WlI5NzZWRkRLem9yckNlbDhmUVZRd1ZEY3ZhQlAvVTlzU3M1UEdxU0l3WEp5YzY1bVkwZ1dWTWsgaHNMNEtSSXhLbXFOdjNuekpTekVYYVVJNWl1QUNrYWkrOEZIdXgvOGMrekNVR3A4Z2lSZk5VaXFOWnFHZ3VZMGdpRDdVeFErNGk5cyBVeFFjZmJWZGRabWIvRW1GVWRIR3dvTjdEMnJoaUpsSW1pa0RTd3B5RGxSSjUvNFNLWXY1NGtTV0pGbVd2WjdnOGs1MTdvV1NQRThHIFZNRFdZeGt4NGtuNy9CcGttU1FoRGxuYkluTGtjUXdMTnB4cUtOaXg3ZktLYzVLYjk0ZDdWRHgxUVU5dEVMU0pHcEVBQUIvSlNVUkIgVkNveWxLUnNaQWtsMGVMNDlmU3lSdzIwTm5kdXY0WUZQU25SckVNRkFqQlBLTGp5OWhlbHdoRnk2cEN1a3dPZjhPM1Jrd2VjdlpDaSA4RVdMSXNzK2IvM2FWVFB2NkNwbjBGWEtvYURLaklDMWJ0M2thMjQ0OTRmSHg0NmVTZ3dPYStNVHFZbG9mR0FZNmJvSXcvaXo5SXJpIGIyMWE5Y29YdTh5Y01JRUtmbnkxSzVkdGZOdGRnQTZJeGZvSGh2WWRQdnpOSDRkUG5qV1RxU0tuOFJTbHhFWDJxclZkUyt2WGRMRUMgaVdzQ3NLbjNKVXZCcFIzNE5YN3NUSEo0TEJXSm11VHNMbE1FWTV4b0N2UTIxSzE0MlUyVEJ2Y3J4RWx4MDBsVzN0YlBWbGJmZVl0YSA0NWNVbVN3MGxtVm5yYkVvVElPQ2pZb1NXdEhadWYxcSs0K0VFRWx5NWFvTGhsREJJbDdUMlM2cEtubmU1SEZMaEJiQkMrdlJsNmZ0IHFzMDJKZmJ1cm9xVmtnMFRNNGNLTGsyYjFqazd2ZWcySVdkNXQ2Q0ZXVkdCa3JlK2RzWEx0K2UwVjFEQnllT1NMazVuQzVVMXIzbTUgcHk0b2VTYlJJbG9rdTZnb3NxKzVJZERhUExsM0I2NWNhc0VXS3FIbG5YV3JWc2hZV09paWJtY2poQkFXVmcyOTdGRm4zaDVjQ1ZxSyBlT3dqQjZqZ3N1S1c3V1F1WDdhTlNnNHRvckNHaWl5VFBFYTFvVmxhcnR1MGhURlVFT3E2OVFXQmpsYko0N0YzQzltVmt2a2hDanVTIFFzWXFQYXEvdFhIMjJpd2pMYVhmc2lFeFFnZzlOTUt5MTdwMVhMOVZEUWJzM0JUcElXTUJDbXVvU0ZBaCtVUHFMMW81WjgyV2o1WlMgaHg0U0M1eE1vV2JkRzE0ZDdHeWpRMkZ5MnR3THg4S1dwR0JPY0kyb29acVdMZlB0NVhKTEpNYWNWOEVWb1BoOUhkZHRWZnhlaUNWZSBucHlnVmREQ2lLU1F5VWNaRzVXNjFWMEw2QTFMVGd1cWlnQXNiZHp0L2RuMkh6ZSs0M1cxWFV0SjBpTkpUdjlTVU1JS0ovWndpeVRMIHZxYjY2cmx4TmxRRndpbXJobkI5ckxqMVppWGdsN3lxczhnbFE0dEFwcUtoVjdxbUlEWXFOVXZhRnR6dGwxSllTanhQejJnQWxpa1ggLzlYdDlSZDFZV0dSRkpuUTRtU2ZGRHZBS2doS09ncUdaUGhMclFrMGJWcWJUNFBtMk5NempRb3U2OTkwcDYreEh2dDdpYVEra3NTTSBaR1U1eVRaSGdvcmliYWhiY3YyVitmYi9JZ0FyU1dtLzlvcVd6UnVVZ0kvNGU2SXRnaFltUW1VblAwdHJFKzdJOGllbCtMU1VKdzhXIHU2alk5Ny8xWDk4ZFdyRlU4ZnZzUEorVGNrOEtXc29hZXFYN0tNeUpJc3QrWDkyYUZWWDFEQlJtUWJIL1gvWjVWNy9xcFVlKyt4UEwgTUVFaWFaSGZtOGdpdlZzRmMrckpDdkNHb0tjR3FuNmcrcURzSWIrUlpKZzVJUVpmbW1VQ1UwZVdEb3dVMHBQQVNJSlVES1VTeURJNCBsUlBuM3VpOHNPU3RDK1VmZmFXRkJaYWdxWlRlcXlqc1Y5S3FPMTQ2ZXVSNDc2TTdrb1pCVDQxRUVGZ09MYzZSTENWV1hoblVMNU5DIHJkQmZKeWxlb0hpaEpDUE1CclQzMUVnMDI4ems4VG1VVG1WbW53T0xyOVl5RWNMd0dQZ054UEFZU1pTS2dlaXdGUmxBeVFqaUJSZUsgQ2tuNUZlaG9hYnAwWGNHdHU3aTRsR2VKb01KRkhWMzY3amZHK2dlSDkydTJrcENPbVJ5eldrSnRDYlpJalN0Z1RaUGt4ZExoUTdMSCBYam5nVUpGcmNCZVNqcHl1ZVlYMkZtaDZ2Zmc5elZGalNLYUJEQTNvR3RHYytEaUtYRUNSQWNzMFdHTUVaa2pCamhGSFgvVVhyNUk5IEhoR0FNVmM4OWJXWHZPV3Y5djNuTnlObmUxSVJTNkxpQW1odjdXaExNWGlSRk5DOFdtcGNMdnRxb2NkUDhYQVVJMzErU05yY3dUek4ga3JPT3pWN1BobklDQnc5UUVQUUdhV0pOQytJdXdGaUhCVWRPSlVBaWpNSjkxbmlQWmVxc0dCVjZnb3BNMHQwM05TeDl3YlpGaEV6RiBqc0dFcXVTVzFpczJybm4xTGNkLzlCdEw3elhpQ01vQW1hYWQrbUR4dExSZUxEV3RsUDExMUhpb0pPSnk5bC9hUTIxd0todnpWMDBtIEo4UDB6TXM1b3hKRWJValRjWDZGVktENElBZ2g3SFBxMm1IektrbFBJQzBLSW9QVzBBbXJNbkZhTGllMm9TY0pWNWUwYk5td1NJZkIgM2JBTW82ak1HRmF0ZnZVdGlhR1JzNy83YzN4Z3lFaHFOQU1Tc2ZpQTV1a29nQlpQQUM3ZktvZGFKVThBMklUUUk4Rno4SmlERFRoZiBqY05wYjZZMWxhbnFoQnkvZzY4RVB3REZCN3cxSU5BQTZqcGtERE5tSmpxTStnK1pXclNzekRqUkY4MTFUOWQ5QmR1djJjemE4STlRIGxhbStiZVBiWDZlRm83MlBQcE1ZSEtYZTNxWkZvclRrb1MyMUhWTG5wWEt3aVhyMHRFR0hjeEFDWjZHaTRKNXhwcjBGTUVlTFlOcmggRUd5dzJuaUJ2eGJVdHNMbUxwaU1nb2tMVnY5aEMydE9HUWUreUFnR2xwU2FwZTByYnIwWlZGOVJ1THZpTGYvNFZsUFRMank5TnpFMCBDclJjYlhHV2lXVXo2czlVR3BiREpSdVZta2FnZUhBM2FTc0p6Q1Zra29Ea0VsS2VlQ0ZYWVdCV3U0aHMwcXVWUGNBYkFxRm11WG1sIEZBK0RrVE1tanMxS0hYM1praUtwaXVMM3QxNiswUk9zV2JRYUZPbDVsbkY3TEpNbi9pQ1VlMVhUaHdJdDA5ejE4YTljZUhwUGNqUnMgSnBNMG83NlZQc2tvL1hlbjNWWnR1OVI1bVJ4cUlYNGdQWncxSnlTc1BJM0pzUWF5N3hLUXZYQW13TUtTbkFBVEE5YUZJMWFSQTdQMCBvanZLQ2Rud3FBWUQ5UmV0dk9HTEgvWTFOaFRwOCtIaW0wcjVzb2J6aUlyOWxIZCs5SXY5VCszUlJzZE5MV1dtOUJ4YThBOHJ0NUZoIHM5NTFqVnpYQWJFNWNReUpEUW5MaEN5TUdYcmtCakEwZ0tPeTZLRFZkOUJNaEl0VG9lbmowU1dpSjlUTis1b2FWOXk2ZmN2NzNsbzggRkhseTlxeWpNdlBzVXZvcDcvbjMvK3A3WW1kaWNBVFRZaGtHbWRHM011bjBrUjJKWVNWcFdTMzdhbkhFbFhidGt2TUJFUEpBeUh6TSAyRk9jeUVSR0NtZ1JOREdJZXZZdDJ2bzdjMGZRM3ZDSVF5OHNLWTNyMTl6MHRZL2hHS3c2VWVIUHErU1dLLzc1blo3YTRQbEhub3oyIFhJQTZybFZNaXdFZ3BRVWhYeTFjZWJVU2FzV3FRdVpNcURlZEJnbmdjQzNadEVWdytMNlFCRldaZEFmZUVLeHRrOFo3ckRQUEdvdjcgZkdjaWhiaDVWZlhVaHRxdTNsSTBUamdzVEt2S3JBc1dKbmRJWjM3N3lJa2YvMmJpekhramtiUjB3N1l1N2V0QTYwVVEweUlyeVBidSAyYjFoTHN0c2tTTXlqc0xnVURRRjR1TmcrSlRaZThBc1VGTFNMZ1dIWG1xUTdLRy82YXNmSy9yNG1sQ1ZzbzBUa2JMeTloZGh1N24vIGk5OGRQWHBTajhTZ2xPcTZ5cXhyUTFSTWtDVFJpR3VLTFhIVHF1VDBFTE56ajFSaDhNOVFDL0lHNWZxbDB2bTk1c1FGS3o5T01vdUkgVlJ4OXFZSDI1bFd2ZkFtbzdzS3Bxc3p3ZXlPZTJQT1pyNGNQNzJ0Wk91Q3ZNeFRWRmhNdzFiNjdlK2wrMnIzWXB0OWVvNW1Nb1BFKyBkT1pwd3pJWHlna052YkNiVjJTUDZtdHE2THg1MjVVZmVuZHBlanh1Nm9OZFZjbDN1YWdTOEYvMmxodjdmM3ZJbXFERFd4S2lGWTQ0IHR1K0Z5aTFNUzQxRXh6RDg5Y0RqaDRGRzljSmhjK2lrTmI5RlNXZkVveXNqdmJXcmwyMjgrNjlCMVJlRjA5WXd2Y1NQUHhvOStJRFggbnpLUng5Uk1ZTkdKU0VocHFSSk9Kb2RrVGdjaEVXQ2dIOVFxd0xOVnJsc2luWDNXTUZKejlVMzJqaFRpNWoyZVlHZkhSYSs1emQvUyBKRkJSM0hFYnNhT1B4QTQvWkV3TVdGcWN6R3Q3RkdRQU11T0E3S2dDZ1p4Rlc5VkNTNDY4RUhIMVFIOHRVTDNRRjFKNzlwdmpQZGFNIGtrS21VeVRKbnB2M05kVXZ1WDdyc2hkZFg4SndFUXBVeWxqaXgvNFVPL3g3WTd3ZkdVbGc2WlFRaXc1NXlaWkR5OVMxaTFVRVRHYUIgREk3SFZLaEtxTFlkcnZUSmcwMndkNytaaFNwdFVUQW5ra3oweEJNS05sKzJmdU03N2lxOXU0SUNsWElZbGNTcHA2S0hIakxDZldSaiBvV2x6WW8rWWtuL0lqaFB5SGs1SmdGQkZ3R1JYa2RFLzBWM05OVTFnaVZmeTE4RlRUeGdvaHhOaVVjanlZVVVKK09yWHJicnNQVytXIHZWNFJldkdyS2xtS3RMNUQySjhZNFg2a0o5S2NXQmxPc2l1MG5XNTFabUNxZ3Buc3hoNlNKUXBCNkEyQnBpNm8rdFVUajVsbUNqbG4gUDhrazVab2E4SWU2bGw3eWx0Y0dsM1lJUWpLRjR3eDBabVF3c3ZjWCtsZ1AwcE1Za2xrNFFaT2Fpd1Jtek9rS3MzdmpYVTBMZFBZOCBremhMaHA0QXFGOEMxNzlFRHRSTFZIRElnYlZLd0YrenRQMmkxOXphZnZVV2dRZlBxS1NiTXpKUzRXZi9SeDg1NCtpSmFhUW5xM1AzIHJLQ1pQeUVMek16TXVGOWo2RVpvSEl3cFhoQnFrUzdhcnRSMUtoS1ptUGNHMnBwWDNuYnpxbGUrdEV5WHdvK2dLNHp5TU44VG5OajEgNDlUZ0NTdVZRSVlPc25xUzNxcUNyUG0vd2duaVlmcTdVRDdmN3hMckFuREFCVUJOSTFoNUZldy9ybWhHOC9LWDNyait6YThSR3VJTyByd0lTcDUvUmVnK1J6ZWFHQml5Uzhjam1oRFlDbEhmVHlUQURzdWtQb2JzTkRNdzErc1NrK0J2UXNzc0FiRm01N3QxdkZGUzR4S3ZnIGlDdDI5QkVqTW9EZjBKVWJKTWRXWnEzZ0lrTjU4anpTV2ZkZGJtQXlpMzJvZTVGVktkQWtON1NQeGs4K0xxaHdCeXB3WXVlUGpkRnogazZ4OEpucXlGejh0WGc4bUR3QzRrcG5jdlo5WVdEQXErR1dNOVViMi9TcHhkb2NBZ3hkVVptMld5WE43dFA3RFZpcU9yWHphb3FDYyAzZlRGM2pFN2VUMmZhNWlCdWJRNGgwQkJNanFpSjR6eDNzamVuMnQ5aHdRYmZLdEsvTmlqWm5RMGExRXlnOElJbFNUUERaeDU5U3ZrIG41UDBlM3BpalFRem00OHhMZnJvdVlsZDl4bmhQb0VIcjZqRWp6K3FEOXVqdzBaMkh4TW9VbTdKdVlNeFY5QXlUUktoVS8rMkxOdEogUEV3RHBSTDZ5Tm54cDc1cmFSRkJDUE9vVEd1SnlFd2x6dXd3a3hOa2d4L0t1cFNjMEF1VitEbnhQUWt6N2VyaGxNcEhOQTBNemVGaCBXbG9zTlhCOC9Lbi9ybHlzTFZBcHRDUk9QMk9NOVNBalJkMjhCWEp6NEpkbmQ1bzA4NVl5eUFNa1U4Vms2bGxPS0RzVFJWTmE0UGdXIDA2TDFIWXpzL1puUUU1NVF3V0ZCNHN4T0xDbUFTSXFWSHZYS2hnMWxiSFE4emZIUGRHRlVUR2JPRGVzc2RuQXlKcGtwS3g2T24zeFMgNno4c09HRVpsVW1WcWZVY01NWjdzWnRQU3dySTBGS0I2NUptMWhLbWdKa1prbWxCMTZ5MDBEQU1QM0J6WWlDeSszN0JDVGVxa2p5NyAwMHBNa0lOOG5GRXZLMmV0RjZyTVk0T1FUV0JtdWF6WnhTUTNETXRtZjBtYkZrTkxEWjhlZitJYkFoV0dVVW5YcXhrZDFrZlBrZTBvIG1iMG9BRldTazZueUFtZHBiaFVnWk9iOGdsSStwOHhtd3pENnFFMGRwUkxKbnYzYWhhTlY3dXM1VUJWY1QyWjBoQTRRVzhpWmN5eWogbTU5ZlhpcGMzN1ByR0lXa2dCcDJwblNSL2NBUnR2aXhzWktFWVZ5TnVMT01pdk1ndGQ2RDVIaUV6Tnc4RStNTTlHWFIxK1J4QlZoSSBteTVRUUdhVkVWZ29KSmw3Yy9KTE9TbVNMQ09sRDUrSlBQZExFWUN4QzR1WkdETW1Ca2c2WG5wZ2FqYm9LaHN6R1NRc2xIMGhOTWQ2IE16aDVLeitjL1RjTGhHZkIvejFjbUNkWjJHMVRRMGdseGlKangzbzhjZW9wM0djSlZCZ3RXczlCS3psQmwzdVpaVFgwR1R3S1hZSzUgY0EyQjg3M20vNENNakJRMXBFSDJWQy9WY3h3QUcrRUxFenZ1cmRvSWpIRlVZT3JDVWFURkNDZnBqcnhNbkN6U256dHQxNTdzSzhVeSB5L1FubDRDUXlialFoV0VXT1VRY21TbXQvNGdaRzZsQ284S0JxaGpSWVR1L3hLU0VzU1dOdnRDaW0wRHVpRk4yR3d5WWpBM01zMW5CIEdmQW9VMnVqQzhOd0xSaTZHUnV0MnZsN3BuZEJXcW00bFFnNzV3bzVkak8zOWFDU29ZSUtoV1FCL1dqdW9uNjBBRWJZR01jZ3dvS2wgSlJuVitvK2FzV0c1cG5uUmtzS1pyREN0S3FuK283aHVjdmVsRkxIekwzNDRKQlhVWWhablU4b0lDeGsxUm5yQ2pBeEZEejRvYkQxaiBxQXlkUW5veVo0eVlnWm5IMlNDcGhrUXZkRysybFp4SW5ObFJoT2NtVUNsaU1hTkRaQkFtRzRDVjNxamtFUnRVRXlRNWNSZzJMVWE0IGYrVDMvMUY0aDhYbkUyTWFGV3hVbkpISzNFbjYwdXZFUExTVVlkeUpaVmh3ZFJoYTZzTFI4U2UvVFU1dkVRRVlFejFZS3A1ZTkxVXUgU1psS0M4d3g0K25ScDJva1pGSzlBTXN3NDJOYTc4R0paKytkUCtVYS80YWVkVlFzamFiNXltWjN5eHppVmk1YXBNd0xwa2Q3Z1NqTyBvV3FtYmliQ1d1K0J5TDVmNXY5a2hhb1VGNVZrRk9tYXZRYkpxU0lYWkxGRExvR0Z6RWltNG1ac0xORzlLL2I4STI3SGhIRlU5RGdKIGhhZm9PNnFXazFGWUp4NExpNTVFWnNxS2pjV1BQNjcxSDNGeDZNVTZLblE5UzJiUE4zSkpmd3hkeElwbDRBZ1o5MmhtYkRoMjZDRWogT2lSc2ZZVXFnNndtZHBhMmltNmN2ZXF4Z0dVNUMxNVNTWDI4SjM3MGp5NldGTFpSY1E2VFJtNE05bDBpTEdRWks2YkZTT0lRUU92ZCBuK3g1enNWNnl2aCtGVmhnZm50UnlrTUw1b1N1TzdZTXpVeUVZMGNleGovZEduYXlpd3FVWlljVzRlbFoxWDBuMFpSRkppV1JycG1SIHdlVFpYZTRMdlpoSFJmWFRFOVJ6SjFJRUtxekZ5SmE5akJMUUtYeExpeVZPUFdsRUJ0ekhDZE9veUw1YUlFbU9rRUNJOHAwVkZxVnMgbGhMUkRLNGtiMWpTU2thU21jV1VMdUtFYlZTQ3pWQlNja0l2SVNsc3N1SUlDMW5ZYXFRc1BaRTh0OWRNakxudlJsa093SHhROWtDNyBaeEl1aFZtN2tqbEsweVNMS3JCanNiUW9jU3p1a2hUQStBZ1lWRlQ3cEJ3a0pJVlZWdWlLc1BRWmcxaGJ5UFl2VGVzNTRMNEZjNHlqIDRzUE9IcFhvbUNGUmlrVkxSbUZvZWhjY2hwbnhzZFRRS1lGS0dTL09YMGUzMEZ2Q3FEQk5Dc29NaFZGemIrbFdLcDdzM2kxUUtWOVIgNmpySWtaNkNFeDdDTUNlWE5EbWJ4Y0xDWW95ZUU2aVVyM2phTG9hU0RNUXdNZHVVNUd5OG93a055V29YSGNkZ1ptUklvRkpHVkdSViBMSmRrMms4NjlwM21PTFluNzAyRC9NSFFGclF5WDZCU25JdnpCSUNraU9iSWliTjNsb0ZUMzRMTnZXNk1uUmVvbExIVGdwSVkvdUxDIDJhZGZkTXVxUlNZbGplaXdRS1ZjVldCb001NVVLZ3BiWG1YcXI2aTV4K0tTQ0x1cG0yTWFGYTNuQU5uZ0pRb25NWml6VHMvSlJHV1IgVkpUeE1ZRktPVXBxNkNSTjJpSUtQOEtTT1FhSHB0QXZXdHA4Z2NyY3hZd09rNDVLeEdBY21mc01KM2JXMXNTRVFLVWNoZVQyTm5YUiBCaGt2TUpQU1B6ZXpJWlVYS3hVVHFKUUZsVlNNYkJzU2hXa3RRVFA5eWo1MzFiSTBnVW81SkdXQ3BzRVhJOFU4dytPaW5vNWRWTXo0IEdObXhiWm1pN2ZGaDYxSE92bTQzYnNWak9XZHhPdm9Td3NLZGVjbkFBeVdCU3VuN0tqMnhpTFBtUkNrYkY5Q2hZNlovQlJWUGZ2b2sgVUNrRWxWU0NpeWNveWt6VjVKeXhBUld2VUpYU1AzakxGTXZ2dVRIeENEam56K1RBQXFFa2VXb1d3WnRBWmVIS25qMEZVaFIrc0NFbiBocE4yaFNWRjh0Zm1od25EdGMxeWRrbFZ0RDBlSEh4Nnk4clVSUlVRcWo0NTJKSy9uaUNCU3A2VklDbHVHaitwQW1Sc1BZRjJraDBvIHlaSTNLQWZxRjJWNUJDb0xldmdldjBDRkIwamdsQjZPd2lJQlNaSHk0Z1N4amd1N2JWSHloY1JDU2ZiZENaaTBzdGlPeENTaUs3S2kgaEZvTGxCSW1oWVhsUkt3dFVLZ0tYL29DWWNiV1E5V3ZOQ3hiSklRQ2xZVmRHZGxZTDRzR3lJMnR6L3dHYzRLakwzK3RwM2xsNFZ5dyBKeXhzWjVjVXFIRGc1VE9Fd1BRd01ZNEdGQ1hZVERJZUxrcEFrRUJsNFZjbjByV3dqOHVra1dKNzhBdDYvSjYyaTR2aGd3UXFRbFZjIEY0VVJZMGtOUFpCeDlGWG42ZGhRRENTUVFHVmhWZUFzdGhQallPdzYrVWtWUk1hSVpVbnhxZzFMbGRxMkltZ0hTOExDZGdBbXEySnEgaFhsT2N2OUlYQXBVL2I3bFZ4VHZhNUJBWlVFQkdKUWtNYnZDdEtlSGFUMGhBMThTbEZXbHZzTzc1QkpPRFFtM3FrTHFRTmdWOWoyOSBmYm90QkVSU2ZONmxtOG1SdDhVQ0JRbFVGc2FKV0RUSk9pZnBZV0lTQW1CSnFlc0lyTG0rMkYrRkJDcnpCMkRZSm9vNWU2YWpNRnRQIGNCM0pxcVQ2dloyYnlJb2sxMFZmZ1AxNUZVS0xRSVZGUllGWlZteEprV1Nsb1RPNDZiYmlhd1VTcU14N2NhclAwUll4WHN3V0tUQXIgS2ZoRnhKK3NaUEd0MkpyblpucWVZakRtejRLa01aZ1lCR01zNnJLTmlqMDZUUFFFRTZJMmRnVTMzY3FiQVhFTEtuS2dIa0tabUh1QiBDb09HUHJQb0M3djVVR3R3MDh1QmkwRmhIWlhhZGlpcjFEZUtJV1BHWEFyTVNvcmtDWGc2MW1ORFg4S3ZSUUtWT1l0UzIwWmlYekszIEpjdzlheTdGWHZHRlF5K2YydFJWZCsyYjgydjRpRDljV0QrTUczcUR6a3l3aU1IWWNpbUF6TTBycWx6YkdyejBObGdGYThCWjc2b2wgWHhEYXRoNktjYkRLYzVLUkZIdkNVZkxYK1ZkY21mZUtMeVJRS1lXd2hOcUFIWDFCc1Jpczh0RVh0R2NiNlFBeDlOUjQyOWZYWG4wWCBxQVpRMkVkRmJWNEpGUytFemp5WGFLNlY1Z1JrbGc5N1dsYmxhVkg0ZHZhc28rTHYyaXFwL3JTa1FHSHVLeFI2WlVhSDZTeUs2bFhyIGw0UXV2MU91YWVTdXhidlhxL2pycFVCOUpuMmVFSlpLU2dxdEFLaDQ1R0JMemFaYkN4b2Q1aml0TGdlZHRGTFhBV1RGc1N0Q1dNb3YgS1U3b1JmMEo1cVNtdVdiZEMvR3JFa0VVRXFqTUdZT3R2ZzZxUHFMNzBObkVMZHB2T1RseFFpL3NUMlRNU2FOL3pYV2h5MS9OcGR0dyBQU3ErWlp0bGV6R1k3VmpJSElzSXc4cGpVV3hNNkx5V3JNaUJlditLSyt1MnZiRTZId2Nmd1l6YTFJVzd0UFRlRmVqTUZvdFNCb3RpIDkwMTBDc1hYZFdYOVRXL25NM3FxR2xRQ2ExOUFob3lKdWMrbVhCY3R1WlI2UWkyS3ZYUkZWa25jdGVxYWh1M3ZBbFVMQ2krb2VKZHMgVk9yYVljYmMyNUlpaEtXRWNpTFpzNDNVeDFOT2Jub250NGE4bWxBaHRDeTlsT1k2a2pNNXBET0xrVVFwdXA3a2pIYzFZa212di9IdCBvTXBCNFFpVjRLYmJjTFZCV2M3eDkrbU4zYUlVVjArZ295ZEtxSzFtd3kxVjYrT25GRzRXaEVxZUFBN0R6TmdvTWswSVRZUWNVQkFFIDRzenVJdWtKeU5FVHIxSy9KSFRwN1RVYlhyYm9UMGJ1cUJ5ZTFrNkhOcjlTNnp1TTlBU3lzS3JZWjJ3aVNQNFJ0QlJIVCt6NUUwbjEga2kwbzI5NUVnbDVSZUVSRkRqWjdPOWFiMFdFaUxNaXloY1VoaEJ4SExGQXBWRTlzK3lkSmRCMmt6OU8ydHZIRjc1ZHJtb3J4NGNXViBsRW9HMjV3TklvVzJ2SnB1alZSelZ1WlB0cVNpNU04SnRCY0x5NnJrSTFsWFdsNzV5U0p4SWxTbGtzTFNoT3NTQzR0bEdnQUxpNFU3IExUb2todHdTRVplZkUzdTlzS3hpMGZhdnZyYisrcmNXNy9PTFdpZFFvSkpucWIzeXRhbitJNm5Ca3doWkVPRW9ETmVIUlV3TGxCQjUgSTBvZVFSZDB6SWxQcVZzUzNQeUttdlV2Rm8vR1BhamcrcTNaOEZJak1vUXNnN0JCOEhCa3hSazdGc0FzTE9oeXpJbTN4dE42Y2YyTiBkNnVMT3VWMFpsRVJxRlM0K0ZkZmwremVrK2plRFN5VGhtSDJyNjEwM1VBWFZsU1JneTU3QmFRcUJ4cTh5N2MwdnZDOUpmZ2l0ejEvIEVzTHdlTjNJU0EwLzhERjkrSXlseFFDV0Y4b00valc1SGVlT0JDcXppRWw2UkJnSFhUVWJiOGt2SldRZU5WVHM1MS9welJlODVxU0IgaWllNDhlVVR1MzZNSVVGNmdrUmdoQlRMRHNCUkppb1RaWHJRSmF1U3A4YlR2cTdoNXI4djJVaVhDNTg4eCttYi9LdXZUUTJkaWg5LyB6RUltRnBsME4yYVJOM1lQSk9ZbDArRW96R3oxVWJ4S3FBVkhzSFhYdnFsMGtsLzhwdzRGS29zcmRkZTgzb3dNYXIySExCUWxWV1FhIE5pM1FIanNtODVLdTdlUVcycjR5ZTA2d2cvY0VQSzFyNm05NG05cTBRdWhzdFhpVlRMRVM0ZEUvZlRrMWVBSnBVUktNbVRxd2g4VnMgV3FyVXQrUXN2czZ1Zld6MWRWMVZmOFBmbGRwRmx1Umh3OG9yQy9lbzRJSTVDVC96Zlgza0xFckZzYkJRaTIrQ3RMOVBUN2FncXVJRSAydXNZYUM0aXlSdFVXeStxdi9iTmFzdXFNZ3k0bENiNnFud0U1Z1pVY0VtZWZ3NWJmR09zaHl5bU5OTURZc2h5YUxGckR5RzNBek1wIDRxSzV0NzFLWFZ0ZzlmWDU1NEFVa3VJdXI1SXB2bVdiVVNvV2VlNVhSdmdDU01VQUFEbVRMV2p5VTBjdWh3VFFWZlN5aXNYRTI3a1IgTzVOQ0V0dUo0bFpVQUoyWHhBb1pQZkJiWTd5UDBBSmgxdVhiL1IyMGhjVmx0T1JDNHB6SkRGV2Yycmc4dVBtVkpUanN0MG9seFQwQiBXRFlTTzdzcnN2L1grdWc1Nmx0MGdJMitNenNKcGdWanZCdVk5RG91SjRVTnNTVkE5aWkxYmY0MTE5VmQvYnF5WDQ5QWhiZWk5UjJPIDdQMDVtY2hQUmNsOEM2YkZXU3FHQmNiaW41Yk1vVmxUSVpGckdyeExOamErNkwyVmFGc2xXOWpOVElaRUY2S0NDNDdCSm5iK0tEVncgM0VwT1dJWkd0Y1dnWTJKV2xoUXVoNUxUbzF0Mkc3S1hjaWtlMlZmcmFWOWJ0KzJOU24xblphNnJSSzJJR1VseExTcDJHWC9xdTFyUCBmckpyVWs4U1ZPeGd6Q0VFVGRyaXdnRXprNDI3ZmVpZnBFaStrS2QxVFdqTEhhVTlpckZpa2lKUUtWZUpIWDA0ZnZ3eFk2ekh3clJnIGVURjFsTlVXaXdkYWNzS3RkUFl6R202cEJKTG1WY0hML3NLMy9QS0tYbUVwOTlTeGxKL2E1YWpnWWthR3dqdnUxWWRPbWZHeHJMemsgQXBNR1pMS0hxU0EyOWhoZHJtdUhtYk5Oc0pMSXZwRGFzanEwNVZVVlZaTHFrcFNxUU1VdTBVTVBKVTQvWTR5ZHQxSnhaT2hrT3QreCArMmlHOGJFWmdtOVVGa0t5dlNuTXBtYTJzd2JUUlBTQkJyVjFEZkVrdFcxc1BOZHFrWlFxUWdVWEt4bUo3UG1wMW4rVWJNM1g0L2JnIEdOa1o1a3pxWnozTXBGWXdWV1NLT3kwRHB6ZUxqQnNCOXBsKzJKQjRBbktveGR1eGdXeDhaNmdCbFpRVHdGcFNrU3BDeFM2cHdST3ggdzc5UERaMDBveU5PUElaUm1SU1NvZW50WUNhMVFmbHZ0NFF6OXBycEE3SEFKRUxJc2hTUDVLdFZHNWNGTHJvaHNQWm05cDZsUUtVSyBpdFovSlA3OEgvWGhNMlpzek5JVGRMdUxaUyt5VElzTXlPck1aRE1EQVp4S1RtNFdzaG5mVDVPQ3lYamtER3JaSnpSNGErUlFxN2ZqIGt1Qmx0N09hWjZqRUdYTFlPM0NxU2xHeGl6N1NIVHY2c0Q1ODJvd01XNmtZTW5GSVpqa0R5cmJPVEJLWm5OV1dhSVpXWTdmKzJkNVAgRnBVTUhzNDJkem85b2txZW9CeHE5clNzRG02NlRXbFl5dkNUS3pVbmdNR1VibFdOaWwzclZqSWFQL21FMW5QUWpBeVFVVElqUmFJeSBrNmFEU2MvRG9FbkE1T0JpNzdoMEtJTHpkWkFPSVRBem9pV3JkcFNsMUxaNjJ0WUdMNzFkOG9XNGVHalZKaWtDbFVtMWJvVDc0aWVmIElsRlpkTWhLUm5CZ1JyVEZKRnVSblpXWHRwbkp5WitFSmtrTnlweVVsREV6bVNNdTdMRXNhdFBKcmwyTWhCeG9WQnVXK2JxdTlLMjQgZ3RNblZqMlNJbENadWVLdFZEUjVkamUyL2taNHdFcUdzZXdnVTZmaFdYcUltVVJvRGpZNXRPUzYvUFNtRVlrZTlJN1Z3K1BINmlINyA2NVhHWmI3bGwzczcxdk9aTnJiMFNUd0ZLZ3pYL2x4UHdJeVA2cVBuamZGZWMyTEFUSXhiV3B6dUh0UHBzdVhNSGpLVVhwRkZ2QWNOIHE3eFE5VW5lb09TdnhkS2hOcTN3dEsrYllSQk1jTUlKSndLVitWR1p5ZHdZV0dHUW9aR3BUTXdNUU9TUVN2eFRWdTJrcGdDak11TVogeUZDZ0lsQnhYUXhXaFUxQmNESjNFU2VQVnFMTkNVNW1aMFdnSWdxM21KU0hFK2ExVnFCUzlscmlMT2RsMlRpQkFoVlIrS1dsYkM2TyBBLzhtVUtsUVRYRkFTN2s0NFdTWVE2QWl2RXZGT1lFQ0ZTRXJDOEVFVlM4blhCV0JTa1hEQUpTSnhCQXJrSWhaSm9FSzgxRVlxdngxIGxKTlozbVpqQlNwc3VFczBTV1ZFMENWUUViRE1HNHlWSHhoVUFVNDRYT0FqVUdHSGxTbFJXQm1BUWVVT3VyamxCTGdwRTM3UmFoR3ggUVF1YzRROUZ4aEZWNkFuenVXQlVvTUlnSzdNQnM4aEdobVo4SzRwQWhYdFlabUlFNVJrdW9qbitKQ1JGb09JbVZtWmpKcCtHajVoNSByanp2YkJPb2NBTUwzN0VUOXp0QXhRalliQlVMeFVNUW5BaFVSQkdjQ0ZTRXNBaE9TbFQrUDMraWVsRml1dnpZQUFBQUFFbEZUa1N1IFFtQ0MgIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02Ni42MDQgLTQ2Ljk0NSkiIGRpc3BsYXk9Im5vbmUiPjxwYXRoIGQ9Im04My4zODQgNzYuOTE2YzEuNTI3My0wLjEyMjQgMy4wOTczLTEuMDExMiAzLjgxNjgtMi4zMjg1IDAuNTcyMTMtMS4wMjMxIDEuMDg5OC0yLjIwOTQgMS4xNTQxLTMuNDMzMyAwLjA5MzQtMS43Nzk3LTAuMTY3MS0yLjcwODktMS42MTg0LTUuNzczMi0xLjMzOC0yLjgyNDktMS41MTgyLTQuMTU4NS0xLjUxOC01Ljk1ODcgMC40NjI2Mi01LjczNzQgNC4yNTY2LTExLjQyMSA4LjUwODktMTIuNDc3LTEuNTkyOSAxLjQ0OTgtMi40MjE3IDMuMjQ2LTMuMDQwOCA1LjE5MjctMC4zNTQ1MiAxLjEyNTctMC41NDA2NiAyLjEyMTktMC41ODQ5NCAzLjA1NDUgMC45NTEyOCA4LjI5NDIgNS4yNTk4IDEwLjMyMSA1Ljk3NzkgMTguMDM0IDAuMTkyMzQtMC4zMzM2MiAwLjY1NzMxLTEuNTYwOCAxLjI0OTUtMi4zNzY2IDEuMDgzNy0xLjQ5MjkgMi41MTQ2LTIuNzA1MSAyLjY0MjctMi44MTE3LTIuOTg5NyAzLjMwNDMtNC41MzQ0IDkuODU5NCAwLjE5Mjc3IDE0LjE2MS0yLjQxMDYtMC4xNTI3OC0zLjk3NzUgMi43Mzc1LTIuODY5MyA0Ljc0NDMtNS4wMzg3LTQuMTY1NS0xMC4yNDcgMi4zMDE5LTYuMDUzNCA2LjYzMjUgMCAwLTEuOTUwOCAwLjY0MjEtMi44ODQyIDEuNDY0OC0wLjYwNDg2IDAuNDc3NjMtMS4xNDIxIDEuNzM4Ny0xLjUxNjcgMi40MTEtMS4wNjY4IDEuOTE0OS0xLjM4NTUgMy43MDctMy40NTUyIDMuNzg2Ni0wLjAwMzMtMC4yMTMwNi0wLjAwMTctMC44NTc0OC0wLjAwMTYtMC45NjYzNSA1ZS02IC0wLjAxMDIgMC4wMzU3NyA0ZS0zIDAuMjMwNDItMC4wNjAzIDEuNzYwNC0wLjU1MTA4IDIuMTQzOC0xLjA1MjcgMS44MDQ4LTIuNzAzNi0wLjc4OTk5LTQuNDgzNC0xLjE3MDItNi4wNDY0IDAuNzExMjMtOS43ODggMS4wMjk2LTIuMDM2OSAxLjE0MDYtMi43OTY3IDEuMTM2Ny01LjIxNTItMC4wMDUyLTEuNjUxNy0wLjYzODA2LTQuMDczMS0xLjA4MTUtMy44ODcyLTAuMjg1NjggMC4wNDIwMS0wLjExMTIxIDAuMDI2Ny0wLjYxMTg0IDEuMTQ0OS0wLjYyNjg3IDEuNDAwMi0xLjE4MTggMy4wODA1LTIuMTg5NiAzLjE4NDltOC4yNDIyIDAuMTc3NjFjMC4zNjQ1LTEuMDYxMiAwLjQxODM4LTEuOTI1MyAwLjQxODM4LTEuOTI1MyA0LjFlLTUgLTFlLTUgLTEuODI2NSAyLjAyNzEtMy4xMzA5IDMuNTg5NS0wLjY3NjI5IDAuODEwMDUtMS4xODU0IDIuNzA3NS0xLjE4NTQgMi43MDc1IDEuNTE0Mi0wLjg2NzE4IDMuMjYxNC0yLjY3MzQgMy44OTc5LTQuMzcxNnptMC42OTMxOC0zLjc5NTRjMC4xMTUyMS0wLjk4MjAzLTAuNjA0MzQtMi42MDk2LTAuNzQ4NzItMy4wODE1LTAuODQ1NjQtMi42NTI5LTIuOTQxOC0wLjQyNTI0LTQuMjYyMSAwLjkzNTI5LTAuMjkxODYgMC4zMjUwNC0wLjI5NDM1IDAuMzk1MTMtMC4wNDA2IDEuMTQyNiAwLjUyMzMzIDEuNTQxNCAwLjgyMzQ3IDMuODQyNCAwLjcxMTk1IDUuNDU4MmwtMC4xMDU0MyAxLjUyNzdjMS41MDU5LTIuNTQ1NyA0LjE1NzMtNC4wNTI1IDQuNDQ0OS01Ljk4MjR6bTIuNzk5OS0zLjgwNDZjMC41MTUxMS0yLjcxNTQgMC4yMDI2OC01LjQ1LTAuNzI5MTMtNi4zODE4LTAuNTcyMDYtMC41NzIwNi0wLjczNDE2LTAuNDIzNjQtMC44ODAzMiAwLjIyMzUtMC40MDcxOCAxLjgwMjgtMi43NTM3IDQuMzgxNC0yLjM3MyA0Ljk1MTQgMC4yMTUxNSAwLjM3NzUyIDAuNzY3NjIgMS4yNTcxIDEuMTExOCAyLjA2OTYgMC40MDgzOCAwLjk2MzkxIDAuNDY3MzMgMS43NDM2IDAuODY3ODMgMi4zMDAzIDAuODM3ODggMS4wNTQ5IDEuOTEtMi42ODY2IDIuMDAyOC0zLjE2M3ptLTMuNDUyMi0xMy4xNDVjLTAuMjA5NDcgMS42ODcyLTEuMTA5MyAzLjk0NTQtMy4wNjM3IDQuODkwOS0wLjcxNzgyIDAuNDc2NDUgMC44NTk4OCAyLjA1NTkgMC4yOTA5MSA1LjUzMDctMC4xMDQyOCAwLjM4NzI5LTAuNDUzMyAxLjA0NzktMC4zMjMxNSAxLjIzMzggMC45MDQ2NCAwLjM2MzIzIDIuOTc2NC0xLjI0MDUgMy45ODItMy43MDM2IDAuMzQ2NjYtMC44NDkxMSAwLjk3MzE5LTIuNTQwNiAwLjY1OTY5LTQuMDM3NC0wLjM5NjY5LTEuODkzOS0xLjU5ODItMy41MjY1LTEuNTQ1Ny0zLjkxNDR6bS0zLjgzMSAzLjkzOGMwLjgyMzQ2IDAuOTM5NDIgMy40Nzc3LTEuNzQ2MSAzLjAxNTUtNC45OTk5LTAuNDE4MzYtMS40OTQ2LTEuMDY1NC0zLjI0MjgtMS4yNTQ4LTQuNjc0Ni0wLjEwNjQ1LTAuODA1MDYgMC4wODM0OC0xLjk2MTctMC4wNDA2Ni0yLjAwODItNC44MTQxIDEuNzYzLTQuNTU1NCA3LjMwMDctMS43MjAxIDExLjY4M3ptNC45NTc5LTE4LjczNWMtMS41MTk1IDAuNDEzNDUtMy4zMTkgMi4yMTQzLTQuNjQ1MSA0LjI3MDctMS40MjU4IDIuMjExMS0yLjQgNS44Nzk1LTIuNCA1Ljg3OTUgMC4zMjIxMS0wLjgxMTI1IDEuMTc1LTIuMTk2MyAyLjAwMzMtMi43NzggMC45MjY1Ny0wLjY1MDY0IDEuOTU4OC0xLjAxNCAxLjk1ODgtMS4wMTRzMS4xNjItNC41NjgxIDMuMDgzLTYuMzU4M3ptLTkuNDEwMiAyOS4zMzNjLTEuNTI3My0wLjEyMjQtMy4wOTczLTEuMDExMi0zLjgxNjgtMi4zMjg1LTAuNTcyMTMtMS4wMjMxLTEuMDg5OC0yLjIwOTQtMS4xNTQxLTMuNDMzMy0wLjA5MzQtMS43Nzk3IDAuMTY3MS0yLjcwODkgMS42MTg0LTUuNzczMiAxLjMzOC0yLjgyNDkgMS41MTgyLTQuMTU4NSAxLjUxOC01Ljk1ODctMC40NjI2Mi01LjczNzQtNC4yNTY2LTExLjQyMS04LjUwODktMTIuNDc3IDEuNTkyOSAxLjQ0OTggMi40MjE3IDMuMjQ2IDMuMDQwOCA1LjE5MjcgMC4zNTQ1MiAxLjEyNTcgMC41NDA2NiAyLjEyMTkgMC41ODQ5NCAzLjA1NDUtMC45NTEyOCA4LjI5NDItNS4yNTk4IDEwLjMyMS01Ljk3NzkgMTguMDM0LTAuMTkyMzQtMC4zMzM2Mi0wLjY1NzMxLTEuNTYwOC0xLjI0OTUtMi4zNzY2LTEuMDgzNy0xLjQ5MjktMi41MTQ2LTIuNzA1MS0yLjY0MjctMi44MTE3IDIuOTg5NyAzLjMwNDMgNC41MzQ0IDkuODU5NC0wLjE5Mjc3IDE0LjE2MSAyLjQxMDYtMC4xNTI3OCAzLjk3NzUgMi43Mzc1IDIuODY5MyA0Ljc0NDMgNS4wMzg3LTQuMTY1NSAxMC4yNDcgMi4zMDE5IDYuMDUzNCA2LjYzMjUgMCAwIDEuOTUwOCAwLjY0MjEgMi44ODQyIDEuNDY0OCAwLjYwNDg2IDAuNDc3NjMgMS4xNDIxIDEuNzM4NyAxLjUxNjcgMi40MTEgMS4wNjY4IDEuOTE0OSAxLjM4NTUgMy43MDcgMy40NTUyIDMuNzg2NiAwLjAwMzMtMC4yMTMwNiAwLjAwMTctMC44NTc0OCAwLjAwMTYtMC45NjYzNS01ZS02IC0wLjAxMDItMC4wMzU3NyA0ZS0zIC0wLjIzMDQyLTAuMDYwMy0xLjc2MDQtMC41NTEwOC0yLjE0MzgtMS4wNTI3LTEuODA0OC0yLjcwMzYgMC43ODk5OS00LjQ4MzQgMS4xNzAyLTYuMDQ2NC0wLjcxMTIzLTkuNzg4LTEuMDI5Ni0yLjAzNjktMS4xNDA2LTIuNzk2Ny0xLjEzNjctNS4yMTUyIDAuMDA1Mi0xLjY1MTcgMC42MzgwNi00LjA3MzEgMS4wODE1LTMuODg3MiAwLjI4NTY4IDAuMDQyMDEgMC4xMTEyMSAwLjAyNjcgMC42MTE4NCAxLjE0NDkgMC42MjY4NyAxLjQwMDIgMS4xODE4IDMuMDgwNSAyLjE4OTYgMy4xODQ5bS04LjI0MjIgMC4xNzc2MWMtMC4zNjQ1LTEuMDYxMi0wLjQxODM4LTEuOTI1My0wLjQxODM4LTEuOTI1My00LjFlLTUgLTFlLTUgMS44MjY1IDIuMDI3MSAzLjEzMDkgMy41ODk1IDAuNjc2MjkgMC44MTAwNSAxLjE4NTQgMi43MDc1IDEuMTg1NCAyLjcwNzUtMS41MTQyLTAuODY3MTgtMy4yNjE0LTIuNjczNC0zLjg5NzktNC4zNzE2em0tMC42OTMxOC0zLjc5NTRjLTAuMTE1MjEtMC45ODIwMyAwLjYwNDM0LTIuNjA5NiAwLjc0ODcyLTMuMDgxNSAwLjg0NTY0LTIuNjUyOSAyLjk0MTgtMC40MjUyNCA0LjI2MjEgMC45MzUyOSAwLjI5MTg2IDAuMzI1MDQgMC4yOTQzNSAwLjM5NTEzIDAuMDQwNiAxLjE0MjYtMC41MjMzMyAxLjU0MTQtMC44MjM0NyAzLjg0MjQtMC43MTE5NSA1LjQ1ODJsMC4xMDU0MyAxLjUyNzdjLTEuNTA1OS0yLjU0NTctNC4xNTczLTQuMDUyNS00LjQ0NDktNS45ODI0em0tMi43OTk5LTMuODA0NmMtMC41MTUxMS0yLjcxNTQtMC4yMDI2OC01LjQ1IDAuNzI5MTMtNi4zODE4IDAuNTcyMDYtMC41NzIwNiAwLjczNDE2LTAuNDIzNjQgMC44ODAzMiAwLjIyMzUgMC40MDcxOCAxLjgwMjggMi43NTM3IDQuMzgxNCAyLjM3MyA0Ljk1MTQtMC4yMTUxNSAwLjM3NzUyLTAuNzY3NjIgMS4yNTcxLTEuMTExOCAyLjA2OTYtMC40MDgzOCAwLjk2MzkxLTAuNDY3MzMgMS43NDM2LTAuODY3ODMgMi4zMDAzLTAuODM3ODggMS4wNTQ5LTEuOTEtMi42ODY2LTIuMDAyOC0zLjE2M3ptMy40NTIyLTEzLjE0NWMwLjIwOTQ3IDEuNjg3MiAxLjEwOTMgMy45NDU0IDMuMDYzNyA0Ljg5MDkgMC43MTc4MiAwLjQ3NjQ1LTAuODU5ODggMi4wNTU5LTAuMjkwOTEgNS41MzA3IDAuMTA0MjggMC4zODcyOSAwLjQ1MzMgMS4wNDc5IDAuMzIzMTUgMS4yMzM4LTAuOTA0NjQgMC4zNjMyMy0yLjk3NjQtMS4yNDA1LTMuOTgyLTMuNzAzNi0wLjM0NjY2LTAuODQ5MTEtMC45NzMxOS0yLjU0MDYtMC42NTk2OS00LjAzNzQgMC4zOTY2OS0xLjg5MzkgMS41OTgyLTMuNTI2NSAxLjU0NTctMy45MTQ0em0zLjgzMSAzLjkzOGMtMC44MjM0NiAwLjkzOTQyLTMuNDc3Ny0xLjc0NjEtMy4wMTU1LTQuOTk5OSAwLjQxODM2LTEuNDk0NiAxLjA2NTQtMy4yNDI4IDEuMjU0OC00LjY3NDYgMC4xMDY0NS0wLjgwNTA2LTAuMDgzNDgtMS45NjE3IDAuMDQwNjYtMi4wMDgyIDQuODE0MSAxLjc2MyA0LjU1NTQgNy4zMDA3IDEuNzIwMSAxMS42ODN6bS00Ljk1NzktMTguNzM1YzEuNTE5NSAwLjQxMzQ1IDMuMzE5IDIuMjE0MyA0LjY0NTEgNC4yNzA3IDEuNDI1OCAyLjIxMTEgMi40IDUuODc5NSAyLjQgNS44Nzk1LTAuMzIyMTEtMC44MTEyNS0xLjE3NS0yLjE5NjMtMi4wMDMzLTIuNzc4LTAuOTI2NTctMC42NTA2NC0xLjk1ODgtMS4wMTQtMS45NTg4LTEuMDE0cy0xLjE2Mi00LjU2ODEtMy4wODMtNi4zNTgzeiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIuMTcwNzMiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY2LjYwNCAtNDYuOTQ1KSI+PHBhdGggZD0ibTgzLjM4NCA3Ni45MTZjMS41MjczLTAuMTIyNCAzLjA5NzMtMS4wMTEyIDMuODE2OC0yLjMyODUgMC41NzIxMy0xLjAyMzEgMS4wODk4LTIuMjA5NCAxLjE1NDEtMy40MzMzIDAuMDkzNC0xLjc3OTctMC4xNjcxLTIuNzA4OS0xLjYxODQtNS43NzMyLTEuMzM4LTIuODI0OS0xLjUxODItNC4xNTg1LTEuNTE4LTUuOTU4NyAwLjQ2MjYyLTUuNzM3NCA0LjI1NjYtMTEuNDIxIDguNTA4OS0xMi40NzctMS41OTI5IDEuNDQ5OC0yLjQyMTcgMy4yNDYtMy4wNDA4IDUuMTkyNy0wLjM1NDUyIDEuMTI1Ny0wLjU0MDY2IDIuMTIxOS0wLjU4NDk0IDMuMDU0NSAwLjk1MTI4IDguMjk0MiA1LjI1OTggMTAuMzIxIDUuOTc3OSAxOC4wMzQgMC4xOTIzNC0wLjMzMzYyIDAuNjU3MzEtMS41NjA4IDEuMjQ5NS0yLjM3NjYgMS4wODM3LTEuNDkyOSAyLjUxNDYtMi43MDUxIDIuNjQyNy0yLjgxMTctMi45ODk3IDMuMzA0My00LjUzNDQgOS44NTk0IDAuMTkyNzcgMTQuMTYxLTIuNDEwNi0wLjE1Mjc4LTMuOTc3NSAyLjczNzUtMi44NjkzIDQuNzQ0My01LjAzODctNC4xNjU1LTEwLjI0NyAyLjMwMTktNi4wNTM0IDYuNjMyNSAwIDAtMS45NTA4IDAuNjQyMS0yLjg4NDIgMS40NjQ4LTAuNjA0ODYgMC40Nzc2My0xLjE0MjEgMS43Mzg3LTEuNTE2NyAyLjQxMS0xLjA2NjggMS45MTQ5LTEuMzg1NSAzLjcwNy0zLjQ1NTIgMy43ODY2LTAuMDAzMy0wLjIxMzA2LTAuMDAxNy0wLjg1NzQ4LTAuMDAxNi0wLjk2NjM1IDVlLTYgLTAuMDEwMiAwLjAzNTc3IDRlLTMgMC4yMzA0Mi0wLjA2MDMgMS43NjA0LTAuNTUxMDggMi4xNDM4LTEuMDUyNyAxLjgwNDgtMi43MDM2LTAuNzg5OTktNC40ODM0LTEuMTcwMi02LjA0NjQgMC43MTEyMy05Ljc4OCAxLjAyOTYtMi4wMzY5IDEuMTQwNi0yLjc5NjcgMS4xMzY3LTUuMjE1Mi0wLjAwNTItMS42NTE3LTAuNjM4MDYtNC4wNzMxLTEuMDgxNS0zLjg4NzItMC4yODU2OCAwLjA0MjAxLTAuMTExMjEgMC4wMjY3LTAuNjExODQgMS4xNDQ5LTAuNjI2ODcgMS40MDAyLTEuMTgxOCAzLjA4MDUtMi4xODk2IDMuMTg0OW04LjI0MjIgMC4xNzc2MWMwLjM2NDUtMS4wNjEyIDAuNDE4MzgtMS45MjUzIDAuNDE4MzgtMS45MjUzIDQuMWUtNSAtMWUtNSAtMS44MTgyIDEuOTg1OC0zLjEzMDkgMy41ODk1LTAuNjY4MzggMC44MTY1OC0xLjE4NTQgMi43MDc1LTEuMTg1NCAyLjcwNzUgMS41MTQyLTAuODY3MTggMy4yNjE0LTIuNjczNCAzLjg5NzktNC4zNzE2em0wLjY5MzE4LTMuNzk1NGMwLjExNTIxLTAuOTgyMDMtMC42MDQzNC0yLjYwOTYtMC43NDg3Mi0zLjA4MTUtMC44NDU2NC0yLjY1MjktMi45NDE4LTAuNDI1MjQtNC4yNjIxIDAuOTM1MjktMC4yOTE4NiAwLjMyNTA0LTAuMjk0MzUgMC4zOTUxMy0wLjA0MDYgMS4xNDI2IDAuNTIzMzMgMS41NDE0IDAuODIzNDcgMy44NDI0IDAuNzExOTUgNS40NTgybC0wLjEwNTQzIDEuNTI3N2MxLjUwNTktMi41NDU3IDQuMTU3My00LjA1MjUgNC40NDQ5LTUuOTgyNHptMi43OTk5LTMuODA0NmMwLjUxNTExLTIuNzE1NCAwLjIwMjY4LTUuNDUtMC43MjkxMy02LjM4MTgtMC41NzIwNi0wLjU3MjA2LTAuNzM0MTYtMC40MjM2NC0wLjg4MDMyIDAuMjIzNS0wLjQwNzE4IDEuODAyOC0yLjc1MzcgNC4zODE0LTIuMzczIDQuOTUxNCAwLjIxNTE1IDAuMzc3NTIgMC43Njc2MiAxLjI1NzEgMS4xMTE4IDIuMDY5NiAwLjQwODM4IDAuOTYzOTEgMC40NjczMyAxLjc0MzYgMC44Njc4MyAyLjMwMDMgMC44Mzc4OCAxLjA1NDkgMS45MS0yLjY4NjYgMi4wMDI4LTMuMTYzem0tMy40NTIyLTEzLjE0NWMtMC4yMDk0NyAxLjY4NzItMS4xMDkzIDMuOTQ1NC0zLjA2MzcgNC44OTA5LTAuNzE3ODIgMC40NzY0NSAwLjg1OTg4IDIuMDU1OSAwLjI5MDkxIDUuNTMwNy0wLjEwNDI4IDAuMzg3MjktMC40NTMzIDEuMDQ3OS0wLjMyMzE1IDEuMjMzOCAwLjkwNDY0IDAuMzYzMjMgMi45NzY0LTEuMjQwNSAzLjk4Mi0zLjcwMzYgMC4zNDY2Ni0wLjg0OTExIDAuOTczMTktMi41NDA2IDAuNjU5NjktNC4wMzc0LTAuMzk2NjktMS44OTM5LTEuNTk4Mi0zLjUyNjUtMS41NDU3LTMuOTE0NHptLTMuODMxIDMuOTM4YzAuODIzNDYgMC45Mzk0MiAzLjQ3NzctMS43NDYxIDMuMDE1NS00Ljk5OTktMC40MTgzNi0xLjQ5NDYtMS4wNjU0LTMuMjQyOC0xLjI1NDgtNC42NzQ2LTAuMTA2NDUtMC44MDUwNiAwLjA4MzQ4LTEuOTYxNy0wLjA0MDY2LTIuMDA4Mi00LjgxNDEgMS43NjMtNC41NTU0IDcuMzAwNy0xLjcyMDEgMTEuNjgzem00Ljk1NzktMTguNzM1Yy0xLjUxOTUgMC40MTM0NS0zLjMxOSAyLjIxNDMtNC42NDUxIDQuMjcwNy0xLjQyNTggMi4yMTExLTIuNCA1Ljg3OTUtMi40IDUuODc5NSAwLjMyMjExLTAuODExMjUgMS4xNzUtMi4xOTYzIDIuMDAzMy0yLjc3OCAwLjkyNjU3LTAuNjUwNjQgMS45NTg4LTEuMDE0IDEuOTU4OC0xLjAxNHMxLjE2Mi00LjU2ODEgMy4wODMtNi4zNTgzem0tOS40MTAyIDI5LjMzM2MtMS41MjczLTAuMTIyNC0zLjA5NzMtMS4wMTEyLTMuODE2OC0yLjMyODUtMC41NzIxMy0xLjAyMzEtMS4wODk4LTIuMjA5NC0xLjE1NDEtMy40MzMzLTAuMDkzNC0xLjc3OTcgMC4xNjcxLTIuNzA4OSAxLjYxODQtNS43NzMyIDEuMzM4LTIuODI0OSAxLjUxODItNC4xNTg1IDEuNTE4LTUuOTU4Ny0wLjQ2MjYyLTUuNzM3NC00LjI1NjYtMTEuNDIxLTguNTA4OS0xMi40NzcgMS41OTI5IDEuNDQ5OCAyLjQyMTcgMy4yNDYgMy4wNDA4IDUuMTkyNyAwLjM1NDUyIDEuMTI1NyAwLjU0MDY2IDIuMTIxOSAwLjU4NDk0IDMuMDU0NS0wLjk1MTI4IDguMjk0Mi01LjI1OTggMTAuMzIxLTUuOTc3OSAxOC4wMzQtMC4xOTIzNC0wLjMzMzYyLTAuNjU3MzEtMS41NjA4LTEuMjQ5NS0yLjM3NjYtMS4wODM3LTEuNDkyOS0yLjUxNDYtMi43MDUxLTIuNjQyNy0yLjgxMTcgMi45ODk3IDMuMzA0MyA0LjUzNDQgOS44NTk0LTAuMTkyNzcgMTQuMTYxIDIuNDEwNi0wLjE1Mjc4IDMuOTc3NSAyLjczNzUgMi44NjkzIDQuNzQ0MyA1LjAzODctNC4xNjU1IDEwLjI0NyAyLjMwMTkgNi4wNTM0IDYuNjMyNSAwIDAgMS45NTA4IDAuNjQyMSAyLjg4NDIgMS40NjQ4IDAuNjA0ODYgMC40Nzc2MyAxLjE0MjEgMS43Mzg3IDEuNTE2NyAyLjQxMSAxLjA2NjggMS45MTQ5IDEuMzg1NSAzLjcwNyAzLjQ1NTIgMy43ODY2IDAuMDAzMy0wLjIxMzA2IDAuMDAxNy0wLjg1NzQ4IDAuMDAxNi0wLjk2NjM1LTVlLTYgLTAuMDEwMi0wLjAzNTc3IDRlLTMgLTAuMjMwNDItMC4wNjAzLTEuNzYwNC0wLjU1MTA4LTIuMTQzOC0xLjA1MjctMS44MDQ4LTIuNzAzNiAwLjc4OTk5LTQuNDgzNCAxLjE3MDItNi4wNDY0LTAuNzExMjMtOS43ODgtMS4wMjk2LTIuMDM2OS0xLjE0MDYtMi43OTY3LTEuMTM2Ny01LjIxNTIgMC4wMDUyLTEuNjUxNyAwLjYzODA2LTQuMDczMSAxLjA4MTUtMy44ODcyIDAuMjg1NjggMC4wNDIwMSAwLjExMTIxIDAuMDI2NyAwLjYxMTg0IDEuMTQ0OSAwLjYyNjg3IDEuNDAwMiAxLjE4MTggMy4wODA1IDIuMTg5NiAzLjE4NDltLTguMjQyMiAwLjE3NzYxYy0wLjM2NDUtMS4wNjEyLTAuNDE4MzgtMS45MjUzLTAuNDE4MzgtMS45MjUzLTQuMWUtNSAtMWUtNSAxLjgxODIgMS45ODU4IDMuMTMwOSAzLjU4OTUgMC42NjgzOCAwLjgxNjU4IDEuMTg1NCAyLjcwNzUgMS4xODU0IDIuNzA3NS0xLjUxNDItMC44NjcxOC0zLjI2MTQtMi42NzM0LTMuODk3OS00LjM3MTZ6bS0wLjY5MzE4LTMuNzk1NGMtMC4xMTUyMS0wLjk4MjAzIDAuNjA0MzQtMi42MDk2IDAuNzQ4NzItMy4wODE1IDAuODQ1NjQtMi42NTI5IDIuOTQxOC0wLjQyNTI0IDQuMjYyMSAwLjkzNTI5IDAuMjkxODYgMC4zMjUwNCAwLjI5NDM1IDAuMzk1MTMgMC4wNDA2IDEuMTQyNi0wLjUyMzMzIDEuNTQxNC0wLjgyMzQ3IDMuODQyNC0wLjcxMTk1IDUuNDU4MmwwLjEwNTQzIDEuNTI3N2MtMS41MDU5LTIuNTQ1Ny00LjE1NzMtNC4wNTI1LTQuNDQ0OS01Ljk4MjR6bS0yLjc5OTktMy44MDQ2Yy0wLjUxNTExLTIuNzE1NC0wLjIwMjY4LTUuNDUgMC43MjkxMy02LjM4MTggMC41NzIwNi0wLjU3MjA2IDAuNzM0MTYtMC40MjM2NCAwLjg4MDMyIDAuMjIzNSAwLjQwNzE4IDEuODAyOCAyLjc1MzcgNC4zODE0IDIuMzczIDQuOTUxNC0wLjIxNTE1IDAuMzc3NTItMC43Njc2MiAxLjI1NzEtMS4xMTE4IDIuMDY5Ni0wLjQwODM4IDAuOTYzOTEtMC40NjczMyAxLjc0MzYtMC44Njc4MyAyLjMwMDMtMC44Mzc4OCAxLjA1NDktMS45MS0yLjY4NjYtMi4wMDI4LTMuMTYzem0zLjQ1MjItMTMuMTQ1YzAuMjA5NDcgMS42ODcyIDEuMTA5MyAzLjk0NTQgMy4wNjM3IDQuODkwOSAwLjcxNzgyIDAuNDc2NDUtMC44NTk4OCAyLjA1NTktMC4yOTA5MSA1LjUzMDcgMC4xMDQyOCAwLjM4NzI5IDAuNDUzMyAxLjA0NzkgMC4zMjMxNSAxLjIzMzgtMC45MDQ2NCAwLjM2MzIzLTIuOTc2NC0xLjI0MDUtMy45ODItMy43MDM2LTAuMzQ2NjYtMC44NDkxMS0wLjk3MzE5LTIuNTQwNi0wLjY1OTY5LTQuMDM3NCAwLjM5NjY5LTEuODkzOSAxLjU5ODItMy41MjY1IDEuNTQ1Ny0zLjkxNDR6bTMuODMxIDMuOTM4Yy0wLjgyMzQ2IDAuOTM5NDItMy40Nzc3LTEuNzQ2MS0zLjAxNTUtNC45OTk5IDAuNDE4MzYtMS40OTQ2IDEuMDY1NC0zLjI0MjggMS4yNTQ4LTQuNjc0NiAwLjEwNjQ1LTAuODA1MDYtMC4wODM0OC0xLjk2MTcgMC4wNDA2Ni0yLjAwODIgNC44MTQxIDEuNzYzIDQuNTU1NCA3LjMwMDcgMS43MjAxIDExLjY4M3ptLTQuOTU3OS0xOC43MzVjMS41MTk1IDAuNDEzNDUgMy4zMTkgMi4yMTQzIDQuNjQ1MSA0LjI3MDcgMS40MjU4IDIuMjExMSAyLjQgNS44Nzk1IDIuNCA1Ljg3OTUtMC4zMjIxMS0wLjgxMTI1LTEuMTc1LTIuMTk2My0yLjAwMzMtMi43NzgtMC45MjY1Ny0wLjY1MDY0LTEuOTU4OC0xLjAxNC0xLjk1ODgtMS4wMTRzLTEuMTYyLTQuNTY4MS0zLjA4My02LjM1ODN6IiBmaWxsPSIjMDYxYTJkIiBzdHJva2Utd2lkdGg9Ii4xNzA3MyIvPjxwYXRoIHRyYW5zZm9ybT0ibWF0cml4KC4yNjQ1OCAwIDAgLjI2NDU4IDY2LjYwNCA0Ni45NDUpIiBkPSJtODAuMzk1IDE0NS4wMXMwLjIxNDU4LTMuMDA4OCAwLjMzMzMyLTUuMTAyNGMwLjQxMDktNy4yNDQ4LTAuNDcwODMtMTQuNDQ5LTIuNjk2Mi0yMS41Mi0wLjcxNDM0LTIuMjY5Ny0wLjkwMDY0LTIuNDk5OC0wLjU1NTQ5LTMuMTU0MiAwLjMzMDAxLTAuNjI1NzkgNC44NTk3LTUuMjEgNi41NTQyLTYuNTg4MiAyLjQ2NzItMi4wMDY4IDUuMTE2Mi0yLjkzMzggNi43OTcyLTIuNDgwNCAwLjkwNTMxIDAuMjQ0MjEgMi4xNTM5IDEuMzYzIDIuNzQ1NiAyLjUzMDYgMC40NjUwNSAwLjkxNzczIDIuMjI1NCA2LjA1NjUgMi43NzIgNy42OTcyIDEuOTQ2OCA1Ljg0NCAxLjI5NTMgOS4wNDUxLTYuMTQxMiAxNi44NjYtNC45OTM2IDUuMjUyMS03LjA3NDkgNy41NjI2LTguODE5OSAxMC4yMTItMC42NzU3MiAxLjAyNi0wLjk4OTM5IDEuNTM5LTAuOTg5MzkgMS41Mzl6bS0zMy45NDUgMHMtMC4yMTQ1OC0zLjAwODgtMC4zMzMzMi01LjEwMjRjLTAuNDEwOS03LjI0NDggMC40NzA4My0xNC40NDkgMi42OTYyLTIxLjUyIDAuNzE0MzQtMi4yNjk3IDAuOTAwNjQtMi40OTk4IDAuNTU1NDktMy4xNTQyLTAuMzMwMDEtMC42MjU3OS00Ljg1OTctNS4yMS02LjU1NDItNi41ODgyLTIuNDY3Mi0yLjAwNjgtNS4xMTYyLTIuOTMzOC02Ljc5NzItMi40ODA0LTAuOTA1MzEgMC4yNDQyMS0yLjE1MzkgMS4zNjMtMi43NDU2IDIuNTMwNi0wLjQ2NTA1IDAuOTE3NzMtMi4yMjU0IDYuMDU2NS0yLjc3MiA3LjY5NzItMS45NDY4IDUuODQ0LTEuMjk1MyA5LjA0NTEgNi4xNDEyIDE2Ljg2NiA0Ljk5MzYgNS4yNTIxIDcuMDc0OSA3LjU2MjYgOC44MTk5IDEwLjIxMiAwLjY3NTcyIDEuMDI2IDAuOTg5MzkgMS41MzkgMC45ODkzOSAxLjUzOXoiIGZpbGw9IiNhMDFlM2EiLz48ZyBmaWxsPSIjZTE4ZTQyIj48cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguMjY0NTggMCAwIC4yNjQ1OCA2Ni42MDQgNDYuOTQ1KSIgZD0ibTgwLjI0OSA3My4yMjFjLTAuMzAzMTYtMC4zMjI5OC0xLjA3MDctMS41NTY2LTEuNjc5NS0yLjYzMjItNC40NzM3LTcuOTA0NS02LjUzODgtMTYuMTIxLTUuOTUyNC0yMy4wNjYgMC42NzU2Ny04LjAwMjEgNC42OTEzLTEzLjk5MyAxMS41MzctMTcuMzg4IDAuODU0MTktMC4zOTAwNyAxLjcxMzctMC43NjcwMiAyLjU5NjQtMS4wNjkyIDAgMCAwLjMwNDg5IDAuMjE0MjcgMC4xOTU1MiAwLjY2NzRsLTAuMTQyNjYgMy41Nzc1Yy0wLjA2ODUgMS43MTc4IDAuMDU2MSAyLjc1NzYgMC4xNTY1OSAzLjU5ODkgMC4xMjY3IDEuMDYwNyAwLjIzNTI3IDEuNTIyNSAwLjUyNDk3IDIuNzU0MiAwLjU2NzE5IDIuNDEyMyAxLjE4NTUgNS4yMDE3IDMuMTYzNiAxMS4xMDkgMC4yNDczOSAwLjczODc4IDAuOTk4MTEgMy41NTEyIDAuOTk4MTEgMy41NTEyIDEuMDkzOSA2LjY5MTItMS42NTIxIDEzLjMwOS01LjIzMDIgMTcuMDUzLTEuODE4MSAxLjg2NjMtMy4xMzM0IDIuNTY5NC00LjU1MzIgMi41NzIzLTAuODA0NjQgMC4xMTc1MS0xLjI2OTUtMC4zNTM1OS0xLjYxMzgtMC43MjgyNXptLTMzLjY1NSAwYzAuMzAzMTYtMC4zMjI5OCAxLjA3MDctMS41NTY2IDEuNjc5NS0yLjYzMjIgNC40NzM3LTcuOTA0NSA2LjUzODgtMTYuMTIxIDUuOTUyNC0yMy4wNjYtMC42NzU2Ny04LjAwMjEtNC42OTEzLTEzLjk5My0xMS41MzctMTcuMzg4LTAuODU0MTktMC4zOTAwNy0xLjcxMzctMC43NjcwMi0yLjU5NjQtMS4wNjkyIDAgMC0wLjMwNDg5IDAuMjE0MjctMC4xOTU1MiAwLjY2NzRsMC4xNDI2NiAzLjU3NzVjMC4wNjg1IDEuNzE3OC0wLjA1NjEgMi43NTc2LTAuMTU2NTkgMy41OTg5LTAuMTI2NyAxLjA2MDctMC4yMzUyNyAxLjUyMjUtMC41MjQ5NyAyLjc1NDItMC41NjcxOSAyLjQxMjMtMS4xODU1IDUuMjAxNy0zLjE2MzYgMTEuMTA5LTAuMjQ3MzkgMC43Mzg3OC0wLjk5ODExIDMuNTUxMi0wLjk5ODExIDMuNTUxMi0xLjA5MzkgNi42OTEyIDEuNjUyMSAxMy4zMDkgNS4yMzAyIDE3LjA1MyAxLjgxODEgMS44NjYzIDMuMTMzNCAyLjU2OTQgNC41NTMyIDIuNTcyMyAwLjgwNDY0IDAuMTE3NTEgMS4yNjk1LTAuMzUzNTkgMS42MTM4LTAuNzI4MjV6Ii8+PHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoLjI2NDU4IDAgMCAuMjY0NTggNjYuNjA0IDQ2Ljk0NSkiIGQ9Im03Mi4zNjEgNDAuNzczYzMuNTczMi0xNy4wMjYgMTUuMTgxLTM0LjY5MSAyNi42MTQtMzguMzY0IDAgMC0wLjczMzM1IDAuNzU4MTktMS4yNDU4IDEuMzE3Mi0zLjI3NzggMy41NzYyLTcuMjQzNyAxMi4wMTYtOS43MTE2IDIwLjM0Mi0wLjMzMDU1IDEuMTE1Mi0wLjYwNzUzIDIuMjczMS0wLjY4MTQ5IDIuMzcyOC0wLjA3Mzk2IDAuMDk5NzgtMC41MzYxIDAuMjYzNjQtMC45MDY4NSAwLjM5NTUzLTEuMDM2NiAwLjM2ODc3LTMuNjk4IDEuNzUzNS01LjM2NjUgMi43NTY1LTIuNTIzMiAxLjUxNjgtNC44NzY5IDQuMTgwOS03LjE3NzggOC4xMjM3LTAuMzg5NjEgMC42Njc2MS0xLjUyMiAzLjE3NzctMS41MjM3IDMuMDU2MXptLTE3Ljg3OCAwYy0zLjU3MzItMTcuMDI2LTE1LjE4MS0zNC42OTEtMjYuNjE0LTM4LjM2NCAwIDAgMC43MzMzNSAwLjc1ODE5IDEuMjQ1OCAxLjMxNzIgMy4yNzc4IDMuNTc2MiA3LjI0MzcgMTIuMDE2IDkuNzExNiAyMC4zNDIgMC4zMzA1NSAxLjExNTIgMC42MDc1MyAyLjI3MzEgMC42ODE0OSAyLjM3MjggMC4wNzM5NiAwLjA5OTc4IDAuNTM2MSAwLjI2MzY0IDAuOTA2ODUgMC4zOTU1MyAxLjAzNjYgMC4zNjg3NyAzLjY5OCAxLjc1MzUgNS4zNjY1IDIuNzU2NSAyLjUyMzIgMS41MTY4IDQuODc2OSA0LjE4MDkgNy4xNzc4IDguMTIzNyAwLjM4OTYxIDAuNjY3NjEgMS41MjIgMy4xNzc3IDEuNTIzNyAzLjA1NjF6Ii8+PHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoLjI2NDU4IDAgMCAuMjY0NTggNjYuNjA0IDQ2Ljk0NSkiIGQ9Im04MC4yIDE1Mi4wMWMwLjc2MzIzLTIuNjcyMyAyLjM4Mi02LjU1NzggMy41NTMzLTguMjIxIDAuODk5MzUtMS40MDU5IDEyLjIzMy0xNC40OTQgMTIuNDAyLTE0LjMyNSAwLjExMjE4IDAuMTEyMTgtMC40NDg0OSAzLjQ5NTUtMC44OTYzMSA1LjIxOTYtMS41NDY1IDUuOTUzOS03LjA0NzQgMTMuMDEtMTMuNTU3IDE3LjQyMy0wLjczNzkgMC41MDAyMy0xLjc3MjcgMS4xNzUxLTEuODMxNyAxLjE3NTEtMC4wNTg5OCAwIDAuMTc5NDYtMC43NjEzOSAwLjMyOTM2LTEuMjcxOHptLTMzLjU1NiAwYy0wLjc2MzIzLTIuNjcyMy0yLjM4Mi02LjU1NzgtMy41NTMzLTguMjIxLTAuODk5MzUtMS40MDU5LTEyLjIzMy0xNC40OTQtMTIuNDAyLTE0LjMyNS0wLjExMjE4IDAuMTEyMTggMC40NDg0OSAzLjQ5NTUgMC44OTYzMSA1LjIxOTYgMS41NDY1IDUuOTUzOSA3LjA0NzQgMTMuMDEgMTMuNTU3IDE3LjQyMyAwLjczNzkgMC41MDAyMyAxLjc3MjcgMS4xNzUxIDEuODMxNyAxLjE3NTEgMC4wNTg5OCAwLTAuMTc5NDYtMC43NjEzOS0wLjMyOTM2LTEuMjcxOHoiLz48L2c+PHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoLjI2NDU4IDAgMCAuMjY0NTggNjYuNjA0IDQ2Ljk0NSkiIGQ9Im0xMDAuNjkgMTIwLjQ2Yy0wLjgyNDg1LTAuNTU0MzMtMS40NDkyLTEuODU3OC0yLjUzMzYtNS40MTY5LTEuMDg2LTMuNTY0NS0xLjkzMTMtNS41MDE4LTQuMzU0OC05LjY4NjktMS4yODE1LTIuMjEyOS0xLjMyMjUtMi4yMzE1LTEuMjQ3OC0yLjg3NSAwLjEwNzgtMC45Mjg0NyAxLjIzNjYtMy4wMTQzIDMuNzU0Mi03LjA3MDcgMy41MTA0LTUuNjU1OSA0LjU5NzQtNy43NTI5IDUuNDA5OS0xMC43NDYgMC4zODY2Ny0xLjg2NzYgMC43NDkxOS0yLjMzMzggMS42NDk1LTIuMDgzIDAuNDI4NjYgMC4xMDc1OSAxLjczMDQgMS4yNzEzIDIuMjUyMiAxLjk4MjIgMi44MzYzIDMuODQ1OCAzLjk1MjMgMTIuMzQxIDIuNTY4MyAyMS4xOTItMC4zNjM1NyAyLjMyNTItMC43ODM0NiA0LjE4ODItMS43NTU1IDYuOTkxMy0xLjQ4OTEgNC4yOTQxLTMuMDA3NiA3LjEwNjktNC4yNzI1IDcuNzA3MS0wLjg4NjM4IDAuNTY5MjktMS4xOTE4IDAuMTAyNjItMS40NyA2ZS0zem0tNzQuNTQyIDBjMC44MjQ4NS0wLjU1NDMzIDEuNDQ5Mi0xLjg1NzggMi41MzM2LTUuNDE2OSAxLjA4Ni0zLjU2NDUgMS45MzEzLTUuNTAxOCA0LjM1NDgtOS42ODY5IDEuMjgxNS0yLjIxMjkgMS4zMjI1LTIuMjMxNSAxLjI0NzgtMi44NzUtMC4xMDc4LTAuOTI4NDctMS4yMzY2LTMuMDE0My0zLjc1NDItNy4wNzA3LTMuNTEwNC01LjY1NTktNC41OTc0LTcuNzUyOS01LjQwOTktMTAuNzQ2LTAuMzg2NjctMS44Njc2LTAuNzQ5MTktMi4zMzM4LTEuNjQ5NS0yLjA4My0wLjQyODY2IDAuMTA3NTktMS43MzA0IDEuMjcxMy0yLjI1MjIgMS45ODIyLTIuODM2MyAzLjg0NTgtMy45NTIzIDEyLjM0MS0yLjU2ODMgMjEuMTkyIDAuMzYzNTcgMi4zMjUyIDAuNzgzNDYgNC4xODgyIDEuNzU1NSA2Ljk5MTMgMS40ODkxIDQuMjk0MSAzLjAwNzYgNy4xMDY5IDQuMjcyNSA3LjcwNzEgMC44ODYzOCAwLjU2OTI5IDEuMTkxOCAwLjEwMjYyIDEuNDcgNmUtM3oiIGZpbGw9IiNhMDFlM2EiLz48cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguMjY0NTggMCAwIC4yNjQ1OCA2Ni42MDQgNDYuOTQ1KSIgZD0ibTgzLjYwNSAxMDIuNTdjLTAuMzY5MjItMC4wODQtMC41MTc3Mi0wLjExNTc5LTAuNTk4My0wLjIwMjA1LTAuMDIyMy0wLjAyMzktMC4wNjU4OS0wLjE2ODY5LTAuMDkwMDYtMC4zMDE3LTAuMDA5OS0wLjY5Njc5IDAuMDU4OTYtMC44OTAxIDAuNzI5NTgtMi42ODEyIDAuNTQ2NTYtMS40NTk4IDAuNjIzOTMtMS41ODgyIDAuNzUzNDQtMi41MzM0IDAuMzk1ODctMi44ODg5IDAuNDE2MjItNS42MzM1IDAuMTIzNjYtOC4yODUxLTAuMjMyNDItMi4xMDY1LTAuNTcwMjQtMy44MjUzLTEuMzM2MS02LjYyNjYtMC42NzcxNy0yLjQ3Ny0wLjg1MTM0LTMuMzU2LTAuNzQ5NzYtMy45NzExIDAuMTExMjQtMC42NzM1NyAwLjM3MTMtMS4wMDc1IDEuMTA2OC0xLjM4OTIgMS41NzQ0LTAuODE3MDMgMi45OS0xLjc3ODQgNC4zMTQ5LTMuMTM2IDEuNjE4LTEuNjU3OCAyLjg0NTQtMy40MjQzIDQuMDMyOC01LjcwNDQgMS4zNjc1LTIuNjI1OSAyLjEzMjYtNS41NjA0IDIuNjkwMy04LjQybDAuMTQ2ODQtMC45NzcgMC4xNzA5OSAwLjc1NjAzYzAuMTM5NzggMC42MTgwMSAwLjQ3MzI0IDEuMTczNiAxLjc3OTcgMy44MDY3IDAuNjE1NSAxLjI0MDUgMS4yODc2IDIuNjQwNiAxLjUwMzMgMy4xMjY3IDEuNDM2IDMuMjM2NCAyLjM0NyA2LjA4MTggMi42NDkgOC40MjEzIDAuMDk5MSAwLjc2Nzc0IDAuMDk3NiAzLjAwMjggOWUtMyAzLjg1OTItMC4zMTM1MyAzLjAxODQtMS4xMTA4IDYuMDYwNi0yLjUzNjEgOS42MjI3LTAuNTA2NjQgMS4yNjYyLTAuNzg4ODYgMS44MzgtMS4zNzQ4IDIuOTc5MS0xLjk5NDYgMy44ODQ4LTQuODE0IDcuMzI1Ni03LjgxODYgOS41NTg5LTAuNjA0MTYgMC40MDUxNi0xLjEzMyAwLjc5MTczLTEuODUwNCAxLjE2OTQtMS4xNTM3IDAuNjA3MjktMi41NjA2IDEuMDc5LTMuNjU2MyAwLjkyNzY0em0tNDAuMzY2IDBjMC4zNjkyMi0wLjA4NCAwLjUxNzcyLTAuMTE1NzkgMC41OTgzLTAuMjAyMDUgMC4wMjIzLTAuMDIzOSAwLjA2NTg5LTAuMTY4NjkgMC4wOTAwNi0wLjMwMTcgMC4wMDk5LTAuNjk2NzktMC4wNTg5Ni0wLjg5MDEtMC43Mjk1OC0yLjY4MTItMC41NDY1Ni0xLjQ1OTgtMC42MjM5My0xLjU4ODItMC43NTM0NC0yLjUzMzQtMC4zOTU4Ny0yLjg4ODktMC40MTYyMi01LjYzMzUtMC4xMjM2Ni04LjI4NTEgMC4yMzI0Mi0yLjEwNjUgMC41NzAyNC0zLjgyNTMgMS4zMzYxLTYuNjI2NiAwLjY3NzE3LTIuNDc3IDAuODUxMzQtMy4zNTYgMC43NDk3Ni0zLjk3MTEtMC4xMTEyNC0wLjY3MzU3LTAuMzcxMy0xLjAwNzUtMS4xMDY4LTEuMzg5Mi0xLjU3NDQtMC44MTcwMy0yLjk5LTEuNzc4NC00LjMxNDktMy4xMzYtMS42MTgtMS42NTc4LTIuODQ1NC0zLjQyNDMtNC4wMzI4LTUuNzA0NC0xLjM2NzUtMi42MjU5LTIuMTMyNi01LjU2MDQtMi42OTAzLTguNDJsLTAuMTQ2ODQtMC45NzctMC4xNzA5OSAwLjc1NjAzYy0wLjEzOTc4IDAuNjE4MDEtMC40NzMyNCAxLjE3MzYtMS43Nzk3IDMuODA2Ny0wLjYxNTUgMS4yNDA1LTEuMjg3NiAyLjY0MDYtMS41MDMzIDMuMTI2Ny0xLjQzNiAzLjIzNjQtMi4zNDcgNi4wODE4LTIuNjQ5IDguNDIxMy0wLjA5OTEgMC43Njc3NC0wLjA5NzYgMy4wMDI4LTllLTMgMy44NTkyIDAuMzEzNTMgMy4wMTg0IDEuMTEwOCA2LjA2MDYgMi41MzYxIDkuNjIyNyAwLjUwNjY0IDEuMjY2MiAwLjc4ODg2IDEuODM4IDEuMzc0OCAyLjk3OTEgMS45OTQ2IDMuODg0OCA0LjgxNCA3LjMyNTYgNy44MTg2IDkuNTU4OSAwLjYwNDE2IDAuNDA1MTYgMS4xMzMgMC43OTE3MyAxLjg1MDQgMS4xNjk0IDEuMTUzNyAwLjYwNzI5IDIuNTYwNiAxLjA3OSAzLjY1NjMgMC45Mjc2NHoiIGZpbGw9IiNlMThlNDIiLz48cGF0aCBkPSJtODQuODUgODEuMzkzYzAuODU5MDctMi4xNjEgMS4wOTQyLTIuNjM2NCAxLjE2Ni0yLjcxOTYgMC4wNTc2OC0wLjA2Njc0IDAuMjU0NDYtMC4xMDA3MiAwLjMzNTc3LTAuMDI2ODkgMC41MzA0MSAwLjQ4MTU4IDAuOTk2IDIuODQ2NCAwLjkxMTY2IDQuNjQyOS0xLjk4ZS00IDEuOTk2OC0wLjExMjI5IDIuMzAyOC0wLjk3Njg3IDQuMTIwNi0wLjY2NTYyIDEuMzk5NS0xLjAwMjQgMi4xODg2LTEuMjIzNCAzLjAyMDktMC4xNzQxNSAwLjY1NjEtMC4yNTAwMiAwLjkzOTk5LTAuMjc2MzYgMS44ODM4LTAuMDM1MDMgMS4yNTQ4IDAuMDcxNTEgMi4wMjAyIDAuNDk2NzggNC4zNDIxIDAuMTExMTUgMC42NDE2OCAwLjI2MTMgMS4zOTU3IDAuMjUwMjcgMS43OTUtMC4wMDcxIDAuMjU4MTMtMC4wNDE4MSAwLjU4OTY4LTAuMjA3NjIgMC44MjE2My0wLjE3NTE0IDAuMjQ1MDEtMC40MDgyNiAwLjM4Njg4LTAuNTM1NjQgMC40NzEzNC0wLjE0OTk2IDAuMDk5NDMtMS4wMTQ4IDAuNDY4NTctMS40MDU1IDAuNTI0NDFsLTkuMjZlLTQgLTE3LjMyMmMwLjYyNzA0LTAuMDQwMTcgMS4yMTkxLTEuMDYyNCAxLjQ2NTgtMS41NTM5em0tMi45MzE5IDBjLTAuODU5MDctMi4xNjEtMS4wOTQyLTIuNjM2NC0xLjE2Ni0yLjcxOTYtMC4wNTc2OC0wLjA2Njc0LTAuMjU0NDYtMC4xMDA3Mi0wLjMzNTc3LTAuMDI2ODktMC41MzA0MSAwLjQ4MTU4LTAuOTk2IDIuODQ2NC0wLjkxMTY2IDQuNjQyOSAxLjk4ZS00IDEuOTk2OCAwLjExMjI5IDIuMzAyOCAwLjk3Njg3IDQuMTIwNiAwLjY2NTYyIDEuMzk5NSAxLjAwMjQgMi4xODg2IDEuMjIzNCAzLjAyMDkgMC4xNzQxNSAwLjY1NjEgMC4yNTAwMiAwLjkzOTk5IDAuMjc2MzYgMS44ODM4IDAuMDM1MDMgMS4yNTQ4LTAuMDcxNTEgMi4wMjAyLTAuNDk2NzggNC4zNDIxLTAuMTExMTUgMC42NDE2OC0wLjI2MTMgMS4zOTU3LTAuMjUwMjcgMS43OTUgMC4wMDcxIDAuMjU4MTMgMC4wNDE4MSAwLjU4OTY4IDAuMjA3NjIgMC44MjE2MyAwLjE3NTE0IDAuMjQ1MDEgMC40MDgyNiAwLjM4Njg4IDAuNTM1NjQgMC40NzEzNCAwLjE0OTk2IDAuMDk5NDMgMS4wMTQ4IDAuNDY4NTcgMS40MDU1IDAuNTI0NDFsOS4yNmUtNCAtMTcuMzIyYy0wLjYyNzA0LTAuMDQwMTctMS4yMTkxLTEuMDYyNC0xLjQ2NTgtMS41NTM5eiIgZmlsbD0iI2EwMWUzYSIvPjwvZz48Zmxvd1Jvb3QgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY2LjYwNCAtNDYuOTQ1KSIgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iNDBweCIgbGV0dGVyLXNwYWNpbmc9IjBweCIgd29yZC1zcGFjaW5nPSIwcHgiIHN0eWxlPSJsaW5lLWhlaWdodDoxLjI1IiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zmxvd1JlZ2lvbj48cmVjdCB4PSI0MzEiIHk9IjUyLjAyIiB3aWR0aD0iMTAuNSIgaGVpZ2h0PSIxMzQuNSIvPjwvZmxvd1JlZ2lvbj48Zmxvd1BhcmEvPjwvZmxvd1Jvb3Q+PC9zdmc+Cg=="},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(4),a=function(e){function t(t,n,o){var i=e.call(this,n,o)||this;return i.show=i.internalShow,i.set_text=function(e){i.action_element.innerText=e},i.render=function(){return r.DOM.createElement(s,null,r.DOM.createElement(l,null,i.action_element))},i.action_element=r.DOM.createElement("h3",null,t),i}return o(t,e),t}(n(6).DialogBase);function l(e){return r.DOM.createElement("div",{className:"dialog-body"})}function s(e){return r.DOM.createElement("div",{className:"r20es-dialog"})}t.LoadingDialog=a,t.DialogHeader=function(e){return r.DOM.createElement("div",{className:"dialog-header"})},t.DialogBody=l,t.DialogFooter=function(e){return r.DOM.createElement("div",{className:"dialog-footer"},r.DOM.createElement("hr",null))},t.DialogFooterContent=function(e){return r.DOM.createElement("div",{className:"dialog-footer-content"})},t.Dialog=s,t.CheckboxWithText=function(e){var t=i.copy(e,{style:{verticalAlign:"middle",marginRight:"4px"},type:"checkbox"}),n=r.DOM.createElement("input",t),o=t&&t.component||"div";return r.DOM.createElement(o,null,n,r.DOM.createElement("span",{style:{verticalAlign:"middle"}},t.checkboxText))}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(1),r=n(4),i=function(){function e(e,t,n){var r=this;this.success=!1,this.getRoot=function(){return r._root},this.getId=function(){return r._id},this.isSuccessful=function(){return r.success},this.setData=function(e){return r.returnData=e},window.r20esDialogId="r20esDialogId"in window?window.r20esDialogId:0,this.centerWorkaround=null!==n&&void 0!==n&&n,this._id="r20es-dialog-"+window.r20esDialogId++,this._root=o.DOM.createElement("dialog",{className:e,style:t,id:this.getId()}),document.body.insertBefore(this.getRoot(),document.body.firstElementChild),window.dialogPolyfill&&window.dialogPolyfill.registerDialog(this.getRoot()),this.close=this.close.bind(this),this.dispose=this.dispose.bind(this)}return e.prototype.internalRender=function(){var e=this;this.getRoot().appendChild(this.render()),window.dialogPolyfill&&window.dialogPolyfill.reposition(this.getRoot()),this.centerWorkaround&&setTimeout(function(){e.recenter()},100)},e.prototype.recenter=function(){},e.prototype.rerender=function(){r.removeAllChildren(this.getRoot()),this.internalRender()},e.prototype.internalShow=function(){r.removeAllChildren(this.getRoot()),this.success=!1,this.internalRender(),this.getRoot().showModal()},e.prototype.getData=function(){var e=this.returnData;return this.returnData=null,e},e.prototype.close=function(e){void 0===e&&(e=!1),this.success="boolean"==typeof e&&e,this.getRoot().open&&this.getRoot().close()},e.prototype.dispose=function(){this.close(),r.findByIdAndRemove(this.getId())},e}();t.DialogBase=i},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(2),a=function(e){function t(t){var n=e.call(this)||this;return n.getValue=function(){return n.hook.config[n.configName]},n.getConfigView=function(){return n.configView},n.hook=t.hook,n.configName=t.configName,n.configView=n.hook.configView&&n.hook.configView[n.configName],n}return o(t,e),t.prototype.setValue=function(e){i.R20Module.getModule(this.hook.filename).setConfigValue(this.configName,e)},t}(r.DOM.ElementBase);t.ConfigEditBase=a},function(e,t,n){"use strict";t.__esModule=!0;var o=n(4),r=function(){function e(){}return e.getInternalData=function(){if(!("tokenContextMenu"in window.r20es)){window.r20es.tokenContextMenu={widgets:{},idTop:0}}return window.r20es.tokenContextMenu},e.addButton=function(t,n,o,r){void 0===r&&(r=void 0);var i=e.getInternalData(),a={id:"r20es-token-ctx-menu-button-"+i.idTop++,text:t,callback:n,options:r};i.widgets[o]=a},e.removeButton=function(t,n){var r=e.getInternalData().widgets;for(var i in r){var a=r[i];if(a.text===t&&a.callback===n)return o.findByIdAndRemove(a.id),delete r[i],!0}return!1},e}();t.TokenContextMenu=r},function(e,t,n){"use strict";t.__esModule=!0,t.TOKEN_CONTEXT_MENU_ORDER_ROLL_BULK_MACRO=0,t.TOKEN_CONTEXT_MENU_ORDER_HIT_DICE=1,t.TOKEN_CONTEXT_MENU_ORDER_CREATE_TOKEN_BY_URL=2,t.TOKEN_CONTEXT_MENU_ORDER_GET_TOKEN_IMAGE_URL=3,t.TOKEN_CONTEXT_MENU_ORDER_RESIZE_CUSTOM=4,t.TOKEN_CONTEXT_MENU_ORDER_RESIZE_FIT=5,t.TOKEN_CONTEXT_MENU_ORDER_NAME_COUNTER=6},function(e,t,n){"use strict";t.__esModule=!0;t.Config={appUrl:"https://app.roll20.net",websiteFeatureUrlTemplate:"https://justas-d.github.io/roll20-enhancement-suite/features#",website:"https://justas-d.github.io/roll20-enhancement-suite/",discordInvite:"https://discord.gg/pKxxvuM",contributeUrl:"https://justas-d.github.io/roll20-enhancement-suite/contribute.html"}},function(e,t,n){"use strict";t.__esModule=!0,t.promiseWait=function(e,t){return new Promise(function(n,o){setTimeout(function(){n(t)},e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=t.saveAs=window.saveAs||function(e){if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var t=function(){return e.URL||e.webkitURL||e},n=e.document.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in n,r=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),i=e.webkitRequestFileSystem,a=e.requestFileSystem||i||e.mozRequestFileSystem,l=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s=0,c=function(e){setTimeout(function(){"string"==typeof e?t().revokeObjectURL(e):e.remove()},4e4)},d=function(e,t,n){for(var o=(t=[].concat(t)).length;o--;){var r=e["on"+t[o]];if("function"==typeof r)try{r.call(e,n||e)}catch(e){l(e)}}},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},p=function l(p,h,m){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),m||(p=u(p));var f,g,M,y=this,b=p.type,N=!1,T=function(){d(y,"writestart progress write writeend".split(" "))},v=function(){if(g&&r&&"undefined"!=typeof FileReader){var n=new FileReader;return n.onloadend=function(){var e=n.result;g.location.href="data:attachment/file"+e.slice(e.search(/[,;]/)),y.readyState=y.DONE,T()},n.readAsDataURL(p),void(y.readyState=y.INIT)}(!N&&f||(f=t().createObjectURL(p)),g)?g.location.href=f:void 0===e.open(f,"_blank")&&r&&(e.location.href=f);y.readyState=y.DONE,T(),c(f)},k=function(e){return function(){if(y.readyState!==y.DONE)return e.apply(this,arguments)}},_={create:!0,exclusive:!1};if(y.readyState=y.INIT,h||(h="download"),o)return f=t().createObjectURL(p),void setTimeout(function(){n.href=f,n.download=h,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(n),T(),c(f),y.readyState=y.DONE});e.chrome&&b&&"application/octet-stream"!==b&&(M=p.slice||p.webkitSlice,p=M.call(p,0,p.size,"application/octet-stream"),N=!0),i&&"download"!==h&&(h+=".download"),("application/octet-stream"===b||i)&&(g=e),a?(s+=p.size,a(e.TEMPORARY,s,k(function(e){e.root.getDirectory("saved",_,k(function(e){var t=function(){e.getFile(h,_,k(function(e){e.createWriter(k(function(t){t.onwriteend=function(t){g.location.href=e.toURL(),y.readyState=y.DONE,d(y,"writeend",t),c(e)},t.onerror=function(){var e=t.error;e.code!==e.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(e){t["on"+e]=y["on"+e]}),t.write(p),y.abort=function(){t.abort(),y.readyState=y.DONE},y.readyState=y.WRITING}),v)}),v)};e.getFile(h,{create:!1},k(function(e){e.remove(),t()}),k(function(e){e.code===e.NOT_FOUND_ERR?t():v()}))}),v)}),v)):v()},h=p.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t||"download")}:(h.abort=function(){this.readyState=this.DONE,d(this,"abort")},h.readyState=h.INIT=0,h.WRITING=1,h.DONE=2,h.error=h.onwritestart=h.onprogress=h.onwrite=h.onabort=h.onerror=h.onwriteend=null,function(e,t,n){return new p(e,t,n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||(void 0).content);t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var o=n(1),r=function(){function e(){this.tabs=[],this.tabsById={},this.idTop=0,this.rescanFunc=void 0}return e.prototype.addTab=function(e){this.tabs.push(e),this.tabsById[e.id]=e},e.prototype.removeTab=function(e){delete this.tabsById[e.id];for(var t=this.tabs.length;t-- >0;){this.tabs[t].id===e.id&&this.tabs.splice(t,1)}},e}();t.InternalSheetTabData=r;var i=function(){function e(e,t){this.parent=e,this.characterId=t}return e.prototype.rerender=function(){var e=this;this.root=o.DOM.rerender(this.root,function(){return e.parent.renderFx(e)})},e}();t.SheetTabSheetInstanceData=i;var a=function(){function e(e,t,n,o){this.byIdSheetData={},this._elements=[],this.name=e,this.renderFx=t,this.id=n,this._contentRoot=null,this.onShow=o}return e.prototype.getInstanceData=function(e){return e in this.byIdSheetData||(this.byIdSheetData[e]=new i(this,e)),this.byIdSheetData[e]},e.prototype._addElem=function(e){this._elements.push(e)},e._getInternalData=function(){return"sheetTabData"in window.r20es||(window.r20es.sheetTabData=new r),window.r20es.sheetTabData},e.add=function(t,n,o,r){var i=e._getInternalData(),a=new e(t,n,"r20es-character-sheet-tab-"+i.idTop++,o);return a.predicate=r,i.addTab(a),"function"==typeof i.rescanFunc&&i.rescanFunc(a),a},e.prototype.dispose=function(){this._elements.forEach(function(e){return e.remove()}),this._elements=[],e._getInternalData().removeTab(this)},e}();t.SheetTab=a},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t,n){var o=n(e),r=n(t);return o<r?-1:o>r?1:0}},function(e,t,n){"use strict";t.__esModule=!0;var o=function(){function e(e,t,n){this._isSubscribed=!1,this._name=e,this._callback=t,this._targetGetter=n}return e.subscribe=function(t,n,o){var r=new e(t,n,o);return r.subscribe(),r},e.prototype.subscribe=function(){if(!this._isSubscribed){var e=this._targetGetter();"on"in e?e.on(this._name,this._callback):e.addEventListener(this._name,this._callback),this._isSubscribed=!0}},e.prototype.unsubscribe=function(){if(this._isSubscribed){var e=this._targetGetter();"off"in e?e.off(this._name,this._callback):e.removeEventListener(this._name,this._callback),this._isSubscribed=!1}},e}();t.EventSubscriber=o},function(e,t,n){"use strict";var o;t.__esModule=!0;var r=n(3);t.layerInfo=((o={})[r.R20.CanvasLayer.Map]={bigTxt:"Page Background",txt:"MP",bgColors:[255,255,0],toolName:"choosemap"},o[r.R20.CanvasLayer.PlayerTokens]={bigTxt:"Tokens (Player Visible)",txt:"TK",bgColors:[255,0,0],toolName:"chooseobjects"},o[r.R20.CanvasLayer.GMTokens]={bigTxt:"Game Master Tokens",txt:"GM",bgColors:[0,255,0],toolName:"choosegmlayer"},o[r.R20.CanvasLayer.Lighting]={bigTxt:"Lighting",txt:"LG",bgColors:[0,255,255],toolName:"choosewalls"},o[r.R20.CanvasLayer.B20Foreground]={bigTxt:"Page Foreground",txt:"FG",bgColors:[229,137,25],toolName:"chooseforeground"},o[r.R20.CanvasLayer.B20Weather]={bigTxt:"Weather",txt:"WH",bgColors:[65,24,229],toolName:"chooseweather"},o[r.R20.CanvasLayer.B20Background]={bigTxt:"B20 Background",txt:"BG",bgColors:[208,69,247],toolName:"choosebackground"},o),t.makeLayerButtonSelector=function(e){return"#editinglayer li."+e.toolName}},function(e,t,n){"use strict";t.__esModule=!0;var o=function(){return function(e){var t=this;this.isSome=function(){return!0},this.isNone=function(){return!1},this.unwrap=function(){return t.data},this.data=e}}();t.Some=o;var r=function(){return function(){this.isSome=function(){return!1},this.isNone=function(){return!0},this.unwrap=function(){throw new Error("Tried to unwrap a None value")}}}();t.None=r;var i=function(){return function e(t){var n=this;this.ok=function(){return new r},this.err=function(){return new o(n.error)},this.isOk=function(){return!1},this.isErr=function(){return!0},this.map=function(){return new e(n.error)},this.error=t}}();t.Err=i;var a=function(){return function(e){var t=this;this.ok=function(){return new o(t.data)},this.err=function(){return new r},this.isOk=function(){return!0},this.isErr=function(){return!1},this.map=function(){return new i(t.data)},this.data=e}}();t.Ok=a},function(e,t,n){"use strict";t.__esModule=!0,t.default={TableIdAttribute:"data-r20es-table-id"}},function(e,t,n){"use strict";t.__esModule=!0,t.DIALOG_OPEN_DELAY_KEY="DIALOG_OPEN_DELAY_KEY"},function(e,t,n){"use strict";t.__esModule=!0,t.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY="passiveGMLayerOpacity"},function(e,t,n){"use strict";t.__esModule=!0,t.TOKEN_FROM_IMG_BUTTON_NAME="Create Token from URL",t.TOKEN_GET_URL="Copy Token Image URL",t.TOKEN_FROM_ANIMATED_TOKEN_KEY="r20es-is-animated-token"},function(e,t,n){"use strict";t.__esModule=!0,t.default={TABLE_ENTRY_ID_ATTRIBUTE:"r20es-set-entry-url-table-entry-id",TABLE_ID_ATTRIBUTE:"r20es-set-entry-url-table-id"}},function(e,t,n){"use strict";t.__esModule=!0,t.RADIUS_MODE_BURST=0,t.RADIUS_MODE_BLAST=1,t.BOX_MODE_BURST=0,t.BOX_MODE_BLAST=1,t.CONE_MODE_FLAT=0,t.CONE_MODE_ROUNDED=1,t.LINE_MODE_TOTAL_WIDTH=0,t.LINE_MODE_WIDTH_TO_EDGE=1,t.RULER_NORMAL=0,t.RULER_RADIUS=1,t.RULER_CONE=2,t.RULER_BOX=3,t.RULER_LINE=4},function(e,t,n){"use strict";var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};t.__esModule=!0;var r=function(){function e(){}return e.status_span_base={visibility:"visible",background:"#e44949",color:"white",padding:"4px","border-radius: ":"5px","font-weight":"bold","border-radius":"4px",height:"1.4em","text-align":"center"},e.error_span=o({},e.status_span_base,{background:"#e44949"}),e.success_span=o({},e.status_span_base,{background:"rgb(91, 177, 10)"}),e.progress_span=o({},e.status_span_base,{background:"rgb(212, 186, 55)"}),e}();t.CommonStyle=r},function(e,t,n){"use strict";t.__esModule=!0,t.scaleToFit=function(e,t,n,o){var r=e/t,i=r*o;return i>n?{x:n,y:n/r}:{x:i,y:o}}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(27);t.isChromium=function(){var e=o.default();return"chrome"===e.name||"opera"===e.name},t.doesBrowserNotSupportResponseFiltering=function(){var e=o.default();return console.log(e),!!t.isChromium()||"firefox"===e.name&&e.versionNumber<57}},function(e,t,n){"use strict";n.r(t),function(e){var n=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},o=[["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)$/],["edge",/Edge\/([0-9\._]+)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+)\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["safari",/Version\/([0-9\._]+).*Safari/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/]],r=["Windows Phone","Android","CentOS",{name:"Chrome OS",pattern:"CrOS"},"Debian","Fedora","FreeBSD","Gentoo","Haiku","Kubuntu","Linux Mint","OpenBSD","Red Hat","SuSE","Ubuntu","Xubuntu","Cygwin","Symbian OS","hpwOS","webOS ","webOS","Tablet OS","Tizen","Linux","Mac OS X","Macintosh","Mac","Windows 98;","Windows "],i={"10.0":"10",6.4:"10 Technical Preview",6.3:"8.1",6.2:"8",6.1:"Server 2008 R2 / 7","6.0":"Server 2008 / Vista",5.2:"Server 2003 / XP 64-bit",5.1:"XP",5.01:"2000 SP1","5.0":"2000","4.0":"NT","4.90":"ME"},a=new RegExp(["(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|","compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|","midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)","\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|","wap|windows ce|xda|xiino"].join(""),"i"),l=new RegExp(["1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|","ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|","avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|","cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|","ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|","g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|","hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|","i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|","kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])","|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|","mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|","n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|","op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|","po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|","raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|","se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|k\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|","so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|","tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|","veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|","w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-"].join(""),"i"),s=function(){function e(e,t,n){this.navigator=t,this.process=n,this.userAgent=e||(this.navigator?t.userAgent||t.vendor:"")}return e.prototype.detect=function(){if(this.process&&!this.userAgent){var e=this.process.version.slice(1).split(".").slice(0,3),t=Array.prototype.slice.call(e,1).join("")||"0";return{name:"node",version:e.join("."),versionNumber:parseFloat(e[0]+"."+t),mobile:!1,os:this.process.platform}}return this.userAgent||this.handleMissingError(),n({},this.checkBrowser(),this.checkMobile(),this.checkOs())},e.prototype.checkBrowser=function(){var e=this;return o.filter(function(t){return t[1].test(e.userAgent)}).map(function(t){var n=t[1].exec(e.userAgent),o=n&&n[1].split(/[._]/).slice(0,3),r=Array.prototype.slice.call(o,1).join("")||"0";return o&&o.length<3&&Array.prototype.push.apply(o,1===o.length?[0,0]:[0]),{name:String(t[0]),version:o.join("."),versionNumber:Number(o[0]+"."+r)}}).shift()},e.prototype.checkMobile=function(){var e=this.userAgent.substr(0,4);return{mobile:a.test(this.userAgent)||l.test(e)}},e.prototype.checkOs=function(){var e=this;return r.map(function(t){var n=t.name||t,o=e.getOsPattern(t);return{name:n,pattern:o,value:RegExp("\\b"+o.replace(/([ -])(?!$)/g,"$1?")+"(?:x?[\\d._]+|[ \\w.]*)","i").exec(e.userAgent)}}).filter(function(e){return e.value}).map(function(e){var t,n=e.value[0]||"";return e.pattern&&e.name&&/^Win/i.test(n)&&!/^Windows Phone /i.test(n)&&(t=i[n.replace(/[^\d.]/g,"")])&&(n="Windows "+t),e.pattern&&e.name&&(n=n.replace(RegExp(e.pattern,"i"),e.name)),n=n.replace(/ ce$/i," CE").replace(/\bhpw/i,"web").replace(/\bMacintosh\b/,"Mac OS").replace(/_PowerPC\b/i," OS").replace(/\b(OS X) [^ \d]+/i,"$1").replace(/\bMac (OS X)\b/,"$1").replace(/\/(\d)/," $1").replace(/_/g,".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i,"").replace(/\bx86\.64\b/gi,"x86_64").replace(/\b(Windows Phone) OS\b/,"$1").replace(/\b(Chrome OS \w+) [\d.]+\b/,"$1").split(" on ")[0].trim(),{os:n=/^(?:webOS|i(?:OS|P))/.test(n)?n:n.charAt(0).toUpperCase()+n.slice(1)}}).shift()},e.prototype.getOsPattern=function(e){var t=e;return("string"==typeof e?e:void 0)||t.pattern||t.name},e.prototype.handleMissingError=function(){throw new Error("Please give user-agent.\n> browser(navigator.userAgent or res.headers['user-agent']).")},e}();function c(e,t){return e(t={exports:{}},t.exports),t.exports}var d=c(function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)}),u=c(function(e){var t=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=t)}),p=(u.version,function(e){return"object"==typeof e?null!==e:"function"==typeof e}),h=function(e){if(!p(e))throw TypeError(e+" is not an object!");return e},m=function(e){try{return!!e()}catch(e){return!0}},f=!m(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),g=d.document,M=p(g)&&p(g.createElement),y=!f&&!m(function(){return 7!=Object.defineProperty(function(e){return M?g.createElement(e):{}}("div"),"a",{get:function(){return 7}}).a}),b=Object.defineProperty,N={f:f?Object.defineProperty:function(e,t,n){if(h(e),t=function(e,t){if(!p(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!p(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!p(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!p(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}(t,!0),h(n),y)try{return b(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},T=f?function(e,t,n){return N.f(e,t,function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}(1,n))}:function(e,t,n){return e[t]=n,e},v={}.hasOwnProperty,k=function(e,t){return v.call(e,t)},_=0,w=Math.random(),V=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++_+w).toString(36))},R=c(function(e){var t=V("src"),n=Function.toString,o=(""+n).split("toString");u.inspectSource=function(e){return n.call(e)},(e.exports=function(e,n,r,i){var a="function"==typeof r;a&&(k(r,"name")||T(r,"name",n)),e[n]!==r&&(a&&(k(r,t)||T(r,t,e[n]?""+e[n]:o.join(String(n)))),e===d?e[n]=r:i?e[n]?e[n]=r:T(e,n,r):(delete e[n],T(e,n,r)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[t]||n.call(this)})}),E=function(e,t,n){if(function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!")}(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}},U=function(e,t,n){var o,r,i,a,l=e&U.F,s=e&U.G,c=e&U.S,p=e&U.P,h=e&U.B,m=s?d:c?d[t]||(d[t]={}):(d[t]||{}).prototype,f=s?u:u[t]||(u[t]={}),g=f.prototype||(f.prototype={});for(o in s&&(n=t),n)i=((r=!l&&m&&void 0!==m[o])?m:n)[o],a=h&&r?E(i,d):p&&"function"==typeof i?E(Function.call,i):i,m&&R(m,o,i,e&U.U),f[o]!=i&&T(f,o,a),p&&g[o]!=i&&(g[o]=i)};d.core=u,U.F=1,U.G=2,U.S=4,U.P=8,U.B=16,U.W=32,U.U=64,U.R=128;var x=U,D={}.toString,S=function(e){return D.call(e).slice(8,-1)},O=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==S(e)?e.split(""):Object(e)},F=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e},Z=Math.ceil,j=Math.floor,W=Math.min,z=function(e){return e>0?W(function(e){return isNaN(e=+e)?0:(e>0?j:Z)(e)}(e),9007199254740991):0},I=Array.isArray||function(e){return"Array"==S(e)},L=c(function(e){var t=d["__core-js_shared__"]||(d["__core-js_shared__"]={});(e.exports=function(e,n){return t[e]||(t[e]=void 0!==n?n:{})})("versions",[]).push({version:u.version,mode:"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})}),C=c(function(e){var t=L("wks"),n=d.Symbol,o="function"==typeof n;(e.exports=function(e){return t[e]||(t[e]=o&&n[e]||(o?n:V)("Symbol."+e))}).store=t})("species"),A=function(e,t){return new(function(e){var t;return I(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!I(t.prototype)||(t=void 0),p(t)&&null===(t=t[C])&&(t=void 0)),void 0===t?Array:t}(e))(t)},Y=function(e,t){var n=1==e,o=2==e,r=3==e,i=4==e,a=6==e,l=5==e||a,s=t||A;return function(t,c,d){for(var u,p,h=function(e){return Object(F(e))}(t),m=O(h),f=E(c,d,3),g=z(m.length),M=0,y=n?s(t,g):o?s(t,0):void 0;g>M;M++)if((l||M in m)&&(p=f(u=m[M],M,h),e))if(n)y[M]=p;else if(p)switch(e){case 3:return!0;case 5:return u;case 6:return M;case 2:y.push(u)}else if(i)return!1;return a?-1:r||i?i:y}},Q=function(e,t){return!!e&&m(function(){t?e.call(null,function(){},1):e.call(null)})},B=Y(2);x(x.P+x.F*!Q([].filter,!0),"Array",{filter:function(e){return B(this,e,arguments[1])}});u.Array.filter;var G=Y(1);x(x.P+x.F*!Q([].map,!0),"Array",{map:function(e){return G(this,e,arguments[1])}});u.Array.map;var J="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff",H="["+J+"]",X=RegExp("^"+H+H+"*"),P=RegExp(H+H+"*$"),K=function(e,t,n){var o={},r=m(function(){return!!J[e]()||"​…"!="​…"[e]()}),i=o[e]=r?t(q):J[e];n&&(o[n]=i),x(x.P+x.F*r,"String",o)},q=K.trim=function(e,t){return e=String(F(e)),1&t&&(e=e.replace(X,"")),2&t&&(e=e.replace(P,"")),e};K("trim",function(e){return function(){return e(this,3)}});u.String.trim;var $="undefined"!=typeof window?window.navigator:void 0,ee=void 0!==e?e:void 0;t.default=function(e){return new s(e,$,ee).detect()}}.call(this,n(104))},function(e,t,n){"use strict";t.__esModule=!0;var o=function(e,t,n,o){-1===t?console.log("Tried to "+n+" but couldn't find object!",e,o):e.splice(t,1)};t.removeByReference=function(e,t){var n=e.findIndex(function(e){return e==t});o(e,n,"remove by reference",t)},t.removeOnceByPredicate=function(e,t){var n=e.findIndex(t);o(e,n,"remove once by predicate",t)}},function(e,t,n){var o;(function(){var n=this,r=n._,i={},a=Array.prototype,l=Object.prototype,s=Function.prototype,c=a.push,d=a.slice,u=a.concat,p=l.toString,h=l.hasOwnProperty,m=a.forEach,f=a.map,g=a.reduce,M=a.reduceRight,y=a.filter,b=a.every,N=a.some,T=a.indexOf,v=a.lastIndexOf,k=Array.isArray,_=Object.keys,w=s.bind,V=function(e){return e instanceof V?e:this instanceof V?void(this._wrapped=e):new V(e)};e.exports&&(t=e.exports=V),t._=V,V.VERSION="1.6.0";var R=V.each=V.forEach=function(e,t,n){if(null==e)return e;if(m&&e.forEach===m)e.forEach(t,n);else if(e.length===+e.length){for(var o=0,r=e.length;o<r;o++)if(t.call(n,e[o],o,e)===i)return}else{var a=V.keys(e);for(o=0,r=a.length;o<r;o++)if(t.call(n,e[a[o]],a[o],e)===i)return}return e};V.map=V.collect=function(e,t,n){var o=[];return null==e?o:f&&e.map===f?e.map(t,n):(R(e,function(e,r,i){o.push(t.call(n,e,r,i))}),o)};var E="Reduce of empty array with no initial value";V.reduce=V.foldl=V.inject=function(e,t,n,o){var r=arguments.length>2;if(null==e&&(e=[]),g&&e.reduce===g)return o&&(t=V.bind(t,o)),r?e.reduce(t,n):e.reduce(t);if(R(e,function(e,i,a){r?n=t.call(o,n,e,i,a):(n=e,r=!0)}),!r)throw new TypeError(E);return n},V.reduceRight=V.foldr=function(e,t,n,o){var r=arguments.length>2;if(null==e&&(e=[]),M&&e.reduceRight===M)return o&&(t=V.bind(t,o)),r?e.reduceRight(t,n):e.reduceRight(t);var i=e.length;if(i!==+i){var a=V.keys(e);i=a.length}if(R(e,function(l,s,c){s=a?a[--i]:--i,r?n=t.call(o,n,e[s],s,c):(n=e[s],r=!0)}),!r)throw new TypeError(E);return n},V.find=V.detect=function(e,t,n){var o;return U(e,function(e,r,i){if(t.call(n,e,r,i))return o=e,!0}),o},V.filter=V.select=function(e,t,n){var o=[];return null==e?o:y&&e.filter===y?e.filter(t,n):(R(e,function(e,r,i){t.call(n,e,r,i)&&o.push(e)}),o)},V.reject=function(e,t,n){return V.filter(e,function(e,o,r){return!t.call(n,e,o,r)},n)},V.every=V.all=function(e,t,n){t||(t=V.identity);var o=!0;return null==e?o:b&&e.every===b?e.every(t,n):(R(e,function(e,r,a){if(!(o=o&&t.call(n,e,r,a)))return i}),!!o)};var U=V.some=V.any=function(e,t,n){t||(t=V.identity);var o=!1;return null==e?o:N&&e.some===N?e.some(t,n):(R(e,function(e,r,a){if(o||(o=t.call(n,e,r,a)))return i}),!!o)};V.contains=V.include=function(e,t){return null!=e&&(T&&e.indexOf===T?-1!=e.indexOf(t):U(e,function(e){return e===t}))},V.invoke=function(e,t){var n=d.call(arguments,2),o=V.isFunction(t);return V.map(e,function(e){return(o?t:e[t]).apply(e,n)})},V.pluck=function(e,t){return V.map(e,V.property(t))},V.where=function(e,t){return V.filter(e,V.matches(t))},V.findWhere=function(e,t){return V.find(e,V.matches(t))},V.max=function(e,t,n){if(!t&&V.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);var o=-1/0,r=-1/0;return R(e,function(e,i,a){var l=t?t.call(n,e,i,a):e;l>r&&(o=e,r=l)}),o},V.min=function(e,t,n){if(!t&&V.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);var o=1/0,r=1/0;return R(e,function(e,i,a){var l=t?t.call(n,e,i,a):e;l<r&&(o=e,r=l)}),o},V.shuffle=function(e){var t,n=0,o=[];return R(e,function(e){t=V.random(n++),o[n-1]=o[t],o[t]=e}),o},V.sample=function(e,t,n){return null==t||n?(e.length!==+e.length&&(e=V.values(e)),e[V.random(e.length-1)]):V.shuffle(e).slice(0,Math.max(0,t))};var x=function(e){return null==e?V.identity:V.isFunction(e)?e:V.property(e)};V.sortBy=function(e,t,n){return t=x(t),V.pluck(V.map(e,function(e,o,r){return{value:e,index:o,criteria:t.call(n,e,o,r)}}).sort(function(e,t){var n=e.criteria,o=t.criteria;if(n!==o){if(n>o||void 0===n)return 1;if(n<o||void 0===o)return-1}return e.index-t.index}),"value")};var D=function(e){return function(t,n,o){var r={};return n=x(n),R(t,function(i,a){var l=n.call(o,i,a,t);e(r,l,i)}),r}};V.groupBy=D(function(e,t,n){V.has(e,t)?e[t].push(n):e[t]=[n]}),V.indexBy=D(function(e,t,n){e[t]=n}),V.countBy=D(function(e,t){V.has(e,t)?e[t]++:e[t]=1}),V.sortedIndex=function(e,t,n,o){for(var r=(n=x(n)).call(o,t),i=0,a=e.length;i<a;){var l=i+a>>>1;n.call(o,e[l])<r?i=l+1:a=l}return i},V.toArray=function(e){return e?V.isArray(e)?d.call(e):e.length===+e.length?V.map(e,V.identity):V.values(e):[]},V.size=function(e){return null==e?0:e.length===+e.length?e.length:V.keys(e).length},V.first=V.head=V.take=function(e,t,n){if(null!=e)return null==t||n?e[0]:t<0?[]:d.call(e,0,t)},V.initial=function(e,t,n){return d.call(e,0,e.length-(null==t||n?1:t))},V.last=function(e,t,n){if(null!=e)return null==t||n?e[e.length-1]:d.call(e,Math.max(e.length-t,0))},V.rest=V.tail=V.drop=function(e,t,n){return d.call(e,null==t||n?1:t)},V.compact=function(e){return V.filter(e,V.identity)};var S=function(e,t,n){return t&&V.every(e,V.isArray)?u.apply(n,e):(R(e,function(e){V.isArray(e)||V.isArguments(e)?t?c.apply(n,e):S(e,t,n):n.push(e)}),n)};V.flatten=function(e,t){return S(e,t,[])},V.without=function(e){return V.difference(e,d.call(arguments,1))},V.partition=function(e,t){var n=[],o=[];return R(e,function(e){(t(e)?n:o).push(e)}),[n,o]},V.uniq=V.unique=function(e,t,n,o){V.isFunction(t)&&(o=n,n=t,t=!1);var r=n?V.map(e,n,o):e,i=[],a=[];return R(r,function(n,o){(t?o&&a[a.length-1]===n:V.contains(a,n))||(a.push(n),i.push(e[o]))}),i},V.union=function(){return V.uniq(V.flatten(arguments,!0))},V.intersection=function(e){var t=d.call(arguments,1);return V.filter(V.uniq(e),function(e){return V.every(t,function(t){return V.contains(t,e)})})},V.difference=function(e){var t=u.apply(a,d.call(arguments,1));return V.filter(e,function(e){return!V.contains(t,e)})},V.zip=function(){for(var e=V.max(V.pluck(arguments,"length").concat(0)),t=new Array(e),n=0;n<e;n++)t[n]=V.pluck(arguments,""+n);return t},V.object=function(e,t){if(null==e)return{};for(var n={},o=0,r=e.length;o<r;o++)t?n[e[o]]=t[o]:n[e[o][0]]=e[o][1];return n},V.indexOf=function(e,t,n){if(null==e)return-1;var o=0,r=e.length;if(n){if("number"!=typeof n)return e[o=V.sortedIndex(e,t)]===t?o:-1;o=n<0?Math.max(0,r+n):n}if(T&&e.indexOf===T)return e.indexOf(t,n);for(;o<r;o++)if(e[o]===t)return o;return-1},V.lastIndexOf=function(e,t,n){if(null==e)return-1;var o=null!=n;if(v&&e.lastIndexOf===v)return o?e.lastIndexOf(t,n):e.lastIndexOf(t);for(var r=o?n:e.length;r--;)if(e[r]===t)return r;return-1},V.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;for(var o=Math.max(Math.ceil((t-e)/n),0),r=0,i=new Array(o);r<o;)i[r++]=e,e+=n;return i};var O=function(){};V.bind=function(e,t){var n,o;if(w&&e.bind===w)return w.apply(e,d.call(arguments,1));if(!V.isFunction(e))throw new TypeError;return n=d.call(arguments,2),o=function(){if(!(this instanceof o))return e.apply(t,n.concat(d.call(arguments)));O.prototype=e.prototype;var r=new O;O.prototype=null;var i=e.apply(r,n.concat(d.call(arguments)));return Object(i)===i?i:r}},V.partial=function(e){var t=d.call(arguments,1);return function(){for(var n=0,o=t.slice(),r=0,i=o.length;r<i;r++)o[r]===V&&(o[r]=arguments[n++]);for(;n<arguments.length;)o.push(arguments[n++]);return e.apply(this,o)}},V.bindAll=function(e){var t=d.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return R(t,function(t){e[t]=V.bind(e[t],e)}),e},V.memoize=function(e,t){var n={};return t||(t=V.identity),function(){var o=t.apply(this,arguments);return V.has(n,o)?n[o]:n[o]=e.apply(this,arguments)}},V.delay=function(e,t){var n=d.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},V.defer=function(e){return V.delay.apply(V,[e,1].concat(d.call(arguments,1)))},V.throttle=function(e,t,n){var o,r,i,a=null,l=0;n||(n={});var s=function(){l=!1===n.leading?0:V.now(),a=null,i=e.apply(o,r),o=r=null};return function(){var c=V.now();l||!1!==n.leading||(l=c);var d=t-(c-l);return o=this,r=arguments,d<=0?(clearTimeout(a),a=null,l=c,i=e.apply(o,r),o=r=null):a||!1===n.trailing||(a=setTimeout(s,d)),i}},V.debounce=function(e,t,n){var o,r,i,a,l,s=function(){var c=V.now()-a;c<t?o=setTimeout(s,t-c):(o=null,n||(l=e.apply(i,r),i=r=null))};return function(){i=this,r=arguments,a=V.now();var c=n&&!o;return o||(o=setTimeout(s,t)),c&&(l=e.apply(i,r),i=r=null),l}},V.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}},V.wrap=function(e,t){return V.partial(t,e)},V.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},V.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},V.keys=function(e){if(!V.isObject(e))return[];if(_)return _(e);var t=[];for(var n in e)V.has(e,n)&&t.push(n);return t},V.values=function(e){for(var t=V.keys(e),n=t.length,o=new Array(n),r=0;r<n;r++)o[r]=e[t[r]];return o},V.pairs=function(e){for(var t=V.keys(e),n=t.length,o=new Array(n),r=0;r<n;r++)o[r]=[t[r],e[t[r]]];return o},V.invert=function(e){for(var t={},n=V.keys(e),o=0,r=n.length;o<r;o++)t[e[n[o]]]=n[o];return t},V.functions=V.methods=function(e){var t=[];for(var n in e)V.isFunction(e[n])&&t.push(n);return t.sort()},V.extend=function(e){return R(d.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},V.pick=function(e){var t={},n=u.apply(a,d.call(arguments,1));return R(n,function(n){n in e&&(t[n]=e[n])}),t},V.omit=function(e){var t={},n=u.apply(a,d.call(arguments,1));for(var o in e)V.contains(n,o)||(t[o]=e[o]);return t},V.defaults=function(e){return R(d.call(arguments,1),function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])}),e},V.clone=function(e){return V.isObject(e)?V.isArray(e)?e.slice():V.extend({},e):e},V.tap=function(e,t){return t(e),e};var F=function(e,t,n,o){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof V&&(e=e._wrapped),t instanceof V&&(t=t._wrapped);var r=p.call(e);if(r!=p.call(t))return!1;switch(r){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if("object"!=typeof e||"object"!=typeof t)return!1;for(var i=n.length;i--;)if(n[i]==e)return o[i]==t;var a=e.constructor,l=t.constructor;if(a!==l&&!(V.isFunction(a)&&a instanceof a&&V.isFunction(l)&&l instanceof l)&&"constructor"in e&&"constructor"in t)return!1;n.push(e),o.push(t);var s=0,c=!0;if("[object Array]"==r){if(c=(s=e.length)==t.length)for(;s--&&(c=F(e[s],t[s],n,o)););}else{for(var d in e)if(V.has(e,d)&&(s++,!(c=V.has(t,d)&&F(e[d],t[d],n,o))))break;if(c){for(d in t)if(V.has(t,d)&&!s--)break;c=!s}}return n.pop(),o.pop(),c};V.isEqual=function(e,t){return F(e,t,[],[])},V.isEmpty=function(e){if(null==e)return!0;if(V.isArray(e)||V.isString(e))return 0===e.length;for(var t in e)if(V.has(e,t))return!1;return!0},V.isElement=function(e){return!(!e||1!==e.nodeType)},V.isArray=k||function(e){return"[object Array]"==p.call(e)},V.isObject=function(e){return e===Object(e)},R(["Arguments","Function","String","Number","Date","RegExp"],function(e){V["is"+e]=function(t){return p.call(t)=="[object "+e+"]"}}),V.isArguments(arguments)||(V.isArguments=function(e){return!(!e||!V.has(e,"callee"))}),V.isFunction=function(e){return"function"==typeof e},V.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},V.isNaN=function(e){return V.isNumber(e)&&e!=+e},V.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"==p.call(e)},V.isNull=function(e){return null===e},V.isUndefined=function(e){return void 0===e},V.has=function(e,t){return h.call(e,t)},V.noConflict=function(){return n._=r,this},V.identity=function(e){return e},V.constant=function(e){return function(){return e}},V.property=function(e){return function(t){return t[e]}},V.matches=function(e){return function(t){if(t===e)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0}},V.times=function(e,t,n){for(var o=Array(Math.max(0,e)),r=0;r<e;r++)o[r]=t.call(n,r);return o},V.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},V.now=Date.now||function(){return(new Date).getTime()};var Z={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};Z.unescape=V.invert(Z.escape);var j={escape:new RegExp("["+V.keys(Z.escape).join("")+"]","g"),unescape:new RegExp("("+V.keys(Z.unescape).join("|")+")","g")};V.each(["escape","unescape"],function(e){V[e]=function(t){return null==t?"":(""+t).replace(j[e],function(t){return Z[e][t]})}}),V.result=function(e,t){if(null!=e){var n=e[t];return V.isFunction(n)?n.call(e):n}},V.mixin=function(e){R(V.functions(e),function(t){var n=V[t]=e[t];V.prototype[t]=function(){var e=[this._wrapped];return c.apply(e,arguments),C.call(this,n.apply(V,e))}})};var W=0;V.uniqueId=function(e){var t=++W+"";return e?e+t:t},V.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var z=/(.)^/,I={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},L=/\\|'|\r|\n|\t|\u2028|\u2029/g;V.template=function(e,t,n){var o;n=V.defaults({},n,V.templateSettings);var r=new RegExp([(n.escape||z).source,(n.interpolate||z).source,(n.evaluate||z).source].join("|")+"|$","g"),i=0,a="__p+='";e.replace(r,function(t,n,o,r,l){return a+=e.slice(i,l).replace(L,function(e){return"\\"+I[e]}),n&&(a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),o&&(a+="'+\n((__t=("+o+"))==null?'':__t)+\n'"),r&&(a+="';\n"+r+"\n__p+='"),i=l+t.length,t}),a+="';\n",n.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{o=new Function(n.variable||"obj","_",a)}catch(e){throw e.source=a,e}if(t)return o(t,V);var l=function(e){return o.call(this,e,V)};return l.source="function("+(n.variable||"obj")+"){\n"+a+"}",l},V.chain=function(e){return V(e).chain()};var C=function(e){return this._chain?V(e).chain():e};V.mixin(V),R(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=a[e];V.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!=e&&"splice"!=e||0!==n.length||delete n[0],C.call(this,n)}}),R(["concat","join","slice"],function(e){var t=a[e];V.prototype[e]=function(){return C.call(this,t.apply(this._wrapped,arguments))}}),V.extend(V.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}}),void 0===(o=function(){return V}.apply(t,[]))||(e.exports=o)}).call(this)},function(e,t,n){"use strict";var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},r=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}},i=this;t.__esModule=!0;var a=n(5),l=n(11);t.import_multiple_files=function(e,t){var n=function(){return o(i,void 0,void 0,function(){var i,s,c,d,u,p,h,m,f,g,M,y,b,N,T,v=this;return r(this,function(k){switch(k.label){case 0:for(e.removeEventListener("change",n),e.files[0],i=0,s=[],c=[],d=function(){u.set_text("Importing "+i+"/"+c.length+" (Errors: "+s.length+")")},u=new a.LoadingDialog("Importing"),d(),u.show(),p=function(e,t){s.push("Error processing "+t+":\n\n"+e+".\n\nThat item has not been imported.")},h=function(e){return o(v,void 0,void 0,function(){var n;return r(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,t(e)];case 1:return o.sent(),i+=1,d(),[3,3];case 2:return n=o.sent(),p(n,e.name),[3,3];case 3:return[2]}})})},m=0,f=e.files;m<f.length;m++)g=f[m],M=h(g),c.push(M);return[4,Promise.all(c)];case 1:return k.sent(),y="",s.length>0&&(y="(with "+s.length+" errors)"),u.set_text("Done "+y+"!\nYour browser may freeze while Roll20 catches up with the influx of new items."),[4,l.promiseWait(100)];case 2:for(k.sent(),b=0,N=s;b<N.length;b++)T=N[b],alert(T);return u.dispose(),[2]}})})};e.click(),e.addEventListener("change",n)}},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(2),a=n(12),l=n(130),s=n(4),c=function(e){function t(t,n,o,i,l,c){var d=e.call(this,t)||this;return d.continueExporting=function(e){var t=d.serializeExportData(e),n=new Blob([t.json],{type:"data:application/json;charset=utf-8"});a.saveAs(n,t.filename)},d.onImportClick=function(e){e.stopPropagation();var t=r.DOM.createElement("input",{type:"file",accept:".json"}),n=function(){t.removeEventListener("change",n);var e=t.files[0];s.readFile(e).then(function(e){var t=d.tryDeserialize(e);if(t.isErr())throw new Error(t.err().unwrap());d.buffer=t.ok().unwrap(),d.showPickDialog(d.continueImporting,function(){return d.extra_drawing_above_table_import()})}).catch(alert)};t.click(),t.addEventListener("change",n)},d.onExportClick=function(e){e.stopPropagation();var t=d.getExportData();t.length<=0?alert("No data to be exported."):(d.buffer=t,d.showPickDialog(d.continueExporting,void 0))},d.object_name=l,d.widgetId=n,d.dialogClass=c,d.widgetTitle=o,d.pickDialogTitle=i,d}return o(t,e),t.prototype.showPickDialog=function(e,t){this.pickMacrosDialog.show(this.pickDialogTitle,this.object_name,this.buffer,this.nameGetter,this.descGetter,e,t)},t.prototype.setup=function(){this.pickMacrosDialog=new l.default(this.dialogClass);var e=r.DOM.createElement("div",{id:this.widgetId},r.DOM.createElement("div",null,r.DOM.createElement(r.SidebarCategoryTitle,null,this.widgetTitle),r.DOM.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},r.DOM.createElement("button",{className:"import btn",style:{marginRight:"8px",width:"100%"},onClick:this.onImportClick},"Import"),r.DOM.createElement("button",{className:"btn",style:{width:"100%"},onClick:this.onExportClick},"Export"))),r.DOM.createElement(r.SidebarSeparator,{big:"1px"}));this.injectWidget(e)},t.prototype.dispose=function(){this.pickMacrosDialog&&this.pickMacrosDialog.dispose(),s.findByIdAndRemove(this.widgetId),e.prototype.dispose.call(this)},t}(i.R20Module.OnAppLoadBase);t.IOModuleCommon=c},function(e,t,n){"use strict";t.__esModule=!0;var o,r=n(17);!function(e){e.parseRaw=function(e){var t;try{t=JSON.parse(e)}catch(e){return new r.Err(e)}return new r.Ok(t)},e.lookupStrategy=function(e,t){if(!("schema_version"in e))return new r.Err("schema_version property not found in JSON data.");var n=e.schema_version;return n in t?new r.Ok(t[n]):new r.Err("schema_version "+n+" doesn't have a parse strategy.")}}(o||(o={})),t.default=o},function(e,t,n){"use strict";t.__esModule=!0,t.LIBRE_AUDIO_TRACK_KEY="libreaudio"},function(e,t,n){"use strict";t.__esModule=!0,function(e){e.ADD="ADD",e.UPDATE_FIRST_MATCH="UPDATE_FIRST_MATCH"}(t.ImportStrategy||(t.ImportStrategy={}))},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation(),n.setValue(parseFloat(e.target.value))},n.internalRender=function(){var e=i.DOM.createElement("input",{style:{width:"90%"},onChange:n.onChange,className:"compact",type:"number",value:n.getValue()}),t=n.getConfigView();if(t){var o=t.numberMin,r=t.numberMax;void 0!==o&&(e.min=o),void 0!==r&&(e.max=r)}return e},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";t.__esModule=!0;var o=n(1);t.default=function(e){var t=e.url,n=e.description;return o.DOM.createElement("div",null,t.endsWith(".webm")?o.DOM.createElement("video",{autoplay:!0,loop:!0,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"cover",display:"block",margin:"auto"},src:t}):o.DOM.createElement("img",{style:{display:"block",margin:"auto"},src:t,alt:t}),o.DOM.createElement("p",{style:{textAlign:"center"}},n))}},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(4),a=n(10),l=n(36),s=n(163),c=function(e){function t(t){var n=t.listAllVersions,o=e.call(this)||this;o.preparedData=[],o.isLoading=!0,o.onClickLine=function(e){e.stopPropagation();var t=e.target.getAttribute("data-url");t&&window.open(t,"_blank")};var r=JSON.parse('{\n    "current": "1.28.19",\n    "versions": {\n        "1.4.0": {\n            "info": {\n                "title": "Night Mode & Fixes",\n                "media": "night_mode.png"\n            },\n            "changes": [\n                {\n                    "id": "nightMode",\n                    "content": "Added Night Mode. Enable it in the settings menu."\n                },\n                {\n                    "id": "",\n                    "content": "AlternatePageToolbarMenu: clicking on page text switches you to that page. Use right-click to rename the page."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed laggy compendiums: be more strict about which URLs are the editor."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed Hide Players module being disabled after every load."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed possible bugs caused by changing a setting of a disabled module."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed TokenResize settings media not being shown (thanks @ Nikolay for the report!)."\n                },\n                {\n                    "id": "",\n                    "content": "Possibly fixed a possible TokenEditor crash."\n                },\n                {\n                    "id": "",\n                    "content": "Update contributors"\n                }\n            ]\n        },\n        "1.3.4": {\n            "info": {\n                "title": "I Have 4 Browsers Open: The Update",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "R20ES now runs on Chromium fork browsers and FF 56. They are both on minimal support, meaning stuff will be broken and bug fixes will have lower priority for these platforms."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors"\n                }\n            ]\n        },\n        "1.3.3": {\n            "info": {\n                "title": "Minor Tweaks",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "DrawCurrentLayer: Fix improper drawing when switching to the light layer (thanks @Colorblind for the report)."\n                },\n                {\n                    "id": "",\n                    "content": "Changelog: Added history up to 1.3.0"\n                },\n                {\n                    "id": "",\n                    "content": "About: Dropped some names in there."\n                }\n            ]\n        },\n        "1.3.2": {\n            "info": {\n                "title": "Bug squashin\'",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "TokenEditor: add a special hint for when the user is not a GM."\n                },\n                {\n                    "id": "",\n                    "content": "TokenEditor: update bar current/max values when linking bar to an attribute."\n                },\n                {\n                    "id": "",\n                    "content": "TokenEditor: replace attribute dropdown with search box that autocompletes."\n                },\n                {\n                    "id": "",\n                    "content": "TokenEditor: sort attributes lexicographically (thanks @DoomRice for the report)."\n                },\n                {\n                    "id": "",\n                    "content": "TokenLayerDrawing: fix improper overlay positioning on mirrored tokens (thanks @DoomRice for the report)."\n                },\n                {\n                    "id": "",\n                    "content": "New welcome message."\n                },\n                {\n                    "id": "",\n                    "content": "Dialog: fix invalid success value when ESCaping out of a dialog"\n                },\n                {\n                    "id": "",\n                    "content": "Dialog: improved visuals, sizes."\n                },\n                {\n                    "id": "",\n                    "content": "TableIO: add a table repo URL to the paste dialog."\n                }\n            ]\n        },\n        "1.3.1": {\n            "info": {\n                "title": "Token editor bug fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed a typo in the token editor message for not having permissions to view the default token."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed a case where the token editor would not update the default token fully."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the token editor assuming the player cannot view the default token when the character simply doesn\'t have a default token."\n                }\n            ]\n        },\n        "1.3.0": {\n            "info": {\n                "title": "Token Editor Update",\n                "media": "token_editor.png"\n            },\n            "changes": [\n                {\n                    "id": "characterTokenModifier",\n                    "content": "Added Token Editor: a new character sheet tab for fast token editing."\n                },\n                {\n                    "id": "",\n                    "content": "Added the Hide Player List module: it hides the player list."\n                },\n                {\n                    "id": "",\n                    "content": "Added an option to use units instead of squares in TokenResize."\n                },\n                {\n                    "id": "",\n                    "content": "Added a checkbox to the TokenResize dialog for moving the current selection."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed TokenResize allowing the resizing of tokens to a size of 0."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed potential memory leak when disabling modules."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed player avatars in the alternative page toolbar menu."\n                }\n            ]\n        },\n        "1.4.1": {\n            "info": {\n                "title": "Night Mode Tweaks",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "NightMode: added an option for loading the OGL 5E night mode. Should improve compatibility with other sheets."\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: added an option for loading the chat message night mode style. Should improve compatibility with character sheets."\n                },\n                {\n                    "id": "",\n                    "content": "Lowered extension size (5MiB -> 350KiB!): settings media is no longer packaged with the extension and is now served from the website."\n                }\n            ]\n        },\n        "1.5.0": {\n            "info": {\n                "title": "Jukebox & Tools & Arrow keys",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added a tools menu. Can be found in the settings tab."\n                },\n                {\n                    "id": "",\n                    "content": "Tools: added bulk roll type setter for the OGL 5e sheet."\n                },\n                {\n                    "id": "",\n                    "content": "Added ArrowKeysMoveCanvas: allows moving the canvas camera with arrow keys when there is no default token selected. Try this out with the ruler tool!"\n                },\n                {\n                    "id": "",\n                    "content": "Added Jukebox playlist importing/exporting."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed NightMode not styling dialog footers"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed improver error messages when processing an invalid Character."\n                }\n            ]\n        },\n        "1.5.1": {\n            "info": {\n                "title": "JukeboxIO Optimization",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "JukeboxIO: optimized importing. It\'s pretty fr*ck1n f4st. (thanks @ Daj for the report!)"\n                }\n            ]\n        },\n        "1.5.2": {\n            "info": {\n                "title": "console.log: the update",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added a bunch of debug logging to very sensitive and critical sections of Chrome code."\n                },\n                {\n                    "id": "",\n                    "content": "Possibly™ Fixed™ a Bug™ on Chrome (thanks @ Angor de Redjak for the report & help!)"\n                }\n            ]\n        },\n        "1.6.0": {\n            "info": {\n                "title": "Scale Token Names & Auto Initiative Window",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added Scale Token Names by Size module"\n                },\n                {\n                    "id": "",\n                    "content": "Added Auto Open Initiative Tracker module"\n                },\n                {\n                    "id": "",\n                    "content": "NightMode(5e OGL): fix npc reaction header text color"\n                },\n                {\n                    "id": "",\n                    "content": "NightMode(5e OGL): fix unreadable text on NPC edit sheets, color adv btn"\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: tweak brand colors"\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: add baseStyle config option"\n                },\n                {\n                    "id": "",\n                    "content": "AlternativePageToolbarMenu: fix rename on empty spans, indent properly"\n                }\n            ]\n        },\n        "1.7.0": {\n            "info": {\n                "title": "Animated Backgrounds",\n                "media": "animated_bg.webm"\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added the Animated Backgrounds module."\n                },\n                {\n                    "id": "",\n                    "content": "Added the Remember Text Tool Settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Update contributors"\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: remove color reset on sheet containers"\n                },\n                {\n                    "id": "",\n                    "content": "CharacterTokenModifier: improved styling, added \'set\' button for names"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed DrawCurrentLayer being active when not a GM"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed size inconsistencies in TokenResize"\n                }\n            ]\n        },\n        "1.7.1": {\n            "info": {\n                "title": "Bugfix",\n                "media": "animated_bg.webm"\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Text tool settings no longer reflect selected text object properties when the remember text settings module is on. This can be disabled in the settings. (thanks @ Daj for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed changelog invalid media URLs in changelogs"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed scrolling in the changelog view."\n                }\n            ]\n        },\n        "1.7.2": {\n            "info": {\n                "title": "Wolf deterrent",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Renamed to VTT Enhancement Suite to avoid LAWSUITS"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed token editor not linking bars & not loading linked bar names"\n                }\n            ]\n        },\n        "1.7.3": {\n            "info": {\n                "title": "Token editor fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed the token editor repositioning tokens & setting random values (thanks RoscoMcqueen and Melty for the report!)"\n                }\n            ]\n        },\n        "1.7.4": {\n            "info": {\n                "title": "More token editor fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed token editor not properly setting name and represents id"\n                },\n                {\n                    "id": "",\n                    "content": "Token editor no longer sets current bar values for default tokens."\n                }\n            ]\n        },\n        "1.7.5": {\n            "info": {\n                "title": "Critical Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed a critical bug that prevented the extension & similar tools from working."\n                }\n            ]\n        },\n        "1.7.6": {\n            "info": {\n                "title": "Pagliacci",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added experimental Opera support"\n                }\n            ]\n        },\n        "1.7.7": {\n            "info": {\n                "title": "Night Mode Deprecation",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "NightMode is being phased out in favor of Red Reign\'s Dark Theme.",\n                    "urls": {\n                        "Grab it here": "https://github.com/RedReign/Roll20-Dark-Theme"\n                    }\n                },\n                {\n                    "id": "",\n                    "content": "Possibly fixed an issue when dragging in an image in the the token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors"\n                }\n            ]\n        },\n        "1.7.8": {\n            "info": {\n                "title": "Animated Background Audio",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: Add audio support + settings for audio. (thanks Ryan for pointing it out!)"\n                }\n            ]\n        },\n        "1.7.9": {\n            "info": {\n                "title": "Misc",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: position the button to be on the right of the canvas."\n                }\n            ]\n        },\n        "1.8.0": {\n            "info": {\n                "title": "Adjustable GM Opacity",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added adjustable GM layer opacity module."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors"\n                }\n            ]\n        },\n        "1.9.0": {\n            "info": {\n                "title": "Token From Image & friends",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added Token From Image: create tokens from images by right-clicking on the canvas."\n                },\n                {\n                    "id": "",\n                    "content": "Adjust some dialog menu sizes"\n                },\n                {\n                    "id": "",\n                    "content": "Added \'Sort Lexicographically\' to Macro Generator"\n                },\n                {\n                    "id": "",\n                    "content": "Added flip horizontal/vertical, rotation edits to the token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Improved bar editing in the token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors"\n                }\n            ]\n        },\n        "1.9.1": {\n            "info": {\n                "title": "Playlist fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed playlist importing not preserving the file structure."\n                }\n            ]\n        },\n        "1.9.2": {\n            "info": {\n                "title": "Minor tweak.",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added secret essay for mozilla addon reviewers."\n                },\n                {\n                    "id": "",\n                    "content": "AdjustableOpacity: disable by default"\n                }\n            ]\n        },\n        "1.9.3": {\n            "info": {\n                "title": "Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Auto Open Initiative Tracker: Added delay between roll & dialog open (should fix issues with some turns being missing, thanks Tielc)"\n                },\n                {\n                    "id": "",\n                    "content": "TokenContextMenuApi: limit the size of the injected element (thanks Giddy)"\n                },\n                {\n                    "id": "",\n                    "content": "Token Editor: Fixed an instance where the bar links would not be unset (thanks Grigdusher)"\n                }\n            ]\n        },\n        "1.9.4": {\n            "info": {\n                "title": "Super minor UI Tweak",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "JukeboxIO: Adjust wording on the UI widget (thanks, Ryan!)"\n                }\n            ]\n        },\n        "1.9.5": {\n            "info": {\n                "title": "Timing change",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Increased time before we panic dump scripts on chromium"\n                },\n                {\n                    "id": "",\n                    "content": "Added debug log dumping"\n                }\n            ]\n        },\n        "1.10.0": {\n            "info": {\n                "title": "Macro Generator Folders",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added foldering to the macro generator. You can now generate a macro that will spawn a list of action buttons in the chat!"\n                },\n                {\n                    "id": "",\n                    "content": "Character sheets: only show certain tabs if the user can edit the character."\n                }\n            ]\n        },\n        "1.10.1": {\n            "info": {\n                "title": "Macro Generator Folder tweak",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Macro Generator: whisper folders to character"\n                },\n                {\n                    "id": "",\n                    "content": "Macro Generator: show remaining/max spell slots in spell folders"\n                }\n            ]\n        },\n        "1.11.0": {\n            "info": {\n                "title": "Disable Player Drawing",\n                "media": "disable_drawing.png"\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added the Disable Player Drawing module which lets you chose which players can draw/write text."\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: remove all styling."\n                },\n                {\n                    "id": "",\n                    "content": "Settings: make Apply & Close prettier."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors."\n                }\n            ]\n        },\n        "1.12.0": {\n            "info": {\n                "title": "Hit Dice Macros & Table Entry Avatars by URL",\n                "media": "table_entry_by_url.png"\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added the Set Table Entry Avatar By URL module."\n                },\n                {\n                    "id": "",\n                    "content": "HitDice: Added support for optional custom macros."\n                },\n                {\n                    "id": "",\n                    "content": "NightMode: Added a link to RedReign\'s theme."\n                },\n                {\n                    "id": "",\n                    "content": "Settings: improve the options table visuals."\n                },\n                {\n                    "id": "",\n                    "content": "Settings: fix scroll being reset every time a module is selected."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors."\n                }\n            ]\n        },\n        "1.12.1": {\n            "info": {\n                "title": "Hit Dice Macros Tweak",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "HitDice: added an option to turn off inline roll summing for custom macros."\n                }\n            ]\n        },\n        "1.12.2": {\n            "info": {\n                "title": "Update Compatibility",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed various bugs introduced by the latest Roll20 update."\n                }\n            ]\n        },\n        "1.12.3": {\n            "info": {\n                "title": "Update Compatibility II",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "NightMode: repurpose into Force Background"\n                },\n                {\n                    "id": "",\n                    "content": "AdjustableOpacity: fixed it being broken."\n                },\n                {\n                    "id": "",\n                    "content": "AnimatedBackgroundLayer: fix background color issues (thanks, Knilk!)"\n                },\n                {\n                    "id": "",\n                    "content": "TokenLayerDrawing: fixed opacity issues (thanks, Dominic, Brother Sharp & guKing!)"\n                },\n                {\n                    "id": "",\n                    "content": "AnimatedBackgroundLayer: fixed background not autoplaying on chromium (thanks, Neverr!)"\n                }\n            ]\n        },\n        "1.12.4": {\n            "info": {\n                "title": "Update Compatibility III",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "AlternativeRadialMenu: support pause/play button"\n                }\n            ]\n        },\n        "1.12.5": {\n            "info": {\n                "title": "Update Compatibility IV",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "ScaleTokenNamesBySize: fix improper scaling (thanks, SmoothAsFelt!)"\n                }\n            ]\n        },\n        "1.12.6": {\n            "info": {\n                "title": "Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "TokenLayerDrawing: reworked context state management. Should fix rendering issues."\n                },\n                {\n                    "id": "",\n                    "content": "ScaleTokenNamesBySize: fixed improper scaling when having one of the checkbox settings turned off."\n                },\n                {\n                    "id": "",\n                    "content": "TableExport: fixed importing tables entrys with \'!\' in the name."\n                }\n            ]\n        },\n        "1.13.0": {\n            "info": {\n                "title": "Stability Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Chrome: rewrote boostrapping. Should help combat the Uh Oh issues. (thanks Axecleft, keablah, TEU_Snoopy!)"\n                },\n                {\n                    "id": "",\n                    "content": "Update contributors & testers"\n                }\n            ]\n        },\n        "1.14.0": {\n            "info": {\n                "title": "Libre Audio",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added Libre Audio: allows creating jukebox tracks by a URL."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors."\n                }\n            ]\n        },\n        "1.14.1": {\n            "info": {\n                "title": "Libre Audio Export Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Jukebox: fixed export/importing libeaudio tracks. (thanks, dunedain!)"\n                }\n            ]\n        },\n        "1.14.2": {\n            "info": {\n                "title": "Libre Audio Playback Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Libre Audio: fixed Roll20 thinking Libre Audio tracks are from Fanburst."\n                }\n            ]\n        },\n        "1.14.3": {\n            "info": {\n                "title": "Bulk Roll Type Setter fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "SheetRollTypeSetter: Fixed an issue where attributes weren\'t being properly set sometimes. (thanks, Maxell!)"\n                }\n            ]\n        },\n        "1.14.4": {\n            "info": {\n                "title": "Libre Audio Widget Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: fixed the Add By URL widget not appearing most of the time."\n                }\n            ]\n        },\n        "1.14.5": {\n            "info": {\n                "title": "Libre Audio Improvement",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: reworked the Add Track By URL dialog."\n                }\n            ]\n        },\n        "1.14.6": {\n            "info": {\n                "title": "Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "RememberTextToolSettings: fixed copy text on select being on when it shouldn\'t."\n                },\n                {\n                    "id": "",\n                    "content": "AlternativePageToolbar: shortened height."\n                },\n                {\n                    "id": "",\n                    "content": "LibreAudio: fixed instances where the dialog wouldn\'t show up."\n                }\n            ]\n        },\n        "1.14.7": {\n            "info": {\n                "title": "Get Token Image URL",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added a right click option to get the image URl of one or more tokens."\n                },\n                {\n                    "id": "",\n                    "content": "Token context menu options added by R20ES now appear in a consistent order."\n                }\n            ]\n        },\n        "1.14.8": {\n            "info": {\n                "title": "Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "TokenContextMenu: fixed context menu options not showing up"\n                },\n                {\n                    "id": "",\n                    "content": "MacroGenerator: fixed the dialog not showing up when an attribute name was empty"\n                }\n            ]\n        },\n        "1.15.0": {\n            "info": {\n                "title": "Small quality of life improvements",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added the \'Draw bars at the bottom\' module for tokens"\n                },\n                {\n                    "id": "",\n                    "content": "Character Token Editor: add support for the new bar permissions"\n                }\n            ]\n        },\n        "1.15.1": {\n            "info": {\n                "title": "Token bar & status adjustments",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Renamed the `Draw bars at the bottom` module to `Token Bar & Status Adjustments`"\n                },\n                {\n                    "id": "",\n                    "content": "Token bar & status adjustments: added opacity sliders for status icons on active/idle tokens"\n                },\n                {\n                    "id": "",\n                    "content": "Token bar & status adjustments: added an option to toggle drawing bars at the bottom"\n                },\n                {\n                    "id": "",\n                    "content": "Token bar & status adjustments: added an option to draw status icons outside of the token"\n                }\n            ]\n        },\n        "1.15.2": {\n            "info": {\n                "title": "Latest patch fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Token bar & status adjustments: removed bar position option"\n                },\n                {\n                    "id": "",\n                    "content": "Token bar & status adjustments: rename to Token status display adjustment"\n                },\n                {\n                    "id": "",\n                    "content": "Character Token Editor: added bar location"\n                }\n            ]\n        },\n        "1.15.3": {\n            "info": {\n                "title": "May 2nd update compatibility",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: fix playback & ui issues introduced by the May 2nd Roll20 update"\n                }\n            ]\n        },\n        "1.15.4": {\n            "info": {\n                "title": "dun goof",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: fix 1.15.3 not fixing the May 2nd Roll20 update breakage"\n                }\n            ]\n        },\n        "1.15.5": {\n            "info": {\n                "title": "More Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: fix possible crash during load"\n                }\n            ]\n        },\n        "1.15.6": {\n            "info": {\n                "title": "May 10th Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "TokenLayerDrawing: fixed the module not working after a Roll20 update."\n                }\n            ]\n        },\n        "1.15.7": {\n            "info": {\n                "title": "Please stop covering up my token",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Alternative Radial Menu: add auto width option that spaces the radial menu in such a way to not cover up the selected token."\n                }\n            ]\n        },\n        "1.15.8": {\n            "info": {\n                "title": "Character Token Modifier Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Character Token Modifier: Fixed a bug where the bar location dropdown would not display the proper value (thanks, Mike W, for reporting the issue!)"\n                },\n                {\n                    "id": "",\n                    "content": "Character Token Modifier: Added the Bar Type dropdown"\n                }\n            ]\n        },\n        "1.15.9": {\n            "info": {\n                "title": "Enormously Microscopic Bug Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed a possible issue when rendering dialogs"\n                }\n            ]\n        },\n        "1.15.10": {\n            "info": {\n                "title": "Bug Fixes & Small Improvement",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Background: Fixed the icon not appearing"\n                },\n                {\n                    "id": "",\n                    "content": "Animated Background: Added an valid/invalid URL indicator for video URLs."\n                },\n                {\n                    "id": "",\n                    "content": "Libre Audio: Fix improper disposal of the add track button"\n                },\n                {\n                    "id": "",\n                    "content": "Chrome: fixed the loading screen being shown for 6e+04 milliseconds"\n                }\n            ]\n        },\n        "1.15.11": {\n            "info": {\n                "title": "Fix Another Roll20 Update",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Background: Fixed the icon not appearing"\n                }\n            ]\n        },\n        "1.15.12": {\n            "info": {\n                "title": "Small Tweaks",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Alternative Radial Menu: Respect token rotation"\n                },\n                {\n                    "id": "",\n                    "content": "Animated Background: Add History Dropdown (suggested by Axecleft, thank you!)"\n                }\n            ]\n        },\n        "1.15.13": {\n            "info": {\n                "title": "Animated Background Zoom Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Background Layer: Fix improper scaling due to zoom (thank you, Ackerfe for the report!)"\n                }\n            ]\n        },\n        "1.15.14": {\n            "info": {\n                "title": "Animated Background CTRL+L Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Background Layer: Fix issues with CTRL+L."\n                },\n                {\n                    "id": "",\n                    "content": "Animated Background Layer: Preperation for some fun stuff."\n                },\n                {\n                    "id": "",\n                    "content": "Updated contributors"\n                }\n            ]\n        },\n        "1.15.15": {\n            "info": {\n                "title": "Quick Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Background Layer: Fix a case where the animated backgrounds would potentially not play at startup."\n                }\n            ]\n        },\n        "1.15.16": {\n            "info": {\n                "title": "Tiny Improvements",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: various dialog tweaks"\n                },\n                {\n                    "id": "",\n                    "content": "Libre Audio: various dialog tweaks"\n                },\n                {\n                    "id": "",\n                    "content": "Character Token Modifier: various dialog tweaks"\n                }\n            ]\n        },\n        "1.15.17": {\n            "info": {\n                "title": "November 5th Roll20 Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: Fix broken zooming due to Nov 5th Roll20 update"\n                }\n            ]\n        },\n        "1.15.18": {\n            "info": {\n                "title": "Don\'t reboot it just patch",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: deal with the Roll20 zoom update/rollback."\n                }\n            ]\n        },\n        "1.15.19": {\n            "info": {\n                "title": "Small Tweak",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "MacroIO: Add ability to overwrite first macro with same name (courtesy of gludington)"\n                }\n            ]\n        },\n        "1.15.21": {\n            "info": {\n                "title": "January 21st Roll20 Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animated Backgrounds: Fix broken zooming due to the January 21st Roll20 update."\n                }\n            ]\n        },\n        "1.15.22": {\n            "info": {\n                "title": "LibreAudio Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "LibreAudio: fixed audio playback not working as of 2020-03-31"\n                }\n            ]\n        },\n        "1.15.23": {\n            "info": {\n                "title": "Macro Generator Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Macro Generator: Fix NPC trait and reaction macro descriptions (thanks Rimane for the report!)"\n                }\n            ]\n        },\n        "1.15.24": {\n            "info": {\n                "title": "Token Status Display Adjustments fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Token Status Display Adjustments: Fix it from being broken (thanks Kendros for the report!)"\n                }\n            ]\n        },\n        "1.15.25": {\n            "info": {\n                "title": "Token Status Display Adjustments fix 2",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Token Status Display Adjustments: Fix it not initializing on player sessions (thanks Halvralf and HeadsetRuler for the report!)"\n                }\n            ]\n        },\n        "1.15.26": {\n            "info": {\n                "title": "Chrome Update Checker & Some Tweaks",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add an update checker for Chrome which will post a message in chat when a new update is out."\n                },\n                {\n                    "id": "",\n                    "content": "Uh Oh: Update the problem popup with some new updated troubleshooting directions."\n                },\n                {\n                    "id": "",\n                    "content": "Settings: Fix gray-ish description text color."\n                },\n                {\n                    "id": "",\n                    "content": "About: Tweak formatting"\n                }\n            ]\n        },\n        "1.15.27": {\n            "info": {\n                "title": "Fix Scale Token Names By Size Module",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix Scale Token Names By Size module not scaling nameplates. (thanks, seba1708 & Sabre Runner for the report!)"\n                }\n            ]\n        },\n        "1.15.29": {\n            "info": {\n                "title": "Roll & Apply Hit Dice Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix Roll & Apply Hit Dice module not setting token health."\n                }\n            ]\n        },\n        "1.15.30": {\n            "info": {\n                "title": "Fix Animated Backgrounds",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix improper animated background zooming."\n                }\n            ]\n        },\n        "1.15.31": {\n            "info": {\n                "title": "Settings Media Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed broken media in the settings menu. (thanks Niels_mit_e for the report!)"\n                }\n            ]\n        },\n        "1.15.32": {\n            "info": {\n                "title": "Fix Animation Disable Module",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix animations not being disabled as of 2020-10-20 (thanks pella, Anthony_ and ShaunSullivan for the report!)"\n                }\n            ]\n        },\n        "1.15.33": {\n            "info": {\n                "title": "Macro Generator for Pathfinder 2e",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added a macro generator for Pathfinder 2e sheets. (by Blesmol)"\n                }\n            ]\n        },\n        "1.15.34": {\n            "info": {\n                "title": "Pathfinder 2e Macro Generator improvement",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "PF2 Macro Generator: Add the ability to generate NPC attack macros."\n                }\n            ]\n        },\n        "1.15.35": {\n            "info": {\n                "title": "Alternative Page Toolbar Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed the alternative page toolbar having broken styling."\n                }\n            ]\n        },\n        "1.15.36": {\n            "info": {\n                "title": "2020-12-22 Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed the extension not loading properly as of 2020-12-22."\n                }\n            ]\n        },\n        "1.15.37": {\n            "info": {\n                "title": "Bug Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Duplicate Button: fix the \'Duplicate\' button in the journal context menu not doing anything. Thanks (Niztael, Nostros & osobuho for the report!)"\n                }\n            ]\n        },\n        "1.15.38": {\n            "info": {\n                "title": "Character Sheet Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix various character sheet tabs not appearing and breaking character sheets."\n                },\n                {\n                    "id": "",\n                    "content": "TokenLayerDrawing: fix possible renderer crash when VTTES is disabled."\n                }\n            ]\n        },\n        "1.15.39": {\n            "info": {\n                "title": "Revert Character Sheet Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Revert character sheet tab fix as Roll20 reverted theirs."\n                }\n            ]\n        },\n        "1.16": {\n            "info": {\n                "title": "Quality of Life Stuff + Sheet Tab Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added setting importing and exporting."\n                },\n                {\n                    "id": "",\n                    "content": "Added support for importing multiple characters or tables at the same time."\n                },\n                {\n                    "id": "",\n                    "content": "Fix character sheet tabs not showing up. (until Roll20 breaks it again)"\n                },\n                {\n                    "id": "",\n                    "content": "Adjusted styling in the character token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Various dialog styling fixes."\n                },\n                {\n                    "id": "",\n                    "content": "Cleaned up the character export/overwrite tab."\n                }\n            ]\n        },\n        "1.17.0": {\n            "info": {\n                "title": "Fixes and some new modules.",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add \'Hide Stuck Top-Left Tipsy Popups\' by Pharonix. Disabled by default as this will disable other popups. Use when needed."\n                },\n                {\n                    "id": "",\n                    "content": "Add Set Character Avatar From URL module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Libre Audio not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Remember Text Tool Settings not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Animation Disable for page toolbar not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Set Table Entry Avatar By Url not working."\n                }\n            ]\n        },\n        "1.17.1": {\n            "info": {\n                "title": "Loading screen fix.",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed the loading screens sometimes taking a big longer to load."\n                }\n            ]\n        },\n        "1.18": {\n            "info": {\n                "title": "UDL in the Character Token Editor",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add \'Updated Dynamic Lighting\' to the character token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Fix disable player drawing toggle button not appearing."\n                },\n                {\n                    "id": "",\n                    "content": "Fix bulk macro dialog stretching on Chrome."\n                },\n                {\n                    "id": "",\n                    "content": "Add an option to roll bulk rolls sequentially (disabled by default)."\n                }\n            ]\n        },\n        "1.19": {\n            "info": {\n                "title": "Handout Exporting",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added handout exporting & overwriting. (voted on by Patrons)"\n                },\n                {\n                    "id": "",\n                    "content": "Replaced the character importer with a handout & character importer."\n                },\n                {\n                    "id": "",\n                    "content": "Fix character sheets sometimes failing to load (thanks to SamuelDancing, DonnieSlash and Bernd for the report!)."\n                }\n            ]\n        },\n        "1.19.1": {\n            "info": {\n                "title": "Small Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Hide handout Export & Overwrite buttons when the module is disabled (thanks to KartoffelKaiser for the report!)."\n                }\n            ]\n        },\n        "1.20": {\n            "info": {\n                "title": "Default Camera Position Module",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added the Default Camera Position module. (voted on by Patrons)"\n                }\n            ]\n        },\n        "1.21": {\n            "info": {\n                "title": "Character Component Import/Export",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add character component (weapon, spell, item etc) importing/exporting (voted on by Patrons). This can be accessed in the export tab on character sheets."\n                },\n                {\n                    "id": "",\n                    "content": "Fix character overwriting for non-GMs (thanks, rhodenbarr, for the report!)"\n                }\n            ]\n        },\n        "1.22": {\n            "info": {\n                "title": "Handout Image From URL",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add the \'Set Handout Image From URL\' module (voted on by Patrons)."\n                },\n                {\n                    "id": "",\n                    "content": "Slight improvements to the \'Set Character Avatar From URL\' module."\n                }\n            ]\n        },\n        "1.22.1": {\n            "info": {\n                "title": "Quickfix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix a bug where Roll20 was failing to load for Firefox users without specific adblockers."\n                }\n            ]\n        },\n        "1.23": {\n            "info": {\n                "title": "Custom Line Widths + Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add the \\"Custom Line Widths\\" module (voted on by Patrons)."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the status icon menu overlapping with token bars (thanks, Que, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Make the \'set character avatar from URL\' button appear for non-gms (thanks, Alastor, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Update the dark mode script URL (thanks, Airaghast, for pointing it out!)"\n                },\n                {\n                    "id": "",\n                    "content": "Fix some typos."\n                }\n            ]\n        },\n        "1.24.0": {\n            "info": {\n                "title": "Extra Rulers & Token Counter",\n                "media": "extra_rulers.png"\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add Extra Rulers module (voted on by Patrons)."\n                },\n                {\n                    "id": "",\n                    "content": "Add Token Counter module (submitted by OLStefan)."\n                }\n            ]\n        },\n        "1.24.1": {\n            "info": {\n                "title": "Tweaks & Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Set Table Entry Avatarby URL: fix some urls not working (thanks, Qwert, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Extra Rulers: default to 1 rad for cones degrees."\n                },\n                {\n                    "id": "",\n                    "content": "Character Token Modifier: Show previous token image url."\n                },\n                {\n                    "id": "",\n                    "content": "Handout Image From URL: Show previous image url."\n                },\n                {\n                    "id": "",\n                    "content": "Set Table Entry Avatarby URL: Show previous image url."\n                },\n                {\n                    "id": "",\n                    "content": "Character Avatar From URL: Show previous image url."\n                }\n            ]\n        },\n        "1.25.0": {\n            "info": {\n                "title": "Bug Fixes & Userscript Prep",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Animation Disable: Fix token and radial menu animation disabling not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix a loading bug on chrome that made the page toolbar button disappear and the canvas to be invisible."\n                }\n            ]\n        },\n        "1.25.2": {\n            "info": {\n                "title": "Chrome Extension Bug Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix handout text editor dropdowns not showing. (thanks, Batdaf, for the report!)"\n                }\n            ]\n        },\n        "1.25.3": {\n            "info": {\n                "title": "Beyond20 Compatability Bug Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix Beyond20 rolls not being correctly formatted. (thanks, kiloforce, for the report!)"\n                }\n            ]\n        },\n        "1.25.4": {\n            "info": {\n                "title": "Popout Sheet & Chat Archive Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix character sheets not loading on Chrome. (thanks, Batdaf, fillin and Liam, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Fix chat archive not loading on Chrome. (thanks, Keldin145014, for the report!)"\n                }\n            ]\n        },\n        "1.25.5": {\n            "info": {\n                "title": "Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the animation disable module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the reassign default token id module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the duplicate button module not working (thanks, JoshLikesBeer and Scott, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Libre Audio fix."\n                },\n                {\n                    "id": "",\n                    "content": "Fix remember text tool settings module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix set table entry avatar from URL module not working (thanks, Jeff Brunner, for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Make the OK button on the changelog always appear at the bottom of the dialog."\n                }\n            ]\n        },\n        "1.25.6": {\n            "info": {\n                "title": "5e sheet NPC Bonus Actions",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added support for NPC Bonus Actions to the 5e sheet macro generator."\n                }\n            ]\n        },\n        "1.25.7": {\n            "info": {\n                "title": "Alternate Page Toolbar Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix spacing in the alternate page toolbar (thanks, Oldewyrm, for the report!)"\n                }\n            ]\n        },\n        "1.25.7.1": {\n            "info": {\n                "title": "Userscript Dialog Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix dialogs not working when using the userscript on Firefox (thanks, lucky13, for the report!)"\n                }\n            ]\n        },\n        "1.26": {\n            "info": {\n                "title": "Loading Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed VTTES not loading due to a Roll20 update."\n                }\n            ]\n        },\n        "1.26.1": {\n            "info": {\n                "title": "Duplicate Button Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the character and handout duplicate button not working (thanks, FaustMe, for the report!)"\n                }\n            ]\n        },\n        "1.26.2": {\n            "info": {\n                "title": "Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed a bunch of modules not working due to a Roll20 update."\n                }\n            ]\n        },\n        "1.26.3": {\n            "info": {\n                "title": "Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix some canvas modules not working (thanks, Lycaon1765, for the report!)"\n                }\n            ]\n        },\n        "1.26.4": {\n            "info": {\n                "title": "Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix Extra Rulers from breaking the page rendering."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Token Layer Drawing module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Scale Token Names By Size module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Remember Text Tool Settings module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix 1/4th of Animation Disable not working."\n                }\n            ]\n        },\n        "1.26.5": {\n            "info": {\n                "title": "Audio Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix audio tracks not playing (thanks JasonHunter and BigUglyFace for the report!)."\n                }\n            ]\n        },\n        "1.26.6": {\n            "info": {\n                "title": "Happy 2022!",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix extra rulers breaking the canvas rendering."\n                },\n                {\n                    "id": "",\n                    "content": "Fix libre audio not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix duplicate button not working."\n                }\n            ]\n        },\n        "1.26.7": {\n            "info": {\n                "title": "Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed modules not working"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the settings button not showing."\n                }\n            ]\n        },\n        "1.26.8": {\n            "info": {\n                "title": "More Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix various modules not working."\n                }\n            ]\n        },\n        "1.26.9": {\n            "info": {\n                "title": "More More Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix various modules not working."\n                }\n            ]\n        },\n        "1.26.10": {\n            "info": {\n                "title": "More^3 Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix various modules not working (thanks, Yorith the Dreamer, for the report!)"\n                }\n            ]\n        },\n        "1.26.11": {\n            "info": {\n                "title": "More^4 Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix various modules not working (thanks, Altia, for the report!)"\n                }\n            ]\n        },\n        "1.26.12": {\n            "info": {\n                "title": "Handout Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix handout dropdown menus not working (thanks, m4rc, for the report!)"\n                }\n            ]\n        },\n        "1.26.13": {\n            "info": {\n                "title": "Audio Fix & Others",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix audio playback not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix remember text tool settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix turn tracker modules."\n                }\n            ]\n        },\n        "1.26.14": {\n            "info": {\n                "title": "More Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix audio playback not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix turn tracker modules."\n                }\n            ]\n        },\n        "1.26.15": {\n            "info": {\n                "title": "Fixes (thanks, darthbeep, for the report!)",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Make the disable player drawings module fully load pages."\n                },\n                {\n                    "id": "",\n                    "content": "Make the disable player drawings module not be enabled by default for extra performance."\n                },\n                {\n                    "id": "",\n                    "content": "Make the character token modifier load all pages when updating all tokens."\n                },\n                {\n                    "id": "",\n                    "content": "Fix animation disable module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix initiative modules."\n                },\n                {\n                    "id": "",\n                    "content": "Fix remember text tool settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix set table entry avatar by URL module."\n                },\n                {\n                    "id": "",\n                    "content": "Show browser and VTTES version on the \'Uh Oh\' popup."\n                }\n            ]\n        },\n        "1.26.16": {\n            "info": {\n                "title": "Fixes & Tweaks",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Add a link to a hosting guide for animated backgrounds in the dialog menu."\n                },\n                {\n                    "id": "",\n                    "content": "Fix set table entry avatar by URL module not working."\n                }\n            ]\n        },\n        "1.26.17": {\n            "info": {\n                "title": "Module Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the duplicate button module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix audio not playing."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the set table entry from URL module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks LordRoseheart, Gebri and Lyra for the report!"\n                }\n            ]\n        },\n        "1.26.18": {\n            "info": {\n                "title": "More Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the extra rulers module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix libre audio."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the remember text tool settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the duplicate button module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix initiative tracker modules."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the animation disable module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the animated background layer module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, Andele3025, Maddie, Lyra and Oldewyrm for the report!"\n                }\n            ]\n        },\n        "1.26.19": {\n            "info": {\n                "title": "More^2 Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the set table entry avatar by url module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix remember text tool settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix libre audio."\n                },\n                {\n                    "id": "",\n                    "content": "Fix extra rulers."\n                },\n                {\n                    "id": "",\n                    "content": "Fix initiative modules."\n                },\n                {\n                    "id": "",\n                    "content": "Fix animation disable module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the animated background layer module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, Oldewyrm, Axecleft and Lyra for the report!"\n                }\n            ]\n        },\n        "1.26.20": {\n            "info": {\n                "title": "Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the duplicate button module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, L0st and Lyra, for the report!"\n                }\n            ]\n        },\n        "1.26.21": {\n            "info": {\n                "title": "Fix^2",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix set table entry avatar by url module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix libre audio."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, Bonesicord, for the report!"\n                }\n            ]\n        },\n        "1.26.22": {\n            "info": {\n                "title": "Fix^3",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix libre audio."\n                },\n                {\n                    "id": "",\n                    "content": "Fix set table entry avatar by url module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, serenitygrant and Diego W.M.C, for the report!"\n                }\n            ]\n        },\n        "1.26.23": {\n            "info": {\n                "title": "Fix^4",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the remember text tool settings module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the libre audio module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the extra rulers module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the animated background module."\n                },\n                {\n                    "id": "",\n                    "content": "Thanks, charlie ok, Oldewyrm, Axecleft and Teiroi for the report!"\n                }\n            ]\n        },\n        "1.26.24": {\n            "info": {\n                "title": "Fix^5",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Bunch of module fixes."\n                }\n            ]\n        },\n        "1.27.0": {\n            "info": {\n                "title": "Stability Improvements",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Some internal changes to hopefully improve stability across Roll20 updates."\n                }\n            ]\n        },\n        "1.27.1": {\n            "info": {\n                "title": "Minor Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix animation disable and remember text tool settings modules."\n                },\n                {\n                    "id": "",\n                    "content": "More internal changes for stability."\n                }\n            ]\n        },\n        "1.27.2": {\n            "info": {\n                "title": "Loading Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix VTTES not loading."\n                },\n                {\n                    "id": "",\n                    "content": "Thank you to everyone for reporting the issue!"\n                }\n            ]\n        },\n        "1.27.3": {\n            "info": {\n                "title": "Loading Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix extra rulers breaking the whole extension."\n                },\n                {\n                    "id": "",\n                    "content": "Fix Roll20 crashing if the cdn.userleap domain is blocked."\n                }\n            ]\n        },\n        "1.27.4": {\n            "info": {\n                "title": "More Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Some styling fixes."\n                },\n                {\n                    "id": "",\n                    "content": "Fix token layer drawing (thanks, ElementalSword, for the report!)."\n                },\n                {\n                    "id": "",\n                    "content": "Fix token bar position adjust."\n                },\n                {\n                    "id": "",\n                    "content": "Fix scale token names by size."\n                },\n                {\n                    "id": "",\n                    "content": "Fix change id when duplicating."\n                }\n            ]\n        },\n        "1.27.5": {\n            "info": {\n                "title": "Spring Cleaning",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix weird things happening to character attributes when importing a character (thanks, springwoods and Feistykitten, for the report!) "\n                },\n                {\n                    "id": "",\n                    "content": "Fix character importing requiring a page refresh sometimes for sheets to load on Firefox."\n                },\n                {\n                    "id": "",\n                    "content": "Tweaked the position of the toolbar button when the alternate toolbar menu module is on."\n                },\n                {\n                    "id": "",\n                    "content": "Add spaces to generated macros."\n                },\n                {\n                    "id": "",\n                    "content": "Styling fixes on the changelog popup."\n                }\n            ]\n        },\n        "1.27.6": {\n            "info": {\n                "title": "Small Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the token layer drawing module."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the change id when duplicating module."\n                }\n            ]\n        },\n        "1.27.7": {\n            "info": {\n                "title": "Hit Dice Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the hit dice module from not working until the token\'s character sheet has been opened (thanks, hightouch, for the report!)."\n                }\n            ]\n        },\n        "1.27.8": {\n            "info": {\n                "title": "Stupid Popup Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the stupid popup on the top left of your screen (BIG thank you to Keldin145014 for providing info on it!)"\n                },\n                {\n                    "id": "",\n                    "content": "Remove the \'Hide Tipsy Popup\' module."\n                }\n            ]\n        },\n        "1.28": {\n            "info": {\n                "title": "Character Ability Exporter",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added character ability importing and exporting. (thanks, Keldin145014, for the suggestion!)"\n                },\n                {\n                    "id": "",\n                    "content": "Display actions in the right order when exporting action components on PF2 sheets."\n                },\n                {\n                    "id": "",\n                    "content": "Remove the Sprig workaround."\n                }\n            ]\n        },\n        "1.28.1": {\n            "info": {\n                "title": "Loading Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed an issue that caused non Firefox browsers to barf when loading Roll20."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the Duplicate Button module causing issues."\n                }\n            ]\n        },\n        "1.28.2": {\n            "info": {\n                "title": "Loading Fix 2.0",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed a similar issue that caused non Firefox browsers to barf when loading Roll20."\n                }\n            ]\n        },\n        "1.28.3": {\n            "info": {\n                "title": "Radial Compact Mode Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the compact radial token menu not displaying attribute colors (thanks, Starblind, for the report!)"\n                }\n            ]\n        },\n        "1.28.4": {\n            "info": {\n                "title": "PDF Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed PDFs not properly loading on Chrome & Userscript."\n                }\n            ]\n        },\n        "1.28.5": {\n            "info": {\n                "title": "Token Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix the token layer drawing module not working."\n                },\n                {\n                    "id": "",\n                    "content": "Fix the custom token resize dialog being too big."\n                },\n                {\n                    "id": "",\n                    "content": "Disabled the scale token name module as updating it would be technically impractical in terms of performance."\n                },\n                {\n                    "id": "",\n                    "content": "Fix dialog text being unreadable in dark mode."\n                }\n            ]\n        },\n        "1.28.6": {\n            "info": {\n                "title": "Animated Backgrounds Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix token bars and names not rendering properly when the animated backgrounds module is enabled (thanks, ♠Hanzo♠ and Yussuma, for the report!)"\n                }\n            ]\n        },\n        "1.28.7": {\n            "info": {\n                "title": "Small Enhancement",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Make the Alternative Page toolbar draw behind popup dialogs."\n                }\n            ]\n        },\n        "1.28.8": {\n            "info": {\n                "title": "Rollable Table Export Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix \'Export\' button not showing up on rollable table dialogs (thanks, UndefinedSnail and Sparc0, for the report!)"\n                }\n            ]\n        },\n        "1.28.9": {\n            "info": {\n                "title": "Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fix animated backgrounds not rendering."\n                },\n                {\n                    "id": "",\n                    "content": "Fix token layer switching module."\n                },\n                {\n                    "id": "",\n                    "content": "Move the page toolbar, camera start position and animated background layer buttons to the left a bit."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed Roll20 sometimes not working if VTTES is disabled."\n                }\n            ]\n        },\n        "1.28.10": {\n            "info": {\n                "title": "Animated Background Opacity Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Implemented an experimental animatied background opacity bug fix."\n                }\n            ]\n        },\n        "1.28.11": {\n            "info": {\n                "title": "Extra Rulers & Token Select fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed the Extra Rulers UI not showing."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the \'Not selecting!\' UI not showing."\n                }\n            ]\n        },\n        "1.28.12": {\n            "info": {\n                "title": "Extra Rulers & Token Select fixes 2: Electric Boogaloo",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed Extra rulers and \'Not selecting!\' UI from showing due to Roll20 code reverts."\n                },\n                {\n                    "id": "",\n                    "content": "Added a revert failsafe for Extra Rulers and Token Layer Drawing."\n                }\n            ]\n        },\n        "1.28.13": {\n            "info": {\n                "title": "Small Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed animated backgrounds rendering on top of everything else."\n                },\n                {\n                    "id": "",\n                    "content": "Add some notes saying that other players need VTTES installed to hear libre audio and see animated backgrounds."\n                }\n            ]\n        },\n        "1.28.14": {\n            "info": {\n                "title": "Bug Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed extra rulers UI not showing up (thanks, \'i am goofy\', for the report!)"\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the \'Not Selecting!\' UI not showing up."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the \'Remember Text Tool\' module settings mirroring option not working."\n                }\n            ]\n        },\n        "1.28.15": {\n            "info": {\n                "title": "Arrow Key Movement Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed canvas arrow key movement breaking the token arrow key movement."\n                },\n                {\n                    "id": "",\n                    "content": "Added a \'Reset\' button to the Cone ruler UI."\n                }\n            ]\n        },\n        "1.28.16": {\n            "info": {\n                "title": "Some bug fixes and slight improvements",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Added a message saying that the preview UI is not supported for the time being."\n                },\n                {\n                    "id": "",\n                    "content": "Added an option to the force background color module to force change the backdrop color."\n                },\n                {\n                    "id": "",\n                    "content": "Added an option to the force background color module to only force change the backdrop and canvas colors when they are default values."\n                },\n                {\n                    "id": "",\n                    "content": "Added option to change the light color in the character token editor."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the force background color module from not setting the background color to the right color when animated backgrounds are on."\n                }\n            ]\n        },\n        "1.28.17": {\n            "info": {\n                "title": "Checkered Door/Window Fix (Chrome & Userscript Only)",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed assets being loaded at an invalid path on Chrome & Userscript (fixes checkered doors and windows)"\n                }\n            ]\n        },\n        "1.28.18": {\n            "info": {\n                "title": "Loading Fix",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed sometimes getting stuck on the loading screen."\n                }\n            ]\n        },\n        "1.28.19": {\n            "info": {\n                "title": "Bug Fixes",\n                "media": ""\n            },\n            "changes": [\n                {\n                    "id": "",\n                    "content": "Fixed context menus not showing up when right-clicking on empty space (Roll20 bug)."\n                },\n                {\n                    "id": "",\n                    "content": "Fixed the macro generator module font color being unreadable in dark mode."\n                },\n                {\n                    "id": "",\n                    "content": "Rebound Extra Rulers hotkeys that start with q to start with g instead."\n                },\n                {\n                    "id": "",\n                    "content": "Listed available hotkeys on the extra rulers module description."\n                }\n            ]\n        }\n    }\n}\n');if(n)for(var i in r.versions)o.prepareChanges(r.versions[i],i);else{var a=r.versions[r.current];o.prepareChanges(a,r.current)}return o.preparedData.sort(function(e,t){return s(t.semverString,e.semverString)}),o}return o(t,e),t.prototype.prepareChanges=function(e,t){this.preparedData.push({data:e,mediaUrl:i.strIsNullOrEmpty(e.info.media)?"":a.Config.website+e.info.media,semverString:t})},t.prototype.internalRender=function(){var e=this;if(this.preparedData.length<=0)return r.DOM.createElement("div",null,this.isLoading?"Loading...":"We have no changes to display :/... What?");return r.DOM.createElement("div",null,this.preparedData.map(function(t){for(var n=[],o=0,s=t.data.changes;o<s.length;o++){var c=s[o],d=[];for(var u in c.urls){var p=c.urls[u];d.push(r.DOM.createElement("div",null,r.DOM.createElement("a",{href:p},u)))}n.push(i.strIsNullOrEmpty(c.id)?r.DOM.createElement("li",null,c.content,d):r.DOM.createElement("li",null,r.DOM.createElement("a",{"data-url":a.Config.websiteFeatureUrlTemplate+c.id,href:"javascript:void(0)",onClick:e.onClickLine},c.content),d))}var h=t.data.info.title?r.DOM.createElement("div",null,r.DOM.createElement("h2",null,t.data.info.title),r.DOM.createElement("h3",null,t.semverString)):r.DOM.createElement("div",null,r.DOM.createElement("h2",null,t.semverString));return r.DOM.createElement("ul",null,h,!i.strIsNullOrEmpty(t.mediaUrl)&&r.DOM.createElement(l.default,{url:t.mediaUrl,description:""}),n,r.DOM.createElement("hr",null))}))},t}(r.DOM.ElementBase);t.default=c},function(e,t,n){"use strict";t.__esModule=!0;t.default="r20es-settings-button"},function(e,t,n){"use strict";var o=this&&this.__assign||function(){return(o=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},r=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&(n[o[r]]=e[o[r]])}return n};t.__esModule=!0;var i=n(1);t.SettingsSidebarButton=function(e){var t=e.text,n=r(e,["text"]);return i.DOM.createElement("input",o({type:"button",style:{marginBottom:"8px",width:"calc(100% - 21px)"},className:"btn",value:t},n))}},function(e,t,n){"use strict";t.__esModule=!0,t.insertButtonIntoSettings=function(e){var t=document.getElementById("settings-accordion");t.insertBefore(e,t.firstElementChild)}},function(e,t,n){"use strict";t.__esModule=!0;var o=function(e){return"\n"===e||"\r"===e||"\t"===e||" "===e||"\f"===e||"\v"===e},r=function(e){return e>="0"&&e<="9"},i=function(){function e(e){this.readHead=0,this.charStream=e}return e.prototype.tryMatch=function(e,t){for(var n=0;n<e.length;n++){if(t>=this.charStream.length)return null;if(this.charStream[t]!==e[n])return null;t++}return{idx:t}},e.prototype.tryMatchEscapedAscii=function(e){var t=this.tryMatch("<%%",this.readHead);if(!t)return!1;for(var n="",o=t.idx;this.charStream.length>o&&r(this.charStream[o]);)n+=this.charStream[o++];var i=this.tryMatch("%%>",o);if(!i)return!1;var a=parseInt(n);return NaN!==a&&(this.readHead=i.idx,e.arg+=String.fromCharCode(a),!0)},e.prototype.tryMatchEscapedSlashes=function(e){var t=this.tryMatch("[TABLEEXPORT:ESCAPE]",this.readHead);return!!t&&(this.readHead=t.idx,e.arg+="--",!0)},e.prototype.nextToken=function(){for(;!(this.charStream.length<=this.readHead);){var e="!"===this.charStream[this.readHead],t=this.charStream.length>this.readHead+1&&"-"===this.charStream[this.readHead]&&"-"===this.charStream[this.readHead+1];if(e||t)break;this.readHead++}if(this.charStream.length<=this.readHead)return{eof:!0};if("!"===this.charStream[this.readHead]){this.readHead++;for(var n={command:""};!(this.charStream.length<=this.readHead||o(this.charStream[this.readHead]));)n.command+=this.charStream[this.readHead++];return n.command=n.command.trim(),n}if("-"===this.charStream[this.readHead]){this.readHead+=2;for(n={arg:""};!(this.charStream.length<=this.readHead+1||"\n"===this.charStream[this.readHead]||"-"===this.charStream[this.readHead]&&"-"===this.charStream[this.readHead+1]);)this.tryMatchEscapedAscii(n)||this.tryMatchEscapedSlashes(n)||(n.arg+=this.charStream[this.readHead++]);return n.arg=n.arg.trim(),n}throw new Error("Table export lexer matched unknown start of token: "+this.charStream[this.readHead])},e}(),a=function(e,t,n){return e.length<=t?n:e[t].arg},l=function(){function e(e){this.lexer=e,this.tokenBuffer=null}return e.prototype.readArgs=function(e,t){for(var n=[],o=0;o<e;o++){var r=this.lexer.nextToken();if(!("arg"in r))return this.tokenBuffer=r,n;if(n[o]=r,console.log(n[o]),!n[o])throw new Error(t+" expected "+e+", got "+(o+1))}return n},e.prototype.nextStatement=function(){var e=void 0!==this.tokenBuffer&&this.tokenBuffer?this.tokenBuffer:this.lexer.nextToken();this.tokenBuffer=null;var t={};do{if(console.log("starting statement parsing"),console.log(e),e.command){if("import-table"===e.command){if(console.log("Parsing table header"),t.table={},(n=this.readArgs(2,"import-table")).length<=0)throw new Error("Expected to find 1 or 2 arguments to import-table, but received "+n.length+". Lexer is at char position "+this.lexer.readHead);return t.table.name=n[0].arg,t.table.showplayers="show"===a(n,1,"hide"),t}if("import-table-item"==e.command){var n;if(console.log("Parsing table item"),t.item={},(n=this.readArgs(4,"import-table-item")).length<2)throw new Error("Expected to find 2, 3 or 4 arguments to import-table-item, but received "+n.length+".Lexer is at char position "+this.lexer.readHead);return t.item.tableName=n[0].arg,t.item.name=n[1].arg,t.item.weight=a(n,2,1),t.item.avatar=a(n,3,""),t}throw new Error("Unknown TableExport command: "+e.command)}if(e.eof)return t.eof=!0,t;throw new Error("Unexpected token: "+e+". Expected a command token. Lexer is at "+this.lexer.readHead)}while(void 0===e.eof);return{eof:!0}},e}(),s=function(){function e(e){this.parser=new l(new i(e))}return e.prototype.run=function(){var e=null,t={};do{if(!(e=this.parser.nextStatement()))return;if(e.eof)break;if(e.table)t[e.table.name]=e.table;else if(e.item){var n=t[e.item.tableName];if(!n)throw new Error("Table not found: "+e.item.tableName);n.items=n.items||{},delete e.item.tableName,n.items[e.item.name]=e.item}}while(void 0===e.eof);return console.log(t),t},e}();!function(e){e.naiveVerify=function(e){for(var t=0;e.length>t&&o(e[t]);)t++;return"!"===e[t]||(alert("File does not contain valid TableExport data. First character must be !."),!1)},e.parse=function(e){return new s(e).run()}}(t.TableExportLang||(t.TableExportLang={}))},function(e,t,n){"use strict";t.__esModule=!0,n(43).bootstrap()},function(e,t,n){"use strict";var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},r=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}},i=this;t.__esModule=!0;var a=n(44),l=n(99),s=n(10),c=n(4),d=n(1),u=n(184),p=n(185),h=n(27),m=n(186);t.bootstrap=function(){window.hasInjectedModules=!1,setTimeout(function(){if(void 0===window.d20||void 0===window.r20es||!window.hasInjectedModules){var e=h.default(),t=d.DOM.createElement("div",{className:"r20es-welcome"},d.DOM.createElement("h2",null,"VTTES - Uh oh!"),d.DOM.createElement("p",null,"Looks like loading is taking a while. There might be a bug somewhere."),d.DOM.createElement("p",null,"Please try:"),d.DOM.createElement("ul",null,d.DOM.createElement("li",null,"Refreshing the page."),d.DOM.createElement("li",null,"Disabling all other extensions."),"firefox"!==e.name&&d.DOM.createElement("li",null,"Using Firefox.")),d.DOM.createElement("p",null,"If this persists, please visit the ",d.DOM.createElement("a",{href:s.Config.discordInvite},"Discord server")," and let us know."),d.DOM.createElement("p",{className:"r20es-code"},"window.d20: "+typeof window.d20+" "+window.d20,d.DOM.createElement("br",null),"window.r20es: "+typeof window.r20es+" "+window.r20es,d.DOM.createElement("br",null),"window.hasInjectedModules: "+typeof window.hasInjectedModules+" "+window.hasInjectedModules,d.DOM.createElement("br",null),"VTTES Version: 1.28.19",d.DOM.createElement("br",null),"Browser: "+e.name+" "+e.versionNumber,d.DOM.createElement("br",null),"Is userscript!",d.DOM.createElement("br",null)),d.DOM.createElement("button",{onClick:function(){return t.remove()}},"OK")),n=document.getElementById("playerzone");n.parentElement.insertBefore(t,n)}},25e3);var e=[],t=[],n=function(e,t){return e=(e=(e=p.apply_mods_to_text(e,t,a.VTTES_MODULE_CONFIGS)).replace("jQuery.ready.promise().done( fn );","if(!window.r20esChrome) window.r20esChrome = {};\n         if(!window.r20esChrome.readyCallbacks) window.r20esChrome.readyCallbacks = [];\n        window.r20esChrome.readyCallbacks.push(fn);")).replace("},6e4))","},250))")},f=function(e,a){return o(i,void 0,void 0,function(){var o;return r(this,function(r){switch(r.label){case 0:return console.log("fetching",a,e),[4,fetch(a)];case 1:return[4,r.sent().text()];case 2:return o=r.sent(),o=n(o,a),t.push({order:e,text:o,url:a}),[2]}})})},g=Date.now();e.push(f(0,"https://app.roll20.net/v2/js/jquery-1.9.1.js?n")),e.push(f(1,"https://app.roll20.net/v2/js/jquery.migrate.js?n")),e.push(f(2,"https://app.roll20.net/js/featuredetect.js?2n")),e.push(f(3,"https://app.roll20.net/v2/js/patience.js?n")),e.push(f(4,"https://app.roll20.net/js/jquery-ui.1.9.0.custom.min.js?n"+g)),e.push(f(6,"https://app.roll20.net/js/d20/loading.js?n=11&v=11")),e.push(function(e,o,r){return new Promise(function(i){console.log("fetching from userscript",o,r,e);var a=function(){var l=window[o];if("string"==typeof l)return l=n(l,r),t.push({order:e,text:l,url:r}),window[o]=void 0,void i();setTimeout(a,10)};a()})}(7,"USERSCRIPT_VTT_BUNDLE_DATA","https://cdn.roll20.net/production/vtt.bundle.js?n"+g)),e.push(f(8,"https://app.roll20.net/js/tutorial_tips.js?n"));var M="";e.push(new Promise(function(e){var t=0,n=function(){for(var o=0,r=document.querySelectorAll("script[nonce]");o<r.length;o++){var i=r[o],a=i.nonce;if(a&&a.length&&a.length>0)return M=a,console.log("got nonce! it is: '"+M+"'",i),void e()}(t+=1)%100==0&&console.log("nonce retry"),setTimeout(n,10)};n()})),e.push(new Promise(function(e){var t=function(){return o(i,void 0,void 0,function(){var n,o,i,a,l,s;return r(this,function(r){switch(r.label){case 0:for(console.log("retry"),n=document.querySelectorAll("script"),o=null,i=0,a=n;i<a.length;i++)if((l=a[i]).src&&l.src.includes("/editor/startjs/")){o=l.src;break}return o?(s=o.indexOf("?timestamp"),console.log("startjs_url before",o),o=o.slice(0,s)+"?n=1&"+o.slice(s+1),console.log("startjs_url after",o),[4,f(5,o)]):[3,2];case 1:return r.sent(),e(),[3,3];case 2:setTimeout(t,10),r.label=3;case 3:return[2]}})})};t()})),Promise.all(e).then(function(){t.sort(function(e,t){return e.order-t.order}),console.log(e.length+" jobs are done!",e),console.log(t);for(var n=0,o=t;n<o.length;n++){var r=o[n];console.log("dumping "+r.url);var i=document.createElement("script");i.type="text/javascript",i.nonce=M,i.text=r.text,i.async=!1,i.defer=!1,document.body.appendChild(i)}var a=0,l=function(){var e=void 0!==window.$,t=void 0!==window.soundManager,n=void 0!==window.d20,o=!!document.body,r=window.r20es&&window.r20es.have_configs_been_loaded;if(e&&t&&n&&o&&r){console.log("vttes has all depts satisfied, dumping"),function(){var e=function(e,t,n){var o=document.createElement("style");o.id=n,o.innerText=e,t.appendChild(o)};c.findByIdAndRemove("r20es-dialo-gpolyfill-css"),c.findByIdAndRemove("r20es-dialog-style-css"),"function"!=typeof HTMLDialogElement&&(console.log("DialogFormsBootstrapper: injecting dialog-polyfill"),m.dialog_polyfill_script(),e(m.dialog_polyfill_css,document.body,"r20es-dialo-gpolyfill-css"),console.log("DialogFormsBootstrapper: done!")),e("\n      .r20es-indent {\n          margin-left: 20px;\n      }\n\n      .r20es-dialog button {\n          margin: 4px;\n      }\n\n      .r20es-dialog>.dialog-header {\n          margin: 10px 20px 10px 20px;\n      }\n\n      .r20es-dialog>.dialog-body {\n          margin: 10px 30px 10px 30px;\n          overflow: auto;\n      }\n      \n      .r20es-settings-dialog h1 { color: #333; }\n      .r20es-settings-dialog h2 { color: #333; }\n      .r20es-settings-dialog h3 { color: #333; }\n      .r20es-settings-dialog h4 { color: #333; }\n      .r20es-settings-dialog h5 { color: #333; }\n      .r20es-settings-dialog h6 { color: #333; }\n      .r20es-settings-dialog input[type=number] { color: #555; }\n      .r20es-settings-dialog input[type=text] { color: #555; }\n      .r20es-settings-dialog select { color: #555; }\n      .r20es-dialog h1 { color: #333; }\n      .r20es-dialog h2 { color: #333; }\n      .r20es-dialog h3 { color: #333; }\n      .r20es-dialog h4 { color: #333; }\n      .r20es-dialog h5 { color: #333; }\n      .r20es-dialog h6 { color: #333; }\n      .r20es-dialog input[type=number] { color: #555; }\n      .r20es-dialog input[type=text] { color: #555; }\n      .r20es-dialog select { color: #555; }\n\n      .r20es-dialog>.dialog-footer {\n          position: sticky;\n          background-color: #f5f5f5;\n          right: 0;\n          bottom: 0;\n          left: 0;\n      }\n\n      .r20es-dialog>.dialog-footer>hr {\n          margin: 0;\n      }\n\n      .dialog-footer>.dialog-footer-content {\n          padding: 20px;\n          box-sizing: border-box;\n      }\n\n      .dialog-footer>.dialog-footer-content .btn {\n          width: auto;\n          height: auto;\n      }\n\n      .r20es-dialog h3 {\n          margin-top: 5px;\n          margin-bottom: 5px;\n      }\n\n      .r20es-dialog>hr {\n          margin-top: 4px;\n          margin-bottom: 4px;\n      }\n\n      .r20es-dialog {\n          background-color: rgb(253, 253, 253);\n          /*height: 100%;*/\n          display: grid;\n          grid-template-rows: auto auto auto;\n          color: #0f0f0f;\n      }\n\n      html.dark .r20es-dialog th {\n        color: #0f0f0f !important;\n      }\n\n      .r20es-dialog th {\n          white-space: nowrap;\n          padding: 4px;\n          padding-left: 8px;\n      }\n\n      .r20es-dialog tr {\n          background-color: rgb(250, 250, 250);\n      }\n\n      .r20es-dialog .table-head {\n          background-color: rgb(240, 240, 240);\n      }\n\n      .r20es-dialog tr:nth-child(even) {\n          background-color: rgb(240, 240, 240);\n      }\n\n      .r20es-dialog table caption {\n          font-weight: bold;\n          font-size: 1.25em;\n      }\n\n      .r20es-code {\n          font-family: monospace;\n          font-size: 0.85em;\n          padding: 4px;\n          padding-left: 8px;\n      }\n\n      .r20es-welcome h1 { color: #333; }\n      .r20es-welcome h2 { color: #333; }\n      .r20es-welcome h3 { color: #333; }\n      .r20es-welcome h4 { color: #333; }\n      .r20es-welcome h5 { color: #333; }\n      .r20es-welcome h6 { color: #333; }\n      .r20es-welcome {\n          background-color: #ffffff;\n          color: #333;\n          max-width: 30%;\n          right: 20%;\n          top: 5%;\n          position: absolute;\n          padding: 10px;\n          z-index: 11000;\n          border: 1px solid black;\n      }\n\n      dialog::backdrop {\n          /* native */\n          background-color: rgba(0, 0, 0, 0.45);\n      }\n\n      dialog+.backdrop {\n          /* polyfill */\n          background-color: rgba(0, 0, 0, 0.45);\n      }\n\n      dialog {\n          overflow-y: auto;\n          overflow-x: auto;\n          max-height: 90%;\n          max-width: 60%;\n          border: none;\n          padding: 0;\n          /*height: auto;*/\n      }\n\n      .r20es-big-dialog {\n          /*height: 100%;*/\n      }\n\n      .r20es-token-img-hover .r20es-hover-block {\n          display: none;\n      }\n\n      .r20es-token-img-hover:hover .r20es-hover-block{\n          padding: 4px;\n          background-color: rgba(255,255,255, 0.5);\n          border: 4px dashed black;\n          display: block;\n      }\n    ",document.body,"r20es-dialog-style-css")}(),y();var i=document.createEvent("Event");i.initEvent("DOMContentLoaded",!0,!0),window.document.dispatchEvent(i);for(var s=0;s<window.r20esChrome.readyCallbacks.length;s++)try{window.r20esChrome.readyCallbacks[s]()}catch(e){console.error(e)}}else(a+=1)%100==0&&console.log("vttes is waiting for depts..."),setTimeout(l,10)};l()}),window.r20es=window.r20es||{},window.r20es.hooks=a.VTTES_MODULE_CONFIGS,window.r20esInstalledModuleTable=window.r20esInstalledModuleTable||{},window.r20esDisposeTable=window.r20esDisposeTable||{},window.r20es.isLoading=!0;var y=function(){if(!window.hasInjectedModules){for(var e=0,t=l.VTTES_MODULES;e<t.length;e++){var n=t[e];try{n()}catch(e){console.error(e)}}window.hasInjectedModules=!0,console.log("modules injected!")}};window.r20es.save_configs=function(){var e={};for(var t in window.r20es.hooks){var n=window.r20es.hooks[t];e[t]=n.config}var o=JSON.stringify(e,null,0);window.localStorage.setItem("vttes_userscript_config",o)},window.r20es.onAppLoad=u.EventEmitter.copyExisting(window.r20es.onAppLoad),window.r20es.onPageChange=u.EventEmitter.copyExisting(window.r20es.onPageChange),window.r20es.isLoading&&window.r20es.onAppLoad.addEventListener(function(){window.r20es.isLoading=!1}),window.r20es.onLoadingOverlayHide=function(){if("r20es"in window){var e=!1;window.r20es.isWindowLoaded||(window.r20es.isWindowLoaded=!0,window.r20es.onAppLoad.fire(),e=!0),window.r20es.onPageChange.fire(e)}else alert("VTTES global state is undefined. VTTES will not function properly.")},window.r20es.keys=window.r20es.keys||{altDown:!1,shiftDown:!1,ctrlDown:!1,metaDown:!1},window.r20es.onDocumentMouseUp=function(e){window.r20es.keys.altDown=e.altKey,window.r20es.keys.shiftDown=e.shiftKey,window.r20es.keys.ctrlDown=e.ctrlKey,window.r20es.keys.metaDown=!e.metaKey&&e.key&&"OS"===e.key?"keydown"===e.type:e.metaKey},document.addEventListener("keyup",window.r20es.onDocumentMouseUp),document.addEventListener("keydown",window.r20es.onDocumentMouseUp);var b=window.localStorage.getItem("vttes_userscript_config"),N={};if(b)try{N=JSON.parse(b)}catch(e){console.error("Failed to parse vttes config data",b,e)}for(var T in window.r20es.hooks){var v=window.r20es.hooks[T],k=N[T]||{};v.config?Object.assign(v.config,k):v.config=k,"enabled"in v.config||(v.config.enabled=!0)}window.r20es.have_configs_been_loaded=!0}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(45),r=n(46),i=n(47),a=n(48),l=n(49),s=n(50),c=n(51),d=n(52),u=n(53),p=n(54),h=n(55),m=n(56),f=n(57),g=n(58),M=n(59),y=n(60),b=n(61),N=n(62),T=n(63),v=n(64),k=n(65),_=n(66),w=n(67),V=n(68),R=n(69),E=n(70),U=n(71),x=n(72),D=n(73),S=n(74),O=n(75),F=n(76),Z=n(77),j=n(78),W=n(79),z=n(80),I=n(81),L=n(82),C=n(83),A=n(84),Y=n(85),Q=n(86),B=n(87),G=n(88),J=n(89),H=(n(90),n(91)),X=n(92),P=n(93),K=n(94),q=n(95),$=n(96),ee=n(97),te=n(98),ne={};t.VTTES_MODULE_CONFIGS=ne;var oe=function(e){return ne[e.id]=e};oe(Y.default),oe(G.default),oe(B.default),oe(A.default),oe(C.default),oe(L.default),oe(I.default),oe(W.default),oe(o.default),oe(j.default),oe(U.default),oe(r.default),oe(i.default),oe(a.default),oe(l.default),oe(s.default),oe(z.default),oe(u.default),oe(c.default),oe(d.default),oe(F.default),oe(p.default),oe(h.default),oe(m.default),oe(f.default),oe(Z.default),oe(g.default),oe(S.default),oe(M.default),oe(y.default),oe(b.default),oe(N.default),oe(T.default),oe(v.default),oe(k.default),oe(O.default),oe(_.default),oe(x.default),oe(w.default),oe(V.default),oe(R.default),oe(D.default),oe(Q.default),oe(J.default),oe(X.default),oe(P.default),oe(K.default),oe(q.default),oe($.default),oe(ee.default),oe(H.default),oe(te.default),oe(E.default)},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"alternativeRadialMenu",name:"Alternative Token Radial Menu",description:"Replaces the default token radial token menu with a more compact and simplistic one.",category:"Canvas",gmOnly:!1,media:{"radial.png":"Reworked radial menu","radial_min.png":"Compact version"},configView:{opacity:{type:"slider",display:"Opacity",sliderMin:0,sliderMax:1},superMinimal:{type:"checkbox",display:"Compact mode"},auto_width:{type:"checkbox",display:"Automatically space the left and right sides to not cover up the token."}},config:{opacity:1,superMinimal:!1,auto_width:!0}}}).call(this,"src/modules/AlternativeRadialMenu")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"animationDisable",name:"Disable Animations",description:"Disables animations: token radial menu opening, page toolbar menu opening/close.",category:"Canvas",gmOnly:!1,media:{"no_radial_anim.webm":"No token radial menu animation"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"*30),",search_from_index_offset:-300,find:["setTimeout(function(){$(",1,').addClass("open"),',2,'.find(".button div.hasnumber").textfill(20)},',3,"*30),",3,"++"],replace:['\nif(window.r20es && window.r20es.shouldDoCustomAnim && window.r20es.shouldDoCustomAnim("disableRadial")) { \n  $(',1,').addClass("open");',2,'.find(".button div.hasnumber").textfill(20);\n} \nelse { \n  ',0," \n}"]},{search_from:"*30),",find:["setTimeout(function(){",2,'.find(".button").addClass("animcomplete")},250)'],replace:['\n1;\nif(window.r20es && window.r20es.shouldDoCustomAnim && window.r20es.shouldDoCustomAnim("disableRadial")) { \n  ',2,'.find(".button").addClass("animcomplete");\n}\nelse { \n  ',0," \n}"]},{search_from:"if(d20.pagetoolbar.noClosing)return;",find:["?(",4,'.animate({top:"-1px"},300).removeClass("closed"),'],replace:["?(",4,'.animate({top:"-1px"},(window.r20es && window.r20es.shouldDoCustomAnim && window.r20es.shouldDoCustomAnim("disablePageToolbar")) ? 1 : 300).removeClass("closed"),']},{search_from:"if(d20.pagetoolbar.noClosing)return;",find:[":(",4,".animate({top:`-${",4,".height()}px`},300,()=>{",4,'.addClass("closed"),$("#page-toolbar .pages").hide(),_.delay(()=>{$("#page-toolbar .pages input:text").trigger("blur")})})'],replace:[":(",4,'.animate({top:"-"+',4,'.height()+"px"},\n(window.r20es && window.r20es.shouldDoCustomAnim && window.r20es.shouldDoCustomAnim("disablePageToolbar")) ? 1 : 300,\nfunction(){',4,'.addClass("closed"),$("#page-toolbar .pages").hide(),_.delay(function(){$("#page-toolbar .pages input").trigger("blur")})})']}]}],configView:{disableRadial:{type:"checkbox",display:"Disable token radial button menu animations"},disablePageToolbar:{type:"checkbox",display:"Disable page toolbar animations"}},config:{disableRadial:!1,disablePageToolbar:!1}}}).call(this,"src/modules/AnimationDisable")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"autoPingNextToken",name:"Ping Visible Token",description:"When advancing initiative, this module will automatically ping the next token only if it is in the player token layer.",category:"Initiative",gmOnly:!0,media:{"ping_token.webm":"Automated pinging"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"nextTurn(){",find:["splice(0,1);",1,".push(",-1,"[0]);"],replace:[0,"if(window.r20es && window.r20es.pingInitiativeToken) {window.r20es.pingInitiativeToken(",1,"[0]);}"]}]}]}}).call(this,"src/modules/AutoPingNextToken")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"autoSelectNextToken",name:"Select Token",description:"When advancing initiative, this module will automatically select the next token in the initiative order.",category:"Initiative",gmOnly:!0,media:{"select_token.webm":"Automated token selection"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"nextTurn(){",find:["splice(0,1);",1,".push(",-1,"[0]);"],replace:[0,"if(window.r20es && window.r20es.selectInitiativeToken) {window.r20es.selectInitiativeToken(",1,"[0]);}"]}]}]}}).call(this,"src/modules/AutoSelectNextToken")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"autoSortInitiative",name:"Automatically Sort Initiative",description:"Automatically sorts initiative order when a new token has been added to it by any player. After the list has been sorted, it is reorganized so that the token that was first in the list before the sort is still the first in the list after the sort.",category:"Initiative",gmOnly:!0,media:{"sort_init.webm":"Initiative being sorted automatically."},configView:{sortBy:{display:"Sort-By",type:"dropdown",dropdownValues:{0:"Numerically: Ascending",1:"Numerically: Descending",2:"Alphabetically: A-Z",3:"Alphabetically: Z-A",card:"By Card/Suit"}},respectFirstTokenPosition:{display:"Respect the position of the current token in the order",type:"checkbox"}},config:{sortBy:1,respectFirstTokenPosition:!0}}}).call(this,"src/modules/AutoSortInitiative")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"bulkMacros",name:"Bulk Macros",description:'Adds a "Bulk Macros" option to the token right click menu which lists macros that can be rolled for the whole selection in bulk.',category:"Token",gmOnly:!0,media:{"bulk_macro.webm":"Rolling initiative for 3 tokens at once"},configView:{delayBetweenRolls:{type:"number",display:"The milliseconds that will be waited in between macro rolls for tokens. If you're having issues with API scripts, tweak this value. A good start is 100."},reselectAfter:{type:"checkbox",display:"Reselect tokens after rolling? Disabling this might fix issues with API scripts."},performRollsSequentially:{type:"checkbox",display:"Roll sequentially: Finish doing a roll before performing the next one. Cancelling one roll will cancel the whole batch."}},config:{delayBetweenRolls:0,reselectAfter:!0,performRollsSequentially:!1}}}).call(this,"src/modules/BulkMacro")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"changeRepresentsIdWhenDuplicating",name:'Reassign "Represents" when duplicating',description:'When duplicating a character in the journal and if that character has a default token, this module will reassign the "Represents" value of that default token to the newly duplicated character.',category:"Token",gmOnly:!0,mods:[{includes:"vtt.bundle.js",stencils:[{search_from:'_template:$("#tmpl_charactereditor")',find:["name}`;const ",1,"=",2,".model.collection.create"]},{search_from:'_template:$("#tmpl_charactereditor")',find:["model._blobcache.defaulttoken&&(",3,".defaulttoken=",2,".model._blobcache.defaulttoken"],replace:["model._blobcache.defaulttoken&&(",3,".defaulttoken = (window.r20es && window.r20es.replaceIdOnDupe) ? window.r20es.replaceIdOnDupe(",2,", ",1,") : ",2,".model._blobcache.defaulttoken"]}]}]}}).call(this,"src/modules/ChangeIdWhenDuplicating")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"characterImportExport",name:"Journal Importer/Exporter",description:"Provides character, handout and character component (i.e weapons, spells, items etc) importing and exporting (in the journal and on sheets).",category:"Exporting/Importing",gmOnly:!1,media:{"char_import.png":"Journal widget","sheet_export.png":"Sheet tab"},mods:[{includes:"vtt.bundle.js",find_replace:[{find:"<button class='broadcasthandout btn'>Show to Players</button>",replace:"<button class='vttes_overwrite_handout btn' style='position: absolute; top: 10px; right: 316px'>Overwrite</button><button class='vttes_export_handout btn' style='position: absolute; top: 10px; right: 250px'>Export</button> >>R20ES_MOD_FIND>>"},{find:'$("body").on("click",".broadcasthandout",',replace:'\n          $("body").on("click",".vttes_overwrite_handout", (e) => {\n            if(window.r20es && window.r20es.overwrite_handout) {\n              window.r20es.overwrite_handout(e);\n            }\n          }), $("body").on("click",".vttes_export_handout", (e) => {\n            if(window.r20es && window.r20es.export_handout) {\n              window.r20es.export_handout(e);\n            }\n          }), >>R20ES_MOD_FIND>>'}]}]}}).call(this,"src/modules/CharacterIO")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"counterTokenName",name:"Token Counter",description:"Adds an option to the token right-click menu that will add an increasing counter to the name of all selected tokens. Submitted by OLStefan.",category:"Token",gmOnly:!0}}).call(this,"src/modules/CounterTokenName")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"activeLayerHud",name:"Display Current Layer on Canvas",description:"Displays the current edit layer and whether the select tool is active.",media:{"gm_bg.png":"GM layer identifier","map_bg.png":"Page layer identitifer","tokens_bg.png":"Player token layer identifier"},category:"Canvas",gmOnly:!0,configView:{size:{type:"number",display:"Size"},globalOpacity:{type:"slider",display:"Global opacity",sliderMin:0,sliderMax:1},showNotSelecting:{type:"checkbox",display:'Show "Not selecting!" when the current tool is not the select tool?'},notSelectingOpacity:{type:"slider",display:'"Not selecting" box opacity',sliderMin:0,sliderMax:1},backgroundOpacity:{type:"slider",display:"Background opacity",sliderMin:0,sliderMax:1},textFillOpacity:{type:"slider",display:"Text shadow opacity",sliderMin:0,sliderMax:1},textFillColor:{type:"color",display:"Text shadow color"},textOutlineOpacity:{type:"slider",display:"Text outline opacity",sliderMin:0,sliderMax:1},textOutlineColor:{type:"color",display:"Text outline color"},corner:{type:"dropdown",display:"Position",dropdownValues:{bottomRight:"Bottom Right",bottomLeft:"Bottom Left",topRight:"Top Right",topLeft:"Top Left"}}},config:{size:26,showNotSelecting:!0,notSelectingOpacity:1,globalOpacity:.75,backgroundOpacity:1,textFillOpacity:1,textFillColor:[255,255,255],textOutlineOpacity:1,textOutlineColor:[0,0,0],corner:"bottomRight"},mods:[{includes:"vtt.bundle.js",stencils:[{find:["})}setMode(",1,"){"],replace:[0,"if(window.r20es && window.r20es.setModePrologue) {window.r20es.setModePrologue(",1,");}"]},{find:["function setMode(",2,"){"],replace:[0,"if(window.r20es && window.r20es.setModePrologue) {window.r20es.setModePrologue(",2,");}"]}]}]}}).call(this,"src/modules/DrawCurrentLayer")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"duplicateInJournalContextMenu",name:'"Duplicate" in the Journal Context Menu',description:'Adds a "Duplicate" entry, functioning as a shortcut to duplicate button found in the edit page of sheets, to the context menu of items found in the journal.',category:"Journal",gmOnly:!0,media:{"duplicate.png":"The duplicate button"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"data-action-type=showtoplayers",find:["const ",-1,"=",1,'.attr("data-itemid")']},{find:['$("#journalitemmenu ul").on(mousedowntype,"li[data-action-type=showtoplayers]"'],replace:['\n            $("#journalitemmenu ul").on(mousedowntype, "li[data-action-type=r20esduplicate]", function () {\n              if(window.r20es && window.r20es.onJournalDuplicate) window.r20es.onJournalDuplicate(',1,'.attr("data-itemid"))\n            }),\n            $("#journalitemmenu ul").on(mousedowntype,"li[data-action-type=showtoplayers]"']}]}]}}).call(this,"src/modules/DuplicateButton")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"exposeD20",name:"Expose D20",description:"",category:"Misc.",force:!0,mods:[{includes:"vtt.bundle.js",find_replace:[{find:"var exports=exports||{},",replace:"window.d20 = d20; var exports=exports||{},"}]}]}}).call(this,"src/modules/ExposeD20")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"initiativeShortcuts",name:"Advance Initiative Shortcut",description:"Creates a shortcut for advancing (Ctrl+Right Arrow) in the initiative list. Advanced shortcuts must be enabled for this to work. See https://wiki.roll20.net/Advanced_Shortcuts",category:"Initiative",gmOnly:!0}}).call(this,"src/modules/InitiativeAdvanceShortcut")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"macroGeneratorBase",name:"Character Sheet Ability Macro Generator",description:'Places a "Generate" button in the Attributes & Abilities that will open up the generate ability macros dialog. Only certain character sheets are supported. If you\'d like to add your own sheet, submit a GitHub PR.',category:"Journal",gmOnly:!1}}).call(this,"src/modules/MacroGenerator")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"macroIO",name:"Player Macro Importer/Exporter",description:'Allows exporting and importing of player macros and the macro bar. Controls can be found in the "Collection" sidebar tab.',category:"Exporting/Importing",gmOnly:!1,media:{"macro_io.png":"Collection sidebar widget"}}}).call(this,"src/modules/MacroIO")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"middleClickToTokenLayer",name:"Mouse Click to Switch to Token Layer",description:"This module allows the use of mouse clicking (default mouse3/scroll wheel) on a token. Doing so will switch the current edit layer to the layer of the token.",category:"Canvas",gmOnly:!0,media:{"middle_click.webm":"Middle-clicking on a token in the GM layer with select token option on when the current edit is player tokens ."},configView:{select:{display:"Also select token",type:"checkbox"},switchToGmLayer:{display:"Allow switching to tokens in the GM layer.",type:"checkbox"},switchToTokenLayer:{display:"Allow switching to tokens in the player token layer.",type:"checkbox"},switchToMapLayer:{display:"Allow switching to tokens in the map layer.",type:"checkbox"},switchToLightsLayer:{display:"Allow switching to tokens in the lights layer",type:"checkbox"},switchToForegroundLayer:{display:"Allow switching to tokens in the betteR20 foreground layer",type:"checkbox",onlyWhenHasB20:!0},switchToWeatherLayer:{display:"Allow switching to tokens in the betteR20 weather layer",type:"checkbox",onlyWhenHasB20:!0},switchToBackgroundLayer:{display:"Allow switching to tokens in the betteR20 background layer",type:"checkbox",onlyWhenHasB20:!0},modAlt:{display:"Must hold down the ALT key",type:"checkbox"},modShift:{display:"Must hold down the SHIFT key",type:"checkbox"},modCtrl:{display:"Must hold down the CTRL key",type:"checkbox"},modMeta:{display:"Must hold down the meta key",type:"checkbox"},mouseButtonIndex:{display:"Mouse button index",type:"mouse_button_index"}},config:{select:!1,switchToGmLayer:!0,switchToTokenLayer:!0,switchToMapLayer:!1,switchToLightsLayer:!1,switchToForegroundLayer:!1,switchToWeatherLayer:!1,switchToBackgroundLayer:!1,modAlt:!1,modShift:!1,modCtrl:!1,modMeta:!1,mouseButtonIndex:1}}}).call(this,"src/modules/MiddleClickSelect")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"autoFocusNextToken",name:"Move Camera to Token",description:"When advancing initiative, this module will move your camera to the next token in the initiative order. This camera movement is local, meaning other players will not have their camera moved.",category:"Initiative",gmOnly:!0,media:{"move_cam.webm":"Camera moving between 4 tokens"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"nextTurn(){",find:["splice(0,1);",1,".push(",-1,"[0]);"],replace:[0,"if(window.r20es && window.r20es.moveCameraTo) {window.r20es.moveCameraTo(",1,"[0]);}"]}]}]}}).call(this,"src/modules/MoveCameraToToken")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"createFinalPageLoadEvent",name:"createFinalPageLoadEvent",description:"",category:"Misc.",gmOnly:!1,force:!0,mods:[{includes:"vtt.bundle.js",find_replace:[{find:'$("#loading-overlay").hide()',replace:'$("#loading-overlay").hide();if(window.r20es && window.r20es.onLoadingOverlayHide) window.r20es.onLoadingOverlayHide(); '}]}]}}).call(this,"src/modules/PageLoadEvent")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"rollAndApplyHitDice",name:"Roll & Apply Hit Dice",description:'Adds a "Hit Dice" option to the canvas token context menu which will roll and apply hit dice for the selected group of tokens.',category:"Token",gmOnly:!0,media:{"hit_dice.webm":"Rolling & Applying hit dice for a single token then a group of 3."},configView:{diceFormulaAttribute:{display:"Hit dice formula attribute",type:"string"},bar:{display:"HP Bar",type:"dropdown",dropdownValues:{bar1:"Bar 1",bar2:"Bar 2",bar3:"Bar 3"}},diceFormulaMacro:{display:"(Optional) Custom Roll.",type:"string"},diceFormulaSumInline:{display:"(Optional) Custom roll: sum inline rolls. If unchecked, the value of the last inline roll will be used.",type:"checkbox"}},config:{diceFormulaAttribute:"npc_hpformula",bar:"bar3",diceFormulaMacro:"",diceFormulaSumInline:!0}}}).call(this,"src/modules/RollAndApplyHitDice")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"pluginSettings",name:"pluginSettings",description:"",category:"Misc.",gmOnly:!1,force:!0}}).call(this,"src/modules/Settings")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"sheetTabApi",name:"sheetTabApi",description:"",category:"Misc.",gmOnly:!1,force:!0}}).call(this,"src/modules/SheetTabApi")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(18),r=n(0);t.default={filename:r.default(e),id:"importExportTable",name:"Table Importer/Exporter",description:'Provides rollable table importing and exporting. Supports TableExport format tables. Controls can be found in the "Collection" sidebar tab.',category:"Exporting/Importing",gmOnly:!0,media:{"table_io.png":"Collection sidebar widget."},mods:[{includes:"vtt.bundle.js",find_replace:[{find:'this.$el.on("click",".deleterollabletable"',replace:'this.el.setAttribute("'+o.default.TableIdAttribute+'", this.model.get("id")),this.$el.on("click",".deleterollabletable"'}]}]}}).call(this,"src/modules/TableIO")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"tokenContextMenuApiModule",name:"tokenContextMenuApiModule",description:"",category:"Misc.",gmOnly:!1,force:!0}}).call(this,"src/modules/TokenContextMenuApi")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"tokenLayerDrawing",name:"Draw Token Layer on Tokens",description:"Draws an indicator at the bottom left of each token that indicates which layer it is on.",category:"Canvas",gmOnly:!0,media:{"token_mp.png":"A token in the map layer","token_tk.png":"A token in the player token layer","token_gm.png":"A token in the GM layer"},mods:[{includes:"vtt.bundle.js",stencils:[{find:["this._drawStatusIcons(",1,"),",1,".restore(),"],replace:["this._drawStatusIcons(",1,"),",1,".restore(),(window.r20es && window.r20es.tokenDrawBg && window.r20es.tokenDrawBg(",1,", this)),"]}]}],configView:{globalAlpha:{display:"Global opacity",type:"slider",sliderMin:0,sliderMax:1},backgroundOpacity:{display:"Background opacity",type:"slider",sliderMin:0,sliderMax:1},rotateAlongWithToken:{display:"Rotate overlay along with token",type:"checkbox"},textStrokeWidth:{display:"Text outline width",type:"number",numberMin:0},textStrokeOpacity:{display:"Text stroke opacity",type:"slider",sliderMin:0,sliderMax:1},textStrokeColor:{display:"Text stroke color",type:"color"},textFillOpacity:{display:"Text fill opacity",type:"slider",sliderMin:0,sliderMax:1},textFontSize:{display:"Font size",type:"number",numberMin:0},textFillColor:{display:"Text fill color",type:"color"},drawOnGmLayer:{display:"Draw on tokens in the GM layer.",type:"checkbox"},drawOnTokenLayer:{display:"Draw on tokens in the player token layer.",type:"checkbox"},drawOnMapLayer:{display:"Draw on tokens in the map layer.",type:"checkbox"},drawOnLightsLayer:{display:"Draw on tokens in the lights layer",type:"checkbox"},drawOnForegroundLayer:{display:"Draw on tokens in the betteR20 foreground layer",type:"checkbox",onlyWhenHasB20:!0},drawOnWeatherLayer:{display:"Draw on tokens in the betteR20 weather layer",type:"checkbox",onlyWhenHasB20:!0},drawOnBackgroundLayer:{display:"Draw on tokens in the betteR20 background layer",type:"checkbox",onlyWhenHasB20:!0}},config:{globalAlpha:1,backgroundOpacity:.5,textStrokeWidth:2,textStrokeOpacity:1,textStrokeColor:[0,0,0],textFillOpacity:1,textFillColor:[255,255,255],textFontSize:18,rotateAlongWithToken:!1,drawOnGmLayer:!0,drawOnTokenLayer:!0,drawOnMapLayer:!0,drawOnLightsLayer:!0,drawOnWeatherLayer:!0,drawOnForegroundLayer:!0,drawOnBackgroundLayer:!0}}}).call(this,"src/modules/TokenLayerDrawing")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"transparentPaperDivs",name:"Transparent Canvas UI Dialogs",description:"Provides a way to set the opacity of floating UI dialogs.",category:"Canvas",gmOnly:!1,media:{"transparent_dialog.png":"A transparent edit token dialog."},configView:{opacity:{display:"Opacity",type:"slider",sliderMin:0,sliderMax:1}},config:{opacity:1}}}).call(this,"src/modules/TransparentPaper")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),name:"Welcome",id:"welcomeScreen",description:"The welcome popup message.",force:!0,forceShowConfig:!0,gmOnly:!1,category:"Misc.",configView:{showWelcomePopup:{display:"Show welcome message.",type:"checkbox"},showStartupGuide:{display:"Show startup guide",type:"checkbox"},showChangelog:{display:"Show changelog",type:"checkbox"}},config:{hasShownDiscordPoll:!1,showWelcomePopup:!0,showStartupGuide:!0,showChangelog:!0,previousVersion:"",has_shown_ui_preview_incompatibility_message:!1}}}).call(this,"src/modules/Welcome")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"alternativePageToolbarMenu",name:"Alternative Page Toolbar Menu",description:"Replaces the default page toolbar menu with a more concise one. Right clicking the name of the page will enable you to edit it. Vivaldi users: double right-click to edit name.",category:"Canvas",gmOnly:!1,media:{"page_toolbar.png":"Alternative page toolbar menu on the right side."},configView:{opacity:{type:"slider",display:"Opacity",sliderMin:0,sliderMax:1},location:{type:"dropdown",display:"Location",dropdownValues:{right:"Right",left:"Left"}}},config:{opacity:1,location:"right"}}}).call(this,"src/modules/AlternatePageToolbarMenu")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"tokenResize",name:"Token Resize",description:"Allows you to quickly resize map tokens to fit the canvas size or to fit a specific grid size.",category:"Token",gmOnly:!1,media:{"token_resize2.webm":"Two map tokens being resized to fit the canvas."},configView:{placeTopLeft:{type:"checkbox",display:"Position tokens in the top-left corner after resizing"},useUnits:{type:"checkbox",display:"Use map units (feet, meters, km, etc) instead of squares."}},config:{placeTopLeft:!0,useUnits:!1,lastSquareWidth:70,lastSquareHeight:70,lastNumSquaresX:25,lastNumSquaresY:25}}}).call(this,"src/modules/TokenResize")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"hidePlayerList",name:"Hide Player List",description:"Hides the player list.",category:"Canvas",gmOnly:!1,config:{enabled:!1}}}).call(this,"src/modules/HidePlayerList")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"characterTokenModifier",name:"Character Token Editor",description:"Adds a tab to character sheets that provides a quick way to create and modify character tokens.",category:"Token",gmOnly:!1,media:{"token_editor.png":"The editor being used to view a Adult Brass Dragon token."}}}).call(this,"src/modules/CharacterTokenModifier")},function(e,t,n){"use strict";t.__esModule=!0,t.default={id:"seenadOverride",name:"seenadOverride",description:"",category:"Misc.",gmOnly:!1,force:!0,mods:[{includes:"/editor/startjs",find_replace:[{find:'$(document).on("ready", function() { d20ext.showGoogleAd(); });',replace:"d20ext.seenad = true; d20ext.showingAds = false; d20ext.adComplete = true; /* replaced */ "}]}]}},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"nightMode",name:"Force Background Color",description:"Force a certain background. The night mode is deprecated in favor of RedReign's Dark Theme.",category:"Canvas",gmOnly:!1,urls:{"You can find it here":"https://openuserjs.org/scripts/Pharonix/Roll20_Dark/source"},configView:{backgroundColor:{display:"Canvas Background Color",type:"color"},backdrop_color:{display:"Backdrop Color",type:"color"},only_force_if_default:{display:"Only force Canvas and Backdrop colors if the page has it set to default",type:"checkbox"}},config:{backgroundColor:[13,14,15],backdrop_color:[10,11,12],only_force_if_default:!0,enabled:!1}}}).call(this,"src/modules/NightMode")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"jukeboxIO",name:"Jukebox Importer/Exporter",description:'Allows exporting and importing of jukebox playlists. Controls can be found in the "Jukebox" sidebar tab.',category:"Exporting/Importing",gmOnly:!0}}).call(this,"src/modules/JukeboxIO")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"arrowKeysCameraControls",name:"Arrow Key Camera Controls",description:"Allows the camera to be moved by pressing the arrow keys as long as a token is not selected",category:"Canvas",gmOnly:!1}}).call(this,"src/modules/ArrowKeysMoveCanvas")},function(e,t,n){"use strict";(function(e){var o,r;t.__esModule=!0;var i=n(19),a=n(0);t.default={filename:a.default(e),id:"autoOpenInitiativeTracker",name:"Open Turn Tracker On Initiative",description:"Automatically opens the turn tracker when somebody rolls initiative.",category:"Initiative",gmOnly:!0,configView:(o={},o[i.DIALOG_OPEN_DELAY_KEY]={display:"Delay between opening the initiative dialog in milliseconds (low values may cause issues)",type:"number"},o),config:(r={},r[i.DIALOG_OPEN_DELAY_KEY]=500,r)}}).call(this,"src/modules/AutoOpenInitiativeTracker")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"toolsMenu",name:"toolsMenu",description:"",category:"Misc.",gmOnly:!1,force:!0}}).call(this,"src/modules/ToolsMenu")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"animatedBackground",name:"Animated Background",description:"Displays an animated background if the GM has one set up for the page. Setup can be found in the top-right corner, look for a orange film button. Players need to have VTTES installed to see animated backgrounds.",category:"Canvas",gmOnly:!1,media:{"animated_bg.webm":"Setup & usage"},config:{muteAudio:!1,audioVolume:.1,video_history:[]},configView:{muteAudio:{display:"Mute Audio?",type:"checkbox"},audioVolume:{display:"Audio Volume",type:"slider",sliderMin:0,sliderMax:1}},mods:[{includes:"vtt.bundle.js",stencils:[{find:["d20.engine.setZoom=(",2,","]},{find:["updateCanvasZoom:()=>d20.engine.canvasZoom=",1,".canvasZoom"],replace:["updateCanvasZoom:()=> {\n            if(window.r20es && window.r20es.onZoomChange) {\n              window.r20es.onZoomChange(",2,");\n            }\n            d20.engine.canvasZoom = ",1,".canvasZoom;\n          }"]},{search_from:"requestAnimationFrame(d20.engine.renderLoop)",search_from_index_offset:-4e3,find:["currentPageScene)==null||",3,".updateCanvasTexture()"],replace:["currentPageScene) == null || (window.r20es.manual_composite != null ? window.r20es.manual_composite() : ",3,".updateCanvasTexture())"]}]}]}}).call(this,"src/modules/AnimatedBackgroundLayer")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"rememberTextToolSettings",name:"Remember Text Tool Settings",description:"Remembers the last used settings for the text tool.",category:"Canvas",gmOnly:!1,config:{copyTextSettingsOnSelect:!1,color:"rgb(0,0,0)",size:16,font:"Arial"},configView:{copyTextSettingsOnSelect:{display:"Mirror selected text settings?",type:"checkbox"},color:{display:"Current Text Color",type:"string"},size:{display:"Current Text Size",type:"number"},font:{display:"Current Text Font",type:"string"}},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"d20.engine.editText=function",find:['.get("fontStyle");',1,"const"],replace:['.get("fontStyle"); \nif((window.r20es && window.r20es.copyTextSettingsOnSelect) || !window.r20es) { \n',1,"\n}\nconst "]},{search_from:'"fontSize",parseInt',search_from_index_offset:-1e3,find:['$("body").on("shape_selected","#editor",(',3,",",4,")=>{",4,'.type=="text"'],replace:['$("body").on("shape_selected","#editor",(',3,",",4,")=>{if((window.r20es && window.r20es.copyTextSettingsOnSelect) || !window.r20es)",4,'.type=="text"']}]}]}}).call(this,"src/modules/RememberTextToolSettings")},function(e,t,n){"use strict";(function(e){var o,r;t.__esModule=!0;var i=n(20),a=n(0);t.default={filename:a.default(e),id:"adjustableOpacity",name:"Adjustable GM Layer opacity",description:"Allows adjusting the opacity of the GM layer.",category:"Canvas",gmOnly:!0,configView:(o={},o[i.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY]={type:"slider",display:"GM Layer opacity",sliderMin:0,sliderMax:1},o),config:(r={enabled:!1},r[i.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY]=1,r)}}).call(this,"src/modules/AdjustableOpacity")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(21),r=n(0);t.default={filename:r.default(e),id:"tokenFromUrl",name:"Create Token From URL",description:'Allows creating tokens on the canvas by right-clicking the canvas and pressing "'+o.TOKEN_FROM_IMG_BUTTON_NAME+'"',gmOnly:!0,category:"Libre"}}).call(this,"src/modules/TokenFromImg")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"disablePlayerDrawing",name:"Disable Player Drawing",description:"Disables the drawing/text tools for certain players. Only the GM needs to have the extension installed for this to work. WARNING: This will load all pages in your game and may cause performance issues or loading slowdowns.",category:"Canvas",gmOnly:!0,media:{"disable_drawing.png":"Disable/Enable drawing permission button"},config:{enabled:!1}}}).call(this,"src/modules/DisablePlayerDrawings")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(22),r=n(0);t.default={filename:r.default(e),id:"setTableEntryAvatarByUrl",name:"Set Rollable Table Avatar By Url",description:"Allows setting the images/avatars of rollable table entries by an image url.",category:"Misc.",gmOnly:!1,media:{"table_entry_by_url.png":"Use this button in the table entry dialog."},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"tmpl_tableitemeditor",find:["()=>{",1,'.$el.is(":visible")&&',1,'.render()}),this.$el.on("click",".deleteitem"'],replace:["()=>{",1,'.$el.is(":visible")&&',1,'.render()}),this.el.setAttribute("'+o.default.TABLE_ID_ATTRIBUTE+'",',1,'.model.collection.rollabletable.id),this.el.setAttribute("'+o.default.TABLE_ENTRY_ID_ATTRIBUTE+'",',1,'.model.id),this.$el.on("click",".deleteitem"']}]}]}}).call(this,"src/modules/SetTableEntryAvatarByUrl")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"libreAudio",name:"Libre Audio",description:"Allows creation and playback of tracks via their URL. Removes the 16 listener cap on My Audio Tracks. Refreshing the page is recommended after disabling/enabling this module in order to avoid issues. Players need to have VTTES installed to hear tracks added via Libre Audio.",category:"Libre",gmOnly:!1,media:{"libre_audio.png":"Add by URL button"},mods:[{includes:"vtt.bundle.js",stencils:[{search_from:"Unable to play music...Flash blocked",find:["if(",2,'.get("playing")&&',2,'.get("softstop")==!1)']},{search_from:"dismiss_myaudiocap",find:["`/audio_library/play/${campaign_id}/${",1,'.split("-")[0]}`'],replace:["((window.r20es && window.r20es.canPlaySound && window.r20es.canPlaySound(",2,")) ? ",1," : ",0,")"]},{find:['"My Audio"){if(d20.Campaign.players.filter(',3,"=>",3,'.get("online")).length>15'],replace:['"My Audio"){if(false']}]}]}}).call(this,"src/modules/LibreAudio")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"tokenBarPositionAdjust",name:"Token Status Display Adjustments",description:"Allows adjusting how status icons are displayed on tokens.",category:"Token",gmOnly:!1,media:{"adjusted_token_status.png":"Idle & opaque status icons displayed outside of the token."},mods:[{includes:"vtt.bundle.js",stencils:[{find:["},this._icon_defaults);this._positionAndScaleStatusIcons(",1,",",2,".length),",3,".save(),"],replace:["},this._icon_defaults);\nif(window.r20es && window.r20es.statusDraw) { \n  if(!window.r20es.statusDraw(",3,", this, ",2,", ",1,")) { \n    return;\n  } \n} \nelse { \n  this._positionAndScaleStatusIcons(",1,",",2,".length);\n  ",3,".save();\n}"]}]}],configView:{idle_status_icon_opacity:{display:"Idle status icon alpha (when the token is not selected)",type:"slider",sliderMin:0,sliderMax:1},active_status_icon_opacity:{display:"Selected status icon alpha",type:"slider",sliderMin:0,sliderMax:1},position_status_icons_outside_the_token:{display:"Place the status icons outside of the token.",type:"checkbox"}},config:{idle_status_icon_opacity:1,active_status_icon_opacity:1,position_status_icons_outside_the_token:!1}}}).call(this,"src/modules/TokenBarPositionAdjust")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"perfImprovements",name:"Performance Improvements",description:"Attempts to improve performance.",category:"Misc.",gmOnly:!1,config:{disable_frame_recorder:!0},configView:{disable_frame_recorder:{display:"Disable Renderer Profiler (if present)",type:"checkbox"}}}}).call(this,"src/modules/PerformanceImprovements")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),name:"Chrome Update Checker",id:"chromeUpdateChecker",description:"Automatically checks for new updates (Chrome only).",category:"Misc.",gmOnly:!1}}).call(this,"src/modules/ChromeUpdateChecker")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"webpackFixes",name:"Webpack Fixes",description:"",category:"Misc.",force:!0,mods:[{includes:"vtt.bundle.js",stencils:[{search_from:'throw new Error("Automatic publicPath is not supported in this browser");',search_from_index_offset:-20,find:["if(!",1,')throw new Error("Automatic publicPath is not supported in this browser");'],replace:[1,' = "https://cdn.roll20.net/production/";']}]}]}}).call(this,"src/modules/WebpackFixes")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"characterAvatarfromUrl",name:"Set Character Avatar from URL",description:"Allows you to set the character avatar image via a URL.",category:"Misc.",gmOnly:!1,media:{"set_avatar_from_url.png":"Set avatar image from URL button."}}}).call(this,"src/modules/CharacterAvatarFromURL")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"cameraStartPosition",name:"Default Camera Starting Position",description:"Allows GMs to set the default camera start position to a custom location on the map so that players will see that area first. Players MUST have the extension installed for this to work for them.",category:"Canvas",gmOnly:!1,media:{"default_camera_ui.png":"Setup UI."},config:{send_local_event_messages:!0,move_if_gm:!0},configView:{send_local_event_messages:{display:"Send local system messages for when you toggle/use the default camera",type:"checkbox"},move_if_gm:{display:"Set the default camera on map load even if you're the GM.",type:"checkbox"}}}}).call(this,"src/modules/CameraStartPosition")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"handoutImageFromUrl",name:"Set Handout Image from URL",description:"Allows you to set the handout image via a URL.",category:"Misc.",gmOnly:!1,media:{"set_handout_image_from_url.png":"Set handout image from URL button."}}}).call(this,"src/modules/HandoutImageFromURL")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"customPathWidth",name:"Custom Line Widths",description:"Allows you to set a custom line width for drawing.",category:"Canvas",gmOnly:!1}}).call(this,"src/modules/CustomPathWidth")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(23),r=n(0);t.default={filename:r.default(e),id:"extraRulers",name:"Extra Rulers",description:"Adds radius, box, thick line and cone ruler options. Other players need to have VTTES installed to see them. Available hotkeys: g q -> normal ruler; g r -> radius ruler; g c -> cone ruler; g e -> box ruler; g w -> line ruler.",category:"Canvas",gmOnly:!1,media:{"extra_rulers.png":"Two of the extra rulers."},config:{radius_mode:o.RADIUS_MODE_BURST,box_mode:o.BOX_MODE_BURST,cone_mode:o.CONE_MODE_FLAT,cone_degrees:57.29577951307855,line_mode:o.LINE_MODE_TOTAL_WIDTH,line_width:5,ruler_mode:o.RULER_NORMAL},mods:[{includes:"vtt.bundle.js",stencils:[{find:["})}setMode(",1,"){"],replace:[0,"if(window.r20es && window.r20es.extra_ruler_set_mode) {window.r20es.extra_ruler_set_mode(",1,");}"]},{find:["function setMode(",7,"){"],replace:[0,"if(window.r20es && window.r20es.extra_ruler_set_mode) {window.r20es.extra_ruler_set_mode(",7,");}"]},{search_from:"[-10.16,-24.53]",search_from_index_offset:-700,find:[";var ",-1,"=function(",2,",",3,","]},{find:["y:[0,1]};"],replace:[0,"if(window.r20es && window.r20es.render_extra_rulers) { window.r20es.render_extra_rulers(",2,",",3,"); }"]},{search_from:"d20.engine.drawMeasurements=function",find:[",x:",4,".x-d20.engine.currentCanvasOffset[0],"],replace:[0,"\nvttes_radius_mode: ",4,".vttes_radius_mode,\nvttes_box_mode: ",4,".vttes_box_mode,\nvttes_cone_mode: ",4,".vttes_cone_mode,\nvttes_cone_degrees: ",4,".vttes_cone_degrees,\nvttes_line_mode: ",4,".vttes_line_mode,\nvttes_line_width: ",4,".vttes_line_width,\nvttes_ruler_mode: ",4,".vttes_ruler_mode,"]},{search_from:"[-10.16,-24.53]",search_from_index_offset:-1700,find:["color:",5,".color,flags:",5,".flags,"],replace:[0,"\nvttes_radius_mode: ",5,".vttes_radius_mode,\nvttes_box_mode: ",5,".vttes_box_mode,\nvttes_cone_mode: ",5,".vttes_cone_mode,\nvttes_cone_degrees: ",5,".vttes_cone_degrees,\nvttes_line_mode: ",5,".vttes_line_mode,\nvttes_line_width: ",5,".vttes_line_width,\nvttes_ruler_mode: ",5,".vttes_ruler_mode,"]},{find:["d20.engine.announceMeasure=function(",6,"){"],replace:[0,"\nif(window.r20es && window.r20es.extra_ruler_set_mode) {\n  ",6,".vttes_radius_mode = window.r20es.extra_ruler.radius_mode;\n  ",6,".vttes_box_mode = window.r20es.extra_ruler.box_mode;\n  ",6,".vttes_cone_mode = window.r20es.extra_ruler.cone_mode;\n  ",6,".vttes_cone_degrees = window.r20es.extra_ruler.cone_degrees;\n  ",6,".vttes_line_mode = window.r20es.extra_ruler.line_mode;\n  ",6,".vttes_line_width = window.r20es.extra_ruler.line_width;\n  ",6,".vttes_ruler_mode = window.r20es.extra_ruler.ruler_mode;\n}"]}]}]}}).call(this,"src/modules/ExtraRulers")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),id:"fixPatienceJs",name:"fixPatienceJs",description:"",category:"Misc.",force:!0,mods:[{includes:"patience.js",find_replace:[{find:"document.querySelectorAll('head')[0]",replace:"document.body"},{find:"</style>",replace:""},{find:'<style id="patience__styles" type="text/css" media="screen">',replace:""},{find:"patinetHeader.innerHTML += patientStyles;",replace:"{\n            const el = document.createElement(\"style\");\n            el.id = 'patience__styles';\n            el.type = 'text/css';\n            el.media = 'screen';\n            el.innerText = patientStyles;\n            patinetHeader.appendChild(el);\n          }"}]}]}}).call(this,"src/modules/FixPatienceJs")},function(e,t,n){"use strict";(function(e){t.__esModule=!0;var o=n(0);t.default={filename:o.default(e),name:"Userscript Update Checker",id:"Userscript Update Checker",description:"Automatically checks for new updates (Userscript only).",category:"Misc.",gmOnly:!1}}).call(this,"src/modules/UserscriptUpdateChecker")},function(e,t,n){"use strict";t.__esModule=!0;var o=n(100),r=n(101),i=n(102),a=n(103),l=n(105),s=n(106),c=n(107),d=n(108),u=n(109),p=n(110),h=n(111),m=n(113),f=n(114),g=n(115),M=n(116),y=n(118),b=(n(119),n(120)),N=n(121),T=n(122),v=n(123),k=n(124),_=n(125),w=n(126),V=n(127),R=n(128),E=n(129),U=n(132),x=n(134),D=n(142),S=n(144),O=n(145),F=n(146),Z=n(147),j=n(148),W=n(149),z=n(150),I=n(151),L=n(164),C=n(165),A=n(167),Y=n(168),Q=n(169),B=n(170),G=n(171),J=n(174),H=n(179),X=n(180),P=n(183),K=[];t.VTTES_MODULES=K;var q=function(e){return K.push(e)};q(o.default),q(r.default),q(i.default),q(a.default),q(l.default),q(s.default),q(c.default),q(d.default),q(u.default),q(p.default),q(h.default),q(m.default),q(f.default),q(g.default),q(M.default),q(y.default),q(P.default),q(b.default),q(N.default),q(T.default),q(v.default),q(k.default),q(_.default),q(w.default),q(V.default),q(R.default),q(E.default),q(U.default),q(x.default),q(D.default),q(S.default),q(O.default),q(F.default),q(Z.default),q(j.default),q(W.default),q(z.default),q(J.default),q(I.default),q(L.default),q(C.default),q(A.default),q(Y.default),q(Q.default),q(B.default),q(G.default),q(H.default),q(X.default)},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(20),a=n(3),l=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.exposeOpacity=function(e){a.R20.setGMLayerOpacity(e)},n.prototype.onSettingChange=function(e,t,o){e===i.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY&&(n.exposeOpacity(o),a.R20.renderAll())},n.prototype.setup=function(){var e=this.getHook().config;n.exposeOpacity(e[i.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY]),a.R20.renderAll()},n.prototype.dispose=function(){t.prototype.dispose.call(this),delete window.r20es[i.ADJUSTABLE_OPACITY_PASSIVE_GM_LAYER_CONFIG_KEY],a.R20.renderAll()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/AdjustableOpacity")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=function(t){function n(){var n=t.call(this,e)||this;return n.overrideHandler=function(e){3===e.which&&(e.stopPropagation(),e.preventDefault(),n.originalTextEditHandler.call(e.target))},n.noContextMenu=function(e){return!1},n}return o(n,t),n.prototype.addStyleAsElement=function(e,t){var n=i.createCSSElement(t,e);document.body.appendChild(n)},n.prototype.onSettingChange=function(e,t,n){this.removeStyle(),this.addStyle()},n.prototype.addStyle=function(){var e=this.getHook().config,t="\n#page-toolbar {\n    "+("right"===e.location?"right: 440px":"left: 128px")+";\n    opacity: "+e.opacity+";\n}\n";"left"===e.location&&(t+='\n            #page-toolbar .handle {\n              "left: -30px; right: unset !important;"\n            }\n          '),this.addStyleAsElement(n.constantSheetId,"\n\n#page-toolbar .page-create-new-after {\n  display: none;\n}\n\n#page-toolbar .pages .availablepage .page-duplication {\n  display: none;\n  top: unset;\n  left: unset;\n  width: unset;\n  margin-top: unset;\n  right: 0;\n  padding: 10px;\n  z-index: 10000;\n}\n\n#page-toolbar .pages .availablepage .page-duplication .page-duplication__body .form-group .checkbox {\n  width: unset;\n}\n\n#page-toolbar .pages .availablepage .page-actions {\n  position: unset;\n  top: unset;\n  right: unset;\n  background-color: unset;\n  width: unset;\n  border-radius: unset;\n  border: unset;\n  flex-direction: unset;\n  justify-content: unset;\n  box-shadow: unset;\n  padding-right: 8px;\n}\n\n#page-toolbar .pages .availablepage span.page-title {\n  position: unset;\n  bottom: unset;\n  width: unset;\n  text-align: unset;\n  display: unset;\n  font-size: unset;\n  max-width: unset;\n}\n\n#page-toolbar {\n  right: unset;\n  left: unset;\n  max-width: 486px;\n\n  max-height: 80%;\n  width: 100%;\n  height: 100%;\n\n  background-color: #222;\n\n  border-radius: unset;\n\n  z-index: 10500;\n}\n\n#page-toolbar .pages .availablepage span input {\n    top: 5px;\n    height: 16px;\n    width: 90%;\n}\n\n#page-toolbar .activepage {\n    background-color: rgb(47, 135, 209) !important;\n}\n\n#page-toolbar .pages .availablepage img.pagethumb {\n    width: 32px;\n    height: 32px;\n    order: 0;\n    margin-top: 0;\n    cursor: pointer;\n\n    box-shadow: unset;\n    max-width: unset;\n    max-height: unset;\n    background-color: unset;\n}\n\n#page-toolbar .pages .availablepage .duplicate {\n    display: inline;\n    position: relative;\n    order: 1;\n    margin-left: 8px;\n    right: unset;\n    top: unset;\n    cursor: pointer;\n}\n\n#page-toolbar .pages .availablepage .settings {\n    position: relative;\n    display: inline;\n    order: 2;\n    margin-left: 8px;\n    cursor: pointer;\n\n    top: unset;\n    left: unset;\n    font-size: 20px;\n    background-color: unset;\n    padding: 0;\n    border-radius: 0\n\n}\n\n#page-toolbar .playerspecificbookmark {\n    position: relative;\n    order: 4;\n    left: 0 !important;\n    top: 0 !important;\n}\n\n#page-toolbar .playerbookmark.dropping {\n    left: 0;\n    border: none;\n    border: 3px solid yellow;\n}\n\n#page-toolbar .playerbookmark {\n    position: relative;\n    display: inline;\n    order: 5;\n    left: 0;\n    cursor: pointer;\n    width: 75px;\n    margin-left: 8px;\n    height: 30px;\n    box-sizing: border-box;\n}\n\n#page-toolbar .playerbookmark img {\n    transform: rotate(90deg) translateY(-15px) translateX(-25px);\n}\n\n#page-toolbar .pages .availablepage {\n    width: 100%;\n    height: 32px;\n    display: flex;\n    align-items: center;\n\n    text-align: unset;\n    margin-right: unset;\n    margin-top: unset;\n    position: unset;\n    cursor: unset;\n    vertical-align: unset;\n}\n\n#page-toolbar .pages .availablepage:nth-child(even) {\n    background-color: #333;\n}\n\n#page-toolbar .pages .availablepage span {\n    position: relative;\n    display: inline;\n    max-width: unset;\n    width: auto;\n    flex: 10;\n    order: 0;\n    margin-left: 8px;\n    font-size: 1.1em;\n    white-space: pre;\n\n    text-align: unset;\n    bottom: unset;\n    cursor: pointer;\n\n    min-width: 20px;\n    min-height: 20px;\n}\n\ndiv#page-toolbar:not(.closed) > div.handle.showtip {\n    top: -3px;\n    bottom: unset !important;\n}\n\n#page-toolbar .activepage img.pagethumb {\n    border: none;\n}\n\n#page-toolbar .availablepage:hover {\n    background-color: rgba(47, 135, 209, 0.2) !important;\n}\n\n#page-toolbar .pages div.availablepage:hover img.pagethumb {\n    filter: contrast(120%);\n    box-shadow: unset;\n}\n\n#page-toolbar .ui-sortable {\n    display: flex !important;\n    flex-direction: column;\n    height: auto;\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    padding-bottom: 32px;\n}\n\n#page-toolbar .container {\n    width: 100%;\n    height: 100%;\n    overflow-x: hidden;\n    padding: 0;\n    margin: 0;\n\n    white-space: unset;\n\n}\n"),this.addStyleAsElement(n.variableSheetId,t),console.log("adding style")},n.prototype.removeStyle=function(){i.findByIdAndRemove(n.constantSheetId),i.findByIdAndRemove(n.variableSheetId)},n.prototype.updateToolbarTop=function(){var e=document.querySelector("#page-toolbar");e.classList.contains("closed")?e.style.top="-"+e.clientHeight+"px":e.style.top="0"},n.prototype.setup=function(){var e=this,t=$("body").data("events").click;if(t){for(var o=0,r=t;o<r.length;o++){var i=r[o];if(i.selector===n.textChangeSelector){this.originalTextEditHandler=i.handler;break}}this.originalTextEditHandler||console.error("Failed to find page name text change click event")}else console.error("Failed to find 'click' event in the body element.");this.originalTextEditHandler&&($("body").off("click",n.textChangeSelector,this.originalTextEditHandler),$("body").on("mousedown",n.textChangeSelector,this.overrideHandler),$("body").on("contextmenu",n.textChangeSelector,this.noContextMenu),console.log("isntalled new text edit handler"),console.log(this.originalTextEditHandler)),this.addStyle(),this.updateToolbarTop(),setTimeout(function(){e.updateToolbarTop()},1e3)},n.prototype.forEachEvent=function(e,t){for(var n in e)for(var o=0,r=e[n];o<r.length;o++){t(n,r[o].handler)}},n.prototype.dispose=function(){this.removeStyle(),this.updateToolbarTop(),$("body").off("mousedown",n.textChangeSelector,this.overrideHandler),$("body").on("click",n.textChangeSelector,this.originalTextEditHandler),$("body").off("contextmenu",n.textChangeSelector,this.noContextMenu)},n.constantSheetId="r20es-alternative-page-toolbar-menu-constant-sheet",n.variableSheetId="r20es-alternative-page-toolbar-menu-variable-sheet",n.textChangeSelector="#page-toolbar .pages .availablepage span",n}(r.R20Module.OnAppLoadBase);t.default=function(){(new a).install()}}).call(this,"src/modules/AlternatePageToolbarMenu")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=n(3),l=function(t){function n(){var n=t.call(this,e)||this;return n.sheetId="r20es-alternative-radial-menu-sheet",n.ui_on_mutate=function(e){for(var t=0,o=e;t<o.length;t++){o[t].addedNodes.forEach(function(e){if("radial-menu"===e.id){var t=a.R20.getSelectedTokens();if(1==t.length){var o=n.getHook().config,r=t[0],i=a.R20.getCanvasZoom()/2,l=Math.cos(r.angle*Math.PI/180),s=Math.abs(l*r.width);s=s<=1e-5?r.height:s,Math.abs(Math.floor(r.angle)%360)>=1e-5&&(s+=240*i),console.log(s,r.angle,r.width);for(var c=s*i,d=0,u=e.children;d<u.length;d++){var p=u[d];if(p.classList.contains("button-1")||p.classList.contains("button-2")||p.classList.contains("button-6")){var h=-c-30-5;o.superMinimal&&(h+=30),p.classList.contains("button-6")?p.style.transform="translateX("+h+"px) translateY(-105px)":p.style.transform="translateX("+h+"px) translateY(-14px)"}else if(p.classList.contains("button-3")||p.classList.contains("button-4")||p.classList.contains("button-5")){var m=c+30+5+10;p.style.transform="translateX("+m+"px) translateY(-75px)"}}}}})}},n.try_install_auto_width=function(){n.getHook().config.auto_width&&(n.mutation_observer=new MutationObserver(n.ui_on_mutate),n.mutation_observer.observe(document.getElementById("editor-wrapper"),{childList:!0,subtree:!0}))},n.try_uninstall_auto_width=function(){n.mutation_observer.disconnect()},n}return o(n,t),n.prototype.addStyle=function(){var e=this.getHook().config;console.log(e);var t="\n\n#radial-menu .button {\n  position: static;\n  height: auto;\n  width: 60px;\n  border-radius: 0px;\n  border: none;\n}\n\n#radial-menu .button.open {\n  opacity: "+e.opacity+";\n}\n\n#radial-menu .button-1, \n#radial-menu .button-2,\n#radial-menu .button-6 {\n  transform: translateX(-65px) translateY(-14px);\n  z-index: 5;\n}\n\n#radial-menu .button-6 {\n  transform: translateX(-65px) translateY(-105px);\n}\n\n#radial-menu .button-3, \n#radial-menu .button-4,\n#radial-menu .button-5 {\n  transform: translateX(75px) translateY(-75px);\n}\n\n#radial-menu .button div.inner {\n  margin: 0px;\n  border-radius: 0px;\n}\n\n#radial-menu .markermenu.open {\n  border-radius: 0;\n  top: 62px;\n  padding-left: 0;\n  left: -80px;\n  width: 375px;\n  height: auto;\n}\n\n";e.superMinimal&&(t+="\n\n#radial-menu .markermenu.open {\n  left: -55px;\n  width: 260px;\n}\n\n#radial-menu .button div.inner {\n  background: rgba(0,0,0,0);\n}\n\n#radial-menu .button {\n  width: 30px;\n}\n\n#radial-menu .button-1, \n#radial-menu .button-2 {\n  transform: translateX(-35px) translateY(-14px);\n}\n\n#radial-menu .button-6 {\n  transform: translateX(-35px) translateY(-105px);\n}\n\n#radial-menu .button div.inner.hasnumber span {\n  text-shadow: 0px 0px 3px rgba(0,0,0,1);\n  text-shadow: 1px 1px 0px rgba(0,0,0,1);\n}\n\n#radial-menu .markermenu .markercolor {\n  width: 20px;\n  height: 20px;\n}\n\n#radial-menu .markermenu .markercolor,\n#radial-menu .markermenu .markericon {\n  margin: 0;\n  border: 2px solid white;\n}\n\n#radial-menu .markermenu .markercolor.active,\n#radial-menu .markermenu .markericon.active {\n  border: 2px solid black;\n}\n\n#radial-menu .button[data-action-type] div.inner {\n  background: unset;\n}\n\n");var n=i.createCSSElement(t,this.sheetId);document.body.appendChild(n)},n.prototype.removeStyle=function(){i.findByIdAndRemove(this.sheetId)},n.prototype.onSettingChange=function(e,t,n){this.removeStyle(),this.addStyle(),this.try_uninstall_auto_width(),this.try_install_auto_width()},n.prototype.setup=function(){this.try_install_auto_width(),this.addStyle()},n.prototype.dispose=function(){this.try_uninstall_auto_width(),this.removeStyle()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/AlternativeRadialMenu")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};t.__esModule=!0;var i=n(2),a=n(3),l=n(1),s=n(24),c=n(15),d=n(25),u=n(26),p=n(6),h=n(5),m=n(28),f=n(4),g=function(e){var t=e.attributes[N.propVideoEnabled];return"boolean"==typeof t&&t},M=function(e,t){var n;e.save(((n={})[N.propVideoEnabled]=t,n))},y=function(e){var t=e.attributes[N.propVideoSource];return"string"!=typeof t?"":t},b=function(e,t){var n;return e.save(((n={})[N.propVideoSource]=t,n))},N=function(t){function n(){var o=t.call(this,e)||this;return o.is_playing_video=!1,o.events=[],o.render_loop=function(e){if(o.is_playing_video){var t=70*o.current_page.attributes.width,n=70*o.current_page.attributes.height,r=d.scaleToFit(o.video.videoWidth,o.video.videoHeight,t,n);o.ctx.drawImage(o.video,-a.R20.getCanvasOffsetX(),-a.R20.getCanvasOffsetY(),r.x,r.y);var i=Math.ceil(a.R20.getCanvasWidth()/a.R20.getCanvasZoom()),l=a.R20.getCanvasHeight()/a.R20.getCanvasZoom();o.ctx.fillStyle=a.R20.getBackgroundStyle(),o.ctx.fillRect(0,r.y-a.R20.getCanvasOffsetY(),i,l),o.ctx.fillRect(r.x-a.R20.getCanvasOffsetX(),0,i,l),requestAnimationFrame(o.render_loop)}},o.manual_composite=function(){try{var e=window.d20.engine.final_canvas;o.manual_composite_canvas_ctx.fillStyle="rgba(0,0,0,0)",o.manual_composite_canvas_ctx.globalCompositeOperation="copy";var t=a.R20.getCanvasZoom();o.manual_composite_canvas_ctx.fillRect(0,0,Math.ceil(a.R20.getCanvasWidth()/t),Math.ceil(a.R20.getCanvasHeight()/t)),o.manual_composite_canvas_ctx.drawImage(e,0,0,o.manual_composite_canvas.width,o.manual_composite_canvas.height)}catch(e){console.error("composite ex"),console.error(e)}},o.beginVideo=function(){console.log("[AnimBackgrounds] beginVideo while current_runner"),o.is_playing_video=!0,o.canvas.style.display="block";var e=function(){try{var e=y(o.current_page);o.video.setAttribute("vttes-src",e),o.video.src=e,o.video.play(),console.log(o.video),console.log("[AnimBackgrounds] current_runner.start succeeded!"),o.roll20_composite_canvas.style.display="none",o.roll20_composite_canvas.id="babylonCanvas2",o.manual_composite_canvas.style.display="block",o.manual_composite_canvas.id="babylonCanvas"}catch(e){console.error(e)}};if(e(),u.isChromium())for(var t=["mousedown","scroll","keydown"],n=function(){e();for(var o=0,r=t;o<r.length;o++){var i=r[o];document.body.removeEventListener(i,n)}},r=0,i=t;r<i.length;r++){var l=i[r];document.body.addEventListener(l,n)}o.onResizeCanvas(a.R20.getCanvasWidth(),a.R20.getCanvasHeight()),o.onSetZoom(a.R20.getCanvasZoom()),requestAnimationFrame(o.render_loop),a.R20.renderAll(),window.r20es.manual_composite=o.manual_composite},o.can_play=function(){return y(o.current_page).length>0&&g(o.current_page)},o.onPropChange=function(){console.log("[AnimBackgrounds] onPropChange while current_runner"),o.endVideo(),o.can_play()&&o.beginVideo()},o.initPage=function(){o.endVideo();var e=a.R20.getCurrentPage(),t=function(){return e};o.events=[c.EventSubscriber.subscribe("change:"+n.propVideoSource,o.onPropChange,t),c.EventSubscriber.subscribe("change:"+n.propVideoEnabled,o.onPropChange,t),c.EventSubscriber.subscribe("change:height",o.onPropChange,t),c.EventSubscriber.subscribe("change:width",o.onPropChange,t)],o.current_page=e,a.R20.renderAll(),o.can_play()&&o.beginVideo()},o.onResizeCanvas=function(e,t){o.is_playing_video&&(console.log("[AnimBackgrounds] onResizeCanvas while is_playing_video"),o.canvas.width=e,o.canvas.height=t,o.manual_composite_canvas.width=e,o.manual_composite_canvas.height=t,o.onSetZoom(a.R20.getCanvasZoom()))},o.overrideSetCanvasSize=function(e,t){o.original_resize_function(e,t),o.onResizeCanvas(e,t)},o.onSetZoom=function(e){o.is_playing_video&&(console.log("[AnimBackgrounds] onSetZoom while is_playing_video"),o.ctx.restore(),o.ctx.save(),o.ctx.scale(e,e))},o.ui_show_configurationsetup_dialog=function(){o.setup_dialog.show(o,o.current_page)},o.trampoline_draw_background=function(e,t){if(o.is_playing_video){var n=e.fillStyle,r=e.globalCompositeOperation;e.fillStyle="rgba(0,0,0,0)",e.globalCompositeOperation="copy";var i=a.R20.getCanvasZoom();e.fillRect(0,0,Math.ceil(a.R20.getCanvasWidth()/i),Math.ceil(a.R20.getCanvasHeight()/i)),e.fillStyle=n,e.globalCompositeOperation=r}else o.original_canvas_overlay_draw_background(e,t)},o}return o(n,t),n.prototype.endVideo=function(){console.log("[AnimBackgrounds] endVideo while current_runner"),window.r20es.manual_composite=void 0;var e=this.is_playing_video;this.is_playing_video=!1,this.canvas.style.display="none",this.roll20_composite_canvas.style.display="block",this.roll20_composite_canvas.id="babylonCanvas",this.manual_composite_canvas.style.display="none",this.manual_composite_canvas.id="babylonCanvas2",this.video.pause(),this.video.src="",e&&a.R20.renderAll()},n.prototype.set_volume=function(e){if(this.video)try{this.video.volume=e}catch(e){this.video.volume=.1}},n.prototype.onSettingChange=function(e,t,n){"muteAudio"===e&&this.video&&(this.video.muted=n),"audioVolume"===e&&this.video&&this.set_volume(n)},n.prototype.setup=function(){if(console.log("video before =================================="),this.canvas=l.DOM.createElement("canvas",null),this.canvas.style.position="absolute",this.ctx=this.canvas.getContext("2d"),this.ctx.save(),this.video=l.DOM.createElement("video",null),this.roll20_composite_canvas=document.querySelector("#babylonCanvas"),this.roll20_composite_canvas||console.error("[AnimatedBackgrounds] could not find rendering canvas!"),this.manual_composite_canvas=l.DOM.createElement("canvas",null,'id="babylonCanvas2" data-engine="Babylon.js v5.35.1" touch-action="none" style="touch-action: none; display: none; cursor: inherit;"'),this.manual_composite_canvas.style.display="none",this.manual_composite_canvas_ctx=this.manual_composite_canvas.getContext("2d"),this.original_resize_function=window.d20.engine.setCanvasSize,window.d20.engine.setCanvasSize=this.overrideSetCanvasSize,window.r20es.onZoomChange=this.onSetZoom,window.r20es.onResizeCanvas=this.onResizeCanvas,this.original_canvas_overlay_draw_background=window.d20.canvas_overlay.drawBackground,window.d20.canvas_overlay.drawBackground=this.trampoline_draw_background,this.initPage(),window.r20es.onPageChange.on(this.initPage),a.R20.isGM()){this.show_settings_element=l.DOM.createElement("div",{title:"Animated Background Setup (VTTES)",style:{cursor:"pointer",position:"absolute",top:"0",right:"436px",maxWidth:"32px",maxHeight:"32px",zIndex:"10000",backgroundColor:"#e18e42",padding:"0px 0px 1px",borderRadius:"3px;"},onClick:this.ui_show_configurationsetup_dialog},l.DOM.createElement("img",{src:"https://github.com/encharm/Font-Awesome-SVG-PNG/raw/master/black/png/32/film.png",maxWidth:"28",maxHeight:"28",alt:"ANIM"})),document.body.appendChild(this.show_settings_element),console.log(this.show_settings_element)}this.setup_dialog=new v;var e=this.getHook().config;this.video.loop=!0,this.video.autoplay=!0,this.video.muted=e.muteAudio,this.set_volume(e.audioVolume);var t=this.roll20_composite_canvas;t&&(t.parentNode.insertBefore(this.canvas,t),this.canvas.width=t.width,this.canvas.height=t.height,t.parentNode.insertBefore(this.manual_composite_canvas,t),this.manual_composite_canvas.width=t.width,this.manual_composite_canvas.height=t.height)},n.prototype.dispose=function(){t.prototype.dispose.call(this),console.log("[AnimBackgrounds] cleanupPage"),this.endVideo();for(var e=0,n=this.events;e<n.length;e++){n[e].unsubscribe()}this.video=null,this.ctx=null,this.canvas.remove(),this.canvas=null,this.roll20_composite_canvas=null,this.manual_composite_canvas.remove(),this.manual_composite_canvas_ctx=null,window.d20.engine.setCanvasSize=this.original_resize_function,window.r20es.onZoomChange=null,window.r20es.onResizeCanvas=null,window.d20.canvas_overlay.drawBackground=this.original_canvas_overlay_draw_background,this.original_canvas_overlay_draw_background=null,this.show_settings_element.remove(),this.show_settings_element=null,this.setup_dialog.dispose(),window.r20es.onPageChange.off(this.initPage)},n.propVideoSource="r20es_video_src",n.propVideoEnabled="r20es_video_enabled",n}(i.R20Module.OnAppLoadBase),T=function(e,t,n){var o=document.createElement("video");o.crossorigin="anonymous",o.volume=0;var r=function(){o.pause(),o.removeEventListener("error",i),o.removeEventListener("canplay",a),o.src=""},i=function(e){r(),console.log("check_if_url_is_video_stream error:",e),n()},a=function(e){r(),t()};o.addEventListener("error",i),o.addEventListener("canplay",a),o.src=e,console.log(e),o.play()},v=function(e){function t(){var t=e.call(this)||this;return t.onChangeEnabled=function(e){M(t.page,e.target.checked)},t.ui_is_invalid_media_url=!1,t.onBlurUrl=function(e){e.stopPropagation(),t.ui_on_update_url_input(e.target.value)},t.ui_on_update_url_input=function(e){b(t.page,e),t.ui_verify_media_url(e,!0)},t.module_get_history=function(){return t.parent_module.getHook().config.video_history},t.module_save_history=function(e){return t.parent_module.setConfigValue("video_history",e)},t.ui_verify_media_url=function(e,n){T(e,function(){if(n){var o=t.module_get_history();m.removeByReference(o,e),o.unshift(e),t.module_save_history(o)}t.ui_is_invalid_media_url=!1,t.rerender()},function(){t.ui_is_invalid_media_url=!0,t.rerender()})},t.ui_toggle_history=function(){t.show_history=!t.show_history,t.rerender()},t.show_history=!1,t.ui_history_url_attrib="url",t.ui_history_retrieve_url=function(e){return e.target.getAttribute(t.ui_history_url_attrib)},t.ui_history_remove=function(e){var n=t.ui_history_retrieve_url(e),o=t.module_get_history();m.removeByReference(o,n),t.module_save_history(o),t.rerender()},t.ui_history_select=function(e){var n=t.ui_history_retrieve_url(e);t.ui_on_update_url_input(n)},t}return o(t,e),t.prototype.show=function(e,t){this.parent_module=e,this.page=t,this.internalShow(),this.ui_verify_media_url(y(t),!1)},t.prototype.render=function(){var e=this,t=this.module_get_history(),n=[],o=g(this.page),i=y(this.page);if(this.show_history){for(var a=function(t,n){return t.setAttribute(e.ui_history_url_attrib,n)},c=0,d=t;c<d.length;c++){var u=d[c],p={width:"auto",marginRight:"8px"},m=l.DOM.createElement("input",{style:p,className:"btn",type:"button",value:"X",onClick:this.ui_history_remove}),M=l.DOM.createElement("input",{style:p,className:"btn",type:"button",value:"Use",onClick:this.ui_history_select}),b=l.DOM.createElement("span",{title:u},f.nearly_format_file_url(u));a(m,u),a(M,u),n.push(l.DOM.createElement("div",null,m,M,b))}0==t.length&&n.push(l.DOM.createElement("div",null,"Nothing here!"))}var N=l.DOM.createElement("span",null);return this.ui_is_invalid_media_url?(l.DOM.apply_style(N,r({float:"right"},s.CommonStyle.error_span)),N.innerText="Invalid: Not a direct video stream"):(l.DOM.apply_style(N,r({float:"right"},s.CommonStyle.success_span)),N.innerText="URL is valid!"),l.DOM.createElement(h.Dialog,null,l.DOM.createElement(h.DialogHeader,null,l.DOM.createElement("h2",null,"Animated Background Setup")),l.DOM.createElement(h.DialogBody,null,l.DOM.createElement("div",null,l.DOM.createElement("i",null,"Disclaimer: Players must have VTTES installed to be able to see the animated background.")),l.DOM.createElement("br",null),l.DOM.createElement("div",null,l.DOM.createElement("a",{href:"javascript:void(0) // workaround for underpopup dialog from roll20 regarding leaving the site",onClick:function(){window.open("https://gist.github.com/justas-d/b4bc420993844d989c10e05226787e70","_blank")}},"Places to host the backgrounds")),l.DOM.createElement("br",null),l.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"auto auto",rowGap:"4px"}},l.DOM.createElement("b",null,"Enabled?"),l.DOM.createElement("div",null,l.DOM.createElement("input",{type:"checkbox",onChange:this.onChangeEnabled,checked:o})),l.DOM.createElement("span",null,l.DOM.createElement("b",null,"Media URL "),l.DOM.createElement("i",null,"(must be a direct stream)")),l.DOM.createElement("div",null,l.DOM.createElement("input",{style:{paddingLeft:"8px"},type:"text",onBlur:this.onBlurUrl,value:i}))),l.DOM.createElement("div",null,N),l.DOM.createElement("br",null),l.DOM.createElement("button",{style:"btn",onClick:this.ui_toggle_history},this.show_history?"Hide History":"Show History"),l.DOM.createElement("br",null),l.DOM.createElement("div",{style:{maxHeight:"500px",overflowY:"auto"}},n)),l.DOM.createElement(h.DialogFooter,null,l.DOM.createElement(h.DialogFooterContent,null,l.DOM.createElement("button",{style:{boxSizing:"border-box",width:"100%"},className:"btn",onClick:this.close},"OK"))))},t}(p.DialogBase);t.default=function(){(new N).install()}}).call(this,"src/modules/AnimatedBackgroundLayer")},function(e,t){var n,o,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{o="function"==typeof clearTimeout?clearTimeout:a}catch(e){o=a}}();var s,c=[],d=!1,u=-1;function p(){d&&s&&(d=!1,s.length?c=s.concat(c):u=-1,c.length&&h())}function h(){if(!d){var e=l(p);d=!0;for(var t=c.length;t;){for(s=c,c=[];++u<t;)s&&s[u].run();u=-1,t=c.length}s=null,d=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===a||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function f(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new m(e,t)),1!==c.length||d||l(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=f,r.addListener=f,r.once=f,r.off=f,r.removeListener=f,r.removeAllListeners=f,r.emit=f,r.prependListener=f,r.prependOnceListener=f,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=function(){function e(){this.sheetId="r20es-anim-no-token-radial"}return e.prototype.install=function(){var e=i.createCSSElement("\n#radial-menu .button {\n    -webkit-transition: none;\n    -moz-transition: none;\n    -o-transition: none;\n    -ms-transition:none;\n    transition:none;\n}\n\n#radial-menu .markermenu {\n  -webkit-transition: none;\n  -moz-transition: none;\n  -o-transition: none;\n  -ms-transition:none;\n  transition:none;\n}\n\n#radial-menu .button.open {\n    -webkit-transition-timing-function: none;\n    -webkit-transition-timing-function: none;\n    -moz-transition-timing-function: none;\n    -ms-transition-timing-function: none;\n    -o-transition-timing-function: none;\n    transition-timing-function: none;\n}",this.sheetId);document.body.appendChild(e)},e.prototype.uninstall=function(){i.findByIdAndRemove(this.sheetId)},e}(),l=function(){function e(){}return e.prototype.install=function(){},e.prototype.uninstall=function(){},e}(),s=function(t){function n(){var n=t.call(this,e)||this;return n.installedAnims=[],n.animModTable={},n.animModTable.disableRadial=new a,n.animModTable.disablePageToolbar=new l,n}return o(n,t),n.prototype.getAnimModData=function(e){if(!(e in this.animModTable))return console.error("Could not find anim mod data for key "+e),null;var t=this.animModTable[e];return console.log(t),t},n.prototype.shouldDoCustomAnim=function(e){var t=function(e){return"object"!=typeof e};if(t(window.r20es))return!1;if(t(window.r20es.hooks))return!1;if(t(window.r20es.hooks.animationDisable))return!1;if(t(window.r20es.hooks.animationDisable.config))return!1;var n=window.r20es.hooks.animationDisable.config[e];return"boolean"==typeof n&&n},n.prototype.installAnimMod=function(e){var t=this.getAnimModData(e);t&&(console.log("installing anim mod "+e),t.install(),this.installedAnims.push(e))},n.prototype.uninstallAnimMod=function(e){var t=this.getAnimModData(e);if(t){console.log("removing anim mod "+e+" "+t),t.uninstall();var n=this.installedAnims.indexOf(e);n>=0&&this.installedAnims.splice(n,1)}},n.prototype.onSettingChange=function(e,t,n){t!==n&&(n?this.installAnimMod(e):this.uninstallAnimMod(e))},n.prototype.setup=function(){window.r20es.shouldDoCustomAnim=this.shouldDoCustomAnim;var e=this.getHook().config;for(var t in this.animModTable)e[t]&&this.installAnimMod(t)},n.prototype.dispose=function(){window.r20es.shouldDoCustomAnim=null,t.prototype.dispose.call(this);for(var e=0,n=this.installedAnims;e<n.length;e++){var o=n[e];this.uninstallAnimMod(o)}},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/AnimationDisable")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){var n=t.call(this,e)||this;return n.was_bound=!1,n}return o(n,t),n.prototype.setup=function(){var e=this,t=function(e,t){if(!(i.R20.getSelectedTokens().length>0)){var n=$("#editor-wrapper")[0];n.scrollTop+=t,n.scrollLeft+=e}},n=window.Mousetrap.bind("",null);this.old_right=n._directMap["right:undefined"],this.old_left=n._directMap["left:undefined"],this.old_up=n._directMap["up:undefined"],this.old_down=n._directMap["down:undefined"],window.Mousetrap.bind("right",function(n,o){t(50,0),null!=e.old_right&&e.old_right(n,o)}),window.Mousetrap.bind("left",function(n,o){t(-50,0),null!=e.old_left&&e.old_left(n,o)}),window.Mousetrap.bind("up",function(n,o){t(0,-50),null!=e.old_up&&e.old_up(n,o)}),window.Mousetrap.bind("down",function(n,o){t(0,50),null!=e.old_down&&e.old_down(n,o)}),this.was_bound=!0},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.was_bound&&(this.was_bound=!1,window.Mousetrap.unbind("right"),window.Mousetrap.unbind("left"),window.Mousetrap.unbind("up"),window.Mousetrap.unbind("down"),null!=this.old_right&&window.Mousetrap.bind("right",this.old_right),null!=this.old_left&&window.Mousetrap.bind("left",this.old_left),null!=this.old_up&&window.Mousetrap.bind("up",this.old_up),null!=this.old_down&&window.Mousetrap.bind("down",this.old_down),this.old_right=null,this.old_left=null,this.old_up=null,this.old_down=null)},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new a).install()}}).call(this,"src/modules/ArrowKeysMoveCanvas")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(19),l=function(t){function n(){var n=t.call(this,e)||this;return n.onTurnOrderChanged=function(e){var t=n.getHook().config[a.DIALOG_OPEN_DELAY_KEY];setTimeout(function(){i.R20.getInitiativeWindow().model.save({initiativepage:!0})},t)},n._sub=i.R20.onInitiativeChange(n.onTurnOrderChanged),n}return o(n,t),n.prototype.setup=function(){i.R20.isGM()&&this._sub.subscribe()},n.prototype.dispose=function(){t.prototype.dispose.call(this),this._sub.unsubscribe()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/AutoOpenInitiativeTracker")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.ping=function(e){if(e.id){var t=i.R20.getCurrentPageTokenByUUID(e.id);if(t){var n=i.R20.try_get_canvas_object_model(t);n&&"objects"===n.get("layer")&&i.R20.ping(t.left,t.top,null,null,i.R20.CanvasLayer.PlayerTokens)}}},n.prototype.setup=function(){i.R20.isGM()&&(window.r20es.pingInitiativeToken=n.ping)},n.prototype.dispose=function(){window.r20es.pingInitiativeToken=null},n}(r.R20Module.SimpleBase);t.default=function(){(new a).install()}}).call(this,"src/modules/AutoPingNextToken")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.select=function(e){if(e.id){var t=i.R20.getCurrentPageTokenByUUID(e.id);t&&i.R20.selectToken(t)}},n.prototype.setup=function(){i.R20.isGM()&&(window.r20es.selectInitiativeToken=n.select)},n.prototype.dispose=function(){window.r20es.selectInitiativeToken=null},n}(r.R20Module.SimpleBase);t.default=function(){(new a).install()}}).call(this,"src/modules/AutoSelectNextToken")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(29),l=function(t){function n(){var o=t.call(this,e)||this;return o.localInitiativeData=[],o.onTurnOrderChanged=function(e){return o.debouncedDoSorting()},o.doSorting=function(){var e=i.R20.getInitiativeData(),t=n.getNew(o.localInitiativeData,e);if(o.setLocalInitiative(e),!(t.length<=0||e.length<=0)){var r=o.getHook().config;try{if(o.localInitiativeData.length<=0||!r.respectFirstTokenPosition){console.log("NEW INITIATIVE");var l=o.getHook().config.sortBy;i.R20.orderInitiativeBy(l)}else{console.log("APPENDING NEW TOKENS");var s=e[0];l=o.getHook().config.sortBy;i.R20.orderInitiativeBy(l),e=i.R20.getInitiativeData();for(var c=null,d=0;d<e.length;d++)if(a.isEqual(e[d],s)){c=d;break}if(null===c)return console.error("Could not find firstTokenNewIdx"),void console.error(e);var u=[];for(d=c;d<e.length;d++)u.push(e[d]);for(d=0;d<c;d++)u.push(e[d]);o.setLocalInitiative(u),i.R20.setInitiativeData(u)}}catch(e){console.error(e),o.setLocalInitiative(i.R20.getInitiativeData())}}},o.debouncedDoSorting=a.debounce(o.doSorting,1e3),o._sub=i.R20.onInitiativeChange(o.onTurnOrderChanged),o}return o(n,t),n.getNew=function(e,t){for(var n=[],o=0,r=t;o<r.length;o++){for(var i=r[o],a=!1,l=0,s=e;l<s.length;l++){var c=s[l];if(c.id===i.id&&c.pr===i.pr){a=!0;break}}a||n.push(i)}return n},n.prototype.setLocalInitiative=function(e){this.localInitiativeData=JSON.parse(JSON.stringify(e))},n.prototype.setup=function(){i.R20.isGM()&&(this._sub.subscribe(),this.setLocalInitiative(i.R20.getInitiativeData()))},n.prototype.dispose=function(){t.prototype.dispose.call(this),this._sub.unsubscribe()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/AutoSortInitiative")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(3),s=n(11),c=n(8),d=n(112),u=n(9),p=function(t){function n(){var n=t.call(this,e)||this;return n.onDialogClose=function(e){return r(n,void 0,void 0,function(){var e,t,n,o,a,c,d,u,p,h,m,f,g=this;return i(this,function(M){switch(M.label){case 0:if(!(e=this.selectDialog.getData()))return[2];if(t=l.R20.getSelectedTokens(),n=this.getHook().config,o=n.delayBetweenRolls,a=n.reselectAfter,c=n.performRollsSequentially,l.R20.unselectTokens(),d=function(t){return r(g,void 0,void 0,function(){return i(this,function(n){switch(n.label){case 0:return l.R20.selectToken(t),c?[4,l.R20.say_async(e)]:[3,2];case 1:return n.sent(),[3,3];case 2:l.R20.say(e),n.label=3;case 3:return[2]}})})},u=function(){if(l.R20.hideTokenRadialMenu(),l.R20.hideTokenContextMenu(),a)for(var e=0,n=t;e<n.length;e++){var o=n[e];l.R20.addTokenToSelection(o)}},0!==o)return[3,5];p=0,h=t,M.label=1;case 1:return p<h.length?(m=h[p],[4,d(m)]):[3,4];case 2:M.sent(),M.label=3;case 3:return p++,[3,1];case 4:return u(),[3,10];case 5:f=0,M.label=6;case 6:return f<t.length?[4,s.promiseWait(o)]:[3,10];case 7:return M.sent(),[4,d(t[f])];case 8:M.sent(),f+1===t.length&&u(),M.label=9;case 9:return f++,[3,6];case 10:return[2]}})})},n.bulkMacroButtonClicked=function(e){var t={},o=function(e,n){n in t||(t[n]={});t[n][e.get("id")]={name:e.get("name"),action:e.get("action")}},r=l.R20.getCurrentPlayer(),i=l.R20.getSelectedTokens();console.log(i);for(var a=0,s=r.macros.models;a<s.length;a++){o(s[a],"Player Macros")}var c=i.reduce(function(e,t){var n=l.R20.try_get_canvas_object_model(t);if(!n)return e.uniq++,e;var o=n.character?n.character.get("id"):n.get("id");return o in e.map||(e.uniq++,e.map[o]=!0,n.character&&e.arr.push(n.character)),e},{map:{},arr:[],uniq:0});if(1===c.uniq&&c.arr.length>0)for(var d=0,u=c.arr[0].abilities.models;d<u.length;d++){o(u[d],"Token Macros")}console.log(t),n.selectDialog.show(t)},n}return o(n,t),n.prototype.setup=function(){l.R20.isGM()&&(this.selectDialog=new d.default,this.selectDialog.getRoot().addEventListener("close",this.onDialogClose),c.TokenContextMenu.addButton("Roll Bulk Macro",this.bulkMacroButtonClicked,u.TOKEN_CONTEXT_MENU_ORDER_ROLL_BULK_MACRO,{mustHaveSelection:!0}))},n.prototype.dispose=function(){this.selectDialog&&this.selectDialog.dispose(),t.prototype.dispose.call(this),c.TokenContextMenu.removeButton("Roll Bulk Macro",this.bulkMacroButtonClicked)},n}(a.R20Module.OnAppLoadBase);t.default=function(){(new p).install()}}).call(this,"src/modules/BulkMacro")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(6),a=n(5),l=function(e){function t(){var t=e.call(this,void 0,{maxWidth:"20%"})||this;return t.buttonClick=function(e){e.stopPropagation(),t.setData(e.target.getAttribute("data-r20es-macro-action")),t.close()},t}return o(t,e),t.prototype.reset=function(){this.macros=void 0},t.prototype.show=function(t){this.macros=t,e.prototype.internalShow.call(this)},t.prototype.render=function(){console.log(this.macros);var e=[];for(var t in this.macros){var n=this.macros[t],o=[];for(var i in n){var l=n[i];o.push(r.DOM.createElement("button",{className:"r20btn btn","data-r20es-macro-action":l.action,onClick:this.buttonClick},l.name))}e.push(r.DOM.createElement("div",null,r.DOM.createElement("h3",null,t),r.DOM.createElement("div",{className:"r20es-indent"},o)))}return r.DOM.createElement(a.Dialog,null,r.DOM.createElement(a.DialogHeader,null,r.DOM.createElement("h2",null,"Macro selection")),r.DOM.createElement(a.DialogBody,null,e),r.DOM.createElement(a.DialogFooter,null,r.DOM.createElement(a.DialogFooterContent,null,r.DOM.createElement("input",{style:{boxSizing:"border-box",width:"100%"},className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}))))},t}(i.DialogBase);t.default=l},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(1),l=function(e){return"boolean"==typeof e.attributes.vttes_default_camera_enabled&&("number"==typeof e.attributes.vttes_default_camera_zoom&&("number"==typeof e.attributes.vttes_default_camera_x&&"number"==typeof e.attributes.vttes_default_camera_y))},s=function(e){return!!l(e)&&e.attributes.vttes_default_camera_enabled},c="https://raw.githubusercontent.com/Rush/Font-Awesome-SVG-PNG/master/black/png/32/map-marker.png",d="https://raw.githubusercontent.com/Rush/Font-Awesome-SVG-PNG/master/black/png/32/close.png",u=function(t){function n(){var n=t.call(this,e)||this;return n.try_jump_to_default_camera=function(){var e=i.R20.getCurrentPage();if(i.R20.isGM()&&!n.getHook().config.move_if_gm)return;s(e)&&n.force_jump_to_default_camera()},n.force_jump_to_default_camera=function(){var e=i.R20.getCurrentPage(),t=e.attributes.vttes_default_camera_x,o=e.attributes.vttes_default_camera_y,r=e.attributes.vttes_default_camera_zoom,a=t-.5*i.R20.getCanvasWidth(),l=o-.5*i.R20.getCanvasHeight();(i.R20.set_zoom(r),setTimeout(function(){i.R20.set_camera_x(a),i.R20.set_camera_y(l)},100),i.R20.isGM())&&(n.getHook().config.send_local_event_messages&&i.R20.saySystem("GM: Jumping to default camera start location..."))},n.on_page_change=function(e){e?setTimeout(n.try_jump_to_default_camera,1e3):n.try_jump_to_default_camera(),n.hide_menu()},n.hide_menu=function(){n.menu_widget&&(n.menu_widget.remove(),n.menu_widget=null),n.toggle_menu_widget_img&&(n.toggle_menu_widget_img.src=c)},n.toggle=function(){var e=i.R20.getCurrentPage();n.getHook().config.send_local_event_messages&&(e.attributes.vttes_default_camera_enabled?i.R20.saySystem("GM: Disabled default camera"):i.R20.saySystem("GM: Enabled default camera")),e.save({vttes_default_camera_enabled:!e.attributes.vttes_default_camera_enabled}),n.show_menu()},n.set_from_current_camera=function(){var e=i.R20.get_camera_x(),t=i.R20.get_camera_y(),o=i.R20.getCanvasZoom(),r=e+.5*i.R20.getCanvasWidth(),a=t+.5*i.R20.getCanvasHeight();n.getHook().config.send_local_event_messages&&i.R20.saySystem("GM: Set default camera position: "+r+" "+a+" "+o),i.R20.getCurrentPage().save({vttes_default_camera_enabled:!0,vttes_default_camera_x:r,vttes_default_camera_y:a,vttes_default_camera_zoom:o}),n.show_menu()},n.preview_starting_camera=function(){n.force_jump_to_default_camera()},n.show_menu=function(){n.menu_widget&&(n.menu_widget.remove(),n.menu_widget=null),n.toggle_menu_widget_img.src=d;var e=null,t=i.R20.getCurrentPage(),o=a.DOM.createElement("button",{className:"btn",onclick:n.set_from_current_camera},"Set From Current Camera");if(l(t)){var r=a.DOM.createElement("button",{className:"btn",onclick:n.toggle});s(t)?(r.innerText="Enabled",r.className="btn btn-success"):(r.innerText="Disabled",r.className="btn btn-danger"),e=a.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridGap:"4px"}},r,o,a.DOM.createElement("button",{className:"btn",onclick:n.preview_starting_camera},"Preview Default Camera"))}else e=a.DOM.createElement("div",null,o);n.menu_widget=a.DOM.createElement("div",{style:{position:"absolute",top:"0px",right:"464px",zIndex:11,backgroundColor:"white",borderBottom:"1px solid gray",padding:"10px",borderLeft:"1px solid gray",borderRight:"1px solid gray",maxWidth:"450px",color:"#333"}},a.DOM.createElement("h3",{style:{color:"#333"}},"Default Camera Position (VTTES)"),a.DOM.createElement("p",null,"This controls the location of the default camera."),a.DOM.createElement("p",null,"When this is enabled, when players enter a page, their camera location and zoom level will be set to the one configured here."),a.DOM.createElement("b",null,"Players must have the extension installed for this to work."),a.DOM.createElement("div",{style:{marginBottom:"16px"}}),e),document.body.appendChild(n.menu_widget)},n}return o(n,t),n.prototype.setup=function(){var e=this;if(window.r20es.onPageChange.on(this.on_page_change),i.R20.isGM()){this.toggle_menu_widget_img=a.DOM.createElement("img",{src:c,maxWidth:"28",maxHeight:"28",alt:"CAM"}),this.toggle_menu_widget=a.DOM.createElement("div",{title:"Default Camera Position (VTTES)",style:{cursor:"pointer",position:"absolute",top:"0",right:"468px",maxWidth:"32px",maxHeight:"32px",zIndex:"10000",backgroundColor:"lightgreen",padding:"0px 0px 1px",borderRadius:"3px"},onclick:function(){e.menu_widget?e.hide_menu():e.show_menu()}},this.toggle_menu_widget_img),document.body.appendChild(this.toggle_menu_widget)}},n.prototype.dispose=function(){this.toggle_menu_widget&&this.toggle_menu_widget.remove(),this.menu_widget&&this.menu_widget.remove(),window.r20es.onPageChange.off(this.on_page_change),t.prototype.dispose.call(this)},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new u).install()}}).call(this,"src/modules/CameraStartPosition")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=n(3),l=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.doReplace=function(e,t){return i.replaceAll(e.model._blobcache.defaulttoken,e.model.get("id"),t.get("id"))},n.prototype.setup=function(){a.R20.isGM()&&(window.r20es.replaceIdOnDupe=n.doReplace)},n.prototype.dispose=function(){window.r20es.replaceIdOnDupe=null},n}(r.R20Module.SimpleBase);t.default=function(){(new l).install()}}).call(this,"src/modules/ChangeIdWhenDuplicating")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l="vttes-character-image-from-url",s=function(t){function n(){var n=t.call(this,e)||this;return n.set_image_from_url=function(e){e.stopPropagation();var t=e.target.getAttribute("data-characterid"),n=a.R20.getCharacter(t);if(n){var o=window.prompt("Set character avatar from URL:",n.attributes.avatar);null!=o&&(o?n.save({avatar:o}):alert("Invalid URL."))}else alert("Could not find character associated with sheet! (Id is: "+t+")")},n.observer_callback=function(e){for(var t=0,o=e;t<o.length;t++)for(var r=0,a=o[t].addedNodes;r<a.length;r++){var s=a[r];if(s.firstElementChild&&s.firstElementChild.classList.contains("charactereditor")){console.log(s);var c=s.getAttribute("data-characterid"),d=s.querySelector(".avatar");if(d){var u=i.DOM.createElement("button",{className:"btn "+l,onClick:n.set_image_from_url,"data-characterid":c,style:{marginTop:"8px"}},"VTTES: Set avatar image from URL");d.parentNode.insertBefore(u,d.nextElementSibling)}else console.error("Could not find avatar_el")}}},n}return o(n,t),n.prototype.setup=function(){this.observer=new MutationObserver(this.observer_callback),this.observer.observe(document.body,{childList:!0,subtree:!0})},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.observer&&this.observer.disconnect(),document.querySelectorAll("."+l).forEach(function(e){return e.remove()})},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/CharacterAvatarFromURL")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},i=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},a=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var l=n(2),s=n(3),c=n(1),d=n(12),u=n(4),p=n(13),h=n(5),m=n(30),f=n(4),g=n(11),M=n(6),y=n(5),b=n(117),N=n(14),T=function(e){function t(){var t=e.call(this,void 0,{minWidth:"30%"})||this;return t.types=[],t.num_checked=0,t.update_import_button_state=function(){t.num_checked<=0?t.import_button.disabled=!0:t.import_button.disabled=!1},t.on_check=function(e){e.target.checked?t.num_checked+=1:t.num_checked-=1,t.update_import_button_state()},t.on_click_import=function(e){for(var n=[],o=0,r=t.getRoot().querySelectorAll("input.vttes-component");o<r.length;o++){var i=r[o];if(i.checked)for(var a=i.getAttribute("repeating_id"),l=0,c=t.types;l<c.length;l++)for(var d=0,u=c[l].components;d<u.length;d++){(g=u[d]).repeating_id===a&&n.push(g)}}for(var p=[],h=0,m=n;h<m.length;h++)for(var g=m[h],M=s.R20.generate_repeating_uuid(),y=0,b=g.attributes;y<b.length;y++){var N=b[y],T={name:f.replaceAll(N.name||"",g.repeating_id,M),current:N.current,max:N.max};"string"==typeof T.current&&(T.current=f.replaceAll(N.current||"",g.old_character_id,t.pc.attributes.id)),"string"==typeof T.max&&(T.max=f.replaceAll(N.max||"",g.old_character_id,t.pc.attributes.id));var v=t.pc.attribs.create(T,{silent:!0});p.push({old_repeating_id:g.repeating_id,new_repeating_id:M,attribute:v})}for(var k=0;k<p.length;++k)for(var _=k+1;_<p.length;++_){var w=p[k],V=p[_],R=function(e,t){"string"==typeof e.attribute.attributes.current&&e.attribute.attributes.current.includes(t.old_repeating_id)&&e.attribute.save({current:f.replaceAll(e.attribute.attributes.current||"",t.old_repeating_id,t.new_repeating_id)})};R(w,V),R(V,w)}t.close()},t.on_select_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_import_button_state()},t.on_unselect_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked&&(r.checked=!1,t.num_checked-=1)}t.update_import_button_state()},t.on_select_all_checkboxes=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_import_button_state()},t.on_unselect_all_checkboxes=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){o[n].checked=!1}t.num_checked=0,t.update_import_button_state()},t}return o(t,e),t.prototype.show=function(t,n){this.types=[],this.pc=t,this.num_checked=0,this.types=[];for(var o,r=function(e){(o=i.types.find(function(t){return t.name===e.type}))||(o={name:e.type,components:[]},i.types.push(o)),o.components.push(e)},i=this,a=0,l=n.components;a<l.length;a++){r(l[a])}this.types.sort(function(e,t){return N.default(e,t,function(e){return e.name})}),e.prototype.internalShow.call(this)},t.prototype.render=function(){for(var e=[],t=0,n=this.types;t<n.length;t++){for(var o=n[t],r=[],i=0,a=o.components;i<a.length;i++){var l=a[i],s=c.DOM.createElement("input",{className:"vttes-component",type:"checkbox",checked:!0,onChange:this.on_check,style:{marginRight:"4px"}});this.num_checked+=1,s.setAttribute("repeating_id",l.repeating_id);var d=c.DOM.createElement("div",null,s,l.name);r.push(d)}e.push(c.DOM.createElement("div",{style:{minWidth:"180px"}},c.DOM.createElement("hr",null),c.DOM.createElement("h3",{style:{display:"grid",gridTemplateColumns:"1.5fr 1fr 1fr",gridGap:"5px",alignItems:"center"}},o.name,c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all},"Select All"),c.DOM.createElement("button",{className:"btn",onClick:this.on_unselect_all},"Unselect All")),c.DOM.createElement("div",null,r)))}return this.import_button=c.DOM.createElement("input",{className:"r20btn btn btn-success",type:"button",onClick:this.on_click_import,value:"Import Selected",disabled:!0}),this.num_checked>0&&(this.import_button.disabled=!1),c.DOM.createElement(y.Dialog,null,c.DOM.createElement(y.DialogHeader,null,c.DOM.createElement("h2",null,"Component Import")),c.DOM.createElement(y.DialogBody,null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr"}},c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all_checkboxes},"Select All"),c.DOM.createElement("button",{className:"btn",onClick:this.on_unselect_all_checkboxes},"Unselect All")),e),c.DOM.createElement(y.DialogFooter,null,c.DOM.createElement(y.DialogFooterContent,null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridGap:"16px"}},c.DOM.createElement("input",{className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}),this.import_button))))},t}(M.DialogBase),v=function(e){function t(){var t=e.call(this,void 0,{minWidth:"30%"})||this;return t.types=[],t.export_individual_files=!1,t.num_checked=0,t.update_export_button_state=function(){t.num_checked<=0?t.export_button.disabled=!0:t.export_button.disabled=!1},t.on_check=function(e){e.target.checked?t.num_checked+=1:t.num_checked-=1,t.update_export_button_state()},t.on_click_export=function(e){for(var n=[],o=0,r=t.getRoot().querySelectorAll("input.vttes-component");o<r.length;o++){var i=r[o];if(i.checked){var a=i.getAttribute("type_key"),l=i.getAttribute("repeating_id"),s=i.getAttribute("name"),c=t.types.find(function(e){return e.key===a});if(c){var u=c.components.find(function(e){return e.repeating_id===l});if(u){for(var p=[],h=0,m=u.properties;h<m.length;h++){var g=m[h];p.push(g.attribute)}n.push({name:s,type:t.get_type_name(a),repeating_id:l,old_character_id:t.pc.attributes.id,attributes:p})}else console.error("Could not find component with repeating id '"+l+"'. Type array is",t.types,"component array is",u)}else console.error("Could not find type with key '"+a+"'. Type array is",t.types)}}if(t.export_individual_files){for(var M={},y=0,N=n;y<N.length;y++){var T=N[y],v=t.pc.attributes.name+" "+T.type+" "+T.name+" "+T.repeating_id+".vttes_component_bundle";v=f.replaceAll(v,"/",""),v=f.replaceAll(v,"\\","");var k={schema_version:1,type:"vttes_component_bundle",components:[T]},_=JSON.stringify(k,null,2),w=b.strToU8(_);M[v]=w}var V=b.zipSync(M),R=new Blob([V],{type:"application/octet-stream"}),E="Components from "+t.pc.attributes.name+".zip";d.saveAs(R,E)}else{k={schema_version:1,type:"vttes_component_bundle",components:n};var U="Components from "+t.pc.attributes.name+".vttes_component_bundle",x=JSON.stringify(k,null,2),D=new Blob([x],{type:"data:application/javascript;charset=utf-8"});d.saveAs(D,U)}t.close()},t.on_select_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_export_button_state()},t.on_unselect_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked&&(r.checked=!1,t.num_checked-=1)}t.update_export_button_state()},t.on_select_all_checkboxes=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_export_button_state()},t.get_type_name=function(e){return"attack"===e?"Attack":"inventory"===e?"Item":"proficiencies"===e?"Proficiency":"spell-1"===e?"Spell (lv 1)":"spell-2"===e?"Spell (lv 2)":"spell-3"===e?"Spell (lv 3)":"spell-4"===e?"Spell (lv 4)":"spell-5"===e?"Spell (lv 5)":"spell-6"===e?"Spell (lv 6)":"spell-7"===e?"Spell (lv 7)":"spell-8"===e?"Spell (lv 8)":"spell-9"===e?"Spell (lv 9)":"spell-cantrip"===e?"Cantrip":"tool"===e?"Tool":"traits"===e?"Trait":"npctrait"===e?"NPC Trait":"npcaction"===e?"NPC Action":"npcaction-l"===e?"NPC Legendary Action":e},t}return o(t,e),t.prototype.show=function(t){this.pc=t,this.num_checked=0,e.prototype.internalShow.call(this)},t.prototype.render=function(){var e=this;this.types=[];for(var t,n,o,r,i,a=function(e){if((h=e.attributes.name.split("_")).length<4)return"continue";if("repeating"!==h[0])return"continue";var a=h[1];t=h[2],n=h.slice(3,h.length),o=n.join("_"),(r=l.types.find(function(e){return e.key===a}))||(r={key:a,components:[]},l.types.push(r)),(i=r.components.find(function(e){return e.repeating_id===t}))||(i={repeating_id:t,name:"",properties:[]},r.components.push(i)),i.properties.push({name:o,attribute:e.attributes})},l=this,s=0,d=this.pc.attribs.models;s<d.length;s++){a(d[s])}var u=null,p=this.pc.attribs.models.find(function(e){return"_reporder_repeating_actions"===e.attributes.name});if(p){u={};for(var h=p.attributes.current.split(","),m=0;m<h.length;m++){var f=h[m];u[f]=m}}for(var g=0,M=this.types;g<M.length;g++){for(var b,T=M[g],v=function(e){var t=function(t){for(var n=0,o=e.properties;n<o.length;n++){var r=o[n];if(r.name===t)return r.attribute.current}return t};if(b=e.repeating_id,"attack"===T.key)b=t("atkname");else if("inventory"===T.key)b=t("itemname");else if("proficiencies"===T.key)b=t("name");else if("spell-1"===T.key)b=t("spellname");else if("spell-2"===T.key)b=t("spellname");else if("spell-3"===T.key)b=t("spellname");else if("spell-4"===T.key)b=t("spellname");else if("spell-5"===T.key)b=t("spellname");else if("spell-6"===T.key)b=t("spellname");else if("spell-7"===T.key)b=t("spellname");else if("spell-8"===T.key)b=t("spellname");else if("spell-9"===T.key)b=t("spellname");else if("spell-cantrip"===T.key)b=t("spellname");else if("tool"===T.key)b=t("toolname");else if("traits"===T.key)b=t("name");else if("npctrait"===T.key)b=t("name");else if("npcaction"===T.key)b=t("name");else if("npcaction-l"===T.key)b=t("name");else for(var n=0,o=e.properties;n<o.length;n++){var r=o[n];if(r.name.includes("name")){b=r.attribute.current;break}}e.name=b},k=0,_=T.components;k<_.length;k++){v(_[k])}u?T.components.sort(function(e,t){var n=u[e.repeating_id],o=u[t.repeating_id];return"number"==typeof n&&"number"==typeof o?n-o:N.default(e,t,function(e){return e.repeating_id})}):T.components.sort(function(e,t){return N.default(e,t,function(e){return e.name})})}this.types.sort(function(e,t){return N.default(e,t,function(e){return e.key})});for(var w=[],V=0,R=this.types;V<R.length;V++){for(var E=R[V],U=[],x=this.get_type_name(E.key),D=0,S=E.components;D<S.length;D++){var O=S[D],F=c.DOM.createElement("input",{className:"vttes-component",type:"checkbox",onChange:this.on_check,style:{marginRight:"4px"}});F.setAttribute("type_key",E.key),F.setAttribute("repeating_id",O.repeating_id),F.setAttribute("name",O.name);var Z=c.DOM.createElement("div",null,F,O.name);U.push(Z)}var j=c.DOM.createElement("div",{style:{minWidth:"180px"}},c.DOM.createElement("hr",null),c.DOM.createElement("h3",{style:{display:"grid",gridTemplateColumns:"1.5fr 1fr 1fr",gridGap:"5px",alignItems:"center"}},x,c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all},"Select All"),c.DOM.createElement("button",{className:"btn",onClick:this.on_unselect_all},"Unselect All")),c.DOM.createElement("div",null,U));w.push(j)}this.export_button=c.DOM.createElement("input",{disabled:!0,className:"r20btn btn btn-success",type:"button",onClick:this.on_click_export,value:"Export Selected"});var W=c.DOM.createElement("input",{checked:this.export_individual_files,type:"checkbox",style:{marginRight:"4px"},onChange:function(t){e.export_individual_files=t.target.checked}});return c.DOM.createElement(y.Dialog,null,c.DOM.createElement(y.DialogHeader,null,c.DOM.createElement("h2",null,"Component Export")),c.DOM.createElement(y.DialogBody,null,c.DOM.createElement("div",{style:{display:"grid"}},c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all_checkboxes},"Select All")),w),c.DOM.createElement(y.DialogFooter,null,c.DOM.createElement(y.DialogFooterContent,null,c.DOM.createElement("div",{style:{display:"grid"}},c.DOM.createElement("div",{style:{marginBottom:"10px"}},W,c.DOM.createElement("span",{style:{cursor:"pointer"},onclick:function(){return W.click()}},"Export to individual files, zipped.")),c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridGap:"16px"}},c.DOM.createElement("input",{className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}),this.export_button)))))},t}(M.DialogBase),k=function(e){function t(){var t=e.call(this,void 0,{minWidth:"30%"})||this;return t.num_checked=0,t.update_import_button_state=function(){t.num_checked<=0?t.import_button.disabled=!0:t.import_button.disabled=!1},t.on_check=function(e){e.target.checked?t.num_checked+=1:t.num_checked-=1,t.update_import_button_state()},t.on_click_import=function(e){for(var n=0,o=t.getRoot().querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];if(!r.checked){for(var i=r.getAttribute("id"),a=!1,l=0;l<t.data.abilities.length;l++){if(t.data.abilities[l].id==i){a=!0,t.data.abilities.splice(l,1);break}}a||console.error("Could not find ability with id '"+i+"'.")}}for(var c=0,d=t.data.abilities;c<d.length;c++){var u=d[c];t.pc.abilities.create({id:s.R20.generateUUID(),name:u.name,description:u.description,istokenaction:u.istokenaction,action:u.action,order:u.order})}t.close(),s.R20.rerender_character_sheet(t.pc)},t.on_select_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_import_button_state()},t.on_unselect_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked&&(r.checked=!1,t.num_checked-=1)}t.update_import_button_state()},t}return o(t,e),t.prototype.show=function(t,n){this.pc=t,this.num_checked=0,this.data=n,e.prototype.internalShow.call(this)},t.prototype.render=function(){for(var e=[],t=0,n=this.data.abilities;t<n.length;t++){var o=n[t],r=c.DOM.createElement("input",{className:"vttes-component",type:"checkbox",onChange:this.on_check,style:{marginRight:"4px"},checked:!0});this.num_checked+=1,r.setAttribute("id",o.id);var i=c.DOM.createElement("div",null,r,o.name);e.push(i)}return this.import_button=c.DOM.createElement("input",{className:"r20btn btn btn-success",type:"button",onClick:this.on_click_import,value:"Import Selected",disabled:!0}),this.num_checked>0&&(this.import_button.disabled=!1),c.DOM.createElement(y.Dialog,null,c.DOM.createElement(y.DialogHeader,null,c.DOM.createElement("h2",null,"Ability Import")),c.DOM.createElement(y.DialogBody,null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr"}},c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all},"Select All"),c.DOM.createElement("button",{className:"btn",onClick:this.on_unselect_all},"Unselect All")),e),c.DOM.createElement(y.DialogFooter,null,c.DOM.createElement(y.DialogFooterContent,null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridGap:"16px"}},c.DOM.createElement("input",{className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}),this.import_button))))},t}(M.DialogBase),_=function(e){function t(){var t=e.call(this,void 0,{minWidth:"30%"})||this;return t.export_individual_files=!1,t.num_checked=0,t.update_export_button_state=function(){t.num_checked<=0?t.export_button.disabled=!0:t.export_button.disabled=!1},t.on_check=function(e){e.target.checked?t.num_checked+=1:t.num_checked-=1,t.update_export_button_state()},t.on_click_export=function(e){for(var n=0,o=t.getRoot().querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];if(!r.checked){for(var i=r.getAttribute("id"),a=!1,l=0;l<t.abilities.length;l++){if(t.abilities[l].id==i){a=!0,t.abilities.splice(l,1);break}}a||console.error("Could not find ability with id '"+i+"'.")}}if(console.log(t.abilities),t.export_individual_files){for(var s={},c=0,u=t.abilities;c<u.length;c++){var p=u[c],h=t.pc.attributes.name+" "+p.name+" "+p.id+".vttes_character_ability_bundle";h=f.replaceAll(h,"/",""),h=f.replaceAll(h,"\\","");var m={schema_version:1,type:"vttes_character_ability_bundle",abilities:[p]},g=JSON.stringify(m,null,2),M=b.strToU8(g);s[h]=M}var y=b.zipSync(s),N=new Blob([y],{type:"application/octet-stream"}),T="Abilities from "+t.pc.attributes.name+".zip";d.saveAs(N,T)}else{m={schema_version:1,type:"vttes_character_ability_bundle",abilities:t.abilities};var v="Abilities from "+t.pc.attributes.name+".vttes_character_ability_bundle",k=JSON.stringify(m,null,2),_=new Blob([k],{type:"data:application/javascript;charset=utf-8"});d.saveAs(_,v)}t.close()},t.on_select_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked||(r.checked=!0,t.num_checked+=1)}t.update_export_button_state()},t.on_unselect_all=function(e){for(var n=0,o=e.target.parentElement.parentElement.querySelectorAll("input.vttes-component");n<o.length;n++){var r=o[n];r.checked&&(r.checked=!1,t.num_checked-=1)}t.update_export_button_state()},t}return o(t,e),t.prototype.show=function(t){this.pc=t,this.num_checked=0,this.abilities=[];for(var n=0,o=this.pc.abilities.models;n<o.length;n++){var r=o[n];this.abilities.push({action:r.attributes.action,description:r.attributes.description,id:r.id,istokenaction:r.attributes.istokenaction,name:r.attributes.name,order:r.attributes.order})}e.prototype.internalShow.call(this)},t.prototype.render=function(){for(var e=this,t=[],n=0,o=this.abilities;n<o.length;n++){var r=o[n],i=c.DOM.createElement("input",{className:"vttes-component",type:"checkbox",onChange:this.on_check,style:{marginRight:"4px"}});i.setAttribute("id",r.id);var a=c.DOM.createElement("div",null,i,r.name);t.push(a)}this.export_button=c.DOM.createElement("input",{disabled:!0,className:"r20btn btn btn-success",type:"button",onClick:this.on_click_export,value:"Export Selected"});var l=c.DOM.createElement("input",{checked:this.export_individual_files,type:"checkbox",style:{marginRight:"4px"},onChange:function(t){e.export_individual_files=t.target.checked}});return c.DOM.createElement(y.Dialog,null,c.DOM.createElement(y.DialogHeader,null,c.DOM.createElement("h2",null,"Ability Export")),c.DOM.createElement(y.DialogBody,null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridGap:"5px",alignItems:"center"}},c.DOM.createElement("button",{className:"btn",onClick:this.on_select_all},"Select All"),c.DOM.createElement("button",{className:"btn",onClick:this.on_unselect_all},"Unselect All")),t),c.DOM.createElement(y.DialogFooter,null,c.DOM.createElement(y.DialogFooterContent,null,c.DOM.createElement("div",{style:{display:"grid"}},c.DOM.createElement("div",{style:{marginBottom:"10px"}},l,c.DOM.createElement("span",{style:{cursor:"pointer"},onclick:function(){return l.click()}},"Export to individual files, zipped.")),c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridGap:"16px"}},c.DOM.createElement("input",{className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}),this.export_button)))))},t}(M.DialogBase),w=function(){var e={name:"",avatar:"",attrorder:"",abilorder:"",mancerdata:"",mancerget:"",mancerstep:""};return s.R20.isGM()&&(e.archived=!1,e.tags="",e.controlledby="",e.inplayerjournals="",e.defaulttoken="",e.bio="",e.gmnotes=""),e},V="r20es-handout-button-enabled-sheet",R=function(){var e={bio:null};return s.R20.isGM()&&(e.defaulttoken=null,e.gmnotes=null),e},E=function(e,t){return new Promise(function(n,o){var r=function(e){return!(e in t)};if(r("name"))return o("name not found");if(r("avatar"))return o("avatar not found");if(r("bio"))return o("bio not found");if(r("attribs"))return o("attribs not found");for(var i=0,a=t.attribs;i<a.length;i++){var l=a[i];if(!("name"in l))return o("Attribute index 0 doesn't have name");if(!("current"in l))return o("Attribute index 0 doesn't have current");if(!("max"in l))return o("Attribute index 0 doesn't have max")}s.R20.wipeObjectStorage(e.abilities),s.R20.wipeObjectStorage(e.attribs);var c=w();c.name=t.name,c.avatar=t.avatar;var d=R();d.bio=t.bio,e.updateBlobs(d),e.save(c,{success:function(e){n()}});for(var u=0,p=t.attribs;u<p.length;u++){var h=p[u];e.attribs.create(h,{silent:!0})}})},U=function(e,t){return new Promise(function(n,o){if(function(e){return!(e in t)}("name"))return o("name not found");for(var i=0,a=0,l=t.attribs;a<l.length;a++){if(!("name"in(u=l[a])))return o("Attribute index "+i+" doesn't have name");if(!("current"in u))return o("Attribute index "+i+" doesn't have current");if(!("max"in u))return o("Attribute index "+i+" doesn't have max");if(!("id"in u))return o("Attribute index "+i+" doesn't have id");i++}i=0;for(var c=0,d=t.abilities;c<d.length;c++){var u;if(!("name"in(u=d[c])))return o("Ability index "+i+" doesn't have name");if(!("description"in u))return o("Ability index "+i+" doesn't have description");if(!("istokenaction"in u))return o("Ability index "+i+" doesn't have istokenaction");if(!("action"in u))return o("Ability index "+i+" doesn't have action");if(!("order"in u))return o("Ability index "+i+" doesn't have order");i++}if(s.R20.wipeObjectStorage(e.abilities),s.R20.wipeObjectStorage(e.attribs),t.oldId){var p=JSON.stringify(t);p=f.replaceAll(p,t.oldId,e.attributes.id),t=JSON.parse(p)}var h=t.defaulttoken&&t.defaulttoken.length>0;t.oldId&&h&&(t.defaulttoken=f.replaceAll(t.defaulttoken,t.oldId,e.attributes.id));var m=r({},w());m.name=t.name,m.avatar=t.avatar,s.R20.isGM()&&(m.tags=t.tags,m.controlledby=t.controlledby,m.inplayerjournals=t.inplayerjournals);var g=R();t.bio&&(g.bio=t.bio),s.R20.isGM()&&t.gmnotes&&(g.gmnotes=t.gmnotes),s.R20.isGM()&&(h?(g.defaulttoken=t.defaulttoken,m.defaulttoken=(new Date).getTime()):(g.defaulttoken=null,m.defaulttoken="")),e.updateBlobs(g),e.save(m,{success:function(e){n()}});for(var M=0,y=t.attribs;M<y.length;M++){var b=y[M];e.attribs.create(b,{silent:!0})}for(var N=0,T=t.abilities;N<T.length;N++){var v=T[N];e.abilities.create(v,{silent:!0})}})},x=function(e,t){return new Promise(function(n,o){var r={archived:t.archived||!1,avatar:t.avatar||"",controlledby:t.controlledby||"",inplayerjournals:t.inplayerjournals||"",name:t.name||"",tags:t.tags||"[]"},i={notes:t.notes||""};s.R20.isGM()&&t.gmnotes&&(i.gmnotes=t.gmnotes||""),e.updateBlobs(i),e.save(r,{success:function(e){n()}})})},D=function(t){function n(){var o=t.call(this,e)||this;return o.sheetTab=null,o.on_journal_file_change=function(e){var t=$(e.target.parentNode).find("button")[0];console.log(t),t.disabled=!(e.target.files.length>0)},o.try_convert_file_handle_to_json=function(e){return i(o,void 0,void 0,function(){var t,n;return a(this,function(o){switch(o.label){case 0:return[4,u.readFile(e)];case 1:t=o.sent(),n=null;try{n=JSON.parse(t)}catch(e){throw console.log(e),"File is not a valid JSON file."}if(!n)throw"Data is null";return[2,n]}})})},o.on_import_click=function(e){e.stopPropagation();var t=c.DOM.createElement("input",{type:"file",accept:".json",multiple:!0});m.import_multiple_files(t,function(e){return i(o,void 0,void 0,function(){var t,n,o,r,i,l,c,d;return a(this,function(a){switch(a.label){case 0:return[4,this.try_convert_file_handle_to_json(e)];case 1:if(t=a.sent(),1!=(n=t.schema_version))return[3,6];i=s.R20.createCharacter(),a.label=2;case 2:return a.trys.push([2,4,,5]),[4,E(i,t)];case 3:return a.sent(),[3,5];case 4:throw o=a.sent(),i.destroy(),o;case 5:return[3,24];case 6:if(2!=n)return[3,11];i=s.R20.createCharacter(),a.label=7;case 7:return a.trys.push([7,9,,10]),[4,U(i,t)];case 8:return a.sent(),[3,10];case 9:throw r=a.sent(),i.destroy(),r;case 10:return[3,24];case 11:if(3!=n)return[3,23];if("character"!=t.type)return[3,16];i=s.R20.createCharacter(),a.label=12;case 12:return a.trys.push([12,14,,15]),[4,U(i,t.character)];case 13:return a.sent(),[3,15];case 14:throw l=a.sent(),i.destroy(),l;case 15:return[3,22];case 16:if("handout"!=t.type)return[3,21];c=s.R20.create_handout(),a.label=17;case 17:return a.trys.push([17,19,,20]),[4,x(c,t.handout)];case 18:return a.sent(),[3,20];case 19:throw d=a.sent(),c.destroy(),d;case 20:return[3,22];case 21:throw"Unknown type: "+t.type;case 22:return[3,24];case 23:throw"Unknown schema version: "+t.schema_version;case 24:return[2]}})})})},o.add_journal_widget=function(){if(window.is_gm){var e=document.getElementById("journal").getElementsByClassName("content")[0],t=c.DOM.createElement("div",{id:n.journalWidgetId},c.DOM.createElement(c.SidebarSeparator,null),c.DOM.createElement("div",null,c.DOM.createElement(c.SidebarCategoryTitle,null,"VTTES Importer"),c.DOM.createElement("button",{className:"btn",style:{display:"block",float:"left",width:"90%",marginBottom:"10px"},onClick:o.on_import_click},"Import Characters & Handouts")),c.DOM.createElement(c.SidebarSeparator,{big:"1px"}));e.appendChild(t)}},o.getPc=function(e){if(!e)return null;if(!e.hasAttribute("data-characterid"))return null;var t=e.getAttribute("data-characterid");if(!t)return null;var n=s.R20.getCharacter(t);return n||null},o.on_import_abilities_click=function(e){return i(o,void 0,void 0,function(){var t,n,o,r=this;return a(this,function(l){return e.stopPropagation(),(t=this.getPc(e.target))?(n=c.DOM.createElement("input",{type:"file",accept:".vttes_character_ability_bundle"}),o=function(){return i(r,void 0,void 0,function(){var e,r,i;return a(this,function(a){switch(a.label){case 0:n.removeEventListener("change",o),e=n.files[0],a.label=1;case 1:return a.trys.push([1,3,,4]),[4,this.try_convert_file_handle_to_json(e)];case 2:if(1!=(r=a.sent()).schema_version)throw"Unsupported version: "+r.schema_version;if("vttes_character_ability_bundle"!=r.type)throw"Unsupported data type: "+r.type;return this.import_ability_dialog.show(t,r),[3,4];case 3:return i=a.sent(),alert(i),console.log(i),[3,4];case 4:return[2]}})})},n.click(),n.addEventListener("change",o),[2]):[2]})})},o.on_export_abilities_click=function(e){e.stopPropagation();var t=o.getPc(e.target);t&&o.export_ability_dialog.show(t)},o.on_import_components_click=function(e){return i(o,void 0,void 0,function(){var t,n,o,r=this;return a(this,function(l){return e.stopPropagation(),(t=this.getPc(e.target))?(n=c.DOM.createElement("input",{type:"file",accept:".vttes_component_bundle"}),o=function(){return i(r,void 0,void 0,function(){var e,r,i;return a(this,function(a){switch(a.label){case 0:n.removeEventListener("change",o),e=n.files[0],a.label=1;case 1:return a.trys.push([1,3,,4]),[4,this.try_convert_file_handle_to_json(e)];case 2:if(1!=(r=a.sent()).schema_version)throw"Unsupported version: "+r.schema_version;if("vttes_component_bundle"!=r.type)throw"Unsupported data type: "+r.type;return this.import_component_dialog.show(t,r),[3,4];case 3:return i=a.sent(),alert(i),console.log(i),[3,4];case 4:return[2]}})})},n.click(),n.addEventListener("change",o),[2]):[2]})})},o.on_export_components_click=function(e){e.stopPropagation();var t=o.getPc(e.target);t&&o.export_component_dialog.show(t)},o.on_export_click=function(e){return i(o,void 0,void 0,function(){var t,n,o,r,i,l,s,c,u,p,h,m,f;return a(this,function(a){switch(a.label){case 0:return e.stopPropagation(),(t=this.getPc(e.target))?(n=new Promise(function(e){return t._getLatestBlob("defaulttoken",function(){e(!1)})}),o=g.promiseWait(3e3,!0),[4,Promise.race([n,o])]):[2];case 1:for(a.sent(),r={schema_version:3,type:"character",character:{oldId:t.attributes.id||"",name:t.attributes.name||"",avatar:t.attributes.avatar||"",bio:t._blobcache.bio||"",gmnotes:t._blobcache.gmnotes||"",defaulttoken:t._blobcache.defaulttoken||"",tags:t.attributes.tags||"",controlledby:t.attributes.controlledby||"",inplayerjournals:t.attributes.inplayerjournals||"",attribs:[],abilities:[]}},i=0,l=t.attribs.models;i<l.length;i++)s=l[i],r.character.attribs.push({name:s.attributes.name,current:s.attributes.current,max:s.attributes.max,id:s.attributes.id});for(c=0,u=t.abilities.models;c<u.length;c++)p=u[c],r.character.abilities.push({name:p.attributes.name,description:p.attributes.description,istokenaction:p.attributes.istokenaction,action:p.attributes.action,order:p.attributes.order});return h=r.character.name+".json",m=JSON.stringify(r,null,4),f=new Blob([m],{type:"data:application/javascript;charset=utf-8"}),d.saveAs(f,h),[2]}})})},o.on_overwrite_character_click=function(e){e.stopPropagation();var t=c.DOM.createElement("input",{type:"file",accept:".json"}),n=function(){return i(o,void 0,void 0,function(){var o,r,i,l,c;return a(this,function(a){switch(a.label){case 0:if(t.removeEventListener("change",n),o=t.files[0],!(r=this.getPc(e.target)))return alert("Could not find character that corresponds to sheet. Tell a programmer."),[2];if(!window.confirm("Are you sure you want to overwrite "+r.get("name")))return[2];(i=new h.LoadingDialog("Overwriting")).show(),a.label=1;case 1:return a.trys.push([1,12,,13]),[4,this.try_convert_file_handle_to_json(o)];case 2:return 1!=(l=a.sent()).schema_version?[3,4]:[4,E(r,l)];case 3:return a.sent(),[3,11];case 4:return 2!=l.schema_version?[3,6]:[4,U(r,l)];case 5:return a.sent(),[3,11];case 6:return 3!=l.schema_version?[3,10]:"character"!=l.type?[3,8]:[4,U(r,l.character)];case 7:return a.sent(),[3,9];case 8:throw"handout"==l.type?"Cannot overwrite a character with a handout file.":"Unsupported type : "+l.type;case 9:return[3,11];case 10:throw"Unsupported version: "+l.schema_version;case 11:return[3,13];case 12:return c=a.sent(),alert(c),console.log(c),[3,13];case 13:return i.dispose(),s.R20.rerender_character_sheet(r),[2]}})})};t.click(),t.addEventListener("change",n)},o.render_character_tab_widget=function(e){var t=s.R20.getCharacter(e.characterId);if(!t)return c.DOM.createElement("p",null,"Couldn't find the character associated with this dialog box! Tell a programmer.");var n=s.R20.canEditCharacter(t);return c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",columnGap:"16px",rowGap:"32px"}},c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Export"),c.DOM.createElement("p",null,"Export this character as a VTTES character JSON file.")),c.DOM.createElement("input",{type:"button",onClick:o.on_export_click,className:"button",style:{width:"auto"},"data-characterid":e.characterId,value:"Export"})),c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Overwrite"),c.DOM.createElement("p",null,"Overwrite this character with the character stored in the selected VTTES character JSON file.")),c.DOM.createElement("input",{type:"button",onClick:o.on_overwrite_character_click,className:"button",style:{width:"auto"},"data-characterid":e.characterId,value:n?"Overwrite":"You do not have permission to edit this character",disabled:!n})),c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Export Components"),c.DOM.createElement("p",null,"Export individual items, weapons, spells, traits etc of a character/NPC."),c.DOM.createElement("p",null,c.DOM.createElement("i",null,"Note that only the D&D 5e OGL sheet is supported at the time. However, other sheets should work (albeit they won't be user-friendly)."))),c.DOM.createElement("input",{type:"button",className:"button",onClick:o.on_export_components_click,style:{width:"auto"},"data-characterid":e.characterId,value:"Export Components"})),c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Import Components"),c.DOM.createElement("p",null,"Import components that were previously exported using the export components feature.")),c.DOM.createElement("input",{type:"button",className:"button",style:{width:"auto"},onClick:o.on_import_components_click,"data-characterid":e.characterId,value:n?"Import Components":"You do not have permission to edit this character",disabled:!n})),c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Export Abilities"),c.DOM.createElement("p",null,"Export character abilities individually or as a bundle.")),c.DOM.createElement("input",{type:"button",className:"button",onClick:o.on_export_abilities_click,style:{width:"auto"},"data-characterid":e.characterId,value:"Export Abilities"})),c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{width:"100%",display:"inline-block"}},c.DOM.createElement("h3",null,"Import Abilities"),c.DOM.createElement("p",null,"Export character abilities individually or as a bundle.")),c.DOM.createElement("input",{type:"button",className:"button",style:{width:"auto"},onClick:o.on_import_abilities_click,"data-characterid":e.characterId,value:n?"Import Abilities":"You do not have permission to edit this character",disabled:!n})))},o.setup=function(){o.export_component_dialog=new v,o.import_component_dialog=new T,o.export_ability_dialog=new _,o.import_ability_dialog=new k,o.sheetTab=p.SheetTab.add("Export & Overwrite",o.render_character_tab_widget),o.add_journal_widget(),window.r20es.overwrite_handout=function(e){return i(o,void 0,void 0,function(){var t,n,o,r,l=this;return a(this,function(d){return e.stopPropagation(),t=$(e.target).parents(".ui-dialog-titlebar").siblings(".dialog").attr("data-handoutid"),(n=s.R20.getHandout(t))?(o=c.DOM.createElement("input",{type:"file",accept:".json"}),r=function(){return i(l,void 0,void 0,function(){var e,t,i,l;return a(this,function(a){switch(a.label){case 0:if(o.removeEventListener("change",r),e=o.files[0],!window.confirm("Are you sure you want to overwrite "+n.get("name")))return[2];(t=new h.LoadingDialog("Overwriting")).show(),a.label=1;case 1:return a.trys.push([1,9,,10]),[4,this.try_convert_file_handle_to_json(e)];case 2:if(i=a.sent(),console.log(n),3!=i.schema_version)return[3,7];if("character"!=i.type)return[3,3];throw"Cannot overwrite a handout with a character file.";case 3:return"handout"!=i.type?[3,5]:[4,x(n,i.handout)];case 4:return a.sent(),[3,6];case 5:throw"Unsupported type : "+i.type;case 6:return[3,8];case 7:throw"Unsupported version: "+i.schema_version;case 8:return[3,10];case 9:return l=a.sent(),alert(l),console.log(l),[3,10];case 10:return t.dispose(),[2]}})})},o.click(),o.addEventListener("change",r),[2]):(alert("Failed to find handout associated with dialog!"),[2])})})},window.r20es.export_handout=function(e){return i(o,void 0,void 0,function(){var t,n,o,r,i,l,c,u;return a(this,function(a){switch(a.label){case 0:return t=$(e.target).parents(".ui-dialog-titlebar").siblings(".dialog").attr("data-handoutid"),(n=s.R20.getHandout(t))?(r=[(o=function(e){return new Promise(function(t){return n._getLatestBlob(e,function(){return t()})})})("notes")],s.R20.isGM()&&r.push(o("gmnotes")),[4,Promise.race([g.promiseWait(3e3),Promise.all(r)])]):(alert("Failed to find handout associated with dialog!"),[2]);case 1:return a.sent(),i={schema_version:3,type:"handout",handout:{archived:n.attributes.archived||!1,avatar:n.attributes.avatar||"",controlledby:n.attributes.controlledby||"",inplayerjournals:n.attributes.inplayerjournals||"",name:n.attributes.name||"",tags:n.attributes.tags||"[]",gmnotes:"",notes:n._blobcache.notes||""}},s.R20.isGM()&&(i.handout.gmnotes=n._blobcache.gmnotes||""),l=i.handout.name+".json",c=JSON.stringify(i,null,4),u=new Blob([c],{type:"data:application/javascript;charset=utf-8"}),d.saveAs(u,l),[2]}})})};var e=u.createCSSElement("\n.vttes_overwrite_handout  {\n  visibility: visible !important;\n}\n\n.vttes_export_handout {\n  visibility: visible !important;\n}\n\n",V);document.body.appendChild(e)},o.dispose=function(){t.prototype.dispose.call(o),o.export_component_dialog.dispose(),o.import_component_dialog.dispose(),o.export_ability_dialog.dispose(),o.import_ability_dialog.dispose(),o.sheetTab&&o.sheetTab.dispose(),u.findByIdAndRemove(n.journalWidgetId),window.r20es.export_handout=null,u.findByIdAndRemove(V)},o}return o(n,t),n.journalWidgetId="r20es-character-io-journal-widget",n.overwriteButtonClass="r20es-sheet-overwrite-button",n}(l.R20Module.OnAppLoadBase);t.default=function(){(new D).install()}}).call(this,"src/modules/CharacterIO")},function(e,t,n){"use strict";n.r(t),n.d(t,"FlateErrorCode",function(){return S}),n.d(t,"Deflate",function(){return ke}),n.d(t,"AsyncDeflate",function(){return _e}),n.d(t,"deflate",function(){return we}),n.d(t,"deflateSync",function(){return Ve}),n.d(t,"Inflate",function(){return Re}),n.d(t,"AsyncInflate",function(){return Ee}),n.d(t,"inflate",function(){return Ue}),n.d(t,"inflateSync",function(){return xe}),n.d(t,"Gzip",function(){return De}),n.d(t,"AsyncGzip",function(){return Se}),n.d(t,"gzip",function(){return Oe}),n.d(t,"gzipSync",function(){return Fe}),n.d(t,"Gunzip",function(){return Ze}),n.d(t,"AsyncGunzip",function(){return je}),n.d(t,"gunzip",function(){return We}),n.d(t,"gunzipSync",function(){return ze}),n.d(t,"Zlib",function(){return Ie}),n.d(t,"AsyncZlib",function(){return Le}),n.d(t,"zlib",function(){return Ce}),n.d(t,"zlibSync",function(){return Ae}),n.d(t,"Unzlib",function(){return Ye}),n.d(t,"AsyncUnzlib",function(){return Qe}),n.d(t,"unzlib",function(){return Be}),n.d(t,"unzlibSync",function(){return Ge}),n.d(t,"compress",function(){return Oe}),n.d(t,"AsyncCompress",function(){return Se}),n.d(t,"compressSync",function(){return Fe}),n.d(t,"Compress",function(){return De}),n.d(t,"Decompress",function(){return Je}),n.d(t,"AsyncDecompress",function(){return He}),n.d(t,"decompress",function(){return Xe}),n.d(t,"decompressSync",function(){return Pe}),n.d(t,"DecodeUTF8",function(){return nt}),n.d(t,"EncodeUTF8",function(){return ot}),n.d(t,"strToU8",function(){return rt}),n.d(t,"strFromU8",function(){return it}),n.d(t,"ZipPassThrough",function(){return ht}),n.d(t,"ZipDeflate",function(){return mt}),n.d(t,"AsyncZipDeflate",function(){return ft}),n.d(t,"Zip",function(){return gt}),n.d(t,"zip",function(){return Mt}),n.d(t,"zipSync",function(){return yt}),n.d(t,"UnzipPassThrough",function(){return bt}),n.d(t,"UnzipInflate",function(){return Nt}),n.d(t,"AsyncUnzipInflate",function(){return Tt}),n.d(t,"Unzip",function(){return vt}),n.d(t,"unzip",function(){return _t}),n.d(t,"unzipSync",function(){return wt});var o={},r=Uint8Array,i=Uint16Array,a=Uint32Array,l=new r([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),s=new r([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),c=new r([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=function(e,t){for(var n=new i(31),o=0;o<31;++o)n[o]=t+=1<<e[o-1];var r=new a(n[30]);for(o=1;o<30;++o)for(var l=n[o];l<n[o+1];++l)r[l]=l-n[o]<<5|o;return[n,r]},u=d(l,2),p=u[0],h=u[1];p[28]=258,h[258]=28;for(var m=d(s,0),f=m[0],g=m[1],M=new i(32768),y=0;y<32768;++y){var b=(43690&y)>>>1|(21845&y)<<1;b=(61680&(b=(52428&b)>>>2|(13107&b)<<2))>>>4|(3855&b)<<4,M[y]=((65280&b)>>>8|(255&b)<<8)>>>1}var N=function(e,t,n){for(var o=e.length,r=0,a=new i(t);r<o;++r)++a[e[r]-1];var l,s=new i(t);for(r=0;r<t;++r)s[r]=s[r-1]+a[r-1]<<1;if(n){l=new i(1<<t);var c=15-t;for(r=0;r<o;++r)if(e[r])for(var d=r<<4|e[r],u=t-e[r],p=s[e[r]-1]++<<u,h=p|(1<<u)-1;p<=h;++p)l[M[p]>>>c]=d}else for(l=new i(o),r=0;r<o;++r)e[r]&&(l[r]=M[s[e[r]-1]++]>>>15-e[r]);return l},T=new r(288);for(y=0;y<144;++y)T[y]=8;for(y=144;y<256;++y)T[y]=9;for(y=256;y<280;++y)T[y]=7;for(y=280;y<288;++y)T[y]=8;var v=new r(32);for(y=0;y<32;++y)v[y]=5;var k=N(T,9,0),_=N(T,9,1),w=N(v,5,0),V=N(v,5,1),R=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},E=function(e,t,n){var o=t/8|0;return(e[o]|e[o+1]<<8)>>(7&t)&n},U=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},x=function(e){return(e+7)/8|0},D=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var o=new(e instanceof i?i:e instanceof a?a:r)(n-t);return o.set(e.subarray(t,n)),o},S={UnexpectedEOF:0,InvalidBlockType:1,InvalidLengthLiteral:2,InvalidDistance:3,StreamFinished:4,NoStreamHandler:5,InvalidHeader:6,NoCallback:7,InvalidUTF8:8,ExtraFieldTooLong:9,InvalidDate:10,FilenameTooLong:11,StreamFinishing:12,InvalidZipData:13,UnknownCompressionMethod:14},O=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],F=function(e,t,n){var o=new Error(t||O[e]);if(o.code=e,Error.captureStackTrace&&Error.captureStackTrace(o,F),!n)throw o;return o},Z=function(e,t,n){var o=e.length;if(!o||n&&n.f&&!n.l)return t||new r(0);var i=!t||n,a=!n||n.i;n||(n={}),t||(t=new r(3*o));var d=function(e){var n=t.length;if(e>n){var o=new r(Math.max(2*n,e));o.set(t),t=o}},u=n.f||0,h=n.p||0,m=n.b||0,g=n.l,M=n.d,y=n.m,b=n.n,T=8*o;do{if(!g){u=E(e,h,1);var v=E(e,h+1,3);if(h+=3,!v){var k=e[(A=x(h)+4)-4]|e[A-3]<<8,w=A+k;if(w>o){a&&F(0);break}i&&d(m+k),t.set(e.subarray(A,w),m),n.b=m+=k,n.p=h=8*w,n.f=u;continue}if(1==v)g=_,M=V,y=9,b=5;else if(2==v){var S=E(e,h,31)+257,O=E(e,h+10,15)+4,Z=S+E(e,h+5,31)+1;h+=14;for(var j=new r(Z),W=new r(19),z=0;z<O;++z)W[c[z]]=E(e,h+3*z,7);h+=3*O;var I=R(W),L=(1<<I)-1,C=N(W,I,1);for(z=0;z<Z;){var A,Y=C[E(e,h,L)];if(h+=15&Y,(A=Y>>>4)<16)j[z++]=A;else{var Q=0,B=0;for(16==A?(B=3+E(e,h,3),h+=2,Q=j[z-1]):17==A?(B=3+E(e,h,7),h+=3):18==A&&(B=11+E(e,h,127),h+=7);B--;)j[z++]=Q}}var G=j.subarray(0,S),J=j.subarray(S);y=R(G),b=R(J),g=N(G,y,1),M=N(J,b,1)}else F(1);if(h>T){a&&F(0);break}}i&&d(m+131072);for(var H=(1<<y)-1,X=(1<<b)-1,P=h;;P=h){var K=(Q=g[U(e,h)&H])>>>4;if((h+=15&Q)>T){a&&F(0);break}if(Q||F(2),K<256)t[m++]=K;else{if(256==K){P=h,g=null;break}var q=K-254;if(K>264){var $=l[z=K-257];q=E(e,h,(1<<$)-1)+p[z],h+=$}var ee=M[U(e,h)&X],te=ee>>>4;ee||F(3),h+=15&ee;J=f[te];if(te>3){$=s[te];J+=U(e,h)&(1<<$)-1,h+=$}if(h>T){a&&F(0);break}i&&d(m+131072);for(var ne=m+q;m<ne;m+=4)t[m]=t[m-J],t[m+1]=t[m+1-J],t[m+2]=t[m+2-J],t[m+3]=t[m+3-J];m=ne}}n.l=g,n.p=P,n.b=m,n.f=u,g&&(u=1,n.m=y,n.d=M,n.n=b)}while(!u);return m==t.length?t:D(t,0,m)},j=function(e,t,n){n<<=7&t;var o=t/8|0;e[o]|=n,e[o+1]|=n>>>8},W=function(e,t,n){n<<=7&t;var o=t/8|0;e[o]|=n,e[o+1]|=n>>>8,e[o+2]|=n>>>16},z=function(e,t){for(var n=[],o=0;o<e.length;++o)e[o]&&n.push({s:o,f:e[o]});var a=n.length,l=n.slice();if(!a)return[B,0];if(1==a){var s=new r(n[0].s+1);return s[n[0].s]=1,[s,1]}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var c=n[0],d=n[1],u=0,p=1,h=2;for(n[0]={s:-1,f:c.f+d.f,l:c,r:d};p!=a-1;)c=n[n[u].f<n[h].f?u++:h++],d=n[u!=p&&n[u].f<n[h].f?u++:h++],n[p++]={s:-1,f:c.f+d.f,l:c,r:d};var m=l[0].s;for(o=1;o<a;++o)l[o].s>m&&(m=l[o].s);var f=new i(m+1),g=I(n[p-1],f,0);if(g>t){o=0;var M=0,y=g-t,b=1<<y;for(l.sort(function(e,t){return f[t.s]-f[e.s]||e.f-t.f});o<a;++o){var N=l[o].s;if(!(f[N]>t))break;M+=b-(1<<g-f[N]),f[N]=t}for(M>>>=y;M>0;){var T=l[o].s;f[T]<t?M-=1<<t-f[T]++-1:++o}for(;o>=0&&M;--o){var v=l[o].s;f[v]==t&&(--f[v],++M)}g=t}return[new r(f),g]},I=function(e,t,n){return-1==e.s?Math.max(I(e.l,t,n+1),I(e.r,t,n+1)):t[e.s]=n},L=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new i(++t),o=0,r=e[0],a=1,l=function(e){n[o++]=e},s=1;s<=t;++s)if(e[s]==r&&s!=t)++a;else{if(!r&&a>2){for(;a>138;a-=138)l(32754);a>2&&(l(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(l(r),--a;a>6;a-=6)l(8304);a>2&&(l(a-3<<5|8208),a=0)}for(;a--;)l(r);a=1,r=e[s]}return[n.subarray(0,o),t]},C=function(e,t){for(var n=0,o=0;o<t.length;++o)n+=e[o]*t[o];return n},A=function(e,t,n){var o=n.length,r=x(t+2);e[r]=255&o,e[r+1]=o>>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var i=0;i<o;++i)e[r+i+4]=n[i];return 8*(r+4+o)},Y=function(e,t,n,o,r,a,d,u,p,h,m){j(t,m++,n),++r[256];for(var f=z(r,15),g=f[0],M=f[1],y=z(a,15),b=y[0],_=y[1],V=L(g),R=V[0],E=V[1],U=L(b),x=U[0],D=U[1],S=new i(19),O=0;O<R.length;++O)S[31&R[O]]++;for(O=0;O<x.length;++O)S[31&x[O]]++;for(var F=z(S,7),Z=F[0],I=F[1],Y=19;Y>4&&!Z[c[Y-1]];--Y);var Q,B,G,J,H=h+5<<3,X=C(r,T)+C(a,v)+d,P=C(r,g)+C(a,b)+d+14+3*Y+C(S,Z)+(2*S[16]+3*S[17]+7*S[18]);if(H<=X&&H<=P)return A(t,m,e.subarray(p,p+h));if(j(t,m,1+(P<X)),m+=2,P<X){Q=N(g,M,0),B=g,G=N(b,_,0),J=b;var K=N(Z,I,0);j(t,m,E-257),j(t,m+5,D-1),j(t,m+10,Y-4),m+=14;for(O=0;O<Y;++O)j(t,m+3*O,Z[c[O]]);m+=3*Y;for(var q=[R,x],$=0;$<2;++$){var ee=q[$];for(O=0;O<ee.length;++O){var te=31&ee[O];j(t,m,K[te]),m+=Z[te],te>15&&(j(t,m,ee[O]>>>5&127),m+=ee[O]>>>12)}}}else Q=k,B=T,G=w,J=v;for(O=0;O<u;++O)if(o[O]>255){te=o[O]>>>18&31;W(t,m,Q[te+257]),m+=B[te+257],te>7&&(j(t,m,o[O]>>>23&31),m+=l[te]);var ne=31&o[O];W(t,m,G[ne]),m+=J[ne],ne>3&&(W(t,m,o[O]>>>5&8191),m+=s[ne])}else W(t,m,Q[o[O]]),m+=B[o[O]];return W(t,m,Q[256]),m+B[256]},Q=new a([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),B=new r(0),G=function(e,t,n,o,c,d){var u=e.length,p=new r(o+u+5*(1+Math.ceil(u/7e3))+c),m=p.subarray(o,p.length-c),f=0;if(!t||u<8)for(var M=0;M<=u;M+=65535){var y=M+65535;y<u?f=A(m,f,e.subarray(M,y)):(m[M]=d,f=A(m,f,e.subarray(M,u)))}else{for(var b=Q[t-1],N=b>>>13,T=8191&b,v=(1<<n)-1,k=new i(32768),_=new i(v+1),w=Math.ceil(n/3),V=2*w,R=function(t){return(e[t]^e[t+1]<<w^e[t+2]<<V)&v},E=new a(25e3),U=new i(288),S=new i(32),O=0,F=0,Z=(M=0,0),j=0,W=0;M<u;++M){var z=R(M),I=32767&M,L=_[z];if(k[I]=L,_[z]=I,j<=M){var C=u-M;if((O>7e3||Z>24576)&&C>423){f=Y(e,m,0,E,U,S,F,Z,W,M-W,f),Z=O=F=0,W=M;for(var G=0;G<286;++G)U[G]=0;for(G=0;G<30;++G)S[G]=0}var J=2,H=0,X=T,P=I-L&32767;if(C>2&&z==R(M-P))for(var K=Math.min(N,C)-1,q=Math.min(32767,M),$=Math.min(258,C);P<=q&&--X&&I!=L;){if(e[M+J]==e[M+J-P]){for(var ee=0;ee<$&&e[M+ee]==e[M+ee-P];++ee);if(ee>J){if(J=ee,H=P,ee>K)break;var te=Math.min(P,ee-2),ne=0;for(G=0;G<te;++G){var oe=M-P+G+32768&32767,re=oe-k[oe]+32768&32767;re>ne&&(ne=re,L=oe)}}}P+=(I=L)-(L=k[I])+32768&32767}if(H){E[Z++]=268435456|h[J]<<18|g[H];var ie=31&h[J],ae=31&g[H];F+=l[ie]+s[ae],++U[257+ie],++S[ae],j=M+J,++O}else E[Z++]=e[M],++U[e[M]]}}f=Y(e,m,d,E,U,S,F,Z,W,M-W,f),!d&&7&f&&(f=A(m,f+1,B))}return D(p,0,o+x(f)+c)},J=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var n=t,o=9;--o;)n=(1&n&&-306674912)^n>>>1;e[t]=n}return e}(),H=function(){var e=-1;return{p:function(t){for(var n=e,o=0;o<t.length;++o)n=J[255&n^t[o]]^n>>>8;e=n},d:function(){return~e}}},X=function(){var e=1,t=0;return{p:function(n){for(var o=e,r=t,i=0|n.length,a=0;a!=i;){for(var l=Math.min(a+2655,i);a<l;++a)r+=o+=n[a];o=(65535&o)+15*(o>>16),r=(65535&r)+15*(r>>16)}e=o,t=r},d:function(){return(255&(e%=65521))<<24|e>>>8<<16|(255&(t%=65521))<<8|t>>>8}}},P=function(e,t,n,o,r){return G(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,o,!r)},K=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)n[o]=t[o];return n},q=function(e,t,n){for(var o=e(),r=e.toString(),i=r.slice(r.indexOf("[")+1,r.lastIndexOf("]")).replace(/ /g,"").split(","),a=0;a<o.length;++a){var l=o[a],s=i[a];if("function"==typeof l){t+=";"+s+"=";var c=l.toString();if(l.prototype)if(-1!=c.indexOf("[native code]")){var d=c.indexOf(" ",8)+1;t+=c.slice(d,c.indexOf("(",d))}else for(var u in t+=c,l.prototype)t+=";"+s+".prototype."+u+"="+l.prototype[u].toString();else t+=c}else n[s]=l}return[t,n]},$=[],ee=function(e,t,n,l){var s;if(!$[n]){for(var c="",d={},u=e.length-1,p=0;p<u;++p)c=(s=q(e[p],c,d))[0],d=s[1];$[n]=q(e[u],c,d)}var h=K({},$[n][1]);return function(e,t,n,r,i){var a=new Worker(o[t]||(o[t]=URL.createObjectURL(new Blob([e+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return a.onmessage=function(e){var t=e.data,n=t.$e$;if(n){var o=new Error(n[0]);o.code=n[1],o.stack=n[2],i(o,null)}else i(null,t)},a.postMessage(n,r),a}($[n][0]+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",n,h,function(e){var t=[];for(var n in e)(e[n]instanceof r||e[n]instanceof i||e[n]instanceof a)&&t.push((e[n]=new e[n].constructor(e[n])).buffer);return t}(h),l)},te=function(){return[r,i,a,l,s,c,p,f,_,V,M,O,N,R,E,U,x,D,F,Z,xe,le,se]},ne=function(){return[r,i,a,l,s,c,h,g,k,T,w,v,M,Q,B,N,j,W,z,I,L,C,A,Y,x,D,G,P,Ve,le]},oe=function(){return[ge,be,fe,H,J]},re=function(){return[Me,ye]},ie=function(){return[Ne,fe,X]},ae=function(){return[Te]},le=function(e){return postMessage(e,[e.buffer])},se=function(e){return e&&e.size&&new r(e.size)},ce=function(e,t,n,o,r,i){var a=ee(n,o,r,function(e,t){a.terminate(),i(e,t)});return a.postMessage([e,t],t.consume?[e.buffer]:[]),function(){a.terminate()}},de=function(e){return e.ondata=function(e,t){return postMessage([e,t],[e.buffer])},function(t){return e.push(t.data[0],t.data[1])}},ue=function(e,t,n,o,r){var i,a=ee(e,o,r,function(e,n){e?(a.terminate(),t.ondata.call(t,e)):(n[1]&&a.terminate(),t.ondata.call(t,e,n[0],n[1]))});a.postMessage(n),t.push=function(e,n){t.ondata||F(5),i&&t.ondata(F(4,0,1),null,!!n),a.postMessage([e,i=n],[e.buffer])},t.terminate=function(){a.terminate()}},pe=function(e,t){return e[t]|e[t+1]<<8},he=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},me=function(e,t){return he(e,t)+4294967296*he(e,t+4)},fe=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8},ge=function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&fe(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var o=0;o<=n.length;++o)e[o+10]=n.charCodeAt(o)}},Me=function(e){31==e[0]&&139==e[1]&&8==e[2]||F(6,"invalid gzip data");var t=e[3],n=10;4&t&&(n+=e[10]|2+(e[11]<<8));for(var o=(t>>3&1)+(t>>4&1);o>0;o-=!e[n++]);return n+(2&t)},ye=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},be=function(e){return 10+(e.filename&&e.filename.length+1||0)},Ne=function(e,t){var n=t.level,o=0==n?0:n<6?1:9==n?3:2;e[0]=120,e[1]=o<<6|(o?32-2*o:1)},Te=function(e){(8!=(15&e[0])||e[0]>>>4>7||(e[0]<<8|e[1])%31)&&F(6,"invalid zlib data"),32&e[1]&&F(6,"invalid zlib data: preset dictionaries not supported")};function ve(e,t){return t||"function"!=typeof e||(t=e,e={}),this.ondata=t,e}var ke=function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(P(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){this.ondata||F(5),this.d&&F(4),this.d=t,this.p(e,t||!1)},e}(),_e=function(){return function(e,t){ue([ne,function(){return[de,ke]}],this,ve.call(this,e,t),function(e){var t=new ke(e.data);onmessage=de(t)},6)}}();function we(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[ne],function(e){return le(Ve(e.data[0],e.data[1]))},0,n)}function Ve(e,t){return P(e,t||{},0,0)}var Re=function(){function e(e){this.s={},this.p=new r(0),this.ondata=e}return e.prototype.e=function(e){this.ondata||F(5),this.d&&F(4);var t=this.p.length,n=new r(t+e.length);n.set(this.p),n.set(e,t),this.p=n},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,n=Z(this.p,this.o,this.s);this.ondata(D(n,t,this.s.b),this.d),this.o=D(n,this.s.b-32768),this.s.b=this.o.length,this.p=D(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ee=function(){return function(e){this.ondata=e,ue([te,function(){return[de,Re]}],this,0,function(){var e=new Re;onmessage=de(e)},7)}}();function Ue(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[te],function(e){return le(xe(e.data[0],se(e.data[1])))},1,n)}function xe(e,t){return Z(e,t)}var De=function(){function e(e,t){this.c=H(),this.l=0,this.v=1,ke.call(this,e,t)}return e.prototype.push=function(e,t){ke.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e),this.l+=e.length;var n=P(e,this.o,this.v&&be(this.o),t&&8,!t);this.v&&(ge(n,this.o),this.v=0),t&&(fe(n,n.length-8,this.c.d()),fe(n,n.length-4,this.l)),this.ondata(n,t)},e}(),Se=function(){return function(e,t){ue([ne,oe,function(){return[de,ke,De]}],this,ve.call(this,e,t),function(e){var t=new De(e.data);onmessage=de(t)},8)}}();function Oe(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[ne,oe,function(){return[Fe]}],function(e){return le(Fe(e.data[0],e.data[1]))},2,n)}function Fe(e,t){t||(t={});var n=H(),o=e.length;n.p(e);var r=P(e,t,be(t),8),i=r.length;return ge(r,t),fe(r,i-8,n.d()),fe(r,i-4,o),r}var Ze=function(){function e(e){this.v=1,Re.call(this,e)}return e.prototype.push=function(e,t){if(Re.prototype.e.call(this,e),this.v){var n=this.p.length>3?Me(this.p):4;if(n>=this.p.length&&!t)return;this.p=this.p.subarray(n),this.v=0}t&&(this.p.length<8&&F(6,"invalid gzip data"),this.p=this.p.subarray(0,-8)),Re.prototype.c.call(this,t)},e}(),je=function(){return function(e){this.ondata=e,ue([te,re,function(){return[de,Re,Ze]}],this,0,function(){var e=new Ze;onmessage=de(e)},9)}}();function We(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[te,re,function(){return[ze]}],function(e){return le(ze(e.data[0]))},3,n)}function ze(e,t){return Z(e.subarray(Me(e),-8),t||new r(ye(e)))}var Ie=function(){function e(e,t){this.c=X(),this.v=1,ke.call(this,e,t)}return e.prototype.push=function(e,t){ke.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var n=P(e,this.o,this.v&&2,t&&4,!t);this.v&&(Ne(n,this.o),this.v=0),t&&fe(n,n.length-4,this.c.d()),this.ondata(n,t)},e}(),Le=function(){return function(e,t){ue([ne,ie,function(){return[de,ke,Ie]}],this,ve.call(this,e,t),function(e){var t=new Ie(e.data);onmessage=de(t)},10)}}();function Ce(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[ne,ie,function(){return[Ae]}],function(e){return le(Ae(e.data[0],e.data[1]))},4,n)}function Ae(e,t){t||(t={});var n=X();n.p(e);var o=P(e,t,2,4);return Ne(o,t),fe(o,o.length-4,n.d()),o}var Ye=function(){function e(e){this.v=1,Re.call(this,e)}return e.prototype.push=function(e,t){if(Re.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}t&&(this.p.length<4&&F(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),Re.prototype.c.call(this,t)},e}(),Qe=function(){return function(e){this.ondata=e,ue([te,ae,function(){return[de,Re,Ye]}],this,0,function(){var e=new Ye;onmessage=de(e)},11)}}();function Be(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),ce(e,t,[te,ae,function(){return[Ge]}],function(e){return le(Ge(e.data[0],se(e.data[1])))},5,n)}function Ge(e,t){return Z((Te(e),e.subarray(2,-4)),t)}var Je=function(){function e(e){this.G=Ze,this.I=Re,this.Z=Ye,this.ondata=e}return e.prototype.push=function(e,t){if(this.ondata||F(5),this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var n=new r(this.p.length+e.length);n.set(this.p),n.set(e,this.p.length)}else this.p=e;if(this.p.length>2){var o=this,i=function(){o.ondata.apply(o,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(i):8!=(15&this.p[0])||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(i):new this.Z(i),this.s.push(this.p,t),this.p=null}}},e}(),He=function(){function e(e){this.G=je,this.I=Ee,this.Z=Qe,this.ondata=e}return e.prototype.push=function(e,t){Je.prototype.push.call(this,e,t)},e}();function Xe(e,t,n){return n||(n=t,t={}),"function"!=typeof n&&F(7),31==e[0]&&139==e[1]&&8==e[2]?We(e,t,n):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?Ue(e,t,n):Be(e,t,n)}function Pe(e,t){return 31==e[0]&&139==e[1]&&8==e[2]?ze(e,t):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?xe(e,t):Ge(e,t)}var Ke=function(e,t,n,o){for(var i in e){var a=e[i],l=t+i;a instanceof r?n[l]=[a,o]:Array.isArray(a)?n[l]=[a[0],K(o,a[1])]:Ke(a,l+"/",n,o)}},qe="undefined"!=typeof TextEncoder&&new TextEncoder,$e="undefined"!=typeof TextDecoder&&new TextDecoder,et=0;try{$e.decode(B,{stream:!0}),et=1}catch(e){}var tt=function(e){for(var t="",n=0;;){var o=e[n++],r=(o>127)+(o>223)+(o>239);if(n+r>e.length)return[t,D(e,n-1)];r?3==r?(o=((15&o)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536,t+=String.fromCharCode(55296|o>>10,56320|1023&o)):t+=1&r?String.fromCharCode((31&o)<<6|63&e[n++]):String.fromCharCode((15&o)<<12|(63&e[n++])<<6|63&e[n++]):t+=String.fromCharCode(o)}},nt=function(){function e(e){this.ondata=e,et?this.t=new TextDecoder:this.p=B}return e.prototype.push=function(e,t){if(this.ondata||F(5),t=!!t,this.t)return this.ondata(this.t.decode(e,{stream:!0}),t),void(t&&(this.t.decode().length&&F(8),this.t=null));this.p||F(4);var n=new r(this.p.length+e.length);n.set(this.p),n.set(e,this.p.length);var o=tt(n),i=o[0],a=o[1];t?(a.length&&F(8),this.p=null):this.p=a,this.ondata(i,t)},e}(),ot=function(){function e(e){this.ondata=e}return e.prototype.push=function(e,t){this.ondata||F(5),this.d&&F(4),this.ondata(rt(e),this.d=t||!1)},e}();function rt(e,t){if(t){for(var n=new r(e.length),o=0;o<e.length;++o)n[o]=e.charCodeAt(o);return n}if(qe)return qe.encode(e);var i=e.length,a=new r(e.length+(e.length>>1)),l=0,s=function(e){a[l++]=e};for(o=0;o<i;++o){if(l+5>a.length){var c=new r(l+8+(i-o<<1));c.set(a),a=c}var d=e.charCodeAt(o);d<128||t?s(d):d<2048?(s(192|d>>6),s(128|63&d)):d>55295&&d<57344?(s(240|(d=65536+(1047552&d)|1023&e.charCodeAt(++o))>>18),s(128|d>>12&63),s(128|d>>6&63),s(128|63&d)):(s(224|d>>12),s(128|d>>6&63),s(128|63&d))}return D(a,0,l)}function it(e,t){if(t){for(var n="",o=0;o<e.length;o+=16384)n+=String.fromCharCode.apply(null,e.subarray(o,o+16384));return n}if($e)return $e.decode(e);var r=tt(e),i=r[0];return r[1].length&&F(8),i}var at=function(e){return 1==e?3:e<6?2:9==e?1:0},lt=function(e,t){return t+30+pe(e,t+26)+pe(e,t+28)},st=function(e,t,n){var o=pe(e,t+28),r=it(e.subarray(t+46,t+46+o),!(2048&pe(e,t+8))),i=t+46+o,a=he(e,t+20),l=n&&4294967295==a?ct(e,i):[a,he(e,t+24),he(e,t+42)],s=l[0],c=l[1],d=l[2];return[pe(e,t+10),s,c,r,i+pe(e,t+30)+pe(e,t+32),d]},ct=function(e,t){for(;1!=pe(e,t);t+=4+pe(e,t+2));return[me(e,t+12),me(e,t+4),me(e,t+20)]},dt=function(e){var t=0;if(e)for(var n in e){var o=e[n].length;o>65535&&F(9),t+=o+4}return t},ut=function(e,t,n,o,r,i,a,l){var s=o.length,c=n.extra,d=l&&l.length,u=dt(c);fe(e,t,null!=a?33639248:67324752),t+=4,null!=a&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(null==i&&8),e[t++]=r&&8,e[t++]=255&n.compression,e[t++]=n.compression>>8;var p=new Date(null==n.mtime?Date.now():n.mtime),h=p.getFullYear()-1980;if((h<0||h>119)&&F(10),fe(e,t,h<<25|p.getMonth()+1<<21|p.getDate()<<16|p.getHours()<<11|p.getMinutes()<<5|p.getSeconds()>>>1),t+=4,null!=i&&(fe(e,t,n.crc),fe(e,t+4,i),fe(e,t+8,n.size)),fe(e,t+12,s),fe(e,t+14,u),t+=16,null!=a&&(fe(e,t,d),fe(e,t+6,n.attrs),fe(e,t+10,a),t+=14),e.set(o,t),t+=s,u)for(var m in c){var f=c[m],g=f.length;fe(e,t,+m),fe(e,t+2,g),e.set(f,t+4),t+=4+g}return d&&(e.set(l,t),t+=d),t},pt=function(e,t,n,o,r){fe(e,t,101010256),fe(e,t+8,n),fe(e,t+10,n),fe(e,t+12,o),fe(e,t+16,r)},ht=function(){function e(e){this.filename=e,this.c=H(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){this.ondata||F(5),this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}(),mt=function(){function e(e,t){var n=this;t||(t={}),ht.call(this,e),this.d=new ke(t,function(e,t){n.ondata(null,e,t)}),this.compression=8,this.flag=at(t.level)}return e.prototype.process=function(e,t){try{this.d.push(e,t)}catch(e){this.ondata(e,null,t)}},e.prototype.push=function(e,t){ht.prototype.push.call(this,e,t)},e}(),ft=function(){function e(e,t){var n=this;t||(t={}),ht.call(this,e),this.d=new _e(t,function(e,t,o){n.ondata(e,t,o)}),this.compression=8,this.flag=at(t.level),this.terminate=this.d.terminate}return e.prototype.process=function(e,t){this.d.push(e,t)},e.prototype.push=function(e,t){ht.prototype.push.call(this,e,t)},e}(),gt=function(){function e(e){this.ondata=e,this.u=[],this.d=1}return e.prototype.add=function(e){var t=this;if(this.ondata||F(5),2&this.d)this.ondata(F(4+8*(1&this.d),0,1),null,!1);else{var n=rt(e.filename),o=n.length,i=e.comment,a=i&&rt(i),l=o!=e.filename.length||a&&i.length!=a.length,s=o+dt(e.extra)+30;o>65535&&this.ondata(F(11,0,1),null,!1);var c=new r(s);ut(c,0,e,n,l);var d=[c],u=function(){for(var e=0,n=d;e<n.length;e++){var o=n[e];t.ondata(null,o,!1)}d=[]},p=this.d;this.d=0;var h=this.u.length,m=K(e,{f:n,u:l,o:a,t:function(){e.terminate&&e.terminate()},r:function(){if(u(),p){var e=t.u[h+1];e?e.r():t.d=1}p=1}}),f=0;e.ondata=function(n,o,i){if(n)t.ondata(n,o,i),t.terminate();else if(f+=o.length,d.push(o),i){var a=new r(16);fe(a,0,134695760),fe(a,4,e.crc),fe(a,8,f),fe(a,12,e.size),d.push(a),m.c=f,m.b=s+f+16,m.crc=e.crc,m.size=e.size,p&&m.r(),p=1}else p&&u()},this.u.push(m)}},e.prototype.end=function(){var e=this;2&this.d?this.ondata(F(4+8*(1&this.d),0,1),null,!0):(this.d?this.e():this.u.push({r:function(){1&e.d&&(e.u.splice(-1,1),e.e())},t:function(){}}),this.d=3)},e.prototype.e=function(){for(var e=0,t=0,n=0,o=0,i=this.u;o<i.length;o++){n+=46+(c=i[o]).f.length+dt(c.extra)+(c.o?c.o.length:0)}for(var a=new r(n+22),l=0,s=this.u;l<s.length;l++){var c=s[l];ut(a,e,c,c.f,c.u,c.c,t,c.o),e+=46+c.f.length+dt(c.extra)+(c.o?c.o.length:0),t+=c.b}pt(a,e,this.u.length,n,t),this.ondata(null,a,!0),this.d=2},e.prototype.terminate=function(){for(var e=0,t=this.u;e<t.length;e++){t[e].t()}this.d=2},e}();function Mt(e,t,n){n||(n=t,t={}),"function"!=typeof n&&F(7);var o={};Ke(e,"",o,t);var i=Object.keys(o),a=i.length,l=0,s=0,c=a,d=new Array(a),u=[],p=function(){for(var e=0;e<u.length;++e)u[e]()},h=function(e,t){kt(function(){n(e,t)})};kt(function(){h=n});var m=function(){var e=new r(s+22),t=l,n=s-l;s=0;for(var o=0;o<c;++o){var i=d[o];try{var a=i.c.length;ut(e,s,i,i.f,i.u,a);var u=30+i.f.length+dt(i.extra),p=s+u;e.set(i.c,p),ut(e,l,i,i.f,i.u,a,s,i.m),l+=16+u+(i.m?i.m.length:0),s=p+a}catch(e){return h(e,null)}}pt(e,l,d.length,n,t),h(null,e)};a||m();for(var f=function(e){var t=i[e],n=o[t],r=n[0],c=n[1],f=H(),g=r.length;f.p(r);var M=rt(t),y=M.length,b=c.comment,N=b&&rt(b),T=N&&N.length,v=dt(c.extra),k=0==c.level?0:8,_=function(n,o){if(n)p(),h(n,null);else{var r=o.length;d[e]=K(c,{size:g,crc:f.d(),c:o,f:M,m:N,u:y!=t.length||N&&b.length!=T,compression:k}),l+=30+y+v+r,s+=76+2*(y+v)+(T||0)+r,--a||m()}};if(y>65535&&_(F(11,0,1),null),k)if(g<16e4)try{_(null,Ve(r,c))}catch(e){_(e,null)}else u.push(we(r,c,_));else _(null,r)},g=0;g<c;++g)f(g);return p}function yt(e,t){t||(t={});var n={},o=[];Ke(e,"",n,t);var i=0,a=0;for(var l in n){var s=n[l],c=s[0],d=s[1],u=0==d.level?0:8,p=(_=rt(l)).length,h=d.comment,m=h&&rt(h),f=m&&m.length,g=dt(d.extra);p>65535&&F(11);var M=u?Ve(c,d):c,y=M.length,b=H();b.p(c),o.push(K(d,{size:c.length,crc:b.d(),c:M,f:_,m:m,u:p!=l.length||m&&h.length!=f,o:i,compression:u})),i+=30+p+g+y,a+=76+2*(p+g)+(f||0)+y}for(var N=new r(a+22),T=i,v=a-i,k=0;k<o.length;++k){var _=o[k];ut(N,_.o,_,_.f,_.u,_.c.length);var w=30+_.f.length+dt(_.extra);N.set(_.c,_.o+w),ut(N,i,_,_.f,_.u,_.c.length,_.o,_.m),i+=16+w+(_.m?_.m.length:0)}return pt(N,i,o.length,v,T),N}var bt=function(){function e(){}return e.prototype.push=function(e,t){this.ondata(null,e,t)},e.compression=0,e}(),Nt=function(){function e(){var e=this;this.i=new Re(function(t,n){e.ondata(null,t,n)})}return e.prototype.push=function(e,t){try{this.i.push(e,t)}catch(e){this.ondata(e,null,t)}},e.compression=8,e}(),Tt=function(){function e(e,t){var n=this;t<32e4?this.i=new Re(function(e,t){n.ondata(null,e,t)}):(this.i=new Ee(function(e,t,o){n.ondata(e,t,o)}),this.terminate=this.i.terminate)}return e.prototype.push=function(e,t){this.i.terminate&&(e=D(e,0)),this.i.push(e,t)},e.compression=8,e}(),vt=function(){function e(e){this.onfile=e,this.k=[],this.o={0:bt},this.p=B}return e.prototype.push=function(e,t){var n=this;if(this.onfile||F(5),this.p||F(4),this.c>0){var o=Math.min(this.c,e.length),i=e.subarray(0,o);if(this.c-=o,this.d?this.d.push(i,!this.c):this.k[0].push(i),(e=e.subarray(o)).length)return this.push(e,t)}else{var a=0,l=0,s=void 0,c=void 0;this.p.length?e.length?((c=new r(this.p.length+e.length)).set(this.p),c.set(e,this.p.length)):c=this.p:c=e;for(var d=c.length,u=this.c,p=u&&this.d,h=function(){var e,t=he(c,l);if(67324752==t){a=1,s=l,m.d=null,m.c=0;var o=pe(c,l+6),r=pe(c,l+8),i=2048&o,p=8&o,h=pe(c,l+26),f=pe(c,l+28);if(d>l+30+h+f){var g=[];m.k.unshift(g),a=2;var M,y=he(c,l+18),b=he(c,l+22),N=it(c.subarray(l+30,l+=30+h),!i);4294967295==y?(e=p?[-2]:ct(c,l),y=e[0],b=e[1]):p&&(y=-1),l+=f,m.c=y;var T={name:N,compression:r,start:function(){if(T.ondata||F(5),y){var e=n.o[r];e||T.ondata(F(14,"unknown compression type "+r,1),null,!1),(M=y<0?new e(N):new e(N,y,b)).ondata=function(e,t,n){T.ondata(e,t,n)};for(var t=0,o=g;t<o.length;t++){var i=o[t];M.push(i,!1)}n.k[0]==g&&n.c?n.d=M:M.push(B,!0)}else T.ondata(null,B,!0)},terminate:function(){M&&M.terminate&&M.terminate()}};y>=0&&(T.size=y,T.originalSize=b),m.onfile(T)}return"break"}if(u){if(134695760==t)return s=l+=12+(-2==u&&8),a=3,m.c=0,"break";if(33639248==t)return s=l-=4,a=3,m.c=0,"break"}},m=this;l<d-4;++l){if("break"===h())break}if(this.p=B,u<0){var f=a?c.subarray(0,s-12-(-2==u&&8)-(134695760==he(c,s-16)&&4)):c.subarray(0,l);p?p.push(f,!!a):this.k[+(2==a)].push(f)}if(2&a)return this.push(c.subarray(l),t);this.p=c.subarray(l)}t&&(this.c&&F(13),this.p=null)},e.prototype.register=function(e){this.o[e.compression]=e},e}(),kt="function"==typeof queueMicrotask?queueMicrotask:"function"==typeof setTimeout?setTimeout:function(e){e()};function _t(e,t,n){n||(n=t,t={}),"function"!=typeof n&&F(7);var o=[],i=function(){for(var e=0;e<o.length;++e)o[e]()},a={},l=function(e,t){kt(function(){n(e,t)})};kt(function(){l=n});for(var s=e.length-22;101010256!=he(e,s);--s)if(!s||e.length-s>65558)return l(F(13,0,1),null),i;var c=pe(e,s+8);if(c){var d=c,u=he(e,s+16),p=4294967295==u;if(p){if(s=he(e,s-12),101075792!=he(e,s))return l(F(13,0,1),null),i;d=c=he(e,s+32),u=he(e,s+48)}for(var h=t&&t.filter,m=function(t){var n=st(e,u,p),s=n[0],d=n[1],m=n[2],f=n[3],g=n[4],M=n[5],y=lt(e,M);u=g;var b=function(e,t){e?(i(),l(e,null)):(t&&(a[f]=t),--c||l(null,a))};if(!h||h({name:f,size:d,originalSize:m,compression:s}))if(s)if(8==s){var N=e.subarray(y,y+d);if(d<32e4)try{b(null,xe(N,new r(m)))}catch(e){b(e,null)}else o.push(Ue(N,{size:m},b))}else b(F(14,"unknown compression type "+s,1),null);else b(null,D(e,y,y+d));else b(null,null)},f=0;f<d;++f)m()}else l(null,{});return i}function wt(e,t){for(var n={},o=e.length-22;101010256!=he(e,o);--o)(!o||e.length-o>65558)&&F(13);var i=pe(e,o+8);if(!i)return{};var a=he(e,o+16),l=4294967295==a;l&&(o=he(e,o-12),101075792!=he(e,o)&&F(13),i=he(e,o+32),a=he(e,o+48));for(var s=t&&t.filter,c=0;c<i;++c){var d=st(e,a,l),u=d[0],p=d[1],h=d[2],m=d[3],f=d[4],g=d[5],M=lt(e,g);a=f,s&&!s({name:m,size:p,originalSize:h,compression:u})||(u?8==u?n[m]=xe(e.subarray(M,M+p),new r(h)):F(14,"unknown compression type "+u):n[m]=D(e,M,M+p))}return n}},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},i=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},a=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}},l=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&(n[o[r]]=e[o[r]])}return n};t.__esModule=!0;var s=n(2),c=n(1),d=n(13),u=n(3),p=n(4),h=function(e){var t=e.defaultVal,n=void 0===t?void 0:t,o=e.propName,i=e.token,a=e.label,l=e.wrapperStyle,s=void 0===l?{}:l;return c.DOM.createElement("span",{style:r({display:"inline-flex",alignItems:"center"},s)},c.DOM.createElement(N,{defaultVal:n,style:{marginRight:"4px"},propName:o,type:"checkbox",token:i}),c.DOM.createElement("span",null,a))},m=function(e){var t=e.tokenAttribs,n=e.name,o=e.index,r="aura"+o+"_radius",i="aura"+o+"_color",a="aura"+o+"_square";return c.DOM.createElement("div",{className:"inlineinputs",style:{display:"flex",alignItems:"center",marginTop:"5px"}},c.DOM.createElement("b",{style:{marginRight:"8px"}},n),c.DOM.createElement(N,{style:{width:"48px"},propName:r,type:"text",token:t}),c.DOM.createElement("span",{style:{marginRight:"16px"}},"ft."),c.DOM.createElement("span",{style:{marginRight:"16px"}},c.DOM.createElement(T,{propName:i,token:t})),c.DOM.createElement(h,{label:"Square",propName:a,token:t}))},f=function(e){for(var t=e.name,n=e.color,o=e.character,r=e.tokenAttribs,i=e.index,a=e.onChange,l=o,s="bar"+i+"_value",d="bar"+i+"_max",u="bar"+i+"_link",p="You can only edit the current and max values when the bar is not linked.",h=c.DOM.createElement(N,{style:{width:"64px",margin:"0 4px"},title:p,propName:s,type:"text",token:r}),m=c.DOM.createElement(N,{style:{width:"64px",margin:"0 4px"},title:p,propName:d,type:"text",token:r}),f=[c.DOM.createElement("option",{value:""},"None")],g=0,M=l.attribs.models;g<M.length;g++){var y=M[g],b=c.DOM.createElement("option",{value:y.id},y.attributes.name);f.add(b)}var T=c.DOM.createElement(N,{propName:u,Component:"select",token:r,defaultVal:"",onChange:function(e){v(e.target.value)}},f),v=function(e){console.log("Update",t,e);var n=l.attribs.get(e);if(!e||!n)return T.value="",h.disabled=!1,void(m.disabled=!1);h.disabled=!0,m.disabled=!0,T.value=e,h.value=n.attributes.current,m.value=n.attributes.max,a({target:h}),a({target:m})},k=r[u];return v(k),c.DOM.createElement("div",{className:"inlineinputs"},c.DOM.createElement("b",{style:{width:"max-content"}},t),c.DOM.createElement("span",{className:"bar_color_indicator",style:{marginLeft:"4px",display:"inline-block",width:"15px",height:"15px",borderRadius:"10px",backgroundColor:n}}),T,h,"/",m)},g=function(e){var t=e.name,n=e.tokenAttribs,o=e.propName,r=e.add_permissions,i=e.index,a="showplayers_"+o,l="playersedit_"+o,s=null;if(r){var d="bar"+(void 0===i?0:i)+"_num_permission";(s=c.DOM.createElement(N,{style:{margin:"0",marginLeft:"8px"},Component:"select",propName:d,token:n,defaultVal:"editors"},c.DOM.createElement("option",{value:"hidden"},"Hidden"),c.DOM.createElement("option",{value:"editors"},"Visible to Editors"),c.DOM.createElement("option",{value:"everyone"},"Visible to Everyone"))).value=n[d]||"editors"}return c.DOM.createElement("div",{className:"inlineinputs",style:{height:"48px",display:"flex",alignItems:"center"}},c.DOM.createElement("b",{style:{display:"inline-block",width:"60px"}},t),c.DOM.createElement(h,{label:"See",defaultVal:!1,propName:a,token:n,wrapperStyle:{marginRight:"16px"}}),c.DOM.createElement(h,{label:"Edit",defaultVal:!0,propName:l,token:n}),s)},M=function(e,t){e.setAttribute(b,t)},y="data-token-value-override",b="data-token-prop-name",N=function(e){var t=e.Component,n=void 0===t?"input":t,o=e.type,i=void 0===o?void 0:o,a=e.token,s=e.propName,d=e.defaultVal,u=l(e,["Component","type","token","propName","defaultVal"]),p=a,h=c.DOM.createElement(n,r({},u));i&&(h.type=i),M(h,s);var m=null,f=null;if("select"===n||"number"===i||"color"===i||"text"===i?(m="value",f=""):"checkbox"===i?(m="checked",f=!1):console.error("Unknown input type "+i),m){var g=p[s],y=null;if(y=void 0===g?void 0===d?f:d:g,"number"===i&&("dim_light_opacity"==s||(y=parseInt(y,10)||0)),"vttes_dimming_start"==s&&a.night_vision_effect&&a.night_vision_effect.startsWith("Dimming")){var b=a.night_vision_effect.split("_"),N=0;"number"==typeof a.night_vision_distance&&(N=parseFloat(b[1]),isNaN(N)||(N=Math.floor(a.night_vision_distance*N),a.vttes_dimming_start=N))}"dim_light_opacity"==s&&(y=parseFloat(y),isNaN(y)&&(y=0),isFinite(y)||(y=0)),h[m]=y}return h},T=function(e){var t=e.propName,n=e.token,o=c.DOM.createElement(N,{propName:t,type:"color",token:n}),r=c.DOM.createElement("button",{onClick:function(e){e.stopPropagation(),o.value=e.target.value},value:"transparent",className:"btn"},"Clear");return M(r,t),c.DOM.createElement("span",{style:{display:"inline-grid",gridTemplateColumns:"4fr 1fr"}},o,r)},v=function(e){var t=e.attribs,n=[c.DOM.createElement("option",{value:"null"},"None"),c.DOM.createElement("option",{value:"Nocturnal"},"Nocturnal"),c.DOM.createElement("option",{value:"Dimming"},"Dimming"),c.DOM.createElement("option",{value:"Sharpen"},"Sharpen")],o=c.DOM.createElement(N,{style:{margin:"0",marginRight:"4px",marginBottom:"4px",marginTop:"4px"},Component:"select",propName:"night_vision_effect",token:t,defaultVal:"null"},n);if(t.night_vision_effect)for(var r=0,i=n;r<i.length;r++){var a=i[r];if(t.night_vision_effect.startsWith(a.value)){o.value=a.value;break}}var l=function(e){var t=e.label,n=e.defaultVal,o=void 0===n?void 0:n,r=e.propName,i=e.attribs;return c.DOM.createElement("span",{style:{marginTop:"16px",display:"inline-flex",alignItems:"center"}},c.DOM.createElement(N,{defaultVal:o,style:{marginRight:"4px"},propName:r,type:"checkbox",token:i}),c.DOM.createElement("h4",null,t))};return c.DOM.createElement("div",{className:"span6"},c.DOM.createElement("h3",{style:{marginBottom:"12px"}},"Updated Dynamic Lighting"),c.DOM.createElement(h,{label:"Has Bright Light Vision",defaultVal:!1,propName:"has_bright_light_vision",token:t,wrapperStyle:{marginRight:"16px"}}),c.DOM.createElement(h,{label:"Has Low Light Vision",defaultVal:!1,propName:"has_low_light_vision",token:t,wrapperStyle:{marginRight:"16px"}}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"light_sensitivity_multiplier",type:"number",token:t}),"Light Sensitivity Percentage (0 to 100)"),c.DOM.createElement(l,{label:"Night Vision",defaultVal:!1,propName:"has_night_vision",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"night_vision_distance",type:"number",token:t}),"Distance (in ft.)"),c.DOM.createElement("div",null,o,"Effect"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"vttes_dimming_start",type:"number",token:t}),"Dimming Start (with dimming effect)",c.DOM.createElement("div",null,c.DOM.createElement("span",{style:{display:"inline-flex",alignItems:"center"}},c.DOM.createElement(T,{propName:"night_vision_tint",token:t,style:{marginRight:"4px"}}),c.DOM.createElement("span",null,"Tint"))),c.DOM.createElement(l,{label:"Limit Field of Vision",defaultVal:!1,propName:"has_limit_field_of_vision",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"limit_field_of_vision_total",type:"number",token:t}),c.DOM.createElement("span",{style:{marginRight:"8px"}},"Total"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"limit_field_of_vision_center",type:"number",token:t}),"Center"),c.DOM.createElement(l,{label:"Limit Field of Vision (for Night Vision)",defaultVal:!1,propName:"has_limit_field_of_night_vision",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"limit_field_of_night_vision_total",type:"number",token:t}),c.DOM.createElement("span",{style:{marginRight:"8px"}},"Total"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"limit_field_of_night_vision_center",type:"number",token:t}),"Center"),c.DOM.createElement(l,{label:"Emit Bright Light",defaultVal:!1,propName:"emits_bright_light",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"bright_light_distance",type:"number",token:t}),"Distance (in ft.)"),c.DOM.createElement(l,{label:"Emit Low Light",defaultVal:!1,propName:"emits_low_light",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"light_ui",type:"number",token:t}),c.DOM.createElement("span",{style:{marginRight:"8px"}},"Distance"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"dim_light_opacity",type:"number",token:t}),"Brightness (0 to 1)"),c.DOM.createElement(l,{label:"Directional Bright Light",defaultVal:!1,propName:"has_directional_bright_light",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"directional_bright_light_total",type:"number",token:t}),c.DOM.createElement("span",{style:{marginRight:"8px"}},"Total"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"directional_bright_light_center",type:"number",token:t}),"Center"),c.DOM.createElement(l,{label:"Directional Dim Light",defaultVal:!1,propName:"has_directional_dim_light",attribs:t}),c.DOM.createElement("div",null,c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"directional_dim_light_total",type:"number",token:t}),c.DOM.createElement("span",{style:{marginRight:"8px"}},"Total"),c.DOM.createElement(N,{style:{marginRight:"4px",width:"48px"},propName:"directional_dim_light_center",type:"number",token:t}),"Center"),c.DOM.createElement("h4",{style:{marginTop:"16px"}},"Light Color"),c.DOM.createElement(T,{style:{marginBottom:"8px"},propName:"lightColor",token:t}))},k=function(e){var t=e.tokenAttribs;return c.DOM.createElement("div",{style:{marginTop:"16px"},className:"span6"},c.DOM.createElement("h3",{style:{marginBottom:"12px"}},"Legacy Dynamic Lighting"),c.DOM.createElement("h4",null,"Light Emitter"),c.DOM.createElement("div",{className:"inlineinputs",style:"margin-bottom: 16px;"},c.DOM.createElement(N,{style:{width:"48px"},propName:"light_radius",type:"text",token:t}),"ft.",c.DOM.createElement(N,{style:{width:"48px"},propName:"light_dimradius",type:"text",token:t}),"ft.",c.DOM.createElement(N,{style:{width:"48px"},propName:"light_angle",type:"text",token:t}),c.DOM.createElement("span",{style:"font-size: 2.0em;"},"°"),c.DOM.createElement("div",{style:"color: #888; padding-left: 5px; margin-bottom: 8px"},"Light Radius / (optional) Start of Dim / Angle"),c.DOM.createElement("div",{style:"margin-left: 7px;"},c.DOM.createElement(N,{propName:"light_otherplayers",type:"checkbox",style:{marginRight:"8px"},token:t}),"Is emitting light?")),c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"auto auto"}},c.DOM.createElement("div",null,c.DOM.createElement("h4",null,"Light Observer"),c.DOM.createElement("div",{className:"inlineinputs",style:"margin-bottom: 16px;"},c.DOM.createElement(N,{style:{width:"48px"},propName:"light_losangle",type:"text",placeholder:"360",token:t}),c.DOM.createElement("span",{style:"font-size: 2.0em;"},"°"),c.DOM.createElement(N,{propName:"light_multiplier",type:"number",placeholder:"1.0",token:t,style:{width:"48px",display:"inline-block",margin:"0px 5px"}}),c.DOM.createElement("div",{style:"color: #888; padding-left: 5px; margin-bottom: 8px"},"Angle / Multiplier"),c.DOM.createElement("div",{style:"margin-left: 7px;"},c.DOM.createElement(N,{propName:"light_hassight",type:"checkbox",style:{marginRight:"8px"},token:t}),"Can see?"))),c.DOM.createElement("div",null,c.DOM.createElement("h4",null,"Advanced Fog of War"),c.DOM.createElement("div",{className:"inlineinputs",style:"margin-top: 5px; margin-bottom: 16px;"},c.DOM.createElement(N,{style:{width:"48px"},propName:"adv_fow_view_distance",type:"text",token:t}),c.DOM.createElement("div",{style:"color: #888; padding-left: 5px;"},"View Distance")))))},_=function(){return function(){this.token=null,this.char=null}}(),w="/images/character.png",V=function(t){function n(){var n=t.call(this,e)||this;return n.sheetTab=null,n.onShowTab=function(e){var t=n.getUserData(e);t.token&&t.char||(t.char=u.R20.getCharacter(e.characterId),console.log(t),t.char&&u.R20.getBlob(t.char,"defaulttoken").then(function(e){if(p.strIsNullOrEmpty(e)){var n={imgsrc:t.char.attributes.avatar||w,height:70,width:70,name:t.char.attributes.name,represents:t.char.id};t.token=n}else for(var o in t.token=JSON.parse(e),delete t.token.z_index,delete t.token.type,delete t.token.top,delete t.token.left,delete t.token.statusmarkers,delete t.token.statusdead,delete t.token.sides,delete t.token.pageid,delete t.token.locked,delete t.token.layer,delete t.token.lastmove,delete t.token.isdrawing,delete t.token.groupwidth,delete t.token.gmnotes,delete t.token.currentSide,delete t.token.cardid,delete t.token.adv_fow_view_distance,delete t.token.anim_autoplay,delete t.token.anim_loop,delete t.token.anim_paused_at,t.token)void 0!==t.token[o]&&null!==t.token[o]||delete t.token[o]}).finally(function(){e.rerender()}))},n.renderWidget=function(e){var t=u.R20.getCampaign().attributes,o=n.getUserData(e);if(!o.char)return c.DOM.createElement("div",null,"Could not find character. You might not have permissions to do so.");if(!o.token)return c.DOM.createElement("div",null,"Failed to get default token. You might not have permissions to do so.");var l={marginTop:"16px",marginLeft:"16px"},s=function(e){e.stopPropagation&&e.stopPropagation();var t=e.target,n=t.getAttribute(b);if(n){var r=t.value;switch(t.type){case"checkbox":r=t.checked;break;case"number":"dim_light_opacity"==n||(r=parseInt(t.value,10))}var i=t.getAttribute(y);i&&(r=i),"null"==r&&(r=null),console.log("Change: "+n+" -> "+r,r),o.token[n]=r;var a=function(){if(o.token.night_vision_effect&&o.token.night_vision_effect.startsWith("Dimming")){var e=0;"number"==typeof o.token.night_vision_distance&&0!=o.token.night_vision_distance&&"number"==typeof o.token.vttes_dimming_start&&(e=o.token.vttes_dimming_start/o.token.night_vision_distance),o.token.night_vision_effect="Dimming_"+e,console.log("Recalced night_vision_effect: ",o.token.night_vision_effect)}};if("night_vision_effect"==n?(console.log("try_recalc_dimming_effect: night_vision_effect"),a()):"night_vision_distance"==n?(console.log("try_recalc_dimming_effect: night_vision_distance"),a()):"vttes_dimming_start"==n&&(console.log("try_recalc_dimming_effect: vttes_dimming_start"),a()),"bright_light_distance"==n||"light_ui"==n){var l=function(e){var t=o.token[e];return"number"!=typeof t?0:isFinite(t)?isNaN(t)?0:t:0},s=l("bright_light_distance"),c=l("light_ui");o.token.low_light_distance=s+c}}},d=function(t){t.stopPropagation(),confirm("You will lose any unsaved changes. Proceed?")&&(o.char=null,o.token=null,n.onShowTab(e))},p=function(){_();var e=r({},o.token);e.bar1_link&&delete e.bar1_value,e.bar2_link&&delete e.bar2_value,e.bar3_link&&delete e.bar3_value;var t=JSON.stringify(e);o.char.updateBlobs({defaulttoken:t}),o.char.save({defaulttoken:(new Date).getTime()}),V()},M=c.DOM.createElement("span",{style:{marginLeft:"auto",marginRight:"auto"}}),_=function(){M.innerText="Saving..."},V=function(){M.innerText="Done!"},R=c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{borderBottom:"1px solid lightgray",display:"grid",gridTemplateColumns:"1fr 1fr 1fr"}},c.DOM.createElement("div",null,c.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr"}},c.DOM.createElement("div",{onDrop:function(t){var n=void 0,r=null;try{var i=t.dataTransfer.getData("text/html");n=/src="?([^"\s]+)"?\s*/.exec(i)[1]}catch(e){r=e}null!==n&&void 0!==n||(n=t.url),n?(o.token.imgsrc=n,e.rerender()):alert("Drag & Drop image failed: "+r)},className:"r20es-token-img-hover",style:{display:"flex",flexDirection:"column",margin:"16px",position:"relative",marginLeft:"0"}},c.DOM.createElement("img",{style:{alignSelf:"center",width:"100%",maxWidth:"180px"},src:o.token.imgsrc,alt:"token image"}),c.DOM.createElement("div",{style:{marginTop:"4px",display:"grid",gridTemplateColumns:"1fr 1fr"}},c.DOM.createElement("button",{onClick:function(t){t.stopPropagation(),confirm("Remove avatar image?")&&(o.token.imgsrc=w,e.rerender())},className:"btn",style:{marginBottom:"8px",marginRight:"8px"}},"Remove Image"),c.DOM.createElement("button",{style:{marginBottom:"8px"},onClick:function(t){t.stopPropagation();var n=prompt("Image URL.",o.token.imgsrc);n&&(o.token.imgsrc=n,e.rerender())},className:"btn"},"Set from URL"))),c.DOM.createElement("div",{style:{marginRight:"16px"}},c.DOM.createElement("div",null,"Nameplate"),c.DOM.createElement("div",{style:{display:"flex"}},c.DOM.createElement(N,{propName:"name",type:"text",style:{width:"210px"},token:o.token}),c.DOM.createElement("button",{onClick:function(e){_(),o.char.save({name:o.token.name});var t=o.char.attribs.find(function(e){return"npc_name"===e.attributes.name});t&&t.save({current:o.token.name}),V()},className:"btn",title:"Updates the name of the character on the sheet with the name in the input box."},"Set")),c.DOM.createElement("div",null,c.DOM.createElement(N,{propName:"showname",type:"checkbox",style:{marginTop:"8px",marginRight:"4px"},token:o.token}),c.DOM.createElement("span",null,"Show nameplate?")),c.DOM.createElement("div",null,"Tint Color"),c.DOM.createElement(T,{style:{marginBottom:"8px"},propName:"tint_color",token:o.token}),c.DOM.createElement("div",{style:{marginBottom:"4px"}},c.DOM.createElement("span",{style:{display:"inline-block",marginRight:"4px"}},"Width (px)"),c.DOM.createElement(N,{propName:"width",style:{width:"48px",marginRight:"12px"},type:"number",token:o.token}),c.DOM.createElement("span",{style:{display:"inline-block",marginRight:"4px"}},"Height (px)"),c.DOM.createElement(N,{propName:"height",style:{width:"48px"},type:"number",token:o.token})),c.DOM.createElement("div",{style:{marginBottom:"4px"}},c.DOM.createElement("span",{style:{display:"inline-block",marginRight:"4px"}},"Rotation (degrees)"),c.DOM.createElement(N,{style:{width:"48px"},propName:"rotation",type:"number",token:o.token})),c.DOM.createElement("div",null,c.DOM.createElement(h,{label:"Flip Horizontal",defaultVal:!1,propName:"fliph",token:o.token,wrapperStyle:{marginRight:"16px"}}),c.DOM.createElement(h,{label:"Flip Vertical",defaultVal:!1,propName:"flipv",token:o.token})))),c.DOM.createElement(v,{attribs:o.token})),c.DOM.createElement("div",{style:{borderLeft:"1px solid lightgray"}},c.DOM.createElement("div",{style:l},c.DOM.createElement(f,{name:"Bar 1",color:t.bar1_color,tokenAttribs:o.token,character:o.char,onChange:s,index:1}),c.DOM.createElement(f,{name:"Bar 2",color:t.bar2_color,tokenAttribs:o.token,character:o.char,onChange:s,index:2}),c.DOM.createElement(f,{name:"Bar 3",color:t.bar3_color,tokenAttribs:o.token,character:o.char,onChange:s,index:3})),c.DOM.createElement("div",{style:l},c.DOM.createElement(m,{name:"Aura 1",tokenAttribs:o.token,index:1}),c.DOM.createElement(m,{name:"Aura 2",tokenAttribs:o.token,index:2})),c.DOM.createElement("div",{style:Object.assign({},l,{marginBottom:"16px"})},c.DOM.createElement("h3",null,"Player Permissions"),c.DOM.createElement(g,{name:"Name",propName:"name",tokenAttribs:o.token,add_permissions:!1}),c.DOM.createElement(g,{name:"Bar 1",propName:"bar1",tokenAttribs:o.token,add_permissions:!0,index:1}),c.DOM.createElement(g,{name:"Bar 2",propName:"bar2",tokenAttribs:o.token,add_permissions:!0,index:2}),c.DOM.createElement(g,{name:"Bar 3",propName:"bar3",tokenAttribs:o.token,add_permissions:!0,index:3}),c.DOM.createElement(g,{name:"Aura 1",propName:"aura1",tokenAttribs:o.token,add_permissions:!1}),c.DOM.createElement(g,{name:"Aura 2",propName:"aura2",tokenAttribs:o.token,add_permissions:!1}),c.DOM.createElement("div",null,c.DOM.createElement("b",null,"Bar Location"),function(){var e=c.DOM.createElement(N,{style:{margin:"0",marginLeft:"8px"},Component:"select",propName:"bar_location",token:o.token,defaultVal:"above"},c.DOM.createElement("option",{value:"above"},"Above"),c.DOM.createElement("option",{value:"overlap_top"},"Top Overlapping"),c.DOM.createElement("option",{value:"overlap_bottom"},"Bottom Overlapping"),c.DOM.createElement("option",{value:"below"},"Below"));return setTimeout(function(){e.value=o.token.bar_location||"above"},500),e}()),c.DOM.createElement("div",null,c.DOM.createElement("b",null,"Bar Type"),function(){var e=c.DOM.createElement(N,{style:{margin:"0",marginLeft:"8px"},Component:"select",propName:"compact_bar",token:o.token,defaultVal:"standard"},c.DOM.createElement("option",{value:"standard"},"Standard"),c.DOM.createElement("option",{value:"compact"},"Compact"));return setTimeout(function(){e.value=o.token.compact_bar||"standard"},500),e}()),c.DOM.createElement(k,{tokenAttribs:o.token})))),c.DOM.createElement("div",{style:{marginTop:"16px",marginBottom:"16px",display:"grid",gridTemplateColumns:"1fr 1fr 1fr"}},c.DOM.createElement("span",{style:"float: left"},u.R20.isGM()?c.DOM.createElement("button",{onClick:d,className:"btn"},"Refresh"):c.DOM.createElement("span",null,"Players do not have permissions to read default character tokens.")),M,c.DOM.createElement("span",{style:"float: right"},c.DOM.createElement("button",{onClick:function(e){return i(n,void 0,void 0,function(){var t,n,r,i,l,s,c;return a(this,function(a){switch(a.label){case 0:if(e.stopPropagation(),!confirm("Are you sure you want to do this? This will update ALL tokens in this campaign that represent this character.If you have changed the avatar, a refresh maybe be required to see the changes."))return[2];_(),t=u.R20.getAllPages(),n=0,r=t,a.label=1;case 1:return n<r.length?((i=r[n]).fullyLoadPage(),i.thegraphics?[4,i.thegraphics.init_promise]:(console.error("Page thegraphics are undefined!",i),[3,3])):[3,4];case 2:for(a.sent(),l=0,s=i.thegraphics.models;l<s.length;l++)(c=s[l]).character&&c.character.id===o.char.id&&c.save(o.token);a.label=3;case 3:return n++,[3,1];case 4:return V(),[2]}})})},style:"margin-right: 8px",className:"btn"},"Update all tokens"),u.R20.isGM()?c.DOM.createElement("button",{onClick:p,className:"btn"},"Update default token"):c.DOM.createElement("span",null,"Players do not have permission to update the default token but they can update already placed tokens. Try updating all tokens."))));return $(R).find("input, select, button").on("change",s).on("click",s),R},n.setup=function(){n.sheetTab=d.SheetTab.add("Token Editor",n.renderWidget,n.onShowTab,u.R20.canEditCharacter),n.css_element=p.createCSSElement("\n\n      .r20es-token-img-hover {\n        visibility: hidden;\n      }\n\n      .r20es-token-img-hover:hover {\n        visibility: visible;\n      }\n\n    ","vttes_token_editor_css")},n.dispose=function(){n.css_element&&n.css_element.remove(),t.prototype.dispose.call(n),n.sheetTab&&n.sheetTab.dispose()},n}return o(n,t),n.prototype.getUserData=function(e){return e.userData||(e.userData=new _),e.userData},n}(s.R20Module.OnAppLoadBase);t.default=function(){(new V).install()}}).call(this,"src/modules/CharacterTokenModifier")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(3),s=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.prototype.setup=function(){var e=this;setTimeout(function(){return r(e,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:return t.trys.push([0,3,,4]),[4,fetch("https://justas-d.github.io/roll20-enhancement-suite/latest_chrome_version")];case 1:return[4,t.sent().text()];case 2:return"1.28.19"!=t.sent().trim()&&l.R20.saySystem('\n<h2 style="color: whitesmoke">Update Available!</h2>\n<span>VTTES has an update available. Grab it \n  <a style="color: orange;" href="https://justas-d.github.io/roll20-enhancement-suite/chrome.html">here</a>.\n</span>\n<br/>\n'),[3,4];case 3:return e=t.sent(),console.error("VTTES: failed to check for new version",e),[3,4];case 4:return[2]}})})},4e3)},n.prototype.dispose=function(){t.prototype.dispose.call(this)},n}(a.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/ChromeUpdateChecker")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(8),l=n(9),s=function(t){function n(){var n=t.call(this,e)||this;return n.onClickMenuItem=function(){var e=i.R20.getSelectedTokens();i.R20.unselectTokens();for(var t={},n=0,o=e;n<o.length;n++){var r=o[n],a=i.R20.try_get_canvas_object_model(r);if(!a)return;var l=a.character&&a.character.attributes.name;if(l||(l=a.attributes.name),t[l]||(t[l]=0),l){var s={name:l+" "+ ++t[l]};a.save(s)}}},n}return o(n,t),n.prototype.setup=function(){i.R20.isGM()&&a.TokenContextMenu.addButton("Add Counter",this.onClickMenuItem,l.TOKEN_CONTEXT_MENU_ORDER_NAME_COUNTER,{mustHaveSelection:!0})},n.prototype.dispose=function(){a.TokenContextMenu.removeButton("Add Counter",this.onClickMenuItem)},n}(r.R20Module.SimpleBase);t.default=function(){(new s).install()}}).call(this,"src/modules/CounterTokenName")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l=function(t){function n(){var n=t.call(this,e)||this;return n.on_size_el_change=function(e){var t=e.target;n.opt.value=t.value,n.opt.innerText="Custom ("+t.value+")";var o=parseInt(t.value,10);a.R20.set_drawing_brush_size(o);for(var r=0,i=a.R20.getSelectedTokens();r<i.length;r++){var l=i[r];"path"==l.type&&(l.set("strokeWidth",o),window.d20.engine.canvas.fire("object:modified",{target:l}))}},n.either_show_or_hide_custom_size_input=function(e){e.selectedOptions[0].innerText.startsWith("Custom")?n.size_el.style.removeProperty("display"):n.size_el.style.display="none"},n.on_change_select=function(e){var t=e.target;n.either_show_or_hide_custom_size_input(t)},n.try_get_select_element=function(){var e=document.querySelector("#path_width");return e||(console.error("Could not find the path_width element"),null)},n.on_shape_selected=function(e,t){var o=n.try_get_select_element();o&&n.either_show_or_hide_custom_size_input(o)},n}return o(n,t),n.prototype.setup=function(){var e=this.try_get_select_element();if(e){this.opt=i.DOM.createElement("option",{value:"20"},"Custom (20)"),e.insertBefore(this.opt,e.firstChild),e.addEventListener("change",this.on_change_select);var t=e.parentElement.parentElement;this.size_el=i.DOM.createElement("li",{style:{display:"none"}},i.DOM.createElement("span",{style:{fontSize:"0.65em",marginRight:"4px"}},"Size:"),i.DOM.createElement("input",{value:"20",onchange:this.on_size_el_change,type:"number"})),t.appendChild(this.size_el),$("body").on("shape_selected","#editor",this.on_shape_selected)}},n.prototype.dispose=function(){this.opt&&this.opt.remove(),this.size_el&&this.size_el.remove();var e=this.try_get_select_element();e&&e.removeEventListener("change",this.on_change_select),$("body").off("shape_selected","#editor",this.on_shape_selected),t.prototype.dispose.call(this)},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/CustomPathWidth")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l=function(t){function n(){var n=t.call(this,e)||this;return n._shouldIgnoreEvents=!1,n._muteButtonClass="r20es-mute-drawing-button",n._muteButtonDisablePicClass="r20es-mute-drawing-button-disable",n._playerCardQuery="#playerzone .player",n._storageKey="r20es_player_ids_by_who_can_draw",n.handleObjectPlacement=function(e,t){if(!n._shouldIgnoreEvents){var o=e.val(),r=a.R20.getPageById(o.page_id);if(r){var i=t(r).get(e.key);i?n.canPlaceObjects(i.attributes.controlledby)||i.destroy():n.reportThatWeDontHaveTheInnerPageObject()}else n.reportThatWeDontHaveThePageObject()}},n.canPlaceObjects=function(e){var t=n.getStorage();return"boolean"!=typeof t[e]||t[e]},n.onTextAdded=function(e){n.handleObjectPlacement(e,function(e){return e.thetexts})},n.onDrawingAdded=function(e){n.handleObjectPlacement(e,function(e){return e.thepaths})},n.unhookPage=function(e){e.thepaths.backboneFirebase.reference.off("child_added",n.onDrawingAdded),e.thetexts.backboneFirebase.reference.off("child_added",n.onTextAdded)},n.reportThatWeDontHaveTheInnerPageObject=function(){console.error("[DisablePlayerDrawings] find inner page object after receiving firebase event!")},n.reportThatWeDontHaveThePageObject=function(){console.error("[DisablePlayerDrawings] onPageAdded failed to find wrapped page object after receiving firebase event!")},n.onPageAdded=function(e){var t=a.R20.getPageById(e.key);t?(t.fullyLoadPage(),setTimeout(function(){t.thepaths.backboneFirebase.reference.on("child_added",n.onDrawingAdded),t.thetexts.backboneFirebase.reference.on("child_added",n.onTextAdded)},1e3)):n.reportThatWeDontHaveThePageObject()},n.onPageRemoved=function(e){var t=a.R20.getPageById(e.key);t?n.unhookPage(t):n.reportThatWeDontHaveThePageObject()},n.uiIsPlayerSquare=function(e){if(!e.classList)return!1;if(!e.id)return!1;var t=e;return t.classList.contains("player")&&t.id.startsWith("player_")&&!t.id.includes(a.R20.getCurrentPlayer().id)},n.getPlayerSquareById=function(e){for(var t=0,o=$(n._playerCardQuery);t<o.length;t++){var r=o[t];if(n.uiIsPlayerSquare(r))if(n.uiGetPlayerIdFromRoot(r)===e)return r}},n.getStorage=function(){return window.Campaign.attributes[n._storageKey]||{}},n.saveStorage=function(e){var t;window.Campaign.save(((t={})[n._storageKey]=e,t))},n.toggleMute=function(e){var t=n.getStorage();"boolean"!=typeof t[e]?t[e]=!1:t[e]=!t[e];var o=t[e];n.saveStorage(t),console.log(t);var r=n.getPlayerSquareById(e);if(r){var i=n.uiGetMuteButton(r);$(i).find("."+n._muteButtonDisablePicClass)[0].style.visibility=o?"hidden":"visible"}else n.uiReportMissingPlayerSquare(e)},n.uiOnMuteButtonClick=function(e){var t=e.target,o=$(t).closest(n._playerCardQuery)[0];o?n.toggleMute(n.uiGetPlayerIdFromRoot(o)):n.uiReportMissingButtonRoot(t)},n.uiReportMissingPlayerSquare=function(e){console.error("[DisablePlayerDrawing] failed to find root player square div for id: ",e)},n.uiReportMissingButtonRoot=function(e){console.error("[DisablePlayerDrawing] failed to find root player square div after clicking mute button: ",e)},n.uiGetMuteButton=function(e){return $(e).find("."+n._muteButtonClass)[0]},n.uiGetPlayerIdFromRoot=function(e){return e.id.replace("player_","")},n.uiAddMuteButton=function(e){if(console.log("add mute button to",e),!n.uiGetMuteButton(e)){var t=i.DOM.createElement("div",{className:n._muteButtonClass,style:{position:"absolute",width:"30px",height:"30px",top:"0px",backgroundColor:"rgba(255, 255, 255, 0.5)",left:"0px",justifyContent:"center",alignItems:"center",display:"flex",cursor:"pointer"}},i.DOM.createElement("span",{className:"pictos",style:{position:"absolute",fontSize:"18px"}},"p"),i.DOM.createElement("span",{className:"pictos "+n._muteButtonDisablePicClass,style:{position:"absolute",fontSize:"22px",visibility:n.canPlaceObjects(n.uiGetPlayerIdFromRoot(e))?"hidden":"visible"}},"d"));t.addEventListener("click",n.uiOnMuteButtonClick),e.appendChild(t)}},n.uiRemoveMuteButton=function(e){var t=n.uiGetMuteButton(e);t&&t.remove()},n.observerCallback=function(e){for(var t=0,o=e;t<o.length;t++){var r=o[t];"avatarContainer"===r.target.id&&r.addedNodes.forEach(function(e){n.uiIsPlayerSquare(e)&&n.uiAddMuteButton(e)})}},n.uiForEachPlayerSquare=function(e){document.querySelectorAll(n._playerCardQuery).forEach(function(t){n.uiIsPlayerSquare(t)&&e(t)})},n.setup=function(){a.R20.isGM()&&(n._shouldIgnoreEvents=!0,window.Campaign.pages.backboneFirebase.reference.on("child_added",n.onPageAdded),window.Campaign.pages.backboneFirebase.reference.on("child_removed",n.onPageRemoved),setTimeout(function(){n._shouldIgnoreEvents=!1},1e3),n._observer=new MutationObserver(n.observerCallback),n._observer.observe(document.body,{childList:!0,subtree:!0}),n.uiForEachPlayerSquare(n.uiAddMuteButton))},n.dispose=function(){if(t.prototype.dispose.call(n),a.R20.isGM()){n._observer.disconnect();for(var e=0,o=a.R20.getAllPages();e<o.length;e++){var r=o[e];n.unhookPage(r)}window.Campaign.pages.backboneFirebase.reference.off("child_added",n.onPageAdded),window.Campaign.pages.backboneFirebase.reference.off("child_removed",n.onPageRemoved),n.uiForEachPlayerSquare(n.uiRemoveMuteButton)}},n}return o(n,t),n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/DisablePlayerDrawings")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(4),l=n(16),s=n(1),c=function(t){function n(){var o=t.call(this,e)||this;return o.getButton=function(e){return $(l.makeLayerButtonSelector(e))},o.onToolChange=function(e){console.log("tool changed!");var t=e.target;for(var n in l.layerInfo){var r=l.layerInfo[n];if(t.classList.contains(r.toolName)){o.render(l.layerInfo[n]);break}}},o.updateModeIndicator=function(e){var t=document.getElementById(n.selectId);t&&(t.style.display="select"===e?"none":"block")},o.render=function(e){var t=document.getElementById(n.layerId),r=$(t).find("p")[0];t.style.backgroundColor="rgba("+e.bgColors[0]+", "+e.bgColors[1]+", "+e.bgColors[2]+", "+o.getHook().config.backgroundOpacity+")",r.innerHTML=e.bigTxt},o}return o(n,t),n.prototype.createWidget=function(){console.log("Creating widget");var e=document.getElementById("playerzone");if(console.log(e),e){var t=this.getHook().config,o=t.size/9.375+"px",r={height:t.size+"px",padding:o+" "+o+" "+t.size/3.75+"px "+o},c={fontFamily:"Helvetica",fontSize:t.size+"px",lineHeight:"1em",color:"rgba("+t.textFillColor[0]+", "+t.textFillColor[1]+", "+t.textFillColor[2]+", "+t.textFillOpacity+")",textShadow:"2px 2px 0px rgba("+t.textOutlineColor[0]+", "+t.textOutlineColor[1]+", "+t.textOutlineColor[2]+", "+t.textOutlineOpacity+")"},d={opacity:t.globalOpacity,marginBottom:"15px",marginRight:"15px",position:"absolute"};switch(t.corner){case"bottomRight":d.bottom="0",d.right="0";break;case"bottomLeft":d.bottom="0",d.left="0";break;case"topRight":d.top="0",d.right="0";break;case"topLeft":d.top="0",d.left="0";break;default:console.error("Unknown DCL module corner: "+t.corner)}var u=s.DOM.createElement("div",{id:n.rootId,style:d},t.showNotSelecting&&s.DOM.createElement("div",{id:n.selectId,style:a.copy(r,{background:"rgba(255,0,0,"+t.notSelectingOpacity+")"})},s.DOM.createElement("p",{style:c},"Not selecting!")),s.DOM.createElement("div",{id:n.layerId,style:r},s.DOM.createElement("p",{style:c})));e.appendChild(u),this.render(l.layerInfo[i.R20.getCurrentLayer()]),this.updateModeIndicator(i.R20.getCurrentToolName())}},n.prototype.removeWidget=function(){a.findByIdAndRemove(n.rootId)},n.prototype.onSettingChange=function(e,t,n){this.removeWidget(),this.createWidget()},n.prototype.turnOffListener=function(e){e.off("click",this.onToolChange)},n.prototype.setup=function(){var e=this;if(i.R20.isGM()){this.createWidget();var t=function(t){e.turnOffListener(t),t.on("click",e.onToolChange)};for(var n in l.layerInfo){var o=l.layerInfo[n],r=this.getButton(o);t(r)}window.r20es.setModePrologue=this.updateModeIndicator,this.getButton(l.layerInfo[i.R20.CanvasLayer.B20Foreground]).length<=0&&setTimeout(function(){t(e.getButton(l.layerInfo[i.R20.CanvasLayer.B20Foreground])),t(e.getButton(l.layerInfo[i.R20.CanvasLayer.B20Weather])),t(e.getButton(l.layerInfo[i.R20.CanvasLayer.Lighting]))},1e4)}},n.prototype.dispose=function(){for(var e in t.prototype.dispose.call(this),l.layerInfo){var n=l.layerInfo[e];this.turnOffListener(this.getButton(n))}window.r20es.setModePrologue=null,this.removeWidget()},n.selectId="r20es-select",n.layerId="r20es-layer",n.rootId="r20es-drawCurrentLayer-root",n}(r.R20Module.OnAppLoadBase);t.default=function(){(new c).install()}}).call(this,"src/modules/DrawCurrentLayer")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l=n(4),s=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.doDuplicate=function(e){var t=a.R20.getHandout(e),n=a.R20.getCharacter(e);if(n){var o=Promise.all([a.R20.getBlob(n,"notes"),a.R20.getBlob(n,"gmnotes"),a.R20.getBlob(n,"defaulttoken")]);n.editview.el.firstElementChild||n.editview.render(),o.then(function(){$(n.editview.el).find(".duplicate").trigger("click")})}else if(t){t.editview.el.firstElementChild||t.editview.render();var r=t.toJSON();delete r.id;var i={},l=t.collection.create(r);Promise.all([a.R20.getBlob(t,"notes").then(function(e){return i.notes=e}),a.R20.getBlob(t,"gmnotes").then(function(e){return i.gmnotes=e})]).then(function(){l.updateBlobs(i)})}},n.prototype.setup=function(){if(a.R20.isGM()){var e=document.getElementById("journalitemmenu");e&&e.firstElementChild.appendChild(i.DOM.createElement("li",{"data-action-type":"r20esduplicate",id:n.optionId},"Duplicate")),window.r20es.onJournalDuplicate=n.doDuplicate}},n.prototype.dispose=function(){window.r20es.onJournalDuplicate=null,l.findByIdAndRemove(n.optionId)},n.optionId="window.r20es-duplicate-journal",n}(r.R20Module.SimpleBase);t.default=function(){(new s).install()}}).call(this,"src/modules/DuplicateButton")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(1),l=n(23),s=function(t){function n(){var n=t.call(this,e)||this;return n.render_rulers=function(e,t){try{if(t.vttes_ruler_mode==l.RULER_RADIUS)if(t.vttes_radius_mode==l.RADIUS_MODE_BLAST){var n=t.to_x-t.x,o=t.to_y-t.y,r=Math.sqrt(n*n+o*o);e.beginPath(),e.arc(t.x+.5*n,t.y+.5*o,.5*r,0,6.28),e.stroke()}else{n=t.to_x-t.x,o=t.to_y-t.y,r=Math.sqrt(n*n+o*o);e.beginPath(),e.arc(t.x,t.y,r,0,6.28),e.stroke()}else if(t.vttes_ruler_mode==l.RULER_CONE)if(t.vttes_cone_mode==l.CONE_MODE_ROUNDED){var i=t.vttes_cone_degrees*(Math.PI/180),a=(n=t.to_x-t.x,o=t.to_y-t.y,r=Math.sqrt(n*n+o*o),Math.atan2(o,n));if(r>1e-6){var s=n/r,c=o/r,d=Math.cos(.5*i),u=Math.sin(.5*i),p=(s*d-c*u)*r+t.x,h=(s*u+c*d)*r+t.y,m=Math.cos(.5*-i),f=Math.sin(.5*-i),g=(s*m-c*f)*r+t.x,M=(s*f+c*m)*r+t.y;e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(p,h),e.moveTo(t.x,t.y),e.lineTo(g,M),e.stroke(),e.arc(t.x,t.y,r,a-.5*i,a+.5*i),e.stroke()}}else{n=t.to_x-t.x;var y=.5*-(o=t.to_y-t.y),b=.5*n;e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(t.x+y+n,t.y+b+o),e.lineTo(t.x-y+n,t.y-b+o),e.closePath(),e.stroke()}else if(t.vttes_ruler_mode==l.RULER_BOX)if(t.vttes_box_mode==l.BOX_MODE_BLAST){e.beginPath();n=t.to_x-t.x,y=.5*-(o=t.to_y-t.y),b=.5*n;e.moveTo(t.x-y,t.y-b),e.lineTo(t.x+y,t.y+b),e.lineTo(t.x+y+n,t.y+b+o),e.lineTo(t.x-y+n,t.y-b+o),e.closePath(),e.stroke()}else{e.beginPath();n=t.to_x-t.x,y=-(o=t.to_y-t.y),b=n;e.moveTo(t.x-y-n,t.y-b-o),e.lineTo(t.x-y+n,t.y-b+o),e.lineTo(t.x+y+n,t.y+b+o),e.lineTo(t.x+y-n,t.y+b-o),e.closePath(),e.stroke()}else if(t.vttes_ruler_mode==l.RULER_LINE){var N=t.vttes_line_width;t.vttes_line_mode==l.LINE_MODE_WIDTH_TO_EDGE||(N*=.5),N=N/window.d20.Campaign.activePage().get("scale_number")*70;n=t.to_x-t.x,o=t.to_y-t.y;if((r=Math.sqrt(n*n+o*o))>1e-6){var T=-o/r*N,v=n/r*N;e.beginPath(),e.moveTo(t.x+T,t.y+v),e.lineTo(t.x-T,t.y-v),e.lineTo(t.x+n-T,t.y+o-v),e.lineTo(t.x+n+T,t.y+o+v),e.closePath(),e.stroke()}}}catch(e){console.error("render_rulers had an error:",e)}},n.redraw_ruler_config_display=function(){var e=!1,t=!1,o=!1,r=!1;window.r20es.extra_ruler.ruler_mode==l.RULER_RADIUS?e=!0:window.r20es.extra_ruler.ruler_mode==l.RULER_CONE?o=!0:window.r20es.extra_ruler.ruler_mode==l.RULER_BOX?t=!0:window.r20es.extra_ruler.ruler_mode==l.RULER_LINE&&(r=!0),n.radius_el.style.display=e?"inline":"none",n.box_el.style.display=t?"inline":"none",n.cone_el.style.display=o?"inline":"none",n.line_el.style.display=r?"inline":"none"},n.set_new_ruler_mode=function(e){n.setConfigValue("ruler_mode",e),window.r20es.extra_ruler.ruler_mode=e,n.redraw_ruler_config_display()},n.hotkey_ruler_normal=function(){return i.R20.enter_measure_mode(),n.select_el.selectedIndex=l.RULER_NORMAL,n.set_new_ruler_mode(l.RULER_NORMAL),!1},n.hotkey_ruler_radius=function(){return i.R20.enter_measure_mode(),n.select_el.selectedIndex=l.RULER_RADIUS,n.set_new_ruler_mode(l.RULER_RADIUS),!1},n.hotkey_ruler_cone=function(){return i.R20.enter_measure_mode(),n.select_el.selectedIndex=l.RULER_CONE,n.set_new_ruler_mode(l.RULER_CONE),!1},n.hotkey_ruler_box=function(){return i.R20.enter_measure_mode(),n.select_el.selectedIndex=l.RULER_BOX,n.set_new_ruler_mode(l.RULER_BOX),!1},n.hotkey_ruler_line=function(){return i.R20.enter_measure_mode(),n.select_el.selectedIndex=l.RULER_LINE,n.set_new_ruler_mode(l.RULER_LINE),!1},n.setup=function(){setTimeout(function(){if("d20plus"in window){var e=window.d20plus.version;do{if("string"!=typeof e)break;for(var t=e.split("."),o=0,r=0,a=0;a<t.length;a++)t[a]=parseInt(t[a],10);if(!(t.length>=1&&"number"==typeof t[0]))break;if(o=t[0],!(t.length>=2&&"number"==typeof t[1]))break;if(r=t[1],o>1)break;if(r>24)break;i.R20.saySystem("Extra Rulers are disabled until betteR20 is updated to at least 1.25.0!"),n.dispose_quick()}while(0)}},5e3),window.r20es.extra_ruler={},window.r20es.extra_ruler_set_mode=function(e){n.ruler_ui_el.style.display="measure"===e?"block":"none"};var e=n.getHook().config;window.r20es.extra_ruler.radius_mode=e.radius_mode,window.r20es.extra_ruler.box_mode=e.box_mode,window.r20es.extra_ruler.cone_mode=e.cone_mode,window.r20es.extra_ruler.cone_degrees=e.cone_degrees,window.r20es.extra_ruler.line_mode=e.line_mode,window.r20es.extra_ruler.line_width=e.line_width,window.r20es.extra_ruler.ruler_mode=e.ruler_mode,window.r20es.render_extra_rulers=n.render_rulers;n.radius_el=a.DOM.createElement("div",{style:{marginLeft:"8px",display:"none"}},a.DOM.createElement("select",{selectedIndex:window.r20es.extra_ruler.radius_mode,style:{width:"80px",margin:"0"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("radius_mode",o),window.r20es.extra_ruler.radius_mode=o}},a.DOM.createElement("option",{value:l.RADIUS_MODE_BURST},"Burst"),a.DOM.createElement("option",{value:l.RADIUS_MODE_BLAST},"Blast")));n.box_el=a.DOM.createElement("div",{style:{marginLeft:"8px",display:"none"}},a.DOM.createElement("select",{selectedIndex:window.r20es.extra_ruler.box_mode,style:{width:"80px",margin:"0"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("box_mode",o),window.r20es.extra_ruler.box_mode=o}},a.DOM.createElement("option",{value:l.BOX_MODE_BURST},"Burst"),a.DOM.createElement("option",{value:l.BOX_MODE_BLAST},"Blast")));var t=a.DOM.createElement("input",{value:window.r20es.extra_ruler.cone_degrees,type:"number",style:{width:"64px",margin:"0"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("cone_degrees",o),window.r20es.extra_ruler.cone_degrees=o}});n.cone_el=a.DOM.createElement("div",{style:{marginLeft:"8px",display:"none"}},t,a.DOM.createElement("span",{style:{marginLeft:"2px"}},"degrees"),a.DOM.createElement("select",{selectedIndex:window.r20es.extra_ruler.cone_mode,style:{width:"100px",margin:"0",marginLeft:"8px"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("cone_mode",o),window.r20es.extra_ruler.cone_mode=o}},a.DOM.createElement("option",{value:l.CONE_MODE_FLAT},"Flat"),a.DOM.createElement("option",{value:l.CONE_MODE_ROUNDED},"Rounded")),a.DOM.createElement("button",{className:"btn",style:{paddingBottom:"0px",paddingTop:"0px",transform:"translateY(-2px)"},onClick:function(){var e=57.29577951307855;n.setConfigValue("cone_degrees",e),window.r20es.extra_ruler.cone_degrees=e,t.value=e}},"Reset Degrees"));n.line_el=a.DOM.createElement("div",{style:{marginLeft:"8px",display:"none"}},a.DOM.createElement("select",{selectedIndex:window.r20es.extra_ruler.line_mode,style:{width:"120px",margin:"0"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("line_mode",o),window.r20es.extra_ruler.line_mode=o}},a.DOM.createElement("option",{value:l.LINE_MODE_TOTAL_WIDTH},"Total Width"),a.DOM.createElement("option",{value:l.LINE_MODE_WIDTH_TO_EDGE},"Width to Edge")),a.DOM.createElement("input",{value:window.r20es.extra_ruler.line_width,type:"number",style:{width:"64px",margin:"0",marginLeft:"8px"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.setConfigValue("line_width",o),window.r20es.extra_ruler.line_width=o}}),a.DOM.createElement("span",{style:{marginLeft:"2px",marginRight:"8px"}},"units"));n.select_el=a.DOM.createElement("select",{selectedIndex:window.r20es.extra_ruler.ruler_mode,style:{width:"80px",margin:"0"},onchange:function(e){var t=e.target,o=parseInt(t.value,10);n.set_new_ruler_mode(o)}},a.DOM.createElement("option",{value:l.RULER_NORMAL},"Ruler"),a.DOM.createElement("option",{value:l.RULER_RADIUS},"Radius"),a.DOM.createElement("option",{value:l.RULER_CONE},"Cone"),a.DOM.createElement("option",{value:l.RULER_BOX},"Box"),a.DOM.createElement("option",{value:l.RULER_LINE},"Line")),n.ruler_ui_el=a.DOM.createElement("div",{style:{height:"auto",position:"absolute",left:"60px",top:"20px",backgroundColor:"#FFF",border:"1px solid #666",boxShadow:"1px 1px 3px #666",zIndex:"10502",display:"none"}},n.select_el,n.radius_el,n.box_el,n.cone_el,n.line_el),document.body.appendChild(n.ruler_ui_el),n.redraw_ruler_config_display(),window.Mousetrap.bind("g q",n.hotkey_ruler_normal),window.Mousetrap.bind("g r",n.hotkey_ruler_radius),window.Mousetrap.bind("g c",n.hotkey_ruler_cone),window.Mousetrap.bind("g e",n.hotkey_ruler_box),window.Mousetrap.bind("g w",n.hotkey_ruler_line)},n.dispose_quick=function(){window.Mousetrap.unbind("g q",n.hotkey_ruler_normal),window.Mousetrap.unbind("g r",n.hotkey_ruler_radius),window.Mousetrap.unbind("g c",n.hotkey_ruler_cone),window.Mousetrap.unbind("g e",n.hotkey_ruler_box),window.Mousetrap.unbind("g w",n.hotkey_ruler_line),window.r20es.render_extra_rulers=null,window.r20es.extra_ruler_set_mode=null,n.ruler_ui_el&&(n.ruler_ui_el.remove(),n.ruler_ui_el=null)},n.dispose=function(){n.dispose_quick(),t.prototype.dispose.call(n)},n}return o(n,t),n}(r.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/ExtraRulers")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l="vttes-handout-image-from-url",s=function(t){function n(){var n=t.call(this,e)||this;return n.set_image_from_url=function(e){e.stopPropagation();var t=e.target.getAttribute("data-handoutid"),n=a.R20.getHandout(t);if(n){var o=window.prompt("Set character avatar from URL:",n.attributes.avatar);null!=o&&(o?n.save({avatar:o}):alert("Invalid URL."))}else alert("Could not find handout! (Id is: "+t+")")},n.try_inject=function(e){if(!e.querySelector("."+l)){var t=e.getAttribute("data-handoutid"),o=e.querySelector(".avatar").parentElement.parentElement;if(o){var r=i.DOM.createElement("button",{className:"btn "+l,onClick:n.set_image_from_url,"data-handoutid":t},"VTTES: Set image from URL");o.appendChild(r)}else console.error("Could not find parent of avatar_el")}},n.observer_callback=function(e){for(var t=0,o=e;t<o.length;t++)for(var r=0,i=o[t].addedNodes;r<i.length;r++){var a=i[r];a.firstElementChild&&(a.classList&&a.classList.contains("handouteditor")?n.try_inject(a.parentElement):a.firstElementChild&&a.firstElementChild.classList&&a.firstElementChild.classList.contains("handouteditor")&&n.try_inject(a))}},n}return o(n,t),n.prototype.setup=function(){this.observer=new MutationObserver(this.observer_callback),this.observer.observe(document.body,{childList:!0,subtree:!0})},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.observer&&this.observer.disconnect(),document.querySelectorAll("."+l).forEach(function(e){return e.remove()})},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/HandoutImageFromURL")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.prototype.setup=function(){var e=i.createCSSElement("\n#playerzone .player {\n    display: none !important;\n    visibility: hidden !important;\n}\n",n.styleId);document.body.appendChild(e)},n.prototype.dispose=function(){i.findByIdAndRemove(n.styleId)},n.styleId="r20es-hide-player-list-style",n}(r.R20Module.SimpleBase);t.default=function(){(new a).install()}}).call(this,"src/modules/HidePlayerList")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){var n=t.call(this,e)||this;return n.wasBound=!1,n}return o(n,t),n.prototype.setup=function(){if(i.R20.isGM()){var e=function(){return i.R20.advanceInitiative()};window.Mousetrap.bind("ctrl+right",e),window.Mousetrap.bind("meta+right",e),this.wasBound=!0}},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.wasBound&&(this.wasBound=!1,window.Mousetrap.unbind("ctrl+right"),window.Mousetrap.unbind("meta+right"))},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new a).install()}}).call(this,"src/modules/InitiativeAdvanceShortcut")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(3),i=n(31),a=n(131),l=function(t){function n(){return t.call(this,e,"r20es-jukebox-io-widget","Import/Export Playlists","Track","Select Playlists",null)||this}return o(n,t),n.prototype.continueImporting=function(e){a.JukeboxIO.applyData(e)},n.prototype.nameGetter=function(e){return e.name},n.prototype.descGetter=function(e){return e.songs.map(function(e){return e.title}).join(" ; ")},n.prototype.extra_drawing_above_table_import=function(){return null},n.prototype.getExportData=function(){return a.JukeboxIO.makeApplyablePlaylists(r.R20.getJukeboxPlaylists())},n.prototype.injectWidget=function(e){var t=$("#sortrootjukeboxalpha");t[0].parentNode.insertBefore(e,t[0])},n.prototype.serializeExportData=function(e){return{filename:"playlists.json",json:a.JukeboxIO.serialize(e)}},n.prototype.tryDeserialize=function(e){return a.JukeboxIO.deserialize(e)},n}(i.IOModuleCommon);t.default=function(){(new l).install()}}).call(this,"src/modules/JukeboxIO")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=function(e){function t(t){var n=e.call(this,t)||this;return n.submit=function(e){e.stopPropagation();var t={};$(n.getRoot()).find("input").each(function(e,n){t[e]=!n.checked}),n.close(!0);var o=[];n.data.forEach(function(e,n){t[n]||o.push(e)}),o.length<=0?alert("Selection is empty."):n.continueCallback(o)},n.onToggleAll=function(e){e.stopPropagation(),$(n.getRoot()).find("input").each(function(e,t){t.checked=!t.checked})},n}return o(t,e),t.prototype.show=function(t,n,o,r,i,a,l){this.extra_drawing_above_table=l,this.object_name=n,this.title=t,this.data=o,this.nameGetter=r,this.descGetter=i,this.continueCallback=a,e.prototype.internalShow.call(this)},t.prototype.render=function(){var e=null;this.extra_drawing_above_table&&(e=this.extra_drawing_above_table());for(var t=[],n=0,o=this.data;n<o.length;n++){var r=o[n];t.push(a.DOM.createElement("tr",null,a.DOM.createElement("th",{scope:"row"},a.DOM.createElement(i.CheckboxWithText,{checkboxText:this.nameGetter(r),checked:!0})),a.DOM.createElement("td",{className:"r20es-code"},this.descGetter(r))))}return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h2",null,this.title)),a.DOM.createElement(i.DialogBody,null,e,a.DOM.createElement("button",{className:"btn",onClick:this.onToggleAll},"Toggle All"),a.DOM.createElement("table",{className:"r20es-indent"},a.DOM.createElement("thead",null,a.DOM.createElement("tr",{className:"table-head"},a.DOM.createElement("th",{scope:"col"},"Name"),a.DOM.createElement("th",{scope:"col"},this.object_name))),a.DOM.createElement("tbody",null,t))),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{className:"btn",onClick:this.close},"Close"),a.DOM.createElement("button",{className:"btn",style:{float:"right"},onClick:this.submit},"OK"))))},t}(r.DialogBase);t.default=l},function(e,t,n){"use strict";t.__esModule=!0;var o=n(17),r=n(3),i=n(32),a=n(33),l=function(){return function(){this.parse=function(e){if(function(t){return!(t in e)}("playlists"))return new o.Err("playlists not found");for(var t=0,n=0,r=e.playlists;n<r.length;n++){var i=r[n];if(!("name"in i))return new o.Err("playlist index "+t+" doesn't have name");if(!("songs"in i))return new o.Err("playlist index "+t+" doesn't have songs");for(var a=0,l=0,s=i.songs;l<s.length;l++){var c=s[l];if(!("loop"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have loop");if(!("playing"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have playing");if(!("softstop"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have softstop");if(!("tags"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have tags");if(!("title"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have title");if(!("track_id"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have track_id");if(!("volume"in c))return new o.Err("song index "+a+" in playlist idx "+t+" doesn't have volume");a++}t++}var d=e;return new o.Ok(d.playlists)}}}();!function(e){var t={1:new l};e.deserialize=function(e){var n=i.default.parseRaw(e);if(n.isErr())return n.map();var o=n.ok().unwrap(),r=i.default.lookupStrategy(o,t);return r.isErr()?r.map():r.ok().unwrap().parse(o)},e.applyData=function(e){var t,n=e.map(function(e){var t=e.songs.map(function(e){return r.R20.createSong(e).id});return r.R20.makePlaylistStructure(e.name,e.mode,t)});r.R20.getCampaign();try{t=(t=r.R20.getJukeboxFileStructure()).concat(n)}catch(e){console.log("Failed to parse jukeboxfolder:",e),t=n}console.log(t),r.R20.setJukeboxFileStructure(t)},e.makeApplyablePlaylists=function(e){return e.map(function(e){return{name:e.name,mode:e.mode,songs:e.songs.map(function(e){var t={loop:e.attributes.loop,playing:e.attributes.playing,softstop:e.attributes.softstop,source:e.attributes.source,tags:e.attributes.tags,title:e.attributes.title,track_id:e.attributes.track_id,volume:e.attributes.volume};return e.attributes[a.LIBRE_AUDIO_TRACK_KEY]&&(t[a.LIBRE_AUDIO_TRACK_KEY]=!0),t})}})},e.serialize=function(e){var t={schema_version:1,playlists:e};return JSON.stringify(t,null,4)}}(t.JukeboxIO||(t.JukeboxIO={}))},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(33),a=n(3),l=n(1),s=n(4),c=n(133),d=function(t){function n(){var n=t.call(this,e)||this;return n._addTrackWidgetId="r20es-libre-audio-add-track-widget",n.uiInsertAddTrackWidget=function(){var e=document.getElementById("addjukebox");if(e){var t=l.DOM.createElement("button",{id:n._addTrackWidgetId,className:"btn",onClick:n.uiOnClickAddTrack},"VTTES: Add Track");e.parentNode.insertBefore(t,e)}else console.error("[LibreAudio] uiInsertAddTrackWidget failed to find widget before_root (id: addjukebox)")},n.tryUpgradeTrackToNewestLibreAudioTrackVersion=function(e){e.attributes[i.LIBRE_AUDIO_TRACK_KEY]&&"Fanburst"===e.attributes.source&&e.save({source:"My Audio"})},n.databaseOnAddJukeboxTrack=function(e){var t=e.val();setTimeout(function(){var e=a.R20.getSongById(t.id);e?n.tryUpgradeTrackToNewestLibreAudioTrackVersion(e):console.error("[LibreAudio] databaseOnAddJukeboxTrack couldn't find track by id "+t.id+"!",t)},1e3)},n.uiRemoveAddTrackWidget=function(){s.findByIdAndRemove(n._addTrackWidgetId)},n.uiOnClickAddTrack=function(){n.add_url_dialog.show()},n.canPlaySound=function(e){return console.log("querying",e),!!e.attributes[i.LIBRE_AUDIO_TRACK_KEY]},n.ui_on_add_url_dialog_close=function(e){var t,o=n.add_url_dialog.getData();if(o)for(var r=0,l=o;r<l.length;r++){var s=l[r],c=a.R20.createSong(((t={loop:!1,playing:!1,softstop:!1,source:"My Audio"})[i.LIBRE_AUDIO_TRACK_KEY]=!0,t.title=s.title,t.track_id=s.url,t.volume=s.volume,t));a.R20.addTrackToPlaylist(c.id,s.playlist)}},n.earlySetup=function(){window.r20es.canPlaySound=n.canPlaySound},n.setup=function(){window.Jukebox.playlist.backboneFirebase.reference.on("child_added",n.databaseOnAddJukeboxTrack),n.add_url_dialog=new c.default,n.add_url_dialog.getRoot().addEventListener("close",n.ui_on_add_url_dialog_close),n.uiInsertAddTrackWidget()},n.dispose=function(){n.add_url_dialog&&n.add_url_dialog.dispose(),window.r20es.canPlaySound=void 0,window.Jukebox.playlist.backboneFirebase.reference.off("child_added",n.databaseOnAddJukeboxTrack),n.uiRemoveAddTrackWidget()},n}return o(n,t),n}(r.R20Module.OnAppLoadBase);t.default=function(){(new d).install()}}).call(this,"src/modules/LibreAudio")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};t.__esModule=!0;var i=n(1),a=n(6),l=n(5),s=n(3),c=n(4),d=n(24),u=function(e,t,n,o){var r=document.createElement("audio");r.crossorigin="anonymous",r.volume=0;var i=function(){r.pause(),r.removeEventListener("error",a),r.removeEventListener("canplay",l),r.src=""},a=function(e){i(),console.error(e),o(t)},l=function(e){i(),n(t)};r.addEventListener("error",a),r.addEventListener("canplay",l),r.src=e,r.play()},p=function(e){function t(){var t=e.call(this,void 0)||this;return t.id_watermark=0,t.ui_id_property="data-request-id",t.current_playlist=null,t.playlist_id_new_playlist="__r20es_new",t.ui_set_submit_enabled_status=function(e){t.ui_button_create&&(t.ui_button_create.disabled=!e,e?(t.ui_button_create.classList.remove("disabled"),t.ui_button_create.style.opacity="1"):(t.ui_button_create.classList.add("disabled"),t.ui_button_create.style.opacity="0.5"))},t.ui_get_corresponding_track_id_by_event=function(e){var n=e.target,o=n.getAttribute(t.ui_id_property);return console.log(n,t.ui_id_property),void 0===o?(console.error("[LibreAudio] ui_get_corresponding_track_id_by_event couldn't get id for",n),null):o},t.ui_on_update_title_input=function(e){var n=t.ui_get_corresponding_track_id_by_event(e);t.internal_request_data[n].can_auto_resolve_title=!1,t.requests[n].title=e.target.value,console.log(t.requests)},t.ui_disable_ok_button_if_there_is_an_invalid_url_or_enable_it_if_there_are_none=function(){var e=0;for(var n in t.internal_request_data){if(++e,!t.internal_request_data[n].is_valid&&t.ui_button_create)return void t.ui_set_submit_enabled_status(!1)}0===e?t.ui_set_submit_enabled_status(!1):t.ui_set_submit_enabled_status(!0)},t.misc_on_audio_stream_checker_ok=function(e){t.internal_request_data[e].is_valid=!0;var n=t.ui_request_elements[e];n.status.innerText="OK",i.DOM.apply_style(n.status,d.CommonStyle.success_span),t.ui_disable_ok_button_if_there_is_an_invalid_url_or_enable_it_if_there_are_none()},t.misc_on_audio_stream_checker_err=function(e){t.internal_request_data[e].is_valid=!1;var n=t.ui_request_elements[e];n.status.innerText="Invalid URL",i.DOM.apply_style(n.status,d.CommonStyle.error_span),t.ui_disable_ok_button_if_there_is_an_invalid_url_or_enable_it_if_there_are_none()},t.ui_on_update_url_input=function(e){var n=t.ui_get_corresponding_track_id_by_event(e),o=t.requests[n],r=t.ui_request_elements[n],a=e.target.value;if(t.internal_request_data[n].can_auto_resolve_title){var l=c.nearly_format_file_url(a);r.title.value=l,o.title=l}o.url=a,r.status.innerText="Checking...",i.DOM.apply_style(r.status,d.CommonStyle.progress_span),u(a,n,t.misc_on_audio_stream_checker_ok,t.misc_on_audio_stream_checker_err)},t.ui_set_volume_status=function(e,t){e.innerText=t+"%"},t.ui_on_update_volume_input=function(e){var n=t.ui_get_corresponding_track_id_by_event(e),o=e.target.value;t.requests[n].volume=o;var r=t.ui_request_elements[n];t.ui_set_volume_status(r.current_volume,o),console.log(t.requests)},t.ui_on_remove_track=function(e){var n=t.ui_get_corresponding_track_id_by_event(e);delete t.requests[n],delete t.ui_request_elements[n],delete t.internal_request_data[n],t.ui_disable_ok_button_if_there_is_an_invalid_url_or_enable_it_if_there_are_none(),t.rerender()},t.add_track_for_user_input=function(){var e,n=t.id_watermark++,o={url:"",title:"",volume:100,playlist:t.current_playlist};t.requests[n]=o,t.internal_request_data[n]={can_auto_resolve_title:!0,is_valid:!1};var a=((e={})[t.ui_id_property]=n,e),l={marginRight:"8px"},s={remove:i.DOM.createElement("input",r({},a,{style:r({},l,{width:"16px"}),type:"button",value:"x",onClick:t.ui_on_remove_track})),url:i.DOM.createElement("input",r({style:l},a,{type:"text",value:o.url,onChange:t.ui_on_update_url_input})),title:i.DOM.createElement("input",r({style:l},a,{type:"text",value:o.title,onChange:t.ui_on_update_title_input})),volume:i.DOM.createElement("input",r({style:{width:"80%"}},a,{type:"range",min:"0",max:"100",value:o.volume,onChange:t.ui_on_update_volume_input})),current_volume:i.DOM.createElement("span",{style:r({},l,{width:"32px"})}),status:i.DOM.createElement("span",{style:l})};i.DOM.apply_style(s.remove,d.CommonStyle.error_span),t.ui_request_elements[n]=s,t.ui_set_volume_status(s.current_volume,o.volume)},t.ui_submit_click=function(e){if(e.stopPropagation(),t.current_playlist===t.playlist_id_new_playlist){var n=s.R20.createPlaylist(t.ui_new_playlist_name_input.value);for(var o in t.requests)t.requests[o].playlist=n}var r=[];for(var o in t.requests)r.push(t.requests[o]);t.setData(r),t.close()},t.ui_add_track=function(e){e.stopPropagation(),t.add_track_for_user_input(),t.ui_disable_ok_button_if_there_is_an_invalid_url_or_enable_it_if_there_are_none(),t.rerender()},t.ui_on_change_playlist=function(e){e.stopPropagation();var n=e.target.value;if(t.current_playlist=n,n===t.playlist_id_new_playlist)t.rerender();else for(var o in t.ui_new_playlist_name_input.remove(),t.requests){t.requests[o].playlist=n}},t}return o(t,e),t.prototype.show=function(){this.requests={},this.ui_request_elements={},this.internal_request_data={},this.current_playlist="",this.add_track_for_user_input(),this.ui_button_create=i.DOM.createElement("input",{className:"btn-success",type:"button",onClick:this.ui_submit_click,value:"Create"}),this.ui_new_playlist_name_input=i.DOM.createElement("input",{style:{marginLeft:"8px"},type:"text",value:"Playlist Name"}),this.ui_set_submit_enabled_status(!0),e.prototype.internalShow.call(this)},t.prototype.render=function(){for(var e={marginRight:"8px"},t=[i.DOM.createElement("option",{value:""},"-- None --"),i.DOM.createElement("option",{value:this.playlist_id_new_playlist},"-- New--")],n=0,o=s.R20.getJukeboxPlaylists();n<o.length;n++){var r=o[n],a=i.DOM.createElement("option",{value:r.id},r.name);t.push(a)}var c=i.DOM.createElement("select",{value:this.current_playlist,onChange:this.ui_on_change_playlist},t);return i.DOM.createElement(l.Dialog,null,i.DOM.createElement(l.DialogHeader,null,i.DOM.createElement("h2",null,"Add Tracks")),i.DOM.createElement(l.DialogBody,null,i.DOM.createElement("div",null,i.DOM.createElement("span",{style:e},"To Playlist:"),c,this.current_playlist===this.playlist_id_new_playlist&&this.ui_new_playlist_name_input),i.DOM.createElement("div",{style:{width:"100%",display:"grid",gridTemplateColumns:"auto 1fr 1fr auto auto auto"}},i.DOM.createElement("span",{style:e}),i.DOM.createElement("span",{style:e},"URL"),i.DOM.createElement("span",{style:e},"Title"),i.DOM.createElement("span",{style:e},"Volume"),i.DOM.createElement("span",{style:e}),i.DOM.createElement("span",{style:e},"Status"),this.ui_request_elements)),i.DOM.createElement(l.DialogFooter,null,i.DOM.createElement(l.DialogFooterContent,null,i.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr"}},i.DOM.createElement("input",{style:e,type:"button",className:"btn-danger",onClick:this.close,value:"Cancel"}),i.DOM.createElement("input",{style:e,type:"button",className:"btn-info",value:"Add Another Track",onClick:this.ui_add_track}),this.ui_button_create))))},t}(a.DialogBase);t.default=p},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(3),l=n(5),s=n(13),c=n(4),d=n(135),u=n(136),p=n(137),h=n(138),m=n(139),f=n(14),g=n(140),M=n(141),y=n(6),b=n(5),N=n(26),T=function(e){function t(t){var n=e.call(this,"r20es-big-dialog")||this;return n.show=n.internalShow,n.submit=function(e,t){n.parent.categoryFilter=t.reduce(function(e,t){return e[t.value]=t.checked,e},{}),n.close(!0),e.stopPropagation()},n.onTokenActionChecked=function(e){n.parent.setIsTokenAction=e.target.checked,e.stopPropagation()},n.onSelectChange=function(e){n.parent.activeGenerator=n.parent.generators[e.target.value],n.rerender(),N.isChromium()&&n.recenter(),e.stopPropagation()},n.onToggleAll=function(e){$(n.getRoot()).find("input").each(function(e,t){t.ignoreToggleAll||(t.checked=!t.checked)}),e.stopPropagation()},n.onChangeFolderStatus=function(e){n.parent.folderingMethod=e.target.value},n.parent=t,n}return o(t,e),t.prototype.generateCheckboxes=function(){for(var e=[],t=[],n=0;n<this.parent.activeGenerator.macroFactories.length;n++){var o=this.parent.activeGenerator.macroFactories[n],r=i.DOM.createElement("div",null,i.DOM.createElement("input",{style:{verticalAlign:"middle",marginRight:"4px"},type:"checkbox",value:n,checked:!0}),i.DOM.createElement("span",{style:{verticalAlign:"middle"}},o.name),o.createFolderEntries&&i.DOM.createElement("span",{style:{float:"right",paddingRight:"16px",color:"#757575"}},"Folderable"));e.push(r),t.push(r.firstElementChild)}return{elems:e,checkboxes:t}},t.prototype.render=function(){var e=this,t=this.parent.activeGenerator?this.generateCheckboxes():{},n=t.elems,o=t.checkboxes,r=[];for(var a in g.FolderingMethod){var l=g.FolderingMethod[a];r.push(i.DOM.createElement("option",{value:l},l))}var s=[];for(var a in this.parent.generators){var c=this.parent.generators[a];s.push(i.DOM.createElement("option",{value:c.id},c.name))}return i.DOM.createElement(b.Dialog,null,i.DOM.createElement(b.DialogHeader,null,i.DOM.createElement("h2",null,"Sheet, category selection.")),i.DOM.createElement(b.DialogBody,null,i.DOM.createElement("select",{value:this.parent.activeGenerator?this.parent.activeGenerator.id:"",onChange:this.onSelectChange},i.DOM.createElement("option",{value:""},"Select a sheet"),s),n&&i.DOM.createElement("div",{style:{paddingLeft:"12px",paddingBottom:"12px"}},i.DOM.createElement("button",{className:"btn",onClick:this.onToggleAll},"Toggle All"),n,i.DOM.createElement("hr",null),i.DOM.createElement("select",{value:this.parent.folderingMethod,onChange:this.onChangeFolderStatus},r),i.DOM.createElement(b.CheckboxWithText,{ignoreToggleAll:!0,checked:this.parent.setIsTokenAction,onChange:this.onTokenActionChecked,checkboxText:"Show as Token Action"}),i.DOM.createElement(b.CheckboxWithText,{ignoreToggleAll:!0,checked:this.parent.sortLex,onChange:function(t){return e.parent.sortLex=t.target.checked},checkboxText:"Sort lexicographically"}))),i.DOM.createElement(b.DialogFooter,null,i.DOM.createElement(b.DialogFooterContent,null,i.DOM.createElement("button",{className:"btn",onClick:this.close},"Close"),i.DOM.createElement("button",{className:"btn",style:{float:"right"},disabled:!("elems"in t),onClick:function(t){return e.submit(t,o)}},"OK"))))},t}(y.DialogBase),v=function(t){function n(){var n=t.call(this,e)||this;n.generators={},n.setIsTokenAction=!0,n.sortLex=!0,n.folderingMethod=g.FolderingMethod.NoFolder,n.categoryFilter={},n.byNameMacroTable={},n.macroBuffer=[],n.modifiedMacros=[],n.addedMacros=[],n.onPickerDialogClose=function(e){if(e.stopPropagation(),n.pickerDialog.isSuccessful()&&n.activePc){var t=[],o=function(e){return void 0===e&&(e=""),"/w @{character_name} @{wtype} &{template:default}{{name=@{character_name} "+e+"}} "},r=function(e){return e.categoryNameModifier?e.categoryNameModifier(e.name):e.name},i=o(),a=0;for(var l in n.activeGenerator.macroFactories)if(n.categoryFilter[l]){var s=n.activeGenerator.macroFactories[l],d=n.folderingMethod===g.FolderingMethod.SmallFolders,u=n.folderingMethod===g.FolderingMethod.UberFolder;if((d||u)&&s.createFolderEntries){var p=s.createFolderEntries(n.activePc);if(p.length<=0)continue;switch(n.folderingMethod){case g.FolderingMethod.NoFolder:break;case g.FolderingMethod.SmallFolders:for(var h=o(r(s)),m=0,y=p;m<y.length;m++){h+="{{"+y[m]+"}} "}t.push({name:s.name,macro:h});break;case g.FolderingMethod.UberFolder:a+=p.length;h="";for(var b=0,N=p;b<N.length;b++){h+=N[b]}i+="{{• "+r(s)+"="+h+"}} ";break;default:M.exhaustTypeSafe(n.folderingMethod)}}else{var T=s.create(n.activePc);t=t.concat(T)}}a>0&&t.push({name:"Uber-Folder",macro:i});for(var v=0,k=t;v<k.length;v++){(V=k[v]).name=c.replaceAll(V.name," ","-")}n.sortLex&&t.sort(function(e,t){return f.default(e,t,function(e){return e.name})});for(var _=0,w=t;_<w.length;_++){var V;(V=w[_]).name in n.byNameMacroTable||(n.byNameMacroTable[V.name]=[]),n.byNameMacroTable[V.name].push(V)}var R=!1;for(var E in n.byNameMacroTable)if(n.byNameMacroTable[E].length>1){R=!0;break}R?n.dupeDialog.show(n.byNameMacroTable,function(e){return e.macro}):(n.macroBuffer=t,n.showVerify())}},n.onVerifyDialogClose=function(e){e.stopPropagation(),n.verifyDialog.isSuccessful()&&n.generateMacros()},n.onButtonClick=function(e){e.stopPropagation(),console.log(e.target);var t=e.target.getAttribute("data-characterid");if(t){var o=a.R20.getCharacter(t);o?(n.activePc=o,n.activeGenerator=null,n.categoryFilter={},n.byNameMacroTable={},n.macroBuffer=[],n.modifiedMacros=[],n.addedMacros=[],n.pickerDialog.show()):console.error('Failed to get character for macro generation: getCharacter("'+t+'") failed.')}else console.error("Failed to find character id for macro generation")},n.renderSheet=function(e){return i.DOM.createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"}},i.DOM.createElement("input",{type:"button",style:{width:"50%",height:"30px"},className:"button",onClick:n.onButtonClick,"data-characterid":e.characterId,value:"Open Generate Macros Dialog"}))},n.onDupeDialogClose=function(e){if(e.stopPropagation(),n.dupeDialog.isSuccessful()){var t=n.dupeDialog.getData();for(var o in n.byNameMacroTable){var r=n.byNameMacroTable[o],i=t[o];n.macroBuffer.push(r[i])}n.showVerify()}};var o=function(e){return n.generators[e.id]=e};return o(d.default),o(u.default),n}return o(n,t),n.prototype.showVerify=function(){var e=this,t=this.activePc.abilities.models.reduce(function(e,t){return e[t.get("name")]=t,e},{});this.macroBuffer.forEach(function(n){if(n.name in t){var o=t[n.name].get("action");if(o===n.macro)return;e.modifiedMacros.push({name:n.name,macro:n.macro,oldMacro:o})}else e.addedMacros.push(n)}),this.modifiedMacros.length<=0&&this.addedMacros.length<=0?this.noMacrosDialog.show():this.verifyDialog.show(this.modifiedMacros,this.addedMacros)},n.prototype.generateMacros=function(){var e=this,t=this.activePc;if(t){var n=new l.LoadingDialog("Generating");n.show(),setTimeout(function(){try{for(var o=function(n){var o=t.abilities.find(function(e){return e.get("name")===n.name});if(!o)return console.error("Tried to modify existing ability but could not find it."),console.table({Query:n.name,Macro:n.macro,"Char Name":t.get("name"),"Char UUID":t.get("id")}),e.addedMacros.push(n),"continue";o.save({action:n.macro,istokenaction:e.setIsTokenAction})},r=0,i=e.modifiedMacros;r<i.length;r++){o(c=i[r])}for(var l=0,s=e.addedMacros;l<s.length;l++){var c=s[l];t.abilities.create({name:c.name,action:c.macro,istokenaction:e.setIsTokenAction})}a.R20.rerender_character_sheet(t)}catch(e){console.error(e),a.R20.rerender_character_sheet(t)}n.dispose()},100)}},n.prototype.setup=function(){this.pickerDialog=new T(this),this.pickerDialog.getRoot().addEventListener("close",this.onPickerDialogClose),this.verifyDialog=new h.default,this.verifyDialog.getRoot().addEventListener("close",this.onVerifyDialogClose),this.dupeDialog=new p.default,this.dupeDialog.getRoot().addEventListener("close",this.onDupeDialogClose),this.noMacrosDialog=new m.default,this.sheetTab=s.SheetTab.add("Macro Generator",this.renderSheet,null,a.R20.canEditCharacter)},n.prototype.dispose=function(){this.sheetTab&&this.sheetTab.dispose(),this.pickerDialog&&this.pickerDialog.dispose(),this.verifyDialog&&this.verifyDialog.dispose(),this.dupeDialog&&this.dupeDialog.dispose(),this.noMacrosDialog&&this.noMacrosDialog.dispose()},n}(r.R20Module.SimpleBase);t.default=function(){(new v).install()}}).call(this,"src/modules/MacroGenerator")},function(e,t,n){"use strict";t.__esModule=!0;for(var o=n(14),r={"NPC Actions":{group:"repeating_npcaction",name:"name",macro:function(e){return"selected|repeating_npcaction_$"+e+"_npc_action"},canMakeFolder:!0},"NPC Bonus Actions":{group:"repeating_npcbonusaction",name:"name",macro:function(e){return"selected|repeating_npcbonusaction_$"+e+"_npc_action"},canMakeFolder:!0},"NPC Legendary Actions":{group:"repeating_npcaction-l",name:"name",macro:function(e){return"selected|repeating_npcaction-l_$"+e+"_npc_action"},canMakeFolder:!0},"NPC Traits":{group:"repeating_npctrait",name:"name",macro:function(e){return"@{selected|wtype}&{template:npcaction} {{name=@{selected|npc_name}}} {{rname=@{selected|repeating_npctrait_$"+e+"_name}}} {{description=@{selected|repeating_npctrait_$"+e+"_description}}}"},canMakeFolder:!1},"NPC Reactions":{group:"repeating_npcreaction",name:"name",macro:function(e){return"@{selected|wtype}&{template:npcaction} {{name=@{selected|npc_name}}} {{rname=@{selected|repeating_npcreaction_$"+e+"_name}}} {{description=@{selected|repeating_npcreaction_$"+e+"_description}}}"},nameMod:function(e){return"Reaction:"+e},canMakeFolder:!1},"Player Attacks":{group:"repeating_attack",name:"atkname",macro:function(e){return"selected|repeating_attack_$"+e+"_attack"},canMakeFolder:!0},"Player Tools":{group:"repeating_tool",name:"toolname",macro:function(e){return"selected|repeating_tool_$"+e+"_tool"},canMakeFolder:!0},"Player Traits":{group:"repeating_traits",name:"name",macro:function(e){return"@{selected|wtype}&{template:traits} @{selected|charname_output} {{name=@{selected|repeating_traits_$"+e+"_name}}} {{source=@{selected|repeating_traits_$"+e+"_source}: @{selected|repeating_traits_$"+e+"_source_type}}} {{description=@{selected|repeating_traits_$"+e+"_description}}}"},canMakeFolder:!1},"Spellbook Cantrips":{group:"repeating_spell-cantrip",name:"spellname",macro:function(e){return"selected|repeating_spell-cantrip_$"+e+"_spell"},canMakeFolder:!0}},i=function(e){r["Spellbook Level "+e]={group:"repeating_spell-"+e,name:"spellname",macro:function(t){return"selected|repeating_spell-"+e+"_$"+t+"_spell"},canMakeFolder:!0,categoryMod:function(t){return t+" (@{Selected|lvl"+e+"_slots_expended}/@{Selected|lvl"+e+"_slots_total})"}}},a=1;a<=9;a++)i(a);var l=function(e,t,n,o){var r=t+"_"+n+"_"+o,i=e.attribs.models.find(function(e){return e.get("name")===r});return i?i.attributes.current:(console.error("[Bulk macro generator for 5e OGL R20] Could not find name for repeating section."),void console.table({Query:r,"Group name":t,"Name Attribute Name":o,"Character name":e.get("name"),"Character UUID":e.get("id")}))},s=function(e,t,n,o,r){for(var i=function(e,t){var n={};return e.attribs.models.forEach(function(e){var o=e.get("name");if(o.startsWith(t+"_")){var r=o.split("_");if(!(r.length<2)){var i=r[2];n[i]=!0}}}),e.repeatingKeyOrder(Object.keys(n),t)}(e,t),a=[],s=0;s<i.length;s++){var c=i[s],d=l(e,t,c,n);"function"==typeof r&&(d=r(d)),a.push({name:d||"",macro:o(s)})}return a},c=[],d=function(e){var t=r[e],n=void 0;t.canMakeFolder&&(n=function(e){var n=s(e,t.group,t.name,t.macro,t.nameMod);n.sort(function(e,t){return o.default(e,t,function(e){return e.name})});for(var r=[],i=0,a=n;i<a.length;i++){var l=a[i];r.push("["+l.name+"](~"+l.macro+") ")}return r});var i=t.canMakeFolder?function(e){return"%{"+t.macro(e)+"}"}:t.macro;c.push({name:e,create:function(e){return s(e,t.group,t.name,i,t.nameMod)},createFolderEntries:n,categoryNameModifier:t.categoryMod})};for(var u in r)d(u);var p="D&D 5e OGL by Roll20",h={id:p,name:p,macroFactories:c};t.default=h},function(e,t,n){"use strict";t.__esModule=!0;var o=n(14),r={"NPC Melee Attacks":{group:"repeating_melee-strikes",name:"weapon",macro:function(e){return"selected|repeating_melee-strikes_$"+e+"_ATTACK-DAMAGE-NPC"},hasMultiAttacks:!0},"NPC Ranged Attacks":{group:"repeating_ranged-strikes",name:"weapon",macro:function(e){return"selected|repeating_ranged-strikes_$"+e+"_ATTACK-DAMAGE-NPC"},hasMultiAttacks:!0},"Player Melee Attacks":{group:"repeating_melee-strikes",name:"weapon",macro:function(e){return"selected|repeating_melee-strikes_$"+e+"_ATTACK-DAMAGE"},hasMultiAttacks:!0},"Player Ranged Attacks":{group:"repeating_ranged-strikes",name:"weapon",macro:function(e){return"selected|repeating_ranged-strikes_$"+e+"_ATTACK-DAMAGE"},hasMultiAttacks:!0},"Innate Spells":{group:"repeating_spellinnate",name:"name",macro:function(e){return"selected|repeating_spellinnate_$"+e+"_spellroll"},hasMultiAttacks:!1},"Focus Spells":{group:"repeating_spellfocus",name:"name",macro:function(e){return"selected|repeating_spellfocus_$"+e+"_spellroll"},hasMultiAttacks:!1},"Cantrip Spells":{group:"repeating_cantrip",name:"name",macro:function(e){return"selected|repeating_cantrip_$"+e+"_spellroll"},hasMultiAttacks:!1},"Normal Spells":{group:"repeating_normalspells",name:"name",macro:function(e){return"selected|repeating_normalspells_$"+e+"_spellroll"},hasMultiAttacks:!1}},i=function(e,t,n,o,r,i){for(var a=function(e,t){var n={};return e.attribs.models.forEach(function(e){var o=e.get("name");if(o.startsWith(t+"_")){var r=o.split("_");if(!(r.length<2)){var i=r[2];n[i]=!0}}}),e.repeatingKeyOrder(Object.keys(n),t)}(e,t),l=[],s=function(s){var c=a[s],d=function(e,t,n,o){var r=t+"_"+n+"_"+o,i=e.attribs.models.find(function(e){return e.get("name")===r});return i?i.attributes.current:(console.error("[Bulk macro generator for Pathfinder 2e R20] Could not find name for repeating section."),void console.table({Query:r,"Group name":t,"Name Attribute Name":o,"Character name":e.get("name"),"Character UUID":e.get("id")}))}(e,t,c,n)||"",u=function(e){var t=o(s);return 1!=e&&(t=""+t+e),i||(t="%{"+t+"}"),t};l.push({name:d,macro:u(1)}),r&&l.push({name:d+"#2",macro:u(2)},{name:d+"#3",macro:u(3)})},c=0;c<a.length;c++)s(c);return l},a=[],l=function(e){var t=r[e];a.push({name:e,create:function(e){return i(e,t.group,t.name,t.macro,t.hasMultiAttacks,!1)},createFolderEntries:function(e){var n=i(e,t.group,t.name,t.macro,t.hasMultiAttacks,!0);n.sort(function(e,t){return o.default(e,t,function(e){return e.name})});for(var r=[],a="",l=0,s=n;l<s.length;l++){var c=s[l];if(r.length>0&&(c.name===a+"#2"||c.name===a+"#3")){var d=c.name.slice(-2);r[r.length-1]=r[r.length-1]+" ["+d+"](~"+c.macro+")"}else r.push("["+c.name+"](~"+c.macro+")"),a=c.name}return r}})};for(var s in r)l(s);var c="Pathfinder 2e by Roll20",d={id:c,name:c,macroFactories:a};t.default=d},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.selectedButtons={},t.submit=function(e){e.stopPropagation(),t.setData(t.selectedButtons),t.close(!0)},t.checkboxLogic=function(e){var n=e.getAttribute("data-key"),o=parseInt(e.getAttribute("data-index"));t.selectedButtons[n]=o,t.rerender()},t.checkboxCheck=function(e){return t.checkboxLogic(e.target)},t.onTextClick=function(e){var n=$(e.target).find("input")[0];n&&t.checkboxLogic(n)},t.genDiffs=function(){var e=[],n=function(n){var o=t.dataSet[n];if(o.length<=1)return"continue";var r=[];o.forEach(function(e,o){var i=t.selectedButtons[n]===o,l=a.DOM.createElement("div",{style:{paddingTop:"0px",paddingBottom:"0px"},onClick:t.onTextClick,className:"r20es-code"},a.DOM.createElement("input",{className:"btn",style:{verticalAlign:"middle",marginRight:"4px"},"data-key":n,"data-index":o,onChange:t.checkboxCheck,type:"radio",checked:i}),t.descRetriever(e));r.push(l)}),e.push(a.DOM.createElement("div",null,a.DOM.createElement("h4",null,n),r,a.DOM.createElement("hr",null)))};for(var o in t.dataSet)n(o);return e},t}return o(t,e),t.prototype.show=function(t,n){for(var o in this.dataSet=t,this.selectedButtons={},this.descRetriever=n,this.dataSet)this.selectedButtons[o]=0;e.prototype.internalShow.call(this)},t.prototype.render=function(){return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h2",null,"Duplicates")),a.DOM.createElement(i.DialogBody,null,a.DOM.createElement("p",null,"Abilities with duplicate names were generated."),a.DOM.createElement("p",null,"Choose which duplicate ability should be kept."),this.genDiffs()),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{style:{boxSizing:"border-box",width:"100%"},className:"btn",onClick:this.submit},"Done"))))},t}(r.DialogBase);t.default=l},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.submit=function(e){e.stopPropagation(),$(t.getRoot()).find("input").each(function(e,n){if(!n.checked){var o=n.getAttribute("data-name"),r=n.hasAttribute("data-modify"),i=r?t.modifiedMacros:t.addedMacros,a=i.findIndex(function(e){return e.name===o});-1!==a?i.splice(a,1):console.error("Tried to remove macro with name "+o+" but could not find it's index in the pool. isModify: "+r)}}),t.close(!0)},t.onToggleAll=function(e){e.stopPropagation(),$(t.getRoot()).find("input").each(function(e,t){t.checked=!t.checked}),e.stopPropagation()},t}return o(t,e),t.prototype.show=function(t,n){this.addedMacros=n,this.modifiedMacros=t,e.prototype.internalShow.call(this)},t.prototype.mkTable=function(e,t,n){return a.DOM.createElement("div",null,a.DOM.createElement("h3",null,e),a.DOM.createElement("table",{className:"r20es-indent"},a.DOM.createElement("thead",null,a.DOM.createElement("tr",{className:"table-head"},t)),a.DOM.createElement("tbody",null,n)))},t.prototype.generateAdded=function(){return this.mkTable("Macros To Be Added",[a.DOM.createElement("th",{scope:"col"},"Name"),a.DOM.createElement("th",{scope:"col"},"Action")],this.addedMacros.map(function(e){return a.DOM.createElement("tr",null,a.DOM.createElement("th",{scope:"row"},a.DOM.createElement(i.CheckboxWithText,{"data-name":e.name,value:e.macro,checkboxText:e.name,checked:!0})),a.DOM.createElement("td",{className:"r20es-code"},e.macro))}))},t.prototype.generateModified=function(){return this.mkTable("Macros To Be Changed",[a.DOM.createElement("th",{scope:"col"},"Name"),a.DOM.createElement("th",{scope:"col"},"Old Action"),a.DOM.createElement("th",{scope:"col"},"New Action")],this.modifiedMacros.map(function(e){return a.DOM.createElement("tr",null,a.DOM.createElement("th",{scope:"row"},a.DOM.createElement(i.CheckboxWithText,{"data-modify":!0,"data-name":e.name,value:e.macro,checkboxText:e.name,checked:!0})),a.DOM.createElement("td",{className:"r20es-code"},e.oldMacro),a.DOM.createElement("td",{className:"r20es-code"},e.macro))}))},t.prototype.render=function(){return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h2",null,"Review Changes")),a.DOM.createElement(i.DialogBody,null,a.DOM.createElement("button",{className:"btn",onClick:this.onToggleAll},"Toggle All"),this.addedMacros.length>0&&this.generateAdded(),this.modifiedMacros.length>0&&this.generateModified()),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{className:"btn",onClick:this.close},"Close"),a.DOM.createElement("button",{className:"btn",style:{float:"right"},onClick:this.submit},"OK"))))},t}(r.DialogBase);t.default=l},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(1),a=n(5),l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.show=t.internalShow,t}return o(t,e),t.prototype.render=function(){return i.DOM.createElement(a.Dialog,null,i.DOM.createElement(a.DialogHeader,null,i.DOM.createElement("h2",null,"Notice")),i.DOM.createElement(a.DialogBody,null,i.DOM.createElement("p",null,"We found nothing to make a macro for.")),i.DOM.createElement(a.DialogFooter,null,i.DOM.createElement(a.DialogFooterContent,null,i.DOM.createElement("button",{style:{boxSizing:"border-box",width:"100%"},className:"btn",onClick:this.close},"OK"))))},t}(r.DialogBase);t.default=l},function(e,t,n){"use strict";t.__esModule=!0,function(e){e.NoFolder="No foldering",e.SmallFolders="Small folders",e.UberFolder="Uber folder"}(t.FolderingMethod||(t.FolderingMethod={}))},function(e,t,n){"use strict";t.__esModule=!0,t.exhaustTypeSafe=function(e){throw new Error("BAD: TYPESAFE CASE EXHAUST. tell a programmer")}},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(3),i=n(143),a=n(31),l=n(34),s=n(1),c=function(t){function n(){var n=t.call(this,e,"r20es-macro-io-widget","Import/Export Macro","Select Macros","Macro","r20es-big-dialog")||this;return n.import_strategy=l.ImportStrategy.ADD,n.continueImporting=function(e){i.MacroIO.applyToPlayer(r.R20.getCurrentPlayer(),e,n.import_strategy),r.R20.rerenderJournalMacros(),r.R20.rerenderMacroBar()},n.updateStrategy=function(e){e.stopPropagation(),n.import_strategy=e.target.value},n}return o(n,t),n.prototype.nameGetter=function(e){return e.attributes.name},n.prototype.descGetter=function(e){return e.attributes.action},n.prototype.extra_drawing_above_table_import=function(){return s.DOM.createElement("span",null,"On duplicate name in import:",s.DOM.createElement("select",{value:this.import_strategy,onChange:this.updateStrategy},s.DOM.createElement("option",{value:l.ImportStrategy.ADD},"Add the duplicate"),s.DOM.createElement("option",{value:l.ImportStrategy.UPDATE_FIRST_MATCH},"Update first existing macro with matching name")))},n.prototype.getExportData=function(){var e=r.R20.getCurrentPlayer();return i.MacroIO.prepareMacroList(e)},n.prototype.injectWidget=function(e){var t=$("#deckstables"),n=t[0].firstElementChild,o=t.find("#adddeck")[0];n.insertBefore(e,o)},n.prototype.serializeExportData=function(e){return{filename:r.R20.getCurrentPlayer().attributes.displayname+"_macros.json",json:i.MacroIO.serialize(e)}},n.prototype.tryDeserialize=function(e){return i.MacroIO.deserialize(e)},n}(a.IOModuleCommon);t.default=function(){(new c).install()}}).call(this,"src/modules/MacroIO")},function(e,t,n){"use strict";t.__esModule=!0;var o,r=n(17),i=n(3),a=n(32),l=n(34),s=function(){return function(){this.parse=function(e){if(!("macros"in e))return new r.Err("macros list not found in data");for(var t=0;t<e.macros.length;t++){var n=e.macros[t];if(!n)return new r.Err("macro "+t+"is an invalid value: "+n);if(!("attributes"in n))return new r.Err("attributes not found in macro "+t);if(n.macrobar){if(!("name"in n.macrobar))return new r.Err("name not found in macro.macrobar "+t);if(!("color"in n.macrobar))return new r.Err("color not found in macro.macrobar "+t)}if(!("action"in n.attributes))return new r.Err("action not found in macro.attributes "+t);if(!("istokenaction"in n.attributes))return new r.Err("istokenaction not found in macro.attributes "+t);if(!("name"in n.attributes))return new r.Err("name not found in macro.attributes "+t);if(!("visibleto"in n.attributes))return new r.Err("visibleto not found in macro.attributes "+t)}return new r.Ok(e.macros)}}}(),c=function(){return function(){this.parse=function(e){if(!e)return new r.Err("player is "+e);if(!("macrobar"in e))return new r.Err("macrobar not found in data");if(!("playerId"in e))return new r.Err("playerId not found in data");if(!("macros"in e))return new r.Err("macros list not found in data");for(var t=0;t<e.macros.length;t++){if(!(s=e.macros[t]))return new r.Err("macro "+t+"is an invalid value: "+s);if(!("id"in s))return new r.Err("id not found in macro "+t);if(!("action"in s))return new r.Err("action not found in macro "+t);if(!("istokenaction"in s))return new r.Err("istokenaction not found in macro "+t);if(!("name"in s))return new r.Err("name not found in macro "+t);if(!("visibleto"in s))return new r.Err("visibleto not found in macro "+t)}for(var n=e,o=d(n.macrobar),i=[],a=0,l=n.macros;a<l.length;a++){var s=l[a],c=u(s,o);i.push(c)}return new r.Ok(i)}}}(),d=function(e){return e.split(",").map(function(e){return e.split("|")})},u=function(e,t){var n=t.findIndex(function(t){return t.length>=2&&t[1]===e.id}),o={attributes:{action:e.action,istokenaction:e.istokenaction,name:e.name,visibleto:e.visibleto}};if(-1!==n){var r=t[n];o.macrobar={color:r.length>=3?r[2]:null,name:r.length>=4?r[3]:null}}return o};!function(e){e.wipeMacros=function(e){i.R20.wipeObjectStorage(e.macros),e.save({macrobar:""})};var t={1:new c,2:new s};e.prepareMacroList=function(e){var t=d(e.attributes.macrobar);return e.macros.models.map(function(e){return u(e.attributes,t)})},e.serialize=function(e){var t={schema_version:2,macros:e};return JSON.stringify(t,null,4)},e.deserialize=function(e){var n=a.default.parseRaw(e);if(n.isErr())return n.map();var o=n.ok().unwrap(),r=a.default.lookupStrategy(o,t);return r.isErr()?r.map():r.ok().unwrap().parse(o)};var n=function(e,t,n){var o=e.id+"|"+t,r=null!==n.macrobar.color,i=null!==n.macrobar.name;return(r||i)&&(r&&i?o+="|"+n.macrobar.color+"|"+n.macrobar.name:r?i||(o+="|"+n.macrobar.color):i&&(o+="|#|"+n.macrobar.name)),o};e.applyToPlayer=function(e,t,o){console.log(o);for(var r=e.macros,i=e.attributes.macrobar.split(","),a=function(t){var a=!1;if(l.ImportStrategy.UPDATE_FIRST_MATCH===o){var s=t.attributes.name,c=r.find(function(e){return s===e.attributes.name});if(c){Object.assign(c.attributes,t.attributes),c.save();var d=i.findIndex(function(e){return e.includes(c.id)});-1===d?t.macrobar&&i.push(n(e,c.id,t)):t.macrobar?i[d]=n(e,c.id,t):i.splice(d,1),a=!0}}if(!1===a){var u=e.macros.create(t.attributes);t.macrobar&&i.push(n(e,u.id,t))}},s=0,c=t;s<c.length;s++){a(c[s])}e.save({macrobar:i.join(",")})}}(o||(o={})),t.MacroIO=o},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(16),l=function(t){function n(){var n=t.call(this,e)||this;return n.on_click=function(e){var t,o=i.R20.getCurrentPageTokens(),r=n.getHook().config;if(e.button===r.mouseButtonIndex&&(!r.modAlt||window.r20es.keys.altDown)&&(!r.modShift||window.r20es.keys.shiftDown)&&(!r.modCtrl||window.r20es.keys.ctrlDown)&&(!r.modMeta||window.r20es.keys.metaDown))for(var l=((t={})[i.R20.CanvasLayer.GMTokens]=r.switchToGmLayer,t[i.R20.CanvasLayer.PlayerTokens]=r.switchToTokenLayer,t[i.R20.CanvasLayer.Map]=r.switchToMapLayer,t[i.R20.CanvasLayer.Lighting]=r.switchToLightsLayer,t[i.R20.CanvasLayer.B20Foreground]=r.switchToForegroundLayer,t[i.R20.CanvasLayer.B20Weather]=r.switchToWeatherLayer,t[i.R20.CanvasLayer.B20Background]=r.switchToBackgroundLayer,t),s=o.length;s-- >0;){var c=o[s],d=i.R20.try_get_canvas_object_model(c);if(d&&(i.R20.doesTokenContainMouse(e,c)&&d)){var u=d.get("layer");if(!l[u])continue;if(i.R20.getCurrentLayer()!==u){var p=a.layerInfo[u];$(a.makeLayerButtonSelector(p)).trigger("click")}r.select&&i.R20.selectToken(c);break}}},n}return o(n,t),n.prototype.setup=function(){i.R20.isGM()&&document.addEventListener("pointerup",this.on_click)},n.prototype.dispose=function(){t.prototype.dispose.call(this),document.removeEventListener("pointerup",this.on_click)},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/MiddleClickSelect")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.doMove=function(e){e&&i.R20.moveCameraToTokenByUUID(e.id)},n.prototype.setup=function(){i.R20.isGM()&&(window.r20es.moveCameraTo=n.doMove)},n.prototype.dispose=function(){window.r20es.moveCameraTo=null},n}(r.R20Module.SimpleBase);t.default=function(){(new a).install()}}).call(this,"src/modules/MoveCameraToToken")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){var n=t.call(this,e)||this;return n.onPageChanged=function(){n.updatePageBackground()},n}return o(n,t),n.prototype.updatePageBackground=function(){var e=this.getHook().config,t=i.R20.getCurrentPage(),n=!0;t.attributes.useAutoWrapper||"transparent"!==t.attributes.wrapperColor&&(n=!1);var o=!0;"#ffffff"!==t.attributes.background_color&&(o=!1);var r=!0,a=!0;if(e.only_force_if_default&&(a=!1,r=!1,n&&(a=!0),o&&(r=!0)),r){var l="rgb("+(s=e.backgroundColor)[0]+", "+s[1]+", "+s[2]+")";i.R20.setBackgroundStyle(l),i.R20.renderAll()}if(a){var s;l="rgb("+(s=e.backdrop_color)[0]+", "+s[1]+", "+s[2]+")";$("#editor-wrapper").css("background",l),$("body").css("background",l)}},n.prototype.resetPageBackground=function(){var e=i.R20.getCurrentPage();i.R20.setBackgroundStyle(e.attributes.background_color),e.view.updateWrapperColor()},n.prototype.onSettingChange=function(e,t,n){this.updatePageBackground()},n.prototype.setup=function(){var e=this;$(document).on("d20:pagechanged",this.onPageChanged),setTimeout(function(){e.updatePageBackground()},500)},n.prototype.dispose=function(){t.prototype.dispose.call(this),$(document).off("d20:pagechanged",this.onPageChanged),this.resetPageBackground(),i.R20.renderAll()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new a).install()}}).call(this,"src/modules/NightMode")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=function(t){function n(){var n=t.call(this,e)||this;return n.toggle_frame_recorder=function(e){try{window.d20.engine.frame_recorder&&(window.d20.engine.frame_recorder.clear(),e?window.d20.engine.frame_recorder.startup():window.d20.engine.frame_recorder.shutdown())}catch(e){console.error(e)}},n.onSettingChange=function(e,t,o){"disable_frame_recorder"===e&&n.toggle_frame_recorder(!o)},n}return o(n,t),n.prototype.setup=function(){var e=this.getHook().config;this.toggle_frame_recorder(!e.disable_frame_recorder)},n.prototype.dispose=function(){this.toggle_frame_recorder(!0)},n}(n(2).R20Module.OnAppLoadBase);t.default=function(){(new r).install()}}).call(this,"src/modules/PerformanceImprovements")},function(e,t,n){"use strict";(function(e){var o,r=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var i=n(2),a=n(15),l=function(t){function n(){var o=t.call(this,e)||this;o._copyTextSettingsKey="copyTextSettingsOnSelect",o.setCopyTextSettingsOnSelectState=function(e){window.r20es[o._copyTextSettingsKey]=e},o.onChangeProp=function(e){var t=e.target;if(t.id){var r=n.idToConfig[t.id];if(r){var i=t.value;o.setConfigValue(r,i)}}},o.onSettingChange=function(e,t,n){e===o._copyTextSettingsKey&&o.setCopyTextSettingsOnSelectState(n)};var r=function(e){return $("#"+e)};return o._events=[new a.EventSubscriber("change",o.onChangeProp,function(){return r(n.colorSelectId)}),new a.EventSubscriber("change",o.onChangeProp,function(){return r(n.sizeSelectId)}),new a.EventSubscriber("change",o.onChangeProp,function(){return r(n.fontSelectId)})],o.setCopyTextSettingsOnSelectState(!0),o}return r(n,t),n.prototype.setFontSettingValueFromConfig=function(e){var t=this.getHook().config[n.idToConfig[e]],o=$("#"+e);return o.val(t),o},n.prototype.setup=function(){for(var e=0,t=this._events;e<t.length;e++){t[e].subscribe()}this.setFontSettingValueFromConfig(n.colorSelectId).trigger("change-silent"),this.setFontSettingValueFromConfig(n.sizeSelectId),this.setFontSettingValueFromConfig(n.fontSelectId),this.setCopyTextSettingsOnSelectState(this.getHook().config[this._copyTextSettingsKey])},n.prototype.dispose=function(){for(var e=0,t=this._events;e<t.length;e++){t[e].unsubscribe()}this.setCopyTextSettingsOnSelectState(!0)},n.colorSelectId="font-color",n.sizeSelectId="font-size",n.fontSelectId="font-family",n.idToConfig=((o={})[n.colorSelectId]="color",o[n.sizeSelectId]="size",o[n.fontSelectId]="font",o),n}(i.R20Module.OnAppLoadBase);t.default=function(){(new l).install()}}).call(this,"src/modules/RememberTextToolSettings")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(3),s=n(8),c=n(9),d=function(t){function n(){var o=t.call(this,e)||this;return o.reportNoCharacter=function(){n.fancySay("Token doesn't have a character.")},o.setHealth=function(e,t){var n=o.getHook().config,r=n.bar+"_value",i=n.bar+"_max",a={};a[r]=t,a[i]=t;var s=l.R20.try_get_canvas_object_model(e);s&&s.save(a)},o.onClickMenuItem=function(e){return r(o,void 0,void 0,function(){var e,t,o,r,a,s,c,d,u,p,h,m,f,g,M,y=this;return i(this,function(b){switch(b.label){case 0:if(e=l.R20.getSelectedTokens(),t=this.getHook().config,l.R20.unselectTokens(),o=0,t.diceFormulaMacro)return[3,5];r=function(r){var s,c,d,u,p,h,m;return i(this,function(i){switch(i.label){case 0:return(s=a.tryGetCharacter(r))?[4,l.R20.ensure_character_attributes_are_loaded(s)]:(a.reportNoCharacter(),[2,"continue"]);case 1:for(i.sent(),c=s.attribs,d=null,u=0,p=c.models;u<p.length;u++)if(h=p[u],!d&&h.attributes.name===t.diceFormulaAttribute){d=h.attributes.current;break}return d?(m=l.R20.try_get_canvas_object_model(r))?(n.fancySay(m.character.get("name")+": [["+d+"]]",function(t,n){if(n.inlinerolls&&!(n.inlinerolls.length<=0)){var i=n.inlinerolls[0].results.total;if(y.setHealth(r,i),++o>=e.length)for(var a=0,s=e;a<s.length;a++){var c=s[a];l.R20.addTokenToSelection(c)}}}),[2]):[2,"continue"]:(n.fancySay("Could not find attribute "+t.diceFormulaAttribute),[2,"continue"])}})},a=this,s=0,c=e,b.label=1;case 1:return s<c.length?(d=c[s],[5,r(d)]):[3,4];case 2:b.sent(),b.label=3;case 3:return s++,[3,1];case 4:return[3,6];case 5:for(u=t.diceFormulaSumInline,p=t.diceFormulaMacro,h=function(e){if(l.R20.selectToken(e),!m.tryGetCharacter(e))return m.reportNoCharacter(),"continue";var t=l.R20.generateUUID();l.R20.say(p,t,function(t,n){var o=0;if(n.inlinerolls&&!(n.inlinerolls.length<=0)){if(u)for(var r=0,i=n.inlinerolls;r<i.length;r++){var a=i[r];a&&a.results&&a.results.total&&(o+=a.results.total)}else o=n.inlinerolls[n.inlinerolls.length-1].results.total;y.setHealth(e,o)}})},m=this,f=0,g=e;f<g.length;f++)M=g[f],h(M);l.R20.hideTokenRadialMenu(),l.R20.hideTokenContextMenu(),b.label=6;case 6:return[2]}})})},o}return o(n,t),n.fancySay=function(e,t){l.R20.sayToSelf("&{template:default} {{name=VTTES Hit Dice}} {{"+e+"}}",t)},n.prototype.tryGetCharacter=function(e){var t=l.R20.try_get_canvas_object_model(e);if(t&&t.character)return t.character},n.prototype.setup=function(){l.R20.isGM()&&s.TokenContextMenu.addButton("Hit Dice",this.onClickMenuItem,c.TOKEN_CONTEXT_MENU_ORDER_HIT_DICE,{mustHaveSelection:!0})},n.prototype.dispose=function(){s.TokenContextMenu.removeButton("Hit Dice",this.onClickMenuItem)},n}(a.R20Module.SimpleBase);t.default=function(){(new d).install()}}).call(this,"src/modules/RollAndApplyHitDice")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(22),l=n(3),s=function(t){function n(){var n=t.call(this,e)||this;return n._buttonClass="r20es-set-table-entry-avatar-by-url-button",n._elementWithIdQuery="div["+a.default.TABLE_ENTRY_ID_ATTRIBUTE+"]",n.uiOnClickSetByUrl=function(e){var t=$(e.target).closest(n._elementWithIdQuery)[0];if(!t)return console.error("[SetTableEntryAvatarByUrl] failed to find element with id on set by url event with target",e.target),void alert("Failed to find the table! Tell a programmer.");var o=t.getAttribute(a.default.TABLE_ENTRY_ID_ATTRIBUTE),r=t.getAttribute(a.default.TABLE_ID_ATTRIBUTE),i=l.R20.getRollableTable(r);if(i){var s=i.tableitems.get(o);if(s){var c=prompt("Image URL",s.attributes.avatar);c&&s.save({avatar:c})}else alert("Failed to find entry (id: "+o+") in table (id: "+o+"). Tell a programmer.")}else alert("Failed to find a table with id "+i+"! Tell a programmer.")},n.uiIsRootElement=function(e){return e.getAttribute&&e.getAttribute(a.default.TABLE_ENTRY_ID_ATTRIBUTE)&&0===$(e).find(""+n._buttonClass).length},n.uiAddButtonToRoot=function(e){var t=$(e).find(".avatar")[0];if(t){var o=i.DOM.createElement("button",{className:n._buttonClass,style:{marginBottom:"8px"}},"Set Avatar By URL");o.addEventListener("click",n.uiOnClickSetByUrl),t.parentElement.insertBefore(o,t)}else console.error("[SetTableEntryAvatarByUrl] failed to find above element of root",e)},n.observerCallback=function(e){for(var t=0,o=e;t<o.length;t++){o[t].addedNodes.forEach(function(e){n.uiIsRootElement(e)&&n.uiAddButtonToRoot(e)})}},n.setup=function(){for(var e=0,t=document.querySelectorAll(n._elementWithIdQuery);e<t.length;e++){var o=t[e];n.uiAddButtonToRoot(o)}n._observer=new MutationObserver(n.observerCallback),n._observer.observe(document.body,{childList:!0,subtree:!0})},n.dispose=function(){n._observer.disconnect();for(var e=0,t=document.body.querySelectorAll("."+n._buttonClass);e<t.length;e++){t[e].remove()}},n}return o(n,t),n}(r.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/SetTableEntryAvatarByUrl")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(4),l=n(152),s=n(38),c=n(39),d=n(40),u=function(t){function n(){var n=t.call(this,e)||this;return n.dialog=null,n.onButtonClick=function(e){e.stopPropagation(),n.dialog.show()},n}return o(n,t),n.prototype.setup=function(){this.dialog=new l.default(this.getAllHooks());var e=a.createCSSElement('\n.r20es-settings-dialog {\n    max-height: 90%;\n    max-width: 70%;\n    height: 100%;\n    width: 100%;\n}\n\n.vttes_overwrite_handout  {\n  visibility: hidden;\n}\n\n.vttes_export_handout {\n  visibility: hidden;\n}\n\n.r20es-settings-flex-wrapper {\n    height: 100%;\n    width: 100%;\n\n    display: flex;\n    flex-direction: column;\n}\n\n.r20es-settings-dialog .dialog-body {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: row;\n}\n\n.r20es-settings-dialog .more-settings ul > li {\n    display: block;\n    margin: 4px 0px 4px 0px\n}\n\n.r20es-settings-dialog input,\n.r20es-settings-dialog .text {\n    vertical-align: middle;\n}\n\n.r20es-settings-dialog input[type="checkbox"] {\n    margin-right: 4px;\n}\n\n.r20es-settings-dialog .more-settings ul > li > select {\n    height: auto;\n}\n\n.r20es-settings-dialog .more-settings .compact {\n    padding: 0;\n    margin: 0;\n}\n\n.r20es-settings-dialog .more-settings > hr {\n    margin-top: 10px;\n    margin-bottom: 10px;\n}\n\n.r20es-settings-dialog .more-settings > .description {\n    margin-bottom: 30px;\n}\n\n.r20es-clickable-text {\n    width: 100%;\n}\n\n.r20es-clickable-text.selected {\n    background-color: rgb(220,220,220);\n}\n\n.r20es-clickable-text.disabled span {\n    color: rgb(200,200,200);\n}\n\n.r20es-clickable-text:hover {\n    background-color: rgb(245,245,245);\n}\n\n.dialog-body > .left {\n    white-space: nowrap;\n    overflow: auto;\n    width: 75%;\n    height: 100%;\n}\n\n.dialog-body > .right {\n    flex-grow: 2;\n    overflow: auto;\n    width: 100%;\n    height: 100%;\n}\n\n.r20es-settings-dialog .noconfig {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n.r20es-settings-dialog .noconfig p {\n    font-size: 1.2em;\n    font-weight: bold;\n}\n\n.r20es-autocomplete {\n    position: relative;\n}\n\n.r20es-autocomplete .r20es-autocomplete-entries {\n    positon: absolute;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    height: 20px;\n    background-color: red;\n}\n',"r20es-settings-css");document.head.appendChild(e);var t=i.DOM.createElement(c.SettingsSidebarButton,{text:"VTTES Settings",id:s.default,onClick:this.onButtonClick});d.insertButtonIntoSettings(t)},n.prototype.dispose=function(){t.prototype.dispose.call(this),a.findByIdAndRemove(s.default),a.findByIdAndRemove("r20es-settings-css"),this.dialog&&this.dialog.dispose()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new u).install()}}).call(this,"src/modules/Settings")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(6),l=n(153),s=n(5),c=n(1),d=n(29),u=n(4),p=n(154),h=n(155),m=n(162),f=n(5),g=n(4),M=n(12),y=".vttes_settings_json",b=function(e){function t(t){var n=e.call(this,"r20es-settings-dialog")||this;return n.activeModule=null,n.about=new l.default,n.changelog=new m.default,n.show=n.internalShow,n.on_import_settings_click=function(){var e=c.DOM.createElement("input",{type:"file",accept:y}),t=function(){return r(n,void 0,void 0,function(){var n,o,r,a,l,s,c;return i(this,function(i){switch(i.label){case 0:e.removeEventListener("change",t),n=e.files[0],(o=new f.LoadingDialog("Overwriting")).show(),i.label=1;case 1:return i.trys.push([1,3,,4]),[4,g.readFile(n)];case 2:if(r=i.sent(),1!=(a=JSON.parse(r)).version)throw"Expected 'version' to be 1, got: "+a.version;if("vttes_settings"!=a.type)throw"Expected 'type' to be 'vttes_settings', got: "+a.type;if("object"!=typeof a.settings)throw"Expected 'settings' to be a table, got: "+typeof a.settings;for(l in window.r20es.hooks)s=window.r20es.hooks[l],a.settings[l]&&(s.config=a.settings[l]);return window.r20es.save_configs(),this.rerender(),[3,4];case 3:return c=i.sent(),alert(c),console.trace(),console.error(c),[3,4];case 4:return o.dispose(),[2]}})})};e.addEventListener("change",t),e.click()},n.on_export_settings_click=function(){var e={version:1,type:"vttes_settings",settings:{}};for(var t in window.r20es.hooks){var n=window.r20es.hooks[t];e.settings[t]=n.config}var o=JSON.stringify(e,null,2),r=new Blob([o],{type:"data:application/javascript;charset=utf-8"}),i=(new Date).toLocaleString()+y;M.saveAs(r,i)},n.onSelect=function(e){n.activeModule=d.isEqual(n.activeModule,e)?null:e;var t=n._leftDiv.scrollTop;n.rerender(),n._leftDiv.scrollTop=t},n.openAbout=function(){return n.about.show()},n.openChangelog=function(){return n.changelog.show()},n.render=function(){var e={};for(var t in n.hooks){var o=n.hooks[t];o.force&&!o.forceShowConfig||(o.category in e||(e[o.category]=[]),e[o.category].push(t))}var r=c.DOM.createElement("div",{className:"left"},u.mapObj(e,function(e,t){return c.DOM.createElement("div",null,c.DOM.createElement("h3",null,t),c.DOM.createElement("div",{className:"r20es-indent"},e.map(function(e){return c.DOM.createElement(p.default,{selected:n.activeModule&&n.activeModule.id===e,onSelect:n.onSelect,hook:n.hooks[e]})})))}));return n._leftDiv=r,c.DOM.createElement(s.Dialog,{className:"r20es-settings-flex-wrapper"},c.DOM.createElement(s.DialogHeader,null,c.DOM.createElement("h2",null,"VTT Enhancement Suite Module Settings")),c.DOM.createElement(s.DialogBody,null,r,n.activeModule?c.DOM.createElement("div",{className:"r20es-indent right"},c.DOM.createElement(h.default,{hook:n.activeModule})):c.DOM.createElement("div",{className:"r20es-indent right noconfig"},c.DOM.createElement("p",null,"Select a module from the left to see its description and options"))),c.DOM.createElement(s.DialogFooter,null,c.DOM.createElement(s.DialogFooterContent,null,c.DOM.createElement("input",{className:"btn",type:"button",onClick:n.openAbout,value:"About"}),c.DOM.createElement("input",{className:"btn",style:{marginLeft:"8px"},type:"button",onClick:n.openChangelog,value:"Changelog"}),c.DOM.createElement("input",{type:"button",style:{marginLeft:"8px"},className:"btn",value:"Import Settings",onClick:n.on_import_settings_click}),c.DOM.createElement("input",{type:"button",className:"btn",style:{marginLeft:"8px"},value:"Export Settings",onClick:n.on_export_settings_click}),c.DOM.createElement("input",{className:"btn",style:{float:"right"},type:"button",onClick:n.close,value:"Apply & Close"}))))},n.hooks=t,n}return o(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this.about&&this.about.dispose(),this.changelog&&this.changelog.dispose()},t}(a.DialogBase);t.default=b},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=n(10),s=function(e){function t(){var t=e.call(this,null,{maxHeight:"100%"},!0)||this;return t.show=t.internalShow,t.render=function(){return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,{style:{textAlign:"center"}},a.DOM.createElement("a",{href:"javascript:void(0) // workaround for underpopup dialog from roll20 regarding leaving the site",onClick:function(){return t.openUrl(l.Config.website)}},a.DOM.createElement("h1",{style:"color: blue"},"VTT Enhancement Suite"),a.DOM.createElement("small",null,"aka R20ES")),a.DOM.createElement("h2",null,"Version ","1.28.19"),a.DOM.createElement("h3",null,"Built for ","userscript",", Roll20")),a.DOM.createElement(i.DialogBody,null,a.DOM.createElement("div",{style:{display:"flex"}},a.DOM.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center"}},a.DOM.createElement("div",null,a.DOM.createElement("b",null,"Built by"),a.DOM.createElement("p",null,"Justas Dabrila, Giddy, gludington, Blesmol, OLStefan")),a.DOM.createElement("div",null,a.DOM.createElement("b",null,"And other work by"),a.DOM.createElement("p",{style:{maxWidth:"180px"}},'Jay "Vanguard" Fothergill, Ryan Wenneker')),a.DOM.createElement("div",null,a.DOM.createElement("b",null,"Tested by"),a.DOM.createElement("p",{style:{maxWidth:"180px"}},"Axecleft, TEU_Snoopy, keablah, Nikolay, Colorblind, DoomRice, Daj, Angor de Redjak, Ryan Wenneker, Tielc, Giddy, Grigdusher, Knilk, Dominic, Neverr, SmoothAsFelt, dunedain, Vlad.D, Mike W, Hagenkopter, Ackerfe, shaosam"))),a.DOM.createElement("div",{style:{display:"flex",flexDirection:"column",direction:"rtl",justifyContent:"center"}},a.DOM.createElement("div",null,a.DOM.createElement("b",null,"With contributions from"),a.DOM.createElement("div",{style:{maxWidth:"180px"}},"Mike, Aaron, Blurn Glanstone, Tobyn, Fredrik, Ryan Wenneker, BuckeyeFan79, Jakob, Daniel (Daj), Morris Kennedy, KarateHawk, Jason Backus, Tielc, Spencer Oldemeyer, Hawks, S.Ziterman, Worst DM Ever, Curtis T, TEU_Snoopy, Jeremy, Alex, Teddy, John Finley, Shemetz, Jon, Mike Schaeffer, Anthony Diaz, Patrick Lane, Raphael Riedl, GrapeDrank, Michael Graeper, Michael Wilson, Bruce Frankford, Shona Dixon, Gabriel Diedrich, Kyle B. Bachman, The Griffin Moon Collaborative")))),a.DOM.createElement("hr",null),a.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"auto auto"}},a.DOM.createElement("span",null,"Branch"),a.DOM.createElement("span",null,"master"),a.DOM.createElement("span",null,"Commit"),a.DOM.createElement("span",null,"b0006f1c01e9b6dbf62d366b8ff7c448899f921f")),a.DOM.createElement("div",{style:{marginTop:"16px",marginBottom:"16px",textAlign:"center"}},a.DOM.createElement("span",{style:{marginRight:"8px"}},a.DOM.createElement("a",{href:"javascript:void(0) // workaround for underpopup dialog from roll20 regarding leaving the site",onClick:function(){return t.openUrl(l.Config.discordInvite)}},a.DOM.createElement("img",{height:"32",width:"32",className:"discord-logo",src:"https://unpkg.com/simple-icons@5.13.0/icons/discord.svg"}))),a.DOM.createElement("span",{style:{marginRight:"8px"}},a.DOM.createElement("a",{href:"javascript:void(0) // workaround for underpopup dialog from roll20 regarding leaving the site",onClick:function(){return t.openUrl("https://github.com/justas-d/roll20-enhancement-suite/")}},a.DOM.createElement("img",{height:"32",width:"32",className:"github-logo",src:"https://unpkg.com/simple-icons@latest/icons/github.svg"}))),a.DOM.createElement("span",null,a.DOM.createElement("a",{href:"javascript:void(0) // workaround for underpopup dialog from roll20 regarding leaving the site",onClick:function(){return t.openUrl(l.Config.contributeUrl)}},a.DOM.createElement("img",{height:"32",width:"32",src:"https://www.buymeacoffee.com/assets/img/BMC-btn-logo.svg",alt:"Buy me a coffee"}))))),a.DOM.createElement("section",{style:{margin:"20px"}},a.DOM.createElement("input",{className:"btn",style:{width:"100%",height:"auto",boxSizing:"border-box"},type:"button",onClick:t.close,value:"OK"})))},t}return o(t,e),t.prototype.openUrl=function(e){window.open(e,"_blank").location},t}(r.DialogBase);t.default=s},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(3),a=n(2),l=function(e){function t(n){var o=e.call(this)||this;return o.onSelect=null,o.onClick=function(e){e.stopPropagation(),"input"!==e.target.tagName.toLowerCase()&&o.onSelect(o.hook)},o.onCheckboxChange=function(e){e.stopPropagation(),a.R20Module.getModule(o.hook.filename).toggleEnabledState()},o.internalRender=function(){var e=!i.R20.isGM()&&o.hook.gmOnly,n=r.DOM.createElement("div",{className:"r20es-clickable-text",onClick:o.onClick,title:e?"This module is GM only.":""},!o.hook.force&&r.DOM.createElement("input",{onChange:o.onCheckboxChange,checked:o.hook.config.enabled,type:"checkbox"}),r.DOM.createElement("span",{className:"text"},o.hook.name));return e&&n.classList.add(t.DISABLED_STYLE),o.selected&&n.classList.add(t.SELECTED_STYLE),n},o.hook=n.hook,o.onSelect=n.onSelect,o.selected=n.selected,o}return o(t,e),t.SELECTED_STYLE="selected",t.DISABLED_STYLE="disabled",t}(r.DOM.ElementBase);t.default=l},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(4),a=n(3),l=n(10),s=n(156),c=n(157),d=n(158),u=n(159),p=n(35),h=n(160),m=n(161),f=n(36),g=a.R20.hasBetteR20,M=function(e){function t(t){var n=e.call(this)||this;if(n.internalRender=function(){var e={string:s.default,dropdown:c.default,checkbox:d.default,slider:u.default,number:p.default,color:h.default,mouse_button_index:m.default},t=[];if(n.hook.configView){var o=0;for(var l in n.hook.configView){var M=n.hook.configView[l];if(g()||!M.onlyWhenHasB20)if(M.type in e){var y=e[M.type],b=o%2==0?"rgb(249,249,249)":void 0;t.push(r.DOM.createElement("div",{style:{borderRight:"1px lightgray solid",paddingRight:"8px",display:"flex",justifyContent:"flex-end",alignItems:"center",paddingBottom:"8px",background:b}},r.DOM.createElement("span",{title:l,className:"text"},M.display))),t.push(r.DOM.createElement("div",{style:{paddingLeft:"8px",background:b}},r.DOM.createElement(y,{configName:l,hook:n.hook}))),o++}else alert("Unknown config type: "+M.type)}}var N=[];if(n.hook.urls){var T=function(e){var t=n.hook.urls[e];N.push(r.DOM.createElement("a",{href:"javascript:void(0)",onClick:function(){return window.open(t,"_blank")}},e))};for(var v in n.hook.urls)T(v)}return r.DOM.createElement("div",{className:"more-settings"},!i.strIsNullOrEmpty(n.hook.description)&&r.DOM.createElement("div",null,r.DOM.createElement("h3",{title:n.hook.id+" "+n.hook.filename},n.hook.name),r.DOM.createElement("hr",{style:{marginTop:"4px"}}),r.DOM.createElement("div",{className:"r20es-indent"},r.DOM.createElement("p",null,n.hook.description),r.DOM.createElement("p",null,N),n.hook.gmOnly&&r.DOM.createElement("p",null,"This module is only usable by GMs (which you ",a.R20.isGM()?"are":"aren't",")"))),t.length>0&&r.DOM.createElement("div",null,r.DOM.createElement("h3",null,"Options"),r.DOM.createElement("hr",{style:{marginTop:"4px"}}),r.DOM.createElement("ul",{className:"r20es-indent",style:{display:"grid",gridTemplateColumns:"1fr 1fr"}},t)),n.media&&r.DOM.createElement("div",null,r.DOM.createElement("h3",null,"Media"),r.DOM.createElement("hr",{style:{marginTop:"4px"}}),n.media.map(function(e){return r.DOM.createElement(f.default,{url:e.url,description:e.description})})))},n.hook=t.hook,n.hook.media)for(var o in n.media=[],n.hook.media)console.log(o),n.media.push({url:l.Config.website+o,description:n.hook.media[o]});return n}return o(t,e),t}(r.DOM.ElementBase);t.default=M},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation(),n.setValue(e.target.value)},n.internalRender=function(){return i.DOM.createElement("input",{style:{width:"90%"},className:"compact",type:"text",onChange:n.onChange,value:n.getValue()||""})},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation(),n.setValue(e.target.value)},n.internalRender=function(){var e=[];for(var t in n.configView.dropdownValues){var o=n.configView.dropdownValues[t];e.push(i.DOM.createElement("option",{value:t},o))}return i.DOM.createElement("select",{style:{width:"90%"},className:"compact",onChange:n.onChange,value:n.getValue()},e)},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation(),n.setValue(e.target.checked)},n.internalRender=function(){return i.DOM.createElement("input",{onChange:n.onChange,checked:n.getValue(),type:"checkbox",className:"r20es-checkbox"})},n.onChange=n.onChange.bind(n),n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation();var t=parseFloat(e.target.value);n.setValue(t),$(e.target.parentNode).find("input")[0].title=t.toString()},n.internalRender=function(){var e=n.getConfigView().sliderMin,t=n.getConfigView().sliderMax,o=n.getValue();return i.DOM.createElement("section",{className:"compact"},i.DOM.createElement("span",null,e),i.DOM.createElement("input",{onChange:n.onChange,style:{display:"inline-block",height:"auto",width:"80%",margin:"0 8px 0 8px",border:"none"},type:"range",min:e,max:t,step:"any",value:o,title:o}),i.DOM.createElement("span",null,t))},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation();var t=e.target.value,o=[parseInt(t.charAt(1)+t.charAt(2),16),parseInt(t.charAt(3)+t.charAt(4),16),parseInt(t.charAt(5)+t.charAt(6),16)];n.setValue(o)},n.internalRender=function(){var e=n.getValue();console.log(e,n.configName,n.hook);var t=e&&e.length>=3?"#"+e[0].toString(16)+e[1].toString(16)+e[2].toString(16):"#000000";return i.DOM.createElement("input",{style:{width:"90%"},onChange:n.onChange,type:"color",className:"compact",value:t})},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(7),i=n(1),a=function(e){function t(t){var n=e.call(this,t)||this;return n.onChange=function(e){e.stopPropagation(),n.setValue(e.target.value)},n.detect=function(e){e.stopPropagation();var t=e.button;$(e.target.parentNode).find("input")[0].value=t,n.setValue(t)},n.internalRender=function(){return i.DOM.createElement("span",null,i.DOM.createElement("input",{onChange:n.onChange,className:"compact",type:"number",value:n.getValue()}),i.DOM.createElement("span",{onMouseup:n.detect,style:{marginLeft:"8px",padding:"0px 4px 0px 4px",border:"solid 1px",background:"#EEE"}},"Detect (click me)"))},n}return o(t,e),t}(r.ConfigEditBase);t.default=a},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(6),a=n(5),l=n(37),s=function(e){function t(){return e.call(this,null,{maxWidth:"40%",maxHeight:"85%"})||this}return o(t,e),t.prototype.show=function(){var e=this;setTimeout(function(){e.recenter(),e.getRoot().scrollTop=0},100),this.internalShow()},t.prototype.render=function(){return r.DOM.createElement(a.Dialog,null,r.DOM.createElement(a.DialogHeader,{style:{textAlign:"center"}},r.DOM.createElement("h1",null,"VTTES - Changelog")),r.DOM.createElement(a.DialogBody,null,r.DOM.createElement(l.default,{listAllVersions:!0})),r.DOM.createElement("section",{style:{position:"sticky",padding:"20px",bottom:0,top:0,left:0,backgroundColor:"rgb(253, 253, 253)"}},r.DOM.createElement("input",{className:"btn",style:{width:"100%",height:"auto",boxSizing:"border-box"},type:"button",onClick:this.close,value:"OK"})))},t}(i.DialogBase);t.default=s},function(e,t){e.exports=function(e,t){for(var n=e.split("."),o=t.split("."),r=0;r<3;r++){var i=Number(n[r]),a=Number(o[r]);if(i>a)return 1;if(a>i)return-1;if(!isNaN(i)&&isNaN(a))return 1;if(isNaN(i)&&!isNaN(a))return-1}return 0}},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(1),s=n(13),c=n(3),d=n(11),u=function(t){function n(){var n=t.call(this,e)||this;return n.observerCallback=n.observerCallback.bind(n),n.try_injecting_single_widget=n.try_injecting_single_widget.bind(n),n.try_injecting_widget=n.try_injecting_widget.bind(n),n.navOnClick=n.navOnClick.bind(n),n.onClickNormalNavs=n.onClickNormalNavs.bind(n),n.rescan=n.rescan.bind(n),n.infectedNavs=[],n}return o(n,t),n.prototype.getWidgetTabRoots=function(e){return $(e.parentNode.parentNode.parentNode).find(".r20es-character-sheet-tab")},n.prototype.unselectSyntheticNavs=function(e){var t=e.target.parentNode.parentNode;$(t).find("a[data-r20es-nav]").each(function(e,t){t.parentNode.classList.remove("active")})},n.prototype.onClickNormalNavs=function(e){this.unselectSyntheticNavs(e),this.getWidgetTabRoots(e.target).each(function(e,t){t.style.display="none"})},n.prototype.navOnClick=function(e){var t=e.target.getAttribute("data-tab"),n=s.SheetTab._getInternalData().tabsById[t],o=e.target.getAttribute("data-characterid"),r=n.getInstanceData(o);n&&n.onShow&&n.onShow(r),this.unselectSyntheticNavs(e),e.target.parentNode.classList.add("active"),this.getWidgetTabRoots(e.target).each(function(e,n){n.style.display=n.classList.contains(t)?"block":"none"})},n.prototype.try_injecting_widget=function(e){for(var t=0,n=s.SheetTab._getInternalData().tabs;t<n.length;t++){var o=n[t];this.try_injecting_single_widget(e,o)}},n.prototype.try_injecting_single_widget=function(e,t){return r(this,void 0,void 0,function(){var n,o,r,a,s,u,p,h,m,f,g,M,y,b=this;return i(this,function(i){switch(i.label){case 0:return e?"IFRAME"!=e.nodeName?[2,!1]:(n=e.parentNode)&&n.classList.contains("characterdialog")?(o=n.getAttribute("data-characterid"),t.predicate&&(r=c.R20.getCharacter(o),!t.predicate(r))?[2]:[4,new Promise(function(t){if("complete"!=e.contentDocument.readyState){var n=function(){e.removeEventListener("load",n),t()};e.addEventListener("load",n)}else t()})]):[2,!1]:[2,!1];case 1:return i.sent(),a=null,s=null,u=new Promise(function(t){var n=function(){if(e.contentDocument&&(s=e.contentDocument.body)){var o=s.querySelector("#dialog-window");if(o&&(a=o.querySelector(".nav-tabs")))return void t()}setTimeout(n,1e3)};setTimeout(n,1e3)}),p=d.promiseWait(1e4),[4,Promise.race([u,p])];case 2:if(i.sent(),a){if(h="[data-tab="+t.id+"]",a.querySelector(h))return[2,!1];(m=l.DOM.createElement("li",null,l.DOM.createElement("a",{onClick:this.navOnClick,"data-tab":t.id,href:"javascript:void(0);","data-characterid":o},t.name))).firstElementChild.setAttribute("data-r20es-nav",!0),t._addElem(m),a.appendChild(m),$(a).find("a[data-tab]").each(function(e,t){t.hasAttribute("data-r20es-nav")||t.hasAttribute("data-r20es-character-sheet-nav-event")||(t.setAttribute("data-r20es-character-sheet-nav-event",!0),t.addEventListener("click",b.onClickNormalNavs),b.infectedNavs.push(t))}),f=t.getInstanceData(o),g=t.renderFx(f),M=s.querySelector(".tab-content"),f.contentRoot=M,f.root=g,y=l.DOM.createElement("div",{className:["r20es-character-sheet-tab",t.id,"tab-pane"],style:{display:"none"}},g),t._addElem(y),M.appendChild(y)}else console.error("SheetTab: Could not find navTabsRoot :(");return[2,!0]}})})},n.prototype.observerCallback=function(e){for(var t=0,n=e;t<n.length;t++){for(var o=n[t],r=0,i=o.addedNodes;r<i.length;r++){var a=i[r];if(this.try_injecting_widget(a))return}if(this.try_injecting_widget(o.target))return}},n.prototype.rescan=function(e){var t=this;document.querySelectorAll("iframe").forEach(function(n){t.try_injecting_single_widget(n,e)})},n.prototype.setup=function(){var e=this;this.observer=new MutationObserver(this.observerCallback),this.observer.observe(document.body,{childList:!0,subtree:!0}),document.querySelectorAll("iframe").forEach(function(t){e.try_injecting_widget(t)}),s.SheetTab._getInternalData().rescanFunc=this.rescan},n.prototype.dispose=function(){s.SheetTab._getInternalData().rescanFunc=null;for(var e=s.SheetTab._getInternalData(),t=0,n=e.tabs;t<n.length;t++){n[t].dispose()}e.tabs=[];for(var o=0,r=this.infectedNavs;o<r.length;o++){var i=r[o];i.removeEventListener("click",this.onClickNormalNavs),i.removeAttribute("data-r20es-character-sheet-nav-event")}this.infectedNavs.length=0,this.observer&&this.observer.disconnect()},n}(a.R20Module.OnAppLoadBase);t.default=function(){(new u).install()}}).call(this,"src/modules/SheetTabApi")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(3),s=n(12),c=n(1),d=n(41),u=n(4),p=n(30),h=n(18),m=n(166),f=function(e){if(e){var t=l.R20.createRollableTable();for(var n in e.items){var o=e.items[n];delete o.id,t.tableitems.create(o)}delete e.id,delete e.items,t.save(e)}},g=function(t){function n(){var o=t.call(this,e)||this;return o.onExportButtonClicked=function(e){var t=o.getTableId(e.target.parentNode);if(t){var n=l.R20.getRollableTable(t);if(n){var r=JSON.stringify(n.attributes,null,4),i=new Blob([r],{type:"data:application/json;charset=utf-8"});s.saveAs(i,n.get("name")+".json")}else alert("Failed to get table. Table id: "+t)}else alert("Failed to get table id.")},o.onImportClicked=function(e){e.stopPropagation();var t=c.DOM.createElement("input",{type:"file",multiple:!0}),a=null;e.target.id===n.tableExportImportButtonId?a=o.importTablesTableExport:(t.accept=".json",a=o.importTableJson),p.import_multiple_files(t,function(e){return r(o,void 0,void 0,function(){var t;return i(this,function(n){switch(n.label){case 0:return[4,u.readFile(e)];case 1:return t=n.sent(),a(t),[2]}})})})},o.onImportFromPasteClicked=function(e){e.stopPropagation(),o.pasteDialog.show()},o.onPasteDialogClose=function(e){if(o.pasteDialog.isSuccessful())try{o.importTablesTableExport(o.pasteDialog.getData())}catch(e){alert(e),console.error(e)}},o}return o(n,t),n.prototype.getTableId=function(e){var t=$(e.parentNode).find("div["+h.default.TableIdAttribute+"]");if(t.length<=0)return null;var n=t[0];return n.hasAttribute(h.default.TableIdAttribute)?n.getAttribute(h.default.TableIdAttribute):null},n.prototype.tryInsertTableWidget=function(e){if(!e.className)return!1;if("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix ui-draggable-handle"!==e.className)return!1;if(e.getElementsByClassName(n.tableWidgetClass).length>0)return!1;if(!this.getTableId(e))return!1;var t=c.DOM.createElement("button",{style:{marginTop:"8px"},onClick:this.onExportButtonClicked,className:[n.tableWidgetClass,"btn"]},"Export");return e.appendChild(t),!0},n.prototype.importTableJson=function(e){var t=u.safeParseJson(e);t&&f(t)},n.prototype.importTablesTableExport=function(e){if(d.TableExportLang.naiveVerify(e)){var t=d.TableExportLang.parse(e);if(t&&t&&!(t.length<=0))for(var n in t)f(t[n])}},n.prototype.setButtonDisabled=function(e,t){var n=$(e).find(".btn");n.each(function(e){n[e].disabled=t})},n.prototype.setup=function(){var e=this;if(l.R20.isGM()){this.pasteDialog=new m.default,this.pasteDialog.getRoot().addEventListener("close",this.onPasteDialogClose);for(var t=0,o=document.querySelectorAll(".ui-dialog-titlebar, .ui-widget-header, .ui-corner-all,  .ui-helper-clearfix");t<o.length;t++){var r=o[t];this.tryInsertTableWidget(r)}var i=document.getElementById("deckstables").getElementsByClassName("content")[0],a=c.DOM.createElement("div",{id:n.journalDivId,style:{marginBottom:"20px"}},c.DOM.createElement(c.SidebarSeparator,null),c.DOM.createElement(c.SidebarCategoryTitle,null,"Import Rollable Tables"),c.DOM.createElement("div",{style:{display:"grid",gridTemplateRows:"1fr 1fr 1fr",gridRowGap:"8px"}},c.DOM.createElement("button",{id:n.normalImportButtonId,onClick:this.onImportClicked,className:"btn"},"Import From JSON"),c.DOM.createElement("button",{id:n.tableExportImportButtonId,onClick:this.onImportClicked,className:"btn"},"Import From TableExport"),c.DOM.createElement("button",{id:n.tableExportImportFromTextButtonId,onClick:this.onImportFromPasteClicked,className:"btn"},"Paste TableExport Text")));i.appendChild(a),this.observer=new MutationObserver(function(t){for(var n=0,o=t;n<o.length;n++){var r=o[n];if(e.tryInsertTableWidget(r.target))break}}),this.observer.observe(document.body,{childList:!0,subtree:!0})}},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.observer&&this.observer.disconnect(),this.pasteDialog&&this.pasteDialog.dispose();for(var e=document.getElementsByClassName(n.tableWidgetClass),o=e.length;o-- >0;)e[0].remove();u.findByIdAndRemove(n.journalDivId)},n.journalDivId="r20es-tableio-journal-widget",n.tableWidgetClass="r20es-export-table-button",n.normalImportButtonId="r20es-norma;-import-button",n.tableExportImportButtonId="r20es-table-export-import-button",n.tableExportImportFromTextButtonId="r20es-table-export-import-from-text-buttom",n}(a.R20Module.OnAppLoadBase);t.default=function(){(new g).install()}}).call(this,"src/modules/TableIO")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=n(41),s=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.onImportClick=function(e){e.stopPropagation();var o=document.getElementById(t.textAreaId);console.log(o),l.TableExportLang.naiveVerify(o.value)&&(n.setData(o.value),n.close(!0))},n.show=n.internalShow,n}return o(t,e),t.prototype.render=function(){return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h2",null,"Paste TableExport")),a.DOM.createElement(i.DialogBody,null,a.DOM.createElement("div",null,a.DOM.createElement("textarea",{style:{width:"512px",height:"256px"},id:t.textAreaId,autocomplete:!1,autofocus:!0})),a.DOM.createElement("div",null,a.DOM.createElement("a",{href:"javascript:void(0)",onClick:function(){return window.open("https://docs.google.com/document/d/1Y5fMpkcm615KH_9ih-HCagswAdgS1CkBiktKeJABiBY","_blank")}},"Document filled with tables"))),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{className:"btn",onClick:this.close},"Close"),a.DOM.createElement("button",{className:"btn",style:{float:"right"},onClick:this.onImportClick},"Import"))))},t.textAreaId="r20es-paste-table-export-dialog-text-area",t}(r.DialogBase);t.default=s},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=function(t){function n(){var n=t.call(this,e)||this;return n.statusDraw=function(e,t,o,r){try{var a=n.getHook().config;if(t._positionAndScaleStatusIcons(r,o.length),e.save(),1!==a.active_status_icon_opacity||1!==a.idle_status_icon_opacity){var l=i.R20.getSelectedTokens().find(function(e){return e===t});e.globalAlpha=l?a.active_status_icon_opacity:a.idle_status_icon_opacity}if(a.position_status_icons_outside_the_token)switch(r.side){case"bottom":r.position&&(r.position[1]+=2.5*r.icon_size[1]);break;case"left":r.position&&(r.position[0]-=r.icon_size[0]);break;case"right":r.position&&(r.position[0]+=r.icon_size[0]);break;case"top":r.position&&(r.position[1]=-(.5*t.height+r.icon_size[1]));break;default:console.error("[TokenBarPositionAdjust] unknown draw_command.side",r)}}catch(e){console.error(e)}return!0},n}return o(n,t),n.prototype.onSettingChange=function(e,t,n){i.R20.renderAll()},n.prototype.setup=function(){window.r20es.statusDraw=this.statusDraw,i.R20.renderAll()},n.prototype.dispose=function(){window.r20es.statusDraw=null,i.R20.renderAll()},n}(r.R20Module.SimpleBase);t.default=function(){(new a).install()}}).call(this,"src/modules/TokenBarPositionAdjust")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(1),l=n(4),s=n(8),c=n(4),d=function(t){function n(){var n=t.call(this,e)||this;return n.observerCallback=function(e){for(var t=0,o=e;t<o.length;t++)for(var r=0,i=o[t].addedNodes;r<i.length;r++){var a=i[r];if(n.tryInsertMenuWidgets(a))return}},n.original_actions_menu_template=null,n}return o(n,t),n.prototype.tryInsertMenuWidgets=function(e){if(!e.className)return!1;if("actions_menu d20contextmenu"!==e.className)return!1;var t=s.TokenContextMenu.getInternalData().widgets,n=i.R20.getSelectedTokens(),o=function(o){var r=t[o];if(r.options&&r.options.mustHaveSelection&&n.length<=0)return"continue";if(r.options&&r.options.cannotHaveSelection&&n.length>0)return"continue";var l=a.DOM.createElement("li",{style:{maxWidth:"99px"},id:r.id,onClick:function(e){e.stopPropagation(),i.R20.hideTokenRadialMenu(),i.R20.hideTokenContextMenu(),r.callback()},class:"head hasSub"},r.text);e.firstElementChild.appendChild(l)};for(var r in t)o(r);return!0},n.prototype.try_get_actions_menu_template=function(){var e=document.body.querySelector("#tmpl_actions_menu");return null==e&&console.error("TokenContextMenu: failed to find tmpl_actions_menu"),e},n.prototype.setup=function(){this._observer=new MutationObserver(this.observerCallback),this._observer.observe(document.body,{childList:!0,subtree:!0});var e=this.try_get_actions_menu_template();if(e){var t=e.innerHTML;this.original_actions_menu_template=t,t=c.replaceAll(t,'this.get("represents")','(this && this.get && this.get("represents"))'),e.innerHTML=t}},n.prototype.dispose=function(){var e=s.TokenContextMenu.getInternalData().widgets;if(null!=this.original_actions_menu_template){var t=this.try_get_actions_menu_template();null!=t&&(t.innerHTML=this.original_actions_menu_template,this.original_actions_menu_template=null)}for(var n in e){var o=e[n];l.findByIdAndRemove(o.id)}this._observer&&this._observer.disconnect()},n}(r.R20Module.SimpleBase);t.default=function(){(new d).install()}}).call(this,"src/modules/TokenContextMenuApi")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(8),a=n(21),l=n(3),s=n(9),c=function(t){function n(){var n=t.call(this,e)||this;return n.ui_on_add_token_button_click=function(){var e=l.R20.getCanvasMousePos(),t=l.R20.getCurrentPage().id,n=l.R20.getCurrentLayer(),o=window.prompt("Enter a URL","www.example.com/image.png");if(o){var r=new Image;r.onload=function(){var i={left:e[0],top:e[1],width:r.width,height:r.height,z_index:0,imgsrc:o,rotation:0,type:"image",page_id:t,layer:n,id:l.R20.generateUUID()};l.R20.getCurrentPage().thegraphics.create(i)},r.onerror=function(){for(var t,r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];var s=o.toLowerCase();if(s.includes(".webm")||s.includes(".mp4")){var c=((t={left:e[0],top:e[1],width:70,height:70,z_index:0,imgsrc:o,layer:n})[a.TOKEN_FROM_ANIMATED_TOKEN_KEY]=!0,t);l.R20.getCurrentPage().addImage(c)}},r.src=o}},n.ui_on_get_token_img_url_button_click=function(){for(var e=l.R20.getSelectedTokens(),t="",n=navigator&&navigator.clipboard&&navigator.clipboard.writeText,o=0;o<e.length;++o){var r=e[o],i=l.R20.try_get_canvas_object_model(r);i&&i.attributes.imgsrc&&(t+=i.attributes.imgsrc,o!==e.length-1&&(t+=n?"\n":" "))}var a=function(){prompt("URLs:",t)};n?(navigator.clipboard.writeText(t).catch(function(e){a()}),alert("URLs copied to clipboard!")):a()},n}return o(n,t),n.prototype.setup=function(){i.TokenContextMenu.addButton(a.TOKEN_FROM_IMG_BUTTON_NAME,this.ui_on_add_token_button_click,s.TOKEN_CONTEXT_MENU_ORDER_CREATE_TOKEN_BY_URL,{cannotHaveSelection:!0}),i.TokenContextMenu.addButton(a.TOKEN_GET_URL,this.ui_on_get_token_img_url_button_click,s.TOKEN_CONTEXT_MENU_ORDER_GET_TOKEN_IMAGE_URL,{mustHaveSelection:!0})},n.prototype.dispose=function(){i.TokenContextMenu.removeButton(a.TOKEN_FROM_IMG_BUTTON_NAME,this.ui_on_add_token_button_click),i.TokenContextMenu.removeButton(a.TOKEN_GET_URL,this.ui_on_get_token_img_url_button_click),t.prototype.dispose.call(this)},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new c).install()}}).call(this,"src/modules/TokenFromImg")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(16),l=Math.PI/180,s=function(t){function n(){var n=t.call(this,e)||this;return n.drawOverlay=function(e,t){var o;try{var r=n.getHook().config,s=((o={})[i.R20.CanvasLayer.GMTokens]=r.drawOnGmLayer,o[i.R20.CanvasLayer.PlayerTokens]=r.drawOnTokenLayer,o[i.R20.CanvasLayer.Map]=r.drawOnMapLayer,o[i.R20.CanvasLayer.Lighting]=r.drawOnLightsLayer,o[i.R20.CanvasLayer.B20Weather]=r.drawOnWeatherLayer,o[i.R20.CanvasLayer.B20Foreground]=r.drawOnForegroundLayer,o[i.R20.CanvasLayer.B20Background]=r.drawOnBackgroundLayer,o),c=i.R20.try_get_canvas_object_model(t);if(!c)return;var d=c.get("layer");if(!s[d])return;var u=a.layerInfo[d];e.save();var p=e.globalAlpha,h=e.lineWidth,m=e.fillStyle,f=e.strokeStyle,g=e.font;if(e.globalAlpha=r.globalAlpha,e.lineWidth=r.textStrokeWidth,!r.rotateAlongWithToken){var M=t.flipY^t.flipX?1:-1;e.rotate(M*t.angle*l)}t.flipX&&e.scale(-1,1),t.flipY&&e.scale(1,-1);var y=r.textFontSize;e.font="bold "+y+"px Arial";var b=e.measureText(u.txt).width,N=.08*b,T=.18*b,v=Math.floor(t.get("width")/2)-b,k=Math.floor(t.get("height")/2);window.r20es.is_drawing_bars_at_the_bottom&&t._bar_data&&(k-=t._bar_data.height*t._bar_data.to_render.length+3),e.fillStyle="rgba("+u.bgColors[0]+", "+u.bgColors[1]+", "+u.bgColors[2]+", "+r.backgroundOpacity+")",e.fillRect(v-.5*T,k-y,b+T,y),e.strokeStyle="rgba("+r.textStrokeColor[0]+", "+r.textStrokeColor[1]+", "+r.textStrokeColor[2]+", "+r.textStrokeOpacity+")",e.fillStyle="rgba("+r.textFillColor[0]+", "+r.textFillColor[1]+","+r.textFillColor[2]+", "+r.textFillOpacity+")",e.strokeText(u.txt,v,k-N),e.fillText(u.txt,v,k-N),e.restore(),e.globalAlpha=p,e.lineWidth=h,e.fillStyle=m,e.strokeStyle=f,e.font=g}catch(e){console.error(e)}},n}return o(n,t),n.prototype.onSettingChange=function(e,t,n){i.R20.renderAll()},n.prototype.setup=function(){i.R20.isGM()&&(window.r20es.tokenDrawBg=this.drawOverlay,i.R20.renderAll())},n.prototype.dispose=function(){window.r20es.tokenDrawBg=null,i.R20.renderAll()},n}(r.R20Module.SimpleBase);t.default=function(){(new s).install()}}).call(this,"src/modules/TokenLayerDrawing")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(3),a=n(8),l=n(172),s=n(25),c=n(9),d=function(t){function n(){var n=t.call(this,e)||this;return n.tryPlaceTopLeft=function(e){n.getHook().config.placeTopLeft&&i.R20.setCanvasObjectLocation(e,e.width/2,e.height/2)},n.clickResizeFit=function(e){var t=i.R20.getSelectedTokens(),o=i.R20.getCurrentPage();i.R20.unselectTokens();for(var r=0,a=t;r<a.length;r++){var l=a[r],c=s.scaleToFit(l._element.width,l._element.height,70*o.attributes.width,70*o.attributes.height);i.R20.setCanvasObjectDimensions(l,c.x,c.y),n.tryPlaceTopLeft(l)}i.R20.renderAll()},n.clickResizeCustom=function(e){n.resizeDialog.show(n.getHook(),function(e){var t=n.getHook().config;if(0!=t.lastSquareWidth&&0!=t.lastSquareHeight&&0!=t.lastNumSquaresX&&0!=t.lastNumSquaresY){var o=i.R20.getSelectedTokens();i.R20.unselectTokens();for(var r=0,a=o;r<a.length;r++){var l=a[r],s=t.lastSquareWidth*t.lastNumSquaresX,c=t.lastSquareHeight*t.lastNumSquaresY;if(t.useUnits){var d=i.R20.getCurrentPage();s/=d.attributes.scale_number,c/=d.attributes.scale_number}i.R20.setCanvasObjectDimensions(l,s,c),e&&n.tryPlaceTopLeft(l)}i.R20.renderAll()}else alert("Invalid input: one of the values was zero.")})},n}return o(n,t),n.prototype.setup=function(){this.resizeDialog=new l.default,a.TokenContextMenu.addButton("Resize Fit",this.clickResizeFit,c.TOKEN_CONTEXT_MENU_ORDER_RESIZE_FIT,{mustHaveSelection:!0}),a.TokenContextMenu.addButton("Resize Custom",this.clickResizeCustom,c.TOKEN_CONTEXT_MENU_ORDER_RESIZE_CUSTOM,{mustHaveSelection:!0})},n.prototype.dispose=function(){this.resizeDialog&&this.resizeDialog.dispose(),a.TokenContextMenu.removeButton("Resize Fit",this.clickResizeFit),a.TokenContextMenu.removeButton("Resize Custom",this.clickResizeCustom)},n}(r.R20Module.SimpleBase);t.default=function(){(new d).install()}}).call(this,"src/modules/TokenResize")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(6),a=n(5),l=n(35),s=n(173),c=n(3),d=function(e){function t(){var n=e.call(this,null)||this;return n.getCheckbox=function(){return document.getElementById(t.checkboxId)},n.onSubmit=function(e){n.close(!0);var t=n.getCheckbox().checked;n.cont(t)},n.onClickCheckboxDiv=function(e){if(e.target.id!==t.checkboxId){var o=n.getCheckbox();o.checked=!o.checked}},n}return o(t,e),t.prototype.show=function(t,n){this.moduleConfig=t,this.cont=n,e.prototype.internalShow.call(this)},t.prototype.render=function(){var e=c.R20.getCurrentPage(),n=this.moduleConfig.config.useUnits?e.attributes.scale_units:"squares";return r.DOM.createElement(a.Dialog,null,r.DOM.createElement(a.DialogHeader,null,r.DOM.createElement("h2",null,"Resize Token")),r.DOM.createElement(a.DialogBody,null,r.DOM.createElement("div",null,r.DOM.createElement(s.default,{Component:l.default,cfgId:"lastSquareWidth",display:"Width of a square in the token (px)",hook:this.moduleConfig}),r.DOM.createElement(s.default,{Component:l.default,cfgId:"lastSquareHeight",display:"Height of a square in the token (px)",hook:this.moduleConfig}),r.DOM.createElement(s.default,{Component:l.default,cfgId:"lastNumSquaresX",display:"Num. "+n+" horizontally",hook:this.moduleConfig}),r.DOM.createElement(s.default,{Component:l.default,cfgId:"lastNumSquaresY",display:"Num. "+n+" vertically",hook:this.moduleConfig}),r.DOM.createElement("div",{style:{cursor:"pointer",display:"flex",alignItems:"center"},onClick:this.onClickCheckboxDiv},r.DOM.createElement("input",{type:"checkbox",id:t.checkboxId,checked:this.moduleConfig.config.placeTopLeft}),r.DOM.createElement("span",{style:{marginLeft:"4px"}},"Position tokens in the top-left corner.")))),r.DOM.createElement(a.DialogFooter,null,r.DOM.createElement(a.DialogFooterContent,null,r.DOM.createElement("input",{style:{marginRight:"8px"},className:"r20btn btn",type:"button",onClick:this.close,value:"Close"}),r.DOM.createElement("input",{className:"r20btn btn",type:"button",onClick:this.onSubmit,value:"OK"}))))},t.checkboxId="r20es-token-resize-move-tokens-checkbox",t}(i.DialogBase);t.default=d},function(e,t,n){"use strict";t.__esModule=!0;var o=n(1);t.default=function(e){var t=e.Component,n=e.cfgId,r=e.display,i=e.hook;return o.DOM.createElement("li",{style:{display:"flex",justifyContent:"flex-end"}},o.DOM.createElement("span",{style:{"margin-right":"8px","border-right":"1px lightgray solid","padding-right":"8px"},title:n,className:"text"},r),o.DOM.createElement(t,{style:{width:"300px"},configName:n,hook:i}))}},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(1),a=n(4),l=n(39),s=n(40),c=n(175),d=function(t){function n(){var n=t.call(this,e)||this;return n.dialog=null,n.onButtonClick=function(e){e.stopPropagation(),n.dialog.show()},n}return o(n,t),n.prototype.setup=function(){this.dialog=new c.ToolsDialog;var e=i.DOM.createElement(l.SettingsSidebarButton,{id:n.TOOLS_ID,text:"VTTES Tools",onClick:this.onButtonClick});s.insertButtonIntoSettings(e)},n.prototype.dispose=function(){t.prototype.dispose.call(this),a.findByIdAndRemove(n.TOOLS_ID),this.dialog&&this.dialog.dispose()},n.TOOLS_ID="r20es-tools-button",n}(r.R20Module.OnAppLoadBase);t.default=function(){(new d).install()}}).call(this,"src/modules/ToolsMenu")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(6),i=n(5),a=n(1),l=n(176),s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.onClickUse=function(e){e.stopPropagation();var n=e.target.getAttribute("data-id");if(n){var o=l.default[n];if(o){var r=o.factory();t.setTool(r,o)}else alert("Could not find tool.")}else alert("Could not find the tool id.")},t.onGoBack=function(e){e.stopPropagation(),t.setTool(null,null)},t}return o(t,e),t.prototype.show=function(){this._currentTool=null,this.internalShow()},t.prototype.setTool=function(e,t){this._currentTool=e,this._currentToolConfig=t,this.rerender()},t.prototype.render=function(){if(this._currentTool&&this._currentToolConfig){var e=this._currentTool.show();return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h1",null,this._currentToolConfig.name)),a.DOM.createElement(i.DialogBody,null,e),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{className:"btn",onClick:this.close},"Close"),a.DOM.createElement("button",{className:"btn",onclick:this.onGoBack},"Back"))))}this._currentTool=null,this._currentToolConfig=null;var t=[],n={marginTop:"auto",marginBottom:"auto",paddingLeft:"8px",paddingRight:"8px"};for(var o in l.default){var r=l.default[o];t.push(a.DOM.createElement("b",{style:n},r.name)),t.push(a.DOM.createElement("div",{style:n},r.description)),t.push(a.DOM.createElement("button",{onClick:this.onClickUse,"data-id":o,style:n,className:"btn btn-info"},"Use"))}return a.DOM.createElement(i.Dialog,null,a.DOM.createElement(i.DialogHeader,null,a.DOM.createElement("h1",null,"Tools")),a.DOM.createElement(i.DialogBody,null,a.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr"}},t)),a.DOM.createElement(i.DialogFooter,null,a.DOM.createElement(i.DialogFooterContent,null,a.DOM.createElement("button",{className:"btn",onclick:this.close},"Close"))))},t}(r.DialogBase);t.ToolsDialog=s},function(e,t,n){"use strict";t.__esModule=!0;var o={};!function(e){o[e.id]=e}(n(177).default),t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var o=n(178),r={id:"sheetRollTypeSetterTool",description:"Allows bulk changing 5e OGL sheet roll query and whisper type settings.",name:"Bulk 5e OGL Roll type setter",factory:function(){return new o.SheetRollTypeSetter}};t.default=r},function(e,t,n){"use strict";t.__esModule=!0;var o=n(1),r=n(3),i=[{label:"Advantage Roll Queries",attribute_name:"rtype",value_display_map:{"{{always=1}} {{r2=[[@{d20}":"Always Roll Advantage","@{advantagetoggle}":"Advantage Toggle","@{queryadvantage}":"Query Advantage","{{normal=1}} {{r2=[[0d20":"Never Roll Advantage"}},{label:"Whisper Rolls To GM",attribute_name:"wtype",value_display_map:{"":"Never Whisper Rolls","@{whispertoggle}":"Whisper Toggle","?{Whisper?|Public Roll,|Whisper Roll,/w gm }":"Query Whisper","/w gm ":"Always Whisper Rolls"}}],a=function(e){e.stopPropagation();var t=e.target;t.disabled=!0;try{var n=t.getAttribute("data-key");if(!n)return void alert("Could not find attribute name.");var o=i.find(function(e){return e.attribute_name===n});if(!o)return void alert("Could not find attribute.");var a=$(t.parentNode).find("select")[0];if(!a)return void alert("Could not find select element.");for(var l=a.value,s=r.R20.getAllCharacters(),c={current:l},d=0,u=s;d<u.length;d++){for(var p=u[d],h=null,m=0,f=p.attribs.models;m<f.length;m++){var g=f[m];if(g.attributes.name===o.attribute_name){h=g;break}}h||(h=p.attribs.create({name:o.attribute_name})),h.save(c)}}catch(e){console.error(e),alert("Error: "+e)}finally{t.disabled=!1,t.innerText="Set for all (done!)"}},l=function(e){var t=[];for(var n in e.value_display_map)t.push(o.DOM.createElement("option",{value:n},e.value_display_map[n]));return o.DOM.createElement("div",{style:{display:"grid",gridTemplateColumns:"2fr 3fr 1fr"}},o.DOM.createElement("span",null,e.label),o.DOM.createElement("select",null,t),o.DOM.createElement("button",{"data-key":e.attribute_name,onClick:a,className:"btn"},"Set for all"))},s=function(){function e(){}return e.prototype.show=function(){return o.DOM.createElement("div",null,i.map(l))},e}();t.SheetRollTypeSetter=s},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(4),a=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.removeStyle=function(){i.findByIdAndRemove(n.styleId)},n.prototype.injectStyle=function(){var e=this.getHook().config,t=i.createCSSElement(".ui-dialog { opacity: "+e.opacity+"; }",n.styleId);document.body.appendChild(t)},n.prototype.onSettingChange=function(e,t,o){n.removeStyle(),this.injectStyle()},n.prototype.setup=function(){this.injectStyle()},n.prototype.dispose=function(){n.removeStyle(),t.prototype.dispose.call(this)},n.styleId="r20es-transparent-paper-style",n}(r.R20Module.OnAppLoadBase);t.default=function(){(new a).install()}}).call(this,"src/modules/TransparentPaper")},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(2),i=n(181),a=n(182),l=n(3),s=n(10),c=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.prototype.sendWelcomeMessage=function(){var e=this;setTimeout(function(){e.getHook().config.showWelcomePopup&&l.R20.saySystem('\n<h2 style="font-size: 18px; color: whitesmoke">VTT Enhancement Suite</h2>\n<span>The enhancement suite (aka R20ES) v1.28.19 has been loaded!</span>\n<br/>\n<br/>\n\n<a href="'+s.Config.discordInvite+'">\n<img style="margin-right: 5px; width: 26px; height: 26px" src="https://discordapp.com/assets/1c8a54f25d101bdc607cec7228247a9a.svg"/>; <span style="color: orange;"><b>VTTES Discord Server</b></span>\n</a>\n\n<br/>\n\n<a class="bmc-button" target="_blank" href='+s.Config.contributeUrl+'>\n<span style="color: orange; margin-left:5px">\n<img style="margin-right: 5px; width: 26px; height: 26px" src="https://github.com/justas-d/roll20-enhancement-suite/raw/b7db254d7c6487ac54f1fb8d6d5aeb966306f813/assets/promotional/Digital-Patreon-Logo_FieryCoral.png"; alt=""></img><b>Patreon</b>\n</span>\n</a>\n')},2e3)},n.prototype.setup=function(){var e=document.getElementById("playerzone"),t=null,n=this.getHook().config;this.sendWelcomeMessage(),console.log("showChangelog: "+n.showChangelog),console.log('cfg.previousVersion": '+n.previousVersion),console.log('BUILD_CONSTANT_VERSION": 1.28.19'),n.showStartupGuide?(this.welcome=new i.default(this),t=this.welcome.render()):n.showChangelog&&"1.28.19"!==n.previousVersion&&(this.changelog=new a.default,t=this.changelog.render()),this.setConfigValue("previousVersion","1.28.19"),t&&e.parentElement.insertBefore(t,e),l.R20.is_using_new_ui_preview()&&(n.has_shown_ui_preview_incompatibility_message||(alert("VTTES does not support the new UI preview during its testing phase! Using it will make some VTTES functionality unavailable.\n\nPlease turn the new preview UI off in the Roll20 settings to continue using VTTES.\n\nThis message will not be shown again."),n.has_shown_ui_preview_incompatibility_message=!0,window.r20es.save_configs()),setTimeout(function(){l.R20.saySystem("<div><b>VTTES does not support the new UI preview during its testing phase!</b></div><div>Using it will make some VTTES functionality unavailable.</div><div>Please turn the new preview UI off in the Roll20 settings to continue using VTTES.</div>")},5e3))},n.prototype.dispose=function(){t.prototype.dispose.call(this),this.welcome&&this.welcome.dispose()},n}(r.R20Module.OnAppLoadBase);t.default=function(){(new c).install()}}).call(this,"src/modules/Welcome")},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(4),a=n(38),l=function(e){function t(t){var n=e.call(this)||this;return n.onClickClose=function(){n.finish()},n.onClickLater=function(){n.close()},n.onClickNext=function(){n.finish(),$("a[href='#mysettings']").click();var e=document.getElementById(a.default),t=e.style.border;setTimeout(function(){e.style.border="solid red 5px"},500),setTimeout(function(){e.style.border=t,$(e).click()},1500)},n.mod=t,n}return o(t,e),t.prototype.close=function(){this.dispose()},t.prototype.finish=function(){this.mod.getHook().config.showStartupGuide=!1,window.r20es.save_configs(),this.close()},t.prototype.internalRender=function(){var e={marginRight:"8px"};return r.DOM.createElement("div",{className:"r20es-welcome"},r.DOM.createElement("section",{style:{display:"flex",justifyContent:"space-between"}},r.DOM.createElement("section",null,r.DOM.createElement("h3",null,"Welcome to the VTT Enhancement Suite!"),r.DOM.createElement("hr",{style:{margin:"5px 0 15px 0"}}),r.DOM.createElement("p",null,"To get started, we recommend taking a look at the settings menu. There you can discover, learn and configure the modules this plugin provides."),r.DOM.createElement("p",null,'It can be found underneath the "My Settings" tab in the sidebar.'),r.DOM.createElement("p",null,"Would you like us to take you there?")),r.DOM.createElement("section",null,r.DOM.createElement("img",{style:{height:"100%"},src:i.LOGO_SVG_B64,alt:"Logo"}))),r.DOM.createElement("div",{style:{float:"right"}},r.DOM.createElement("button",{className:"btn",style:e,onClick:this.onClickClose},"I'll figure it out"),r.DOM.createElement("button",{className:"btn",style:e,onClick:this.onClickLater},"Later"),r.DOM.createElement("button",{className:"btn",style:e,onClick:this.onClickNext},"Let's go!")))},t}(r.DOM.ElementBase);t.default=l},function(e,t,n){"use strict";var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}();t.__esModule=!0;var r=n(1),i=n(37),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t.prototype.internalRender=function(){return r.DOM.createElement("div",{className:"r20es-welcome"},r.DOM.createElement("h2",null,"VTTES has been updated"),r.DOM.createElement(i.default,{listAllVersions:!1}),r.DOM.createElement("input",{className:"btn",style:{width:"100%",height:"auto",boxSizing:"border-box"},type:"button",onClick:this.dispose,value:"OK"}))},t}(r.DOM.ElementBase);t.default=a},function(e,t,n){"use strict";(function(e){var o=this&&this.__extends||function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function o(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(o.prototype=n.prototype,new o)}}(),r=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(a,l)}s((o=o.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){a.label=i[1];break}if(6===i[0]&&a.label<r[1]){a.label=r[1],r=i;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(i);break}r[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};t.__esModule=!0;var a=n(2),l=n(3),s=function(t){function n(){return t.call(this,e)||this}return o(n,t),n.prototype.setup=function(){var e=this;setTimeout(function(){return r(e,void 0,void 0,function(){var e,t,n,o,r,a,s;return i(this,function(i){switch(i.label){case 0:return i.trys.push([0,3,,4]),[4,fetch("https://justas-d.github.io/roll20-enhancement-suite/vttes.meta.js")];case 1:return[4,i.sent().text()];case 2:for(e=(e=i.sent()).trim(),t=-1,n=-1,o=e.indexOf("version");o<e.length;o+=1)if(r=e[o],-1==t)"1"!=r&&"2"!=r&&"3"!=r&&"4"!=r&&"5"!=r&&"6"!=r&&"7"!=r&&"8"!=r&&"9"!=r&&"9"!=r||(t=o);else if(-1==n&&"\n"==r){n=o;break}return-1!=n&&-1!=t&&(a=e.substring(t,n).trim(),console.log("Latest userscript version: '"+a+"'"),"1.28.19"!=a?l.R20.saySystem('\n<h2 style="color: whitesmoke">Update Available!</h2>\n<div>VTTES Userscript has an update available.</div>\n<div>Please <a style="color: orange;" href="https://justas-d.github.io/roll20-enhancement-suite/userscript_update.webm">check for updates</a> in Tampermonkey</div>\n<div>Or grab it <a style="color: orange;" href="https://justas-d.github.io/roll20-enhancement-suite/vttes.user.js">here</a>.</div>\n'):console.log("Userscript is up to date!")),[3,4];case 3:return s=i.sent(),console.error("VTTES: failed to check for new version",s),[3,4];case 4:return[2]}})})},4e3)},n.prototype.dispose=function(){t.prototype.dispose.call(this)},n}(a.R20Module.OnAppLoadBase);t.default=function(){(new s).install()}}).call(this,"src/modules/UserscriptUpdateChecker")},function(e,t,n){"use strict";t.__esModule=!0;var o=n(28),r=function(){function e(){this._fxs=[]}return e.copyExisting=function(t){var n=new e;return t&&(n._fxs=t._fxs.slice()),n},e.prototype.fire=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,o=this._fxs;n<o.length;n++){var r=o[n];try{r.apply(void 0,e)}catch(e){console.error(e)}}},e.prototype.on=function(e){this._fxs.push(e)},e.prototype.off=function(e){o.removeByReference(this._fxs,e)},e.prototype.addEventListener=function(e){this.on(e)},e.prototype.removeEventListener=function(e){this.off(e)},e}();t.EventEmitter=r},function(e,t,n){"use strict";t.__esModule=!0;var o=n(4);t.apply_mods_to_text=function(e,t,n){for(var r in console.log("Applying mods to url "+t),n){var i=n[r];if(i.mods)for(var a=0,l=i.mods;a<l.length;a++){var s=l[a];if(t.includes(s.includes)){if(s.stencils&&!s.debug_disable_stencils){console.log("===========STENCILS FOR",i);var c={},d=[],u=[];e:for(var p=0,h=s.stencils;p<h.length;p++){var m=h[p];if(!m.debug_disable){m.debug_find;var f=0;if(m.search_from){if((f=e.indexOf(m.search_from))<0){console.error("STENCIL: Failed to find search_from",m.search_from,m,s);continue e}"number"==typeof m.search_from_index_offset&&(f+=m.search_from_index_offset)<0&&(f=0)}var g=m.find[0];if("string"==typeof g){var M=e.indexOf(g,f);if(M<0)console.error("STENCIL: Failed to find the first part's start index",g,m,s);else{var y=M,b=m.find[1];if("number"==typeof b)for(var N=2;N<m.find.length;N+=2){var T=m.find[N];if("string"!=typeof T){console.error("STENCIL: part of a stencil at index "+N+" is not a string.",T,m,s);continue e}var v=e.indexOf(T,M+g.length);if(v<0){console.error("STENCIL: failed to find index of stencil part at index "+N,T,m,s);continue e}if(b>0){var k=e.substring(M+g.length,v);if("string"==typeof c[b]&&c[b]!=k){console.error("$Mismatched values between the same group! Group is "+b+" and the current value is '"+c[b]+"', whereas the new value is '"+k+"'.",m,s);continue e}c[b]=k}if(f=v+T.length,g=T,M=v,"string"==typeof(b=m.find[N+1])){console.error("STENCIL: expected group index but got a string in find string!",m,s);continue e}if("number"!=typeof b)break}m.replace&&d.push({stencil:m,start_index:y,end_index:M+g.length})}}else console.error("STENCIL: first part of a stencil is not a string.",m,s)}}console.log("Stencil replace data",d);e:for(var _=0,w=d;_<w.length;_++){(Z=w[_]).stencil.debug_replace;for(var V="",R=e.substring(Z.start_index,Z.end_index),E=0,U=Z.stencil.replace;E<U.length;E++){var x=U[E];if("string"==typeof x)V+=x;else if("number"==typeof x)if(0==x)V+=R;else{var D=c[x];if("string"!=typeof D){console.error("STENCIL: Could not find group "+x,Z);continue e}V+=D}}var S={find:R,replace:V};console.log("Generated replace:",S),u.push(S)}for(var O=0,F=u;O<F.length;O++){var Z=F[O];e=o.replaceAll(e,Z.find,Z.replace)}console.log("Generated groups:",c)}if(s.find_replace&&!s.debug_disable_find_replace)for(var j=0,W=s.find_replace;j<W.length;j++){var z=W[j],I=(Z=o.replace_all_and_count(z.replace,">>R20ES_MOD_FIND>>",z.find)).result;e=(Z=o.replace_all_and_count(e,z.find,I)).result;V="REPLACING ("+i.filename+"): Replace count: "+Z.count+" Find: '"+z.find+"' Patch: '"+I+"'.";Z.count<=0?console.error(V,i):console.log(V)}}}}return e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dialog_polyfill_css=t.dialog_polyfill_script=void 0;t.dialog_polyfill_script=(()=>{var e=window.CustomEvent;function t(e){for(;e;){if("dialog"===e.localName)return e;e=e.parentElement}return null}function n(e){e&&e.blur&&e!==document.body&&e.blur()}function o(e,t){for(var n=0;n<e.length;++n)if(e[n]===t)return!0;return!1}function r(e){return!(!e||!e.hasAttribute("method"))&&"dialog"===e.getAttribute("method").toLowerCase()}function i(e){if(this.dialog_=e,this.replacedStyleTop_=!1,this.openAsModal_=!1,e.hasAttribute("role")||e.setAttribute("role","dialog"),e.show=this.show.bind(this),e.showModal=this.showModal.bind(this),e.close=this.close.bind(this),"returnValue"in e||(e.returnValue=""),"MutationObserver"in window)new MutationObserver(this.maybeHideModal.bind(this)).observe(e,{attributes:!0,attributeFilter:["open"]});else{var t,n=!1,o=function(){n?this.downgradeModal():this.maybeHideModal(),n=!1}.bind(this),r=function(r){if(r.target===e){var i="DOMNodeRemoved";n|=r.type.substr(0,i.length)===i,window.clearTimeout(t),t=window.setTimeout(o,0)}};["DOMAttrModified","DOMNodeRemoved","DOMNodeRemovedFromDocument"].forEach(function(t){e.addEventListener(t,r)})}Object.defineProperty(e,"open",{set:this.setOpen.bind(this),get:e.hasAttribute.bind(e,"open")}),this.backdrop_=document.createElement("div"),this.backdrop_.className="backdrop",this.backdrop_.addEventListener("click",this.backdropClick_.bind(this))}e&&"object"!=typeof e||((e=function(e,t){t=t||{};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail||null),n}).prototype=window.Event.prototype),i.prototype={get dialog(){return this.dialog_},maybeHideModal:function(){this.dialog_.hasAttribute("open")&&document.body.contains(this.dialog_)||this.downgradeModal()},downgradeModal:function(){this.openAsModal_&&(this.openAsModal_=!1,this.dialog_.style.zIndex="",this.replacedStyleTop_&&(this.dialog_.style.top="",this.replacedStyleTop_=!1),this.backdrop_.parentNode&&this.backdrop_.parentNode.removeChild(this.backdrop_),a.dm.removeDialog(this))},setOpen:function(e){e?this.dialog_.hasAttribute("open")||this.dialog_.setAttribute("open",""):(this.dialog_.removeAttribute("open"),this.maybeHideModal())},backdropClick_:function(e){if(this.dialog_.hasAttribute("tabindex"))this.dialog_.focus();else{var t=document.createElement("div");this.dialog_.insertBefore(t,this.dialog_.firstChild),t.tabIndex=-1,t.focus(),this.dialog_.removeChild(t)}var n=document.createEvent("MouseEvents");n.initMouseEvent(e.type,e.bubbles,e.cancelable,window,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),this.dialog_.dispatchEvent(n),e.stopPropagation()},focus_:function(){var e=this.dialog_.querySelector("[autofocus]:not([disabled])");if(!e&&this.dialog_.tabIndex>=0&&(e=this.dialog_),!e){var t=["button","input","keygen","select","textarea"].map(function(e){return e+":not([disabled])"});t.push('[tabindex]:not([disabled]):not([tabindex=""])'),e=this.dialog_.querySelector(t.join(", "))}n(document.activeElement),e&&e.focus()},updateZIndex:function(e,t){if(e<t)throw new Error("dialogZ should never be < backdropZ");this.dialog_.style.zIndex=e,this.backdrop_.style.zIndex=t},show:function(){this.dialog_.open||(this.setOpen(!0),this.focus_())},showModal:function(){if(this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.");if(!document.body.contains(this.dialog_))throw new Error("Failed to execute 'showModal' on dialog: The element is not in a Document.");if(!a.dm.pushDialog(this))throw new Error("Failed to execute 'showModal' on dialog: There are too many open modal dialogs.");(function(e){for(;e&&e!==document.body;){var t=window.getComputedStyle(e),n=function(e,n){return!(void 0===t[e]||t[e]===n)};if(t.opacity<1||n("zIndex","auto")||n("transform","none")||n("mixBlendMode","normal")||n("filter","none")||n("perspective","none")||"isolate"===t.isolation||"fixed"===t.position||"touch"===t.webkitOverflowScrolling)return!0;e=e.parentElement}return!1})(this.dialog_.parentElement)&&console.warn("A dialog is being shown inside a stacking context. This may cause it to be unusable. For more information, see this link: https://github.com/GoogleChrome/dialog-polyfill/#stacking-context"),this.setOpen(!0),this.openAsModal_=!0,a.reposition(this.dialog_),this.replacedStyleTop_=!0,this.dialog_.parentNode.insertBefore(this.backdrop_,this.dialog_.nextSibling),this.focus_()},close:function(t){if(!this.dialog_.hasAttribute("open"))throw new Error("Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.");this.setOpen(!1),void 0!==t&&(this.dialog_.returnValue=t);var n=new e("close",{bubbles:!1,cancelable:!1});this.dialog_.dispatchEvent(n)}};var a={reposition:function(e){var t=document.body.scrollTop||document.documentElement.scrollTop,n=t+(window.innerHeight-e.offsetHeight)/2;e.style.top=Math.max(t,n)+"px"},isInlinePositionSetByStylesheet:function(e){for(var t=0;t<document.styleSheets.length;++t){var n=document.styleSheets[t],r=null;try{r=n.cssRules}catch(e){}if(r)for(var i=0;i<r.length;++i){var a=r[i],l=null;try{l=document.querySelectorAll(a.selectorText)}catch(e){}if(l&&o(l,e)){var s=a.style.getPropertyValue("top"),c=a.style.getPropertyValue("bottom");if(s&&"auto"!==s||c&&"auto"!==c)return!0}}}return!1},needsCentering:function(e){return!("absolute"!==window.getComputedStyle(e).position||"auto"!==e.style.top&&""!==e.style.top||"auto"!==e.style.bottom&&""!==e.style.bottom||a.isInlinePositionSetByStylesheet(e))},forceRegisterDialog:function(e){if((window.HTMLDialogElement||e.showModal)&&console.warn("This browser already supports <dialog>, the polyfill may not work correctly",e),"dialog"!==e.localName)throw new Error("Failed to register dialog: The element is not a dialog.");new i(e)},registerDialog:function(e){e.showModal||a.forceRegisterDialog(e)},DialogManager:function(){this.pendingDialogStack=[];var e=this.checkDOM_.bind(this);this.overlay=document.createElement("div"),this.overlay.className="_dialog_overlay",this.overlay.addEventListener("click",function(t){this.forwardTab_=void 0,t.stopPropagation(),e([])}.bind(this)),this.handleKey_=this.handleKey_.bind(this),this.handleFocus_=this.handleFocus_.bind(this),this.zIndexLow_=1e5,this.zIndexHigh_=100150,this.forwardTab_=void 0,"MutationObserver"in window&&(this.mo_=new MutationObserver(function(t){var n=[];t.forEach(function(e){for(var t,o=0;t=e.removedNodes[o];++o)t instanceof Element&&("dialog"===t.localName&&n.push(t),n=n.concat(t.querySelectorAll("dialog")))}),n.length&&e(n)}))}};if(a.DialogManager.prototype.blockDocument=function(){document.documentElement.addEventListener("focus",this.handleFocus_,!0),document.addEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.observe(document,{childList:!0,subtree:!0})},a.DialogManager.prototype.unblockDocument=function(){document.documentElement.removeEventListener("focus",this.handleFocus_,!0),document.removeEventListener("keydown",this.handleKey_),this.mo_&&this.mo_.disconnect()},a.DialogManager.prototype.updateStacking=function(){for(var e,t=this.zIndexHigh_,n=0;e=this.pendingDialogStack[n];++n)e.updateZIndex(--t,--t),0===n&&(this.overlay.style.zIndex=--t);var o=this.pendingDialogStack[0];o?(o.dialog.parentNode||document.body).appendChild(this.overlay):this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay)},a.DialogManager.prototype.containedByTopDialog_=function(e){for(;e=t(e);){for(var n,o=0;n=this.pendingDialogStack[o];++o)if(n.dialog===e)return 0===o;e=e.parentElement}return!1},a.DialogManager.prototype.handleFocus_=function(e){if(!this.containedByTopDialog_(e.target)&&(e.preventDefault(),e.stopPropagation(),n(e.target),void 0!==this.forwardTab_)){var t=this.pendingDialogStack[0];return t.dialog.compareDocumentPosition(e.target)&Node.DOCUMENT_POSITION_PRECEDING&&(this.forwardTab_?t.focus_():document.documentElement.focus()),!1}},a.DialogManager.prototype.handleKey_=function(t){if(this.forwardTab_=void 0,27===t.keyCode){t.preventDefault(),t.stopPropagation();var n=new e("cancel",{bubbles:!1,cancelable:!0}),o=this.pendingDialogStack[0];o&&o.dialog.dispatchEvent(n)&&o.dialog.close()}else 9===t.keyCode&&(this.forwardTab_=!t.shiftKey)},a.DialogManager.prototype.checkDOM_=function(e){this.pendingDialogStack.slice().forEach(function(t){-1!==e.indexOf(t.dialog)?t.downgradeModal():t.maybeHideModal()})},a.DialogManager.prototype.pushDialog=function(e){var t=(this.zIndexHigh_-this.zIndexLow_)/2-1;return!(this.pendingDialogStack.length>=t||(1===this.pendingDialogStack.unshift(e)&&this.blockDocument(),this.updateStacking(),0))},a.DialogManager.prototype.removeDialog=function(e){var t=this.pendingDialogStack.indexOf(e);-1!==t&&(this.pendingDialogStack.splice(t,1),0===this.pendingDialogStack.length&&this.unblockDocument(),this.updateStacking())},a.dm=new a.DialogManager,a.formSubmitter=null,a.useValue=null,void 0===window.HTMLDialogElement){var l=document.createElement("form");if(l.setAttribute("method","dialog"),"dialog"!==l.method){var s=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"method");if(s){var c=s.get;s.get=function(){return r(this)?"dialog":c.call(this)};var d=s.set;s.set=function(e){return"string"==typeof e&&"dialog"===e.toLowerCase()?this.setAttribute("method",e):d.call(this,e)},Object.defineProperty(HTMLFormElement.prototype,"method",s)}}document.addEventListener("click",function(e){if(a.formSubmitter=null,a.useValue=null,!e.defaultPrevented){var n=e.target;if(n&&r(n.form)){if(!("submit"===n.type&&["button","input"].indexOf(n.localName)>-1)){if("input"!==n.localName||"image"!==n.type)return;a.useValue=e.offsetX+","+e.offsetY}t(n)&&(a.formSubmitter=n)}}},!1);var u=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){if(!r(this))return u.call(this);var e=t(this);e&&e.close()},document.addEventListener("submit",function(e){var n=e.target;if(r(n)){e.preventDefault();var o=t(n);if(o){var i=a.formSubmitter;i&&i.form===n?o.close(a.useValue||i.value):o.close(),a.formSubmitter=null}}},!0)}a.forceRegisterDialog=a.forceRegisterDialog,a.registerDialog=a.registerDialog,window.dialogPolyfill=a});t.dialog_polyfill_css="\n  dialog {\n    position: absolute;\n    left: 0; right: 0;\n    width: -moz-fit-content;\n    width: -webkit-fit-content;\n    width: fit-content;\n    height: -moz-fit-content;\n    height: -webkit-fit-content;\n    height: fit-content;\n    margin: auto;\n    border: solid;\n    padding: 1em;\n    background: white;\n    color: black;\n    display: block;\n  }\n\n  dialog:not([open]) {\n    display: none;\n  }\n\n  dialog + .backdrop {\n    position: fixed;\n    top: 0; right: 0; bottom: 0; left: 0;\n    background: rgba(0,0,0,0.1);\n  }\n\n  ._dialog_overlay {\n    position: fixed;\n    top: 0; right: 0; bottom: 0; left: 0;\n  }\n\n  dialog.fixed {\n    position: fixed;\n    top: 50%;\n    transform: translate(0, -50%);\n  }\n"}]);
};
const str = `(${boot.toString()})()`;
window.eval(str);