// UTF-16 (LE BOM) // Requirements: // - Windows Vista or later // - ImageMagick 7.1.0 or later // _wsh_bms2bmson.js: https://hitkey.nekokan.dyndns.info/bmson/_wsh_bms2bmson/ // * 2021-11-26: v0.3.0 (for uBMSC 2OCT theme, tolerance to #LNMODE 0n ) // * 2021-11-25: v0.2.8 (isVistaOrLater, key/mine_channels, Magic 7.1.0-) // * 2020-10-29: v0.2.7 (remove OMIT_FALSY, meta "info" not omitted) // * 2020-10-29: v0.2.6 (bignumber.js 9.0.1, ImageMagick 7.0.10-34) // * 2020-05-01: v0.2.5 (fix validateImageMagicVersion function) // * 2020-04-05: v0.2.4 (add options, ImageMagick 7.0.9-6 -> 7.0.10-3) // * 2019-11-30: v0.2.3 (bugfix, ImageMagick 7.0.8-14 -> 7.0.9-6) // * 2019-06-30: v0.2.2 (bignumber.js 7.2.1 -> 9.0.0) // * 2019-01-19: v0.2.1-2 (fix ImageMagick url) // * 2018-12-23: v0.2.1 (bugfix, convert from BMSON-LAYER to BMS-LAYER) // * 2018-12-07: v0.2.0 (if BMSON_TO_BMS == true, convert BMSON to BMS-on) // * 2018-11-25: v0.1.11 (#ARGB and #xxx0B-0E // no image is generated) // * 2018-11-23: v0.1.10 (#EXBMP (bmp only), trim, rushing bars after end) // * 2018-11-10: v0.1.9 (Accept some typos of #DIFFICULTY, accept #TOTAL 0) // * 2018-11-08: v0.1.8-2 (Temporarily disable buggy functions) // * 2018-11-08: v0.1.8 (Negative #STOP value) // * 2018-11-07: v0.1.7 (bugfix, .ddd, outName has fromExt, #GENREs) // * 2018-11-06: v0.1.6 (critical fix about bga-id sorting) // * 2018-11-05: v0.1.5 (bugfix, assume *.m4v is also as a video ) // * 2018-11-03: v0.1.4 (ImageMagick 7.0.7-11 -> 7.0.8-14, #CHANGEOPTION) // * 2018-11-02: v0.1.3 (#TEXTzz -> text_events, #EXRANKzz -> judge_events) // * 2018-11-01: v0.1.2 (bugfix, sort bga-id) // * 2018-10-31: v0.1.1 (bugfix) // * 2018-10-29: v0.1.0 (#BGA support, #BMP00/#BGA00 bugfix, GENERATE_PNGS) // * 2018-10-25: v0.0.17 (bugfix, remove empty channels) // * 2018-10-24: v0.0.16 (LN "up" by multiple #LNOBJs) // * 2018-10-23: v0.0.15 (bugfix) // * 2018-10-22: v0.0.14 (allow U+002F SOLIDUS as delimiter in Config) // * 2018-10-21: v0.0.13 (LN "up", minimize to resolution, bugfix) // * 2018-10-20: v0.0.12 (calc total value, level_string, fix BMS-on) // * 2018-10-19: v0.0.11 (BMS-on: https://github.com/zardoru/iBMSC/pull/11 ) // * 2018-10-18: v0.0.10 (#SCROLL/#SPEED/#EXT support) // * 2018-10-12: v0.0.9 (bignumber.js 4.1 -> 7.2, fix #RANK/#TOTAL) // * 2017-11-27: v0.0.8 (#STP support) // * 2017-11-26: v0.0.7 (#LNTYPE 2 support) // * 2017-11-24: v0.0.6 (fix duplicated BGM notes disappear Bug) // * 2017-11-23: v0.0.5 (fix wrong path) // * 2017-11-22: v0.0.4 (fix #LNOBJ on #xxx5n bug, HDX_COMMENT) // * 2017-11-21: v0.0.3 (magick.exe, BLANK_AUDIO) // * 2017-11-20: v0.0.2 (LN Bugfix, force PNG32, HDX:LONGMODE) // * 2017-11-19: v0.0.1 // Config Start ============================================================== // Specify target directory path ( E.g.: "D:\\bms\\BOFU2017" ) var TARGET_FOLDER = "D:/bms/BOFU2017"; // Specify output directory path ( E.g.: "D:\\bms\\BOFU2017toBMSON" ) var OUTPUT_FOLDER = ""; // Specify install-dir: https://imagemagick.org/script/download.php#windows // - If you have any problems, you likely need vcomp120.dll. // To install it, download Visual C++ 2013 Redistributable Package. // https://www.microsoft.com/en-us/download/details.aspx?id=40784 var IMAGE_MAGICK = "C:/ImageMagick-7.1.0-portable-Q16-x64"; // If script misses Byte-Order-Mark, chart file is opened as default charset: // https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers var DEFAULT_CHARSET = "Shift_JIS"; // If necessary, specify force text-encoding ( {"chart-path": "charset", ... } ) var FORCE_CHARSETS = { "Alpha Phase 2017/Last Love to You_/7A.bms": "EUC-KR", "Alpha Phase 2017/Last Love to You_/7H.bms": "EUC-KR", "Alpha Phase 2017/Last Love to You_/7N.bms": "EUC-KR", "Alpha Phase 2017/Last Love to You_/LY_BASE.bms": "EUC-KR", "EVER BURST/vaccuum/vacuum_n.bms": "GBK", "EVER BURST/vaccuum/vac_e.bms": "GBK", "EVER BURST/vaccuum/vac_h.bms": "GBK", "EVER BURST/vaccuum/warning.bms": "GBK", "HARSH NOISES N ROUGH ANIMATIONS/ayhaz_GodzillaBazooka/godzillabazooka.bms": "ISO-8859-1", // ?? "HPS+/JKRevolution/JR_7KSHD.bms": "EUC-KR", "like the Wind/[9RAN]Revs your Heart/SPI.bms": "Shift_JIS", // with UTF-8 BOM "NEW MUSIC!!/Cosine_Is_This_Your_Memory_ogg/ITYM_02_Hyper.bms": "Shift_JIS", // with UTF-8 BOM "和食チェーン/[和食チェーン] Ponz - いたずらな夜 (ogg)/_itazura_na_yoru(NORMAL).bms": "UTF-8", // without BOM "DUMMY/DUMMY.bms": "_autodetect_all" // Dummy. Do not delete. }; // 3: Don't assume 1/192 for convenience // 2: BmsONE-safe (max: 24000) // 1: beatoraja-safe (max: 2147483647) // 0: Non-rounded (max: 9.9e10000000) var LIMITED_RESOLUTION = 3; // If true, 1-line BMSON is outputted var LINIFY = false; // "name" to be assigned to undefined #WAV index var BLANK_AUDIO = "___undefined___"; // If true, Enable C-like Comment Syntax (charatbeatHDX and BMIIDXView ext) var HDX_COMMENT = false; // If true, ImageMagick actually generates PNG image files var GENERATE_PNGS = true; // If true, BMSes are not searched but instead BMSONs are retrieved/converted var BMSON_TO_BMS = false; // If true, escape non-ASCII characters when converting BMS to BMSON var ESCAPE_NON_ASCII = false; // If true, use LF instead of CRLF var USE_UNIX_NEWLINE = false; // Config End ================================================================ // Internals ( Do not change ) =============================================== var LR2_DATA_LENGTH_LIMIT = 102392; // #xxxyy: [zzzz...zzzz] var DATA_LENGTH_LIMIT = LR2_DATA_LENGTH_LIMIT / 2; // 51196 var APPROXIMATE_BLACK = "0,7,7,7"; // aRGB for LLR (paraoka) var WINDOWS_LIMIT_ARGS_LENGTH = 7300; // 8191 - [Imagick/img/other path/args] var ALIAS_CH_3X = "key_channels"; var ALIAS_CH_DX = "mine_channels"; var IMAGE_MAGICK_VERSION_MIN = "7.1.0"; var OMIT_FALSY = false; // omit BMSON key-values {"c":false, "l":0, "x":0} // =========================================================================== // json2.js https://github.com/douglascrockford/JSON-js "object"!=typeof JSON&&(JSON={}),function(){function f(t){return t<10?"0"+t:t}function this_value(){return this.valueOf()}function quote(t){return rx_escapable.lastIndex=0,rx_escapable.test(t)?'"'+t.replace(rx_escapable,function(t){var e=meta[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function str(t,e){var r,n,o,u,f,a=gap,i=e[t];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(t)),"function"==typeof rep&&(i=rep.call(e, t,i)),typeof i){case "string":return quote(i);case "number":return isFinite(i)?String(i):"null";case "boolean":case "null":return String(i);case "object":if(!i)return"null";if(gap+=indent,f=[],"[object Array]"===Object.prototype.toString.apply(i)){for(u=i.length,r=0;r="0"&&ch<="9"){string+=ch;next()}if(ch==="."){string+=".";while(next()&&ch>="0"&& ch<="9")string+=ch}if(ch==="e"||ch==="E"){string+=ch;next();if(ch==="-"||ch==="+"){string+=ch;next()}while(ch>="0"&&ch<="9"){string+=ch;next()}}return string};var string=function(){var hex;var i;var value="";var uffff;if(ch==='"')while(next()){if(ch==='"'){next();return value}if(ch==="\\"){next();if(ch==="u"){uffff=0;for(i=0;i<4;i+=1){hex=parseInt(next(),16);if(!isFinite(hex))break;uffff=uffff*16+hex}value+=String.fromCharCode(uffff)}else if(typeof escapee[ch]==="string")value+=escapee[ch];else break}else value+= ch}error("Bad string")};var white=function(){while(ch&&ch<=" ")next()};var word=function(){switch(ch){case "t":next("t");next("r");next("u");next("e");return true;case "f":next("f");next("a");next("l");next("s");next("e");return false;case "n":next("n");next("u");next("l");next("l");return null}error("Unexpected '"+ch+"'")};var value;var array=function(){var arr=[];if(ch==="["){next("[");white();if(ch==="]"){next("]");return arr}while(ch){arr.push(value());white();if(ch==="]"){next("]");return arr}next(","); white()}}error("Bad array")};var object=function(){var key;var obj={};var dup;if(ch==="{"){next("{");white();if(ch==="}"){next("}");return obj}while(ch){key=string();white();next(":");if(Object.hasOwnProperty.call(obj,key)){overwritten.push({"key":key,"from":obj[key],"char":at});dup=true}obj[key]=value();if(dup){overwritten[overwritten.length-1].to=obj[key];dup=false}white();if(ch==="}"){next("}");return obj}next(",");white()}}error("Bad object")};value=function(){white();switch(ch){case "{":return object(); case "[":return array();case '"':return string();case "-":return number();default:return ch>="0"&&ch<="9"?number():word()}};return function(source,reviver){var result;var overed=[];text=source;at=0;ch=" ";result=value();white();if(ch)error("Syntax error");while(overwritten.length)overed.push(overwritten.pop());if(overed.length)overed.reverse();return typeof reviver==="function"?function walk(holder,key){var k;var v;var val=holder[key];if(val&&typeof val==="object")for(k in val)if(Object.prototype.hasOwnProperty.call(val, k)){v=walk(val,k);if(v!==undefined)val[k]=v;else delete val[k]}return reviver.call(holder,key,val)}({"":[result,overed]},""):[result,overed]}}(); // bignumber.js v9.0.1 https://github.com/MikeMcl/bignumber.js/LICENCE var BigNumber=function(I){function W(m){function h(a,b){var c,d,g,f,e=this;if(!(e instanceof h))return new h(a,b);if(null==b){if(a&&!0===a._isBigNumber){e.s=a.s;!a.c||a.e>y?e.c=e.e=null:a.e1/a?(a=-a,-1):1;if(a===~~a){var l=0;for(d=a;10<=d;d/=10,l++);l>y?e.c=e.e=null:(e.e=l,e.c=[a]);return}var n=String(a)}else{if(!Y.test(n=String(a)))return T(e,n,g);e.s=45==n.charCodeAt(0)?(n=n.slice(1),-1):1}-1<(l=n.indexOf("."))&& (n=n.replace(".",""));0<(d=n.search(/e/i))?(0>l&&(l=d),l+=+n.slice(d+1),n=n.substring(0,d)):0>l&&(l=n.length)}else{p(b,2,L.length,"Base");if(10==b)return e=new h(a),v(e,u+e.e+1,w);n=String(a);if(g="number"==typeof a){if(0!=0*a)return T(e,n,g,b);e.s=0>1/a?(n=n.slice(1),-1):1;if(h.DEBUG&&15Z.indexOf(c=n.charAt(d))){if("."==c){if(d>l){l=f;continue}}else if(!q&&(n==n.toUpperCase()&&(n=n.toLowerCase())||n==n.toLowerCase()&&(n=n.toUpperCase()))){var q=!0;d=-1;l=0;continue}return T(e,String(a),g,b)}g=!1;n=X(n,b,10,e.s);-1<(l=n.indexOf("."))?n=n.replace(".",""):l=n.length}for(d=0;48===n.charCodeAt(d);d++);for(f=n.length;48===n.charCodeAt(--f););if(n=n.slice(d,++f)){f-=d;if(g&&h.DEBUG&&15y)e.c=e.e=null;else if(ll&&(d+=14);if(d=O)?R(e,f):H(e,f,"0")}else{a=v(new h(a),b,c);c=a.e;e=t(a.c);var l=e.length;if(1==d||2==d&&(b<=c|| c<=M)){for(;ll){if(0<--b)for(e+=".";b--;e+="0");}else if(b+=c-l,0a.s&&g?"-"+e:e}function z(a,b){for(var c,d=1,g=new h(a[0]);dy?a.c=a.e=null:ch){h+=14;var q=b;var k=e[f=0];g=k/l[n-q-1]%10|0}else if(f=V((h+1)/14),f>=e.length)if(d){for(;e.length<=f;e.push(0));k=g=0;n=1;h%=14;q=h-14+1}else break a;else{k=g=e[f];for(n=1;10<=g;g/=10,n++);h%=14;q=h-14+n;g=0>q?0:k/l[n-q-1]%10|0}d=d||0>b||null!=e[f+1]||(0>q?k:k%l[n-q-1]);d=4>c?(g||d)&&(0==c||c==(0>a.s?3:2)):5a.s?8:7));if(1>b||!e[0])return e.length=0,d?(b-=a.e+1,e[0]=l[(14-b%14)%14],a.e= -b||0):e[0]=a.e=0,a;0==h?(e.length=f,g=1,f--):(e.length=f+1,g=l[14-h],e[f]=0y?a.c=a.e=null:a.e=O?R(c,b):H(c,b,"0");return 0>a.s?"-"+c:c}var k=h.prototype={constructor:h, toString:null,valueOf:null},A=new h(1),u=20,w=4,M=-7,O=21,K=-1E7,y=1E7,N=!1,Q=1,J=0,I={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\u00a0",suffix:""},L="0123456789abcdefghijklmnopqrstuvwxyz";h.clone=W;h.ROUND_UP=0;h.ROUND_DOWN=1;h.ROUND_CEIL=2;h.ROUND_FLOOR=3;h.ROUND_HALF_UP=4;h.ROUND_HALF_DOWN=5;h.ROUND_HALF_EVEN=6;h.ROUND_HALF_CEIL=7;h.ROUND_HALF_FLOOR=8;h.EUCLID=9;h.config=h.set=function(a){var b;if(null!=a)if("object"== typeof a){if(a.hasOwnProperty(b="DECIMAL_PLACES")){var c=a[b];p(c,0,1E9,b);u=c}a.hasOwnProperty(b="ROUNDING_MODE")&&(c=a[b],p(c,0,8,b),w=c);a.hasOwnProperty(b="EXPONENTIAL_AT")&&((c=a[b])&&c.pop?(p(c[0],-1E9,0,b),p(c[1],0,1E9,b),M=c[0],O=c[1]):(p(c,-1E9,1E9,b),M=-(O=0>c?-c:c)));if(a.hasOwnProperty(b="RANGE"))if((c=a[b])&&c.pop)p(c[0],-1E9,-1,b),p(c[1],1,1E9,b),K=c[0],y=c[1];else if(p(c,-1E9,1E9,b),c)K=-(y=0>c?-c:c);else throw Error("[BigNumber Error] "+b+" cannot be zero: "+c);if(a.hasOwnProperty(b= "CRYPTO"))if(c=a[b],c===!!c)if(c)if("undefined"!=typeof crypto&&crypto&&(crypto.getRandomValues||crypto.randomBytes))N=c;else throw N=!c,Error("[BigNumber Error] crypto unavailable");else N=c;else throw Error("[BigNumber Error] "+b+" not true or false: "+c);a.hasOwnProperty(b="MODULO_MODE")&&(c=a[b],p(c,0,9,b),Q=c);a.hasOwnProperty(b="POW_PRECISION")&&(c=a[b],p(c,0,1E9,b),J=c);if(a.hasOwnProperty(b="FORMAT"))if(c=a[b],"object"==typeof c)I=c;else throw Error("[BigNumber Error] "+b+" not an object: "+ c);if(a.hasOwnProperty(b="ALPHABET")){c=a[b];if("string"!=typeof c||/^.?$|[+\-.\s]|(.).*\1/.test(c))throw Error("[BigNumber Error] "+b+" invalid: "+c);L=c}}else throw Error("[BigNumber Error] Object expected: "+a);return{DECIMAL_PLACES:u,ROUNDING_MODE:w,EXPONENTIAL_AT:[M,O],RANGE:[K,y],CRYPTO:N,MODULO_MODE:Q,POW_PRECISION:J,FORMAT:I,ALPHABET:L}};h.isBigNumber=function(a){if(!a||!0!==a._isBigNumber)return!1;if(!h.DEBUG)return!0;var b=a.c;var c=a.e;var d=a.s;a:if("[object Array]"=={}.toString.call(b)){if((1=== d||-1===d)&&-1E9<=c&&1E9>=c&&c===F(c))if(0===b[0]){if(0===c&&1===b.length)return!0}else if(c=(c+1)%14,1>c&&(c+=14),String(b[0]).length==c){for(c=0;cg||1E14<=g||g!==F(g))break a}if(0!==g)return!0}}else if(null===b&&null===c&&(null===d||1===d||-1===d))return!0;throw Error("[BigNumber Error] Invalid BigNumber: "+a);};h.maximum=h.max=function(){return z(arguments,k.lt)};h.minimum=h.min=function(){return z(arguments,k.gt)};h.random=function(){var a=9007199254740992*Math.random()& 2097151?function(){return F(9007199254740992*Math.random())}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(b){var c,d=0,g=[],f=new h(A);null==b?b=u:p(b,0,1E9);var e=V(b/14);if(N)if(crypto.getRandomValues){for(c=crypto.getRandomValues(new Uint32Array(e*=2));d>>11);9E15<=l?(l=crypto.getRandomValues(new Uint32Array(2)),c[d]=l[0],c[d+1]=l[1]):(g.push(l%1E14),d+=2)}d=e/2}else if(crypto.randomBytes){for(c=crypto.randomBytes(e*= 7);dl&&(g[d++]=l%1E14);e=g[--d];b%=14;e&&b&&(l=U[14-b],g[d]=F(e/l)*l);for(;0===g[d];g.pop(),d--);if(0>d)g=[b=0];else{for(b=-1;0===g[0];g.splice(0,1),b-=14);d=1;for(l=g[0];10<=l;l/=10,d++);14>d&&(b-=14-d)}f.e=b;f.c=g;return f}}(); h.sum=function(){for(var a=1,b=arguments,c=new h(b[0]);ad-1&&(null==e[b+1]&&(e[b+1]=0),e[b+1]+=e[b]/d|0,e[b]%=d)}return e.reverse()}return function(b,c,d,g,f){var e,l=b.indexOf("."),n=u,k=w;if(0<=l){var q=J;J=0;b=b.replace(".","");var m=new h(c);var r=m.pow(b.length-l);J=q;m.c=a(H(t(r.c),r.e,"0"),10,d, "0123456789");m.e=m.c.length}f=a(b,c,d,f?(e=L,"0123456789"):(e="0123456789",L));for(c=q=f.length;0==f[--q];f.pop());if(!f[0])return e.charAt(0);if(0>l)--c;else{r.c=f;r.e=c;r.s=g;r=G(r,m,n,k,d);f=r.c;var p=r.r;c=r.e}b=c+n+1;l=f[b];q=d/2;p=p||0>b||null!=f[b+1];p=4>k?(null!=l||p)&&(0==k||k==(0>r.s?3:2)):l>q||l==q&&(4==k||p||6==k&&f[b-1]&1||k==(0>r.s?8:7));if(1>b||!f[0])b=p?H(e.charAt(1),-n,e.charAt(0)):e.charAt(0);else{f.length=b;if(p)for(--d;++f[--b]>d;)f[b]=0,b||(++c,f=[1].concat(f));for(q=f.length;!f[--q];); l=0;for(b="";l<=q;b+=e.charAt(f[l++]));b=H(b,c,e.charAt(0))}return b}}();var G=function(){function a(a,b,c){var d=0,f=a.length,g=b%1E7,h=b/1E7|0;for(a=a.slice();f--;){var k=a[f]%1E7;var m=a[f]/1E7|0;b=h*k+m*g;k=g*k+b%1E7*1E7+d;d=(k/c|0)+(b/1E7|0)+h*m;a[f]=k%c}d&&(a=[d].concat(a));return a}function b(a,b,c,e){if(c!=e)var d=c>e?1:-1;else for(e=d=0;eb[e]?1:-1;break}return d}function c(a,b,c,e){for(var d=0;c--;)a[c]-=d,d=a[c](q[d]||0)&&D--;if(0>k)p.push(1),q=!0;else{var z=q.length;var u=m.length;d=0;k+=2;var x=F(l/(m[0]+1));1=l/2&&A++;do{x=0;g=b(m,B,u,n);if(0>g){x=B[0];u!=n&&(x=x*l+(B[1]||0));x=F(x/A);if(1=l&&(x=l-1);var t=a(m,x,l);var y=t.length;for(n=B.length;1==b(t,B,y,n);)x--,c(t,ub(m,B,u,n);)x++,c(B,uk?-1:1;else{if(!l){k=k.replace(a,function(a,b,c){m="x"==(c=c.toLowerCase())?16:"b"==c?2:8;return n&&n!=m?a:b});if(n){var m=n;k=k.replace(b,"$1").replace(c, "0.$1")}if(e!=k)return new h(k,m)}if(h.DEBUG)throw Error("[BigNumber Error] Not a"+(n?" base "+n:"")+" number: "+e);f.s=null}f.c=f.e=null}}();k.absoluteValue=k.abs=function(){var a=new h(this);0>a.s&&(a.s=1);return a};k.comparedTo=function(a,b){return P(this,new h(a,b))};k.decimalPlaces=k.dp=function(a,b){var c,d;if(null!=a)return p(a,0,1E9),null==b?b=w:p(b,0,8),v(new h(this),a+this.e+1,b);if(!(c=this.c))return null;var g=14*((d=c.length-1)-E(this.e/14));if(d=c[d])for(;0==d%10;d/=10,g--);0>g&&(g= 0);return g};k.dividedBy=k.div=function(a,b){return G(this,new h(a,b),u,w)};k.dividedToIntegerBy=k.idiv=function(a,b){return G(this,new h(a,b),0,1)};k.exponentiatedBy=k.pow=function(a,b){var c,d=this;a=new h(a);if(a.c&&!a.isInteger())throw Error("[BigNumber Error] Exponent not an integer: "+C(a));null!=b&&(b=new h(b));var g=14a.s;if(b){if(b.c?!b.c[0]:!b.s)return new h(NaN); (c=!e&&d.isInteger()&&b.isInteger())&&(d=d.mod(b))}else{if(9d.e||(0==d.e?1d.c[0]||g&&9999975E7>=d.c[0]))){var l=0>d.s&&S(a)?-0:0;-1l&&(f.c.length=l):c&&(f=f.mod(b))}if(k){k=F(k/2);if(0===k)break;g=k%2}else if(a=a.times(n),v(a,a.e+1,1),14l&&(d.c.length=l):c&&(d=d.mod(b))}if(c)return f;e&&(f=A.div(f));return b?f.mod(b):l?v(f,J,w,void 0):f};k.integerValue=function(a){var b=new h(this);null==a?a=w:p(a,0,8);return v(b,b.e+1,a)};k.isEqualTo=k.eq=function(a,b){return 0===P(this,new h(a,b))};k.isFinite=function(){return!!this.c};k.isGreaterThan=k.gt=function(a,b){return 0this.c.length-2};k.isLessThan=k.lt=function(a,b){return 0>P(this,new h(a,b))};k.isLessThanOrEqualTo=k.lte=function(a,b){return-1===(b=P(this,new h(a,b)))||0===b};k.isNaN=function(){return!this.s};k.isNegative=function(){return 0>this.s};k.isPositive=function(){return 0d)?(d=-d,g=e):(f=g,g=l);g.reverse();for(b=d;b--;g.push(0));g.reverse()}else for(g=(c=(d=e.length)<(b=l.length))?d:b,d=b=0;bd;){if(e[--g]k;){var u=c[--D]%1E7;var z=c[D]/1E7|0;var v=p*u+z*q;u=q*u+v%1E7*1E7+l[e]+m;m=(u/1E14|0)+(v/1E7|0)+p*z;l[e--]=u%1E14}l[e]=m}m?++g:l.splice(0,1);return r(a,l,g)};k.negated=function(){var a=new h(this);a.s=-a.s||null;return a}; k.plus=function(a,b){var c=this.s;a=new h(a,b);b=a.s;if(!c||!b)return new h(NaN);if(c!=b)return a.s=-b,this.minus(a);var d=this.e/14;var g=a.e/14,f=this.c,e=a.c;if(!d||!g){if(!f||!e)return new h(c/0);if(!f[0]||!e[0])return e[0]?a:new h(f[0]?this:0*c)}d=E(d);g=E(g);f=f.slice();if(c=d-g){0c-b&&(d=e,e=f,f=d,b=c);for(c=0;b;)c=(f[--b]=f[b]+e[b]+c)/1E14|0,f[b]=1E14===f[b]?0:f[b]%1E14;c&&(f=[c].concat(f),++g);return r(a, f,g)};k.precision=k.sd=function(a,b){var c;if(null!=a&&a!==!!a)return p(a,1,1E9),null==b?b=w:p(b,0,8),v(new h(this),a,b);if(!(c=this.c))return null;var d=c.length-1;var g=14*d+1;if(d=c[d]){for(;0==d%10;d/=10,g--);for(d=c[0];10<=d;d/=10,g++);}a&&this.e+1>g&&(g=this.e+1);return g};k.shiftedBy=function(a){p(a,-9007199254740991,9007199254740991);return this.times("1e"+a)};k.squareRoot=k.sqrt=function(){var a=this.c;var b=this.s,c=this.e,d=u+4,g=new h("0.5");if(1!==b||!a||!a[0])return new h(!b||0>b&&(!a|| a[0])?NaN:a?this:1/0);b=Math.sqrt(+C(this));if(0==b||b==1/0){a=t(a);0==(a.length+c)%2&&(a+="0");b=Math.sqrt(+a);c=E((c+1)/2)-(0>c||c%2);b==1/0?a="5e"+c:(a=b.toExponential(),a=a.slice(0,a.indexOf("e")+1)+c);var f=new h(a)}else f=new h(b+"");if(f.c[0])for(c=f.e,b=c+d,3>b&&(b=0);;){var e=f;f=g.times(e.plus(G(this,e,d,1)));if(t(e.c).slice(0,b)===(a=t(f.c)).slice(0,b))if(f.ethis.s,k=h?f.slice(1):f,m=k.length;a&&(d=b,b=a,a=d,m-=d);if(0(c=g%14)?14+c:c];a=!a||0G(l,k,g,w).minus(this).abs().comparedTo(G(d,b,g,w).minus(this).abs())?[l,k]:[d,b];y=c;return a};k.toNumber=function(){return+C(this)};k.toPrecision=function(a,b){null!=a&&p(a,1,1E9);return D(this,a,b,2)};k.toString=function(a){var b=this,c=b.s,d=b.e;null===d?c?(a="Infinity",0>c&&(a="-"+a)):a="NaN":(null==a?a=d<=M||d>=O?R(t(b.c),d):H(t(b.c),d,"0"):10===a?(b=v(new h(b),u+d+1,w),a=H(t(b.c),b.e,"0")):(p(a,2,L.length,"Base"),a=X(H(t(b.c), d,"0"),10,a,c,!0)),0>c&&b.c[0]&&(a="-"+a));return a};k.valueOf=k.toJSON=function(){return C(this)};k._isBigNumber=!0;null!=m&&h.set(m);return h}function E(m){var h=m|0;return 0r;u=t==k;if(!p||!z)return u?0:!p^A?1:-1;if(!u)return t>k^A?1:-1;v=(t=p.length)<(k=z.length)?t:k;for(r=0;rz[r]^A?1:-1;return t==k?0:t>k^A?1:-1}function p(m,h,p,t){if(mp||m!==F(m))throw Error("[BigNumber Error] "+(t||"Argument")+("number"==typeof m?mp?" out of range: ":" not an integer: ":" not a primitive number: ")+String(m));}function S(m){var h=m.c.length-1;return E(m.e/14)==h&&0!=m.c[h]%2}function R(m,h){return(1h?"e":"e+")+h}function H(m,h,p){var t;if(0>h){for(t=p+".";++h;t+=p);m=t+m}else{var r=m.length;if(++h>r){t=p;for(h-=r;--h;t+=p);m+=t}else h>>0;if(len===0){return-1}var n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!=n){n=0}else if(n!=0&&n!=Infinity&&n!=-Infinity){n=(n>0||-1)*Math.floor(Math.abs(n))}}if(n>=len){return-1}var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k>>0,index=0,currentValue;if(arguments.length==2){currentValue=arguments[1]}else{while(index=length){throw new TypeError('Reduce of empty array with no initial currentValue')}currentValue=array[index++]}for(;index>>0;var thisArg=arguments.length>=2?arguments[1]:void 0;for(var i=0;i>>0;if(typeof fun!="function")throw new TypeError();var res=[],thisp=arguments[1];for(var i=0;i>>0;if(typeof callback!=="function"){throw new TypeError(callback+" is not a function")}if(arguments.length>1){T=arguments[1]}A=new Array(len);k=0;while(k>>0;if(typeof callbackfn!=='function'){throw new TypeError()}if(arguments.length>1){T=thisArg}k=0;while(k1114111||c(k)!=k)throw RangeError("Invalid code point: "+k);k<=65535?e.push(k):(k-=65536,f=(k>>10)+55296,g=k%1024+56320,e.push(f,g)),(h+1==i||e.length>d)&&(j+=b.apply(null,e),e.length=0)}return j};a?a(String,"fromCodePoint",{value:d,configurable:!0,writable:!0}):String.fromCodePoint=d}(); //! https://mths.be/codepointat v0.2.1 by @mathias String.prototype.codePointAt||!function(){"use strict";var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b=function(a){if(null==this)throw TypeError();var b=String(this),c=b.length,d=a?Number(a):0;if(d!=d&&(d=0),!(d<0||d>=c)){var f,e=b.charCodeAt(d);return e>=55296&&e<=56319&&c>d+1&&(f=b.charCodeAt(d+1),f>=56320&&f<=57343)?1024*(e-55296)+f-56320+65536:e}};a?a(String.prototype,"codePointAt",{value:b,configurable:!0,writable:!0}):String.prototype.codePointAt=b}(); Number.isSafeInteger=Number.isSafeInteger||function(v){return Number.isInteger(v)&&Math.abs(v)<=Math.pow(2,53)-1}; Number.isNaN=Number.isNaN||function(v){return typeof v==="number"&&v!==v}; Number.isFinite=Number.isFinite||function(v){return typeof v==="number"&&isFinite(v)}; // en-US version requires defineProperty, but this js is WSH if(typeof Object.assign!=="function"){(function(){Object.assign=function(target){"use strict";if(target===undefined||target===null){throw new TypeError("Cannot convert undefined or null to object")}var output=Object(target);for(var i=1;i-1||wmiItemCaption.indexOf("Windows XP")>-1||wmiItemCaption.indexOf("Windows Server 2003")>-1)return false;return wmiItemCaption}wmie.moveNext()}return wmiItem.Caption}(); if(!isVistaOrLater){ws.echo("This script requires Windows Vista or later.");ws.quit(1)}var is32bitOs=function(){var os;if(shell.environment("Process").item("PROCESSOR_ARCHITECTURE")==="x86")os=shell.environment("Process").item("PROCESSOR_ARCHITEW6432")==="AMD64"?"32-bit process on 64-bit OS - WOW64":"32-bit process on 32-bit OS";else os="64-bit process on 64-bit OS";return os.indexOf("64")===-1}();if(typeof TARGET_FOLDER==="undefined"){ws.echo("Specify TARGET_FOLDER variable on this JScript.");ws.quit(1)}if(typeof OUTPUT_FOLDER=== "undefined"){ws.echo("Specify OUTPUT_FOLDER variable on this JScript.");ws.quit(1)}if(typeof IMAGE_MAGICK==="undefined"){ws.echo("Specify IMAGE_MAGICK variable on this JScript.");ws.quit(1)}if(typeof DEFAULT_CHARSET==="undefined"){ws.echo("Specify DEFAULT_CHARSET variable on this JScript.");ws.quit(1)}if(typeof FORCE_CHARSETS==="undefined"){ws.echo("Specify FORCE_CHARSET variable on this JScript.");ws.quit(1)}if(typeof LIMITED_RESOLUTION==="undefined"){ws.echo("Specify LIMITED_RESOLUTION variable on this JScript."); ws.quit(1)}if(typeof OMIT_FALSY==="undefined"){ws.echo("Specify OMIT_FALSY variable on this JScript.");ws.quit(1)}if(typeof LINIFY==="undefined"){ws.echo("Specify LINIFY variable on this JScript.");ws.quit(1)}if(typeof BLANK_AUDIO==="undefined"){ws.echo("Specify BLANK_AUDIO variable on this JScript.");ws.quit(1)}if(typeof HDX_COMMENT==="undefined"){ws.echo("Specify HDX_COMMENT variable on this JScript.");ws.quit(1)}if(typeof GENERATE_PNGS==="undefined"){ws.echo("Specify GENERATE_PNGS variable on this JScript."); ws.quit(1)}if(typeof BMSON_TO_BMS==="undefined"){ws.echo("Specify BMSON_TO_BMS variable on this JScript.");ws.quit(1)}if(typeof ESCAPE_NON_ASCII==="undefined"){ws.echo("Specify ESCAPE_NON_ASCII variable on this JScript.");ws.quit(1)}if(typeof USE_UNIX_NEWLINE==="undefined"){ws.echo("Specify USE_UNIX_NEWLINE variable on this JScript.");ws.quit(1)}if(!TARGET_FOLDER){ws.echo("Specify TARGET_FOLDER on this JScript.");ws.quit(1)}if(!OUTPUT_FOLDER){ws.echo("Specify OUTPUT_FOLDER on this JScript.");ws.quit(1)}if(!IMAGE_MAGICK){ws.echo("Specify ImageMagick-directory on this JScript var IMAGE_MAGICK;\r\nSee https://imagemagick.org/script/download.php#windows"); ws.quit(1)}if(!is("String",TARGET_FOLDER)){ws.echo('Specify Absolute-Path-String to TARGET_FOLDER.\r\n(E.g.: var TARGET_FOLDER = "C:\\\\BMS\\\\BOFU2017"; )');ws.quit(1)}if(!is("String",OUTPUT_FOLDER)){ws.echo('Specify Absolute-Path-String to OUTPUT_FOLDER.\r\n(E.g.: var OUTPUT_FOLDER = "D:\\\\BMS\\\\BOFU2017-to-BMSON"; )');ws.quit(1)}if(!is("String",IMAGE_MAGICK)){ws.echo('Specify Absolute-Path-String to IMAGE_MAGICK.\r\n(E.g.: var IMAGE_MAGICK = "C:\\\\ImageMagick-'+IMAGE_MAGICK_VERSION_MIN+'-portable-Q16-x64"; )'); ws.quit(1)}if(!is("String",BLANK_AUDIO)){ws.echo('Specify JavaScript String value to BLANK_AUDIO.\r\n(E.g.: var BLANK_AUDIO = "___undefined___";)');ws.quit(1)}var trimDots=function(arr,root){var i=0;var part;var parent=[];while(iparent.length){if(arr[i-1]===root)return[];arr.splice(i-1,2);i-=2}else if(i===parent.length)parent.push("..");i+=1}return arr};var pathDelim=/(?:\u002F|\u005C|%2F|%2f|%5C|%5c|/|/|\|\|/|\|XA==|Lw==)/; var hasReservedWord=function(str){var reserved=/(?:CON|PRN|AUX|NUL|COM[0-9]|LPT[0-9]|CLOCK\$)(?:\.|$)/i;var dirs=str.split(/[\u002F\u005C]/);var i=0;var l=dirs.length;while(i?|]/.test(str))return false;if(/^(?:\\\\|\u002F\u002F)/.test(str))return false;var value=str;var delim=value.indexOf("\\")===-1&&value.indexOf("/")>-1?"/":"\\";var parsed;var type;var root=false;var domain=false;var drive=false;var dirname;var basename;var extname;var regex;var tmp;var i;var l;var v;if(hasReservedWord(value))return false;if(str.length>260)return false;regex=/^\/(.*)/;if(regex.test(value)){type="UNIX-ABS";tmp=regex.exec(value);root="/"; if(!tmp[1]){parsed={type:type,root:root,dir:root};return isDir?parsed:false}value=tmp[1].replace(/(?:\/\\+|\\\/+|\/+|\\+)/g,"/")}regex=/^([A-Za-z]:)([\u002F\u005C]+)*(.*)/;if(!type&®ex.test(value)){tmp=regex.exec(value);delim="\\";if(!tmp[2]){type="WIN-DREL";drive=tmp[1];value=tmp[3].replace(/(?:\/\\+|\\\/+|\/+|\\+)/g,delim);if(!tmp[3]&&!isDir)return false}else{type="WIN-ABS";root=tmp[1]+delim;value=tmp[3].replace(/(?:\/\\+|\\\/+|\/+|\\+)/g,delim);if(!value){parsed={type:type,root:root,dir:root}; return isDir?parsed:false}}}if(str===value){type="REL";value=value.replace(/(?:\/\\+|\\\/+|\/+|\\+)/g,delim)}value=value.split(/[\u002F\u005C]/);i=0;l=value.length;while(i255)return false;i+=1}parsed={type:type};if(root){parsed.root=root;value.unshift(root);value=trimDots(value,root);if(!value.length)return false; value.shift()}else value=trimDots(value);if(domain)parsed.domain=domain;basename=value.pop();if(basename===""){if(!isDir)return false;parsed.dir=root?root+value.join(delim)+delim:value.join(delim);if(drive)parsed.drive=drive;return parsed}extname=basename.indexOf(".")>-1?basename.slice(basename.lastIndexOf("."),basename.length):"";parsed.dir=root?root+value.join(delim):value.join(delim);parsed.base=basename;parsed.ext=extname;parsed.name=basename.slice(0,basename.length-extname.length);if(drive)parsed.drive= drive;return parsed};if(!is("Object",FORCE_CHARSETS)){ws.echo('Specify JavaScript Object to FORCE_CHARSETS. Default value = {\r\n "DUMMY\\\\DUMMY.bms": "_autodetect_all"\r\n}');ws.quit(1)}if(!is("Number",LIMITED_RESOLUTION)||LIMITED_RESOLUTION<0||LIMITED_RESOLUTION>3){ws.echo("Specify Number [0-3] to LIMITED_RESOLUTION.\r\n"+"3: Don't assume 1/192 for convenience\r\n"+"2: BmsONE-safe (max: 24000)\r\n"+"1: beatoraja-safe (max: 2147483647)\r\n"+"0: Non-rounded (max: 9.9e10000000)"); ws.quit(1)}if(!is("Boolean",OMIT_FALSY)){ws.echo('Specify true or false to OMIT_FALSY.\r\nIf true, BMSON key-values {"c":false, "l":0, "x":0} are omitted.');ws.quit(1)}if(!is("Boolean",LINIFY)){ws.echo("Specify true or false to LINIFY.\r\nIf true, 1-line BMSON is outputted.");ws.quit(1)}if(!is("Boolean",HDX_COMMENT)){ws.echo("Specify true or false to HDX_COMMENT.\r\nIf true, C-like comments are enabled.");ws.quit(1)}if(!is("Boolean",GENERATE_PNGS)){ws.echo("Specify true or false to GENERATE_PNGS.\r\nIf true, ImageMagick actually generates PNG image files."); ws.quit(1)}if(!is("Boolean",BMSON_TO_BMS)){ws.echo("Specify true or false to BMSON_TO_BMS.\r\nIf true, BMSes are not searched but instead BMSONs are retrieved/converted.");ws.quit(1)}if(!is("Boolean",ESCAPE_NON_ASCII)){ws.echo("Specify true or false to ESCAPE_NON_ASCII.\r\nIf true, escape non-ASCII characters when converting BMS to BMSON.");ws.quit(1)}if(!is("Boolean",USE_UNIX_NEWLINE)){ws.echo("Specify true or false to HDX_COMMENT.\r\nIf true, use LF instead of CRLF.");ws.quit(1)}var validateCharsetPathStr= function(pathStr,idx){var path=normalizePath(pathStr);var valid=true;if(!path)valid=false;else if(path.type==="REL"){if(path.dir===".."||path.dir.indexOf("..\\")>-1||path.dir.indexOf("../")>-1)valid=false}else if(path.type!=="WIN-ABS"){ws.echo(JSON.stringify(path));valid=false}if(!/^\.(?:bms|bme|bml|pms)$/i.test(path.ext))valid=false;if(!valid)ws.echo("Invalid path string in FORCE_CHARSETS["+idx+"]\r\n ("+pathStr+")\r\n\r\nSpecify correctly absolute/relative path.");return valid};var tmpPath=normalizePath(TARGET_FOLDER, true);if(!tmpPath||tmpPath.type!=="WIN-ABS"){ws.echo("Invalid TARGET_FOLDER.\r\nSpecify absolute path of target directory.");ws.quit(1)}tmpPath=normalizePath(OUTPUT_FOLDER,true);if(!tmpPath||tmpPath.type!=="WIN-ABS"){ws.echo("Invalid OUTPUT_FOLDER.\r\nSpecify absolute path of output directory.");ws.quit(1)}tmpPath=normalizePath(IMAGE_MAGICK,true);if(!tmpPath||tmpPath.type!=="WIN-ABS"){ws.echo("Invalid IMAGE_MAGICK.\r\nSpecify absolute path of install directory of ImageMagick.");ws.quit(1)}if(BLANK_AUDIO!== ""){tmpPath=normalizePath(BLANK_AUDIO,false);if(!tmpPath||tmpPath.type!=="REL"||tmpPath.dir!==""){ws.echo("Invalid BLANK_AUDIO.\r\nSpecify valid Windows-FileName-String.\r\n(The presence or absence of that file is irrelevant.)");ws.quit(1)}}tmpPath=Object.keys(FORCE_CHARSETS);if(tmpPath.length)if(!tmpPath.every(validateCharsetPathStr))ws.quit(1);if(fso.fileExists(TARGET_FOLDER)){ws.echo("Specify Target-directory on this JScript.");ws.quit(1)}if(!fso.folderExists(TARGET_FOLDER)){ws.echo("Specified Target-directory is not found."); ws.quit(1)}if(fso.fileExists(OUTPUT_FOLDER)){ws.echo("Specify Output-directory on this JScript.");ws.quit(1)}var validCharsets=function(){var locator=ws.createObject("WbemScripting.SWbemLocator");var server=locator.connectServer(null,"root\\default");var registry=server.get("StdRegProv");var method=registry.Methods_.item("EnumKey");var iParams=method.InParameters.spawnInstance_();iParams.hDefKey=2147483648;iParams.sSubKeyName="MIME\\Database\\Charset";var result=registry.ExecMethod_(method.Name,iParams); var keys=result.sNames.toArray();return"|"+keys.join("|").toUpperCase()+"|"}();var validateCharsetStr=function(charset,idx){var valid=true;if(validCharsets.indexOf("|"+charset.toUpperCase()+"|")<0){ws.echo("Invalid Encoding name in FORCE_CHARSETS["+idx+"]\r\n ("+charset+')\r\n\r\nSpecify correct Encoding name.\r\n(E.g.: "Shift_JIS")');valid=false}return valid};if(tmpPath.length){tmpPath=Object.keys(FORCE_CHARSETS).map(function(k){return FORCE_CHARSETS[k]});if(!tmpPath.every(validateCharsetStr))ws.quit(1)}if(!is("String", DEFAULT_CHARSET)||validCharsets.indexOf("|"+DEFAULT_CHARSET.toUpperCase()+"|")<0){ws.echo("Invalid Encoding name in DEFAULT_CHARSET: "+DEFAULT_CHARSET+'\r\nSpecify correct Encoding name.\r\n(E.g.: "Shift_JIS")');ws.quit(1)}if(fso.fileExists(IMAGE_MAGICK)){ws.echo("Specify ImageMagick-install-directory on this JScript.\r\nSee https://imagemagick.org/script/download.php#windows");ws.quit(1)}if(!fso.folderExists(IMAGE_MAGICK)){ws.echo("Specified ImageMagick-install-directory is not found.");ws.quit(1)}if(!fso.fileExists(fso.buildPath(IMAGE_MAGICK, "magick.exe"))){ws.echo(fso.fileExists(fso.buildPath(IMAGE_MAGICK,"convert.exe"))||fso.fileExists(fso.buildPath(IMAGE_MAGICK,"identify.exe"))?"Your ImageMagick Version is too old.\r\nUse latest ImageMagick.":"ImageMagick executable file is not found.\r\nRe-install ImageMagick, and Specify correct install-directory-path.");ws.quit(1)}try{shell.exec('"'+fso.buildPath(IMAGE_MAGICK,"magick.exe")+'" -version')}catch(e){ws.echo("64-bit ImageMagick on 32-bit OS.\r\nSpecify 32-bit ImageMagick install-directory."); ws.quit(1)}IMAGE_MAGICK=fso.getFolder(IMAGE_MAGICK).path;var getSemanticVersion=function(ver){var V_NUM=/^(?:0|[1-9]\d*)$/;var V_MAIN="^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)";var V_PRERELEASE="(?:-((?:0|[1-9]\\d*|\\d*[\\-A-Za-z][\\-0-9A-Za-z]*)(?:\\.(?:0|[1-9]\\d*|\\d*[\\-A-Za-z][\\-0-9A-Za-z]*))*))";var V_BUILD="(?:\\+([\\-0-9A-Za-z]+(?:\\.[\\-0-9A-Za-z]+)*))";var SEMVER=new RegExp(V_MAIN+V_PRERELEASE+"?"+V_BUILD+"?$");var semvers=SEMVER.exec(ver);if(semvers===null)return parseInt(ver,10); return{base:ver,main:semvers[1]+"."+semvers[2]+"."+semvers[3],major:parseInt(semvers[1],10),minor:parseInt(semvers[2],10),patch:parseInt(semvers[3],10),preRelease:semvers[4],buildMeta:semvers[5]}};var IMAGE_MAGICK_VERSION=getSemanticVersion(function(){var txt=shell.exec('"'+fso.buildPath(IMAGE_MAGICK,"magick.exe")+'" -version').StdOut.readAll().split("\r\n")[0];return txt.split(" ")[2]}());var validateImageMagicVersion=function(ver,min){var old="Your ImageMagick Version is too old.\r\nUse latest ImageMagick."; if(!is("Object",ver)){ws.echo(old);return false}if(ver.major-1)curScr='"'+curScr+'"';cmd+=curScr;while(ai-1)aarg='"'+aarg+'"';cmd+=" "+aarg;ai+=1}ashell=ws.createObject("WScript.Shell");ar=ashell.run(cmd, WINDOW_ACTIVIZE,WAIT_ON_RETURN);ws.quit(ar)};runInCscript();ws.echo("_wsh_bms2bmson.js"+getScriptVersion()+": Now working ...");ws.echo("Using ImageMagick Version "+IMAGE_MAGICK_VERSION.base+"\r\n");var BN=BigNumber.clone({EXPONENTIAL_AT:1E9});var SUPPORTED_BMSON_VERSION=["1.0.0"];var CURRENT_BMSON_VERSION="1.0.0";var getDate=function(){var now=new Date;var yyyy=("000"+now.getFullYear()).slice(-4);var mm=("0"+(Number(now.getMonth())+1)).slice(-2);var dd=("0"+now.getDate()).slice(-2);var HH=("0"+now.getHours()).slice(-2); var MM=("0"+now.getMinutes()).slice(-2);var SS=("0"+now.getSeconds()).slice(-2);return yyyy+"-"+mm+"-"+dd+"T"+HH+":"+MM+":"+SS};var startTimeMsec=(new Date).getTime();var startTimeStr=getDate();TARGET_FOLDER=fso.getFolder(TARGET_FOLDER).path;if(fso.folderExists(OUTPUT_FOLDER))OUTPUT_FOLDER=fso.getFolder(OUTPUT_FOLDER).path;else{tmpPath=normalizePath(OUTPUT_FOLDER,true);OUTPUT_FOLDER=fso.buildPath(tmpPath.dir.replace(/\u002F/g,"\\"),tmpPath.base)}FORCE_CHARSETS=function(fCharsets){var keys=Object.keys(fCharsets).reverse(); if(!keys.length)return{"DUMMY\\DUMMY.bms":"_autodetect_all"};var i=keys.length;var path;var charset;var normal={};while(i){i-=1;path=keys[i];charset=fCharsets[path];path=normalizePath(path);path=fso.buildPath(path.dir.replace(/\u002F/g,"\\"),path.base);normal[path]=charset}normal["DUMMY\\DUMMY.bms"]="_autodetect_all";return normal}(FORCE_CHARSETS);var enumFiles=function(target){var chart=BMSON_TO_BMS?/^[^.\\][\u0020-\[\]-\uFFFD]*\.(?:bmson)$/i:/^[^.\\][\u0020-\[\]-\uFFFD]*\.(?:bms|bme|bml|pms)$/i; if(fso.fileExists(target)&&chart.test(fso.getFileName(target)))return[target];if(!fso.folderExists(target))return[];var targets=[];var dir=fso.getFolder(target);var e=new Enumerator(dir.Files);var chartFile;var r;var n;while(!e.atEnd()){chartFile=e.item();n=fso.getFileName(chartFile);if(chart.test(n)){targets.push(chartFile.path);ws.echo(chartFile.path)}e.moveNext()}e=new Enumerator(dir.SubFolders);while(!e.atEnd()){r=enumFiles(e.item());targets=targets.concat(r);e.moveNext()}return targets};var chartsFrom= enumFiles(TARGET_FOLDER);if(!chartsFrom.length){ws.echo("Chart is not exist.");doneWait();ws.quit(1)}var dirsFrom=chartsFrom.map(function(v){return v.replace("\\"+fso.getFileName(v),"")}).filter(function(v,i,a){return a.indexOf(v)===i});var getImplicitPreviewFileName=function(dir){var files=fso.getFolder(dir).Files;var en=new Enumerator(files);var file;var name;var rx=/^preview.*\.(?:ogg|wav)$/i;var results={};while(!en.atEnd()){file=en.item();name=fso.getFileName(file);if(rx.test(name))return name; en.moveNext()}};var dirsHavePreview=dirsFrom.filter(getImplicitPreviewFileName);var rootTo=fso.buildPath(OUTPUT_FOLDER,fso.getFolder(TARGET_FOLDER).name);var getOutputDir=function(target){var tn=target.replace(TARGET_FOLDER,"");tn=fso.buildPath(rootTo,tn);tn=fso.getParentFolderName(tn);return tn};var enumOutDirs=function(targetList){if(!targetList.length||!fso.fileExists(targetList[0]))return;var outDirs=[];var ti=0;var tl=targetList.length;var tn=getOutputDir(targetList[ti]);outDirs.push(tn);ti+= 1;while(ti-1){var scriptExecSHA1=shell.exec('certutil -hashfile "'+file+'"');return{md5:"",sha1:scriptExecSHA1.StdOut.readAll().split("\r\n")[1].replace(/\u0020/g,""),sha256:""}}else{var scriptExecMD5=shell.exec('certutil -hashfile "'+file+'" MD5');var scriptExecSHA256=shell.exec('certutil -hashfile "'+file+'" SHA256');return{md5:scriptExecMD5.StdOut.readAll().split("\r\n")[1].replace(/\u0020/g, ""),sha1:"",sha256:scriptExecSHA256.StdOut.readAll().split("\r\n")[1].replace(/\u0020/g,"")}}};var binToHex=function(binStr){var xmldom=ws.createObject("Microsoft.XMLDOM");var binObj=xmldom.createElement("binObj");binObj.dataType="bin.hex";binObj.nodeTypedValue=binStr;return String(binObj.text)};var readText=function(fname,charset){if(!fso.fileExists(fname))return["Invalid","US-ASCII"];if(fso.getFile(fname).size<4)return["Invalid","US-ASCII"];var adTypeBinary=1;var adTypeText=2;var adReadAll=-1;var s= ws.createObject("ADODB.Stream");var bytes;var strBOM;var chartText;if(FORCE_CHARSETS[fname])charset=FORCE_CHARSETS[fname];else if(FORCE_CHARSETS[fname.replace(TARGET_FOLDER+"\\","")])charset=FORCE_CHARSETS[fname.replace(TARGET_FOLDER+"\\","")];else{s.Type=adTypeBinary;s.open();s.loadFromFile(fname);bytes=s.read(4);strBOM=binToHex(bytes);if(strBOM.indexOf("efbbbf")===0)charset="UTF-8";else if(strBOM==="0000feff"||strBOM==="fffe0000")charset="UTF-32";else if(strBOM==="84319533")charset="GB18030";else if(strBOM.indexOf("feff")=== 0)charset="UTF-16";else if(strBOM.indexOf("fffe")===0)charset="UnicodeFFFE";else charset=BMSON_TO_BMS?"UTF-8":charset||DEFAULT_CHARSET||"_autodetect_all";s.close()}if(charset!=="UTF-32"){s.Type=adTypeText;s.charset=charset;s.open();s.loadFromFile(fname);chartText=s.readText(adReadAll);s.close()}else chartText="UTF-32 is not supported.";s=null;return[chartText,charset]};var saveTextFileAsUTF8=function(filename,text,isBOM){var adTypeBinary=1;var adTypeText=2;var pre=ws.createObject("ADODB.Stream"); var stm=ws.createObject("ADODB.Stream");var bin;pre.Type=adTypeText;pre.Charset="UTF-8";pre.open();pre.writeText(text);pre.Position=0;pre.Type=adTypeBinary;pre.Position=isBOM?0:3;bin=pre.read();pre.close();stm.Type=adTypeBinary;stm.open();stm.write(bin);stm.saveToFile(filename,2);stm.close()};var Chart={chartFiles:[],entryChartFile:function(filename){if(!filename||typeof filename!=="string")return false;while(this.chartFiles.indexOf(filename)!==-1)filename+=U3003;this.chartFiles.push(filename);return filename}, clearAllEntries:function(){if(this.chartFiles.length)return this.chartFiles.splice(0)},clearEntry:function(id){if(typeof id==="string"&&this.chartFiles.indexOf(id)!==-1)return this.chartFiles.splice(this.chartFiles.indexOf(id),1)},globalPulseResolution:"240",zero:new BN(0),isInt:function(n){if(this.isNum(n)&&(new BN(n)).isInteger()){if(n.length>1)return!/^-?0+[^.]/.test(n);return true}return false},isNum:function(n){return/^-?\d+(?:\.\d*)?(?:e[+\u002d]?\d+)?$/i.test(n)},isLong:function(n){var bn= new BN(n);return this.isInt(n)&&bn.lte(4294967295)&&bn.gte(this.zero)},isDouble:function(n){if(this.isNum(n)){var bn=new BN(n);if(bn.eq(this.zero))return true;return bn.abs().lte(new BN(String(Number.MAX_VALUE)))&&bn.abs().gte(new BN(String(Number.MIN_VALUE)))}return false},isNegative:function(n){return this.isNum(n)&&(new BN(n)).lt(this.zero)},isSafeInt:function(n){var bn=new BN(n);return this.isInt(n)&&bn.lte(new BN(String(Math.pow(2,53)-1)))&&bn.gte(new BN(String(-(Math.pow(2,53)-1))))},isSafeNum:function(n){var bn= new BN(n);return this.isNum(n)&&bn.isFinite()&&!this.isUnderFlow(n)&&bn.eq(new BN(String(Number(n))))},isFinite:function(n){if(this.isNum(n))return(new BN(n)).isFinite();if(n==="Infinity"||n==="-Infinity"||n==="NaN")return false},isUnderFlow:function(n){if(this.isNum(n)&&/[\u002d.1-9Ee]/.test(n)){var bn=new BN(n);if(!bn.isFinite())return false;if(bn.abs().lt(new BN("1e-10000000")))return true}return false},getValueType:function gvt(){var args=Array.prototype.slice.call(arguments);var N=is("Object", args[args.length-1])?args.pop():null;var si=0;var sl=args[0].length;var cur=this;var val;if(!sl||this===g)return'E.g.: o.getValueType(["info", "subartists", 1], N) // return type of N.info.subartists[1]';while(siparseInt(bmsData.maxMeasure,10))bmsData.maxMeasure=value[0];if(!bmsData[value[0]].ST)bmsData[value[0]].ST=[];bmsData[value[0]].ST.push(value[1]);if(bmsData.usedChannels.indexOf("ST")===-1)bmsData.usedChannels.push("ST"); if(bmsData[value[0]].lengths.indexOf(value[1].length)===-1)bmsData[value[0]].lengths.push(value[1].length)}}bmsData[key].push(value)}else if(hash_DEFS[key.slice(0,-2)]){tmpNum=key.slice(-2);key=key.slice(0,-2);if(key==="EXBPM")key="BPM";if(key==="@BGA"){key="BGA";if(bgarx.test(value.trim())){val=bgarx.exec(value.trim());val[4]=String(parseInt(val[2],10)+parseInt(val[4],10));val[5]=String(parseInt(val[3],10)+parseInt(val[5],10));value=val.slice(1).join(" ")}}if(!bmsData[key])bmsData[key]={};switch(key){case "BPM":case "STOP":case "SCROLL":case "SPEED":case "EXRANK":value= mayZeroCommaDecimalNumber(getNumberStringFromNumberLikeString(value.trim()));break}bmsData[key][tmpNum]=value;if(key==="WAV")if(isBmsOn.test(value)&&!fso.fileExists(fso.buildPath(fso.getParentFolderName(bmsData.from),value))){if(!bmsData.continuation)bmsData.continuation={};bmsData.continuation[tmpNum]=value.slice(-2).toUpperCase();if(bmsData.continuation[tmpNum]===tmpNum)delete bmsData.continuation[tmpNum]}else if(bmsData.continuation&&bmsData.continuation[tmpNum])delete bmsData.continuation[tmpNum]; if(key==="BMP"){val=normalizePath(value);if(val){switch(val.type){case "REL":value=val.dir?(val.dir+"\\"+val.base).replace(rxSlash,"\\"):val.base;break;case "WIN-DREL":value=val.drive+val.dir+"\\"+val.base;break;default:value=val.dir+(val.type.indexOf("W")===0?"\\":"/")+val.base;break}bmsData[key][tmpNum]=value}}if(key==="EXBMP")if(exbmprx.test(value)){val=exbmprx.exec(value);val[1]=parseInt(val[1],10);val[2]=parseInt(val[2],10);val[3]=parseInt(val[3],10);val[4]=parseInt(val[4],10);val[5]=normalizePath(val[5].trim()); if(0<=val[1]&&val[1]<=255&&(0<=val[2]&&val[2]<=255)&&(0<=val[3]&&val[3]<=255)&&(0<=val[4]&&val[4]<=255)&&val[5]){switch(val[5].type){case "REL":val[5]=val[5].dir?(val[5].dir+"\\"+val[5].base).replace(rxSlash,"\\"):val[5].base;break;case "WIN-DREL":val[5]=val[5].drive+val[5].dir+"\\"+val[5].base;break;default:val[5]=val[5].dir+(val[5].type.indexOf("W")===0?"\\":"/")+val[5].base;break}bmsData[key][tmpNum]=[val[1],val[2],val[3],val[4]].join(",")+" "+val[5]}else delete bmsData[key][tmpNum]}else delete bmsData[key][tmpNum]; if(key==="ARGB")if(argbrx.test(value)){val=argbrx.exec(value);val[1]=parseInt(val[1],10);val[2]=parseInt(val[2],10);val[3]=parseInt(val[3],10);val[4]=parseInt(val[4],10);if(0<=val[1]&&val[1]<=255&&(0<=val[2]&&val[2]<=255)&&(0<=val[3]&&val[3]<=255)&&(0<=val[4]&&val[4]<=255))bmsData[key][tmpNum]=[val[1],val[2],val[3],val[4]].join(",");else delete bmsData[key][tmpNum]}else delete bmsData[key][tmpNum];if(key==="BGA"){bmsData[key][tmpNum]=value.trim();if(!bgarx.test(value.trim()))delete bmsData[key][tmpNum]}if(key=== "BPM")if(!Chart.isNum(value)||(new BN(value)).isZero())delete bmsData[key][tmpNum];if(key==="STOP")if(!Chart.isNum(value))delete bmsData[key][tmpNum];if(key==="SCROLL")if(!Chart.isNum(value))delete bmsData[key][tmpNum];if(key==="SPEED")if(!Chart.isNum(value)||Chart.isNegative(value))delete bmsData[key][tmpNum];if(key==="SONG"||key==="TEXT")if(value.indexOf('"')===0&&value.lastIndexOf('"')===value.length-1)bmsData[key][tmpNum]=value.slice(1,-1);if(key==="EXRANK")if(!Chart.isNum(value)||Chart.isNegative(value))delete bmsData[key][tmpNum]}else if(isBmsData.test(cmd[0])){tmpNum= key.slice(0,3);tmpCh=key.slice(-2);if(!bmsData[tmpNum]){bmsData[tmpNum]={};bmsData[tmpNum]["02"]="1";bmsData[tmpNum].lengths=[];bmsData[tmpNum].fracs=[]}if(tmpCh==="02"){value=mayZeroCommaDecimalNumber(getNumberStringFromNumberLikeString(value.trim()));if(isNumber.test(value)){value=isNumber.exec(value)[1];tmpBigNum=new BN(value);if(!tmpBigNum.isFinite()){bmsData.errs.push([[i],line,"Invalid","Invalid measure length, applied 1.",1]);value="1"}if(tmpBigNum.isZero()){bmsData.errs.push([[i],line,"Invalid", "Invalid measure length, applied 1.",1]);value="1"}if(tmpBigNum.isNegative()){bmsData.errs.push([[i],line,"Invalid","Negative measure length, applied absolute value.",1]);value=tmpBigNum.abs()}bmsData[tmpNum]["02"]=value}else{bmsData.errs.push([[i],line,"Invalid","Invalid measure length, applied 1.",1]);value="1";bmsData[tmpNum]["02"]=value}}else if(tmpCh==="00"){bmsData.errs.push([[i],line,"Obsolete","Obsolete BPM command (#xxx00)",2]);if(isNumber.test(value.trim()))bmsData[tmpNum]["00"]=isNumber.exec(value.trim())[1]; else bmsData.errs.push([i],line,"Invalid","Invalid BPM",2)}else{value=value.trim().toUpperCase();value=!value.length||isNonAscii.test(value.slice(0,1))?"":value.split(isNonAscii)[0];tmplen=Math.floor(value.length/2);if(value===""||value.length%2!==0)bmsData.errs.push([[i],line,"Invalid","Invalid data length",1]);if(bmsData.usedChannels.indexOf(tmpCh)===-1)bmsData.usedChannels.push(tmpCh);if(tmplen===0)tmplen=1;else{if(parseInt(tmpNum,10)>parseInt(bmsData.maxMeasure,10))bmsData.maxMeasure=tmpNum;if(!bmsData[tmpNum][tmpCh])switch(tmpCh){case "03":if(!bmsData[tmpNum]["08"])bmsData[tmpNum]["08"]= [];break;case "0B":if(!bmsData[tmpNum]["A1"])bmsData[tmpNum]["A1"]=[];break;case "0C":if(!bmsData[tmpNum]["A2"])bmsData[tmpNum]["A2"]=[];break;case "0D":if(!bmsData[tmpNum]["A3"])bmsData[tmpNum]["A3"]=[];break;case "0E":if(!bmsData[tmpNum]["A4"])bmsData[tmpNum]["A4"]=[];break;default:bmsData[tmpNum][tmpCh]=[];break}val=value.match(isDefsIndex);if(tmpCh==="03"){j=0;k=val.length;while(j21?dp+2:21});var i=0;var left=x.integerValue();var right=x.minus(left); var a=[x.integerValue()];var one=new BN(1);while(i=0){A=reduce(a[i].times(A[0]).plus(A[1]),A[0]);i-=1}var text="["+a[0].toString();if(a[1])text+="; "+a[1].toString();i=2;while(i0?h[3].split(" ")[0]:h[3]).toString(16)).slice(-2)).toUpperCase()};var normalizeBmpPath=function(path,prefix){var bmp_path=normalizePath(path); var tmpFileName;var PREFIX=prefix||"";var mayBeImage=/\.(?:bmp|gif|jpg|jpeg|webp|png|tga|dds|dib|tiff|pxr|rle)$/i;var mayBeMovie=/\.(?:mp4|mpeg|mpg|webm|wmv|avi|m1v|m2v|m4v|m4a|mkv|mov|ogm|ogv|flv|asf)$/i;if(!bmp_path)return"";tmpFileName=bmp_path.dir===""?PREFIX+bmp_path.base:bmp_path.dir+"\\"+PREFIX+bmp_path.base;if(bmp_path.type==="WIN-DREL")tmpFileName=bmp_path.drive+tmpFileName;tmpFileName=tmpFileName.replace(/[\u002F\u005C]+/g,bmp_path.type==="UNIX-ABS"?"/":"\\");if(PREFIX&&!mayBeMovie.test(tmpFileName)){tmpFileName= tmpFileName.replace(mayBeImage,"");if(PREFIX==="___alpha_layer_")tmpFileName+=".png"}return tmpFileName};var bgaHeaderFactory=function(o,BGABMP,targets,skips,type){var target;var l=targets.length;var i=0;var r=[];var n;var id;var bgarx=/^([0-9A-Za-z]+)[\s,\u3000]+(-?\d+)[\s,\u3000]+(-?\d+)[\s,\u3000]+(-?\d+)[\s,\u3000]+(-?\d+)[\s,\u3000]+(-?\d+)[\s,\u3000]+(-?\d+)/;var exbmprx=/^(\d+),(\d+),(\d+),(\d+) (.+)$/;var mayBeImage=/\.(?:bmp|gif|jpg|jpeg|webp|png|tga|dds|dib|tiff|pxr|rle)$/i;var mayBeMovie= /\.(?:mp4|mpeg|mpg|webm|wmv|avi|m1v|m2v|m4v|m4a|mkv|mov|ogm|ogv|flv|asf)$/i;var mayNum=/^\d+$/;var basename=/([^\/\\]+?)?$/;var ext=/(\.+[^.]+)$/;var tmp;var dec;var hex;var b36;var src;var bmpId;var ex;var argb;if(type==="LAYER")while(i-1?getUsedIndicesOnSpecifiedChannel(o,ch):[]}if(result.poor_layer){result.usedBaseIndices= result["04"].concat([]).sort();result.usedLayerIndices=result["07"].concat(result["0A"],result["06"]).filter(kickDuplicatedArrayElement).sort();if(result.default_poor)result.usedLayerIndices.unshift("00")}else{result.usedBaseIndices=result["04"].concat(result["06"]).filter(kickDuplicatedArrayElement).sort();result.usedLayerIndices=result["07"].concat(result["0A"]).filter(kickDuplicatedArrayElement).sort();if(result.default_poor)result.usedBaseIndices.unshift("00")}i=channels.length;while(i){i-=1; delete result[channels[i]]}result.basePictureMultiDefs=result.usedBaseIndices.length?getMultiDefinitions(BGABMP,result.usedBaseIndices):{};result.layerPictureMultiDefs=result.usedLayerIndices.length?getMultiDefinitions(BGABMP,result.usedLayerIndices):{};if(Object.keys(result.basePictureMultiDefs).length)result.baseFromTo=getPictureIndicesFromTo(result.basePictureMultiDefs);if(Object.keys(result.layerPictureMultiDefs).length)result.layerFromTo=getPictureIndicesFromTo(result.layerPictureMultiDefs); delete result.basePictureMultiDefs;delete result.layerPictureMultiDefs;result.bga_header=bgaHeaderFactory(o,BGABMP,result.usedBaseIndices,Object.keys(result.baseFromTo||{}),"BASE").concat(bgaHeaderFactory(o,BGABMP,result.usedLayerIndices,Object.keys(result.layerFromTo||{}),"LAYER"));result.bga_header.sort(sortBgaHeader);return result};var getPictureIndexBase36=function(o,xxx,ch,i,type){var d=o[xxx][ch];var p="pictureIndices";var t=(type==="BASE"?"base":"layer")+"FromTo";return o[p]&&o[p][t]&&o[p][t][d[i]]? o[p][t][d[i]]:d[i]};var parseBms=function(obj){var prop;var bar=/^\d\d\d$/;var tag=/^[\u002F@-Z_]+$/;var tmplen;var tmp1;var tmp2;var tmpMax;var tmpCur;var i;var l;var keys=Object.keys(obj);var ki=0;var kl=keys.length;var trackProps;var ti=0;var tl;var tProp;var ch;var chi=0;var chl;var stopValues;var si=0;var sl;var stopValue;var stopIdx;var picki=0;var pickl;var BMSON_DEFAULT_MEASURE_RESOLUTION=LIMITED_RESOLUTION===3?4:960;var testnum="000";obj.minRhythm=LIMITED_RESOLUTION===3?"4":"192";if(obj.STOP)if(Object.keys(obj.STOP).length){stopValues= Object.keys(obj.STOP);sl=stopValues.length;while(siparseInt(obj.minRhythm))obj.minRhythm=obj[prop].fracs[obj[prop].fracs.length-1];tmpMax=obj[prop].fracs.reduce(getLcm); if(obj[prop].resolution){if((new BN(obj[prop].resolution)).lt(tmpMax))obj[prop].resolution=tmpMax}else obj[prop].resolution=tmpMax}else obj[prop].resolution=tmplen[1];if(obj.resolutions.indexOf(obj[prop].resolution.toString())===-1)obj.resolutions.push(obj[prop].resolution.toString());obj[prop].fracs.sort(simpleNumSort);obj.log.push(prop+": Length "+tmplen[0]+"/"+tmplen[1]+", Divided ["+obj[prop].lengths+"], lcm("+obj[prop].fracs+") = "+(obj[prop].fracs.length>0?tmpMax:tmplen[1]));trackProps=Object.keys(obj[prop]); ti=0;tl=trackProps.length;while(ti-1||obj.usedChannels.indexOf("08")> -1)obj.bpm=[];if(obj.usedChannels.indexOf("09")>-1)obj.stop=[];if(obj.usedChannels.indexOf("ST")>-1)obj.stp=[];if(obj.usedChannels.indexOf("SC")>-1)obj.scroll=[];if(obj.usedChannels.indexOf("SP")>-1)obj.speed=[];if(obj.usedChannels.indexOf("04")>-1)obj.bga=[];if(obj.usedChannels.indexOf("06")>-1)obj.poor=[];if(obj.usedChannels.indexOf("07")>-1)obj.layer=[];if(obj.usedChannels.indexOf("0A")>-1)obj.layer2=[];if(obj.usedChannels.indexOf("0B")>-1||obj.usedChannels.indexOf("A1")>-1)obj.argbBga=[];if(obj.usedChannels.indexOf("0C")> -1||obj.usedChannels.indexOf("A2")>-1)obj.argbLayer=[];if(obj.usedChannels.indexOf("0D")>-1||obj.usedChannels.indexOf("A3")>-1)obj.argbLayer2=[];if(obj.usedChannels.indexOf("0E")>-1||obj.usedChannels.indexOf("A4")>-1)obj.argbPoor=[];if(obj.usedChannels.indexOf("99")>-1)obj.songtext=[];if(obj.usedChannels.indexOf("A0")>-1)obj.exrank=[];if(obj.usedChannels.indexOf("A6")>-1)obj.changeoption={};if(is("Array",obj.usedAudioIndex)){obj.sound={};var WAVkeys;if(obj.usedChannels.some(hasInvisible))obj.soundInvisible= {};if(obj.usedAudioIndexBgm||obj.usedAudioIndexVisible){WAVkeys=obj.usedAudioIndexBgm&&obj.usedAudioIndexVisible?obj.usedAudioIndexBgm.concat(obj.usedAudioIndexVisible).filter(kickDuplicatedArrayElement):obj.usedAudioIndexBgm||obj.usedAudioIndexVisible;WAVkeys=WAVkeys.sort();i=0;l=WAVkeys.length;while(i-1&&latestKeys[ch]){latestKeys[ch].to=testnum;latestKeys[ch].nn=scri;latestKeys[ch].dd=scrl;latestKeys[ch].ll=false;obj.lnEndPoint[scrz].notes.push({"xxx":testnum,"n":scri,"d":scrl,"x":ch,"ll":false})}else if(ch.charAt(0)==="5"||ch.charAt(0)==="6")if(latestKeys[ch]&&latestKeys[ch].ll){latestKeys[ch].to=testnum;latestKeys[ch].nn=scri;latestKeys[ch].dd=scrl;latestKeys[ch].ll=false;if(latestKeys[ch].zz!== scrz)obj.lnEndPoint[scrz].notes.push({"xxx":testnum,"n":scri,"d":scrl,"x":ch,"ll":false})}else if(obj.LNOBJ&&obj.LNOBJ.indexOf(scrz)>-1){chLnToVis=String(zch-4)+ch.charAt(1);if(latestKeys[chLnToVis]&&isThisReallyLatest(latestKeys[chLnToVis],{xxx:testnum,n:scri,d:scrl})){latestKeys[chLnToVis].to=testnum;latestKeys[chLnToVis].nn=scri;latestKeys[chLnToVis].dd=scrl;latestKeys[chLnToVis].ll=false;obj.lnEndPoint[scrz].notes.push({"xxx":testnum,"n":scri,"d":scrl,"x":chLnToVis,"ll":false})}}else{obj.sound[scrz].notes.push({"xxx":testnum, "n":scri,"d":scrl,"x":ch,"zz":scrz,"ll":true});latestKeys[ch]=obj.sound[scrz].notes[obj.sound[scrz].notes.length-1]}else if(latestKeys[ch]&&latestKeys[ch].ll){latestKeys[ch].to=testnum;latestKeys[ch].nn=scri;latestKeys[ch].dd=scrl;latestKeys[ch].ll=false}else{obj.sound[scrz].notes.push({"xxx":testnum,"n":scri,"d":scrl,"x":ch,"zz":scrz,"ll":false});latestKeys[ch]=obj.sound[scrz].notes[obj.sound[scrz].notes.length-1]}}scri+=1}else if(zch==="3"||zch==="4")while(scri=BMSON_DEFAULT_MEASURE_RESOLUTION){obj.totalMaxMeasureResolutionForBmson=l*i;break}i+=1}}obj.totalPulseResolutionForBmson=(new BN(obj.totalMaxMeasureResolutionForBmson)).idiv(4).toString();if(obj.lnEndPoint){var lneks=Object.keys(obj.lnEndPoint);var lnek;var lnei= lneks.length;while(lnei){lnei-=1;lnek=lneks[lnei];if(!obj.lnEndPoint[lnek].notes.length||obj.lnEndPoint[lnek].name===BLANK_AUDIO)delete obj.lnEndPoint[lnek]}if(!Object.keys(obj.lnEndPoint).length)delete obj.lnEndPoint}if(obj.continuation&&obj.sound&&obj.usedAudioIndex){var c_defs=Object.keys(obj.continuation);var c_def;var c_i=0;var c_l=c_defs.length;var c_target;while(c_i-1)overlap.push(sorted[i].y);targetY.push(sorted[i].y);i+=1}i=0;while(i1)tn+=ln;return tn};var calcTotalValue= function(tn,mode_hint,bmsTotal){if(!tn)return 100;if(bmsTotal==="0")return 0;var iidx=7.605*tn/(.01*tn+6.5);iidx=new BN(iidx<260?260:iidx);var bt=bmsTotal||iidx.toString();if(!Chart.isNum(bt))return 100;if(bt.charAt[0]==="-")bt=bt.slice(1);bt=new BN(bt);var total=bt.times(100).div(iidx);return total.gt(Number.MAX_VALUE)?Number.MAX_VALUE:total.toNumber()};var removeUnderLong=function(v){return!v.ignore};var pickUpLayerImages=function(v){return typeof v==="string"};var removeDuplicatedArrayElement= function(v,i,a){return a.indexOf(v)===i};var reCalcCoord=function(coord,ratio,correct){return(new BN(coord)).shiftedBy(-ratio).div(correct).integerValue(BN.ROUND_HALF_EVEN).toNumber()};var sortBpmEventsOrderY=function(a,b){return(new BN(a.y)).minus(b.y).toNumber()};var getCurrentBpm=function(bmson,tmpY){if(!bmson.bpm_events)return bmson.info.init_bpm;var y=new BN(tmpY);var bpms=bmson.bpm_events;var i=0;var l=bpms.length;var bpm=bmson.info.init_bpm;while(i-1)a.splice(z,1);a.sort(sortNumberString);gcm=a.reduce(calcGcdFromMultipleValueArray,bmson.info.resolution);ws.echo("gcm: "+JSON.stringify(gcm));if(String(gcm)===String(bmson.info.resolution))return bmson;return JSON.parse(b,function(k,v){switch(k){case "y":case "l":case "duration":case "resolution":if(v){v=(new BN(v)).div(gcm);return Chart.isSafeInt(v)?v.toNumber():v.toString()}return 0;default:return v}})};var getPixelWidthHeight=function(img,fromFolder){if(!is("String", img)||img===""||!fso.folderExists(fromFolder)||!fso.folderExists(IMAGE_MAGICK))return false;var IMAGICK=fso.buildPath(IMAGE_MAGICK,"magick.exe");var IDENTIFY=fso.buildPath(IMAGE_MAGICK,"identify.exe");if(!fso.fileExists(IMAGICK)||!fso.fileExists(IDENTIFY))return false;var query=' identify -format "%w %h" ';var from;var EXTENSIONS=[".bmp",".png",".gif",".jpg",".jpeg",".webp",".rle",".tiff",".tif"];var mayBeMovie=/\.(?:mp4|mpeg|mpg|webm|wmv|avi|m1v|m2v|m4v|m4a|mkv|mov|ogm|ogv|flv|asf)$/i;var ei;var el= EXTENSIONS.length;var exec;var path=normalizePath(img);if(path&&path.type==="REL"&&path.dir!==".."&&path.dir.indexOf("..\\")===-1&&path.dir.indexOf("../")===-1){from=fso.buildPath(fromFolder,path.dir+"\\"+path.base);if(!fso.fileExists(from)){ei=0;while(ei1)info.genres=obj.GENRES.filter(kickDuplicatedArrayElement); info.title=obj.TITLE||"";info.subtitle="";if(obj.SUBTITLE)info.subtitle=obj.SUBTITLE.join("\n");info.artist=obj.ARTIST||"";info.subartists=[];if(obj.SUBARTIST)info.subartists=obj.SUBARTIST.filter(kickDuplicatedArrayElement);if(obj.MAKER)info.maker=obj.MAKER;info.chart_name="";if(obj.DIFFICULTY)if(/^(-?\d+(?:\.\d*)?(?:[Ee][+\u002D]?\d+)?)/.test(obj.DIFFICULTY))info.chart_name=chartNames[/^(-?\d+(?:\.\d*)?(?:[Ee][+\u002D]?\d+)?)/.exec(obj.DIFFICULTY)[1]]||"UNKNOWN";else info.chart_name="UNKNOWN";info.init_bpm= 130;if(obj.INITBPM&&Chart.isNum(obj.INITBPM)&&obj.INITBPM!=="0"){info.init_bpm=obj.INITBPM;if(Chart.isDouble(info.init_bpm))info.init_bpm=Number(info.init_bpm)}if(obj.BASEBPM&&Chart.isNum(obj.BASEBPM)&&obj.BASEBPM!=="0"){info.base_bpm=obj.BASEBPM;if(Chart.isDouble(info.base_bpm))info.base_bpm=Number(info.base_bpm)}info.judge_rank=100;if(obj.DEFEXRANK&&Chart.isNum(obj.DEFEXRANK)&&obj.DEFEXRANK!=="100.0"){info.judge_rank=obj.DEFEXRANK;if(Chart.isDouble(info.judge_rank))info.judge_rank=Number(info.judge_rank)}info.total= 100;info.level=0;if(obj.PLAYLEVEL){info.level_string=obj.PLAYLEVEL;if(Chart.isNum(obj.PLAYLEVEL)&&Chart.isSafeInt(obj.PLAYLEVEL)&&!Chart.isNegative(obj.PLAYLEVEL)&&Number(obj.PLAYLEVEL)imgSize.h?"back":"title")+"_image"]=obj.BACKBMP;else{info.back_image=obj.BACKBMP+"(DeDR)";info.title_image=obj.BACKBMP+"(OADX)"}}info.banner_image=obj.BANNER||"";info.eyecatch_image=obj.STAGEFILE||"";if(obj.MUSIC)info.music=obj.MUSIC;if(obj.OFFSET)info.offset_seconds=obj.OFFSET;info.preview_music="";if(obj.PREVIEW)info.preview_music=obj.PREVIEW;else if(obj.flags&&obj.flags.BLANK_PREVIEW)info.preview_music="";if(obj.PREVIEWPOINT)info.preview_point= obj.PREVIEWPOINT;if(obj.VOLWAV){info.volume=100;if(Chart.isNum(obj.VOLWAV)&&obj.VOLWAV!=="100"){info.volume=obj.VOLWAV;if(Chart.isDouble(info.volume))info.volume=Number(info.volume)}}if(obj.MIDIFILE)info.midi_file=obj.MIDIFILE;if(obj.CDDA)info.cdda_track=obj.CDDA;if(obj.CHARFILE)info.character_file=obj.CHARFILE;if(obj.PATH_WAV)info.path_audio=obj.PATH_WAV;info.mode_hint="beat-7k";if(/^\.pms$/i.test(obj.extension))if(obj.usedChannels.every(isPopn5k))info.mode_hint="popn-5k";else if(obj.usedChannels.every(isPopn9k))info.mode_hint= "popn-9k";else if(obj.usedChannels.every(isPopn9kBmeSp))info.mode_hint="popn-9k(BME-SP)";else info.mode_hint="popn-18k";else if(obj.usedChannels.some(isUseRightSide))if(obj.usedChannels.some(isUse24k))info.mode_hint=obj.PLAYER==="4"?"keyboard-24k-battle":"keyboard-24k-double";else if(obj.usedChannels.some(isUse14k))info.mode_hint=obj.PLAYER==="4"?"beat-7k-battle":"beat-14k";else info.mode_hint=obj.PLAYER==="4"?"beat-5k-battle":"beat-10k";else if(obj.usedChannels.some(isUse24k))info.mode_hint="keyboard-24k-single"; else if(obj.usedChannels.some(isUse7k))info.mode_hint="beat-7k";else if(obj.usedChannels.some(isUse5k))info.mode_hint="beat-5k";if(obj["OCT/FP"])info.mode_hint="oct/fp";if(obj.COMMENT)info.comments=obj.COMMENT.filter(kickDuplicatedArrayElement);if(obj.OPTION)info.options=obj.OPTION.filter(kickDuplicatedArrayElement);if(obj.LNMODE)info.ln_type=parseInt(obj.LNMODE,10);if(obj.TEXT&&obj.TEXT["00"])info.poor_text=obj.TEXT["00"]||""}info.resolution=obj.totalPulseResolutionForBmson;if(Chart.isSafeInt(info.resolution))info.resolution= Number(info.resolution);var testi=0;var testl;var testnum="000";var lines=obj.bmson.lines;var mesolution=new BN(obj.totalMaxMeasureResolutionForBmson);var minY=mesolution.div(obj.minRhythm);var maxY=new BN(0);var reCalc=false;var UNSIGNED_LONG=4294967295;var LONG=Math.floor(UNSIGNED_LONG/2);var BMSONE_RESO_LIMIT=24E3;var BMSONE=LIMITED_RESOLUTION===2;var LIMIT=BMSONE?(new BN(BMSONE_RESO_LIMIT)).times(obj.totalPulseLength).toNumber():LONG;var xxx;do{lines.push({"y":Chart.isSafeInt(maxY)?maxY.toNumber(): maxY.toString()});maxY=obj[testnum]["02"]==="1"?maxY.plus(mesolution):maxY.plus(mesolution.div(new BN(obj[testnum].denominator)).times(new BN(obj[testnum].numerator)));testi+=1;if(testi===1E3)break;testnum=("00"+testi).slice(-3)}while(obj[testnum]);testi=0;while(testi<1){maxY.plus(mesolution);lines.push({"y":Chart.isSafeInt(maxY)?maxY.toNumber():maxY.toString()});testi+=1}if(maxY.gt(String(LIMIT)))reCalc=true;var ref;var tmpY;var bpms;var stops;var sounds;var invis;var mines;var wavzz;var note;var stopv; var scrolls;var speeds;var rate;var songtexts;var judges;var jrank;var opts;var opt;var optionKeys;if(obj.bpm&&obj.bpm.length){obj.bmson.bpm_events=[];bpms=obj.bmson.bpm_events;testi=0;testl=obj.bpm.length;while(testireCalcRatio){var tmpShifted=maxY.shiftedBy(-reCalcRatio);var correct=1;if(tmpShifted.gt(String(LIMIT))){do{if(minY.shiftedBy(-reCalcRatio).div(correct).lte(1))break;correct+=.015625}while(tmpShifted.div(correct).gt(String(LIMIT))) }infotxt="("+-reCalcRatio+" shift, "+correct+" divided): ";var reci=0;var recl=lines.length;while(reci-1)bmsKeyValues.PREVIEW=getImplicitPreviewFileName(tmpDir);var parsedBms=parseBms(bmsKeyValues);var log="Max Resolution: "+parsedBms.totalMaxResolution+"\n"+"Resolutions: "+parsedBms.resolutions+"\n"+"Total Measure Length: "+parsedBms.totalMeasureLength+"\n"+"total Pulse: "+parsedBms.totalPulseLength+ "\n"+"Max Measure Resolution for BMSON: "+parsedBms.totalMaxMeasureResolutionForBmson+"\n"+"Pulse Resolution for BMSON: "+parsedBms.totalPulseResolutionForBmson+"\n";parsedBms.echolog=log;var convertedBmson=convertBmsToBmson(parsedBms,pathFrom);parsedBms.outputText=JSON.stringify(convertedBmson,escapeNonAsciiCharacters).replace(/\u005C\u005Cu/g,"\\u").replace('"":"\\uD83C\\uDFB9"','"":"\ud83c\udfb9"').replace(/(\u007D,)/g,"$&\r\n").replace(/\u007B\u0022name\u0022/g,'{\r\n"name"').replace(/:\u005B\u007B/g, ":[\r\n{").replace("}]}]}","}]}\r\n]\r\n}").replace('{"":"\ud83c\udfb9"','{\r\n"":"\ud83c\udfb9"').replace(',"version"',',\r\n"version"').replace(',"info":{"',',\r\n"info":{\r\n"').replace(',"genres"',',\r\n"genres"').replace(',"title"',',\r\n"title"').replace(',"subtitle"',',\r\n"subtitle"').replace(',"artist"',',\r\n"artist"').replace(',"subartists"',',\r\n"subartists"').replace(',"maker"',',\r\n"maker"').replace(',"chart_name"',',\r\n"chart_name"').replace(',"init_bpm"',',\r\n"init_bpm"').replace(',"judge_rank"', ',\r\n"judge_rank"').replace(',"total"',',\r\n"total"').replace(',"level"',',\r\n"level"').replace(',"level_string"',',\r\n"level_string"').replace(',"title_image"',',\r\n"title_image"').replace(',"back_image"',',\r\n"back_image"').replace(',"eyecatch_image"',',\r\n"eyecatch_image"').replace(',"banner_image"',',\r\n"banner_image"').replace(',"preview_music"',',\r\n"preview_music"').replace(',"volume"',',\r\n"volume"').replace(',"midi_file"',',\r\n"midi_file"').replace(',"mode_hint"',',\r\n"mode_hint"').replace(',"options"', ',\r\n"options"').replace(',"comments"',',\r\n"comments"').replace(',"ln_type"',',\r\n"ln_type"').replace(',"poor_text"',',\r\n"poor_text"').replace(',"resolution"',',\r\n"resolution"').replace('"bga":{"','"bga":{\r\n"').replace(/\u007D\u005D,\u0022/g,'}\r\n],\r\n"').replace(/\u0022resolution\u0022:[^\u007D]+/,"$&\r\n").replace('"],"','"],\r\n"').replace(/\u0022,\u0022triggers\u0022:/g,'",\r\n"triggers":').replace(/\u0022,\u0022notes\u0022:/g,'",\r\n"notes":');if(OMIT_FALSY)parsedBms.outputText=parsedBms.outputText.replace(/\u0022c\u0022:false,/g, "").replace(/\u0022l\u0022:0,/g,"").replace(/\u0022x\u0022:0,/g,"");if(LINIFY)parsedBms.outputText=parsedBms.outputText.replace(/\r\n/g,"");if(USE_UNIX_NEWLINE)parsedBms.outputText=parsedBms.outputText.replace(/\r/g,"");return parsedBms};var isIbmscOut=function(v){return(new BN(v)).gt("9999")};var isSupportedImage=function(img,IDENTIFY){var result=[];var scriptExec=shell.exec('"'+IDENTIFY+'" "'+img+'" -format %m histogram:info:');while(!scriptExec.StdOut.AtEndOfStream)result.push(scriptExec.StdOut.readLine()); return result.join("").length<9};var cropBga=function(coords){if(!coords)return'" ';var c=JSON.parse("["+coords.replace(/ /g,",")+"]");return['" -crop ',String(Math.abs(c[0]startTimeMsec)result.success.push(path.dir+(path.dir===""?"":"\\")+path.base+ " => "+to.replace(toFolder+"\\","")+" [Already Converted]");else{t=bmp.exbmp?getApproximateColors(bmp.exbmp,IMAGICK,from):tb;if(t!=="CANNOT")if(is("String",t)){exec=shell.exec('"'+IMAGICK+canvas+from+cropBga(bmp.xy||"")+t+suffix+to+'"');while(exec.status===0)ws.sleep(40);tmpMsg=path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","");if(exec.status===1)result.success.push(tmpMsg);else{tmpMsg+=" [Err]";result.failed.push(tmpMsg)}ws.echo(tmpMsg)}else{exec=shell.exec('"'+IMAGICK+ canvas+from+cropBga(bmp.xy||"")+t.pop()+suffix+to+'"');while(exec.status===0)ws.sleep(40);tmpMsg=path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","");if(exec.status===1)while(t.length){exec=shell.exec('"'+IMAGICK+'" -colorspace sRGB "'+to+'" '+t.pop()+suffix+to+'"');while(exec.status===0)ws.sleep(40);if(exec.status!==1){tmpMsg+=" [Err]";break}}else tmpMsg+=" [Err]";ws.echo(tmpMsg);result[/ [Err]$/.test(tmpMsg)?"failed":"success"].push(tmpMsg)}else result.failed.push(path.dir+ (path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","")+" [Err]")}}else result.failed.push(path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","")+" [Err] Not exist, or Unsupported, or Video.")}else result.failed.push((bmp.src||bmp.src2)+" [Err] Invalid Path. (See BMSON Spec)");bi+=1}if(!result.success.length)delete result.success;if(!result.failed.length)delete result.failed;ws.echo("\r\n");return result};var createPng=function(type,dir){var png=fso.buildPath(dir, "___undefined_"+type+".png");if(fso.fileExists(png)&&(new Date(fso.getFile(png).dateLastModified)).getTime()>startTimeMsec)return"___undefined_"+type+".png (Already Exists)";var base64str=type==="black"?"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQAAAAB0CZXLAAAAH0lEQVRo3u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABfxmcpwAAAABJRU5ErkJggg==":"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAABFUlEQVR42u3BMQEAAADCoPVP7WsIo"+Array(340).join("A")+"eAMBPAAB2ClDBAAAAABJRU5ErkJggg==";var xml=ws.createObject("Microsoft.XMLDOM"); var node=xml.createElement("base64-node");node.dataType="bin.base64";node.text=base64str;var binary_data=node.nodeTypedValue;var sw=ws.createObject("ADODB.Stream");sw.Type=1;sw.open();sw.write(binary_data);sw.saveToFile(png,2);sw.close();return"___undefined_"+type+".png"};var getBmpBaseItems=function(v){return v.src2&&v.exbmp};var getBmpLayerItems=function(v){return v.src&&!v.xy};var getBgaBaseItems=function(v){return v.src&&v.xy&&v.name.indexOf("___cropped_")>-1};var getBgaLayerItems=function(v){return v.src&& v.xy&&v.name.indexOf("___alpha_layer_cropped_")>-1};var getBmpUndefineds=function(v){return v.name==="___undefined_alpha.png"||v.name==="___undefined_black.png"};var outputReports=function(fromIndex){var i=fromIndex||0;var l=chartsFrom.length;var imgs;var bmp_empty;var bmp_base;var bmp_layer;var bga_base;var bga_layer;var tmpTxt;var tmpCmd;var tmpChart;var tmpMsg;var padd=" ";var prec=-String(l).length;var idx;var bmsReso;var bmsonReso;var imageConvertReport0;var imageConvertReport1;var imageConvertReport2; var imageConvertReport3;var outBmson;var tmpOut={"":"\ud83c\udfb9","C:\\sample\\bms\\path.bms":{title:"#TITLE of Base BMS",charset:"Text Encoding of Base BMS (See: https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers )",bmsmd5:"Hash (MD5) of Base BMS (Windows 7 or later)",sha256:"Hash (SHA256) of Base BMS (Windows 7 or later)",sha1:"Hash (SHA1) of Base BMS (Windows Vista only)",resolution_bms:"Resolution of Base BMS (Default: 192) (This may not be the correct value)",resolution_bmson:"Resolution of Converted BMSON (Default: 240)", these_layers_are_converted_to_alpha_png:["If any, these image files are converted to Alpha-PNG ( transparent: #000000 )"],created_cropped_images:["___cropped_xxxx.png (If any, these are cropped #BGA image files)"],created_cropped_layers:["___alpha_layer_cropped_xxxx.png (If any, cropped #BGA Alpha-PNG)"],changed_transparentized_images:["___xxxx_exAARRGGBB.png (If any, #EXBMP Alpha-PNG, transparent: non-#000000 )"],created_explicit_image:["___undefined_black.png (If any, Explicit Blackout instead of undefined #BMP)", "___undefined_alpha.png (If any, Explicit Blank Layer instead of undefined #BMP)"],output_to:"Path of Converted BMSON"}};ws.echo("\r\n");while(i-1||tmpCmd.indexOf("#random")>-1?"#RANDOM is found":"not a chart file";tmpOut[tmpChart]={title:tmpCmd.TITLE||"****** Failed to Convert ("+tmpMsg+") ******", charset:tmpCmd.charset||tmpTxt[1],bmsmd5:tmpCmd.bmsmd5||getHash(tmpChart).md5,sha256:tmpCmd.sha256||getHash(tmpChart).sha256};if(isVistaOrLater.indexOf("Vista")>-1){tmpOut[tmpChart].sha1=tmpCmd.sha1||getHash(tmpChart).sha1;delete tmpOut[tmpChart].bmsmd5;delete tmpOut[tmpChart].sha256}if(tmpCmd.bmson&&tmpCmd.bmson.info){bmsReso=new BN(tmpCmd.totalMaxResolution);bmsonReso=new BN(tmpCmd.bmson.info.resolution);if(bmsReso.gt("192"))bmsReso=bmsReso.toString()+" (BMSE cannot edit correctly)";else bmsReso= bmsReso.toString();if(bmsonReso.gt("24000"))bmsonReso=bmsonReso.toString()+(bmsonReso.gt("2147483647")?" (beatoraja/BmsONE cannot open)":" (BmsONE cannot edit)");else bmsonReso=bmsonReso.toString();tmpOut[tmpChart].resolution_bms=bmsReso;tmpOut[tmpChart].resolution_bmson=bmsonReso}if(tmpCmd.to&&tmpCmd.outputText){if(tmpCmd.bmson&&tmpCmd.bmson.bga&&tmpCmd.bmson.bga.bga_header&&tmpCmd.pictureIndices.bga_header&&GENERATE_PNGS){imgs=tmpCmd.pictureIndices.bga_header;bmp_empty=JSON.stringify(imgs.filter(getBmpUndefineds)); bmp_base=imgs.filter(getBmpBaseItems);bmp_layer=imgs.filter(getBmpLayerItems);bga_base=imgs.filter(getBgaBaseItems);bga_layer=imgs.filter(getBgaLayerItems);if(bmp_layer.length){imageConvertReport1=convertToAlphaPng(bmp_layer,fso.getParentFolderName(tmpChart),tmpCmd.to,"BMP_LAYER");tmpOut[tmpChart].these_layers_are_converted_to_alpha_png=imageConvertReport1}if(bga_base.length){imageConvertReport2=convertToAlphaPng(bga_base,fso.getParentFolderName(tmpChart),tmpCmd.to,"BGA_BASE");tmpOut[tmpChart].created_cropped_images= imageConvertReport2}if(bga_layer.length){imageConvertReport3=convertToAlphaPng(bga_layer,fso.getParentFolderName(tmpChart),tmpCmd.to,"BGA_LAYER");tmpOut[tmpChart].created_cropped_layers=imageConvertReport3}if(bmp_base.length){imageConvertReport0=convertToAlphaPng(bmp_base,fso.getParentFolderName(tmpChart),tmpCmd.to);tmpOut[tmpChart].changed_transparentized_images=imageConvertReport0}if(bmp_empty!=="[]"){tmpOut[tmpChart].created_explicit_image=[];if(bmp_empty.indexOf("alpha")!==-1)tmpOut[tmpChart].created_explicit_image.push(createPng("alpha", tmpCmd.to));if(bmp_empty.indexOf("black")!==-1)tmpOut[tmpChart].created_explicit_image.push(createPng("black",tmpCmd.to))}}outBmson=fso.buildPath(tmpCmd.to,fso.getBaseName(tmpChart)+"_"+fso.getExtensionName(tmpChart)+".bmson");saveTextFileAsUTF8(outBmson,tmpCmd.outputText);tmpOut[tmpChart].output_to=outBmson;ws.echo(idx+tmpChart+" :: "+JSON.stringify(tmpOut[tmpChart],null,2)+"\r\n")}else ws.echo(idx+tmpChart+" :: [Failure] "+JSON.stringify(tmpOut[tmpChart],null,2)+"\r\n");i+=1}var endTimeMsec=(new Date).getTime(); var endTimeStr=getDate();var elapsedSec=(endTimeMsec-startTimeMsec)/1E3;var timeReport="Start: "+startTimeStr+"\r\nDone: /"+endTimeStr+"\r\nElapsed: "+elapsedSec+" seconds\r\n"+"\r\n\r\nJScript: done.\r\n";saveTextFileAsUTF8(fso.buildPath(OUTPUT_FOLDER,"zzzzLog-"+endTimeStr.replace(/-/g,"").replace("T","-").replace(/:/g,"")+".txt"),JSON.stringify(tmpOut,null,4).replace(/\n/g,"\r\n")+"\r\n\r\n"+timeReport);ws.echo(timeReport)} var isBMSON=function(item){try{item=JSON.parse(item)}catch(e){return false}if(!is("Object",item))return false;return true};var bmsonCastToInterger=function(k,nega){var v=typeof k==="undefined"||k===null||k===""||k===false?"0":is("Object",k)||is("Array",k)||k===true||!Chart.isNum(k)?"1":!nega&&k.indexOf("-")===0?k.slice(1):k;return(new BN(v)).integerValue(BN.ROUND_HALF_CEIL).toString()};var bmsonCastToDecimal=function(k,nega){var v=typeof k==="undefined"||k===null||k===""||k===false? "0":is("Object",k)||is("Array",k)||k===true||!Chart.isNum(k)?"1":!nega&&k.indexOf("-")===0?k.slice(1):k;return(new BN(v)).toString()};var bmsonCastToString=function(k){return typeof k==="undefined"||k===null||k===""?"":is("Object",k)||is("Array",k)?"1":k===true?"true":k===false?"false":k};var bmsonCastToBoolean=function(k){return typeof k==="undefined"||k===false||k===null||k===""||k==="0"?false:true};var normalizeBmsonBga=function(a,type){var i=0;var o;var t;var ta;var rxSlash=/\u002F/g;while(i< a.length){if(!is("Object",a[i])){a.splice(i,1);i-=1}else{o=a[i];if(type==="filter"){o.a=bmsonCastToInterger(o.a,true);t=parseInt(o.a,10);o.a=t<0?"0":t>255?"255":o.a;if(typeof o.r==="undefined"||typeof o.g==="undefined"||typeof o.b==="undefined"){ta=Object.keys(o);if(ta.indexOf("r")===-1||ta.indexOf("g")===-1||ta.indexOf("b")===-1){if(o.r)delete o.r;if(o.g)delete o.g;if(o.b)delete o.b}else{o.r=!o.r?"0":is("Object",o.r)||is("Array",o.r)||!Chart.isNum(o.r)?"1":o.r;t=parseInt(o.r,10);o.r=t<0?"0":t>255? "255":o.r;o.g=!o.g?"0":is("Object",o.g)||is("Array",o.g)||!Chart.isNum(o.g)?"1":o.g;t=parseInt(o.g,10);o.g=t<0?"0":t>255?"255":o.g;o.b=!o.b?"0":is("Object",o.b)||is("Array",o.b)||!Chart.isNum(o.b)?"1":o.b;t=parseInt(o.b,10);o.b=t<0?"0":t>255?"255":o.b}}}else{if(o.ID&&Chart.isNum(o.ID)){o.id=o.id?o.id:o.ID;delete o.ID}o.id=bmsonCastToInterger(o.id)}if(type==="header"){o.name=bmsonCastToString(o.name);if(o.name){t=normalizePath(o.name);if(t)switch(t.type){case "REL":o.name=t.dir?(t.dir+"\\"+t.base).replace(rxSlash, "\\"):t.base;if(o.name.indexOf("..\\")===0)o.name="";break;case "WIN-DREL":o.name=t.drive+t.dir+"\\"+t.base;if(t.dir.indexOf("..\\")===0)o.name="";break;default:o.name="";break}}}else o.y=bmsonCastToInterger(o.y)}i+=1}return a};var bmsonFilterHiddenDamageNotes=function(a,bomb){var r=[];var n;var d;var v=[];if(bomb)while(a.length){n=a.pop();n.x=bmsonCastToInterger(n.x);if(n.x!=="0"){n.y=bmsonCastToInterger(n.y);if(v.indexOf(n.damage)>-1)r.push(n);else{n.damage=bmsonCastToDecimal(n.damage);n.damage= (new BN(n.damage)).integerValue(BN.ROUND_HALF_CEIL);if(n.damage.gt(1295)){n.damage=String(1296);v.push(n.damage);r.push(n)}else if(!n.damage.isZero()){n.damage=n.damage.toString();v.push(n.damage);r.push(n)}}}}else while(a.length){n=a.pop();n.x=bmsonCastToInterger(n.x);if(n.x!=="0"){n.y=bmsonCastToInterger(n.y);if(typeof n.h==="undefined")n.h=true;n.h=bmsonCastToBoolean(n.h);r.push(n)}}return r.reverse()};var bmsonFilterSoundChannelNotes=function(a){var r=[];var n;while(a.length){n=a.pop();n.c=bmsonCastToBoolean(n.c); n.l=bmsonCastToInterger(n.l);n.x=bmsonCastToInterger(n.x);n.y=bmsonCastToInterger(n.y);n.t=bmsonCastToInterger(n.t);r.push(n)}return r.reverse()};var isSafeY=function(xl,xx,y,l){var xll=xl.length;var xxl=xx.length;var i;var lnStart;var lnClose;var ty;if(is("Object",l)){i=0;while(i1)ll+=1}}}}return tn+(LN?ll:ln)};var getBmsonMaxPropValue=function(targetArr,targetKey,cur,abs){var min=new BN(targetArr[0][targetKey]);var max=new BN(targetArr[targetArr.length-1][targetKey]);if(abs){if(min.isNegative())min=min.negated();if(max.isNegative())max=max.negated();max=max.gt(min)?max:min}return cur.gt(max)?cur:max};var getBmsonUsedValues=function(targetArr,targetKey,cur){var i=targetArr.length;var v;var c=cur.concat();while(i){i-=1;v=targetArr[i][targetKey]; if(c.indexOf(v)===-1)c.push(v)}return c};var getBmsonAllLnEndPointY=function(targetArr,cur){var i=targetArr.length;var n;var c=cur.concat();while(i){i-=1;n=targetArr[i];if(n.l!=="0")c.push((new BN(n.l)).plus(n.y).toString())}return c};var getCastBmsonX=function(mode){var genrx=/^generic-(\d+)keys$/;var threshold=0;if(genrx.test(mode)){threshold=parseInt(genrx.exec[1],10);if(threshold>16)threshold=16}else switch(mode){case "beat-5k":case "beat-7k":threshold=8;break;case "beat-10k":case "beat-14k":case "beat-5k-battle":case "beat-7k-battle":case "oct/fp":threshold= 16;break;case "popn-5k":case "circularrhythm-single":threshold=5;break;case "popn-9k":case "circularrhythm-double":threshold=9;break;case "popn-18k":threshold=18;break;case "keyboard-24k":threshold=26;break;case "keyboard-24k-double":threshold=52;break;default:threshold=0;break}switch(mode){case "beat-5k":return function(targetArr){var i=targetArr.length;var r=[];var n;while(i){i-=1;n=targetArr[i];if(parseInt(n.x,10)>threshold||n.x==="6"||n.x==="7"){n.x="0";n.l="0"}r.push(n)}return r.reverse()};case "beat-5k-battle":case "beat-10k":return function(targetArr){var i= targetArr.length;var r=[];var n;while(i){i-=1;n=targetArr[i];if(parseInt(n.x,10)>threshold||n.x==="6"||n.x==="7"||n.x==="14"||n.x==="15"){n.x="0";n.l="0"}r.push(n)}return r.reverse()};default:return threshold?function(targetArr){var i=targetArr.length;var r=[];var n;while(i){i-=1;n=targetArr[i];if(parseInt(n.x,10)>threshold){n.x="0";n.l="0"}r.push(n)}return r.reverse()}:function(targetArr){var i=targetArr.length;var r=[];var n;while(i){i-=1;n=targetArr[i];n.x="0";n.l="0";r.push(n)}return r.reverse()}}}; var normalizeBmson=function(o){var oo;var ooo;var i;var isLnWithoutEndPoint;var tn=0;var u="undefined";var t1;var t2;var maxY=new BN("0");var maxL=[];var maxDu=[];var castBmsonX;var defaultMeasure;if(!o.info||!is("Object",o.info))o.info={};if(!o.info.mode_hint||!is("String",o.info.mode_hint))o.info.mode_hint="beat-7k";else o.info.mode_hint=o.info.mode_hint.toLowerCase();castBmsonX=getCastBmsonX(o.info.mode_hint);if(typeof o.soundChannel!==u){if(is("Array",o.soundChannel))o.sound_channels=o.sound_channels? o.sound_channels:o.soundChannel;delete o.soundChannel}if(typeof o.sound_channels!==u)if(!is("Array",o.sound_channels)||!o.sound_channels.length)delete o.sound_channels;else{o.sound_channels=normalizeBmsonSoundChannelsForConvertBms(o.sound_channels);i=o.sound_channels.length;while(i){i-=1;o.sound_channels[i].notes=castBmsonX(o.sound_channels[i].notes);maxY=getBmsonMaxPropValue(o.sound_channels[i].notes,"y",maxY);maxL=getBmsonAllLnEndPointY(o.sound_channels[i].notes,maxL)}maxL=maxL.filter(kickDuplicatedArrayElement).sort(sortNumberString); maxL=maxL.length?maxL[maxL.length-1]:"0";maxY=maxY.gt(maxL)?maxY:new BN(maxL)}if(typeof o[ALIAS_CH_3X]!==u)if(!is("Array",o[ALIAS_CH_3X])||!o[ALIAS_CH_3X].length)delete o[ALIAS_CH_3X];else{o[ALIAS_CH_3X]=normalizeBmsonHiddenDamageChannels(o[ALIAS_CH_3X]);i=o[ALIAS_CH_3X].length;while(i){i-=1;o[ALIAS_CH_3X][i].notes=castBmsonX(o[ALIAS_CH_3X][i].notes);maxY=getBmsonMaxPropValue(o[ALIAS_CH_3X][i].notes,"y",maxY)}}if(typeof o[ALIAS_CH_DX]!==u)if(!is("Array",o[ALIAS_CH_DX])||!o[ALIAS_CH_DX].length)delete o[ALIAS_CH_DX]; else{o[ALIAS_CH_DX]=normalizeBmsonHiddenDamageChannels(o[ALIAS_CH_DX],true);i=o[ALIAS_CH_DX].length;while(i){i-=1;o[ALIAS_CH_DX][i].notes=castBmsonX(o[ALIAS_CH_DX][i].notes);maxY=getBmsonMaxPropValue(o[ALIAS_CH_DX][i].notes,"y",maxY)}i=o[ALIAS_CH_DX].length-1;while(i){o[ALIAS_CH_DX][0].notes=o[ALIAS_CH_DX][0].notes.concat(o[ALIAS_CH_DX][i].notes);i-=1}}oo=o.info;if(!oo.title||!is("String",oo.title))oo.title="from BMSON to BMS";if(!oo.subtitle||!is("String",oo.subtitle))oo.subtitle="";if(!oo.artist|| !is("String",oo.artist))oo.artist="";if(!oo.subartists||!is("Array",oo.subartists))oo.subartists=[];i=oo.subartists.length;while(i){i-=1;oo.subartists[i]=bmsonCastToString(oo.subartists[i])}if(!oo.genre||!is("String",oo.genre))oo.genre="";if(!oo.chart_name||!is("String",oo.chart_name))oo.chart_name="";if(typeof oo.initBPM!==u){if(is("String",oo.initBPM)&&Chart.isNum(oo.initBPM))oo.init_bpm=oo.init_bpm?oo.init_bpm:oo.initBPM;delete oo.initBPM}if(!oo.init_bpm||!is("String",oo.init_bpm)||!Chart.isNum(oo.init_bpm))oo.init_bpm= "130";if(typeof oo.base_bpm!==u)oo.base_bpm=bmsonCastToDecimal(oo.base_bpm);if(!oo.level||!is("String",oo.level)||!Chart.isNum(oo.level)||!Chart.isInt(oo.level))oo.level="3";if(oo.level.indexOf("-")===0)oo.level=oo.level.slice(1);if(typeof oo.judgeRank!==u){if(is("String",oo.judgeRank)&&Chart.isNum(oo.judgeRank))oo.judge_rank=oo.judge_rank?oo.judge_rank:oo.judgeRank;delete oo.judgeRank;oo.judge_rank=getBmsRank(oo.judge_rank)}if(!oo.judge_rank||!is("String",oo.judge_rank)||!Chart.isNum(oo.judge_rank))oo.judge_rank= "100";if(typeof oo.ln_type!==u){oo.ln_type=bmsonCastToInterger(oo.ln_type);isLnWithoutEndPoint=Number(oo.ln_type)<2}if(!oo.total||!is("String",oo.total)||!Chart.isNum(oo.total))oo.total="100";if(oo.total.indexOf("-")===0)oo.total=oo.total.slice(1);if(o.sound_channels){tn=countBmsonTotalNotes(o.sound_channels,isLnWithoutEndPoint);oo._total_notes=tn;oo._has_long=maxL!=="0"}if(o[ALIAS_CH_DX]&&o[ALIAS_CH_DX][0].name)oo._sound_landmine=o[ALIAS_CH_DX][0].name;if(parseInt(oo.total,10)>200)oo.total=String(calcTotalValue(tn, oo.mode_hint,oo.total));if(!oo.resolution||!is("String",oo.resolution)||!Chart.isNum(oo.resolution)||oo.resolution==="0")oo.resolution="240";if(oo.resolution.indexOf("-")===0)oo.resolution=oo.resolution.slice(1);maxY=maxY.gt(oo.resolution)?maxY:new BN(oo.resolution);defaultMeasure=(new BN(oo.resolution)).times(4);if(!oo.back_image||!is("String",oo.back_image))oo.back_image="";if(!oo.eyecatch_image||!is("String",oo.eyecatch_image))oo.eyecatch_image="";if(!oo.banner_image||!is("String",oo.banner_image))oo.banner_image= "";if(!oo.title_image||!is("String",oo.title_image))oo.title_image="";if(!oo.preview_music||!is("String",oo.preview_music))oo.preview_music="";if(typeof oo.music!==u)oo.music=bmsonCastToString(oo.music);if(typeof oo.offset_seconds!==u)oo.offset_seconds=bmsonCastToDecimal(oo.offset_seconds);if(typeof oo.preview_point!==u)oo.preview_point=bmsonCastToDecimal(oo.preview_point);if(typeof oo.cdda_track!==u)oo.cdda_track=bmsonCastToInteger(oo.cdda_track);if(typeof oo.volume!==u)oo.volume=bmsonCastToDecimal(oo.volume); if(typeof oo.level_string!==u)oo.level_string=bmsonCastToString(oo.level_string);if(typeof oo.maker!==u)oo.maker=bmsonCastToString(oo.maker);if(typeof oo.path_audio!==u)oo.path_audio=bmsonCastToString(oo.path_audio);if(typeof oo.genres!==u)if(!is("Array",oo.genres))delete oo.genres;else{i=oo.genres.length;while(i){i-=1;oo.genres[i]=bmsonCastToString(oo.genres[i])}oo.genres=oo.genres.filter(kickDuplicatedArrayElement)}if(typeof oo.comments!==u)if(!is("Array",oo.comments))delete oo.comments;else{i= oo.comments.length;while(i){i-=1;oo.comments[i]=bmsonCastToString(oo.comments[i])}}if(typeof oo.options!==u)if(!is("Array",oo.options))delete oo.options;else{i=oo.options.length;while(i){i-=1;oo.options[i]=bmsonCastToString(oo.options[i])}oo.options=oo.options.filter(kickDuplicatedArrayElement)}if(typeof oo.poor_text!==u)oo.poor_text=bmsonCastToString(oo.poor_text);if(typeof oo.midi_file!==u)oo.midi_file=bmsonCastToString(oo.midi_file);if(typeof oo.character_file!==u)oo.character_file=bmsonCastToString(oo.character_file); if(typeof o.bga!==u)if(!is("Object",o.bga))delete o.bga;else{oo=o.bga;if(typeof oo.bgaHeader!==u){if(is("Array",oo.bgaHeader))oo.bga_header=oo.bga_header?oo.bga_header:normalizeBmsonBga(oo.bgaHeader,"header");delete oo.bgaHeader}if(typeof oo.bga_header!==u)if(!is("Array",oo.bga_header)||!oo.bga_header.length)delete oo.bga_header;else oo.bga_header=normalizeBmsonBga(oo.bga_header,"header");i=0;while(i1295)tmpDamageValue=1295;n={"y":Y[1],"v":("0"+tmpDamageValue.toString(36).toUpperCase()).slice(-2)};if(oooo.c)n.c= true;X=(X.charAt(0)==="1"?"D":"E")+X.slice(-1);if(!r[Y[0]][X])r[Y[0]][X]=[];r[Y[0]][X].push(n);ii+=1}}}if(r.wav){r.dontUseTheseC_yy=[];r.bms_on_prefix='|><"?*:/\\';var isBmsOnBaseName=/^[Cc]-[0-9A-Za-z]{2}(?:\.[.0-9A-Z_a-z]*)?$/;oo=Object.keys(r.wav);i=oo.length;while(i){i-=1;if(isBmsOnBaseName.test(r.wav[oo[i]]))r.dontUseTheseC_yy.push(r.wav[oo[i]].slice(0,4).toUpperCase())}if(r.cTrues.length){t1=fso.getFolder(fso.getParentFolderName(from)).files;t2=new Enumerator(t1);while(!t2.atEnd()){ooo=t2.item(); if(isBmsOnBaseName.test(ooo.name))r.dontUseTheseC_yy.push(ooo.name.slice(0,4).toUpperCase());t2.moveNext()}ooo=0;t1=parseInt(oo[oo.length-1],10)+1;t2=r.cTrues.length;while(ooo1)r.push(p+a.join(", "));return r};var setBmsJudgeRankValue=function(v){var r="#RANK ";var d="#DEFEXRANK ";switch(v){case "52":return[r+"-1",d+v];case "60":return[r+"0",d+v];case "70":return[r+"1",d+v];case "84":return[r+"2",d+v];case "120":return[r+"4",d+v];case "100":default:return[r+"3",d+v]}};var setBmsTotalValue=function(tn,mode,bmsonTotal){var p="#TOTAL ";if(!tn||bmsonTotal==="0")return p+0;var iidx=7.605*tn/(.01*tn+6.5);iidx=new BN(iidx<260?260:iidx);var bt=new BN(bmsonTotal); var total=iidx.times(bt).div(100);return p+(total.gt(Number.MAX_VALUE)?Number.MAX_VALUE:total.toNumber())};var setBmsBackBmpValue=function(ddr,oadx,mode){var p="#BACKBMP ";var r1=ddr;var r2=oadx;var mayBeImageMod=/(\.(bmp|gif|jpg|jpeg|webp|png|tga|dds|dib|tiff|pxr|rle))(\(DeDR\)|\(OADX\))?$/i;if(r1&&mayBeImageMod.test(r1))r1=r1.replace(mayBeImageMod,"$1");if(r2&&mayBeImageMod.test(r2))r2=r2.replace(mayBeImageMod,"$1");return mode.indexOf("popn")===0&&r1?p+r1:r2?p+r2:r1?p+r1:[]};var setBmsDifficultyValue= function(v){var p="#DIFFICULTY ";var d=["UNKNOWN","BEGINNER","NORMAL","HYPER","ANOTHER","INSANE","UNKNOWN"];var rx=/(beginner|normal|hyper|another|insane)/i;if(rx.test(v)){var q=rx.exec(v)[1].toUpperCase();if(d.indexOf(q)!==-1)return p+d.indexOf(q)}return[]};var setBmsPreviewValue=function(v,tmpDir){var p="#PREVIEW ";if(v)return p+v;if(dirsHavePreview.indexOf(tmpDir)>-1)return p+getImplicitPreviewFileName(tmpDir);return[]};var isThereOneLongNote=function(a){var i=a.length;var o;var l;while(i){i-= 1;o=a[i].notes;l=o.length;while(l){l-=1;if(o[l].l!=="0")return true}}return false};var setBmsCommentOptionValue=function(a,prefix){if(!a.length)return[];var p=prefix;var i=a.length;var r=[];while(i){i-=1;r.push(p+a[i])}return r.reverse()};var getBmsonMaxBarNumber=function(o){var keys=Object.keys(o);var i=keys.length;var bars=[];var rx=/^\d+$/;while(i){i-=1;if(rx.test(keys[i]))bars.push(Number(keys[i]))}bars.sort(simpleNumSort);return bars[bars.length-1]};var convertBmsDecimalIndex=function(num,rate){var n= Number(num.slice(1,-1));var v=n>1295?"("+n.toString(rate).toUpperCase()+")":("00"+n.toString(rate)).slice(-2).toUpperCase();return v};var getC_yyDefinedId=function(referedId,wavlist){var i=wavlist.length;var rx=/^#WAV\((\d+)\) \|><\u0022\?\*:\/\\(\d+)$/;var t;var a=String(referedId);while(i){i-=1;if(rx.test(wavlist[i])){t=rx.exec(wavlist[i]);if(t[2]===a)return Number(t[1])}}return referedId};var getConvertedBmsExtension=function(mode,hasLn){switch(mode){case "beat-14k":case "beat-7k":case "beat-7k-battle":case "generic-11keys":case "generic-12keys":case "generic-13keys":case "generic-14keys":case "generic-15keys":case "generic-16keys":case "generic-7keys":case "generic-8keys":case "keyboard-24k":case "keyboard-24k-double":case "oct/fp":return"bme"; case "circularrhythm-double":case "generic-9keys":case "popn-18k":case "popn-5k":case "popn-9k":return"pms";case "beat-10k":case "beat-5k":case "beat-5k-battle":case "circularrhythm-single":case "generic-1keys":case "generic-10keys":case "generic-2keys":case "generic-3keys":case "generic-4keys":case "generic-5keys":case "generic-6keys":default:return"bms"}};var getConvertedBmsCharset=function(txt){var asciirx=/[\t-~]/g;var na=txt.replace(asciirx,"");return na===""?"US-ASCII":"UTF-8"};var convertBmsonToBms= function(o,tmpDir){var z="";var s=" ";var r=[z,"*---------------------- HEADER FIELD",z];var ro={};var oo=o.info;r.push(setBmsPlayerValue(oo.mode_hint));r=r.concat(setBmsGenreValue(oo.genre,oo.genres||[]));r.push("#TITLE "+oo.title);ro.title=oo.title;if(oo.subtitle)r=r.concat(setBmsSubtitleValue(oo.subtitle));r.push("#ARTIST "+oo.artist);if(oo.subartists.length)r=r.concat(setBmsSubartistValue(oo.subartists));if(oo.maker)r.push("#MAKER "+oo.maker);r.push("#BPM "+oo.init_bpm);if(oo.base_bpm)r.push("#BASEBPM "+ oo.base_bpm);if(oo.music)r.push("#MUSIC "+oo.music);if(oo.offset_seconds)r.push("#OFFSET "+oo.offset_seconds);r=r.concat(setBmsPreviewValue(oo.preview_music,tmpDir));if(oo.preview_point)r.push("#PREVIEWPOINT "+oo.preview_point);r=r.concat(setBmsPlayLevelValue(oo.level,oo.level_string||""));r=r.concat(setBmsJudgeRankValue(oo.judge_rank));r=r.concat(setBmsDifficultyValue(oo.chart_name||""));r.push(setBmsTotalValue(oo._total_notes,oo.mode_hint,oo.total));if(oo.path_audio)r.push("#PATH_WAV "+oo.path_audio); if(oo.volume)r.push("#VOLWAV "+oo.volume);if(oo.midi_file)r.push("#MIDIFILE "+oo.midi_file);r.push("#STAGEFILE "+oo.eyecatch_image);if(oo.banner_image)r.push("#BANNER "+oo.banner_image);r.concat(setBmsBackBmpValue(oo.back_image||"",oo.title_image||"",oo.mode_hint));if(oo.character_file)r.push("#CHARFILE "+oo.character_file);if(o.videofile)r.push("#VIDEOFILE "+o.videofile);if(o.videofps)r.push("#VIDEOf/s "+o.videofps);if(o.videocolors)r.push("#VIDEOCOLORS "+o.videocolors);if(o.videodly)r.push("#VIDEODLY "+ o.videodly);if(oo.cdda_track)r.push("#CDDA "+oo.cdda_track);if(oo._has_long)r.push("#LNTYPE 1");if(oo.ln_type)r.push("#LNMODE "+oo.ln_type);if(oo.comments)r=r.concat(setBmsCommentOptionValue(oo.comments,"#COMMENT "));if(oo.options)r=r.concat(setBmsCommentOptionValue(oo.options,"#OPTION "));if(oo.mode_hint==="oct/fp")r.push("#OCT/FP");r.push(z);var headers=["wav","bmp","bpm","stop","scroll","speed","text","exrank","argb","changeoption"];var header;var h=0;var indices;var maxIdx={};var id;var item; var list;var i,ii,iii,iiii;var l,ll,lll,llll;var t1;var t2;var prefix;var bmsHeaders={};while(h<\u0022\?\*:\/\\(\d+)$/;var isWAVnn=/^#WAV\((\d+)\)/;var isWAVch=/^#\(\d+\)(?:01|[1-6]\d):/;var idxrx=/(\(\d+\))/g;var w="#WAV(";var dontUse=[];xxx=bmsData?Object.keys(bmsData):[];length=xxx.length;if(o.dontUseTheseC_yy.length){i=o.dontUseTheseC_yy.length; t1=/[G-Z]/i;while(i){i-=1;t2=o.dontUseTheseC_yy[i].split("-")[1];if(t1.test(t2))dontUse.push(patseInt(t2,36));else dontUse.push(parseInt(t2,16),parseInt(t2,36))}dontUse=dontUse.filter(kickDuplicatedArrayElement).sort()}i=0;l=bmsHeaders.wav.length;while(i=t2){bmsHeaders.wav[ii]=bmsHeaders.wav[ii].replace(w+ ll,w+(ll+1));if(isBmsOn.test(bmsHeaders.wav[ii])){lll=Number(isBmsOn.exec(bmsHeaders.wav[ii])[2]);bmsHeaders.wav[ii]=bmsHeaders.wav[ii].replace(":/\\"+lll,":/\\"+(lll+1))}}ii+=1}if(length){ii=length;while(ii){ii-=1;iii=bmsData[xxx[ii]].length;while(iii){iii-=1;if(isWAVch.test(bmsData[xxx[ii]][iii])){f=bmsData[xxx[ii]][iii].split(":");elms=f[1].match(idxrx);d=elms.length;n=0;while(n=t2)f[1]=f[1].replace("("+elm+")","("+(elm+1)+")");n+=1}bmsData[xxx[ii]][iii]= f[0]+":"+f[1]}}}}i-=1}}i+=1}maxIdx.wav=Number(isWAVnn.exec(bmsHeaders.wav[bmsHeaders.wav.length-1])[1])}if(bmsHeaders){keys=Object.keys(bmsHeaders);i=0;l=keys.length;var defnumrx=/^#[A-Z]+(\(\d+\))/;var FF=[];while(i="1"&&ch.charAt(0)<="6")rate=FF.indexOf("wav")!==-1?16:36;else switch(ch){case "04":case "06":case "07":case "0A":rate=FF.indexOf("bmp")!==-1?16:36;break;case "08":rate=FF.indexOf("bpm")!==-1?16:36;break;case "09":rate=FF.indexOf("stop")!==-1?16:36;break;case "99":rate=FF.indexOf("text")!==-1?16:36;break;case "A0":rate=FF.indexOf("exrank")!==-1?16:36;break;case "A1":case "A2":case "A3":case "A4":rate=FF.indexOf("argb")!==-1?16:36;break;case "A6":rate=FF.indexOf("changeoption")!==-1?16: 36;break;case "SC":rate=FF.indexOf("scroll")!==-1?16:36;break;case "SP":rate=FF.indexOf("speed")!==-1?16:36;break;default:break}if(rate!==-1){f=bmsData[xxx[i]][ii].split(":");elms=f[1].match(idxrx);d=elms.length;n=0;while(n28&&t1<33:t2="BMSC cannot find over 28 BGM lanes.";break;case t1>32&&t1<41:t2="BMSC and BMSE cannot find over 32 BGM lanes.";break;case t1>40&&t1<1E3:t2="BMSC, BMSE and uBMSC cannot find over 40 BGM lanes."; break;case t1>999:t2="BMSC, BMSE, iBMSC and uBMSC cannot find over 999 BGM lanes.";break;default:t2="Be aware of GDAC2's lane-script limit of BGM lanes.";break}ro.editor.push("Used BGM "+t1+" lanes: "+t2)}ro.ext=getConvertedBmsExtension(o.info.mode_hint,o.info._has_long);if(o.layerimages)ro.layerimages=o.layerimages;ro.charset=getConvertedBmsCharset(ro.text.join(""));return ro};var bmsonToBms=function(pathFrom,text,charset){var err=[],i,ii,t1,t2,bmsonFindOvered;if(!isBMSON(text)){err.push("This is not a BMSON, or an invalid BMSON. Use JSON validator."); ws.echo(err[0]);return err}try{bmsonFindOvered=json_parse(text)}catch(e){t1=e.text.slice(e.at-24,e.at+24);t2="[Syntax Error] (char "+e.at+") Invalid JSON:\n"+t1;err.push(t2);ws.echo("\n"+t2+"\n");return err}if(is("Array",bmsonFindOvered)){var mayBmson=bmsonFindOvered[0];i=JSON.stringify(bmsonFindOvered[1]);if(i!=="[]"){i=JSON.parse(i);ii=0;while(ii "+t1.to;err.push(t2);ws.echo(t2);ii+=1}}var tmpDir=pathFrom.replace("\\"+ fso.getFileName(pathFrom),"");var bmson=normalizeBmson(mayBmson);ws.echo("[Normalized] "+getDate());var ob=organizeBms(bmson,pathFrom);ws.echo("[Organized] "+getDate());var convertedBms=convertBmsonToBms(ob,tmpDir);ws.echo("[Converted] "+getDate());convertedBms.from=pathFrom;convertedBms.to=fso.buildPath(getOutputDir(pathFrom),fso.getBaseName(pathFrom)+"_"+"bmson."+convertedBms.ext);convertedBms.err=err;return convertedBms}err.push("[Type error] This might be something like BMSON.");ws.echo(err[err.length- 1]);return err};var getTargetColorsFromAlphaToBlack=function(src,IM){var argbrx=/^\s*\d+:\s*\(\s*(\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)/;var colors=shell.exec('"'+IM+'" "'+src+'" -format %c histogram:info:').StdOut.readAll().split("\r\n");var color;var i=0;var l=colors.length;var result=[];var r;var g;var b;var a;var t="-transparent";var AB=APPROXIMATE_BLACK.split(",");var R=Number(AB[1]);var G=Number(AB[2]);var B=Number(AB[3]);if(argbrx.exec(colors[0])[4]!=="")return"ALPHA";else if(testLayerHasPureBlack(src, IM))return"BLACK";while(istartTimeMsec)result.success.push(path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","")+" [Already Converted]");else{exec=shell.exec('"'+IMAGICK+canvas+from+deactivate+ to+'"');while(exec.status===0)ws.sleep(40);tmpMsg=path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","");if(exec.status===1)result.success.push(tmpMsg);else{tmpMsg+=" [Err]";result.failed.push(tmpMsg)}ws.echo(tmpMsg)}}else result.failed.push(path.dir+(path.dir===""?"":"\\")+path.base+" => "+to.replace(toFolder+"\\","")+" [Err] Not exist, or Unsupported, or Video.");i+=1}if(!result.success.length)delete result.success;if(!result.failed.length)delete result.failed;ws.echo("\r\n"); return result};var outputReportsBmsonToBms=function(fromIndex){var i=fromIndex||0;var l=chartsFrom.length;var imgs;var tmpTxt;var tmpCmd;var tmpChart;var tmpMsg;var padd=" ";var prec=-String(l).length;var idx;var bmsReso;var bmsonReso;var imageConvertReport;var outBms;var tmpOut={"":"\ud83c\udfb9","C:\\sample\\bms\\path.bmson":{title:'"title" of Base BMSON',charset:"ASCII or UTF-8 (with byte-order-mark)",these_layers_are_converted_to_non_alpha_png:["If any, these image files are converted to *NON*-Alpha-PNG ( transparent => #000000 )"], error:["If any, these indicate information on conversion errors"],output_to:"Path of Converted BMSON"}};ws.echo("\r\n");while(i