this.JSON||(JSON=function(){function j(a){return a<10?"0"+a:a}function h(a,g){var c,d,f,b;c=/["\\\x00-\x1f\x7f-\x9f]/g;var e;switch(typeof a){case "string":return c.test(a)?'"'+a.replace(c,function(i){var k=l[i];if(k)return k;k=i.charCodeAt();return"\\u00"+Math.floor(k/16).toString(16)+(k%16).toString(16)})+'"':'"'+a+'"';case "number":return isFinite(a)?String(a):"null";case "boolean":case "null":return String(a);case "object":if(!a)return"null";if(typeof a.toJSON==="function")return h(a.toJSON());
c=[];if(typeof a.length==="number"&&!a.propertyIsEnumerable("length")){b=a.length;for(d=0;d<b;d+=1)c.push(h(a[d],g)||"null");return"["+c.join(",")+"]"}if(g){b=g.length;for(d=0;d<b;d+=1){f=g[d];if(typeof f==="string")(e=h(a[f],g))&&c.push(h(f)+":"+e)}}else for(f in a)if(typeof f==="string")(e=h(a[f],g))&&c.push(h(f)+":"+e);return"{"+c.join(",")+"}"}}Date.prototype.toJSON=function(){return this.getUTCFullYear()+"-"+j(this.getUTCMonth()+1)+"-"+j(this.getUTCDate())+"T"+j(this.getUTCHours())+":"+j(this.getUTCMinutes())+
":"+j(this.getUTCSeconds())+"Z"};var l={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return{stringify:h,parse:function(a,g){function c(f,b){var e,i;if(b&&typeof b==="object")for(e in b)if(Object.prototype.hasOwnProperty.apply(b,[e])){i=c(e,b[e]);if(i!==undefined)b[e]=i;else delete b[e]}return g(f,b)}var d;if(/^[\],:{}\s]*$/.test(a.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,
""))){d=eval("("+a+")");return typeof g==="function"?c("",d):d}throw new SyntaxError("parseJSON");}}}());
