if(!this.JSON)this.JSON={};(function(){function f($){return $<10?"0"+$:$}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function($){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function($){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\"":"\\\"","\\":"\\\\"},rep;function quote($){escapable.lastIndex=0;return escapable.test($)?"\""+$.replace(escapable,function(_){var $=meta[_];return typeof $==="string"?$:"\\u"+("0000"+_.charCodeAt(0).toString(16)).slice(-4)})+"\"":"\""+$+"\""}function str(F,_){var G,E,$,B,C=gap,D,A=_[F];if(A&&typeof A==="object"&&typeof A.toJSON==="function")A=A.toJSON(F);if(typeof rep==="function")A=rep.call(_,F,A);switch(typeof A){case"string":return quote(A);case"number":return isFinite(A)?String(A):"null";case"boolean":case"null":return String(A);case"object":if(!A)return"null";gap+=indent;D=[];if(Object.prototype.toString.apply(A)==="[object Array]"){B=A.length;for(G=0;G<B;G+=1)D[G]=str(G,A)||"null";$=D.length===0?"[]":gap?"[\n"+gap+D.join(",\n"+gap)+"\n"+C+"]":"["+D.join(",")+"]";gap=C;return $}if(rep&&typeof rep==="object"){B=rep.length;for(G=0;G<B;G+=1){E=rep[G];if(typeof E==="string"){$=str(E,A);if($)D.push(quote(E)+(gap?": ":":")+$)}}}else for(E in A)if(Object.hasOwnProperty.call(A,E)){$=str(E,A);if($)D.push(quote(E)+(gap?": ":":")+$)}$=D.length===0?"{}":gap?"{\n"+gap+D.join(",\n"+gap)+"\n"+C+"}":"{"+D.join(",")+"}";gap=C;return $}}if(typeof JSON.stringify!=="function")JSON.stringify=function(_,$,A){var B;gap="";indent="";if(typeof A==="number"){for(B=0;B<A;B+=1)indent+=" "}else if(typeof A==="string")indent=A;rep=$;if($&&typeof $!=="function"&&(typeof $!=="object"||typeof $.length!=="number"))throw new Error("JSON.stringify");return str("",{"":_})};if(typeof JSON.parse!=="function")JSON.parse=function(text,reviver){var j;function walk(_,C){var B,$,A=_[C];if(A&&typeof A==="object")for(B in A)if(Object.hasOwnProperty.call(A,B)){$=walk(A,B);if($!==undefined)A[B]=$;else delete A[B]}return reviver.call(_,C,A)}text=String(text);cx.lastIndex=0;if(cx.test(text))text=text.replace(cx,function($){return"\\u"+("0000"+$.charCodeAt(0).toString(16)).slice(-4)});if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}())