Greasy Fork

Greasy Fork is available in English.

社会主义核心价值观(Core Socialist Values)

替换政治相关条幅为社会主义核心价值观,替换政治相关 Logo 颜色为中国红,去除政治相关通知,让技术远离政治。

目前为 2022-06-23 提交的版本,查看 最新版本

/*! For license information please see main.js.LICENSE.txt */
(()=>{"use strict";function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var r=function(){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t)}var r,n,i;return r=t,i=[{key:"replace",value:function(){"https://junit.org/junit5/"===location.href&&($(this.selectors.junitAbout).prevAll().remove(),$(this.selectors.junitLogo).attr("src",this.junitLogoUrl),$(this.selectors.junitFavicon).attr("href",this.junitLogoUrl))}}],(n=null)&&e(r.prototype,n),i&&e(r,i),Object.defineProperty(r,"prototype",{writable:!1}),t}();function n(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}t(r,"selectors",{reactBar:".css-lpiycv",junitAbout:"#about",junitLogo:'img[src="/junit5/assets/img/junit5-logo.png"]',junitFavicon:'link[rel="icon"]',codeceptBar:".sub-bar .message"}),t(r,"junitLogoUrl","https://raw.githubusercontent.com/duanluan/tampermonkey-scripts/main/core-socialist-values/src/junit/imgs/junit5-logo-csv.png");var i,a,o,l=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,i;return t=e,i=[{key:"replace",value:function(t,r){-1!=$(t).text().toLowerCase().indexOf("ukraine")&&(e.loopReplaceBar(t),r&&new MutationObserver((function(r,n){e.loopReplaceBar(t)})).observe($(r)[0],{childList:!0}))}},{key:"loopReplaceBar",value:function(t){if($($(t)[0]).text().replace(/\s+/g,"")!==e.txt)var r=setInterval((function(){$($(t)[0]).text().replace(/\s+/g,"")===e.txt&&clearInterval(r),e.replaceBar(t)}),1e3)}},{key:"replaceBar",value:function(e){var t=".csv_bar",r=".csv_bar .csv_bar_ul";$(e).css({minHeight:"40px"}),$(e).html("\n    <div class=\"csv_bar\">\n      <ul class='csv_bar_ul'><li>富强</li><li>民主</li><li>文明</li><li>和谐</li><li>自由</li><li>平等</li><li>公正</li><li>法治</li><li>爱国</li><li>敬业</li><li>诚信</li><li>友善</li></ul><br>\n      <ul class='csv_bar_ul'><li>Prosperity</li><li>Democracy</li><li>Civility</li><li>Harmony</li><li>Freedom</li><li>Equality</li><li>Justice</li><li>Rule of law</li><li>Patriotism</li><li>Dedication</li><li>Integrity</li><li>Friendship</li>\n      </ul>\n    </div>");var n=$(t);2==n.length&&n.eq(0).remove(),$(r).css({display:"inline-block",listStyle:"none",margin:0,padding:0,width:"auto"}),$(r+" li").css({color:"#DE2910",fontWeight:"bold",fontFamily:"KaiTi",float:"left",paddingRight:"10px","min-width":"80px",textAlign:"center"}),$(r+":first").css("verticalAlign","bottom"),$(r+":first li").css("fontSize","18px"),$(r+":eq(1) li").css("fontSize","13px")}}],(r=null)&&n(t.prototype,r),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}();function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}o="富强民主文明和谐自由平等公正法治爱国敬业诚信友善ProsperityDemocracyCivilityHarmonyFreedomEqualityJusticeRuleoflawPatriotismDedicationIntegrityFriendship",(a="txt")in(i=l)?Object.defineProperty(i,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):i[a]=o;var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){"reactjs.org"===location.host&&l.replace(this.selectors.bar,this.selectors.observingBar)}}],(r=null)&&c(t.prototype,r),n&&c(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function u(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(s,"selectors",{bar:".css-lpiycv",observingBar:"#gatsby-focus-wrapper"});var f=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){if("angular.io"===location.host&&!localStorage.getItem("aio-notification/war-ukraine")){var e=$(this.selectors.bar);e.length>0&&-1!=e.text().toLowerCase().indexOf("ukraine")&&$(this.selectors.dismissNotificationBtn)[0].click()}}}],(r=null)&&u(t.prototype,r),n&&u(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function b(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(f,"selectors",{bar:".mat-toolbar-row.notification-container",dismissNotificationBtn:'button[aria-label="Dismiss notification"]'});var p=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){"codecept.io"===location.host&&l.replace(this.selectors.bar,null)}}],(r=null)&&b(t.prototype,r),n&&b(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function v(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(p,"selectors",{bar:".sub-bar .message",observingBar:"#app"});var y=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){if("https://github.com/"===location.href){var e=$(this.selectors.notice);e.length>0&&-1!=e.text().toLowerCase().indexOf("ukraine")&&e.remove()}}}],(r=null)&&v(t.prototype,r),n&&v(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function g(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(y,"selectors",{notice:".border.js-notice"});var h=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){"docs.nestjs.com"===location.host&&(l.replace(this.selectors.bar,null),$(this.selectors.bar).css("padding","0"))}}],(r=null)&&g(t.prototype,r),n&&g(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();function m(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(h,"selectors",{bar:".top-bar",observingBar:".ng-star-inserted"});var d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,r,n;return t=e,n=[{key:"replace",value:function(){"emberjs.com"===location.host&&(l.replace(this.selectors.bar,null),$(this.selectors.bar).css({backgroundColor:"#1c1e24",padding:0}))}}],(r=null)&&m(t.prototype,r),n&&m(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(d,"selectors",{bar:".callout-banner"}),s.replace(),f.replace(),r.replace(),p.replace(),y.replace(),h.replace(),d.replace()})// ==UserScript==
// @name         社会主义核心价值观(Core Socialist Values)
// @namespace    http://tampermonkey.net/
// @version      0.6.0
// @description  替换政治相关条幅为社会主义核心价值观,替换政治相关 Logo 颜色为中国红,去除政治相关通知,让技术远离政治。
// @author       duanluan
// @license      Apache 2.0
// @match        *://reactjs.org/*
// @match        *://angular.io/*
// @match        *://junit.org/*
// @match        *://codecept.io/*
// @match        *://github.com/*
// @match        *://docs.nestjs.com/*
// @match        *://emberjs.com/*
// @icon         <$ICON$>
// @require      https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js
// @grant        none
// ==/UserScript==
();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVVoRCxFQUFFQyxLQUFLQyxVQUFVK0MsUUFDN0JELEVBQVFiLE9BQVMsSUFBeUQsR0FBcERhLEVBQVFqQyxPQUFPQyxjQUFjQyxRQUFRLFlBQzdEK0IsRUFBUTNDLHVHQVZLMEMsd1JBQUFBLEVBQUFBLFlBRUEsQ0FDakJFLE9BQVEsMEJDRFNILEVBQUFBLDJLQU9uQixXQUN3QixvQkFBbEJoRCxTQUFTd0MsT0FDWDFCLEVBQUlZLFFBQVF2QixLQUFLQyxVQUFVcUMsSUFBSyxNQUNoQ3ZDLEVBQUVDLEtBQUtDLFVBQVVxQyxLQUFLUCxJQUFJLFVBQVcsbUdBVnRCYyx3UkFBQUEsRUFBQUEsWUFFQSxDQUNqQlAsSUFBSyxXQUNMQyxhQUFjLDBCQ0pHVSxFQUFBQSwyS0FNbkIsV0FDd0IsZ0JBQWxCcEQsU0FBU3dDLE9BQ1gxQixFQUFJWSxRQUFRdkIsS0FBS0MsVUFBVXFDLElBQUssTUFDaEN2QyxFQUFFQyxLQUFLQyxVQUFVcUMsS0FBS1AsSUFBSSxDQUFDLGdCQUFtQixVQUFXLFFBQVcsa0dBVHJEa0Isa0hBQUFBLEVBQUFBLFlBRUEsQ0FDakJYLElBQUssb0JDT1BGLEVBQU1iLFVBQ05pQixFQUFRakIsVUFDUjNCLEVBQU0yQixVQUNOc0IsRUFBU3RCLFVBQ1R1QixFQUFPdkIsVUFDUDJCLEVBQUFBLFVBQ0FELEVBQU0xQiIsInNvdXJjZXMiOlsid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2p1bml0L0p1bml0LnRzIiwid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2NvbW1vbi9CYXIudHMiLCJ3ZWJwYWNrOi8vdGFtcGVybW9ua2V5LXNjcmlwdC11dGlscy8uL2NvcmUtc29jaWFsaXN0LXZhbHVlcy9zcmMvcmVhY3QvUmVhY3QudHMiLCJ3ZWJwYWNrOi8vdGFtcGVybW9ua2V5LXNjcmlwdC11dGlscy8uL2NvcmUtc29jaWFsaXN0LXZhbHVlcy9zcmMvYW5ndWxhci9Bbmd1bGFyLnRzIiwid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2NvZGVjZXB0L0NvZGVjZXB0LnRzIiwid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2dpdGh1Yi9HaXRodWIudHMiLCJ3ZWJwYWNrOi8vdGFtcGVybW9ua2V5LXNjcmlwdC11dGlscy8uL2NvcmUtc29jaWFsaXN0LXZhbHVlcy9zcmMvbmVzdC9OZXN0LnRzIiwid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2VtYmVyL0VtYmVyLnRzIiwid2VicGFjazovL3RhbXBlcm1vbmtleS1zY3JpcHQtdXRpbHMvLi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgSnVuaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHNlbGVjdG9ycyA9IHtcbiAgICByZWFjdEJhcjogJy5jc3MtbHBpeWN2JyxcbiAgICBqdW5pdEFib3V0OiAnI2Fib3V0JyxcbiAgICBqdW5pdExvZ286ICdpbWdbc3JjPVwiL2p1bml0NS9hc3NldHMvaW1nL2p1bml0NS1sb2dvLnBuZ1wiXScsXG4gICAganVuaXRGYXZpY29uOiAnbGlua1tyZWw9XCJpY29uXCJdJyxcbiAgICBjb2RlY2VwdEJhcjogJy5zdWItYmFyIC5tZXNzYWdlJyxcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGp1bml0TG9nb1VybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZHVhbmx1YW4vdGFtcGVybW9ua2V5LXNjcmlwdHMvbWFpbi9jb3JlLXNvY2lhbGlzdC12YWx1ZXMvc3JjL2p1bml0L2ltZ3MvanVuaXQ1LWxvZ28tY3N2LnBuZydcblxuICBzdGF0aWMgcmVwbGFjZSgpIHtcbiAgICBpZiAobG9jYXRpb24uaHJlZiA9PT0gJ2h0dHBzOi8vanVuaXQub3JnL2p1bml0NS8nKSB7XG4gICAgICAkKHRoaXMuc2VsZWN0b3JzLmp1bml0QWJvdXQpLnByZXZBbGwoKS5yZW1vdmUoKTtcbiAgICAgICQodGhpcy5zZWxlY3RvcnMuanVuaXRMb2dvKS5hdHRyKCdzcmMnLCB0aGlzLmp1bml0TG9nb1VybCk7XG4gICAgICAkKHRoaXMuc2VsZWN0b3JzLmp1bml0RmF2aWNvbikuYXR0cignaHJlZicsIHRoaXMuanVuaXRMb2dvVXJsKTtcbiAgICB9XG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhciB7XG5cbiAgLyoqXG4gICAqIOabv+aNouadoeW5hVxuICAgKiBAcGFyYW0gc2VsZWN0b3Ig5p2h5bmF6YCJ5oup5ZmoXG4gICAqIEBwYXJhbSBvYnNlcnZpbmdTZWxlY3RvciDlj5jljJbpgInmi6nlmahcbiAgICovXG4gIHN0YXRpYyByZXBsYWNlKHNlbGVjdG9yLCBvYnNlcnZpbmdTZWxlY3Rvcikge1xuICAgIGlmICgkKHNlbGVjdG9yKS50ZXh0KCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCd1a3JhaW5lJykgPT0gLTEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgQmFyLmxvb3BSZXBsYWNlQmFyKHNlbGVjdG9yKTtcbiAgICBpZiAob2JzZXJ2aW5nU2VsZWN0b3IpIHtcbiAgICAgIC8vIOebkeWQrOadoeW5heWPmOWMlu+8jOWPmOWMluWQjuWGjeasoeaJp+ihjFxuICAgICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSwgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgQmFyLmxvb3BSZXBsYWNlQmFyKHNlbGVjdG9yKTtcbiAgICAgIH0pLm9ic2VydmUoJChvYnNlcnZpbmdTZWxlY3RvcilbMF0sIHtjaGlsZExpc3Q6IHRydWV9KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHR4dCA9ICflr4zlvLrmsJHkuLvmlofmmI7lkozosJDoh6rnlLHlubPnrYnlhazmraPms5XmsrvniLHlm73mlazkuJror5rkv6Hlj4vlloRQcm9zcGVyaXR5RGVtb2NyYWN5Q2l2aWxpdHlIYXJtb255RnJlZWRvbUVxdWFsaXR5SnVzdGljZVJ1bGVvZmxhd1BhdHJpb3Rpc21EZWRpY2F0aW9uSW50ZWdyaXR5RnJpZW5kc2hpcCc7XG5cbiAgLy8g5b6q546v5pu/5o2i5p2h5bmFXG4gIHByaXZhdGUgc3RhdGljIGxvb3BSZXBsYWNlQmFyKHNlbGVjdG9yKSB7XG4gICAgaWYgKCQoJChzZWxlY3RvcilbMF0pLnRleHQoKS5yZXBsYWNlKC9cXHMrL2csIFwiXCIpID09PSBCYXIudHh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlzU3RvcCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICgkKCQoc2VsZWN0b3IpWzBdKS50ZXh0KCkucmVwbGFjZSgvXFxzKy9nLCBcIlwiKSA9PT0gQmFyLnR4dCkge1xuICAgICAgICBjbGVhckludGVydmFsKGlzU3RvcCk7XG4gICAgICB9XG4gICAgICBCYXIucmVwbGFjZUJhcihzZWxlY3Rvcik7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZXBsYWNlQmFyKHNlbGVjdG9yKSB7XG4gICAgY29uc3QgYmFyU2VsZWN0b3IgPSAnLmNzdl9iYXInLCBiYXJVbFNlbGVjdG9yID0gYmFyU2VsZWN0b3IgKyAnIC5jc3ZfYmFyX3VsJztcblxuICAgICQoc2VsZWN0b3IpLmNzcyh7J21pbkhlaWdodCc6ICc0MHB4J30pO1xuICAgICQoc2VsZWN0b3IpLmh0bWwoYFxuICAgIDxkaXYgY2xhc3M9XCJjc3ZfYmFyXCI+XG4gICAgICA8dWwgY2xhc3M9J2Nzdl9iYXJfdWwnPjxsaT7lr4zlvLo8L2xpPjxsaT7msJHkuLs8L2xpPjxsaT7mlofmmI48L2xpPjxsaT7lkozosJA8L2xpPjxsaT7oh6rnlLE8L2xpPjxsaT7lubPnrYk8L2xpPjxsaT7lhazmraM8L2xpPjxsaT7ms5Xmsrs8L2xpPjxsaT7niLHlm708L2xpPjxsaT7mlazkuJo8L2xpPjxsaT7or5rkv6E8L2xpPjxsaT7lj4vlloQ8L2xpPjwvdWw+PGJyPlxuICAgICAgPHVsIGNsYXNzPSdjc3ZfYmFyX3VsJz48bGk+UHJvc3Blcml0eTwvbGk+PGxpPkRlbW9jcmFjeTwvbGk+PGxpPkNpdmlsaXR5PC9saT48bGk+SGFybW9ueTwvbGk+PGxpPkZyZWVkb208L2xpPjxsaT5FcXVhbGl0eTwvbGk+PGxpPkp1c3RpY2U8L2xpPjxsaT5SdWxlIG9mIGxhdzwvbGk+PGxpPlBhdHJpb3Rpc208L2xpPjxsaT5EZWRpY2F0aW9uPC9saT48bGk+SW50ZWdyaXR5PC9saT48bGk+RnJpZW5kc2hpcDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PmApO1xuXG4gICAgLy8g6YG/5YWN5Ye6546w5aSa5Liq5a+86Ie05qC35byP5re75Yqg5aSx6LSlXG4gICAgY29uc3QgJGJhciA9ICQoYmFyU2VsZWN0b3IpO1xuICAgIGlmICgkYmFyLmxlbmd0aCA9PSAyKSB7XG4gICAgICAkYmFyLmVxKDApLnJlbW92ZSgpO1xuICAgIH1cblxuICAgICQoYmFyVWxTZWxlY3RvcikuY3NzKHsnZGlzcGxheSc6ICdpbmxpbmUtYmxvY2snLCAnbGlzdFN0eWxlJzogJ25vbmUnLCAnbWFyZ2luJzogMCwgJ3BhZGRpbmcnOiAwLCAnd2lkdGgnOiAnYXV0byd9KTtcbiAgICAkKGJhclVsU2VsZWN0b3IgKyAnIGxpJykuY3NzKHsnY29sb3InOiAnI0RFMjkxMCcsICdmb250V2VpZ2h0JzogJ2JvbGQnLCAnZm9udEZhbWlseSc6ICdLYWlUaScsICdmbG9hdCc6ICdsZWZ0JywgJ3BhZGRpbmdSaWdodCc6ICcxMHB4JywgJ21pbi13aWR0aCc6ICc4MHB4JywgJ3RleHRBbGlnbic6ICdjZW50ZXInfSk7XG4gICAgJChiYXJVbFNlbGVjdG9yICsgJzpmaXJzdCcpLmNzcygndmVydGljYWxBbGlnbicsICdib3R0b20nKTtcbiAgICAkKGJhclVsU2VsZWN0b3IgKyAnOmZpcnN0IGxpJykuY3NzKCdmb250U2l6ZScsICcxOHB4Jyk7XG4gICAgJChiYXJVbFNlbGVjdG9yICsgJzplcSgxKSBsaScpLmNzcygnZm9udFNpemUnLCAnMTNweCcpO1xuICB9XG59XG4iLCJpbXBvcnQgQmFyIGZyb20gXCIuLi9jb21tb24vQmFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlYWN0IHtcblxuICBwcml2YXRlIHN0YXRpYyBzZWxlY3RvcnMgPSB7XG4gICAgYmFyOiAnLmNzcy1scGl5Y3YnLFxuICAgIG9ic2VydmluZ0JhcjogJyNnYXRzYnktZm9jdXMtd3JhcHBlcicsXG4gIH1cblxuICBzdGF0aWMgcmVwbGFjZSgpIHtcbiAgICBpZiAobG9jYXRpb24uaG9zdCA9PT0gJ3JlYWN0anMub3JnJykge1xuICAgICAgQmFyLnJlcGxhY2UodGhpcy5zZWxlY3RvcnMuYmFyLCB0aGlzLnNlbGVjdG9ycy5vYnNlcnZpbmdCYXIpO1xuICAgIH1cbiAgfVxufVxuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQW5ndWxhciB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2VsZWN0b3JzID0ge1xuICAgIGJhcjogJy5tYXQtdG9vbGJhci1yb3cubm90aWZpY2F0aW9uLWNvbnRhaW5lcicsXG4gICAgZGlzbWlzc05vdGlmaWNhdGlvbkJ0bjogJ2J1dHRvblthcmlhLWxhYmVsPVwiRGlzbWlzcyBub3RpZmljYXRpb25cIl0nLFxuICB9XG5cbiAgc3RhdGljIHJlcGxhY2UoKSB7XG4gICAgaWYgKGxvY2F0aW9uLmhvc3QgPT09ICdhbmd1bGFyLmlvJykge1xuICAgICAgLy8g5LiN5a2Y5Zyo5piv5ZCm5YWz6Zet6YCa55+l55qE5pys5Zyw5a2Y5YKo5pe2XG4gICAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhaW8tbm90aWZpY2F0aW9uL3dhci11a3JhaW5lJykpIHtcbiAgICAgICAgLy8g5aaC5p6c6YCa55+l5Lit5a2Y5Zyo5YWz6ZSu6K+NXG4gICAgICAgIGNvbnN0ICRiYXIgPSAkKHRoaXMuc2VsZWN0b3JzLmJhcik7XG4gICAgICAgIGlmICgkYmFyLmxlbmd0aCA+IDAgJiYgJGJhci50ZXh0KCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCd1a3JhaW5lJykgIT0gLTEpIHtcbiAgICAgICAgICAvLyDngrnlh7vlhbPpl63pgJrnn6VcbiAgICAgICAgICAkKHRoaXMuc2VsZWN0b3JzLmRpc21pc3NOb3RpZmljYXRpb25CdG4pWzBdLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJpbXBvcnQgQmFyIGZyb20gXCIuLi9jb21tb24vQmFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZGVjZXB0IHtcblxuICBzdGF0aWMgc2VsZWN0b3JzID0ge1xuICAgIGJhcjogJy5zdWItYmFyIC5tZXNzYWdlJyxcbiAgICBvYnNlcnZpbmdCYXI6ICcjYXBwJ1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2UoKSB7XG4gICAgaWYgKGxvY2F0aW9uLmhvc3QgPT09ICdjb2RlY2VwdC5pbycpIHtcbiAgICAgIEJhci5yZXBsYWNlKHRoaXMuc2VsZWN0b3JzLmJhciwgbnVsbCk7XG4gICAgfVxuICB9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBHaXRodWIge1xuXG4gIHN0YXRpYyBzZWxlY3RvcnMgPSB7XG4gICAgbm90aWNlOiAnLmJvcmRlci5qcy1ub3RpY2UnXG4gIH1cblxuICBzdGF0aWMgcmVwbGFjZSgpIHtcbiAgICBpZiAobG9jYXRpb24uaHJlZiA9PT0gJ2h0dHBzOi8vZ2l0aHViLmNvbS8nKSB7XG4gICAgICBjb25zdCAkbm90aWNlID0gJCh0aGlzLnNlbGVjdG9ycy5ub3RpY2UpO1xuICAgICAgaWYgKCRub3RpY2UubGVuZ3RoID4gMCAmJiAkbm90aWNlLnRleHQoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3VrcmFpbmUnKSAhPSAtMSkge1xuICAgICAgICAkbm90aWNlLnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IEJhciBmcm9tIFwiLi4vY29tbW9uL0JhclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlY2VwdCB7XG5cbiAgc3RhdGljIHNlbGVjdG9ycyA9IHtcbiAgICBiYXI6ICcudG9wLWJhcicsXG4gICAgb2JzZXJ2aW5nQmFyOiAnLm5nLXN0YXItaW5zZXJ0ZWQnXG4gIH1cblxuICBzdGF0aWMgcmVwbGFjZSgpIHtcbiAgICBpZiAobG9jYXRpb24uaG9zdCA9PT0gJ2RvY3MubmVzdGpzLmNvbScpIHtcbiAgICAgIEJhci5yZXBsYWNlKHRoaXMuc2VsZWN0b3JzLmJhciwgbnVsbCk7XG4gICAgICAkKHRoaXMuc2VsZWN0b3JzLmJhcikuY3NzKCdwYWRkaW5nJywgJzAnKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCBCYXIgZnJvbSBcIi4uL2NvbW1vbi9CYXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW1iZXIge1xuXG4gIHN0YXRpYyBzZWxlY3RvcnMgPSB7XG4gICAgYmFyOiAnLmNhbGxvdXQtYmFubmVyJyxcbiAgfVxuXG4gIHN0YXRpYyByZXBsYWNlKCkge1xuICAgIGlmIChsb2NhdGlvbi5ob3N0ID09PSAnZW1iZXJqcy5jb20nKSB7XG4gICAgICBCYXIucmVwbGFjZSh0aGlzLnNlbGVjdG9ycy5iYXIsIG51bGwpO1xuICAgICAgJCh0aGlzLnNlbGVjdG9ycy5iYXIpLmNzcyh7J2JhY2tncm91bmRDb2xvcic6ICcjMWMxZTI0JywgJ3BhZGRpbmcnOiAwfSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyDmm7/mjaLlkI7nmoTmnaHluYXljrvpmaTnqbrmoLzmjaLooYzlkI7nmoTmlofmnKxcbmltcG9ydCBKdW5pdCBmcm9tIFwiLi9qdW5pdC9KdW5pdFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCIuL3JlYWN0L1JlYWN0XCI7XG5pbXBvcnQgQW5ndWxhciBmcm9tIFwiLi9hbmd1bGFyL0FuZ3VsYXJcIjtcbmltcG9ydCBDb2RlY2VwdCBmcm9tIFwiLi9jb2RlY2VwdC9Db2RlY2VwdFwiO1xuaW1wb3J0IEdpdGh1YiBmcm9tIFwiLi9naXRodWIvR2l0aHViXCI7XG5pbXBvcnQgTmVzdCBmcm9tIFwiLi9uZXN0L05lc3RcIjtcbmltcG9ydCBFbWJlciBmcm9tIFwiLi9lbWJlci9FbWJlclwiO1xuXG4oKCkgPT4ge1xuICAndXNlIHN0cmljdCc7XG5cbiAgUmVhY3QucmVwbGFjZSgpO1xuICBBbmd1bGFyLnJlcGxhY2UoKTtcbiAgSnVuaXQucmVwbGFjZSgpO1xuICBDb2RlY2VwdC5yZXBsYWNlKCk7XG4gIEdpdGh1Yi5yZXBsYWNlKCk7XG4gIE5lc3QucmVwbGFjZSgpO1xuICBFbWJlci5yZXBsYWNlKCk7XG59KSgpO1xuXG4vLyA9PVVzZXJTY3JpcHQ9PVxuLy8gQG5hbWUgICAgICAgICDnpL7kvJrkuLvkuYnmoLjlv4Pku7flgLzop4LvvIhDb3JlIFNvY2lhbGlzdCBWYWx1ZXPvvIlcbi8vIEBuYW1lc3BhY2UgICAgaHR0cDovL3RhbXBlcm1vbmtleS5uZXQvXG4vLyBAdmVyc2lvbiAgICAgIDAuNi4wXG4vLyBAZGVzY3JpcHRpb24gIOabv+aNouaUv+ayu+ebuOWFs+adoeW5heS4uuekvuS8muS4u+S5ieaguOW/g+S7t+WAvOingu+8jOabv+aNouaUv+ayu+ebuOWFsyBMb2dvIOminOiJsuS4uuS4reWbvee6ou+8jOWOu+mZpOaUv+ayu+ebuOWFs+mAmuefpe+8jOiuqeaKgOacr+i/nOemu+aUv+ayu+OAglxuLy8gQGF1dGhvciAgICAgICBkdWFubHVhblxuLy8gQGxpY2Vuc2UgICAgICBBcGFjaGUgMi4wXG4vLyBAbWF0Y2ggICAgICAgICo6Ly9yZWFjdGpzLm9yZy8qXG4vLyBAbWF0Y2ggICAgICAgICo6Ly9hbmd1bGFyLmlvLypcbi8vIEBtYXRjaCAgICAgICAgKjovL2p1bml0Lm9yZy8qXG4vLyBAbWF0Y2ggICAgICAgICo6Ly9jb2RlY2VwdC5pby8qXG4vLyBAbWF0Y2ggICAgICAgICo6Ly9naXRodWIuY29tLypcbi8vIEBtYXRjaCAgICAgICAgKjovL2RvY3MubmVzdGpzLmNvbS8qXG4vLyBAbWF0Y2ggICAgICAgICo6Ly9lbWJlcmpzLmNvbS8qXG4vLyBAaWNvbiAgICAgICAgIDwkSUNPTiQ+XG4vLyBAcmVxdWlyZSAgICAgIGh0dHBzOi8vY2RuLmJvb3RjZG4ubmV0L2FqYXgvbGlicy9qcXVlcnkvMy42LjAvanF1ZXJ5LnNsaW0ubWluLmpzXG4vLyBAZ3JhbnQgICAgICAgIG5vbmVcbi8vID09L1VzZXJTY3JpcHQ9PVxuIl0sIm5hbWVzIjpbIkp1bml0IiwibG9jYXRpb24iLCJocmVmIiwiJCIsInRoaXMiLCJzZWxlY3RvcnMiLCJqdW5pdEFib3V0IiwicHJldkFsbCIsInJlbW92ZSIsImp1bml0TG9nbyIsImF0dHIiLCJqdW5pdExvZ29VcmwiLCJqdW5pdEZhdmljb24iLCJyZWFjdEJhciIsImNvZGVjZXB0QmFyIiwiQmFyIiwic2VsZWN0b3IiLCJvYnNlcnZpbmdTZWxlY3RvciIsInRleHQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJsb29wUmVwbGFjZUJhciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJtdXRhdGlvbnMiLCJvYnNlcnZlciIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJyZXBsYWNlIiwidHh0IiwiaXNTdG9wIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwicmVwbGFjZUJhciIsImJhclNlbGVjdG9yIiwiYmFyVWxTZWxlY3RvciIsImNzcyIsImh0bWwiLCIkYmFyIiwibGVuZ3RoIiwiZXEiLCJSZWFjdCIsImhvc3QiLCJiYXIiLCJvYnNlcnZpbmdCYXIiLCJBbmd1bGFyIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImRpc21pc3NOb3RpZmljYXRpb25CdG4iLCJjbGljayIsIkNvZGVjZXB0IiwiR2l0aHViIiwiJG5vdGljZSIsIm5vdGljZSIsIkVtYmVyIiwiTmVzdCJdLCJzb3VyY2VSb290IjoiIn0=